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
April 2017
- 608 messages
[pharo-project/pharo-core] c133d6: 60465
by GitHub
Branch: refs/heads/6.0
Home: https://github.com/pharo-project/pharo-core
Commit: c133d69caae272904bf9b8721d8bff3f471ae88d
https://github.com/pharo-project/pharo-core/commit/c133d69caae272904bf9b872…
Author: Jenkins Build Server <board(a)pharo-project.org>
Date: 2017-04-14 (Fri, 14 Apr 2017)
Changed paths:
R ConfigurationOfMooseAlgos.package/ConfigurationOfMooseAlgos.class/README.md
R ConfigurationOfMooseAlgos.package/ConfigurationOfMooseAlgos.class/class/accessing/project.st
R ConfigurationOfMooseAlgos.package/ConfigurationOfMooseAlgos.class/class/loading/load.st
R ConfigurationOfMooseAlgos.package/ConfigurationOfMooseAlgos.class/class/loading/loadBleedingEdge.st
R ConfigurationOfMooseAlgos.package/ConfigurationOfMooseAlgos.class/class/loading/loadDevelopment.st
R ConfigurationOfMooseAlgos.package/ConfigurationOfMooseAlgos.class/class/loading/loadStable.st
R ConfigurationOfMooseAlgos.package/ConfigurationOfMooseAlgos.class/class/metacello tool support/isMetacelloConfig.st
R ConfigurationOfMooseAlgos.package/ConfigurationOfMooseAlgos.class/class/private/ensureMetacello.st
R ConfigurationOfMooseAlgos.package/ConfigurationOfMooseAlgos.class/definition.st
R ConfigurationOfMooseAlgos.package/ConfigurationOfMooseAlgos.class/instance/accessing/project.st
R ConfigurationOfMooseAlgos.package/ConfigurationOfMooseAlgos.class/instance/baselines/baseline20beta1_.st
R ConfigurationOfMooseAlgos.package/ConfigurationOfMooseAlgos.class/instance/baselines/baseline20beta2_.st
R ConfigurationOfMooseAlgos.package/ConfigurationOfMooseAlgos.class/instance/baselines/baseline20beta3_.st
R ConfigurationOfMooseAlgos.package/ConfigurationOfMooseAlgos.class/instance/baselines/baseline20beta4_.st
R ConfigurationOfMooseAlgos.package/ConfigurationOfMooseAlgos.class/instance/baselines/baseline23_.st
R ConfigurationOfMooseAlgos.package/ConfigurationOfMooseAlgos.class/instance/baselines/baseline24_.st
R ConfigurationOfMooseAlgos.package/ConfigurationOfMooseAlgos.class/instance/baselines/baseline25_.st
R ConfigurationOfMooseAlgos.package/ConfigurationOfMooseAlgos.class/instance/baselines/legacyDefault_.st
R ConfigurationOfMooseAlgos.package/ConfigurationOfMooseAlgos.class/instance/snapshot versions/version24snapshot_.st
R ConfigurationOfMooseAlgos.package/ConfigurationOfMooseAlgos.class/instance/snapshot versions/version25snapshot_.st
R ConfigurationOfMooseAlgos.package/ConfigurationOfMooseAlgos.class/instance/snapshots/populateSpec_with_.st
R ConfigurationOfMooseAlgos.package/ConfigurationOfMooseAlgos.class/instance/snapshots/snapshot1.st
R ConfigurationOfMooseAlgos.package/ConfigurationOfMooseAlgos.class/instance/snapshots/snapshot2.st
R ConfigurationOfMooseAlgos.package/ConfigurationOfMooseAlgos.class/instance/symbolic versions/development_.st
R ConfigurationOfMooseAlgos.package/ConfigurationOfMooseAlgos.class/instance/symbolic versions/stable_.st
R ConfigurationOfMooseAlgos.package/ConfigurationOfMooseAlgos.class/instance/versions/version206_.st
R ConfigurationOfMooseAlgos.package/ConfigurationOfMooseAlgos.class/instance/versions/version20beta1_.st
R ConfigurationOfMooseAlgos.package/ConfigurationOfMooseAlgos.class/instance/versions/version20beta2_.st
R ConfigurationOfMooseAlgos.package/ConfigurationOfMooseAlgos.class/instance/versions/version20beta3_.st
R ConfigurationOfMooseAlgos.package/ConfigurationOfMooseAlgos.class/instance/versions/version20beta5_.st
R ConfigurationOfMooseAlgos.package/ConfigurationOfMooseAlgos.class/instance/versions/version20beta7_.st
R ConfigurationOfMooseAlgos.package/ConfigurationOfMooseAlgos.class/instance/versions/version20beta8_.st
R ConfigurationOfMooseAlgos.package/ConfigurationOfMooseAlgos.class/instance/versions/version20beta9_.st
R ConfigurationOfMooseAlgos.package/ConfigurationOfMooseAlgos.class/instance/versions/version21_.st
R ConfigurationOfMooseAlgos.package/ConfigurationOfMooseAlgos.class/instance/versions/version22_.st
R ConfigurationOfMooseAlgos.package/ConfigurationOfMooseAlgos.class/instance/versions/version23_.st
R ConfigurationOfMooseAlgos.package/ConfigurationOfMooseAlgos.class/instance/versions/version25_.st
R ConfigurationOfMooseAlgos.package/ConfigurationOfMooseAlgos.class/instance/versions/version26_.st
A Glamour-FastTable.package/GLMFilterBlock.class/README.md
A Glamour-FastTable.package/GLMFilterBlock.class/class/instance creation/block_.st
A Glamour-FastTable.package/GLMFilterBlock.class/definition.st
A Glamour-FastTable.package/GLMFilterBlock.class/instance/accessing/filterBlock.st
A Glamour-FastTable.package/GLMFilterBlock.class/instance/accessing/filterBlock_.st
A Glamour-FastTable.package/GLMFilterBlock.class/instance/testing/matches_.st
M Glamour-FastTable.package/GLMMorphicFTRenderer.class/instance/initialization/specificTableMorphInitializiation.st
M Glamour-FastTable.package/GLMMorphicFTRenderer.class/instance/private/initializeAnnouncementForDataSource.st
M Glamour-FastTable.package/GLMMorphicFTRenderer.class/instance/rendering/render_.st
M Glamour-FastTable.package/TGLMFastTable.class/instance/instance creation/newDataSourceMatching_.st
A Glamour-FastTable.package/TGLMFastTable.class/instance/instance creation/toString_.st
A Glamour-FastTable.package/TGLMFastTableFunctionsPresentation.class/instance/accessing/filterBlock.st
A Glamour-FastTable.package/TGLMFastTableFunctionsPresentation.class/instance/public api/enableFilter_.st
A Glamour-FastTable.package/TGLMFastTableFunctionsPresentation.class/instance/testing/hasFilterBlock.st
M Kernel.package/BlockClosure.class/instance/scheduling/newProcess.st
A Pharo-Help.package/WelcomeHelp.class/class/formatting/bold_.st
A Pharo-Help.package/WelcomeHelp.class/class/formatting/doItFrom_.st
A Pharo-Help.package/WelcomeHelp.class/class/formatting/heading_.st
A Pharo-Help.package/WelcomeHelp.class/class/formatting/subheading_.st
A Pharo-Help.package/WelcomeHelp.class/class/formatting/underlined_.st
A Pharo-Help.package/WelcomeHelp.class/class/formatting/url_.st
M Pharo-Help.package/WelcomeHelp.class/class/pages/changeLog.st
M Pharo-Help.package/WelcomeHelp.class/class/pages/documentation.st
M Pharo-Help.package/WelcomeHelp.class/class/pages/exploreEnvironment.st
M Pharo-Help.package/WelcomeHelp.class/class/pages/gettingHelp.st
M Pharo-Help.package/WelcomeHelp.class/class/pages/learn.st
M Pharo-Help.package/WelcomeHelp.class/class/pages/useExternalPackages.st
M Pharo-Help.package/WelcomeHelp.class/class/pages/welcome.st
R ScriptLoader60.package/ScriptLoader.class/instance/pharo - scripts/script60464.st
A ScriptLoader60.package/ScriptLoader.class/instance/pharo - scripts/script60465.st
R ScriptLoader60.package/ScriptLoader.class/instance/pharo - updates/update60464.st
A ScriptLoader60.package/ScriptLoader.class/instance/pharo - updates/update60465.st
M ScriptLoader60.package/ScriptLoader.class/instance/public/commentForCurrentUpdate.st
Log Message:
-----------
60465
19932 WelcomeHelp for Pharo 6 update
https://pharo.fogbugz.com/f/cases/19932
19934 change default theme to DarkTheme
https://pharo.fogbugz.com/f/cases/19934
19933 Remove ConfigurationOfMooseAlgos from the image.
https://pharo.fogbugz.com/f/cases/19933
19929 Comment guard to warn debugging top most process context
https://pharo.fogbugz.com/f/cases/19929
19926 Glamour Fast Table selection menu item actions does not work together with a filter
https://pharo.fogbugz.com/f/cases/19926
http://files.pharo.org/image/60/60465.zip
April 14, 2017
Re: [Pharo-dev] Please, test our 64bits builds
by Alistair Grant
Hi Esteban,
I've basically moved my personal environment to 64 bits, which means all
of the following have been loaded and most have had some adhoc testing:
Iceberg
OSProcess
MessageFlowBrowser
TilingWindowManager
Beacon
NeoCSV (not tested)
UDBC (SQLite3)
Glorp
Pillar
Roassal2
Soup (not tested)
Zinc Server
I don't use anything in a particularly sophisticated manner, although I
may use Iceberg in some not so normal ways (I load packages manually as
part of a startup script), but the basics at least are all working.
Great job to everyone involved!
Thanks,
Alistair
April 14, 2017
changing default theme to DarkTheme
by Esteban Lorenzano
Hello guys,
I wanted to let you know that we talked at the board and we want to make the DarkTheme a default for Pharo 6.0.
This is just because we want to have a visual immediate reference of changing things (yeah, marketing ;) )
Those which still do not like it can still execute
Pharo3Theme beCurrent.
(in their startup actions, if you want)
And everything will be as before.
Esteban
April 14, 2017
Re: [Pharo-dev] latest vm - 32bit - crash on mac
by Tudor Girba
Ooops, never mind! I forgot I was using a special plugin. My mistake.
Doru
> On Apr 13, 2017, at 10:50 PM, Tudor Girba <tudor(a)tudorgirba.com> wrote:
>
> Hi,
>
> I just got a crash on Mac when using the latest VM. I attached the dump.
>
> This was a short session. I played a bit with a few Roassal visualizations, and then I started some coding in Nautilus, and the image crashed while typing the body of a method.
>
> I am on OS X, 10.11.6 (Mac OS X El Capitain).
>
> Here are the details of the VM:
> CoInterpreter VMMaker.oscog-eem.2188 uuid: ff4ca601-cd05-4792-ab0d-dcdf19975239 Apr 9 2017
> StackToRegisterMappingCogit VMMaker.oscog-eem.2188 uuid: ff4ca601-cd05-4792-ab0d-dcdf19975239 Apr 9 2017
> VM: 201704090811 https://github.com/OpenSmalltalk/opensmalltalk-vm.git $ Date: Sun Apr 9 10:11:47 2017 +0200 $ Plugins: 201704090811 https://github.com/OpenSmalltalk/opensmalltalk-vm.git $
>
> Here is the image build was: 60464.
>
> Cheers,
> Doru
>
> --
> www.tudorgirba.com
> www.feenk.com
>
> "Problem solving efficiency grows with the abstractness level of problem understanding."
>
>
>
> <crash.dmp>
--
www.tudorgirba.com
www.feenk.com
"One cannot do more than one can do."
April 14, 2017
Re: [Pharo-dev] String hash function
by Max Leske
That would radically increase the number of collisions from the hash function. I donât think that is a good idea. *Especially* when we are talking about a hash function that will be used for dictionaries. When you test the performance of a hash function you should also test itâs properties w.r.t. to hashed collections (Andrés Valloud explains that nicely in âHashing in Smalltalkâ).
Cheers,
Max
> On 13 Apr 2017, at 23:19, Clément Bera <bera.clement(a)gmail.com <mailto:bera.clement@gmail.com>> wrote:
>
> Hi all,
>
> I am trying to investigate performance overhead in benchmarks to improve the VM performance. In a benchmark strings are used as dictionary keys, which seems to be an OK pattern to me that may be actually used in real code from time to time. Something stroke me: the hash function of a string is actually iterating over the whole string.
>
> As a result, I get something like this:
>
> #(
> 'String size: 0, Hash function performance: 17,817,776 per second'
> 'String size: 1, Hash function performance: 15,395,388 per second'
> 'String size: 3, Hash function performance: 14,853,109 per second'
> 'String size: 4, Hash function performance: 15,151,954 per second'
> 'String size: 5, Hash function performance: 14,139,881 per second'
> 'String size: 10, Hash function performance: 11,545,749 per second'
> 'String size: 65, Hash function performance: 3,431,067 per second'
> 'String size: 130, Hash function performance: 1,879,047 per second'
> 'String size: 520, Hash function performance: 511,934 per second'
> )
>
> This means that if a hash of a 1MB String is computed it takes a hell of a time.
>
> I wonder why we don't compute the string hash from a small number of inner characters taken randomly but deterministically from the String. From example, for all strings longer than 5 characters, one could pick only 5 characters in the String to compute its hash. The hash function is this way decent enough and the performance does not drop for large strings.
>
> One implementation could be to replace:
> 1 to: stringSize do: [:pos |
> by:
> 1 to: stringSize by: stringSize // 5 do: [:pos |
> in:
> ByteString>>stringHash: aString initialHash: speciesHash
>
> Then we need to rehash the whole image.
>
> What do you think ? Is there a hash expert around that can confirm this is a good idea ?
April 14, 2017
String hash function
by Clément Bera
Hi all,
I am trying to investigate performance overhead in benchmarks to improve
the VM performance. In a benchmark strings are used as dictionary keys,
which seems to be an OK pattern to me that may be actually used in real
code from time to time. Something stroke me: *the hash function of a string
is actually iterating over the whole string. *
As a result, I get something like this:
#(
'String size: 0, Hash function performance: 17,817,776 per second'
'String size: 1, Hash function performance: 15,395,388 per second'
'String size: 3, Hash function performance: 14,853,109 per second'
'String size: 4, Hash function performance: 15,151,954 per second'
'String size: 5, Hash function performance: 14,139,881 per second'
'String size: 10, Hash function performance: 11,545,749 per second'
'String size: 65, Hash function performance: 3,431,067 per second'
'String size: 130, Hash function performance: 1,879,047 per second'
'String size: 520, Hash function performance: 511,934 per second'
)
This means that if a hash of a 1MB String is computed it takes a hell of a
time.
I wonder why we don't compute the string hash from a small number of inner
characters taken randomly but deterministically from the String. From
example, for all strings longer than 5 characters, one could pick only 5
characters in the String to compute its hash. The hash function is this way
decent enough and the performance does not drop for large strings.
One implementation could be to replace:
1 to: stringSize do: [:pos |
by:
1 to: stringSize by: stringSize // 5 do: [:pos |
in:
ByteString>>stringHash: aString initialHash: speciesHash
Then we need to rehash the whole image.
What do you think ? Is there a hash expert around that can confirm this is
a good idea ?
April 13, 2017
latest vm - 32bit - crash on mac
by Tudor Girba
Hi,
I just got a crash on Mac when using the latest VM. I attached the dump.
This was a short session. I played a bit with a few Roassal visualizations, and then I started some coding in Nautilus, and the image crashed while typing the body of a method.
I am on OS X, 10.11.6 (Mac OS X El Capitain).
Here are the details of the VM:
CoInterpreter VMMaker.oscog-eem.2188 uuid: ff4ca601-cd05-4792-ab0d-dcdf19975239 Apr 9 2017
StackToRegisterMappingCogit VMMaker.oscog-eem.2188 uuid: ff4ca601-cd05-4792-ab0d-dcdf19975239 Apr 9 2017
VM: 201704090811 https://github.com/OpenSmalltalk/opensmalltalk-vm.git $ Date: Sun Apr 9 10:11:47 2017 +0200 $ Plugins: 201704090811 https://github.com/OpenSmalltalk/opensmalltalk-vm.git $
Here is the image build was: 60464.
Cheers,
Doru
--
www.tudorgirba.com
www.feenk.com
"Problem solving efficiency grows with the abstractness level of problem understanding."
April 13, 2017
Re: [Pharo-dev] Commenting the Session Manager
by Stephane Ducasse
I love it!!!!
is hold -> is held?
On Thu, Apr 13, 2017 at 11:41 AM, Guillermo Polito <
guillermopolito(a)gmail.com> wrote:
> Hi all,
>
> I took some minutes to write down a class comment for the SessionManager
> class. There was an issue asking for it:
>
> https://pharo.fogbugz.com/f/cases/19463/Improve-
> SessionManager-class-comment
>
> Since it is an important topic, and sometimes too low level for some
> people, I'd like to have some feedback. Is it well explained? Is there
> something that is key for you and is missing?
>
> I know that the comment is not exhaustive, it can be iterated and
> enhanced, but we can have a nice first version of it for the release.
>
> Thanks,
> Guille
>
> =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
>
>
> I am the object responsible of managing how sessions work in Pharo.
> A session defines the boundaries of work in the image.
>
> A new session starts when the image starts or when the image is saved.
> A session ends when the image quits or it is saved.
> There is only one active session at a single point of time.
> Saving the image causes the active to stop, and starts a new session.
>
> The current active session is hold by myself, the singleton session
> manager. It can be accessed by doing:
>
> SessionManager default currentSession.
>
> The most important responsibility of the session manager is to manage how
> resources and services in the image are started up and shut down at the
> beginning and end of a session respectively. For example, when the image
> starts, several initialization routines should be executed to make sure
> that the image has access to the graphic drivers, the standard input/output
> file descriptors and so on.
>
> Such initialization happens in the #snapshot:andQuit: method.
> #snapshot:andQuit: will:
> - stop current session
> - save current image if requested
> - quit if requested
> - start a new session
>
> When a session is started, all elements registered in the startup list are
> started up.
> When a session is stopped, all elements registered in the shutdown list
> are shut down.
>
> # Managing Startup and Shutdown lists
>
> The startup and shutdown lists can be accessed through the messages:
>
> SessionManager default startupList.
> SessionManager default shutdownList.
>
> In general terms, the shutdown list is the startup list reversed.
>
> Upon a startup [shutdown], all elements in the startup list are sent the
> message #startup: [#shutdown:] with a boolean as argument that indicates
> wether the image is being saved [closed].
>
> Internally, startup and shutdown lists are prioritised. Priorities are
> managed by startup categories. By default the session manager includes the
> following categories in decreasing priority order:
>
> - System
> - Network
> - Graphical User Interface
> - Tools
> - User
>
> Categories can be accessed as follows:
>
> SessionManager default categoryNamed: aName.
>
> New categories can be registered in the system using the messages:
>
> SessionManager default createCategory: aCategoryName.
> SessionManager default createCategory: aCategoryName after:
> anotherCategoryName.
>
> Finally, to subscribe some resource handler to the startup shutdown lists,
> we need to subscribe a handler, subclass of AbstractSessionHandler.
> The most common handler implementation so far is the ClassSessionHandler,
> that allows to subscribe a class for startup and shutdown, keeping
> backwards compatibility to the old startup mechanism.
>
> ClassSessionHandler forClassNamed: aClassName
>
> We can register a session handler as follows
>
> SessionManager default
> register: (ClassSessionHandler forClassNamed: self name)
> inCategory: SessionManager default systemCategory.
> Or alternatively, by talking to the corresponding category:
>
> SessionManager default systemCategory register: (ClassSessionHandler
> forClassNamed: self name)
>
> # System Category Priorities
>
> A system category internally prioritizes its elements to provide a fine
> grained control on the startup and shutdown order.
> All methods above have variants that allow developers to specify the
> priority inside the category:
>
> SessionManager default
> register: (ClassSessionHandler forClassNamed: self name)
> inCategory: SessionManager default systemCategory
> atPriority: 100.
>
> SessionManager default systemCategory
> register: (ClassSessionHandler forClassNamed: self name)
> atPriority: 100
> By default, if no priority is specified, a default priority is used. Every
> category answers to the message #defaultPriority.
>
> # How does an image restart from the point it was before
>
> An important point in the image startup is how does it manage to restart
> from the point where it was executing when it was saved.
>
> When the image is saved, using the snapshot primitive, the entire image is
> freezed at the point of the snapshot.
> More particularly, the process that invoked the snapshot primitive is
> freezed at the point of the primitive call.
> This works as a process fork: the running image will return from the
> snapshot primitive and the saved file will also start from the freezed
> point.
> To differentiate whether we are executing in the running image or in the
> freshly-saved image, the snapshot primitive returns a boolean indicating it.
>
> Read the comment of #snapshotPrimitive for more details.
>
April 13, 2017
Commenting the Session Manager
by Guillermo Polito
Hi all,
I took some minutes to write down a class comment for the SessionManager
class. There was an issue asking for it:
https://pharo.fogbugz.com/f/cases/19463/Improve-SessionManager-class-comment
Since it is an important topic, and sometimes too low level for some
people, I'd like to have some feedback. Is it well explained? Is there
something that is key for you and is missing?
I know that the comment is not exhaustive, it can be iterated and enhanced,
but we can have a nice first version of it for the release.
Thanks,
Guille
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
I am the object responsible of managing how sessions work in Pharo.
A session defines the boundaries of work in the image.
A new session starts when the image starts or when the image is saved.
A session ends when the image quits or it is saved.
There is only one active session at a single point of time.
Saving the image causes the active to stop, and starts a new session.
The current active session is hold by myself, the singleton session
manager. It can be accessed by doing:
SessionManager default currentSession.
The most important responsibility of the session manager is to manage how
resources and services in the image are started up and shut down at the
beginning and end of a session respectively. For example, when the image
starts, several initialization routines should be executed to make sure
that the image has access to the graphic drivers, the standard input/output
file descriptors and so on.
Such initialization happens in the #snapshot:andQuit: method.
#snapshot:andQuit: will:
- stop current session
- save current image if requested
- quit if requested
- start a new session
When a session is started, all elements registered in the startup list are
started up.
When a session is stopped, all elements registered in the shutdown list are
shut down.
# Managing Startup and Shutdown lists
The startup and shutdown lists can be accessed through the messages:
SessionManager default startupList.
SessionManager default shutdownList.
In general terms, the shutdown list is the startup list reversed.
Upon a startup [shutdown], all elements in the startup list are sent the
message #startup: [#shutdown:] with a boolean as argument that indicates
wether the image is being saved [closed].
Internally, startup and shutdown lists are prioritised. Priorities are
managed by startup categories. By default the session manager includes the
following categories in decreasing priority order:
- System
- Network
- Graphical User Interface
- Tools
- User
Categories can be accessed as follows:
SessionManager default categoryNamed: aName.
New categories can be registered in the system using the messages:
SessionManager default createCategory: aCategoryName.
SessionManager default createCategory: aCategoryName after:
anotherCategoryName.
Finally, to subscribe some resource handler to the startup shutdown lists,
we need to subscribe a handler, subclass of AbstractSessionHandler.
The most common handler implementation so far is the ClassSessionHandler,
that allows to subscribe a class for startup and shutdown, keeping
backwards compatibility to the old startup mechanism.
ClassSessionHandler forClassNamed: aClassName
We can register a session handler as follows
SessionManager default
register: (ClassSessionHandler forClassNamed: self name)
inCategory: SessionManager default systemCategory.
Or alternatively, by talking to the corresponding category:
SessionManager default systemCategory register: (ClassSessionHandler
forClassNamed: self name)
# System Category Priorities
A system category internally prioritizes its elements to provide a fine
grained control on the startup and shutdown order.
All methods above have variants that allow developers to specify the
priority inside the category:
SessionManager default
register: (ClassSessionHandler forClassNamed: self name)
inCategory: SessionManager default systemCategory
atPriority: 100.
SessionManager default systemCategory
register: (ClassSessionHandler forClassNamed: self name)
atPriority: 100
By default, if no priority is specified, a default priority is used. Every
category answers to the message #defaultPriority.
# How does an image restart from the point it was before
An important point in the image startup is how does it manage to restart
from the point where it was executing when it was saved.
When the image is saved, using the snapshot primitive, the entire image is
freezed at the point of the snapshot.
More particularly, the process that invoked the snapshot primitive is
freezed at the point of the primitive call.
This works as a process fork: the running image will return from the
snapshot primitive and the saved file will also start from the freezed
point.
To differentiate whether we are executing in the running image or in the
freshly-saved image, the snapshot primitive returns a boolean indicating it.
Read the comment of #snapshotPrimitive for more details.
April 13, 2017
CFP - IWST 2017 - International Workshop on Smalltalk Technologies
by jannik.laval@gmail.com
CFP - IWST 2017 - International Workshop on Smalltalk Technologies
[Please accept our apologies if you receive multiple copies of this call]
[Please send to interested colleagues / mailing-lists]
****************************************************************************
********************************
CALL FOR PAPERS
IWST 2017 Â International Workshop on Smalltalk Technologies
http://www.esug.org/wiki/pier/Conferences/2017/International-Workshop-IWST_1
7
Maribor, Slovenia; Between September 4th to 8th, 2017
****************************************************************************
********************************
-------------------
Goals and scopes
-------------------
The goals of the workshop is to create a forum around advances or experience
in Smalltalk and to trigger discussions and exchanges of ideas. The topics
of your paper can be on all aspect of Smalltalk, theoretical as well as
practical. Participants are invited to submit research articles or
industrial papers. This year we want to open two different tracks: one
research track and one industrial track with less scientific constraints.
We expect papers of three kinds:
Short position papers describing emerging ideas
Long research papers with deeper description of experiments and of research
results.
Industrial papers with presentation of real and innovative Smalltalk
applications; this kind of paper should enlighten why Smalltalk is really
appropriate for your application.
We will not enforce any length restriction.
--------------------
Important Dates
--------------------
Submission deadline: June 16th, 2017
Notification deadline: July 21th, 2017
Workshop : between September 4th and 8th, 2017
All accepted papers will be published in ACM DL (To be confirmed)
-------------------
Topics
-------------------
We welcome contributions on all aspects, theoretical as well as practical,
of Smalltalk related topics such as:
-Aspect-oriented programming,
-Design patterns,
-Experience reports,
-Frameworks,
-Implementation, new dialects or languages implemented in Smalltalk,
-Interaction with other languages,
-Meta-programming and Meta-modeling,
-Tools
-------------------
Best Paper Award
-------------------
To encourage the submission of high-quality papers, the IWST organizing
committee is very proud to announce a Best Paper Award for this edition of
IWST.
We thank the Lam Research Corporation for its financial contribution which
makes it possible for prizes for the three best papers: 1000 USD for first
place, 600 USD for second place and 400 USD for third place.
The ranking will be decided by the program committee during the review
process. The awards will be given during the ESUG conference social event.
The Best Paper Award will take place only with a minimum of six submissions.
Notice also that to be illegible, a paper must be presented at the workshop
by one of the author and that the presenting author must be registered at
the ESUG conference.
-------------------
Publication
-------------------
Both submissions and final papers must be prepared using the ACM SIGPLAN 10
point format. Templates for Word and LaTeX are available at
http://www.acm.org/sigs/sigplan/authorInformation.htm. This site also
contains links to useful informations on how to write effective submissions.
-------------------
Submission
-------------------
All submissions must be sent via easychair:
https://easychair.org/conferences/?conf=iwst2017
-------------------
Program chairs
-------------------
Anne Etien (Université de Lille 1, France)
Jannik Laval (Université Lyon 2 Lumière, France)
--
~~Jannik Laval~~
Enseignant-chercheur
Responsable Pédagogique Licence Coordonnateur de Projet en Système
d'Information
<http://iut.univ-lyon2.fr/> IUT Lumière, <http://www.univ-lyon2.fr/>
Université Lumière Lyon 2
<http://disp-lab.fr/> laboratoire DISP
+33 4 78 77 43 06
<http://www.jannik-laval.eu/> http://www.jannik-laval.eu
<http://www.phratch.com/> http://www.phratch.com
<http://www.approchealpes.info/> http://www.approchealpes.info
---
L'absence de virus dans ce courrier électronique a été vérifiée par le logiciel antivirus Avast.
https://www.avast.com/antivirus
April 13, 2017