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,

Reply via email to