Skip to content
This repository has been archived by the owner on Jun 9, 2018. It is now read-only.

Commit

Permalink
update doc
Browse files Browse the repository at this point in the history
  • Loading branch information
fperrad committed Nov 7, 2009
1 parent 0eae52a commit 7bab379
Show file tree
Hide file tree
Showing 2 changed files with 50 additions and 50 deletions.
2 changes: 1 addition & 1 deletion doc/running.pod
Expand Up @@ -30,7 +30,7 @@ Retrieve Lua

Configure & build Lua

perl Configure.pl
parrot Configure.pir
make

=head2 Running the Test Suite
Expand Down
98 changes: 49 additions & 49 deletions doc/status.pod
Expand Up @@ -19,8 +19,8 @@ This implementation is aligned with Lua 5.1 specifications.

=head2 PIR Compiler/Interpreter

C<lua.pbc> is the interpreter/compiler, see F<languages/lua/src/lua51.pir>
& F<languages/lua/lua.pir>.
C<lua.pbc> is the interpreter/compiler, see F<lua/lua51.pir>
& F<lua.pir>.

C<lua.pbc> is written in PIR and generates PIR from Lua sources.
C<lua.pbc> uses the following Parrot compiler toolchain components :
Expand All @@ -29,17 +29,17 @@ C<lua.pbc> uses the following Parrot compiler toolchain components :

=item PGE

The Lua grammar is described in F<languages/lua/src/lua51.pg>.
The Lua grammar is described in F<lua/lua51.pg>.

The PIR code is emitted by C<CodeString>.

C<PGE> is also used by the Lua pattern compiler in
F<languages/lua/src/lib/luaregex.pir>.
F<lua/lib/luaregex.pir>.

=item TGE

Two stages of tree transformation are used
F<languages/lua/src/PASTGrammar.tg> & F<languages/lua/src/POSTGrammar.tg>.
F<lua/PASTGrammar.tg> & F<lua/POSTGrammar.tg>.

=item PAST

Expand All @@ -56,13 +56,13 @@ F<compilers/pct/src/PCT/HLLCompiler.pir>.

=back

The lexicography part could be checked with F<languages/lua/test_lex.pir>.
The lexicography part could be checked with F<test_lex.pir>.

The code generation could be examined with F<languages/lua/luap.pir>.
The code generation could be examined with F<luap.pir>.

=head3 KNOWN PROBLEMS

in F<languages/lua/t/closure.t> :
in F<t/closure.t> :

a = {}
local x = 20
Expand Down Expand Up @@ -93,33 +93,33 @@ This compiler is written in Perl5 :

Implemented with Perl5 regex

F<languages/lua/src/yapp/Lua/lexer.pm>
F<src/yapp/Lua/lexer.pm>

=item * parser

Implemented with Parse::Yapp.

It supports the full grammar described in F<languages/lua/doc/lua51.bnf>.
It supports the full grammar described in F<doc/lua51.bnf>.

Only one C<error> rule, so the syntax error diagnostic is minimalist.

F<languages/lua/src/yapp/Lua/lua51.yp>
F<src/yapp/Lua/lua51.yp>

=item * code generation

F<languages/lua/src/yapp/Lua/build.pm>
F<src/yapp/Lua/build.pm>

=item * symbole table

F<languages/lua/src/yapp/Lua/symbtab.pm>
F<src/yapp/Lua/symbtab.pm>

=item * opcode representation

F<languages/lua/src/yapp/Lua/opcode.pm>
F<src/yapp/Lua/opcode.pm>

=item * opcode emission

F<languages/lua/src/yapp/Lua/pir.pm>
F<src/yapp/Lua/pir.pm>

=back

Expand All @@ -129,17 +129,17 @@ There are eight basic types in Lua, each of them is implemented by a PMC.

=over 4

=item * nil F<languages/lua/src/pmc/luanil.pmc>
=item * nil F<dynext/pmc/luanil.pmc>

=item * boolean F<languages/lua/src/pmc/luaboolean.pmc>
=item * boolean F<dynext/pmc/luaboolean.pmc>

=item * number F<languages/lua/src/pmc/luanumber.pmc>
=item * number F<dynext/pmc/luanumber.pmc>

=item * string F<languages/lua/src/pmc/luastring.pmc>
=item * string F<dynext/pmc/luastring.pmc>

=item * function F<languages/lua/src/pmc/luafunction.pmc>
=item * function F<dynext/pmc/luafunction.pmc>

=item * userdata F<languages/lua/src/pmc/luauserdata.pmc>
=item * userdata F<dynext/pmc/luauserdata.pmc>

