Dear all,
chuck-1.3.1.0 (chimera) is available:
http://chuck.cs.princeton.edu/http://chuck.stanford.edu/
ChucK is, at last, 64-bit compatible.
Lack of native 64-bit support has been a long standing issue with ChucK,
and many people in our community over the last few years have contributed
to making this happen. They include Kassen for his ever helpful voice of
reason, Paul Brossier (who did a 64-bit port of ChucK 1.2.0.8 to ubuntu, a
port that this release is largely based upon), Stephen Sinclair, who also
provided a comprehensive and well-executed 64-bit port, and more recently
Robin Haberkorn, who has jumped into the ChucKian development fire, as
well as Michael Wilson -- your initiative and insights have definitely
helped to make this happen. There have been many helpful discussions on
chuck-users and chuck-dev, at CCRMA, as well as much encouragement and
support from friends and colleagues like Fernando Lopez-Lezcano. ... Of
course, had we/I architected the VM instructions to not make integer,
float, and pointer size assumptions in the first place in 2006 with ChucK
1.2, it would have made things quite a bit easier for everyone. Yeah...
Oops.
This is the very first release of ChucK that natively support 64-bit as
well as 32-bit. There are a few additional features (and likely a few
new, uh, "features"). I imagine a few hot-fixin' rapid incremental
releases might be needed. We have tried to test this thoroughly, in
particular on Linux and Mac OS X, and less so on windows. To be totally
honest, we have not been able to even test compilation for 64-bit on
windows - if someone out there with access to 64-bit windows (XP or
Windows7) who can give this a shot, that would be much appreciated! In
general, users of all supported systems, please let us know if/how well
this works for you!
Part 2 -- on the way!
Not unlike the final installment of the Harry Potter movies, or perhaps
the video game ->Final<- Fantasy XIII (there is a FF XIII-2 and what is
effectively FF XIII-3 was just announced), this 1.3.1.0 release will take
place in multiple parts, mostly because Spencer is traveling to ICMC in
Ljubljana, Slovenia, where he will present our paper on Chugins, Chugens,
and Chubgraphs. Also, there is a little bit more work to do for 64-bit
miniAudicle, so that's going to come in CK 1.3.1.0, part 2, and probably
from Slovenia (it seems only fitting to release ChucK from the
international computer music conference). Also, our dear friend Graham
Coleman has asked about a chuck-1.3 version of (gasp) Audicle, so there
might be a 1.3.1.0, part 2, b.
As usual, please see the release notes at the end of this email. Thanks
and Happy ChucKin, UpChucKin, Chugin'! gg!! ChucK on!!
Best,
Spencer + Ge, on behalf of entire chuck team
---
1.3.1.0
- (added) 64-bit support for all platforms (OS X, Linux, Windows)
many thanks to Paul Brossier, Stephen Sinclair,
Robin Haberkorn, Michael Wilson, Kassen, and
Fernando Lopez-Lezcano, and all of chuck-users!
- (added) Math.random(), random2(), randomf(), random2f(), srandom(),
and Math.RANDOM_MAX; NOTE: randomf() returns range 0.0 to 1.0
these use the much better random() stdlib functions
the existing Std.rand*() and Std.srand() is still
be available for compatibility (these to be deprecated
in the future; please start using Math.random*())
* (NOTE: on windows, Math.random() still uses the same
generator as Std.rand() -- we hope to improve this in
a future version!)
* (NOTE: also see removed below)
- (added) chuck --version | chuck --about now print architecture
(32-bit or 64-bit)
- (added) Machine.intsize() will return int width in bits
(e.g., 32 or 64)
- (added) examples/array/array_mmixed.ck to verify mixed-index
fix (see below), based on Robin Haberkorn's test code
- (fixed) multi-dimensional arrays now correctly support mix-typed
indices (e.g., strings & ints) (thanks Robin Haberkorn)
- (fixed) constants in Math library now cleaner, they include:
* Math.PI
* Math.TWO_PI
* Math.e or Math.E
* Math.i or Math.I or Math.j or Math.J // as 'complex' type
* Math.INFINITY
* Math.RANDOM_MAX
* Math.INT_MAX // currently, differs on 32-bit and 64-bit
* Math.FLOAT_MAX
* Math.FLOAT_MIN_MAG // minimum positive float value
- (fixed) Chubgraph.gain(), .last(), and .op()
- (fixed) error message printing system for variable arguments
- (fixed) StifKarp.sustain now works properly
- (fixed) all examples now use Math.random*() instead of Std.rand*()
- (removed) Math.rand*() removed --> please use Math.random*();
(see 'added' above; Std.rand*() still there, but to be
deprecated; please use Math.random*() moving forward)