Pharo-dev
By thread
pharo-dev@lists.pharo.org
By month
Messages by month
- ----- 2026 -----
- July
- June
- May
- April
- March
- February
- January
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
June 2016
- 812 messages
Re: [Pharo-dev] Playground and text evaluation printing result default.
by stepharo
> Hi Stef,
>
> Thanks for the feedback. Sorry for the long email, but I you raised several issues and I thought it is worth addressing them.
>
> The feature we are talking about came into being after several suggestions on this mailing list (and quite some long discussions) that had the scenario of keeping track of several executions. In the first version of the Playground it was not possible to paste directly in the playground. We did not impose anything, it was the contrary.
and the result is that I can spend time removing spurrious comments.
> From your email I see that you would rather prefer the variant of embedding the text as is after pressing Enter. Is this correct?
>
> Here is another variant:
> - Cmd+p
> - Cmd+v ==> paste the string directly in the editor without comments
why not.
but this is confusing with copy paste.
So will you corrupt the current selection.
So should I trade copy/paste with getting a value printed.
May be cmd+r for raw
>
> I think this would fit well.
>
> What do you think?
>
>
> More replies about Spotter inline.
>
>
>> On Jun 7, 2016, at 8:09 AM, stepharo <stepharo(a)free.fr> wrote:
>>
>>
>>
>> Le 5/6/16 à 23:00, Tudor Girba a écrit :
>>> Hi Stef,
>>>
>>> The quotes appear only when you add the result in the playground.
>> No need to explain I'm not idiot and I know it.
>>> The typical use case for this is to keep track of several results.
>> No need to explain I'm not idiot and I know it.
>>> In this situation you do not want to modify the code to not affect the highlighting and this is why it gets in a comment.
>> This is fun because I never ever needed it. But this is probably what everybody else is doing that since this is the default.
>> I just write simple code and tests. Indeed I'm not that smart.
>>
>> But your tools only embedd your scenario and let the other users forced to adapt.
>>
>> Well you do not want but I do.
>> I spent my evening removing quotes while writing tests.
>>
>> What I hate with the GTTools is that you want to teach me how I should work. Sorry but good tools do not do that.
>> Good tools empower the users and not constraint them.
>>
>> I work a lot faster when I do not have to remove the wonderful comments or when I have to copy and paste.
>> This commenting is breaking the flow of efficient people. May be GT team do not work write tests in the
>> debugger but I do most of the time and I'm forced by the environment to remove quotes all over the places.
>>> If you want to copy the content without quotes, you can do:
>>> Cmd+p -> popup
>>> Cmd+c -> selects the current line and copies the text
>>> Esc
>>> Cmd+v
>> Sorry but I do not want.
>> I just want to print and modify directly.
>> 7 keystrokes vs 2
>>> Perhaps we can add another keybinding like Shift+Enter for adding the text without quotes.
>> And why not the inverse.
>> By default printing is printing and if you want to do something else then you have a special binding.
>>
>> Now I'm upset with this general attitude (Oh I will teach how you can be a nice user) that I will turn them off
>> or go and hack my own settings. Still I'm amazingly sad about this state of affair.
>> All these story about GT is hurting me because of this attitude: we are so smart and we thought a lot and we will teach you
> You are mistaken here. We propose solutions that are different because this is the only way to get to something new, but afterwards we iterate multiple times, sometimes even a long time after the introduction of the original feature. For example, for the problem you are mentioning with the Playground appears 1.5 years after we introduced the Playground. The fact that they these interfaces are new breaks existing reflexes and the iterations that happen after are focused mostly on trying to figure out whether this is inconvenient because is new or because it is actually suboptimal.
>
> This discussion is one of those. We wanted to solve the most often appearing case in which we use Cmd+p as a way to preview quickly the result. Pasting the code in the existing playground is an edge case for Cmd+p, not the primary case.
how did you measure it?
Because for me this is always the inverse.
> After having proposed a solution for the primary problem, people raised the issue of the temporary results and then we created the idea of Enter and have comments. This might not be your use case, but others have it.
I did not say the inverse.
>> how you should work... and at the end I the end-user has to adapt.
>> Look at the Spotter discussions: you looked for the graal and I was just telling to you that I cannot find
>> simple information such as class refs!
>>
>> So what saddens me the most is that
>> - you pretend to have end-user trying your tools but I have impression that they are not real power users
>> or this is yourself and it means that you are never exposed to other people.
>> I can still not use Spotter because the way I put my hand on my keyboard. So should change
>> - 1 my hands
>> - 2 my brain
>> - 3 my keyboard
>> - 4 do not use the tools?
>> - funnily enough if I would not have complain aggressively then it looks like we would have the same than before.
> This is incorrect. If you would not complain aggressively, we would simply have a smoother conversation about solutions.
sure.
if you see it like that then not need to explain to me that this is me
that explain to people like esteban and guillermo that there
was a hidden triangle in Spotter.
But believe what you want.
>> Your flow is not mine and I go faster my way but your tools force me to get slow.
>> I do not have the time to produce a video but I would even if it would give a bad press to Pharo.
>> I will do a presentation in the rmod team. Because people do not watch themselves why acting.
> Letâs do a remote session and I watch you do things. This week I am available this Thursday morning or Friday after 11.
I'm not available. Going to hard rock concert with teenagers.
>> Good tools empower the users not constraint them.
>>
>> GTTools feel often like an overengineer guitar that would have hampered Jimmy Hendrix to do crazy solos.
> Could well be.
>
> Doru
>
>
>
>>> Cheers,
>>> Doru
>>>
>>>
>>>
>>>> On Jun 5, 2016, at 10:20 PM, stepharo <stepharo(a)free.fr> wrote:
>>>>
>>>> Hi
>>>>
>>>> I would like to know if there is a setting to remove the "" when printing the result of an expression.
>>>>
>>>> I know that playground has been thought to help me, but today I watched myself removing the comments
>>>>
>>>> code so often that I would like to get a setting because such wrapping of results is really boring for me.
>>>>
>>>> I'm spending my time removing them and I start to wonder why they are any useful.
>>>>
>>>> I would help me to write fast tests for example in the debugger.
>>>>
>>>> Stef
>>>>
>>>>
>>>>
>>> --
>>> www.tudorgirba.com
>>> www.feenk.com
>>>
>>> "What we can governs what we wish."
>>>
>>>
>>>
>>>
>>>
>>>
>>
> --
> www.tudorgirba.com
> www.feenk.com
>
> "Obvious things are difficult to teach."
>
>
>
>
>
>
June 8, 2016
Re: [Pharo-dev] Playground and text evaluation printing result default.
by Tudor Girba
Hi,
> On Jun 8, 2016, at 2:04 AM, Ben Coman <btc(a)openinworld.com> wrote:
>
> On Wed, Jun 8, 2016 at 5:39 AM, Tudor Girba <tudor(a)tudorgirba.com> wrote:
>> Hi Sven,
>>
>> If I understand correctly, Stef talks about the case of building tests in the debugger. There he tries an expression and then wants to capture the result of the expression as an assertion in the code so he wants to paste the result directly. It is a different scenario than the one of capturing results that we store as comments for further reference.
>>
>> Cheers,
>> Doru
>>
>>
>>> On Jun 7, 2016, at 4:50 PM, Sven Van Caekenberghe <sven(a)stfx.eu> wrote:
>>>
>>> The #printString of most objects is not valid Pharo syntax, it makes sense to put those into comments, so that the overall syntax of the workspace/playground is maintained and syntax highlighting can operate normally.
>
> This might be too much a corner case, but I wonder...
> If the domain object provided a sufficiently distinguishing
> printString, then a shortcut that appended the CTRL-P result....
> printString = 'aDomainObject(''identiferâ')
I cannot quite picture what you mean. Could you elaborate. It sounds intriguing?
> to the selected text might provide an interesting workflow for
> developing tests in the debugger.
> Maybe it could be CTRL-P + CTRL-T (for test) ?
I proposed Cmd+p Cmd+v (from paste).
Cheers,
Doru
> A video demo of such might provide a good example of programming in an
> immersive environment. What other environment could do this?
> cheers -ben
>
>
>
>
>
>>>
>>> A result printed as a comment is also easy to select (by double-clicking next to the $" on the inside).
>>>
>>> All this makes sense for literal programming (assuming that is what you are after).
>>>
>>> What is the use case for not doing it like that ? Why do you want the comments gone ?
>>>
>>>> On 07 Jun 2016, at 13:03, Ben Coman <btc(a)openinworld.com> wrote:
>>>>
>>>> On Tue, Jun 7, 2016 at 2:09 PM, stepharo <stepharo(a)free.fr> wrote:
>>>>>
>>>>>
>>>>> Le 5/6/16 à 23:00, Tudor Girba a écrit :
>>>>>>
>>>>>> Hi Stef,
>>>>>>
>>>>>> The quotes appear only when you add the result in the playground.
>>>>>
>>>>>
>>>>> No need to explain I'm not idiot and I know it.
>>>>>>
>>>>>> The typical use case for this is to keep track of several results.
>>>>>
>>>>> No need to explain I'm not idiot and I know it.
>>>>>>
>>>>>> In this situation you do not want to modify the code to not affect the
>>>>>> highlighting and this is why it gets in a comment.
>>>>>
>>>>> This is fun because I never ever needed it. But this is probably what
>>>>> everybody else is doing that since this is the default.
>>>>> I just write simple code and tests. Indeed I'm not that smart.
>>>>>
>>>>> But your tools only embedd your scenario and let the other users forced to
>>>>> adapt.
>>>>>
>>>>> Well you do not want but I do.
>>>>> I spent my evening removing quotes while writing tests.
>>>>>
>>>>> What I hate with the GTTools is that you want to teach me how I should work.
>>>>> Sorry but good tools do not do that.
>>>>> Good tools empower the users and not constraint them.
>>>>>
>>>>> I work a lot faster when I do not have to remove the wonderful comments or
>>>>> when I have to copy and paste.
>>>>> This commenting is breaking the flow of efficient people. May be GT team do
>>>>> not work write tests in the
>>>>> debugger but I do most of the time and I'm forced by the environment to
>>>>> remove quotes all over the places.
>>>>>>
>>>>>> If you want to copy the content without quotes, you can do:
>>>>>> Cmd+p -> popup
>>>>>> Cmd+c -> selects the current line and copies the text
>>>>>> Esc
>>>>>> Cmd+v
>>>>>
>>>>> Sorry but I do not want.
>>>>> I just want to print and modify directly.
>>>>> 7 keystrokes vs 2
>>>>>>
>>>>>> Perhaps we can add another keybinding like Shift+Enter for adding the text
>>>>>> without quotes.
>>>>
>>>> I just had a play with this, and another option might be <ctrl-enter>,
>>>> since the <ctrl> key is still selection from doing <ctrl-P> so there
>>>> is not much difference in hand movements between <enter> and
>>>> <ctrl-enter>
>>>>
>>>> cheers -ben
>>>>
>>>>>
>>>>> And why not the inverse.
>>>>> By default printing is printing and if you want to do something else then
>>>>> you have a special binding.
>>>>
>>>>
>>>>
>>>>> Now I'm upset with this general attitude (Oh I will teach how you can be a
>>>>> nice user) that I will turn them off
>>>>> or go and hack my own settings. Still I'm amazingly sad about this state of
>>>>> affair.
>>>>> All these story about GT is hurting me because of this attitude: we are so
>>>>> smart and we thought a lot and we will teach you
>>>>> how you should work... and at the end I the end-user has to adapt.
>>>>> Look at the Spotter discussions: you looked for the graal and I was just
>>>>> telling to you that I cannot find
>>>>> simple information such as class refs!
>>>>>
>>>>> So what saddens me the most is that
>>>>> - you pretend to have end-user trying your tools but I have impression
>>>>> that they are not real power users
>>>>> or this is yourself and it means that you are never exposed to other
>>>>> people.
>>>>> I can still not use Spotter because the way I put my hand on my
>>>>> keyboard. So should change
>>>>> - 1 my hands
>>>>> - 2 my brain
>>>>> - 3 my keyboard
>>>>> - 4 do not use the tools?
>>>>> - funnily enough if I would not have complain aggressively then it looks
>>>>> like we would have the same than before.
>>>>>
>>>>> Your flow is not mine and I go faster my way but your tools force me to get
>>>>> slow.
>>>>> I do not have the time to produce a video but I would even if it would give
>>>>> a bad press to Pharo.
>>>>> I will do a presentation in the rmod team. Because people do not watch
>>>>> themselves why acting.
>>>>>
>>>>> Good tools empower the users not constraint them.
>>>>>
>>>>> GTTools feel often like an overengineer guitar that would have hampered
>>>>> Jimmy Hendrix to do crazy solos.
>>>>>
>>>>>>
>>>>>> Cheers,
>>>>>> Doru
>>>>>>
>>>>>>
>>>>>>
>>>>>>> On Jun 5, 2016, at 10:20 PM, stepharo <stepharo(a)free.fr> wrote:
>>>>>>>
>>>>>>> Hi
>>>>>>>
>>>>>>> I would like to know if there is a setting to remove the "" when printing
>>>>>>> the result of an expression.
>>>>>>>
>>>>>>> I know that playground has been thought to help me, but today I watched
>>>>>>> myself removing the comments
>>>>>>>
>>>>>>> code so often that I would like to get a setting because such wrapping of
>>>>>>> results is really boring for me.
>>>>>>>
>>>>>>> I'm spending my time removing them and I start to wonder why they are any
>>>>>>> useful.
>>>>>>>
>>>>>>> I would help me to write fast tests for example in the debugger.
>>>>>>>
>>>>>>> Stef
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>> --
>>>>>> www.tudorgirba.com
>>>>>> www.feenk.com
>>>>>>
>>>>>> "What we can governs what we wish."
>>>
>>>
>>
>> --
>> www.tudorgirba.com
>> www.feenk.com
>>
>> "It's not what we do that matters most, it's how we do it."
>>
>>
>
--
www.tudorgirba.com
www.feenk.com
"If you interrupt the barber while he is cutting your hair,
you will end up with a messy haircut."
June 8, 2016
Importing a GNU Smalltalk project into Pharo
by Max Leske
Very interesting question, especially since we want people to move to Pharo.
http://stackoverflow.com/questions/37690985/importing-a-gnu-smalltalk-proje… <http://stackoverflow.com/questions/37690985/importing-a-gnu-smalltalk-proje…>
Cheers,
Max
June 8, 2016
Re: [Pharo-dev] Do we want AST-Debugger?
by Eliot Miranda
Hi Denis,
On Mon, Jun 6, 2016 at 1:45 AM, Denis Kudriashov <dionisiydk(a)gmail.com>
wrote:
> Hi Eliot.
>
> 2016-06-06 1:13 GMT+02:00 Eliot Miranda <eliot.miranda(a)gmail.com>:
>
>> That's simply not true. In fact the amount known of the VM in both the
>> bytecode debugger and the AST debugger is the same; both use VM primitives
>> that aren't specified at the image level.
>>
>> Both the AST interpreter and the bytecode interpreter include the
>> interpreter in Smalltalk in the image. Look at Context and
>> InstructionStream to find the Smalktalk definitions of both the interpreter
>> routines and the implementations of the bytecodes.
>>
>>
>> So my question is why our debuggers are not based on AST interpreter? Why
>> it is bad idea? (if it is bad).
>>
>>
>> One area where you'll find the AST debugger worse is in performance.
>> The bytecode debugger uses perform: to execute at full speed when possible
>> (it does interpret when doing step into or through, but not when doing
>> over). In fact this part of the system, because it has to catch no local
>> returns and exceptions, is the most complex, but it's not because of VM
>> details, it's because of the use of perform: to run code being debugged to
>> run at full speed.
>>
>> Not to mention, if it isn't broke don't fix it.
>>
>> But seriously, the system is based on bytecode, and that bytecode is
>> pretty straightforward and easy to learn. Why not put in the effort of
>> learning it?
>>
>> Criticizing something in ignorance is not wise IMO.
>>
>
> I just put this method here:
>
and what's your issue with it? It simply dispatches the standard byte code
set as described in the EncoderForV3's and EncoderForV3PlusClosure's class
comments:
0-15 0000iiii Push Receiver Variable #iiii
16-31 0001iiii Push Temporary Location #iiii
32-63 001iiiii Push Literal Constant #iiiii
64-95 010iiiii Push Literal Variable #iiiii
96-103 01100iii Pop and Store Receiver Variable #iii
104-111 01101iii Pop and Store Temporary Location #iii
112-119 01110iii Push (receiver, true, false, nil, -1, 0, 1, 2) [iii]
120-123 011110ii Return (receiver, true, false, nil) [ii] From Message
124-125 0111110i Return Stack Top From (Message, Block) [i]
(126-127 unassigned)
128 10000000 jjkkkkkk Push (Receiver Variable, Temporary Location, Literal
Constant, Literal Variable) [jj] #kkkkkk
129 10000001 jjkkkkkk Store (Receiver Variable, Temporary Location,
Illegal, Literal Variable) [jj] #kkkkkk
130 10000010 jjkkkkkk Pop and Store (Receiver Variable, Temporary Location,
Illegal, Literal Variable) [jj] #kkkkkk
131 10000011 jjjkkkkk Send Literal Selector #kkkkk With jjj Arguments
132 10000100 iiijjjjj kkkkkkkk (Send, Send Super, Push Receiver Variable,
Push Literal Constant, Push Literal Variable, Store Receiver Variable,
Store-Pop Receiver Variable, Store Literal Variable)[iii] #kkkkkkkk jjjjj
(for sends jjjjj = numArgs)
133 10000011 jjjkkkkk Send Literal Selector #kkkkk To Superclass With jjj
Arguments
134 10000011 jjjkkkkk Send Literal Selector #kkkkk With jjj Arguments
135 10000111 Pop Stack Top
136 10001000 Duplicate Stack Top
137 10001001 Push Active Context
138 10001010 jkkkkkkk Push (Array new: kkkkkkk) (j = 0)
or Pop kkkkkkk elements into: (Array new: kkkkkkk) (j = 1)
139 10001011 kkkkkkkk jjjjjjjj Invoke primitive number jjjjjjjjkkkkkkkk
140 10001100 kkkkkkkk jjjjjjjj Push Temp At kkkkkkkk In Temp Vector At:
jjjjjjjj
141 10001101 kkkkkkkk jjjjjjjj Store Temp At kkkkkkkk In Temp Vector At:
jjjjjjjj
142 10001110 kkkkkkkk jjjjjjjj Pop and Store Temp At kkkkkkkk In Temp
Vector At: jjjjjjjj
143 10001111 llllkkkk jjjjjjjj iiiiiiii Push Closure Num Copied llll Num
Args kkkk BlockSize jjjjjjjjiiiiiiii
144-151 10010iii Jump iii + 1 (i.e., 1 through 8)
152-159 10011iii Pop and Jump 0n False iii +1 (i.e., 1 through 8)
160-167 10100iii jjjjjjjj Jump(iii - 4) *256+jjjjjjjj
168-171 101010ii jjjjjjjj Pop and Jump On True ii *256+jjjjjjjj
172-175 101011ii jjjjjjjj Pop and Jump On False ii *256+jjjjjjjj
176-191 1011iiii Send Arithmetic Message #iiii
192-207 1100iiii Send Special Message #iiii
208-223 1101iiii Send Literal Selector #iiii With No Arguments
224-239 1110iiii Send Literal Selector #iiii With 1 Argument
240-255 1111iiii Send Literal Selector #iiii With 2 Arguments
The method uses binary search to dispatch efficiently (a modification made
by Stephane Ducasse a while back). It isn't as readable as the old method
but it is quite straight-forward. Further, it isn't specific to the VM.
It is used by numbers facilities, to interpret byte code in the image (see
Context/s implementations of pushReceiverVariable: et al), to decompile
byte code methods, to print byte code, to scan for selectors a method
sends, etc. Would it help if the method included the information in the
class comments? Or would it be good enough for the method's comment to
reference the class comments?
BTW, there's a good article on byte code on wikipedia
<https://en.wikipedia.org/wiki/Bytecode>. Note that the VM executes byte
code, not syntax trees, and so the VM and indeed all the execution
machinery including the debugger, are not limited to debugging syntax
trees. One can express many useful things in bytecode that can't be
expressed by our syntax trees. And so if you do move towards the AST
debugger you'll find that you've drastically restricted the flexibility and
generality7 of the system for no benefit that I can see.
>
> InstructionStream >>interpretNextV3PlusClosureInstructionFor: client
>> "Send to the argument, client, a message that specifies the type of the
>> next instruction."
>> | byte type offset method |
>> method := self method.
>> byte := method at: pc.
>> type := byte // 16.
>> offset := byte \\ 16.
>> pc := pc+1.
>> "We do an inline binary search on each of the possible 16 values of type:
>> The old, cleaner but slowe code is retained as a comment below"
>> type < 8
>> ifTrue: [type < 4
>> ifTrue: [type < 2
>> ifTrue: [type < 1
>> ifTrue: ["type = 0"
>> ^ client pushReceiverVariable: offset]
>> ifFalse: ["type = 1"
>> ^ client pushTemporaryVariable: offset]]
>> ifFalse: [type < 3
>> ifTrue: ["type = 2"
>> ^ client
>> pushConstant: (method literalAt: offset + 1)]
>> ifFalse: ["type = 3"
>> ^ client
>> pushConstant: (method literalAt: offset + 17)]]]
>> ifFalse: [type < 6
>> ifTrue: [type < 5
>> ifTrue: ["type = 4"
>> ^ client
>> pushLiteralVariable: (method literalAt: offset + 1)]
>> ifFalse: ["type = 5"
>> ^ client
>> pushLiteralVariable: (method literalAt: offset + 17)]]
>> ifFalse: [type < 7
>> ifTrue: ["type = 6"
>> offset < 8
>> ifTrue: [^ client popIntoReceiverVariable: offset]
>> ifFalse: [^ client popIntoTemporaryVariable: offset - 8]]
>> ifFalse: ["type = 7"
>> offset = 0
>> ifTrue: [^ client pushReceiver].
>> offset < 8
>> ifTrue: [^ client
>> pushConstant: (SpecialConstants at: offset)].
>> offset = 8
>> ifTrue: [^ client methodReturnReceiver].
>> offset < 12
>> ifTrue: [^ client
>> methodReturnConstant: (SpecialConstants at: offset - 8)].
>> offset = 12
>> ifTrue: [^ client methodReturnTop].
>> offset = 13
>> ifTrue: [^ client blockReturnTop].
>> offset > 13
>> ifTrue: [^ self unusedBytecode: client at: pc - 1 ]]]]]
>> ifFalse: [type < 12
>> ifTrue: [type < 10
>> ifTrue: [type < 9
>> ifTrue: ["type = 8"
>> ^ self
>> interpretV3PlusClosureExtension: offset
>> in: method
>> for: client]
>> ifFalse: ["type = 9 (short jumps)"
>> offset < 8
>> ifTrue: [^ client jump: offset + 1].
>> ^ client jump: offset - 8 + 1 if: false]]
>> ifFalse: [type < 11
>> ifTrue: ["type = 10 (long jumps)"
>> byte := method at: pc.
>> pc := pc + 1.
>> offset < 8
>> ifTrue: [^ client jump: offset - 4 * 256 + byte].
>> ^ client jump: (offset bitAnd: 3)
>> * 256 + byte if: offset < 12]
>> ifFalse: ["type = 11"
>> ^ client
>> send: (Smalltalk specialSelectorAt: offset + 1)
>> super: false
>> numArgs: (Smalltalk specialNargsAt: offset + 1)]]]
>> ifFalse: [type = 12
>> ifTrue: [^ client
>> send: (Smalltalk specialSelectorAt: offset + 17)
>> super: false
>> numArgs: (Smalltalk specialNargsAt: offset + 17)]
>> ifFalse: ["type = 13, 14 or 15"
>> ^ client
>> send: (method literalAt: offset + 1)
>> super: false
>> numArgs: type - 13]]].
>>
>> " old code
>> type=0 ifTrue: [^client pushReceiverVariable: offset].
>> type=1 ifTrue: [^client pushTemporaryVariable: offset].
>> type=2 ifTrue: [^client pushConstant: (method literalAt: offset+1)].
>> type=3 ifTrue: [^client pushConstant: (method literalAt: offset+17)].
>> type=4 ifTrue: [^client pushLiteralVariable: (method literalAt:
>> offset+1)].
>> type=5 ifTrue: [^client pushLiteralVariable: (method literalAt:
>> offset+17)].
>> type=6
>> ifTrue: [offset<8
>> ifTrue: [^client popIntoReceiverVariable: offset]
>> ifFalse: [^client popIntoTemporaryVariable: offset-8]].
>> type=7
>> ifTrue: [offset=0 ifTrue: [^client pushReceiver].
>> offset<8 ifTrue: [^client pushConstant: (SpecialConstants at: offset)].
>> offset=8 ifTrue: [^client methodReturnReceiver].
>> offset<12 ifTrue: [^client methodReturnConstant:
>> (SpecialConstants at: offset-8)].
>> offset=12 ifTrue: [^client methodReturnTop].
>> offset=13 ifTrue: [^client blockReturnTop].
>> offset>13 ifTrue: [^self error: 'unusedBytecode']].
>> type=8 ifTrue: [^self interpretExtension: offset in: method for: client].
>> type=9
>> ifTrue: short jumps
>> [offset<8 ifTrue: [^client jump: offset+1].
>> ^client jump: offset-8+1 if: false].
>> type=10
>> ifTrue: long jumps
>> [byte:= method at: pc. pc:= pc+1.
>> offset<8 ifTrue: [^client jump: offset-4*256 + byte].
>> ^client jump: (offset bitAnd: 3)*256 + byte if: offset<12].
>> type=11
>> ifTrue:
>> [^client
>> send: (Smalltalk specialSelectorAt: offset+1)
>> super: false
>> numArgs: (Smalltalk specialNargsAt: offset+1)].
>> type=12
>> ifTrue:
>> [^client
>> send: (Smalltalk specialSelectorAt: offset+17)
>> super: false
>> numArgs: (Smalltalk specialNargsAt: offset+17)].
>> type>12
>> ifTrue:
>> [^client send: (method literalAt: offset+1)
>> super: false
>> numArgs: type-13]"
>
>
_,,,^..^,,,_
best, Eliot
June 8, 2016
Re: [Pharo-dev] Playground and text evaluation printing result default.
by Ben Coman
On Wed, Jun 8, 2016 at 5:39 AM, Tudor Girba <tudor(a)tudorgirba.com> wrote:
> Hi Sven,
>
> If I understand correctly, Stef talks about the case of building tests in the debugger. There he tries an expression and then wants to capture the result of the expression as an assertion in the code so he wants to paste the result directly. It is a different scenario than the one of capturing results that we store as comments for further reference.
>
> Cheers,
> Doru
>
>
>> On Jun 7, 2016, at 4:50 PM, Sven Van Caekenberghe <sven(a)stfx.eu> wrote:
>>
>> The #printString of most objects is not valid Pharo syntax, it makes sense to put those into comments, so that the overall syntax of the workspace/playground is maintained and syntax highlighting can operate normally.
This might be too much a corner case, but I wonder...
If the domain object provided a sufficiently distinguishing
printString, then a shortcut that appended the CTRL-P result....
printString = 'aDomainObject(''identifer'')
to the selected text might provide an interesting workflow for
developing tests in the debugger.
Maybe it could be CTRL-P + CTRL-T (for test) ?
A video demo of such might provide a good example of programming in an
immersive environment. What other environment could do this?
cheers -ben
>>
>> A result printed as a comment is also easy to select (by double-clicking next to the $" on the inside).
>>
>> All this makes sense for literal programming (assuming that is what you are after).
>>
>> What is the use case for not doing it like that ? Why do you want the comments gone ?
>>
>>> On 07 Jun 2016, at 13:03, Ben Coman <btc(a)openinworld.com> wrote:
>>>
>>> On Tue, Jun 7, 2016 at 2:09 PM, stepharo <stepharo(a)free.fr> wrote:
>>>>
>>>>
>>>> Le 5/6/16 à 23:00, Tudor Girba a écrit :
>>>>>
>>>>> Hi Stef,
>>>>>
>>>>> The quotes appear only when you add the result in the playground.
>>>>
>>>>
>>>> No need to explain I'm not idiot and I know it.
>>>>>
>>>>> The typical use case for this is to keep track of several results.
>>>>
>>>> No need to explain I'm not idiot and I know it.
>>>>>
>>>>> In this situation you do not want to modify the code to not affect the
>>>>> highlighting and this is why it gets in a comment.
>>>>
>>>> This is fun because I never ever needed it. But this is probably what
>>>> everybody else is doing that since this is the default.
>>>> I just write simple code and tests. Indeed I'm not that smart.
>>>>
>>>> But your tools only embedd your scenario and let the other users forced to
>>>> adapt.
>>>>
>>>> Well you do not want but I do.
>>>> I spent my evening removing quotes while writing tests.
>>>>
>>>> What I hate with the GTTools is that you want to teach me how I should work.
>>>> Sorry but good tools do not do that.
>>>> Good tools empower the users and not constraint them.
>>>>
>>>> I work a lot faster when I do not have to remove the wonderful comments or
>>>> when I have to copy and paste.
>>>> This commenting is breaking the flow of efficient people. May be GT team do
>>>> not work write tests in the
>>>> debugger but I do most of the time and I'm forced by the environment to
>>>> remove quotes all over the places.
>>>>>
>>>>> If you want to copy the content without quotes, you can do:
>>>>> Cmd+p -> popup
>>>>> Cmd+c -> selects the current line and copies the text
>>>>> Esc
>>>>> Cmd+v
>>>>
>>>> Sorry but I do not want.
>>>> I just want to print and modify directly.
>>>> 7 keystrokes vs 2
>>>>>
>>>>> Perhaps we can add another keybinding like Shift+Enter for adding the text
>>>>> without quotes.
>>>
>>> I just had a play with this, and another option might be <ctrl-enter>,
>>> since the <ctrl> key is still selection from doing <ctrl-P> so there
>>> is not much difference in hand movements between <enter> and
>>> <ctrl-enter>
>>>
>>> cheers -ben
>>>
>>>>
>>>> And why not the inverse.
>>>> By default printing is printing and if you want to do something else then
>>>> you have a special binding.
>>>
>>>
>>>
>>>> Now I'm upset with this general attitude (Oh I will teach how you can be a
>>>> nice user) that I will turn them off
>>>> or go and hack my own settings. Still I'm amazingly sad about this state of
>>>> affair.
>>>> All these story about GT is hurting me because of this attitude: we are so
>>>> smart and we thought a lot and we will teach you
>>>> how you should work... and at the end I the end-user has to adapt.
>>>> Look at the Spotter discussions: you looked for the graal and I was just
>>>> telling to you that I cannot find
>>>> simple information such as class refs!
>>>>
>>>> So what saddens me the most is that
>>>> - you pretend to have end-user trying your tools but I have impression
>>>> that they are not real power users
>>>> or this is yourself and it means that you are never exposed to other
>>>> people.
>>>> I can still not use Spotter because the way I put my hand on my
>>>> keyboard. So should change
>>>> - 1 my hands
>>>> - 2 my brain
>>>> - 3 my keyboard
>>>> - 4 do not use the tools?
>>>> - funnily enough if I would not have complain aggressively then it looks
>>>> like we would have the same than before.
>>>>
>>>> Your flow is not mine and I go faster my way but your tools force me to get
>>>> slow.
>>>> I do not have the time to produce a video but I would even if it would give
>>>> a bad press to Pharo.
>>>> I will do a presentation in the rmod team. Because people do not watch
>>>> themselves why acting.
>>>>
>>>> Good tools empower the users not constraint them.
>>>>
>>>> GTTools feel often like an overengineer guitar that would have hampered
>>>> Jimmy Hendrix to do crazy solos.
>>>>
>>>>>
>>>>> Cheers,
>>>>> Doru
>>>>>
>>>>>
>>>>>
>>>>>> On Jun 5, 2016, at 10:20 PM, stepharo <stepharo(a)free.fr> wrote:
>>>>>>
>>>>>> Hi
>>>>>>
>>>>>> I would like to know if there is a setting to remove the "" when printing
>>>>>> the result of an expression.
>>>>>>
>>>>>> I know that playground has been thought to help me, but today I watched
>>>>>> myself removing the comments
>>>>>>
>>>>>> code so often that I would like to get a setting because such wrapping of
>>>>>> results is really boring for me.
>>>>>>
>>>>>> I'm spending my time removing them and I start to wonder why they are any
>>>>>> useful.
>>>>>>
>>>>>> I would help me to write fast tests for example in the debugger.
>>>>>>
>>>>>> Stef
>>>>>>
>>>>>>
>>>>>>
>>>>> --
>>>>> www.tudorgirba.com
>>>>> www.feenk.com
>>>>>
>>>>> "What we can governs what we wish."
>>
>>
>
> --
> www.tudorgirba.com
> www.feenk.com
>
> "It's not what we do that matters most, it's how we do it."
>
>
June 8, 2016
Re: [Pharo-dev] [ANN] Ephemeron Support is Ready
by Eliot Miranda
Hi Guille,
good news! But I'm seeing something wrong with finalisation of weak
arrays using the new scheme. In Squeak method source access is done by
default by opening a new read-only file for each method's source read
(crazy, but that's not the issue). So by default something that accesses
lots of source ends up running out of file descriptors, which causes
primOpen:writable: to fail. The surrounding code then uses
retryWithGC:until:forFileNamed: to do a GC to try and reclaim non-longer
referenced files, close file descriptors and continue:
StandardFileStream retryWithGC:[self primOpen: f writable:
writeMode]
until:[:id| id notNil]
forFileNamed: fileName.
But in my tests I'm not seeing any files reclaimed. I wonder whether the
new finalisation code is failing to finalise weak arrays properly. I
wonder whether your weak tests work properly with the new scheme or not.
Anyway, I think I can reproduce the pathology in the simulator if I modify
it to implement a small limit on the number of file descriptors. I'm going
to try that to shed light on the problem. I can't easily debug in a
running image because...I run out of file descriptors ;-)
On Tue, Jun 7, 2016 at 2:32 AM, Guille Polito <guillermopolito(a)gmail.com>
wrote:
> Hi All,
>
> Since this morning, in Pharo #60065, Ephemeron support is in the image.
> Most of the changes are infrastructural, so far transparent for the users.
> It is important to notice that even while the support is there, it is not
> enabled by default. Also, this required changes in the virtual machine that
> are not yet distributed everywhere. For the ones that would like more
> detail, I invite you to read the following :)
>
> * On the infrastructure side
> - There is support to create Ephemeric classes and load them from
> monticello
> - There is a new finalization mechanism (by default disabled) that will
> process Ephemerons using a finalization queue. This will avoid scanning
> collections in look for weak objects to finalize ,as it happens now with
> the WeakDependent mechanism in WeakArray.
> - System-Finalization features two new classes *Ephemeron* and
> *EphemeronRegistry*. For the ones that want more details on Ephemerons, you
> can read the associated paper [1], or the class comment of Ephemeron:
>
> I represent ephemeric key-value objects. Ephemerons are key-value objects
> (subclasses of Association) with special semantics during garbage
> collection. My special behavior can resumed as follows:
>
> - The garbage collection will iterate my instances only if the key is not
> referenced strongly by another object.
> - Then, if no strong references to the key are found, then the values of
> this ephemeron are hold weakly.
> - Otherwise, the values are hold strongly.
>
> In this implementation, an Ephemeron can hold more than one value, which
> are all treated in the same manner. This ephemeron instance knows its
> container, which allows the ephemeron to remove itself from a container
> (such as a Dictionary) upon finalization.
>
> !! Example usages
>
> In general terms, do not use myself directly. Use instead an Ephemeric
> container like EphemeronRegistry. An Ephemeron registry will guarantee the
> collection of keys and values of the object inside the Ephemeron.
>
> Otherwise, if you want to use it, you can create an Ephemeron as any
> association:
>
> ephemeron := Ephemeron key: aKey value: aValue.
> ephemeron container: aContainer.
>
> !! Ephemeron Finalization
>
> When an ephemeron's key is hold strongly just by the ephemeron itself, the
> Ephemeron will be mourned (finalized). That means that the VM will:
> - put the Ephemeron in the mourning queue waiting for the image to take
> care of mourning
> - make the Ephemeron non ephemeric. That is, the ephemeron instance cannot
> be reused.
>
> On the image side, the finalization process will send the message #mourn
> to an Ephemeron. #mourn will #finalize the Ephemeron's key, and remove the
> Ephemeron from it's container to allow its collection during a subsequent
> garbage collection.
>
> !! More Documentation
>
> You can read the associated paper to understand better the semantics of
> ephemerons:
>
> [1]Ephemerons: A New Finalization Mechanism. Barry Hayes. OOPSLA '97
>
>
> - WARNING: to be able to use ephemerons, you need to use the *latestVm*
> that has several fixes for making ephemerons work, and you need to enable
> ephemerons on the image side by evaluating:
>
> Smalltalk supportsQueueingFinalization: true.
>
> - With latest vm and ephemerons enabled, tests should be green,
> otherwise they are skipped
>
>
>
> * From the user point of view:
>
> - The Weak registries were not yet migrated to the new finalization
> mechanism.
> - We expect nothing will change from the user point of view. Just less
> memory leaks.
>
> * Next steps (in order)
> 1) Bless the latest vm as stable
> 2) Enable queueing finalization by default
> 3) Replace Weak Registry by Ephemeron Registry.
>
>
> Informed by: Guille
>
--
_,,,^..^,,,_
best, Eliot
June 7, 2016
Re: [Pharo-dev] Playground and text evaluation printing result default.
by Tudor Girba
Hi Sven,
If I understand correctly, Stef talks about the case of building tests in the debugger. There he tries an expression and then wants to capture the result of the expression as an assertion in the code so he wants to paste the result directly. It is a different scenario than the one of capturing results that we store as comments for further reference.
Cheers,
Doru
> On Jun 7, 2016, at 4:50 PM, Sven Van Caekenberghe <sven(a)stfx.eu> wrote:
>
> The #printString of most objects is not valid Pharo syntax, it makes sense to put those into comments, so that the overall syntax of the workspace/playground is maintained and syntax highlighting can operate normally.
>
> A result printed as a comment is also easy to select (by double-clicking next to the $" on the inside).
>
> All this makes sense for literal programming (assuming that is what you are after).
>
> What is the use case for not doing it like that ? Why do you want the comments gone ?
>
>> On 07 Jun 2016, at 13:03, Ben Coman <btc(a)openinworld.com> wrote:
>>
>> On Tue, Jun 7, 2016 at 2:09 PM, stepharo <stepharo(a)free.fr> wrote:
>>>
>>>
>>> Le 5/6/16 à 23:00, Tudor Girba a écrit :
>>>>
>>>> Hi Stef,
>>>>
>>>> The quotes appear only when you add the result in the playground.
>>>
>>>
>>> No need to explain I'm not idiot and I know it.
>>>>
>>>> The typical use case for this is to keep track of several results.
>>>
>>> No need to explain I'm not idiot and I know it.
>>>>
>>>> In this situation you do not want to modify the code to not affect the
>>>> highlighting and this is why it gets in a comment.
>>>
>>> This is fun because I never ever needed it. But this is probably what
>>> everybody else is doing that since this is the default.
>>> I just write simple code and tests. Indeed I'm not that smart.
>>>
>>> But your tools only embedd your scenario and let the other users forced to
>>> adapt.
>>>
>>> Well you do not want but I do.
>>> I spent my evening removing quotes while writing tests.
>>>
>>> What I hate with the GTTools is that you want to teach me how I should work.
>>> Sorry but good tools do not do that.
>>> Good tools empower the users and not constraint them.
>>>
>>> I work a lot faster when I do not have to remove the wonderful comments or
>>> when I have to copy and paste.
>>> This commenting is breaking the flow of efficient people. May be GT team do
>>> not work write tests in the
>>> debugger but I do most of the time and I'm forced by the environment to
>>> remove quotes all over the places.
>>>>
>>>> If you want to copy the content without quotes, you can do:
>>>> Cmd+p -> popup
>>>> Cmd+c -> selects the current line and copies the text
>>>> Esc
>>>> Cmd+v
>>>
>>> Sorry but I do not want.
>>> I just want to print and modify directly.
>>> 7 keystrokes vs 2
>>>>
>>>> Perhaps we can add another keybinding like Shift+Enter for adding the text
>>>> without quotes.
>>
>> I just had a play with this, and another option might be <ctrl-enter>,
>> since the <ctrl> key is still selection from doing <ctrl-P> so there
>> is not much difference in hand movements between <enter> and
>> <ctrl-enter>
>>
>> cheers -ben
>>
>>>
>>> And why not the inverse.
>>> By default printing is printing and if you want to do something else then
>>> you have a special binding.
>>
>>
>>
>>> Now I'm upset with this general attitude (Oh I will teach how you can be a
>>> nice user) that I will turn them off
>>> or go and hack my own settings. Still I'm amazingly sad about this state of
>>> affair.
>>> All these story about GT is hurting me because of this attitude: we are so
>>> smart and we thought a lot and we will teach you
>>> how you should work... and at the end I the end-user has to adapt.
>>> Look at the Spotter discussions: you looked for the graal and I was just
>>> telling to you that I cannot find
>>> simple information such as class refs!
>>>
>>> So what saddens me the most is that
>>> - you pretend to have end-user trying your tools but I have impression
>>> that they are not real power users
>>> or this is yourself and it means that you are never exposed to other
>>> people.
>>> I can still not use Spotter because the way I put my hand on my
>>> keyboard. So should change
>>> - 1 my hands
>>> - 2 my brain
>>> - 3 my keyboard
>>> - 4 do not use the tools?
>>> - funnily enough if I would not have complain aggressively then it looks
>>> like we would have the same than before.
>>>
>>> Your flow is not mine and I go faster my way but your tools force me to get
>>> slow.
>>> I do not have the time to produce a video but I would even if it would give
>>> a bad press to Pharo.
>>> I will do a presentation in the rmod team. Because people do not watch
>>> themselves why acting.
>>>
>>> Good tools empower the users not constraint them.
>>>
>>> GTTools feel often like an overengineer guitar that would have hampered
>>> Jimmy Hendrix to do crazy solos.
>>>
>>>>
>>>> Cheers,
>>>> Doru
>>>>
>>>>
>>>>
>>>>> On Jun 5, 2016, at 10:20 PM, stepharo <stepharo(a)free.fr> wrote:
>>>>>
>>>>> Hi
>>>>>
>>>>> I would like to know if there is a setting to remove the "" when printing
>>>>> the result of an expression.
>>>>>
>>>>> I know that playground has been thought to help me, but today I watched
>>>>> myself removing the comments
>>>>>
>>>>> code so often that I would like to get a setting because such wrapping of
>>>>> results is really boring for me.
>>>>>
>>>>> I'm spending my time removing them and I start to wonder why they are any
>>>>> useful.
>>>>>
>>>>> I would help me to write fast tests for example in the debugger.
>>>>>
>>>>> Stef
>>>>>
>>>>>
>>>>>
>>>> --
>>>> www.tudorgirba.com
>>>> www.feenk.com
>>>>
>>>> "What we can governs what we wish."
>
>
--
www.tudorgirba.com
www.feenk.com
"It's not what we do that matters most, it's how we do it."
June 7, 2016
Re: [Pharo-dev] Playground and text evaluation printing result default.
by Tudor Girba
Hi Stef,
Thanks for the feedback. Sorry for the long email, but I you raised several issues and I thought it is worth addressing them.
The feature we are talking about came into being after several suggestions on this mailing list (and quite some long discussions) that had the scenario of keeping track of several executions. In the first version of the Playground it was not possible to paste directly in the playground. We did not impose anything, it was the contrary.
>From your email I see that you would rather prefer the variant of embedding the text as is after pressing Enter. Is this correct?
Here is another variant:
- Cmd+p
- Cmd+v ==> paste the string directly in the editor without comments
I think this would fit well.
What do you think?
More replies about Spotter inline.
> On Jun 7, 2016, at 8:09 AM, stepharo <stepharo(a)free.fr> wrote:
>
>
>
> Le 5/6/16 à 23:00, Tudor Girba a écrit :
>> Hi Stef,
>>
>> The quotes appear only when you add the result in the playground.
>
> No need to explain I'm not idiot and I know it.
>> The typical use case for this is to keep track of several results.
> No need to explain I'm not idiot and I know it.
>> In this situation you do not want to modify the code to not affect the highlighting and this is why it gets in a comment.
> This is fun because I never ever needed it. But this is probably what everybody else is doing that since this is the default.
> I just write simple code and tests. Indeed I'm not that smart.
>
> But your tools only embedd your scenario and let the other users forced to adapt.
>
> Well you do not want but I do.
> I spent my evening removing quotes while writing tests.
>
> What I hate with the GTTools is that you want to teach me how I should work. Sorry but good tools do not do that.
> Good tools empower the users and not constraint them.
>
> I work a lot faster when I do not have to remove the wonderful comments or when I have to copy and paste.
> This commenting is breaking the flow of efficient people. May be GT team do not work write tests in the
> debugger but I do most of the time and I'm forced by the environment to remove quotes all over the places.
>> If you want to copy the content without quotes, you can do:
>> Cmd+p -> popup
>> Cmd+c -> selects the current line and copies the text
>> Esc
>> Cmd+v
> Sorry but I do not want.
> I just want to print and modify directly.
> 7 keystrokes vs 2
>> Perhaps we can add another keybinding like Shift+Enter for adding the text without quotes.
> And why not the inverse.
> By default printing is printing and if you want to do something else then you have a special binding.
>
> Now I'm upset with this general attitude (Oh I will teach how you can be a nice user) that I will turn them off
> or go and hack my own settings. Still I'm amazingly sad about this state of affair.
> All these story about GT is hurting me because of this attitude: we are so smart and we thought a lot and we will teach you
You are mistaken here. We propose solutions that are different because this is the only way to get to something new, but afterwards we iterate multiple times, sometimes even a long time after the introduction of the original feature. For example, for the problem you are mentioning with the Playground appears 1.5 years after we introduced the Playground. The fact that they these interfaces are new breaks existing reflexes and the iterations that happen after are focused mostly on trying to figure out whether this is inconvenient because is new or because it is actually suboptimal.
This discussion is one of those. We wanted to solve the most often appearing case in which we use Cmd+p as a way to preview quickly the result. Pasting the code in the existing playground is an edge case for Cmd+p, not the primary case. After having proposed a solution for the primary problem, people raised the issue of the temporary results and then we created the idea of Enter and have comments. This might not be your use case, but others have it.
> how you should work... and at the end I the end-user has to adapt.
> Look at the Spotter discussions: you looked for the graal and I was just telling to you that I cannot find
> simple information such as class refs!
>
> So what saddens me the most is that
> - you pretend to have end-user trying your tools but I have impression that they are not real power users
> or this is yourself and it means that you are never exposed to other people.
> I can still not use Spotter because the way I put my hand on my keyboard. So should change
> - 1 my hands
> - 2 my brain
> - 3 my keyboard
> - 4 do not use the tools?
> - funnily enough if I would not have complain aggressively then it looks like we would have the same than before.
This is incorrect. If you would not complain aggressively, we would simply have a smoother conversation about solutions.
> Your flow is not mine and I go faster my way but your tools force me to get slow.
> I do not have the time to produce a video but I would even if it would give a bad press to Pharo.
> I will do a presentation in the rmod team. Because people do not watch themselves why acting.
Letâs do a remote session and I watch you do things. This week I am available this Thursday morning or Friday after 11.
> Good tools empower the users not constraint them.
>
> GTTools feel often like an overengineer guitar that would have hampered Jimmy Hendrix to do crazy solos.
Could well be.
Doru
>> Cheers,
>> Doru
>>
>>
>>
>>> On Jun 5, 2016, at 10:20 PM, stepharo <stepharo(a)free.fr> wrote:
>>>
>>> Hi
>>>
>>> I would like to know if there is a setting to remove the "" when printing the result of an expression.
>>>
>>> I know that playground has been thought to help me, but today I watched myself removing the comments
>>>
>>> code so often that I would like to get a setting because such wrapping of results is really boring for me.
>>>
>>> I'm spending my time removing them and I start to wonder why they are any useful.
>>>
>>> I would help me to write fast tests for example in the debugger.
>>>
>>> Stef
>>>
>>>
>>>
>> --
>> www.tudorgirba.com
>> www.feenk.com
>>
>> "What we can governs what we wish."
>>
>>
>>
>>
>>
>>
>
>
--
www.tudorgirba.com
www.feenk.com
"Obvious things are difficult to teach."
June 7, 2016
I: Help
by Lorenzo Schiavina
Hi,
I was following the tutorial in Dynamic Web Development and I was following
the fig. 117 and I made a mistake putting the suggested resource base URL in
the server path field.
Now, when I try to enter into Seaside, I receive the page as in the screen
shot included (help.pdf - please follow the arrow).
I do not know how to rescue the normal situation.
Can you give me any suggestions?
Thank you very much.
Lorenzo
June 7, 2016
[pharo-project/pharo-core]
by GitHub
Branch: refs/tags/60068
Home: https://github.com/pharo-project/pharo-core
June 7, 2016