README.md
author Jan Vrany <jan.vrany@fit.cvut.cz>
Wed, 06 Jul 2016 22:40:59 +0100
changeset 71 ab03b0a6d037
parent 47 d1d3901866d4
permissions -rw-r--r--
Implemented LLVMType>>sizeInBits/sizeInBytes for all data types ...i.e., also for structures, vectors and arrays.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
14
c7dea3fcc5a7 Added short README, license.txt and updated copyright information
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     1
# LLVM-S:  A Smalltalk(X) bindings to LLVM compiler toolchain
c7dea3fcc5a7 Added short README, license.txt and updated copyright information
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     2
c7dea3fcc5a7 Added short README, license.txt and updated copyright information
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     3
LLVM-S provides bindings to LLVM toolchain for Smalltalk(X) to allow experimentation
c7dea3fcc5a7 Added short README, license.txt and updated copyright information
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     4
with LLVM toolchain in context of Smalltalk technology - both as a JIT backend and
c7dea3fcc5a7 Added short README, license.txt and updated copyright information
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     5
an AOT compiler.
c7dea3fcc5a7 Added short README, license.txt and updated copyright information
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     6
47
d1d3901866d4 Updated README.md
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14
diff changeset
     7
## Prerequisites
d1d3901866d4 Updated README.md
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14
diff changeset
     8
d1d3901866d4 Updated README.md
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14
diff changeset
     9
* An x96_64 Linux box
d1d3901866d4 Updated README.md
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14
diff changeset
    10
* GNU Make & C++ compiler (GCC / Clang would do it)
d1d3901866d4 Updated README.md
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14
diff changeset
    11
* LLVM *3.8* installation - requires libLLVM.so shared library
d1d3901866d4 Updated README.md
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14
diff changeset
    12
14
c7dea3fcc5a7 Added short README, license.txt and updated copyright information
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    13
## Loading into Smalltalk/X
c7dea3fcc5a7 Added short README, license.txt and updated copyright information
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    14
c7dea3fcc5a7 Added short README, license.txt and updated copyright information
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)
c7dea3fcc5a7 Added short README, license.txt and updated copyright information
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    16
c7dea3fcc5a7 Added short README, license.txt and updated copyright information
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    17
**2.** Clone the repository
c7dea3fcc5a7 Added short README, license.txt and updated copyright information
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    18
c7dea3fcc5a7 Added short README, license.txt and updated copyright information
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    19
```
c7dea3fcc5a7 Added short README, license.txt and updated copyright information
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    20
#!bash
c7dea3fcc5a7 Added short README, license.txt and updated copyright information
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    21
    mkdir -p ~/SmalltalkXProjects/jv
c7dea3fcc5a7 Added short README, license.txt and updated copyright information
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    22
    hg clone https://bitbucket.org/janvrany/jv-llvm-s ~/SmalltalkXProjects/jv/llvm_s
c7dea3fcc5a7 Added short README, license.txt and updated copyright information
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    23
```
c7dea3fcc5a7 Added short README, license.txt and updated copyright information
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    24
47
d1d3901866d4 Updated README.md
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14
diff changeset
    25
**3.** Compile LLVM C Extension library
d1d3901866d4 Updated README.md
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14
diff changeset
    26
d1d3901866d4 Updated README.md
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14
diff changeset
    27
```
d1d3901866d4 Updated README.md
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14
diff changeset
    28
#!bash
d1d3901866d4 Updated README.md
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14
diff changeset
    29
    cd ~/SmalltalkXProjects/jv/llvm_s/llvm_c_ext
d1d3901866d4 Updated README.md
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14
diff changeset
    30
    make LLVM_CONFIG=~/path/to/llvm-3.8/bin/llvm-config
d1d3901866d4 Updated README.md
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14
diff changeset
    31
```
d1d3901866d4 Updated README.md
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14
diff changeset
    32
d1d3901866d4 Updated README.md
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14
diff changeset
    33
**4.** Load the package into Smalltalk/X 
14
c7dea3fcc5a7 Added short README, license.txt and updated copyright information
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    34
```
c7dea3fcc5a7 Added short README, license.txt and updated copyright information
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    35
#!smalltalk
c7dea3fcc5a7 Added short README, license.txt and updated copyright information
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    36
    Smalltalk loadPackage: 'jv:llvm_s'.
c7dea3fcc5a7 Added short README, license.txt and updated copyright information
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    37
```
c7dea3fcc5a7 Added short README, license.txt and updated copyright information
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    38
c7dea3fcc5a7 Added short README, license.txt and updated copyright information
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    39
## Loading into other Smalltalks
c7dea3fcc5a7 Added short README, license.txt and updated copyright information
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    40
c7dea3fcc5a7 Added short README, license.txt and updated copyright information
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    41
Currently LLVM-S is available only for Smalltalk/X, though the I (Jan Vrany) am willing to (help to) 
c7dea3fcc5a7 Added short README, license.txt and updated copyright information
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    42
make it working on other Smalltalk implementation if there's an interest. In that case, get in touch with
c7dea3fcc5a7 Added short README, license.txt and updated copyright information
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    43
me to discuss details.
c7dea3fcc5a7 Added short README, license.txt and updated copyright information
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    44
c7dea3fcc5a7 Added short README, license.txt and updated copyright information
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    45
## Documentation 
c7dea3fcc5a7 Added short README, license.txt and updated copyright information
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    46
c7dea3fcc5a7 Added short README, license.txt and updated copyright information
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    47
* [Project wiki](https://bitbucket.org/janvrany/jv-llvm-s/wiki/Home)
c7dea3fcc5a7 Added short README, license.txt and updated copyright information
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    48
c7dea3fcc5a7 Added short README, license.txt and updated copyright information
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    49
But do not expect much - it's still more an experimental project so it's expected to change a lot
c7dea3fcc5a7 Added short README, license.txt and updated copyright information
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    50
in **non**-backward compatible way:
c7dea3fcc5a7 Added short README, license.txt and updated copyright information
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    51
c7dea3fcc5a7 Added short README, license.txt and updated copyright information
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    52
## Authors
c7dea3fcc5a7 Added short README, license.txt and updated copyright information
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    53
c7dea3fcc5a7 Added short README, license.txt and updated copyright information
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    54
* Jan Vrany
c7dea3fcc5a7 Added short README, license.txt and updated copyright information
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    55
c7dea3fcc5a7 Added short README, license.txt and updated copyright information
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    56
## License
c7dea3fcc5a7 Added short README, license.txt and updated copyright information
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    57
c7dea3fcc5a7 Added short README, license.txt and updated copyright information
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    58
This code is not an open-source (yet). You may use this code
c7dea3fcc5a7 Added short README, license.txt and updated copyright information
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    59
for your own experiments and projects, given that:
c7dea3fcc5a7 Added short README, license.txt and updated copyright information
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    60
c7dea3fcc5a7 Added short README, license.txt and updated copyright information
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    61
* all modification to the code will be sent to the
c7dea3fcc5a7 Added short README, license.txt and updated copyright information
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    62
  original author for inclusion in future releases
c7dea3fcc5a7 Added short README, license.txt and updated copyright information
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    63
* this is not used in any commercial software
c7dea3fcc5a7 Added short README, license.txt and updated copyright information
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    64
c7dea3fcc5a7 Added short README, license.txt and updated copyright information
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    65
**This license is provisional and may (will) change in
c7dea3fcc5a7 Added short README, license.txt and updated copyright information
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    66
a future.**