I tried to install Chuck-Standard-ls.11.mcz both from SqueakMap and SqueakSource and got the following error message:
Could not find version 'Chuck Type Inference-ls.12'
help would be appreciated :)
Stef
Stéphane Rollandin writes:
I tried to install Chuck-Standard-ls.11.mcz both from SqueakMap and SqueakSource and got the following error message:
Could not find version 'Chuck Type Inference-ls.12'
help would be appreciated :)
I tried and had a similar problem. If you install Monticello then get Chuck directly from SqueakSource it seems to work. It works well enough to get the AutoChuck preference which I've just selected and am still waiting for it to install.
From Monticello create a project called Chuck then with that selected
add an HTTP repository. The SqueakSource details are:
MCHttpRepository location: 'http://kilana.unibe.ch:8888/Chuck' user: '' password: ''
Hope this helps. Bryce P.S. Chuck definately looks very cool. Does it use any form of contour splitting?
Bryce Kampjes writes:
Stéphane Rollandin writes:
I tried to install Chuck-Standard-ls.11.mcz both from SqueakMap and SqueakSource and got the following error message:
Could not find version 'Chuck Type Inference-ls.12'
help would be appreciated :)
I tried and had a similar problem. If you install Monticello then get Chuck directly from SqueakSource it seems to work. It works well enough to get the AutoChuck preference which I've just selected and am still waiting for it to install.
From Monticello create a project called Chuck then with that selected
add an HTTP repository. The SqueakSource details are:
MCHttpRepository
location: 'http://kilana.unibe.ch:8888/Chuck' user: '' password: ''
Hmm that doesn't quite work. Look's like some packages are missing, there are a few DNUs. Oh, well, back to waiting for information from the informed.
Uninformed Bryce
Bryce Kampjes bryce@kampjes.demon.co.uk wrote:
P.S. Chuck definately looks very cool. Does it use any form of contour splitting?
Chuck uses Agesen's CPA, i.e. it splits based on parameter types. So SmallInteger>>+ gets analyzed separately when its argument is a SmallInteger and when its argument is a LargePositiveInteger, etc.
More possible splitting should help, but mostly Chuck is pretty minimal right now. All in the name of science. :) No, really! Imagine. If I were more industrious and there were a big pile of inference rules in Chuck, then I could not claim to have shown that the AI approach of Chuck is why it works. As it is, there are so few rules that it must surely be the architecture and not the fancy rules.
Still, there are a few things that seem essential even in a minimal Smalltalk inferencer. One is dealing with blocks thoroughly. Chuck has a special kind of type called a "block type" which pinpoints a specific block in the code plus a context (CPA-ish set of parameter types) for the surrounding method (and block(s)!) that the block is created in. It also includes symbol types (i.e., there is a type including just the symbol #abc), and it will trace flow forward. These latter two items are essential if your program uses #perform: and you still want to get correct results that aren't ridiculously bad. As a side benefit, forward flow also lets Chuck figure out what the type of block parameters are when the context doesn't tell you; you can trace the block forward to find all the invocations of #value: that invoke the block.
-Lex
squeak-dev@lists.squeakfoundation.org