Author: bernhard
Date: Mon Jun 4 11:59:15 2007
New Revision: 18804
Modified:
trunk/languages/lisp/internals.pir
trunk/languages/lisp/lisp/bootstrap.l
trunk/languages/lisp/read.pir
Log:
[languages/lisp]
Try to enable reading in of macros.
Uncomment three more lines in bootstrap.l
Modified: trunk/languages/lisp/internals.pir
==============================================================================
--- trunk/languages/lisp/internals.pir (original)
+++ trunk/languages/lisp/internals.pir Mon Jun 4 11:59:15 2007
@@ -296,6 +296,7 @@
.sub _IS_ORDINARY_LAMBDA_LIST
.param pmc form
+
.local string type
.local pmc symbol
.local pmc args
Modified: trunk/languages/lisp/lisp/bootstrap.l
==============================================================================
--- trunk/languages/lisp/lisp/bootstrap.l (original)
+++ trunk/languages/lisp/lisp/bootstrap.l Mon Jun 4 11:59:15 2007
@@ -99,8 +99,8 @@
(sys:%make-package "COMMON-LISP-USER")
(sys:%alias-package (sys:%find-package "COMMON-LISP-USER") "CL-USER")
-; (cl:setq *package* (sys:%find-package "CL-USER"))
-; (sys:%use-package (sys:%find-package "CL-USER")
-; (sys:%find-package "COMMON-LISP"))
+(cl:setq *package* (sys:%find-package "CL-USER"))
+(sys:%use-package (sys:%find-package "CL-USER")
+ (sys:%find-package "COMMON-LISP"))
; (in-package "COMMON-LISP-USER")
Modified: trunk/languages/lisp/read.pir
==============================================================================
--- trunk/languages/lisp/read.pir (original)
+++ trunk/languages/lisp/read.pir Mon Jun 4 11:59:15 2007
@@ -186,7 +186,6 @@
.local pmc stream
.local pmc symbol
.local pmc tretv
- .local pmc ntretv
.local pmc retv
.local pmc lptr
.local int ordv
@@ -266,11 +265,13 @@
.STRING(mchar, char)
.LIST_2(margs, istream, mchar) # Create a list of args to pass in
+ null tretv
tretv = _FUNCTION_CALL(macro, margs) # Call the readmacro
+ if_null tretv, LOOP
# VALID_IN_PARROT_0_2_0 if argcP == 0 goto LOOP # If macro
is NULL, start loop again
- ntretv = tretv
- if ntretv == 0 goto LOOP # If macro is NULL, start loop again
+ # VALID_IN_PARROT_0_2_0 ntretv = tretv
+ # VALID_IN_PARROT_0_2_0 if ntretv == 0 goto LOOP # If macro
is NULL, start loop again
goto APPEND_TO_LIST # else add the return value to list
DELIMIT_CHAR: # We've hit the delimter char -