File: projects

package info (click to toggle)
axiom 20170501-4
  • links: PTS
  • area: main
  • in suites: buster, sid
  • size: 1,048,504 kB
  • sloc: lisp: 3,600; makefile: 505; cpp: 223; ansic: 138; sh: 96
file content (399 lines) | stat: -rw-r--r-- 11,260 bytes parent folder | download
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
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
This file contains notes on current development projects in Axiom

-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Axiom Literate Programming
-=-=-=-=-=-=-=-=-=-=-=-=-=-=

-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Axiom continuous integration
-=-=-=-=-=-=-=-=-=-=-=-=-=-=

  Currently we follow a model of publishing a "release"

  1) set up a continuous integration server
     - jenkins server setup
       * add git plugin
       * add shell plugin
       * build bronze project
       * The jenkins server now has private disk space.
       * Built individual virtualbox images for many distros.

     - rework makefiles for jenkins builds
     - rework src/input for jenkins builds

  2) move to a continuous integration model so that every change
     gets built, tested, and pushed immediately. 

-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Axiom Database reorganization
-=-=-=-=-=-=-=-=-=-=-=-=-=-=

  The databases were intially created on an ad-hoc, history-driven
  basis (e.g. the compress database was created when I needed to
  put Axiom on a 1Meg memory machine. It is now gone).

  1) reorganize the database layer use better technology

  2) merge the databases into a single database.

-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Axiom Burge recursive parser
-=-=-=-=-=-=-=-=-=-=-=-=-=-=

  The Burge zipper parser accepts input and "zips it up" into a
  recursive data structure.

  1) document this idea and the underlying data structures

   * Got a copy of Recursive Programming Techniques by Burge

-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Axiom Charybdis
-=-=-=-=-=-=-=-=-=-=-=-=-=-=

  recordandprint receives an sexpression form of the output,
  computes subexpression lengths, and prints. This is an
  implementation of the Charybdis paper.

  1) use the paper to document Charybdis in detail

    * Read the Charybdis paper

-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Axiom mkAtree
-=-=-=-=-=-=-=-=-=-=-=-=-=-=

  mkAtree receives the InputForm as an sexpression and constructs
  a tree object. 

  1) This tree object to be documented in detail

-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Axiom src/interp cleanup
-=-=-=-=-=-=-=-=-=-=-=-=-=-=

  src/interp still contains many lisp files. 

  1) these need to be rewritten from machine-generated lisp to
     human-written lisp and documented.

     * src/interp/regress.lisp merged and removed
     * Started rewrite into standard common lisp syntax (from machine syntax)
     * Removed |function| macro globally.

  2) remove src/interp

-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Axiom interpreter merge
-=-=-=-=-=-=-=-=-=-=-=-=-=-=

  src/interp contains functions called by the interpreter.

  1) tree-shake the interpreter to drag in the referenced
     functions.

    * Complete review of Volume 5, noting all of the missing references. 
    * Started adding missing references.

-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Axiom compiler merge
-=-=-=-=-=-=-=-=-=-=-=-=-=-=

  src/interp contains functions called by the compiler.

  2) tree-shake the compiler to drag in the referenced functions.

    * add a Signatures chapter to the Axiom Compiler volume
    * add signatures of all lisp functions

-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Axiom browser help
-=-=-=-=-=-=-=-=-=-=-=-=-=-=

  help files are generated for the algebra. )help calls an
  external command called SPADEDIT. This currently either types
  out the help file (straight text) or opens an editor of choice,
  defaulting to vi. 

  1) SPADEDIT needs to have the choice of displaying the help files
  in a browser window.

  2) SPADEDIT needs to be able to handle pdfs

-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Axiom help files
-=-=-=-=-=-=-=-=-=-=-=-=-=-=

  All of the categories, domains, and packages needs a help file.

  1) All of the exported functions need help files

-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Axiom display op examples
-=-=-=-=-=-=-=-=-=-=-=-=-=-=

  )d op somefunction will display examples which are taken from
  ++X lines in the export section of the constructor.

  1) All of the exported functions need ++X example lines.

  2) d op needs to display the ++ text for functions

-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Axiom makefile removal
-=-=-=-=-=-=-=-=-=-=-=-=-=-=

  The makefiles are organized as a tree with shell variables passed
  through the branches. 

  1) rewrite the makefiles into a single documented makefile

  2) rewrite the single makefile into lisp

-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Axiom CATS expansion
-=-=-=-=-=-=-=-=-=-=-=-=-=-=

  The computer algebra test suite (CATS) needs comprehensive
  test suites for more coverage. 

  1) find a suitable textbook with a lot of examples of
     input/output pairs (like Schaums). Write a CATS test suite.

     * Adding Wester test suite as published at
       http://math.unm.edu/~wester/cas_review.html

-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Axiom buglist
-=-=-=-=-=-=-=-=-=-=-=-=-=-=

  The bug list has some very old bugs on it and lacks entries for
  known bugs.

  1) pick a bug and fix it

-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Axiom algebra availability documentation
-=-=-=-=-=-=-=-=-=-=-=-=-=-=

  Currently the algebra is just a pile of constructors. There is
  no good organization by topic

  1) organize the algebra by topic using some external, known
     organization. possibly use maxima/maple/MMA organization
     so users can compare.

  2) highlight the areas where Axiom is weak or missing some
     functionality and suggest new algebra

