Greetings! Normally compiled object modules (".o" files) by gcc follow the 'medium' memory model assumptions, and must be loaded within a limited range of the base image (typically 2GB). GCL has several ways to work around this:
1) If a large heap is not needed, the total size can be limited at runtime via the environment variable GCL_MEM_MULTIPLE 2) (progn (setq si::*code-block-reserve* (make-array 50000000 :element-type 'character :static t)) nil) will allocate 50Mb for code early on in a low address range before the heap grows out of range. 3) :large-memory-model t arguments to compile file (alternatively compiler::*default-large-memory-model-p* setting) will produce .o files which can be loaded at all addresses at a performance cost of about 10%. I would suggest estimating your code size needs and using 2) in the acl2 build stage. Take care, Matt Kaufmann <matthew.j.kaufm...@gmail.com> writes: > Hi Camm, > > When I built ACL2 with GCL 2.6.14 on my Mac and then ran > > (time make proofs LISP=my-fast-gcl) >& make-proofs.log& > > where my-fast-gcl points to a script with > > gcl -eval "(defparameter user::*fast-acl2-gcl-build* t)" "$@" > > then I got this error. > > ~/acl2/acl2$ tail -20 make-proofs.log > > ACL2 loading '((COMP-FN :EXEC NIL "1" STATE)). > ACL2 !>(COMP-FN :EXEC NIL "1" STATE) > > Error: > Fast links are on: do (si::use-fast-links nil) for debugging > Signalled by INITIALIZE-ACL2. > > Raw Lisp Break. > Condition in INITIALIZE-ACL2 [or a callee]: INTERNAL-SIMPLE-ERROR: The > assertion ovchk(v,~m) on line 61 of > /Users/kaufmann/lisps/gcl/gcl-2.6.14/o/sfaslmacho.c in function store_val > failed: Undefined error: 0 > > Broken at APPLY. Type :H for Help. > 1 Return to top level. > ACL2>>Initialization FAILED: acl2-status.txt should contain :INITIALIZED. > make[1]: *** [check_init_ok] Error 1 > make: *** [proofs] Error 2 > > real 14m13.032s > user 10m39.508s > sys 2m35.435s > ~/acl2/acl2$ > > I'm probably going to start my release process for ACL2 Version 8.6 > shortly. I did a successful regression on my Mac with GCL 2.6.12 > (which also had the "make proofs" problem), and users don't do > "make proofs", and I can do that with other Lisps -- so I don't feel > the need to wait for a fix. But I thought I should let you know. > > Oh, and regarding my previous question: I no longer need to > be able to tell how many arguments c2call-local has in > a given GCL > > -- Matt > > On Wed, Oct 2, 2024 at 11:00 AM Matt Kaufmann <matthew.j.kaufm...@gmail.com> > wrote: > > Hi Camm, > > Is there an easy way to tell how many arguments c2call-local has in > a given GCL? I think your implicit point earlier was that even "2.6.12" can > be such that sometimes that function has 2 arguments and sometimes > it has 4. > > Thanks, > Matt > > On Wed, Oct 2, 2024 at 10:55 AM Matt Kaufmann <matthew.j.kaufm...@gmail.com> > wrote: > > Good question on gcl27. I just checked, and apparently my last successful > gcl build was many months ago, and maybe not with 2.7.0. Sorry! > -- Matt > > On Wed, Oct 2, 2024 at 10:31 AM Camm Maguire <c...@maguirefamily.org> wrote: > > Greetings again! And just confirming you did have a successful gcl27 > build before a few days ago on this same tree.... > > Take care, > > Matt Kaufmann <matthew.j.kaufm...@gmail.com> writes: > > > Hi Camm, > > > > I've never seen that error. I wonder if call-argument-limit is > > somehow being applied to let* where before it was only applied to > > function calls. > > > > Thanks for your two suggested fixes. Since GCL 2.6.12 is quite old > > now, and I already tried to condition the installation of > > c2funcall-new as c2funcall (see the WHEN form just below the > > definition of c2funcall-new), then unless you have a better idea, I'll > > probably just remove that code. > > > > I was able to build ACL2 successfully and run a regression without any > > GCL problems, using /projects/acl2/lisps/gcl/gcl-2.6.14/bin/gcl. So I > > have that as a backup, which makes 2.7.0 less urgent for me. > > > > Thanks, > > Matt > > > > On Wed, Oct 2, 2024 at 8:24 AM Camm Maguire <c...@maguirefamily.org> wrote: > > > > Greetings! /p/bin/gcl27 has been updated and the issue you raised > > removed. But at least on the master branch of acl2 I now get: > > > > Raw Lisp Break. > > Condition in LET* [or a callee]: INTERNAL-SIMPLE-PROGRAM-ERROR: LET* [or > a callee] requires less than one hundred forty-eight arguments. > > > > Was this issue not there before yesterday? Are you working with a > > different branch? call-arguments-limit in GCL has always been ~64. > > > > Take care, > > > > Camm Maguire <c...@maguirefamily.org> writes: > > > > > Greetings! > > > > > > Please accept my apologies -- I was unaware of your release schedule and > > > under the impression that no intrepid soul would attempt this build > > > until I got around to testing in in the space you so graciously > > > provided. That said it is very good news that it is working for you. > > > > > > I will be installing "git: Version_2_7_0pre28" in a few hours to address > > > the issue you found. > > > > > > Separately, I suggest: > > > > > > #+gcl > > > (declaim (ftype (function (si::seqind t) t) si::set-mv)) > > > > > > in init.lisp, as 'si is the homepackage of 'seqind, and > > > perhaps conditionalizing he c2funcall-new definition function itself by > > > gcl version (if possible), as the call to c2call-local requires 4 > > > arguments in later gcl versions. This is only cosmetic to avoid > > > needless warnings, as the code of course is not used in recent gcl > > > versions. > > > > > > I will henceforward ensure /p/bin/gcl27 introduces no new acl2 problems > > > without first coordinating with you. > > > > > > Take care, > > > > > > Matt Kaufmann <matthew.j.kaufm...@gmail.com> writes: > > > > > >> Hi Camm, > > >> > > >> A moment ago an ACL2 build at UT CS failed using /p/bin/gcl27, > although that > > >> has worked fine in the past. I've attached both a shell log (log.txt) > that has > > >> all the information you need to reproduce the problem, as well as the > > >> output log (make.log) from the attempted build. I was planning to > start testing > > >> for a release in the next few days, so if you can't get this working > soon, > > >> could you restore the /p/bin/gcl27 that was there till recently > (perhaps in a > > >> different location)? > > >> > > >> Thanks, > > >> Matt > > >> > > >> On Tue, Oct 1, 2024 at 9:46 PM Camm Maguire <c...@maguirefamily.org> > wrote: > > >> > > >> Greetings, and so lovely to here from you! > > >> > > >> I agree about the bug and will commit this shortly: > > >> > > >> modified gcl/lsp/gcl_seqlib.lsp > > >> @@ -381,8 +381,7 @@ > > >> (string (sort sequence predicate :key key)) > > >> (bit-vector (sort sequence predicate :key key)) > > >> (otherwise > > >> - (coerce (list-merge-sort (coerce sequence 'list) predicate key) > > >> - (seqtype sequence))))) > > >> + (replace sequence (list-merge-sort (coerce sequence 'list) > predicate key))))) > > >> > > >> (eval-when (compile eval) > > >> (defmacro f+ (x y) `(the fixnum (+ (the fixnum ,x) (the fixnum > ,y)))) > > >> > > >> Implementing vector-merge-sort with displaced arrays is a future > > >> improvement. Incorporating your file even more so! I've downloaded > it > > >> and am investigating.... > > >> > > >> You may be interested to check out /p/bin/gcl27 at ut. I've just > > >> refreshed it. This is pre-release, the chief release obstacle being > > >> compiler speed. Notably type inferencing on nested loops is > exponential > > >> in the number of loops at present. I am in dialogue with some cmucl > > >> compiler developers on a possible better course, but I don't see the > > >> solution yet. This being said, essentially all of the improvements we > > >> worked on long ago are incorporated here, which I can detail to > refresh > > >> your memory if desired. All ansi tests pass. Getting this release > > >> worthy is on my bucket list. > > >> > > >> Take care, > > >> > > >> Robert Boyer <robertstephenbo...@gmail.com> writes: > > >> > > >> > Dear Camm, > > >> > > > >> > I cannot express how pleased I am that I can do sudo get-apt > install acl2! > > >> > > > >> > I think there might be a bug in GCL's stable-sort, at least with > respect to > > >> > the ANSI standard. > > >> > > > >> > >(setq foo #(("foo" . 1) ("bar" . 2))) > > >> > > > >> > #(("foo" . 1) ("bar" . 2)) > > >> > > > >> > >(stable-sort foo 'string< :key 'car) > > >> > > > >> > #(("bar" . 2) ("foo" . 1)) > > >> > > > >> > >foo > > >> > > > >> > #(("foo" . 1) ("bar" . 2)) > > >> > > > >> > > > > >> > > > >> > I think that stable-sort is intended to smash its first arg. > > >> > > > >> > http://clhs.lisp.se/Body/f_sort_.htm#stable-sort > > >> > > > >> > says > > >> > > > >> > sort and stable-sort destructively sort sequences according to the > order > > >> > determined by the predicate function. > > >> > > > >> > By the way, I highly recommend that you consider the file > 'nms.lisp' on my working directory, below, as a replacement for > > >> > stable-sort in gcl. The function 'msa' is 3 times faster than > SBCL's stable sort. I intend it to be a complete > > >> > 'drop-in' replacement for stable-sort in Common Lisp, so let me > know if you determine the slightest flaw in it, however tiny. > > >> > > > >> > With Highest Regards, > > >> > > > >> > Bob > > >> > > > >> > Here is my working directory: > > >> > > https://drive.google.com/drive/folders/1UoCT8YaisJBE-deMYJ8n1VE1rNg6K_MW?usp=drive_link > > >> > > > >> > The file 0README.txt has more about me than you probably care to > know. > > >> > > > >> > ... to take away the possibility of the vision of the divine > essence by man is to take away happiness itself. Aquinas, Com. John, Ch 1 Lec > 11 Sct 212 p 102. > > >> > > > >> > Bob Morris (then chief scientist of the National Computer Security > Center of the NSA) said: ``To a first approximation, every computer in the > world is connected with every other computer.'' > > >> > > > >> > Could an explanation for the irrational support for Trump be > addiction? I know of no cure for addiction. > > >> > > > >> > Any piece of computer software is nothing but an integer. It is > clearly unconstitutional, under the First Amendment, for the US government to > ban the publication of an integer. > > >> > > > >> > Therefore Mind thinks itself, if it is that which is best; and its > thinking is a thinking of thinking. -- Aristotle > > >> > > > >> > > >> -- > > >> Camm Maguire > c...@maguirefamily.org > > >> > ========================================================================== > > >> "The earth is but one country, and mankind its citizens." -- > Baha'u'llah > > >> > > >> > > >> > > > > -- > > Camm Maguire c...@maguirefamily.org > > ========================================================================== > > "The earth is but one country, and mankind its citizens." -- Baha'u'llah > > > > -- > Camm Maguire c...@maguirefamily.org > ========================================================================== > "The earth is but one country, and mankind its citizens." -- Baha'u'llah > -- Camm Maguire c...@maguirefamily.org ========================================================================== "The earth is but one country, and mankind its citizens." -- Baha'u'llah