Overview
Context
Changes
Modified Makefile
from [910417fab5]
to [2fe35ad38f].
︙ | | | ︙ | |
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
|
# module source files
MSRCFILES = dbmod.scm rmtmod.scm commonmod.scm apimod.scm \
archivemod.scm clientmod.scm envmod.scm ezstepsmod.scm itemsmod.scm \
keysmod.scm launchmod.scm odsmod.scm processmod.scm runconfigmod.scm \
runsmod.scm servermod.scm subrunmod.scm tasksmod.scm testsmod.scm \
pkts.scm mtargs.scm mtconfigf.scm ducttape-lib.scm ulex.scm \
stml2.scm cookie.scm megamod.scm
GMSRCFILES = dcommonmod.scm vgmod.scm treemod.scm
# Eggs to install (straightforward ones)
EGGS=matchable readline apropos base64 regex-literals format \
regex-case test coops trace csv dot-locking posix-utils posix-extras \
|
|
|
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
|
# module source files
MSRCFILES = dbmod.scm rmtmod.scm commonmod.scm apimod.scm \
archivemod.scm clientmod.scm envmod.scm ezstepsmod.scm itemsmod.scm \
keysmod.scm launchmod.scm odsmod.scm processmod.scm runconfigmod.scm \
runsmod.scm servermod.scm subrunmod.scm tasksmod.scm testsmod.scm \
pkts.scm mtargs.scm mtconfigf.scm ducttape-lib.scm ulex.scm \
stml2.scm cookie.scm megamod.scm mutils.scm
GMSRCFILES = dcommonmod.scm vgmod.scm treemod.scm
# Eggs to install (straightforward ones)
EGGS=matchable readline apropos base64 regex-literals format \
regex-case test coops trace csv dot-locking posix-utils posix-extras \
|
︙ | | | ︙ | |
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
|
%.import.o : %.import.scm
csc -unit $*.import -c $*.import.scm -o $*.import.o
# mofiles/ducttape-lib.o : ducttape-lib.scm ducttape/*scm
# csc -I ducttape -J -c ducttape-lib.scm -o mofiles/ducttape-lib.o
mofiles/%.o %.import.scm : %.scm
mkdir -p mofiles
csc $(CSCOPTS) -I $* -J -c $< -o mofiles/$*.o
touch $*.import.scm # ensure it is touched after the .o is made
# a.import.o : a.import.scm a.o
# csc -unit a.import -c a.import.scm -o $*.o
ADTLSCR=mt_laststep mt_runstep mt_ezstep
|
|
|
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
|
%.import.o : %.import.scm
csc -unit $*.import -c $*.import.scm -o $*.import.o
# mofiles/ducttape-lib.o : ducttape-lib.scm ducttape/*scm
# csc -I ducttape -J -c ducttape-lib.scm -o mofiles/ducttape-lib.o
mofiles/%.o %.import.scm : %.scm
@[ -e mofiles ] && mkdir -p mofiles
csc $(CSCOPTS) -I $* -J -c $< -o mofiles/$*.o
touch $*.import.scm # ensure it is touched after the .o is made
# a.import.o : a.import.scm a.o
# csc -unit a.import -c a.import.scm -o $*.o
ADTLSCR=mt_laststep mt_runstep mt_ezstep
|
︙ | | | ︙ | |
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
|
PNGFILES = $(shell cd docs/manual;ls *png)
all : $(PREFIX)/bin/.$(ARCHSTR) mtest dboard mtut tcmt
# why were the files mofiles/ftail.o mofiles/rmtmod.o mofiles/commonmod.o listed on this target when MOFILES are there?
# Removed non module .o files (i.e. $(OFILES)
mtest: readline-fix.scm megatest.o $(MOFILES) $(MOIMPFILES) mofiles/ducttape-lib.o
csc megatest.o $(CSCOPTS) $(MOFILES) $(MOIMPFILES) -o mtest
showmtesthash:
@echo $(MTESTHASH)
# removing $(GOFILES)
dboard : dashboard.o $(MOFILES) $(MOIMPFILES) $(GMOFILES) $(GMOIMPFILES)
csc dashboard.o $(CSCOPTS) $(MOFILES) $(MOIMPFILES) $(GMOFILES) $(GMOIMPFILES) -o dboard
ndboard : newdashboard.scm $(GOFILES)
csc $(CSCOPTS) $(GOFILES) newdashboard.scm -o ndboard
mtut: $(MOFILES) megatest-fossil-hash.scm mtut.scm
csc $(CSCOPTS) $(MOFILES) mtut.scm -o mtut
|
|
|
|
|
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
|
PNGFILES = $(shell cd docs/manual;ls *png)
all : $(PREFIX)/bin/.$(ARCHSTR) mtest dboard mtut tcmt
# why were the files mofiles/ftail.o mofiles/rmtmod.o mofiles/commonmod.o listed on this target when MOFILES are there?
# Removed non module .o files (i.e. $(OFILES)
mtest: readline-fix.scm megatest.o $(MOFILES) $(MOIMPFILES)
csc megatest.scm $(CSCOPTS) $(MOFILES) $(MOIMPFILES) -o mtest
showmtesthash:
@echo $(MTESTHASH)
# removing $(GOFILES)
dboard : dashboard.o $(MOFILES) $(MOIMPFILES) $(GMOFILES) $(GMOIMPFILES)
csc dashboard.scm $(CSCOPTS) $(MOFILES) $(MOIMPFILES) $(GMOFILES) $(GMOIMPFILES) -o dboard
ndboard : newdashboard.scm $(GOFILES)
csc $(CSCOPTS) $(GOFILES) newdashboard.scm -o ndboard
mtut: $(MOFILES) megatest-fossil-hash.scm mtut.scm
csc $(CSCOPTS) $(MOFILES) mtut.scm -o mtut
|
︙ | | | ︙ | |
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
|
mofiles/pkts.o : pkts/pkts.scm
mofiles/mtargs.o : mtargs/mtargs.scm
mofiles/mtconfigf.o : mtconfigf/mtconfigf.scm
mofiles/ulex.o : ulex/ulex.scm
# for the modularized stuff
mofiles/commonmod.o : megatest-fossil-hash.scm mofiles/stml2.o mofiles/mtargs.o
mofiles/dbmod.o : mofiles/commonmod.o mofiles/keysmod.o \
mofiles/tasksmod.o mofiles/odsmod.o
mofiles/commonmod.o : mofiles/processmod.o
mofiles/rmtmod.o : mofiles/dbmod.o mofiles/commonmod.o \
mofiles/apimod.o mofiles/ulex.o
mofiles/apimod.o : mofiles/dbmod.o
mofiles/runsmod.o : mofiles/testsmod.o
|
|
|
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
|
mofiles/pkts.o : pkts/pkts.scm
mofiles/mtargs.o : mtargs/mtargs.scm
mofiles/mtconfigf.o : mtconfigf/mtconfigf.scm
mofiles/ulex.o : ulex/ulex.scm
# for the modularized stuff
mofiles/commonmod.o : megatest-fossil-hash.scm mofiles/stml2.o mofiles/mtargs.o mofiles/pkts.o mofiles/mtconfigf.o
mofiles/dbmod.o : mofiles/commonmod.o mofiles/keysmod.o \
mofiles/tasksmod.o mofiles/odsmod.o
mofiles/commonmod.o : mofiles/processmod.o
mofiles/rmtmod.o : mofiles/dbmod.o mofiles/commonmod.o \
mofiles/apimod.o mofiles/ulex.o
mofiles/apimod.o : mofiles/dbmod.o
mofiles/runsmod.o : mofiles/testsmod.o
|
︙ | | | ︙ | |
Modified common-inc.scm
from [7c8ac9f1a4]
to [85d02974e5].
︙ | | | ︙ | |
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
|
#t)))) ;; default to requiring server
(if force-result
(begin
(debug:print-info 0 *default-log-port* "forcing use of server, force setting is \"" force-setting "\".")
#t)
#f)))
;; hash-table tree to html list tree
;;
;; tipfunc takes two parameters: y the tip value and path the path to that point
;;
(define (common:htree->html ht path tipfunc)
(let ((datlist (sort (hash-table->alist ht)
(lambda (a b)
(string< (car a)(car b))))))
(if (null? datlist)
(tipfunc #f path) ;; really shouldn't get here
(s:ul
(map (lambda (x)
(let* ((levelname (car x))
(y (cdr x))
(newpath (append path (list levelname)))
(leaf (or (not (hash-table? y))
(null? (hash-table-keys y)))))
(if leaf
(s:li (tipfunc y newpath))
(s:li
(list
levelname
(common:htree->html y newpath tipfunc))))))
datlist)))))
;; hash-table tree to alist tree
;;
(define (common:htree->atree ht)
(map (lambda (x)
(cons (car x)
(let ((y (cdr x)))
|
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
|
<
|
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
|
#t)))) ;; default to requiring server
(if force-result
(begin
(debug:print-info 0 *default-log-port* "forcing use of server, force setting is \"" force-setting "\".")
#t)
#f)))
;; moving common:htree->html to testsmod.scm to minimize deps on stml2
;; hash-table tree to alist tree
;;
(define (common:htree->atree ht)
(map (lambda (x)
(cons (car x)
(let ((y (cdr x)))
|
︙ | | | ︙ | |
Modified commonmod.scm
from [05480c1694]
to [c1bbc9417a].
︙ | | | ︙ | |
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
|
;; You should have received a copy of the GNU General Public License
;; along with Megatest. If not, see <http://www.gnu.org/licenses/>.
;;======================================================================
(declare (unit commonmod))
(declare (uses mtargs))
(declare (uses stml2))
(declare (uses mtargs))
(module commonmod
*
(import scheme chicken data-structures extras)
(import (prefix sqlite3 sqlite3:) posix typed-records srfi-18
srfi-1 files format srfi-13 matchable
srfi-69 ports
regex-case regex hostinfo srfi-4
pkts (prefix dbi dbi:)
stack
md5
message-digest
(prefix mtconfigf configf:)
stml2
;; (prefix margs args:)
z3 (prefix base64 base64:)
(prefix mtargs args:))
(include "common_records.scm")
(include "megatest-fossil-hash.scm")
(include "megatest-version.scm")
|
|
|
|
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
|
;; You should have received a copy of the GNU General Public License
;; along with Megatest. If not, see <http://www.gnu.org/licenses/>.
;;======================================================================
(declare (unit commonmod))
(declare (uses mtargs))
;; (declare (uses stml2))
(declare (uses mtargs))
(module commonmod
*
(import scheme chicken data-structures extras)
(import (prefix sqlite3 sqlite3:) posix typed-records srfi-18
srfi-1 files format srfi-13 matchable
srfi-69 ports
regex-case regex hostinfo srfi-4
pkts (prefix dbi dbi:)
stack
md5
message-digest
(prefix mtconfigf configf:)
;; stml2
;; (prefix margs args:)
z3 (prefix base64 base64:)
(prefix mtargs args:))
(include "common_records.scm")
(include "megatest-fossil-hash.scm")
(include "megatest-version.scm")
|
︙ | | | ︙ | |
Modified launch-inc.scm
from [1f775f156c]
to [630f27d412].
︙ | | | ︙ | |
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
|
(lambda (section)
(for-each
(lambda (varval)
(let ((var (car varval))
(val (cadr varval)))
(if (and (string? var)(string? val))
(begin
(safe-setenv var (config:eval-string-in-environment val))) ;; val)
(debug:print-error 0 *default-log-port* "bad variable spec, " var "=" val))))
(configf:get-section rconfig section)))
(list "default" target)))
;;(bb-check-path msg: "launch:execute post block 1")
;; NFS might not have propagated the directory meta data to the run host - give it time if needed
(let loop ((count 0))
|
|
|
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
|
(lambda (section)
(for-each
(lambda (varval)
(let ((var (car varval))
(val (cadr varval)))
(if (and (string? var)(string? val))
(begin
(safe-setenv var (configf:eval-string-in-environment val))) ;; val)
(debug:print-error 0 *default-log-port* "bad variable spec, " var "=" val))))
(configf:get-section rconfig section)))
(list "default" target)))
;;(bb-check-path msg: "launch:execute post block 1")
;; NFS might not have propagated the directory meta data to the run host - give it time if needed
(let loop ((count 0))
|
︙ | | | ︙ | |
Modified megamod.scm
from [ae4bd6c56b]
to [08f049ff11].
︙ | | | ︙ | |
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
|
uri-common
z3
)
(import (prefix mtconfigf configf:))
(define read-config configf:read-config)
(define find-and-read-config configf:find-and-read-config)
(define config:eval-string-in-environment configf:eval-string-in-environment)
(import spiffy)
(import stml2)
;; (import apimod)
;; (import archivemod)
;; (import clientmod)
|
|
|
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
|
uri-common
z3
)
(import (prefix mtconfigf configf:))
(define read-config configf:read-config)
(define find-and-read-config configf:find-and-read-config)
;; (define config:eval-string-in-environment configf:eval-string-in-environment)
(import spiffy)
(import stml2)
;; (import apimod)
;; (import archivemod)
;; (import clientmod)
|
︙ | | | ︙ | |
Modified mtut.scm
from [ba9363667c]
to [047f24c580].
︙ | | | ︙ | |
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
|
;; fake out readline usage of toplevel-command
(define (toplevel-command . a) #f)
(use srfi-1 posix srfi-69 readline ;; regex regex-case srfi-69 apropos json http-client directory-utils rpc typed-records;; (srfi 18) extras)
srfi-19 srfi-18 extras format pkts regex regex-case
(prefix dbi dbi:)
nanomsg (prefix mtconfigf configf:))
;; (declare (uses common))
;; (declare (uses megatest-version))
;; (declare (uses margs))
;; (declare (uses configfmod))
(declare (uses commonmod))
(declare (uses megamod))
(import commonmod)
;; (import configfmod)
(import megamod)
;; (declare (uses rmt))
(use ducttape-lib)
;; (include "megatest-fossil-hash.scm") ;; comes from megamod
;; (require-library stml)
(use stml2)
;; stuff for the mapper and checker functions
;;
(define *target-mappers* (make-hash-table))
(define *runname-mappers* (make-hash-table))
(define *area-checkers* (make-hash-table))
(define (mtut:stml->string in-stml)
|
|
>
>
>
>
|
>
>
<
>
|
<
<
<
|
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
|
;; fake out readline usage of toplevel-command
(define (toplevel-command . a) #f)
(use srfi-1 posix srfi-69 readline ;; regex regex-case srfi-69 apropos json http-client directory-utils rpc typed-records;; (srfi 18) extras)
srfi-19 srfi-18 extras format pkts regex regex-case
(prefix dbi dbi:)
nanomsg)
;; (declare (uses common))
;; (declare (uses megatest-version))
;; (declare (uses margs))
(declare (uses mtconfigf))
(import (prefix mtconfigf configf:))
(declare (uses stml2))
(import stml2)
(declare (uses commonmod))
(declare (uses megamod))
(import commonmod)
(import megamod)
;; (declare (uses rmt))
(declare (uses ducttape-lib))
(import ducttape-lib)
;; (include "megatest-fossil-hash.scm") ;; comes from megamod
;; stuff for the mapper and checker functions
;;
(define *target-mappers* (make-hash-table))
(define *runname-mappers* (make-hash-table))
(define *area-checkers* (make-hash-table))
(define (mtut:stml->string in-stml)
|
︙ | | | ︙ | |
Added mutils/Makefile version [6e71a235fc].
|
|
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
# Copyright 2007-2010, Matthew Welland.
#
# This program is made available under the GNU GPL version 2.0 or
# greater. See the accompanying file COPYING for details.
#
# This program is distributed WITHOUT ANY WARRANTY; without even the
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
# PURPOSE.
# TARGDIR = $(shell csi -e "(print (car \#\#sys\#include-pathnames))(exit)")
all : uptodate.log # $(TARGDIR)/mutils.so
uptodate.log : mutils.scm mutils.setup
chicken-setup | tee uptodate.log
$(TARGDIR)/mutils.so : mutils.so
@echo installing to $(TARGDIR)
cp mutils.so $(TARGDIR)
mutils.so : mutils.scm
csc -s mutils.scm
|
Added mutils/mutils.meta version [d4f4a25176].
|
|
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
(
; Your egg's license:
(license "BSD")
; Pick one from the list of categories (see below) for your egg and enter it
; here.
(category misc)
; A list of eggs mpeg3 depends on. If none, you can omit this declaration
; altogether. If you are making an egg for chicken 3 and you need to use
; procedures from the `files' unit, be sure to include the `files' egg in the
; `needs' section (chicken versions < 3.4.0 don't provide the `files' unit).
; `depends' is an alias to `needs'.
(needs sparse-vectors)
; A list of eggs required for TESTING ONLY. See the `Tests' section.
(test-depends test)
(author "Matt Welland")
(synopsis "A basic description of the purpose of the egg."))
|
Added mutils/mutils.scm version [fc9b32e569].
|
|
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
|
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
|
;; Copyright 2006-2011, Matthew Welland.
;;
;; This program is made available under the GNU GPL version 2.0 or
;; greater. See the accompanying file COPYING for details.
;;
;; This program is distributed WITHOUT ANY WARRANTY; without even the
;; implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
;; PURPOSE.
;; This is from the perl world, a hash of hashes is a super easy way to keep a handle on
;; lots of disparate data
;;
(define (mutils:hierhash-ref hh . keys)
(if (null? keys)
#f
(let loop ((ht hh)
(key (car keys))
(tail (cdr keys)))
(if (null? tail)
(if (hash-table? ht)
(hash-table-ref/default ht key #f)
#f)
(if (hash-table? ht)
(loop (hash-table-ref/default ht key #f)
(car tail)
(cdr tail))
#f)))))
;; WATCH THE NON-INTUITIVE INTERFACE HERE!!!!
;; val comes first!
;;
(define (mutils:hierhash-set! hh val . keys)
(if (null? keys)
#f
(let loop ((ht hh)
(key (car keys))
(tail (cdr keys)))
(if (null? tail) ;; last one!
(hash-table-set! ht key val)
(let ((nh (hash-table-ref/default ht key #f)))
(if (not nh)(set! nh (make-hash-table)))
(hash-table-set! ht key nh)
(loop nh
(car tail)
(cdr tail)))))))
;; nice little routine to add an item to a list in a hashtable
;;
(define (mutils:hash-table-add-to-list htbl key item)
(let ((l (hash-table-ref/default htbl key #f)))
(if l
(hash-table-set! htbl key (cons item l))
(hash-table-set! htbl key (list item)))))
(define (mutils:hash-table-append-to-list htbl key lst)
(let ((l (hash-table-ref/default htbl key #f)))
(if l
(hash-table-set! htbl key (append lst l))
(hash-table-set! htbl key lst))))
;;======================================================================
;; Utils
;;======================================================================
(define (mutils:file->list fname)
(let ((fh (open-input-file fname))
(comment (regexp "^\\s*#"))
(blank (regexp "^\\s*$")))
(let loop ((l (read-line fh))
(res '()))
(if (eof-object? l)
(reverse res)
(if (or (string-match comment l)
(string-match blank l))
(loop (read-line fh) res)
(loop (read-line fh) (cons l res)))))))
(use sparse-vectors)
;; this is a simple two dimensional sparse array
;; ONLY TWO DIMENSIONS!!! SEE ARRAY-LIB IF YOUR NEEDS ARE GREATER!!
;;
(define (mutils:make-sparse-array)
(let ((a (make-sparse-vector)))
(sparse-vector-set! a 0 (make-sparse-vector))
a))
(define (mutils:sparse-array? a)
(and (sparse-vector? a)
(sparse-vector? (sparse-vector-ref a 0))))
(define (mutils:sparse-array-ref a x y)
(let ((row (sparse-vector-ref a x)))
(if row
(sparse-vector-ref row y)
#f)))
(define (mutils:sparse-array-set! a x y val)
(let ((row (sparse-vector-ref a x)))
(if row
(sparse-vector-set! row y val)
(let ((new-row (make-sparse-vector)))
(sparse-vector-set! a x new-row)
(sparse-vector-set! new-row y val)))))
;; some routines for treating assoc lists a bit like hash tables
(define (mutils:assoc-get/default alist key default)
(let ((res (assoc key alist)))
(if (and res (list? res)(> (length res) 1))
(cadr res)
default)))
(define (mutils:assoc-get alist key)
(cadr (assoc key alist)))
(define (mutils:hier-list? @hierlist)
(and (list? @hierlist)
(> (length @hierlist) 0)
(list? (car @hierlist))
(> (length (car @hierlist)) 1)))
(define (mutils:hier-list-get @hierlist . @path)
(if (list? @hierlist)
(let* (($path (car @path))
(@rempath (cdr @path))
(@match (assoc $path @hierlist)))
(if @match
(if (or (not (list? @rempath))(null? @rempath))
(cadr @match)
(apply mutils:hier-list-get (cadr @match) @rempath))
#f))
#f))
(define (mutils:hier-list-put! @hierlist . @path)
(let* (($path (car @path))
(@rempath (cdr @path))
($value (cadr @path))
(@match (assoc $path @hierlist))
(@remhierlist (remove (lambda (a)
(equal? a @match))
@hierlist))
(@old-pair (let (($value (mutils:hier-list-get @hierlist $path))) (if $value $value '())))
(@new-pair (list $path (if (eq? (length @rempath) 1)
(car @rempath)
(apply mutils:hier-list-put! @old-pair @rempath)))))
(cons @new-pair @remhierlist)))
(define (mutils:hier-list-remove! @hierlist . @path)
(let (($path (car @path)))
(if (eq? (length @path) 1)
(remove (lambda (a)
(equal? a (assoc $path @hierlist)))
@hierlist)
(let* ((@rempath (cdr @path))
(@match (assoc $path @hierlist))
(@remhierlist (remove (lambda (a)
(equal? @match a))
@hierlist))
(@old-pair (let (($value (mutils:hier-list-get @hierlist $path))) (if $value $value '())))
(@new-pair (list $path (apply mutils:hier-list-remove! @old-pair @rempath))))
(cons @new-pair @remhierlist)))))
(define (mutils:keys @hierlist . @path)
(map (lambda (@l)
(if (and (list? @l)(not (null? @l)))
(car @l)))
(if (null? @path) @hierlist
(apply mutils:hier-list-get @hierlist @path))))
|
Added mutils/mutils.setup version [4dd63cdcba].
|
|
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
;; Copyright 2007-2010, Matthew Welland.
;;
;; This program is made available under the GNU GPL version 2.0 or
;; greater. See the accompanying file COPYING for details.
;;
;; This program is distributed WITHOUT ANY WARRANTY; without even the
;; implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
;; PURPOSE.
;;;; mutils.setup
;; compile the code into a dynamically loadable shared object
;; (will generate mutils.so)
(compile -s mutils.scm)
;; Install as extension library
(install-extension 'mutils "mutils.so")
|
Added mutils/tests/datastruct.scm version [26239e26a3].
|
|
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
(use test)
(include "datastruct.scm")
(define hh (make-hash-table))
(hierhash-set! hh 5 1 2 3 4)
(test 5 (hierhash-ref hh 1 2 3 4))
(hierhash-set! hh 10 1 2 3 5)
(test 10 (hierhash-ref hh 1 2 3 5))
(test 5 (hierhash-ref hh 1 2 3 4))
|
Modified stml2/stml2.scm
from [de981094b3]
to [ee4c13898d].
︙ | | | ︙ | |
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
;; (declare (unit stml))
(module stml2
*
(import chicken scheme data-structures extras srfi-13 ports posix srfi-69 files srfi-1)
(use cookie (prefix dbi dbi:) (prefix crypt c:) typed-records)
;; (declare (uses misc-stml))
(use regex)
;; The (usually global) sdat contains everything about the session
;;
(defstruct sdat
|
>
|
|
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
;; (declare (unit stml))
(module stml2
*
(import chicken scheme data-structures extras srfi-13 ports posix srfi-69 files srfi-1)
(import cookie)
(use (prefix dbi dbi:) (prefix crypt c:) typed-records)
;; (declare (uses misc-stml))
(use regex)
;; The (usually global) sdat contains everything about the session
;;
(defstruct sdat
|
︙ | | | ︙ | |
Modified tests-inc.scm
from [6c6c30adad]
to [333db3a853].
︙ | | | ︙ | |
543
544
545
546
547
548
549
550
551
552
553
554
555
556
|
(if (not (hash-table-ref/default (hash-table-ref/default resh test-name #f) test-item #f))
(hash-table-set! (hash-table-ref/default resh test-name #f) test-item (make-hash-table)))
(hash-table-set! (hash-table-ref/default (hash-table-ref/default resh test-name #f) test-item #f) run-id (list test-status test-html-path))))
test-data)))
runs)
resh))
;; tests:genrate dashboard body
;;
(define (tests:dashboard-body page pg-size keys numkeys total-runs linktree area-name get-prev-links get-next-links flag run-patt target-patt)
(let* ((start (* page pg-size))
;(runsdat (rmt:get-runs "%" pg-size start (map (lambda (x)(list x "%")) keys)))
|
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
|
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
|
(if (not (hash-table-ref/default (hash-table-ref/default resh test-name #f) test-item #f))
(hash-table-set! (hash-table-ref/default resh test-name #f) test-item (make-hash-table)))
(hash-table-set! (hash-table-ref/default (hash-table-ref/default resh test-name #f) test-item #f) run-id (list test-status test-html-path))))
test-data)))
runs)
resh))
;; hash-table tree to html list tree
;;
;; tipfunc takes two parameters: y the tip value and path the path to that point
;;
(define (common:htree->html ht path tipfunc)
(let ((datlist (sort (hash-table->alist ht)
(lambda (a b)
(string< (car a)(car b))))))
(if (null? datlist)
(tipfunc #f path) ;; really shouldn't get here
(s:ul
(map (lambda (x)
(let* ((levelname (car x))
(y (cdr x))
(newpath (append path (list levelname)))
(leaf (or (not (hash-table? y))
(null? (hash-table-keys y)))))
(if leaf
(s:li (tipfunc y newpath))
(s:li
(list
levelname
(common:htree->html y newpath tipfunc))))))
datlist)))))
;; tests:genrate dashboard body
;;
(define (tests:dashboard-body page pg-size keys numkeys total-runs linktree area-name get-prev-links get-next-links flag run-patt target-patt)
(let* ((start (* page pg-size))
;(runsdat (rmt:get-runs "%" pg-size start (map (lambda (x)(list x "%")) keys)))
|
︙ | | | ︙ | |
Modified ulex.scm
from [419292ee51]
to [39353b5283].
︙ | | | ︙ | |
15
16
17
18
19
20
21
22
23
|
;;
;; You should have received a copy of the GNU General Public License
;; along with Megatest. If not, see <http://www.gnu.org/licenses/>.
;;======================================================================
(declare (unit ulex))
(include "ulex/ulex.scm")
|
>
|
15
16
17
18
19
20
21
22
23
24
|
;;
;; You should have received a copy of the GNU General Public License
;; along with Megatest. If not, see <http://www.gnu.org/licenses/>.
;;======================================================================
(declare (unit ulex))
(declare (uses pkts))
(include "ulex/ulex.scm")
|