[squeak-dev] [Ann] Cuis: A new Squeak distribution

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
53 messages Options
123
Reply | Threaded
Open this post in threaded view
|

Re: [squeak-dev] [Ann] Cuis: A new Squeak distribution

Juan Vuletich-4
Bert Freudenberg wrote:

>
> On 28.03.2009, at 13:31, Juan Vuletich wrote:
>
>> Damien Cassou wrote:
>>> On Fri, Mar 27, 2009 at 9:16 PM, Juan Vuletich <[hidden email]>
>>> wrote:
>>>
>>>> I'm pleased to announce that Cuis is available. Cuis is a Squeak
>>>> distribution with emphasis on simplicity. You can download it from
>>>> http://www.jvuletich.org/Cuis/Cuis1.0-0158.zip . The web is not
>>>> done yet.
>>>>
>>>
>>> The content looks very ugly when using a composite window manager (I'm
>>> on Ubuntu with Compiz). When switching off compiz, things looks ok.
>>>
>>>
>> If I remeber correctly, these kind of problems also happened with
>> other Squeak distributions and was due to a kind of bug in BitBlt,
>> right?
>
> Not a BitBlt bug, but how BitBlt is used. If all drawing operations
> would set the Display's alpha component to 1 then it would be fully
> opaque.
>
It is a BitBlt bug. Evaluate and print this:

f1 _ Form extent: 8@8 depth: 32.
f1 fillColor: (Color r: 1.0 g: 1.0 b: 0.7 alpha: 0.6).
f2 _ Form extent: 8@8 depth: 32.
f2 fillColor: (Color r: 0.5 g: 1.0 b: 0.7 alpha: 0.7).
bb _(BitBlt toForm: f1) sourceForm: f2; combinationRule: 28; copyBits.
f1 display.
(f1 colorAt: 2@2) alpha

Rule 28 is rgbMin. The resulting color should be (Color r: 0.5 g: 1.0 b:
0.7 alpha: 0.6). But alpha is set to zero. This is a bug, and it is what
causes wrong alpha values in Display in Cuis.
>> Is it this problem http://bugs.squeak.org/view.php?id=7068 ?
>
>
> It sounds like that's the one. Old Unix VMs do not ignore the alpha
> channel of Display.
>
> - Bert -
>
>
I believe the best would be to honor the alpha channel, and be able to
set it correctly.

Cheers,
Juan Vuletich

Reply | Threaded
Open this post in threaded view
|

Re: Compositing problems (was Re: [squeak-dev] [Ann] Cuis: A new Squeak distribution)

Damien Cassou-3
In reply to this post by Bert Freudenberg
On Sat, Mar 28, 2009 at 2:02 PM, Bert Freudenberg <[hidden email]> wrote:
> You should use the latest VM which supposedly fixes that. If it still
> happens please post the output of "xdpyinfo".

I'm using a very recent vm:

3.10-3 #29 Fri Feb 27 22:09:30 GMT 2009 gcc 4.1.2

Please find attached xdpyinfo

--
Damien Cassou
http://damiencassou.seasidehosting.st



