Re: [Pharo-dev] Pratt Parsers for PetitParser

2015-06-11 Thread Camille

 On 11 Jun 2015, at 09:30, Jan Kurš k...@iam.unibe.ch wrote:
 
 That sounds really cool and useful extension.
 
Thank you Jan!
 Regarding the furthest failure, the core of the problem is the distinction 
 between an error and a failure. Error reports on a problem in the input, 
 while failure is information for choice parser combinator. In general, the 
 furthest failure is a better approximation of an error than the last failure, 
 so we use it.
 
 I am not sure what exactly is the problem in case of PrattParser. I guess the 
 last failure gives better results for a user?
 
Yes, with furthest failure I get errors from tokenization instead of my errors. 
For exemple with the calculator grammar I gave in my first mail when I parse 
‘1+’ the furthestFailure is ‘$- expected at 2’ whereas I return ‘expression 
expected at 2’ because there's a whole expression missing. Same thing with 
‘(1+2’ that returns ‘digit expected at 4’ instead of ‘$) expected at 4’.

But furthest failure gives wrong messages in other cases to. 
Consider this sequence parser:

keyword := #letter asParser plus , $: asParser.
keyword parse: ‘foo'

This returns 'letter expected at 3’, but no matter how many letters I add to 
the end I’ll still get ‘letter expected’. 
I want to get what is really missing: '$: expected at 3’.
Maybe returning the “latest furthest failure” instead of the “first furthest 
failure” could solves the problem here (i.e. replacing  with = in 
PPContext#noteFailure:)?
 One has to consider a pratt parser included in the normal parser, e. g. 
 Expressions parsed by pratt in a Java Grammar. Depending where an error 
 occurs, different strategy for choosing the proper failure is necessary :-/
 
Indeed, my hack (redefining #parseWithContext:) works only when the Pratt 
parser is the top parser, but a soon as I compose it I’m screwed because only 
parseOn: is sent to the Pratt parser.
That’s why I wonder if letting the parser decide what to return wouldn’t solve 
the problem: by default the furthest failure but special parsers can still 
decide.
 Regarding tokenization, there is a message token, that returns PPTokenParser, 
 which transforms a parsed input into the PPToken object. Perhaps this might 
 be helpful?
 
The Pratt tokens are special: a token points back to the parser that generated 
it (its “kind”).
PPTokenKind subclasses PPFlatteningParser and generates instances of 
PPPrattToken.
A PPTokenKind stores the precedence, the action to be executed when a token of 
this kind is met at the start of an expression (for terminals and prefixes) and 
the action to be executed when a token is met in the middle of an expression 
(for postfixes and infixes).

Cheers,
Camille
 Cheers Jan
 
 
 On Wed, Jun 10, 2015, 20:52 Richard Sargent 
 richard.sarg...@gemtalksystems.com 
 mailto:richard.sarg...@gemtalksystems.com wrote:
 camille teruel wrote
  On 10 Jun 2015, at 19:11, Chris Cunningham lt;
 
  cunningham.cb@
 
  gt; wrote:
 
  Inteteresting
 
  On Wed, Jun 10, 2015 at 9:36 AM, Camille lt;
 
  camille.teruel@
 
   lt;mailto:
 
  camille.teruel@
 
  gt; wrote:
  Hello Pharoers and Moosers,
 
  I did a Pratt parser extension for PetitParser.
 
 
  snip
 
  @PP Devs:
  I had trouble with the PPContext furthestFailure that is taken into
  account instead of the failures I return, so I had to redefine
  #parseWithContext: to return the failures I want. The results given by
  furthestFailure were not very meaningful in my case (the same is true for
  PPExpressionParser btw).
  But I guess it was introduced because it gives good results in other
  cases.
  So would it be possible to change this behavior to let the parser decide
  if it returns the furthestFailure or the original failure?
 
  The intent behind the furthestFailure is that it give the failure that
  gets the furthest into the source stream.  It is most useful when there
  are embedded choice operators in the parser - the original/pre furthest
  behaviour would return the last failure, which depending on the incoming
  stream and the order of the choice options could be significantly not
  useful.
 
  I ran into this when working with the sql parser, which started off with
  the outer choice of (by memory):
 ^ selectStatement / insertStatement / updateStatement /
  deleteStatement
  If I was trying to part a select statement that had an error at the very
  end of the statement, the parser would return an error talking about how
  the incoming stream failed in deleteStatement.  Not useful.
 
  I would be saddened if this further failure was not available.
 
  Yes in that case returning the furthest failure gives better results.
  However, this don’t give meaningful messages in all cases.
  For exemple with the calculator I gave in my previous message, if I parse
  ‘1+’ I want to get ‘expression expected at: 2’ but instead it returns ‘$-
  expected at 2'.
  I’m not proposing to remove this feature but to let parsers decide to use
  it or not.
  Something like 

Re: [Pharo-dev] New Tool: Catalog Browser in Pharo 5.0

2015-06-11 Thread Torsten Bergmann
Esteban wrote:
  If you want to contribute just tell Esteban so he can add you to the 
  project.
 well no… I just made it public access, so anyone can commit changes there… :)
 (And I will move it to PharoExtras team soon, that’s the correct place once 
 integrated in image… but well… time is tyrant :P)

I moved it to PharoExtras, MCZs are copied and config adopted (with a new 
version 0.5):

http://smalltalkhub.com/#!/~PharoExtras/CatalogBrowser/

This is tracked for integration in:

https://pharo.fogbugz.com/f/cases/15744/CatalogBrowser-moved-to-PharoExtras

BTW: IMHO we can close https://pharo.fogbugz.com/f/cases/15703/

Thanks
T.



[Pharo-dev] [pharo-project/pharo-core] eadef9: 50105

2015-06-11 Thread GitHub
  Branch: refs/heads/5.0
  Home:   https://github.com/pharo-project/pharo-core
  Commit: eadef90589fff2e2b12c6773b0a0acc98cf97b08
  
https://github.com/pharo-project/pharo-core/commit/eadef90589fff2e2b12c6773b0a0acc98cf97b08
  Author: Jenkins Build Server bo...@pharo-project.org
  Date:   2015-06-11 (Thu, 11 Jun 2015)

  Changed paths:
M ConfigurationOfCatalog.package/ConfigurationOfCatalog.class/README.md
A 
ConfigurationOfCatalog.package/ConfigurationOfCatalog.class/instance/baselines/baseline05_.st
A 
ConfigurationOfCatalog.package/ConfigurationOfCatalog.class/instance/baselines/baseline06_.st
M 
ConfigurationOfCatalog.package/ConfigurationOfCatalog.class/instance/symbolic 
versions/development_.st
M 
ConfigurationOfCatalog.package/ConfigurationOfCatalog.class/instance/symbolic 
versions/stable_.st
A 
ConfigurationOfCatalog.package/ConfigurationOfCatalog.class/instance/versions/version05_.st
M NautilusRefactoring.package/ChangesBrowser.class/definition.st
A 
NautilusRefactoring.package/ChangesBrowser.class/instance/accessing/changes_.st
A 
NautilusRefactoring.package/ChangesBrowser.class/instance/accessing/pickedChanges.st
R 
NautilusRefactoring.package/ChangesBrowser.class/instance/api/buildDiffFor_.st
R NautilusRefactoring.package/ChangesBrowser.class/instance/api/change_.st
A 
NautilusRefactoring.package/ChangesBrowser.class/instance/private/buildDiffFor_.st
R 
NautilusRefactoring.package/ChangesBrowser.class/instance/private/changes_.st
R 
NautilusRefactoring.package/ChangesBrowser.class/instance/private/pickedChanges.st
M 
NautilusRefactoring.package/ChangesBrowser.class/instance/private/updateChanges.st
R 
RPackage-Core.package/RPackage.class/instance/accessing/removeDefinedMethod_forClass_.st
R RPackage-Core.package/RPackage.class/instance/system 
compatibility/includesMethodReference_.st
A RPackage-Core.package/RPackageOrganizer.class/class/class 
initialization/registerInterestToSystemAnnouncement.st
A RPackage-Core.package/RPackageOrganizer.class/class/class 
initialization/unregisterInterestToSystemAnnouncement.st
A 
RPackage-Core.package/RPackageOrganizer.class/class/private/methodAdded_.st
A 
RPackage-Core.package/RPackageOrganizer.class/class/quieries/isPackageDefinedForClass_.st
R RPackage-Core.package/RPackageSet.class/instance/system 
compatibility/includesMethodReference_.st
A 
RPackage-Core.package/extension/MCPackage/instance/correspondingRPackage.st
A 
RPackage-Core.package/extension/MCPackageManager/class/unregisterForNotifications.st
A RPackage-Core.package/extension/String/instance/asPackage.st
A RPackage-Core.package/extension/String/instance/asPackageIfAbsent_.st
R RPackage-SystemIntegration.package/ClassRepackaged.class/README.md
R RPackage-SystemIntegration.package/ClassRepackaged.class/class/instance 
creation/classRepackaged_oldPackage_newPackage_.st
R RPackage-SystemIntegration.package/ClassRepackaged.class/definition.st
R 
RPackage-SystemIntegration.package/ClassRepackaged.class/instance/accessing/classRepackaged.st
R 
RPackage-SystemIntegration.package/ClassRepackaged.class/instance/accessing/classRepackaged_.st
R 
RPackage-SystemIntegration.package/ClassRepackaged.class/instance/accessing/newPackage.st
R 
RPackage-SystemIntegration.package/ClassRepackaged.class/instance/accessing/newPackage_.st
R 
RPackage-SystemIntegration.package/ClassRepackaged.class/instance/accessing/oldPackage.st
R 
RPackage-SystemIntegration.package/ClassRepackaged.class/instance/accessing/oldPackage_.st
R RPackage-SystemIntegration.package/MethodRepackaged.class/README.md
R RPackage-SystemIntegration.package/MethodRepackaged.class/class/instance 
creation/methodRepackaged_oldPackage_newPackage_.st
R RPackage-SystemIntegration.package/MethodRepackaged.class/definition.st
R 
RPackage-SystemIntegration.package/MethodRepackaged.class/instance/accessing/methodRepackaged.st
R 
RPackage-SystemIntegration.package/MethodRepackaged.class/instance/accessing/methodRepackaged_.st
R 
RPackage-SystemIntegration.package/MethodRepackaged.class/instance/accessing/newPackage.st
R 
RPackage-SystemIntegration.package/MethodRepackaged.class/instance/accessing/newPackage_.st
R 
RPackage-SystemIntegration.package/MethodRepackaged.class/instance/accessing/oldPackage.st
R 
RPackage-SystemIntegration.package/MethodRepackaged.class/instance/accessing/oldPackage_.st
R RPackage-SystemIntegration.package/PackageChecker.class/README.md
R RPackage-SystemIntegration.package/PackageChecker.class/definition.st
R 
RPackage-SystemIntegration.package/PackageChecker.class/instance/check/check.st
R 
RPackage-SystemIntegration.package/extension/MCPackage/instance/correspondingRPackage.st
R 
RPackage-SystemIntegration.package/extension/MCPackageManager/class/unregisterForNotifications.st
R 

[Pharo-dev] [pharo-project/pharo-core]

2015-06-11 Thread GitHub
  Branch: refs/tags/50105
  Home:   https://github.com/pharo-project/pharo-core


Re: [Pharo-dev] New Tool: Catalog Browser in Pharo 5.0

2015-06-11 Thread Esteban Lorenzano
Hi,

 On 11 Jun 2015, at 08:55, Torsten Bergmann asta...@gmx.de wrote:
 
 Hi,
 
 maybe you already noticed. The latest update for Pharo 5 which is 50103 (see 
 [1]).
 includes a new tool called Catalog Browser. 
 
 Where to go
 ===
 
 You will find it under Tools - Catalog Browser and it will display the
 configs together with the catalog metadata like project description.

this is the most important, so people can actually know what a project is about 
:)
but of course, that depends on you providing information in catalog methods!

 
 The code is managed with a configuration similar to what we have for
 a few other packages/projects. The tool was written by Esteban Lorenzano with 
 small 
 improvements like spotter integration from my side. Feel free to contribute 
 more features.
 
 The repository can be found on SmalltalkHub [2].
 
 This new tool basically gives you access to all available configurations
 aggregated at [3]. You can use a small UI to search and load the configs
 (see world menu - Tools - Catalog Browser.
 
 But you can also use Spotter to load a config. 
 
 Example on how to load ScriptManager config: 
 
 - open Spotter (SHIFT + ENTER on Windows, ...)
 - type in Script and you will find a spotter category Catalog Projects 
 with ScriptManager in it
 - just hit enter and the config is loaded
 
 Same for all others, so try with Seaside, MongoTalk, ...
 
 In the short/mid-term this new tool should replace the existing config 
 browser as it
 gives more informations about the projects.   
 
 What to do next:
 
 - give feedback
 - we should update all our configs with catalog descriptions
please, this is vital to have a good entry point to your projects. 

 - it would be nice if the spotter integration would include also a preview of 
 the project
  description
+1

 - ...
 
 If you want to contribute just tell Esteban so he can add you to the project.
well no… I just made it public access, so anyone can commit changes there… :)
(And I will move it to PharoExtras team soon, that’s the correct place once 
integrated in image… but well… time is tyrant :P)

