This week (43/2020) on the Issue Tracker

MD
Marcus Denker
Fri, Oct 23, 2020 7:22 AM

This week (43/2020) on the Issue Tracker

---========

Roassal (Visualisations) and Graphics:

- Load the new version of Roassal, which is 0.9.5
	https://github.com/pharo-project/pharo/pull/7461


- Do not disable freetype text hinting in Cairo #7544
	https://github.com/pharo-project/pharo/pull/7544

- 7529-ImageReadWriter-should-raise-a-specialised-exception-and-not-Error #7530
	https://github.com/pharo-project/pharo/pull/7530

First Class Variables

We have now meta-objects that describe any Variable defined, be it a Global, Class
Var, instance Var, temp, and others. We are continuing to refine the model and start
to see where it can be used to generalise and simply.

  • Improve DoIt
    DoIts were loosing the requestor scope on the level of the AST.
    With that now fixed, we will be able to access variables declared by
    the Playground from the debugger (and highlight them correctly)
    These needs multiple steps to be enabled, here are two:

    Doit-RequestorScope #7511
    https://github.com/pharo-project/pharo/pull/7511

    DoIt-access-with-ReadVariable #7512
    We now read temps from the context with a general "read Variable named" method,
    this way it will be able to read and write WorkspaceVariable instances, too:
    https://github.com/pharo-project/pharo/pull/7512

  • The new bytecodeset has a bytecode for "push the current process". This should be exposed
    by the backend.  To be done: show how to implement "ThisProcessVariable".

    CompilerBackend-pushThisProcess #7513
    https://github.com/pharo-project/pharo/pull/7513

  • Cleanup-referredInstVars #7541
    If you look at referredInstVars, it return names of indexed instance variables.
    No users, no test. With First Class Variables, we can do better as soon as we need it.
    (we should now operate in terms of Variable objects not names!)
    https://github.com/pharo-project/pharo/pull/7541

  • Variables-isTempVariable #7524
    The last of the is* renamings. To be consistent with all the other is*Variable, we rename
    isTemp to isTempVariable (with deprecation)
    https://github.com/pharo-project/pharo/pull/7524

  • Introduce ForeignVariable to model a unified access to variables #7527
    This gives a nice perspective on what will be possible with First Class Variables:
    Introduce special ForeignVariable to model a unified access to variables from any context.
    For example it will allow us to transparently use temps from the local context in doIt expressions.
    (This will avoid the rewrite to ThisContext tempNamed: to access variables in a DoitIn:)
    https://github.com/pharo-project/pharo/pull/7527

Breakpoints

The improvements for Breakpoints are, too, driven by First Class Variables. e.g. Class Variables being
Objects and easy to query, we can implement VariableBreakpoint for Class Variables very easily:

7421-Variable-breakpoints-do-not-work-on-class-variables #7531
	https://github.com/pharo-project/pharo/pull/7531

Variables will open many opportunities for cleanups here... e.g. we can unify all Variable Breakpoint
code to just operate on Variables. No nedd to check "if this is the name of a temp, do that, if that
of an ivar, that other thing". As a first step, we did:

MetaLinkResolver-simplify #7528
	Use the reflective API directly to discover Variables
	https://github.com/pharo-project/pharo/pull/7528

VariableBreakPoint-package-merge #7542
	https://github.com/pharo-project/pharo/pull/7542

	

Compiler

ScaledDecimal-readOnlyLiteral #7534
	Another step for compiling literals read-only that are referred to in the
	source. We are just missing Boxed Floats and large Integers after this:
	https://github.com/pharo-project/pharo/pull/7534
		
CaseOf-Remove-BackendError #7517
	The Design of the Opal Compiler, it was made as compatible to the
	old as possible. Including raising an error where it is better to
	fall back to just emit non-optimized code for #caseOf:	
		https://github.com/pharo-project/pharo/pull/7517

Cleanup-headerFlagForEncoder #7518
	Small cleanup of code that was just there to support the old Compiler
	https://github.com/pharo-project/pharo/pull/7518

Fluid Class Builder

Work continuous for the Fluid Class definitions:

7515-Fix-dependencies-introduced-by-tests-of-FluidClassBuilder #7516
https://github.com/pharo-project/pharo/pull/7516

7490-definition-on-classDescription-can-be-simplified #7491
https://github.com/pharo-project/pharo/pull/7491

Cleanups/Small Fixes / Comments

And as always, we did some smaller cleanups and improvements:

Add backwards compatibility Pharo9 to Pharo8 #7502
https://github.com/pharo-project/pharo/pull/7502

Fix #7507: Methods comments in Collection #7509
https://github.com/pharo-project/pharo/pull/7509

Replace Character cr asString to String cr #7526
https://github.com/pharo-project/pharo/pull/7526

