| Commit message (Collapse) | Author | Age |
| |
|
| |
|
|
|
|
| |
Guile 3 reserves _ for other stuff.
|
| |
|
|
|
|
|
|
| |
While it was nice, the most important part was the multi-valued let from
srfi-71 (which is implemented in srfi-71)). The minor pattern matching
structures could often be replaced with car+cdr, or a propper match.
|
| |
|
| |
|
| |
|
|\ |
|
| | |
|
| |
| |
| |
| |
| |
| | |
This frees it, currently only for calling it from our import entry
point, but this will also allow us to much easier write tests for it
(which we need since adding recurring events doesn't work).
|
| | |
|
|/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
While not necessary, since we barely use UUID:s, it's still WAY faster,
and nice to not depend on the system providing `uuidgen'.
For comparison, number of UUID:s generated by different settups in 1
second:
65.000 :: guile native
700 :: guile shell-out
3.500.000 :: c native
100.000 :: libuuid - guile bindings
650.000 :: libuuid
Tests where run with either
(call-with-time-limit
1
(lambda ()
(let loop ()
(uuid)
(set! count (1+ count))
(loop)))
(lambda _ (display count)))
or
volatile unsigned long long count = 0;
sigaction(SIGALARM, ...);
alarm(1);
for (;;) {
uuid();
count++;
}
(let ((count 0))
(call-with-time-limit
1
(lambda ()
(let loop ()
((@ (hnh util) uuidgen))
(set! count (1+ count))
(loop)))
(lambda _ (format #t "exec count = ~:d~%" count))))
|
|
|
|
|
| |
This is the first (major) step in splitting the generally useful items
into its own library.
|
|
Primarly this moves all vcompenent input and output code to clearly
labeled modules, instead of being spread out. At the same time it also
removes a handfull of unused procedures.
|