Hi everyone, As I am working on an optimising JIT compiler for the Cog VM written in Smalltalk and partly running in the Smalltalk runtime, I am very careful about dependencies. I would like to limit the dependencies of the optimiser to the Kernel.
The main problem I have is that there are no collections in the Pharo Kernel except MethodDictionary and DependentsArray. The optimiser depends on Array, ByteArray, OrderedCollection, Set and Dictionary which are not part of the Kernel. The second problem is that there are lots of things in the Kernel that the optimiser do not depend on even though everything is in the Kernel package, for example, the optimiser does not depend on anything related to Time/Chronology, on Numbers other than SmallIntegers or Protocol logic. This leads to questions. I know that with the bootstrap incoming, some people have answers to these questions, but I would like to the conversation happening on the mailing list so everyone can contribute. Question 1) Is there any plan to make a 'Kernel-Collection' package, which includes Array, ByteArray, OrderedCollection, Set and Dictionary, but not the rest of the collections ? Question 2) Is there any plan to split the Kernel (or maybe the Kernel and all its dependencies ?) into smaller pieces, for example 'KernelCore', which includes the existing Kernel *but* other Numbers than SmallIntegers, Protocol logic and Time Chronology, which could be moved to 'KernelExtended' or something like that ? I understand that those problems are not easy, but I would like to know if there is a generic plan so I can correctly decide on what dependencies I can have or not. Thanks, cheers,
