[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[sc-dev] linux update
just what the subject says. be sure to update with
cvs update -d
to pull in the new directories.
user changes:
* updated documentation in linux/README, linux/scel/README
* example configuration files in linux/examples
* altivec enabled by default if present at runtime
* emacs interface consistency fixes
* installation of class library to $prefix/share/SuperCollider
* installation of emacs-lisp files to $prefix/share/emacs/site-lisp
developer changes:
* libsclang builds as a shared library (again)
* headers install to correct subdirectories:
the directory structure in $srcdir/headers is mirrored in
$prefix/include/SuperCollider; if you use pkg-config the change
should be transparent to your build system
other changes:
* scsynth/jack scheduler:
as there is no portable way of getting a high-precision, low-overhead,
monotonic time source on linux, i used the gettimeofday fallback
(precision ~10 ms, probably higher if cycle counter is used, system
call overhead 60-200 us).
my code based on jack_frame_time() was incorrect; both
jack_frame_time() and jack_get_transport_info() are quantized to
buffer boundaries.
POSIX' clock_gettime(CLOCK_MONOTONIC) would be an alternative, but
it's not available on linux; CLOCK_REALTIME is implemented in terms of
gettimeofday.
another possibility would be the pentium cycle counter/powerpc
timebase register (i think this is what mach_absolute_time() is
using), but it's of course non-portable. the registers may be in use
by the kernel on SMP machines, and thus not be available in
user-space. retrieving the correct clock frequency and handling
overflow have their own pitfalls.
i'd be very interested in comments/knowledge/wisdom ...
<sk>