This week (44/2020) on the Issue Tracker

MD
Marcus Denker
Fri, Oct 30, 2020 8:21 AM

NewTools and Spec merge

https://github.com/pharo-project/pharo/pull/7510

v0.4.5
- StInspector and StDebugegr now uses a paginator to better show miller collumns.
- Some minor bugfixes
- Activated CI

NewTools v0.4.4
- new tool SystemReporter (thanks Stef)
- some changes on debugger inspector ui, looking to make things more pleasant.
- fixes pharo-spec/NewTools#120
- fixes pharo-spec/NewTools#113
- fixes #6940
- fixes #7456
- fixes #7453
- fixes #7451

Spec2 v0.7.5
- SpFilterWithListPresenter was renamed to SpFilteringListPresenter.
- lists and trees now use displayIcon: to answer an icon instead icons:.
- new presenters SpPaginatorPresenter and SpMillerPaginatorPresenter.
- Add decoration attributes to SpStringTableColumn
- several fixes to SpMillerColumnPresenter.
- fixes pharo-spec/Spec#952
- fixes pharo-spec/Spec#940
- fixes pharo-spec/Spec#954
- fixes pharo-spec/Spec#929
- fixes pharo-spec/Spec#871
- ... and several other bugfixes

Breakpoints

Some fixes related to styling.

Merge-MetaLinkStyler #7596
https://github.com/pharo-project/pharo/pull/7596

535-Variable-Breakpoints-Wrong-Icon-in-gutter #7551
https://github.com/pharo-project/pharo/pull/7551

First Class Variables

6001-isTemp-might-fail-on-Pharo-AST #7586

This PR intruduces UnresolvedVariable. When the AST is created by the parser, it sets all Variables to this kind.

This allows us to
- get a meaningful answer to all is*Variable checks: false (as it is not eg. a temp yet)
- visitor works correctly and falls back to #visitVariable node no need for any ifs
- nice errror messages if you try to generate code

https://github.com/pharo-project/pharo/pull/7586

Read-Only Literals

isReadOnlyLiteral-Float-Integer #7553
Float and Integers are now read-only if they are referened from the code and not immediate
https://github.com/pharo-project/pharo/pull/7553

7592-add-beRecursivelyReadOnlyObject #7593

We have beReadOnlyObject, but often it makes sense to set an Object recursively read-only.
One example we see with literal arrays: right now we just make the outer array read-only, but
we should recurse into it and make all the content read-only, too.

Based on the RecursiveWriteBarrier package by khinsen, with small improvements:

- after we merged #7590 , we do not need the exception handler anymore
- instead of using instVarNamed:, we should use #instanceVariables and 
      then the reflective read/write API of the first class variable objects

https://github.com/pharo-project/pharo/pull/7593

7589-isReadOnlyObject-and-beReadOnlyObject-are-not-consistent-wrt-immediate-objects #7590

1 isReadOnlyObject returns true, but calling #beReadOnlyObject raises an error.
#isReadOnlyObject has an explicit check for this case in the fallback code, we should 
add the same to #beReadOnlyObject.
https://github.com/pharo-project/pharo/pull/7590

7591-We-have-isImmediateClass-add-isImmediateObject #7594
https://github.com/pharo-project/pharo/pull/7594

Variables-use-pushLiteral #7597
For both MetaLinks and Slots we added code in the past to not use pushLiteral: directly.

The idea was that this would be needed for read-only litereals.

But the implementation of read-only literals is now that only literals are compiled read-only,
we can use the literal frame to e.g. reference Variables or MetaLinks without any problem.
https://github.com/pharo-project/pharo/pull/7597

	

Fluid Class Definition

ChangeGreaterThanIntoGreaterGreaterForFluidClass #7606
https://github.com/pharo-project/pharo/pull/7606

7602-preparing-fluid-syntax-changes #7603
https://github.com/pharo-project/pharo/pull/7603

7598-SpPresenter-class-does-not-display-instanceVariableNames- #7601
https://github.com/pharo-project/pharo/pull/7601

Small cleanups in FluidClassBuilder package #7577
https://github.com/pharo-project/pharo/pull/7577

Cleanup FluidClassBuilder-Tests package #7579
https://github.com/pharo-project/pharo/pull/7579

Graphics

Add support for mesh gradients to Athens #7546
https://github.com/pharo-project/pharo/pull/7546

Fix crashes and memory leaks in OSSDL2AthensRenderer #7543
https://github.com/pharo-project/pharo/pull/7543

Fixes

DNU in RubCurrentLineBarDecorator for #compose #7552
https://github.com/pharo-project/pharo/pull/7552

7582-New-Release-of-Microdown--v105 #7583
https://github.com/pharo-project/pharo/pull/7583

isClean-using-CleanBlockChecker #7540
#isClean was implemented using abstractBytecodeMessagesDo: which is slow due to trapping MessageNotUnderstood
and creating messages for every bytecode.

