diff options
author | Andy Wingo <wingo@pobox.com> | 2018-10-07 11:36:45 +0200 |
---|---|---|
committer | Andy Wingo <wingo@pobox.com> | 2018-10-07 11:36:45 +0200 |
commit | a3b32f839b3d02f2551bc3cda9bc0567662bccd7 (patch) | |
tree | 6033a8ed8da98841d1336d59bfa47b8d68d5d6e5 /doc/ref/compiler.texi | |
parent | 6f3357b0df64c4be17e72079864c09a542f1c779 (diff) | |
download | guile-a3b32f839b3d02f2551bc3cda9bc0567662bccd7.tar.gz |
Add manual section on JIT compiler
* doc/ref/vm.texi (Just-In-Time Native Code): New section.
* doc/ref/compiler.texi (Extending the Compiler): Update.
Diffstat (limited to 'doc/ref/compiler.texi')
-rw-r--r-- | doc/ref/compiler.texi | 18 |
1 files changed, 6 insertions, 12 deletions
diff --git a/doc/ref/compiler.texi b/doc/ref/compiler.texi index 3ec7cfd5d..7e1f29fcb 100644 --- a/doc/ref/compiler.texi +++ b/doc/ref/compiler.texi @@ -1372,20 +1372,14 @@ company, and in a good position. Guile's compiler needs your help. There are many possible avenues for improving Guile's compiler. Probably the most important improvement, speed-wise, will be some form -of native compilation, both just-in-time and ahead-of-time. This could -be done in many ways. Probably the easiest strategy would be to extend -the compiled procedure structure to include a pointer to a native code -vector, and compile from bytecode to native code at run-time after a -procedure is called a certain number of times. - -The name of the game is a profiling-based harvest of the low-hanging -fruit, running programs of interest under a system-level profiler and -determining which improvements would give the most bang for the buck. -It's really getting to the point though that native compilation is the -next step. +of optimized ahead-of-time native compilation with global register +allocation. A first pass could simply extend the compiler to also emit +machine code in addition to bytecode, pre-filling the corresponding JIT +data structures referenced by the @code{instrument-entry} bytecodes. +@xref{Instrumentation Instructions}. The compiler also needs help at the top end, enhancing the Scheme that -it knows to also understand R6RS, and adding new high-level compilers. +it knows to also understand R7RS, and adding new high-level compilers. We have JavaScript and Emacs Lisp mostly complete, but they could use some love; Lua would be nice as well, but whatever language it is that strikes your fancy would be welcome too. |