Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
42 commits
Select commit Hold shift + click to select a range
9ef2446
Run CI on all feature branches.
toinehartman Jul 15, 2026
ce043c5
Remove `std:///` from Rascal-LSP path config.
toinehartman Jul 15, 2026
827a342
Package stdlib locations as `mvn://`
toinehartman Jul 15, 2026
eb52b37
Rename current runtime resolver.
toinehartman Jul 17, 2026
f427f45
Remove `std:///` from Rascal path config."
toinehartman Jul 15, 2026
2fcd4c9
Remove `std:///` from regular project's path config.
toinehartman Jul 17, 2026
68a31fe
Replace `std:///` on evaluator search path.
toinehartman Jul 17, 2026
379d85c
Replace uses of std:/// in Rascal code.
toinehartman Jul 17, 2026
570a8bb
Disable resolver for `std:///`.
toinehartman Jul 17, 2026
aa25cd1
Replace another std loc with project.
toinehartman Jul 17, 2026
8f2bc19
Jarify/mavenize as much as possible.
toinehartman Jul 20, 2026
c9f8101
Also type-check against stdlib from POM.
toinehartman Jul 23, 2026
c5a9f9b
Properly unsupport std scheme.
toinehartman Jul 27, 2026
55cbb87
Fix search path order.
toinehartman Jul 27, 2026
43eeea9
Expose Maven parsing and resolution for use in Rascal LSP.
toinehartman Jul 28, 2026
2f4a10c
Annotate nullability of source location response.
toinehartman Jul 30, 2026
6a41580
Support root computation from files.
toinehartman Aug 4, 2026
21a651c
Fix typo in docs.
toinehartman Aug 4, 2026
9ded75d
Expose functions for use in LSP.
toinehartman Aug 4, 2026
a03202b
Bump typepal.
toinehartman Aug 6, 2026
e6ad01a
Only expose resolution function.
toinehartman Aug 19, 2026
4d262c9
Rewrite std location using getResource.
toinehartman Aug 19, 2026
1bfd989
Take LSP from the POM, like any other dependency.
toinehartman Aug 20, 2026
fd4f0ed
Fix fallback Rascal version warning.
toinehartman Aug 20, 2026
0ba94c0
Fix Rascal syntax loading from resources.
toinehartman Aug 21, 2026
37d82a7
Fix comment.
toinehartman Aug 25, 2026
d32ddaf
Remove outdated comment.
toinehartman Aug 25, 2026
992e3bc
Remove fallback message, to be solved in LSP.
toinehartman Aug 25, 2026
4da5e42
Added message to warning
rodinaarssen Aug 26, 2026
edef2e0
Prevent search path contributors from skipping the line.
toinehartman Aug 26, 2026
d0c023b
Remove obsolete documentation of std.
toinehartman Aug 26, 2026
ca54571
Improved comment
rodinaarssen Aug 26, 2026
984abe1
Added an enum constant to RascalConfigMode to be able to distinguish …
rodinaarssen Aug 26, 2026
74ebb8d
Adding Rascal's own dependencies to the lib path when creating a path…
rodinaarssen Aug 26, 2026
8a9150c
Added JavaDoc to the RascalConfigMode enum
rodinaarssen Aug 26, 2026
4c9b303
Add explicit scheme check to Maven resolution function.
toinehartman Aug 26, 2026
86c9bec
Fixed inconsistent/incorrect jarify/mavenize while building path configs
rodinaarssen Aug 27, 2026
2faf2c6
Fixed the intended Rascal version for compiler configurations
rodinaarssen Aug 27, 2026
171f3ab
Merge remote-tracking branch 'origin/main' into feature/2817-remove-s…
rodinaarssen Aug 28, 2026
ea3c0f3
Fixed missing SNAPSHOT in version
rodinaarssen Aug 28, 2026
46ddfbb
[maven-release-plugin] prepare release v0.43.0-RC13-PREVIEW-NO-STD
rodinaarssen Aug 28, 2026
d197ed4
Revert to SNAPSHOT version for development
rodinaarssen Aug 28, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion .github/workflows/build.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,8 @@ on:
pull_request:
branches:
- main
- 'feat/*'
- 'feat/**'
- 'feature/**'
env:
MAVEN_OPTS: "-Xmx4G -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn -Dorg.slf4j.simpleLogger.showDateTime=true -Djava.awt.headless=true"
IS_OWN_PR: "${{ secrets.MAVEN_MIRROR_URL }}"
Expand Down
5 changes: 2 additions & 3 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,12 @@

