From db9c4c7cd0c08a8b35a7d56d0279139021d8b945 Mon Sep 17 00:00:00 2001 From: Gabriel Dos Reis Date: Wed, 23 Dec 2015 22:38:12 -0800 Subject: Retain Lisp code generated from algebra if asked. --- src/ChangeLog | 7 +++++++ src/boot/translator.boot | 4 ++-- src/interp/lisplib.boot | 11 +++++++++-- src/lisp/core.lisp.in | 3 ++- 4 files changed, 20 insertions(+), 5 deletions(-) diff --git a/src/ChangeLog b/src/ChangeLog index 447fde62..645484fa 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,10 @@ +2015-12-23 Gabriel Dos Reis + + * interp/lisplib.boot (lisplibDoRename): Retain generated Lisp + file if asked. + * lisp/core.lisp.in ($LispFileType): Export. + * boot/translator.boot (retainFile?): Likewise. + 2014-11-20 Gabriel Dos Reis * interp/lisplib.boot (lisplibDoRename): Fix thinko. diff --git a/src/boot/translator.boot b/src/boot/translator.boot index 34aa7816..8ba8e4fc 100644 --- a/src/boot/translator.boot +++ b/src/boot/translator.boot @@ -1,6 +1,6 @@ -- Copyright (c) 1991-2002, The Numerical Algorithms Group Ltd. -- All rights reserved. --- Copyright (C) 2007-2014, Gabriel Dos Reis. +-- Copyright (C) 2007-2015, Gabriel Dos Reis. -- All rights reserved. -- -- Redistribution and use in source and binary forms, with or without @@ -40,7 +40,7 @@ import parser import ast namespace BOOTTRAN module translator (evalBootFile, loadNativeModule, loadSystemRuntimeCore, - string2BootTree, genImportDeclaration) + string2BootTree, genImportDeclaration, retainFile?) ++ If non nil, holds the name of the current module being translated. $currentModuleName := nil diff --git a/src/interp/lisplib.boot b/src/interp/lisplib.boot index 6ab93035..d708eb3f 100644 --- a/src/interp/lisplib.boot +++ b/src/interp/lisplib.boot @@ -1,6 +1,6 @@ -- Copyright (c) 1991-2002, The Numerical Algorithms Group Ltd. -- All rights reserved. --- Copyright (C) 2007-2013, Gabriel Dos Reis. +-- Copyright (C) 2007-2015, Gabriel Dos Reis. -- All rights reserved. -- -- Redistribution and use in source and binary forms, with or without @@ -584,10 +584,17 @@ finalizeLisplib(db,libName) == lisplibDoRename db == lib := dbLibstream db output := dbOutputPath db => + codepath := filePath libCodeStream lib modpath := filePathString - makeFilePath(type <- $faslType,defaults <- filePath libCodeStream lib) + makeFilePath(type <- $faslType,defaults <- codepath) do renameFile(modpath,output) = 0 or copyFile(modpath,output) + -- Retain genetared Lisp code for inspection, if possible. + if retainFile? 'lisp then + lsp := filePathString codepath + dst := filePathString + makeFilePath(type <- $LispFileType,defaults <- output) + renameFile(lsp,dst) = 0 or copyFile(lsp,dst) removeFile libStationaryDirname lib output removeFile libDirname lib diff --git a/src/lisp/core.lisp.in b/src/lisp/core.lisp.in index cd1a6775..302a2c78 100644 --- a/src/lisp/core.lisp.in +++ b/src/lisp/core.lisp.in @@ -3,7 +3,7 @@ ;; Copyright (c) 1991-2002, The Numerical Algorithms Group Ltd. ;; All rights reserved. ;; -;; Copyright (C) 2007-2014, Gabriel Dos Reis. +;; Copyright (C) 2007-2015, Gabriel Dos Reis. ;; All rights reserved. ;; ;; Redistribution and use in source and binary forms, with or without @@ -182,6 +182,7 @@ "$targetPlatform" "$faslType" + "$LispFileType" "$delayedFFI" "$useLLVM" "$effectiveFaslType" -- cgit v1.2.3