Pharo-dev
By thread
pharo-dev@lists.pharo.org
By month
Messages by month
- ----- 2026 -----
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
November 2015
- 972 messages
Re: [Pharo-dev] A Question about Metacello's #repository:
by Sven Van Caekenberghe
Hi Dale,
Thanks for the elaborate answer.
Yes, I think that BaselineOf is what I was looking for, I will experiment with it.
I do suspect that a Baseline can only be loaded using the Metacello API, not using the Pharo config handler which seems to fall back to Gofer.
Sven
> On 17 Nov 2015, at 20:08, Dale Henrichs <dale.henrichs(a)gemtalksystems.com> wrote:
>
> Sven,
>
> I've read through the follow-on messages to this post and I'm not quite sure I know what you are asking, so I will just reply here ...
>
> On 11/17/2015 06:12 AM, Sven Van Caekenberghe wrote:
>> Hi,
>>
>> I have a question about the way repositories are specified in Metacello (i.e. by means on #repository:).
>>
>> Say I use FileTree where the files come from a classic VCS or just from some archive. Using ZeroConf I can get an image+vm, etc. I can use the config command line handler to load the configuration from a local file directory (I haven't tried this yet, but I assume no scheme results in a MCDirectoryRepository). So far so good.
> Okay I'll put in some examples here to make sure that we're on the same page. First here's a linek[1] to the documentation for the various schemes that can be used as Metacello repository descriptions (the arg to the #repository: message).
>
> If you want to use FileTree for your local repository then the repository description has the form:
>
> filtree://<full path to directory>
>
> For an MCDirectoryRepository, the repository description has the form:
>
> client://<full path to directory>
>
> or
>
> <full path to directory>
>
> [1] https://github.com/dalehenrich/metacello-work/blob/master/docs/MetacelloScr…
>>
>> The question is, what do I put in as argument to #repository: in my baseline ?
>>
>> baseline1: spec
>> <version: '1-baseline'>
>>
>> spec for: #common do: [
>> spec
>> blessing: #baseline;
>> repository: 'http://mc.stfx.eu/Neo';
>> package: 'Neo-Console-Core';
>> group: 'default' with: #('Neo-Console-Core');
>> group: 'Core' with: #('Neo-Console-Core') ]
> Okay, the baseline1: above is from your ConfigurationOfNeo configuration, correct?
>
> Since you are referencing `http://mc.stfx.eu/Neo`, I assume that the primary repository is on http://mc.stfx.eu, correct?
>
> When you ask "what do I put in as argument to #repository: in my baseline?", I am confused ...
>
> Perhaps my assumptions are incorrect? I assume that the above came from a ConfigurationOfNeo and that the primary location is `http://mc.stfx.eu/Neo`.
>> Obviously not a remote http repository. But also not an absolute path, since I do not know where the user placed the files.
>
> If the Neo project's primary repository is `http://mc.stfx.eu/Neo`, then how does the user get a local copy of the repository - filetree:// or client://?
>
>> Ideally, it should be possible to leave out repository and let it resolve to wherever the configuration was located. Can that be done ? Or is there another way to do this ?
>>
>
> The BaselineOf was invented to solve this particular problem and I will talk about github/git scenario, since the question of "how does the user get a local copy of the repository?" has a straightforward answer....
>
> To start with let's use the Sample project[2] as an example and lets look how the project is specified in the BaselineOfSample>>baseline:[3]:
>
> baseline: spec
> <baseline>
> spec
> for: #'common'
> do: [
> spec package: 'Sample-Core'.
> spec package: 'Sample-Tests' with: [ spec requires: 'Sample-Core' ].
> spec
> group: 'default' with: #('Core');
> group: 'Core' with: #('Sample-Core');
> group: 'Tests' with: #('Sample-Tests') ]
>
> Note that there is no repository: specification .... which makes me think that this is the answer to the question that you are asking:
>> It should be possible to leave out repository and let it resolve to wherever the configuration was located.
>
> A BaselineOf sets the internal repository: to the location where the BaselineOfSample spec was loaded from. So you use the following expression to load a BaselineOf into your image:
>
> Metacello new
> baseline: 'Sample';
> repository: 'filetree://<fulll-path-to-directory>;
> load.
>
> Given that the user knows where she's cloned the https://github.com/dalehenrich/sample.git repository, then it is reasonable for the developer to know how to load the project from that location ...
>
> However, this is not a complete answer to the the overall problem ...
>
> For example a corollary to your question is:
>
>> How do I ensure that other projects that reference the Sample project load from my local clone?
>
> So If you have a reference to the Sample project in another project, the reference is likely to look like the following:
>
> spec
> baseline: 'Sample';
> repository: 'github://dalehenrich/sample:master/repository';
> loads: 'Core'.
>
> Here we've got a reference to the github repo, but we'd like to use the local filetree:// clone. There is a Metacello Scripting API command that you can use to inform Metacello that the local filetree:// clone should be used:
>
> Metacello new
> baseline: 'Sample';
> repository: 'filetree://<fulll-path-to-directory>;
> lock.
>
> Again we're using the full-path, but the developer is the one that knows a) the path to the local clone and b) whether or not the local clone should be used ...
>
> Now I will admit that having to remember and keep track of making sure that the `lock` expression get's run in each image, can be a bit difficult ....
>
> In tODE I've addressed this issue by creating a project entry object that is shared by "all images" and specifies not only the particulars of project locking but includes additional information about what how you want a particlar project loaded in "all images" (i.e., a specification for the `loads` expression as well) ...
>
> So I think I've addressed your question, but maybe I've completely missed your point:)
>
> Dale
>
> [2] https://github.com/dalehenrich/sample
> [3] https://github.com/dalehenrich/sample/blob/master/repository/BaselineOfSamp…
>
Nov. 17, 2015
[pharo-project/pharo-core]
by GitHub
Branch: refs/tags/50451
Home: https://github.com/pharo-project/pharo-core
Nov. 17, 2015
[pharo-project/pharo-core] a2863e: 50451
by GitHub
Branch: refs/heads/5.0
Home: https://github.com/pharo-project/pharo-core
Commit: a2863ee6cdbcf4d0953a159559304892cf52af11
https://github.com/pharo-project/pharo-core/commit/a2863ee6cdbcf4d0953a1595…
Author: Jenkins Build Server <board(a)pharo-project.org>
Date: 2015-11-17 (Tue, 17 Nov 2015)
Changed paths:
A Morphic-Widgets-Basic.package/ButtonClicked.class/README.md
A Morphic-Widgets-Basic.package/ButtonClicked.class/definition.st
A Morphic-Widgets-Basic.package/MultistateButtonMorph.class/instance/adding/addUpAction_.st
R Morphic-Widgets-Basic.package/MultistateButtonMorph.class/instance/as yet unclassified/activate.st
R Morphic-Widgets-Basic.package/MultistateButtonMorph.class/instance/as yet unclassified/addDownAction_.st
R Morphic-Widgets-Basic.package/MultistateButtonMorph.class/instance/as yet unclassified/addUpAction_.st
R Morphic-Widgets-Basic.package/MultistateButtonMorph.class/instance/as yet unclassified/extent_.st
R Morphic-Widgets-Basic.package/MultistateButtonMorph.class/instance/as yet unclassified/handlesMouseDown_.st
R Morphic-Widgets-Basic.package/MultistateButtonMorph.class/instance/as yet unclassified/handlesMouseOverDragging_.st
R Morphic-Widgets-Basic.package/MultistateButtonMorph.class/instance/as yet unclassified/handlesMouseOver_.st
R Morphic-Widgets-Basic.package/MultistateButtonMorph.class/instance/as yet unclassified/mouseDown_.st
R Morphic-Widgets-Basic.package/MultistateButtonMorph.class/instance/as yet unclassified/mouseEnterDragging_.st
R Morphic-Widgets-Basic.package/MultistateButtonMorph.class/instance/as yet unclassified/mouseEnter_.st
R Morphic-Widgets-Basic.package/MultistateButtonMorph.class/instance/as yet unclassified/mouseLeaveDragging_.st
R Morphic-Widgets-Basic.package/MultistateButtonMorph.class/instance/as yet unclassified/mouseLeave_.st
R Morphic-Widgets-Basic.package/MultistateButtonMorph.class/instance/as yet unclassified/mouseUp_.st
R Morphic-Widgets-Basic.package/MultistateButtonMorph.class/instance/as yet unclassified/passivate.st
R Morphic-Widgets-Basic.package/MultistateButtonMorph.class/instance/as yet unclassified/privateMoveBy_.st
R Morphic-Widgets-Basic.package/MultistateButtonMorph.class/instance/as yet unclassified/removeDownActions.st
R Morphic-Widgets-Basic.package/MultistateButtonMorph.class/instance/as yet unclassified/removeUpActions.st
A Morphic-Widgets-Basic.package/MultistateButtonMorph.class/instance/event handling/handlesMouseDown_.st
A Morphic-Widgets-Basic.package/MultistateButtonMorph.class/instance/event handling/handlesMouseOverDragging_.st
A Morphic-Widgets-Basic.package/MultistateButtonMorph.class/instance/event handling/mouseDown_.st
A Morphic-Widgets-Basic.package/MultistateButtonMorph.class/instance/event handling/mouseEnterDragging_.st
A Morphic-Widgets-Basic.package/MultistateButtonMorph.class/instance/event handling/mouseEnter_.st
A Morphic-Widgets-Basic.package/MultistateButtonMorph.class/instance/event handling/mouseLeaveDragging_.st
A Morphic-Widgets-Basic.package/MultistateButtonMorph.class/instance/event handling/mouseLeave_.st
A Morphic-Widgets-Basic.package/MultistateButtonMorph.class/instance/event handling/mouseUp_.st
A Morphic-Widgets-Basic.package/MultistateButtonMorph.class/instance/geometry/extent_.st
A Morphic-Widgets-Basic.package/MultistateButtonMorph.class/instance/recategorized/handlesMouseOver_.st
A Morphic-Widgets-Basic.package/MultistateButtonMorph.class/instance/recategorized/privateMoveBy_.st
A Morphic-Widgets-Windows.package/extension/MultistateButtonMorph/instance/activate.st
A Morphic-Widgets-Windows.package/extension/MultistateButtonMorph/instance/passivate.st
R ScriptLoader50.package/ScriptLoader.class/instance/pharo - scripts/script50450.st
A ScriptLoader50.package/ScriptLoader.class/instance/pharo - scripts/script50451.st
R ScriptLoader50.package/ScriptLoader.class/instance/pharo - updates/update50450.st
A ScriptLoader50.package/ScriptLoader.class/instance/pharo - updates/update50451.st
M ScriptLoader50.package/ScriptLoader.class/instance/public/commentForCurrentUpdate.st
A SmartSuggestions.package/SugsBreakAlwaysSuggestion.class/README.md
A SmartSuggestions.package/SugsBreakAlwaysSuggestion.class/definition.st
A SmartSuggestions.package/SugsBreakAlwaysSuggestion.class/instance/accessing/label.st
A SmartSuggestions.package/SugsBreakAlwaysSuggestion.class/instance/execution/execute.st
A SmartSuggestions.package/SugsBreakConditionSuggestion.class/README.md
A SmartSuggestions.package/SugsBreakConditionSuggestion.class/definition.st
A SmartSuggestions.package/SugsBreakConditionSuggestion.class/instance/accessing/label.st
A SmartSuggestions.package/SugsBreakConditionSuggestion.class/instance/breakpoints/breakpointForCondition.st
A SmartSuggestions.package/SugsBreakConditionSuggestion.class/instance/execution/execute.st
A SmartSuggestions.package/SugsBreakConditionSuggestion.class/instance/execution/isValidForContext.st
A SmartSuggestions.package/SugsBreakOnceSuggestion.class/README.md
A SmartSuggestions.package/SugsBreakOnceSuggestion.class/definition.st
A SmartSuggestions.package/SugsBreakOnceSuggestion.class/instance/accessing/label.st
A SmartSuggestions.package/SugsBreakOnceSuggestion.class/instance/execution/execute.st
A SmartSuggestions.package/SugsBreakOnceSuggestion.class/instance/execution/isValidForContext.st
M SmartSuggestions.package/SugsBreakpointSuggestion.class/README.md
M SmartSuggestions.package/SugsBreakpointSuggestion.class/instance/accessing/label.st
R SmartSuggestions.package/SugsBreakpointSuggestion.class/instance/breakpoints/breakpointForCondition.st
R SmartSuggestions.package/SugsBreakpointSuggestion.class/instance/breakpoints/breakpointSelectionMenu.st
A SmartSuggestions.package/SugsBreakpointSuggestion.class/instance/breakpoints/selectedNodeHasBreakpoint.st
R SmartSuggestions.package/SugsBreakpointSuggestion.class/instance/breakpoints/selectedNodeHasMetalink.st
R SmartSuggestions.package/SugsBreakpointSuggestion.class/instance/execution/execute.st
A SmartSuggestions.package/SugsSuggestionFactory.class/class/as yet unclassified/cleanUp.st
R SmartSuggestions.package/SugsSuggestionFactory.class/class/methods/createBreakAtLineCommand.st
A SmartSuggestions.package/SugsSuggestionFactory.class/class/methods/createBreakCommand.st
A SmartSuggestions.package/SugsSuggestionFactory.class/class/methods/createBreakConditionCommand.st
A SmartSuggestions.package/SugsSuggestionFactory.class/class/methods/createBreakOnceCommand.st
Log Message:
-----------
50451
17010 MultistateButtonMorph to use announcement instead of #triggerEvent:
https://pharo.fogbugz.com/f/cases/17010
17037 Simplify suggestions for Breakpoints
https://pharo.fogbugz.com/f/cases/17037
http://files.pharo.org/image/50/50451.zip
Nov. 17, 2015
[pharo-project/pharo-core]
by GitHub
Branch: refs/tags/50450
Home: https://github.com/pharo-project/pharo-core
Nov. 17, 2015
[pharo-project/pharo-core] 963a0e: 50450
by GitHub
Branch: refs/heads/5.0
Home: https://github.com/pharo-project/pharo-core
Commit: 963a0ec0c4110667e41b8a9e0a2efc4cffd2bc4d
https://github.com/pharo-project/pharo-core/commit/963a0ec0c4110667e41b8a9e…
Author: Jenkins Build Server <board(a)pharo-project.org>
Date: 2015-11-17 (Tue, 17 Nov 2015)
Changed paths:
M NECompletion-Tests.package/NECContextTest.class/instance/tests/testCreateModel.st
M NECompletion.package/NECContext.class/instance/accessing/createModel.st
A NECompletion.package/NECPreferences.class/class/accessing/overrideModel.st
A NECompletion.package/NECPreferences.class/class/accessing/overrideModel_.st
M NECompletion.package/NECPreferences.class/class/class initialization/initialize.st
M NECompletion.package/NECPreferences.class/class/settings/settingsOn_.st
M Nautilus.package/NautilusUI.class/instance/system announcements/metaLinkModified_.st
A Reflectivity.package/MetaLink.class/instance/accessing/methods.st
M Reflectivity.package/extension/CompiledMethod/instance/installLink_.st
M Rubric.package/RubSmalltalkEditor.class/class/accessing/menuOn_.st
R ScriptLoader50.package/ScriptLoader.class/instance/pharo - scripts/script50449.st
A ScriptLoader50.package/ScriptLoader.class/instance/pharo - scripts/script50450.st
R ScriptLoader50.package/ScriptLoader.class/instance/pharo - updates/update50449.st
A ScriptLoader50.package/ScriptLoader.class/instance/pharo - updates/update50450.st
M ScriptLoader50.package/ScriptLoader.class/instance/public/commentForCurrentUpdate.st
A SmartSuggestions.package/SugsMenuBuilder.class/class/builder/buildContextMenuOn_.st
Log Message:
-----------
50450
17034 Improve discoverability of the smart Suggestions
https://pharo.fogbugz.com/f/cases/17034
17036 BreakPoints: fix browser refresh after adding a breakpoint
https://pharo.fogbugz.com/f/cases/17036
17031 add preference completing whole method. off by default
https://pharo.fogbugz.com/f/cases/17031
http://files.pharo.org/image/50/50450.zip
Nov. 17, 2015
Re: [Pharo-dev] A Question about Metacello's #repository:
by Dale Henrichs
Sven,
I've read through the follow-on messages to this post and I'm not quite
sure I know what you are asking, so I will just reply here ...
On 11/17/2015 06:12 AM, Sven Van Caekenberghe wrote:
> Hi,
>
> I have a question about the way repositories are specified in Metacello (i.e. by means on #repository:).
>
> Say I use FileTree where the files come from a classic VCS or just from some archive. Using ZeroConf I can get an image+vm, etc. I can use the config command line handler to load the configuration from a local file directory (I haven't tried this yet, but I assume no scheme results in a MCDirectoryRepository). So far so good.
Okay I'll put in some examples here to make sure that we're on the same
page. First here's a linek[1] to the documentation for the various
schemes that can be used as Metacello repository descriptions (the arg
to the #repository: message).
If you want to use FileTree for your local repository then the
repository description has the form:
filtree://<full path to directory>
For an MCDirectoryRepository, the repository description has the form:
client://<full path to directory>
or
<full path to directory>
[1]
https://github.com/dalehenrich/metacello-work/blob/master/docs/MetacelloScr…
>
> The question is, what do I put in as argument to #repository: in my baseline ?
>
> baseline1: spec
> <version: '1-baseline'>
>
> spec for: #common do: [
> spec
> blessing: #baseline;
> repository: 'http://mc.stfx.eu/Neo';
> package: 'Neo-Console-Core';
> group: 'default' with: #('Neo-Console-Core');
> group: 'Core' with: #('Neo-Console-Core') ]
Okay, the baseline1: above is from your ConfigurationOfNeo
configuration, correct?
Since you are referencing `http://mc.stfx.eu/Neo`, I assume that the
primary repository is on http://mc.stfx.eu, correct?
When you ask "what do I put in as argument to #repository: in my
baseline?", I am confused ...
Perhaps my assumptions are incorrect? I assume that the above came from
a ConfigurationOfNeo and that the primary location is
`http://mc.stfx.eu/Neo`.
> Obviously not a remote http repository. But also not an absolute path, since I do not know where the user placed the files.
If the Neo project's primary repository is `http://mc.stfx.eu/Neo`, then
how does the user get a local copy of the repository - filetree:// or
client://?
> Ideally, it should be possible to leave out repository and let it resolve to wherever the configuration was located. Can that be done ? Or is there another way to do this ?
>
The BaselineOf was invented to solve this particular problem and I will
talk about github/git scenario, since the question of "how does the user
get a local copy of the repository?" has a straightforward answer....
To start with let's use the Sample project[2] as an example and lets
look how the project is specified in the BaselineOfSample>>baseline:[3]:
baseline: spec
<baseline>
spec
for: #'common'
do: [
spec package: 'Sample-Core'.
spec package: 'Sample-Tests' with: [ spec requires:
'Sample-Core' ].
spec
group: 'default' with: #('Core');
group: 'Core' with: #('Sample-Core');
group: 'Tests' with: #('Sample-Tests') ]
Note that there is no repository: specification .... which makes me
think that this is the answer to the question that you are asking:
> It should be possible to leave out repository and let it resolve to
> wherever the configuration was located.
A BaselineOf sets the internal repository: to the location where the
BaselineOfSample spec was loaded from. So you use the following
expression to load a BaselineOf into your image:
Metacello new
baseline: 'Sample';
repository: 'filetree://<fulll-path-to-directory>;
load.
Given that the user knows where she's cloned the
https://github.com/dalehenrich/sample.git repository, then it is
reasonable for the developer to know how to load the project from that
location ...
However, this is not a complete answer to the the overall problem ...
For example a corollary to your question is:
> How do I ensure that other projects that reference the Sample project
> load from my local clone?
So If you have a reference to the Sample project in another project, the
reference is likely to look like the following:
spec
baseline: 'Sample';
repository: 'github://dalehenrich/sample:master/repository';
loads: 'Core'.
Here we've got a reference to the github repo, but we'd like to use the
local filetree:// clone. There is a Metacello Scripting API command that
you can use to inform Metacello that the local filetree:// clone should
be used:
Metacello new
baseline: 'Sample';
repository: 'filetree://<fulll-path-to-directory>;
lock.
Again we're using the full-path, but the developer is the one that knows
a) the path to the local clone and b) whether or not the local clone
should be used ...
Now I will admit that having to remember and keep track of making sure
that the `lock` expression get's run in each image, can be a bit
difficult ....
In tODE I've addressed this issue by creating a project entry object
that is shared by "all images" and specifies not only the particulars of
project locking but includes additional information about what how you
want a particlar project loaded in "all images" (i.e., a specification
for the `loads` expression as well) ...
So I think I've addressed your question, but maybe I've completely
missed your point:)
Dale
[2] https://github.com/dalehenrich/sample
[3]
https://github.com/dalehenrich/sample/blob/master/repository/BaselineOfSamp…
Nov. 17, 2015
[pharo-project/pharo-core]
by GitHub
Branch: refs/tags/50449
Home: https://github.com/pharo-project/pharo-core
Nov. 17, 2015
[pharo-project/pharo-core] eff1b4: 50449
by GitHub
Branch: refs/heads/5.0
Home: https://github.com/pharo-project/pharo-core
Commit: eff1b4d0186ccd36e289d30ce167224b34ec2fbf
https://github.com/pharo-project/pharo-core/commit/eff1b4d0186ccd36e289d30c…
Author: Jenkins Build Server <board(a)pharo-project.org>
Date: 2015-11-17 (Tue, 17 Nov 2015)
Changed paths:
M Kernel.package/ClassDescription.class/instance/accessing/instanceVariables.st
R Kernel.package/ClassDescription.class/instance/accessing/instanceVariables_.st
M Nautilus.package/AbstractNautilusUI.class/instance/announcement registration/registerToSystemAnnouncements.st
M Nautilus.package/AbstractNautilusUI.class/instance/build ui text/buildNewCodeSourceAreaRubric.st
M Nautilus.package/Nautilus.class/instance/history/package_class_protocol_method_.st
A Nautilus.package/Nautilus.class/instance/styling/addIconStyle.st
A Nautilus.package/NautilusUI.class/instance/system announcements/metaLinkModified_.st
A Reflectivity-Examples.package/AbstractIconStyler.class/README.md
A Reflectivity-Examples.package/AbstractIconStyler.class/class/options/shouldStyle.st
A Reflectivity-Examples.package/AbstractIconStyler.class/class/style/style_.st
A Reflectivity-Examples.package/AbstractIconStyler.class/definition.st
A Reflectivity-Examples.package/AbstractIconStyler.class/instance/accessing/iconProvider.st
A Reflectivity-Examples.package/AbstractIconStyler.class/instance/accessing/textModel.st
A Reflectivity-Examples.package/AbstractIconStyler.class/instance/accessing/textModel_.st
A Reflectivity-Examples.package/AbstractIconStyler.class/instance/defaults/borderColor.st
A Reflectivity-Examples.package/AbstractIconStyler.class/instance/defaults/highlightColor.st
A Reflectivity-Examples.package/AbstractIconStyler.class/instance/defaults/icon.st
A Reflectivity-Examples.package/AbstractIconStyler.class/instance/defaults/iconBlock_.st
A Reflectivity-Examples.package/AbstractIconStyler.class/instance/defaults/iconLabel.st
A Reflectivity-Examples.package/AbstractIconStyler.class/instance/styling/addIconMethodStyle_.st
A Reflectivity-Examples.package/AbstractIconStyler.class/instance/styling/addIconStyle_.st
A Reflectivity-Examples.package/AbstractIconStyler.class/instance/styling/addIconStyle_from_to_.st
A Reflectivity-Examples.package/AbstractIconStyler.class/instance/styling/addIconStyle_from_to_color_.st
A Reflectivity-Examples.package/AbstractIconStyler.class/instance/testing/shouldStyleNode_.st
A Reflectivity-Examples.package/AbstractIconStyler.class/instance/visiting/visitArgumentNode_.st
A Reflectivity-Examples.package/AbstractIconStyler.class/instance/visiting/visitArrayNode_.st
A Reflectivity-Examples.package/AbstractIconStyler.class/instance/visiting/visitAssignmentNode_.st
A Reflectivity-Examples.package/AbstractIconStyler.class/instance/visiting/visitBlockNode_.st
A Reflectivity-Examples.package/AbstractIconStyler.class/instance/visiting/visitCascadeNode_.st
A Reflectivity-Examples.package/AbstractIconStyler.class/instance/visiting/visitGlobalNode_.st
A Reflectivity-Examples.package/AbstractIconStyler.class/instance/visiting/visitInstanceVariableNode_.st
A Reflectivity-Examples.package/AbstractIconStyler.class/instance/visiting/visitLiteralArrayNode_.st
A Reflectivity-Examples.package/AbstractIconStyler.class/instance/visiting/visitLiteralNode_.st
A Reflectivity-Examples.package/AbstractIconStyler.class/instance/visiting/visitMessageNode_.st
A Reflectivity-Examples.package/AbstractIconStyler.class/instance/visiting/visitMethodNode_.st
A Reflectivity-Examples.package/AbstractIconStyler.class/instance/visiting/visitParseErrorNode_.st
A Reflectivity-Examples.package/AbstractIconStyler.class/instance/visiting/visitPragmaNode_.st
A Reflectivity-Examples.package/AbstractIconStyler.class/instance/visiting/visitReturnNode_.st
A Reflectivity-Examples.package/AbstractIconStyler.class/instance/visiting/visitSelfNode_.st
A Reflectivity-Examples.package/AbstractIconStyler.class/instance/visiting/visitSequenceNode_.st
A Reflectivity-Examples.package/AbstractIconStyler.class/instance/visiting/visitSuperNode_.st
A Reflectivity-Examples.package/AbstractIconStyler.class/instance/visiting/visitTemporaryNode_.st
A Reflectivity-Examples.package/AbstractIconStyler.class/instance/visiting/visitThisContextNode_.st
A Reflectivity-Examples.package/AbstractIconStyler.class/instance/visiting/visitVariableNode_.st
A Reflectivity-Examples.package/BreakpointIconStyler.class/README.md
A Reflectivity-Examples.package/BreakpointIconStyler.class/definition.st
A Reflectivity-Examples.package/BreakpointIconStyler.class/instance/defaults/highlightColor.st
A Reflectivity-Examples.package/BreakpointIconStyler.class/instance/defaults/icon.st
A Reflectivity-Examples.package/BreakpointIconStyler.class/instance/defaults/iconBlock_.st
A Reflectivity-Examples.package/BreakpointIconStyler.class/instance/defaults/iconLabel.st
A Reflectivity-Examples.package/BreakpointIconStyler.class/instance/testing/shouldStyleNode_.st
M Reflectivity-Examples.package/CoverageDemo.class/README.md
A Reflectivity-Examples.package/CoverageRubricStyler.class/instance/styling/addIconStyle_from_to_.st
R Reflectivity-Examples.package/CoverageRubricStyler.class/instance/styling/addMetalinkStyle_from_to_.st
M Reflectivity-Examples.package/MetalinkIconStyler.class/README.md
A Reflectivity-Examples.package/MetalinkIconStyler.class/class/options/shouldStyle.st
M Reflectivity-Examples.package/MetalinkIconStyler.class/definition.st
R Reflectivity-Examples.package/MetalinkIconStyler.class/instance/accessing/iconProvider.st
R Reflectivity-Examples.package/MetalinkIconStyler.class/instance/accessing/textModel.st
R Reflectivity-Examples.package/MetalinkIconStyler.class/instance/accessing/textModel_.st
A Reflectivity-Examples.package/MetalinkIconStyler.class/instance/defaults/icon.st
A Reflectivity-Examples.package/MetalinkIconStyler.class/instance/defaults/iconBlock_.st
A Reflectivity-Examples.package/MetalinkIconStyler.class/instance/defaults/iconLabel.st
R Reflectivity-Examples.package/MetalinkIconStyler.class/instance/styling/addMetalinkMethodStyle_.st
R Reflectivity-Examples.package/MetalinkIconStyler.class/instance/styling/addMetalinkStyle_.st
R Reflectivity-Examples.package/MetalinkIconStyler.class/instance/styling/addMetalinkStyle_from_to_.st
R Reflectivity-Examples.package/MetalinkIconStyler.class/instance/styling/addMetalinkStyle_from_to_color_.st
A Reflectivity-Examples.package/MetalinkIconStyler.class/instance/testing/shouldStyleNode_.st
R Reflectivity-Examples.package/MetalinkIconStyler.class/instance/visiting/visitArgumentNode_.st
R Reflectivity-Examples.package/MetalinkIconStyler.class/instance/visiting/visitArrayNode_.st
R Reflectivity-Examples.package/MetalinkIconStyler.class/instance/visiting/visitAssignmentNode_.st
R Reflectivity-Examples.package/MetalinkIconStyler.class/instance/visiting/visitBlockNode_.st
R Reflectivity-Examples.package/MetalinkIconStyler.class/instance/visiting/visitCascadeNode_.st
R Reflectivity-Examples.package/MetalinkIconStyler.class/instance/visiting/visitGlobalNode_.st
R Reflectivity-Examples.package/MetalinkIconStyler.class/instance/visiting/visitInstanceVariableNode_.st
R Reflectivity-Examples.package/MetalinkIconStyler.class/instance/visiting/visitLiteralArrayNode_.st
R Reflectivity-Examples.package/MetalinkIconStyler.class/instance/visiting/visitLiteralNode_.st
R Reflectivity-Examples.package/MetalinkIconStyler.class/instance/visiting/visitMessageNode_.st
R Reflectivity-Examples.package/MetalinkIconStyler.class/instance/visiting/visitMethodNode_.st
R Reflectivity-Examples.package/MetalinkIconStyler.class/instance/visiting/visitParseErrorNode_.st
R Reflectivity-Examples.package/MetalinkIconStyler.class/instance/visiting/visitPragmaNode_.st
R Reflectivity-Examples.package/MetalinkIconStyler.class/instance/visiting/visitReturnNode_.st
R Reflectivity-Examples.package/MetalinkIconStyler.class/instance/visiting/visitSelfNode_.st
R Reflectivity-Examples.package/MetalinkIconStyler.class/instance/visiting/visitSequenceNode_.st
R Reflectivity-Examples.package/MetalinkIconStyler.class/instance/visiting/visitSuperNode_.st
R Reflectivity-Examples.package/MetalinkIconStyler.class/instance/visiting/visitTemporaryNode_.st
R Reflectivity-Examples.package/MetalinkIconStyler.class/instance/visiting/visitThisContextNode_.st
R Reflectivity-Examples.package/MetalinkIconStyler.class/instance/visiting/visitVariableNode_.st
R Reflectivity-Examples.package/MetalinkTextSegmentMorph.class/README.md
R Reflectivity-Examples.package/MetalinkTextSegmentMorph.class/definition.st
A Reflectivity.package/MetalinkChanged.class/README.md
A Reflectivity.package/MetalinkChanged.class/definition.st
A Reflectivity.package/MetalinkChanged.class/instance/accessing/link.st
A Reflectivity.package/MetalinkChanged.class/instance/accessing/link_.st
M Reflectivity.package/ReflectiveMethod.class/instance/testing/installLink_.st
M Reflectivity.package/extension/CompiledMethod/instance/hasBreakpoint.st
A Reflectivity.package/extension/RBProgramNode/instance/hasBreakpoint.st
R ScriptLoader50.package/ScriptLoader.class/instance/pharo - scripts/script50448.st
A ScriptLoader50.package/ScriptLoader.class/instance/pharo - scripts/script50449.st
R ScriptLoader50.package/ScriptLoader.class/instance/pharo - updates/update50448.st
A ScriptLoader50.package/ScriptLoader.class/instance/pharo - updates/update50449.st
M ScriptLoader50.package/ScriptLoader.class/instance/public/commentForCurrentUpdate.st
M Tool-ExternalBrowser.package/ExternalBrowser.class/instance/initialize/initializePresenter.st
M Tool-ExternalBrowser.package/ExternalBrowser.class/instance/initialize/initializeWidgets.st
R Traits.package/TClassDescription.class/instance/accessing/instanceVariables_.st
R Traits.package/TraitDescription.class/instance/accessing/instanceVariables_.st
Log Message:
-----------
50449
17027 nil out instanceVariables and remove accessor
https://pharo.fogbugz.com/f/cases/17027
17033 Visualization of Breakpoints
https://pharo.fogbugz.com/f/cases/17033
17030 ExternalBrowser can not switch back to the instance side
https://pharo.fogbugz.com/f/cases/17030
http://files.pharo.org/image/50/50449.zip
Nov. 17, 2015
Re: [Pharo-dev] EyeInspector with subclasses of ProtoObject
by Nicolas Cellier
Inspector: a surgery tool to see inside the objects
Debugger: a surgery tool to see inside the processes - or maybe to see how
the object live from the inside ;)
2015-11-17 18:37 GMT+01:00 Eliot Miranda <eliot.miranda(a)gmail.com>:
> Hi Esteban,
>
> I think EyeInspector needs to handle classes that don't inherit from
> Object specially. Instead of asking the instance it should ask the class.
> You should be able to use the Context methods for mirror primitives to
> extract state without sending messages to the instance. Then the special
> version of EyeInspector for ProtoObject subclasses can ask this like
>
> (thisContext objectClass: object) isIndexable ifTrue:
> [size := thisContext objectSize: object]
>
> Basically both the Inspector and the Debugger's execution simulation
> machinery need to treat encapsulators such as MessageArchiver with kid
> gloves. One *must not* cause inspecting or debugging to send messages
> through the encapsulator. Instead, all access to the object should be
> through primitives that don't send messages to the objects.
>
> HTH
>
>
> On Tue, Nov 17, 2015 at 7:05 AM, Esteban A. Maringolo <
> emaringolo(a)gmail.com> wrote:
>
>> I'm dealing with the MessageArchiver of GLORP which is a subclass of
>> ProtoObject and handles the "transparent" creation of expressions vÃa
>> a DNU resolution.
>>
>> The problem I'm facing is that the EyeInspector expects the value in
>> its value holder to respond to #basicSize, and because MessageArchiver
>> inherits from ProtoObject it doesn't understand it.
>>
>> The problem is here:
>> EyeInspector>>#variableFieldsToShow
>> "Answers the indexes of the variable fields of the object to show.
>> Shorten the list for very long collection (cf limit1 and limit2)"
>> |bSize|
>> bSize := self objectVariableSize.
>> ^ bSize <= (self limit1 + self limit2) ifTrue: [1 to: bSize] ifFalse:
>> [(1 to: self limit1) , (bSize - self limit2 + 1 to: bSize)].
>>
>> If I implement #basicSize in MessageArchiver things go bananas. If I
>> doesn't, and because #objectVariableSize is sent to MessageAchiver
>> "proxy", bSize ends up with an instance of the MessageArchiver instead
>> of an integer.
>>
>> I implemented #inspectorClass in MessageArchiver class to return
>> EyeBasicInspector, but it is the same.
>>
>> Question: Is it documented what I should define/override in my classes
>> to support EyeInspector?
>>
>> Regards,
>>
>> Esteban A. Maringolo
>>
>> pd: Stack trace
>> ===========
>>
>> UndefinedObject(Object)>>error:
>> MessageArchiver>>mustBeBoolean
>> EyeBasicInspector(EyeInspector)>>variableFieldsToShow
>> EyeBasicInspector(EyeInspector)>>addVariableFields:
>> EyeBasicInspector(EyeInspector)>>generateElements
>> EyeBasicInspector(EyeInspector)>>updateList
>> EyeBasicInspector(EyeInspector)>>objectChanged
>> [ self objectChanged ] in
>> EyeBasicInspector(EyeAbstractInspector)>>initializePresenter in Block:
>> [ self objectChanged ]
>> BlockClosure>>cull:
>> BlockClosure>>cull:cull:
>> BlockClosure>>cull:cull:cull:
>> BlockClosure>>cull:cull:cull:cull:
>>
>>
>
>
> --
> _,,,^..^,,,_
> best, Eliot
>
Nov. 17, 2015
Re: [Pharo-dev] EyeInspector with subclasses of ProtoObject
by Eliot Miranda
Hi Esteban,
I think EyeInspector needs to handle classes that don't inherit from
Object specially. Instead of asking the instance it should ask the class.
You should be able to use the Context methods for mirror primitives to
extract state without sending messages to the instance. Then the special
version of EyeInspector for ProtoObject subclasses can ask this like
(thisContext objectClass: object) isIndexable ifTrue:
[size := thisContext objectSize: object]
Basically both the Inspector and the Debugger's execution simulation
machinery need to treat encapsulators such as MessageArchiver with kid
gloves. One *must not* cause inspecting or debugging to send messages
through the encapsulator. Instead, all access to the object should be
through primitives that don't send messages to the objects.
HTH
On Tue, Nov 17, 2015 at 7:05 AM, Esteban A. Maringolo <emaringolo(a)gmail.com>
wrote:
> I'm dealing with the MessageArchiver of GLORP which is a subclass of
> ProtoObject and handles the "transparent" creation of expressions vÃa
> a DNU resolution.
>
> The problem I'm facing is that the EyeInspector expects the value in
> its value holder to respond to #basicSize, and because MessageArchiver
> inherits from ProtoObject it doesn't understand it.
>
> The problem is here:
> EyeInspector>>#variableFieldsToShow
> "Answers the indexes of the variable fields of the object to show.
> Shorten the list for very long collection (cf limit1 and limit2)"
> |bSize|
> bSize := self objectVariableSize.
> ^ bSize <= (self limit1 + self limit2) ifTrue: [1 to: bSize] ifFalse:
> [(1 to: self limit1) , (bSize - self limit2 + 1 to: bSize)].
>
> If I implement #basicSize in MessageArchiver things go bananas. If I
> doesn't, and because #objectVariableSize is sent to MessageAchiver
> "proxy", bSize ends up with an instance of the MessageArchiver instead
> of an integer.
>
> I implemented #inspectorClass in MessageArchiver class to return
> EyeBasicInspector, but it is the same.
>
> Question: Is it documented what I should define/override in my classes
> to support EyeInspector?
>
> Regards,
>
> Esteban A. Maringolo
>
> pd: Stack trace
> ===========
>
> UndefinedObject(Object)>>error:
> MessageArchiver>>mustBeBoolean
> EyeBasicInspector(EyeInspector)>>variableFieldsToShow
> EyeBasicInspector(EyeInspector)>>addVariableFields:
> EyeBasicInspector(EyeInspector)>>generateElements
> EyeBasicInspector(EyeInspector)>>updateList
> EyeBasicInspector(EyeInspector)>>objectChanged
> [ self objectChanged ] in
> EyeBasicInspector(EyeAbstractInspector)>>initializePresenter in Block:
> [ self objectChanged ]
> BlockClosure>>cull:
> BlockClosure>>cull:cull:
> BlockClosure>>cull:cull:cull:
> BlockClosure>>cull:cull:cull:cull:
>
>
--
_,,,^..^,,,_
best, Eliot
Nov. 17, 2015