Hoi all--
I'll be doing the Annual Squeak Shoutout again at FOSDEM in
Bruxelles this weekend. Please let me know of any Squeak-related
accomplishments you'd like me to mention! So far I'll be showing off
Squeak 4.5 rc 1, shouting out mad props to Chris.
thanks again,
-C
--
Craig Latta
www.netjam.org/resume
+ 1 510 984 8117
+31 20 893 2796
On 3 February 2014 13:48, <commits(a)source.squeak.org> wrote:
> A new version of Collections was added to project The Inbox:
> http://source.squeak.org/inbox/Collections-ul.564.mcz
>
> ==================== Summary ====================
>
> Name: Collections-ul.564
> Author: ul
> Time: 3 February 2014, 2:35:36.802 pm
> UUID: 4b9a37ef-df86-40a0-a0dd-8e8b2c04d4ed
> Ancestors: Collections-ul.563
>
> Make sure that Array >> #isLiteral won't get into an infinite recursion, even if the receiver has an recursive structure.
>
> =============== Diff against Collections-ul.563 ===============
>
> Item was changed:
> ----- Method: Array>>isLiteral (in category 'testing') -----
> isLiteral
> +
> + ^self class == Array and: [
> + self isLiteralIfContainedBy: IdentitySet new ]!
> - ^self class == Array and: [self allSatisfy: [:each | each isLiteral]]!
>
> Item was added:
> + ----- Method: Array>>isLiteralIfContainedBy: (in category 'testing') -----
> + isLiteralIfContainedBy: parents
> + " Answer whether the receiver has a literal text form recognized by the compiler. Precondition: the receiver is an instance of Array. "
> +
> + (parents includes: self) ifTrue: [ ^false ].
> + parents add: self.
> + 1 to: self size do: [ :index |
> + | element |
> + element := self at: index.
> + (element class == Array
> + ifTrue: [ element isLiteralIfContainedBy: parents ]
> + ifFalse: [ element isLiteral ]) ifFalse: [ ^false ] ].
> + parents remove: self.
> + ^true!
So this is a basic depth first traversal with cycle protection, yes?
(This pattern seems to crop up _a lot_. Maybe it's worth pulling out
as a separate algorithm?)
frank
Chris Muller uploaded a new version of Collections to project The Trunk:
http://source.squeak.org/trunk/Collections-ul.564.mcz
==================== Summary ====================
Name: Collections-ul.564
Author: ul
Time: 3 February 2014, 2:35:36.802 pm
UUID: 4b9a37ef-df86-40a0-a0dd-8e8b2c04d4ed
Ancestors: Collections-ul.563
Make sure that Array >> #isLiteral won't get into an infinite recursion, even if the receiver has an recursive structure.
=============== Diff against Collections-ul.563 ===============
Item was changed:
----- Method: Array>>isLiteral (in category 'testing') -----
isLiteral
+
+ ^self class == Array and: [
+ self isLiteralIfContainedBy: IdentitySet new ]!
- ^self class == Array and: [self allSatisfy: [:each | each isLiteral]]!
Item was added:
+ ----- Method: Array>>isLiteralIfContainedBy: (in category 'testing') -----
+ isLiteralIfContainedBy: parents
+ " Answer whether the receiver has a literal text form recognized by the compiler. Precondition: the receiver is an instance of Array. "
+
+ (parents includes: self) ifTrue: [ ^false ].
+ parents add: self.
+ 1 to: self size do: [ :index |
+ | element |
+ element := self at: index.
+ (element class == Array
+ ifTrue: [ element isLiteralIfContainedBy: parents ]
+ ifFalse: [ element isLiteral ]) ifFalse: [ ^false ] ].
+ parents remove: self.
+ ^true!
A new version of Collections was added to project The Inbox:
http://source.squeak.org/inbox/Collections-ul.564.mcz
==================== Summary ====================
Name: Collections-ul.564
Author: ul
Time: 3 February 2014, 2:35:36.802 pm
UUID: 4b9a37ef-df86-40a0-a0dd-8e8b2c04d4ed
Ancestors: Collections-ul.563
Make sure that Array >> #isLiteral won't get into an infinite recursion, even if the receiver has an recursive structure.
=============== Diff against Collections-ul.563 ===============
Item was changed:
----- Method: Array>>isLiteral (in category 'testing') -----
isLiteral
+
+ ^self class == Array and: [
+ self isLiteralIfContainedBy: IdentitySet new ]!
- ^self class == Array and: [self allSatisfy: [:each | each isLiteral]]!
Item was added:
+ ----- Method: Array>>isLiteralIfContainedBy: (in category 'testing') -----
+ isLiteralIfContainedBy: parents
+ " Answer whether the receiver has a literal text form recognized by the compiler. Precondition: the receiver is an instance of Array. "
+
+ (parents includes: self) ifTrue: [ ^false ].
+ parents add: self.
+ 1 to: self size do: [ :index |
+ | element |
+ element := self at: index.
+ (element class == Array
+ ifTrue: [ element isLiteralIfContainedBy: parents ]
+ ifFalse: [ element isLiteral ]) ifFalse: [ ^false ] ].
+ parents remove: self.
+ ^true!
Hi All,
Only 10 days left to announce your candidacy for the Squeak Oversight board.
We do not currently have enough candidates. Please consider running for the
board!
All the best,
Ron Teitelbaum
A bunch of the Trait tests fail, despite no one having worked on the
Traits code in quite a while. The symptom is that the tests time out
[1]. I've tried to debug some, only to find that they pass. For
instance, <timeout: 60> sometimes "fixes" the tests.
But the tests shouldn't be failing. Any takers?
frank
[1] http://build.squeak.org/job/SqueakTrunk/756/testReport/TraitsTests.Kernel/T…
Hi,
Here is some feedback concerning the new splitters functionality.
*It's great!* But there should be a minimal width. I managed to almost
completely hide the protocol panel. It should not hide anything!
Best wishes,
Mateusz