Skip to content

Commit

Permalink
v2.4 release. Update dates and documentation. Drop release notes from…
Browse files Browse the repository at this point in the history
… README.md.
  • Loading branch information
fjwright committed Nov 11, 2020
1 parent 6bfc9be commit c86e0b1
Show file tree
Hide file tree
Showing 4 changed files with 118 additions and 281 deletions.
211 changes: 4 additions & 207 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Run-REDUCE-FX

## A JavaFX GUI to run any CLI version of the REDUCE Computer Algebra System
## A JavaFX GUI to run CLI versions of the REDUCE Computer Algebra System

### Francis Wright, November 2020

Expand All @@ -19,6 +19,9 @@ Guide](https://fjwright.github.io/Run-REDUCE-FX/UserGuide.html) (which
is also included in Run-REDUCE-FX and easily accessible via the Help
menu).

See also the [release notes for all
releases](https://github.com/fjwright/Run-REDUCE-FX/releases).

Run-REDUCE-FX should run on any platform that supports JavaFX 11 (or
later), but I can only test it on Microsoft Windows and Linux.
(Whilst Java is portable, filesystem structures, installation
Expand All @@ -37,209 +40,3 @@ Run-REDUCE-FX currently uses a bundled copy of
[KaTeX](https://katex.org/) to render LaTeX output by code based on
the REDUCE *tmprint* package when the *Typeset Maths* option is
selected.

## Release Notes

### Version 1.1

* Avoid warning messages and hanging Help menu items on Ubuntu, but
suppress display of PDF files via the Help menu on non-Windows
platforms since it's probably not currently very helpful!
* Add instructions for installing and running using Java 11 on Linux
and improve the appearance of the User Guide.
* Use CSS to set the REDUCE font, size, weight and colour, and use the
same font and size for input as well as output.
* Validate direct input to the FontSizeDialog via the editor.
* Validate generic root directories in REDUCEConfigDialog. Rebuild
the Run REDUCE submenus on saving REDUCEConfigDialog. Improve error
messages.

### Version 1.2

* Update the build environment to Java 11 and JavaFX 11, which are now
also required to run Run-REDUCE-FX.
* Provide batch files to run Run-REDUCE-FX more easily.
* Re-instate display of PDF files via the Help menu on non-Windows
platforms.
* Fix truncated text in the About dialogue.

### Version 1.3

* Provide templates for *df*, *int* and *mat* expressions and *for*
statements.
* Add a hyperlinked Contents section to the User Guide.

### Version 1.4

* Provide templates for multiple integrals, finite sums and products,
double- and single-sided limits, and solve.
* Provide a Functions menu offering dialogues that facilitate access
to key elementary functions, Gamma, Beta and related functions,
integral functions, Airy, Bessel and related functions, Struve,
Lommel, Kummer, Whittaker and spherical harmonic functions, and
classical orthogonal polynomials. Special function names link to
the online NIST Digital Library of Mathematical Functions.
* Appropriate templates include a symbolic/numeric option and access
to relevant REDUCE switches and packages.
* Provide a pop-up keyboard (currently only on template and function
dialogues) for symbolic constants, Greek letters, elementary
functions, trigonometric functions (using radians or degrees) and
hyperbolic functions. **Still need to arrange that the pop-up
keyboard loads the trigd package as appropriate.**
* The function dialogues and pop-up keyboard together offer all the
functions listed in section 7.2 Mathematical Functions of the REDUCE
Manual plus degree versions of all trigonometric functions.

### Version 1.5

* Add REDUCE Manual hyperlinks to all template and function dialogues.
* Add Help menu items that open the REDUCE Web Site and SourceForge
Project Site in the default browser.

### Version 1.6

* Use WebView to display REDUCE output, and update instructions and
batch files for running Run-REDUCE-FX accordingly.
* Set the default Session Log filename to `session.log`.
* Turning bold prompts on and off now works retrospectively.
* Turning I/O colouring on and off now works retrospectively (as far
as possible).

### Version 1.7

* Add experimental Typeset I/O option, currently hidden, to the View
menu to use fmprint and KaTeX, which does not yet work reliably.
* Update the documentation to try to make it easier to access the
latest jar.
* Redesign the REDUCE Configuration dialogue:
- Replace Packages Root Directory with REDUCE Packages Directory.
- Split Documentation Root Dir into REDUCE Manual Directory and
REDUCE Primers Directory.
- **The above two changes are not backwards compatible!**
- Add Initial I/O Directory, which defaults to the user's home
directory, as before.
- Add a ContextMenu to implement key choices for Initial I/O
Directory: Home Directory; Current Directory; Another Directory.

### Version 1.8

* The Typeset Maths View menu option enables typeset-style display of
algebraic-mode output. But beware that this is currently
experimental and has a number of limitations.
* Rename Initial I/O Directory to REDUCE Working Directory in the
REDUCE Configuration dialogue. This now sets the initial directory
for both REDUCE and the file selectors and defaults to the user's
home directory.
* View options apply to each REDUCE panel independently, initialised
from the last selected (and saved) values, and the redfront View
option takes effect after the next prompt.
* A toggle button on each REDUCE panel hides the input editor.
* When split-pane view is enabled after startup, the new panel is
active and a green dot at the top right shows which panel is
selected.

### Version 1.9

* Detect question prompts correctly.
* Add a *Print Session Log...* item to the File menu, which prints the
entire content of the I/O Display pane as it appears on screen.
* Fix the *Save Session Log...* code to output the TeX markup used to
display typeset maths.
* Move *Load Packages...* to the *REDUCE* menu.
* Support the pop-up keyboard on the input editor and add a label
"Control+Click for the Pop-Up Keyboard" with a tooltip to the top of
the input editor and the bottom of each template dialogue.
* Handle more of the non-standard TeX markup generated by fmprint.

### Version 2.0

* Fix the display of big delimiters in typeset maths.
* Always insert parentheses when calling a function using the pop-up
keyboard, rewrite ln to log and remove the space after sqrt.

### Version 2.1

* Remember the directory used in the filechooser.
* Always decode non-ASCII characters from the pop-up keyboard and from
templates to their correct REDUCE or TeX names.
* Replace loading the fmprint package with inputting and compiling the
new source file "rrprint.red" contained in the JAR file, which is
based on "tmprint.red".
* Typeset maths improvements:
* Apply the fix by Eberhard Shruefer so that order commands work.
* Output identifiers in mathit instead of mathrm style.
* Correct spacing of := and leading + and - signs.
* Display a trailing multiplication sign but otherwise ignore
multiplications. (This may be too drastic.)
* Support all trigonometric and hyperbolic functions and their
inverses, and logb and log10.
* Display the gamma function, but not the identifier gamma, using a
capital Gamma.
* Support the polygamma, iGamma, iBeta, dilog, Pochhammer and
integral functions.
* Support Airy and Hankel functions.
* Support Struve, Lommel, Kummer, Whittaker and spherical harmonic
functions, and the classical orthogonal polynomials.

### Version 2.2

* Remove the middle mouse button binding for the pop-up keyboard,
since it clashes with the X Window primary paste gesture (although
this is not supported).
* Scroll more reliably to the bottom of the REDUCE I/O display window.
* Add a Kill REDUCE item to the bottom of the REDUCE menu. Display an
information alert when REDUCE is killed and an error message if this
may have failed. Handle failure of REDUCE to start better and check
that REDUCE is alive before trying to send it input.
* Improve alerts relating to printing.
* Display the version number on the title bar.
* Add new sections on Editing, Typeset Maths Display and Printing on
Linux to the User Guide.
* Typeset maths improvements:
* Restore compatibility with tmprint so that `excalc.tst` runs.
* Use a narrow space to indicate multiplication (except at the end of
a line) because with no space x*y is indistinguishable from xy.
* Output strings as text rather than maths and identifiers using
mathit. Support the dfprint switch.
* Treat trailing digits in an identifier (optionally preceded by \_)
as a subscript. Treat the final _ in an identifier as introducing
a subscript if it is followed by (the name of) a single character.
But as a special case, display body_bar as \bar{body} for a
single-character body or \overline{body} for a multi-character
body.
* Ensure that operator identifiers are subscripted like non-operator
identifiers. Note that line breaking is thoroughly broken!
* Display repart and impart as \Re and \Im.
* Display matrices more readably by using \displaystyle for each
element and increasing the row spacing to 1.5em.
* REDUCE Configuration Dialogue improvements:
* Use \ as directory separator in the Windows default configuration.
* Detect unreadable directories and files in more fields.
* Substantial revision to fix some subtle misbehaviour.

### Version 2.3

* Make *Generic information for all REDUCE commands* fields all
optional, resetting to defaults where appropriate. Correct the
behaviour to allow the REDUCE Root Directory text field to be empty,
and to use the Command Root Directory if it is set.
* Add a *Restart REDUCE* item to the REDUCE menu to do a full clean
restart of the last-run REDUCE command.
* Set a minimum size for the main window.
* Allow space at the bottom of the main display so that the horizontal
scroll bar does not obscure the prompt.
* Improve automatic scrolling to the bottom of the display pane.
* Highlight warnings and errors with an appropriate background colour.
* Typeset maths improvements:
* Improve line breaking.
* Allow special function symbols to depend on a function's arity and
use this for the gamma function to avoid perturbing "excalc.tst".
* Process `_bar` in an identifier as an over-bar even if it is
followed by digits or `_k`.
* Improve display with `on list` and display matrix assignments as
assignments, which now both appear correct for "alg.tst".
* Display `abs(x)` as |x|.
* Remove all superfluous space around commas in algebraic lists and
flat printed matrix rows.

### Updates since last release
92 changes: 56 additions & 36 deletions docs/UserGuide.html
Original file line number Diff line number Diff line change
Expand Up @@ -624,55 +624,73 @@ <h2 id="ViewMenu">The View Menu</h2>

<p>Run-REDUCE-FX remembers the options you select using
the <em>View</em> menu and uses them the next time you start
Run-REDUCE-FX. The first four options (above the separator) apply
to each REDUCE panel independently and Run-REDUCE-FX uses the last
set values initially when you create a new REDUCE panel.
The <em>View</em> menu provides the following items:</p>
Run-REDUCE-FX. Run-REDUCE-FX uses the last set values initially
when you create a new REDUCE panel. The <em>View</em> menu
provides the following items:</p>
<h3>Font Size...</h3>
<p>This displays a dialogue that allows you to change the font
size used in the <em>Input/Output Display</em> and <em>Input
Editor</em> panes.
Editor</em> panes. It applies to each REDUCE panel independently.
</p>
<h3>Font Colours...</h3>
<p>This displays a dialogue that allows you to change the colours
used in the <em>Input/Output Display</em> pane. Currently, it
applies to the REDUCE panel selected when you click on
the <em>Save</em> button (but this is not consistent with other
options and may change in a future release).
</p>
<p>The colours that you can select are the foreground text colours
for algebraic and symbolic mode input and output, and the
background colours for warnings (preceded by <code>***</code>)
and errors (preceded by <code>*****</code>). The labels on the
left model the colours. Clicking on a button on the right drops
down a simple colour grid from which you can pick a colour, and
clicking on <em>Custom Color...</em> at the bottom of the grid
opens a more advanced dialogue, which includes the option to
change the opacity. This is primarily relevant to the
background colours, which are 25% opaque by default.
</p>
<p>If you click on the <em>Cancel</em> button then the colours
used do not change. If you click on the <em>Save</em> button
then the currently selected colours are used for the selected
REDUCE panel and saved as preferences. They will be used by
default the next time you start Run-REDUCE-FX. If you click on
the <em>Reset Defaults</em> button then the built-in default
colours are reinstated in the dialogue but not used or saved
unless you click on the <em>Save</em> button.
</p>
<h3>Bold Prompts</h3>
<p>Selecting this item causes Run-REDUCE-FX to embolden the
display of all input prompts.
display of all input prompts. It applies to each REDUCE panel independently.
</p>
<h3>I/O Colouring</h3>
<p>This sub-menu allows you to select an I/O colouring
option: <em>None</em>, <em>Modal</em>
or <em>Redfront</em>. <em>Modal</em> colouring depends on
REDUCE's current input mode: algebraic-mode prompts and input are
red, algebraic-mode output is blue, symbolic-mode prompts and
input are brown, symbolic-mode output is
purple. <em>Redfront</em> colouring is intended to provide a full
emulation of the standard REDUCE <em>redfront</em> facility and it
loads the <em>redfront</em> package (silently), which outputs
additional markup that is interpreted by Run-REDUCE-FX in the same
way that it is normally interpreted by the <em>redfront</em>
executable running in a suitable terminal (emulator).
With <em>Redfront</em> colouring, all prompts and interactive
input are red, algebraic-mode output is blue, and echoed file
input and symbolic-mode output are not coloured.
</p>
<p>When I/O colouring is enabled, Run-REDUCE-FX highlights
warnings and errors with appropriate background colours.
<p>Selecting this item causes Run-REDUCE-FX to colour the text in
the <em>Input/Output Display</em> pane. The colouring depends on
REDUCE's current input mode: by default, algebraic-mode prompts
and input are red, algebraic-mode output is blue, symbolic-mode
prompts and input are green, symbolic-mode output is brown.
Echoed file input is not coloured. By default, Run-REDUCE-FX
highlights warnings and errors with quarter-opaque orange and red
background colours.
</p>
<p>Note that turning I/O colouring on does not fully take effect
until the next input prompt. Turning I/O colouring off (by
selecting <em>None</em>) takes effect immediately and turning it
back on mid-session turns any previous I/O colouring back on, but
any I/O produced while I/O colouring was turned off will not be
coloured. (This is because the required markup is only generated
when I/O colouring is turned on to conserve resources.)
until the next input prompt. Turning I/O colouring off takes
effect immediately and turning it back on mid-session turns any
previous I/O colouring back on, but any I/O produced while I/O
colouring was turned off will not be coloured. (This is because
the required markup is only generated when I/O colouring is turned
on to conserve resources.) Output display will be slightly faster
when I/O colouring if turned off.
</p>
<h3>Typeset Maths</h3>
<p>Selecting this item causes Run-REDUCE-FX to display
algebraic-mode mathematical output more-or-less as it would be
typeset and centred horizontally. <strong>WARNINGS:</strong>
Typeset Maths is currently experimental. It interacts badly
with redfront I/O colouring, so don't try to use the two
together: one will effectively cancel the other. The display
may be incorrect in some cases, e.g. with unusual switch
typeset, and centred horizontally. It applies to each REDUCE
panel independently. Output display will be significantly
faster when Typeset Maths is turned
off. <strong>WARNINGS:</strong> Typeset Maths is currently
experimental and line breaking is somewhat arbitrary. The
display may be incorrect in some cases, e.g. with unusual switch
settings such as <em>on list</em>. If any TeX markup appears
(coloured red) in the output then please let me know! <em>Save
Session Log...</em> outputs typeset maths using TeX markup.
Expand Down Expand Up @@ -967,7 +985,9 @@ <h3>SourceForge Project Site</h3>
platforms, mailing lists, bug reporting, etc.
</p>
<h3>About Run-REDUCE-FX</h3>
<p>This pops up brief information about Run-REDUCE-FX.</p>
<p>This pops up brief information about Run-REDUCE-FX, including
the version number and month of the release. The version number
is also shown in the application title bar.</p>

<h2 id="TypesetMaths">Typeset Maths Display</h2>

Expand Down
4 changes: 2 additions & 2 deletions src/fjwright/runreduce/RunREDUCEFrame.java
Original file line number Diff line number Diff line change
Expand Up @@ -661,13 +661,13 @@ private void sourceForgeMenuItemAction() {
RunREDUCE.hostServices.showDocument("https://sourceforge.net/projects/reduce-algebra/");
}

static final String VERSION = "2.32";
static final String VERSION = "2.4";

@FXML
private void aboutMenuItemAction() {
RunREDUCE.alert(Alert.AlertType.INFORMATION,
"Run REDUCE in a JavaFX GUI",
"Version " + VERSION + ", October 2020\n" +
"Version " + VERSION + ", November 2020\n" +
"\u00A9 2020 Francis Wright",
"About Run-REDUCE-FX");
}
Expand Down
Loading

0 comments on commit c86e0b1

Please sign in to comment.