This PR adds a dedicated CleanBlockChecker that checks for the bytecodes and stops scanning as soon as it 
determines a block to not be clean.

In addition, we move the testIsClean from OCClosureTest to BlockClosureTest and remove the example code 
from #isClean (the test now has that).
https://github.com/pharo-project/pharo/pull/7540

Cleanup for Fonts

FontProviderAbstract should be renamed to AbstractFontProvider #7609
https://github.com/pharo-project/pharo/pull/7609

FontFamilyMemberAbstract should be renamed to AbstractFontFamilyMember #7611
https://github.com/pharo-project/pharo/pull/7611

FontFamilyAbstract should be renamed to AbstractFontFamily #7605
https://github.com/pharo-project/pharo/pull/7605

Cleanup FreeTypeCache #7561
https://github.com/pharo-project/pharo/pull/7561

Cleanup FreeTypeCacheLinkedList #7565
https://github.com/pharo-project/pharo/pull/7565

Remove unnecessary comment in FreeTypeCacheConstants #7563
https://github.com/pharo-project/pharo/pull/7563

Small cleanup in FontFamilyAbstract #7567
https://github.com/pharo-project/pharo/pull/7567

Cleanup FreeTypeGlyphRenderer #7559
https://github.com/pharo-project/pharo/pull/7559

Cleanup FreeTypeSubPixelAntiAliasedGlyphRenderer #7557
https://github.com/pharo-project/pharo/pull/7557

Small cleanup in FreeTypeFontProvider #7548
https://github.com/pharo-project/pharo/pull/7548

Cleanup Fonts-Abstract package #7555
https://github.com/pharo-project/pharo/pull/7555

Misc Small Cleanups

Cleanup ExternalType>>#cleanupUnusedTypes #7569
https://github.com/pharo-project/pharo/pull/7569

Simplify Form>>#bitsSize #7571
https://github.com/pharo-project/pharo/pull/7571

Cleanup Flashback-Decompiler-Tests package #7581
https://github.com/pharo-project/pharo/pull/7581

Simplify Socket>>#dataAvailable #7573
https://github.com/pharo-project/pharo/pull/7573

Use ifNil: in BitBlt>>#fillColor: #7575
https://github.com/pharo-project/pharo/pull/7575

Move SystemAnnouncement extensions from Calypso #7538
Calypso introduced nice methods for SystemAnnouncement like affectsMethod: , affectsClass:.
They can be reused by other tools to analyze system changes. And therefore they should be packaged
together with Announcement classes.
https://github.com/pharo-project/pharo/pull/7538

