Opened 19 months ago

Last modified 16 months ago

#25385 new defect

maple interface on cygwin

Reported by: vdelecroix Owned by:
Priority: major Milestone: sage-8.4
Component: interfaces Keywords: thursdaysbdx
Cc: embray Merged in:
Authors: Reviewers:
Report Upstream: N/A Work issues:
Branch: Commit:
Dependencies: Stopgaps:

Description (last modified by vdelecroix)

The maple interface should work on cygwin (because Maple command line just works fine inside cygwin). But there are several problems

  • the path of the maple executable cmaple.exe is not in the PATH (at least on the installation I tried)
  • the name of the executable is cmaple.exe and not maple this is currently hardcoded in the variable __maple_command in the constructor of sage.interfaces.maple.Maple
  • not sure about the right command line arguments on windows...

Change History (7)

comment:1 Changed 19 months ago by vdelecroix

  • Description modified (diff)

comment:2 Changed 19 months ago by vdelecroix

  • Description modified (diff)

comment:3 follow-up: Changed 19 months ago by embray

I don't know how best to test this since I do not have Maple. Though I suppose I could get it. That, or I can just investigate the implementation and guess at what will improve it...

It shouldn't have much to do with the "Cygwin path" which still normally gets inherited from your Windows PATH. So for that to work at least you need to have the maple executable on your PATH in Windows. In other words, that's something that should be configured in Windows, and not necessarily Sage/Cygwin? (that said we should have an environment variable for controlling that as well).

comment:4 in reply to: ↑ 3 Changed 19 months ago by vdelecroix

I have a real use case with somebody in Bordeaux, but sadly I can not experiment with it in the next two weeks...

Replying to embray:

I don't know how best to test this since I do not have Maple. Though I suppose I could get it. That, or I can just investigate the implementation and guess at what will improve it...

It shouldn't have much to do with the "Cygwin path" which still normally gets inherited from your Windows PATH. So for that to work at least you need to have the maple executable on your PATH in Windows. In other words, that's something that should be configured in Windows, and not necessarily Sage/Cygwin? (that said we should have an environment variable for controlling that as well).

Hence maple is not in the path... It might just provide the launcher with a proper path to the executable? There is perhaps a register entry for this? Do you know if there is any standard for that kind of things on windows?

From Sage, I hope to solve it with a more configurable maple interface. For example, the user should be able to do something like the following in a Jupyter cell to make it work

import os
os.environ['SAGE_MAPLE_COMMAND'] = "/cygwin/c/Program Files/Maple18/bin/cmaple.exe"

For Octave, I did introduce a SAGE_OCTAVE_COMMAND that had the same purpose. Or alternatively

maple = Maple(command="/cygwin/c/Program Files/Maple18/bin/cmaple.exe")

Of course, this would better be transparent to the user and I might try to implement a def find_maple() function...

If anybody has a Windows computer with a Maple installed at Saint-Flour I will experiment further.

(Let me also mention that your cygwin installer ran very smoothly on that computer! Including some successful uses of Cython.)

comment:5 Changed 19 months ago by embray

Do you know if there is any standard for that kind of things on windows?

Not really. It depends entirely on the program, how it's installed, etc.

I agree it should be possible to explicitly configure a path to any and all executables that Sage relies on for some feature.

comment:6 Changed 19 months ago by vdelecroix

  • Description modified (diff)

comment:7 Changed 16 months ago by vdelecroix

  • Milestone changed from sage-8.3 to sage-8.4

update milestone 8.3 -> 8.4

Note: See TracTickets for help on using tickets.