Pharo-dev
By thread
pharo-dev@lists.pharo.org
By month
Messages by month
- ----- 2026 -----
- September
- 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
- 1 participants
- 144619 messages
Re: [Pharo-dev] Contributing to Pharo
by Bernhard Pieber
Dale,
Thanks for your thorough answer. I really appreciate how you include links to helpful articles.
I find the description of the workflow you actually use very enlightening. However, one thing still remains unclear. In the last step, when merging the pull request. How is the unchanged metadata reconciled with the code changes? I just realized that I just donât know what information is in the Monticello metadata, which is not in the code?
Cheers,
Bernhard
> Am 29.01.2016 um 19:12 schrieb Dale Henrichs <dale.henrichs(a)gemtalksystems.com>:
> On 01/29/2016 09:02 AM, Bernhard Pieber wrote:
>> Hi Dale,
>>
>> I am trying to understand this a little better. If a package containing metadata would be changed using a dialect which cannot interpret the metadata, wouldnât or at least couldnât it be broken or lost afterwards for a dialect which tries to interpret the metadata? At least if my assumption is correct that the metadata is related to the code in some way?
>>
> Bernhard,
>
> Very good question.
>
> You are absolutely correct, the act of writing a new version of a package using a different dialect would indeed destroy the platform-specific meta data.
>
> However, it is NOT expected that two different dialects (with different disk formats) share the same commit.
>
> If dialect A has committed a package, then dialect B is expected to be able to read the package written by dialect A. Being able to read the package means that all of the information that is common between the two dialects will be preserved ... in FileTree, this means that:
>
> - all of the class and instance method source is readable and shared
> - the method category is readable and shared
> - the name, superclass, instance variables, class instance variables,
> pools, class category, and class vars for classes is readable and shared
>
> This is an awful lot common data .... things like traits or namespaces are dialect specific and are ignored by dialects that don't have them when reading the package ...
>
> When dialect B has read, loaded/compiled and tested the code in the package, the developer has a couple of choices to be made when writing out a new package with her changes:
>
> - use the current branch
> - use a new branch
>
> I think that using a new branch is the cleanest option. When I port a project like Zinc[1] to GemStone[2], the master branch is preserved for the Pharo-specific code. I create a gs_master branch where the GemStone code goes. When Sven commits new code in his repo, I merge the changes from the his new master branch into my gs_master and resolve conflicts if any, run tests and I'm done.
>
> The vast mjority of the code base is shared between GemStone and Pharo and only the places where I made changes in porting Zinc to GemStone have the potential for conflicts. Running the tests should highlight any impacts not covered by direct conflicts and if there were some Pharo-specific meta data that I deleted on my branch that causes a test to fail then that is up to me to research and fix.
>
> When I have changes to feed back to Sven, I make those changes on a separate "topic branch"[3] that is merged into gs_master for my use. I then cherry-pick[4] the topic branch commit into a separate topic branch off of the master branch (this picks up only the changes I made on the topic branch) and open a pull request[5] against Svens repository ... if Sven were using travis-ci, tests would be run automatically against a merge of my changes into his master branch ... if the tests are green and the code passes Sven's scrutiny in a code review he merges my proposed changes into his master branch...
>
> GemStone and Pharo share a common disk format (not 100% common), but since git only merges the deltas for a commit, it is relatively easy to keep the meta data differences isolated while still sharing the vast bulk of the code and classes ....
>
> Dale
>
> [1] https://github.com/svenvc/zinc
> [2] https://github.com/GsDevKit/zinc
> [3] https://git-scm.com/book/en/v2/Git-Branching-Branching-Workflows
> [4] http://think-like-a-git.net/sections/rebase-from-the-ground-up/cherry-picki…
> [5] https://help.github.com/articles/using-pull-requests/
Jan. 30, 2016
ProcessTest>>testHighPriorityOverridesWaitTime intermittent failures
by Ben Coman
Case 17373 had an erroneous failure from
ProcessTest>>testHighPriorityOverridesWaitTime
and several others seem also to have suffered...
* https://pharo.fogbugz.com/default.asp?17373
* https://pharo.fogbugz.com/default.asp?17496
* https://pharo.fogbugz.com/default.asp?17445
* https://pharo.fogbugz.com/default.asp?7444
These have comments that the problem can't be reproduced, which is
common of occasional race conditions. So rather than just try to
solve this on the issue tracker, I thought I'd share a tip how to
isolate and squash such intermittent failures, essentially by
stressing that single test a large number of times like this...
1 to: 100 do: [ :n | Transcript crShow: 'Try ' , n printString.
ProcessTest debug: #testHighPriorityOverridesWaitTime. ]
Since the debugger only focusses on a point in time snapshot of the
running system, some Transcript instrumentation was useful to overview
the dynamic behaviour, like this...
ProcessTest>>testHighPriorityOverridesWaitTime
| lowerPriorityWaitingLonger higherPriorityWaitingLess
nextReadyProcess |
lowerPriorityWaitingLonger := [ ] forkAt: 11
higherPriorityWaitingLess := [ ] forkAt: 12.
nextReadyProcess := Processor nextReadyProcess.
Transcript cr;
tab;show: (lowerPriorityWaitingLonger priority ->
lowerPriorityWaitingLonger identityHash); cr;
tab;show: (higherPriorityWaitingLess priority ->
higherPriorityWaitingLess identityHash); cr;
tab;show: (nextReadyProcess priority -> nextReadyProcess
identityHash).
self assert: nextReadyProcess equals: higherPriorityWaitingLess.
which produces...
Try 1
11->343137024
12->40659200
12->40659200
Try 2
11->461794304
12->374996992
12->40659200
Observe on the second try nextReadyProcess refers to same process as
from the first try. This can be cleaned up just prior to the asset
check by adding ...
lowerPriorityWaitingLonger terminate.
higherPriorityWaitingLess terminate.
which produces...
Try 1
11->1005688064
12->833273600
12->833273600
...
Try 100
11->764450816
12->807973888
12->807973888
However this is still a little fragile, since some process with
priority greater than the running test could slip in before the call
to nextReadyProcess, as can be seen by pushing the #to:do: loop out to
100000, which produces...
Try 32044
11->784361216
12->431928576
40->397533952
or wrapping it by [ ]forkAt:39, which produces...
Try 1
11->431897088
12->400972288
30->338363648
After several awkward failed attempts to fix this, it seemed best to
observe actual behaviour rather than peeking into the dynamic data
structures. Thus I propose...
ProcessTest>>testHighPriorityOverridesWaitTime
"The first process to resume will pass straight through the gate
while the other waits for the assert to whichRan."
| gate checkAssert priorityRan |
gate := Semaphore new signal.
checkAssert := Semaphore new.
[ gate wait. priorityRan := 11. checkAssert signal ] forkAt: 11.
[ gate wait. priorityRan := 12. checkAssert signal ] forkAt: 12.
checkAssert wait.
self assert: priorityRan=12 description: 'Second scheduled but
higher priority should run first'.
gate signal.
checkAssert wait.
self assert: whichRan=11 description: 'First scheduled but lower
priority should run after'.
https://pharo.fogbugz.com/default.asp?17501
Jan. 30, 2016
Re: [Pharo-dev] Disable assertions (design by contract)
by Ben Coman
On Sat, Jan 30, 2016 at 9:34 AM, Richard Sargent
<richard.sargent(a)gemtalksystems.com> wrote:
> To that end, I was wondering about hacking the compiler to test the
> association with the reference I've named Assert (but probably in a general
> approach for any name). The code generator would send a specific message to
> the currently bound value (one would require it to be implemented by all
> objects bound to the name, just for honesty and clarity), to ask whether the
> code generator should emit code to test the named receiver and skip the
> whole statement if it answers true. The code would be generated in all
> cases, but it would not be evaluated when the stub mechanism is associated
> with Assert, since it would answer true to the skip question. Likewise, the
> real assertion mechanism would answer false and the whole statement would be
> evaluated.
I wonder (in ignorance) if MetaLinks could be applied here?
cheers -ben
Jan. 30, 2016
QualityAssistant feedback
by Ben Coman
I've just noticed for "Temporary variables not read AND written" that
the offending variable in the temporary variable definition is
highlighted. Is this new? Its very nice to have this visual
indication.
cheers -ben
Jan. 30, 2016
Re: [Pharo-dev] Disable assertions (design by contract)
by Richard Sargent
Eliot Miranda-2 wrote
> Hi Richard,
>
>> On Jan 28, 2016, at 2:15 PM, Richard Sargent <
> richard.sargent@
> > wrote:
>>
>> Aliaksei Syrel wrote
>>> Hi
>>>
>>> Assertions play an important role in design by contract. It is great to
>>> have assertions in Pharo out of box (Object>>#assert:). However in
>>> projects
>>> with many post- and precondition as also class invariants heavy usage of
>>> assertions decreases performance...
>>>
>>> Would it be possible to have a compiler setting (in setting browser) to
>>> enable/disable assertions and not compile them to bytecode? Compiler
>>> should
>>> ignore the whole assertion statement with removed condition. For
>>> example:
>>>
>>>> self assert: self hugeInvariant.
>>>
>>> with disabled assertion hugeInvariant must not be sent.
>>>
>>> Thanks,
>>> Alex
>>
>> My concern with this is that this proposal requires certain selectors to
>> become /reserved/. Most SUnit variations that I have seen entail several
>> dozen methods for asserting and denying behaviours, block evaluation
>> versus
>> inline expressions, descriptive explanations, and so on.
>>
>> It seems to me that you would be better off sending messages to a global.
>> Instead of:
>>> self assert: self hugeInvariant.
>> have something like:
>>> Assert that: self hugeInvariant.
>>
>> If the global Assert is bound to a stub the message is sent and ignored.
>> If
>> bound to a real assertion mechanism, it gets evaluated. Use blocks when
>> the
>> argument evaluation is expensive or expensive enough.
>>> Assert evaluationOf: [self hugeInvariant].
>>
>> None of the names should be taken as suggestions. Just the concept.
>
> It's a good concept, and is the object-oriented approach. It's just that
> in practice the costs of creating blocks as assert: arguments, while
> typically much cheaper than evaluating the assert and discarding its
> result, are still significant
>
> Hence I'm open to a compiler hack that elides the assert: or deny: and
> it's send altogether from the code. Open but not happy; it's something I
> hold my nose to do. But this is a style I've been using for twenty odd
> years and it is really nice to be able to write assert-laden code but not
> have to pay in production.
Thanks for the feedback, Eliot. It's appreciated.
If we have to hack, I would rather see the hack done differently. One of my
goals would be the ability to restore a production database into a test
environment without having to recompile all the methods. (Some of our
customers have systems with 30-40,000 classes!)
To that end, I was wondering about hacking the compiler to test the
association with the reference I've named Assert (but probably in a general
approach for any name). The code generator would send a specific message to
the currently bound value (one would require it to be implemented by all
objects bound to the name, just for honesty and clarity), to ask whether the
code generator should emit code to test the named receiver and skip the
whole statement if it answers true. The code would be generated in all
cases, but it would not be evaluated when the stub mechanism is associated
with Assert, since it would answer true to the skip question. Likewise, the
real assertion mechanism would answer false and the whole statement would be
evaluated.
That preceding paragraph glosses over a lot, but I hope the gist is
sufficiently clear.
> There is a ray of hope. The Sista adaptive optimiser /will/ be able to
> elide all the cost of the block form:
>
> ...
> self assert: [self expr].
> ...
>
> Foo methods for assertions
> assert: aBlockOrBoolean
> ^self
>
> because there are obviously no side effects. Whereas it will only be able
> to elide the entire thing depending on expr in the non-block form:
>
> ...
> self assert: self expr.
> ...
>
> But I wonder how any people would have the discipline or insight to use
> the block form. It looks unnecessarily verbose yes?
>
>> This also offers the benefit that assertions are practical everywhere,
>> not
>> just under a TestCase hierarchy.
>
> Whether asserts are practicable everywhere IME depend on how useful they
> are in ongoing development. The fact that they cost a /lot/ and slow down
> the VM simulator for Cog doesn't change the fact that it would be much
> much slower to modify the code base.
>
> In another thread I was proposing to Gulle to use the VM simulator instead
> of a custom VM for his Pharo bootstrap. But in that case one would /have/
> to find a way of eliding asserts. One approach would be a package-level
> rewrite tool that could produce a copy of a package in which asserts have
> been eliminated. One would always do development in the assert-laden
> version, but could make the assert-less version available to clients who
> treat the package as a black box, can therefore assume that no asserts
> ever fail (because the asserts prove they don't) and use as
> high-performance a version of the package as possible.
>
> With this approach there are no hacks in the compiler, although a
> derivative of the compiler might be a workhorse in the rewrite from
> assertful to assertless code. And the Monticello tools (& Metacello)
> could help automate things.
>
>
>> A second order effect is you aren't playing with the compiler to turn it
>> on
>> and off, nor to extend the controlled API.
>
>
>> --
>> View this message in context:
>> http://forum.world.st/Disable-assertions-design-by-contract-tp4874499p48746…
>> Sent from the Pharo Smalltalk Developers mailing list archive at
>> Nabble.com.
>>
--
View this message in context: http://forum.world.st/Disable-assertions-design-by-contract-tp4874499p48748…
Sent from the Pharo Smalltalk Developers mailing list archive at Nabble.com.
Jan. 30, 2016
Re: [Pharo-dev] Contributing to Pharo
by Eliot Miranda
Hi David,
> On Jan 29, 2016, at 2:45 PM, David Allouche <david(a)allouche.net> wrote:
>
> Thanks Dale for all the explanations.
>
> How Monticello and version control relate in the big picture is starting to make sense for me.
>
> Now, I better understand why filetree ended up uses a file-per-method format, even though that is relatively hostile to git user interfaces optimised for other languages. There is really a need for a file-per-class exchange format, because that would works a lot better with the existing VCS ecosystem.
I agree so strongly. Class file outs which are eg sorted by selector make much more sense. They won't hit the file name length limit. They make it trivial to maintain method and class comment time stamps. They're easier to construct into snapshots because it's easier to decode the file name.
And then it's easy to add files for package load/unload scripts and for the history. And then one is much more decoupled from the specific back end. It could be mercurial just as easily as git.
> I think more package-based user interfaces would indeed be a very good idea, for browsing and for source code management.
>
> Stef, I have the impression you think that git is popular because it is a new shiny toy. I disagree with this idea. Git is a typical worse-is-better tool. It's good enough for most people, but it still has many shortcomings. It is popular in spite of its shortcomings. It became popular as destination for projects shifting from CVS and Subversion. So it is unlikely to be displaced by a newer, incrementally shinier tools. Anything that will displace it will have to provide an improvement of a similar magnitude as the jump between centralised and distributed version control.
This is a good analysis. What's valuable to the Pharo community is not displacing an already functional dvcs (Monticello) with an ill-suited one (git), but in being able to function in ecosystems like github where people can display their identity and where infrastructure for bug reports etc exist.
> Still, I think it's a good idea not to restrict high level models to what git provides if that's a less than ideal fit to the image model.
Absolutely. Dale's talk of ditching Monticello metadata fills me with repulsion and makes me want to ask is he trying to sabotage or what? It seems entirely destructive. We have a functional package manager which currently supports interchange between Pharo, Squeak and Cuis, something that I think is very important and valuable. We should have the confidence to improve on it and work on exchanging improvements between the dialects. For example Bert Freudenburg recently extended the commit dialog with the ability to mark changes to ignore, which are then /not/ committed, which makes it possible to maintain a few of one's favorite image mods without the tedium of reverting them (or whatever other Sisyphean means) to commit from ones work image.
> I have a lot of ideas to improve browsing and source code management in Pharo. I can make no promises, but I would like to produce something there.
Good luck in your efforts.
_,,,^..^,,,_ (phone)
Best, Eliot
Jan. 30, 2016
GTDebugger feedback - Setup/TearDown tabs for test cases
by Ben Coman
I really like the SetUp/TearDown tabs when debugging a failed test,
however it seems a waste to devote a whole half of window to them
causing lines in the Source tab to wrap unnecessarily. Could they be
moved adjacent to the Source tab? I guess the Browse button would
equally apply to #setUp and #tearDown methods.
Also, you can edit the SetUp code but changes don't seem to be saved
through. So can this either be fixed (including when the method
doesn't exist) or there be some hint it can't be saved:
* tab says [SetUp (read-only)]
* in an fake comment above its code put "This method is read only"
(maybe in light grey)
* Instead of the yellow/orange "modified" triangle appearing in the
top-right of the pane, make it another colour - maybe black to mean
you can't save - I think red is reserved for meaning the pane was
edited elsewhere?
cheers -ben
P.S. I'd like to add my voice to those commenting that the stepping
buttons are too far away. Glancing back and forth between them and
the code I feel like I'm watching a tennis game.
P.P.S The icons on those buttons are real nice.
Jan. 30, 2016
Re: [Pharo-dev] Use cases for methods with optional parameters
by Damien Pollet
On 23 January 2016 at 16:12, stepharo <stepharo(a)free.fr> wrote:
> If you have
>> mother1 := foo:(bar:zork:fork)
>> mother2 := foo:bar:(zork:bork:)
>>
> I'm not sure that this is allows in the same class. We should check that
> in Python or ruby.
>
In Ruby:
def m(x=42, y=51)
â calling m(3) gets x=3, y=51 (the given arguments are passed into the
leftmost parameters first)
def m(options)
â calling m( { x: 3, y: 4 } ) or m( x: 3, y: 4 ) gets options = { x: 3, y:
4 }
So, a dictionary magically created because you passed something that either
was already a dictionary, or used the syntax of dictionary key/value pairs.
If you need default values for known keys, you take a default dictionary
and override its contents using
http://www.rubydoc.info/stdlib/core/Hash%3Aupdate
In Python I think it's more like the first Ruby alternative, except
arguments can be named (so those bypass the left-to-right assignment order)
--
Damien Pollet
type less, do more [ | ] http://people.untyped.org/damien.pollet
Jan. 30, 2016
Re: [Pharo-dev] Contributing to Pharo
by David Allouche
Thanks Dale for all the explanations.
How Monticello and version control relate in the big picture is starting to make sense for me.
Now, I better understand why filetree ended up uses a file-per-method format, even though that is relatively hostile to git user interfaces optimised for other languages. There is really a need for a file-per-class exchange format, because that would works a lot better with the existing VCS ecosystem.
I think more package-based user interfaces would indeed be a very good idea, for browsing and for source code management.
Stef, I have the impression you think that git is popular because it is a new shiny toy. I disagree with this idea. Git is a typical worse-is-better tool. It's good enough for most people, but it still has many shortcomings. It is popular in spite of its shortcomings. It became popular as destination for projects shifting from CVS and Subversion. So it is unlikely to be displaced by a newer, incrementally shinier tools. Anything that will displace it will have to provide an improvement of a similar magnitude as the jump between centralised and distributed version control.
Still, I think it's a good idea not to restrict high level models to what git provides if that's a less than ideal fit to the image model.
I have a lot of ideas to improve browsing and source code management in Pharo. I can make no promises, but I would like to produce something there.
Jan. 29, 2016
Re: [Pharo-dev] [pharo-project/pharo-core] 075ec6: 50550
by Cyril Ferlicot Delbecque
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256
On 27/01/2016 16:07, GitHub wrote:
> Branch: refs/heads/5.0 Home:
> https://github.com/pharo-project/pharo-core Commit:
> 075ec66df6ea08e7be71d5275b08ca095432aa2b
> https://github.com/pharo-project/pharo-core/commit/075ec66df6ea08e7be7
1d5275b08ca095432aa2b
>
>
Author: Jenkins Build Server <board(a)pharo-project.org>
> Date: 2016-01-27 (Wed, 27 Jan 2016)
>
> Changed paths: M Alien.package/Alien.class/class/class
> initialization/ensureInSpecialObjectsArray.st M
> Alien.package/Alien.class/class/class initialization/initialize.st
> M Alien.package/Alien.class/class/examples/libcName.st M
> Alien.package/Alien.class/class/instance creation/atAddress_.st M
> Alien.package/Alien.class/class/instance
> creation/atAddress_dataSize_.st M
> Alien.package/Alien.class/class/instance creation/forPointer_.st M
> Alien.package/Alien.class/class/instance creation/newC_.st M
> Alien.package/Alien.class/class/instance creation/newGC_.st M
> Alien.package/Alien.class/class/instance creation/new_.st M
> Alien.package/Alien.class/class/instance creation/rawNewC_.st M
> Alien.package/Alien.class/class/system startup/startUp_.st M
> Alien.package/Alien.class/definition.st R
> Alien.package/Alien.class/instance/as yet
> unclassified/isPointer.st M
> Alien.package/Alien.class/instance/printing/storeOn_.st A
> Alien.package/Alien.class/instance/testing/isPointer.st M
> Alien.package/AlienSunit.class/instance/testing/testLongLong.st R
> ConfigurationOfFFI.package/ConfigurationOfFFI.class/README.md R
> ConfigurationOfFFI.package/ConfigurationOfFFI.class/class/accessing/pr
oject.st
>
>
R
ConfigurationOfFFI.package/ConfigurationOfFFI.class/class/catalog/catalo
gContactInfo.st
> R
> ConfigurationOfFFI.package/ConfigurationOfFFI.class/class/catalog/cata
logDescription.st
>
>
R
ConfigurationOfFFI.package/ConfigurationOfFFI.class/class/catalog/catalo
gKeywords.st
> R
> ConfigurationOfFFI.package/ConfigurationOfFFI.class/class/loading/load
.st
>
>
R ConfigurationOfFFI.package/ConfigurationOfFFI.class/class/metacello
tool support/isMetacelloConfig.st
> R
> ConfigurationOfFFI.package/ConfigurationOfFFI.class/class/metacello
> tool support/lastMetacelloVersionLoad.st R
> ConfigurationOfFFI.package/ConfigurationOfFFI.class/class/metacello
> tool support/metacelloVersion_loads_.st R
> ConfigurationOfFFI.package/ConfigurationOfFFI.class/class/private/boot
strapPackage_from_.st
>
>
R
ConfigurationOfFFI.package/ConfigurationOfFFI.class/class/private/ensure
Metacello.st
> R
> ConfigurationOfFFI.package/ConfigurationOfFFI.class/definition.st R
> ConfigurationOfFFI.package/ConfigurationOfFFI.class/instance/accessing
/project.st
>
>
R
ConfigurationOfFFI.package/ConfigurationOfFFI.class/instance/baselines/b
aseline10_.st
> R
> ConfigurationOfFFI.package/ConfigurationOfFFI.class/instance/baselines
/baseline12_.st
>
>
R
ConfigurationOfFFI.package/ConfigurationOfFFI.class/instance/baselines/b
aseline13_.st
> R
> ConfigurationOfFFI.package/ConfigurationOfFFI.class/instance/baselines
/baseline14_.st
>
>
R
ConfigurationOfFFI.package/ConfigurationOfFFI.class/instance/baselines/b
aseline15_.st
> R
> ConfigurationOfFFI.package/ConfigurationOfFFI.class/instance/doits/ffi
ExampleInitialization10.st
>
>
R ConfigurationOfFFI.package/ConfigurationOfFFI.class/instance/symbolic
versions/development_.st
> R
> ConfigurationOfFFI.package/ConfigurationOfFFI.class/instance/symbolic
> versions/stable_.st R
> ConfigurationOfFFI.package/ConfigurationOfFFI.class/instance/versions/
version1%5F10%5F1_.st
>
>
R
ConfigurationOfFFI.package/ConfigurationOfFFI.class/instance/versions/ve
rsion1%5F10_.st
> R
> ConfigurationOfFFI.package/ConfigurationOfFFI.class/instance/versions/
version1%5F9%5F1_.st
>
>
R
ConfigurationOfFFI.package/ConfigurationOfFFI.class/instance/versions/ve
rsion10_.st
> R
> ConfigurationOfFFI.package/ConfigurationOfFFI.class/instance/versions/
version11_.st
>
>
R
ConfigurationOfFFI.package/ConfigurationOfFFI.class/instance/versions/ve
rsion12_.st
> R
> ConfigurationOfFFI.package/ConfigurationOfFFI.class/instance/versions/
version13_.st
>
>
R
ConfigurationOfFFI.package/ConfigurationOfFFI.class/instance/versions/ve
rsion14_.st
> R
> ConfigurationOfFFI.package/ConfigurationOfFFI.class/instance/versions/
version15_.st
>
>
R
ConfigurationOfFFI.package/ConfigurationOfFFI.class/instance/versions/ve
rsion16_.st
> R
> ConfigurationOfFFI.package/ConfigurationOfFFI.class/instance/versions/
version17_.st
>
>
R
ConfigurationOfFFI.package/ConfigurationOfFFI.class/instance/versions/ve
rsion18_.st
> R
> ConfigurationOfFFI.package/ConfigurationOfFFI.class/instance/versions/
version19_.st
>
>
R ConfigurationOfOldAlien.package/ConfigurationOfOldAlien.class/README.m
d
> R
> ConfigurationOfOldAlien.package/ConfigurationOfOldAlien.class/class/ac
cessing/project.st
>
>
R
ConfigurationOfOldAlien.package/ConfigurationOfOldAlien.class/class/cata
log/catalogContactInfo.st
> R
> ConfigurationOfOldAlien.package/ConfigurationOfOldAlien.class/class/ca
talog/catalogDescription.st
>
>
R
ConfigurationOfOldAlien.package/ConfigurationOfOldAlien.class/class/cata
log/catalogKeywords.st
> R
> ConfigurationOfOldAlien.package/ConfigurationOfOldAlien.class/class/de
velopment
> support/DevelopmentSupport.st R
> ConfigurationOfOldAlien.package/ConfigurationOfOldAlien.class/class/de
velopment
> support/validate.st R
> ConfigurationOfOldAlien.package/ConfigurationOfOldAlien.class/class/lo
ading/load.st
>
>
R
ConfigurationOfOldAlien.package/ConfigurationOfOldAlien.class/class/load
ing/loadBleedingEdge.st
> R
> ConfigurationOfOldAlien.package/ConfigurationOfOldAlien.class/class/lo
ading/loadDevelopment.st
>
>
R
ConfigurationOfOldAlien.package/ConfigurationOfOldAlien.class/class/meta
cello
tool support/isMetacelloConfig.st
> R
> ConfigurationOfOldAlien.package/ConfigurationOfOldAlien.class/class/pr
ivate/baseConfigurationClassIfAbsent_.st
>
>
R
ConfigurationOfOldAlien.package/ConfigurationOfOldAlien.class/class/priv
ate/ensureMetacello.st
> R
> ConfigurationOfOldAlien.package/ConfigurationOfOldAlien.class/class/pr
ivate/ensureMetacelloBaseConfiguration.st
>
>
R
ConfigurationOfOldAlien.package/ConfigurationOfOldAlien.class/definition
.st
> R
> ConfigurationOfOldAlien.package/ConfigurationOfOldAlien.class/instance
/accessing/project.st
>
>
R
ConfigurationOfOldAlien.package/ConfigurationOfOldAlien.class/instance/b
aselines/baseline10_.st
> R
> ConfigurationOfOldAlien.package/ConfigurationOfOldAlien.class/instance
/symbolic
> versions/stable_.st R
> ConfigurationOfOldAlien.package/ConfigurationOfOldAlien.class/instance
/versions/version1%5F2_.st
>
>
R
ConfigurationOfOldAlien.package/ConfigurationOfOldAlien.class/instance/v
ersions/version10_.st
> R
> ConfigurationOfOldAlien.package/ConfigurationOfOldAlien.class/instance
/versions/version11_.st
>
>
A
ConfigurationOfUnifiedFFI.package/ConfigurationOfUnifiedFFI.class/instan
ce/baselines/baseline0%5F11_.st
> M
> ConfigurationOfUnifiedFFI.package/ConfigurationOfUnifiedFFI.class/inst
ance/symbolic
> versions/development_.st M
> ConfigurationOfUnifiedFFI.package/ConfigurationOfUnifiedFFI.class/inst
ance/symbolic
> versions/stable_.st A
> ConfigurationOfUnifiedFFI.package/ConfigurationOfUnifiedFFI.class/inst
ance/versions/v0%5F11%5F2_.st
>
>
R ScriptLoader50.package/ScriptLoader.class/instance/pharo -
scripts/script50549.st
> A ScriptLoader50.package/ScriptLoader.class/instance/pharo -
> scripts/script50550.st R
> ScriptLoader50.package/ScriptLoader.class/instance/pharo -
> updates/update50549.st A
> ScriptLoader50.package/ScriptLoader.class/instance/pharo -
> updates/update50550.st M
> ScriptLoader50.package/ScriptLoader.class/instance/public/commentForCu
rrentUpdate.st
>
> Log Message: ----------- 50550 17482 load UnifiedFFI 0.11.2
> https://pharo.fogbugz.com/f/cases/17482
>
> 17479 Interval class comment mixes step/stop when explaining
> Instance Variables https://pharo.fogbugz.com/f/cases/17479
>
> http://files.pharo.org/image/50/50550.zip
>
>
I do not see the change in interval doc in #50559 :(
- --
Cyril
-----BEGIN PGP SIGNATURE-----
iQIcBAEBCAAGBQJWq9VpAAoJEBzpUtxBqUID4gUP/iUJV/2UxThAyNEkHbvfvNce
7+JlxNOFIQ3w9UzGayWRaK1FdwAf+2DL0h++Qr9E9zxfPzLpI2wFnYYe8sJjX9kj
vrxV2TxcY883Jiu5T7FgXSy6YlUfjnoffY0RQbYSbb6vTkIbtWYTVTImqk9fLrLR
1LhhoAR6VjY8un+3IuEPyoFQcUn5//BcvYuyb1XVtvVlbAYfHwR3Lku77/nC3HtN
JQP2LAqQkrTN33/9ofy39YU17VX5BztjtP0C4huVIbF8pBroHXqKVVCYd84D/oPb
YGGreUo18Gb8RODg1WlmRpb317nWDQVOHgr6QAJEo27RFAgf6pSwdjtYNMMmtup1
dRBYwUIFXaALP+SG5MZxp7dOJ3ZL/oTu8EIcNE9wI75uuEEt0q3Y5uhhhxQqv5dT
041Vu6sIzqLC5ZUdBt3kuL2vKOTKX9HfkcCXYN7ND56vAPsu+Yp4ky6GcEuEhiOl
3NtXjsMeyifzRJVt/LWnYL5vWUC7zbxn7DMRLbV4f1qXvgEhfI7VFrWw0QyQADlW
yI76CCME+eqj47HGC4zDJ33Xpiib+J6qVHOwPnzXR9kv8g4swFxbjHXdABTBbuzy
WhS2sfNShOtX4Dm7zs6p157oARPQOnYOT3C1p5a89jmBXwuBPsWHHXAiwgMGfx+0
/IsT5/hHTqF8LjZ+FRSL
=5vT7
-----END PGP SIGNATURE-----
Jan. 29, 2016