Esteban

ps: Thanks Torsten to look at it!

 
 Thanks
 Esteban  Torsten
 
 [1] 
 http://lists.pharo.org/pipermail/pharo-dev_lists.pharo.org/2015-June/110964.html
 [2] http://www.smalltalkhub.com/#!/~estebanlm/CatalogBrowser
 [3] http://catalog.pharo.org/catalog/jsoncatalogBrowser.png




Re: [Pharo-dev] New Tool: Catalog Browser in Pharo 5.0

2015-06-11 Thread Ben Coman
On Thu, Jun 11, 2015 at 2:55 PM, Torsten Bergmann asta...@gmx.de wrote:
 Hi,

 maybe you already noticed. The latest update for Pharo 5 which is 50103 (see 
 [1]).
 includes a new tool called Catalog Browser.

 Where to go
 ===

 You will find it under Tools - Catalog Browser and it will display the
 configs together with the catalog metadata like project description.

 The code is managed with a configuration similar to what we have for
 a few other packages/projects. The tool was written by Esteban Lorenzano with 
 small
 improvements like spotter integration from my side. Feel free to contribute 
 more features.

 The repository can be found on SmalltalkHub [2].

 This new tool basically gives you access to all available configurations
 aggregated at [3]. You can use a small UI to search and load the configs
 (see world menu - Tools - Catalog Browser.

 But you can also use Spotter to load a config.

 Example on how to load ScriptManager config:
 
  - open Spotter (SHIFT + ENTER on Windows, ...)
  - type in Script and you will find a spotter category Catalog Projects 
 with ScriptManager in it
  - just hit enter and the config is loaded

Just had a quick try.  Its nice to get descriptions, like for
TaskIT.  However I think there should be a confirmation dialog
before actually loading a Configuration, which is a potentially
destructive/undoable action.  Its too easy that habits pressing
enter for other functions assert themselves and load a configuration
accidentally.   Perhaps an alternative is to open a window with more
information from the other fields of the catalog that has a button to
load the Configuration.



 Same for all others, so try with Seaside, MongoTalk, ...

 In the short/mid-term this new tool should replace the existing config 
 browser as it
 gives more informations about the projects.

I don't think its a total replacement for the Configuration Browser.
The new function suits the case of searching for a configuration you
already know about, bu tmany times I like catalog browsers when I'm
not searching for something. That is, when I don't know what is there
and I'm  *browsing*.  Indeed, if you are searching for a particular
configuration then you probably already know what it is and the
additional info is then not needed.
cheers -ben


 What to do next:
 
 - give feedback
 - we should update all our configs with catalog descriptions
 - it would be nice if the spotter integration would include also a preview of 
 the project
   description
 - ...

 If you want to contribute just tell Esteban so he can add you to the project.

 Thanks
 Esteban  Torsten

 [1] 
 http://lists.pharo.org/pipermail/pharo-dev_lists.pharo.org/2015-June/110964.html
 [2] http://www.smalltalkhub.com/#!/~estebanlm/CatalogBrowser
 [3] http://catalog.pharo.org/catalog/json



Re: [Pharo-dev] Probably Metacello sucks…

2015-06-11 Thread Stephan Eggermont

On 11/06/15 07:52, Yuriy Tymchuk wrote:

Once Stef mentioned that there is some project for dependency checking. What 
was it? Maybe we can use that?


What I've done is get all latest versions out of smalltalkhub and 
collect the signatures that are used. That can provide upper and lower

limits of possible versions.

Stephan





Re: [Pharo-dev] Pharo 4, format on accept/display

2015-06-11 Thread Paul DeBruicker
The 'fix' for Pharo40 is in the Pharo40Inbox as Slice-14387.

It formats code on accept and/or display using the RBConfigurableFormatter.



Marcus Denker-4 wrote
 On 11 Jun 2015, at 08:16, Peter Uhnák lt;

 i.uhnak@

 gt; wrote:
 
 If my understanding of Pharo's release management is correct, then no new
 features are added after a release, only bugfixes.
 
 
 Yes, but we do make exceptions… 
 
 e.g. I added format on display and accept to Pharo3 after the release,
 because it is indeed a nice thing to have.
 
 So in that sense not having it in Pharo4 is kind of a bug.
 
 The version we get in Pharo5 will come with a new pretty printer, we will
 not back port that,
 so doing a “minimally intrusive” version for Pharo4 makes sense.
 
 
   Marcus





--
View this message in context: 
http://forum.world.st/Pharo-4-format-on-accept-display-tp4831485p4831720.html
Sent from the Pharo Smalltalk Developers mailing list archive at Nabble.com.



Re: [Pharo-dev] Detecting the context/producer of code change announcements

2015-06-11 Thread Ben Coman
On Thu, Jun 11, 2015 at 2:29 AM, Max Leske maxle...@gmail.com wrote:

 On 10 Jun 2015, at 17:13, Martin Dias tinchod...@gmail.com wrote:

 Hi everybody,

 I'm writing you to discuss about a new feature for Pharo. I would like to
 know your opinions and ideas. Thanks in advance.

 My point is that there are operations like MC version load, change set
 file in, RB refactoring execution, or class copy that produce code
 change announcements (e.g. ClassAdded or MethodAdded), but subscribers can't
 know that. I mean, a subscriber that listens a ClassAdded can't know if it
 is product of a high-level operation, or if it was manually performed by
 the user in the Nautilus browser.

 I think Pharo should provide a way to detect this information, because it
 can be very useful. For example, I can tell you about a tool I work on:
 Epicea. Epicea logs code changes while developer works (like traditionally
 done with the .changes file), and the user can browse, undo and redo
 changes. Now, imagine that your vm crashed and then you want to recover
 lost changes... you don't want to see hundreds of changes produced by
 Monticello when loading packages: in this case, such changes are noise and
 make you waste time when selecting what to redo. In Epicea package I have a
 workaround for detecting some high-level operations, but Epicea would need
 support from Pharo for a nice implementation.

 Brainstorming on implementations.

 I think announcements are a good mechanism to implement this feature. A
 simple approach is to provide begin and end announcements (e.g.
 MCVersionLoadBegin and MCVersionLoadEnd). Then, somebody that subscribes to
 such announcements can have a stack or state machine to know the context
 where each code change announcement is produced. It would look like:

 MCVersionLoader  load
...
SystemAnnouncer uniqueInstance announce: (MCVersionLoadBegin versionName:
 ...).
[ ... produce code changes ... ] ensure: [
   SystemAnnouncer uniqueInstance announce: (MCVersionLoadEnd
 versionName: ...) ].

 which may be re-written with a convenience method as:
...
SystemAnnouncer uniqueInstance
   announceBefore: (MCVersionLoadBegin versionName: ...)
   announceAfter: (MCVersionLoadEnd versionName: ...)
   do: [ ... produce code changes ... ]

 but, going one step further, we could reify the concept of announcement
 begin and end like:
...
announcement := (MCVersionLoad versionName: ...).
SystemAnnouncer uniqueInstance
   announceBefore: (AnnouncementBegin of: announcement)
   announceAfter: (AnnouncementEnd of: announcement)
   do: [ ... produce code changes ... ]

 which could be re-written as:
...
SystemAnnouncer uniqueInstance
   announceBeforeAndAfter: (MCVersionLoad versionName: ...)
   do: [ ... produce code changes ... ]

 I think any approach can work, but I'd love to have some feedback.


 I like the idea. What I’m afraid of is however, that the dependency between
 begin and end announcements is implicit in your examples. The only things
 that tell you that they belong together are the convenience implementation
 on SystemAnnouncer and the naming. I’m not familiar enough with
 announcements to post example code.
 The other thing would maybe be to force subscribers to subscribe to both
 announcements (again, not sure how).
 My point is, I want to look at one of the announcements and see that I have
 to work with a set of announcements.

 Ben’s idea of hierarchichal announcements sounds pretty interesting. Maybe
 this is too restricting but how about saying: there exists a dependency
 between two announcements A and B such that whenever A is being announced, B
 has to have been announced before (I’ll leave the implementation to others
 :p).

 The other thing would be to clean up the announcer situation… Maybe the
 announcers should be hierarchical, not the announcements. Doru did a
 presentation at ESUG about an idea for a logging framework that uses
 announcements by using different announcers for different levels of interest
 (https://youtu.be/keqdqFu1ejk?t=10m55s). That way, if you’re interested in
 what MC does in the abyss of MC hell you can subscribe to the
 MCAbyssAnnouncer, if you want high level change events you subscribe to the
 MCInterestingChangeAnnouncer.

Just a *very* divergent thought that I'm not sure is a good idea...
maybe the parent announcement could hold the announcer of its
children.
cheers -ben


 I hope you can make some use of my ramblings (last exam tomorrow, just
 taking a break here :) )

 Cheers,
 Max



 Kind regards,
 Martín





[Pharo-dev] [pharo-project/pharo-core]

2015-06-11 Thread GitHub
  Branch: refs/tags/50106
  Home:   https://github.com/pharo-project/pharo-core


Re: [Pharo-dev] Pharo 4, format on accept/display

2015-06-11 Thread Marcus Denker
Thanks, I will have a look.

 On 11 Jun 2015, at 16:39, Paul DeBruicker pdebr...@gmail.com wrote:
 
 The 'fix' for Pharo40 is in the Pharo40Inbox as Slice-14387.
 
 It formats code on accept and/or display using the RBConfigurableFormatter.
 
 
 
 Marcus Denker-4 wrote
 On 11 Jun 2015, at 08:16, Peter Uhnák lt;
 
 i.uhnak@
 
 gt; wrote:
 
 If my understanding of Pharo's release management is correct, then no new
 features are added after a release, only bugfixes.
 
 
 Yes, but we do make exceptions… 
 
 e.g. I added format on display and accept to Pharo3 after the release,
 because it is indeed a nice thing to have.
 
 So in that sense not having it in Pharo4 is kind of a bug.
 
 The version we get in Pharo5 will come with a new pretty printer, we will
 not back port that,
 so doing a “minimally intrusive” version for Pharo4 makes sense.
 
 
  Marcus
 
 
 
 
 
 --
 View this message in context: 
 http://forum.world.st/Pharo-4-format-on-accept-display-tp4831485p4831720.html
 Sent from the Pharo Smalltalk Developers mailing list archive at Nabble.com.
 




Re: [Pharo-dev] New Tool: Catalog Browser in Pharo 5.0

2015-06-11 Thread Ben Coman
On Thu, Jun 11, 2015 at 11:11 PM, Esteban Lorenzano esteba...@gmail.com wrote:

 On 11 Jun 2015, at 16:42, Ben Coman b...@openinworld.com wrote:

 On Thu, Jun 11, 2015 at 2:55 PM, Torsten Bergmann asta...@gmx.de wrote:

 Hi,

 maybe you already noticed. The latest update for Pharo 5 which is 50103 (see
 [1]).
 includes a new tool called Catalog Browser.

 Where to go
 ===

 You will find it under Tools - Catalog Browser and it will display the
 configs together with the catalog metadata like project description.

 The code is managed with a configuration similar to what we have for
 a few other packages/projects. The tool was written by Esteban Lorenzano
 with small
 improvements like spotter integration from my side. Feel free to contribute
 more features.

 The repository can be found on SmalltalkHub [2].

 This new tool basically gives you access to all available configurations
 aggregated at [3]. You can use a small UI to search and load the configs
 (see world menu - Tools - Catalog Browser.

 But you can also use Spotter to load a config.

 Example on how to load ScriptManager config:
 
 - open Spotter (SHIFT + ENTER on Windows, ...)
 - type in Script and you will find a spotter category Catalog Projects
 with ScriptManager in it
 - just hit enter and the config is loaded


 Just had a quick try.  Its nice to get descriptions, like for
 TaskIT.  However I think there should be a confirmation dialog
 before actually loading a Configuration, which is a potentially
 destructive/undoable action.  Its too easy that habits pressing
 enter for other functions assert themselves and load a configuration
 accidentally.   Perhaps an alternative is to open a window with more
 information from the other fields of the catalog that has a button to
 load the Configuration.



 Same for all others, so try with Seaside, MongoTalk, ...

 In the short/mid-term this new tool should replace the existing config
 browser as it
 gives more informations about the projects.


 I don't think its a total replacement for the Configuration Browser.
 The new function suits the case of searching for a configuration you
 already know about, bu tmany times I like catalog browsers when I'm
 not searching for something. That is, when I don't know what is there
 and I'm  *browsing*.  Indeed, if you are searching for a particular
 configuration then you probably already know what it is and the
 additional info is then not needed.


 But is a superset.
 We do not want to keep two tools with same functionality (we already did
 this a lot in the past, but we are like alcoholics in recovery now… :P)

 Esteban

 ps: when you already know what you want, most probably you just load through
 a command line (or a script)… at least that’s what I do :)


I worked out that typing #cat gave me what I wanted.  However when I
down-arrow from GraphViz, it cycles back to the top to A4BP.  I can't
believe there are no configurations after GraphViz :)
cheers -ben



[Pharo-dev] [pharo-project/pharo-core] cdf159: 50106

2015-06-11 Thread GitHub
  Branch: refs/heads/5.0
  Home:   https://github.com/pharo-project/pharo-core
  Commit: cdf1593f415e3d68410dc04b992fb195615bceeb
  
https://github.com/pharo-project/pharo-core/commit/cdf1593f415e3d68410dc04b992fb195615bceeb
  Author: Jenkins Build Server bo...@pharo-project.org
  Date:   2015-06-11 (Thu, 11 Jun 2015)

  Changed paths:
M 
ConfigurationCommandLineHandler-Core.package/ConfigurationCommandLineHandler.class/instance/accessing/defaultRepositoryUrl.st
M Reflectivity.package/HookGenerator.class/instance/result/preamble.st
R Reflectivity.package/RFArg1ReificationNode.class/README.md
R Reflectivity.package/RFArg1ReificationNode.class/definition.st
R 
Reflectivity.package/RFArg1ReificationNode.class/instance/visiting/acceptVisitor_.st
A 
Reflectivity.package/RFArgumentsReification.class/instance/generate/genForRBMessageNode.st
R 
Reflectivity.package/RFArgumentsReification.class/instance/generate/genForRBProgramNode.st
A 
Reflectivity.package/RFArgumentsReification.class/instance/generate/preamble_.st
A 
Reflectivity.package/RFEReceiverReification.class/instance/generate/genForRBMessageNode.st
A 
Reflectivity.package/RFEReceiverReification.class/instance/generate/preamble_.st
R 
Reflectivity.package/RFNewValueReification.class/instance/generate/preamble.st
A 
Reflectivity.package/RFNewValueReification.class/instance/generate/preamble_.st
A Reflectivity.package/RFReceiverReificationNode.class/README.md
A Reflectivity.package/RFReceiverReificationNode.class/definition.st
A 
Reflectivity.package/RFReceiverReificationNode.class/instance/accessing/numargs.st
A 
Reflectivity.package/RFReceiverReificationNode.class/instance/accessing/numargs_.st
A 
Reflectivity.package/RFReceiverReificationNode.class/instance/visiting/acceptVisitor_.st
R Reflectivity.package/RFReification.class/instance/as yet 
unclassified/genForRBTemporaryNode.st
A 
Reflectivity.package/RFReification.class/instance/generate/genForRBTemporaryNode.st
R Reflectivity.package/RFReification.class/instance/generate/preamble.st
A Reflectivity.package/RFReification.class/instance/generate/preamble_.st
A 
Reflectivity.package/RFSemanticAnalyzer.class/instance/visiting/declareVariableNode_.st
A 
Reflectivity.package/RFSemanticAnalyzer.class/instance/visiting/visitArgumentsReificationNode_.st
A 
Reflectivity.package/RFSemanticAnalyzer.class/instance/visiting/visitReceiverReificationNode_.st
A Reflectivity.package/extension/CompiledMethod/instance/blockNodes.st
A 
Reflectivity.package/extension/CompiledMethod/instance/instanceVariableReadNodes.st
A 
Reflectivity.package/extension/CompiledMethod/instance/instanceVariableWriteNodes.st
A Reflectivity.package/extension/CompiledMethod/instance/sendNodes.st
A Reflectivity.package/extension/CompiledMethod/instance/variableNodes.st
A 
Reflectivity.package/extension/CompiledMethod/instance/variableReadNodes.st
A 
Reflectivity.package/extension/CompiledMethod/instance/variableWriteNodes.st
A 
Reflectivity.package/extension/OCASTTranslator/instance/visitArgumentsReificationNode_.st
A 
Reflectivity.package/extension/OCASTTranslator/instance/visitReceiverReificationNode_.st
A Reflectivity.package/extension/RBMethodNode/instance/assignmenNodes.st
A Reflectivity.package/extension/RBMethodNode/instance/blockNodes.st
A 
Reflectivity.package/extension/RBMethodNode/instance/instanceVariableReadNodes.st
A 
Reflectivity.package/extension/RBMethodNode/instance/instanceVariableWriteNodes.st
A Reflectivity.package/extension/RBMethodNode/instance/sendNodes.st
A 
Reflectivity.package/extension/RBMethodNode/instance/tempVariableReadNodes.st
A Reflectivity.package/extension/RBMethodNode/instance/variableNodes.st
A Reflectivity.package/extension/RBMethodNode/instance/variableReadNodes.st
A Reflectivity.package/extension/RBMethodNode/instance/variableWriteNodes.st
A Reflectivity.package/extension/RBVariableNode/instance/isDefinition.st
A Reflectivity.package/extension/TClassDescription/instance/blockNodes.st
A 
Reflectivity.package/extension/TClassDescription/instance/instanceVariableReadNodes.st
A 
Reflectivity.package/extension/TClassDescription/instance/instanceVariableWriteNodes.st
A Reflectivity.package/extension/TClassDescription/instance/sendNodes.st
A Reflectivity.package/extension/TClassDescription/instance/variableNodes.st
A 
Reflectivity.package/extension/TClassDescription/instance/variableReadNodes.st
A 
Reflectivity.package/extension/TClassDescription/instance/variableWriteNodes.st
A Reflectivity.package/extension/TClassDescription/instance/variables.st
A 
Reflectivity.package/extension/TRBProgramNodeVisitor/instance/visitArgumentsReificationNode_.st
A 
Reflectivity.package/extension/TRBProgramNodeVisitor/instance/visitReceiverReificationNode_.st
R 

Re: [Pharo-dev] Pharo PPA doesn't seem to work on ubuntu vivid (15.04)

2015-06-11 Thread Markus Fritsche

Hello Javier,

I copied the packages to Vivid, can you try again? Please also install 
pharo-sources


Best regards,
  Markus

Am 11.06.2015 um 15:54 schrieb Javier Pimás:
Hi there, after adding the ppa to the system I cannot install the vm. 
Only pharo-launcher is available but it can't be installed because the 
pharo-vm-core-i386 is not installable.


What I tried was this:

sudo apt-add-repository ppa:pharo/stable
sudo dpkg --add-architecture i386
sudo apt-get update
sudo apt-get install pharo-launcher

looking at https://launchpad.net/~pharo/+archive/ubuntu/stable 
https://launchpad.net/%7Epharo/+archive/ubuntu/stable it seems like 
packages are too old (before 15.04 came out), maybe they need to be 
updated?


cheers,
Javier

--
Javier Pimás
Ciudad de Buenos Aires





Re: [Pharo-dev] Pharo PPA doesn't seem to work on ubuntu vivid (15.04)

2015-06-11 Thread Javier Pimás
Thanks! I now installs just fine, and everything works correctly after also
installing pharo-source-files

On Thu, Jun 11, 2015 at 4:08 PM, Markus Fritsche mfrits...@reauktion.de
wrote:

 Hello Javier,

 I copied the packages to Vivid, can you try again? Please also install
 pharo-sources

 Best regards,
   Markus

 Am 11.06.2015 um 15:54 schrieb Javier Pimás:

 Hi there, after adding the ppa to the system I cannot install the vm.
 Only pharo-launcher is available but it can't be installed because the
 pharo-vm-core-i386 is not installable.

 What I tried was this:

 sudo apt-add-repository ppa:pharo/stable
 sudo dpkg --add-architecture i386
 sudo apt-get update
 sudo apt-get install pharo-launcher

 looking at https://launchpad.net/~pharo/+archive/ubuntu/stable 
 https://launchpad.net/%7Epharo/+archive/ubuntu/stable it seems like
 packages are too old (before 15.04 came out), maybe they need to be updated?

 cheers,
 Javier

 --
 Javier Pimás
 Ciudad de Buenos Aires






-- 
Javier Pimás
Ciudad de Buenos Aires


Re: [Pharo-dev] Detecting the context/producer of code change announcements

2015-06-11 Thread Martin Dias
@Max: I watched the presentation but I'm not sure how to apply it in this
case. (Last exam!? good!)

@Ben: I agree that there are not only 2 levels, high-level and low-level
announcements but a hierarchy. For example, a MCVersionLoad could have a
MetacelloProjectLoad as a parent.

@Chris (and all): Thanks for your feedback. I'm in for any solution that
can be implemented fast and be integrated soon in Pharo 5, because I want
to use this feature without my workarounds that override the system in a
nasty way.

Before I didn't mention that I considered Job as a possible solution. Job
represents a task to run. For example:

[ :bar |
bar increment.
(Delay forSeconds: 1) wait.
bar increment.
(Delay forSeconds: 1) wait.
] asJob
title: 'Loading';
min: 1;
max: 3;
run

But, additionally to that basic function:

- Each Job knows its parent.
- Job class implements #current which looks up the next job in the
execution stack (using Exception), or nil if none.

The current (but fixable) limitation of Job is that it only holds a title
string, but not a more complex object for describing itself. I mean, when a
listener receives a ClassAdded, it could lookup parent jobs for one with a
high-level operation associated.

MCVersionLoader  load
...
[ ... produce code changes ... ] asJob
title: 'Loading';
description: (MCVersionLoad versionName: ...)
run.

MyListener  classAdded:
...
Job lookupParent: [ :job | job description isHighLevelOperation ]
ifPresent: [ ... ]
ifAbsent: [ ... ]

Regards,
Martin


On Wed, Jun 10, 2015 at 11:33 PM, Chris Cunningham cunningham...@gmail.com
wrote:


 On Wed, Jun 10, 2015 at 11:29 AM, Max Leske maxle...@gmail.com wrote:


 On 10 Jun 2015, at 17:13, Martin Dias tinchod...@gmail.com wrote:

 Hi everybody,

 snip


 The other thing would be to clean up the announcer situation… Maybe the
 announcers should be hierarchical, not the announcements. Doru did a
 presentation at ESUG about an idea for a logging framework that uses
 announcements by using different announcers for different levels of
 interest (https://youtu.be/keqdqFu1ejk?t=10m55s). That way, if you’re
 interested in what MC does in the abyss of MC hell you can subscribe to the
 MCAbyssAnnouncer, if you want high level change events you subscribe to the
 MCInterestingChangeAnnouncer.

 I'm not sure how the hierarchical announcers would help Ben's issue (as I
 see it).  I would think the logging would like to know that an MC install
 is happening, and log the MC install (and parameters, probably - like what
 was decided on a MERGE), and then ignore all of the actual
 class/method/doit's that come out of that load.  EXCEPT, of course, and
 Syntax fixes done by the users during that load - those would want to be
 caught as non-MC derived.  And a nice playback would be constructed to
 automatically apply them next time.  (Wish list)

 If you have two announcers, you'd need to detect the beginning of the MC
 install, and ignore the class/method announcements until you get the end of
 the MC install.  And you'd have to make sure the MC install always signals
 an end - else you could ignore all manual changes afterwards.
 And, if the user could be saving other code while the MC is loading, you'd
 loose those changes - since you are ignoring them.

 That said, I'm unclear on how you'd signal the hiercarchical announcements
 that Ben mentions.  Class/Method announcements not originated by MC would
 be base change announcements; those originated from MC would be the
 MCChange Announcement sub-classes + the MC generated announcement (started
 load, etc).

  Just thoughts.

 -cbc

 I hope you can make some use of my ramblings (last exam tomorrow, just
 taking a break here :) )

 Cheers,
 Max



 Kind regards,
 Martín






[Pharo-dev] Pharo PPA doesn't seem to work on ubuntu vivid (15.04)

2015-06-11 Thread Javier Pimás
Hi there, after adding the ppa to the system I cannot install the vm. Only
pharo-launcher is available but it can't be installed because the
pharo-vm-core-i386 is not installable.

What I tried was this:

sudo apt-add-repository ppa:pharo/stable
sudo dpkg --add-architecture i386
sudo apt-get update
sudo apt-get install pharo-launcher

looking at https://launchpad.net/~pharo/+archive/ubuntu/stable it seems
like packages are too old (before 15.04 came out), maybe they need to be
updated?

cheers,
Javier

-- 
Javier Pimás
Ciudad de Buenos Aires


Re: [Pharo-dev] Detecting the context/producer of code change announcements

2015-06-11 Thread Thierry Goubier
Hi Martin,

I believe your job example express better what you need, so what I would
propose would be a notion of parent in the normal code announcements,
containing, in a hierarchical way, the higher level context information.

But implementing that parent in the announcements will be difficult, so I'd
take either your job solution, or a notification
(RequestContextNotification); the notification handler would then be able
to provide the context when this notification is signaled (and, of course,
this would be hierarchical).

A pre/post announcement doesn't work: you cannot guarantee that things
happening between those two belongs to this context because it may be done
in different processes.

Regards,

Thierry

Le 11 juin 2015 14:05, Martin Dias tinchod...@gmail.com a écrit :

 @Max: I watched the presentation but I'm not sure how to apply it in this
case. (Last exam!? good!)

 @Ben: I agree that there are not only 2 levels, high-level and low-level
announcements but a hierarchy. For example, a MCVersionLoad could have a
MetacelloProjectLoad as a parent.

 @Chris (and all): Thanks for your feedback. I'm in for any solution that
can be implemented fast and be integrated soon in Pharo 5, because I want
to use this feature without my workarounds that override the system in a
nasty way.

 Before I didn't mention that I considered Job as a possible solution. Job
represents a task to run. For example:

 [ :bar |
 bar increment.
 (Delay forSeconds: 1) wait.
 bar increment.
 (Delay forSeconds: 1) wait.
 ] asJob
 title: 'Loading';
 min: 1;
 max: 3;
 run

 But, additionally to that basic function:

 - Each Job knows its parent.
 - Job class implements #current which looks up the next job in the
execution stack (using Exception), or nil if none.

 The current (but fixable) limitation of Job is that it only holds a title
string, but not a more complex object for describing itself. I mean, when a
listener receives a ClassAdded, it could lookup parent jobs for one with a
high-level operation associated.

 MCVersionLoader  load
 ...
 [ ... produce code changes ... ] asJob
 title: 'Loading';
 description: (MCVersionLoad versionName: ...)
 run.

 MyListener  classAdded:
 ...
 Job lookupParent: [ :job | job description isHighLevelOperation ]
 ifPresent: [ ... ]
 ifAbsent: [ ... ]

 Regards,
 Martin


 On Wed, Jun 10, 2015 at 11:33 PM, Chris Cunningham 
cunningham...@gmail.com wrote:


 On Wed, Jun 10, 2015 at 11:29 AM, Max Leske maxle...@gmail.com wrote:


 On 10 Jun 2015, at 17:13, Martin Dias tinchod...@gmail.com wrote:

 Hi everybody,

 snip


 The other thing would be to clean up the announcer situation… Maybe the
announcers should be hierarchical, not the announcements. Doru did a
presentation at ESUG about an idea for a logging framework that uses
announcements by using different announcers for different levels of
interest (https://youtu.be/keqdqFu1ejk?t=10m55s). That way, if you’re
interested in what MC does in the abyss of MC hell you can subscribe to the
MCAbyssAnnouncer, if you want high level change events you subscribe to the
MCInterestingChangeAnnouncer.

 I'm not sure how the hierarchical announcers would help Ben's issue (as
I see it).  I would think the logging would like to know that an MC install
is happening, and log the MC install (and parameters, probably - like what
was decided on a MERGE), and then ignore all of the actual
class/method/doit's that come out of that load.  EXCEPT, of course, and
Syntax fixes done by the users during that load - those would want to be
caught as non-MC derived.  And a nice playback would be constructed to
automatically apply them next time.  (Wish list)

 If you have two announcers, you'd need to detect the beginning of the MC
install, and ignore the class/method announcements until you get the end of
the MC install.  And you'd have to make sure the MC install always signals
an end - else you could ignore all manual changes afterwards.
 And, if the user could be saving other code while the MC is loading,
you'd loose those changes - since you are ignoring them.

 That said, I'm unclear on how you'd signal the hiercarchical
announcements that Ben mentions.  Class/Method announcements not originated
by MC would be base change announcements; those originated from MC would be
the MCChange Announcement sub-classes + the MC generated announcement
(started load, etc).

  Just thoughts.

 -cbc

 I hope you can make some use of my ramblings (last exam tomorrow, just
taking a break here :) )

 Cheers,
 Max



 Kind regards,
 Martín






Re: [Pharo-dev] Pratt Parsers for PetitParser

2015-06-11 Thread Jan Kurš
That sounds really cool and useful extension.

Regarding the furthest failure, the core of the problem is the distinction
between an error and a failure. Error reports on a problem in the input,
while failure is information for choice parser combinator. In general, the
furthest failure is a better approximation of an error than the last
failure, so we use it.

I am not sure what exactly is the problem in case of PrattParser. I guess
the last failure gives better results for a user? One has to consider a
pratt parser included in the normal parser, e. g. Expressions parsed by
pratt in a Java Grammar. Depending where an error occurs, different
strategy for choosing the proper failure is necessary :-/

Regarding tokenization, there is a message token, that returns
PPTokenParser, which transforms a parsed input into the PPToken object.
Perhaps this might be helpful?

Cheers Jan

On Wed, Jun 10, 2015, 20:52 Richard Sargent 
richard.sarg...@gemtalksystems.com wrote:

 camille teruel wrote
  On 10 Jun 2015, at 19:11, Chris Cunningham lt;

  cunningham.cb@

  gt; wrote:
 
  Inteteresting
 
  On Wed, Jun 10, 2015 at 9:36 AM, Camille lt;

  camille.teruel@

   lt;mailto:

  camille.teruel@

  gt; wrote:
  Hello Pharoers and Moosers,
 
  I did a Pratt parser extension for PetitParser.
 
 
  snip
 
  @PP Devs:
  I had trouble with the PPContext furthestFailure that is taken into
  account instead of the failures I return, so I had to redefine
  #parseWithContext: to return the failures I want. The results given by
  furthestFailure were not very meaningful in my case (the same is true
 for
  PPExpressionParser btw).
  But I guess it was introduced because it gives good results in other
  cases.
  So would it be possible to change this behavior to let the parser decide
  if it returns the furthestFailure or the original failure?
 
  The intent behind the furthestFailure is that it give the failure that
  gets the furthest into the source stream.  It is most useful when there
  are embedded choice operators in the parser - the original/pre furthest
  behaviour would return the last failure, which depending on the incoming
  stream and the order of the choice options could be significantly not
  useful.
 
  I ran into this when working with the sql parser, which started off with
  the outer choice of (by memory):
 ^ selectStatement / insertStatement / updateStatement /
  deleteStatement
  If I was trying to part a select statement that had an error at the very
  end of the statement, the parser would return an error talking about how
  the incoming stream failed in deleteStatement.  Not useful.
 
  I would be saddened if this further failure was not available.
 
  Yes in that case returning the furthest failure gives better results.
  However, this don’t give meaningful messages in all cases.
  For exemple with the calculator I gave in my previous message, if I parse
  ‘1+’ I want to get ‘expression expected at: 2’ but instead it returns ‘$-
  expected at 2'.
  I’m not proposing to remove this feature but to let parsers decide to use
  it or not.
  Something like (changes in bold):
 
  PPParserparseWithContext: context
| result |
context initializeFor: self.
result := self parseOn: context.
 
Return the furthest failure, it gives better results than the last
  failure
(result isPetitFailure and: [ self wantsFurthestFailure and: [
 context
  furthestFailure notNil ] ])
ifTrue: [ ^ context furthestFailure ].
^ result

 This screams at me. Why not just delegate to the context and use a context
 that returns the preferred failure? e.g. end with:
 ^context preferredResultFor: result.


 
  PPParserwantsFurthestFailure
^ true
 
  Like this, one can return the failures he wants.
 
  PPPrattParserwantsFurthestFailure
^ false
 
 
  Camille
 
 
  -cbc





 --
 View this message in context:
 http://forum.world.st/Pratt-Parsers-for-PetitParser-tp4831456p4831486.html
 Sent from the Pharo Smalltalk Developers mailing list archive at
 Nabble.com.




Re: [Pharo-dev] Pratt Parsers for PetitParser

2015-06-11 Thread Camille

 On 10 Jun 2015, at 20:31, Richard Sargent 
 richard.sarg...@gemtalksystems.com wrote:
 
 camille teruel wrote
 On 10 Jun 2015, at 19:11, Chris Cunningham lt;
 
 cunningham.cb@
 
 gt; wrote:
 
 Inteteresting
 
 On Wed, Jun 10, 2015 at 9:36 AM, Camille lt;
 
 camille.teruel@
 
 lt;mailto:
 
 camille.teruel@
 
 gt; wrote:
 Hello Pharoers and Moosers,
 
 I did a Pratt parser extension for PetitParser.
 
 
 snip
 
 @PP Devs: 
 I had trouble with the PPContext furthestFailure that is taken into
 account instead of the failures I return, so I had to redefine
 #parseWithContext: to return the failures I want. The results given by
 furthestFailure were not very meaningful in my case (the same is true for
 PPExpressionParser btw). 
 But I guess it was introduced because it gives good results in other
 cases. 
 So would it be possible to change this behavior to let the parser decide
 if it returns the furthestFailure or the original failure?
 
 The intent behind the furthestFailure is that it give the failure that
 gets the furthest into the source stream.  It is most useful when there
 are embedded choice operators in the parser - the original/pre furthest
 behaviour would return the last failure, which depending on the incoming
 stream and the order of the choice options could be significantly not
 useful.
 
 I ran into this when working with the sql parser, which started off with
 the outer choice of (by memory):
   ^ selectStatement / insertStatement / updateStatement /
 deleteStatement
 If I was trying to part a select statement that had an error at the very
 end of the statement, the parser would return an error talking about how
 the incoming stream failed in deleteStatement.  Not useful.
 
 I would be saddened if this further failure was not available.
 
 Yes in that case returning the furthest failure gives better results.
 However, this don’t give meaningful messages in all cases.
 For exemple with the calculator I gave in my previous message, if I parse
 ‘1+’ I want to get ‘expression expected at: 2’ but instead it returns ‘$-
 expected at 2'.
 I’m not proposing to remove this feature but to let parsers decide to use
 it or not.
 Something like (changes in bold): 
 
 PPParserparseWithContext: context
  | result |
  context initializeFor: self.
  result := self parseOn: context.
 
  Return the furthest failure, it gives better results than the last
 failure
  (result isPetitFailure and: [ self wantsFurthestFailure and: [ context
 furthestFailure notNil ] ]) 
  ifTrue: [ ^ context furthestFailure ].
  ^ result
 
 This screams at me. Why not just delegate to the context and use a context
 that returns the preferred failure? e.g. end with:
 ^context preferredResultFor: result.

Because the same context is passed around by many parsers. 
So if you let the context decide, you get the same behavior for all the parsers.


 
 
  
 PPParserwantsFurthestFailure
  ^ true
 
 Like this, one can return the failures he wants.
 
 PPPrattParserwantsFurthestFailure
  ^ false
 
 
 Camille
 
 
 -cbc
 
 
 
 
 
 --
 View this message in context: 
 http://forum.world.st/Pratt-Parsers-for-PetitParser-tp4831456p4831486.html 
 http://forum.world.st/Pratt-Parsers-for-PetitParser-tp4831456p4831486.html
 Sent from the Pharo Smalltalk Developers mailing list archive at Nabble.com 
 http://nabble.com/.



Re: [Pharo-dev] Pharo 4, format on accept/display

2015-06-11 Thread Franck Warlouzet
 Date: Thu, 11 Jun 2015 08:35:10 +0200
 From: steph...@free.fr
 To: pharo-dev@lists.pharo.org
 Subject: Re: [Pharo-dev] Pharo 4, format on accept/display
 
 
 
 Le 10/6/15 20:47, Paul DeBruicker a écrit :
  Hi
 
  I've hacked together an implementation of format on accept  display.
 
 
  I know someone is redoing that functionality to better suit future needs.
 
 
  Should I publish what I've got as a slice to the Pharo40Inbox for people to 
  use that may miss it now that do not want to wait for the new hotness?
 Yes it is cool :)
 :)
 new text editor new pretty printer :)
 print on read
 print on accept
 :)
Hi,

We are working on a new pretty printer and using rubric in Nautilus for the 
source code area so you will soon be able to format on accept but not only. A 
format as you read feature will be introduce, if you activate it, it will 
format the source code with your own preferences every time you read code, and 
every time you accept.

Franck

 
  Thanks
 
 
  Paul
 
 
 
  

Re: [Pharo-dev] New Tool: Catalog Browser in Pharo 5.0

2015-06-11 Thread Tudor Girba
Really cool!

About the spotter integration, it is really nice to be able to search and
find new projects like this. Well done.

But, there are two things that I would change:
- Right now, the processor order is 10. If you search for GTSpotter, you
will get the catalog project before the class:

[image: Inline image 1]

I would rather prefer the order to be next to the Metacello configurations,
so I would make it 90. The reason is that the things that are in the image
should take precedence because they are much more often used.

- For the preview, I would put the details that we have about the project.

- Also, if you are at it, it would be nice to add an inspector extension
for showing all projects of a CatalogProvider and to add a load action for
a CatalogProject object :)

Cheers,
Doru

On Thu, Jun 11, 2015 at 8:55 AM, Torsten Bergmann asta...@gmx.de wrote:

 Hi,

 maybe you already noticed. The latest update for Pharo 5 which is 50103
 (see [1]).
 includes a new tool called Catalog Browser.

 Where to go
 ===

 You will find it under Tools - Catalog Browser and it will display the
 configs together with the catalog metadata like project description.

 The code is managed with a configuration similar to what we have for
 a few other packages/projects. The tool was written by Esteban Lorenzano
 with small
 improvements like spotter integration from my side. Feel free to
 contribute more features.

 The repository can be found on SmalltalkHub [2].

 This new tool basically gives you access to all available configurations
 aggregated at [3]. You can use a small UI to search and load the configs
 (see world menu - Tools - Catalog Browser.

 But you can also use Spotter to load a config.

 Example on how to load ScriptManager config:
 
  - open Spotter (SHIFT + ENTER on Windows, ...)
  - type in Script and you will find a spotter category Catalog
 Projects with ScriptManager in it
  - just hit enter and the config is loaded

 Same for all others, so try with Seaside, MongoTalk, ...

 In the short/mid-term this new tool should replace the existing config
 browser as it
 gives more informations about the projects.

 What to do next:
 
 - give feedback
 - we should update all our configs with catalog descriptions
 - it would be nice if the spotter integration would include also a preview
 of the project
   description
 - ...

 If you want to contribute just tell Esteban so he can add you to the
 project.

 Thanks
 Esteban  Torsten

 [1]
 http://lists.pharo.org/pipermail/pharo-dev_lists.pharo.org/2015-June/110964.html
 [2] http://www.smalltalkhub.com/#!/~estebanlm/CatalogBrowser
 [3] http://catalog.pharo.org/catalog/json




-- 
www.tudorgirba.com

Every thing has its own flow


Re: [Pharo-dev] Pharo 4, format on accept/display

2015-06-11 Thread Marcus Denker

 On 11 Jun 2015, at 08:16, Peter Uhnák i.uh...@gmail.com wrote:
 
 If my understanding of Pharo's release management is correct, then no new 
 features are added after a release, only bugfixes.
 

Yes, but we do make exceptions… 

e.g. I added format on display and accept to Pharo3 after the release, because 
it is indeed a nice thing to have.

So in that sense not having it in Pharo4 is kind of a bug.

The version we get in Pharo5 will come with a new pretty printer, we will not 
back port that,
so doing a “minimally intrusive” version for Pharo4 makes sense.


Marcus


Re: [Pharo-dev] Pharo 4, format on accept/display

2015-06-11 Thread Peter Uhnák
If my understanding of Pharo's release management is correct, then no new
features are added after a release, only bugfixes.

So from this perspective I would suggest to publish it to Pharo50Inbox
instead, including creating a new issue in Pharo bugtracker where you
describe what is it changing.

If you need in Pharo 4 it may be preferable to create a new repository for
it (at smalltalkhub) and pushing it's configuration to
http://www.smalltalkhub.com/#!/~Pharo/MetaRepoForPharo40, so people can
install it manually via Configuration Browser without affecting Pharo 4
release.

Peter

On Thu, Jun 11, 2015 at 7:25 AM, Ben Coman b...@openinworld.com wrote:

 By publish a slice do you also mean to ask it to be integrated into
 Pharo4?

 The general issue is that every new fix for the released Pharo40 has
 the *chance* of introducing some other problem, or adversely affecting
 someone else's idea of how the system should operate.  Even with
 minimal quaility assurance for a release it takes effort to integrate
 fixes, so each needs to be evaluated for impact. So the options for
 Pharo 4 are:
 1. Continually integrate fixes as they arise == ++effort
 2. Continually integrate critical fixes only, hold all others for the
 next point release.
 3. Hold all fixes for next point release.

 I don't see this as a critical fix :), so you'd be asking for (1.),
 when probably (2.) should be the rule.

 Now I had the idea that fixes for a release that were not immediately
 integrated might be published as a hotfix - taking Microsoft's
 terminology for an update fixing a specific issue without having gone
 through full quality control with all other fixes, so kind of use at
 own risk.  I'm not sure if that was popular or the best way to go
 about it.  Possibly just adding hotfix in the mcz file name would
 provide enough to find them by filtering.

 cheers -ben

 On Thu, Jun 11, 2015 at 2:47 AM, Paul DeBruicker pdebr...@gmail.com
 wrote:
  Hi
 
  I've hacked together an implementation of format on accept  display.
 
 
  I know someone is redoing that functionality to better suit future needs.
 
 
  Should I publish what I've got as a slice to the Pharo40Inbox for people
 to use that may miss it now that do not want to wait for the new hotness?
 
 
 
  Thanks
 
 
  Paul




Re: [Pharo-dev] Pharo 4, format on accept/display

2015-06-11 Thread stepharo



Le 10/6/15 20:47, Paul DeBruicker a écrit :

Hi

I've hacked together an implementation of format on accept  display.


I know someone is redoing that functionality to better suit future needs.


Should I publish what I've got as a slice to the Pharo40Inbox for people to use 
that may miss it now that do not want to wait for the new hotness?

Yes it is cool :)
:)
new text editor new pretty printer :)
print on read
print on accept
:)





Thanks


Paul






[Pharo-dev] New Tool: Catalog Browser in Pharo 5.0

2015-06-11 Thread Torsten Bergmann
Hi,

maybe you already noticed. The latest update for Pharo 5 which is 50103 (see 
[1]).
includes a new tool called Catalog Browser. 

Where to go
===

You will find it under Tools - Catalog Browser and it will display the
configs together with the catalog metadata like project description.

The code is managed with a configuration similar to what we have for
a few other packages/projects. The tool was written by Esteban Lorenzano with 
small 
improvements like spotter integration from my side. Feel free to contribute 
more features.

The repository can be found on SmalltalkHub [2].

