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: courses/RascalAmendmentProposals/RAP10/RAP10.md
+2-2Lines changed: 2 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -12,7 +12,7 @@ sidebar_position: 10
12
12
13
13
## Abstract
14
14
15
-
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 (RAP 8). 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`.
15
+
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`.
16
16
17
17
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).
18
18
@@ -117,7 +117,7 @@ A second part of the proposal is to expose this locking feature on the language
117
117
*`loc (str x, bool append=false)` will write a `str` to the file (replacing it, or appending to it)
118
118
* Example: `|home:///.bashrc|(“\#\! /bin/bash”);`
119
119
* Motivation: if `**sync**` is builtin, and does not require importing an IO library, it would be inconsistent to have to import a module to read/write from/to source locations.
120
-
* See also **\[RAP 2\]**which avoids importing util::ValueUI and ParseTree by making types simulate parsing functions using the CallOrTree syntax.
120
+
* See also ((RAP2)) which avoids importing `util::ValueUI` and `ParseTree` by making types simulate parsing functions using the CallOrTree syntax.
121
121
* The CallOrTree semantics would be overloaded with one more feature, letting a location “act” as a read/write function.
122
122
* However, locations are **not** suddenly or accidentally also sub-typed of functions\!
123
123
* This is \_only\_ about overloading CallOrTree, unambiguously
Copy file name to clipboardExpand all lines: courses/RascalAmendmentProposals/RAP14/RAP14.md
+4-4Lines changed: 4 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -84,8 +84,8 @@ Given the syntax and semantics of Rascal, here we list concrete changes to libra
84
84
* hence extend-x-incompatibility is transitive over the inverse extend relation.
85
85
* L is extend-x-incompatible (at least) if L is import-x-incompatible.
86
86
* L is import-x-incompatible if:
87
-
* At least one alternative of an overloaded function is removed.[^1] Removing alternatives breaks the dispatch function inside the client module C for the overloaded functions. After RAP 6 this would only happen in modules that *extend* the broken module.
88
-
* At least one alternative of an overloaded function is added..[^2] Adding alternatives breaks the dispatch function inside the client module C for the overloaded functions. After RAP 6 this would only happen in modules that *extend* the broken module.
87
+
* At least one alternative of an overloaded function is removed.[^1] Removing alternatives breaks the dispatch function inside the client module C for the overloaded functions. After ((RAP6)) this would only happen in modules that *extend* the broken module.
88
+
* At least one alternative of an overloaded function is added..[^2] Adding alternatives breaks the dispatch function inside the client module C for the overloaded functions. After ((RAP6)) this would only happen in modules that *extend* the broken module.
89
89
* An alternative constructor of an ADT is removed (adding is fine)
90
90
* An alias definition is removed (adding is fine)
91
91
* A public global variable is removed (adding is fine)
@@ -103,13 +103,13 @@ Given the syntax and semantics of Rascal, here we list concrete changes to libra
103
103
* An alternative (or more) is added to an overloaded function via
104
104
* A normal addition typed into the current module
105
105
* Extending a new module that has the same (overloaded) function as in the current module, or another extended module
106
-
* Importing a new module (as above).. *Note that this behavior would change if we apply the simplifications or RAP 6*
106
+
* Importing a new module (as above).Note that this behavior would change if we apply the simplifications of (((RAP6)).
107
107
* An alternative (or more) are removed from an overloaded function via:
108
108
109
109
110
110
111
111
* Having been removed from an extended module, or not extending said module anymore.
112
-
* Having been removed from an imported module, or not importing said module anymore (see also RAP 6\)
112
+
* Having been removed from an imported module, or not importing said module anymore (see also ((RAP 6)) )
113
113
* Conversely, this is a list of changes that should be import-compatible and extend-compatible:
114
114
* Adding non-functional tags to functions (like @synopsis)
115
115
* Changes to private functions are always import-compatible, but not extend-compatible
* And such as overloaded functions which miss cases
128
128
* Suggest qualified names when a function is shadowed but reachable from an import.
129
129
130
-
[^1]: RAP is at the moment following Pyhton’s PEP ([https://www.python.org/dev/peps/](https://www.python.org/dev/peps/)). We need to look at other projects to see what is best. See for instance, [http://yt-project.org/](http://yt-project.org/)
Copy file name to clipboardExpand all lines: courses/RascalAmendmentProposals/RAP8/RAP8.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -18,7 +18,7 @@ The proposal is to introduce a single structured “for-loop-like” programming
18
18
19
19
The `fork` statement ends when all of its concurrent loop blocks have ended (if it returns results) and it then returns a list of values in the order of spawning each block. If no results are computed, the fork statement ends after spawning all of its computations directly.
20
20
21
-
As file locations, the `loc` type, in Rascal is highly prominent and these “point” to external file locations and other resources outside of the JVM, the concurrency feature also requires us to think about resource locking. This can be implemented and designed orthogonally, see RAP 10\.
21
+
As file locations, the `loc` type, in Rascal is highly prominent and these “point” to external file locations and other resources outside of the JVM, the concurrency feature also requires us to think about resource locking. This can be implemented and designed orthogonally, see ((RAP10)).
0 commit comments