The attention to detail on these cleanups to make everything symmetrical is 
very nice - cool work.

Tim

On Fri, 18 Nov 2022, at 7:15 AM, Marcus Denker wrote:
> We merged 18 PRs
>
> Lots of improvements related to  BlockClosures this week. 
>
> First some helper methods on the AST:
> - #hasNonLocalReturn: check if there is a non-local return
> - #isConstant: Blocks of the kind [#justSomeLiteral]
> - #constantValue: return that literal (and nil for empty [] )
> - #numArgs for RBBlockNode, as we have already for BlockClosure  "[:a | 
> ] sourceNode numArgs"
>
> Some improvements for isClean:
> - unify between AST and BlockClosure
> - more tests
> - inlined blocks can be clean, important as it is recursive: [true 
> ifTrue: []] should be clean
> - cleanup code in CleanBlock, receiver is known to be nil
>
> Compiler support for ConstantBlockClosure:
> - We can specialize clean blocks of the kind [#justSomeLiteral] to 
> execute faster
> - add ConstantBlockClosure, add compiler support, active when compiling 
> with clean blocks enabled
>
> Compiler support for full block without outer context:
> - we only need the outerContext for non-local returns. 
> - add support to IRBuilder for full blocks without outer context
> - implement compiler support (option #optionBlockClosureOptionalOuter, 
> false for now)
>
> Quick return for Blocks:
> - Compile quickreturn for CompiledBlock, just like CompiledMethod (e.g. 
> for [^1]).
> - speeds up execution a little (but of course not creation)
>
> Block Closures
> ==============
>
> - AST: add a recursive #hasNonLocalReturn and #isConstant #11882
>       https://github.com/pharo-project/pharo/pull/11882
>       
> - add #numArgs to RBBlockNode #11902
>       https://github.com/pharo-project/pharo/pull/11902
>
> - CleanBlock cleanup code: there should be no receiver ivar #11884
>       https://github.com/pharo-project/pharo/pull/11884
>       
> - 11881-RBBlockNodeisClean-takes-every-optimized-block-to-be-not-clean #11890
>       https://github.com/pharo-project/pharo/pull/11890
>       
> - 1883-CleanBlockChecker-does-not-recurse-into-the-blocks #11900
>       https://github.com/pharo-project/pharo/pull/11900
>       
> - ConstantBlockClosure: active when compiling with clean blocks enabled #11894
>       https://github.com/pharo-project/pharo/pull/11894
>       
> - CompiledBlocks: compile quick returns #11907
>       https://github.com/pharo-project/pharo/pull/11907
>
> - IRBuilder: add support for outerContext flag for Closure creation #11905
>       https://github.com/pharo-project/pharo/pull/11905
>       
> - 11911-Compiler-add-compiler-option-for-outerContextNeeded #11917
>       https://github.com/pharo-project/pharo/pull/11917
>       
>
>
> Fixes
> =====
>
> - Register-as-basicInspector #431
>       https://github.com/pharo-spec/NewTools/pull/431
>       
> - 11803 return value of inspect should be the receiver and not a sp 
> window presenter #11886
>       https://github.com/pharo-project/pharo/pull/11886
>       
> - Fixes #429, VersionBrowser: left pane empty #430
>       https://github.com/pharo-spec/NewTools/pull/430
>
> - Turn off ReLongMethodsRule for test methods #11892
>       https://github.com/pharo-project/pharo/pull/11892
>       
> - ClassParser: Implement #asSlot to return a correct Slot instances for 
> complex slots #11898
>       https://github.com/pharo-project/pharo/pull/11898
>       
> - Fixes #11802 - Adds full consistency checks to class Time #11891
>       https://github.com/pharo-project/pharo/pull/11891
>       
> - Fixing to correctly get the VM for running the tests #11897
>       https://github.com/pharo-project/pharo/pull/11897
>       
> - Fixes #429, VersionBrowser: left pane empty #430
>       https://github.com/pharo-spec/NewTools/pull/430
>       
> Cleanup
> =======
> - 11810-FT2Handle-classstartUp-compiled-code-on-image-startup #11811
>       https://github.com/pharo-project/pharo/pull/11811
>          
>       
>       
> Comments
> =========
>
> - fixing comments in package Regex #11888
>       https://github.com/pharo-project/pharo/pull/11888

Reply via email to