1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-05-02 13:00:26 +02:00
guile/module/language
Andy Wingo 48ad85fb56 Fix foreign slot initialization and access
* libguile/goops.c (scm_sys_initialize_object): Refactor initialization
  so that we don't ref uninitialized slots before initializing them.
  This allows foreign slots, whose initial value is 0, to be initialized
  via #:init-form.

* module/oop/goops.scm (@slot-ref, @slot-set!): Remove definitions.
  Change callers to use struct-ref and struct-set!.  slot-ref and
  slot-set! were only marginally more efficient and were much more
  dangerous.  This change allows the standard accessors to work on
  foreign slots; that was not the case before, as the 'u' fields of the
  struct were read as if they were 'p' slots.
* module/language/tree-il/compile-glil.scm (lambda): Remove support for
  compiling @slot-ref/@slot-set!.  These were private to GOOPS.

* test-suite/tests/goops.test ("active-slot"): Update to not expect a
  ref before initialization.
  ("foreign slots"): Add tests.
2014-04-27 11:02:35 +02:00
..
assembly Add 'for-humans?' flag to <language> specifications. 2013-01-27 10:16:40 -05:00
brainfuck Fix brainfuck comment 2013-12-02 19:03:50 +01:00
bytecode Add 'for-humans?' flag to <language> specifications. 2013-01-27 10:16:40 -05:00
ecmascript ecmascript: Fix conversion to boolean for non-numbers. 2013-01-26 19:18:31 +01:00
elisp Placate a number of `syntax-check' verifications. 2012-01-05 23:38:10 +01:00
glil remove language/glil/decompile-assembly.scm 2013-02-24 15:50:09 +01:00
objcode Add 'for-humans?' flag to <language> specifications. 2013-01-27 10:16:40 -05:00
scheme Decompiler: fix handling of empty 'case-lambda' expressions. 2013-08-07 05:54:15 -04:00
tree-il Fix foreign slot initialization and access 2014-04-27 11:02:35 +02:00
value Add 'for-humans?' flag to <language> specifications. 2013-01-27 10:16:40 -05:00
assembly.scm silly "optimization" in (language assembly) 2011-05-05 11:43:12 +02:00
glil.scm prompt handlers are always inline 2010-02-19 15:30:34 +01:00
objcode.scm Change Guile license to LGPLv3+ 2009-06-17 00:22:09 +01:00
tree-il.scm allow case-lambda expressions with no clauses 2013-03-09 11:16:31 +01:00