<groupId>org.rascalmpl</groupId>
<artifactId>rascal</artifactId>
<version>0.43.0-RC13</version>
<version>0.43.0-RC13-SNAPSHOT</version>
<packaging>jar</packaging>

<scm>
<developerConnection>scm:git:ssh://git@github.com/usethesource/rascal.git</developerConnection>
<tag>v0.43.0-RC14-PREVIEW-REGULAR-PARSERS</tag>
<tag>v0.43.0-RC13-SNAPSHOT</tag>
</scm>

<!-- dependency resolution configuration (usethesource) -->
Expand Down Expand Up @@ -201,7 +201,6 @@
<srcs>
<src>${project.basedir}/src/org/rascalmpl/library</src>
</srcs>
<sourceLookup>|std:///|</sourceLookup>
</configuration>
</execution>
</executions>
Expand Down
2 changes: 1 addition & 1 deletion src/org/rascalmpl/compiler/CheckTestSources.rsc
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ void checkTestSources(list[str] cmdLineArgs) {
if("all" in cmdLineArgs){
modulesToCheck = getRascalModules(REPO + "rascal/src/org/rascalmpl/library", pcfg);
} else {
testFolders = [ //|std:///lang/rascal/tests|,
testFolders = [ //|project://rascal/src/org/rascalmpl/library/lang/rascal/tests|,
//REPO + "/rascal-core/lang/rascalcore/check::tests",
REPO + "/typepal/src/"
];
Expand Down
2 changes: 1 addition & 1 deletion src/org/rascalmpl/compiler/CompileTestSources.rsc
Original file line number Diff line number Diff line change
Expand Up @@ -145,7 +145,7 @@ void compileTestSources(PathConfig pcfg) {
// total += d;
//}

testFolder = |std:///lang/rascal/|;
testFolder = |project://rascal/src/org/rascalmpl/library/lang/rascal/|;

testModules = [ replaceAll(file[extension=""].path[1..], "/", "::")
| loc file <- find(testFolder, "rsc") // all Rascal source files
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -75,14 +75,14 @@ public loc testModulesRoot = testRoot + "src";
private int npc = 0;
@synopsis{PathConfig for testing generated modules in |memory://test-modules/| in memory file system, not depending on any outside libraries.}
@description{
* gets source files exclusively from |memory://test-modules/| and |std:///| (for library code)
* gets source files exclusively from |memory://test-modules/| and |project://rascal/src/org/rascalmpl/library/| (for library code)
* generates bin files in the in-memory file system
}
public PathConfig getDefaultTestingPathConfig() {
npc += 1;
snpc = "<npc>";
return pathConfig(
srcs = [ testModulesRoot, |std:///| ],
srcs = [ testModulesRoot, |project://rascal/src/org/rascalmpl/library/| ],
Comment thread
DavyLandman marked this conversation as resolved.
bin = testRoot + "rascal-tests-bin-<snpc>",
generatedSources = testRoot + "generated-test-sources-<snpc>",
generatedResources = testRoot + "generated-test-resources-<snpc>",
Expand Down
10 changes: 5 additions & 5 deletions src/org/rascalmpl/compiler/lang/rascalcore/compile/AREADME.txt
Original file line number Diff line number Diff line change
Expand Up @@ -71,13 +71,13 @@ config void config( // Inspect type checker configuration file
Query select = none()) // Query to define what to show
Examples:

compile(|std:///experiments/Compiler/Examples/Fac.rsc|);
compile(|project://rascal/src/org/rascalmpl/library/experiments/Compiler/Examples/Fac.rsc|);

execute(|std:///experiments/Compiler/Examples/Fac.rsc|, []);
execute(|std:///experiments/Compiler/Examples/Fac.rsc|, [], recompile=true);
execute(|std:///experiments/Compiler/Examples/Fac.rsc|, [], profile=true);
execute(|project://rascal/src/org/rascalmpl/library/experiments/Compiler/Examples/Fac.rsc|, []);
execute(|project://rascal/src/org/rascalmpl/library/experiments/Compiler/Examples/Fac.rsc|, [], recompile=true);
execute(|project://rascal/src/org/rascalmpl/library/experiments/Compiler/Examples/Fac.rsc|, [], profile=true);

inspect(|std:///experiments/Compiler/Examples/Fac.rsc|)
inspect(|project://rascal/src/org/rascalmpl/library/experiments/Compiler/Examples/Fac.rsc|)


Directory structure:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ import util::Reflective;
value main() = compareAll();

value compareAll() {
moduleLoc = |std:///experiments/Compiler/Rascal2muRascal/RascalExpression.rsc|;
moduleLoc = |project://rascal/src/org/rascalmpl/library/experiments/Compiler/Rascal2muRascal/RascalExpression.rsc|;
//moduleLoc = |project://rascal/src/org/rascalmpl/library/experiments/Compiler/Examples/Tst3.rsc|;
m = parse(#start[Module], moduleLoc).top;
t = cpuTime();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -45,13 +45,13 @@ value main()

value measure(){

//moduleLoc = |std:///lang/rascal/syntax/Rascal.rsc|;
moduleLoc = |std:///experiments/Compiler/RVM/AST.rsc|;
//moduleLoc = |std:///experiments/Compiler/RVM/Syntax.rsc|;
//moduleLoc = |std:///experiments/Compiler/muRascal/Syntax.rsc|;
//moduleLoc = |std:///experiments/Compiler/muRascal/AST.rsc|;
//moduleLoc = |std:///demo/lang/Pico/Syntax.rsc|;
//moduleLoc = |std:///demo/lang/Exp/Concrete/NoLayout/Syntax.rsc|;
//moduleLoc = |project://rascal/src/org/rascalmpl/library/lang/rascal/syntax/Rascal.rsc|;
moduleLoc = |project://rascal/src/org/rascalmpl/library/experiments/Compiler/RVM/AST.rsc|;
//moduleLoc = |project://rascal/src/org/rascalmpl/library/experiments/Compiler/RVM/Syntax.rsc|;
//moduleLoc = |project://rascal/src/org/rascalmpl/library/experiments/Compiler/muRascal/Syntax.rsc|;
//moduleLoc = |project://rascal/src/org/rascalmpl/library/experiments/Compiler/muRascal/AST.rsc|;
//moduleLoc = |project://rascal/src/org/rascalmpl/library/demo/lang/Pico/Syntax.rsc|;
//moduleLoc = |project://rascal/src/org/rascalmpl/library/demo/lang/Exp/Concrete/NoLayout/Syntax.rsc|;
m = parse(#start[Module], moduleLoc).top;
stats = ();
nonterm = {};
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,11 +11,11 @@
*******************************************************************************/
package org.rascalmpl.interpreter.load;

import java.util.List;
import java.util.Collection;

import io.usethesource.vallang.ISourceLocation;

public interface IRascalSearchPathContributor {
void contributePaths(List<ISourceLocation> path);
Collection<ISourceLocation> contributePaths();
String getName();
}
13 changes: 8 additions & 5 deletions src/org/rascalmpl/interpreter/load/RascalSearchPath.java
Original file line number Diff line number Diff line change
Expand Up @@ -17,13 +17,15 @@
import java.io.IOException;
import java.net.URISyntaxException;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.LinkedList;
import java.util.List;

import org.rascalmpl.interpreter.Configuration;
import org.rascalmpl.uri.URIResolverRegistry;
import org.rascalmpl.uri.URIUtil;

import io.usethesource.vallang.ISourceLocation;

/**
Expand All @@ -41,7 +43,8 @@ public RascalSearchPath() {
}

public void addPathContributor(IRascalSearchPathContributor contrib) {
if(!contributors.contains(contrib)){
if (!contributors.contains(contrib)) {
// Later contributors take precedence over earlier ones. Insert at the front.
contributors.add(0, contrib);
}
}
Expand Down Expand Up @@ -103,12 +106,12 @@ public ISourceLocation getRootForModule(String module) {
}
}

public List<ISourceLocation> collect() {
List<ISourceLocation> paths = new LinkedList<ISourceLocation>();
public Collection<ISourceLocation> collect() {
var paths = new LinkedList<ISourceLocation>();
for (IRascalSearchPathContributor c : contributors) {
c.contributePaths(paths);
paths.addAll(c.contributePaths());
}

return paths;
}

Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
package org.rascalmpl.interpreter.load;

import java.util.List;
import java.util.Collection;
import java.util.stream.Collectors;

import io.usethesource.vallang.IList;
import io.usethesource.vallang.ISourceLocation;
import io.usethesource.vallang.IValue;
import io.usethesource.vallang.type.TypeFactory;

public class SourceLocationListContributor implements IRascalSearchPathContributor {
Expand All @@ -18,10 +18,8 @@ public SourceLocationListContributor(String label, IList sourceLocations) {
}

@Override
public void contributePaths(List<ISourceLocation> path) {
for (IValue elem : locs) {
path.add(((ISourceLocation) elem));
}
public Collection<ISourceLocation> contributePaths() {
return locs.stream().map(ISourceLocation.class::cast).collect(Collectors.toList());
}

@Override
Expand Down
54 changes: 0 additions & 54 deletions src/org/rascalmpl/interpreter/load/StandardLibraryContributor.java

This file was deleted.

5 changes: 3 additions & 2 deletions src/org/rascalmpl/interpreter/load/URIContributor.java
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
*******************************************************************************/
package org.rascalmpl.interpreter.load;

import java.util.Collection;
import java.util.List;

import io.usethesource.vallang.ISourceLocation;
Expand All @@ -30,8 +31,8 @@ public String getName() {
}

@Override
public void contributePaths(List<ISourceLocation> path) {
path.add(0, uri);
public Collection<ISourceLocation> contributePaths() {
return List.of(uri);
}

@Override
Expand Down
10 changes: 5 additions & 5 deletions src/org/rascalmpl/library/IO.rsc
Original file line number Diff line number Diff line change
Expand Up @@ -204,7 +204,7 @@ import IO;

Does the library file `IO.rsc` exist?
```rascal-shell,continue
exists(|std:///IO.rsc|);
exists(|project://rascal/src/org/rascalmpl/library/IO.rsc|);
```
}
@javaClass{org.rascalmpl.library.Prelude}
Expand All @@ -218,7 +218,7 @@ import IO;
```
Find the file `IO.rsc` in the standard library:
```rascal-shell,continue
find("IO.rsc", [|std:///|]);
find("IO.rsc", [|project://rascal/src/org/rascalmpl/library/|]);
```
}
public loc find(str name, list[loc] path) throws PathNotFound {
Expand Down Expand Up @@ -367,7 +367,7 @@ import IO;
```
Determine the last modification date of the Rascal standard library:
```rascal-shell,continue
lastModified(|std:///IO.rsc|);
lastModified(|project://rascal/src/org/rascalmpl/library/IO.rsc|);
```
}
@javaClass{org.rascalmpl.library.Prelude}
Expand All @@ -384,7 +384,7 @@ import IO;
```
Determine the last modification date of the Rascal standard library:
```rascal-shell,continue
created(|std:///IO.rsc|);
created(|project://rascal/src/org/rascalmpl/library/IO.rsc|);
```
}
@javaClass{org.rascalmpl.library.Prelude}
Expand Down Expand Up @@ -412,7 +412,7 @@ import IO;
```
List all entries in the standard library:
```rascal-shell,continue
listEntries(|std:///|);
listEntries(|project://rascal/src/org/rascalmpl/library/|);
```
}
@javaClass{org.rascalmpl.library.Prelude}
Expand Down
7 changes: 0 additions & 7 deletions src/org/rascalmpl/library/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,13 +21,6 @@ println("Hello Rascal!");

The ((Library:module:IO)) module is otherwise most commonly used, because it contains ((println)).

The standard library has its own location scheme `std:///` which can be used to explore
its folder structure on the REPL. Note that source locations have auto-complete for the path component.

```rascal-shell
|std:///|.ls
```

These are the entry points to the entire library:
(((TOC)))

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,8 @@ import Set;
value main() = compare3();

value compare1() {
INT = split("\n", readFile(|std:///lang/rascal/grammar/tests/generated_parsers/CParserINT.java|));
COMP = split("\n", readFile(|std://lang/rascal/grammar/tests/generated_parsers/CParserCOMP.java|));
INT = split("\n", readFile(|project://rascal/src/org/rascalmpl/library/lang/rascal/grammar/tests/generated_parsers/CParserINT.java|));
COMP = split("\n", readFile(|project://rascal/src/org/rascalmpl/library/lang/rascal/grammar/tests/generated_parsers/CParserCOMP.java|));

INTSET = toSet(INT);
COMPSET = toSet(COMP);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -307,16 +307,16 @@ bool sameLines(str s1, str s2) = size(removeEmptyLines(s1) - removeEmptyLines(s2

test bool tstNewGenerateGEMPTY() =
sameLines(newGenerate("org.rascalmpl.library.lang.rascal.grammar.tests.generated_parsers", "GEMPTYParser", GEMPTY),
readFile(|std:///lang/rascal/grammar/tests/generated_parsers/GEMPTYParser.java.gz|));
readFile(|project://rascal/src/org/rascalmpl/library/lang/rascal/grammar/tests/generated_parsers/GEMPTYParser.java.gz|));

test bool tstNewGenerateG0() =
sameLines(newGenerate("org.rascalmpl.library.lang.rascal.grammar.tests.generated_parsers", "G0Parser", G0),
readFile(|std:///lang/rascal/grammar/tests/generated_parsers/G0Parser.java.gz|));
readFile(|project://rascal/src/org/rascalmpl/library/lang/rascal/grammar/tests/generated_parsers/G0Parser.java.gz|));

test bool tstNewGenerateGEXP() =
sameLines(newGenerate("org.rascalmpl.library.lang.rascal.grammar.tests.generated_parsers", "GEXPParser", GEXP),
readFile(|std:///lang/rascal/grammar/tests/generated_parsers/GEXPParser.java.gz|));
readFile(|project://rascal/src/org/rascalmpl/library/lang/rascal/grammar/tests/generated_parsers/GEXPParser.java.gz|));

test bool tstNewGenerateGEXPPRIO() =
sameLines(newGenerate("org.rascalmpl.library.lang.rascal.grammar.tests.generated_parsers", "GEXPPRIOParser", GEXPPRIO),
readFile(|std:///lang/rascal/grammar/tests/generated_parsers/GEXPPRIOParser.java.gz|));
readFile(|project://rascal/src/org/rascalmpl/library/lang/rascal/grammar/tests/generated_parsers/GEXPPRIOParser.java.gz|));
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ public bool testModules(list[loc] files, list[loc] _) {
}


public test bool StandardLibrary() = testModules([f | /file(f) <- crawl(|std:///|), f.extension == "rsc", /experiments/ !:= f.path], []);
public test bool StandardLibrary() = testModules([f | /file(f) <- crawl(|project://rascal/src/org/rascalmpl/library/|), f.extension == "rsc", /experiments/ !:= f.path], []);

public test bool testTutor() = testModules([f | /file(f) <- crawl(|tutor:///|), f.extension == "rsc"], [|tutor:///|]);

Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,8 @@ test bool isDefinedLoc1() = |project://x/y.txt|(5,4,<1,5>,<1,9>).begin?;
test bool isDefinedLoc2() = |project://x/y.txt|(5,4,<1,5>,<1,9>).end?;
test bool isDefinedLoc3() = !(|project://x/y.txt|(5,4,<1,5>,<1,9>).host?);

test bool isDefinedLoc4() = !(|std:///List.rsc|.ls?);
test bool isDefinedLoc5() = |std:///util|.ls?;
test bool isDefinedLoc4() = !(|project://rascal/src/org/rascalmpl/library/List.rsc|.ls?);
test bool isDefinedLoc5() = |project://rascal/src/org/rascalmpl/library/util|.ls?;

// Lists

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ PathConfig getTestPathConfig(loc root) {
pcfg = getProjectPathConfig(root);
pcfg.bin = root + "target/classes";
// remove std to avoid generating parsers for all modules in the library that contain syntax definitions
pcfg.srcs -= [|std:///|];
pcfg.srcs -= [|project://rascal/src/org/rascalmpl/library/|];
return pcfg;
}

Expand Down
Loading
Loading