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)

From: Ge Wang
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.
best news EVER. big thanks, guys! .pltk.

One of my laptops is running Windows 7-64 bits. I'll check tonight and send you my comments. Cordially, Marc
Date: Thu, 6 Sep 2012 04:36:46 -0700 From: ge@ccrma.stanford.edu To: chuck@lists.cs.princeton.edu; chuck-users@lists.cs.princeton.edu Subject: [chuck-users] 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) _______________________________________________ chuck-users mailing list chuck-users@lists.cs.princeton.edu https://lists.cs.princeton.edu/mailman/listinfo/chuck-users

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.
Ah, this is so cool! Back to popculture as a frame of reference, releasing early and often and bouncing ideas back&forth... and even a whole series of new words! It's just like the old days, except with more toys. I like the idea of resurrecting/-mixing/-releasing the Audicle. I admit I was a bit skeptical of it at the time (I think I mucked up something with the 3d acceleration). It was a bit ahead of its time and now might be a good moment to go back. More or less like that XBox version of Rez. Welcome back, commander. Kas.

On 6 Sep 2012, at 13:36, Ge Wang wrote:
chuck-1.3.1.0 (chimera) is available:
For the purpose of testing harmony, it would nice with a unit generator with playing characteristics like BeeThree, but having the odd partials as well, like a pipe organ. BeeThree has a very good response when playing from the computer keyboard, but it has only the even partials I recall. Hans

Hello Ge,
I found that one of my examples now seg faults
$ chuck --loop
$ chuck + import.ck
$ chuck + examples/multivoiceChordsExample.ck
...
[chuck](VM): sporking incoming shred: 195 (StereoFeedbackMachineA.ck)...
[chuck](VM): sporking incoming shred: 196 (StereoFeedbackMachineL.ck)...
"LiCK imported." : (string)
[chuck](VM): sporking incoming shred: 1 (multivoiceChordsExample.ck)...
"Cmaj" : (string)
Segmentation fault: 11
https://github.com/heuermh/lick/blob/514beb196f0fa5f36910d89aad9211d793f2e18...
I'll try to reduce it to something that doesn't require LiCK stuff.
I'm guessing it might have to do with arrays and references, since
that always causes trouble for me.
michael
On Thu, Sep 6, 2012 at 11:05 AM, Michael Heuer
Ge Wang
wrote: ChucK is, at last, 64-bit compatible.
WOOT!
michael

Hi Michael!
I'll try to reduce it to something that doesn't require LiCK stuff. I'm guessing it might have to do with arrays and references, since that always causes trouble for me.
Yes for totally - if you can find a minimal example that still crashes, that would very helpful. Would love figure out the cause, whether it's related to 64-bit or not. Please send when you get a chance! Thanks!! Ge!

On Sun, Sep 9, 2012 at 5:16 AM, Ge Wang
I'll try to reduce it to something that doesn't require LiCK stuff. I'm guessing it might have to do with arrays and references, since that always causes trouble for me.
Yes for totally - if you can find a minimal example that still crashes, that would very helpful. Would love figure out the cause, whether it's related to 64-bit or not. Please send when you get a chance! Thanks!!
Hello Ge, I was able to create an example of this issue that doesn't require LiCK, see attached. It still seg faults on 1.3.1.1 unfortunately. michael

Hi Michael!
I was able to create an example of this issue that doesn't require LiCK, see attached.
It still seg faults on 1.3.1.1 unfortunately.
This example was very helpful - we tracked it down to a bug with sporking member functions using local Objects that goes out of scope before the child shred finished (in your case, the Play object). We have added the proper fix to reference count the parent object on the new shred itself. Would be great if you can test the latest on your system. What's a good way for you to do that? Thanks! Ge!

Hi Michael!
I was able to create an example of this issue that doesn't require LiCK, see attached.
It still seg faults on 1.3.1.1 unfortunately.
This example was very helpful - we tracked it down to a bug with sporking member functions using local Objects that goes out of scope before the child shred finished (in your case, the Play object). We have added the proper fix to reference count the parent object on the new shred itself.
Would be great if you can test the latest on your system. What's a good way for you to do that?
As you may have seen from another thread, we've posted a candidate for you and others to test: http://chuck.stanford.edu/stuff/chuck-1.3.1.2-rc1.zip It includes a win32 build and an osx64 build, as well as source for all supported platforms. If you would, please let us know if this seems any better! Thanks! Ge!

Ge Wang
Hi Michael!
I was able to create an example of this issue that doesn't require LiCK, see attached.
It still seg faults on 1.3.1.1 unfortunately.
This example was very helpful - we tracked it down to a bug with sporking member functions using local Objects that goes out of scope before the child shred finished (in your case, the Play object). We have added the proper fix to reference count the parent object on the new shred itself.
Would be great if you can test the latest on your system. What's a good way for you to do that?
As you may have seen from another thread, we've posted a candidate for you and others to test:
http://chuck.stanford.edu/stuff/chuck-1.3.1.2-rc1.zip
It includes a win32 build and an osx64 build, as well as source for all supported platforms.
If you would, please let us know if this seems any better!
Hello Ge, Both segfault.ck and the original LiCK examples/multivoiceChordsExample.ck work for me with 1.3.1.2-rc1 on OSX 10.7.x. I can check 64-bit linux-alsa and linux-jack later. Thanks, michael
participants (6)
-
Ge Wang
-
Hans Aberg
-
Kassen
-
Marc Demers
-
Michael Heuer
-
plutek