[squeak-dev] The Trunk: Graphics-pre.405.mcz

Chris Muller asqueaker at gmail.com
Wed Oct 17 20:36:47 UTC 2018


Hi Levente,

The issue at large here (and what the swiki updates are about) is
management of quality ancestry and code repository.  I'm asking you to
care about the "content" of Squeak that lies beyond the current
running code in the image memory.  We have had on-going and very
tiring discussions through the years, particularly when spirit and
letter of the "New Community Development Model" was violated.  These
three:

* Exercise caution. This is a running system and breaking it
needlessly is generally frowned upon.
* Restrain yourself. Getting developer access doesn’t mean you are
free to put in every pet extension you always wanted to have without
discussion.
* If in doubt, ask. T....

very much resemble what I wrote on the swiki.  And they appear before:

* You break it, you fix it.

Reading between the lines, "You break it, you fix it" is the
*last-resort* when the first three failed.

If someone submits a whimsical, same-day change to low-level,
high-impact methods with ZERO testing, breaks the image, then is
immediately "undone" with another commit, then it is going to get
admin'd.  It happens.  In this instance, please do not feign like
purging litter caused harm.   It was the original whimsical same-day
low-level method commit that caused the harm, including having these
endless discussions about it instead of just reverting one package and
saying "thanks, sorry for the goof up, next time I'll use the Inbox."
  :(

On Wed, Oct 17, 2018 at 2:52 PM Levente Uzonyi <leves at caesar.elte.hu> wrote:
>
> Hi Chris,
>
> I was wondering where that list of rules came from, because they don't
> even resemble the actual Trunk developement rules[1].
> So, I checked the entry and found that the list was added to the wiki this
> July[2].
> I don't remember any discussion about changing the Trunk developement
> rules. Was there such discussion? If so, where can I find it?
>
> Levente
>
> [1] https://squeakboard.wordpress.com/2009/07/02/a-new-community-development-model/
> [2] http://wiki.squeak.org/squeak/3279.diff?id=60
>
> On Tue, 16 Oct 2018, Chris Muller wrote:
>
> > I've gone and moved these two inadvertent commits to the Treated Inbox.
> >
> > If you'd already updated your trunk image in the last few hours,
> > revert your image to Graphics-pre.403.
> >
> > Since we're starting fresh on a new development cycle, please take
> > this opportunity to review Guidelines for Core Developers for Trunk
> > submissions:
> >
> >    http://wiki.squeak.org/squeak/3279
> >
> > Regards,
> >  Chris
> >
> > ___________________
> > 1.  Commit it to the Inbox first.
> > 2.  Regard the code repository with equal respect to the image, for
> > example, by avoiding unnecessary litter and bloat.
> > 3.  Never only change formatting, and even avoid changing prior
> > developers formatting when making only minor changes to a method.
> > 4.  Give your peers a chance to review, commit to the Inbox first.
> > 5.  Never commit same-day code. Think about it and live with it for at
> > least a few days first.
> > 6.  Share it with others for extra review eyes. The Inbox is a great
> > way to do this.
> > 7.  Only commit meaningful changes like a fix or improvement, not
> > merely a spelling or comment fix. Gather those up to include the next
> > time there is a meaningful change to that package.
> >
> >
> > On Tue, Oct 16, 2018 at 11:08 AM <commits at source.squeak.org> wrote:
> >>
> >> Patrick Rein uploaded a new version of Graphics to project The Trunk:
> >> http://source.squeak.org/trunk/Graphics-pre.405.mcz
> >>
> >> ==================== Summary ====================
> >>
> >> Name: Graphics-pre.405
> >> Author: pre
> >> Time: 16 October 2018, 5:07:10.382369 pm
> >> UUID: 75b41799-4dd2-7a44-b98f-89612c4d7af9
> >> Ancestors: Graphics-pre.404
> >>
> >> Restores the 32bit black-transparent conversion. The corresponding test has been adapted and set to be an expected failure as the behavior should be tackled for 32bit at one point. The inconsistency results in major issues when working with forms resulting from loading pictures from external resources. An alternative approach would require changing all methods creating forms from external sources, although that would destroy color information.
> >>
> >> =============== Diff against Graphics-pre.404 ===============
> >>
> >> Item was changed:
> >>   ----- Method: Color class>>colorFromPixelValue:depth: (in category 'instance creation') -----
> >>   colorFromPixelValue: p depth: d
> >>         "Convert a pixel value for the given display depth into a color."
> >>         "Details: For depths of 8 or less, the pixel value is simply looked up in a table. For greater depths, the color components are extracted and converted into a color."
> >>
> >>         | r g b alpha |
> >>         d = 8 ifTrue: [^ IndexedColors at: (p bitAnd: 16rFF) + 1].
> >>         d = 4 ifTrue: [^ IndexedColors at: (p bitAnd: 16r0F) + 1].
> >>         d = 2 ifTrue: [^ IndexedColors at: (p bitAnd: 16r03) + 1].
> >>         d = 1 ifTrue: [^ IndexedColors at: (p bitAnd: 16r01) + 1].
> >>
> >>         (d = 16) | (d = 15) ifTrue: [
> >>                 "five bits per component"
> >>                 r := (p bitShift: -10) bitAnd: 16r1F.
> >>                 g := (p bitShift: -5) bitAnd: 16r1F.
> >>                 b := p bitAnd: 16r1F.
> >>                 (r = 0 and: [g = 0]) ifTrue: [
> >>                         b = 0 ifTrue: [^Color transparent].
> >>                         b = 1 ifTrue: [^Color black]].
> >>                 ^ Color r: r g: g b: b range: 31].
> >>
> >>         d = 32 ifTrue: [
> >>                 "eight bits per component; 8 bits of alpha"
> >>                 r := (p bitShift: -16) bitAnd: 16rFF.
> >>                 g := (p bitShift: -8) bitAnd: 16rFF.
> >>                 b := p bitAnd: 16rFF.
> >>                 alpha := p bitShift: -24.
> >>                 alpha = 0 ifTrue: [^Color transparent].
> >> +               (r = 0 and: [g = 0 and: [b = 0]])  ifTrue: [^Color transparent].
> >>                 alpha < 255
> >>                         ifTrue: [^ (Color r: r g: g b: b range: 255) alpha: (alpha asFloat / 255.0)]
> >>                         ifFalse: [^ (Color r: r g: g b: b range: 255)]].
> >>
> >>         d = 12 ifTrue: [
> >>                 "four bits per component"
> >>                 r := (p bitShift: -8) bitAnd: 16rF.
> >>                 g := (p bitShift: -4) bitAnd: 16rF.
> >>                 b := p bitAnd: 16rF.
> >>                 ^ Color r: r g: g b: b range: 15].
> >>
> >>         d = 9 ifTrue: [
> >>                 "three bits per component"
> >>                 r := (p bitShift: -6) bitAnd: 16r7.
> >>                 g := (p bitShift: -3) bitAnd: 16r7.
> >>                 b := p bitAnd: 16r7.
> >>                 ^ Color r: r g: g b: b range: 7].
> >>
> >>         self error: 'unknown pixel depth: ', d printString
> >>   !
> >>
> >>
>


More information about the Squeak-dev mailing list