1.3.1.0 (chimera) [part 1]: 64-bit chuck
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)
participants (1)
-
Ge Wang