Anonymous avatar Anonymous committed 01b8ef3

Added the skeleton of everything.

Comments (0)

Files changed (4)

perl5/ext-embed-internals/docbook/Makefile

+DOC = hackers-guide-for-perl5-ext-and-embed
+
+include docmake.mak
+

perl5/ext-embed-internals/docbook/docmake.mak

+DOCBOOK_MAK_PATH = /home/shlomi/apps/docbook-builder
+
+DOCBOOK_MAK_MAKEFILES_PATH = $(DOCBOOK_MAK_PATH)/share/make/
+
+include $(DOCBOOK_MAK_MAKEFILES_PATH)/main-docbook.mak

perl5/ext-embed-internals/docbook/hackers-guide-for-perl5-ext-and-embed.xml

+<?xml version='1.0' ?>
+
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
+"/usr/share/sgml/docbook/xml-dtd-4.3/docbookx.dtd"[
+]>
+<!-- -->
+<!-- $Id$ -->
+<!-- -->
+<!-- $Log$ -->
+<!-- -->
+<!-- General reminders: -->
+
+<book id="index">
+    <bookinfo>
+        <title>The Hacker's Guide for Extending and Embedding perl5</title>
+        <authorgroup>
+            <author>
+                <firstname>Shlomi</firstname>
+                <surname>Fish</surname>
+                <affiliation>
+                    <address>
+                        <email>shlomif@iglu.org.il</email>
+                    </address>
+                </affiliation>
+            </author>
+         </authorgroup>
+         <copyright>
+             <year>2007</year>
+            <holder>Shlomi Fish</holder>
+        </copyright>
+      <legalnotice>
+            <!-- Ci vis pacem -->
+            <para>
+                <!-- belum. ;-) -->
+                This document was written by Shlomi Fish and is available
+                under the terms of either the:
+            </para>
+            <orderedlist>
+                <listitem>
+                    <para>
+                        <ulink url="http://creativecommons.org/licenses/publicdomain/">The Public Domain</ulink>,
+                        as defined by the Creative Commons or your local
+                        jurisdication.
+                    </para>
+                </listitem>
+                <listitem>
+                    <para>
+                        <ulink url="http://creativecommons.org/licenses/by/3.0/">The Creative Commons Attribution License (CC-by) version 3.0</ulink>
+                        (or at your option any later version of the same
+                        license.)
+                    </para>
+                </listitem>
+                <listitem>
+                    <para>
+                        The 
+                        <ulink 
+                            url="http://www.opensource.org/licenses/mit-license.php">MIT 
+                            X11 License</ulink>.
+                    </para>
+                </listitem>
+            </orderedlist>
+        </legalnotice>
+        <revhistory>
+            <revision>
+                <revnumber>1083</revnumber>
+                <date>22 April 2007</date>
+                <authorinitials>shlomif</authorinitials>
+                <revremark>
+                    Started working on this document after forking the template
+                    of an older one.
+                </revremark>
+            </revision>
+        </revhistory>
+    </bookinfo>
+    <chapter id="introduction">
+        <title>Introduction</title>
+        <para>
+            perl5 is the name of the most popular implementation for the version
+            5 of the <ulink url="http://www.perl.org/">Perl 
+                language</ulink> as of this writing. It is open-source, written
+            in portable ANSI C, runs on many platforms, is fast (though has no 
+            JIT yet), works pretty well, and is what most people are using. (At
+            least as of April 2007)
+        </para>
+        <para>
+            However, the API that it exposes to the user, and its internals
+            are not very accessible, and badly documented, which makes
+            writing extensions for perl5 and embedding it inside other
+            programs very unpopular. Simon Cozens and Tim Jenness wrote
+            <ulink url="http://www.manning.com/jenness/">Extending 
+                and Embedding Perl</ulink> back in 2002, in an aim to remedy
+            this. However, a legitimate copy of this book is not available
+            online (although can be downloaded "illegally"), and the book
+            is somewhat out of date, and has some issues.
+        </para>
+        <para>
+            The aim of this document is to remedy this. It will provide
+            code examples, explanations, 
+            <ulink url="http://www.w3.org/Graphics/SVG/">SVG</ulink> 
+            illustrations and diagrams, and other aids in overcoming the
+            problems.
+        </para>
+        <para>
+            Furthermore this document is fully open-source and 
+            <ulink url="http://en.wikipedia.org/wiki/Public_domain">public 
+                domain</ulink>, and as such easily reusable.
+        </para>
+        <section id="audience">
+            <title>Audience and Expected Knowledge</title>
+            <para>
+                We intend this book for Perl 5 programmers who are interested
+                to learn how to write perl 5 extensions in C and other 
+                languages, who are interested to embed perl 5 in their C
+                program or who are interested to learn how it works on the
+                inside.
+            </para>
+            <para>
+                This book assumes a good to very good knowledge of Perl 5, and
+                a good to very good knowledge of ANSI C.
+            </para>
+        </section>
+    </chapter>
+    <chapter id="first_steps">
+        <title>First Steps</title>
+        <para>
+            Where do we start? From the "Hello World!" program of course. We'll
+            write a Perl XS extension to output "Hello World!" to the screen.
+        </para>
+        <section id="hello_world">
+            <title>Hello World</title>
+            <para>
+
+            </para>
+        </section>
+
+    </chapter>
+</book>    <!-- End of the article -->
+

perl5/ext-embed-internals/docbook/style.css

+a:hover { background-color : palegreen; }
+body 
+{ 
+    background:url(background-shlomif.png) #E5F0FA repeat-y top center;
+    color:black;
+    font-family:"times new roman","times","serif";
+    margin:0px;
+    padding:0px;
+}
+.ads_top
+{
+    padding-top: 20px;
+    background: url(top-shlomif.png) #E5F0FA top center;
+    height: 107px;
+}
+.navfooter
+{
+    background: url(bottom-shlomif.png) #E5F0FA top center;
+    height: 127px;
+}
+.navheader hr
+{
+    display: none;
+}
+.itemizedlist ul.centralized 
+{ 
+    text-align: center; 
+    list-style-type : none;
+    font-size: large;
+}
+.section, .toc, .title, .author, table, p, hr
+{
+    margin-left:auto;
+    margin-right:auto;
+    width:30em;
+    width:660px;
+}
+hr
+{
+    margin-top: 1em;
+    margin-bottom: 1em;
+}
+h1, h2
+{
+    margin-bottom: 1em;
+}
+.toc dl
+{
+    margin-top: 0;
+    padding-top: 0;
+    margin-bottom: 0;
+    padding-bottom: 0;
+}
+.center
+{
+    text-align: center;
+    margin-left: auto;
+    margin-right: auto;
+}
+
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.