[squeak-dev] The Trunk: Kernel-nice.939.mcz

Nicolas Cellier nicolas.cellier.aka.nice at gmail.com
Sat Apr 23 21:39:03 UTC 2016


Oops !
It seems that I updated from 5.0 repository rather than trunk.
I've been away too long, let me redo it...

2016-04-23 23:34 GMT+02:00 <commits at source.squeak.org>:

> Nicolas Cellier uploaded a new version of Kernel to project The Trunk:
> http://source.squeak.org/trunk/Kernel-nice.939.mcz
>
> ==================== Summary ====================
>
> Name: Kernel-nice.939
> Author: nice
> Time: 23 April 2016, 11:32:52.246 pm
> UUID: 4bdcd7ec-9c52-4b77-94e1-cf87a2ee35d5
> Ancestors: Kernel-mt.938
>
> Accelerate bitAnd: in case of negative small integer receiver and
> LargePositiveInteger operand.
>
> The timings before and after are:
>
> [(-1234 bitAnd: 5678)] bench.
>         161,000,000 per second. 6.22 nanoseconds per run.
>         161,000,000 per second. 6.2 nanoseconds per run.
> [(-1234 bitAnd: 5678125641253)] bench.
>         1,120,000 per second. 892 nanoseconds per run.
>         5,020,000 per second. 199 nanoseconds per run.
> [(-1234 bitAnd: -5678125641253)] bench.
>         1,830,000 per second. 547 nanoseconds per run.
>         1,790,000 per second. 557 nanoseconds per run.
> [(-1234 bitAnd: 567812564128976768553)] bench.
>         984,000 per second. 1.02 microseconds per run.
>         2,320,000 per second. 431 nanoseconds per run.
> [(-1234 bitAnd: -567812564128976768553)] bench.
>         1,790,000 per second. 559 nanoseconds per run.
>         1,690,000 per second. 593 nanoseconds per run.
>
> =============== Diff against Kernel-cmm.937 ===============
>
> Item was changed:
>   ----- Method: Process>>stepToHome: (in category 'changing suspended
> state') -----
>   stepToHome: aContext
>         "Resume self until the home of top context is aContext.  Top
> context may be a block context.
>          Catch any UnhandledErrors that are created while stepping,
> answering the relevant signalerContext
>          if so. Note that this will cause weird effects if using through
> to step through UnhandledError
>          code, but as the doctor ordered, don't do that; use over or into
> instead."
>
>         ^Processor activeProcess
>                 evaluate:
>                         [| home anError |
>                         home := aContext home.
>                         [suspendedContext := suspendedContext step.
>                          home == suspendedContext home or: [home isDead]]
> whileFalse:
>                                 [(suspendedContext selector ==
> #signalForException:
> +                                and: [(suspendedContext receiver
> isBehavior and: [
> +                                               suspendedContext receiver
> includesBehavior: UnhandledError])
> -                                and: [suspendedContext receiver ==
> UnhandledError
>                                  and: [anError := suspendedContext tempAt:
> 1.
>                                            ((suspendedContext objectClass:
> anError) includesBehavior: Exception)
>                                  and: [anError
> canSearchForSignalerContext]]]) ifTrue:
>                                         [anError signalerContext ifNotNil:
>
> [:unhandledErrorSignalerContext|
>
> [unhandledErrorSignalerContext == suspendedContext] whileFalse:
>                                                         [self
> completeStep: suspendedContext].
>                                                 "Give a debugger a chance
> to update its title to reflect the new exception"
>                                                  Notification new
>                                                         tag:
> {unhandledErrorSignalerContext. anError};
>                                                         signal.
>
> ^unhandledErrorSignalerContext]]].
>                         suspendedContext]
>                 onBehalfOf: self!
>
> Item was changed:
>   ----- Method: SmallInteger>>bitAnd: (in category 'bit manipulation')
> -----
>   bitAnd: arg
>         "Primitive. Answer an Integer whose bits are the logical OR of the
>         receiver's bits and those of the argument, arg.
>         Numbers are interpreted as having 2's-complement representation.
>         Essential.  See Object documentation whatIsAPrimitive."
>
>         <primitive: 14>
>         self >= 0 ifTrue: [^ arg bitAnd: self].
> +       ^ arg < 0
> +               ifTrue: [(arg bitInvert bitOr: self bitInvert) bitInvert]
> +               ifFalse: [arg bitClear: self bitInvert]!
> -       ^ (self bitInvert bitOr: arg bitInvert) bitInvert!
>
> Item was changed:
>   Exception subclass: #UnhandledError
>         instanceVariableNames: 'exception'
>         classVariableNames: ''
>         poolDictionaries: ''
>         category: 'Kernel-Exceptions'!
> +
> + !UnhandledError commentStamp: 'mt 8/25/2015 14:42' prior: 0!
> + This is a wrapper for an unhandled error. Having this, process stepping
> is able to correctly fire other unhandled errors. See Process >>
> #stepToHome: for further explanations.!
>
> Item was changed:
>   ----- Method: UnhandledError class>>signalForException: (in category 'as
> yet unclassified') -----
>   signalForException: anError
> +       "Very important entry point for analysis stack when stepping in a
> debugging session. See Process >> #stepToHome: for further explanations."
> +
> -
>         ^ self new
>                 exception: anError;
>                 signal!
>
> Item was changed:
> + ----- Method: UnhandledError>>exception (in category 'accessing') -----
> - ----- Method: UnhandledError>>exception (in category 'as yet
> unclassified') -----
>   exception
>
>         ^ exception!
>
> Item was changed:
> + ----- Method: UnhandledError>>exception: (in category 'accessing') -----
> - ----- Method: UnhandledError>>exception: (in category 'as yet
> unclassified') -----
>   exception: anError
>
>         exception := anError!
>
> Item was added:
> + UnhandledError subclass: #UnhandledWarning
> +       instanceVariableNames: ''
> +       classVariableNames: ''
> +       poolDictionaries: ''
> +       category: 'Kernel-Exceptions'!
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20160423/11f870c5/attachment.htm


More information about the Squeak-dev mailing list