Hi,
Hey George!
array.size(int) and the '<<' operator are crashing miniAudicle (version 0.2.0, on Windows 7 pro). (functionality added to chuck in 1.2.1.2, http://chuck.cs.princeton.edu/release/VERSIONS ). miniAudicle tells me it's running chuck 1.2.1.2.
Check.
playing around a bit, I now find that if I follow what the example array_dynamic.ck says and replace "int ar[]" with "int ar[0]", then the code works. I guess that means this isn't a bug but a meaningful difference between ar[] and ar[0]? In any case, I might amend the array_dynamic.ck to say something like "float argh[0]; // must set argh[0] and not argh[]"
Well, if ChucK crashes it's a bug; ChucK should not crash if you make a syntax error, it should catch it at parsing and inform you. It is also not unambiguously clear to me that what you tried is actually a error, IMHO this should be fair game, it looks natural and expressive. I can tell you what goes wrong though. "int ar[]" creates a reference to a array but does not instantiate it. You'd use it in a context like this; [1, 2, 3] @=> int ar[]; Evidently ar.size(int a) should instantiate the new array entries if a is larger than the old size, which it'll always be for uninstantiated arrays so I find what you tried defensible, but ChucK is also a bit right to complain about a null-pointer as the reference doesn't point to anything yet at that point. Syntactically it seems a bit awkward, compared to the rest of ChucK where we don't need to care about memory management, though it might also have uses where this kind of explicit control is useful. I hope that clarifies things a bit? If all of this sounded like abracadabra; just use the one that works, that's what this comes down to :-) Yours, Kas.