Fix command syntax for GCL FriCAS execution#41766
Merged
Merged
Conversation
|
Documentation preview for this PR (built with commit 0108a58; changes) is ready! 🎉 |
Collaborator
|
@mantepse You might be interested in this. |
Contributor
Author
|
@mantepse can you review this? |
Contributor
Author
|
In fricas with gcl, I have tested this. |
Contributor
|
It seems that it does work with sbcl-based FriCAS. Unfortunately, if one uses a development version of FriCAS, Anyway, lgtm. |
Contributor
Author
|
Thanks |
vbraun
pushed a commit
to vbraun/sage
that referenced
this pull request
Mar 15, 2026
sagemathgh-41766: Fix command syntax for GCL FriCAS execution <!-- ^ Please provide a concise and informative title. --> <!-- ^ Don't put issue numbers in the title, do this in the PR description below. --> <!-- ^ For example, instead of "Fixes sagemath#12345" use "Introduce new method to calculate 1 + 2". --> <!-- v Describe your changes below in detail. --> <!-- v Why is this change required? What problem does it solve? --> <!-- v If this PR resolves an open issue, please link to it here. For example, "Fixes sagemath#12345". --> GCL 2.7.1 has built-in -eval processing in its process-some-args function (at gcl_top.lsp line 213): ``` ((string-equal x "-eval") (eval (read-from-string (pop args)))) ``` The -- tells GCL to stop processing its own command-line options, so -eval arguments are left for FriCAS's own evalInlineCode() to handle. This is exactly how the texmacs mode already works (line 98 of the same script). Without --, GCL's process-some-args intercepts -eval and tries to read-from-string the argument as raw Lisp, which fails on FriCAS system commands like )quit. In sage, FriCAS with GCL hang on ``` sage: from sage.features.fricas import FriCAS sage: FriCAS().is_functional() ``` See the suggestion from fricas/fricas#214 ### 📝 Checklist <!-- Put an `x` in all the boxes that apply. --> - [ ] The title is concise and informative. - [ ] The description explains in detail what this PR is about. - [ ] I have linked a relevant issue or discussion. - [ ] I have created tests covering the changes. - [ ] I have updated the documentation and checked the documentation preview. ### ⌛ Dependencies <!-- List all open PRs that this PR logically depends on. For example, --> <!-- - sagemath#12345: short description why this is a dependency --> <!-- - sagemath#34567: ... --> URL: sagemath#41766 Reported by: Chenxin Zhong Reviewer(s): Martin Rubey
vbraun
pushed a commit
to vbraun/sage
that referenced
this pull request
Mar 18, 2026
sagemathgh-41766: Fix command syntax for GCL FriCAS execution <!-- ^ Please provide a concise and informative title. --> <!-- ^ Don't put issue numbers in the title, do this in the PR description below. --> <!-- ^ For example, instead of "Fixes sagemath#12345" use "Introduce new method to calculate 1 + 2". --> <!-- v Describe your changes below in detail. --> <!-- v Why is this change required? What problem does it solve? --> <!-- v If this PR resolves an open issue, please link to it here. For example, "Fixes sagemath#12345". --> GCL 2.7.1 has built-in -eval processing in its process-some-args function (at gcl_top.lsp line 213): ``` ((string-equal x "-eval") (eval (read-from-string (pop args)))) ``` The -- tells GCL to stop processing its own command-line options, so -eval arguments are left for FriCAS's own evalInlineCode() to handle. This is exactly how the texmacs mode already works (line 98 of the same script). Without --, GCL's process-some-args intercepts -eval and tries to read-from-string the argument as raw Lisp, which fails on FriCAS system commands like )quit. In sage, FriCAS with GCL hang on ``` sage: from sage.features.fricas import FriCAS sage: FriCAS().is_functional() ``` See the suggestion from fricas/fricas#214 ### 📝 Checklist <!-- Put an `x` in all the boxes that apply. --> - [ ] The title is concise and informative. - [ ] The description explains in detail what this PR is about. - [ ] I have linked a relevant issue or discussion. - [ ] I have created tests covering the changes. - [ ] I have updated the documentation and checked the documentation preview. ### ⌛ Dependencies <!-- List all open PRs that this PR logically depends on. For example, --> <!-- - sagemath#12345: short description why this is a dependency --> <!-- - sagemath#34567: ... --> URL: sagemath#41766 Reported by: Chenxin Zhong Reviewer(s): Martin Rubey
vbraun
pushed a commit
to vbraun/sage
that referenced
this pull request
Mar 21, 2026
sagemathgh-41766: Fix command syntax for GCL FriCAS execution <!-- ^ Please provide a concise and informative title. --> <!-- ^ Don't put issue numbers in the title, do this in the PR description below. --> <!-- ^ For example, instead of "Fixes sagemath#12345" use "Introduce new method to calculate 1 + 2". --> <!-- v Describe your changes below in detail. --> <!-- v Why is this change required? What problem does it solve? --> <!-- v If this PR resolves an open issue, please link to it here. For example, "Fixes sagemath#12345". --> GCL 2.7.1 has built-in -eval processing in its process-some-args function (at gcl_top.lsp line 213): ``` ((string-equal x "-eval") (eval (read-from-string (pop args)))) ``` The -- tells GCL to stop processing its own command-line options, so -eval arguments are left for FriCAS's own evalInlineCode() to handle. This is exactly how the texmacs mode already works (line 98 of the same script). Without --, GCL's process-some-args intercepts -eval and tries to read-from-string the argument as raw Lisp, which fails on FriCAS system commands like )quit. In sage, FriCAS with GCL hang on ``` sage: from sage.features.fricas import FriCAS sage: FriCAS().is_functional() ``` See the suggestion from fricas/fricas#214 ### 📝 Checklist <!-- Put an `x` in all the boxes that apply. --> - [ ] The title is concise and informative. - [ ] The description explains in detail what this PR is about. - [ ] I have linked a relevant issue or discussion. - [ ] I have created tests covering the changes. - [ ] I have updated the documentation and checked the documentation preview. ### ⌛ Dependencies <!-- List all open PRs that this PR logically depends on. For example, --> <!-- - sagemath#12345: short description why this is a dependency --> <!-- - sagemath#34567: ... --> URL: sagemath#41766 Reported by: Chenxin Zhong Reviewer(s): Martin Rubey
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
GCL 2.7.1 has built-in -eval processing in its process-some-args function (at gcl_top.lsp line 213):
The -- tells GCL to stop processing its own command-line options, so -eval arguments are left for FriCAS's own evalInlineCode() to handle. This is exactly how the texmacs mode already works (line 98 of the same script). Without --, GCL's process-some-args intercepts -eval and tries to read-from-string the argument as raw Lisp, which fails on FriCAS system commands like )quit.
In sage, FriCAS with GCL hang on
See the suggestion from fricas/fricas#214
📝 Checklist
⌛ Dependencies