This type allows OO extension.

Expand All @@ -151,16 +151,16 @@ This type is used to implement coroutines.
The current implementation use the library
F<runtime/parrot/library/Parrot/Coroutine.pir>.

=item * table F<languages/lua/src/pmc/luatable.pmc>
=item * table F<dynext/pmc/luatable.pmc>

This type is I<the> data structure of the language.

=back

F<languages/lua/src/pmc/luaany.pmc> provides an abstract base class for all
F<dynext/pmc/luaany.pmc> provides an abstract base class for all
Lua types.

F<languages/lua/src/pmc/lua.pmc> is a singleton PMC what holds some static methods.
F<dynext/pmc/lua.pmc> is a singleton PMC what holds some static methods.

=head3 TODO

Expand All @@ -176,29 +176,29 @@ Lua 5.1 defines the following standard libraries:

=over 4

=item * basic library F<languages/lua/src/lib/luabasic.pir>
=item * basic library F<lua/lib/luabasic.pir>

=item * coroutine manipulation F<languages/lua/src/lib/luacoroutine.pir>
=item * coroutine manipulation F<lua/lib/luacoroutine.pir>

=item * package library F<languages/lua/src/lib/luapackage.pir>
=item * package library F<lua/lib/luapackage.pir>

=item * string manipulation F<languages/lua/src/lib/luastring.pir>
=item * string manipulation F<lua/lib/luastring.pir>

=item * table manipulation F<languages/lua/src/lib/luatable.pir>
=item * table manipulation F<lua/lib/luatable.pir>

=item * mathematical functions F<languages/lua/src/lib/luamath.pir>
=item * mathematical functions F<lua/lib/luamath.pir>

=item * input and output F<languages/lua/src/lib/luaio.pir>, F<languages/lua/src/lib/luafile.pir>
=item * input and output F<lua/lib/luaio.pir>, F<lua/lib/luafile.pir>

=item * operating system facilities F<languages/lua/src/lib/luaos.pir>
=item * operating system facilities F<lua/lib/luaos.pir>

=item * debug facilities F<languages/lua/src/lib/luadebug.pir>
=item * debug facilities F<lua/lib/luadebug.pir>

=back

F<languages/lua/src/lib/luaaux.pir> is the equivalent of Auxiliary Library.
F<lua/lib/luaaux.pir> is the equivalent of Auxiliary Library.

F<languages/lua/src/lib/luaregex.pir> implements a regex compiler using PGE.
F<lua/lib/luaregex.pir> implements a regex compiler using PGE.

=head3 TODO

Expand All @@ -210,33 +210,33 @@ These libraries are loaded dynamically with the Lua function C<require>.

=over 4

=item * alarm library F<languages/lua/src/lib/alarm.pir>
=item * alarm library F<lua/library/alarm.pir>

=item * base64 library F<languages/lua/src/lib/base64.pir>
=item * base64 library F<lua/library/base64.pir>

=item * big number library F<languages/lua/src/lib/bc.pir>
=item * big number library F<lua/library/bc.pir>

=item * bitwise operation library F<languages/lua/src/lib/bit.pir>
=item * bitwise operation library F<lua/library/bit.pir>

=item * bitwise operation library F<languages/lua/src/lib/bitlib.pir>
=item * bitwise operation library F<lua/library/bitlib.pir>

=item * complex library F<languages/lua/src/lib/complex.pir>
=item * complex library F<lua/library/complex.pir>

=item * Lua File System library F<languages/lua/src/lib/lfs.pir>
=item * Lua File System library F<lua/library/lfs.pir>

=item * LPeg library F<languages/lua/src/lib/lpeg.pir>
=item * LPeg library F<lua/library/lpeg.pir>

=item * markdown library F<languages/lua/src/lib/markdown.pir>
=item * markdown library F<lua/library/markdown.pir>

=item * mathx library F<languages/lua/src/lib/mathx.pir>
=item * mathx library F<lua/library/mathx.pir>

=item * md5 & sha1 library F<languages/lua/src/lib/md5.pir>
=item * md5 & sha1 library F<lua/library/md5.pir>

=item * random library F<languages/lua/src/lib/random.pir>
=item * random library F<lua/library/random.pir>

=item * struct library F<languages/lua/src/lib/struct.pir>
=item * struct library F<lua/library/struct.pir>

=item * uuid library F<languages/lua/src/lib/uuid.pir>
=item * uuid library F<lua/library/uuid.pir>

=back

Expand Down

0 comments on commit 7bab379

Please sign in to comment.