You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: release-notes/rascal-0-41-x-release-notes.md
+13-4Lines changed: 13 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -9,16 +9,24 @@ In this post we report on the Rascal release 0.41.x
9
9
## Release 0.41.0 - September, 2025
10
10
11
11
Welcome to Rascal 0.41.0! This release comes with great improvements in usability (parse error recovery, loading speed)
12
-
and enormous progress with type-checking and compilation. Numerous additions to the standard library and a _big change_ in the Java language support setup... These release notes are organized by major topics and there is a list of smaller improvements at the end, including a list of linked closed issues and the merged pull requests.
12
+
and enormous progress with type-checking and compilation. Numerous additions to the standard library and a _big change_ in the Java language support setup...
13
+
These release notes are organized by major topics and there is a list of smaller improvements at the end, including a list of linked closed issues and the merged pull requests.
13
14
14
15
Many, if not most, of the improvements to the Rascal project were both funded and executed by Swat.engineering BV. Thanks!
15
16
17
+
:::info
18
+
All Eclipse functionality, including the `rascal-eclipse` plugin and the Eclipse IDE Metatooling Platform (IMP a.k.a. `impulse`), was _archived_ this year, after having been deprecated for a long time.
19
+
Everybody is expected to use Rascal now using the VScode extension, or using the commandline REPL, or from their own LSP clients. With this move to VScode the `Figure` library (embedded in `rascal-eclipse`)
20
+
is no longer available, until we create a replacement. The pre-existing releases of `rascal-eclipse` and `impulse` will _not_ remain available forever on `usethesource.io`,
21
+
for the sake of security and simplicity.
22
+
:::
23
+
16
24
### Analyzing Java code
17
25
18
26
For many users the extraction of [java-air](https://github.com/usethesource/java-air/) as a separate project from `rascal` will be the biggest change. This allows
19
27
us to do faster maintenance cycles on both projects and it more than halved the size of the binary distribution of the core Rascal features.
20
28
21
-
**Students following courses on Software Evolution**, or Software Maintenance/Software quality at different schools and universities: your course notes may not
29
+
**Students following courses on Software Evolution**, or Software Maintenance/Software quality at different schools and universities: your course and lab notes may not
22
30
include this new information, but this is relevant for you if you want to use the newest Rascal VScode extension for your lab exercises!
23
31
24
32
To regain access to all the beloved features for the Java language related to parsing, abstract syntax trees, and semantic models like `M3`, please add this to your `pom.xml` dependencies:
@@ -55,13 +63,13 @@ To make this work Rascal features such as "pattern matching" and "field selectio
55
63
* if accidentally an error tree does lead to a new run-time exception, then this exception is always wrapped by `ParseErrorRecovery` to indicate that this was the reason. This happens for example if you ask for a field that was part of the skipped characters: NoSuchField is then wrapped by `ParseErrorRecovery` automatically. Programmers can use `try-catch` as high-up in their algorithms as necessary to recover from such problems.
56
64
57
65
Parse error recovery required significant new extensions to the parsing algorithm, as well as introducing new downstream analyses
58
-
of ambiguous parse forests caused by recovering from different parallel stacks. These feature were very well tested on Rascal, Java and C grammars. Nevertheless it can be considered "beta" since not that many users (a few dozen) have tested it out. We hope you will enjoy it! In particular the robustness of syntax highlighting and the possibility of providing semantic feedback on a partially parsed file for your users are interesting.
66
+
of ambiguous parse forests caused by recovering from different parallel stacks. These features were very well tested on Rascal, Java and C grammars. Nevertheless it can be considered "beta" since not that many users (a few dozen) have tested it out. We hope you will enjoy it! In particular the robustness of syntax highlighting and the possibility of providing semantic feedback on a partially parsed file for your users are interesting.
59
67
60
68
Other improvements to the parsers:
61
69
* Two bugs related to nullables inside regular expressions were solved
62
70
* The `@<column>` constraint in grammar rules was fixed.
63
71
64
-
### Fast Configuration via Maven's `pom.xml`
72
+
### Fast and Consistent Configuration via Maven's `pom.xml`
65
73
66
74
> *warning* the way Rascal is configured is gradually migrating from using `RASCAL.MF` to using `pom.xml`. Dependencies (Java, Rascal or otherwise) already come from a `pom.xml` file's `<dependencies>` list. Every project should have one, with at least a dependency on the Rascal project itself.
67
75
@@ -72,6 +80,7 @@ Other improvements to the parsers:
72
80
* locations of library dependencies are always normalized to `mvn://` or `jar+file://` such that file access inside a library is always done in the same way and very few clients have to distinguish different cases of `loc` schemes. Normalization
73
81
to the `mvn://` scheme also enables debug-stepping through library code with the Rascal debugger.
74
82
* the old `lib://` scheme has completely disappeared, in favor of `mvn://` which is more precise due to the additional version number and group id.
83
+
* the computations that configure the interpreter and the compiler, by constructing a PathConfig, were re-implemented and rationalized.
0 commit comments