Pharo-dev
By thread
pharo-dev@lists.pharo.org
By month
Messages by month
- ----- 2026 -----
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
December 2009
- 96 participants
- 2069 messages
Re: [Pharo-project] CompiledMethodTrailers ready for use
by Henrik Sperre Johansen
On 20.12.2009 20:04, Igor Stasenko wrote:
> Hello,
> i finished this stuff, and its ready for adoption.
>
Nice!
> See http://bugs.squeak.org/view.php?id=7428
>
> Anyone wants to help pushing it into trunk update stream (using MC configs)?
>
> It works fine on recent trunk image,
> on pharo however i had some problems installing changes, because of
> some differencies.
>
> Tried on PharoCore-1.1-11106-ALPHA.image
>
> phase2.1.cs
> - do not filein the TextEditor changes, since pharo-core don't have it.
> - do not filein the last line (reorganizing)..
>
> - tests failing because pharo String class does not implements
> #squeakToUtf8
> nor
> #utf8ToSqueak
>
> Do we having an uniform way how to encode ANY String -> ByteString(utf8)
> and back? What ANSI standard saying about it? Maybe i'm using wrong methods?
>
"3.4.6.4 - It is erroneous if stringBody contains any characters that
does not exist in the implementation
defined execution character set used in the representation of character
objects."
So, implementation defined.
Every internal String (in Squeak and Pharo) (afaik) should be either
latin1 (ByteStrings) or + utf32 with the high byte used for
differentiation between language of the string.
To me, sending squeakToUtf8, then using StandardFileStream instead of
FileStream seems safe.
As long as the ByteString's bytes is utf8, utf8ToSqueak works. (And in
most other cases as well)
In fact, it's safer than UTF8Decoder for non-utf8 strings, which does
not perform the validity checks (only reads the total #of bytes) when
encountering bytes > 127.
The reason it seems mostly for internal use (to me) is the fact it
silently falls back to assuming string is already in latin1 (ie, the
"valid" ByteString format), instead of raising an error like the stream
decoder does. (Which, by the way, would be much nicer if was a
MalformedUTF8Error or some such...)
ws := StandardFileStream newFileNamed: 'test.txt'.
"Save as latin1"
ws nextPutAll: 'ååå'.
ws close.
"Read with UTF8Decoder"
rs := FileStream oldFileNamed: 'test.txt'.
"Print this, gives a ?"
rs contents.
rs close
"Read with Latin1Decoder"
rs := StandardFileStream oldFileNamed: 'test.txt'.
"Print this, gives ååå. since it's not valid utf8, thus assumes latin1"
rs contents utf8ToSqueak.
rs close
> Still, i think we need this thing standartized and be common for all
> dialects (not just Pharo/Squeak).
>
There's really only one way to store characters in a ByteArray (ie.
ByteString) and call it utf8 encoded.
As far as I can tell, Squeak seems to do the right thing :)
I believe Nicolas pushed for implementation in Pharo some time ago, not
sure what happened to that.
Cheers,
Henry
Dec. 20, 2009
Re: [Pharo-project] CompiledMethodTrailers ready for use
by Igor Stasenko
2009/12/20 Igor Stasenko <siguctua(a)gmail.com>:
> Hello,
> i finished this stuff, and its ready for adoption.
>
> See http://bugs.squeak.org/view.php?id=7428
>
> Anyone wants to help pushing it into trunk update stream (using MC configs)?
>
> It works fine on recent trunk image,
> on pharo however i had some problems installing changes, because of
> some differencies.
>
> Tried on PharoCore-1.1-11106-ALPHA.image
>
> phase2.1.cs
> - do not filein the TextEditor changes, since pharo-core don't have it.
> - do not filein the last line (reorganizing)..
>
> - tests failing because pharo String class does not implements
> #squeakToUtf8
> nor
> #utf8ToSqueak
>
> Do we having an uniform way how to encode  ANY String -> ByteString(utf8)
> and back? What ANSI standard saying about it? Maybe i'm using wrong methods?
>
Update:
- fixed the utf8 stuff, by using a #convertToEncoding: / #convertFromEncoding:
- @Pharoers: do not file-in a reorganize crap, attached in *phase* and
*cleanup* changesets.
There is an issue with #defaultMethodTrailer implementation, which i
missed to change.
In trunk, i changed it in TCompilingBehavior
but in Pharo, there's no such trait.
There is an additional .cs to fix that
(see notes on mantis)
Pfff.. i hope i din't miss anything this time :)
--
Best regards,
Igor Stasenko AKA sig.
Dec. 20, 2009
Re: [Pharo-project] was "Re: About projects with Metacello"
by csrabak@bol.com.br
Em 20/12/2009 17:50, Mariano Martinez Peck <marianopeck(a)gmail.com> escreveu:
> On Sun, Dec 20, 2009 at 8:32 PM, <csrabak(a)bol.com.br> wrote:
>
> I cannot find in the archives clues for that, so I'll ask here.
>
> Is there a reason we keep both O2 and OB in parallel? Can't we
> just get the best parts of one of the solutions and consider the
> other as the "trunk" or mainstream for Pharo?
>
> Of course we can and I really would like that also...but..who do it?
OK, Mariano! Before we engage in "who'll do it" we have to have a clear vision on the _what_ to do it!
If the project participant's all agree with this, we can open an issue specific to table what should be kept from the incumbent browser[s] to the one considered to be the next thing®.
I surmase correctly O2 is the one to be fully developed and we should scavenge the interesting ideas from the other available implementations (IIUC including Whisker).
Then we can see if the desired features fit in the present architecture (still thinking of O2) or if we should start from a lower ground implementing all the new ideas using Glamor (for example).
Once the all effort is more or less understood, we can look for ways of getting resources for it (including the funding for people working in it, or chopping the tasks in chunks small enough that via Sprints and programming parties we arrive at our objective).
I think Pharo would be a nice "example" for the Smalltalk community if we can get this kind of 'disperse engineering' to work!
my 0.019999....
--
Cesar Rabak
Dec. 20, 2009
Re: [Pharo-project] was "Re: About projects with Metacello"
by Mariano Martinez Peck
On Sun, Dec 20, 2009 at 8:32 PM, <csrabak(a)bol.com.br> wrote:
> I cannot find in the archives clues for that, so I'll ask here.
>
> Is there a reason we keep both O2 and OB in parallel? Can't we
> just get the best parts of one of the solutions and consider the
> other as the "trunk" or mainstream for Pharo?
>
>
Of course we can and I really would like that also...but..who do it ?
> --
> Cesar Rabak
>
>
> Em 20/12/2009 06:32, Lukas Renggli < renggli(a)gmail.com > escreveu:
>
>
> > I think it would be better to have ConfigurationOfRefactoring and two
> > other: ConfigurationOfOB and ConfigurationOfO2, which have the former
> > as a required project (and IIUC it was your first intention, right?).
> > This will reduce duplication of dependencies between projects.
>
> O2 breaks OB, if both are loaded. I suggest that the configurations
> should trigger a conflict when somebody tries to load both.
>
> Lukas
>
> --
> Lukas Renggli
> http://www.lukas-renggli.ch
>
> _______________________________________________
> Pharo-project mailing list
> Pharo-project(a)lists.gforge.inria.fr
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>
>
> _______________________________________________
> Pharo-project mailing list
> Pharo-project(a)lists.gforge.inria.fr
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>
Dec. 20, 2009
[Pharo-project] Long method can not be compiled using #compile: aString
by Bart Gauquie
Dear all,
I'm developing code which generates a method content, compiles it and adds
it to an existing class.
I compile the message using #compile: message:
for instance:
MorphicReplayDemoTest compile: '
testMethod
self addMMEFrom: 1054@512 to: 1037@504.
self addMMEFrom: 651@559 to: 643@579.
'.
This works fine. However if the contents of the method is too long; for
instance:
if the self addMMEFrom: 1054@512 to: 1037@504. is repeated around 250 times;
I get following error (see stack below)
The strange thing is that if I manually add that method using the editor and
paste it, it works just fine. I even tested up to 5000 lines of code; its
slow, but its working.
Any ideas how to solve this?
Thanks,
Bart
I'm using Pharo 1.0 rc update: 10502; using Ubuntu 9.10, using vm
pharo-vm-0.15.2f-linux.
THERE_BE_DRAGONS_HERE
MessageNotUnderstood: receiver of "<" is nil
20 December 2009 8:17:14 pm
VM: unix - i686 - linux-gnu - Pharo0.1 of 16 May 2008 [latest update:
#10074]
Image: PharoCore1.0rc1 [Latest update: #10502]
SecurityManager state:
Restricted: false
FileAccess: true
SocketAccess: true
Working Dir /home/gauquiebart/Smalltalk/Pharo/Images/Pharo 1.0 Playground
Image
Trusted Dir /home/gauquiebart/Smalltalk/Pharo/Images/Pharo 1.0 Playground
Image/secure
Untrusted Dir /home/gauquiebart/Smalltalk/Pharo/Images/Pharo 1.0 Playground
Image/My Squeak
UndefinedObject(Object)>>doesNotUnderstand: #<
Receiver: nil
Arguments and temporary variables:
aMessage: < 0
exception: MessageNotUnderstood: receiver of "<" is nil
resumeValue: nil
Receiver's instance variables:
nil
EncoderForV3PlusClosures(EncoderForV3)>>genPushLiteral:
Receiver: {an EncoderForV3PlusClosures}
Arguments and temporary variables:
literalIndex: nil
Receiver's instance variables:
comment: nil
pc: nil
scopeTable: a Dictionary('false'->{false} 'nil'->{nil}
'recording'->{recording}...etc...
nTemps: 0
supered: false
requestor: nil
class: MorphicReplayDemoTest
selector: #testMethod
literalStream: a WriteStream {#addMMEFrom:to:. 1054. 512. 1037. 504. 979.
482. ...etc...
selectorSet: a Dictionary(#*->{*} #+->{+} #-->{-} #/->{/} #'//'->{//}
#<->{<} #...etc...
litIndSet: a
Dictionary(#MouseButtonEvent->MouseButtonEvent->{MouseButtonEvent}...etc...
litSet: a LiteralDictionary(size 402)
sourceRanges: a Dictionary(size 853)
globalSourceRanges: an OrderedCollection({'MouseButtonEvent'. (5763 to:
5778). ...etc...
addedSelectorAndMethodClassLiterals: false
stream: {an EncoderForV3PlusClosures}
position: 0
rootNode: testMethod
self addMMEFrom: 1054 @ 512 to: 1037 @ 504.
self addMMEF...etc...
blockExtentsToLocals: nil
EncoderForV3PlusClosures(BytecodeEncoder)>>sizeOpcodeSelector:withArguments:
Receiver: {an EncoderForV3PlusClosures}
Arguments and temporary variables:
genSelector: #genPushLiteral:
args: #(nil)
Receiver's instance variables:
comment: nil
pc: nil
scopeTable: a Dictionary('false'->{false} 'nil'->{nil}
'recording'->{recording}...etc...
nTemps: 0
supered: false
requestor: nil
class: MorphicReplayDemoTest
selector: #testMethod
literalStream: a WriteStream {#addMMEFrom:to:. 1054. 512. 1037. 504. 979.
482. ...etc...
selectorSet: a Dictionary(#*->{*} #+->{+} #-->{-} #/->{/} #'//'->{//}
#<->{<} #...etc...
litIndSet: a
Dictionary(#MouseButtonEvent->MouseButtonEvent->{MouseButtonEvent}...etc...
litSet: a LiteralDictionary(size 402)
sourceRanges: a Dictionary(size 853)
globalSourceRanges: an OrderedCollection({'MouseButtonEvent'. (5763 to:
5778). ...etc...
addedSelectorAndMethodClassLiterals: false
stream: {an EncoderForV3PlusClosures}
position: 0
rootNode: testMethod
self addMMEFrom: 1054 @ 512 to: 1037 @ 504.
self addMMEF...etc...
blockExtentsToLocals: nil
EncoderForV3PlusClosures(BytecodeEncoder)>>sizePushLiteral:
Receiver: {an EncoderForV3PlusClosures}
Arguments and temporary variables:
literalIndex: nil
Receiver's instance variables:
comment: nil
pc: nil
scopeTable: a Dictionary('false'->{false} 'nil'->{nil}
'recording'->{recording}...etc...
nTemps: 0
supered: false
requestor: nil
class: MorphicReplayDemoTest
selector: #testMethod
literalStream: a WriteStream {#addMMEFrom:to:. 1054. 512. 1037. 504. 979.
482. ...etc...
selectorSet: a Dictionary(#*->{*} #+->{+} #-->{-} #/->{/} #'//'->{//}
#<->{<} #...etc...
litIndSet: a
Dictionary(#MouseButtonEvent->MouseButtonEvent->{MouseButtonEvent}...etc...
litSet: a LiteralDictionary(size 402)
sourceRanges: a Dictionary(size 853)
globalSourceRanges: an OrderedCollection({'MouseButtonEvent'. (5763 to:
5778). ...etc...
addedSelectorAndMethodClassLiterals: false
stream: {an EncoderForV3PlusClosures}
position: 0
rootNode: testMethod
self addMMEFrom: 1054 @ 512 to: 1037 @ 504.
self addMMEF...etc...
blockExtentsToLocals: nil
LiteralNode>>sizeCodeForValue:
Receiver: {397}
Arguments and temporary variables:
encoder: {an EncoderForV3PlusClosures}
Receiver's instance variables:
comment: nil
pc: nil
key: 397
code: -3
index: nil
[] in MessageNode>>sizeCodeForValue:
Receiver: {1092 @ 397}
Arguments and temporary variables:
<<error during printing>
Receiver's instance variables:
comment: nil
pc: nil
receiver: {1092}
selector: {@}
precedence: 2
special: 0
arguments: #({397})
sizes: #(nil)
equalNode: nil
caseErrorNode: nil
Array(SequenceableCollection)>>collect:
Receiver: #({397})
Arguments and temporary variables:
aBlock: [closure] in MessageNode>>sizeCodeForValue:
newCollection: #(nil)
index: 1
indexLimiT: 1
Receiver's instance variables:
#({397})
MessageNode>>sizeCodeForValue:
Receiver: {1092 @ 397}
Arguments and temporary variables:
<<error during printing>
Receiver's instance variables:
comment: nil
pc: nil
receiver: {1092}
selector: {@}
precedence: 2
special: 0
arguments: #({397})
sizes: #(nil)
equalNode: nil
caseErrorNode: nil
[] in MessageNode>>sizeCodeForValue:
Receiver: {self addMMEFrom: 1140 @ 387 to: 1092 @ 397}
Arguments and temporary variables:
<<error during printing>
Receiver's instance variables:
comment: nil
pc: nil
receiver: {self}
selector: {addMMEFrom:to:}
precedence: 3
special: 0
arguments: an OrderedCollection({1140 @ 387} {1092 @ 397})
sizes: #(nil nil)
equalNode: nil
caseErrorNode: nil
OrderedCollection>>collect:
Receiver: an OrderedCollection({1140 @ 387} {1092 @ 397})
Arguments and temporary variables:
aBlock: [closure] in MessageNode>>sizeCodeForValue:
newCollection: an OrderedCollection(7)
index: 4
Receiver's instance variables:
array: an Array(nil nil {1140 @ 387} {1092 @ 397} nil nil nil nil nil nil)
firstIndex: 3
lastIndex: 4
MessageNode>>sizeCodeForValue:
Receiver: {self addMMEFrom: 1140 @ 387 to: 1092 @ 397}
Arguments and temporary variables:
<<error during printing>
Receiver's instance variables:
comment: nil
pc: nil
receiver: {self}
selector: {addMMEFrom:to:}
precedence: 3
special: 0
arguments: an OrderedCollection({1140 @ 387} {1092 @ 397})
sizes: #(nil nil)
equalNode: nil
caseErrorNode: nil
MessageNode(ParseNode)>>sizeCodeForEffect:
Receiver: {self addMMEFrom: 1140 @ 387 to: 1092 @ 397}
Arguments and temporary variables:
encoder: {an EncoderForV3PlusClosures}
Receiver's instance variables:
comment: nil
pc: nil
receiver: {self}
selector: {addMMEFrom:to:}
precedence: 3
special: 0
arguments: an OrderedCollection({1140 @ 387} {1092 @ 397})
sizes: #(nil nil)
equalNode: nil
caseErrorNode: nil
MessageNode>>sizeCodeForEffect:
Receiver: {self addMMEFrom: 1140 @ 387 to: 1092 @ 397}
Arguments and temporary variables:
encoder: {an EncoderForV3PlusClosures}
Receiver's instance variables:
comment: nil
pc: nil
receiver: {self}
selector: {addMMEFrom:to:}
precedence: 3
special: 0
arguments: an OrderedCollection({1140 @ 387} {1092 @ 397})
sizes: #(nil nil)
equalNode: nil
caseErrorNode: nil
BlockNode>>sizeCodeExceptLast:
Receiver: {[self addMMEFrom: 1054 @ 512 to: 1037 @ 504.
self addMMEFrom: 1037 @ 504 to: 979 @ 482.
...etc...
Arguments and temporary variables:
encoder: {an EncoderForV3PlusClosures}
codeSize: 2564
i: 169
statement: {self addMMEFrom: 1140 @ 387 to: 1092 @ 397}
iLimiT: 287
Receiver's instance variables:
comment: nil
pc: nil
arguments: #()
statements: an OrderedCollection({self addMMEFrom: 1054 @ 512 to: 1037 @
504} {...etc...
returns: true
nArgsNode: nil
size: nil
remoteCopyNode: nil
temporaries: an OrderedCollection()
optimized: false
actualScopeIfOptimized: nil
blockExtent: (0 to: 2)
remoteTempNode: nil
copiedValues: nil
closureCreationNode: nil
startOfLastStatement: 11519
BlockNode>>sizeCodeForEvaluatedValue:
Receiver: {[self addMMEFrom: 1054 @ 512 to: 1037 @ 504.
self addMMEFrom: 1037 @ 504 to: 979 @ 482.
...etc...
Arguments and temporary variables:
encoder: {an EncoderForV3PlusClosures}
Receiver's instance variables:
comment: nil
pc: nil
arguments: #()
statements: an OrderedCollection({self addMMEFrom: 1054 @ 512 to: 1037 @
504} {...etc...
returns: true
nArgsNode: nil
size: nil
remoteCopyNode: nil
temporaries: an OrderedCollection()
optimized: false
actualScopeIfOptimized: nil
blockExtent: (0 to: 2)
remoteTempNode: nil
copiedValues: nil
closureCreationNode: nil
startOfLastStatement: 11519
BytecodeAgnosticMethodNode>>generate:
Receiver: testMethod
self addMMEFrom: 1054 @ 512 to: 1037 @ 504.
self addMMEFrom: 1037 @ 504 to: 9...etc...
Arguments and temporary variables:
trailer: #(0 0 0 0)
primErrNode: nil
blkSize: nil
nLits: nil
literals: nil
stack: nil
method: nil
locals: nil
lit: nil
Receiver's instance variables:
comment: nil
pc: nil
selectorOrFalse: #testMethod
precedence: 1
arguments: #()
block: {[self addMMEFrom: 1054 @ 512 to: 1037 @ 504.
self addMMEFrom: 1037 @ 5...etc...
primitive: 0
encoder: {an EncoderForV3PlusClosures}
temporaries: #()
properties: an AdditionalMethodState
sourceText: 'testMethod
self addMMEFrom: 1054@512 to: 1037@504.
self addMMEFr...etc...
locationCounter: 3
localsPool: an IdentitySet()
CompiledMethodWithNode class>>generateMethodFromNode:trailer:
Receiver: CompiledMethodWithNode
Arguments and temporary variables:
aMethodNode: testMethod
self addMMEFrom: 1054 @ 512 to: 1037 @ 504.
self addM...etc...
bytes: #(0 0 0 0)
Receiver's instance variables:
superclass: Object
methodDict: a MethodDictionary(#method->a CompiledMethod(650:
CompiledMethodWit...etc...
format: 134
instanceVariables: #('node' 'method')
organization: ('accessing' method node selector)
('private' method: node:)
subclasses: nil
name: #CompiledMethodWithNode
classPool: nil
sharedPools: nil
environment: Smalltalk
category: #'Compiler-Support'
traitComposition: nil
localSelectors: nil
MorphicReplayDemoTest
class(Behavior)>>compile:classified:notifying:trailer:ifFail:
Receiver: MorphicReplayDemoTest
Arguments and temporary variables:
code: 'testMethod
self addMMEFrom: 1054@512 to: 1037@504.
self addMMEFrom: 10...etc...
category: #'as yet unclassified'
requestor: nil
bytes: #(0 0 0 0)
failBlock: [closure] in MorphicReplayDemoTest
class(ClassDescription)>>compile:...etc...
methodNode: testMethod
self addMMEFrom: 1054 @ 512 to: 1037 @ 504.
self addMM...etc...
Receiver's instance variables:
superclass: AbstractReplayTestCase
methodDict: a MethodDictionary(#testMethod->a CompiledMethod(1191:
MorphicRepla...etc...
format: 134
instanceVariables: nil
organization: ('tests' testMethod)
subclasses: nil
name: #MorphicReplayDemoTest
classPool: nil
sharedPools: nil
environment: Smalltalk
category: #'MorphicsRecordNPlay-Model'
traitComposition: nil
localSelectors: nil
history: a Dictionary(#errors->a Set() #failures->a Set() #passed->a
Set(#testM...etc...
MorphicReplayDemoTest
class(ClassDescription)>>compile:classified:withStamp:notifying:logSource:
Receiver: MorphicReplayDemoTest
Arguments and temporary variables:
text: 'testMethod
self addMMEFrom: 1054@512 to: 1037@504.
self addMMEFrom: 10...etc...
category: #'as yet unclassified'
changeStamp: 'BartGauquie 12/20/2009 20:17'
requestor: nil
logSource: true
methodAndNode: nil
Receiver's instance variables:
superclass: AbstractReplayTestCase
methodDict: a MethodDictionary(#testMethod->a CompiledMethod(1191:
MorphicRepla...etc...
format: 134
instanceVariables: nil
organization: ('tests' testMethod)
subclasses: nil
name: #MorphicReplayDemoTest
classPool: nil
sharedPools: nil
environment: Smalltalk
category: #'MorphicsRecordNPlay-Model'
traitComposition: nil
localSelectors: nil
history: a Dictionary(#errors->a Set() #failures->a Set() #passed->a
Set(#testM...etc...
MorphicReplayDemoTest
class(ClassDescription)>>compile:classified:withStamp:notifying:
Receiver: MorphicReplayDemoTest
Arguments and temporary variables:
text: 'testMethod
self addMMEFrom: 1054@512 to: 1037@504.
self addMMEFrom: 10...etc...
category: #'as yet unclassified'
changeStamp: 'BartGauquie 12/20/2009 20:17'
requestor: nil
Receiver's instance variables:
superclass: AbstractReplayTestCase
methodDict: a MethodDictionary(#testMethod->a CompiledMethod(1191:
MorphicRepla...etc...
format: 134
instanceVariables: nil
organization: ('tests' testMethod)
subclasses: nil
name: #MorphicReplayDemoTest
classPool: nil
sharedPools: nil
environment: Smalltalk
category: #'MorphicsRecordNPlay-Model'
traitComposition: nil
localSelectors: nil
history: a Dictionary(#errors->a Set() #failures->a Set() #passed->a
Set(#testM...etc...
MorphicReplayDemoTest class(ClassDescription)>>compile:classified:notifying:
Receiver: MorphicReplayDemoTest
Arguments and temporary variables:
text: 'testMethod
self addMMEFrom: 1054@512 to: 1037@504.
self addMMEFrom: 10...etc...
category: #'as yet unclassified'
requestor: nil
stamp: 'BartGauquie 12/20/2009 20:17'
Receiver's instance variables:
superclass: AbstractReplayTestCase
methodDict: a MethodDictionary(#testMethod->a CompiledMethod(1191:
MorphicRepla...etc...
format: 134
instanceVariables: nil
organization: ('tests' testMethod)
subclasses: nil
name: #MorphicReplayDemoTest
classPool: nil
sharedPools: nil
environment: Smalltalk
category: #'MorphicsRecordNPlay-Model'
traitComposition: nil
localSelectors: nil
history: a Dictionary(#errors->a Set() #failures->a Set() #passed->a
Set(#testM...etc...
MorphicReplayDemoTest class(ClassDescription)>>compile:notifying:
Receiver: MorphicReplayDemoTest
Arguments and temporary variables:
code: 'testMethod
self addMMEFrom: 1054@512 to: 1037@504.
self addMMEFrom: 10...etc...
requestor: nil
Receiver's instance variables:
superclass: AbstractReplayTestCase
methodDict: a MethodDictionary(#testMethod->a CompiledMethod(1191:
MorphicRepla...etc...
format: 134
instanceVariables: nil
organization: ('tests' testMethod)
subclasses: nil
name: #MorphicReplayDemoTest
classPool: nil
sharedPools: nil
environment: Smalltalk
category: #'MorphicsRecordNPlay-Model'
traitComposition: nil
localSelectors: nil
history: a Dictionary(#errors->a Set() #failures->a Set() #passed->a
Set(#testM...etc...
MorphicReplayDemoTest class(Behavior)>>compile:
Receiver: MorphicReplayDemoTest
Arguments and temporary variables:
code: 'testMethod
self addMMEFrom: 1054@512 to: 1037@504.
self addMMEFrom: 10...etc...
Receiver's instance variables:
superclass: AbstractReplayTestCase
methodDict: a MethodDictionary(#testMethod->a CompiledMethod(1191:
MorphicRepla...etc...
format: 134
instanceVariables: nil
organization: ('tests' testMethod)
subclasses: nil
name: #MorphicReplayDemoTest
classPool: nil
sharedPools: nil
environment: Smalltalk
category: #'MorphicsRecordNPlay-Model'
traitComposition: nil
localSelectors: nil
history: a Dictionary(#errors->a Set() #failures->a Set() #passed->a
Set(#testM...etc...
ByteString>>DoIt
Receiver: 'testMethod
self addMMEFrom: 1054@512 to: 1037@504.
self addMMEFrom: 1037@504 to: 979@48...etc...
Arguments and temporary variables:
Receiver's instance variables:
'testMethod
self addMMEFrom: 1054@512 to: 1037@504.
self addMMEFrom: 1037@504 to: 979@48...etc...
Compiler>>evaluate:in:to:notifying:ifFail:logged:
Receiver: a Compiler
Arguments and temporary variables:
textOrStream: a ReadWriteStream 'MorphicReplayDemoTest
compile: self.'
aContext: nil
receiver: 'testMethod
self addMMEFrom: 1054@512 to: 1037@504.
self addMMEFrom...etc...
aRequestor: a TextMorphEditor
failBlock: [closure] in [] in
TextMorphEditor(ParagraphEditor)>>evaluateSelecti...etc...
logFlag: true
methodNode: DoIt
^ MorphicReplayDemoTest compile: self
method: a CompiledMethod(2378: ByteString>>DoIt)
value: nil
toLog: nil
itsSelection: nil
itsSelectionString: nil
Receiver's instance variables:
sourceStream: a ReadWriteStream 'MorphicReplayDemoTest
compile: self.'
requestor: a TextMorphEditor
class: ByteString
category: nil
context: nil
parser: a Parser
[] in TextMorphEditor(ParagraphEditor)>>evaluateSelection
Receiver: a TextMorphEditor
Arguments and temporary variables:
rcvr: 'testMethod
self addMMEFrom: 1054@512 to: 1037@504.
self addMMEFrom: 10...etc...
ctxt: nil
Receiver's instance variables:
model: a NewInspector
paragraph: a MultiNewParagraph
startBlock: a CharacterBlock with index 39 and rectangle 103@16 corner:
103@32
...etc...
stopBlock: a CharacterBlock with index 1 and character $M and
rectangle 0@0cor...etc...
beginTypeInBlock: nil
emphasisHere: an Array(a TextFontChange font: 2)
initialText: a Text for 'MorphicReplayDemoTest
compile: self
'
selectionShowing: false
otherInterval: (38 to: 38)
lastParentLocation: nil
morph: a TextMorphForEditView(3730)
oldInterval: nil
pivotBlock: nil
BlockClosure>>on:do:
Receiver: [closure] in TextMorphEditor(ParagraphEditor)>>evaluateSelection
Arguments and temporary variables:
exception: OutOfScopeNotification
handlerAction: [closure] in
TextMorphEditor(ParagraphEditor)>>evaluateSelection...etc...
handlerActive: true
Receiver's instance variables:
outerContext: TextMorphEditor(ParagraphEditor)>>evaluateSelection
startpc: 116
numArgs: 0
TextMorphEditor(ParagraphEditor)>>evaluateSelection
Receiver: a TextMorphEditor
Arguments and temporary variables:
result: nil
rcvr: 'testMethod
self addMMEFrom: 1054@512 to: 1037@504.
self addMMEFrom: 10...etc...
ctxt: nil
Receiver's instance variables:
model: a NewInspector
paragraph: a MultiNewParagraph
startBlock: a CharacterBlock with index 39 and rectangle 103@16 corner:
103@32
...etc...
stopBlock: a CharacterBlock with index 1 and character $M and
rectangle 0@0cor...etc...
beginTypeInBlock: nil
emphasisHere: an Array(a TextFontChange font: 2)
initialText: a Text for 'MorphicReplayDemoTest
compile: self
'
selectionShowing: false
otherInterval: (38 to: 38)
lastParentLocation: nil
morph: a TextMorphForEditView(3730)
oldInterval: nil
pivotBlock: nil
TextMorphEditor(ParagraphEditor)>>doIt
Receiver: a TextMorphEditor
Arguments and temporary variables:
Receiver's instance variables:
model: a NewInspector
paragraph: a MultiNewParagraph
startBlock: a CharacterBlock with index 39 and rectangle 103@16 corner:
103@32
...etc...
stopBlock: a CharacterBlock with index 1 and character $M and
rectangle 0@0cor...etc...
beginTypeInBlock: nil
emphasisHere: an Array(a TextFontChange font: 2)
initialText: a Text for 'MorphicReplayDemoTest
compile: self
'
selectionShowing: false
otherInterval: (38 to: 38)
lastParentLocation: nil
morph: a TextMorphForEditView(3730)
oldInterval: nil
pivotBlock: nil
[] in TextMorphEditor(ParagraphEditor)>>doIt:
Receiver: a TextMorphEditor
Arguments and temporary variables:
Receiver's instance variables:
model: a NewInspector
paragraph: a MultiNewParagraph
startBlock: a CharacterBlock with index 39 and rectangle 103@16 corner:
103@32
...etc...
stopBlock: a CharacterBlock with index 1 and character $M and
rectangle 0@0cor...etc...
beginTypeInBlock: nil
emphasisHere: an Array(a TextFontChange font: 2)
initialText: a Text for 'MorphicReplayDemoTest
compile: self
'
selectionShowing: false
otherInterval: (38 to: 38)
lastParentLocation: nil
morph: a TextMorphForEditView(3730)
oldInterval: nil
pivotBlock: nil
TextMorphEditor(ParagraphEditor)>>terminateAndInitializeAround:
Receiver: a TextMorphEditor
Arguments and temporary variables:
aBlock: [closure] in TextMorphEditor(ParagraphEditor)>>doIt:
Receiver's instance variables:
model: a NewInspector
paragraph: a MultiNewParagraph
startBlock: a CharacterBlock with index 39 and rectangle 103@16 corner:
103@32
...etc...
stopBlock: a CharacterBlock with index 1 and character $M and
rectangle 0@0cor...etc...
beginTypeInBlock: nil
emphasisHere: an Array(a TextFontChange font: 2)
initialText: a Text for 'MorphicReplayDemoTest
compile: self
'
selectionShowing: false
otherInterval: (38 to: 38)
lastParentLocation: nil
morph: a TextMorphForEditView(3730)
oldInterval: nil
pivotBlock: nil
TextMorphEditor(ParagraphEditor)>>doIt:
Receiver: a TextMorphEditor
Arguments and temporary variables:
characterStream: a WriteStream ''
Receiver's instance variables:
model: a NewInspector
paragraph: a MultiNewParagraph
startBlock: a CharacterBlock with index 39 and rectangle 103@16 corner:
103@32
...etc...
stopBlock: a CharacterBlock with index 1 and character $M and
rectangle 0@0cor...etc...
beginTypeInBlock: nil
emphasisHere: an Array(a TextFontChange font: 2)
initialText: a Text for 'MorphicReplayDemoTest
compile: self
'
selectionShowing: false
otherInterval: (38 to: 38)
lastParentLocation: nil
morph: a TextMorphForEditView(3730)
oldInterval: nil
pivotBlock: nil
TextMorphEditor(ParagraphEditor)>>dispatchOnKeyEvent:with:
Receiver: a TextMorphEditor
Arguments and temporary variables:
keyEvent: [keystroke '<Cmd-d>']
typeAheadStream: a WriteStream ''
honorCommandKeys: true
keyValue: 100
keyChar: $d
char: $d
action: #doIt:
Receiver's instance variables:
model: a NewInspector
paragraph: a MultiNewParagraph
startBlock: a CharacterBlock with index 39 and rectangle 103@16 corner:
103@32
...etc...
stopBlock: a CharacterBlock with index 1 and character $M and
rectangle 0@0cor...etc...
beginTypeInBlock: nil
emphasisHere: an Array(a TextFontChange font: 2)
initialText: a Text for 'MorphicReplayDemoTest
compile: self
'
selectionShowing: false
otherInterval: (38 to: 38)
lastParentLocation: nil
morph: a TextMorphForEditView(3730)
oldInterval: nil
pivotBlock: nil
TextMorphEditor>>dispatchOnKeyEvent:with:
Receiver: a TextMorphEditor
Arguments and temporary variables:
keyEvent: [keystroke '<Cmd-d>']
typeAheadStream: a WriteStream ''
Receiver's instance variables:
model: a NewInspector
paragraph: a MultiNewParagraph
startBlock: a CharacterBlock with index 39 and rectangle 103@16 corner:
103@32
...etc...
stopBlock: a CharacterBlock with index 1 and character $M and
rectangle 0@0cor...etc...
beginTypeInBlock: nil
emphasisHere: an Array(a TextFontChange font: 2)
initialText: a Text for 'MorphicReplayDemoTest
compile: self
'
selectionShowing: false
otherInterval: (38 to: 38)
lastParentLocation: nil
morph: a TextMorphForEditView(3730)
oldInterval: nil
pivotBlock: nil
TextMorphEditor(ParagraphEditor)>>keystroke:
Receiver: a TextMorphEditor
Arguments and temporary variables:
keyEvent: [keystroke '<Cmd-d>']
typeAhead: a WriteStream ''
Receiver's instance variables:
model: a NewInspector
paragraph: a MultiNewParagraph
startBlock: a CharacterBlock with index 39 and rectangle 103@16 corner:
103@32
...etc...
stopBlock: a CharacterBlock with index 1 and character $M and
rectangle 0@0cor...etc...
beginTypeInBlock: nil
emphasisHere: an Array(a TextFontChange font: 2)
initialText: a Text for 'MorphicReplayDemoTest
compile: self
'
selectionShowing: false
otherInterval: (38 to: 38)
lastParentLocation: nil
morph: a TextMorphForEditView(3730)
oldInterval: nil
pivotBlock: nil
TextMorphEditor>>keystroke:
Receiver: a TextMorphEditor
Arguments and temporary variables:
keyEvent: [keystroke '<Cmd-d>']
Receiver's instance variables:
model: a NewInspector
paragraph: a MultiNewParagraph
startBlock: a CharacterBlock with index 39 and rectangle 103@16 corner:
103@32
...etc...
stopBlock: a CharacterBlock with index 1 and character $M and
rectangle 0@0cor...etc...
beginTypeInBlock: nil
emphasisHere: an Array(a TextFontChange font: 2)
initialText: a Text for 'MorphicReplayDemoTest
compile: self
'
selectionShowing: false
otherInterval: (38 to: 38)
lastParentLocation: nil
morph: a TextMorphForEditView(3730)
oldInterval: nil
pivotBlock: nil
[] in [] in TextMorphForEditView(TextMorph)>>keyStroke:
Receiver: a TextMorphForEditView(3730)
Arguments and temporary variables:
evt: [keystroke '<Cmd-d>']
Receiver's instance variables:
bounds: 0@0 corner: 358@34
owner: a TransformMorph(942)
submorphs: #()
fullBounds: 0@0 corner: 358@34
color: Color black
extension: a MorphExtension (3477) [other: (blinkStart -> 11369859)]
borderWidth: 0
borderColor: Color black
textStyle: a TextStyle Bitmap DejaVu Sans 9
text: a Text for 'MorphicReplayDemoTest
compile: self.'
wrapFlag: true
paragraph: a MultiNewParagraph
editor: a TextMorphEditor
container: nil
predecessor: nil
successor: nil
backgroundColor: nil
margins: nil
editHistory: a TextMorphCommandHistory
editView: a PluggableTextMorphPlus(2866)
acceptOnCR: false
TextMorphForEditView(TextMorph)>>handleInteraction:
Receiver: a TextMorphForEditView(3730)
Arguments and temporary variables:
interactionBlock: [closure] in [] in
TextMorphForEditView(TextMorph)>>keyStroke...etc...
oldEditor: a TextMorphEditor
oldParagraph: a MultiNewParagraph
oldText: a Text for 'MorphicReplayDemoTest
compile: self.'
Receiver's instance variables:
bounds: 0@0 corner: 358@34
owner: a TransformMorph(942)
submorphs: #()
fullBounds: 0@0 corner: 358@34
color: Color black
extension: a MorphExtension (3477) [other: (blinkStart -> 11369859)]
borderWidth: 0
borderColor: Color black
textStyle: a TextStyle Bitmap DejaVu Sans 9
text: a Text for 'MorphicReplayDemoTest
compile: self.'
wrapFlag: true
paragraph: a MultiNewParagraph
editor: a TextMorphEditor
container: nil
predecessor: nil
successor: nil
backgroundColor: nil
margins: nil
editHistory: a TextMorphCommandHistory
editView: a PluggableTextMorphPlus(2866)
acceptOnCR: false
TextMorphForEditView>>handleInteraction:
Receiver: a TextMorphForEditView(3730)
Arguments and temporary variables:
interActionBlock: [closure] in [] in
TextMorphForEditView(TextMorph)>>keyStroke...etc...
Receiver's instance variables:
bounds: 0@0 corner: 358@34
owner: a TransformMorph(942)
submorphs: #()
fullBounds: 0@0 corner: 358@34
color: Color black
extension: a MorphExtension (3477) [other: (blinkStart -> 11369859)]
borderWidth: 0
borderColor: Color black
textStyle: a TextStyle Bitmap DejaVu Sans 9
text: a Text for 'MorphicReplayDemoTest
compile: self.'
wrapFlag: true
paragraph: a MultiNewParagraph
editor: a TextMorphEditor
container: nil
predecessor: nil
successor: nil
backgroundColor: nil
margins: nil
editHistory: a TextMorphCommandHistory
editView: a PluggableTextMorphPlus(2866)
acceptOnCR: false
--- The full stack ---
UndefinedObject(Object)>>doesNotUnderstand: #<
EncoderForV3PlusClosures(EncoderForV3)>>genPushLiteral:
EncoderForV3PlusClosures(BytecodeEncoder)>>sizeOpcodeSelector:withArguments:
EncoderForV3PlusClosures(BytecodeEncoder)>>sizePushLiteral:
LiteralNode>>sizeCodeForValue:
[] in MessageNode>>sizeCodeForValue:
Array(SequenceableCollection)>>collect:
MessageNode>>sizeCodeForValue:
[] in MessageNode>>sizeCodeForValue:
OrderedCollection>>collect:
MessageNode>>sizeCodeForValue:
MessageNode(ParseNode)>>sizeCodeForEffect:
MessageNode>>sizeCodeForEffect:
BlockNode>>sizeCodeExceptLast:
BlockNode>>sizeCodeForEvaluatedValue:
BytecodeAgnosticMethodNode>>generate:
CompiledMethodWithNode class>>generateMethodFromNode:trailer:
MorphicReplayDemoTest
class(Behavior)>>compile:classified:notifying:trailer:ifFail:
MorphicReplayDemoTest
class(ClassDescription)>>compile:classified:withStamp:notifying:logSource:
MorphicReplayDemoTest
class(ClassDescription)>>compile:classified:withStamp:notifying:
MorphicReplayDemoTest class(ClassDescription)>>compile:classified:notifying:
MorphicReplayDemoTest class(ClassDescription)>>compile:notifying:
MorphicReplayDemoTest class(Behavior)>>compile:
ByteString>>DoIt
Compiler>>evaluate:in:to:notifying:ifFail:logged:
[] in TextMorphEditor(ParagraphEditor)>>evaluateSelection
BlockClosure>>on:do:
TextMorphEditor(ParagraphEditor)>>evaluateSelection
TextMorphEditor(ParagraphEditor)>>doIt
[] in TextMorphEditor(ParagraphEditor)>>doIt:
TextMorphEditor(ParagraphEditor)>>terminateAndInitializeAround:
TextMorphEditor(ParagraphEditor)>>doIt:
TextMorphEditor(ParagraphEditor)>>dispatchOnKeyEvent:with:
TextMorphEditor>>dispatchOnKeyEvent:with:
TextMorphEditor(ParagraphEditor)>>keystroke:
TextMorphEditor>>keystroke:
[] in [] in TextMorphForEditView(TextMorph)>>keyStroke:
TextMorphForEditView(TextMorph)>>handleInteraction:
TextMorphForEditView>>handleInteraction:
- - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - -
[] in TextMorphForEditView(TextMorph)>>keyStroke:
ECToolSet class>>codeCompletionAround:textMorph:keyStroke:
DEVToolSet class>>codeCompletionAround:textMorph:keyStroke:
ToolSet class>>codeCompletionAround:textMorph:keyStroke:
TextMorphForEditView(TextMorph)>>keyStroke:
TextMorphForEditView>>keyStroke:
TextMorphForEditView(TextMorph)>>handleKeystroke:
KeyboardEvent>>sentTo:
TextMorphForEditView(Morph)>>handleEvent:
TextMorphForEditView(Morph)>>handleFocusEvent:
[] in HandMorph>>sendFocusEvent:to:clear:
[] in PasteUpMorph>>becomeActiveDuring:
BlockClosure>>on:do:
PasteUpMorph>>becomeActiveDuring:
HandMorph>>sendFocusEvent:to:clear:
HandMorph>>sendEvent:focus:clear:
HandMorph>>sendKeyboardEvent:
HandMorph>>handleEvent:
HandMorph>>processEvents
[] in WorldState>>doOneCycleNowFor:
Array(SequenceableCollection)>>do:
WorldState>>handsDo:
WorldState>>doOneCycleNowFor:
WorldState>>doOneCycleFor:
PasteUpMorph>>doOneCycle
[] in Project class>>spawnNewProcess
[] in BlockClosure>>newProcess
-----------------------------------------------------------
Dec. 20, 2009
[Pharo-project] was "Re: About projects with Metacello"
by csrabak@bol.com.br
I cannot find in the archives clues for that, so I'll ask here.
Is there a reason we keep both O2 and OB in parallel? Can't we
just get the best parts of one of the solutions and consider the
other as the "trunk" or mainstream for Pharo?
--
Cesar Rabak
Em 20/12/2009 06:32, Lukas Renggli < renggli(a)gmail.com > escreveu:
> I think it would be better to have ConfigurationOfRefactoring and two
> other: ConfigurationOfOB and ConfigurationOfO2, which have the former
> as a required project (and IIUC it was your first intention, right?).
> This will reduce duplication of dependencies between projects.
O2 breaks OB, if both are loaded. I suggest that the configurations
should trigger a conflict when somebody tries to load both.
Lukas
--
Lukas Renggli
http://www.lukas-renggli.ch
_______________________________________________
Pharo-project mailing list
Pharo-project(a)lists.gforge.inria.fr
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Dec. 20, 2009
[Pharo-project] CompiledMethodTrailers ready for use
by Igor Stasenko
Hello,
i finished this stuff, and its ready for adoption.
See http://bugs.squeak.org/view.php?id=7428
Anyone wants to help pushing it into trunk update stream (using MC configs)?
It works fine on recent trunk image,
on pharo however i had some problems installing changes, because of
some differencies.
Tried on PharoCore-1.1-11106-ALPHA.image
phase2.1.cs
- do not filein the TextEditor changes, since pharo-core don't have it.
- do not filein the last line (reorganizing)..
- tests failing because pharo String class does not implements
#squeakToUtf8
nor
#utf8ToSqueak
Do we having an uniform way how to encode ANY String -> ByteString(utf8)
and back? What ANSI standard saying about it? Maybe i'm using wrong methods?
Still, i think we need this thing standartized and be common for all
dialects (not just Pharo/Squeak).
--
Best regards,
Igor Stasenko AKA sig.
Dec. 20, 2009
Re: [Pharo-project] did you check in 1.1 how the old browser now support the creation of new method cat
by Adrian Lienhard
Version 1.0 is the one to work with, to build and maintain tools for,
etc. Unless you work on the Pharo base system there is no good reason
to use 1.1 at the current time. It is unstable and it is going to
change. Furthermore, nobody can expect that external packages are
already flawlessly working with the moving target 1.1. At a later
point when 1.1 is getting stable it makes sense to move over from 1.0
and make your packages, applications etc. work with the new version.
I don't know the details and context of the discussion that Stef
posted. But I assume that it also concerns packages that are in Pharo
(i.e., packages that are added to PharoCore). There we have a slightly
different situation because these packages are part of the Pharo image
and hence also need to follow its release regime. That is, for the
release of Pharo 1.0, the added packages need to be in a stable state.
The versions of the packages used in Pharo should not add new features
since post release 1.0 there should only be few updates for critical
fixes.
Adrian
On Dec 20, 2009, at 19:16 , Hernán Morales Durand wrote:
> Hi,
> can you clarify what is a frozen 1.0 and which is the stable Pharo
> image to use as a base system to develop tools? (I cannot mantain my
> packages for both 1.0 and 1.1, it's a lot of work)
> Thanks
>
> Hernán
>
> 2009/12/20 Stéphane Ducasse <stephane.ducasse(a)inria.fr>:
>> I sent that to the list because this is really important.
>>
>>
>>
>>
>>>> one of these days we will have to have some pharo specific tools.
>>>
>>> There will be nobody that maintains them. There will be nobody
>>> that takes responsibility and that writes and runs tests. You can
>>> see that with Davids browser, it is dead. You can see that with
>>> Services, they are dead. And many others ...
>>
>> Yes but pharo is moving so slowly we will get more people taking
>> care of packages.
>>
>>> But that is not the real problem. And I didn't mean Squeak
>>> (although that's a problem too, but I personally don't care). What
>>> I ment is the difference between Pharo 1.0 and Pharo 1.1.
>>
>> You lost me there :)
>>
>>> These two versions are killing any progress on the tool front and
>>> makes any maintainer of external packages a lot of pain.
>>
>> Why
>> why don't you freeze a version for pharo1.0
>> Else we can just stop now.
>> because this will be the same with pharo1.1 and 1.2 and 1.0
>>
>>> I spent the complete Thursday and Friday trying to get Helvetia
>>> running in Pharo 1.1, but that doesn't work because it requires
>>> some significant changes in packages like the Refactoring Rngine,
>>> the AST, Shout, eCompletion and OB that are also supposed to work
>>> on Pharo 1.0.
>>
>> No there are not supposed to work in 1.0
>> CERTAIN frozen versions are supposed to work on 1.0 and others won't.
>> A lot of software on mac does not run automatically on snowleopard
>> and 10.2
>>
>> Tell me if Im wrong but we should use release and version.
>>
>>> Adding the category dialog to OB makes it depend on 1.1, thus
>>> people cannot use it in 1.0 anymore. So the category dialog can
>>> maybe happen in a year from now. I cannot use 1.1 at the moment, I
>>> am stuck with the frozen 1.0 version.
>>
>>
>>
>> _______________________________________________
>> Pharo-project mailing list
>> Pharo-project(a)lists.gforge.inria.fr
>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>>
>
> _______________________________________________
> Pharo-project mailing list
> Pharo-project(a)lists.gforge.inria.fr
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Dec. 20, 2009
Re: [Pharo-project] did you check in 1.1 how the old browser now support the creation of new method cat
by Lukas Renggli
> Â can you clarify what is a frozen 1.0 and which is the stable Pharo
> image to use as a base system to develop tools? (I cannot mantain my
> packages for both 1.0 and 1.1, it's a lot of work)
Pharo 1.0rc1 is basically frozen. The unstable moving target is 1.1.
The same here, I cannot maintain versions for 1.0 and 1.1. Also I
cannot freeze my tools for 1.0, because I need to change them and want
to use them on a stable base.
AST and RB should now work in both, but it was a significant amount of
work. I cannot keep RB, OB, Seaside, Pier, Magritte, PetitParser,
SmaCC, ... running on all versions and will concentrate on 1.0 for
now, keeping in mind upcoming changes for the next unstable versions.
Lukas
--
Lukas Renggli
http://www.lukas-renggli.ch
Dec. 20, 2009
Re: [Pharo-project] did you check in 1.1 how the old browser now support the creation of new method cat
by Hernán Morales Durand
Hi,
can you clarify what is a frozen 1.0 and which is the stable Pharo
image to use as a base system to develop tools? (I cannot mantain my
packages for both 1.0 and 1.1, it's a lot of work)
Thanks
Hernán
2009/12/20 Stéphane Ducasse <stephane.ducasse(a)inria.fr>:
> I sent that to the list because this is really important.
>
>
>
>
>>> one of these days we will have to have some pharo specific tools.
>>
>> There will be nobody that maintains them. There will be nobody that takes responsibility and that writes and runs tests. You can see that with Davids browser, it is dead. You can see that with Services, they are dead. And many others ...
>
> Yes but pharo is moving so slowly we will get more people taking care of packages.
>
>> But that is not the real problem. And I didn't mean Squeak (although that's a problem too, but I personally don't care). What I ment is the difference between Pharo 1.0 and Pharo 1.1.
>
> You lost me there :)
>
>> These two versions are killing any progress on the tool front and makes any maintainer of external packages a lot of pain.
>
> Why
> why don't you freeze a version for pharo1.0
> Else we can just stop now.
> because this will be the same with pharo1.1 and 1.2 and 1.0
>
>> I spent the complete Thursday and Friday trying to get Helvetia running in Pharo 1.1, but that doesn't work because it requires some significant changes in packages like the Refactoring Rngine, the AST, Shout, eCompletion and OB that are also supposed to work on Pharo 1.0.
>
> No there are not supposed to work in 1.0
> CERTAIN frozen versions are supposed to work on 1.0 and others won't.
> A lot of software on mac does not run automatically on snowleopard and 10.2
>
> Tell me if Im wrong but we should use release and version.
>
>> Adding the category dialog to OB makes it depend on 1.1, thus people cannot use it in 1.0 anymore. So the category dialog can maybe happen in a year from now. I cannot use 1.1 at the moment, I am stuck with the frozen 1.0 version.
>
>
>
> _______________________________________________
> Pharo-project mailing list
> Pharo-project(a)lists.gforge.inria.fr
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>
Dec. 20, 2009