On 30/11/2011, Colin Sullivan
Hello all,
Hey Colin!
I have started to build a compositional framework in ChucK and have come across a few language features that seem to be unsupported:
- For the types of inheritance structures I am thinking about, it would be incredibly useful if I was able to call a parent class's method from within a child class using something like the `super` keyword.
You are right. That kind of advanced class/type usage is simply a bit underdeveloped.
- It would also be really awesome if I could pass a "type" as a parameter.
I've thought about that too, though I also have a suspicion that with more advanced type&class functions we might not even need that. I'm not sure, I'll defer to the real theoretical experts.
- Not crucial at all, but it would be convenient if subclassing a `UGen` allowed you to use the chuck operator on instances of your class just like other ugens, i.e. `MyPiano p => dac`.
Yes. That, IMHO *is* critical. On the bright side; some work on that has been done as that mysteriously started working a while ago. I heard gossip that more work is being done right now on custom and user build UGens that should go in the next version.
I am interested to know if there has been work on these features since the release I am running, and if so where I can go about acquiring a more recent build.
Well, that depends on what release you are running :-). The most recent regular version is up on the site as a binary for OSX and Windows and as source for Linux. If you need the latest there is the SVN repository from which you can build your own. I can look up the location if you'd like. I am not aware of any changes to the class system there though. Worst case is you are running that .deb package, last time I checked that was quite out of date and you'd receive a lot of benefits from opdating by compiling your own (not so hard and downright easy after the first time).
If there has not been any development on these features, I would be interested in getting to know the problems a bit more and determining if I can contribute to their development. Are any of these issues inherently difficult due to an aspect of ChucK's implementation? Let me know if I can clarify at all.
I think I'd personally advocate fixes for the bugs in the type system before new features there. Bug hunting has been done there, I think the community has found and documented most of the bad things there. As I see it we now need somebody who really knows that structure to take a look at it. This practically depends on Ge having spare time which seems to be a bit of a problem. That's probably a problem for Ge first and fore-most.. :-/ As for the UGens, I heard very nice gossip. More in general; if you have things you can't accomplish due to a lack of features you can always ask for help working around that. ChucK *is* a bit of a simple language (which is nice too, in many ways!) but you can typically accomplish what you need, even if it might not look very elegant by -say- C++ standards. Hope that helps a bit. Kas.