1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-06-01 01:40:21 +02:00
guile/module/language/tree-il
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
..
analyze.scm Fix argument count for various format string escape sequences. 2013-01-28 14:16:24 +00:00
canonicalize.scm allow case-lambda expressions with no clauses 2013-03-09 11:16:31 +01:00
compile-glil.scm Fix foreign slot initialization and access 2014-04-27 11:02:35 +02:00
cse.scm allow case-lambda expressions with no clauses 2013-03-09 11:16:31 +01:00
debug.scm allow case-lambda expressions with no clauses 2013-03-09 11:16:31 +01:00
effects.scm allow case-lambda expressions with no clauses 2013-03-09 11:16:31 +01:00
fix-letrec.scm fix-letrec uses effects.scm for effects analysis 2012-07-05 20:40:56 +02:00
inline.scm separate peval and a new canonicalization pass into their own modules 2011-09-28 19:39:39 +02:00
optimize.scm enable cse 2012-04-23 21:52:24 +02:00
peval.scm Fix inlining of tail list to apply. 2014-01-07 03:37:21 +00:00
primitives.scm Compile numerical comparisons with more than 2 arguments to VM code. 2014-02-01 01:19:16 -05:00
spec.scm Add 'for-humans?' flag to <language> specifications. 2013-01-27 10:16:40 -05:00