1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-05-01 12:20:26 +02:00
Commit graph

21 commits

Author SHA1 Message Date
Mikael Djurfeldt
3bf465263c * goops.scm (compute-getters-n-setters): Allow for primitive
procedure thunks.  (Thanks to Neil W. Van Dyke.)
2003-04-20 17:33:08 +00:00
Mikael Djurfeldt
95f2bb326c * goops.scm (eqv?, equal?): Provide default methods for `eqv?' and
`equal?'.
(compute-getters-n-setters): Check for bad init-thunks.
(update-direct-method!): Use eq? instead of eqv?.
2003-04-17 18:52:21 +00:00
Mikael Djurfeldt
e672dd0208 * goops.scm (equal?): Provide default method for `equal?'.
(compute-getters-n-setters): Check for bad init-thunks.

* eq.c (scm_eqv_p, scm_equal_p): Turned into a primitive generics.

* goops.texi (Object Comparisons): Removed object-eqv? and
object-equal? and added eqv?, equal? and =.
2003-04-17 18:47:18 +00:00
Mikael Djurfeldt
071d6b0ecc * tests/goops.test: New tests.
* goops.scm (equal?): Provide default method for `equal?'.
(compute-getters-n-setters): Check for bad init-thunks.

* eq.c (scm_equal_p): Turned into a primitive generic.

* snarf.h (SCM_PRIMITIVE_GENERIC, SCM_PRIMITIVE_GENERIC_1): New
macros.
2003-04-17 17:50:57 +00:00
Mikael Djurfeldt
168629c99a * goops.scm (compute-getter-method): For custom getter: Check
boundness even if there is an init-thunk.  (The getter can return
#<unbound> even if the slot has been set before.)

* goops.c (scm_sys_fast_slot_ref): Use SCM_SLOT instead of
scm_at_assert_bound_ref.  (We don't want the unbound check.  See
oop/goops/active-slot.scm.)
2003-04-15 01:15:06 +00:00
Mikael Djurfeldt
55f8c6f1ca Fix 2003-04-14 20:13:50 +00:00
Mikael Djurfeldt
55ccbd3545 * goops.scm (compute-getters-n-setters/verify-accessors): Better
check of format of value returned by compute-get-n-set.
(compute-getters-n-setters): Extended format of slot
getters-n-setters to indicate position and size of slot memory
allocated in instances.

* goops.c (scm_sys_prep_layout_x): Instance allocation is now
indicated through extra fields in getters-n-setters.
(scm_add_slot): Adapted to new format of getters_n_setters slot.
(Thanks to Andy Wingo.)
2003-04-13 15:05:05 +00:00
Mikael Djurfeldt
7dd526de2d * goops.scm, goops/active-slot.scm, goops/compile.scm,
goops/composite-slot.scm, goops/describe.scm, goops/dispatch.scm,
goops/old-define-method.scm, goops/save.scm, goops/util.scm: Move
module the system directives `export', `export-syntax',
`re-export' and `re-export-syntax' into the `define-module' form.
This is the recommended way of exporting bindings.
2001-10-18 19:42:22 +00:00
Marius Vollmer
5a3ea50184 Use re-export' instead of export' when re-exporting
`class-of'.
2001-06-04 22:18:12 +00:00
Marius Vollmer
c22adbeb3b Added exception notice to all files. 2001-06-03 23:32:27 +00:00
Marius Vollmer
51f7ef47f9 Fix missing paren. 2001-05-19 22:58:29 +00:00
Marius Vollmer
78ec533c40 Call `%init-goops-builtins' instead of using the
`(oop goops goopscore)' module.
2001-05-19 00:19:25 +00:00
Marius Vollmer
a524a03f87 (initialize-object-procedure): Use
`valid-object-procedure?' instead of explicit tag magic.
(object-procedure-tags): Removed.
2001-05-05 19:08:32 +00:00
Rob Browning
d3299bc330 * goops.scm (method): rename list* to cons*. 2001-04-28 17:18:06 +00:00
Mikael Djurfeldt
71d540f734 * goops.scm (define-method): Only accept new syntax.
* goops/old-define-method.scm: New file.

* goops.scm, goops/save.scm, goops/composite-slot.scm,
goops/active-slot.scm: Use new method syntax.
2001-03-10 03:09:50 +00:00
Mikael Djurfeldt
b432fb4b99 * goops/compile.scm (compile-method): Tag method closure for body
expansion.

* goops.scm (change-object-class): Quote empty list constants.
(method): Reverted previous change (enclosing body);
Quote empty list.
(initialize <method>): Supply `dummy-procedure' as default instead
of creating a new closure.

* goops/internal.scm: Re-export (oop goops) without copying
bindings.
2001-03-04 20:46:34 +00:00
Mikael Djurfeldt
cc6c7feea4 * goops.scm (change-object-class): Quote empty list constants.
(method): Reverted previous change (enclosing body);
Quote empty list.
(initialize <method>): Pre-expand the method closure.
2001-03-04 05:28:21 +00:00
Keisuke Nishida
19b6a58d52 * goops.scm (method): Enclosed BODY by `(let () ...)'.
This allows local defines at the beginning of methods.
2001-02-23 13:07:09 +00:00
Dirk Herrmann
ca83b028dc * Goops does not provide its own version of logand any more.
* Removed use of deprecated stuff from goops.
2000-11-24 10:55:23 +00:00
Mikael Djurfeldt
81211c73cc * goops.scm (internal-add-method!): Set n-specialized of a generic
function to the number of specializers regardless if it has rest
args or not.
2000-11-07 02:18:52 +00:00
Mikael Djurfeldt
14f1d9fec8 *** empty log message *** 2000-10-25 14:51:33 +00:00