Pharo-dev
By thread
pharo-dev@lists.pharo.org
By month
Messages by month
- ----- 2026 -----
- 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
June 2015
- 762 messages
Re: [Pharo-dev] block syntax experiments
by Sven Van Caekenberghe
> On 03 Jun 2015, at 15:31, Sean P. DeNigris <sean(a)clipperadams.com> wrote:
>
> stepharo wrote
>> my impression is that we can focus on better improvements with larger
>> impact.
>
> +1,000,000. What makes Smalltalk as a language interesting is that, like
> Lisp, it's one of the few languages where you can fit the entire language on
> a napkin. I would think extreeeemely hard about the benefits before adding
> more syntax. If we wanted syntax at the expense of simplicity and
> uniformity, we'd be using Ruby ;)
Amen.
>
> -----
> Cheers,
> Sean
> --
> View this message in context: http://forum.world.st/block-syntax-experiments-tp4830097p4830230.html
> Sent from the Pharo Smalltalk Developers mailing list archive at Nabble.com.
>
June 3, 2015
Re: [Pharo-dev] I need reviewer of https://pharo.fogbugz.com/default.asp?15646
by Thierry Goubier
2015-06-03 15:09 GMT+02:00 Nicolai Hess <nicolaihess(a)web.de>:
>
>
> self versionFromFileNamed: fileName
> is called after it isn't found in the MCCacheRepository
> and if it is not found in its own special repository cache , it is loaded
> with
> self loadVersionFromFileNamed:
> and this again looks up in the MCCacheRepostory:
>
> loadVersionFromFileNamed: aString
> (MCCacheRepository uniqueInstance includesFileNamed: aString)
> ifTrue: [ ^ MCCacheRepository uniqueInstance
> loadVersionFromFileNamed: aString].
>
> ^ self versionReaderForFileNamed: aString do: [:r | r version]
>
> but this time it searches the package in the MCCacheRepitory by its name
> only and load
> the version info from that file.
>
Thanks for finding that. Interesting, that semantic missmatch ... which
amounts to loosing the version info in places during the loading process.
Notes for documentation :
- FileTree changes versionFromFileNamed: to disable the internal repository
cache (but cache is still an instance variable because of inheritance, and
it goes through PackageCache).
- GitFileTree avoids the PackageCache altogether and is the only type of
repo not to have that bug in Pharo4 (Yes! But I had no idea why :)).
>
>> We need to build test repositories to have correct coverage of those
>> issues, because at the moment I'm not sure I understand the case you are
>> describing :(
>>
>
>
> Try to load
>
> SLICE-Issue-15646-Cleaning-method-category-api-should-be-protocol-part-1-StephaneDucasse.1
> from pharo 5.0 inbox repository.
> This slice has dependencies to packages
> DebuggerActions-StephaneDucasse.75, Kernel-StephaneDucasse.2042
> which are both in pharo 5.0 main and inbox repository but with different
> uuids
>
Yuck :(
So, if I understood well, what is happening is:
- Reading from Pharo5Main, DebuggerActions-StephaneDucasse.75 is loaded in
PackageCache (and in the cache of Pharo5Main).
- Comparing UUIDs say that this is not the right one.
- Reading from Pharo5Inbox, DebuggerActions-StephaneDucasse.75 is loaded in
the cache of Pharo5Inbox
- First read inside package cache say that the file exist but has the wrong
UUID
- Second read has matching file name inside Pharo5Inbox
- So it loads the version from Pharo5Inbox
- which test PackageCache for DebuggerActions-StephaneDucasse.75 ...
which is true
- But uuids don't match
- so it fails....
I hate package-cache.
>
>
> If pharo 5.0 main repository is searched first, it will only find packages
> with the wrong version info,
> even if the packages in the 5.0 inbox have the correct version info.
>
You're right.
So your fix should work. I would not hesitate however:
- to move the version reading line inside versionWithInfo:ifAbsent:
- to factor the cache update into an #updateCacheWith: v (so that it can
also be called from versionFromFileNamed:) called from
versionWithInfo:ifAbsent:
Thierry
>
>
>
>
>>
>> Thierry
>>
>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>>
>>>> Package loads with version info happens in two cases:
>>>> - dependency loading (i.e. slices)
>>>> - history loading (i.e. browsing history and merges).
>>>>
>>>> Anything else is loading by name, since this is what is recorded in
>>>> Configurations and Gofer scripts.
>>>>
>>>> Thierry
>>>>
>>>>
>>>>>
>>>>> nicolai
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>>
>>>>>> Maybe we could for real put (part of) the UID in the filename?
>>>>>>
>>>>>> In a disconnected system the case that the filename is the same for
>>>>>> different files will always happen if the name is contructed
>>>>>> as it is now.
>>>>>>
>>>>>> Marcus
>>>>>>
>>>>>> > On 02 Jun 2015, at 22:37, stepharo <stepharo(a)free.fr> wrote:
>>>>>> >
>>>>>> > I hate so much this bug....
>>>>>> >
>>>>>> >
>>>>>> > Le 1/6/15 15:04, Ben Coman a écrit :
>>>>>> >> Stef, I can now see all the dependent packages for the new slice,
>>>>>> but
>>>>>> >> I still have a strange error. However I'm not sure if its a bug or
>>>>>> >> something unique at my end.
>>>>>> >>
>>>>>> >> Can someone try merging
>>>>>> >>
>>>>>> SLICE-Issue-15646-Cleaning-method-category-api-should-be-protocol-part-1-StephaneDucasse.1
>>>>>> >>
>>>>>> >> What I see at top of stack is two calls to
>>>>>> MCVersionMerger>>addVersion:
>>>>>> >>
>>>>>> >> MCVersionMerger>>addVersion: aVersion
>>>>>> >> records add: (MCMergeRecord version: aVersion).
>>>>>> >> aVersion dependencies
>>>>>> >> do: [:ea | | dep satisfied |
>>>>>> >> dep := ea resolve.
>>>>>> >> satisfied := (records anySatisfy: [:r | r version
>>>>>> = dep]).
>>>>>> >> satisfied ifFalse: [self addVersion: dep]] "<<<
>>>>>> race? "
>>>>>> >> displayingProgress: [ :ea| 'Searching dependency: ', ea
>>>>>> >> package name]
>>>>>> >> "15646Note: variable /satisfied/ added for reporting/debugging"
>>>>>> >>
>>>>>> >> One level down from where the error occurs the debugger shows...
>>>>>> >>
>>>>>> >> /aVersion/ --> a
>>>>>> >>
>>>>>> MCVersion(SLICE-Issue-15646-Cleaning-method-category-api-should-be-protocol-part-1-StephaneDucasse.1)
>>>>>> >>
>>>>>> >> /ea/ --> a MCVersionInfo(DebuggerActions-StephaneDucasse.75)
>>>>>> >>
>>>>>> >> /dep/ --> nil
>>>>>> >>
>>>>>> >> /satisfied/ --> false
>>>>>> >>
>>>>>> >> and the following which contradicts the value in /satisfied/
>>>>>> >>
>>>>>> >> (records anySatisfy: [:r | r version = dep]) --> true.
>>>>>> >>
>>>>>> >> so there seems to be a race such that the ifFalse block is
>>>>>> improperly
>>>>>> >> executed, such that the recursive call on top of stack has...
>>>>>> >>
>>>>>> >> /aVersion/-->nil
>>>>>> >>
>>>>>> >> hence MNU receiver of "dependencies" is nil.
>>>>>> >>
>>>>>> >> cheers -ben
>>>>>> >>
>>>>>> >>
>>>>>> >> On Mon, Jun 1, 2015 at 10:36 AM, Ben Coman <btc(a)openinworld.com>
>>>>>> wrote:
>>>>>> >>> I tried, but it seems some packages are missing from the inbox.
>>>>>> >>> cheers -ben
>>>>>> >>>
>>>>>> >>> On Sun, May 31, 2015 at 2:19 PM, stepharo <stepharo(a)free.fr>
>>>>>> wrote:
>>>>>> >>>> Hi
>>>>>> >>>>
>>>>>> >>>> I continued to clean that classes have categories and method
>>>>>> protocols
>>>>>> >>>> because it was not finished.
>>>>>> >>>> This entry is just adding protocol in the classes that were
>>>>>> missing it,
>>>>>> >>>> adding comments, and fixing some local senders
>>>>>> >>>> It does not remove the category API but puts it in a
>>>>>> accessing-backward
>>>>>> >>>> protocol and in a second step I will fix all the senders I can
>>>>>> (ie not
>>>>>> >>>> Metacello for example).
>>>>>> >>>> Category is really overloaded and we get lost when trying to
>>>>>> understand
>>>>>> >>>> code.
>>>>>> >>>> I want to rename RBRule 'category' into 'kind' for this reason.
>>>>>> >>>>
>>>>>> >>>> Stef
>>>>>> >>>>
>>>>>> >>
>>>>>> >
>>>>>> >
>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>>
>>>
>>
>
June 3, 2015
Re: [Pharo-dev] block syntax experiments
by Sean P. DeNigris
stepharo wrote
> my impression is that we can focus on better improvements with larger
> impact.
+1,000,000. What makes Smalltalk as a language interesting is that, like
Lisp, it's one of the few languages where you can fit the entire language on
a napkin. I would think extreeeemely hard about the benefits before adding
more syntax. If we wanted syntax at the expense of simplicity and
uniformity, we'd be using Ruby ;)
-----
Cheers,
Sean
--
View this message in context: http://forum.world.st/block-syntax-experiments-tp4830097p4830230.html
Sent from the Pharo Smalltalk Developers mailing list archive at Nabble.com.
June 3, 2015
[pharo-project/pharo-core]
by GitHub
Branch: refs/tags/50086
Home: https://github.com/pharo-project/pharo-core
June 3, 2015
[pharo-project/pharo-core] 89d233: 50086
by GitHub
Branch: refs/heads/5.0
Home: https://github.com/pharo-project/pharo-core
Commit: 89d233dbc63c2e36a09e6a49f51ca52b59e127b4
https://github.com/pharo-project/pharo-core/commit/89d233dbc63c2e36a09e6a49…
Author: Jenkins Build Server <board(a)pharo-project.org>
Date: 2015-06-03 (Wed, 03 Jun 2015)
Changed paths:
A Kernel.package/CompiledMethod.class/instance/testing/containsHalt.st
M Nautilus.package/AbstractMethodIconAction.class/README.md
M Nautilus.package/AbstractNautilusUI.class/definition.st
M Nautilus.package/AbstractNautilusUI.class/instance/build ui text/buildNewCommentText.st
R Nautilus.package/AbstractNautilusUI.class/instance/icons behavior/runScriptMethod_.st
M Nautilus.package/AbstractNautilusUI.class/instance/source code area/okToChangeComment.st
M Nautilus.package/MethodClassInitializeAction.class/instance/order/isActionHandled.st
M Nautilus.package/MethodContainsFlagsAction.class/instance/order/isActionHandled.st
M Nautilus.package/MethodContainsHaltAction.class/instance/order/isActionHandled.st
M Nautilus.package/MethodIsExampleAction.class/instance/as yet unclassified/isActionHandled.st
M Nautilus.package/MethodIsScriptAction.class/README.md
M Nautilus.package/MethodIsScriptAction.class/instance/order/isActionHandled.st
A Nautilus.package/MethodIsScriptAction.class/instance/order/isScriptMethod.st
M Nautilus.package/MethodIsScriptAction.class/instance/order/privateActionIcon.st
A Nautilus.package/MethodIsScriptAction.class/instance/order/runScript.st
A Nautilus.package/MethodIsScriptWithArgumentAction.class/README.md
A Nautilus.package/MethodIsScriptWithArgumentAction.class/definition.st
A Nautilus.package/MethodIsScriptWithArgumentAction.class/instance/order/actionOrder.st
A Nautilus.package/MethodIsScriptWithArgumentAction.class/instance/order/isActionHandled.st
A Nautilus.package/MethodIsScriptWithArgumentAction.class/instance/order/isScriptMethodWithScript.st
A Nautilus.package/MethodIsScriptWithArgumentAction.class/instance/order/privateActionIcon.st
A Nautilus.package/MethodIsScriptWithArgumentAction.class/instance/order/runScript.st
M Nautilus.package/MethodOveridesAction.class/instance/order/isActionHandled.st
A Nautilus.package/MethodOveridesAction.class/instance/order/isOverridden.st
A Nautilus.package/MethodOveridesAction.class/instance/order/isOverride.st
M Nautilus.package/NautilusUI.class/class/initialize/initializeCache.st
R NautilusCommon.package/extension/CompiledMethod/instance/containsFlag.st
R NautilusCommon.package/extension/CompiledMethod/instance/containsHalt.st
R NautilusCommon.package/extension/CompiledMethod/instance/dragAndDropPrint.st
R NautilusCommon.package/extension/CompiledMethod/instance/isClassInitializeMethod.st
R NautilusCommon.package/extension/CompiledMethod/instance/isExampleMethod.st
R NautilusCommon.package/extension/CompiledMethod/instance/isOverride.st
R NautilusCommon.package/extension/CompiledMethod/instance/isScriptMethod.st
R NautilusCommon.package/extension/CompiledMethod/instance/isScriptMethodWithScript.st
A ScriptLoader50.package/ScriptLoader.class/instance/cleaning/addHomeRepositoryToAllPackagesExcept_.st
A ScriptLoader50.package/ScriptLoader.class/instance/cleaning/addRepositoryToPackagesWithConfiguration.st
M ScriptLoader50.package/ScriptLoader.class/instance/cleaning/cleanRepositories.st
M ScriptLoader50.package/ScriptLoader.class/instance/cleaning/flushCaches.st
R ScriptLoader50.package/ScriptLoader.class/instance/pharo - scripts/script50085.st
A ScriptLoader50.package/ScriptLoader.class/instance/pharo - scripts/script50086.st
R ScriptLoader50.package/ScriptLoader.class/instance/pharo - updates/update50085.st
A ScriptLoader50.package/ScriptLoader.class/instance/pharo - updates/update50086.st
M ScriptLoader50.package/ScriptLoader.class/instance/public/commentForCurrentUpdate.st
A Spec-Tools.package/KeymapBrowser.class/class/accessing/taskbarIcon.st
M Spec-Tools.package/KeymapBrowser.class/class/system menu/keymapBrowserMenuOn_.st
A Spec-Tools.package/extension/ThemeIcons/instance/keymapBrowserIcon.st
A Spec-Tools.package/extension/ThemeIcons/instance/keymapBrowserIconContents.st
Log Message:
-----------
50086
15674 Clean Nautilus icons and fixed missing class variables
https://pharo.fogbugz.com/f/cases/15674
15661 KeymapBrowser should have an icon
https://pharo.fogbugz.com/f/cases/15661
15683 Fix prompt for cancel in class comment pane
https://pharo.fogbugz.com/f/cases/15683
http://files.pharo.org/image/50/50086.zip
June 3, 2015
Re: [Pharo-dev] I need reviewer of https://pharo.fogbugz.com/default.asp?15646
by Nicolai Hess
2015-06-03 14:47 GMT+02:00 Thierry Goubier <thierry.goubier(a)gmail.com>:
>
>
> 2015-06-03 14:19 GMT+02:00 Nicolai Hess <nicolaihess(a)web.de>:
>
>>
>>
>> 2015-06-03 13:22 GMT+02:00 Thierry Goubier <thierry.goubier(a)gmail.com>:
>>
>>>
>>>
>>> 2015-06-03 11:41 GMT+02:00 Nicolai Hess <nicolaihess(a)web.de>:
>>>
>>>>
>>>>
>>>> 2015-06-03 8:22 GMT+02:00 Marcus Denker <marcus.denker(a)inria.fr>:
>>>>
>>>>> Indeed⦠this has to do something with caching: when looking a .mcz the
>>>>> system just takes the one it finds, which might be
>>>>> one with the same name but different.
>>>>>
>>>>
>>>> here is a minimal change to the way it uses the cache, or omitting the
>>>> cache after the correct version
>>>> wasn't find in the cache.
>>>>
>>>> What do you think, may this work?
>>>>
>>>
>>> I'm not sure the problem is there. Often, in configurations, you don't
>>> have the full version info, just the mcz name :( And I would expect that a
>>> given repo has a single mcz with a given name (i.e. the repo cache should
>>> be working properly)...
>>>
>>> Nice find that each file based repository has a cache in addition to the
>>> main package cache....
>>>
>>
>> The problem is that the package "loading" again searches the cache,
>> without the version id:
>>
>> search for package with name+id
>> -> search cache for package with name+id -> "not found
>> -> search other repos
>> -> other repo:
>> -> search again the cache for package with name+id -> "not found"
>> -> load version with name
>> -> search cache for package with *name only* -> "Found"
>> "other" repo thinks it has loaded its package with that
>> name
>> -> compare name+id -> "not found"
>> <- nothing found, even if it is (online) in other repo.
>>
>
> Are you sure? Because the code you describe does not correct/affect that.
>
> 'self versionFromFileNamed: fileName'
>
> looks only into that special repository cache, not the global one.
>
self versionFromFileNamed: fileName
is called after it isn't found in the MCCacheRepository
and if it is not found in its own special repository cache , it is loaded
with
self loadVersionFromFileNamed:
and this again looks up in the MCCacheRepostory:
loadVersionFromFileNamed: aString
(MCCacheRepository uniqueInstance includesFileNamed: aString)
ifTrue: [ ^ MCCacheRepository uniqueInstance
loadVersionFromFileNamed: aString].
^ self versionReaderForFileNamed: aString do: [:r | r version]
but this time it searches the package in the MCCacheRepitory by its name
only and load
the version info from that file.
>
> We need to build test repositories to have correct coverage of those
> issues, because at the moment I'm not sure I understand the case you are
> describing :(
>
Try to load
SLICE-Issue-15646-Cleaning-method-category-api-should-be-protocol-part-1-StephaneDucasse.1
from pharo 5.0 inbox repository.
This slice has dependencies to packages
DebuggerActions-StephaneDucasse.75, Kernel-StephaneDucasse.2042
which are both in pharo 5.0 main and inbox repository but with different
uuids
If pharo 5.0 main repository is searched first, it will only find packages
with the wrong version info,
even if the packages in the 5.0 inbox have the correct version info.
>
> Thierry
>
>
>>
>>
>>
>>
>>
>>
>>>
>>> Package loads with version info happens in two cases:
>>> - dependency loading (i.e. slices)
>>> - history loading (i.e. browsing history and merges).
>>>
>>> Anything else is loading by name, since this is what is recorded in
>>> Configurations and Gofer scripts.
>>>
>>> Thierry
>>>
>>>
>>>>
>>>> nicolai
>>>>
>>>>
>>>>
>>>>
>>>>>
>>>>> Maybe we could for real put (part of) the UID in the filename?
>>>>>
>>>>> In a disconnected system the case that the filename is the same for
>>>>> different files will always happen if the name is contructed
>>>>> as it is now.
>>>>>
>>>>> Marcus
>>>>>
>>>>> > On 02 Jun 2015, at 22:37, stepharo <stepharo(a)free.fr> wrote:
>>>>> >
>>>>> > I hate so much this bug....
>>>>> >
>>>>> >
>>>>> > Le 1/6/15 15:04, Ben Coman a écrit :
>>>>> >> Stef, I can now see all the dependent packages for the new slice,
>>>>> but
>>>>> >> I still have a strange error. However I'm not sure if its a bug or
>>>>> >> something unique at my end.
>>>>> >>
>>>>> >> Can someone try merging
>>>>> >>
>>>>> SLICE-Issue-15646-Cleaning-method-category-api-should-be-protocol-part-1-StephaneDucasse.1
>>>>> >>
>>>>> >> What I see at top of stack is two calls to
>>>>> MCVersionMerger>>addVersion:
>>>>> >>
>>>>> >> MCVersionMerger>>addVersion: aVersion
>>>>> >> records add: (MCMergeRecord version: aVersion).
>>>>> >> aVersion dependencies
>>>>> >> do: [:ea | | dep satisfied |
>>>>> >> dep := ea resolve.
>>>>> >> satisfied := (records anySatisfy: [:r | r version =
>>>>> dep]).
>>>>> >> satisfied ifFalse: [self addVersion: dep]] "<<<
>>>>> race? "
>>>>> >> displayingProgress: [ :ea| 'Searching dependency: ', ea
>>>>> >> package name]
>>>>> >> "15646Note: variable /satisfied/ added for reporting/debugging"
>>>>> >>
>>>>> >> One level down from where the error occurs the debugger shows...
>>>>> >>
>>>>> >> /aVersion/ --> a
>>>>> >>
>>>>> MCVersion(SLICE-Issue-15646-Cleaning-method-category-api-should-be-protocol-part-1-StephaneDucasse.1)
>>>>> >>
>>>>> >> /ea/ --> a MCVersionInfo(DebuggerActions-StephaneDucasse.75)
>>>>> >>
>>>>> >> /dep/ --> nil
>>>>> >>
>>>>> >> /satisfied/ --> false
>>>>> >>
>>>>> >> and the following which contradicts the value in /satisfied/
>>>>> >>
>>>>> >> (records anySatisfy: [:r | r version = dep]) --> true.
>>>>> >>
>>>>> >> so there seems to be a race such that the ifFalse block is
>>>>> improperly
>>>>> >> executed, such that the recursive call on top of stack has...
>>>>> >>
>>>>> >> /aVersion/-->nil
>>>>> >>
>>>>> >> hence MNU receiver of "dependencies" is nil.
>>>>> >>
>>>>> >> cheers -ben
>>>>> >>
>>>>> >>
>>>>> >> On Mon, Jun 1, 2015 at 10:36 AM, Ben Coman <btc(a)openinworld.com>
>>>>> wrote:
>>>>> >>> I tried, but it seems some packages are missing from the inbox.
>>>>> >>> cheers -ben
>>>>> >>>
>>>>> >>> On Sun, May 31, 2015 at 2:19 PM, stepharo <stepharo(a)free.fr>
>>>>> wrote:
>>>>> >>>> Hi
>>>>> >>>>
>>>>> >>>> I continued to clean that classes have categories and method
>>>>> protocols
>>>>> >>>> because it was not finished.
>>>>> >>>> This entry is just adding protocol in the classes that were
>>>>> missing it,
>>>>> >>>> adding comments, and fixing some local senders
>>>>> >>>> It does not remove the category API but puts it in a
>>>>> accessing-backward
>>>>> >>>> protocol and in a second step I will fix all the senders I can
>>>>> (ie not
>>>>> >>>> Metacello for example).
>>>>> >>>> Category is really overloaded and we get lost when trying to
>>>>> understand
>>>>> >>>> code.
>>>>> >>>> I want to rename RBRule 'category' into 'kind' for this reason.
>>>>> >>>>
>>>>> >>>> Stef
>>>>> >>>>
>>>>> >>
>>>>> >
>>>>> >
>>>>>
>>>>>
>>>>>
>>>>
>>>
>>
>
June 3, 2015
Re: [Pharo-dev] [Pharo-users] DNS changes files.phao.org today 16:30 local time
by Marcus Denker
> On 03 Jun 2015, at 15:04, Stephan Eggermont <stephan(a)stack.nl> wrote:
>
> On 03/06/15 14:56, Marcus Denker wrote:
>> 16:30 local time we will do some DNS related config change for
>> files.pharo.org <http://files.pharo.org>
>>
>> Nothing should change due to that normally.
>
> Because it is not reachable at the moment?
>
It should be⦠the problem is that the CDN stuff makes more problems than it solves, so
we will remove it.
Marcus
June 3, 2015
DNS changes files.phao.org today 16:30 local time
by Marcus Denker
Hi,
16:30 local time we will do some DNS related config change for files.pharo.org <http://files.pharo.org/>
Nothing should change due to that normally.
Marcus
June 3, 2015
Re: [Pharo-dev] I need reviewer of https://pharo.fogbugz.com/default.asp?15646
by Thierry Goubier
2015-06-03 14:19 GMT+02:00 Nicolai Hess <nicolaihess(a)web.de>:
>
>
> 2015-06-03 13:22 GMT+02:00 Thierry Goubier <thierry.goubier(a)gmail.com>:
>
>>
>>
>> 2015-06-03 11:41 GMT+02:00 Nicolai Hess <nicolaihess(a)web.de>:
>>
>>>
>>>
>>> 2015-06-03 8:22 GMT+02:00 Marcus Denker <marcus.denker(a)inria.fr>:
>>>
>>>> Indeed... this has to do something with caching: when looking a .mcz the
>>>> system just takes the one it finds, which might be
>>>> one with the same name but different.
>>>>
>>>
>>> here is a minimal change to the way it uses the cache, or omitting the
>>> cache after the correct version
>>> wasn't find in the cache.
>>>
>>> What do you think, may this work?
>>>
>>
>> I'm not sure the problem is there. Often, in configurations, you don't
>> have the full version info, just the mcz name :( And I would expect that a
>> given repo has a single mcz with a given name (i.e. the repo cache should
>> be working properly)...
>>
>> Nice find that each file based repository has a cache in addition to the
>> main package cache....
>>
>
> The problem is that the package "loading" again searches the cache,
> without the version id:
>
> search for package with name+id
> -> search cache for package with name+id -> "not found
> -> search other repos
> -> other repo:
> -> search again the cache for package with name+id -> "not found"
> -> load version with name
> -> search cache for package with *name only* -> "Found"
> "other" repo thinks it has loaded its package with that
> name
> -> compare name+id -> "not found"
> <- nothing found, even if it is (online) in other repo.
>
Are you sure? Because the code you describe does not correct/affect that.
'self versionFromFileNamed: fileName'
looks only into that special repository cache, not the global one.
We need to build test repositories to have correct coverage of those
issues, because at the moment I'm not sure I understand the case you are
describing :(
Thierry
>
>
>
>
>
>
>>
>> Package loads with version info happens in two cases:
>> - dependency loading (i.e. slices)
>> - history loading (i.e. browsing history and merges).
>>
>> Anything else is loading by name, since this is what is recorded in
>> Configurations and Gofer scripts.
>>
>> Thierry
>>
>>
>>>
>>> nicolai
>>>
>>>
>>>
>>>
>>>>
>>>> Maybe we could for real put (part of) the UID in the filename?
>>>>
>>>> In a disconnected system the case that the filename is the same for
>>>> different files will always happen if the name is contructed
>>>> as it is now.
>>>>
>>>> Marcus
>>>>
>>>> > On 02 Jun 2015, at 22:37, stepharo <stepharo(a)free.fr> wrote:
>>>> >
>>>> > I hate so much this bug....
>>>> >
>>>> >
>>>> > Le 1/6/15 15:04, Ben Coman a écrit :
>>>> >> Stef, I can now see all the dependent packages for the new slice, but
>>>> >> I still have a strange error. However I'm not sure if its a bug or
>>>> >> something unique at my end.
>>>> >>
>>>> >> Can someone try merging
>>>> >>
>>>> SLICE-Issue-15646-Cleaning-method-category-api-should-be-protocol-part-1-StephaneDucasse.1
>>>> >>
>>>> >> What I see at top of stack is two calls to
>>>> MCVersionMerger>>addVersion:
>>>> >>
>>>> >> MCVersionMerger>>addVersion: aVersion
>>>> >> records add: (MCMergeRecord version: aVersion).
>>>> >> aVersion dependencies
>>>> >> do: [:ea | | dep satisfied |
>>>> >> dep := ea resolve.
>>>> >> satisfied := (records anySatisfy: [:r | r version =
>>>> dep]).
>>>> >> satisfied ifFalse: [self addVersion: dep]] "<<<
>>>> race? "
>>>> >> displayingProgress: [ :ea| 'Searching dependency: ', ea
>>>> >> package name]
>>>> >> "15646Note: variable /satisfied/ added for reporting/debugging"
>>>> >>
>>>> >> One level down from where the error occurs the debugger shows...
>>>> >>
>>>> >> /aVersion/ --> a
>>>> >>
>>>> MCVersion(SLICE-Issue-15646-Cleaning-method-category-api-should-be-protocol-part-1-StephaneDucasse.1)
>>>> >>
>>>> >> /ea/ --> a MCVersionInfo(DebuggerActions-StephaneDucasse.75)
>>>> >>
>>>> >> /dep/ --> nil
>>>> >>
>>>> >> /satisfied/ --> false
>>>> >>
>>>> >> and the following which contradicts the value in /satisfied/
>>>> >>
>>>> >> (records anySatisfy: [:r | r version = dep]) --> true.
>>>> >>
>>>> >> so there seems to be a race such that the ifFalse block is improperly
>>>> >> executed, such that the recursive call on top of stack has...
>>>> >>
>>>> >> /aVersion/-->nil
>>>> >>
>>>> >> hence MNU receiver of "dependencies" is nil.
>>>> >>
>>>> >> cheers -ben
>>>> >>
>>>> >>
>>>> >> On Mon, Jun 1, 2015 at 10:36 AM, Ben Coman <btc(a)openinworld.com>
>>>> wrote:
>>>> >>> I tried, but it seems some packages are missing from the inbox.
>>>> >>> cheers -ben
>>>> >>>
>>>> >>> On Sun, May 31, 2015 at 2:19 PM, stepharo <stepharo(a)free.fr> wrote:
>>>> >>>> Hi
>>>> >>>>
>>>> >>>> I continued to clean that classes have categories and method
>>>> protocols
>>>> >>>> because it was not finished.
>>>> >>>> This entry is just adding protocol in the classes that were
>>>> missing it,
>>>> >>>> adding comments, and fixing some local senders
>>>> >>>> It does not remove the category API but puts it in a
>>>> accessing-backward
>>>> >>>> protocol and in a second step I will fix all the senders I can (ie
>>>> not
>>>> >>>> Metacello for example).
>>>> >>>> Category is really overloaded and we get lost when trying to
>>>> understand
>>>> >>>> code.
>>>> >>>> I want to rename RBRule 'category' into 'kind' for this reason.
>>>> >>>>
>>>> >>>> Stef
>>>> >>>>
>>>> >>
>>>> >
>>>> >
>>>>
>>>>
>>>>
>>>
>>
>
June 3, 2015
Re: [Pharo-dev] I need reviewer of https://pharo.fogbugz.com/default.asp?15646
by Nicolai Hess
2015-06-03 13:22 GMT+02:00 Thierry Goubier <thierry.goubier(a)gmail.com>:
>
>
> 2015-06-03 11:41 GMT+02:00 Nicolai Hess <nicolaihess(a)web.de>:
>
>>
>>
>> 2015-06-03 8:22 GMT+02:00 Marcus Denker <marcus.denker(a)inria.fr>:
>>
>>> Indeed⦠this has to do something with caching: when looking a .mcz the
>>> system just takes the one it finds, which might be
>>> one with the same name but different.
>>>
>>
>> here is a minimal change to the way it uses the cache, or omitting the
>> cache after the correct version
>> wasn't find in the cache.
>>
>> What do you think, may this work?
>>
>
> I'm not sure the problem is there. Often, in configurations, you don't
> have the full version info, just the mcz name :( And I would expect that a
> given repo has a single mcz with a given name (i.e. the repo cache should
> be working properly)...
>
> Nice find that each file based repository has a cache in addition to the
> main package cache....
>
The problem is that the package "loading" again searches the cache, without
the version id:
search for package with name+id
-> search cache for package with name+id -> "not found
-> search other repos
-> other repo:
-> search again the cache for package with name+id -> "not found"
-> load version with name
-> search cache for package with *name only* -> "Found"
"other" repo thinks it has loaded its package with that name
-> compare name+id -> "not found"
<- nothing found, even if it is (online) in other repo.
>
> Package loads with version info happens in two cases:
> - dependency loading (i.e. slices)
> - history loading (i.e. browsing history and merges).
>
> Anything else is loading by name, since this is what is recorded in
> Configurations and Gofer scripts.
>
> Thierry
>
>
>>
>> nicolai
>>
>>
>>
>>
>>>
>>> Maybe we could for real put (part of) the UID in the filename?
>>>
>>> In a disconnected system the case that the filename is the same for
>>> different files will always happen if the name is contructed
>>> as it is now.
>>>
>>> Marcus
>>>
>>> > On 02 Jun 2015, at 22:37, stepharo <stepharo(a)free.fr> wrote:
>>> >
>>> > I hate so much this bug....
>>> >
>>> >
>>> > Le 1/6/15 15:04, Ben Coman a écrit :
>>> >> Stef, I can now see all the dependent packages for the new slice, but
>>> >> I still have a strange error. However I'm not sure if its a bug or
>>> >> something unique at my end.
>>> >>
>>> >> Can someone try merging
>>> >>
>>> SLICE-Issue-15646-Cleaning-method-category-api-should-be-protocol-part-1-StephaneDucasse.1
>>> >>
>>> >> What I see at top of stack is two calls to
>>> MCVersionMerger>>addVersion:
>>> >>
>>> >> MCVersionMerger>>addVersion: aVersion
>>> >> records add: (MCMergeRecord version: aVersion).
>>> >> aVersion dependencies
>>> >> do: [:ea | | dep satisfied |
>>> >> dep := ea resolve.
>>> >> satisfied := (records anySatisfy: [:r | r version =
>>> dep]).
>>> >> satisfied ifFalse: [self addVersion: dep]] "<<<
>>> race? "
>>> >> displayingProgress: [ :ea| 'Searching dependency: ', ea
>>> >> package name]
>>> >> "15646Note: variable /satisfied/ added for reporting/debugging"
>>> >>
>>> >> One level down from where the error occurs the debugger shows...
>>> >>
>>> >> /aVersion/ --> a
>>> >>
>>> MCVersion(SLICE-Issue-15646-Cleaning-method-category-api-should-be-protocol-part-1-StephaneDucasse.1)
>>> >>
>>> >> /ea/ --> a MCVersionInfo(DebuggerActions-StephaneDucasse.75)
>>> >>
>>> >> /dep/ --> nil
>>> >>
>>> >> /satisfied/ --> false
>>> >>
>>> >> and the following which contradicts the value in /satisfied/
>>> >>
>>> >> (records anySatisfy: [:r | r version = dep]) --> true.
>>> >>
>>> >> so there seems to be a race such that the ifFalse block is improperly
>>> >> executed, such that the recursive call on top of stack has...
>>> >>
>>> >> /aVersion/-->nil
>>> >>
>>> >> hence MNU receiver of "dependencies" is nil.
>>> >>
>>> >> cheers -ben
>>> >>
>>> >>
>>> >> On Mon, Jun 1, 2015 at 10:36 AM, Ben Coman <btc(a)openinworld.com>
>>> wrote:
>>> >>> I tried, but it seems some packages are missing from the inbox.
>>> >>> cheers -ben
>>> >>>
>>> >>> On Sun, May 31, 2015 at 2:19 PM, stepharo <stepharo(a)free.fr> wrote:
>>> >>>> Hi
>>> >>>>
>>> >>>> I continued to clean that classes have categories and method
>>> protocols
>>> >>>> because it was not finished.
>>> >>>> This entry is just adding protocol in the classes that were missing
>>> it,
>>> >>>> adding comments, and fixing some local senders
>>> >>>> It does not remove the category API but puts it in a
>>> accessing-backward
>>> >>>> protocol and in a second step I will fix all the senders I can (ie
>>> not
>>> >>>> Metacello for example).
>>> >>>> Category is really overloaded and we get lost when trying to
>>> understand
>>> >>>> code.
>>> >>>> I want to rename RBRule 'category' into 'kind' for this reason.
>>> >>>>
>>> >>>> Stef
>>> >>>>
>>> >>
>>> >
>>> >
>>>
>>>
>>>
>>
>
June 3, 2015