Greetings!

"Chun Tian (binghe)" <binghe.l...@gmail.com> writes:

> Greetings!
>
> I'm glad to report that, with this new --disable-libboot option now I have
> obtained a successful build of gcl27 on macOS 13 x86_64. Great job you have
> done! Thanks! Below is the link containing the full building log (this time I
> don't attach it because its size is over 2MB):
>
> https://github.com/binghe/macports-ports/actions/runs/14697859343
>

Great!  Again, if you could please point me to a page like

https://buildd.debian.org/status/package.php?p=gcl27&suite=sid

where I can track your progress as well as the remaining issues, I'd be
most appreciative!

> I hope you can make a new Debian sid package update soon, so that I can 
> include
> the official patch (Version_2_7_2pre3) as part of the port definition.
>

I have a few more days before the current version migrates to testing.
Then I will upload once more in time to propagate before the hard freeze
on 5/15.  You may have noticed that all GCL dependencies on Debian are
building against 2.7.1 now.  This uncovered a few issues, fixes for
which will be committed shortly.

> I will confirm the building status on other Intel macOS versions and report 
> back
> soon. Let's hope it just work out-of-box on macOS 15, for those who still has
> Intel Mac computers.
>
> P.S. On macOS 10.15 Catalina, now I can install "gcl" and "gcl27" packages
> together, after renaming some files same the way as the Debian package "gcl27"
> (therefore the entry execution for gcl27 is now /opt/local/bin/gcl27)
>

Great!  Thanks again for all your work on this!

Take care,

> --Chun
>
> On 28/04/25 06:09, Camm Maguire wrote:
>> Greetings!  I've pushed a --disable-libboot configure option to master
>> you might want to try out.  Still looking for the right incantation to
>> make it work as it does elsewhere, but this requires deep knowledge for
>> the mac.
>> 
>> Take care,
>> 
>> "Chun Tian (binghe)" <binghe.l...@gmail.com> writes:
>> 
>>> Greetings,
>>>
>>> I just tried building gcl27 in my macOS 12 VM, and it failed showing the 
>>> same
>>> issues as in macOS 13:
>>>
>>> :info:build echo "(system:save-system \"unixport/gcl0\")" | cat
>>> unixport/cinit.lisp - | unixport/saved_pre_gcl
>>> :info:build
>>> dlopen(/opt/local/var/macports/build/_Users_binghe_Lisp_macports-gcl_lang_gcl27/gcl27/work/gcl-2.7.1/unixport/libboot.so,
>>> 0x0009): symbol not found in flat namespace (_Cnil_body)
>>> :info:build dlsym(0x0, gcl_init_boot): invalid handle
>>> :info:build Segmentation violation: c stack ok:signalling errorSegmentation
>>> violation: c stack ok:signalling error
>>> :info:build Unrecoverable error: Segmentation violation..
>>> :info:build /bin/sh: line 1: 55292 Done                    echo
>>> "(system:save-system \"unixport/gcl0\")"
>>> :info:build      55293                       | cat unixport/cinit.lisp -
>>> :info:build      55294 Abort trap: 6           | unixport/saved_pre_gcl
>>> :info:build make[1]: *** [unixport/gcl0] Error 134
>>>
>>> Note that, I have tried to use either Apple clang 13 and MacPorts GCC 13, 
>>> but
>>> the error outputs are identical. Therefore I think the above issue with
>>> libboot.so is more like an issue with Apple's new linker, which even the
>>> MacPorts GCC must also use.
>>>
>>> --Chun
>>>
>>> On 25/04/25 02:15, Camm Maguire wrote:
>>>> Greetings, and once again, thank you so very much for being the 'point
>>>> of the spear' with macports!
>>>>
>>>> Please enlighten me a little regarding the pull request process.  My
>>>> crude understanding is that we build fine on macos 10 (catalina), you in
>>>> addition have tested successfully on macos 11 (Big sur) as noted in your
>>>> request, and we fail at the moment on 13,14,15.  What about 12?  In
>>>> general, where can I view successful build logs?
>>>>
>>>> The reason I ask is to isolate an apparent binary library api
>>>> incompatibility change between two apple gcc versions (e.g. the one on
>>>> 12 and the one on 13).  The library in question is built to dynamically
>>>> resolve undefined symbols in the running executable, which (to my
>>>> understanding) works fine at least on 10,11, and 12.  I suspect there
>>>> were some 'namespace' changes which affect the search algorithm for
>>>> undefined symbols, and this could be addressed by adding an appropriate
>>>> linker flag to the creation rule of libboot.so.
>>>>
>>>> Thankfully, even if this fails, it is only a nuisance.  I'm working a
>>>> little on a cygwin port, and there such libraries are not supported at
>>>> all.  We can easily compile in this library at the cost of wasted space
>>>> in the final executable if need be.
>>>>
>>>> Then the general question -- I assume this is all testing the installed
>>>> apple gcc/clang/llvm.  What about using the macports gcc?  We should
>>>> support both, but the latter would seem to be closer to the widely
>>>> tested Linux gcc as a start.
>>>>
>>>> For any interested, this latest release has made a start on a systematic
>>>> approach to bootstrapping common lisp.  A long time ago there was a
>>>> thought to write everything in C, but this is very cumbersome and
>>>> limited technically.  Then a '.d' file syntax was invented as a crude
>>>> bridge, etc.  Now we have what will be a shrinking C core implementing
>>>> a interpreter, maybe eventually just funcall/apply, eval, and
>>>> macroexpand.  We load everything else in .lsp and interpret the
>>>> compilation to safety level3.  Then we use that compiler to compile to
>>>> (default) safety level 0, etc.  This is akin to the staged process
>>>> followed by gcc.  What we have now is very preliminary in this regard.
>>>> It does have the 'dogfood' detection benefits of exercising everything
>>>> at all safety levels and catching errors quickly.  There is some
>>>> assurance in a successful build that the code is at least logically
>>>> correct.  
>>>>
>>>> libboot.so is code that I need to run the early interpreter which itself
>>>> cannot (yet) be interpreted, but which is defined later elsewhere and
>>>> does not need to appear in the final image.  Hence a shared library
>>>> opened by dlopen only in the raw image and pre image stages.
>>>>
>>>> In any case, the answers to the above questions will help us figure out
>>>> how to handle this.
>>>>
>>>> Take care,
>>>>
>>>> "Chun Tian (binghe)" <binghe.l...@gmail.com> writes:
>>>>
>>>>> Greetings,
>>>>>
>>>>> Finally I have a "working" Portfile (in attach) for gcl27, tested on 
>>>>> MacPorts'
>>>>> GitHub CI workflow, including macOS 13 x86, macOS 14 arm64 and macOS 15 
>>>>> arm64.
>>>>>
>>>>> On macOS 13 x86, you can find the building logs from the following link 
>>>>> (I put a
>>>>> copy in attach in case the link is no more available in the future).
>>>>>
>>>>> https://github.com/binghe/macports-ports/actions/runs/14638869916/job/41076302619
>>>>>
>>>>> The building log shows that "unixport/saved_pre_gcl" has been built 
>>>>> successfully
>>>>> but then it follows a segmentation violation:
>>>>>
>>>>> echo "(system:save-system \"unixport/gcl0\")" | cat unixport/cinit.lisp - 
>>>>> |
>>>>> unixport/saved_pre_gcl
>>>>>
>>>>> dlopen(/opt/local/var/macports/build/_Users_runner_work_macports-ports_macports-ports_ports_lang_gcl27/gcl27/work/gcl-2.7.1/unixport/libboot.so,
>>>>> 0x0009): symbol not found in flat namespace '_Cnil_body'
>>>>>   dlsym(0x0, gcl_init_boot): invalid handle
>>>>>   Segmentation violation: c stack ok:signalling errorSegmentation 
>>>>> violation: c
>>>>> stack ok:signalling error
>>>>>   Unrecoverable error: Segmentation violation..
>>>>>   /bin/sh: line 1: 12984 Done                    echo "(system:save-system
>>>>> \"unixport/gcl0\")"
>>>>>        12985                       | cat unixport/cinit.lisp -
>>>>>        12986 Abort trap: 6           | unixport/saved_pre_gcl
>>>>>   make[1]: *** [unixport/gcl0] Error 134
>>>>>
>>>>> Is there anything we can learn just by watch this log?
>>>>>
>>>>> --Chun
>>>>>
>>>>> On 24/04/25 08:02, Camm Maguire wrote:
>>>>>> Greetings!  Just a quick note that we've recently verified that GCL self
>>>>>> builds, builds ACL2, and runs its regression without error (16 parallel
>>>>>> processes taking several hours), using the apple supplied gcc.  When we
>>>>>> get a macports package, I imagine we will use the macports gcc, but I
>>>>>> expect the results to be the same.
>>>>>>
>>>>>> Take care,
>>>>>>
>>>>>
>>>>>
>>>>>
>>>>
>>>
>> 
>

-- 
Camm Maguire                                        c...@maguirefamily.org
==========================================================================
"The earth is but one country, and mankind its citizens."  --  Baha'u'llah

Reply via email to