Description
Created by @mschwerhoff on 2015-09-11 07:12
Last updated on 2015-10-21 10:45
This is kind of an umbrella issue with the general aim of improving how Viper tools, in particular, how Silicon and Carbon, can be executed.
Command-line
-
Provide shell scripts (
silicon.sh
, ...) for Linux and Mac: currently, we only offer batch files -
Automatically generate such start scripts: this might require an sbt plugin, on the other hand, the sbt build file probably contains all information relevant in order to create start scripts, including JVM parameters such as heap and stack size, and all libraries our tools depend on
-
Unify on which binary representation these start scripts rely: currently,
carbon.bat
adds the directory where the individual Java class files are located to the JVM's class path -->sbt compile
(as well as each library that Carbon depends on);silicon.bat
adds the jar file containing all those class files -->sbt package
; the batch files used by out Viper-IDE (Sublime, Notepad++) add the fat jar containing the tool and the libraries -->sbt assembly
.Relying on the far jar is probably the simplest solution.
-
Incorporate Nailgun: the start scripts should have an option to run the tool via Nailgun; the reduced start-up time is much appreciated when giving demos, or during hackathons; currently, only the
silicon.bat
that is part of our Viper-IDE includes an option for running directly, or via Nailgun -
If possible, we would finally only need a single (automatically generated) start script per tool
Viper-IDE
-
Make Carbon work with Sublime: Sublime has the concept of build systems, a build system is essentially a python script that can handle the currently edited file(s); there are also so-called variants that allow selecting a specific build system task, e.g. run via Carbon, run via Silicon
-
Make Chalice2Silver work with Sublime
-
Provide instructions on how to set up sublime: Since we are most likely not allowed to distribute Sublime ourselves, we should offer instructions on how to download, install and set up Sublime such that others can use our tools via Sublime
-
Include our build system(s) in Sublime's package repository: this should make it easier for users to set up Sublime such that they can use our tools via Sublime
-
Properly host our build system(s): currently,
\\pmshared
hosts a copy of Sublime which includes all files that are relevant for our build system; those should be hosted in a proper Bitbucket repository, and Sublime should not be part of it -
Syntax highlighting: Sublime's syntax highlighting is based on nested regular expressions, and quite powerful - it would be great if we could generate the highlighting file from our Silver parser (or maybe from the pretty-printer) (Uri also had some vision of generating parser, AST and pretty-printer from a single source; the guy behind Kiama also has some project in that direction)
Viper Online
-
Properly set up Viper online:
- include "stable" versions of Carbon, Silicon and Chalice2Silver
- include nightlies as well? automatically obtain those from Jenkins?
- add helpful example files
- host it under a decent URL
- fix remaining GUI flaws and quirks
- monitor if Viper online is responding as expected?
-
Finish the interactive Silver tutorial