chiark
/
gitweb
/
~mdw
/
sod
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
src/c-types-impl.lisp: Remember `signed' as a C-level synonym for `int'.
[sod]
/
src
/
module-proto.lisp
diff --git
a/src/module-proto.lisp
b/src/module-proto.lisp
index 4152329de841c6f22ca37f5bbabf4f473d538b0c..7e42a5b5c1c171528476411209142f503e9b1a89 100644
(file)
--- a/
src/module-proto.lisp
+++ b/
src/module-proto.lisp
@@
-7,7
+7,7
@@
;;;----- Licensing notice ---------------------------------------------------
;;;
;;;----- Licensing notice ---------------------------------------------------
;;;
-;;; This file is part of the Sensble Object Design, an object system for C.
+;;; This file is part of the Sens
i
ble Object Design, an object system for C.
;;;
;;; SOD is free software; you can redistribute it and/or modify
;;; it under the terms of the GNU General Public License as published by
;;;
;;; SOD is free software; you can redistribute it and/or modify
;;; it under the terms of the GNU General Public License as published by
@@
-84,7
+84,10
@@
(defmacro define-clear-the-decks (name &body body)
When `clear-the-decks' is called, the BODY will be evaluated as a progn.
The relative order of `clear-the-decks' operations is unspecified."
When `clear-the-decks' is called, the BODY will be evaluated as a progn.
The relative order of `clear-the-decks' operations is unspecified."
- `(add-clear-the-decks-function ',name (lambda () ,@body)))
+ (multiple-value-bind (docs decls body) (parse-body body)
+ `(add-clear-the-decks-function ',name (lambda ()
+ ,@docs ,@decls
+ (block ,name ,@body)))))
(export 'clear-the-decks)
(defun clear-the-decks ()
(export 'clear-the-decks)
(defun clear-the-decks ()
@@
-101,7
+104,7
@@
(defparameter *module* nil
During module construction, this is always an instance of `module'. Once
we've finished constructing it, we'll call `change-class' to turn it into
During module construction, this is always an instance of `module'. Once
we've finished constructing it, we'll call `change-class' to turn it into
- an instance of whatever type is requested in the module's `:
lisp
-class'
+ an instance of whatever type is requested in the module's `:
module
-class'
property.")
(export 'module-import)
property.")
(export 'module-import)
@@
-135,9
+138,9
@@
(defgeneric finalize-module (module)
This isn't necessary if you made the module by hand. If you've
constructed it incrementally, then it might be a good plan. In
particular, it will change the class (using `change-class') of the module
This isn't necessary if you made the module by hand. If you've
constructed it incrementally, then it might be a good plan. In
particular, it will change the class (using `change-class') of the module
- according to the class choice set in the module's `:
lisp-class' property.
- This has the side effects of calling `shared-initialize', setting the
- module's state to `t', and checking for unrecognized
+ according to the class choice set in the module's `:
module-class'
+ property. This has the side effects of calling `shared-initialize',
+
setting the
module's state to `t', and checking for unrecognized
properties. (Therefore subclasses should add a method to
`shared-initialize' taking care of looking at interesting properties, just
to make sure they're ticked off.)"))
properties. (Therefore subclasses should add a method to
`shared-initialize' taking care of looking at interesting properties, just
to make sure they're ticked off.)"))
@@
-145,10
+148,13
@@
(defgeneric finalize-module (module)
;;;--------------------------------------------------------------------------
;;; Module objects.
;;;--------------------------------------------------------------------------
;;; Module objects.
-(export '(module module-name module-pset module-items module-dependencies))
+(export '(module module-name module-pset module-errors
+ module-items module-dependencies))
(defclass module ()
((name :initarg :name :type pathname :reader module-name)
(defclass module ()
((name :initarg :name :type pathname :reader module-name)
- (pset :initarg :pset :initform (make-pset) :type pset :reader module-pset)
+ (%pset :initarg :pset :initform (make-pset)
+ :type pset :reader module-pset)
+ (errors :initarg :errors :initform 0 :type fixnum :reader module-errors)
(items :initarg :items :initform nil :type list :accessor module-items)
(dependencies :initarg :dependencies :initform nil
:type list :accessor module-dependencies)
(items :initarg :items :initform nil :type list :accessor module-items)
(dependencies :initarg :dependencies :initform nil
:type list :accessor module-dependencies)