@@ -14,9 +14,10 @@ grown our little Kaleidoscope language from being a useless toy, to
14
14
being a semi-interesting (but probably still useless) toy. :)
15
15
16
16
It is interesting to see how far we've come, and how little code it has
17
- taken. We built the entire lexer, parser, AST, code generator, and an
18
- interactive run-loop (with a JIT!) by-hand in under 1000 lines of
19
- (non-comment/non-blank) code.
17
+ taken. We built the entire lexer, parser, AST, code generator, an
18
+ interactive run-loop (with a JIT!), and emitted debug information in
19
+ standalone executables - all in under 1000 lines of (non-comment/non-blank)
20
+ code.
20
21
21
22
Our little language supports a couple of interesting features: it
22
23
supports user defined binary and unary operators, it uses JIT
@@ -68,12 +69,6 @@ For example, try adding:
68
69
collection, note that LLVM fully supports `Accurate Garbage
69
70
Collection <../GarbageCollection.html> `_ including algorithms that
70
71
move objects and need to scan/update the stack.
71
- - **debugger support ** - LLVM supports generation of `DWARF Debug
72
- info <../SourceLevelDebugging.html> `_ which is understood by common
73
- debuggers like GDB. Adding support for debug info is fairly
74
- straightforward. The best way to understand it is to compile some
75
- C/C++ code with "``clang -g -O0 ``" and taking a look at what it
76
- produces.
77
72
- **exception handling support ** - LLVM supports generation of `zero
78
73
cost exceptions <../ExceptionHandling.html> `_ which interoperate with
79
74
code compiled in other languages. You could also generate code by
0 commit comments