1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-05-22 20:40:29 +02:00
guile/module
Andy Wingo cd9d95d760 fixes so that typing asdfadfasff in the repl doesn't error
Before:

> ,c (set! x 3)
   0    (make-int8 3)                   ;; 3
   2    (link "x")
   5    (variable-set)

> ,c (define x 3)
   0    (make-int8 3)                   ;; 3
   2    (link "x")
   5    (variable-set)

After:
> ,c (define x 3)
   0    (make-int8 3)                   ;; 3
   2    (define "x")
   5    (variable-set)

* src/vm_loader.c (link): `link' now errors if the variable is undefined.
  This corresponds with desired behavior, for both `ref' and `set'
  operations, for scheme. It's not what elisp wants, though. Perhaps
  elisp linking needs another instruction.
  (define): New instruction, the same as calling scm_define(), basically.

* module/language/scheme/translate.scm (trans-pair): Don't try to look up
  an existing variable definition when translating `define'; instead use
  the special-purpose lookup from ghil.scm's `ghil-define'.

* module/system/il/compile.scm (codegen): Compile to a different kind of
  variable access from `set!', specifically via passing 'define as the op
  to `make-glil-var'.

* module/system/il/ghil.scm (ghil-lookup): Don't add to the module table
  when compiling variable sets via `set!'.
  (ghil-define): New procedure, for looking up variables for `define'.

* module/system/vm/assemble.scm (<vdefine>): New record: a new
  instruction type.
  (codegen): Compile `define' module vars into <vdefine>.
  (dump-object!): <vdefine> == `define'.
2008-05-12 00:22:36 +02:00
..
guile *** empty log message *** 2001-05-02 15:05:05 +00:00
language fixes so that typing asdfadfasff in the repl doesn't error 2008-05-12 00:22:36 +02:00
slib *** empty log message *** 2001-04-16 03:43:48 +00:00
system fixes so that typing asdfadfasff in the repl doesn't error 2008-05-12 00:22:36 +02:00
.cvsignore *** empty log message *** 2001-04-25 01:55:45 +00:00
Makefile.am *** empty log message *** 2001-04-22 02:13:48 +00:00