From 6e7caff184ef444bc3bcdc17c8caa198b9d196ce Mon Sep 17 00:00:00 2001 From: Juan Jose Garcia Ripoll Date: Sun, 1 Nov 2009 02:38:36 +0100 Subject: [PATCH] The :prologue-code in cmp:builder is now executed after cl_boot() and it can be lisp code. --- src/cmp/cmpmain.lsp | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/src/cmp/cmpmain.lsp b/src/cmp/cmpmain.lsp index 32aedbec0..0a8cecd48 100755 --- a/src/cmp/cmpmain.lsp +++ b/src/cmp/cmpmain.lsp @@ -261,8 +261,8 @@ void ~A(cl_object cblock) int main(int argc, char **argv) { - ~A cl_boot(argc, argv); + ~A read_VV(OBJNULL, ~A); ~A }") @@ -275,9 +275,9 @@ WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdS { char **argv; int argc; - ~A ecl_get_commandline_args(&argc, &argv); cl_boot(argc, argv); + ~A read_VV(OBJNULL, ~A); ~A }") @@ -416,6 +416,22 @@ return 1;" stream)) (princ #\} stream) ))))) + (cond ((null prologue-code) + (setf prologue-code "")) + ((stringp prologue-code) + ) + (t + (with-standard-io-syntax + (setq prologue-code + (with-output-to-string (stream) + (princ "{ const char *lisp_code = " stream) + (wt-filtered-data (write-to-string prologue-code) stream) + (princ "; +cl_object output; +si_select_package(make_simple_base_string(\"CL-USER\")); +output = si_safe_eval(3, ecl_read_from_cstring(lisp_code), Cnil, OBJNULL); +}" stream) + ))))) ;; ;; When a module is built out of several object files, we have to ;; create an additional object file that initializes those ones.