Introduce symbolic platform independent name to the morphic keyDown and keyUp events #7508
https://github.com/pharo-project/pharo/pull/7508

This week (43/2020) on the Issue Tracker ========================================= Roassal (Visualisations) and Graphics: -------------------------------- - Load the new version of Roassal, which is 0.9.5 https://github.com/pharo-project/pharo/pull/7461 - Do not disable freetype text hinting in Cairo #7544 https://github.com/pharo-project/pharo/pull/7544 - 7529-ImageReadWriter-should-raise-a-specialised-exception-and-not-Error #7530 https://github.com/pharo-project/pharo/pull/7530 First Class Variables ---------------------- We have now meta-objects that describe any Variable defined, be it a Global, Class Var, instance Var, temp, and others. We are continuing to refine the model and start to see where it can be used to generalise and simply. - Improve DoIt DoIts were loosing the requestor scope on the level of the AST. With that now fixed, we will be able to access variables declared by the Playground from the debugger (and highlight them correctly) These needs multiple steps to be enabled, here are two: Doit-RequestorScope #7511 https://github.com/pharo-project/pharo/pull/7511 DoIt-access-with-ReadVariable #7512 We now read temps from the context with a general "read Variable named" method, this way it will be able to read and write WorkspaceVariable instances, too: https://github.com/pharo-project/pharo/pull/7512 - The new bytecodeset has a bytecode for "push the current process". This should be exposed by the backend. To be done: show how to implement "ThisProcessVariable". CompilerBackend-pushThisProcess #7513 https://github.com/pharo-project/pharo/pull/7513 - Cleanup-referredInstVars #7541 If you look at referredInstVars, it return names of indexed instance variables. No users, no test. With First Class Variables, we can do better as soon as we need it. (we should now operate in terms of Variable *objects* not names!) https://github.com/pharo-project/pharo/pull/7541 - Variables-isTempVariable #7524 The last of the is* renamings. To be consistent with all the other is*Variable, we rename isTemp to isTempVariable (with deprecation) https://github.com/pharo-project/pharo/pull/7524 - Introduce ForeignVariable to model a unified access to variables #7527 This gives a nice perspective on what will be possible with First Class Variables: Introduce special ForeignVariable to model a unified access to variables from any context. For example it will allow us to transparently use temps from the local context in doIt expressions. (This will avoid the rewrite to ThisContext tempNamed: to access variables in a DoitIn:) https://github.com/pharo-project/pharo/pull/7527 Breakpoints =========== The improvements for Breakpoints are, too, driven by First Class Variables. e.g. Class Variables being Objects and easy to query, we can implement VariableBreakpoint for Class Variables very easily: 7421-Variable-breakpoints-do-not-work-on-class-variables #7531 https://github.com/pharo-project/pharo/pull/7531 Variables will open *many* opportunities for cleanups here... e.g. we can unify all Variable Breakpoint code to just operate on Variables. No nedd to check "if this is the name of a temp, do that, if that of an ivar, that other thing". As a first step, we did: MetaLinkResolver-simplify #7528 Use the reflective API directly to discover Variables https://github.com/pharo-project/pharo/pull/7528 VariableBreakPoint-package-merge #7542 https://github.com/pharo-project/pharo/pull/7542 Compiler ======== ScaledDecimal-readOnlyLiteral #7534 Another step for compiling literals read-only that are referred to in the source. We are just missing Boxed Floats and large Integers after this: https://github.com/pharo-project/pharo/pull/7534 CaseOf-Remove-BackendError #7517 The Design of the Opal Compiler, it was made as compatible to the old as possible. Including raising an error where it is better to fall back to just emit non-optimized code for #caseOf: https://github.com/pharo-project/pharo/pull/7517 Cleanup-headerFlagForEncoder #7518 Small cleanup of code that was just there to support the old Compiler https://github.com/pharo-project/pharo/pull/7518 Fluid Class Builder --------------- Work continuous for the Fluid Class definitions: 7515-Fix-dependencies-introduced-by-tests-of-FluidClassBuilder #7516 https://github.com/pharo-project/pharo/pull/7516 7490-definition-on-classDescription-can-be-simplified #7491 https://github.com/pharo-project/pharo/pull/7491 Cleanups/Small Fixes / Comments -------------------- And as always, we did some smaller cleanups and improvements: Add backwards compatibility Pharo9 to Pharo8 #7502 https://github.com/pharo-project/pharo/pull/7502 Fix #7507: Methods comments in Collection #7509 https://github.com/pharo-project/pharo/pull/7509 Replace Character cr asString to String cr #7526 https://github.com/pharo-project/pharo/pull/7526 Introduce symbolic platform independent name to the morphic keyDown and keyUp events #7508 https://github.com/pharo-project/pharo/pull/7508