This is the mail archive of the kawa@sourceware.org mailing list for the Kawa project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [GSoC] Parameter protocols in CL


Well, I think I've finally found the offending bit of code, after
going through all the primitives, uncommenting a method at a time!
Sigh.

 ;; FIXME: Do this through a thread-location instead.
 (defun in-package (name)
   (let ((package (find-package-or-error name)))
     (progn
       (invoke-static class::|gnu.kawa.lispexpr.LispPackage|
 		     '|setCurrentPackage| package)
       (setq *package* package))))

(in-package "CL-USER") ; <-- This causes the literals error (guess
what position it was in a 400-line file. That's right, the bottom.)

It's the (setq *package* package). I've made *package* a
defStdAliasFld, which I still don't see anything wrong about. It seems
like similar static members that follow this approach in Scheme are
constants, whilst the variable ones are thread locations. Is that the
case? Two days on the hunt for this... Did I miss something well known
in the programming community, or could we do with a better diagnostic
here? If what I said above is remotely correct, I suppose you also
have to declare the aliased static field as a constant somewhere?

Sorry about the time I spent on this bug! Just couldn't understand
what was happening :'-(

Charles.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]