marcoheisig/Petalisp

quickload failed on lispworks

Closed this issue · 8 comments

(ql:quickload "petalisp") return
Cannot read character U+0084 as part of a token because it has constituent trait 'invalid'.

This problem is probably related to my liberal use of greek letters. This surprises me, because last time I checked, all Lisp implementations seemed to handle those just fine.

Can you please tell me what Lisp implementation you use, and whether your Lisp reader is able to process strings like "αβστ"?

my lisp implementation is Lispworks 7.1 for Linux Amd64 edition, OS is ubuntu 14.04. my local enviroment is
LANGUAGE=zh_CN:zh
LANG=zh_CN.UTF-8
I quckload on sbcl is ok. so I have a suspicion that there maybe should add :encoding option to .asd file explicitly according to ASDF manual chapter 11.2( https://common-lisp.net/project/asdf/asdf.html#Controlling-source-file-character-encoding)

Thanks!

I just added :encoding :utf-8 to all asdf systems. Unfortunately I don't have Lispworks installed to test anything. Please tell me whether everything works for you.

m-lw commented

No, that doesn't fix it because asdf doesn't pass the encoding down to the subsystems. I think all files need to start with

;;;; -*- coding: utf-8  -*-

That will also make it work for non-asdf operations, such as editing.

Ok, I just added an encoding option to every source file. I hope this fixes the issue.

m-lw commented

Thanks, that fixes it.

I sent a mail to marco.heisig@fau.de some days ago, fixed some issue on lispworks. have you received it?

Hello hufengtao. I received your patches, but I didn't understand the issues with the class inheritance until m-lw explained them to me. I was also quite busy participating at the https://european-lisp-symposium.org/, so sorry for the delay.

Anyway, I hope everything works now - at least as well as on the other implementations. Have I mentioned that this is experimental code? :)