source: branches/0.20.x/abcl/src/org/armedbear/lisp/load.lisp

Last change on this file was 11856, checked in by astalla, 16 years ago
  • loading:

added a new primitive sys::load-returning-last-result which behaves like
load but returns the last value produced instead of T

  • JSR-223:
    • used the new load-returning-last-result to evaluate both interpreted and compiled code for consistency (with a caveat, see the wiki page on JSR-223)
    • bindings established through ScriptContext? are now declared special
    • compilation using the runtime compiler has been removed due to inconsistencies with evaluation and file-based compilation
    • updated the example as suggested on the ML to show both modes of getting the AbclScriptEngine?


  • Property svn:eol-style set to native
  • Property svn:keywords set to Id
File size: 2.3 KB
Line 
1;;; load.lisp
2;;;
3;;; Copyright (C) 2004-2005 Peter Graves
4;;; $Id: load.lisp 11856 2009-05-11 21:12:17Z astalla $
5;;;
6;;; This program is free software; you can redistribute it and/or
7;;; modify it under the terms of the GNU General Public License
8;;; as published by the Free Software Foundation; either version 2
9;;; of the License, or (at your option) any later version.
10;;;
11;;; This program is distributed in the hope that it will be useful,
12;;; but WITHOUT ANY WARRANTY; without even the implied warranty of
13;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14;;; GNU General Public License for more details.
15;;;
16;;; You should have received a copy of the GNU General Public License
17;;; along with this program; if not, write to the Free Software
18;;; Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
19;;;
20;;; As a special exception, the copyright holders of this library give you
21;;; permission to link this library with independent modules to produce an
22;;; executable, regardless of the license terms of these independent
23;;; modules, and to copy and distribute the resulting executable under
24;;; terms of your choice, provided that you also meet, for each linked
25;;; independent module, the terms and conditions of the license of that
26;;; module.  An independent module is a module which is not derived from
27;;; or based on this library.  If you modify this library, you may extend
28;;; this exception to your version of the library, but you are not
29;;; obligated to do so.  If you do not wish to do so, delete this
30;;; exception statement from your version.
31
32(in-package #:system)
33
34(defun load (filespec
35             &key
36             (verbose *load-verbose*)
37             (print *load-print*)
38             (if-does-not-exist t)
39             (external-format :default))
40  (declare (ignore external-format)) ; FIXME
41  (%load (if (streamp filespec)
42             filespec
43             (merge-pathnames (pathname filespec)))
44         verbose print if-does-not-exist))
45
46(defun load-returning-last-result (filespec
47             &key
48             (verbose *load-verbose*)
49             (print *load-print*)
50             (if-does-not-exist t)
51             (external-format :default))
52  (declare (ignore external-format)) ; FIXME
53  (%load-returning-last-result (if (streamp filespec)
54             filespec
55             (merge-pathnames (pathname filespec)))
56         verbose print if-does-not-exist))
Note: See TracBrowser for help on using the repository browser.