xdpyinfo (14K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

BitBlt rgbMin bug? (was Re: [squeak-dev] [Ann] Cuis: A new Squeak distribution)

Bert Freudenberg
In reply to this post by Juan Vuletich-4
Folks, it would be really helpful if you adapt the subject when the  
discussion strays from the original topic of a thread. Thanks.

Comments below.

On 30.03.2009, at 00:44, Juan Vuletich wrote:

> Bert Freudenberg wrote:
>>
>> On 28.03.2009, at 13:31, Juan Vuletich wrote:
>>
>>> Damien Cassou wrote:
>>>> The content looks very ugly when using a composite window manager  
>>>> (I'm
>>>> on Ubuntu with Compiz). When switching off compiz, things looks ok.
>>>>
>>> If I remeber correctly, these kind of problems also happened with  
>>> other Squeak distributions and was due to a kind of bug in BitBlt,  
>>> right?
>>
>> Not a BitBlt bug, but how BitBlt is used. If all drawing operations  
>> would set the Display's alpha component to 1 then it would be fully  
>> opaque.
>>
> It is a BitBlt bug. Evaluate and print this:
>
> f1 _ Form extent: 8@8 depth: 32.
> f1 fillColor: (Color r: 1.0 g: 1.0 b: 0.7 alpha: 0.6).
> f2 _ Form extent: 8@8 depth: 32.
> f2 fillColor: (Color r: 0.5 g: 1.0 b: 0.7 alpha: 0.7).
> bb _(BitBlt toForm: f1) sourceForm: f2; combinationRule: 28; copyBits.
> f1 display.
> (f1 colorAt: 2@2) alpha
>
> Rule 28 is rgbMin. The resulting color should be (Color r: 0.5 g:  
> 1.0 b: 0.7 alpha: 0.6). But alpha is set to zero. This is a bug, and  
> it is what causes wrong alpha values in Display in Cuis.

Not a bug per se, it's called rgbMin and not rgbaMin, right? Besides,  
even it would take the min of the alpha, then the alpha in the frame  
buffer would still not be 1 to indicate opaqueness.

I can't remember what the rgbMin rule is used for. Changing it might  
break something, or it might now. Does anyone know?

OTOH, isn't using min for text rendering a hack at best, which only  
works for black text?

- Bert -



Reply | Threaded
Open this post in threaded view
|

Re: Compositing problems (was Re: [squeak-dev] [Ann] Cuis: A new Squeak distribution)

Bert Freudenberg
In reply to this post by Damien Cassou-3

On 30.03.2009, at 09:30, Damien Cassou wrote:

> On Sat, Mar 28, 2009 at 2:02 PM, Bert Freudenberg <[hidden email]
> > wrote:
>> You should use the latest VM which supposedly fixes that. If it still
>> happens please post the output of "xdpyinfo".
>
> I'm using a very recent vm:
>
> 3.10-3 #29 Fri Feb 27 22:09:30 GMT 2009 gcc 4.1.2


That's too old ;) I fixed it in the olpc branch which was merged into  
the trunk in 3.10-4:

http://squeakvm.org/svn/squeak/trunk/platforms/unix/ChangeLog

- Bert -



Reply | Threaded
Open this post in threaded view
|

Re: BitBlt rgbMin bug? (was Re: [squeak-dev] [Ann] Cuis: A new Squeak distribution)

Juan Vuletich-4
In reply to this post by Bert Freudenberg
Bert Freudenberg wrote:
> Folks, it would be really helpful if you adapt the subject when the
> discussion strays from the original topic of a thread. Thanks.
>
Indeed. Apologies.

> Comments below.
>
> On 30.03.2009, at 00:44, Juan Vuletich wrote:
>
>> It is a BitBlt bug. Evaluate and print this:
>>
>> f1 _ Form extent: 8@8 depth: 32.
>> f1 fillColor: (Color r: 1.0 g: 1.0 b: 0.7 alpha: 0.6).
>> f2 _ Form extent: 8@8 depth: 32.
>> f2 fillColor: (Color r: 0.5 g: 1.0 b: 0.7 alpha: 0.7).
>> bb _(BitBlt toForm: f1) sourceForm: f2; combinationRule: 28; copyBits.
>> f1 display.
>> (f1 colorAt: 2@2) alpha
>>
>> Rule 28 is rgbMin. The resulting color should be (Color r: 0.5 g: 1.0
>> b: 0.7 alpha: 0.6). But alpha is set to zero. This is a bug, and it
>> is what causes wrong alpha values in Display in Cuis.
>
> Not a bug per se, it's called rgbMin and not rgbaMin, right? Besides,
> even it would take the min of the alpha, then the alpha in the frame
> buffer would still not be 1 to indicate opaqueness.
>
I believe it is a bug. Reasonable answers would be alpha = 1 (always
generate opaque colors), 0.6 (previous destination alpha), 0.7 (max
alpha between source and destination) or 0.65 (mean alpha between source
and destination). Any of these results would be consistent with the
result for other bit depths. Setting alpha to zero means that if the
destination depth is 32, rule 28 will always fill destination with
transparent, ignoring everything else. I think this can never be the
desired result.

BTW, the same problem happens with the following rules:
    20    rgbAdd: sourceWord with: destinationWord.  Sum of color components
    21    rgbSub: sourceWord with: destinationWord.  Difference of color
components
    27    rgbMax: sourceWord with: destinationWord.  Max of each color
component.
    28    rgbMin: sourceWord with: destinationWord.  Min of each color
component.
    29    rgbMin: sourceWord bitInvert32 with: destinationWord.  Min
with (max-source)
    37    rgbMul:with:

All these rules are currently useless if destination is 32 bit deep.

> I can't remember what the rgbMin rule is used for. Changing it might
> break something, or it might now. Does anyone know?
>
It should break nothing. Nobody can be actually using that transparent
in a meaningful way.

> OTOH, isn't using min for text rendering a hack at best, which only
> works for black text?
>
Yes. A hack at its best! See BitBlt >>
#installStrikeFont:foregroundColor:backgroundColor: (in Cuis). It is the
best I could do without requiring rule 41, that is not always available.
For other colors (not black) I turn off subpixel rendering, and use some
other rule (if possible, 34, alpha blend). See that I chose the rule and
color map carefully for different text color and destination depth.

> - Bert -
>

Cheers,
Juan Vuletich

Reply | Threaded
Open this post in threaded view
|

Re: [squeak-dev] [Ann] Cuis: A new Squeak distribution

hernan.wilkinson
In reply to this post by Juan Vuletich-4
Hi Juan,
 great work! a friend just told me and I could not wait to try it.... it flies!!!

On Fri, Mar 27, 2009 at 5:16 PM, Juan Vuletich <[hidden email]> wrote:
Hi Folks,

I'm pleased to announce that Cuis is available. Cuis is a Squeak distribution with emphasis on simplicity. You can download it from http://www.jvuletich.org/Cuis/Cuis1.0-0158.zip . The web is not done yet.

Some of the main ideas and objectives for Cuis are:

- Aimed at Smalltalk developers and people learning about Smalltalk
- Close to Smalltalk-80 and Dan Ingalls' ideas
- Compatible with the latest Squeak VMs
- MIT license (based on the work by Yoshiki Ohshima, from VPRI)
- Evolution by removing unnecessary complexity, not adding it
- Reduced Morphic
- No MVC or Etoys
- No M17N, Traits, Monticello, Omnibrowser, TTFonts, FreeType
- Includes support for building VM plugins, but not for building the VM
- Includes a set of high quality, antialiased StrikeFonts
- Backwards compatibility not important
- Include code from the Squeak project (various versions, Mantis, squak-dev, etc)

Cuis is under MIT license. It is the result of several years of cleanup, and it is currently being used in one commercial project. It is small and fast, and good for dev and learning. Besides PCs, it also runs great on older machines, PDAs and embedded devices.

I hope you like it.

Cheers,
Juan Vuletich




Reply | Threaded
Open this post in threaded view
|

Re: [squeak-dev] [Ann] Cuis: A new Squeak distribution

hernan.wilkinson
besides cleaning up Morph a little bit, did you do something else to make the UI run faster?

On Mon, Mar 30, 2009 at 5:55 PM, Hernan Wilkinson <[hidden email]> wrote:
Hi Juan,
 great work! a friend just told me and I could not wait to try it.... it flies!!!

On Fri, Mar 27, 2009 at 5:16 PM, Juan Vuletich <[hidden email]> wrote:
Hi Folks,

I'm pleased to announce that Cuis is available. Cuis is a Squeak distribution with emphasis on simplicity. You can download it from http://www.jvuletich.org/Cuis/Cuis1.0-0158.zip . The web is not done yet.

Some of the main ideas and objectives for Cuis are:

- Aimed at Smalltalk developers and people learning about Smalltalk
- Close to Smalltalk-80 and Dan Ingalls' ideas
- Compatible with the latest Squeak VMs
- MIT license (based on the work by Yoshiki Ohshima, from VPRI)
- Evolution by removing unnecessary complexity, not adding it
- Reduced Morphic
- No MVC or Etoys
- No M17N, Traits, Monticello, Omnibrowser, TTFonts, FreeType
- Includes support for building VM plugins, but not for building the VM
- Includes a set of high quality, antialiased StrikeFonts
- Backwards compatibility not important
- Include code from the Squeak project (various versions, Mantis, squak-dev, etc)

Cuis is under MIT license. It is the result of several years of cleanup, and it is currently being used in one commercial project. It is small and fast, and good for dev and learning. Besides PCs, it also runs great on older machines, PDAs and embedded devices.

I hope you like it.

Cheers,
Juan Vuletich





Reply | Threaded
Open this post in threaded view
|

Re: [squeak-dev] [Ann] Cuis: A new Squeak distribution

Juan Vuletich-4
In reply to this post by hernan.wilkinson
Hernan Wilkinson wrote:
> Hi Juan,
>  great work! a friend just told me and I could not wait to try it....
> it flies!!!
>
Thanks, HernĂ¡n!

Would you consider it for teaching Smalltalk at the University?

Cheers,
Juan Vuletich

> On Fri, Mar 27, 2009 at 5:16 PM, Juan Vuletich <[hidden email]
> <mailto:[hidden email]>> wrote:
>
>     Hi Folks,
>
>     I'm pleased to announce that Cuis is available. Cuis is a Squeak
>     distribution with emphasis on simplicity. You can download it from
>     http://www.jvuletich.org/Cuis/Cuis1.0-0158.zip . The web is not
>     done yet.
>
>     Some of the main ideas and objectives for Cuis are:
>
>     - Aimed at Smalltalk developers and people learning about Smalltalk
>     - Close to Smalltalk-80 and Dan Ingalls' ideas
>     - Compatible with the latest Squeak VMs
>     - MIT license (based on the work by Yoshiki Ohshima, from VPRI)
>     - Evolution by removing unnecessary complexity, not adding it
>     - Reduced Morphic
>     - No MVC or Etoys
>     - No M17N, Traits, Monticello, Omnibrowser, TTFonts, FreeType
>     - Includes support for building VM plugins, but not for building
>     the VM
>     - Includes a set of high quality, antialiased StrikeFonts
>     - Backwards compatibility not important
>     - Include code from the Squeak project (various versions, Mantis,
>     squak-dev, etc)
>
>     Cuis is under MIT license. It is the result of several years of
>     cleanup, and it is currently being used in one commercial project.
>     It is small and fast, and good for dev and learning. Besides PCs,
>     it also runs great on older machines, PDAs and embedded devices.
>
>     I hope you like it.
>
>     Cheers,
>     Juan Vuletich
>
>
> ------------------------------------------------------------------------
>
>
>  
> ------------------------------------------------------------------------
>
>
> No virus found in this incoming message.
> Checked by AVG - www.avg.com
> Version: 8.5.285 / Virus Database: 270.11.32/2030 - Release Date: 03/30/09 08:40:00
>
>  


Reply | Threaded
Open this post in threaded view
|

Re: [squeak-dev] [Ann] Cuis: A new Squeak distribution

Juan Vuletich-4
In reply to this post by hernan.wilkinson
Hernan Wilkinson wrote:
> besides cleaning up Morph a little bit, did you do something else to
> make the UI run faster?
>
Not sure. I removed and cleaned stuff everywhere, so it's hard to say
what had impact on UI performance and what didn't.

Cheers,
Juan Vuletich

> On Mon, Mar 30, 2009 at 5:55 PM, Hernan Wilkinson
> <[hidden email] <mailto:[hidden email]>> wrote:
>
>     Hi Juan,
>      great work! a friend just told me and I could not wait to try
>     it.... it flies!!!
>
>     On Fri, Mar 27, 2009 at 5:16 PM, Juan Vuletich <[hidden email]
>     <mailto:[hidden email]>> wrote:
>
>         Hi Folks,
>
>         I'm pleased to announce that Cuis is available. Cuis is a
>         Squeak distribution with emphasis on simplicity. You can
>         download it from
>         http://www.jvuletich.org/Cuis/Cuis1.0-0158.zip . The web is
>         not done yet.
>
>         Some of the main ideas and objectives for Cuis are:
>
>         - Aimed at Smalltalk developers and people learning about
>         Smalltalk
>         - Close to Smalltalk-80 and Dan Ingalls' ideas
>         - Compatible with the latest Squeak VMs
>         - MIT license (based on the work by Yoshiki Ohshima, from VPRI)
>         - Evolution by removing unnecessary complexity, not adding it
>         - Reduced Morphic
>         - No MVC or Etoys
>         - No M17N, Traits, Monticello, Omnibrowser, TTFonts, FreeType
>         - Includes support for building VM plugins, but not for
>         building the VM
>         - Includes a set of high quality, antialiased StrikeFonts
>         - Backwards compatibility not important
>         - Include code from the Squeak project (various versions,
>         Mantis, squak-dev, etc)
>
>         Cuis is under MIT license. It is the result of several years
>         of cleanup, and it is currently being used in one commercial
>         project. It is small and fast, and good for dev and learning.
>         Besides PCs, it also runs great on older machines, PDAs and
>         embedded devices.
>
>         I hope you like it.
>
>         Cheers,
>         Juan Vuletich
>
>
>


Reply | Threaded
Open this post in threaded view
|

Re: [squeak-dev] [Ann] Cuis: A new Squeak distribution

Adrian Lienhard

On Mar 31, 2009, at 15:12 , Juan Vuletich wrote:

> Hernan Wilkinson wrote:
>> besides cleaning up Morph a little bit, did you do something else  
>> to make the UI run faster?
>>
> Not sure. I removed and cleaned stuff everywhere, so it's hard to  
> say what had impact on UI performance and what didn't.

Hi Juan,

Did you create changesets or MC packages so that your cleanups could  
be reused (e.g., in Pharo or Squeak)?

Adrian

>
>
> Cheers,
> Juan Vuletich
>
>> On Mon, Mar 30, 2009 at 5:55 PM, Hernan Wilkinson <[hidden email]
>>  <mailto:[hidden email]>> wrote:
>>
>>   Hi Juan,
>>    great work! a friend just told me and I could not wait to try
>>   it.... it flies!!!
>>
>>   On Fri, Mar 27, 2009 at 5:16 PM, Juan Vuletich <[hidden email]
>>   <mailto:[hidden email]>> wrote:
>>
>>       Hi Folks,
>>
>>       I'm pleased to announce that Cuis is available. Cuis is a
>>       Squeak distribution with emphasis on simplicity. You can
>>       download it from
>>       http://www.jvuletich.org/Cuis/Cuis1.0-0158.zip . The web is
>>       not done yet.
>>
>>       Some of the main ideas and objectives for Cuis are:
>>
>>       - Aimed at Smalltalk developers and people learning about
>>       Smalltalk
>>       - Close to Smalltalk-80 and Dan Ingalls' ideas
>>       - Compatible with the latest Squeak VMs
>>       - MIT license (based on the work by Yoshiki Ohshima, from VPRI)
>>       - Evolution by removing unnecessary complexity, not adding it
>>       - Reduced Morphic
>>       - No MVC or Etoys
>>       - No M17N, Traits, Monticello, Omnibrowser, TTFonts, FreeType
>>       - Includes support for building VM plugins, but not for
>>       building the VM
>>       - Includes a set of high quality, antialiased StrikeFonts
>>       - Backwards compatibility not important
>>       - Include code from the Squeak project (various versions,
>>       Mantis, squak-dev, etc)
>>
>>       Cuis is under MIT license. It is the result of several years
>>       of cleanup, and it is currently being used in one commercial
>>       project. It is small and fast, and good for dev and learning.
>>       Besides PCs, it also runs great on older machines, PDAs and
>>       embedded devices.
>>
>>       I hope you like it.
>>
>>       Cheers,
>>       Juan Vuletich
>>
>>
>>
>
>


Reply | Threaded
Open this post in threaded view
|

Re: [squeak-dev] [Ann] Cuis: A new Squeak distribution

Juan Vuletich-4
Adrian Lienhard wrote:

>
> On Mar 31, 2009, at 15:12 , Juan Vuletich wrote:
>
>> Hernan Wilkinson wrote:
>>> besides cleaning up Morph a little bit, did you do something else to
>>> make the UI run faster?
>>>
>> Not sure. I removed and cleaned stuff everywhere, so it's hard to say
>> what had impact on UI performance and what didn't.
>
> Hi Juan,
>
> Did you create changesets or MC packages so that your cleanups could
> be reused (e.g., in Pharo or Squeak)?
>
> Adrian
Hi Adrian,

I did not. I did create changesets for many small goodies, that could be
useful in other images. I have 160 change sets, and I need to document
them a bit. I'm planning to publish them during this week.

Cheers,
Juan Vuletich

Reply | Threaded
Open this post in threaded view
|

Re: BitBlt rgbMin bug? (was Re: [squeak-dev] [Ann] Cuis: A new Squeak distribution)

Bert Freudenberg
In reply to this post by Juan Vuletich-4
On 30.03.2009, at 14:31, Juan Vuletich wrote:

> Bert Freudenberg wrote:
>> On 30.03.2009, at 00:44, Juan Vuletich wrote:
>>
>>> It is a BitBlt bug. Evaluate and print this:
>>>
>>> f1 _ Form extent: 8@8 depth: 32.
>>> f1 fillColor: (Color r: 1.0 g: 1.0 b: 0.7 alpha: 0.6).
>>> f2 _ Form extent: 8@8 depth: 32.
>>> f2 fillColor: (Color r: 0.5 g: 1.0 b: 0.7 alpha: 0.7).
>>> bb _(BitBlt toForm: f1) sourceForm: f2; combinationRule: 28;  
>>> copyBits.
>>> f1 display.
>>> (f1 colorAt: 2@2) alpha
>>>
>>> Rule 28 is rgbMin. The resulting color should be (Color r: 0.5 g:  
>>> 1.0 b: 0.7 alpha: 0.6). But alpha is set to zero. This is a bug,  
>>> and it is what causes wrong alpha values in Display in Cuis.
>>
>> Not a bug per se, it's called rgbMin and not rgbaMin, right?  
>> Besides, even it would take the min of the alpha, then the alpha in  
>> the frame buffer would still not be 1 to indicate opaqueness.
>>
> I believe it is a bug. Reasonable answers would be alpha = 1 (always  
> generate opaque colors), 0.6 (previous destination alpha), 0.7 (max  
> alpha between source and destination) or 0.65 (mean alpha between  
> source and destination). Any of these results would be consistent  
> with the result for other bit depths. Setting alpha to zero means  
> that if the destination depth is 32, rule 28 will always fill  
> destination with transparent, ignoring everything else. I think this  
> can never be the desired result.
>
> BTW, the same problem happens with the following rules:
>   20    rgbAdd: sourceWord with: destinationWord.  Sum of color  
> components
>   21    rgbSub: sourceWord with: destinationWord.  Difference of  
> color components
>   27    rgbMax: sourceWord with: destinationWord.  Max of each color  
> component.
>   28    rgbMin: sourceWord with: destinationWord.  Min of each color  
> component.
>   29    rgbMin: sourceWord bitInvert32 with: destinationWord.  Min  
> with (max-source)
>   37    rgbMul:with:
>
> All these rules are currently useless if destination is 32 bit deep.
>
>> I can't remember what the rgbMin rule is used for. Changing it  
>> might break something, or it might now. Does anyone know?
>>
> It should break nothing. Nobody can be actually using that  
> transparent in a meaningful way.


Not for display purposes. But BitBlt has been used for numeric stuff,  
too, where it would make a difference.

OTOH I agree that making the results in 32 bits match the ones in  
lower bit depths is sensible. Care to send a changeset to vm-dev?

- Bert -



Reply | Threaded
Open this post in threaded view
|

Re: BitBlt rgbMin bug? (was Re: [squeak-dev] [Ann] Cuis: A new Squeak distribution)

Juan Vuletich-4
Bert Freudenberg wrote:

>
>> ...
>>> I can't remember what the rgbMin rule is used for. Changing it might
>>> break something, or it might now. Does anyone know?
>>>
>> It should break nothing. Nobody can be actually using that
>> transparent in a meaningful way.
>
>
> Not for display purposes. But BitBlt has been used for numeric stuff,
> too, where it would make a difference.
>
> OTOH I agree that making the results in 32 bits match the ones in
> lower bit depths is sensible. Care to send a changeset to vm-dev?
>
> - Bert -
>
>

Done.

Cheers,
Juan Vuletich

123