Skip to content
This repository
Newer
Older
100644 71 lines (47 sloc) 2.409 kb
162305c6 »
2008-08-20 First import
1 * What's LLVMRuby
2
3 LLVMRuby is a set of bindings making the LLVM compiler infrastructure
4 (http://llvm.org) usable from Ruby. This extention allows using LLVM
5 as an abstract assembler and reflects a good chunk of the LLVM class
2d1081f3 »
2008-08-20 Touching things up, starting to add unit tests
6 hierarchy into Ruby. Included is an example of using this to build
162305c6 »
2008-08-20 First import
7 a simple JIT compiler, written entirely in Ruby, which is able to
8 interact with the native Ruby 1.8/1.9 data types.
9
10 * How to build
11
e829dc87 »
2008-12-24 merge plessl changes, update to llvm 2.4, fix tests for 64 bit platfo…
12 Get LLVM 2.4 from http://llvm.org/releases/2.4/llvm-2.4.tar.gz and
13 build it separately following their instructions.
162305c6 »
2008-08-20 First import
14
173ea1fa »
2008-08-22 functions get names and types now
15 Make sure that you configure LLVM with PIC enabled:
16
17 $ ./configure --enable-pic
18
162305c6 »
2008-08-20 First import
19 Add the llvm bin directory to your path, extconf needs to be able to find llvm-conf:
20
05ce6537 »
2008-10-18 Update README regarding build process + gemification
21 $ export PATH=$PATH:/$LLVMDIR/Release/bin
162305c6 »
2008-08-20 First import
22
05ce6537 »
2008-10-18 Update README regarding build process + gemification
23 Run rake
162305c6 »
2008-08-20 First import
24
05ce6537 »
2008-10-18 Update README regarding build process + gemification
25 $ rake
162305c6 »
2008-08-20 First import
26
73ef4b76 »
2008-08-22 added set_insert_pointer, update test info
27 Run the tests (you will need Rake installed)
28
29 $ rake test
30
05ce6537 »
2008-10-18 Update README regarding build process + gemification
31 Look in test.rb to see examples of use and start messing around. The
32 project was recently reorganized in gem format with Ruby files in lib,
33 and C/CPP and extension in ext. You will need to either load the
34 library as a gem or make sure that both lib and ext dirs are in your
35 load path.
162305c6 »
2008-08-20 First import
36
37 * Caveats
38
3293c794 »
2008-08-31 update the README
39 I primarily develop this on my home machine which is 64bit Fedora. I
40 occasionally test it on a 32bit CentOS machine, and recently tested it
41 on a 32bit MacBook. It built and passed tests with no issues. My
42 knowledge of building either Ruby or LLVM on Windows is minimal. It
43 should be doable, but I don't believe LLVM currently is usable with
44 VC++, which is the main compiler for Ruby on Windows, so you may run
45 into fun times trying to figure out a good way to make that go.
162305c6 »
2008-08-20 First import
46
ae7a05b1 »
2008-08-21 Make only one executiong engine, use evil global variable
47 * Things that definitely do not work right now
48
49 No attempt has been made to properly free LLVM objects. This probably
bf37e4c1 »
2008-08-25 update README
50 isn't hard, LLVM api has easy to deal with memory management. Many LLVM
51 objects end up owned by modules/execution engine and shouldn't be freed
52 normally anyway.
53
54 There needs to be a lot more exception raising when arguments are of wrong
3293c794 »
2008-08-31 update the README
55 number/type.
56
57 Malformed LLVM functions will cause the program to abort, even just
58 from calling verify on a module. This seems like a bug in LLVM.
59 Verification in theory is slow and should be used only for debugging, but
60 it would nice if tests did not abort and die because of missing block
61 terminators or whatever.
ae7a05b1 »
2008-08-21 Make only one executiong engine, use evil global variable
62
162305c6 »
2008-08-20 First import
63 * Copying
64
65 See the file COPYING
66
67 * Author
68
69 For questions or answers, my email is: tomatobagby@gmail.com
70
Something went wrong with that request. Please try again.