forked from bvds/andes
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathandes.asd
131 lines (120 loc) · 3.91 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
119
120
121
122
123
124
125
126
127
128
129
130
131
;;;; -*- 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 (cl-source-file) ())
(defmethod perform ((o compile-op) (s no-compile-file)) nil)
(defmethod output-files ((o compile-op) (s no-compile-file))
(list (component-pathname s)))
;;;
;;; Add directory of problem files to
;;;
(defsystem :andes
:name "Andes"
:description "Andes physics tutor system"
:depends-on (cl-json) ;KB/principles.cl
:components (
;;; this should eventually be removed
(:file "andes-path")
(:module "Base"
;;; :description "Common Utilities"
:components ((:file "Htime")
(:file "Unification")
(:file "auxiliary")
(:file "hash")
(:file "match")
(:file "Utility")))
(:module "Algebra"
:components ((:file "solver")))
(:module "HelpStructs"
:depends-on ("Base")
:components ((:file "PsmGraph")
(:file "StudentEntry")
(:file "SystemEntry"
:depends-on ("PsmGraph"))
))
(:module "Knowledge"
:depends-on ("Base" "HelpStructs" "Algebra")
:components ((:file "eqn")
(:file "Nogood")
;; depends on HelpStructs
(:file "Problem")
(:file "Ontology")
;; Natural language
(:file "nlg"
;; also Help/symbols.cl
:depends-on ("Problem" "Ontology"))
(:file "all-quantities"
:depends-on ("nlg" "Problem"))
(:file "Operators"
:depends-on ("nlg"))
(:file "qvar"
:depends-on ("Problem"))
(:file "BubbleGraph"
;; also depends on HelpStructs
:depends-on ("qvar" "eqn" "Problem"))
(:file "ErrorClass"
:depends-on ("Problem"))
(:file "Solution"
:depends-on ("Problem"))))
(:module "KB"
;;; :description "Knowledge Base"
;; Also depends on nlg
: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 "principles")
(:file "quantities")
(: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")