;;; -*- Mode:LISP; Package:USER; Base:10; Readtable:CL -*- (defpackage simulator :use '(global) (:nicknames sim)) (defpackage k :use '() (:import-from lisp "OPEN" "RETURN" "OR" "AND" "IGNORE")) (defpackage primitives :use '() (:nicknames prims) (:auto-export-p t)) ; (:import-from global "IMPORT")) (defpackage hardware :use '() ; (:import-from primitives "DEFCONSTANT" "BYTE") (:nicknames hw) (:auto-export-p t)) (defpackage global-registers :use '(primitives) (:nicknames GR)) (defpackage vinculum :use '(prims) (:nicknames vinc) ) ;;; Auto export bites hard here. ; (:auto-export-p t) ; (:import-from global "NIL")) (defpackage primitive-arithmetic :use '(vinculum prims) (:nicknames parith)) (defpackage timers :use '(vinculum prims)) (defpackage map :use '(vinculum prims)) (defpackage gc-ram :use '(vinculum prims)) (defpackage datatype-ram :use '(vinculum prims k) (:nicknames dt-ram)) (defpackage paging-devices :use '(vinculum prims)) (defpackage virtual-memory :use '(vinculum prims) (:nicknames vmem)) (defpackage physical-cluster-data :use '(virtual-memory vinculum prims) (:nicknames pcd)) (defpackage quantum-map :use '(virtual-memory vinculum prims)) (defpackage memory-management :use '(vinculum prims) (:nicknames memlow)) (defpackage region-bits :use '(memory-management virtual-memory vinculum prims)) (defpackage map-fault :use '(virtual-memory physical-cluster-data map vinculum prims)) (defpackage gc-fault :use '(map vinculum prims)) (defpackage region-data :use '(memory-management vinculum prims)) (defpackage area-data :use '(region-data memory-management vinculum prims)) (defpackage memory-management-interface :use '(vinculum prims) (:nicknames mem)) (defpackage boot :use '(vinculum virtual-memory prims k)) (defpackage transporter-ram :use '(vinculum virtual-memory prims)) (defpackage cons :use '(memory-management-interface vinculum prims k) (:shadow "CONS")) (defpackage new-math :use '(vinculum prims k)) (defpackage array :use '(vinculum prims k)) (defpackage trap :use '(vinculum prims k)) ;;; This package has to have access to a ;;; running lisp to build an environment ;;; for booting. (defpackage sim-debug :use '(vinculum global)) ;(defpackage kbug2-common ; definitions for KBUG2 and K2 ; :use '(vinculum prims k)) ;;;; Sorta similar to the above. ;;;; Things depend upon kbug being common to both package environments, but ;;;; we can't USE both versions of KBUG2-common. ;(if (boundp 'si::*current-package-environment*) ; (if (eq si::*current-package-environment* ; (si::find-package-environment "DEBUGGER" #'identity ; #'(lambda () (error "Package-environment not set up.")))) ; (defpackage kbug ; :use '(lisp k lam kbug2-common) ; (:import-from "ZETALISP" "DEFSUBST")) ; (defpackage kbug ; :use '(lisp k lam) ; (:import-from "ZETALISP" "DEFSUBST"))) ; (defpackage kbug ; :use '(lisp k lam) ; (:import-from "ZETALISP" "DEFSUBST"))) (defmacro hairy-defpackage (package-name k-use-list lambda-use-list &rest stuff) `(eval-when (compile load) (if (or (not (boundp 'si::*current-package-environment*)) (eq si::*current-package-environment* (si::find-package-environment "COMPILER" #'identity #'(lambda () (error "Package-environment not set up."))))) (defpackage ,package-name :use ,k-use-list ,@stuff) (if (eq si::*current-package-environment* (si::find-package-environment "DEBUGGER" #'identity #'(lambda () (error "Package-environment not set up.")))) (defpackage ,package-name :use ,lambda-use-list ,@stuff) (ferror nil "Random package environment!"))))) (defpackage kbug :use '(;kbug2-common lisp k lam) (:import-from "ZETALISP" "DEFSUBST")) (defpackage lisp-internals :use '(prims k) (:nicknames li) (:import-from k "IGNORE" "SINGLE-FLOAT" "DOUBLE-FLOAT")) (defpackage nlisp :use '(prims)) (defpackage setf :use '(lisp)) (defpackage k-debug :use '(vinc prims k)) (defpackage nubus-stuff :use '(vinc prims k)) (defpackage cold :use '(k lisp)) (defpackage kbug-streams :use '(;kbug2-common vinculum prims k)) (defpackage k2 ; KBUG2/K2 stuff :use '(kbug-streams vinculum prims k ;kbug2-common )) (defpackage symbol :use '(cons vinculum prims)) (defpackage fasdump :use '(;kbug2-common lisp))