*** empty log message ***
[bpt/guile.git] / README
1 Installation
2 ------------
3
4 1. Install the latest Guile from CVS.
5
6 2. Install Guile VM:
7
8 % configure
9 % make install
10 % ln -s module/{guile,system,language} /usr/local/share/guile/
11
12 3. Add the following lines to your ~/.guile:
13
14 (use-modules (system vm core)
15
16 (cond ((string=? (car (command-line)) "guile-vm")
17 (use-modules (system repl repl))
18 (start-repl 'scheme)
19 (quit)))
20
21 Example Session
22 ---------------
23
24 % guile-vm
25 Guile Scheme interpreter 0.5 on Guile 1.4.1
26 Copyright (C) 2001 Free Software Foundation, Inc.
27
28 Enter `,help' for help.
29 scheme@guile-user> (+ 1 2)
30 3
31 scheme@guile-user> ,c -c (+ 1 2) ;; Compile into GLIL
32 (@asm (0 1 0 0)
33 (module-ref #f +)
34 (const 1)
35 (const 2)
36 (tail-call 2))
37 scheme@guile-user> ,c (+ 1 2) ;; Compile into object code
38 Disassembly of #<objcode 403c5fb0>:
39
40 nlocs = 0 nexts = 0
41
42 0 link "+" ;; (+ . ???)
43 3 variable-ref
44 4 make-int8:1 ;; 1
45 5 make-int8 2 ;; 2
46 7 tail-call 2
47
48 scheme@guile-user> (define (add x y) (+ x y))
49 scheme@guile-user> (add 1 2)
50 3
51 scheme@guile-user> ,x add ;; Disassemble
52 Disassembly of #<program add>:
53
54 nargs = 2 nrest = 0 nlocs = 0 nexts = 0
55
56 Bytecode:
57
58 0 object-ref 0 ;; (+ . #<primitive-procedure +>)
59 2 variable-ref
60 3 local-ref 0
61 5 local-ref 1
62 7 tail-call 2
63
64 Objects:
65
66 0 (+ . #<primitive-procedure +>)
67
68 scheme@guile-user>
69
70 Compile Modules
71 ---------------
72
73 Use `guilec' to compile your modules:
74
75 % cat fib.scm
76 (define-module (fib) :export (fib))
77 (define (fib n) (if (< n 2) 1 (+ (fib (- n 1)) (fib (- n 2)))))
78
79 % guilec fib.scm
80 Wrote fib.go
81 % guile
82 guile> (use-modules (fib))
83 guile> (fib 8)
84 34