Skip to content

Commit

Permalink
Releases notes for 0.9.8.8 and update docs (#1562)
Browse files Browse the repository at this point in the history
  • Loading branch information
mario-bucev authored Aug 22, 2024
1 parent c5eff59 commit d452855
Show file tree
Hide file tree
Showing 2 changed files with 34 additions and 14 deletions.
25 changes: 12 additions & 13 deletions core/src/sphinx/installation.rst
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ General Requirement
It suffices to have headless OpenJDK JRE 17 (e.g. one that one gets with ``apt install openjdk-17-jre-headless`` on Debian/Ubuntu).
Make sure that ``java -version`` reports a version starting with 1.17, such as ``openjdk version "1.17`` or ``java version "1.17``.

Stainless bundles Scala compiler front-end and runs it before it starts compilation. We recommend using the Scala 3 front end (originally named dotty), though Scala 2 is also available.
Stainless bundles Scala 3 compiler front-end and runs it before it starts compilation.

.. _standalone-release:

Expand Down Expand Up @@ -182,8 +182,8 @@ Add the generated Stainless library jar file when invoking the compiler with ``s
.. code-block:: bash
$ mkdir -p ~/.scala_objects
$ scalac -d ~/.scala_objects -cp /path/to/stainless/frontends/library/target/scala-2.13/stainless-library_2.13-X.Y.Z-A-BCDEFGHI.jar MyFile1.scala MyFile2.scala # and so on
$ scala -cp ~/.scala_objects:/path/to/stainless/frontends/library/target/scala-2.13/stainless-library_2.13-X.Y.Z-A-BCDEFGHI.jar MyMainClass
$ scalac -d ~/.scala_objects -cp /path/to/stainless/frontends/library/target/scala-3.3.3/stainless-library_3-X.Y.Z-A-BCDEFGHI.jar MyFile1.scala MyFile2.scala # and so on
$ scala -cp ~/.scala_objects:/path/to/stainless/frontends/library/target/scala-3.3.3/stainless-library_3-X.Y.Z-A-BCDEFGHI.jar MyMainClass
where ``X.Y.Z`` is the Stainless version and ``A-BCDEFGHI`` is some hash (which can be autocompleted by the terminal).

Expand Down Expand Up @@ -264,39 +264,37 @@ Get the sources of Stainless by cloning the official Stainless repository:

.. code-block:: bash
$ git clone https://github.com/epfl-lara/stainless.git
$ git clone --recursive https://github.com/epfl-lara/stainless.git
Cloning into 'stainless'...
$ cd stainless
$ git submodule update --init --recursive
**Run SBT**

The following instructions will invoke SBT while using a stainless sub-directory to download files.

.. code-block:: bash
$ cd stainless
$ sbt universal:stage
**Where to find generated files**

The compilation will automatically generate the bash script ``stainless-dotty`` (and the Scala2 one ``stainless-scalac``).
The compilation will automatically generate the bash script ``stainless-dotty``.

You may want to introduce a soft-link from to a file called ``stainless``:

.. code-block:: bash
$ ln -s frontends/dotty/target/universal/stage/bin/stainless-dotty stainless
and, for the Scala2 version of the front end,

$ ln -s frontends/scalac/target/universal/stage/bin/stainless-scalac stainless-scalac-old
Analogous scripts work for various platforms and allow additional control over the execution, such as passing JVM arguments or system properties:

.. code-block:: bash
$ stainless -Dscalaz3.debug.load=true -J-Xmx6G --help
Note that Stainless is organized as a structure of several projects. The main project lives in ``core`` while the two available frontends can be found in ``frontends/dotty`` (and ``frontends/scalac``). From a user point of view, this should most of the time be transparent and the build command should take care of everything.
Note that Stainless is organized as a structure of several projects. The main project lives in ``core`` while the Scala 3 frontend can be found in ``frontends/dotty``. From a user point of view, this should most of the time be transparent and the build command should take care of everything.

Build from Source on Windows 10
-------------------------------
Expand All @@ -305,15 +303,16 @@ Before following the infrequently updated instructions in this section, consider

Get the sources of Stainless by cloning the official Stainless repository. You will need a Git shell for windows, e.g. `Git for Windows <https://git-for-windows.github.io/>`_.
On Windows, please do not use ``sbt universal:stage`` as this generates a Windows batch file which is unusable, because it contains commands that are too long for Windows.
Instead, please use ``sbt stainless-scalac-standalone/assembly`` as follows:
Instead, please use ``sbt stainless-dotty-standalone/assembly`` as follows:

.. code-block:: bash
$ git clone https://github.com/epfl-lara/stainless.git
$ git clone --recursive https://github.com/epfl-lara/stainless.git
Cloning into 'stainless'...
// ...
$ cd stainless
$ sbt stainless-scalac-standalone/assembly
$ git submodule update --init --recursive
$ sbt stainless-dotty-standalone/assembly
// takes about 1 minutes
Running Stainless can then be done with the command: ``java -jar frontends\stainless-dotty-standalone\target\scala-3.3.3\stainless-dotty-standalone-{VERSION}.jar``, where ``VERSION`` denotes Stainless version.
Expand Down
23 changes: 22 additions & 1 deletion docs/RELEASE_NOTES.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,27 @@
# Release Notes

## Version 0.9.8.8 (2024-08-22)

### Stainless frontend, library and internals

- Remove Scala 2 frontend (#1517)
- Transform `throw` into `assert(false)` (#1521)
- Add measure transfer for equivalence checking (#1557)
- Add further benchmarks for equivalence checking (#1538, #1554)
- Add SAT Check for precondition (#1548)
- Add various specifications to Stainless library (#1555, #1541)
- Enhance unfold to work on bindings and imperative code as well (#1533)
- Various bug fixes (#1531, #1532)

### Build

- Move Inox as a submodule instead of an http dependency (#1520)

### Documentation

- Add documentation for codespaces use and link to a sample repo (#1440)


## Version 0.9.8.7 (2024-05-06)

### Stainless frontend, library and internals
Expand Down Expand Up @@ -585,4 +607,3 @@
## Version 0.1-93dbd33 (14-01-2019)

- First official release on GitHub

0 comments on commit d452855

Please sign in to comment.