chicken-janitors
[Top][All Lists]
Advanced

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

[Chicken-janitors] Re: #32: get tinyclos egg for chicken 4 to work


From: Chicken Trac
Subject: [Chicken-janitors] Re: #32: get tinyclos egg for chicken 4 to work
Date: Mon, 09 Nov 2009 09:08:23 -0000

#32: get tinyclos egg for chicken 4 to work
------------------------+---------------------------------------------------
 Reporter:  felix       |       Owner:  tonysidaway
     Type:  defect      |      Status:  assigned   
 Priority:  major       |   Milestone:             
Component:  extensions  |     Version:  4.0.5      
 Keywords:  tinyclos    |  
------------------------+---------------------------------------------------
Changes (by tonysidaway):

  * owner:  => tonysidaway
  * status:  new => assigned


Comment:

 I have rewritten define-method to expand to a corresponding add-method.
 This throws an appropriate error if the generic has not already been set
 up.  With appropriate "define-generic" calls, the example code now
 executes without error messages.  I need to set up a proper test suite for
 this but I think we're out of the woods.

 My tests seem to indicate that the problem is a basic design fault in
 define-method.  This macro is supposed to do two things.  The ostensible
 purpose is to provide syntactic sugar around the assignment of a new
 method to an existing generic.  At some point the decision was made to
 have define-method create the generic if it didn't already exist.  This
 never seems to have worked satisfactorily, and the documentation in eggref
 3 discusses its limitations and recommends the use of define-generic.  If
 my tests continue to indicate that the code is basically reliable, I'll
 release the egg for Chicken 4 with amended documentation indicating that
 define-generic is now mandatory.

 As Felix has indicated, the code has been heavily optimized and it can be
 a bit intimidating.  I think it can be cleaned up a bit, though.  The
 primitive class system can be put into a file of its own, as can much of
 the caching code, the generic invocation subsystem and the class bootstrap
 sequence.  Dividing the code up by functional area in this way would make
 the subsystems easier to understand.  And of course much easier to
 document.  I'll also write a proper test suite for this important egg.

-- 
Ticket URL: <http://www.irp.oist.jp/trac/chicken/ticket/32#comment:11>
Chicken Scheme <http://www.call-with-current-continuation.org/>
Chicken Scheme is a compiler for the Scheme programming language.

reply via email to

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