Hacker News new | ask | show | jobs
by em-bee 48 days ago
it sounds like you are asking a question, but there is no "?" at the end, so i am slightly confused. if it is a question, my answer is no, because the tools i use to read or edit the code are completely distinct from the build tools.

what affects the reproducibility is the compiler, and that's the issue with smalltalk. you can't upgrade the IDE without upgrading the compiler. say if i use pharo, and switch to a new version of pharo then i get a new version of smalltalk, and i can't compile my own code in the image with the old version any more.

based on that i don't understand how you even enable or test reproducibility in smalltalk. i'd like to learn more about that.

(re: vanity. since a while i have wondered how i would go about creating the longest running discussion thread on hackernews. and how long i would be able to keep it going. i think we are off to a good start here. just remember to peek in here once a while to see if there is a response. and if there isn't feel free to poke me by email. (unless we decide that there is nothing to add))

2 comments

> … you can't upgrade the IDE without upgrading the compiler.

Do you mean because the IDE and compiler are packaged together, so when you get image' it may contain changes to both?

> … i can't compile my own code in the image with the old version any more.

Do you mean because the image' package has compiler' not the old version?

(Probably an abuse of kindness.)

yes to both.

(not as long as we keep to the topic and respond before the time to reply expires)

> … can't upgrade the IDE without upgrading the compiler.

When packaged together IDE & compiler can't be upgraded separately (without doing the work to in-effect make separate packages).

> … can't compile my own code in the image with the old version

So we could try to compile own-code' in image' with compiler', and we could try to compile own-code' in image" with compiler", but we want to try to compile own-code' in image" with compiler' ?

Not without doing the work to in-effect make separate packages. (Say we could port compiler' to image" but would that mean trying to compile compiler' with compiler".)

And now we're back to what does "traditional way of doing smalltalk development" mean because supposedly "Team/V could forward and backwards migrate versions of Smalltalk “modules” within a running virtual image."

> the point of a reproducible build is that a version of source code always produces the same binary.

Scope: does "a version of source code" just mean own-code or does it mean sources+changes.

i have just been reading https://news.ycombinator.com/item?id=48081245 about reproducible builds in debian, and that reminded me of this discussion. truth is i still struggle to understand how reproducible builds with smalltalk images even work.

in debian, a build is reproducible if the checksum of the resulting package of my build matches that of your build. how do you do that in a smalltalk image? you take the checksum of what? which objects or rather entities do you compare, and how do you compare them, to verify that a build is reproducible? it can't be the whole image, because that is guaranteed to be different somewhere, and thus the image checksums won't match. so how does that really work?

there is another thought that i just realized. what are reproducible builds with runtime compiled languages like python, ruby, perl, even javascript? the point of a reproducible build is to verify that the binary i use, or that the package i use is based on the same source that i have. python et al don't have binaries. so my reproducible build check is a diff of the source tree. if in smalltalk the image is my source then i care about knowing that the image has not been modified. that's impossible because the image changes just by using it, unless i never save the changes. what's left is exporting the source and running a diff on that maybe.
> … the point of a reproducible build is to verify that the binary i use, or that the package i use is based on the same source that i have.

I have been talking about how to reproduce a particular build, not how to verify.

From the same initial state, perform the same sequence of actions, implies arrive at the same final state. Reproducible.

"Retaining your old change logs gives you a record of all the changes you have made to the system. This will prove invaluable when you receive a new release of Smalltalk/V. … In short, back up the image and change log together, and you shouldn't have any problems."

page 285 Smalltalk/V 286 Tutorial and Programming Handbook 1988

> if in smalltalk the image is my source

As-before it doesn't need to be.

https://news.ycombinator.com/item?id=47354288

My imagination has failed. I don't understand which issues you are concerned with. I think we're done.
i didn't see that comment, sorry. my primary purpose here is to learn more about smalltalk and the image based development model. you brought up a few interesting things that i have questions about. reproducible builds is one of them. and by question i don't mean to verify the validity of claims but to ask about them to learn more.