- Bug fixes
- Clean up asset installation - codemirror and kernel spec.
- Add custom shortcuts.
- Add custom help link.
- Guard against echo in pexpect.
- Added
9,0
as a kernel-restart-and-clear keyboard shortcut. - Added
debug
interpreter option. - Added
original
display mode, returning the same output as M2's interactive session, making it easy to copy output in text-only context. - Other small tweaks.
- Rewrote the REPL part:
- It no longer uses regexes (except for inferring the input #). This had a tremendous effect on stability and speed.
- Added finer timeout control. Now if a statement timeouts, then whole cell execution is interrupted, and this is clearly reported to the client.
- Macaulay2 exceptions and stdout are always printed to the cell's stdout. I removed stderr formatting, since it did not fit nicely with the rest.
- Decoupled the REPL from the kernel-proper class. It can now be used directly in Python3. Will add demo later.
- Put codemirror mode in the correct place. This fixes GET 404 error that prevented syntax highlighting when running remotely. This isn't documented at all but the fix works fine.
- Add comment in Macaulay2 using Cmd-/ or Ctrl-/.
- Add the nbextension to the distribution.
- Capture TIMEOUT exceptions.
- Send ^C control to proc when needed.
- Redirect M2 errors to stderr always.
- Added raw mode.
- Client-side syntax highlighting.
- Added
pretty
display mode.
- Add robust cell magic support.
- Minor syntax highlighting changes.
- Bug fixes.
- Changed mode
normal
todefault
. - Syntax hightlight changes.
- Stable IO processing. Not aware of bugs or caveats.
- In normal mode, code in cells evaluates the same way as in M2 interactive mode.
- Output now is only presented for the last statement in a block. This is intentional and parallels IPython. M2 errors still need to be propagated though. See TODO.
- Implements basic cell magic (as IPython does) and configuration.
- Can provide configuration script using
$M2JK_CONFIG
. - Two output modes: normal and texmacs. Another one, pretty, is commented out. See TODO.
- Modes can be specified in config file at start up, or during execution.
- normal is exactly the same as M2 interactive mode.
- texmacs prints and renders the output value the way your browser does.
- Timeouts can be set for the allowed delay for a block calculation (plus transport). They can be set in a configure script or interactively.
- Profiling didn't show any speed up using byte-strings over regular strings for both matching and transport, so kept current set up.
- Basic implementation. Many bugs.
- Code organized properly as a pip3 module.
- Some highlighting on the client side.