Ben Coman wrote
> On Sat, Jun 6, 2015 at 5:26 PM, Guillermo Polito
> <

> guillermopolito@

> > wrote:
>> Actually we just want to have a kind of split in:
>>
>> - essential
>> - non-essential
> 
> I guess you have scripts outside the image to shrink the image and
> then bootstrap it.  However these are not necessarily visible to
> everyone and I am wondering once the bootstrap goal is achieved you
> will handle the entropy of ongoing development by many others
> accidentally introducing dependencies that breaks the bootstrap?
> 
> Also what I have seen is classes being moved out of their current
> packaging (sorry I forget the details, but I think it was moved out of
> System) into a new top-level package, which I think loses something in
> structure and might pollute the top-level packages.
> 
> So considering the recent discussion of package tags, I wonder if
> somehow we could have a "Bootstrap" tag and realtime critics that
> complain if Bootstrap-tagged-class references any
> non-Bootstrap-tagged-class.  There might even be several levels of
> Bootstrap tags.  This would improve ongoing visibility of the
> bootstrap structure and help the rest of us to not shoot it in the
> foot.

One of the things I really like about ENVY (as found in VA Smalltalk) is
that packages are formally modelled and are distinct from method categories.
(Another is that a method can have multiple categories.) And by formally
modelling packages, one can easily include proper dependency relationships
and more easily detect references to behaviours outside a packages
prerequisites chain.

I realize that is a huge departure from current Squeak and Pharo practice.
But, I hope it's one that will get consideration. (Given all the other first
class modelling you've been adding to Pharo, I think this would be
consistent with the current philosophy!)



> I wonder also if tags might also be extended to method protocols, so
> you can have a method with the "accessors" tag and also the
> "bootstrap" tag, so that even a Bootstrap-tagged-class can be further
> minimised by the methods it needs during bootstrap.  Otherwise I guess
> to minimise the methods in a Bootstrap-tagged-class, later extension
> by another package could not add methods to the "accessors" protocol.
> 
> P.S. I know I do a lot of wondering, and of course divergent thought
> is easier than concrete answers.
> cheers -ben
> 
> 
>>
>> Then the bootstrap will include essential packages at the beginning and
>> non-essential will be just loaded on top.
>>
>> The rationale is: the smaller the kernel, the fastest the bootstrap, and
>> with it the feedback loop we have.
>>
>> That's why I was working on the File abstractions, and splitting some
>> other
>> kernel package.
>>
>> El vie., 5 de jun. de 2015 a la(s) 7:35 p. m., stepharo <

> stepharo@

> >
>> escribió:
>>>
>>> Yes sven but with guille we are working on a really small kernel. So we
>>> can duplicate just the classes we need but I would prefer not
>>> but we can do it. The size is important for us because it takes time to
>>> bootstrap.
>>>
>>> Stef
>>>
>>> Le 5/6/15 19:06, Sven Van Caekenberghe a écrit :
>>> >> On 05 Jun 2015, at 18:43, Guillermo Polito <

> guillermopolito@

> >
>>> >> wrote:
>>> >>
>>> >> The only encoder that makes a bit of noise to me is the ZnByteEncoder
>>> >> that contains a lot of mapping tables for mostly unused encodings
>>> > 67 encoding specifications, each a 128 array. The method constant is
>>> > shared when used.
>>> > In the beginning there were only a couple, one day I added many more,
>>> > some people need them.
>>> > For me, the cost is reasonable.
>>> >
>>> >> (plus methods with metadata to recreate them)...
>>> > That is just two method (which is pretty cool, I love spec based
>>> > programming).
>>> >
>>> >> El vie., 5 de jun. de 2015 a la(s) 6:30 p. m., Sven Van Caekenberghe
>>> >> <

> sven@

> > escribió:
>>> >>
>>> >>> On 05 Jun 2015, at 18:20, stepharo <

> stepharo@

> > wrote:
>>> >>>
>>> >>> Sven
>>> >>>
>>> >>> we were talking about splitting your package into two parts :)
>>> >>> Would you be ok to get the basic encoders in a separate package?
>>> >> Zinc-Character-Encoding is already a separate package, it depends on
>>> >> nothing.
>>> >> Zinc-Resource-Meta is next up (containing URL and Mime-Type).
>>> >> Both are completely independent of any HTTP stuff.
>>> >> All this is by design.
>>> >>
>>> >> You probably mean that you want a separate config ? Right now they
>>> are
>>> >> just a groups.
>>> >>
>>> >>> We were also thinking that NullEncoder could be called AsciiEncoder?
>>> >> Maybe, maybe not, let me think about that a bit.
>>> >>
>>> >>> Stef
>>> >>>
>>> >>>>> On 05 Jun 2015, at 18:09, Damien Cassou <

> damien.cassou@

> >
>>> >>>>> wrote:
>>> >>>>>
>>> >>>>>
>>> >>>>> Guillermo Polito <

> guillermopolito@

> > writes:
>>> >>>>>
>>> >>>>>> Well, I made a cleaner implementation at the side with
>>> >>>>>>
>>> >>>>>> - a simple File object that is a sequential File as we all know
>>> >>>>>> - a binary File stream on top of it that is composable with Zn
>>> >>>>>> encoders and
>>> >>>>>> other decorators
>>> >>>>>> - a new interface to access Stdio streams
>>> >>>>> that's really good news Guillermo.
>>> >>>> Yes it is (need time to look at this in detail)
>>> >>>>
>>> >>>>> Is it ok to make File reading depend
>>> >>>>> on Zinc? This sounds strange. Wouldn't that make bootstrapping
>>> >>>>> harder?
>>> >>>> It does not depend on the HTTP part, but on the Encoding part below
>>> >>>> it, so that should be OK.
>>> >>>>
>>> >>>>> --
>>> >>>>> Damien Cassou
>>> >>>>> http://damiencassou.seasidehosting.st
>>> >>>>>
>>> >>>>> "Success is the ability to go from one failure to another without
>>> >>>>> losing enthusiasm." --Winston Churchill
>>> >>>>>
>>> >>>>
>>> >>>
>>> >>
>>> >
>>> >
>>>
>>>
>>





--
View this message in context: 
http://forum.world.st/Refactoring-File-Package-tp4830625p4830987.html
Sent from the Pharo Smalltalk Developers mailing list archive at Nabble.com.

Reply via email to