-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Axiom algorithm documentation
-=-=-=-=-=-=-=-=-=-=-=-=-=-=

  The algebra uses some known, published algorithms and also 
  uses unknown, unpublished algorithms.

  1) find an area with published algorithms (e.g. symbolic
     summation) and find the corresponding Axiom algorithm.
     Document it and reference the published papers

  2) find an area where Axiom has old algorithms (e.g.
     symbolic summation), update the algorithms, document
     them, and reference the published papers

  3) update the algorithm bibliographic history page to 
     trace the history, current implementation, and future
     direction of Axiom's algorithms.

-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Axiom history
-=-=-=-=-=-=-=-=-=-=-=-=-=-=

  The history of Axiom as free software is documented in the
  mailing list archives. 

  1) Condense, organize, and write a book on the history of Axiom.

-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Axiom proofs
-=-=-=-=-=-=-=-=-=-=-=-=-=-=

  Axiom uses algorithms which have been proven in the literature
  (e.g. Euclid's algorithm) in theory. Axiom reduces these to
  practice. 

  1) prove Axiom's implementation of Euclid's algorithm

    a) Math-to-Spad proof (e.g. COQ)
    b) Spad-to-Lisp proof (e.g. ACL2)
    c) Lisp-to-C proof (e.g. LLVM work)
    d) C-to-machine proof (Conditional-Concurrent Assignments)

  2) merge ACL2 beneath the Axiom interpreter and make it 
     available at the command prompt.

-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Axiom category axioms
-=-=-=-=-=-=-=-=-=-=-=-=-=-=

  Add mathematical axioms to Axiom's category hierarchy.

  1) decorate each category with their axioms (e.g. monoid)

-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Axiom numerics
-=-=-=-=-=-=-=-=-=-=-=-=-=-=

  Since moving away from NAG, Axiom numerics are missing

  1) expand bookvol10.5 with working lisp code and expose
     the numeric routines in packages

  2) investigate and recreate NAG-equivalent code for the
     exposed NAG library routines

-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Axiom Browser Notebook
-=-=-=-=-=-=-=-=-=-=-=-=-=-=

  Axiom can currently serve as a backend for a browser.

  1) expand the existing notebook code bookvol11 to make
     the notebooks more functional

  2) expand/port the existing hyperdoc documentation to
     the new browser

-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Axiom SVG hierarchy
-=-=-=-=-=-=-=-=-=-=-=-=-=-=

  Currently the SVG graph of Axiom's constructors is static.

  1) modify the static structure so clicking on a node goes
     directly to the constructor algebra

  2) modify the static structure to use a better, more useful
     graph structure so it can be easily navigated in the browser

-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Axiom graphics
-=-=-=-=-=-=-=-=-=-=-=-=-=-=

  Axiom currently uses its own graphics package written in C.

  1) rewrite the graphics package to use HTML5 canvas

  2) integrate the graphics with the new browser front end

-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Axiom expression server
-=-=-=-=-=-=-=-=-=-=-=-=-=-=

  Axiom can listen on a port.

  1) modify Axiom to take a command-line input from a port,
     compute the result, and return it over the net.

-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Axiom algebra use documentation
-=-=-=-=-=-=-=-=-=-=-=-=-=-=

  Currently the algebra use documentation just shows how to call
  various functions but not solving actual problems.

  1) find a problem to solve, solve it, and document it in detail

  2) create "intro" videos for new users showing how to 
     use Axiom in different domains. Relate these to the
     algebra use documentation.

-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Axiom new developer support
-=-=-=-=-=-=-=-=-=-=-=-=-=-=

  Axiom has videos of talks and videos of how-to.

  1) expand the how-to videos for developers detailing how
     to understand, maintain, modify, and extend Axiom

    * develop user course syllabus
    * develop developer course syllabus
    * develop algebra course syllabus

  2) list and publish potential projects

-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Axiom src/input dispersal
-=-=-=-=-=-=-=-=-=-=-=-=-=-=

  The src/input files were created as initial attempts at testing
  and documentation. Thus there are two kinds of files in the
  same directory.

  1) reorganize the directory
    a) move complete examples into the user's guide or the algebra
       book
    b) merge constructor example files with the constructor help
    c) organize, cleanup, and expand test coverage files to support
       continuous integration

  2) remove src/input

-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Axiom youtube channel
-=-=-=-=-=-=-=-=-=-=-=-=-=-=

  Axiom has a new video library section

  1) create a youtube channel for Axiom videos and upload

-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Axiom books
-=-=-=-=-=-=-=-=-=-=-=-=-=-=

  * treeshake missing references

-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Axiom interpreter
-=-=-=-=-=-=-=-=-=-=-=-=-=-=

-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Axiom development ideas
-=-=-=-=-=-=-=-=-=-=-=-=-=-=

 * use the .idx files to construct a master index
   * figure out how to hyperlink to a pdf page
   * figure out how to do emacs point-search (tags file)

 * merge databases into defstruct form in-memory storage

-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Axiom website
-=-=-=-=-=-=-=-=-=-=-=-=-=-=

-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Axiom ports
-=-=-=-=-=-=-=-=-=-=-=-=-=-=

-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Axiom misc. updates
-=-=-=-=-=-=-=-=-=-=-=-=-=-=

-=-=-=-=-=-=-=-=-=-=-=-=-=-=
           DONE
-=-=-=-=-=-=-=-=-=-=-=-=-=-=

  * )quit now defaults to immediate quit
  * make a video showing low level debugging of lisp code
  * added a Signatures chapter to the Axiom Interpreter volume
  * added signatures of some lisp functions
  * clean up the defvar syntax
  * clean up failing test cases
  * clean up zips directory. Delete CCL, Meta, tla
  * Add chapters for frames, history, undo, exposure groups
  * Move videos link up
  * Fixed failing regression tests
  * Updated buglist
  * Create a docker image