[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>