From: <don...@is...> - 2008-06-13 23:42:11
|
This may have occurred before 2.41, but surely after 2.38. > (defmacro test1 (&rest wff &environment env) t) TEST1 > (test1 asd) T > (test1 . asd) *** - The macro TEST1 may not be called with a dotted argument list: (TEST1 . ASD) Why is it a problem to call a macro with a dotted argument list? |
From: Sam S. <sd...@gn...> - 2008-06-15 03:27:19
|
Don Cohen wrote: > This may have occurred before 2.41, but surely after 2.38. broken on 2006-04-15, fixed on 2008-06-13 :-) you should upgrade more often! |
From: <don...@is...> - 2008-06-15 04:57:23
|
Sam Steingold writes: > Don Cohen wrote: > > This may have occurred before 2.41, but surely after 2.38. > > broken on 2006-04-15, fixed on 2008-06-13 :-) > you should upgrade more often! Every hour, it seems. Alternatively I should rebuild ap5 more often so that I can discover such bugs earlier. (This is probably the first rebuild since 2006.) Maybe you would like to add ap5 to your test suite. Unfortunately, when something goes wrong, I might be the only one who can debug it. |
From: Sam S. <sd...@gn...> - 2008-06-15 18:17:54
|
Don Cohen wrote: > Sam Steingold writes: > > Don Cohen wrote: > > > This may have occurred before 2.41, but surely after 2.38. > > > > broken on 2006-04-15, fixed on 2008-06-13 :-) > > you should upgrade more often! > Every hour, it seems. upgrading to each new release would be sufficient > Alternatively I should rebuild ap5 more often so that I can discover > such bugs earlier. (This is probably the first rebuild since 2006.) a nightly cron job doing "cvs up && make && cd ..../ap5 && remake && make check" would be quite enough > Maybe you would like to add ap5 to your test suite. Unfortunately, ap5 comes with no license, so we cannot distribute it anyway. it also comes with its own loop implementation. why? > when something goes wrong, I might be the only one who can debug it. too bad. I have an alternative proposition: I will mention ap5 on http://clisp.cons.org/resources.html and you will setup the aforementioned cron job. You might also consider linking to the implementations you use on the main http://ap5.com/ page. thanks for reporting bugs! |
From: <don...@is...> - 2008-06-15 19:06:49
|
> ap5 comes with no license, so we cannot distribute it anyway. My view is that it's public domain. My impression is that such views can always be challenged in court and that there's no other way to test them. I suppose your need for a license could be satisfied if I simply added a license file to the source? If it just said that this is public domain then I guess that would not be adequate for your purpose. If it said that the result of removing this license file from the source is public domain, but that the version with this file is distributed under GPL, that would be satisfactory? Other than the the possible question of whether I have any right to distribute it at all, of course. > it also comes with its own loop implementation. why? Because it has to extend loop to support (loop for (x y z) s.t. <wff> ...) The loop extension mechanism is not standardized. Therefore the most portable way of doing this was to make my own extension of the MIT loop macro -- Ah, there's a license. I assume that (in ansi-loo.lsp) is no obstacle. > I have an alternative proposition: I will mention ap5 on > http://clisp.cons.org/resources.html and you will setup the > aforementioned cron job. possibly 1/month - seems plausible. If I manage that then I can mention it on the ap5.com page. > You might also consider linking to the implementations you use on the > main http://ap5.com/ page. I'm pretty sure it mentions which ones are known to work, but I don't try to rebuild in every version. But I can certainly change the "mention"s to links. |
From: <don...@is...> - 2008-06-16 00:40:12
|
Sam Steingold writes: > a nightly cron job doing "cvs up && make && cd ..../ap5 && remake && > make check" would be quite enough Now I've managed to update lisp and build ap5 once. BTW, this is interesting: [1]> (lisp-implementation-version) "2.46 (2008-07-07) (built 3422562523) (memory 3422563731)" Where did that 07-07 come from? My system clock thinks (correctly, I believe) that it's still only 2008-06-15. I'm still trying to figure out what the cron job should do. Your instruction above seems a little too terse for me. I believe it should start like this: cd /tmp/clisp cvs -z3 -d:pserver:ano...@cl...:/cvsroot/clisp update (Is all that really the same as just "cvs up" ?) At this point should it then do another configure? That seems a waste in most cases, though I suppose the configure script also changes. I'm guessing the normal thing would be cd build-dir make which currently takes almost no time (since there are no updates since the last build). Then the idea would be to look at the output and see whether it ended with any errors? In terms of rebuilding ap5, there's no notion of which parts of ap5 depend on which parts of clisp, so ap5 has to be rebuilt from scratch. Of course, that only takes about a minute and a half nowadays. The remake meant to remake ap5, I assume. The make check was supposed to be something to check ap5? I've always found that making ap5 uses enough of ap5 to be a good test. That has also proven to be a good test of lisp, of course. |
From: Sam S. <sd...@gn...> - 2008-06-15 19:02:54
|
I found this script easier to use than your 2: ========================================================= (in-package :cl-user) (defpackage "AP5" (:use "CL") (:nicknames "ap5")) (in-package :ap5) (defparameter *top* (pathname "/usr/local/src/ap5/")) (defparameter *bin* (let ((liv (lisp-implementation-version))) (make-pathname :directory (append (pathname-directory *top*) (list (concatenate 'string "bin-" (subseq liv 0 (position #\Space liv))))) :defaults *top*))) (load (merge-pathnames "compile-.lsp" *top*)) (setf source-default-path (merge-pathnames "foo.lsp" *top*) bin-default-path (merge-pathnames "foo.fas" *bin*)) (ensure-directories-exist bin-default-path :verbose t) (ext:fcase equal ext:*args* ((("recompile")) (compile-ap5 :recompile t)) ((("savemem")) (load-ap5) (ext:saveinitmem (merge-pathnames "ap5" *bin*) :executable t :norc t :documentation "AP5")) ((NIL) (format t "usage: ~S [recompile|load]~%" *load-truename*)) (t (error "invalid arguments: ~S" ext:*args*))) ========================================================= save it in clisp-build.lisp and run like this: $ clisp clisp-build.lisp recompile $ clisp clisp-build.lisp savemem $ ./bin-2.45/ap5 |
From: Sam S. <sd...@gn...> - 2008-06-16 02:52:41
|
Don Cohen wrote: > Sam Steingold writes: > > > a nightly cron job doing "cvs up && make && cd ..../ap5 && remake && > > make check" would be quite enough > Now I've managed to update lisp and build ap5 once. > BTW, this is interesting: > [1]> (lisp-implementation-version) > "2.46 (2008-07-07) (built 3422562523) (memory 3422563731)" > Where did that 07-07 come from? My system clock thinks (correctly, I > believe) that it's still only 2008-06-15. this "time in the future" means that you are running a not yet released development version. > I'm still trying to figure out what the cron job should do. Your > instruction above seems a little too terse for me. > I believe it should start like this: > cd /tmp/clisp > cvs -z3 -d:pserver:ano...@cl...:/cvsroot/clisp update > (Is all that really the same as just "cvs up" ?) yes, if you have the tree there already. > At this point should it then do another configure? no > That seems a waste in most cases, though I suppose the configure > script also changes. I'm guessing the normal thing would be > cd build-dir > make > > which currently takes almost no time (since there are no updates since > the last build). sure. that would be quite common. > Then the idea would be to look at the output and see whether it ended > with any errors? $? will tell you if you succeeded. if you want to be extra careful, do "make && make check". > In terms of rebuilding ap5, there's no notion of which parts of ap5 > depend on which parts of clisp, so ap5 has to be rebuilt from scratch. sure, this should be good enough. > The remake meant to remake ap5, I assume. The make check was supposed > to be something to check ap5? I've always found that making ap5 uses > enough of ap5 to be a good test. That has also proven to be a good test > of lisp, of course. OK. so what you'd do is cd clisp cvs up make && make check || exit 1 cd .../ap5 rm -rf bin-* ..../clisp clisp-build.lisp remake && .../clisp clisp-build.lisp savemem I urge you to do this nightly instead of monthly - unless this is a very busy machine. |
From: <don...@is...> - 2008-06-18 00:34:24
|
Sam Steingold writes: > > [1]> (lisp-implementation-version) > > "2.46 (2008-07-07) (built 3422562523) (memory 3422563731)" > > Where did that 07-07 come from? My system clock thinks (correctly, I > > believe) that it's still only 2008-06-15. > this "time in the future" means that you are running a not yet released > development version. Just curious, how was 07-07 chosen/computed? The main purpose of this msg is to mention that I do now have a nightly cron job. I leave out the make check since I figure others will do that, and it takes a lot longer than everything else. > > Then the idea would be to look at the output and see whether it ended > > with any errors? I do get a daily email with a long transcript. Fortunately, I find that I can pretty much skip to the end. The end of the script does a very short test (count relations) and ls -l on the (supposedly) just rebuilt ap5 image. If its write date is today and the relation count appears to have worked then I figure it built ok and still works. I tried for a while to use a lot of &&'s and ||'s to send mail to myself about whatever first failed. It appeared to be working in some preliminary tests but I didn't couldn't get it to work in the build script. Probably I should just replace the shell script with a lisp script. |
From: Sam S. <sd...@gn...> - 2008-06-16 03:00:17
|
Don Cohen wrote: > > ap5 comes with no license, so we cannot distribute it anyway. > My view is that it's public domain. who wrote it? you did? any other contributors? > My impression is that such views can always be challenged in court > and that there's no other way to test them. we do not want to go to court to find out we did something wrong. a simple "due diligence" should suffice here. > Other than the the possible question of whether > I have any right to distribute it at all, of course. that's the point :-) who wrote it? what's the history? BTW, all these question should be answered on the web page... > > it also comes with its own loop implementation. why? > Because it has to extend loop to support > (loop for (x y z) s.t. <wff> ...) > The loop extension mechanism is not standardized. Therefore the > most portable way of doing this was to make my own extension of the > MIT loop macro -- Ah, there's a license. > I assume that (in ansi-loo.lsp) is no obstacle. not at all. we already distribute mit loop with mit clx. |
From: <don...@is...> - 2008-06-16 04:08:56
|
Sam Steingold writes: > Don Cohen wrote: > > > ap5 comes with no license, so we cannot distribute it anyway. > > My view is that it's public domain. > who wrote it? I did (other than next question) > any other contributors? yes, in small amounts (you'll see some markers in the source) These contributions were under the same circumstances as below. > > Other than the the possible question of whether > > I have any right to distribute it at all, of course. > that's the point :-) > who wrote it? > what's the history? The relevant points, I believe, are: - It was written while I was working for Univ. Southern California under a contract that said that whatever I produced as part of that work belonged to USC. - But the source was also made available during that time on public FTP. That time included time before some magic date in 1989 that I don't remember, which, I believe, makes it public domain. - It's hard to prove that it was or was not available on public FTP. I believe it was there from ~1985 until well after I left USC ('95). As far as I know, nobody has any backup tapes. - The source at ap5.com has been maintained by me since it was put there (don't remember when, probably early 90's), but the changes have been very minor. > BTW, all these question should be answered on the web page... I'll be happy to add all above and whatever else might be considered relevant. |
From: Sam S. <sd...@gn...> - 2008-06-18 04:29:57
|
Don Cohen wrote: > Sam Steingold writes: > > > [1]> (lisp-implementation-version) > > > "2.46 (2008-07-07) (built 3422562523) (memory 3422563731)" > > > Where did that 07-07 come from? My system clock thinks (correctly, I > > > believe) that it's still only 2008-06-15. > > this "time in the future" means that you are running a not yet released > > development version. > Just curious, how was 07-07 chosen/computed? an arbitrary date in the future, approximately 2-3 months from the current release date, which cannot be misinterpreted wrt MM vs DD (i.e., either MM=DD or DD>12). > The main purpose of this msg is to mention that I do now have a > nightly cron job. great! what is the platform? are you using the script I posted? |
From: <don...@is...> - 2008-06-18 04:39:21
|
Sam Steingold writes: > > The main purpose of this msg is to mention that I do now have a > > nightly cron job. > > great! what is the platform? linux 2.6.17-1.2142_FC4 > are you using the script I posted? a modified version: ==== cron script #!/bin/bash # update clisp, rebuild ap5 cd /tmp/clisp cvs up cd build-dir make && \ cd /tmp/clisp/build-dir/full/ && \ ./lisp.run -M ./lispinit.mem -i /home/don/ap5-2006/clisp-build.lisp -x "(ap5::recompile)" && \ ./lisp.run -M ./lispinit.mem -i /home/don/ap5-2006/clisp-build.lisp -x "(ap5::load-save)" /tmp/ap5-2.46 -p ap5 -x "(loop for x s.t. (relation x) count t)" ls -l /tmp/ap5-2.46 ==== clisp-build.lisp (in-package :cl-user) (defpackage "AP5" (:use "CL") (:nicknames "ap5")) (in-package :ap5) (defparameter *top* (pathname "/home/don/ap5-2006/")) (defparameter *liv* (let ((liv (lisp-implementation-version))) (subseq liv 0 (position #\Space liv)))) (defparameter *bin* (make-pathname :directory (append (pathname-directory *top*) (list (concatenate 'string "bin-" *liv*))) :defaults *top*)) (load (merge-pathnames "compile-.lsp" *top*)) (setf source-default-path (merge-pathnames "foo.lsp" *top*) bin-default-path (merge-pathnames "foo.fas" *bin*)) (ensure-directories-exist bin-default-path :verbose t) (format t "ext:*args* = ~a" ext:*args*) (defun recompile()(compile-ap5 :recompile t)) (defun load-save() (load-ap5) (ext:saveinitmem (format nil "/tmp/ap5-~a" *liv*) :executable t :norc t :documentation "AP5")) ==== I see I do have .46 in the cron script at the moment. Which would again be easier to fix if I used lisp as the scripting language. |