guile-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Guile-commits] GNU Guile branch, goops-cleanup, created. release_1-9-4-


From: Andy Wingo
Subject: [Guile-commits] GNU Guile branch, goops-cleanup, created. release_1-9-4-72-gb1955b1
Date: Tue, 03 Nov 2009 23:08:10 +0000

This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU Guile".

http://git.savannah.gnu.org/cgit/guile.git/commit/?id=b1955b1187eccb9383154942f0353d5cdcfeed99

The branch, goops-cleanup has been created
        at  b1955b1187eccb9383154942f0353d5cdcfeed99 (commit)

- Log -----------------------------------------------------------------
commit b1955b1187eccb9383154942f0353d5cdcfeed99
Author: Andy Wingo <address@hidden>
Date:   Tue Nov 3 23:59:51 2009 +0100

    a very big commit cleaning up structs & goops. also applicable structs.
    
    I tried to split this one, and I know it's a bit disruptive, but this
    stuff really is one big cobweb. So instead we'll pretend like these are
    separate commits, by separating the changelog.
    
    Applicable struct runtime support.
    
    * libguile/debug.c (scm_procedure_source):
    * libguile/eval.c (scm_trampoline_0, scm_trampoline_1)
      (scm_trampoline_2):
    * libguile/eval.i.c (CEVAL):
    * libguile/goops.c (scm_class_of):
    * libguile/procprop.c (scm_i_procedure_arity):
    * libguile/procs.c (scm_procedure_p, scm_procedure, scm_setter): Allow
      for applicable structs. Whee!
    
    * libguile/deprecated.h (scm_vtable_index_vtable): Define as a synonym
      for scm_vtable_index_self.
      (scm_vtable_index_printer): Alias scm_vtable_index_instance_printer.
      (scm_struct_i_free): Alias scm_vtable_index_instance_finalize.
      (scm_struct_i_flags): Alias scm_vtable_index_flags.
      (SCM_STRUCTF_FLAGS): Be a -1 mask, we have a whole word now.
      (SCM_SET_VTABLE_DESTRUCTOR): Implement by hand.
    
    Hidden slots.
    
    * libguile/struct.c (scm_make_struct_layout): Add support for "hidden"
      fields, writable fields that are not visible to make-struct. This
      allows us to add fields to vtables and not break existing make-struct
      invocations.
      (scm_struct_ref, scm_struct_set_x): Always get struct length from the
      vtable. Support hidden fields.
    
    * libguile/goops.c (scm_class_hidden, scm_class_protected_hidden): New
      slot classes, to correspond to the new vtable slots.
      (scm_sys_prep_layout_x): Turn hidden slots into 'h'.
      (build_class_class_slots): Reorder the class slots to account for
      vtable fields coming out of negative-land, for name as a vtable slot,
      and for hidden fields.
      (create_standard_classes): Define <hidden-slot> and
      <protected-hidden-slot>.
    
    Clean up struct.h.
    
    * libguile/struct.h: Lay things out cleaner. There are no more hidden
      (negative) words. Names are nicer. The exposition is nicer. But the
      basics are the same. The incompatibilities are that <vtable> has more
      slots now, and that scm_alloc_struct's signature has changed. The
      former is ameliorated by the "hidden" slots mentioned before, and the
      latter, well, it was always a very internal thing...
    
    * libguile/struct.c: (scm_vtable_p): Now we keep flags on
      vtable-vtables, so this check is cheaper.
      (scm_alloc_struct): No hidden words. Yippee.
      (struct_finalizer_trampoline): Entersify.
      (scm_make_struct): No need to babysit extra words, though now we have
      to babysit flags. Propagate the vtable, applicable, and setter flags
      appropriately.
      (scm_make_vtable_vtable): Update for new simplicity.
      (scm_print_struct): A better printer.
      (scm_init_struct): Define <applicable-struct-vtable>, a magical vtable
      like CL's funcallable-standard-class. Also define
      <applicable-struct-with-setter-vtable>.
    
    Remove foreign object implementation.
    
    * libguile/goops.h:
    * libguile/goops.c (scm_make_foreign_object, scm_make_class)
      (scm_add_slot, scm_wrap_object, scm_wrap_component): Remove, these
      were undocumented and unworking.
    
    Clean up goops.h, a little.
    
    * libguile/goops.h:
    * libguile/goops.c: Also clean up.
    * module/oop/goops/dispatch.scm (hashset-index): Adapt for new hashset
      index.

