source: trunk/abcl/abcl.asd @ 13309

Last change on this file since 13309 was 13309, checked in by Mark Evenson, 10 years ago

Implementation of hashtables with weak keys and/or values.

MAKE-HASH-TABLE now has an optional :WEAKNESS argument that can take
the values :KEY, :VALUE, :KEY-AND-VALUE, or :KEY-OR-VALUE. :KEY means
that the key of an entry must be live to guarantee that the entry is
preserved. VALUE means that the value of an entry must be live to
guarantee that the entry is preserved. :KEY-AND-VALUE means that both
the key and the value must be live to guarantee that the entry is
preserved. :KEY-OR-VALUE means that either the key or the value must
be live to guarantee that the entry is preserved.

The tests simply excercise the various types of weak hash tables
enough that a GC phase should show that the table indeed does decrease
in size.

Changed the defition of functions in HashTableFunctions? to match
current docstring/pf_XXX() naming conventions.

This implementation is only lightly tested in single-threaded use, and
untested in multiple threading scenarios.

Addresses ticket:140.

  • Property svn:keywords set to Id
File size: 4.6 KB
Line 
1;;; -*- Mode: LISP; Syntax: COMMON-LISP -*-
2;;; $Id: abcl.asd 13309 2011-06-07 15:38:11Z mevenson $
3
4(require 'asdf)
5(in-package :asdf)
6
7;;; Wrapper for all ABCL ASDF definitions.
8(defsystem :abcl :version "0.6.0")
9
10;;;  Run via (asdf:operate 'asdf:test-op :abcl :force t)
11(defmethod perform ((o test-op) (c (eql (find-system :abcl))))
12  (load-system (find-system :abcl-test-lisp))
13  (operate 'test-op :abcl-test-lisp))
14
15;;; Test ABCL with the Lisp unit tests collected in "test/lisp/abcl"
16;;;
17;;; We guard with #+abcl for tests that other Lisps cannot load.  This
18;;; could be possibly be done at finer granularity in the files
19;;; themselves.
20(defsystem :abcl-test-lisp :version "1.2" :components
21     ((:module abcl-rt
22                     :pathname "test/lisp/abcl/" :serial t :components
23         ((:file "rt-package")
24                      (:file "rt")
25                      (:file "test-utilities")))
26      (:module package  :depends-on (abcl-rt)
27         :pathname "test/lisp/abcl/" :components
28         ((:file "package")))
29            (:module test :depends-on (package)
30         :pathname "test/lisp/abcl/" :components
31                     ((:file "utilities")
32                      (:file "compiler-tests")
33                      (:file "condition-tests")
34                      #+abcl
35                      (:file "class-file")
36                      #+abcl
37                      (:file "metaclass")
38                      #+abcl
39                      (:file "mop-tests-setup")
40                      #+abcl
41                      (:file "mop-tests" :depends-on
42                             ("mop-tests-setup"))
43                      (:file "file-system-tests")
44                      #+abcl
45                      (:file "jar-pathname" :depends-on
46                             ("utilities" "pathname-tests" "file-system-tests"))
47                      #+abcl
48                      (:file "url-pathname")
49                      (:file "math-tests" :depends-on
50                             ("compiler-tests"))
51                      (:file "misc-tests")
52                      (:file "latin1-tests")
53                      #+abcl
54                      (:file "bugs" :depends-on
55                             ("file-system-tests"))
56                      (:file "wild-pathnames" :depends-on
57                             ("file-system-tests"))
58                      #+abcl
59                      (:file "weak-hash-tables")
60                      #+abcl
61                      (:file "pathname-tests" :depends-on
62                             ("utilities"))))))
63
64(defmethod perform ((o test-op) (c (eql (find-system 'abcl-test-lisp))))
65   "Invoke tests with (asdf:oos 'asdf:test-op :abcl-test-lisp)."
66   (funcall (intern (symbol-name 'run) :abcl.test.lisp)))
67
68;;; Test ABCL with the interpreted ANSI tests
69(defsystem :ansi-interpreted :version "1.1"
70           :components
71           ((:module ansi-tests :pathname "test/lisp/ansi/" :components
72         ((:file "package")
73                (:file "parse-ansi-errors" :depends-on ("package"))))))
74(defmethod perform :before ((o test-op) (c (eql (find-system :ansi-interpreted))))
75  (load-system  :ansi-interpreted))
76(defmethod perform ((o test-op) (c (eql (find-system :ansi-interpreted))))
77  (funcall (intern (symbol-name 'run) :abcl.test.ansi)
78     :compile-tests nil))
79
80;;; Test ABCL with the compiled ANSI tests
81(defsystem :ansi-compiled :version "1.1"
82           :components
83           ((:module ansi-tests :pathname "test/lisp/ansi/" :components
84         ((:file "package")
85                (:file "parse-ansi-errors" :depends-on ("package"))))))
86(defmethod perform :before ((o test-op) (c (eql (find-system :ansi-compiled))))
87  (load-system :ansi-compiled))
88(defmethod perform ((o test-op) (c (eql (find-system :ansi-compiled))))
89  (funcall (intern (symbol-name 'run) :abcl.test.ansi)
90     :compile-tests t))
91
92;;; Test ABCL with CL-BENCH
93(defsystem :cl-bench :components
94           ((:module cl-bench-package :pathname "../cl-bench/"
95                    :components ((:file "defpackage")))
96            (:module cl-bench-wrapper :pathname "test/lisp/cl-bench/"
97                     :depends-on (cl-bench-package) :components
98                     ((:file "wrapper")))))
99(defmethod perform :before ((o test-op) (c (eql (find-system :cl-bench))))
100  (load-system :cl-bench))
101(defmethod perform ((o test-op) (c (eql (find-system :cl-bench))))
102  (funcall (intern (symbol-name 'run) :abcl.test.cl-bench)))
103 
104;;; Build ABCL from a Lisp.
105;;; aka the "Lisp-hosted build system"
106;;; Works for: abcl, sbcl, clisp, cmu, lispworks, allegro, openmcl
107(defsystem :build-abcl :components
108     ((:module build :pathname ""  :components
109         ((:file "build-abcl")
110          (:file "customizations" :depends-on ("build-abcl"))))))
111
112
113
Note: See TracBrowser for help on using the repository browser.