Skip to content
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

ABCL use of contrib/swank-repl.lisp fails #764

Closed
easye opened this issue May 1, 2023 · 10 comments
Closed

ABCL use of contrib/swank-repl.lisp fails #764

easye opened this issue May 1, 2023 · 10 comments

Comments

@easye
Copy link
Contributor

easye commented May 1, 2023

@stassats recent work on SWANK-REPL contrib on Feb 15, 2023, viz. those commits through 5e8fc7c has borked ABCL.

@dkochmanski 's work on #760 has borked the use of the contrib/slime-repl.lisp with ABCL.

I'll try to figure out how to get this working, but it involves papering over the incompleteness of ABCL's Gray streams implementation with errors of the form:

The value #<SWANK/GRAY::SLIME-INPUT-STREAM {4486D34}> is not of type STREAM.
@easye
Copy link
Contributor Author

easye commented May 1, 2023

@stassats had accepted the previous non-conservative consolidation of the ASDF and cl:load paths for loading SLIME, but asked that I inform/patch things when ABCL had gotten a better Gray/ANSI/Java streams abstraction. That work is still largely theoretical, unfortunately.

@stassats
Copy link
Member

stassats commented May 1, 2023

It would be a good idea to add ABCL to the CI.

@easye
Copy link
Contributor Author

easye commented May 2, 2023

It would be a good idea to add ABCL to the CI.

I'll look into it as part of verifying this fix.

@easye
Copy link
Contributor Author

easye commented May 2, 2023

Some background on ABCL's streams:

Design of lisp streams in ABCL

Description of current implementation rationale https://abcl.org/trac/wiki/DesignOfStreams.

@easye
Copy link
Contributor Author

easye commented Jun 1, 2023

Whew: my patches to ABCL's Gray Streams implementation and our pretty printer (XP) have matured to the point that I intend to release abcl-1.9.2 to solve this problem. From this release on, ABCL should be a fully compliant provider of the implementations needed in the code in <file:swank/gray.lisp>.

  • Add ABCL to the CI to ensure this stays fixed.

  • Add conditionals to warn that the <file:contrib/swank-repl.lisp> contrib will no longer work on versions lesser than abcl-1.9.2 with the next release of SLIME


Comments, suggestions on ways to proceed from @stassats always welcome.

@easye
Copy link
Contributor Author

easye commented Jun 1, 2023

One thing that remains broken in my usage is that of the "external" SLIME contrib for telling emacs to render ANSI control sequences <https://github.com/deadtrickster/slime-repl-ansi-color>. I would like to fix the remaining problems in ABCL in dealing with cl:stream IO which, I think, is a timing issue as ABCL tends to break up the ANSI control sequences in way that seems to confound Emacs. Stay tuned Bear fans…

@easye
Copy link
Contributor Author

easye commented Jun 6, 2023

One thing that remains broken in my usage […]

I have determined that the problem here lies in the "external" slime-repl-ansi-color contrib, so this is no longer a blocker.

  • Fix/merge in ANSI color sequences to SLIME

@easye
Copy link
Contributor Author

easye commented Jun 6, 2023

As of armedbear/abcl@847fa63, the GRAY-STREAMS support in ABCL has been improved to the point that contrib/swank-repl.lisp now works.

I am in the process of releasing abcl-1.9.2 <armedbear/abcl#594> which will contain this fix.

@zacque0
Copy link

zacque0 commented Jun 9, 2023

As of armedbear/abcl@847fa63, the GRAY-STREAMS support in ABCL has been improved to the point that contrib/swank-repl.lisp now works.

I am in the process of releasing abcl-1.9.2 <armedbear/abcl#594> which will contain this fix.

Thanks, can confirm that it works! Was facing the error just now. After compiling ABCL with the latest commit, it now works with SLIME.

My environment:
OS: Ubuntu 22.04.2 LTS x86_64
Java:

openjdk 17.0.7 2023-04-18
OpenJDK Runtime Environment Temurin-17.0.7+7 (build 17.0.7+7)
OpenJDK 64-Bit Server VM Temurin-17.0.7+7 (build 17.0.7+7, mixed mode, sharing)

Emacs: GNU Emacs 28.2
Slime: slime-20230605.1004 (from MELPA)

@easye
Copy link
Contributor Author

easye commented Aug 18, 2023

Closed with abcl-1.9.2

@easye easye closed this as completed Aug 18, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants