Esug-list
By thread
esug-list@lists.esug.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
- 3 participants
- 3326 messages
Re: [Esug-list] [Pharo-users] [ANN] Pharo 2.0
by Guillermo Polito
Wiii :D Felicitaciones!
On Mon, Mar 18, 2013 at 11:51 AM, jannik laval <jannik.laval(a)gmail.com>wrote:
> Congrats !
>
> Jannik
>
>
> 2013/3/18 Luc Fabresse <luc.fabresse(a)gmail.com>
>
>>
>> THANK you all!
>> More or less my feelings:
>>
>> Luc
>>
>> 2013/3/18 stephane ducasse <stephane.ducasse(a)free.fr>
>>
>>> For those of you that want to know a bit more:
>>> http://code.google.com/p/pharo/w/edit/ActionsInPharo20
>>>
>>>
>>> Here is a log of all the actions done in 2.0. The idea is not to
>>> replicate the bug tracker, as it is easy to get a complete list [
>>> http://code.google.com/p/pharo/issues/list?can=1&q=milestone%3D2.0here]
>>> Instead, the idea is to have a list of the major improvements with some
>>> explanations.
>>>
>>> ==UI==
>>> We started a long term effort on the Pharo UI.
>>>
>>> * *Spec: a new way to build UI.* We started to rethink the way we
>>> build user interfaces in Pharo. Spec has been developed by Benjamin van
>>> Ryseghem under the guidance of Stéphane Ducasse. Spec is based on a
>>> declarative syntax to specify user interfaces and on valueHolder port
>>> composition. Spec supports widgets definition, reuse and composition. New
>>> widgets can be created by composing existing widgets. Many existing tools
>>> have been reimplemented using Spec. We wrote a tutorial for Spec. Spec will
>>> be used for the UIPainter that we will develop for Pharo 3.0. In Pharo 3.0
>>> we will revisit and improve Spec. One of the idea is that Spec should be
>>> independent of Morphic so that we can use it to build native tools or with
>>> Amber.
>>>
>>> * *Widget enhancements.* Several important widgets were greatly
>>> enhanced. This effort was led by Benjamin van Ryseghem. For example,
>>> multiple selection and single selection lists were unified. A new widget
>>> list has been developed from scratch and it exhibits massive speed
>>> improvements.
>>>
>>> * *Layout improvements/cleanups.* We improved the protocol used for
>>> creating LayoutFrame. We cleaned its implementation and simplify clients
>>> code. Now instance of layoutFrame are systematically well initialized.
>>> Clients do not need to check against nil values and a new protocol avoids
>>> to be forced to specify rectangle when only one number is required.
>>>
>>> * *Keybindings.* Keybindings is a new library developed by Guillermo
>>> Polito to manage key bindings. We started to use it to define widgets
>>> keybinding as well as menu shortcut. In Pharo 3.0 we will systematically
>>> rewrite all the hard-coded bindings with it and write a documentation. It
>>> supports:
>>> * source code navigation
>>> * running tests
>>> * basic refactoring
>>> * creating classes
>>> * and many more shortcuts: see "Shortcuts Description" in the window
>>> menu (triangle on the top right) in Nautilus
>>>
>>> * *New icons (famfam).* Pharo now uses new icons. We are looking for
>>> designers that could help us to define the UI look of the future Pharo
>>> versions.
>>>
>>> * *"Growl" style notifications.* To avoid to get UI blocked by simple
>>> notifications, Pharo now uses a growl like notification systems.
>>>
>>> * *Revamp progress bar.* We started to rewrite the progress bar
>>> framework. We introduced the Job class and notification to specify progress
>>> bar.
>>>
>>> * *Rectangle intersection improvements.* Rectangle intersection is a
>>> central part for UI redrawing and invalidating screen regions. Rectangle
>>> intersection is then an important functionality. We started to address the
>>> problem of the non-specification of the intersection of non overlapping
>>> rectangles. We introduced the intersect:ifNone protocol. As a side effect
>>> this improves the damage recording mechanisms and provide a faster system.
>>>
>>> ==Developer tools==
>>>
>>> * *Nautilus browser.* Nautilus, a new code browser has been developed
>>> by B. van Ryseghem. It supports: in place hierarchy, groups, refactorings,
>>> multiple views, icon navigation and many other features. Nautilus has a
>>> plugin infrastructure so everybody can use existing plugin or write new
>>> ones. Nautilus is fully navigable using shortcut. In Pharo 3.0 we plan to
>>> rewrite Nautilus using Spec.
>>>
>>> * *Critics browser.* From Pharo 2.0 on we want to systematically run
>>> rule checking rules. We revisited the SmallLint rules to customize them to
>>> Pharo and we better documented them. We developed a new browser that will
>>> helps you to apply SmallLint rules. In particular it supports the notion of
>>> todos. We can mark an issue as a false positive or as todos and get the bar
>>> green. We wrote a complete chapter on the Critics Browser. We will start to
>>> work on an infrastructure to systematically evaluate SmallLint rules on the
>>> projects published in the Pharo distribution.
>>>
>>> * *Omnipresence of the Refactoring Engine.* We believe that Pharo
>>> itself should use the best tools it has to change itself. This is why we
>>> decided to introduce the Refactoring Engine and SmallLint rule checkers.
>>> Note that this move to integrate extra tool is not against our vision to
>>> produce a minimal core. Once we have fast fuel based package loading we
>>> will be able to remove Metacello from the core.
>>>
>>> * *Improved version diff browsing.* We improved the diff and merging
>>> tool.
>>>
>>> * *Spotlight.* Spotlight is a ubiquitous tool to find classes and
>>> methods. You can activate it just press shift+enter.
>>>
>>> * *Revamp E/O Completion and smart chars.* In the past, smart
>>> characters (automatically closing parenthesis, single quote...) did not
>>> play well with auto completeion. In addition, they were duplicated
>>> functionality between two automatic ecompletion algorithms. In Pharo 2.0 we
>>> unified the two algorithms under a single umbrella and integrate them
>>> smoothly with smart-characters.
>>>
>>> * *Interactive navigation using "ctrl/cmd+click" over
>>> classes/methods.* Now Pharo supports the interactive navigation of source
>>> code using cmd/ctrl-click on selectors and class names in the source-code
>>> [implementors, senders, users].
>>>
>>> * *Shout themes.* Several syntax highlighting themes have been defined.
>>>
>>> * *Andreas profiler.* As a tribute to Andreas Raab, we included an
>>> alternate profiler developed by Andreas.
>>>
>>> ==Networking==
>>>
>>> * *New version of Zinc.* Zinc is developed by Sven Van Caekenberghe.
>>> New versions of Zinc the http client/server library has been integrated.
>>>
>>> * *Zodiac (SSL).* Zodiac is an extension of Zinc to support SSL
>>> connections.
>>>
>>> ==System==
>>>
>>> * *System Announcer.* Pharo had a change notification system. A change
>>> notification system is important because tools can register to events to
>>> update or react without getting coupled with the system. The problem was
>>> that the previous change notification broadcasted only symbols and not
>>> plain objects. It was limiting the power that we can get about first class
>>> objects. In addition not all the events were raised and competing with
>>> Announcements (announcements raised plain objects). In Pharo 2.0, we
>>> redefined system events as Announcements, introduced a System Announcer
>>> whose responsibility is to raise announcement for all the events and
>>> removed the old SystemChangeNotifier. This sets up the basis for the future
>>> communication between tools.
>>>
>>> * *RPackage replacing PackageInfo.* PackageInfo is a way to identify
>>> if a method belongs to a package. The implementation is based on dynamic
>>> queries. Such queries it leads to problems to produce new generation
>>> browser and tools. We defined a new implementation of the package
>>> management of Pharo. The idea is to represent package as real objects. In
>>> Pharo3.0 we will continue to remove the dependency to PackageInfo.
>>>
>>> * *Manifest: Package metadata.* We introduce the notion of package
>>> metadata. Package metadata are used to manage all false positives or
>>> todos of SmallLint so that you do not have to check all the time rule
>>> results. Each package can now have a class named
>>> ManifestNameOfXPackageNameX. It will be the place to add documentation and
>>> other information.
>>>
>>> * *Command line tools / Headless mode.* We really want to make sure
>>> that Pharo can be used in non interactive mode and that we can pass scripts
>>> to it on the command-line. For this reason we continued to work on making
>>> sure that Pharo can be used headless. In particular we introduced a new way
>>> to handle command line parameters. See `pharoVM my.image --help` and
>>> `pharoVM my.image --list`
>>> * st Handle .st source files
>>> * Fuel Handle fuel files
>>> * config Install and inspect Metacello Configurations from the
>>> command line
>>> * save Rename the image and changes file
>>> * test Run tests from command line
>>> * update Load updates
>>> * printVersion Print image version
>>> * eval Evaluate directly passed-in one line script
>>>
>>> * *Native boost.* NativeBoost is a library that generates assembly
>>> code on the fly. It is used to generate FFI calls. By default [
>>> http://www.esug.org/wiki/pier/Conferences/2011/Schedule-And-Talks/Native-bo…] is included mostly for future use. In Pharo3.0 vector graphics
>>> will be used and Nativeboost will be used to invoke the graphics primitives.
>>>
>>> * *Ring metamodel.* Ring is a new meta model introduced in Pharo 1.4.
>>> It is used to represent code that is not currently executed. Ring has an
>>> API that is polymorphic with a subpart of the core executing entities of
>>> Pharo (Class and CompiledMethod). This has the nice property that the tools
>>> that manipulate such entities can also manipulate ring objects. Hence Ring
>>> supports of image browsing. In Pharo 3.0 we will rewrite certain tools to
>>> use ring and deprecate some abstractions like pseudo-classes and file
>>> packages.
>>>
>>>
>>> * *Fuel.* Fuel is one of the fastest and versatile object serializer.
>>> In Pharo 2.0, we decided to use fuel as a default serializer. In
>>> particular, on error the execution stack is saved now in fuel format.
>>> Therefore it is possible to reopen a debugger on a similar image for
>>> debugging purpose.
>>>
>>> * *Freetype fonts.* We offer now a better handling of freetype fonts
>>> and their management.
>>>
>>> * *Metacello: a universal package map.* Metacello is a framework to
>>> describe is included in the default image. In the future Pharo will be
>>> managed by Metacello. The idea also is that once we have fast fuel based
>>> package loading we will be able to remove Metacello from the core.
>>>
>>>
>>> ==Kernel==
>>>
>>> * *New object-oriented and powerful filesystem.* The old library to
>>> support file was dated and cumbersome to use. This version of Pharo uses
>>> FileSystem a new framework developed by Colin Putney. We revisited and
>>> integrated deeply into Pharo core. A full chapter is available in the new
>>> book http://rmod.lille.inria.fr/pbe2/. The work includes a complete
>>> removal of FileDirectory. There is a compatibility package to support the
>>> transition. Enjoy the new and clean API.
>>>
>>> * *DateAndTime refactoring.* All the DateAndTime internals are now
>>> UTC-based. This prevents bugs in certain edge-cases where the image is
>>> moved through different time-zones, most prominently for daylight saving
>>> time.
>>>
>>> ==VM==
>>> * Latests cog builds
>>> * SSLPlugin
>>> * FilePlugin enhancements
>>> * SocketPlugin fixes
>>> * Included libraries: freetype2, cairo
>>>
>>> ==Large Cleanups==
>>> * *FileDirectory removal.* FileDirectory the old file system has been
>>> removed. It is packaged as a separate package to support migration to
>>> Pharo2.0.
>>>
>>> * *Deprecation of old serialization framework.* *ReferenceStream* and
>>> *SmartRefStream* are removed. In addition, *DataStream* is cleaned to be
>>> only used by Monticello. For a general purpose serializer, use *[
>>> http://rmod.lille.inria.fr/web/pier/software/Fuel Fuel]* instead.
>>>
>>> * *Large amount of bugs fixes.* You already guessed in addition we
>>> integrated *a lot* of small improvements, cleanups and bug fixes.
>>>
>>> ==Continuous Integration==
>>> * *Zeroconf scripts.* Weren't you fed up not be able to install Pharo
>>> from a single command line or to pass it arguments? Using a nice debugger
>>> and an interactive environment development does not mean that Pharo
>>> developers do not value automatic scripts and love command line. Yes we do
>>> and we want the best of both worlds! Since Pharo 2.0, Pharo supports a way
>>> to define and handle command line argument and offer zero conf scripts. We
>>> even wrote a chapter on them.
>>> Here is a nice start with a zero-conf bash scripts: `wget --quiet -O -
>>> http://files.pharo.org/script/ciPharo20PharoVM.sh | bash`
>>>
>>> * *CI for everything.* A new infrastructure to support continuous
>>> integration is now in place.
>>> * First new images and vms are mirrored under
>>> http://files.pharo.org/
>>> * Second the key parts of pharo are automatically built on [
>>> https://ci.inria.fr/pharo/]
>>> * Third community project can be hosted at [
>>> http://ci.inria.fr/pharo-contribution/]
>>>
>>>
>>>
>>
>
>
> --
>
> ~~Dr. Jannik Laval~~
> École des Mines de Douai
> Enseignant-chercheur
> http://www.jannik-laval.eu
>
> _______________________________________________
> Esug-list mailing list
> Esug-list(a)lists.esug.org
> http://lists.esug.org/mailman/listinfo/esug-list_lists.esug.org
>
>
March 18, 2013
Re: [Esug-list] [Pharo-users] [ANN] Pharo 2.0
by jannik laval
Congrats !
Jannik
2013/3/18 Luc Fabresse <luc.fabresse(a)gmail.com>
>
> THANK you all!
> More or less my feelings:
>
> Luc
>
> 2013/3/18 stephane ducasse <stephane.ducasse(a)free.fr>
>
>> For those of you that want to know a bit more:
>> http://code.google.com/p/pharo/w/edit/ActionsInPharo20
>>
>>
>> Here is a log of all the actions done in 2.0. The idea is not to
>> replicate the bug tracker, as it is easy to get a complete list [
>> http://code.google.com/p/pharo/issues/list?can=1&q=milestone%3D2.0 here].
>> Instead, the idea is to have a list of the major improvements with some
>> explanations.
>>
>> ==UI==
>> We started a long term effort on the Pharo UI.
>>
>> * *Spec: a new way to build UI.* We started to rethink the way we build
>> user interfaces in Pharo. Spec has been developed by Benjamin van Ryseghem
>> under the guidance of Stéphane Ducasse. Spec is based on a declarative
>> syntax to specify user interfaces and on valueHolder port composition. Spec
>> supports widgets definition, reuse and composition. New widgets can be
>> created by composing existing widgets. Many existing tools have been
>> reimplemented using Spec. We wrote a tutorial for Spec. Spec will be used
>> for the UIPainter that we will develop for Pharo 3.0. In Pharo 3.0 we will
>> revisit and improve Spec. One of the idea is that Spec should be
>> independent of Morphic so that we can use it to build native tools or with
>> Amber.
>>
>> * *Widget enhancements.* Several important widgets were greatly
>> enhanced. This effort was led by Benjamin van Ryseghem. For example,
>> multiple selection and single selection lists were unified. A new widget
>> list has been developed from scratch and it exhibits massive speed
>> improvements.
>>
>> * *Layout improvements/cleanups.* We improved the protocol used for
>> creating LayoutFrame. We cleaned its implementation and simplify clients
>> code. Now instance of layoutFrame are systematically well initialized.
>> Clients do not need to check against nil values and a new protocol avoids
>> to be forced to specify rectangle when only one number is required.
>>
>> * *Keybindings.* Keybindings is a new library developed by Guillermo
>> Polito to manage key bindings. We started to use it to define widgets
>> keybinding as well as menu shortcut. In Pharo 3.0 we will systematically
>> rewrite all the hard-coded bindings with it and write a documentation. It
>> supports:
>> * source code navigation
>> * running tests
>> * basic refactoring
>> * creating classes
>> * and many more shortcuts: see "Shortcuts Description" in the window
>> menu (triangle on the top right) in Nautilus
>>
>> * *New icons (famfam).* Pharo now uses new icons. We are looking for
>> designers that could help us to define the UI look of the future Pharo
>> versions.
>>
>> * *"Growl" style notifications.* To avoid to get UI blocked by simple
>> notifications, Pharo now uses a growl like notification systems.
>>
>> * *Revamp progress bar.* We started to rewrite the progress bar
>> framework. We introduced the Job class and notification to specify progress
>> bar.
>>
>> * *Rectangle intersection improvements.* Rectangle intersection is a
>> central part for UI redrawing and invalidating screen regions. Rectangle
>> intersection is then an important functionality. We started to address the
>> problem of the non-specification of the intersection of non overlapping
>> rectangles. We introduced the intersect:ifNone protocol. As a side effect
>> this improves the damage recording mechanisms and provide a faster system.
>>
>> ==Developer tools==
>>
>> * *Nautilus browser.* Nautilus, a new code browser has been developed
>> by B. van Ryseghem. It supports: in place hierarchy, groups, refactorings,
>> multiple views, icon navigation and many other features. Nautilus has a
>> plugin infrastructure so everybody can use existing plugin or write new
>> ones. Nautilus is fully navigable using shortcut. In Pharo 3.0 we plan to
>> rewrite Nautilus using Spec.
>>
>> * *Critics browser.* From Pharo 2.0 on we want to systematically run
>> rule checking rules. We revisited the SmallLint rules to customize them to
>> Pharo and we better documented them. We developed a new browser that will
>> helps you to apply SmallLint rules. In particular it supports the notion of
>> todos. We can mark an issue as a false positive or as todos and get the bar
>> green. We wrote a complete chapter on the Critics Browser. We will start to
>> work on an infrastructure to systematically evaluate SmallLint rules on the
>> projects published in the Pharo distribution.
>>
>> * *Omnipresence of the Refactoring Engine.* We believe that Pharo
>> itself should use the best tools it has to change itself. This is why we
>> decided to introduce the Refactoring Engine and SmallLint rule checkers.
>> Note that this move to integrate extra tool is not against our vision to
>> produce a minimal core. Once we have fast fuel based package loading we
>> will be able to remove Metacello from the core.
>>
>> * *Improved version diff browsing.* We improved the diff and merging
>> tool.
>>
>> * *Spotlight.* Spotlight is a ubiquitous tool to find classes and
>> methods. You can activate it just press shift+enter.
>>
>> * *Revamp E/O Completion and smart chars.* In the past, smart
>> characters (automatically closing parenthesis, single quote...) did not
>> play well with auto completeion. In addition, they were duplicated
>> functionality between two automatic ecompletion algorithms. In Pharo 2.0 we
>> unified the two algorithms under a single umbrella and integrate them
>> smoothly with smart-characters.
>>
>> * *Interactive navigation using "ctrl/cmd+click" over classes/methods.*
>> Now Pharo supports the interactive navigation of source code using
>> cmd/ctrl-click on selectors and class names in the source-code
>> [implementors, senders, users].
>>
>> * *Shout themes.* Several syntax highlighting themes have been defined.
>>
>> * *Andreas profiler.* As a tribute to Andreas Raab, we included an
>> alternate profiler developed by Andreas.
>>
>> ==Networking==
>>
>> * *New version of Zinc.* Zinc is developed by Sven Van Caekenberghe.
>> New versions of Zinc the http client/server library has been integrated.
>>
>> * *Zodiac (SSL).* Zodiac is an extension of Zinc to support SSL
>> connections.
>>
>> ==System==
>>
>> * *System Announcer.* Pharo had a change notification system. A change
>> notification system is important because tools can register to events to
>> update or react without getting coupled with the system. The problem was
>> that the previous change notification broadcasted only symbols and not
>> plain objects. It was limiting the power that we can get about first class
>> objects. In addition not all the events were raised and competing with
>> Announcements (announcements raised plain objects). In Pharo 2.0, we
>> redefined system events as Announcements, introduced a System Announcer
>> whose responsibility is to raise announcement for all the events and
>> removed the old SystemChangeNotifier. This sets up the basis for the future
>> communication between tools.
>>
>> * *RPackage replacing PackageInfo.* PackageInfo is a way to identify if
>> a method belongs to a package. The implementation is based on dynamic
>> queries. Such queries it leads to problems to produce new generation
>> browser and tools. We defined a new implementation of the package
>> management of Pharo. The idea is to represent package as real objects. In
>> Pharo3.0 we will continue to remove the dependency to PackageInfo.
>>
>> * *Manifest: Package metadata.* We introduce the notion of package
>> metadata. Package metadata are used to manage all false positives or
>> todos of SmallLint so that you do not have to check all the time rule
>> results. Each package can now have a class named
>> ManifestNameOfXPackageNameX. It will be the place to add documentation and
>> other information.
>>
>> * *Command line tools / Headless mode.* We really want to make sure
>> that Pharo can be used in non interactive mode and that we can pass scripts
>> to it on the command-line. For this reason we continued to work on making
>> sure that Pharo can be used headless. In particular we introduced a new way
>> to handle command line parameters. See `pharoVM my.image --help` and
>> `pharoVM my.image --list`
>> * st Handle .st source files
>> * Fuel Handle fuel files
>> * config Install and inspect Metacello Configurations from the
>> command line
>> * save Rename the image and changes file
>> * test Run tests from command line
>> * update Load updates
>> * printVersion Print image version
>> * eval Evaluate directly passed-in one line script
>>
>> * *Native boost.* NativeBoost is a library that generates assembly
>> code on the fly. It is used to generate FFI calls. By default [
>> http://www.esug.org/wiki/pier/Conferences/2011/Schedule-And-Talks/Native-bo…] is included mostly for future use. In Pharo3.0 vector graphics
>> will be used and Nativeboost will be used to invoke the graphics primitives.
>>
>> * *Ring metamodel.* Ring is a new meta model introduced in Pharo 1.4.
>> It is used to represent code that is not currently executed. Ring has an
>> API that is polymorphic with a subpart of the core executing entities of
>> Pharo (Class and CompiledMethod). This has the nice property that the tools
>> that manipulate such entities can also manipulate ring objects. Hence Ring
>> supports of image browsing. In Pharo 3.0 we will rewrite certain tools to
>> use ring and deprecate some abstractions like pseudo-classes and file
>> packages.
>>
>>
>> * *Fuel.* Fuel is one of the fastest and versatile object serializer.
>> In Pharo 2.0, we decided to use fuel as a default serializer. In
>> particular, on error the execution stack is saved now in fuel format.
>> Therefore it is possible to reopen a debugger on a similar image for
>> debugging purpose.
>>
>> * *Freetype fonts.* We offer now a better handling of freetype fonts
>> and their management.
>>
>> * *Metacello: a universal package map.* Metacello is a framework to
>> describe is included in the default image. In the future Pharo will be
>> managed by Metacello. The idea also is that once we have fast fuel based
>> package loading we will be able to remove Metacello from the core.
>>
>>
>> ==Kernel==
>>
>> * *New object-oriented and powerful filesystem.* The old library to
>> support file was dated and cumbersome to use. This version of Pharo uses
>> FileSystem a new framework developed by Colin Putney. We revisited and
>> integrated deeply into Pharo core. A full chapter is available in the new
>> book http://rmod.lille.inria.fr/pbe2/. The work includes a complete
>> removal of FileDirectory. There is a compatibility package to support the
>> transition. Enjoy the new and clean API.
>>
>> * *DateAndTime refactoring.* All the DateAndTime internals are now
>> UTC-based. This prevents bugs in certain edge-cases where the image is
>> moved through different time-zones, most prominently for daylight saving
>> time.
>>
>> ==VM==
>> * Latests cog builds
>> * SSLPlugin
>> * FilePlugin enhancements
>> * SocketPlugin fixes
>> * Included libraries: freetype2, cairo
>>
>> ==Large Cleanups==
>> * *FileDirectory removal.* FileDirectory the old file system has been
>> removed. It is packaged as a separate package to support migration to
>> Pharo2.0.
>>
>> * *Deprecation of old serialization framework.* *ReferenceStream* and
>> *SmartRefStream* are removed. In addition, *DataStream* is cleaned to be
>> only used by Monticello. For a general purpose serializer, use *[
>> http://rmod.lille.inria.fr/web/pier/software/Fuel Fuel]* instead.
>>
>> * *Large amount of bugs fixes.* You already guessed in addition we
>> integrated *a lot* of small improvements, cleanups and bug fixes.
>>
>> ==Continuous Integration==
>> * *Zeroconf scripts.* Weren't you fed up not be able to install Pharo
>> from a single command line or to pass it arguments? Using a nice debugger
>> and an interactive environment development does not mean that Pharo
>> developers do not value automatic scripts and love command line. Yes we do
>> and we want the best of both worlds! Since Pharo 2.0, Pharo supports a way
>> to define and handle command line argument and offer zero conf scripts. We
>> even wrote a chapter on them.
>> Here is a nice start with a zero-conf bash scripts: `wget --quiet -O -
>> http://files.pharo.org/script/ciPharo20PharoVM.sh | bash`
>>
>> * *CI for everything.* A new infrastructure to support continuous
>> integration is now in place.
>> * First new images and vms are mirrored under
>> http://files.pharo.org/
>> * Second the key parts of pharo are automatically built on [
>> https://ci.inria.fr/pharo/]
>> * Third community project can be hosted at [
>> http://ci.inria.fr/pharo-contribution/]
>>
>>
>>
>
--
~~Dr. Jannik Laval~~
École des Mines de Douai
Enseignant-chercheur
http://www.jannik-laval.eu
March 18, 2013
Re: [Esug-list] [Pharo-users] [ANN] Pharo 2.0
by Luc Fabresse
THANK you all!
More or less my feelings:
Luc
2013/3/18 stephane ducasse <stephane.ducasse(a)free.fr>
> For those of you that want to know a bit more:
> http://code.google.com/p/pharo/w/edit/ActionsInPharo20
>
>
> Here is a log of all the actions done in 2.0. The idea is not to replicate
> the bug tracker, as it is easy to get a complete list [
> http://code.google.com/p/pharo/issues/list?can=1&q=milestone%3D2.0 here].
> Instead, the idea is to have a list of the major improvements with some
> explanations.
>
> ==UI==
> We started a long term effort on the Pharo UI.
>
> * *Spec: a new way to build UI.* We started to rethink the way we build
> user interfaces in Pharo. Spec has been developed by Benjamin van Ryseghem
> under the guidance of Stéphane Ducasse. Spec is based on a declarative
> syntax to specify user interfaces and on valueHolder port composition. Spec
> supports widgets definition, reuse and composition. New widgets can be
> created by composing existing widgets. Many existing tools have been
> reimplemented using Spec. We wrote a tutorial for Spec. Spec will be used
> for the UIPainter that we will develop for Pharo 3.0. In Pharo 3.0 we will
> revisit and improve Spec. One of the idea is that Spec should be
> independent of Morphic so that we can use it to build native tools or with
> Amber.
>
> * *Widget enhancements.* Several important widgets were greatly
> enhanced. This effort was led by Benjamin van Ryseghem. For example,
> multiple selection and single selection lists were unified. A new widget
> list has been developed from scratch and it exhibits massive speed
> improvements.
>
> * *Layout improvements/cleanups.* We improved the protocol used for
> creating LayoutFrame. We cleaned its implementation and simplify clients
> code. Now instance of layoutFrame are systematically well initialized.
> Clients do not need to check against nil values and a new protocol avoids
> to be forced to specify rectangle when only one number is required.
>
> * *Keybindings.* Keybindings is a new library developed by Guillermo
> Polito to manage key bindings. We started to use it to define widgets
> keybinding as well as menu shortcut. In Pharo 3.0 we will systematically
> rewrite all the hard-coded bindings with it and write a documentation. It
> supports:
> * source code navigation
> * running tests
> * basic refactoring
> * creating classes
> * and many more shortcuts: see "Shortcuts Description" in the window
> menu (triangle on the top right) in Nautilus
>
> * *New icons (famfam).* Pharo now uses new icons. We are looking for
> designers that could help us to define the UI look of the future Pharo
> versions.
>
> * *"Growl" style notifications.* To avoid to get UI blocked by simple
> notifications, Pharo now uses a growl like notification systems.
>
> * *Revamp progress bar.* We started to rewrite the progress bar
> framework. We introduced the Job class and notification to specify progress
> bar.
>
> * *Rectangle intersection improvements.* Rectangle intersection is a
> central part for UI redrawing and invalidating screen regions. Rectangle
> intersection is then an important functionality. We started to address the
> problem of the non-specification of the intersection of non overlapping
> rectangles. We introduced the intersect:ifNone protocol. As a side effect
> this improves the damage recording mechanisms and provide a faster system.
>
> ==Developer tools==
>
> * *Nautilus browser.* Nautilus, a new code browser has been developed
> by B. van Ryseghem. It supports: in place hierarchy, groups, refactorings,
> multiple views, icon navigation and many other features. Nautilus has a
> plugin infrastructure so everybody can use existing plugin or write new
> ones. Nautilus is fully navigable using shortcut. In Pharo 3.0 we plan to
> rewrite Nautilus using Spec.
>
> * *Critics browser.* From Pharo 2.0 on we want to systematically run
> rule checking rules. We revisited the SmallLint rules to customize them to
> Pharo and we better documented them. We developed a new browser that will
> helps you to apply SmallLint rules. In particular it supports the notion of
> todos. We can mark an issue as a false positive or as todos and get the bar
> green. We wrote a complete chapter on the Critics Browser. We will start to
> work on an infrastructure to systematically evaluate SmallLint rules on the
> projects published in the Pharo distribution.
>
> * *Omnipresence of the Refactoring Engine.* We believe that Pharo
> itself should use the best tools it has to change itself. This is why we
> decided to introduce the Refactoring Engine and SmallLint rule checkers.
> Note that this move to integrate extra tool is not against our vision to
> produce a minimal core. Once we have fast fuel based package loading we
> will be able to remove Metacello from the core.
>
> * *Improved version diff browsing.* We improved the diff and merging
> tool.
>
> * *Spotlight.* Spotlight is a ubiquitous tool to find classes and
> methods. You can activate it just press shift+enter.
>
> * *Revamp E/O Completion and smart chars.* In the past, smart characters
> (automatically closing parenthesis, single quote...) did not play well with
> auto completeion. In addition, they were duplicated functionality between
> two automatic ecompletion algorithms. In Pharo 2.0 we unified the two
> algorithms under a single umbrella and integrate them smoothly with
> smart-characters.
>
> * *Interactive navigation using "ctrl/cmd+click" over classes/methods.*
> Now Pharo supports the interactive navigation of source code using
> cmd/ctrl-click on selectors and class names in the source-code
> [implementors, senders, users].
>
> * *Shout themes.* Several syntax highlighting themes have been defined.
>
> * *Andreas profiler.* As a tribute to Andreas Raab, we included an
> alternate profiler developed by Andreas.
>
> ==Networking==
>
> * *New version of Zinc.* Zinc is developed by Sven Van Caekenberghe.
> New versions of Zinc the http client/server library has been integrated.
>
> * *Zodiac (SSL).* Zodiac is an extension of Zinc to support SSL
> connections.
>
> ==System==
>
> * *System Announcer.* Pharo had a change notification system. A change
> notification system is important because tools can register to events to
> update or react without getting coupled with the system. The problem was
> that the previous change notification broadcasted only symbols and not
> plain objects. It was limiting the power that we can get about first class
> objects. In addition not all the events were raised and competing with
> Announcements (announcements raised plain objects). In Pharo 2.0, we
> redefined system events as Announcements, introduced a System Announcer
> whose responsibility is to raise announcement for all the events and
> removed the old SystemChangeNotifier. This sets up the basis for the future
> communication between tools.
>
> * *RPackage replacing PackageInfo.* PackageInfo is a way to identify if
> a method belongs to a package. The implementation is based on dynamic
> queries. Such queries it leads to problems to produce new generation
> browser and tools. We defined a new implementation of the package
> management of Pharo. The idea is to represent package as real objects. In
> Pharo3.0 we will continue to remove the dependency to PackageInfo.
>
> * *Manifest: Package metadata.* We introduce the notion of package
> metadata. Package metadata are used to manage all false positives or
> todos of SmallLint so that you do not have to check all the time rule
> results. Each package can now have a class named
> ManifestNameOfXPackageNameX. It will be the place to add documentation and
> other information.
>
> * *Command line tools / Headless mode.* We really want to make sure that
> Pharo can be used in non interactive mode and that we can pass scripts to
> it on the command-line. For this reason we continued to work on making sure
> that Pharo can be used headless. In particular we introduced a new way to
> handle command line parameters. See `pharoVM my.image --help` and `pharoVM
> my.image --list`
> * st Handle .st source files
> * Fuel Handle fuel files
> * config Install and inspect Metacello Configurations from the command
> line
> * save Rename the image and changes file
> * test Run tests from command line
> * update Load updates
> * printVersion Print image version
> * eval Evaluate directly passed-in one line script
>
> * *Native boost.* NativeBoost is a library that generates assembly
> code on the fly. It is used to generate FFI calls. By default [
> http://www.esug.org/wiki/pier/Conferences/2011/Schedule-And-Talks/Native-bo…] is included mostly for future use. In Pharo3.0 vector graphics
> will be used and Nativeboost will be used to invoke the graphics primitives.
>
> * *Ring metamodel.* Ring is a new meta model introduced in Pharo 1.4. It
> is used to represent code that is not currently executed. Ring has an API
> that is polymorphic with a subpart of the core executing entities of Pharo
> (Class and CompiledMethod). This has the nice property that the tools that
> manipulate such entities can also manipulate ring objects. Hence Ring
> supports of image browsing. In Pharo 3.0 we will rewrite certain tools to
> use ring and deprecate some abstractions like pseudo-classes and file
> packages.
>
>
> * *Fuel.* Fuel is one of the fastest and versatile object serializer. In
> Pharo 2.0, we decided to use fuel as a default serializer. In particular,
> on error the execution stack is saved now in fuel format. Therefore it is
> possible to reopen a debugger on a similar image for debugging purpose.
>
> * *Freetype fonts.* We offer now a better handling of freetype fonts and
> their management.
>
> * *Metacello: a universal package map.* Metacello is a framework to
> describe is included in the default image. In the future Pharo will be
> managed by Metacello. The idea also is that once we have fast fuel based
> package loading we will be able to remove Metacello from the core.
>
>
> ==Kernel==
>
> * *New object-oriented and powerful filesystem.* The old library to
> support file was dated and cumbersome to use. This version of Pharo uses
> FileSystem a new framework developed by Colin Putney. We revisited and
> integrated deeply into Pharo core. A full chapter is available in the new
> book http://rmod.lille.inria.fr/pbe2/. The work includes a complete
> removal of FileDirectory. There is a compatibility package to support the
> transition. Enjoy the new and clean API.
>
> * *DateAndTime refactoring.* All the DateAndTime internals are now
> UTC-based. This prevents bugs in certain edge-cases where the image is
> moved through different time-zones, most prominently for daylight saving
> time.
>
> ==VM==
> * Latests cog builds
> * SSLPlugin
> * FilePlugin enhancements
> * SocketPlugin fixes
> * Included libraries: freetype2, cairo
>
> ==Large Cleanups==
> * *FileDirectory removal.* FileDirectory the old file system has been
> removed. It is packaged as a separate package to support migration to
> Pharo2.0.
>
> * *Deprecation of old serialization framework.* *ReferenceStream* and
> *SmartRefStream* are removed. In addition, *DataStream* is cleaned to be
> only used by Monticello. For a general purpose serializer, use *[
> http://rmod.lille.inria.fr/web/pier/software/Fuel Fuel]* instead.
>
> * *Large amount of bugs fixes.* You already guessed in addition we
> integrated *a lot* of small improvements, cleanups and bug fixes.
>
> ==Continuous Integration==
> * *Zeroconf scripts.* Weren't you fed up not be able to install Pharo
> from a single command line or to pass it arguments? Using a nice debugger
> and an interactive environment development does not mean that Pharo
> developers do not value automatic scripts and love command line. Yes we do
> and we want the best of both worlds! Since Pharo 2.0, Pharo supports a way
> to define and handle command line argument and offer zero conf scripts. We
> even wrote a chapter on them.
> Here is a nice start with a zero-conf bash scripts: `wget --quiet -O -
> http://files.pharo.org/script/ciPharo20PharoVM.sh | bash`
>
> * *CI for everything.* A new infrastructure to support continuous
> integration is now in place.
> * First new images and vms are mirrored under
> http://files.pharo.org/
> * Second the key parts of pharo are automatically built on [
> https://ci.inria.fr/pharo/]
> * Third community project can be hosted at [
> http://ci.inria.fr/pharo-contribution/]
>
>
>
March 18, 2013
[ANN] Pharo 2.0
by Marcus Denker
We are proud to announce the release of Pharo 2.0!
You can find information about Pharo at: http://www.pharo-project.org
About this release
------------------
All in all, there were over 1600 issues treated in the issue tracker
and 1350 improvements integrated into 2.0.
http://code.google.com/p/pharo/issues/list?can=1&q=Milestone%3D2.0+status%3…
Read it again, yes 1350 is huge, take two minutes and have a look at the list of
improvements! Now you got the feel of the effort. And this was a true community
effort. It is possible because people worldwide helped! We want to deeply thank them.
We want to thank Inria for its constant support, in particular for the salary of Igor
Stasenko and Esteban Lorenzano, and for the help in the infrastructure.
We have accomplished this huge task for a better system because we were together. Do not
forget that we are working on a consortium to support our system:
- http://consortium.pharo.org (for companies and organizations)
- http://association.pharo.org (for individuals)
Our goal is to build a system so that we can make a living with our creativity and
programming skills.
You can find information about Pharo on http://www.pharo-project.org. In particular,
you may be interested in:
- Joining us and getting help http://www.pharo-project.org/community
- Getting the Pharo By Example book (available as a free PDF): http://www.pharobyexample.org
- Watching the screencasts http://www.pharocasts.com
- Reporting problems http://www.pharo-project.org/community/issue-tracking
- Reading the forth coming book http://rmod.lille.inria.fr/pbe2
- Reading the Pharo vision document http://bit.ly/HNkEru
Thanks a lot for your participation, energy and fun.
-- The Pharo Team
Summarized issues for 2.0
==================
UI
---
- Spec
- Widget enhancements
- Layout improvements/cleanups
- Keybindings
- New icons (famfam)
- Growl style notifications
- Revamp progress bar
Developer tools
---------------
- Nautilus browser
- Critics browser
- Improved version diff browsing
- Spotlight
- Revamp Code Completion and smart chars
- Interactive navigation using ctrl/cmd+click over classes/methods
- Shout themes
- Andreas profiler
Networking
-----------
- Update Zinc
- Zodiac (SSL)
System
-------
- System Announcer
- RPackage replacing PackageInfo
- Command line tools / Headless mode
- Native boost
- Update Ring metamodel
- Fuel serializer
- Freetype fonts
Kernel
------
- DateAndTime refactoring
- Updated FileSystem and replaced FileDirectory
VM
--
- Latests cog builds
- SSLPlugin
- FilePlugin enhancements
- SocketPlugin fixes
- Included libraries: freetype2, cairo
Cleanups
-------------
- FileDirectory removed (replaced by FileSystem)
- SmartRefStream and ReferenceStream removed (replaced by Fuel)
- PackageInfo deprecated (replaced by RPackage)
Other
-------
- Zeroconf scripts
- Continuous Integration for every aspect of our release process.
Not all the changes are reported here, but this is to give you an impression,
you can find better explanation here: https://code.google.com/p/pharo/wiki/ActionsInPharo20
March 18, 2013
pharoconf | mooseday | 2013 - call for participation
by Tudor Girba
(please distribute)
We are happy to invite you to the PharoConf | MooseDay | 2013:
http://scg.unibe.ch/wiki/events/pharoconf-mooseday-2013
The conference will take place at the University of Bern during April 2-4:
- PharoConf (April 2,3)
- MooseDay (April 4)
The conference will be free and will even include a free lunch. Yes, free lunch. No trick.
We only kindly ask you to register online for each event as soon as possible.
STUDENT SPONSORSHIPS:
ESUG will sponsor the travel of up to 10 students with 150 EUR / person.
Please apply for sponsorship by mail at esug-info(a)esug.org. First-come, first-served.
The conference sponsors will sponsor the travel of up to 10 students with up to 200 CHF / person.
Please apply for sponsorship before the conference by mail at tudor(a)tudorgirba.com. First-come, first-served.
IMPORTANT
If you are a student, please bring your student cards with you to help us limit the lunch costs.
Cheers,
The organizers
March 17, 2013
[ANN] Amber 0.10 released!
by Nicolas Petton
After a bit more than one year we have finally put together a new release of Amber - the web developer's best friend:
http://www.amber-lang.net
Yeah, we know, too long time for a release cycle, but we think you will like this release!
First - let's run the numbers - since the 0.9.1 release there have been over 850 commits (compared to 250 for 0.9.1). We have closed 364 issues and added 150 new unit tests bringing us to 271 in total. All classes in the kernel now have comments and there are Travis jobs to keep us all in line. Forks on github have gone up from 43 to 83 with 365 followers. Phew.
And what goodies does this give us?
Well, first Nicolas got carried away with compiler technology (must have read a book or something) and added a whole new Super Duper compiler tool chain providing both an AST with annotations and an Intermediate Representation layer (IR) enabling semantic analysis and easier optimizations, a better inlining mechanism, support for block contexts (whoa!) and an AST interpreter to round it off.
Wait a minute, what? An interpreter? Why on earth would we want a... oh. To be able to implement a full stepping debugger of course (coming in 1.0). Baddabing!
Just the new compiler tool chain would have been enough for a release, but since Nicolas is not the only Elf in Amber land this release also includes SUnit improvements and cleanup with support for async assertions, a new build system based on gruntjs replacing the old makefiles (seems slicker in the land of JS), an improved ClassBuilder with better class migration support and a new amberc compiler written in Amber instead of that ghastly bash script... (deep breath) ...and an improved loader to be able to use 3rd party packages, improved kernel classes, and updated documentation.
And we also split the github repo into three separate repos - Amber itself, the examples and the website - and yeah, the website got a new look.
...and a whole new IDE is brewing called Helios (in the helios branch). But nah, sorry, Helios will land in 1.0. :)
We hope you join us in developing Amber and having fun! Fork at github, join in #amber-lang on freenode and hop onto the mailing list.
/the Amber crew
March 13, 2013
Squeak Community Hangout today
by Bert Freudenberg
If you want to chat with other Squeakers, feel free to drop by on
https://plus.google.com/u/0/events/csf1f4prqs0s40o64avo9b9808g
- Bert -
March 11, 2013
Re: [Esug-list] GSoC13: Google Summer of Code started, your ideas please!
by Janko Mivšek
Hi Joachim,
Dne 09. 03. 2013 19:50, piše jtuchel:
> What about young blood for the cypress project? I still dream of a day when
> we keep our Smalltalk sources in every man's repository like GIT or SVN?
>
> More info is here: https://github.com/CampSmalltalk/Cypress/wiki
Good idea, the GitHub integration is something worth advancing further,
even in parallel to SmalltalkHub, Or together?
Let we therefore put this idea in the idea template:
Level: (beginner, intermediate, advanced)
Possible mentor:
Possible second mentor:
Description
Technical Details
Benefits to the Student
Benefits to the Community
Mentors can be assigned later, let we fulfill other sections first.
Best regards
Janko
--
Janko Mivšek
Aida/Web
Smalltalk Web Application Server
http://www.aidaweb.si
March 10, 2013
Re: [Esug-list] GSoC13: Google Summer of Code started, your ideas please!
by Janko Mivšek
Good ideas Denis! Amber from Pharo is certainly something I'd like to
see. And image based persistence improvements, maybe something like log
of changes to recover after the crash. What do you mean by next gen dev
env? And by knowledge mgmt?
Can you try to develop them further, probably under this template:
Level: (beginner, intermediate, advanced)
Possible mentor: (can be assigned later)
Possible second mentor: (can be assigned later)
Description
Technical Details
Benefits to the Student
Benefits to the Community
Janko
Dne 09. 03. 2013 18:36, piše Dennis Schetinin:
> Tools for developing Amber web clients from Pharo.
>
> New generation of Smalltalk development environment.
>
> Knowledge management.
>
> Developing new tools for TDD.
>
> Improve Smalltalk built-in image persistence, change management etc.
>
> --
>
> Best regards,
>
> Dennis Schetinin
>
>
>
> 2013/3/9 Janko Mivšek <janko.mivsek(a)eranova.si
> <mailto:janko.mivsek@eranova.si>>
>
> Dear Smalltalkers,
>
> Time for your cool project ideas on this year Smalltalk GSoC!
>
> For now just express any idea you have here on the mailing list. Later
> we will together develop it to be in complete format together with two
> mentors needed. Deadline is end of Mart, so we have three weeks of time.
> To see how fully developed ideas look like please look at 2012 ones at:
> http://gsoc2012.esug.org/ideas.
>
> Note also that students yourselves can propose a GSoC project. So if you
> like to be a student on this year GSoC and have a nice idea, don't be
> shy and propose it here! The community will listen you and guide to the
> really nicely proposed project. Last year 6 student proposed projects
> were accepted and finished successfully!
>
> For the community, start looking around for students. Think about how to
> approach the universities near by you, do you know who to contact
> there, etc.
>
> We are namely preparing an application to this year Smalltalk Google
> Summer of Code under ESUG umbrella, as last year. If accepted, Google
> will pay few stipendiums to students on our Smalltalk projects.
>
> More on our special Smalltalk GSoC 2013 website:
>
> http://gsoc2013.esug.org
>
> I'm specially inviting mentors of all past GSoCs to rejoin the mentors
> mailing list, where we discuss all details about this year GSoC:
>
> http://groups.google.com/group/smalltalk-gsoc-mentors
>
> While students interested on GSoC please join a special Smalltalk GSoC
> mailing list for you:
>
> http://groups.google.com/group/smalltalk-gsoc-students
>
> Best regards
> Janko
>
>
> --
> Janko Mivšek
> Smalltalk GSoC Admin Team
> http://gsoc2013.esug.org
>
> _______________________________________________
> Esug-list mailing list
> Esug-list(a)lists.esug.org <mailto:Esug-list@lists.esug.org>
> http://lists.esug.org/mailman/listinfo/esug-list_lists.esug.org
>
>
--
Janko Mivšek
Aida/Web
Smalltalk Web Application Server
http://www.aidaweb.si
March 10, 2013
Re: [Esug-list] GSoC13: Google Summer of Code started, your ideas please!
by jtuchel
What about young blood for the cypress project? I still dream of a day when
we keep our Smalltalk sources in every man's repository like GIT or SVN?
More info is here: https://github.com/CampSmalltalk/Cypress/wiki
Joachim
--
View this message in context: http://forum.world.st/GSoC13-Google-Summer-of-Code-started-your-ideas-pleas…
Sent from the ESUG mailing list archive at Nabble.com.
March 9, 2013