commit ba33a21a28ceb5cf5a30ca34d4f833b8e3292187
Author: Andy Wingo <address@hidden>
Date:   Tue Nov 3 22:43:29 2009 +0100

    actually set all 8 hashsets in classes
    
    * libguile/goops.c (prep_hashsets): Actually set all 8 hashsets. Doh...

commit 0fb03157867ae1d12257928f9253c19b267e8ede
Author: Andy Wingo <address@hidden>
Date:   Tue Nov 3 22:41:59 2009 +0100

    remove goops-local %tag-body
    
    * libguile/goops.c (scm_sys_tag_body): Remove goops-local hack that is
      no longer necessary.

commit 84dab750a7db5e451b4bc6e49652161d298621a9
Author: Andy Wingo <address@hidden>
Date:   Tue Nov 3 22:33:22 2009 +0100

    SCM_VALIDATE_VTABLE tweak
    
    * libguile/validate.h (SCM_VALIDATE_VTABLE): Simply call
      scm_struct_vtable_p.

commit d427d8386ad5d23332280d60eaef7226620513bf
Author: Andy Wingo <address@hidden>
Date:   Tue Nov 3 22:32:39 2009 +0100

    fix printing-programs bug
    
    * module/system/vm/program.scm (write-program): Fix a bug if we couldn't
      get a procedure's arity.

commit 48a69b27398d88dd54965b7584191acf2a974fde
Author: Andy Wingo <address@hidden>
Date:   Tue Nov 3 22:28:26 2009 +0100

    values.c defines a vtable, not a vtable-vtable
    
    * libguile/values.c (scm_init_values): Define a vtable, not a
      "metaclass".

commit d8ebd1d41d3cfe0aab118c214dc7db4b0ac3c433
Author: Andy Wingo <address@hidden>
Date:   Tue Nov 3 22:27:34 2009 +0100

    srfi-35 properly uses vtable-offset-user
    
    * module/srfi/srfi-35.scm (condition-type-id):
      (condition-type-parent, condition-type-all-fields): Don't ref fixed
      struct indices, use vtable-offset-user instead.

commit 635bc2288076acfa5fcd305704d2a95b882fa090
Author: Andy Wingo <address@hidden>
Date:   Tue Nov 3 22:26:46 2009 +0100

    fix a structs.test test
    
    * test-suite/tests/structs.test ("equal?"): Instantiate vtables, not
      vtable-vtables. "hello" is not a valid vtable layout.

commit 67d29780cd0288bb8b6825ac9bfe207a3b5192b8
Author: Andy Wingo <address@hidden>
Date:   Sun Nov 1 21:09:42 2009 +0100

    remove redundant, unnecessary instance size from struct vtables
    
    * libguile/struct.h (scm_struct_i_size): Remove this shared field -- I
      mean, the slot is still there, but it's only used for flags.
    
    * libguile/goops.h (SCM_SET_CLASS_INSTANCE_SIZE):
    * libguile/goops.c (scm_sys_inherit_magic_x, scm_make_class): Remove
      uses and definition of SCM_SET_CLASS_INSTANCE_SIZE. Light structs used
      it, but you have that info in the layout; and foreign classes used it,
      but that is going away soon anyway :)

commit 2f145cc2974c1b528fed5e1cc7855d553f084c57
Author: Andy Wingo <address@hidden>
Date:   Sun Nov 1 20:45:02 2009 +0100

    fold objects.[ch] into goops.[ch]
    
    Remove objects.h #includes as appropriate.

