author | Jan Vrany <jan.vrany@fit.cvut.cz> |
Mon, 28 Sep 2015 14:39:57 +0100 | |
changeset 20 | 2f28df70181a |
permissions | -rw-r--r-- |
20
2f28df70181a
Added README, license and copyright notice
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
1 |
# Tea Language |
2f28df70181a
Added README, license and copyright notice
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
2 |
|
2f28df70181a
Added README, license and copyright notice
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
3 |
**Tea** is an experimental DSL based on Smalltalk language that compiles |
2f28df70181a
Added README, license and copyright notice
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
4 |
statically to (optimized) machine code. It depends on LLVM toolchain to |
2f28df70181a
Added README, license and copyright notice
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
5 |
actually optimize and generate target machine code. |
2f28df70181a
Added README, license and copyright notice
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
6 |
|
2f28df70181a
Added README, license and copyright notice
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
7 |
## Prerequisites |
2f28df70181a
Added README, license and copyright notice
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
8 |
|
2f28df70181a
Added README, license and copyright notice
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
9 |
* An x96_64 Linux box |
2f28df70181a
Added README, license and copyright notice
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
10 |
* GNU Make & C++ compiler (GCC / Clang would do it) |
2f28df70181a
Added README, license and copyright notice
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
11 |
* LLVM *3.8* installation - requires libLLVM.so shared library |
2f28df70181a
Added README, license and copyright notice
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
12 |
|
2f28df70181a
Added README, license and copyright notice
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
13 |
## Loading into Smalltalk/X |
2f28df70181a
Added README, license and copyright notice
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
14 |
|
2f28df70181a
Added README, license and copyright notice
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
15 |
**1.** Get [Smalltalk/X jv-branch](https://swing.fit.cvut.cz/projects/stx-jv/) (preferably a night build). |
2f28df70181a
Added README, license and copyright notice
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
16 |
|
2f28df70181a
Added README, license and copyright notice
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
17 |
**2.** Clone *Tea*, *Ring* and *LLVM-S* repositories |
2f28df70181a
Added README, license and copyright notice
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
18 |
|
2f28df70181a
Added README, license and copyright notice
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
19 |
``` |
2f28df70181a
Added README, license and copyright notice
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
20 |
#!bash |
2f28df70181a
Added README, license and copyright notice
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
21 |
mkdir -p ~/SmalltalkXProjects/jv |
2f28df70181a
Added README, license and copyright notice
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
22 |
mkdir -p ~/SmalltalkXProjects/stx/goodies |
2f28df70181a
Added README, license and copyright notice
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
23 |
hg clone https://bitbucket.org/janvrany/stx-goodies-ring ~/SmalltalkXProjects/stx/goodies/ring |
2f28df70181a
Added README, license and copyright notice
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
24 |
hg clone https://bitbucket.org/janvrany/jv-llvm-s ~/SmalltalkXProjects/jv/llvm_s |
2f28df70181a
Added README, license and copyright notice
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
25 |
hg clone https://bitbucket.org/janvrany/jv-tea ~/SmalltalkXProjects/jv/tea |
2f28df70181a
Added README, license and copyright notice
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
26 |
``` |
2f28df70181a
Added README, license and copyright notice
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
27 |
|
2f28df70181a
Added README, license and copyright notice
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
28 |
**3.** Compile LLVM C Extension library |
2f28df70181a
Added README, license and copyright notice
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
29 |
|
2f28df70181a
Added README, license and copyright notice
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
30 |
``` |
2f28df70181a
Added README, license and copyright notice
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
31 |
#!bash |
2f28df70181a
Added README, license and copyright notice
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
32 |
cd ~/SmalltalkXProjects/jv/llvm_s/llvm_c_ext |
2f28df70181a
Added README, license and copyright notice
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
33 |
make LLVM_CONFIG=~/path/to/llvm-3.8/bin/llvm-config |
2f28df70181a
Added README, license and copyright notice
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
34 |
``` |
2f28df70181a
Added README, license and copyright notice
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
35 |
|
2f28df70181a
Added README, license and copyright notice
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
36 |
**4.** Load the package into Smalltalk/X |
2f28df70181a
Added README, license and copyright notice
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
37 |
``` |
2f28df70181a
Added README, license and copyright notice
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
38 |
#!smalltalk |
2f28df70181a
Added README, license and copyright notice
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
39 |
Smalltalk loadPackage: 'stx:goodies/ring'. |
2f28df70181a
Added README, license and copyright notice
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
40 |
Smalltalk loadPackage: 'jv:llvm_s'. |
2f28df70181a
Added README, license and copyright notice
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
41 |
Smalltalk loadPackage: 'jv:tea/compiler'. |
2f28df70181a
Added README, license and copyright notice
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
42 |
Smalltalk loadPackage: 'jv:tea/compiler/cli'. |
2f28df70181a
Added README, license and copyright notice
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
43 |
``` |
2f28df70181a
Added README, license and copyright notice
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
44 |
|
2f28df70181a
Added README, license and copyright notice
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
45 |
## Documentation |
2f28df70181a
Added README, license and copyright notice
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
46 |
|
2f28df70181a
Added README, license and copyright notice
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
47 |
* [Project wiki](https://bitbucket.org/janvrany/jv-tea/wiki/Home) |
2f28df70181a
Added README, license and copyright notice
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
48 |
|
2f28df70181a
Added README, license and copyright notice
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
49 |
But do not expect much - it's more of an unsorted list of comments and thoughts |
2f28df70181a
Added README, license and copyright notice
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
50 |
rather than documentation or even 'language specification'. |
2f28df70181a
Added README, license and copyright notice
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
51 |
|
2f28df70181a
Added README, license and copyright notice
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
52 |
## Authors |
2f28df70181a
Added README, license and copyright notice
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
53 |
|
2f28df70181a
Added README, license and copyright notice
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
54 |
* Jan Vrany |
2f28df70181a
Added README, license and copyright notice
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
55 |
|
2f28df70181a
Added README, license and copyright notice
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
56 |
## License |
2f28df70181a
Added README, license and copyright notice
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
57 |
|
2f28df70181a
Added README, license and copyright notice
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
58 |
This code is not an open-source (yet). You may use this code |
2f28df70181a
Added README, license and copyright notice
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
59 |
for your own experiments and projects, given that: |
2f28df70181a
Added README, license and copyright notice
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
60 |
|
2f28df70181a
Added README, license and copyright notice
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
61 |
* all modification to the code will be sent to the |
2f28df70181a
Added README, license and copyright notice
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
62 |
original author for inclusion in future releases |
2f28df70181a
Added README, license and copyright notice
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
63 |
* this is not used in any commercial software |
2f28df70181a
Added README, license and copyright notice
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
64 |
|
2f28df70181a
Added README, license and copyright notice
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
65 |
**This license is provisional and may (will) change in |
2f28df70181a
Added README, license and copyright notice
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
66 |
a future.** |