I guess the distinction between “Kernel” and “System” isn’t quite clear to me.
I guess, for me, Kernel contains those things that are essential to a running Smalltalk image. System contains stuff that's generally useful to most things - most, but not all.
I've long thought that we'll eventually move Array, OrderedCollection, Set and Dictionary to Kernel so that Collections could be unloaded...
You'd also have to move their superclass hierarchy,
Of course. That was implied.
so that wouldn't really work.
Why not?
There's no need to have a single "kernel" package containing all essential classes, so IMHO it's better to have many kernel packages.
"Many kernel packages" is what we have now. So what are we talking about then? Just moving things around to different packages based on some "improved" notion of subjective semantic classification, with no regard for the physical system dependencies? Why would that be beneficial?
Are Symbols part of any Smalltalk's Kernel? Yes, so what benefit is it to have it in Collections?
Is LRUCache part of any Smalltalk's Kernel? No, but if its in Collections along with Symbol, then I'm forced to remove it manually after loading "many kernel packages" if I just want a Kernel system...