Frank Shearar uploaded a new version of Morphic to project The Trunk:
http://source.squeak.org/trunk/Morphic-fbs.638.mcz
==================== Summary ====================
Name: Morphic-fbs.638
Author: fbs
Time: 5 February 2013, 11:03:21.697 pm
UUID: 78dd37be-9165-4279-a78a-d8892418990f
Ancestors: Morphic-bf.636
Backported From: Morphic-fbs.637
Stay in the debugger for longer. Part 1 of 3.
UI hooks to create overriding methods.
=============== Diff against Morphic-bf.636 ===============
Item was added:
+ ----- Method: PreDebugWindow>>createOverridingMethod (in category 'as yet unclassified') -----
+ createOverridingMethod
+ model createOverridingMethod!
Frank Shearar uploaded a new version of Exceptions to project The Trunk:
http://source.squeak.org/trunk/Exceptions-fbs.43.mcz
==================== Summary ====================
Name: Exceptions-fbs.43
Author: fbs
Time: 5 February 2013, 11:06:32.257 pm
UUID: 1a5409d5-3bfb-4728-9945-6898e8c3adca
Ancestors: Exceptions-cmm.37
Backported From: Exceptions-fbs.42
Stay in the debugger for longer. Part 2 of 3.
New exception hierarchy lets interesting parties catch NotImplemented errors to encourage developers to implement missing parts.
=============== Diff against Exceptions-cmm.37 ===============
Item was changed:
+ NotImplemented subclass: #MessageNotUnderstood
- Error subclass: #MessageNotUnderstood
instanceVariableNames: 'message receiver reachedDefaultHandler'
classVariableNames: ''
poolDictionaries: ''
category: 'Exceptions-Kernel'!
!MessageNotUnderstood commentStamp: '<historical>' prior: 0!
This exception is provided to support Object>>doesNotUnderstand:.!
Item was added:
+ Error subclass: #NotImplemented
+ instanceVariableNames: ''
+ classVariableNames: ''
+ poolDictionaries: ''
+ category: 'Exceptions-Kernel'!
Item was changed:
+ NotImplemented subclass: #NotYetImplemented
- Error subclass: #NotYetImplemented
instanceVariableNames: 'receiverClass selector context'
classVariableNames: ''
poolDictionaries: ''
category: 'Exceptions-Kernel'!
!NotYetImplemented commentStamp: 'jcg 10/21/2009 01:20' prior: 0!
Sent by #notYetImplemented. Better than the age-old behavior of opening a notifier window, because this can be caught and handled.
!
Item was removed:
- ----- Method: NotYetImplemented>>defaultAction (in category 'handling') -----
- defaultAction
- self inform: 'Not yet implemented (', self messageText, ')'!
Item was added:
+ NotImplemented subclass: #SubclassResponsibility
+ instanceVariableNames: ''
+ classVariableNames: ''
+ poolDictionaries: ''
+ category: 'Exceptions-Kernel'!
+
+ !SubclassResponsibility commentStamp: 'fbs 1/26/2013 00:20' prior: 0!
+ I am signalled when a subclass fails to implement an "abstract method" and something sends an instance of this subclass the unimplemented message.!
I know there are many of you that are just waiting with bated breath for a faster RISC OS Squeak; well now you can stop turning that unattractive shade of blue. I found a spot where a stupid amount of time was being wasted in the UI, fixed it and hey presto! A dramatic improvement in Morphic UI performance. No longer does typing drag horribly. No more do menus take a coffee break to appear.
http://www.rowledge.org/tim/squeak/Squeak3-9d-RISCOS.zip
As an aside - and talking of stupidly wasted time in the VM- it turns out that around 20% of the entire time is spent handling the insane nonsense of converting old-style Mac OS pixels into proper RISC OS pixels. Are x86 machines afflicted the same way? Maybe the fast graphics cards are able to mask the time taken, but I'm pretty sure they're spending some time on the job.
tim
--
tim Rowledge; tim(a)rowledge.org; http://www.rowledge.org/tim
Strange OpCodes: HEM: Hide Evidence of Malfunction
On 07-02-2013, at 2:02 AM, commits(a)source.squeak.org wrote:
> In Squeak trunk, the wait2ms delay is invoked only when in MVC. However, Scratch (and possibly other applications) makes use of direct sensor access from Morphic (arguably this is an error in Scratch, but the usage exists nonetheless).
I don't think it's at all arguable; Scratch appears to be spending near to 10% of its time (on a 3GHz iMac!) checking inappropriately for input events. I guess that's v2.8 Morphic for you...
tim
--
tim Rowledge; tim(a)rowledge.org; http://www.rowledge.org/tim
Strange OpCodes: HALT: No-Op
David T. Lewis uploaded a new version of Kernel to project The Trunk:
http://source.squeak.org/trunk/Kernel-dtl.733.mcz
==================== Summary ====================
Name: Kernel-dtl.733
Author: dtl
Time: 6 February 2013, 9:02:02.046 pm
UUID: b74ab5eb-4f9f-4f1a-bf6d-90f8f60fb3c4
Ancestors: Kernel-eem.732
Remove EventSensor>>wait2ms
Use of EventSensor>>wait2ms in sensor direct access to mouse and keyboard causes slow and incorrect keyboard handling in MVC. In newer Squeak images (3.9 and later), removing the delay restores normal MVC keyboard input.
This change removes the wait2ms delay entirely. If the problem described in http://lists.squeakfoundation.org/pipermail/squeak-dev/2007-May/116185.html should reappear, a different solution will be required.
Notes:
In Squeak trunk, the wait2ms delay is invoked only when in MVC. However, Scratch (and possibly other applications) makes use of direct sensor access from Morphic (arguably this is an error in Scratch, but the usage exists nonetheless).
Background:
Recent thread in which Stéphane Rollandin identified the source of the problem:
http://lists.squeakfoundation.org/pipermail/squeak-dev/2013-February/168526…
Rationale for introducing the delay in earlier versions of Squeak:
http://lists.squeakfoundation.org/pipermail/squeak-dev/2007-May/116185.html
=============== Diff against Kernel-eem.732 ===============
Item was changed:
----- Method: EventSensor>>peekButtons (in category 'accessing') -----
peekButtons
- self wait2ms.
self fetchMoreEvents.
^mouseButtons!
Item was changed:
----- Method: EventSensor>>peekPosition (in category 'accessing') -----
peekPosition
- self wait2ms.
self fetchMoreEvents.
^mousePosition!
Item was changed:
----- Method: EventSensor>>primKbdNext (in category 'private') -----
primKbdNext
"Allows for use of old Sensor protocol to get at the keyboard,
as when running kbdTest or the InterpreterSimulator in Morphic"
| evtBuf |
- self wait2ms.
self fetchMoreEvents.
keyboardBuffer isEmpty ifFalse:[^ keyboardBuffer next].
eventQueue ifNotNil:
[evtBuf := eventQueue nextOrNilSuchThat: [:buf | self isKbdEvent: buf].
self flushNonKbdEvents].
^ evtBuf ifNotNil: [evtBuf at: 3]
!
Item was changed:
----- Method: EventSensor>>primKbdPeek (in category 'private') -----
primKbdPeek
"Allows for use of old Sensor protocol to get at the keyboard,
as when running kbdTest or the InterpreterSimulator in Morphic"
| char |
- self wait2ms.
self fetchMoreEvents.
keyboardBuffer isEmpty ifFalse: [^ keyboardBuffer peek].
char := nil.
eventQueue ifNotNil:
[eventQueue nextOrNilSuchThat: "NOTE: must not return out of this block, so loop to end"
[:buf | (self isKbdEvent: buf) ifTrue: [char ifNil: [char := buf at: 3]].
false "NOTE: block value must be false so Queue won't advance"]].
^ char!
Item was changed:
----- Method: EventSensor>>primMouseButtons (in category 'private') -----
primMouseButtons
- self wait2ms.
self fetchMoreEvents.
self flushNonKbdEvents.
^ mouseButtons!
Item was changed:
----- Method: EventSensor>>primMousePt (in category 'private') -----
primMousePt
- self wait2ms.
self fetchMoreEvents.
self flushNonKbdEvents.
^ mousePosition!
Item was removed:
- ----- Method: EventSensor>>wait2ms (in category 'private') -----
- wait2ms
- (Delay forMilliseconds: 2) wait.!
http://www.mirandabanda.org/files/Cog/VM/VM.r2678
CogVM binaries as per VMMaker.oscog-eem.264/r2678.
Fix snapshot primitive failure in the StackVM and Cogit. The
primitive should fail, not merely return the receiver. Also if in
Cogit, need to back-up instruction pointer on failure.
Make reportMinimumUnusedHeadroom more informative (also print
available headroom).
--
best,
Eliot
Chris Muller uploaded a new version of SUnit to project The Trunk:
http://source.squeak.org/trunk/SUnit-cmm.92.mcz
==================== Summary ====================
Name: SUnit-cmm.92
Author: cmm
Time: 6 February 2013, 3:38:16.462 pm
UUID: 774a756e-adf4-424e-9c52-dbb10c18cd3d
Ancestors: SUnit-eem.91
Remove obsolete test.
=============== Diff against SUnit-eem.91 ===============
Item was removed:
- ----- Method: SUnitTest>>testIsNotRerunOnDebug (in category 'testing') -----
- testIsNotRerunOnDebug
-
- | case |
-
- case := self class selector: #testRanOnlyOnce.
- case run.
- case debug
- !
Eliot Miranda uploaded a new version of GetText to project The Trunk:
http://source.squeak.org/trunk/GetText-eem.26.mcz
==================== Summary ====================
Name: GetText-eem.26
Author: eem
Time: 6 February 2013, 1:12:06.471 pm
UUID: f1f7cd8d-ea16-4215-8574-2767498da59f
Ancestors: GetText-nice.25
Fix clearAllDomains. It used to use the non-existent
allCompiledMethodsDo:.
=============== Diff against GetText-nice.25 ===============
Item was changed:
----- Method: TextDomainManager class>>clearAllDomains (in category 'private') -----
clearAllDomains
+ "TextDomainManager clearAllDomains"
+ self systemNavigation allBehaviorsDo:
+ [:b|
+ b selectorsAndMethodsDo:
+ [:s :m |
+ m removeProperty: self textDomainProperty ifAbsent: []]]!
- SystemNavigation default
- allCompiledMethodDo: [:each | each
- removeProperty: self textDomainProperty
- ifAbsent: []] !