| Commit message (Collapse) | Author | Age |
| |
|
|
|
|
|
| |
Name conflicts are apparently not good. Manual fixup since it's too much
a hassle to undo the merge.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This new setup stores all configurations are parameters. This forces
everything into modules, and ensures that we can't have a module use an
unloaded config. It (unfortunatelly) also causes users to have to
specify namespaces when defining values, but ini-files (and the like)
already does that. Also, there is nothing stopping a new `set-config!'
from being defined which allows un-namespaced operation.
The commit also removes the introspection procedures. They where a bit
weird to begin with, since they only showed loaded fields. And since the
program had no way of properly serializing or deserializing them we
remove them for the time being. They would however be good to
reintroduce together with a proper menu for editing simple
configuration (see Emacs' `custom-set-variables').
|
| |
|
|\ |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
| |
| |
| |
| |
| | |
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).
|
| | |
|
| |
| |
| |
| |
| | |
Barely used, and almost always was better server by a propper error
call.
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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))))
|
| | |
|
| |
| |
| |
| | |
Along with updating now failing tests.
|
|/ |
|
| |
|
|
|
|
|
| |
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.
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
It caused tests to crash, since it requires that all components have
parents (which is obviously false for root components), and that all
those parents have a NAME field.
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
I have no idea why the byday case was commented out while implementing
xcal output. Either way it's now fixed, and should hopefully stay fixed
with some tests.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Like the diff mentions; appending strings leads to a huge number of
allocations and deallocations, killing performance in the GC for large
strings.
String ports on the other hand say nothing about how the work
internally, allowing Guile to have efficient C code which completely
bypasses the GC (this was briefly checked in Guile's source code, commit
118ee0c50ba90ea7ad7ff1fd2a212bbbb7a66d99 (3.0.7 + a few commits).
The approximate speed increase is at least two orders of magnitude, if
not three.
|
| |
|
| |
|
|
|
|
| |
"lost".
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|\ |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|