On 1 August 2013 14:45, Jecel Assumpcao Jr. jecel@merlintec.com wrote:
Frank Shearar wrote:
I'm prepared to be argued over to agreeing with you, which means that at the moment I don't :). The reason is that I don't see a car factory inside my car: the car factory assembles a bunch of bits and gives me a car. (This is one of the things that annoys me about Metacello: I don't want to see ConfigurationOfs in my image.)
But there is a bacteria factory inside a bacteria :-)
That doesn't mean that I don't prefer Smalltalks that grow (like Smalltalk Express, a.k.a. Smalltalk V/Win) to those you have to strip.
Stripping is _hard_. Just look at all the Self literature. (My brief Googling has failed me, but I did read an interesting approach in connection with abstract interpretation.) Well. It's very easy to remove things from an image. The problem is removing only the bad bits and leaving the good bits.
The automatic approach was based on type inference rather than abstract interpretation:
http://selflanguage.org/documentation/published/gold.html "Sifting Out the Gold: Delivering Compact Applications From an Exploratory Object-Oriented Environment" Ole Agesen and David Ungar
Yes! That's the one!
frank
There is also David Ungar's work on the Transporter where users have to manually annotate objects so they can be moved between images. This can be combined with the fact that the Self VM can start with a very minimal "empty world" and bootstrap from a bunch of text files (the text to bytecodes compiler is in the VM instead of the image) to deliver a stripped down system with just the application. But I think that the automatic solution in the above paper is more interesting for this discussion.
-- Jecel
On 1 August 2013 15:03, Frank Shearar frank.shearar@gmail.com wrote:
On 1 August 2013 14:45, Jecel Assumpcao Jr. jecel@merlintec.com wrote:
Frank Shearar wrote:
I'm prepared to be argued over to agreeing with you, which means that at the moment I don't :). The reason is that I don't see a car factory inside my car: the car factory assembles a bunch of bits and gives me a car. (This is one of the things that annoys me about Metacello: I don't want to see ConfigurationOfs in my image.)
But there is a bacteria factory inside a bacteria :-)
That doesn't mean that I don't prefer Smalltalks that grow (like Smalltalk Express, a.k.a. Smalltalk V/Win) to those you have to strip.
Stripping is _hard_. Just look at all the Self literature. (My brief Googling has failed me, but I did read an interesting approach in connection with abstract interpretation.) Well. It's very easy to remove things from an image. The problem is removing only the bad bits and leaving the good bits.
The automatic approach was based on type inference rather than abstract interpretation:
Abstract interpretation is one type inference technique (see Shivers' and Might's work on CFA and k-CFA). But I just forgot that Agesen doesn't use this technique. His paper on the type inference algorithm he uses is "Concrete Type Inference: Delivering Object-Oriented Applications". Francisco Garau ported the techique to Squeak for his Master's thesis, and Santiago Bragagnolo continued the work in Pharo.
frank
http://selflanguage.org/documentation/published/gold.html "Sifting Out the Gold: Delivering Compact Applications From an Exploratory Object-Oriented Environment" Ole Agesen and David Ungar
Yes! That's the one!
frank
There is also David Ungar's work on the Transporter where users have to manually annotate objects so they can be moved between images. This can be combined with the fact that the Self VM can start with a very minimal "empty world" and bootstrap from a bunch of text files (the text to bytecodes compiler is in the VM instead of the image) to deliver a stripped down system with just the application. But I think that the automatic solution in the above paper is more interesting for this discussion.
-- Jecel
squeak-dev@lists.squeakfoundation.org