README.md
author Jan Vrany <jan.vrany@fit.cvut.cz>
Mon, 28 Sep 2015 14:39:57 +0100
changeset 20 2f28df70181a
permissions -rw-r--r--
Added README, license and copyright notice
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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.**