/frepl-gui

GUI for the frege repl

Primary LanguageFregeApache License 2.0Apache-2.0

frepl

For users

Download the distribution zip (20 MB) from https://www.dropbox.com/s/qg7ymgi219d9pm2/frepl-0.6.0.zip?dl=0 .

Unpack to an <install-dir> of your choice.

With a Java 8 (u40 or higher), run

<install-dir>/bin/frepl

Additions to the use of the command-line REPL

In addition to the commands in the command-line REPL like :help, you can press Ctrl-I (Mac: Cmd-I) to see an info screen with all available shortcuts and commands.

The "history" list is pre-populated with commands that you may want to try out.

  • :l http:…​ to load a script from URL

  • :browse Stairs to see what’s in the Stairs module

  • play …​ for graphical output

Please note that this GUI is not an IDE. The content of the editor is fed line-by-line to the command-line REPL and this limits the amount of work that one can do in "one go".

Multi-line content is automatically wrapped in :{ and :} as expected by the REPL.

However, that still doesn’t allow to submit multi-line definitions together with their usage:

foo a b =
          a * b
foo 1 2          -- will fail with "a where clause cannot start with '=' "

What works is to do the same in two steps.

Step 1

foo a b =
          a * b

Step 2

foo 1 2

That is something to keep in mind when copy-pasting code in the editor.

More to note

Output is truncated to 80 characters. That means that you can even safely evaluate infinite sequences like [1..]. However, this comes at the expense of only seeing the first 80 digits when evaluating numbers that are greater than 10e80.

When code yields unexpected results or you get error messages that you do not understand, you many want to reset the state of the REPL with :reset and try again.

When filing issues, please run the :history command and attach the output to your issue such that we can reproduce the behavior.

For developers only

Really, this is only for developers that would like to contribute (much appreciated). Normal users please use the download link at the top of this page.

Note
Since version 0.6, FregeFX is an external dependency that you might need to gradlew install (./gradlew install on linux and macos) locally if a SNAPSHOT version is referenced.

With Java 8 (update 40 or higher) start via

gradlew clean run
Note
There is no need to install gradle or anything else beside a Java 8 JDK. It is all self-installing.