From f202d4562db35b37b5c6004053ea5ef9bc8ca959 Mon Sep 17 00:00:00 2001 From: "Jurgen J. Vinju" Date: Thu, 1 May 2025 21:28:09 +0200 Subject: [PATCH 01/11] removed eclipe.ini documentation --- .../EditingEclipseIni/EditingEclipseIni.md | 37 ------------------- 1 file changed, 37 deletions(-) delete mode 100644 courses/GettingStarted/Troubleshooting/EditingEclipseIni/EditingEclipseIni.md diff --git a/courses/GettingStarted/Troubleshooting/EditingEclipseIni/EditingEclipseIni.md b/courses/GettingStarted/Troubleshooting/EditingEclipseIni/EditingEclipseIni.md deleted file mode 100644 index 1227965e1..000000000 --- a/courses/GettingStarted/Troubleshooting/EditingEclipseIni/EditingEclipseIni.md +++ /dev/null @@ -1,37 +0,0 @@ ---- -title: Editing eclipse.ini ---- - -#### Synopsis - -Fixing configuration issues of Eclipse - -#### Description - -The `eclipse.ini` file must be edited to configure the _JVM_ that Rascal uses to run its code. -Reasons for configuring it are: -* More stackspace is required to execute the embedded parser generator -* More heap space is required to load all of the modules -* The right JVM version needs to be configured (Java _11_) - -Steps to configure `eclipse.ini` -1. Find the file first: - * on MacOSX it may be in /Applications/Eclipse.app/Contents/MacOS/eclipse.ini - * on Windows it may be in C:\Program Files\eclipse\eclipse.ini - * on Linux its where you extracted the eclipse tarball. -2. then find the line that starts with `-vm` and add on _the next separate line_ the path to the java run-time binary - * e.g. `/usr/bin/java` - * e.g. `C:\Program Files\Java SDK 1.8\bin\javaw` (note there is no .exe). -3. If you can’t find the line that starts with `-vm` you should add it _before the line starting with_ `-vmargs` - -##### Benefits - -* Typically `-Xss8m` is enough stacksize -* Typically `-Xmx1G` is enough heap size. -* Rascal works with Java 11. - -#### Pitfalls - -* Re-installing Eclipse requires editing the `ini` file again. -* Upgrading Java installation, and removing the old one, might invalidate the Eclipse configuration. -* Rascal works _only_ with Java 11. \ No newline at end of file From 9cd5f3dbda9c794fd2f8b37adf5616f9c39e9a67 Mon Sep 17 00:00:00 2001 From: "Jurgen J. Vinju" Date: Thu, 1 May 2025 21:28:59 +0200 Subject: [PATCH 02/11] scaffolding the maven documentation pages --- .../MavenPlugin/CompileMojo/CompileMojo.md | 0 .../MavenPlugin/ExecMojo/ExecMojo.md | 0 .../GettingStarted/MavenPlugin/MavenPlugin.md | 23 +++++++++++++++++++ .../MavenPlugin/PackageMojo/PackageMojo.md | 0 .../MavenPlugin/TutorMojo/TutorMojo.md | 0 5 files changed, 23 insertions(+) create mode 100644 courses/GettingStarted/MavenPlugin/CompileMojo/CompileMojo.md create mode 100644 courses/GettingStarted/MavenPlugin/ExecMojo/ExecMojo.md create mode 100644 courses/GettingStarted/MavenPlugin/MavenPlugin.md create mode 100644 courses/GettingStarted/MavenPlugin/PackageMojo/PackageMojo.md create mode 100644 courses/GettingStarted/MavenPlugin/TutorMojo/TutorMojo.md diff --git a/courses/GettingStarted/MavenPlugin/CompileMojo/CompileMojo.md b/courses/GettingStarted/MavenPlugin/CompileMojo/CompileMojo.md new file mode 100644 index 000000000..e69de29bb diff --git a/courses/GettingStarted/MavenPlugin/ExecMojo/ExecMojo.md b/courses/GettingStarted/MavenPlugin/ExecMojo/ExecMojo.md new file mode 100644 index 000000000..e69de29bb diff --git a/courses/GettingStarted/MavenPlugin/MavenPlugin.md b/courses/GettingStarted/MavenPlugin/MavenPlugin.md new file mode 100644 index 000000000..ad22cd2aa --- /dev/null +++ b/courses/GettingStarted/MavenPlugin/MavenPlugin.md @@ -0,0 +1,23 @@ +--- +title: Maven Plugin +sidebar_position: 4 +details: + - mvn + - maven + - compile + - tutor + - exec + - package +--- + +The [rascal-maven-plugin](http://github.com/usethesource/rascal-maven-plugin) offers these Maven plugins for dealing with Rascal projects: +* ((CompileMojo)) for static checking and compiling Rascal projects to JVM class files, TypePal `.tpl` modules and `.constants` files. +* ((TutorMojo)) for (modularly) generating API docs, and compiling tutor courses to docusaurus markdown +* ((PackageMojo)) for packing compiled Rascal code, source code and documentation into a jar file, making the internal location references relocatable. +* ((ExecMojo)) for executing arbitrary Rascal code during an arbitrary Maven goal. + +Each of the above is configured in XML in the local `pom.xml` file of a Rascal project. All of them are executed during a `mvn package` or `mvn install` command line. If the local pom has the right configuration, then each mojo can also be invoked separately: +* `mvn rascal:compile` runs the compiler and `-Drascal.compile.skip` guarantees it is skipped. +* `mvn rascal:tutor` runs the tutor compiler and `-Drascal.tutor.skip` guarantees it is skipped. +* `mvn rascal:package` runs the package rewriter and `-Drascal.package.skip` guarantees it is skipped. +* `mvn rascal:exec` executes some Rascal code, while `-Drascal.exec.skip` makes sure this goal is skipped. \ No newline at end of file diff --git a/courses/GettingStarted/MavenPlugin/PackageMojo/PackageMojo.md b/courses/GettingStarted/MavenPlugin/PackageMojo/PackageMojo.md new file mode 100644 index 000000000..e69de29bb diff --git a/courses/GettingStarted/MavenPlugin/TutorMojo/TutorMojo.md b/courses/GettingStarted/MavenPlugin/TutorMojo/TutorMojo.md new file mode 100644 index 000000000..e69de29bb From b2c30e3891a8b0d205bc96ee3ee3409cebe0c369 Mon Sep 17 00:00:00 2001 From: "Jurgen J. Vinju" Date: Thu, 1 May 2025 21:40:56 +0200 Subject: [PATCH 03/11] minor additions --- courses/GettingStarted/MavenPlugin/MavenPlugin.md | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/courses/GettingStarted/MavenPlugin/MavenPlugin.md b/courses/GettingStarted/MavenPlugin/MavenPlugin.md index ad22cd2aa..e1050185c 100644 --- a/courses/GettingStarted/MavenPlugin/MavenPlugin.md +++ b/courses/GettingStarted/MavenPlugin/MavenPlugin.md @@ -20,4 +20,13 @@ Each of the above is configured in XML in the local `pom.xml` file of a Rascal p * `mvn rascal:compile` runs the compiler and `-Drascal.compile.skip` guarantees it is skipped. * `mvn rascal:tutor` runs the tutor compiler and `-Drascal.tutor.skip` guarantees it is skipped. * `mvn rascal:package` runs the package rewriter and `-Drascal.package.skip` guarantees it is skipped. -* `mvn rascal:exec` executes some Rascal code, while `-Drascal.exec.skip` makes sure this goal is skipped. \ No newline at end of file +* `mvn rascal:exec` executes some Rascal code, while `-Drascal.exec.skip` makes sure this goal is skipped. + + +#### Benefits + +* When using the ((getProjectPathConfig)) function from ((util::Reflective)), and a local `pom.xml` is available, then +the produced configuration will be influenced by what is configured in the `pom.xml` file as well. +* All dependencies defined in the `pom.xml` are used to automatically configure the library path of the compiler and the interpreter, as well as the classpath of the compiled or interpreted runtime engine. +* Rascal projects can depend on any other Maven project + From defb69f54b5798f2daa4065b5c5299b91a8eedc0 Mon Sep 17 00:00:00 2001 From: "Jurgen J. Vinju" Date: Sun, 4 May 2025 16:00:48 +0200 Subject: [PATCH 04/11] addedmissing --- .../MavenPlugin/CompileMojo/CompileMojo.md | 94 +++++++++++++++++++ .../MavenPlugin/ConsoleMojo/ConsoleMojo.md | 0 .../MavenPlugin/ExecMojo/ExecMojo.md | 4 + .../GettingStarted/MavenPlugin/MavenPlugin.md | 3 +- 4 files changed, 100 insertions(+), 1 deletion(-) create mode 100644 courses/GettingStarted/MavenPlugin/ConsoleMojo/ConsoleMojo.md diff --git a/courses/GettingStarted/MavenPlugin/CompileMojo/CompileMojo.md b/courses/GettingStarted/MavenPlugin/CompileMojo/CompileMojo.md index e69de29bb..1de687e4e 100644 --- a/courses/GettingStarted/MavenPlugin/CompileMojo/CompileMojo.md +++ b/courses/GettingStarted/MavenPlugin/CompileMojo/CompileMojo.md @@ -0,0 +1,94 @@ +--- +title: Compile Mojo +keywords: + - compile + - maven + - goal + - "rascal:compile" +--- + +The `rascal:compile` mojo is executed by default with the `compile` goal of Maven. For every Rascal module in the `srcs` list of configured source modules, it will generate a binary `.tpl` TModule file. It typechecks all the modules which have an older timestamp on their corresponding binary output `.tpl` file, and the downstream damage triggered by these recompile. + +The main output for the user is a list of INFO, WARNING and ERROR messages, including their origin location. The compiler produces errors when the source code is not executable at that point. It generates errors, when it is likely the generated code will throw exceptions at run-time or otherwise fail to behave as expected. Information messages are reserved for hinting at deprecated uses of the language or libraries. + +The compiler is configured in `pom.xml` in three locations: +* `... - each dependency leads to a compile-time library path entry, and a run-time JVM classpath entry. +* the general `... tags for Rascal mojos: +```xml + + + org.rascalmpl + rascal-maven-plugin + ${rascal-maven-plugin.version} + + ...configuration tags go here... + + + +``` +* and finally the specific `...` tag for the `compile` goal. +```xml + + org.rascalmpl + rascal-maven-plugin + ${rascal-maven-plugin.version} + + + + default-compile + compile + + + compile + + + .... configuration tags go here .... + + + + +``` +* The latter overwrites the first, tag-by-tag + +Each configuration has the exact same parameters as the keyword fields of a ((util::Reflective::PathConfig)) constructor, and some additional ones: +* `${project.basedir}/src/main/rascal` +* `...` - however, if we leave these alone they are filled automatically via `` +* `${project.basedir}/target/classes` however, the default is always good. +* `${project.basedir}/src/generated-sources/java` - will be used to store intermediate generated Java files. The default is fine too. +* `${project.basedir}/src/main/rascal/Experiments` - allows us to select files and folders reachable from the `srcs` and skip their compilation unless they are required by other non-ignored modules. +* A number of boolean flags can be used for debugging purposes: ``, ``, ``, ``, ``, ``, ``, `` and ``. The latter two control if a `mvn` run will fail (exit code 1) or succeed (exit code 0) in the presence of warnings or errors. +* Finally we can instruct the mojo to compile the projects in parallel chunks: + * the `` boolean flag switches the behavior on. + * `5` restricts the number of parallel processes to 5. However the mojo will estimate a proper maximum based on available processors and memory automatically. + * `` lists a number of files that will be compiled and made reusable before the other threads start. Typically the utility modules with a high "fan-in" are listed here, to avoid duplicate (re)work by the other processes. + +#### Examples + +Maven is typically executed on the Un*x or Windows commandline like so: +```bash +# typically runs the compiler and the tests before packaging everything +# in a jar file, and copying it to your local Maven repository: +mvn install + +# like `install` but without copying to the Maven repository; +mvn package + +# If configured as above in an `` This will run only the Rascal compiler +mvn rascal:compile + +# runs everything _except the Rascal compiler_ +mvn install -Drascal.compile.skip +``` + +#### Benefits + +* The Maven configuration, including the dependencies listed in `pom.xml` enable reuse of other Rascal programs as libraries or development tools. +* The Maven configuration, with the dependencies listed in `pom.xml` enable reuse of other JVM-based projects in the Maven Grand Central, or other repositories listed in the `pom.xml` +* The rascal:compile mojo works find with multi-module Maven projects and parent projects. + +#### Pitfalls + +* The current rascal:compile mojo executes the static checker and generates a `.tpl` TModel for every Rascal `.rsc` source file. The`.tpl` file enables modular checking against the "binary" interface of other imported and extended modules. _The JVM bytecode generator is not active yet._ +* The rascal:compile mojo is fully configured from the pom.xml. Other sources of configuration +may still uses the `Sources` fields in `RASCAL.MF`. This discrepancy will be resolved in the coming months. +* ((getProjectPathConfig)) may produce different configurations for source folders for the same reason. \ No newline at end of file diff --git a/courses/GettingStarted/MavenPlugin/ConsoleMojo/ConsoleMojo.md b/courses/GettingStarted/MavenPlugin/ConsoleMojo/ConsoleMojo.md new file mode 100644 index 000000000..e69de29bb diff --git a/courses/GettingStarted/MavenPlugin/ExecMojo/ExecMojo.md b/courses/GettingStarted/MavenPlugin/ExecMojo/ExecMojo.md index e69de29bb..2e74ae66d 100644 --- a/courses/GettingStarted/MavenPlugin/ExecMojo/ExecMojo.md +++ b/courses/GettingStarted/MavenPlugin/ExecMojo/ExecMojo.md @@ -0,0 +1,4 @@ +--- +title: Exec Mojo +--- + diff --git a/courses/GettingStarted/MavenPlugin/MavenPlugin.md b/courses/GettingStarted/MavenPlugin/MavenPlugin.md index e1050185c..a25286eb2 100644 --- a/courses/GettingStarted/MavenPlugin/MavenPlugin.md +++ b/courses/GettingStarted/MavenPlugin/MavenPlugin.md @@ -11,10 +11,11 @@ details: --- The [rascal-maven-plugin](http://github.com/usethesource/rascal-maven-plugin) offers these Maven plugins for dealing with Rascal projects: -* ((CompileMojo)) for static checking and compiling Rascal projects to JVM class files, TypePal `.tpl` modules and `.constants` files. +* ((CompileMojo)) for static checking and compiling Rascal projects to Rascal binary modules,which are comprised of: one JVM class file, or more (interface and test classes), a TypePal `.tpl` TModule and a `.constants` file with an index of constant values. * ((TutorMojo)) for (modularly) generating API docs, and compiling tutor courses to docusaurus markdown * ((PackageMojo)) for packing compiled Rascal code, source code and documentation into a jar file, making the internal location references relocatable. * ((ExecMojo)) for executing arbitrary Rascal code during an arbitrary Maven goal. +* ((ConsoleMojo for starting a ((REPL)) Each of the above is configured in XML in the local `pom.xml` file of a Rascal project. All of them are executed during a `mvn package` or `mvn install` command line. If the local pom has the right configuration, then each mojo can also be invoked separately: * `mvn rascal:compile` runs the compiler and `-Drascal.compile.skip` guarantees it is skipped. From a1f4ddf4e3071ee238157991a068fb048acc1299 Mon Sep 17 00:00:00 2001 From: "Jurgen J. Vinju" Date: Sun, 4 May 2025 16:07:24 +0200 Subject: [PATCH 05/11] minorfixes' --- .../MavenPlugin/CompileMojo/CompileMojo.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/courses/GettingStarted/MavenPlugin/CompileMojo/CompileMojo.md b/courses/GettingStarted/MavenPlugin/CompileMojo/CompileMojo.md index 1de687e4e..0a7495eaa 100644 --- a/courses/GettingStarted/MavenPlugin/CompileMojo/CompileMojo.md +++ b/courses/GettingStarted/MavenPlugin/CompileMojo/CompileMojo.md @@ -12,8 +12,8 @@ The `rascal:compile` mojo is executed by default with the `compile` goal of Mave The main output for the user is a list of INFO, WARNING and ERROR messages, including their origin location. The compiler produces errors when the source code is not executable at that point. It generates errors, when it is likely the generated code will throw exceptions at run-time or otherwise fail to behave as expected. Information messages are reserved for hinting at deprecated uses of the language or libraries. The compiler is configured in `pom.xml` in three locations: -* `... - each dependency leads to a compile-time library path entry, and a run-time JVM classpath entry. -* the general `... tags for Rascal mojos: +* `...` - each dependency leads to a compile-time library path entry, and a run-time JVM classpath entry. +* the general `...` tags for Rascal mojos: ```xml @@ -51,9 +51,9 @@ The compiler is configured in `pom.xml` in three locations: * The latter overwrites the first, tag-by-tag Each configuration has the exact same parameters as the keyword fields of a ((util::Reflective::PathConfig)) constructor, and some additional ones: -* `${project.basedir}/src/main/rascal` -* `...` - however, if we leave these alone they are filled automatically via `` -* `${project.basedir}/target/classes` however, the default is always good. +* `${project.basedir}/src/main/rascal`, configure a list of folder in the current project that are the roots for Rascal module names. +* `...` - configure library dependencies manually. However, if we leave these alone they are filled automatically via `` which is much easier to get right. +* `${project.basedir}/target/classes` defines the target folder for binary files. However, the default is always good. * `${project.basedir}/src/generated-sources/java` - will be used to store intermediate generated Java files. The default is fine too. * `${project.basedir}/src/main/rascal/Experiments` - allows us to select files and folders reachable from the `srcs` and skip their compilation unless they are required by other non-ignored modules. * A number of boolean flags can be used for debugging purposes: ``, ``, ``, ``, ``, ``, ``, `` and ``. The latter two control if a `mvn` run will fail (exit code 1) or succeed (exit code 0) in the presence of warnings or errors. From e2a7ee909014fd7a5942dd5d3c037a6c2e00cc7d Mon Sep 17 00:00:00 2001 From: "Jurgen J. Vinju" Date: Sun, 4 May 2025 16:15:25 +0200 Subject: [PATCH 06/11] fixes --- .../MavenPlugin/CompileMojo/CompileMojo.md | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/courses/GettingStarted/MavenPlugin/CompileMojo/CompileMojo.md b/courses/GettingStarted/MavenPlugin/CompileMojo/CompileMojo.md index 0a7495eaa..67e10c048 100644 --- a/courses/GettingStarted/MavenPlugin/CompileMojo/CompileMojo.md +++ b/courses/GettingStarted/MavenPlugin/CompileMojo/CompileMojo.md @@ -7,9 +7,12 @@ keywords: - "rascal:compile" --- +All Rascal projects are assumed to be configured via a Maven `pom.xml` file. The primary goal +is to make the Rascal compiler available to the project via `` tag. Running the compiler will make the binary output available for us by other projects later. Also static errors are detected and reported. + The `rascal:compile` mojo is executed by default with the `compile` goal of Maven. For every Rascal module in the `srcs` list of configured source modules, it will generate a binary `.tpl` TModule file. It typechecks all the modules which have an older timestamp on their corresponding binary output `.tpl` file, and the downstream damage triggered by these recompile. -The main output for the user is a list of INFO, WARNING and ERROR messages, including their origin location. The compiler produces errors when the source code is not executable at that point. It generates errors, when it is likely the generated code will throw exceptions at run-time or otherwise fail to behave as expected. Information messages are reserved for hinting at deprecated uses of the language or libraries. +The main output for the user is a list of INFO, WARNING and ERROR messages, including their origin location. The compiler produces **errors** when the source code is not executable at that point. It generates **warnings**, when it is likely the generated code will throw exceptions at run-time or otherwise fail to behave as expected. **Info** messages are reserved for hinting at deprecated uses of the language or libraries, or other (possibly noisy) ignorable information about the code as written. The compiler is configured in `pom.xml` in three locations: * `...` - each dependency leads to a compile-time library path entry, and a run-time JVM classpath entry. @@ -66,7 +69,9 @@ Each configuration has the exact same parameters as the keyword fields of a ((ut Maven is typically executed on the Un*x or Windows commandline like so: ```bash -# typically runs the compiler and the tests before packaging everything +#! /bin/bash + +# Typically runs the compiler and the tests before packaging everything # in a jar file, and copying it to your local Maven repository: mvn install From 0e312d202053e7f8928e7b9e67e00152ec14f494 Mon Sep 17 00:00:00 2001 From: "Jurgen J. Vinju" Date: Mon, 5 May 2025 19:48:14 +0200 Subject: [PATCH 07/11] removed dead eclipse references --- courses/GettingHelp/GettingHelp.md | 1 - .../CreateNewProject/CreateNewProject.md | 18 +++++--- .../DownloadAndInstallation.md | 3 +- .../RunningRascal/Eclipse/Eclipse.md | 40 ------------------ .../eclipse-commandbutton-screenshot.png | Bin 124694 -> 0 bytes .../Eclipse/eclipse-menu-screenshot.png | Bin 66740 -> 0 bytes .../RunningRascal/RunningRascal.md | 1 - .../ModuleImport/ModuleImport.md | 3 -- .../RascalAmendmentProposals/RAP10/RAP10.md | 4 +- .../Metrics/MeasuringJava/MeasuringJava.md | 8 ++-- .../ASFPlusSDF/ASFPlusSDF.md | 2 +- .../DomainSpecificLanguages.md | 2 +- src/components/HomepageFeatures/index.js | 1 - 13 files changed, 20 insertions(+), 63 deletions(-) delete mode 100644 courses/GettingStarted/RunningRascal/Eclipse/Eclipse.md delete mode 100644 courses/GettingStarted/RunningRascal/Eclipse/eclipse-commandbutton-screenshot.png delete mode 100644 courses/GettingStarted/RunningRascal/Eclipse/eclipse-menu-screenshot.png diff --git a/courses/GettingHelp/GettingHelp.md b/courses/GettingHelp/GettingHelp.md index 45f010d3f..b803eb7a1 100644 --- a/courses/GettingHelp/GettingHelp.md +++ b/courses/GettingHelp/GettingHelp.md @@ -30,7 +30,6 @@ details: 3. The (open) issues registered with [Github Issues](http://github.com/usethesource/rascal/issues) * Directly in the Rascal IDE there is help available: 1. On the commandline, type `:help` - 2. In Eclipse there is the `Tutor View` which opens all the documentation pages inside Eclipse. 3. In VScode use the command palette and search for `Rascal` for more commands. * For specific application topics, "Howto" kind of information, etc. please go to ((FurtherReading)). * There is a lot of documentation on Rascal and its libraries. Read the ((Browsing)) page on how to navigate it. diff --git a/courses/GettingStarted/CreateNewProject/CreateNewProject.md b/courses/GettingStarted/CreateNewProject/CreateNewProject.md index 6cdf1d885..eee33367f 100644 --- a/courses/GettingStarted/CreateNewProject/CreateNewProject.md +++ b/courses/GettingStarted/CreateNewProject/CreateNewProject.md @@ -8,8 +8,7 @@ import IO; remove(|home:///my-project-name|, recursive=true); ``` -Rascal projects, generally, work the same in all three IDE contexts: -* Eclipse +Rascal projects, generally, work the same in all IDE contexts: * VScode * Commandline @@ -22,9 +21,7 @@ import util::Reflective; newRascalProject(|home:///my-project-name|) ``` -The Eclipse plugin has a "New Project Wizard" you can use as well. - -The next step is to import the new project into VScode or Eclipse, or +The next step is to import the new project into VScode, or to `cd` to the project's root directory. From there on ((RunningRascal)) with the new project's source and library settings is trivial. @@ -52,8 +49,7 @@ The `pom.xml` file is the basic setup that names the project and defines its dep ``` Next to that `RASCAL.MF` is required to configure the development environment for the project. Some -information from the `pom.xml` is repeated here, because this file is common between Eclipse, VScode and empty commandline projects, -and such projects could work with a `pom.xml`: +information from the `pom.xml` is repeated here, because this file is common between VScode and empty commandline projects, and such projects should work with a `pom.xml`: ```MF ((|home:///my-project-name/META-INF/RASCAL.MF|)) @@ -64,3 +60,11 @@ And finally in `src/main/rascal` you'll find the Rascal source files, as configu ```rascal ((|home:///my-project-name/src/main/rascal/Main.rsc|)) ``` + +#### Benefits + +* The ((newRascalProject)) sets up a project for use with the Rascal ((MavenPlugin)). + +#### Pitfalls + +* In `RASCAL.MF` the `Sources` configuration option will be replaced by pom.xml's `` tag. \ No newline at end of file diff --git a/courses/GettingStarted/DownloadAndInstallation/DownloadAndInstallation.md b/courses/GettingStarted/DownloadAndInstallation/DownloadAndInstallation.md index 9df6ccdf3..a3ece8aa6 100644 --- a/courses/GettingStarted/DownloadAndInstallation/DownloadAndInstallation.md +++ b/courses/GettingStarted/DownloadAndInstallation/DownloadAndInstallation.md @@ -7,7 +7,6 @@ Rascal is deployed as one of four easy-to-use packages: 1. **A standalone "jar" file**, which can be downloaded [here](https://update.rascal-mpl.org/console/rascal-shell-stable.jar) 2. A **Visual Studio Code extension**, which can be found [here](https://marketplace.visualstudio.com/items?itemName=usethesource.rascalmpl) or search for "Rascal" in the "Extension" view in VScode itself. -3. An **Eclipse plugin**, for which the update site is . -4. A set of **Maven MOJOs**, for which the plugin repository is +4. A ((MavenPlugin)) with a set of Rascal Mojo's, for which the plugin repository is See ((RunningRascal)) for what to do next. \ No newline at end of file diff --git a/courses/GettingStarted/RunningRascal/Eclipse/Eclipse.md b/courses/GettingStarted/RunningRascal/Eclipse/Eclipse.md deleted file mode 100644 index f912f570f..000000000 --- a/courses/GettingStarted/RunningRascal/Eclipse/Eclipse.md +++ /dev/null @@ -1,40 +0,0 @@ ---- -title: Running Rascal in Eclipse ---- - -After the [installation procedure]((DownloadAndInstallation)) running Rascal -in Eclipse is a matter of starting the ((RascalShell)): -1. with the command button -2. using the the pull-down menu - -## Starting ((RascalShell)) with the command button. - -* If no project was (ever) selected the button starts a ((RascalShell)) with only the standard library on its path -* Otherwise, the last selected project in any navigator, or opened file in the edit space, selects the project that is used to configure the search paths. -* Use the [create new project instructions]((CreateNewProject)), or the `New project Wizard` in Eclipse to obtain a Rascal project setup. - -![eclipse-commandbutton-screenshot]((eclipse-commandbutton-screenshot.png)) - -:::info -The Rascal logo appears twice in the button bar: -* the left one is to start the ((RascalShell)) -* the right one is to select the Rascal Eclipse "perspective" with additional features like the "Rascal Navigator" -::: - -## Starting ((RascalShell)) from the menu - -From the menu the behavior is exactly the same as from the button bar: - -![eclipse-menu-screenshot]((eclipse-menu-screenshot.png)) - -## Programmatic access to Eclipse features - -* Use ((util::IDEServices)) to communicate with Eclipse, to register problems, to open files and browsers, etc. -* Use `util::IDE` for programming Eclipse plugins for languages designed using Rascal. -* The `project://` location scheme provides access to the root of each registered folder in the VScode workspace. -* Use ((util::Reflective::getProjectPathConfig)) for Java and Rascal project configuration extracted from Maven and Eclipse configuration (classpaths, sourcepaths, library dependencies). - - -:::info -The `util::IDE` module is waiting to be documented -::: \ No newline at end of file diff --git a/courses/GettingStarted/RunningRascal/Eclipse/eclipse-commandbutton-screenshot.png b/courses/GettingStarted/RunningRascal/Eclipse/eclipse-commandbutton-screenshot.png deleted file mode 100644 index 15a012237d3d1ff52de49364dd5ad1a7819458d1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 124694 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 V;qnVk#lcj?*{4z1}a{=N98677m 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 diff --git a/courses/GettingStarted/RunningRascal/Eclipse/eclipse-menu-screenshot.png b/courses/GettingStarted/RunningRascal/Eclipse/eclipse-menu-screenshot.png deleted file mode 100644 index 3dbaa25ed647d70a17f4b1bef09c84be6832daee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 66740 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 CZ^3{7 diff --git a/courses/GettingStarted/RunningRascal/RunningRascal.md b/courses/GettingStarted/RunningRascal/RunningRascal.md index 7aafd8341..3286d3b41 100644 --- a/courses/GettingStarted/RunningRascal/RunningRascal.md +++ b/courses/GettingStarted/RunningRascal/RunningRascal.md @@ -7,7 +7,6 @@ sidebar_position: 2 1. On the Unix or Windows [Commandline]((RunningRascal-Commandline)), start a ((RascalShell)) by: `java -jar rascal-.jar` 2. In [VScode]((RunningRascal-VScode)), in the command palette type `Rascal` and select `Create Rascal Terminal` -3. In [Eclipse]((RunningRascal-Eclipse)), from the button bar select the button with the Rascal logo. 4. With Maven, ((CreateNewProject)) first and then type: `mvn rascal:console` You will be prompted for input right after the version is printed and a lot of information about the current searchpath configuration. diff --git a/courses/Rascal/Errors/CompileTimeErrors/ModuleImport/ModuleImport.md b/courses/Rascal/Errors/CompileTimeErrors/ModuleImport/ModuleImport.md index cafa79a5b..fefadbadf 100644 --- a/courses/Rascal/Errors/CompileTimeErrors/ModuleImport/ModuleImport.md +++ b/courses/Rascal/Errors/CompileTimeErrors/ModuleImport/ModuleImport.md @@ -28,9 +28,6 @@ This can be caused by Remedies: * Correct the mispelled name. -* In Eclipse the safest way to execute a Rascal module is to select it in the Package Explorer, -right click on it and then select `Run as Rascal Application`. - * At the command line, change directory to where the toplevel module of your program is located and then execute the Rascal Shell. #### Examples diff --git a/courses/RascalAmendmentProposals/RAP10/RAP10.md b/courses/RascalAmendmentProposals/RAP10/RAP10.md index 23d398d50..9ec8313ae 100644 --- a/courses/RascalAmendmentProposals/RAP10/RAP10.md +++ b/courses/RascalAmendmentProposals/RAP10/RAP10.md @@ -12,7 +12,7 @@ sidebar_position: 10 ## Abstract -Rascal can be executed in JVM threads (as in the Eclipse context for example) and also we plan to add concurrency features to Rascal itself ((RAP8)). This puts a lot more pressure on our IO mechanism than before, leading to races on disk and on other external resources identified by values of type `loc`. +Rascal can be executed in JVM threads and also we plan to add concurrency features to Rascal itself ((RAP8)). This puts a lot more pressure on our IO mechanism than before, leading to races on disk and on other external resources identified by values of type `loc`. We propose to extend the URIResolverRegistry (which is Rascal’s generic resource access mechanism) with a cross-cutting “locking” feature that is safe (up to *unpredicted* aliasing of location URIs). @@ -21,7 +21,7 @@ A second part of the proposal is to expose this locking feature on the language ## Motivation * Many use cases of Rascal involve file IO - * Often in a dynamic context where multiple file processors read and write concurrently, such as the Eclipse IDE or an LSP server. + * Often in a dynamic context where multiple file processors read and write concurrently, such as the an LSP server. * More and more in a concurrent and even parallel context, where multi-core architectures are used to speed up larger computations * File IO is hazardous in a concurrent context, due to race conditions * So, we need some form of locking mechanism on file IO. diff --git a/courses/Recipes/Metrics/MeasuringJava/MeasuringJava.md b/courses/Recipes/Metrics/MeasuringJava/MeasuringJava.md index 7d5bb6c2c..5b7824a75 100644 --- a/courses/Recipes/Metrics/MeasuringJava/MeasuringJava.md +++ b/courses/Recipes/Metrics/MeasuringJava/MeasuringJava.md @@ -4,7 +4,7 @@ title: Measuring Java #### Synopsis -A few steps using the M3 model to compute basic metrics for a Java project in Eclipse. +A few steps using the M3 model to compute basic metrics for a Java project in VScode. #### Syntax @@ -17,10 +17,10 @@ A few steps using the M3 model to compute basic metrics for a Java project in Ec #### Description -This is a recipe for computing basic or more advanced metrics from a Java project in Eclipse. We assume: +This is a recipe for computing basic or more advanced metrics from a Java project. We assume: -* You have Rascal installed in an Eclipse instance. -* You have a Java project in your Eclipse workspace that compiles without errors. Let's call it `HelloWorld`. +* You have the Rascal extension installed in an VScode instance. +* You have a Java project in your VScode workspace that compiles without errors. Let's call it `HelloWorld`. Now we will follow the [EASY]((EASY)) paradigm: diff --git a/courses/WhyRascal/CompareWithOtherParadigms/ASFPlusSDF/ASFPlusSDF.md b/courses/WhyRascal/CompareWithOtherParadigms/ASFPlusSDF/ASFPlusSDF.md index e2186a386..d3492ae0f 100644 --- a/courses/WhyRascal/CompareWithOtherParadigms/ASFPlusSDF/ASFPlusSDF.md +++ b/courses/WhyRascal/CompareWithOtherParadigms/ASFPlusSDF/ASFPlusSDF.md @@ -57,7 +57,7 @@ What are the differences between ASF+SDF and Rascal? What are the commonalities? * Rascal is based on a Java interpreter, or a Java run-time when compiled. So the code is more portable. -* Rascal is supported by a modern, Eclipse-based, IDE, unlike the simple IDE of the ASF+SDF Meta-Environment. +* Rascal is supported by a modern, VScode-based IDE, unlike the simple IDE of the ASF+SDF Meta-Environment. IDE services like keyword highlighting, outlining, and more are available for the Rascal programmer. #### Examples diff --git a/courses/WhyRascal/UseCases/DomainSpecificLanguages/DomainSpecificLanguages.md b/courses/WhyRascal/UseCases/DomainSpecificLanguages/DomainSpecificLanguages.md index d60f80a9e..78dcd34e7 100644 --- a/courses/WhyRascal/UseCases/DomainSpecificLanguages/DomainSpecificLanguages.md +++ b/courses/WhyRascal/UseCases/DomainSpecificLanguages/DomainSpecificLanguages.md @@ -9,7 +9,7 @@ In this usecase description we give a flavor of how you can use Rascal to: 1. define the syntax of a DSL; 2. create a simple semantic check; 3. how to compile the DSL to Java; -4. instantiate a VScode extension or Eclipse Plugin for the DSL. +4. instantiate a VScode extension (an LSP server) for the DSL. The following example shows how to define a simple DSL for "state machines". It includes a parser, a check for unreachable states and a compiler to Java code. diff --git a/src/components/HomepageFeatures/index.js b/src/components/HomepageFeatures/index.js index 328ddc8c9..ae9547629 100644 --- a/src/components/HomepageFeatures/index.js +++ b/src/components/HomepageFeatures/index.js @@ -12,7 +12,6 @@ const FeatureList = [

  • Context Free Grammars
  • Concrete Syntax Fragments
  • Static Analysis
  • -
  • Eclipse Plugins
  • VScode extensions
  • Language Server Protocol
  • From e5e6e11db698244204568f65f2450d6106a2875e Mon Sep 17 00:00:00 2001 From: "Jurgen J. Vinju" Date: Tue, 6 May 2025 10:10:01 +0200 Subject: [PATCH 08/11] added missing titles --- courses/GettingStarted/MavenPlugin/ConsoleMojo/ConsoleMojo.md | 3 +++ courses/GettingStarted/MavenPlugin/PackageMojo/PackageMojo.md | 3 +++ courses/GettingStarted/MavenPlugin/TutorMojo/TutorMojo.md | 4 ++++ 3 files changed, 10 insertions(+) diff --git a/courses/GettingStarted/MavenPlugin/ConsoleMojo/ConsoleMojo.md b/courses/GettingStarted/MavenPlugin/ConsoleMojo/ConsoleMojo.md index e69de29bb..5a1894b1a 100644 --- a/courses/GettingStarted/MavenPlugin/ConsoleMojo/ConsoleMojo.md +++ b/courses/GettingStarted/MavenPlugin/ConsoleMojo/ConsoleMojo.md @@ -0,0 +1,3 @@ +--- +title: Console Mojo +--- diff --git a/courses/GettingStarted/MavenPlugin/PackageMojo/PackageMojo.md b/courses/GettingStarted/MavenPlugin/PackageMojo/PackageMojo.md index e69de29bb..74a5c1782 100644 --- a/courses/GettingStarted/MavenPlugin/PackageMojo/PackageMojo.md +++ b/courses/GettingStarted/MavenPlugin/PackageMojo/PackageMojo.md @@ -0,0 +1,3 @@ +--- +title: Package Mojo +--- diff --git a/courses/GettingStarted/MavenPlugin/TutorMojo/TutorMojo.md b/courses/GettingStarted/MavenPlugin/TutorMojo/TutorMojo.md index e69de29bb..2d2e5c3d7 100644 --- a/courses/GettingStarted/MavenPlugin/TutorMojo/TutorMojo.md +++ b/courses/GettingStarted/MavenPlugin/TutorMojo/TutorMojo.md @@ -0,0 +1,4 @@ +--- +title: Tutor Mojo +--- + From b804150247af7cf77c06148c0a2b9dd5bea9db9e Mon Sep 17 00:00:00 2001 From: "Jurgen J. Vinju" Date: Tue, 6 May 2025 10:35:16 +0200 Subject: [PATCH 09/11] updated canius-lite browser list --- yarn.lock | 16 ++++------------ 1 file changed, 4 insertions(+), 12 deletions(-) diff --git a/yarn.lock b/yarn.lock index bdee0d7e3..e0b234e03 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1568,7 +1568,7 @@ "@docusaurus/theme-search-algolia" "2.4.3" "@docusaurus/types" "2.4.3" -"@docusaurus/react-loadable@5.5.2": +"@docusaurus/react-loadable@5.5.2", "react-loadable@npm:@docusaurus/react-loadable@5.5.2": version "5.5.2" resolved "https://registry.yarnpkg.com/@docusaurus/react-loadable/-/react-loadable-5.5.2.tgz#81aae0db81ecafbdaee3651f12804580868fa6ce" integrity sha512-A3dYjdBGuy0IGT+wyLIGIKLRE+sAk1iNk0f1HjNDysO7u8lhL4N3VEm+FAubmJbAztn94F7MxBTPmnixbiyFdQ== @@ -2871,9 +2871,9 @@ caniuse-api@^3.0.0: lodash.uniq "^4.5.0" caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001449, caniuse-lite@^1.0.30001464: - version "1.0.30001525" - resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001525.tgz" - integrity sha512-/3z+wB4icFt3r0USMwxujAqRvaD/B7rvGTsKhbhSQErVrJvkZCLhgNLJxU8MevahQVH6hCU9FsHdNUFbiwmE7Q== + version "1.0.30001717" + resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001717.tgz" + integrity sha512-auPpttCq6BDEG8ZAuHJIplGw6GODhjw+/11e7IjpnYCxZcW/ONgPs0KVBJ0d1bY3e2+7PRe5RCLyP+PfwVgkYw== ccount@^1.0.0: version "1.1.0" @@ -6207,14 +6207,6 @@ react-loadable-ssr-addon-v5-slorber@^1.0.1: dependencies: "@babel/runtime" "^7.10.3" -"react-loadable@npm:@docusaurus/react-loadable@5.5.2": - version "5.5.2" - resolved "https://registry.yarnpkg.com/@docusaurus/react-loadable/-/react-loadable-5.5.2.tgz#81aae0db81ecafbdaee3651f12804580868fa6ce" - integrity sha512-A3dYjdBGuy0IGT+wyLIGIKLRE+sAk1iNk0f1HjNDysO7u8lhL4N3VEm+FAubmJbAztn94F7MxBTPmnixbiyFdQ== - dependencies: - "@types/react" "*" - prop-types "^15.6.2" - react-router-config@^5.1.1: version "5.1.1" resolved "https://registry.yarnpkg.com/react-router-config/-/react-router-config-5.1.1.tgz#0f4263d1a80c6b2dc7b9c1902c9526478194a988" From 439170e855f07ea4ad29336199c63a0c9e083ec9 Mon Sep 17 00:00:00 2001 From: "Jurgen J. Vinju" Date: Tue, 6 May 2025 10:47:49 +0200 Subject: [PATCH 10/11] removed dead link --- .../Troubleshooting/StackOverflow/StackOverflow.md | 1 - 1 file changed, 1 deletion(-) diff --git a/courses/GettingStarted/Troubleshooting/StackOverflow/StackOverflow.md b/courses/GettingStarted/Troubleshooting/StackOverflow/StackOverflow.md index 3c0726d7f..f398c281b 100644 --- a/courses/GettingStarted/Troubleshooting/StackOverflow/StackOverflow.md +++ b/courses/GettingStarted/Troubleshooting/StackOverflow/StackOverflow.md @@ -12,7 +12,6 @@ To be able to generate parsers Rascal uses stack space from the Java Virtual Mac If you get exceptions better configure your JVM with this `-Xss32m` -* For Eclipse, this configuration goes into your `eclipse.ini` file. See ((EditingEclipseIni)) for more information. * On the commandline, you can use `java -Xss32m ...` * In VScode the Rascal language server already configures this automatically. * The same for the Rascal Maven plugins; they are configured with big stack sizes. \ No newline at end of file From 47c2658e97328ddedd76f0255cc3720cb39b3779 Mon Sep 17 00:00:00 2001 From: "Jurgen J. Vinju" Date: Sat, 10 May 2025 20:07:01 +0200 Subject: [PATCH 11/11] improvements of the mojo docs --- .../CreateNewProject/CreateNewProject.md | 2 +- .../MavenPlugin/CompileMojo/CompileMojo.md | 63 ++++++++++++++----- .../GettingStarted/MavenPlugin/MavenPlugin.md | 29 ++++++--- pom.xml | 4 +- 4 files changed, 73 insertions(+), 25 deletions(-) diff --git a/courses/GettingStarted/CreateNewProject/CreateNewProject.md b/courses/GettingStarted/CreateNewProject/CreateNewProject.md index eee33367f..bee9d9068 100644 --- a/courses/GettingStarted/CreateNewProject/CreateNewProject.md +++ b/courses/GettingStarted/CreateNewProject/CreateNewProject.md @@ -67,4 +67,4 @@ And finally in `src/main/rascal` you'll find the Rascal source files, as configu #### Pitfalls -* In `RASCAL.MF` the `Sources` configuration option will be replaced by pom.xml's `` tag. \ No newline at end of file +* In `RASCAL.MF` the `Sources` configuration option is deprecated and will soon be replaced by pom.xml's `` tag in `pom.xml`. \ No newline at end of file diff --git a/courses/GettingStarted/MavenPlugin/CompileMojo/CompileMojo.md b/courses/GettingStarted/MavenPlugin/CompileMojo/CompileMojo.md index 67e10c048..8963d4fa8 100644 --- a/courses/GettingStarted/MavenPlugin/CompileMojo/CompileMojo.md +++ b/courses/GettingStarted/MavenPlugin/CompileMojo/CompileMojo.md @@ -7,12 +7,32 @@ keywords: - "rascal:compile" --- -All Rascal projects are assumed to be configured via a Maven `pom.xml` file. The primary goal -is to make the Rascal compiler available to the project via `` tag. Running the compiler will make the binary output available for us by other projects later. Also static errors are detected and reported. +All Rascal projects are assumed to be configured via a Maven `pom.xml` file. To use the Rascal compler via the `mvn rascal:compile` goal: +1. The Rascal compiler is made available to the project via adding a proper `` tag for the `rascal-maven-plugin`. +1. Dependencies on other Rascal or JVM-based projects are declared in with `` tags. +1. Running `mvn compile` or `mvn package` or `mvn install` will trigger the compiler, reporting errors, warnings and other information on the go. +1. Other compilers, such as the Java compiler are also triggered, such that code that interacts between Rascal and Java can be loaded and executed later. +1. All binary target files end up in the `./target/classes` folder +1. With `mvn package` and `mvn install` the ((PackageMojo)) finally stores all target code in a `.jar` file. +1. Repeated executions of `mvn compile` make sure to check and compile only the changed Rascal modules. +1. `mvn clean` cleans the target folders to make sure everything is checked and compiled from scratch. -The `rascal:compile` mojo is executed by default with the `compile` goal of Maven. For every Rascal module in the `srcs` list of configured source modules, it will generate a binary `.tpl` TModule file. It typechecks all the modules which have an older timestamp on their corresponding binary output `.tpl` file, and the downstream damage triggered by these recompile. +#### Input/output behavior -The main output for the user is a list of INFO, WARNING and ERROR messages, including their origin location. The compiler produces **errors** when the source code is not executable at that point. It generates **warnings**, when it is likely the generated code will throw exceptions at run-time or otherwise fail to behave as expected. **Info** messages are reserved for hinting at deprecated uses of the language or libraries, or other (possibly noisy) ignorable information about the code as written. +| *Input* | *Output* | *Description* | +| ------- | -------- | ------------ | +| Module.rsc | Module.tpl | "TModel" that encodes the binary interface of a compiled module. | +| " | Module.constants | Constant values which are references by generated bytecode. | +| " | $Module.java | Java source code that implements a Rascal module. | +| " | $Module.parsers | Pre-generated parsers as used by `$Module.java` | +| " | $ModuleTests.java | (Parametrized) JUnit tests extracted from `Module.rsc` | + +Next to these files the compiler outputs messages and their origin location: +* `[ERROR]` messages report on mistakes made in `Module.rsc` that prevent the proper execution of (a part of) a `Module.rsc`. Erroneous code is not executable. +* `[WARNING]` messages report on likely issues in `Module.rsc`; for example likely to be incomplete and throw an exception, or likely to never match and be dead, etc. +* `[INFO]` messages provide information useful for understanding advanced features of Rascal or hint at to be deprecated behavior that a programmer might prepare themselves for. + +#### Configuring the compiler with Maven The compiler is configured in `pom.xml` in three locations: * `...` - each dependency leads to a compile-time library path entry, and a run-time JVM classpath entry. @@ -53,17 +73,30 @@ The compiler is configured in `pom.xml` in three locations: ``` * The latter overwrites the first, tag-by-tag -Each configuration has the exact same parameters as the keyword fields of a ((util::Reflective::PathConfig)) constructor, and some additional ones: -* `${project.basedir}/src/main/rascal`, configure a list of folder in the current project that are the roots for Rascal module names. -* `...` - configure library dependencies manually. However, if we leave these alone they are filled automatically via `` which is much easier to get right. -* `${project.basedir}/target/classes` defines the target folder for binary files. However, the default is always good. -* `${project.basedir}/src/generated-sources/java` - will be used to store intermediate generated Java files. The default is fine too. -* `${project.basedir}/src/main/rascal/Experiments` - allows us to select files and folders reachable from the `srcs` and skip their compilation unless they are required by other non-ignored modules. -* A number of boolean flags can be used for debugging purposes: ``, ``, ``, ``, ``, ``, ``, `` and ``. The latter two control if a `mvn` run will fail (exit code 1) or succeed (exit code 0) in the presence of warnings or errors. -* Finally we can instruct the mojo to compile the projects in parallel chunks: - * the `` boolean flag switches the behavior on. - * `5` restricts the number of parallel processes to 5. However the mojo will estimate a proper maximum based on available processors and memory automatically. - * `` lists a number of files that will be compiled and made reusable before the other threads start. Typically the utility modules with a high "fan-in" are listed here, to avoid duplicate (re)work by the other processes. +The configuration tags are an extended subset of the standard fields of ((util::Reflective::PathConfig)). +The defaults are chosen such that you hardly have to use these tags. + +| *Configuration tag* | *Default* | *Description* | +| ------------------- | ----------| ------------- | +| `` | `./src/main/rascal` | list of directories where `.rsc` files can be found | +| `` | filled with `` | list of jar files or directories for the library dependencies | +| `` | empty | list of folders and files to skip while compiling | +| `` | `./target/generated-sources` | where the compiler stores intermediate Java code | +| `` | `./target/classes` | where the binary output of the compiler is staged before it goes into the jar file | +| `` | false | write the pathConfig to the log before compiling | +| `` | false | write imports and extends of each module to the log during compilation | +| `` | false | log every file written including timestamp during compilation | +| `` | true | warn about unused declarations | +| `` | true | warn about unused formal parameters (pattern variables of function signatures) | +| `` | true | warn about unused variables in patterns | +| `` | false | with this the compiler never reports failure in the presence of errors | +| `` | false | with this the compiler reports failure even if there are only warnings and no errors. Can not be true at the same time with `errorsAsWarnings` | +| `` | false | enables parallel compilation of a large group of `.rsc` source files | +| `` | `5` | restricts the number of parallel compiler processes. The mojo otherwises +computes an estimate based on the number of processors and the available memory | +| `` | empty | a list of files reachable from `` that will be compiled before the +other processes start. | +| `` | enables internal debugging prints of the compiler | #### Examples diff --git a/courses/GettingStarted/MavenPlugin/MavenPlugin.md b/courses/GettingStarted/MavenPlugin/MavenPlugin.md index a25286eb2..993ebc075 100644 --- a/courses/GettingStarted/MavenPlugin/MavenPlugin.md +++ b/courses/GettingStarted/MavenPlugin/MavenPlugin.md @@ -11,23 +11,38 @@ details: --- The [rascal-maven-plugin](http://github.com/usethesource/rascal-maven-plugin) offers these Maven plugins for dealing with Rascal projects: -* ((CompileMojo)) for static checking and compiling Rascal projects to Rascal binary modules,which are comprised of: one JVM class file, or more (interface and test classes), a TypePal `.tpl` TModule and a `.constants` file with an index of constant values. -* ((TutorMojo)) for (modularly) generating API docs, and compiling tutor courses to docusaurus markdown -* ((PackageMojo)) for packing compiled Rascal code, source code and documentation into a jar file, making the internal location references relocatable. +* ((CompileMojo)) for static checking and compiling Rascal projects. +* ((TutorMojo)) for generating API docs, and compiling documentation courses. +* ((PackageMojo)) for packing compiled Rascal code, source code and documentation into a jar file. * ((ExecMojo)) for executing arbitrary Rascal code during an arbitrary Maven goal. -* ((ConsoleMojo for starting a ((REPL)) +* ((ConsoleMojo)) for starting a Rascal ((REPL)) -Each of the above is configured in XML in the local `pom.xml` file of a Rascal project. All of them are executed during a `mvn package` or `mvn install` command line. If the local pom has the right configuration, then each mojo can also be invoked separately: +Each of the above is configured in XML in the local `pom.xml` file of a Rascal project. All of them are executed during a `mvn package` or `mvn install` commandline. If the local pom has the right configuration, then each mojo can also be invoked separately: * `mvn rascal:compile` runs the compiler and `-Drascal.compile.skip` guarantees it is skipped. * `mvn rascal:tutor` runs the tutor compiler and `-Drascal.tutor.skip` guarantees it is skipped. * `mvn rascal:package` runs the package rewriter and `-Drascal.package.skip` guarantees it is skipped. * `mvn rascal:exec` executes some Rascal code, while `-Drascal.exec.skip` makes sure this goal is skipped. +#### Examples + +This is a typical `pom.xml` file configuring the *rascal-maven-plugin* that will provide everything +necessary for a Rascal project, except the ((TutorMojo)). This is also the setup that is generated by the ((newRascalProject)) function: + +```rascal-prepare +import util::Reflective; +newRascalPomFile(|tmp:///my-project|); +``` + +```xml +((|tmp:///my-project/pom.xml|)) +``` #### Benefits -* When using the ((getProjectPathConfig)) function from ((util::Reflective)), and a local `pom.xml` is available, then -the produced configuration will be influenced by what is configured in the `pom.xml` file as well. +* Almost zero configuration (due to sensible defaults) for projects that have: + * Rascal source code in `/src/main/rascal` + * Dependencies listed in `pom.xml` `` tags +* When using the ((getProjectPathConfig)) function from ((util::Reflective)), and a local `pom.xml` is available, then the produced configuration will be influenced by what is configured in the `pom.xml` file as well. * All dependencies defined in the `pom.xml` are used to automatically configure the library path of the compiler and the interpreter, as well as the classpath of the compiled or interpreted runtime engine. * Rascal projects can depend on any other Maven project diff --git a/pom.xml b/pom.xml index edb3d2cab..95a66f8a5 100644 --- a/pom.xml +++ b/pom.xml @@ -24,8 +24,8 @@ UTF-8 UTF-8 - 0.28.9 - 0.40.17 + 0.30.0-RC24 + 0.41.0-RC42 0.19.9 0.13.1 0.1.15