[Top][All Lists]
[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.
- [Chicken-janitors] Re: #32: get tinyclos egg for chicken 4 to work, Chicken Trac, 2009/11/02
- [Chicken-janitors] Re: #32: get tinyclos egg for chicken 4 to work, Chicken Trac, 2009/11/03
- [Chicken-janitors] Re: #32: get tinyclos egg for chicken 4 to work, Chicken Trac, 2009/11/03
- [Chicken-janitors] Re: #32: get tinyclos egg for chicken 4 to work, Chicken Trac, 2009/11/05
- [Chicken-janitors] Re: #32: get tinyclos egg for chicken 4 to work, Chicken Trac, 2009/11/05
- [Chicken-janitors] Re: #32: get tinyclos egg for chicken 4 to work, Chicken Trac, 2009/11/05
- [Chicken-janitors] Re: #32: get tinyclos egg for chicken 4 to work, Chicken Trac, 2009/11/05
- [Chicken-janitors] Re: #32: get tinyclos egg for chicken 4 to work, Chicken Trac, 2009/11/05
- [Chicken-janitors] Re: #32: get tinyclos egg for chicken 4 to work,
Chicken Trac <=
- [Chicken-janitors] Re: #32: get tinyclos egg for chicken 4 to work, Chicken Trac, 2009/11/09
- [Chicken-janitors] Re: #32: get tinyclos egg for chicken 4 to work, Chicken Trac, 2009/11/09
- [Chicken-janitors] Re: #32: get tinyclos egg for chicken 4 to work, Chicken Trac, 2009/11/09
- [Chicken-janitors] Re: #32: get tinyclos egg for chicken 4 to work, Chicken Trac, 2009/11/09
- [Chicken-janitors] Re: #32: get tinyclos egg for chicken 4 to work, Chicken Trac, 2009/11/10
- [Chicken-janitors] Re: #32: get tinyclos egg for chicken 4 to work, Chicken Trac, 2009/11/10