/
andes.asd
118 lines (109 loc) · 3.57 KB
/
andes.asd
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
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
;;;; -*- Lisp -*-
;;;; above sets emacs major mode to Lisp
;;;;
;;;; Use this to compile:
;;;; (asdf:operate 'asdf:load-op 'andes)
;;;; or use command (rkb) if it is defined.
;;; To turn on solver logging: :cd ~/Andes2/
(in-package :cl-user)
(defpackage :andes-asd (:use :cl :asdf))
(in-package :andes-asd)
;;;; Load the source file, without compiling
;;;; asdf:load-op reloads all files, whether they have been
;;;; changed or not.
(defclass no-compile-file (asdf:cl-source-file) ())
(defmethod asdf:perform ((o asdf:compile-op) (s no-compile-file))
nil)
(defmethod asdf:output-files ((o asdf:compile-op) (s no-compile-file))
(list (component-pathname s)))
;;;
;;; Add directory of problem files to
;;;
(defsystem :andes
:name "Andes"
:depends-on (cffi-uffi-compat)
:description "Andes physics tutor system"
:components (
;;; this should eventually be removed
(:file "andes-path")
(:module "Base"
;;; :description "Common Utilities"
:components ((:file "Htime")
(:file "Unification")
(:file "auxiliary")
(:file "hash")
(:file "Utility")))
(:module "Algebra"
;; this depends on uffi
:components ((:file "solver")))
(:module "HelpStructs"
:depends-on ("Base")
:components ((:file "PsmGraph")
(:file "SystemEntry"
:depends-on ("PsmGraph"))
))
(:module "Knowledge"
:depends-on ("Base" "HelpStructs" "Algebra")
:components ((:file "eqn")
(:file "Nogood")
(:file "Operators")
(:file "qvar")
(:file "BubbleGraph"
;; also depends on HelpStructs
:depends-on ("qvar" "eqn"))
(:file "ErrorClass")
;; NLG not defined
(:no-compile-file "Ontology")
(:file "Problem") ;depends on HelpStructs
(:file "Solution")))
(:module "KB"
;;; :description "Knowledge Base"
:depends-on ("Knowledge" "Base")
:default-component-class no-compile-file
:serial t ;real dependancies would be better
:components (
;; treat these as normal lisp files
(:cl-source-file "Physics-Funcs")
(:cl-source-file "makeprob")
;; must be before any ontology
(:file "reset-KB")
(:file "features")
(:file "principles")
(:file "constants")
;; lots of outside dependencies:
(:cl-source-file "errors")
;; TELL and NLG not defined
(:file "Ontology" )
(:file "circuit-ontology")
;; AXES-DRAWNP not defined
(:file "problem-solving")
(:file "kinematics")
(:file "dynamics")
(:file "vectors")
(:file "NewtonsNogoods")
(:file "fluids")
(:file "waves")
(:file "work-energy")
(:file "optics")
(:file "circuits")
(:file "momentum-impulse")
(:file "electromagnetism")
))
(:module "SGG"
;;; :description "Solution Graph Generator"
:depends-on ("Base" "Knowledge" "HelpStructs" "Algebra")
:components (
(:file "Qsolver") ;depends on HelpStructs
(:file "Exec"
:depends-on ("Qsolver"))
(:file "Macros"
:depends-on ("Qsolver"))
(:file "SolutionPoint")
(:file "GraphGenerator")
(:file "ProblemSolver")
(:file "print-solutions")
(:file "SolutionSets")))
))
;;; make lisp source file extension "cl" See asdf manual
(defmethod source-file-type ((c cl-source-file) (s (eql (find-system :andes))))
"cl")