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