-
Notifications
You must be signed in to change notification settings - Fork 77
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add Linux support via Wine #42
Comments
I may check it but do not hold your breath right now. I believe that Wine is the thing which needs fixing. Nevertheless, Linux support would be good. Can you test it on a stable version of Wine? |
I do not have a stable Wine version on this machine and I have a poor Internet connection at the moment, so downloading a stable version isn't possible for me at the moment. |
Just to double-check - could you see if the files I have extracted from the MSI archive are correct? The license files seem to have random null bytes scattered across them, which makes me think there is some corruption going on.
|
Yes, it is broken. Can you test the attached version? It is the Corman Lisp 3.1 unpacked. |
I do not see any attachment. |
Oops! Github does not want to attach the archive. I have uploaded the archive to a site which I run from home. deleted URL |
It seems that an archive with valid executable files makes Github unhappy (and for a reason). |
The Corman CL IDE launches, but I am promptly met with a segfault.
|
The issue happens after I type Attaching the Wine backtrace. It seems to contain symbols from the binary. |
Thank you. I might look at it later. If it is a low hanging fruit then I might try to fix it. But please keep in mind that Corman Lisp relies on intricate details about Windows functioning which Wine may have not implemented. |
Another issue: if I want for a while (two or three seconds), the IDE tells me that a dump file was generated due to a stack overflow. Attaching it here. No problem - I'm a Linux user and my main interest in Corman Common Lisp is running it via Wine. Now that I think of it, if what you say is true, then Corman Common Lisp could be useful for Wine people as an application pushing the usage of Windows details to the extreme - and therefore, a useful testing artifact. |
I am not sure about the extreme but it still might be interesting for them. It might be the case that there is a bug in Corman Lisp which is just easier to reproduce under Wine. |
If you are at it, may I ask you to abuse BTW, try to disable colorisation in the IDE settings. Does it make IDE more stable? Right now it looks like hell (e.g. FFI issue). |
I will abuse I cannot get to the settings menu - as soon as I mouseover the menu region, the application generates crash dumps. |
In particular, try to crash it using |
Seems like the REPL itself works fine. It's the IDE that crashes for me. |
@phoe On the bright side - the fact that it didn't crash is a good sign. May I ask you to run |
Thank you for your investigation! It turned out to be very interesting. So far it seems that the Lisp kernel works well, but the IDE needs some fixes. It increases the chances for Corman Lisp to be Wine compatible at some point. |
Happy New Year, by the way! |
@arbv Corman Lisp is already Wine compatible, it seems; it's the IDE that doesn't work (yet). Given that a huge chunk of Lisp programmers use slime/swank, this might not be a big loss. Is CormanCL compatible with swank? Happy New Year to you too! |
May I ask you to run minesweepers for the longer period of time (a dozen of generations will do)? |
It used to be SLIME compatible, but currently the support for Corman Lisp in SWANK is broken. The code is still there though. I haven't had time to investigate it further. |
@phoe This is very good. It is a proof that Corman Lisp kernel works properly under Wine. I would be very appreciated if you have repeated the experiment with Hardware Assisted GC enabled ( |
I'm curious - how does a hardware-assisted GC work in CormanCL's case? |
@phoe I am very appreciated. As about Hardware Assisted GC, it uses Structured Exceptions Handling (the closest analogue in Unix is asynchronous signals) to help to track what objects in the old generations has been changed to point to the objects in the newer one. I am not sure, but Clozure CL keeps track of every call to SETF (and friends) to do a similar thing. I remember reading something like this in the documentation. Sorry, I lack time right now to give you more details. If you are still curious, feel free to contact me later. I should say that I might be not the best person to ask about GC functioning. Please, Roger (@rgcorman), correct me if I am wrong. |
I forgot to mention that the structured exceptions, in this case, are basically generated by the virtual memory support hardware, thus the name - Hardware Assisted GC. |
I don't know if this would help troubleshoot, but I ran across an old WineHQ link that mentions a workaround for one of the problems in running Corman Common Lisp. They say...
|
That's good news! Is that a permanent fix? Perhaps, you could update that old WineHQ entry after some testing and increase the Corman Lisp "Version" number from 3.0? The old entry stated that the Program's "main window is not usable". But, your screenshot shows use! |
The riched20 override is a common one - many applications require it to work properly under Wine.
I will need to create a WineHQ account for that, but sure, that is doable. I think this issue is closeable now. I have opened #47 to take care of WineHQ support page. |
Corman Lisp is currently not executable via Wine; for some reaso, it complains that
CormanLisp.exe
is a DOS application.The text was updated successfully, but these errors were encountered: