From david.cooper at genworks.com Thu Aug 30 03:11:33 2012 From: david.cooper at genworks.com (Dave Cooper) Date: Wed, 29 Aug 2012 23:11:33 -0400 Subject: [lift-devel] Compilation of macros.lisp fails in Allegro CL 9.0 Message-ID: Hello, [To Franz support -- please supersede my previous message from today with this one - the asdf problem is fixed with latest asdf, so for right now only this Lift problem remains -- I am reporting to the Lift development mailing list, but I'm not sure if anyone on that list has access to ACL 9.0, so copying it to Franz Inc. as well] In current Lift, available in quicklisp with (ql:quickload :lift) the compilation of macros.lisp fails with the following error message: Object # cannot be written to a compiled file unless an applicable method is defined on make-load-form. [Condition of type program-error] It is not apparent to me from looking at the code what the problem is or where such a "ha$h table" would be coming from? If I hear from Franz with a fix, I will forward it to this list. If I hear from the list first, I will make Franz Inc as well. -- My Best, Dave Cooper, Genworks Support david.cooper at genworks.com, dave.genworks.com(skype) USA: 248-327-3253(o), 1-248-330-2979(mobile) UK: 0191 645 1699 From gwking at metabang.com Thu Aug 30 16:22:27 2012 From: gwking at metabang.com (Gary King) Date: Thu, 30 Aug 2012 12:22:27 -0400 Subject: [lift-devel] Compilation of macros.lisp fails in Allegro CL 9.0 In-Reply-To: References: Message-ID: Hi David, Thanks for bringing this to my attention. I'll look into it this weekend. On Aug 29, 2012, at 11:11 PM, Dave Cooper wrote: > Hello, > > [To Franz support -- please supersede my previous message from today > with this one - the asdf problem is fixed with latest asdf, so for > right now only this Lift problem remains -- I am reporting to the Lift > development mailing list, but I'm not sure if anyone on that list has > access to ACL 9.0, so copying it to Franz Inc. as well] > > > In current Lift, available in quicklisp with > > (ql:quickload :lift) > > the compilation of macros.lisp fails with the following error message: > > > Object # cannot be written to a compiled > file unless an applicable method is defined on make-load-form. > [Condition of type program-error] > > > It is not apparent to me from looking at the code what the problem is > or where such a "ha$h table" would be coming from? > > If I hear from Franz with a fix, I will forward it to this list. > > If I hear from the list first, I will make Franz Inc as well. > > > -- > > My Best, > > Dave Cooper, Genworks Support > david.cooper at genworks.com, dave.genworks.com(skype) > USA: 248-327-3253(o), 1-248-330-2979(mobile) > UK: 0191 645 1699 > > _______________________________________________ > lift-devel mailing list > lift-devel at common-lisp.net > http://lists.common-lisp.net/cgi-bin/mailman/listinfo/lift-devel -- Gary Warren King, metabang.com Cell: (413) 559 8738 Fax: (206) 338-4052 gwkkwg on Skype * garethsan on AIM * gwking on twitter From david.cooper at genworks.com Fri Aug 31 20:01:15 2012 From: david.cooper at genworks.com (Dave Cooper) Date: Fri, 31 Aug 2012 16:01:15 -0400 Subject: [lift-devel] Compilation of macros.lisp fails in Allegro CL 9.0 In-Reply-To: References: Message-ID: Hi Gary, For what it's worth, it looks like the compile error is coming from the (defmacro defcondition (...) ...) in macros.lisp (the last definition in that file). I'm trying to figure it out myself now, but I can't see that the definition is doing anything with hash tables at compile time, so I have a feeling this is some internal Franz thing with their compiler --- I'm not sure if it will be within my expertise level to track down or fix this... Best Regards, Dave Cooper On Thu, Aug 30, 2012 at 12:22 PM, Gary King wrote: > Hi David, > > Thanks for bringing this to my attention. I'll look into it this weekend. > > > On Aug 29, 2012, at 11:11 PM, Dave Cooper wrote: > >> Hello, >> >> [To Franz support -- please supersede my previous message from today >> with this one - the asdf problem is fixed with latest asdf, so for >> right now only this Lift problem remains -- I am reporting to the Lift >> development mailing list, but I'm not sure if anyone on that list has >> access to ACL 9.0, so copying it to Franz Inc. as well] >> >> >> In current Lift, available in quicklisp with >> >> (ql:quickload :lift) >> >> the compilation of macros.lisp fails with the following error message: >> >> >> Object # cannot be written to a compiled >> file unless an applicable method is defined on make-load-form. >> [Condition of type program-error] >> >> >> It is not apparent to me from looking at the code what the problem is >> or where such a "ha$h table" would be coming from? >> >> If I hear from Franz with a fix, I will forward it to this list. >> >> If I hear from the list first, I will make Franz Inc as well. >> >> >> -- >> >> My Best, >> >> Dave Cooper, Genworks Support >> david.cooper at genworks.com, dave.genworks.com(skype) >> USA: 248-327-3253(o), 1-248-330-2979(mobile) >> UK: 0191 645 1699 >> >> _______________________________________________ >> lift-devel mailing list >> lift-devel at common-lisp.net >> http://lists.common-lisp.net/cgi-bin/mailman/listinfo/lift-devel > > -- > Gary Warren King, metabang.com > Cell: (413) 559 8738 > Fax: (206) 338-4052 > gwkkwg on Skype * garethsan on AIM * gwking on twitter > -- My Best, Dave Cooper, Genworks Support david.cooper at genworks.com, dave.genworks.com(skype) USA: 248-327-3253(o), 1-248-330-2979(mobile) UK: 0191 645 1699 From gwking at metabang.com Fri Aug 31 20:30:19 2012 From: gwking at metabang.com (Gary King) Date: Fri, 31 Aug 2012 16:30:19 -0400 Subject: [lift-devel] Compilation of macros.lisp fails in Allegro CL 9.0 In-Reply-To: References: Message-ID: <40EE22DD-D896-489D-A472-7E45603840DD@metabang.com> Hi David, > For what it's worth, it looks like the compile error is coming from the > > (defmacro defcondition (...) ...) > It's actually the use of the newlinify macro in defcondition. The newlinify code is incorrect in that it causes a copy of the current environment to be externalized on use. It's my understanding that the environment is very implementation dependent and so there is no expectation that you should be able to do this. Also, there is no need since doing so is quite inefficient. A better version of newlinify would be (defmacro newlinify (format &environment e) (declare (ignorable e)) #+allegro (if (and (constantp format e) (stringp (sys:constant-value format e))) (excl::newlinify-format-string (sys:constant-value format e)) `(excl::newlinify-format-string ,format)) #-allegro format) I'm intending to make a patch for this this weekend but if you have time to test it in your setup, that would be great. thanks, -- Gary Warren King, metabang.com Cell: (413) 559 8738 Fax: (206) 338-4052 gwkkwg on Skype * garethsan on AIM * gwking on twitter From david.cooper at genworks.com Fri Aug 31 22:06:23 2012 From: david.cooper at genworks.com (Dave Cooper) Date: Fri, 31 Aug 2012 18:06:23 -0400 Subject: [lift-devel] Compilation of macros.lisp fails in Allegro CL 9.0 In-Reply-To: <40EE22DD-D896-489D-A472-7E45603840DD@metabang.com> References: <40EE22DD-D896-489D-A472-7E45603840DD@metabang.com> Message-ID: Hi Gary, Thank you for the info. With your below redefinition of newlinify, (ql:quickload :lift) now completes with no warnings or errors in Allegro CL 9.0 (non-SMP -- I will check SMP later but this was giving the same error as non-SMP so I predict the fix will be the same as well). I will now try running through our regression suite and will advise further. Best Regards, Dave On Fri, Aug 31, 2012 at 4:30 PM, Gary King wrote: > Hi David, > >> For what it's worth, it looks like the compile error is coming from the >> >> (defmacro defcondition (...) ...) >> > > It's actually the use of the newlinify macro in defcondition. The newlinify code is incorrect in that it causes a copy of the current environment to be externalized on use. It's my understanding that the environment is very implementation dependent and so there is no expectation that you should be able to do this. Also, there is no need since doing so is quite inefficient. A better version of newlinify would be > > > (defmacro newlinify (format &environment e) > (declare (ignorable e)) > #+allegro > (if (and (constantp format e) > (stringp (sys:constant-value format e))) > (excl::newlinify-format-string (sys:constant-value format e)) > `(excl::newlinify-format-string ,format)) > #-allegro > format) > > I'm intending to make a patch for this this weekend but if you have time to test it in your setup, that would be great. > > thanks, > > -- > Gary Warren King, metabang.com > Cell: (413) 559 8738 > Fax: (206) 338-4052 > gwkkwg on Skype * garethsan on AIM * gwking on twitter > -- My Best, Dave Cooper, Genworks Support david.cooper at genworks.com, dave.genworks.com(skype) USA: 248-327-3253(o), 1-248-330-2979(mobile) UK: 0191 645 1699