links to this page:    
View this PageEdit this PageUploads to this PageHistory of this PageTop of the SwikiRecent ChangesSearch the SwikiHelp Guide
Environments update (Sept 2016, F)
Last updated at 6:43 am UTC on 3 March 2017
 Nicolas Cellier uploaded a new version of Environments to project The Trunk:
==================== Summary ====================

Name: Environments-nice.63
Author: nice
Time: 29 September 2016, 10:29:59.273388 am
UUID: 1c6b29fd-c218-034b-8059-2a4e231109d4
Ancestors: Environments-mt.62

Update the class comment of *Environment* to match current instance variable list.

Update the postscript to export Smalltalk bindings. 

Nicolas Cellier uploaded a new version of Environments to project The Trunk:

==================== Summary ====================

Name: Environments-nice.64
Author: nice
Time: 29 September 2016, 10:41:52.190388 am
UUID: 607ee3c4-cc23-ff46-9f28-edddf2118760
Ancestors: Environments-nice.63

Fix the postscript: it's Smalltalk globals that should be exported...

Note: Environment stack policies without testing if they already exist, so there's a big danger to exportmore than once! There might be undesired side effects (notifying more than once?)

=============== Diff against Environments-nice.63 ===============

Item was changed:
  (PackageInfo named: 'Environments') postscript: '"It''s impossible to import a binding if not exported.
  There''s nothing secret in Smalltalk (nor private)."
+ Smalltalk globals exportSelf.
- Smalltalk exportSelf.

Nicolas Cellier uploaded a new version of Kernel to project The Trunk:

==================== Summary ====================

Name: Kernel-nice.798
Author: nice
Time: 30 July 2013, 10:34:15.34 pm
UUID: e02ae597-3f6d-40b9-9468-bf01416db6de
Ancestors: Kernel-nice.797

Better fix for http://bugs.squeak.org/view.php?id=1554
A class variable defined in a superclass should take precedence over a global variable.

First look in local class variables.
Then look in local sharedPools (a local sharedPool will shadow a super class variable, that sounds fair).
Then look in superclass pools.
When superclass chain is exhausted, look in the Environment that were provided as parameter.

Note that this is mostly squeak 1.x implementation of #scopeHas:ifTrue: (or st-80), except that anEvironment parameter replaces Smalltalk.
This way we avoid duplicate lookup of previous workaround.
And we never ever look in superclass environment, that's not necessarily ours.

This currently breaks some EnvironmentTest because inheriting superclass environment is a cheap and easy way to  import all Smalltalk (unless you are not an Object or ProtoObject of course).
The longest and proper way would be to properly export some symbols from Smalltalk globals, and import them explicitely in the tested environment.

<commits@source.squeak.org>	Thu, Sep 29, 2016 at 10:18 AM
Reply-To: squeak-dev@lists.squeakfoundation.org
To: squeak-dev@lists.squeakfoundation.org, packages@lists.squeakfoundation.org

Nicolas Cellier uploaded a new version of Kernel to project The Trunk:

==================== Summary ====================

Name: Kernel-nice.1042
Author: nice
Time: 29 September 2016, 10:15:16.009388 am
UUID: 8923b113-72cf-414e-802c-cef7c50f8ad1
Ancestors: Kernel-tfel.1041, Kernel-nice.798

Merge Kernel-nice.798 (variable scope fix, don't resolve name in superclass environment)

 Reminder: this requires some Smalltalk exportSelf.

Read on: Environments update March 2017