usethesource / usethesource.github.io Goto Github PK
View Code? Open in Web Editor NEWOrganization website for UseTheSource
Organization website for UseTheSource
Salix is becoming stable and it is used by a lot of Rascal projects in research. Let's boost its support-level and horizon by moving Salix to usethesource.
Salix is used:
Salix fills a gap:
Salix is efficient (enough):
util::WebServer
bootstrap.css
)this is to propose that the java support in the standard library, which is wholly based on the Eclipse JDT, be separated into an independent library project called rascal-jdt
in the usethesource orginization. The idea would be that rascal-jdt
be bundled with the Eclipse and VScode IDE's such that "batteries stay included".
Let's rename the default branch for our repositories from master to main.
Github has tried to make this process as smooth as possible: https://github.com/github/renaming
Roughly, you rename the branch inside github, and it will take care of most redirecting, and will send the user a message about changed branch name during a push.
The following commands will be have to executed locally for every clone of a repo that has been renamed.
git branch -m master main
git fetch origin
git branch -u origin/main main
git remote set-head origin -a
this is an essential part of the usethesource infrastructure.
These are projects which will need to be upgraded still to java 11, which are not on usethesource (yet):
Originally posted by @jurgenvinju in #16 (comment)
r2d2.usethesource.io
capsule by @msteindorfer is the essential library backing the implementation of Rascal's maps, sets and caches. Since it is essential to Rascal I propose we accept it as a usethesource project.
@PaulKlint @tvdstorm please agree.
@msteindorfer please fill in the CLA here: https://docs.google.com/a/vinju.org/forms/d/1uI6IsuKA-XMPt3jMbtQd9u0pQvDFQ99udbOoiB2La0A/viewform
This may be (is) quite an early proposal, for a project such as flybytes, but I see a not-so-distant future where the rascal compiler uses flybytes to directly generate (debuggable) JVM bytecode. For this to be possible flybytes needs to mature a bit more:
Otherwise flybytes seems to be a perfect back-end for the Rascal compiler. It supports "block expressions", for example, which can make code generation considerably easier. Also other language features of Rascal (closures) could relatively easily be modeled as extensions to the flybytes compiler (i.e. flybytes to flybytes stages).
Flybytes also offers Mirrors
which can be used to call any method or set/get any field in JVM bytecode directly from Rascal (using Java's reflection API and Rascal closures). It is used to test the flybytes compiler and decompiler, but it has many other applications in interfacing Rascal with arbitrary Java code. The Mirror bridge also marshalls basic types between JVM and Rascal.
Due to the (relatively complete) flybytes decompiler, it is easy to first write Java code to implement a Rascal language feature manually, then reverse engineer this into a flybytes AST pattern to extend the compiler. This feature can also be used when migrating from the Java code generator to a flybytes backend.
It would be cool if flybytes also supports an "intermediate code" debugger. Namely that one could step through the generated flybytes code instead of the original Rascal code that is associated with it. There is an idea on how to do this, by writing out indented AST values to a temporary folder and replacing the .src annotations with locations from these generated files, but it is not yet implemented either.
Another missing feature is an "API generator". Such a tool would read class files (using flybytes) and generate Rascal functions which will generate calls to the public API of such a class file. Currently users of flybytes must type in (copy/paste) the relatively complex method signatures into their code generators and use the "right method invocation primitive" from the JVM (invokeInterface, invokeStatic, invokeVirtual, invokeSpecial).
I would like to invite you to have a look at flybytes and see what you think about the current quality and support. What would be required for you to accept and support this project at usethesource?
This is to propose Clair as a usethesource project
@mahills; I'd like to discuss the promotion of php-air to usethesource here.
I have a very positive view on it. It seems an extensive and well-designed project with a lot of value for people who want to analyze PHP code using Rascal.
it now brands use-the-source directly for Rascal; I think we should project a more general image of meta-programming. Perhaps only a grammar and not the header with Rascal and our names in it? Perhaps something even more generic?
see subject. looking for a volunteer.
This is to propose the iguana project to remain where it is at https://github.com/iguana-parser and remove it as a project mentioned on the usethesource.io website.
The usethesource community should look alive and the projects should be tightly connected. At the moment this is not the case for iguana. Perhaps in the future we can try again. For now let the usethesource website reflect the actual situation.
Vote:
@joukestoel I'd like to discuss the promotion of AlleAlle to a UseTheSource project here.
Questions:
This is to register our need to move all usethesource projects to Java 11 (and the associated JRE)
It requires us to synchronize the effort across all projects, hence this issue at usethesource.
This is to vote that we will move to Java 11, but not when. We have to plan the timing carefully so as not to interfere with other complex projects such as the compiler and the LSP.
When to do this? The compiler project would be halted by this; i.e. new bugs caused by the move would mix in between the last bugs to solve. Otherwise we do not expect much interference with other projects. Maintenance on the rascal-eclipse project would become possible again after the move to Java 11. So we should not postpone this indefinetely..
Any reason why we do not move to a higher Java version than 11 immediately?
This is to register the intent to mark "rascal-eclipse" for deprecation and eventual removal. This includes the nested project for the update site, the feature, the actual plugin, and the developers-feature that would link Rascal JUnit tests to their source locations.
util::IDE
can not literally be used to call util::LanguageServer
from the rascal-language-servers project, the concepts are exactly the same and only some minor rewiring is requested.vis::Figure
was not used by many students anymore, but still we have to bring the documentation of vis/*
and salix-*
up to the level of the Figure libraryPlease sign here for the consent of the idea:
In the meantime we will make only small bugfix releases of rascal-eclipse, to help straggling users while they prepare to migrate.
I will add a documentation issue about documenting the migration from rascal-eclipse DSL implementations to VScode DSL implementations
impulse is the fork of Eclipse IMP for use with Rascal-eclipse and derived IDEs. For as long as we depend on it, it needs to be maintained and for this it should have presence on usethesource. I do suggest that impulse will only remain life on usethesource while we and the IDEs we generate also depend on it, and we make sure to communicate that this is the case on the project's webpage.
As it was Eclipse IMP before, the original authors from IBM have signed off on a CLA and vouched for the open-source licenses therein. An additional CLA is not necessary imho for these contributors from the past.
@tvdstorm @PaulKlint please agree.
rascal-value is the central API for data representation for Rascal. As such it is an essential component for usethesource and we should move it there asap.
@PaulKlint @tvdstorm please agree.
Since pdb.values was hosted on Eclipse.org before (and is now forked and split into rascal-value) the co-authors from IBM have signed a CLA with Eclipse before (Robert Fuhrer in particular), which I consider enough evidence of due diligence.
This is to start the work on an integral move to JDK 17 for all usethesource projects and the dependent libraries that are not on use the source.
The motivation is to keep up to date. In fact several of the libraries we depend on in library projects do not release versions of their class files anymore before JDK 17.
This means we go to JDK 17 as run-time JVM target and as source language. We can start using Java 17 features.
It has to go in one big bang because newer JDK 17 class files are not compatible with older Java 11 run-times.
Core:
Libraries:
This is to register the intent to mark the "impulse" project for deprecation and eventual removal.
impulse
generation still for archival purposesPlease vote here for consent:
The "project burial process" is described here. We can add more details as we go, as this is the first project we clean up after: https://usethesource.io/about/processes.html#:~:text=Project%20Burial%20Process
rascal is a central project on usethesource and it should be there; but let's hold to the process guidelines as in http://usethesource.io/about/processes.html and quickly move rascal through the incubation process to get things started.
The rascal project includes the following github repositories in the cwi-swat organisation:
I propose we let the CLA signing go in parallel with moving the project, as an exception to the process since Rascal is so central and we have all contributed to it knowing it was open-source up-front.
I also propose to fix the problems with file LICENSE's as we go along.
@tvdstorm @PaulKlint please agree.
anno loc Tree@\loc;
data Tree(loc src=|unknown:///|)
@\loc
annotation syntax which is simulated by the interpreter and the compiler by .src
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.