Pharo-dev
By thread
pharo-dev@lists.pharo.org
By month
Messages by month
- ----- 2026 -----
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
- 1 participants
- 144632 messages
Re: [Pharo-dev] SmalltalkHub upgrade!
by Sven Van Caekenberghe
Hi Nicolas,
Great work. Thanks for taking care.
Like I said before: it is a great responsibility that you are carrying, respect !
One day you have to write a blog post giving us all some insight in the production details, with some nice numbers and graphs.
Sven
PS: Is a source code browsing feature something that we can expect someday ? It is really something that I miss: I often want to have a quick look at some code, before defining the repository and/or loading it.
On 28 Jun 2013, at 17:23, Nicolas Petton <petton.nicolas(a)gmail.com> wrote:
> SmalltalkHub upgrade!
>
> Hi, I'm pleased to announce a new SmalltalkHub upgrade.
> This upgrade includes quite some bug fixes and speed improvements.
>
> - new buttons to delete mcz files and packages
> - deleting projects will delete mcz files
> - team can now also be deleted
> - the MCZ cache is now correctly flushed when required
> - Private projects are now hidden from all public timelines
> - Speed improvements for some Mongo requests
>
> Issue fixes:
>
> - issue 16: Cannot delete project
> - Issue 1: Monticello Registration snippet should not supply user name
> - Issue 5: Some message should be shown when you try do delete the only member of a Team
> - Issue 6: I just got to see an Amber debugger while trying to log out
> - Issue 25: Remove packages does not work
> - Issue 23: Encoding problem
>
> You can follow the bug tracker of SmalltalkHub and report issues there: https://code.google.com/p/smalltalk-hub/issues
>
> Cheers,
> Nico
June 30, 2013
Re: [Pharo-dev] SmalltalkHub upgrade!
by Damien Cassou
On Fri, Jun 28, 2013 at 6:10 PM, kilon <thekilon(a)yahoo.co.uk> wrote:
> I am curious is there an API that pharo can use to manage smalltalkhub ? By
> manage I mean to push, commit , pull etc Or ask smalltalkhub to search for a
> specific project and return its http adress and such things that we can
> already do from the browser.
Smalltalkhub offers a REST API that the javascript client uses to show
the website. You can get more information by looking at the source
code: http://smalltalkhub.com/#!/~NicolasPetton/SmalltalkHub.
--
Damien Cassou
http://damiencassou.seasidehosting.st
"Success is the ability to go from one failure to another without
losing enthusiasm."
Winston Churchill
June 30, 2013
Re: [Pharo-dev] potential bug with PackaegSet
by Stéphane Ducasse
I wonder if GRPharoPlatform>>compile: aString into: aClass classified: aSymbol is not just duplicating logic and as such
brings subtle bugs.
Now the addAllFilesIn: is broken
Implementing it as
compile: aString into: aClass classified: aSymbol
[aClass compile: aString classified: aSymbol] on: Error do: [:ex | GRError signal: 'syntax error' ]
works. I sent the information to the seaside mailing-list.
May be there are some other side effects but to me duplicating core logic outside of the core can be dangerous.
On Jun 30, 2013, at 10:34 AM, Stéphane Ducasse <Stephane.Ducasse(a)inria.fr> wrote:
> Probably linked to
>
> addFileIn: invokes
>
>
> compile: aString into: aClass classified: aSymbol
>
> "The trick here is to be as silently a possible so that the package is not marked dirty when running WAFileLibrary test.
> This also makes running tests much faster."
>
>
> | methodNode compiledMethod selector methodAndNode |
> methodNode := aClass compilerClass new
> compile: aString
> in: aClass
> notifying: nil
> ifFail: [ GRError signal: 'syntax error' ].
> selector := methodNode selector.
> methodAndNode := CompiledMethodWithNode
> generateMethodFromNode: methodNode
> trailer: aClass defaultMethodTrailer.
> compiledMethod := methodAndNode method.
> compiledMethod
> putSource: aString
> fromParseNode: methodAndNode node
> inFile: 2
> withPreamble: [ :file |
> aClass
> printCategoryChunk: aSymbol asString
> on: file priorMethod: (aClass compiledMethodAt: selector ifAbsent: [ nil ]).
> file cr ].
> aClass
> addSelectorSilently: selector
> withMethod: compiledMethod.
> self doSilently: [
> aClass organization
> classify: selector
> under: aSymbol ]
>
> And after it breaks nicelyâ¦.
>
> Stef
>
>
>
> On Jun 30, 2013, at 10:24 AM, Stéphane Ducasse <Stephane.Ducasse(a)inria.fr> wrote:
>
>> Hi esteban
>>
>> In Seaside, I created a subclass of WAFileLibrary
>> then
>> StefWAFileLibrary addAllFilesIn: 'foo'
>> my folder foo contained a simple sh file
>>
>> I got a method created in the class side of StefWAFileLibrary
>>
>> I created a separated package and I could not save (I could save) but the method could be included.
>> I added other methods by hand and they were saved but not the methods created by the addAllFilesIn:
>>
>> I suspect that the addAllFilesIn: did not raise a proper announcement.
>> When I put a halt in snapshot packageSet does not get any methods.
>>
>> Stef
>>
>>
>> snapshot
>> | packageInfo definitions categories |
>> self halt.
>> packageInfo := self packageSet.
>> definitions := OrderedCollection new.
>> categories := (packageInfo packages collect: #packageName) asArray.
>> categories isEmpty
>> ifFalse: [ definitions add: (MCOrganizationDefinition categories: categories) ].
>>
>> packageInfo methods
>> do: [:ea | definitions add: ea asMCMethodDefinition]
>> displayingProgress: [ :ea| 'Snapshotting methods...' ].
>>
>> packageInfo overriddenMethods
>> do: [:ea | definitions add:
>> (packageInfo changeRecordForOverriddenMethod: ea) asMCMethodDefinition]
>> displayingProgress: [ :ea| 'Searching for overrides in ', ea asString ].
>>
>> packageInfo definedClasses
>> do: [:ea | definitions addAll: ea classDefinitions]
>> displayingProgress: [ :ea| 'Snapshotting class ', ea asString ].
>>
>> (packageInfo respondsTo: #hasPreamble) ifTrue: [
>> packageInfo hasPreamble
>> ifTrue: [definitions add: (MCPreambleDefinition from: packageInfo)].
>> packageInfo hasPostscript
>> ifTrue: [definitions add: (MCPostscriptDefinition from: packageInfo)].
>> packageInfo hasPreambleOfRemoval
>> ifTrue: [definitions add: (MCRemovalPreambleDefinition from: packageInfo)].
>> packageInfo hasPostscriptOfRemoval
>> ifTrue: [definitions add: (MCRemovalPostscriptDefinition from: packageInfo)]].
>> ^ MCSnapshot fromDefinitions: definitions
>>
>>
>> Stef
>
>
June 30, 2013
Re: [Pharo-dev] [ANN] SS3 the canary site
by Stéphane Ducasse
>> Thanks tobias.
>>
>> To me your version of SS3 looks even more Squeak centric and this is ok but my plate is full
>> and I'm sorry but I focus on Pharo because we must deliver and continue.
>
> That was uncalled for. Stéphane Ducasse, what is it you want to tell me?
> Whatever emotion or reaction you wanted to transport, you effected
> borderline insult and accusation.
seriously? This was not my intention.
> First, I just opened a tool I am maintaining for public participation.
> Recall: âFor me to test new features of SqueakSource3 â¦â.
> What, please tell me, what makes this incarnation of SS3 âeven more Squeak centricâ?
> That it is run on GemStone? That I developed it in the SeasideOneClick image
> (which happens to be a Pharo one)? Mon dieu, seulement le mot «Squeak«, la partie
> du mot «SqueakSource». Do you want to hold me accountable for not changing a
> long standing product name?
I think that you are overreacting.
I'm just saying that instead of maintaining and developing two forges having a good one would be better.
> Second, what has the delivery and continuation of Pharo to do with my service of
> offering a canary SS3 instance? Do you care to elaborate?
I simply do not have the time to maintain multiple resources of documents (you know Chapter like Gofer), gofer apiâ¦.
Just yesterday we updated the SS3 part to use the new URL.
>> Now don't you think that joining effort on SmalltalkHub (did you see the name is not PharoHub)
>> would make more sense?
>
> Are we playing on names now? There are instances of SqueakSource out there that
> are not primarily used for Squeak. Just the name does not make anything fixed
> to that, thank you.
> But content-wise, what is it that should attract me more to SH than what attracts
> me currently to SS3?
- Speed.
- Team management
- Momentum
> Look:
> 1. I happen to have started SS3 in 2008/2009 to support the SqueakSource
> instance that that is running at my University. That is the only reason.
I can understand it
> 2. I have tried to improve and integrate many different features present
> in different SqueakSources and in that course, SqueakSource3 emerged
> about around four (4) years ago. And I know that you were aware
> of it.
sure I do not deny it. Now my point is that Nicolas invested a lot of time in building a new scalable
infrastructure. If you want to continue maintaining SS3 why not? this is your time and energy.
I'm just saying that I would like to avoid to
Tobias my goal is not to be against Squeak. I gave to Squeak a lot more than any average squeaker.
MY GOAL IS TO OFFER AN ECONOMICAL COMPETITIVE ECOSYSTEM TO PEOPLE WILLING TO
INVEST INTO SOFTWARE IN SMALLTALK and this in the context of JS, Lua, Python, Rails.
> 3. I can only invest my leisure time into SqueakSource, and I feel committed
> to _NOT_ abandon existing infrastructure; at least three websites out
> there run SqueakSource, if not more. I would feel unreasonable to just
> drop them.
Ok but you could join SmalltalkHub too.
We gave up on Squeaksource code. Look on SS3 we cannot even browse project lists.
So this is why we decided to push and SmalltalkHub. Nicolas is using some of his time to improve it
because we ask him.
> 4. How, up until now, should I have known that joint effort is welcomed or
> even possible?
Nicolas always announced that SmalltalkHub is open-source and that people can help and join.
May be you did not see it. But it was always like that.
> IIRC, at the 2010 ESUG in Barcelona, you publicly asked
> about what to do with the unstable SqueakSource.
Probably I'm always worried about providing good infrastructure
> I don't know whether I talked directly to you or Marcus or whomever,
> but I offered intensive collaboration.
Probably me. But you know I have multiple lives and doing far too many things and it was 3 years ago.
You know we are doing many things and ESUG saw that SS was in danger so we (THE BOARD) decided
that it was good to push a new service to the community.
> I never hear back of y'all.
> Some time later, SmalltalkHub was started.
> Have you ever felt being stamped on?
> Have you ever felt slapped in the face?
> I had, then.
Ok it was not our intention to hurt you or by pass you.
may be sending a little mail would have solved that feeling.
We were just looking at a solution because this is 4 years that Squeaksource is running on a slow machine
and was backup from time to time.
>> Also because the stack behind is sexy and can be reused/improved for business.
>
> Yes I know. While I am not 100% sure, what the exact stack is, I know
> that Amber, Iliad, and GemStone are cool, I like them really.
> But I also think that the Seaside-Magritte-GemStone-Nginx stack
> is also cool.
Amber, Seaside, Voyage, Mongo
>> And you guess what? I want and push daily business in Pharo.
>
> Please do, you have my full support. However, what does that
> have to do with either SqueakSource3 or SmalltalkHub?
It has to do with having one good infrastructure and I was thinking ok if tobias would help in SmalltalkHub
then SmalltalkHub would be better (I'm not talking about the website - but the software stack).
> The tools I have built or collaborated with run in Pharo, so what is the deal?
Split of energy. If we have two guys working on the same forge then this is better than two guys working on two
different forges.
>> I want smart guys like you, camillo, guilermo, ben, nicolas, igor, esteban and many more to
>> be able to decide if they want to get a cool job with Pharo.
>
> We are all able to decide whether we want to have a cool job with Pharo.
:)
Only if there are jobs!
> But please don't judge me that my image of Smalltalk is broader than just
> Pharo.
You think that mine is narrow minded :).
> A bientôt,
> -Tobias
>
> PS: On style.
> a) Is a rant a proper reaction to an announcement?
It was not a rant.
> Isn't that like criticizing alpha software using a bug list?
> b) The first words of a text set its impression with the reader.
> The first words of the email accused me of Squeak-centricsim,
> as if it actually was something to be accused of.
You see I'm not in the squeak mailing-list so I do not see how I could give feedback as a user of SqueakSource3*
without being in the squeakmaili
> c) The last words of a text stay in mind.
> The last words of the email are selective in people and
> Smalltalk dialect.
Sure you know more than me.
you know of course that the last engineer that quitted my team is a VW engineer.
You also know that I suggested to some students doing pharo to apply to the recent VW job offers.
You know so much about me that you can judge as being so narrow minded.
> They make you _sound_ like you don't want not as smart guys on
> Pharo and, more importantly, you don't want people on any other
> Smalltalk than Pharo.
Build a sexy one (but for real) and I will use it instead of burning my energy building one.
> This is unbecoming for a president of
> an organization that represents european users of
> _all_ Smalltalk dialects. Do you?
Tobias when you will have 2% of what I did for our community, I will take your insults seriously.
Now I just think that you are going off-road.
June 30, 2013
Re: [Pharo-dev] potential bug with PackaegSet
by Stéphane Ducasse
this is Seaside30 on Pharo2.0 and also on Seaside 31 on Pharo30
Stef
> is this 3.0?
>
> We removed CompiledMethodWithNode thereâ¦
>
>
> On Jun 30, 2013, at 10:35 AM, Stéphane Ducasse <stephane.ducasse(a)inria.fr> wrote:
>
>> Probably linked to
>>
>> addFileIn: invokes
>>
>>
>> compile: aString into: aClass classified: aSymbol
>>
>> "The trick here is to be as silently a possible so that the package is not marked dirty when running WAFileLibrary test.
>> This also makes running tests much faster."
>>
>>
>> | methodNode compiledMethod selector methodAndNode |
>> methodNode := aClass compilerClass new
>> compile: aString
>> in: aClass
>> notifying: nil
>> ifFail: [ GRError signal: 'syntax error' ].
>> selector := methodNode selector.
>> methodAndNode := CompiledMethodWithNode
>> generateMethodFromNode: methodNode
>> trailer: aClass defaultMethodTrailer.
>> compiledMethod := methodAndNode method.
>> compiledMethod
>> putSource: aString
>> fromParseNode: methodAndNode node
>> inFile: 2
>> withPreamble: [ :file |
>> aClass
>> printCategoryChunk: aSymbol asString
>> on: file priorMethod: (aClass compiledMethodAt: selector ifAbsent: [ nil ]).
>> file cr ].
>> aClass
>> addSelectorSilently: selector
>> withMethod: compiledMethod.
>> self doSilently: [
>> aClass organization
>> classify: selector
>> under: aSymbol ]
>>
>> And after it breaks nicelyâ¦.
>>
>> Stef
>>
>>
>>
>> On Jun 30, 2013, at 10:24 AM, Stéphane Ducasse <Stephane.Ducasse(a)inria.fr> wrote:
>>
>>> Hi esteban
>>>
>>> In Seaside, I created a subclass of WAFileLibrary
>>> then
>>> StefWAFileLibrary addAllFilesIn: 'foo'
>>> my folder foo contained a simple sh file
>>>
>>> I got a method created in the class side of StefWAFileLibrary
>>>
>>> I created a separated package and I could not save (I could save) but the method could be included.
>>> I added other methods by hand and they were saved but not the methods created by the addAllFilesIn:
>>>
>>> I suspect that the addAllFilesIn: did not raise a proper announcement.
>>> When I put a halt in snapshot packageSet does not get any methods.
>>>
>>> Stef
>>>
>>>
>>> snapshot
>>> | packageInfo definitions categories |
>>> self halt.
>>> packageInfo := self packageSet.
>>> definitions := OrderedCollection new.
>>> categories := (packageInfo packages collect: #packageName) asArray.
>>> categories isEmpty
>>> ifFalse: [ definitions add: (MCOrganizationDefinition categories: categories) ].
>>>
>>> packageInfo methods
>>> do: [:ea | definitions add: ea asMCMethodDefinition]
>>> displayingProgress: [ :ea| 'Snapshotting methods...' ].
>>>
>>> packageInfo overriddenMethods
>>> do: [:ea | definitions add:
>>> (packageInfo changeRecordForOverriddenMethod: ea) asMCMethodDefinition]
>>> displayingProgress: [ :ea| 'Searching for overrides in ', ea asString ].
>>>
>>> packageInfo definedClasses
>>> do: [:ea | definitions addAll: ea classDefinitions]
>>> displayingProgress: [ :ea| 'Snapshotting class ', ea asString ].
>>>
>>> (packageInfo respondsTo: #hasPreamble) ifTrue: [
>>> packageInfo hasPreamble
>>> ifTrue: [definitions add: (MCPreambleDefinition from: packageInfo)].
>>> packageInfo hasPostscript
>>> ifTrue: [definitions add: (MCPostscriptDefinition from: packageInfo)].
>>> packageInfo hasPreambleOfRemoval
>>> ifTrue: [definitions add: (MCRemovalPreambleDefinition from: packageInfo)].
>>> packageInfo hasPostscriptOfRemoval
>>> ifTrue: [definitions add: (MCRemovalPostscriptDefinition from: packageInfo)]].
>>> ^ MCSnapshot fromDefinitions: definitions
>>>
>>>
>>> Stef
>>
>>
>
>
June 30, 2013
Re: [Pharo-dev] [ANN] SS3 the canary site
by Tobias Pape
Hello.
Am 29.06.2013 um 09:37 schrieb Stéphane Ducasse <stephane.ducasse(a)inria.fr>:
> Thanks tobias.
>
> To me your version of SS3 looks even more Squeak centric and this is ok but my plate is full
> and I'm sorry but I focus on Pharo because we must deliver and continue.
That was uncalled for. Stéphane Ducasse, what is it you want to tell me?
Whatever emotion or reaction you wanted to transport, you effected
borderline insult and accusation.
First, I just opened a tool I am maintaining for public participation.
Recall: âFor me to test new features of SqueakSource3 â¦â.
What, please tell me, what makes this incarnation of SS3 âeven more Squeak centricâ?
That it is run on GemStone? That I developed it in the SeasideOneClick image
(which happens to be a Pharo one)? Mon dieu, seulement le mot «Squeak«, la partie
du mot «SqueakSource». Do you want to hold me accountable for not changing a
long standing product name?
Second, what has the delivery and continuation of Pharo to do with my service of
offering a canary SS3 instance? Do you care to elaborate?
> Now don't you think that joining effort on SmalltalkHub (did you see the name is not PharoHub)
> would make more sense?
Are we playing on names now? There are instances of SqueakSource out there that
are not primarily used for Squeak. Just the name does not make anything fixed
to that, thank you.
But content-wise, what is it that should attract me more to SH than what attracts
me currently to SS3?
Look:
1. I happen to have started SS3 in 2008/2009 to support the SqueakSource
instance that that is running at my University. That is the only reason.
2. I have tried to improve and integrate many different features present
in different SqueakSources and in that course, SqueakSource3 emerged
about around four (4) years ago. And I know that you were aware
of it.
3. I can only invest my leisure time into SqueakSource, and I feel committed
to _NOT_ abandon existing infrastructure; at least three websites out
there run SqueakSource, if not more. I would feel unreasonable to just
drop them.
4. How, up until now, should I have known that joint effort is welcomed or
even possible? IIRC, at the 2010 ESUG in Barcelona, you publicly asked
about what to do with the unstable SqueakSource.
I don't know whether I talked directly to you or Marcus or whomever,
but I offered intensive collaboration.
I never hear back of y'all.
Some time later, SmalltalkHub was started.
Have you ever felt being stamped on?
Have you ever felt slapped in the face?
I had, then.
> Also because the stack behind is sexy and can be reused/improved for business.
Yes I know. While I am not 100% sure, what the exact stack is, I know
that Amber, Iliad, and GemStone are cool, I like them really.
But I also think that the Seaside-Magritte-GemStone-Nginx stack
is also cool.
> And you guess what? I want and push daily business in Pharo.
Please do, you have my full support. However, what does that
have to do with either SqueakSource3 or SmalltalkHub?
The tools I have built or collaborated with run in Pharo, so what is the deal?
> I want smart guys like you, camillo, guilermo, ben, nicolas, igor, esteban and many more to
> be able to decide if they want to get a cool job with Pharo.
We are all able to decide whether we want to have a cool job with Pharo.
But please don't judge me that my image of Smalltalk is broader than just
Pharo.
A bientôt,
-Tobias
PS: On style.
a) Is a rant a proper reaction to an announcement?
Isn't that like criticizing alpha software using a bug list?
b) The first words of a text set its impression with the reader.
The first words of the email accused me of Squeak-centricsim,
as if it actually was something to be accused of.
c) The last words of a text stay in mind.
The last words of the email are selective in people and
Smalltalk dialect.
They make you _sound_ like you don't want not as smart guys on
Pharo and, more importantly, you don't want people on any other
Smalltalk than Pharo. This is unbecoming for a president of
an organization that represents european users of
_all_ Smalltalk dialects. Do you?
June 30, 2013
Re: [Pharo-dev] potential bug with PackaegSet
by Marcus Denker
is this 3.0?
We removed CompiledMethodWithNode thereâ¦
On Jun 30, 2013, at 10:35 AM, Stéphane Ducasse <stephane.ducasse(a)inria.fr> wrote:
> Probably linked to
>
> addFileIn: invokes
>
>
> compile: aString into: aClass classified: aSymbol
>
> "The trick here is to be as silently a possible so that the package is not marked dirty when running WAFileLibrary test.
> This also makes running tests much faster."
>
>
> | methodNode compiledMethod selector methodAndNode |
> methodNode := aClass compilerClass new
> compile: aString
> in: aClass
> notifying: nil
> ifFail: [ GRError signal: 'syntax error' ].
> selector := methodNode selector.
> methodAndNode := CompiledMethodWithNode
> generateMethodFromNode: methodNode
> trailer: aClass defaultMethodTrailer.
> compiledMethod := methodAndNode method.
> compiledMethod
> putSource: aString
> fromParseNode: methodAndNode node
> inFile: 2
> withPreamble: [ :file |
> aClass
> printCategoryChunk: aSymbol asString
> on: file priorMethod: (aClass compiledMethodAt: selector ifAbsent: [ nil ]).
> file cr ].
> aClass
> addSelectorSilently: selector
> withMethod: compiledMethod.
> self doSilently: [
> aClass organization
> classify: selector
> under: aSymbol ]
>
> And after it breaks nicelyâ¦.
>
> Stef
>
>
>
> On Jun 30, 2013, at 10:24 AM, Stéphane Ducasse <Stephane.Ducasse(a)inria.fr> wrote:
>
>> Hi esteban
>>
>> In Seaside, I created a subclass of WAFileLibrary
>> then
>> StefWAFileLibrary addAllFilesIn: 'foo'
>> my folder foo contained a simple sh file
>>
>> I got a method created in the class side of StefWAFileLibrary
>>
>> I created a separated package and I could not save (I could save) but the method could be included.
>> I added other methods by hand and they were saved but not the methods created by the addAllFilesIn:
>>
>> I suspect that the addAllFilesIn: did not raise a proper announcement.
>> When I put a halt in snapshot packageSet does not get any methods.
>>
>> Stef
>>
>>
>> snapshot
>> | packageInfo definitions categories |
>> self halt.
>> packageInfo := self packageSet.
>> definitions := OrderedCollection new.
>> categories := (packageInfo packages collect: #packageName) asArray.
>> categories isEmpty
>> ifFalse: [ definitions add: (MCOrganizationDefinition categories: categories) ].
>>
>> packageInfo methods
>> do: [:ea | definitions add: ea asMCMethodDefinition]
>> displayingProgress: [ :ea| 'Snapshotting methods...' ].
>>
>> packageInfo overriddenMethods
>> do: [:ea | definitions add:
>> (packageInfo changeRecordForOverriddenMethod: ea) asMCMethodDefinition]
>> displayingProgress: [ :ea| 'Searching for overrides in ', ea asString ].
>>
>> packageInfo definedClasses
>> do: [:ea | definitions addAll: ea classDefinitions]
>> displayingProgress: [ :ea| 'Snapshotting class ', ea asString ].
>>
>> (packageInfo respondsTo: #hasPreamble) ifTrue: [
>> packageInfo hasPreamble
>> ifTrue: [definitions add: (MCPreambleDefinition from: packageInfo)].
>> packageInfo hasPostscript
>> ifTrue: [definitions add: (MCPostscriptDefinition from: packageInfo)].
>> packageInfo hasPreambleOfRemoval
>> ifTrue: [definitions add: (MCRemovalPreambleDefinition from: packageInfo)].
>> packageInfo hasPostscriptOfRemoval
>> ifTrue: [definitions add: (MCRemovalPostscriptDefinition from: packageInfo)]].
>> ^ MCSnapshot fromDefinitions: definitions
>>
>>
>> Stef
>
>
June 30, 2013
Re: [Pharo-dev] potential bug with PackaegSet
by Stéphane Ducasse
Probably linked to
addFileIn: invokes
compile: aString into: aClass classified: aSymbol
"The trick here is to be as silently a possible so that the package is not marked dirty when running WAFileLibrary test.
This also makes running tests much faster."
| methodNode compiledMethod selector methodAndNode |
methodNode := aClass compilerClass new
compile: aString
in: aClass
notifying: nil
ifFail: [ GRError signal: 'syntax error' ].
selector := methodNode selector.
methodAndNode := CompiledMethodWithNode
generateMethodFromNode: methodNode
trailer: aClass defaultMethodTrailer.
compiledMethod := methodAndNode method.
compiledMethod
putSource: aString
fromParseNode: methodAndNode node
inFile: 2
withPreamble: [ :file |
aClass
printCategoryChunk: aSymbol asString
on: file priorMethod: (aClass compiledMethodAt: selector ifAbsent: [ nil ]).
file cr ].
aClass
addSelectorSilently: selector
withMethod: compiledMethod.
self doSilently: [
aClass organization
classify: selector
under: aSymbol ]
And after it breaks nicelyâ¦.
Stef
On Jun 30, 2013, at 10:24 AM, Stéphane Ducasse <Stephane.Ducasse(a)inria.fr> wrote:
> Hi esteban
>
> In Seaside, I created a subclass of WAFileLibrary
> then
> StefWAFileLibrary addAllFilesIn: 'foo'
> my folder foo contained a simple sh file
>
> I got a method created in the class side of StefWAFileLibrary
>
> I created a separated package and I could not save (I could save) but the method could be included.
> I added other methods by hand and they were saved but not the methods created by the addAllFilesIn:
>
> I suspect that the addAllFilesIn: did not raise a proper announcement.
> When I put a halt in snapshot packageSet does not get any methods.
>
> Stef
>
>
> snapshot
> | packageInfo definitions categories |
> self halt.
> packageInfo := self packageSet.
> definitions := OrderedCollection new.
> categories := (packageInfo packages collect: #packageName) asArray.
> categories isEmpty
> ifFalse: [ definitions add: (MCOrganizationDefinition categories: categories) ].
>
> packageInfo methods
> do: [:ea | definitions add: ea asMCMethodDefinition]
> displayingProgress: [ :ea| 'Snapshotting methods...' ].
>
> packageInfo overriddenMethods
> do: [:ea | definitions add:
> (packageInfo changeRecordForOverriddenMethod: ea) asMCMethodDefinition]
> displayingProgress: [ :ea| 'Searching for overrides in ', ea asString ].
>
> packageInfo definedClasses
> do: [:ea | definitions addAll: ea classDefinitions]
> displayingProgress: [ :ea| 'Snapshotting class ', ea asString ].
>
> (packageInfo respondsTo: #hasPreamble) ifTrue: [
> packageInfo hasPreamble
> ifTrue: [definitions add: (MCPreambleDefinition from: packageInfo)].
> packageInfo hasPostscript
> ifTrue: [definitions add: (MCPostscriptDefinition from: packageInfo)].
> packageInfo hasPreambleOfRemoval
> ifTrue: [definitions add: (MCRemovalPreambleDefinition from: packageInfo)].
> packageInfo hasPostscriptOfRemoval
> ifTrue: [definitions add: (MCRemovalPostscriptDefinition from: packageInfo)]].
> ^ MCSnapshot fromDefinitions: definitions
>
>
> Stef
June 30, 2013
potential bug with PackaegSet
by Stéphane Ducasse
Hi esteban
In Seaside, I created a subclass of WAFileLibrary
then
StefWAFileLibrary addAllFilesIn: 'foo'
my folder foo contained a simple sh file
I got a method created in the class side of StefWAFileLibrary
I created a separated package and I could not save (I could save) but the method could be included.
I added other methods by hand and they were saved but not the methods created by the addAllFilesIn:
I suspect that the addAllFilesIn: did not raise a proper announcement.
When I put a halt in snapshot packageSet does not get any methods.
Stef
snapshot
| packageInfo definitions categories |
self halt.
packageInfo := self packageSet.
definitions := OrderedCollection new.
categories := (packageInfo packages collect: #packageName) asArray.
categories isEmpty
ifFalse: [ definitions add: (MCOrganizationDefinition categories: categories) ].
packageInfo methods
do: [:ea | definitions add: ea asMCMethodDefinition]
displayingProgress: [ :ea| 'Snapshotting methods...' ].
packageInfo overriddenMethods
do: [:ea | definitions add:
(packageInfo changeRecordForOverriddenMethod: ea) asMCMethodDefinition]
displayingProgress: [ :ea| 'Searching for overrides in ', ea asString ].
packageInfo definedClasses
do: [:ea | definitions addAll: ea classDefinitions]
displayingProgress: [ :ea| 'Snapshotting class ', ea asString ].
(packageInfo respondsTo: #hasPreamble) ifTrue: [
packageInfo hasPreamble
ifTrue: [definitions add: (MCPreambleDefinition from: packageInfo)].
packageInfo hasPostscript
ifTrue: [definitions add: (MCPostscriptDefinition from: packageInfo)].
packageInfo hasPreambleOfRemoval
ifTrue: [definitions add: (MCRemovalPreambleDefinition from: packageInfo)].
packageInfo hasPostscriptOfRemoval
ifTrue: [definitions add: (MCRemovalPostscriptDefinition from: packageInfo)]].
^ MCSnapshot fromDefinitions: definitions
Stef
June 30, 2013
Re: [Pharo-dev] Manage a Printer device with Semaphore forMutualExclusion
by Stéphane Ducasse
> Ciao,
>
> I work with a seaside application.
I would to hear that. I wish your success.
> I have a printer device and i need to manage the use of it at one work at time.
>
> I think to use one Semaphore forMutualExclusion defined as variable of the specific printerTicket device
>
> Now i defined this code to mange the access :
>
> aPrinterTicket accessSema critical:[
Transcript show?
>
> stampaok:= [ " i open a IP connection on the device. do the printer and manage relative errors "
> TicketBaseTipoCentriCarico newOn: dcmModel dettagli: tfDettagli onPrinter: aPrinterTicket ]
>
> on: Error do: [:ex | " for error i open dialog to advise the operator "
> self jqDialog: (DTRCassaDialogConferma openOnException: ex onModel: dcmModel).
>
> " repeat until the printer is do without error "
> ex retry ]
> ].
where do you execute stampaok I do not see a value.
>
> " When the printer is do i advise the operator of it and allow the next request "
> stampaok ifTrue: [self jqDialog:(DTRCassaDialogConferma openOnModel: dcmModel)
> title: 'Ordinazione confermata'].
> ]
>
>
> With this code the printer semaphore don't work.
>
> The semaphore don't manage the code of the request,
did you try to put a transcript
>
> and when i have a error, at any loop the excessSignal of the printer semaphore is incremented.
>
>
> Any idea ?
>
> Thanks,
>
> Dario
June 29, 2013