-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathlittleb.lisp
75 lines (52 loc) · 2.86 KB
/
littleb.lisp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
;;;; This file is part of little b.
;;;; The MIT License
;;;; Copyright (c) 2003-2008 Aneil Mallavarapu
;;;; Permission is hereby granted, free of charge, to any person obtaining a copy
;;;; of this software and associated documentation files (the "Software"), to deal
;;;; in the Software without restriction, including without limitation the rights
;;;; to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
;;;; copies of the Software, and to permit persons to whom the Software is
;;;; furnished to do so, subject to the following conditions:
;;;; The above copyright notice and this permission notice shall be included in
;;;; all copies or substantial portions of the Software.
;;;; THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
;;;; IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
;;;; FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
;;;; AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
;;;; LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
;;;; OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
;;;; THE SOFTWARE.
;;; File: littleb.lisp
;;; Description: Loads the little b language.
;;; $Id: littleb.lisp,v 1.11 2008/09/06 00:23:08 amallavarapu Exp $
;;; $Name: $
#-:asdf+ (load (merge-pathnames "asdf/asdf+.lisp" *load-truename*))
#+:littleb ; if little b is loaded, reset the readtable and print-dispatcher
(setf *readtable* (with-standard-io-syntax *readtable*)
*print-pprint-dispatch* #+:clisp '(*print-pprint-dispatch*)
#-:clisp (with-standard-io-syntax *print-pprint-dispatch*))
(pushnew (make-pathname :name nil :type nil :defaults *load-truename*)
asdf:*central-registry* :test #'equalp)
(defun delete-littleb-binaries ()
(ignore-errors (asdf:delete-binaries :b1))
(ignore-errors (asdf:delete-binaries :graph-tools))
(ignore-errors (asdf:delete-binaries :lisa)))
#+:clisp (setf custom:*suppress-check-redefinition* t)
#+:clisp (ext:without-package-lock () (asdf:load-system :b1))
#-:clisp (asdf:load-system :b1)
(let ((init-file (b:get-b-path :root "init.lisp")))
(unless (probe-file init-file)
(mutils:copy-file (b:get-b-path :root "support/init.lisp") init-file)))
(b:init)
(when (b:library-needs-compile-p 'b)
(b:compile-library 'b)
(b:init))
#+:lw-editor
(mutils:whenit (ignore-errors (capi:find-interface 'lispworks-tools:listener))
(lispworks-tools::listener-execute-command mutils:it "(in-package :b-user)"))
#+:allegro (top-level:do-command :package "B-USER")
#+:lispworks (b::enable-b-key-bindings)
(when (find-package "SWANK")
(ignore-errors (eval (read-from-string "(swank:listener-eval \"(in-package :b-user)\")"))))
(unless (eq *package* (find-package :b-user))
(format t "~%Change to package B-USER: (IN-PACKAGE :B-USER)~%"))