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-40-x-release-notes.md
+5-5Lines changed: 5 additions & 5 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -10,7 +10,7 @@ In this post we report on the Rascal release 0.40.x
10
10
11
11
## Release 0.40.17 - November 15, 2024
12
12
13
-
The public release 0.40.x follows release 0.28.x; many improvements have been made in projects that depend on the rascal interpreter and the standard library (the type checker, the VScode extensions, clair, etc.) Some of these improvements depend directly on fixes in the interpreter and additions to the standard library.
13
+
The public release 0.40.x follows release 0.28.x; many improvements have been made in projects that depend on the rascal interpreter and the standard library (the type checker, the VScode extensions, clair, etc.) Some of these improvements depend directly on fixes in the interpreter and additions to the standard library.
14
14
15
15
:::info
16
16
The Rascal type-checker which is available in the VScode extension is reaching maturity. The `.tpl` file format has changed, which requires everybody to throw the old ones away. The new type checker checks `.tpl` file versions and reports possible conflicts. Use `mvn clean` or remove your `bin` or `target` folders for all your projects and library projects today.
@@ -36,7 +36,7 @@ If `maven.repo.local` is set, then that is the root of the M2 repository. Otherw
36
36
37
37
A great deal of tests were fixed, enhanced or extended as a side-effect of the compiler project. Another visible aspect of the progress of the compiler is that now all Rascal runtime values (from vallang and beyond) now support `getFingerprint()` methods which help in optimizing pattern matching and dispatch in generated code by the compiler. These methods' return values have become a strict contract for future implementations of Rascal values, including parse trees and reified types and first-class functions.
38
38
39
-
### The following issues were solved
39
+
### The following issues were solved
40
40
41
41
* String `visit` with unicode characters had a bug
42
42
*`util::ShellExec` had some IO synchronization issues which were resolved.
@@ -105,12 +105,12 @@ then reparse that file and map it to ANSI or HTML or other markup formalisms.
105
105
* Tests for Box2text were added.
106
106
* Tree2Box is a new language-parametric formatter that maps any parse tree to Box using default heuristics. They trigger on the shape of production rules as they are typically found in programming languages. Tree2Box is a re-implementation of the
107
107
`pandora` tool of the ASF+SDF Meta-Environment, but written in Rascal instead of C+ApiGen. You can override default behavior by adding rules for your exceptional language constructs.
108
-
* The CSV model now has origin fields for Tables, Records and Fields: `loc src=|unknown:///`, such that CSV files can be
108
+
* The CSV model now has origin fields for Tables, Records and Fields: `loc src=|unknown:///`, such that CSV files can be
109
109
parsed and treated as (DSL) source code.
110
110
*`lang::json::IO` now has full origin tracking support.
111
111
*`util::Monitor` progress monitoring is now also supported on textual interfaces using UTF8 and ANSI support for pretty bars. If UTF8 is not supported by the terminal, it used ASCII art. If ANSI is not available, it defaults to normal event logging prins on the console. The progress bar will always default to the latter if in a CI environment of if `-Drascal.monitor.batch` is set.
112
112
* The progress monitors for module importation in the interpreter and parser generator were rationalized.
113
-
* In `lang::rascal::grammar::storage::ModuleParserStorage` a new feature for saving generated parsers to disk and loading them again was added. It follows the interface design of `ParseTree::parsers`. You can load a saved parser and used it as if
113
+
* In `lang::rascal::grammar::storage::ModuleParserStorage` a new feature for saving generated parsers to disk and loading them again was added. It follows the interface design of `ParseTree::parsers`. You can load a saved parser and used it as if
114
114
just generated with `parsers`.
115
115
*`lang::rascal::vis::ImportGraph` was added as a port of the ASF+SDF Meta-Environment import graph visual.
116
116
*`lang::std::ANSI` is an almost complete specification of the ANSI standard for character markup.
@@ -131,7 +131,7 @@ The Java model has received big maintenance love and attention, including improv
131
131
all source code elements are represented in the tree, annotated with `src` origins and ordered from left-to-right as
132
132
they were in the original source file.
133
133
* The constructors: `enum`, `enumConstant`, `compilationUnit`, `class`, `interface`, `method`, `field`, etc., all received
134
-
extra positional parameters for the concept of modifiers. Before these were modelled as keyword parameters, but
134
+
extra positional parameters for the concept of modifiers. Before these were modelled as keyword parameters, but
135
135
that invalidated the earlier mentioned AST contract.
136
136
* An AST and M3 model of the Java 9 module system was added.
137
137
* The `isSuper` boolean was removed from the AST definition of `methodInvocation`n and `new` calls, also to satisfy the AST contract.
0 commit comments