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?
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 filesAutomatically 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 NailgunIf 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 itSyntax 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:
Finish the interactive Silver tutorial