This new tool basically gives you access to all available configurations
aggregated at [3]. You can use a small UI to search and load the configs
(see world menu - Tools - Catalog Browser.

But you can also use Spotter to load a config. 

Example on how to load ScriptManager config: 

 - open Spotter (SHIFT + ENTER on Windows, ...)
 - type in Script and you will find a spotter category Catalog Projects 
with ScriptManager in it
 - just hit enter and the config is loaded

Same for all others, so try with Seaside, MongoTalk, ...

In the short/mid-term this new tool should replace the existing config browser 
as it
gives more informations about the projects.   

What to do next:

- give feedback
- we should update all our configs with catalog descriptions
- it would be nice if the spotter integration would include also a preview of 
the project
  description
- ...

If you want to contribute just tell Esteban so he can add you to the project.

Thanks
Esteban  Torsten

[1] 
http://lists.pharo.org/pipermail/pharo-dev_lists.pharo.org/2015-June/110964.html
[2] http://www.smalltalkhub.com/#!/~estebanlm/CatalogBrowser
[3] http://catalog.pharo.org/catalog/json

Re: [Pharo-dev] Pratt Parsers for PetitParser

2015-06-11 Thread James Foster
 On Jun 11, 2015, at 2:47 AM, Camille camille.ter...@gmail.com wrote:
 
 But furthest failure gives wrong messages in other cases to. 
 Consider this sequence parser:
 
 keyword := #letter asParser plus , $: asParser.
 keyword parse: ‘foo'
 
 This returns 'letter expected at 3’, but no matter how many letters I add to 
 the end I’ll still get ‘letter expected’. 
 I want to get what is really missing: '$: expected at 3’.

Indeed. I recently submitted an update to the parser and tests (based on code 
from Dale Henrichs) for a problem in which trim would cause the error to always 
be “separator expected” when there was something after the separator that was 
expected. Better error reporting would certainly be helpful. The ‘letter 
expected’ explanation is quite wrong.

James Foster


Re: [Pharo-dev] Probably Metacello sucks…

2015-06-11 Thread Igor Stasenko
Absence of Metacello won't help you dealing with dependencies
and loading stuff by using hand-made scripts by dozens of people
written at different points in time and not maintained by anyone.

It may be too complicated to use, especially at earlier stages of
development,
and in situations, when all you need is to use latest versions of
everything available (aka #bleedingedge).

But always staying on bleeding edge hurts a lot (that's why it called so)
and it is conscious choice of many professional developers to base own
development on latest but stable versions of dependencies.
Simply because then you have more time focusing on what you want to do,
instead of fighting with various bugs and drastic changes and updates in
numerous dependencies.
And this is where tools like Metacello helping a lot. Because once you
define stable point, you can always be sure that you can reproduce it at
any moment and load without problems.
And no, script on which you spent 1 minute and placed on pastebin doesn't
helps in such situation. It just contributes even more mess to what is
already there.

-- 
Best regards,
Igor Stasenko.


Re: [Pharo-dev] Pharo 4, format on accept/display

2015-06-11 Thread Paul DeBruicker


Format on display does horrible things to the Playground for the version I
uploaded yesterday.  A new version is in the inbox that does not do them.  







Marcus Denker-4 wrote
 Thanks, I will have a look.
 
 On 11 Jun 2015, at 16:39, Paul DeBruicker lt;

 pdebruic@

 gt; wrote:
 
 The 'fix' for Pharo40 is in the Pharo40Inbox as Slice-14387.
 
 It formats code on accept and/or display using the
 RBConfigurableFormatter.
 
 
 
 Marcus Denker-4 wrote
 On 11 Jun 2015, at 08:16, Peter Uhnák lt;
 
 i.uhnak@
 
 gt; wrote:
 
 If my understanding of Pharo's release management is correct, then no
 new
 features are added after a release, only bugfixes.
 
 
 Yes, but we do make exceptions… 
 
 e.g. I added format on display and accept to Pharo3 after the release,
 because it is indeed a nice thing to have.
 
 So in that sense not having it in Pharo4 is kind of a bug.
 
 The version we get in Pharo5 will come with a new pretty printer, we
 will
 not back port that,
 so doing a “minimally intrusive” version for Pharo4 makes sense.
 
 
 Marcus
 
 
 
 
 
 --
 View this message in context:
 http://forum.world.st/Pharo-4-format-on-accept-display-tp4831485p4831720.html
 Sent from the Pharo Smalltalk Developers mailing list archive at
 Nabble.com.






--
View this message in context: 
http://forum.world.st/Pharo-4-format-on-accept-display-tp4831485p4831805.html
Sent from the Pharo Smalltalk Developers mailing list archive at Nabble.com.



[Pharo-dev] What CodeImport is all about?

2015-06-11 Thread Alexandre Bergel
Hi!

I cannot figure out what this package is about. Looks like a kind of change set?

Alexandre
-- 
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
Alexandre Bergel  http://www.bergel.eu
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.






Re: [Pharo-dev] Probably Metacello sucks…

2015-06-11 Thread Christophe Demarey

Le 11 juin 2015 à 07:52, Yuriy Tymchuk a écrit :

 Once Stef mentioned that there is some project for dependency checking. What 
 was it? Maybe we can use that?

http://smalltalkhub.com/#!/~PharoExtras/Tool-DependencyAnalyser

But take care, it only spots static dependencies (inheritance, reference, 
extensions, traits).

smime.p7s
Description: S/MIME cryptographic signature


[Pharo-dev] [pharo-project/pharo-core] 8d0d4b: 50104

2015-06-11 Thread GitHub
  Branch: refs/heads/5.0
  Home:   https://github.com/pharo-project/pharo-core
  Commit: 8d0d4b83a51fc2534b07dc6a7b56038f792cc62f
  
https://github.com/pharo-project/pharo-core/commit/8d0d4b83a51fc2534b07dc6a7b56038f792cc62f
  Author: Jenkins Build Server bo...@pharo-project.org
  Date:   2015-06-11 (Thu, 11 Jun 2015)

  Changed paths:
A ProfStef-Core.package/AbstractTutorial.class/class/tutorial 
metainfo/contentsOfTutorials.st
A ProfStef-Core.package/PharoTutorial.class/class/accessing/contents.st
M 
ProfStef-Help.package/PharoTutorialHelp.class/class/pages/listOfTutorials.st
R ScriptLoader50.package/ScriptLoader.class/instance/pharo - 
scripts/script50103.st
A ScriptLoader50.package/ScriptLoader.class/instance/pharo - 
scripts/script50104.st
R ScriptLoader50.package/ScriptLoader.class/instance/pharo - 
updates/update50103.st
A ScriptLoader50.package/ScriptLoader.class/instance/pharo - 
updates/update50104.st
M 
ScriptLoader50.package/ScriptLoader.class/instance/public/commentForCurrentUpdate.st

  Log Message:
  ---
  50104
15636 PharoTutorial contents
https://pharo.fogbugz.com/f/cases/15636

15731 Kill the last two #asTimeStamp methods
https://pharo.fogbugz.com/f/cases/15731

15734 More tests for reifications
https://pharo.fogbugz.com/f/cases/15734

http://files.pharo.org/image/50/50104.zip




[Pharo-dev] [pharo-project/pharo-core]

2015-06-11 Thread GitHub
  Branch: refs/tags/50104
  Home:   https://github.com/pharo-project/pharo-core


Re: [Pharo-dev] New Tool: Catalog Browser in Pharo 5.0

2015-06-11 Thread Esteban Lorenzano

 On 11 Jun 2015, at 16:42, Ben Coman b...@openinworld.com wrote:
 
 On Thu, Jun 11, 2015 at 2:55 PM, Torsten Bergmann asta...@gmx.de 
 mailto:asta...@gmx.de wrote:
 Hi,
 
 maybe you already noticed. The latest update for Pharo 5 which is 50103 (see 
 [1]).
 includes a new tool called Catalog Browser.
 
 Where to go
 ===
 
 You will find it under Tools - Catalog Browser and it will display the
 configs together with the catalog metadata like project description.
 
 The code is managed with a configuration similar to what we have for
 a few other packages/projects. The tool was written by Esteban Lorenzano 
 with small
 improvements like spotter integration from my side. Feel free to contribute 
 more features.
 
 The repository can be found on SmalltalkHub [2].
 
 This new tool basically gives you access to all available configurations
 aggregated at [3]. You can use a small UI to search and load the configs
 (see world menu - Tools - Catalog Browser.
 
 But you can also use Spotter to load a config.
 
 Example on how to load ScriptManager config:
 
 - open Spotter (SHIFT + ENTER on Windows, ...)
 - type in Script and you will find a spotter category Catalog Projects 
 with ScriptManager in it
 - just hit enter and the config is loaded
 
 Just had a quick try.  Its nice to get descriptions, like for
 TaskIT.  However I think there should be a confirmation dialog
 before actually loading a Configuration, which is a potentially
 destructive/undoable action.  Its too easy that habits pressing
 enter for other functions assert themselves and load a configuration
 accidentally.   Perhaps an alternative is to open a window with more
 information from the other fields of the catalog that has a button to
 load the Configuration.
 
 
 
 Same for all others, so try with Seaside, MongoTalk, ...
 
 In the short/mid-term this new tool should replace the existing config 
 browser as it
 gives more informations about the projects.
 
 I don't think its a total replacement for the Configuration Browser.
 The new function suits the case of searching for a configuration you
 already know about, bu tmany times I like catalog browsers when I'm
 not searching for something. That is, when I don't know what is there
 and I'm  *browsing*.  Indeed, if you are searching for a particular
 configuration then you probably already know what it is and the
 additional info is then not needed.

But is a superset. 
We do not want to keep two tools with same functionality (we already did this a 
lot in the past, but we are like alcoholics in recovery now… :P)

Esteban

ps: when you already know what you want, most probably you just load through a 
command line (or a script)… at least that’s what I do :)

 cheers -ben
 
 
 What to do next:
 
 - give feedback
 - we should update all our configs with catalog descriptions
 - it would be nice if the spotter integration would include also a preview 
 of the project
  description
 - ...
 
 If you want to contribute just tell Esteban so he can add you to the project.
 
 Thanks
 Esteban  Torsten
 
 [1] 
 http://lists.pharo.org/pipermail/pharo-dev_lists.pharo.org/2015-June/110964.html
 [2] http://www.smalltalkhub.com/#!/~estebanlm/CatalogBrowser
 [3] http://catalog.pharo.org/catalog/json



Re: [Pharo-dev] Detecting the context/producer of code change announcements

2015-06-11 Thread Thierry Goubier
2015-06-11 16:49 GMT+02:00 Ben Coman b...@openinworld.com:


 Just a *very* divergent thought that I'm not sure is a good idea...
 maybe the parent announcement could hold the announcer of its
 children.


The problem is then that all tools which are not interested in the parent
announcement because they only deal with the low level stuff (system
browser, RPackageOrganizer and friends: MessageList, Spotter, Critics
browser, Finder, Versionner, Inspector, anything which listen to a code
change basically) have to still listen to the parent and, on reception,
subscribe to the low-level announcement, and then unsubscribe on the parent
end announcement.

Another issue is, when introducing a new class of activity such as
SprintInRMOD, you then need to rewrite all the listeners to add the
relevant:
... on: SprintInRMOD do: [:a | a childAnnouncer on: MethodChange do: ... ]

Kind of messy.

For me, what Martin is trying to do is currently handled in a way by MC and
RB: write all your code operations as abstract operations on a model of the
code, group them into a composite (RBCompositeChange or something like
that), and apply them all in one go. But all this structure is flattened in
the change set, and may be interleaved with other changes happening at the
same time.

I'd take Martin's job idea :) plus specific announcements for the start and
end.

Thierry


 cheers -ben

 
  I hope you can make some use of my ramblings (last exam tomorrow, just
  taking a break here :) )
 
  Cheers,
  Max
 
 
 
  Kind regards,
  Martín