NewTools and Spec merge ==================== https://github.com/pharo-project/pharo/pull/7510 v0.4.5 - StInspector and StDebugegr now uses a paginator to better show miller collumns. - Some minor bugfixes - Activated CI NewTools v0.4.4 - new tool SystemReporter (thanks Stef) - some changes on debugger inspector ui, looking to make things more pleasant. - fixes pharo-spec/NewTools#120 - fixes pharo-spec/NewTools#113 - fixes #6940 - fixes #7456 - fixes #7453 - fixes #7451 Spec2 v0.7.5 - SpFilterWithListPresenter was renamed to SpFilteringListPresenter. - lists and trees now use displayIcon: to answer an icon instead icons:. - new presenters SpPaginatorPresenter and SpMillerPaginatorPresenter. - Add decoration attributes to SpStringTableColumn - several fixes to SpMillerColumnPresenter. - fixes pharo-spec/Spec#952 - fixes pharo-spec/Spec#940 - fixes pharo-spec/Spec#954 - fixes pharo-spec/Spec#929 - fixes pharo-spec/Spec#871 - ... and several other bugfixes Breakpoints =========== Some fixes related to styling. Merge-MetaLinkStyler #7596 https://github.com/pharo-project/pharo/pull/7596 535-Variable-Breakpoints-Wrong-Icon-in-gutter #7551 https://github.com/pharo-project/pharo/pull/7551 First Class Variables ===================== 6001-isTemp-might-fail-on-Pharo-AST #7586 This PR intruduces UnresolvedVariable. When the AST is created by the parser, it sets all Variables to this kind. This allows us to - get a meaningful answer to all is*Variable checks: false (as it is not eg. a temp yet) - visitor works correctly and falls back to #visitVariable node no need for any ifs - nice errror messages if you try to generate code https://github.com/pharo-project/pharo/pull/7586 Read-Only Literals ================== isReadOnlyLiteral-Float-Integer #7553 Float and Integers are now read-only if they are referened from the code and not immediate https://github.com/pharo-project/pharo/pull/7553 7592-add-beRecursivelyReadOnlyObject #7593 We have beReadOnlyObject, but often it makes sense to set an Object recursively read-only. One example we see with literal arrays: right now we just make the outer array read-only, but we should recurse into it and make all the content read-only, too. Based on the RecursiveWriteBarrier package by khinsen, with small improvements: - after we merged #7590 , we do not need the exception handler anymore - instead of using instVarNamed:, we should use #instanceVariables and then the reflective read/write API of the first class variable objects https://github.com/pharo-project/pharo/pull/7593 7589-isReadOnlyObject-and-beReadOnlyObject-are-not-consistent-wrt-immediate-objects #7590 1 isReadOnlyObject returns true, but calling #beReadOnlyObject raises an error. #isReadOnlyObject has an explicit check for this case in the fallback code, we should add the same to #beReadOnlyObject. https://github.com/pharo-project/pharo/pull/7590 7591-We-have-isImmediateClass-add-isImmediateObject #7594 https://github.com/pharo-project/pharo/pull/7594 Variables-use-pushLiteral #7597 For both MetaLinks and Slots we added code in the past to not use pushLiteral: directly. The idea was that this would be needed for read-only litereals. But the implementation of read-only literals is now that only literals are compiled read-only, we can use the literal frame to e.g. reference Variables or MetaLinks without any problem. https://github.com/pharo-project/pharo/pull/7597 Fluid Class Definition ======================= ChangeGreaterThanIntoGreaterGreaterForFluidClass #7606 https://github.com/pharo-project/pharo/pull/7606 7602-preparing-fluid-syntax-changes #7603 https://github.com/pharo-project/pharo/pull/7603 7598-SpPresenter-class-does-not-display-instanceVariableNames- #7601 https://github.com/pharo-project/pharo/pull/7601 Small cleanups in FluidClassBuilder package #7577 https://github.com/pharo-project/pharo/pull/7577 Cleanup FluidClassBuilder-Tests package #7579 https://github.com/pharo-project/pharo/pull/7579 Graphics ========= Add support for mesh gradients to Athens #7546 https://github.com/pharo-project/pharo/pull/7546 Fix crashes and memory leaks in OSSDL2AthensRenderer #7543 https://github.com/pharo-project/pharo/pull/7543 Fixes ===== DNU in RubCurrentLineBarDecorator for #compose #7552 https://github.com/pharo-project/pharo/pull/7552 7582-New-Release-of-Microdown--v105 #7583 https://github.com/pharo-project/pharo/pull/7583 isClean-using-CleanBlockChecker #7540 #isClean was implemented using abstractBytecodeMessagesDo: which is slow due to trapping MessageNotUnderstood and creating messages for every bytecode. This PR adds a dedicated CleanBlockChecker that checks for the bytecodes and stops scanning as soon as it determines a block to not be clean. In addition, we move the testIsClean from OCClosureTest to BlockClosureTest and remove the example code from #isClean (the test now has that). https://github.com/pharo-project/pharo/pull/7540 Cleanup for Fonts ================== FontProviderAbstract should be renamed to AbstractFontProvider #7609 https://github.com/pharo-project/pharo/pull/7609 FontFamilyMemberAbstract should be renamed to AbstractFontFamilyMember #7611 https://github.com/pharo-project/pharo/pull/7611 FontFamilyAbstract should be renamed to AbstractFontFamily #7605 https://github.com/pharo-project/pharo/pull/7605 Cleanup FreeTypeCache #7561 https://github.com/pharo-project/pharo/pull/7561 Cleanup FreeTypeCacheLinkedList #7565 https://github.com/pharo-project/pharo/pull/7565 Remove unnecessary comment in FreeTypeCacheConstants #7563 https://github.com/pharo-project/pharo/pull/7563 Small cleanup in FontFamilyAbstract #7567 https://github.com/pharo-project/pharo/pull/7567 Cleanup FreeTypeGlyphRenderer #7559 https://github.com/pharo-project/pharo/pull/7559 Cleanup FreeTypeSubPixelAntiAliasedGlyphRenderer #7557 https://github.com/pharo-project/pharo/pull/7557 Small cleanup in FreeTypeFontProvider #7548 https://github.com/pharo-project/pharo/pull/7548 Cleanup Fonts-Abstract package #7555 https://github.com/pharo-project/pharo/pull/7555 Misc Small Cleanups ============= Cleanup ExternalType>>#cleanupUnusedTypes #7569 https://github.com/pharo-project/pharo/pull/7569 Simplify Form>>#bitsSize #7571 https://github.com/pharo-project/pharo/pull/7571 Cleanup Flashback-Decompiler-Tests package #7581 https://github.com/pharo-project/pharo/pull/7581 Simplify Socket>>#dataAvailable #7573 https://github.com/pharo-project/pharo/pull/7573 Use ifNil: in BitBlt>>#fillColor: #7575 https://github.com/pharo-project/pharo/pull/7575 Move SystemAnnouncement extensions from Calypso #7538 Calypso introduced nice methods for SystemAnnouncement like affectsMethod: , affectsClass:. They can be reused by other tools to analyze system changes. And therefore they should be packaged together with Announcement classes. https://github.com/pharo-project/pharo/pull/7538