Re: Compiling files with traditional Mac EOL in CMUCL
"Chun Tian (binghe)" <[email protected]> Wed, 6 Sep 2017 14:19:02 +0200
| Newsgroups | gmane.lisp.cmucl.devel |
|---|---|
| Message-ID | <CAEXPsJP-uk5+7aSEmqwv3VM9qJGdLLtEwUTcE0z=AfutEJ1f0g@mail.gmail.com> |
OK, sorry, I carefully checked again. SBCL also doesn't support compiling files with Mac EOLs. Clozure CL, which I confirmed now, indeed support Mac EOLs. For the reason I can't convert the source files to UNIX line endings, there's a Lisp function for parsing (multi-line) literal strings defined in source files with MAC line endings. It seems that, #\Newline was mapped to "\r" in MCL, thus Lisp forms like (position #\Newline string) doesn't work in MCL for other line endings, especially the UNIX endings, because in this case there would be no #\Newline in the string at all! Of course, by carefully adjusting the source code there must be a way to make the code works in both MCL and SBCL/CMUCL with UNIX line endings, but I don't want to do such modifications unless necessary. There's another workaround solution: if I convert all comments to closed forms: #| ... |#, everything is fine again, but this again changed too much in the original code, not what I wanted. But if there's a small patch to let SBCL/CMUCL recognize '\r' as line separators, it would be the best for me (or others who met the same issue, while I highly doubt there would be anyone). Regards, Chun Tian On 6 September 2017 at 13:59, Robert Swindells <[email protected]> wrote: > > "Chun Tian (binghe)" <[email protected]> wrote: > >I'm surprised that CMUCL doesn't support lisp files with traditional Mac > >EOL, that is, lines are separated by a single '\r', there's no `\n` at > all. > > > >Here is my recent story: I'm porting some old Lisp code originally > >developed in Macintosh Common Lisp 4.2. All files use Mac EOL. I can't > >convert them to Unix EOL, because that will break some Lisp functions in > >MCL. The problem when compiling these files in CMUCL is, if there's a > >line-based comment starting with semicolon ";", CMUCL compiler will > >consider all the rest code in the file is at the "same" line, thus they're > >all commented! It looks like CMUCL has correctly compiled the file > >(because there's no warning at all), but actually it compiled almost > >nothing. > > > >SBCL and LispWorks have no such issues, I can imagine Clozure CL must > >natively support Mac EOL. > > Are you sure that SBCL is doing what you want ? The definitions of > read-comment look very similar in CMUCL and SBCL. > > I also don't understand why you can't convert the source files to UNIX > line endings. > > > -- Chun Tian (binghe) University of Bologna (Italy) _______________________________________________ cmucl-imp mailing list [email protected] https://lists.zs64.net/mailman/listinfo/cmucl-imp