[squeak-dev] The Trunk: Kernel-eem.1117.mcz

Nicolas Cellier nicolas.cellier.aka.nice at gmail.com
Fri Nov 10 07:00:09 UTC 2017


But old implementation was a to:do: loop on indices with (self tempAt: i)
So we already pay the price of low level procedural style,
why having to pay the stream overhead?
It makes code more convoluted than necessary (a higher level dsiguise)

Or should we rewrite most of SequenceableCollection protocol?

2017-11-10 2:55 GMT+01:00 Chris Muller <asqueaker at gmail.com>:

> +1.  #streamContents: is a high-level message.
>
> Eliot is a master of C programming, I guess we all see our own style
> as less baroque.  I generally try to retain original authors' style
> and formatting  as much as possible unless I'm making significant
> changes to the method.  I would never only replace someone's
> formatting or style with my own.
>
>
> On Tue, Nov 7, 2017 at 11:58 PM, Tobias Pape <Das.Linux at gmx.de> wrote:
> >
> >> On 08.11.2017, at 02:11, commits at source.squeak.org wrote:
> >>
> >> Eliot Miranda uploaded a new version of Kernel to project The Trunk:
> >> http://source.squeak.org/trunk/Kernel-eem.1117.mcz
> >>
> >> ==================== Summary ====================
> >>
> >> Name: Kernel-eem.1117
> >> Author: eem
> >> Time: 7 November 2017, 5:11:32.043344 pm
> >> UUID: 110255e1-5b72-4d99-96bb-e5068c2f5b5b
> >> Ancestors: Kernel-tpr.1116
> >>
> >> Use a slightly less baroque implemetation for Context>>arguments,
> equivalent to Pharo's.
> >>
> >
> > What is baroque about that?
> > I'd prefer the other stile any time.
> > I especially find the assignment in the "computation" of the argument
> ugly (the n assignment) and potentially confusing.
> >
> > I'm a bit puzzled you prefer the style you just put there to the
> streaming constructor…
> >
> > Best regards
> >         -Tobias
> >
> >> =============== Diff against Kernel-tpr.1116 ===============
> >>
> >> Item was changed:
> >>  ----- Method: Context>>arguments (in category 'accessing') -----
> >>  arguments
> >> +     "Answer the receiver's arguments as an Array.
> >> +      We could use simply ^(1 to: self numArgs) collect: [:i| self
> tempAt: i]
> >> +      but for performance and minimality we use the implementation
> below."
> >> +     | n args |
> >> +     args := Array new: (n := self numArgs).
> >> +     1 to: n do: [:i| args at: i put: (self tempAt: i)].
> >> +     ^args!
> >> -
> >> -     ^ Array new: self numArgs streamContents: [:args |
> >> -             1 to: self numArgs do: [: i |
> >> -                     args nextPut: (self tempAt: i)]]!
> >>
> >>
> >
> >
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20171110/ba8e7f0d/attachment.html>


More information about the Squeak-dev mailing list