Alright, so I've completed the parts of SRFI-18 that absolutely needed to be written in C. I didn't modify the signatures of any existing parts of the API, although I did add some new functions and change behavior in a few places where I don't think it'll affect too many people (and which I'll describe at length once I've got things rolled up into a patch).
Now I'm working on the things that can be implemented in Scheme. SRFI-18 defines a few functions whose names conflict with some of Guile's built-in primitives -- e.g., make-mutex and make-condition-variable -- and which have slightly different behavior (SRFI-18 make-condition-variable takes an optional argument that you can use to "name" the condition var). To work around this, I was going to create backup bindings of the original primitives and then refer to them in my scheme reimplementations, a la: (define guile:make-condition-variable make-condition-variable) (define (make-condition-variable . foo) (let ((m (guile:make-condition-variable))) (do-something))) ...and even if the user noticed the slightly different behavior, that would be okay, because she'd specifically requested it by loading (srfi srfi-18). Unfortunately, it doesn't seem possible to refer to a top-level primitive function from within a module body. I get "Unbound variable: make-condition-variable." What am I doing wrong? (Strangely enough, this doesn't seem to be an issue for 'make-mutex'.) Regards, Julian _______________________________________________ Guile-devel mailing list Guile-devel@gnu.org http://lists.gnu.org/mailman/listinfo/guile-devel