*clos-booted* is taken in wrong package for streams.lsp
This was spotted by drmeister and applies (in exactly same way) to ECL. Simply fixing the package breaks build, but not having *clos-booted* allows subclassing builtin-class.
Reverted commit: 04e8b63b
16:23 < drmeister> And gray::*clos-booted* is clearly not what was intended
16:24 < drmeister> But when I switch to (setf clos::*clos-booted* T) it breaks the build with no error message when it compile-file's (defclass fundamental-stream (standard-object stream) ((open-p :initform
t :accessor open-stream-p)) (:documentation "the base class for all CLOS streams"))
16:24 < drmeister> Which is inheriting from stream - which is a built-in class
16:25 < Bike> Wait, but isn't the setf after that.
16:25 < drmeister> I think the problem is that Clasp first LOAD's streams.lsp and then compile-file's it.
16:25 < Bike> oh, christ. yeah that's probably it.
16:26 < drmeister> I'm thinking I want at the bottom of streams.lsp to have (eval-when (:load-toplevel) (setf clos::*clos-booted* T))
16:27 < drmeister> Actually, it's going to be a problem every time we redefine the fundamental-stream class.
16:28 < drmeister> I think I only want clos::*clos-booted* to be T when cclasp loads.
16:29 < drmeister> After all, this is to signal an error if someone tries to define a class that inherits from a built-in class - correct?
16:29 < Bike> yeah.
16:29 < drmeister> The build system does this several times and it's ok.
16:29 < drmeister> We don't want users to do this though.
16:30 < drmeister> The bottom of streams.lsp is where it sets (setf clos::*clos-booted* T) - where it indicates that clos is fully booted.
16:30 < drmeister> I want #+cclasp(eval-when (:load-toplevel) (setf clos::*clos-booted* T))
16:31 < Bike> yeah, i guess it's fine to do it all the way at the end like that.
16:31 < drmeister> The build system has to "break the rules" to get things up and running.
16:32 < drmeister> Previously clos::*clos-booted* was never T and anyone could define classes that inherit from built-in classes and everything worked fine.