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
- 3 participants
- 144616 messages
Re: [Pharo-dev] Integer arithmetic and bit counting performance in Squeak and Pharo
by Benoit St-Jean
Oh! Many thanks for all the details! I thought about special selectors and remembered that #bitAnd: and #bitOr: were those special kind of "beasts" but I falsely assumed that #bitXor: was also a special selector... :( I should have looked at the code!
So that also explains the "strange" behavior of the 64bit image. Lots of the tests in the 32bit image fell into the LargeInteger "range" and then, executing the same code on the 64bit image, those numbers suddenly became considered SmallInteger... That explains it all and why some operations "suddenly" became so fast for no apparent reason !!!
Now, just for my personal curiosity, what is going to be the impact of a 64bit VM on such code? (Unfortunately, I am on Windows so I will have to wait...) ?
P.S. I should have persevered in my google searches as I just came across this *excellent* post :Â Arithmetic, inlined and special selectors
:)
Thanks a lot!
|
|
|
| | |
|
|
|
| |
Arithmetic, inlined and special selectors
Today we are going to discuss how message sends are dispatched in the VM and/or compiled in the image for arithm... | |
|
|
 -----------------
Benoît St-Jean
Yahoo! Messenger: bstjean
Twitter: @BenLeChialeux
Pinterest: benoitstjean
Instagram: Chef_Benito
IRC: lamneth
Blogue: endormitoire.wordpress.com
"A standpoint is an intellectual horizon of radius zero". (A. Einstein)
From: Clément Bera <bera.clement(a)gmail.com>
To: Benoit St-Jean <bstjean(a)yahoo.com>; Pharo Development List <pharo-dev(a)lists.pharo.org>
Cc: The General-purpose Squeak Developers List <squeak-dev(a)lists.squeakfoundation.org>
Sent: Friday, February 10, 2017 5:14 AM
Subject: Re: [Pharo-dev] Integer arithmetic and bit counting performance in Squeak and Pharo
Hi,
This is a lovely post. Thanks for posting about Smalltalk / Pharo / Squeak.
- Why exactly does the override work (in 32bit images)?
- What changed so that things are different in Squeak 5.1 64bit image (overrides partially work)?
If I am correct your questions are exclusively for bitOr: and bitAnd:. I don't know what you are aware of and what you're not aware of, hence I am going to give you some details on how bitAnd: is executed (bitOr: is done exactly the same way), and hopefully there will be something you don't know yet that should help you understand what's going on.Â
Execution of bitAnd:
bitAnd: a special selector. If you run Smalltalk specialSelectors you get this array:Â Â #(#+ 1 #- 1 #< 1 #> 1 #<= 1 #>= 1 #= 1 #~= 1 #* 1 #/ 1 #\\ 1 #@ 1 #bitShift: 1 #// 1 #bitAnd: 1 #bitOr: 1 #at: 1 #at:put: 2 #size 0 #next 0 #nextPut: 1 #atEnd 0 #== 1 #class 0 #blockCopy: 1 #value 0 #value: 1 #do: 1 #new 0 #new: 1 #x 0 #y 0) which includes bitAnd: .
Special selectors are encoded in the bytecode differently to save memory, so they can be executed differently without inducing overhead. In Cog, bitAnd: is executed differently using type-prediction.Â
In the Stack Interpreter, the execution of bitAnd: is done as follows:  If both operands are SmallIntegers,     push the bitAnd: value of the 2 SmallIntegers  else     Try the primitive BitAnd for SmallIntegers (14)    on success      push the result    on failure      perform the send.
In the JIT, bitAnd: sends are compiled differently that normal send, the compilation logic is as follows:  If both operands are SmallInteger literals    compute the result during compilation and use this value  else    If one of the 2 operands is a SmallInteger literal      generate 2 paths, a quick inlined path testing at runtime that the other operand is a SmallInteger, and if so, Ands the operands and use that result, else use the slow path performing a send    else      generate a normal send
Primitives
primitive 14 -> Works for SmallIntegers and LargePositiveInteger fitting in an unsigned machine word. (Slower than direct SmallInteger bitAnd performed by the special selector)primitive 34 -> Works for SmallIntegers and LargePositiveInteger fitting in an unsigned int64. (Slower than primitive 14 in 32 bits but covering more cases, equivalent in 64 bits)primDigitBitAnd (in Integer) -> Works for any integer. (Slower than the primitive 14 and 34)
SmallInteger encoding
In 32 bits, SmallIntegers are signed 31bits integer.In 64 bits, SmallIntegers are signed 61 bits integer.
Discussion
Let's make some assertions based on previous information:
1)Â If you have the exact same bitAnd: implementation for #bitAnd: and #bitAnd2:, #bitAnd2: is slower because it is not a special selector.
2) Still with the exact same bitAnd: implementation, using the JIT, things like that:16r1 bitAnd: 1. "1 bits"
16r2 bitAnd: 2. "2 bit"
16r4 bitAnd: 4. "3 bit"
16r8 bitAnd: 3. "4 bit"Are bitAnd: operations between SmallInteger constants and the result is unused. Hence this whole portion of code does not generate any native instructions.On the other hand, things like that:16r1 bitAnd2: 1. "1 bits"
16r2 bitAnd2: 2. "2 bit"
16r4 bitAnd2: 4. "3 bit"
16r8 bitAnd2: 3. "4 bit"Are sends, generating multiple native instructions including calls.
3) Because of the SmallInteger encoding,16r200000000000000 bitAnd: 98490667780264321. "58 bit"
is compiled by the JIT to nothing in 64 bits but to a send in 32 bits (the JIT can't solve LargeInteger arithmetic at compilation time).
4) primitive 34 provides some speed-up over primitive 14 in 32 bits, covering bitAnd: operations from unsigned 33 bits integer to unsigned 64 bits integer, but makes no difference in 64 bits. In 64bits all the cases covered by primitive 34 are covered by primitive 14, so it should even slow down things.
So...
Does this answer your questions ?
Don't hesitate to ask further questions.Â
If you want more details, I wrote something about special selectors a while ago:Â https://clementbera.wordpress.com/2014/08/12/arithmetic-inlined-and-special… .
Best,
Clement
PS1: If I'm correct, you referenced my blog a couple times, thank you for doing this, I really appreciate that.PS2: I enjoy chess myself, so if you have an open-source/MIT working algorithm at some point please send it to me, I will play against the AI and look at the code.
On Fri, Feb 10, 2017 at 8:18 AM, Benoit St-Jean via Pharo-dev <pharo-dev(a)lists.pharo.org> wrote:
---------- Forwarded message ----------
From:Â Benoit St-Jean <bstjean(a)yahoo.com>
To:Â The General-purpose Squeak Developers List <squeak-dev@lists. squeakfoundation.org>, "pharo-dev(a)lists.pharo.org" <pharo-dev(a)lists.pharo.org>
Cc:Â
Date:Â Fri, 10 Feb 2017 07:18:02 +0000 (UTC)
Subject:Â Integer arithmetic and bit counting performance in Squeak and Pharo
For those interested in performance of bit operations and integer arithmetic in Squeak and Pharo :
Bit operations in general : https://endormitoire.wordpress .com/2017/02/10/bits-and- pieces/
Bit counting algorithms : https://endormitoire.wordpress .com/2017/02/10/1001001-sos/
Some questions, some results, some answers... -----------------
Benoît St-Jean
Yahoo! Messenger: bstjean
Twitter: @BenLeChialeux
Pinterest: benoitstjean
Instagram: Chef_Benito
IRC: lamneth
Blogue: endormitoire.wordpress.com
"A standpoint is an intellectual horizon of radius zero". (A. Einstein)
Feb. 10, 2017
Re: [Pharo-dev] [Pharo-users] Slack, fragmentation and design information
by denker
>
>> I share many of what you say⦠but in the other point of view, Slack as really worked and there is a lot more happening now in Slack + mailing list than what was before just in mailing list.
>> But most of that is lost because of Slack policies (also Slack pricing model is impossible for a community as ours), and we need to find a solution for that.
>
> Yes this is too expensive for the Pharo consortium ?
>
It is per active member⦠which is defined as âhas logged in the last 14 daysâ. We have 322 members. No idea how many
are active according to that definition.
Fot 322 it would be: $8 per user per month. Which means $2576 per month or $25772 per year (taking the special yearly price into account).
Marcus
Feb. 10, 2017
Re: [Pharo-dev] [Pharo-users] Slack, fragmentation and design information
by Dimitris Chloupis
I have been pushing for Discord because
a) There is no need to host and maintain as Esteban said
b) There a ton of communities already using it and its by far the second
most mature chat client after Slack
c) It has a very powerful Python API.... yes I know.... I know its no Pharo
but still it makes it very easy to make bots that automate a lot of staff.
I am using a bot that fetches RSS feeds (Although not sure how well this is
working) connects to the reddit forum and of course fetches git commits
d) The team listens to its users
e) for personal reason.... all my favorite software (Blender, Unreal etc)
is using it
I am also making my own bot . I could try to add a way for the bot to
connect the mailing list with the Discord channel turn the mailing lists
discussions to Discord discussions and vice versa but I have not done this
before so no promises. I do have find a website that turns pretty much
anything to webhooks which is what Discord uses (probably Slack too)
https://ifttt.com/discover
I could do the same with Slack , meaning to send Slack messages to Discord
and Discord to Slack, I think I found one bot that already does this.
In short we can unite everything under one roof and let people keep using
whatever people feel comfortable with (Slack, mailing lists, world.st
forum, reddit , google hangouts , youtube , github and anything with
webhooks or some form of web API)
Also the Bot could store its own log even in the unlikely scenario of a
nuclear explosion in Discord servers we wont lose our valuable data. Though
I think I saw somewhere that Discord allows to backup and export the data
so that may be proven unnecessary.
On the other hand I will have to find a way to host my bot , but that is
not a big deal , the bot is a simple python application and there are a ton
of websites which offer hosting for python applications for free.
Its getting there but will need time.
Also my library Atlas can be used to access the APIs of all these chat
software, Slack and Discord included, because Atlas allows you to use
python libraries from inside Pharo. So its possible to have tools in the
image for those of you that you love never having to leave the image that
take advantage of these technologies. I wont be doing this though because
a) porting APIs is a project by itself b) most of the code I find is python
code and that makes it an easy copy paste approach (the vast majority of it
is GPL or MIT licensed)
Feb. 10, 2017
GSOC Pharo application done
by Serge Stinckwich
Dear all,
thanks to the efforts of Jigyasa Grover, Yuriy Tymchuk and Alexandre
Bergel, , we were able to have a GSOC 2017 application for the Pharo
Consortium. This is only the first phase. If we are selected by
Google, they will give some slots for students.
We have a list of projects for GSOC here : http://gsoc.pharo.org/
If you have more ideas, please send them to me or send a PR on :
https://github.com/pharo-project/pharo-project-proposals/blob/master/Topics…
Try to describe your project idea with 10-15 lines maximum.
The ideas is not too much projects proposals but to find important
projects for the Pharo community (i.e that will have some impact for
the community) with the support of the appropriate mentors.
I would like to have maximum 2-3 projects for each mentors.
Thank you.
Cheers,
--
Serge Stinckwich
UCBN & UMI UMMISCO 209 (IRD/UPMC)
Every DSL ends up being Smalltalk
http://www.doesnotunderstand.org/
Feb. 10, 2017
Re: [Pharo-dev] [Pharo-users] Slack, fragmentation and design information
by phil@highoctane.be
I am frustated by this too and indeed we need a way to keep the messages.
I am about done with my wrapping of LibStrophe in Pharo with , which
provides a XMPP/Jabber client to Pharo.
So, if someone can activate the XMPP gateway on our Slack instance, we will
have a way to archive the contents (and possibly post a kind of digest into
a mailing list).
https://get.slack.help/hc/en-us/articles/201727913-Connect-to-Slack-over-IR…
Phil
On Fri, Feb 10, 2017 at 11:42 AM, Esteban Lorenzano <estebanlm(a)gmail.com>
wrote:
>
> > On 10 Feb 2017, at 11:28, Serge Stinckwich <serge.stinckwich(a)gmail.com>
> wrote:
> >
> > On Fri, Feb 10, 2017 at 10:58 AM, Esteban Lorenzano <estebanlm(a)gmail.com>
> wrote:
> >> Hi Stephan,
> >>
> >>> On 10 Feb 2017, at 10:27, Stephan Eggermont <stephan(a)stack.nl> wrote:
> >>>
> >>> The past year we have started using Slack to communicate in real-time
> about Pharo. It has nice (mobile) clients and makes it easy to share
> pictures and snippets. As a result a large part of the communication about
> design and how to do things has moved from the mailing lists to Slack. As
> we're using the free version, and cannot afford to use the commercial
> version, we have no long-time storage of the design discussions. This
> contrasts with our mailing lists, that have a long-term archive. There was
> some discussion about this, and I'm not aware of that resulting in an
> accessible, easy to access archive. Also, we have not succeeded in
> summarizing design discussions from slack to the mailing lists. The
> resulting gap in design information forms an enormous long-term risk for
> our community. Without the design discussions it is much more difficult to
> later understand why decisions were taken. We cannot afford to let this
> short-term ease-of-use destroy Pharo's community history, and thereby
> Pharo. Let us fix this.
> >
> > Yes I agree with your concerns.
> >
> >> I share many of what you say⦠but in the other point of view, Slack as
> really worked and there is a lot more happening now in Slack + mailing list
> than what was before just in mailing list.
> >> But most of that is lost because of Slack policies (also Slack pricing
> model is impossible for a community as ours), and we need to find a
> solution for that.
> >
> > Yes this is too expensive for the Pharo consortium ?
>
> yes it is.
> Is just not prepared for open source communities like ours.
>
> >
> >> Last days we were experimenting with @kilon again on use discord as a
> substitute and I find that for now it works really well and with a bit of
> work we can have all what you want: discord incorporated a search function
> (and they do not have the 10k limit) and we could do a bot that logs
> everything that happens there and stores that into gists (or whatever, but
> gists seems like a good idea).
> >>
> >> With this we would have enhanced the availability of those discussions
> (it remains the fact that immediate communication is worst organised than
> mails, but well⦠we need to try)
> >
> > and move all the community on discord ?
>
> this is what I would like to propose, because...
>
> > Or use an open-source slack
>
> the problem with this is that we have to host it⦠and then is more
> problems for maintenance, etc.
>
> Esteban
>
> > like : https://about.mattermost.com/
> > and host our own chat server.
> >
> > --
> > Serge Stinckwich
> > UCBN & UMI UMMISCO 209 (IRD/UPMC)
> > Every DSL ends up being Smalltalk
> > http://www.doesnotunderstand.org/
> >
>
>
>
Feb. 10, 2017
Re: [Pharo-dev] [Pharo-users] Final rush for submitting GSOC proposal - Need your help
by Serge Stinckwich
On Thu, Feb 9, 2017 at 5:28 PM, Stephan Eggermont <stephan(a)stack.nl> wrote:
> On 09/02/17 17:05, Serge Stinckwich wrote:
>>
>> but all the projects are coming from RMOD team, but having all the
>> projects proposal coming from the same place might be perceived
>> negatively from Google. Can we add more projects from previous gsoc
>> from other people also ?
>
>
> My two earlier proposals are fine, and already on the site.
Can you reduce the size of the "Distributed Issue Tracker" subject
because there is too much details compared to other subjects.
Thank you.
--
Serge Stinckwich
UCBN & UMI UMMISCO 209 (IRD/UPMC)
Every DSL ends up being Smalltalk
http://www.doesnotunderstand.org/
Feb. 10, 2017
Re: [Pharo-dev] [Pharo-users] Slack, fragmentation and design information
by Esteban Lorenzano
> On 10 Feb 2017, at 11:28, Serge Stinckwich <serge.stinckwich(a)gmail.com> wrote:
>
> On Fri, Feb 10, 2017 at 10:58 AM, Esteban Lorenzano <estebanlm(a)gmail.com> wrote:
>> Hi Stephan,
>>
>>> On 10 Feb 2017, at 10:27, Stephan Eggermont <stephan(a)stack.nl> wrote:
>>>
>>> The past year we have started using Slack to communicate in real-time about Pharo. It has nice (mobile) clients and makes it easy to share pictures and snippets. As a result a large part of the communication about design and how to do things has moved from the mailing lists to Slack. As we're using the free version, and cannot afford to use the commercial version, we have no long-time storage of the design discussions. This contrasts with our mailing lists, that have a long-term archive. There was some discussion about this, and I'm not aware of that resulting in an accessible, easy to access archive. Also, we have not succeeded in summarizing design discussions from slack to the mailing lists. The resulting gap in design information forms an enormous long-term risk for our community. Without the design discussions it is much more difficult to later understand why decisions were taken. We cannot afford to let this short-term ease-of-use destroy Pharo's community history, and thereby Pharo. Let us fix this.
>
> Yes I agree with your concerns.
>
>> I share many of what you say⦠but in the other point of view, Slack as really worked and there is a lot more happening now in Slack + mailing list than what was before just in mailing list.
>> But most of that is lost because of Slack policies (also Slack pricing model is impossible for a community as ours), and we need to find a solution for that.
>
> Yes this is too expensive for the Pharo consortium ?
yes it is.
Is just not prepared for open source communities like ours.
>
>> Last days we were experimenting with @kilon again on use discord as a substitute and I find that for now it works really well and with a bit of work we can have all what you want: discord incorporated a search function (and they do not have the 10k limit) and we could do a bot that logs everything that happens there and stores that into gists (or whatever, but gists seems like a good idea).
>>
>> With this we would have enhanced the availability of those discussions (it remains the fact that immediate communication is worst organised than mails, but well⦠we need to try)
>
> and move all the community on discord ?
this is what I would like to propose, because...
> Or use an open-source slack
the problem with this is that we have to host it⦠and then is more problems for maintenance, etc.
Esteban
> like : https://about.mattermost.com/
> and host our own chat server.
>
> --
> Serge Stinckwich
> UCBN & UMI UMMISCO 209 (IRD/UPMC)
> Every DSL ends up being Smalltalk
> http://www.doesnotunderstand.org/
>
Feb. 10, 2017
[pharo-project/pharo-core]
by GitHub
Branch: refs/tags/60385
Home: https://github.com/pharo-project/pharo-core
Feb. 10, 2017
[pharo-project/pharo-core] 6f7d16: 60385
by GitHub
Branch: refs/heads/6.0
Home: https://github.com/pharo-project/pharo-core
Commit: 6f7d16ed3df7bcc4a19e70a4bd785be161281e52
https://github.com/pharo-project/pharo-core/commit/6f7d16ed3df7bcc4a19e70a4…
Author: Jenkins Build Server <board(a)pharo-project.org>
Date: 2017-02-10 (Fri, 10 Feb 2017)
Changed paths:
M ConfigurationOfEpicea.package/ConfigurationOfEpicea.class/instance/tags/stable_.st
A ConfigurationOfEpicea.package/ConfigurationOfEpicea.class/instance/versions/version810_.st
A ConfigurationOfEpicea.package/ConfigurationOfEpicea.class/instance/versions/version811_.st
M Epicea.package/EpLog.class/class/instance creation/freshFromFile_.st
M Epicea.package/EpLog.class/class/instance creation/fromFile_.st
M Epicea.package/EpLog.class/instance/accessing/addEntryWith_tags_.st
M Epicea.package/EpLog.class/instance/accessing/head.st
M Epicea.package/EpLog.class/instance/accessing/headReference.st
R Epicea.package/EpLog.class/instance/accessing/headReference_.st
M Epicea.package/EpLog.class/instance/copying/copyFromHead.st
M Epicea.package/EpLog.class/instance/initialization/initializeWith_.st
R Epicea.package/EpLog.class/instance/printing/descriptionString.st
M Epicea.package/EpLog.class/instance/printing/printOn_.st
M Epicea.package/EpLog.class/instance/private/updateEntriesCache.st
M Epicea.package/EpLog.class/instance/refreshing/refresh.st
M Epicea.package/EpMonitor.class/definition.st
R Epicea.package/EpMonitor.class/instance/accessing/debug_.st
A Epicea.package/EpMonitor.class/instance/accessing/writingDeferDuration.st
A Epicea.package/EpMonitor.class/instance/accessing/writingDeferDuration_.st
M Epicea.package/EpMonitor.class/instance/announcement handling/monticelloVersionSaved_.st
M Epicea.package/EpMonitor.class/instance/enabling/disable.st
M Epicea.package/EpMonitor.class/instance/private/addEvent_newEntryDo_.st
R Epicea.package/EpMonitor.class/instance/private/handleError_.st
R Epicea.package/EpMonitor.class/instance/testing/isDebug.st
R Epicea.package/extension/MCCacheRepository/instance/isEpiceaCache.st
R Epicea.package/extension/MCDictionaryRepository/instance/isEpiceaCache.st
R Epicea.package/extension/MCRepository/instance/isEpiceaCache.st
R EpiceaBrowsers.package/EpAbsentItem.class/instance/private/absentEntryLog.st
R EpiceaBrowsers.package/EpAbsentItem.class/instance/private/absentEntryStore.st
R EpiceaBrowsers.package/EpAbsentItem.class/instance/private/openLogOfAbsentEntry.st
M EpiceaBrowsers.package/EpFileLogNode.class/instance/private/ombuStore.st
A EpiceaBrowsers.package/EpLogBrowser.class/instance/accessing/viewEntryItems.st
A EpiceaBrowsers.package/EpLogBrowser.class/instance/accessing/viewItems.st
M EpiceaBrowsers.package/EpLogBrowser.class/instance/initialization/initializeWidgets.st
M EpiceaBrowsers.package/EpLogBrowser.class/instance/initialization/log_.st
R EpiceaBrowsers.package/EpLogBrowser.class/instance/private - subscription/subscribeToLog.st
R EpiceaBrowsers.package/EpLogBrowser.class/instance/private - subscription/unsubscribeFromLog.st
M EpiceaBrowsers.package/EpLogHeaderItem.class/definition.st
M EpiceaBrowsers.package/EpLogNode.class/instance/accessing/referencedGlobalNames.st
A EpiceaBrowsers.package/EpLogNodeGraphModel.class/instance/api/initialExtent.st
M EpiceaBrowsers.package/EpLogNodeGraphModel.class/instance/initialization/initializeCreateLogButtonModel.st
R EpiceaBrowsers.package/EpLogNodeGraphModel.class/instance/private/createNewActiveLog.st
A EpiceaBrowsers.package/EpLogNodeGraphModel.class/instance/private/createNewSessionLog.st
R EpiceaBrowsers.package/EpLogNodeGraphModel.class/instance/protocol/initialExtent.st
M EpiceaBrowsers.package/EpLogNodeGraphModel.class/instance/refreshing/refreshLogNodesTreeModel.st
M EpiceaBrowsers.package/EpLostChangesDetector.class/class/accessing/enabled_.st
M EpiceaBrowsers.package/EpLostChangesDetector.class/class/initialization/initialize.st
R EpiceaBrowsers.package/EpLostChangesDetector.class/class/startup - shutdown/startUp_.st
A EpiceaBrowsers.package/EpLostChangesDetector.class/class/system startup/startUp_.st
M EpiceaBrowsers.package/EpLostChangesDetector.class/class/testing/isEnabled.st
M EpiceaBrowsers.package/EpLostChangesDetector.class/definition.st
A EpiceaBrowsers.package/EpLostChangesDetector.class/instance/accessing/browserIfLostChanges_.st
A EpiceaBrowsers.package/EpLostChangesDetector.class/instance/accessing/lostChanges.st
A EpiceaBrowsers.package/EpLostChangesDetector.class/instance/accessing/monitorLog.st
A EpiceaBrowsers.package/EpLostChangesDetector.class/instance/accessing/monitorLog_.st
A EpiceaBrowsers.package/EpLostChangesDetector.class/instance/accessing/openBrowserIfLostChanges.st
M EpiceaBrowsers.package/EpOmbuExporter.class/class/convenience/askFileNameAndFileOut_in_.st
M EpiceaBrowsers.package/EpOmbuExporter.class/instance/tests/fileOut_.st
A EpiceaBrowsers.package/EpPriorView.class/instance/private/newItemFor_ifAbsent_.st
M EpiceaBrowsers.package/EpPriorView.class/instance/private/next_from_.st
M EpiceaBrowsers.package/EpPriorView.class/instance/refreshing/refresh.st
R EpiceaBrowsers.package/EpSettings.class/class/accessing/debug.st
R EpiceaBrowsers.package/EpSettings.class/class/accessing/debug_.st
A EpiceaBrowsers.package/EpSettings.class/class/accessing/writingDeferDuration.st
A EpiceaBrowsers.package/EpSettings.class/class/accessing/writingDeferDuration_.st
R EpiceaBrowsers.package/EpSettings.class/class/system settings/debugSettingOn_.st
R EpiceaBrowsers.package/EpSettings.class/class/system settings/enabledSettingOn_.st
M EpiceaBrowsers.package/EpSettings.class/class/system settings/groupSettingsOn_.st
A EpiceaBrowsers.package/EpSettings.class/class/system settings/monitorEnabledSettingOn_.st
R EpiceaBrowsers.package/EpSettings.class/class/system settings/namingSettingsOn_.st
A EpiceaBrowsers.package/EpSettings.class/class/system settings/storeNameStrategySettingsOn_.st
A EpiceaBrowsers.package/EpSettings.class/class/system settings/writingDeferDurationSettingOn_.st
M EpiceaBrowsers.package/EpUnifiedBrowserModel.class/class/specs/title.st
M EpiceaBrowsers.package/EpUnifiedBrowserModel.class/definition.st
M EpiceaBrowsers.package/EpUnifiedBrowserModel.class/instance/initialization/initializeWorkaroundToRefreshOnMonitorLogAnnouncement.st
A EpiceaBrowsers.package/EpUnifiedBrowserModel.class/instance/refreshing/informRefreshError.st
M EpiceaBrowsers.package/EpUnifiedBrowserModel.class/instance/refreshing/refreshIfMonitorLogSelected.st
M EpiceaBrowsers.package/EpUnifiedBrowserModel.class/instance/refreshing/refreshWithLogSelected_.st
M EpiceaBrowsers.package/extension/Date/instance/epiceaBrowsersAsString.st
A EpiceaBrowsersTests.package/EpLostChangesDetectorTest.class/README.md
A EpiceaBrowsersTests.package/EpLostChangesDetectorTest.class/definition.st
A EpiceaBrowsersTests.package/EpLostChangesDetectorTest.class/instance/tests/testDetectInEmptyLog.st
A EpiceaBrowsersTests.package/EpLostChangesDetectorTest.class/instance/tests/testDetectNoChange.st
A EpiceaBrowsersTests.package/EpLostChangesDetectorTest.class/instance/tests/testDetectOneChange.st
M EpiceaTests.package/EpCodeChangeIntegrationTest.class/instance/running/tearDown.st
A EpiceaTests.package/EpDisabledIntegrationTest.class/instance/tests/testEnable.st
R EpiceaTests.package/EpDisabledIntegrationTest.class/instance/tests/testEvents.st
M EpiceaTests.package/EpMonitorIntegrationTest.class/instance/running/allLogEntriesWith_.st
M EpiceaTests.package/EpMonitorIntegrationTest.class/instance/running/setUp.st
M EpiceaTests.package/EpTestLogBuilder.class/instance/accessing/directory.st
R EpiceaTests.package/EpTestLogBuilder.class/instance/accessing/directory_.st
M EpiceaTests.package/EpTestLogBuilder.class/instance/accessing/log.st
M EpiceaTests.package/EpTestLogBuilder.class/instance/accessing/logHeadReference.st
R EpiceaTests.package/EpTestLogBuilder.class/instance/building/logAbsentInitial.st
M EpiceaTests.package/EpTestLogBuilder.class/instance/building/logEvent_.st
M EpiceaTests.package/EpTestLogBuilder.class/instance/building/logEvent_triggerReference_.st
M EpiceaTests.package/EpTestLogBuilder.class/instance/building/logInitial.st
R EpiceaTests.package/EpTestLogBuilder.class/instance/initialization/initialize.st
A EpiceaTests.package/EpTestLogBuilder.class/instance/initialization/newDirectory.st
M EpiceaTests.package/EpTestLogBuilder.class/instance/initialization/newLog.st
A EpiceaTests.package/EpTestLogBuilder.class/instance/initialization/newLogWithSessionStore.st
A EpiceaTests.package/EpTestLogBuilder.class/instance/initialization/newSessionStore.st
M EpiceaTests.package/EpTestLogBuilder.class/instance/initialization/newStore.st
A EpiceaTests.package/EpTestLogBuilder.class/instance/initialization/useLogWithSessionStore.st
M EpiceaTests.package/EpTestLogBuilder.class/instance/releasing/cleanUp.st
R EpiceaTests.package/EpTestLogBuilder.class/instance/releasing/releaseLog_.st
M Kernel.package/Halt.class/instance/accessing/signalerContext.st
M Morphic-Widgets-FastTable.package/FTBasicItem.class/instance/expanding-collapsing/collapse.st
M Morphic-Widgets-FastTable.package/FTBasicItem.class/instance/expanding-collapsing/expand.st
M Morphic-Widgets-FastTable.package/FTTableMorph.class/instance/accessing selection/selectRowIndexes_.st
A Morphic-Widgets-FastTable.package/FTTableMorph.class/instance/accessing selection/selectRowIndexes_andMakeVisibleIf_.st
M Morphic-Widgets-FastTable.package/FTTreeDataSource.class/instance/updating/updateSelectionWithCollectBlock_.st
R Network-Tests.package/NeoUUIDGeneratorTests.class/README.md
R Network-Tests.package/NeoUUIDGeneratorTests.class/definition.st
R Network-Tests.package/NeoUUIDGeneratorTests.class/instance/private/timeFromUUID_.st
R Network-Tests.package/NeoUUIDGeneratorTests.class/instance/setup/setUp.st
R Network-Tests.package/NeoUUIDGeneratorTests.class/instance/testing/testCounterRollover.st
R Network-Tests.package/NeoUUIDGeneratorTests.class/instance/testing/testDefault.st
R Network-Tests.package/NeoUUIDGeneratorTests.class/instance/testing/testOne.st
R Network-Tests.package/NeoUUIDGeneratorTests.class/instance/testing/testSpeed.st
R Network-Tests.package/NeoUUIDGeneratorTests.class/instance/testing/testTwoDifferentGenerator.st
R Network-Tests.package/NeoUUIDGeneratorTests.class/instance/testing/testTwoSameGenerator.st
R Network-Tests.package/NeoUUIDGeneratorTests.class/instance/testing/testUniqueness.st
A Network-Tests.package/UUIDGeneratorTests.class/README.md
A Network-Tests.package/UUIDGeneratorTests.class/definition.st
A Network-Tests.package/UUIDGeneratorTests.class/instance/private/timeFromUUID_.st
A Network-Tests.package/UUIDGeneratorTests.class/instance/setup/setUp.st
A Network-Tests.package/UUIDGeneratorTests.class/instance/testing/testCounterRollover.st
A Network-Tests.package/UUIDGeneratorTests.class/instance/testing/testDefault.st
A Network-Tests.package/UUIDGeneratorTests.class/instance/testing/testOne.st
A Network-Tests.package/UUIDGeneratorTests.class/instance/testing/testSpeed.st
A Network-Tests.package/UUIDGeneratorTests.class/instance/testing/testTwoDifferentGenerator.st
A Network-Tests.package/UUIDGeneratorTests.class/instance/testing/testTwoSameGenerator.st
A Network-Tests.package/UUIDGeneratorTests.class/instance/testing/testUniqueness.st
R Network-UUID.package/NeoUUIDGenerator.class/README.md
R Network-UUID.package/NeoUUIDGenerator.class/class/accessing/default.st
R Network-UUID.package/NeoUUIDGenerator.class/class/accessing/next.st
R Network-UUID.package/NeoUUIDGenerator.class/class/initialization/initialize.st
R Network-UUID.package/NeoUUIDGenerator.class/class/system startup/startUp.st
R Network-UUID.package/NeoUUIDGenerator.class/definition.st
R Network-UUID.package/NeoUUIDGenerator.class/instance/accessing/next.st
R Network-UUID.package/NeoUUIDGenerator.class/instance/accessing/randomGenerator.st
R Network-UUID.package/NeoUUIDGenerator.class/instance/initialize/initialize.st
R Network-UUID.package/NeoUUIDGenerator.class/instance/private/clockOn_.st
R Network-UUID.package/NeoUUIDGenerator.class/instance/private/computeNodeIdentifier.st
R Network-UUID.package/NeoUUIDGenerator.class/instance/private/nextCounter16.st
R Network-UUID.package/NeoUUIDGenerator.class/instance/private/nextRandom16.st
R Network-UUID.package/NeoUUIDGenerator.class/instance/private/placeFields_.st
R Network-UUID.package/NeoUUIDGenerator.class/instance/private/setVariantAndVersion_.st
M Network-UUID.package/UUID.class/README.md
M Network-UUID.package/UUID.class/instance/initialization/initialize.st
R Network-UUID.package/UUID.class/instance/system primitives/primMakeUUID.st
M Network-UUID.package/UUIDGenerator.class/README.md
A Network-UUID.package/UUIDGenerator.class/class/accessing/default.st
A Network-UUID.package/UUIDGenerator.class/class/accessing/next.st
R Network-UUID.package/UUIDGenerator.class/class/instance creation/default.st
R Network-UUID.package/UUIDGenerator.class/class/instance creation/generateDefault.st
M Network-UUID.package/UUIDGenerator.class/class/system startup/startUp.st
M Network-UUID.package/UUIDGenerator.class/definition.st
A Network-UUID.package/UUIDGenerator.class/instance/accessing/next.st
A Network-UUID.package/UUIDGenerator.class/instance/accessing/randomGenerator.st
R Network-UUID.package/UUIDGenerator.class/instance/accessors and mutators/randomCounter.st
R Network-UUID.package/UUIDGenerator.class/instance/accessors and mutators/randomCounter_.st
R Network-UUID.package/UUIDGenerator.class/instance/accessors and mutators/randomGenerator.st
R Network-UUID.package/UUIDGenerator.class/instance/accessors and mutators/randomGenerator_.st
R Network-UUID.package/UUIDGenerator.class/instance/accessors and mutators/semaphoreForGenerator.st
R Network-UUID.package/UUIDGenerator.class/instance/accessors and mutators/semaphoreForGenerator_.st
R Network-UUID.package/UUIDGenerator.class/instance/generator/generateOneOrZero.st
R Network-UUID.package/UUIDGenerator.class/instance/generator/generateRandomBitsOfLength_.st
R Network-UUID.package/UUIDGenerator.class/instance/initialization/initialize.st
A Network-UUID.package/UUIDGenerator.class/instance/initialize/initialize.st
R Network-UUID.package/UUIDGenerator.class/instance/instance creation/generateBytes_forVersion_.st
R Network-UUID.package/UUIDGenerator.class/instance/instance creation/generateFieldsVersion4.st
R Network-UUID.package/UUIDGenerator.class/instance/instance creation/placeFields_.st
R Network-UUID.package/UUIDGenerator.class/instance/instance creation/setupRandom.st
A Network-UUID.package/UUIDGenerator.class/instance/private/clockOn_.st
A Network-UUID.package/UUIDGenerator.class/instance/private/computeNodeIdentifier.st
A Network-UUID.package/UUIDGenerator.class/instance/private/nextCounter16.st
A Network-UUID.package/UUIDGenerator.class/instance/private/nextRandom16.st
A Network-UUID.package/UUIDGenerator.class/instance/private/placeFields_.st
A Network-UUID.package/UUIDGenerator.class/instance/private/setVariantAndVersion_.st
R Network-UUID.package/UUIDGenerator.class/instance/random seed/makeSeed.st
R Network-UUID.package/UUIDGenerator.class/instance/random seed/makeUnixSeed.st
M Ombu.package/OmCompositeStore.class/instance/writing/newEntry_.st
A Ombu.package/OmDeferrer.class/README.md
A Ombu.package/OmDeferrer.class/class/instance creation/new.st
A Ombu.package/OmDeferrer.class/class/instance creation/send_to_after_.st
A Ombu.package/OmDeferrer.class/definition.st
A Ombu.package/OmDeferrer.class/instance/accessing/duration.st
A Ombu.package/OmDeferrer.class/instance/accessing/duration_.st
A Ombu.package/OmDeferrer.class/instance/accessing/object.st
A Ombu.package/OmDeferrer.class/instance/accessing/object_.st
A Ombu.package/OmDeferrer.class/instance/accessing/selector.st
A Ombu.package/OmDeferrer.class/instance/accessing/selector_.st
A Ombu.package/OmDeferrer.class/instance/initialization/initializeWithSelector_object_duration_.st
A Ombu.package/OmDeferrer.class/instance/private/sendMessage.st
A Ombu.package/OmDeferrer.class/instance/scheduling/flush.st
A Ombu.package/OmDeferrer.class/instance/scheduling/schedule.st
R Ombu.package/OmDirectoryStore.class/instance/printing/descriptionString.st
M Ombu.package/OmDirectoryStore.class/instance/private/addStoreNamed_ifPossible_ifNotPossible_.st
M Ombu.package/OmDirectoryStore.class/instance/writing/newEntry_.st
A Ombu.package/OmEntryReader.class/instance/reading/entryPositionsOn_do_.st
R Ombu.package/OmEntryReader.class/instance/reading/moveStreamToNextEntry_.st
A Ombu.package/OmFileStore.class/class/accessing/defaultWritingDeferDuration.st
R Ombu.package/OmFileStore.class/class/instance creation/freshFromFile_.st
A Ombu.package/OmFileStore.class/class/testing/existsStoreNamed_inDirectory_.st
M Ombu.package/OmFileStore.class/definition.st
M Ombu.package/OmFileStore.class/instance/accessing/entriesCount.st
A Ombu.package/OmFileStore.class/instance/accessing/entryBufferDo_.st
M Ombu.package/OmFileStore.class/instance/accessing/entryFor_ifPresent_ifAbsent_.st
A Ombu.package/OmFileStore.class/instance/accessing/firstEntryIfAbsent_.st
M Ombu.package/OmFileStore.class/instance/accessing/headReference.st
A Ombu.package/OmFileStore.class/instance/accessing/lowLevelFileStoreIfNone_.st
A Ombu.package/OmFileStore.class/instance/accessing/readEntryForLocalName_ifPresent_ifAbsent_.st
A Ombu.package/OmFileStore.class/instance/accessing/writingDeferDuration.st
A Ombu.package/OmFileStore.class/instance/accessing/writingDeferDuration_.st
A Ombu.package/OmFileStore.class/instance/accessing/writingDeferrer.st
R Ombu.package/OmFileStore.class/instance/enumerating/entriesAndPositionsDo_.st
M Ombu.package/OmFileStore.class/instance/enumerating/entriesDo_.st
R Ombu.package/OmFileStore.class/instance/enumerating/firstEntryIfAbsent_.st
R Ombu.package/OmFileStore.class/instance/enumerating/readEntriesWith_.st
A Ombu.package/OmFileStore.class/instance/initialization/initialize.st
A Ombu.package/OmFileStore.class/instance/initialization/initializeWithGlobalName_fileReference_.st
R Ombu.package/OmFileStore.class/instance/initialize-release/ensureInitializedForWriting.st
R Ombu.package/OmFileStore.class/instance/initialize-release/initialize.st
R Ombu.package/OmFileStore.class/instance/initialize-release/initializeWithGlobalName_fileReference_.st
R Ombu.package/OmFileStore.class/instance/printing/descriptionString.st
A Ombu.package/OmFileStore.class/instance/private/checkIfMustRefresh.st
A Ombu.package/OmFileStore.class/instance/private/critical_.st
A Ombu.package/OmFileStore.class/instance/private/entryBuffer.st
A Ombu.package/OmFileStore.class/instance/private/entryByLocalName.st
A Ombu.package/OmFileStore.class/instance/private/entryPositionsByLocalName.st
R Ombu.package/OmFileStore.class/instance/private/error_reading_position_.st
A Ombu.package/OmFileStore.class/instance/private/flushEntryBuffer.st
M Ombu.package/OmFileStore.class/instance/private/nextEntryFromPosition_.st
A Ombu.package/OmFileStore.class/instance/private/readEntriesWith_.st
R Ombu.package/OmFileStore.class/instance/private/readingError_on_position_.st
R Ombu.package/OmFileStore.class/instance/private/writeEntry_ifSuccess_.st
R Ombu.package/OmFileStore.class/instance/private/writingError_.st
A Ombu.package/OmFileStore.class/instance/refreshing/flush.st
A Ombu.package/OmFileStore.class/instance/refreshing/referenceToLocalName_.st
M Ombu.package/OmFileStore.class/instance/refreshing/refresh.st
R Ombu.package/OmFileStore.class/instance/testing/isOutdated.st
M Ombu.package/OmFileStore.class/instance/writing/newEntry_.st
M Ombu.package/OmNullStore.class/instance/writing/newEntry_.st
A Ombu.package/OmSTONEntryReader.class/instance/reading/entryPositionsOn_do_.st
R Ombu.package/OmSTONEntryReader.class/instance/reading/moveStreamToNextEntry_.st
M Ombu.package/OmSequentialSuffixStrategy.class/instance/accessing/nextTo_in_.st
M Ombu.package/OmSessionStore.class/class/initialization/initialize.st
R Ombu.package/OmSessionStore.class/class/initialization/startUp.st
A Ombu.package/OmSessionStore.class/class/system startup/shutDown_.st
A Ombu.package/OmSessionStore.class/class/system startup/startUp.st
M Ombu.package/OmSessionStore.class/definition.st
M Ombu.package/OmSessionStore.class/instance/accessing/globalName.st
M Ombu.package/OmSessionStore.class/instance/accessing/headReference.st
A Ombu.package/OmSessionStore.class/instance/accessing/lowLevelFileStoreIfNone_.st
R Ombu.package/OmSessionStore.class/instance/accessing/maximumNumberOfEntries.st
M Ombu.package/OmSessionStore.class/instance/accessing/resetWithStoreNamed_.st
M Ombu.package/OmSessionStore.class/instance/accessing/storeNameStrategy.st
A Ombu.package/OmSessionStore.class/instance/accessing/storeNameStrategy_.st
A Ombu.package/OmSessionStore.class/instance/accessing/writingDeferDuration.st
A Ombu.package/OmSessionStore.class/instance/accessing/writingDeferDuration_.st
M Ombu.package/OmSessionStore.class/instance/initialization/initializeWithBaseLocator_.st
R Ombu.package/OmSessionStore.class/instance/printing/descriptionString.st
A Ombu.package/OmSessionStore.class/instance/refreshing/flush.st
A Ombu.package/OmSessionStore.class/instance/testing/existsStoreNamed_.st
R Ombu.package/OmSessionStore.class/instance/testing/isAvailableStoreName_.st
R Ombu.package/OmSessionStore.class/instance/testing/isOutdated.st
M Ombu.package/OmSessionStore.class/instance/writing/newEntry_.st
A Ombu.package/OmStore.class/instance/accessing/lowLevelFileStoreIfNone_.st
R Ombu.package/OmStore.class/instance/printing/descriptionString.st
A Ombu.package/OmStore.class/instance/refreshing/flush.st
R Ombu.package/OmStore.class/instance/testing/isOutdated.st
A Ombu.package/OmStoreFactory.class/README.md
A Ombu.package/OmStoreFactory.class/class/accessing/current.st
A Ombu.package/OmStoreFactory.class/class/accessing/reset.st
A Ombu.package/OmStoreFactory.class/class/accessing/startUp_.st
A Ombu.package/OmStoreFactory.class/class/initialization/initialize.st
A Ombu.package/OmStoreFactory.class/definition.st
A Ombu.package/OmStoreFactory.class/instance/accessing/defaultDirectory.st
A Ombu.package/OmStoreFactory.class/instance/accessing/fromFile_.st
A Ombu.package/OmStoreFactory.class/instance/accessing/named_.st
A Ombu.package/OmStoreFactory.class/instance/accessing/named_inDirectory_.st
A Ombu.package/OmStoreFactory.class/instance/accessing/null.st
A Ombu.package/OmStoreFactory.class/instance/initialization/initialize.st
A Ombu.package/OmStoreFactory.class/instance/private/newStoreNamed_in_.st
A Ombu.package/extension/WeakValueDictionary/instance/at_ifPresent_ifAbsentOrNil_.st
A Ombu.package/extension/ZnBufferedWriteStream/instance/cr.st
A Ombu.package/extension/ZnBufferedWriteStream/instance/position.st
A OmbuTests.package/OmDeferrerTest.class/README.md
A OmbuTests.package/OmDeferrerTest.class/definition.st
A OmbuTests.package/OmDeferrerTest.class/instance/accessing/count.st
A OmbuTests.package/OmDeferrerTest.class/instance/accessing/count_.st
A OmbuTests.package/OmDeferrerTest.class/instance/accessing/increase.st
A OmbuTests.package/OmDeferrerTest.class/instance/tests/testExecuteOnceAfterScheduling.st
A OmbuTests.package/OmDeferrerTest.class/instance/tests/testExecuteOnceAfterSchedulingMultipleTimes.st
A OmbuTests.package/OmDeferrerTest.class/instance/tests/testExecuteWithoutDelay.st
M OmbuTests.package/OmDirectoryStoreTest.class/instance/resources/auxiliaryStoreNamed_in_.st
R OmbuTests.package/OmFileStoreTest.class/instance/tests/testIsOutdated.st
M OmbuTests.package/OmFileStoreTest.class/instance/tests/testLoadFromCorruptFile4.st
M OmbuTests.package/OmFileStoreTest.class/instance/tests/testLoadFromFile.st
A OmbuTests.package/OmRandomSuffixStrategyTest.class/instance/tests/testIsNotConstant.st
R OmbuTests.package/OmSessionStoreTest.class/instance/tests/testAnnouncement.st
A OmbuTests.package/OmSessionStoreTest.class/instance/tests/testResetWithNextStoreNameWithRandomSuffix.st
A OmbuTests.package/OmSessionStoreTest.class/instance/tests/testResetWithNextStoreNameWithSequentialSuffix.st
A OmbuTests.package/OmSessionStoreTest.class/instance/tests/testResetWithNextStoreNameWithTimeStampSuffix.st
A OmbuTests.package/OmSessionStoreTest.class/instance/tests/testResetWithStoreNamedDoesAnnounce.st
A OmbuTests.package/OmSessionStoreTest.class/instance/tests/testResetWithStoreNamedSignalsErrorIfFileAlreadyExists.st
A OmbuTests.package/OmStoreFactoryTest.class/README.md
A OmbuTests.package/OmStoreFactoryTest.class/definition.st
A OmbuTests.package/OmStoreFactoryTest.class/instance/tests/testNullStore.st
A OmbuTests.package/OmStoreFactoryTest.class/instance/tests/testStoreNamed.st
A OmbuTests.package/OmStoreTest.class/instance/running/beforeAndAfterFlushStore_.st
M OmbuTests.package/OmStoreTest.class/instance/tests/testEntriesCount.st
M OmbuTests.package/OmStoreTest.class/instance/tests/testEntriesDo.st
M OmbuTests.package/OmStoreTest.class/instance/tests/testEntryForAbsentEntry.st
M OmbuTests.package/OmStoreTest.class/instance/tests/testEntryForPresentEntry.st
M OmbuTests.package/OmStoreTest.class/instance/tests/testFirstEntryIfAbsent.st
M OmbuTests.package/OmStoreTest.class/instance/tests/testHeadReference.st
M OmbuTests.package/OmStoreTest.class/instance/tests/testMultipleEntries.st
M OmbuTests.package/OmStoreTest.class/instance/tests/testNewEntry.st
M OmbuTests.package/OmStoreTest.class/instance/tests/testReferenceTo.st
M OmbuTests.package/OmStoreTest.class/instance/tests/testWritingFileReference.st
R ScriptLoader60.package/ScriptLoader.class/instance/pharo - scripts/script60384.st
A ScriptLoader60.package/ScriptLoader.class/instance/pharo - scripts/script60385.st
R ScriptLoader60.package/ScriptLoader.class/instance/pharo - updates/update60384.st
A ScriptLoader60.package/ScriptLoader.class/instance/pharo - updates/update60385.st
M ScriptLoader60.package/ScriptLoader.class/instance/public/commentForCurrentUpdate.st
Log Message:
-----------
60385
19670 The tree widget for FastTable jumps to the selected element when expanding or collapsing a node
https://pharo.fogbugz.com/f/cases/19670
19630 Epicea Lost Changes Detector: MNU OmNullReference>>globalName
https://pharo.fogbugz.com/f/cases/19630
19674 Remove UUIDGenerator and rename NeoUUIDGenerator to UUIDGenerator
https://pharo.fogbugz.com/f/cases/19674
19681 #signalerContext should use #method, not #methodNode
https://pharo.fogbugz.com/f/cases/19681
http://files.pharo.org/image/60/60385.zip
Feb. 10, 2017
Re: [Pharo-dev] Slack, fragmentation and design information
by Serge Stinckwich
On Fri, Feb 10, 2017 at 10:58 AM, Esteban Lorenzano <estebanlm(a)gmail.com> wrote:
> Hi Stephan,
>
>> On 10 Feb 2017, at 10:27, Stephan Eggermont <stephan(a)stack.nl> wrote:
>>
>> The past year we have started using Slack to communicate in real-time about Pharo. It has nice (mobile) clients and makes it easy to share pictures and snippets. As a result a large part of the communication about design and how to do things has moved from the mailing lists to Slack. As we're using the free version, and cannot afford to use the commercial version, we have no long-time storage of the design discussions. This contrasts with our mailing lists, that have a long-term archive. There was some discussion about this, and I'm not aware of that resulting in an accessible, easy to access archive. Also, we have not succeeded in summarizing design discussions from slack to the mailing lists. The resulting gap in design information forms an enormous long-term risk for our community. Without the design discussions it is much more difficult to later understand why decisions were taken. We cannot afford to let this short-term ease-of-use destroy Pharo's community history, and thereby Pharo. Let us fix this.
Yes I agree with your concerns.
> I share many of what you say⦠but in the other point of view, Slack as really worked and there is a lot more happening now in Slack + mailing list than what was before just in mailing list.
> But most of that is lost because of Slack policies (also Slack pricing model is impossible for a community as ours), and we need to find a solution for that.
Yes this is too expensive for the Pharo consortium ?
> Last days we were experimenting with @kilon again on use discord as a substitute and I find that for now it works really well and with a bit of work we can have all what you want: discord incorporated a search function (and they do not have the 10k limit) and we could do a bot that logs everything that happens there and stores that into gists (or whatever, but gists seems like a good idea).
>
> With this we would have enhanced the availability of those discussions (it remains the fact that immediate communication is worst organised than mails, but well⦠we need to try)
and move all the community on discord ? Or use an open-source slack
like : https://about.mattermost.com/
and host our own chat server.
--
Serge Stinckwich
UCBN & UMI UMMISCO 209 (IRD/UPMC)
Every DSL ends up being Smalltalk
http://www.doesnotunderstand.org/
Feb. 10, 2017