Clafer Tools
Integration of Clafer Compiler and Instance Generators into Sublime Text 2/3
Details
Installs
- Total 217
- Win 115
- Mac 59
- Linux 43
Nov 21 | Nov 20 | Nov 19 | Nov 18 | Nov 17 | Nov 16 | Nov 15 | Nov 14 | Nov 13 | Nov 12 | Nov 11 | Nov 10 | Nov 9 | Nov 8 | Nov 7 | Nov 6 | Nov 5 | Nov 4 | Nov 3 | Nov 2 | Nov 1 | Oct 31 | Oct 30 | Oct 29 | Oct 28 | Oct 27 | Oct 26 | Oct 25 | Oct 24 | Oct 23 | Oct 22 | Oct 21 | Oct 20 | Oct 19 | Oct 18 | Oct 17 | Oct 16 | Oct 15 | Oct 14 | Oct 13 | Oct 12 | Oct 11 | Oct 10 | Oct 9 | Oct 8 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Windows | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Mac | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Linux | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Readme
- Source
- raw.githubusercontent.com
Clafer Tools
v0.4.5
Integration of Clafer Compiler and Instance Generators into Sublime Text 2/3.
See release notes for Clafer 0.4.5.
Contributors
- Michał Antkiewicz, Main developer.
Features and Usage
- Syntax highlighting of keywords, operators, comments, and integer and string literals
- Compilation and validation
<CTRL>+b
. To change parameters of the command:Preferences->Browse Packages
cd Clafer Tools
- edit
Clafer.sublime-build
- Instance generation (with simple scope inference) using
- Alloy-based instance generator
<CTRL>+i, g, a
- Choco-based instance generator
<CTRL>+i, g, c
- Z3 SMT-based instance generator
<CTRL>+i, g, s
(only for 0.3.6.1)
- Alloy-based instance generator
Installation
- Install Sublime Text 3.
On Ubuntu, add the WebUpd8 PPA then execute
sudo apt install sublime-text-installer
. - In Sublime Text
- Install
Package Control
Tools->Install Package Control...
- Install packages
SublimeREPL
,Clafer Tools
and (optionally)SidebarEnhancements
Preferences->Package Control->Install Package
- type the name of the package
- Open the
Packages
folderPreferences->Browse Packages...
- copy the folder
SublimeREPL
fromClafer Tools
toPackages
- on Mac, use the
merge
option notreplace
- on Mac, use the
- Install
- Download the latest binary distribution of Clafer Tools
- Clafer Tools
- Unzip the contents of the folder
clafer-tools-0.4.5
intoPackages/Clafer-Bin
- Make sure the folder structure is NOT
Packages/Clafer-Bin/clafer-tools-0.4.5
, that is, the contents of the folderclafer-tools-0.4.5
are directly insideClafer-Bin
- Make sure the folder structure is NOT
- (optional) add
Clafer-Bin
to the variablePATH
.
- On Windows only
- Alloy-based instance generator only works with 32bit Java on Windows and if you only have 64bit Java installation, you will see an error:
Exception in thread "main" java.lang.UnsatisfiedLinkError: no minisatproverx1 in java.library.path
.
- Alloy-based instance generator only works with 32bit Java on Windows and if you only have 64bit Java installation, you will see an error:
Known Limitations and Workarounds
On Windows - Setting the PATH to 32bit Java installation
- install 32bit JDK but do not modify the PATH to point to it (there's no 32bit JRE anymore)
- in Sublime Text
Preferences->Package Settings->SublimeREPL->Settings - Default
- set
default_extended_env
as"default_extend_env": {"PATH": "C:/Program Files (x86)/Java/jdk1.8.0_102/bin;{PATH}"},
On Linux and Mac
- the Python 3 executable is called
python3
and the best solution is to create a symlink calledpython
pointing to/usr/bin/python3
- in
Packages/Clafer Tools
executeln -s /usr/bin/python3 python
.
- in
- it's also needed to add the current directory
.
to thePATH
, so that the executables are found. Add the following line at the end of your.profile
PATH=".:$PATH"
- for python to be able to find the
Z3
library, add the following line to your.profile
- on Linux,
export LD_LIBRARY_PATH="~/.config/sublime-text-3/Packages/Clafer-Bin:$LD_LIBRARY_PATH"
- on Mac,
export DYLD_LIBRARY_PATH="~/.config/sublime-text-3/Packages/Clafer-Bin:$DYLD_LIBRARY_PATH"
- on Linux,
- the Python 3 executable is called
On MacOS Yosemite, the preferred way of setting the variable
PATH
is by editing/etc/paths
. However, despite that, Sublime Text 2/3 will not see the specified values because it is a GUI application and it will only see/usr/bin:/bin:/usr/sbin:/sbin:/
. To check the value ofPATH
visible to Sublime- open console
View->Show Console
- execute
import os; print (os.environ['PATH'])
- if you see
/usr/bin:/bin:/usr/sbin:/sbin:/
, you are affected by the YosemitePATH
bug and ClaferChocoIG will be unable to comple the model for you because it calls the clafer executable. - the workaround is to:
- create a symlink
sudo ln -s ~/Library/Application\ Support/Sublime\ Text\ 3/Packages/Clafer-Bin/clafer /usr/bin/clafer
so thatclafer
executable will be visible on the defaultPATH
.
- create a symlink
- to conveniently use ClaferChocoIG, move the script
claferchocoig.sh
(included in Mac binary distro) to/usr/bin
by executingsudo mv ~/Library/Application\ Support/Sublime\ Text\ 3/Packages/Clafer-Bin/claferchocoig.sh /usr/bin
.
- open console
ClaferSMT in Clafer Tools 0.3.6.1 binary depends on the python package
bintrees
, to install executepip install bintrees
on Windows orpip3 install bintrees
on Linux and Mac.
Planned Improvements
- Code snippets for quantified expressions such as
[ all disj x1; x2 : X | ... ]