commit 5ea6ce3cde873cb75e4eddd36781182940177d68
Author: Andy Wingo <address@hidden>
Date:   Sun Nov 1 19:46:27 2009 +0100

    remove support for "entities" -- a form of applicable struct
    
    Entities were meant to be a form of applicable struct. Unfortunately,
    the implementation is intertwingled with generics. Removing them, for
    now, will make it possible to cleanly re-add applicable struct support.
    
    * libguile/struct.h (SCM_STRUCTF_ENTITY): Remove.
      (SCM_STRUCTF_GOOPS_HACK): New flag; sigh.
    * libguile/struct.c (scm_make_struct): We make "entity" structs if the
      GOOPS_HACK flag is set. This will be fixed when we rework flags and
      remove hidden words.
    
    * libguile/goops.c (scm_class_of): Structs are not applicable, for now
      at least.
      (scm_sys_inherit_magic_x, scm_basic_basic_make_class)
      (scm_sys_allocate_instance, scm_sys_set_object_setter_x):
      (make_struct_class): Adapt for no more entities (and thus no entity
      flag).
      (create_standard_classes): For some reason, generic functions were
      getting the LIGHT flag set, after the ENTITY flag was removed; so for
      now explicitly clear that flag.
    * libguile/goops.h (SCM_GENERIC_SETTER, SCM_SET_GENERIC_SETTER): New
      macros.
    
    * libguile/objects.h:
    * libguile/objects.c: Remove code for entities.
    
    * libguile/debug.c: (scm_procedure_source): Only work with generics.
    
    * libguile/eval.c (scm_trampoline_0, scm_trampoline_1)
      (scm_trampoline_2): Only handle generics.
    
    * libguile/eval.i.c (CEVAL): #ifdef out the pieces about entities.
    
    * libguile/procprop.c (scm_i_procedure_arity): Remove support for
      entities.
    
    * libguile/procs.c (scm_procedure_p, scm_procedure, scm_setter): Remove
      entity support.

commit 0dccce8b8ab89c56b0816801b7700d1bed80ee8c
Author: Andy Wingo <address@hidden>
Date:   Sat Oct 31 12:04:53 2009 +0100

    SCM_GENERIC_METHOD_CACHE macro splits from SCM_ENTITY_PROCEDURE
    
    * libguile/goops.h (SCM_GENERIC_METHOD_CACHE)
      (SCM_SET_GENERIC_METHOD_CACHE): Two new macros; the same as
      SCM_[SET_]ENTITY_PROCEDURE, but more reflecting the reality of the
      generic hack.
    
    * libguile/eval.i.c:
    * libguile/goops.c:
    * libguile/objects.c:
    * libguile/vm-i-system.c: Use the new macros when it is appropriate to
      do so.

commit 87af2dfc34cb5228de3574057a277df930581547
Author: Andy Wingo <address@hidden>
Date:   Sat Oct 31 11:17:12 2009 +0100

    remove unused things from object.[ch]
    
    * libguile/objects.h:
    * libguile/objects.c (scm_object_procedure): Remove, it was only
      compiled with SCM_DEBUG.
    
    * libguile/objects.h:
    * libguile/objects.c (scm_make_class_object, scm_make_subclass_object,
      (scm_i_make_class_object, scm_metaclass_standard): Remove also. These
      implemented an undocumented object system, and are totally replaced by
      GOOPS.

commit 90dcbb12be64260cb1329c456a4f02900639347d
Author: Andy Wingo <address@hidden>
Date:   Sat Oct 31 00:28:43 2009 +0100

    remove operators

commit a1724f53c0e51d5577d8e50d25867abc010991d0
Author: Andy Wingo <address@hidden>
Date:   Sat Oct 31 00:08:42 2009 +0100

    generic dispatch in the vm (sorta)
    
    * libguile/vm-i-system.c (call, goto/args, mv-call): Add a case for
      generics, so we can avoid the evaluator in that case. Still have to
      cons up a list -- the real solution comes later.

commit 0108ba52a1da29e6b0f84c6380a5d4b36311a271
Author: Andy Wingo <address@hidden>
Date:   Thu Oct 29 09:47:00 2009 +0100

    remove unused struct gc chain macros
    
    * libguile/struct.h (SCM_STRUCT_GC_CHAIN, SCM_SET_STRUCT_GC_CHAIN):
      Remove, no longer necessary given topological finalization, provided
      by libGC.

commit 8fa54cfd403e82ae4818c817036106e9f13e90e3
Author: Andy Wingo <address@hidden>
Date:   Fri Oct 30 22:21:29 2009 +0100

    de-inline goops dispatch from the evaluator
    
    * libguile/eval.i.c: De-inline goops dispatch from the evaluator. Part
      of a refactor.

-----------------------------------------------------------------------


hooks/post-receive
-- 
GNU Guile




reply via email to

[Prev in Thread] Current Thread [Next in Thread]