Re: Script to build ECL for iOS using XCode 10 tools?
PR <[email protected]> Wed, 25 Sep 2019 09:41:02 +0200
| Newsgroups | gmane.lisp.ecl.general |
|---|---|
| Message-ID | <CAOJeB-DF+=WOcXWtaUK26qMXvgtDdMsYsS2seUt=nZmQ_rrvqw@mail.gmail.com> |
On 9/23/19, PR <[email protected]> wrote: > On 9/21/19, Marius Gerbershagen <[email protected]> wrote: >> [...] So, ECL starts up without problems now, but there is an (apparently) known issue with GC. The app crashes, seemingly during the first cycle of GC, see attached backtrace. But I noticed these lines in the 'ecl-android' project (github) of old, which has also an 'iOS' directory with an example app. There you find these lines before 'cl_boot': int argc = 1; char *argv[256]; argv[0] = "ecl"; GC_allow_register_threads(); GC_register_my_thread((const struct GC_stack_base *)argv); GC_stackbottom = (char*)(argv+255); // corrected to 'char*' (was: 'void*') setenv("ECLDIR", "", 1); cl_boot(argc, argv); Now, if I put the above lines before 'cl_boot', the app works. Does anybody know why this is needed, and what it is doing? Because if my Lisp app grows (I tried to include :cl-ppcre), then the app crashes again, despite the above hack (and with the same backtrace of the attachment). Of course I already tried bigger vector sizes (up to 8192) instead of 256, but that doesn't solve it. What else could I try? Thanks, Paul
backtrace-ECL-iOS-GC-crash.zip
(application/zip, 1.1 KB) - not displayed