temporarily disable elisp exception tests
[bpt/guile.git] / README.guile-vm
1 This is an attempt to revive the Guile-VM project by Keisuke Nishida
2 written back in the years 2000 and 2001. Below are a few pointers to
3 relevant threads on Guile's development mailing list.
4
5 Enjoy!
6
7 Ludovic Courtès <ludovic.courtes@laas.fr>, Apr. 2005.
8
9
10 Pointers
11 --------
12
13 Status of the last release, 0.5
14 http://lists.gnu.org/archive/html/guile-devel/2001-04/msg00266.html
15
16 The very first release, 0.0
17 http://sources.redhat.com/ml/guile/2000-07/msg00418.html
18
19 Simple benchmark
20 http://sources.redhat.com/ml/guile/2000-07/msg00425.html
21
22 Performance, portability, GNU Lightning
23 http://lists.gnu.org/archive/html/guile-devel/2001-03/msg00132.html
24
25 Playing with GNU Lightning
26 http://lists.gnu.org/archive/html/guile-devel/2001-03/msg00185.html
27
28 On things left to be done
29 http://lists.gnu.org/archive/html/guile-devel/2001-03/msg00146.html
30
31
32 ---8<--- Original README below. -----------------------------------------
33
34 Installation
35 ------------
36
37 1. Install the latest Guile from CVS.
38
39 2. Install Guile VM:
40
41 % configure
42 % make install
43 % ln -s module/{guile,system,language} /usr/local/share/guile/
44
45 3. Add the following lines to your ~/.guile:
46
47 (use-modules (system vm core)
48
49 (cond ((string=? (car (command-line)) "guile-vm")
50 (use-modules (system repl repl))
51 (start-repl 'scheme)
52 (quit)))
53
54 Example Session
55 ---------------
56
57 % guile-vm
58 Guile Scheme interpreter 0.5 on Guile 1.4.1
59 Copyright (C) 2001 Free Software Foundation, Inc.
60
61 Enter `,help' for help.
62 scheme@guile-user> (+ 1 2)
63 3
64 scheme@guile-user> ,c -c (+ 1 2) ;; Compile into GLIL
65 (@asm (0 1 0 0)
66 (module-ref #f +)
67 (const 1)
68 (const 2)
69 (tail-call 2))
70 scheme@guile-user> ,c (+ 1 2) ;; Compile into object code
71 Disassembly of #<objcode 403c5fb0>:
72
73 nlocs = 0 nexts = 0
74
75 0 link "+" ;; (+ . ???)
76 3 variable-ref
77 4 make-int8:1 ;; 1
78 5 make-int8 2 ;; 2
79 7 tail-call 2
80
81 scheme@guile-user> (define (add x y) (+ x y))
82 scheme@guile-user> (add 1 2)
83 3
84 scheme@guile-user> ,x add ;; Disassemble
85 Disassembly of #<program add>:
86
87 nargs = 2 nrest = 0 nlocs = 0 nexts = 0
88
89 Bytecode:
90
91 0 object-ref 0 ;; (+ . #<primitive-procedure +>)
92 2 variable-ref
93 3 local-ref 0
94 5 local-ref 1
95 7 tail-call 2
96
97 Objects:
98
99 0 (+ . #<primitive-procedure +>)
100
101 scheme@guile-user>
102
103 Compile Modules
104 ---------------
105
106 Use `guilec' to compile your modules:
107
108 % cat fib.scm
109 (define-module (fib) :export (fib))
110 (define (fib n) (if (< n 2) 1 (+ (fib (- n 1)) (fib (- n 2)))))
111
112 % guilec fib.scm
113 Wrote fib.go
114 % guile
115 guile> (use-modules (fib))
116 guile> (fib 8)
117 34