[Pharo-project] Smalltalk tools transcript
Hi, Igor changed some uses of "Transcript" to "Smalltalk tools transcript". Of course it is not bad idea however it has some unwelcome consequences - mainly it cannot work on images that have no tools and Pharo Kernel and most of derived images have no ToolRegistry at all. Currently it breaks Pharo Kernel job on CI server. Here are affected methods: Object>>crLog: {logging} Object>>log: {logging} Object>>logCr: {logging} Object>>logCrTab: {logging} Of course the simplest way how to fix that is revert previous versions of this methods. However we may use some more general solution where ToolRegistry will be part of the kernel but then we will have to solve questions what tools are default, what to do if the tool class is missing etc. -- Pavel
http://code.google.com/p/pharo/issues/detail?id=4661 On Fri, Aug 19, 2011 at 10:41 AM, Pavel Krivanek <pavel.krivanek@gmail.com> wrote:
Hi,
Igor changed some uses of "Transcript" to "Smalltalk tools transcript". Of course it is not bad idea however it has some unwelcome consequences - mainly it cannot work on images that have no tools and Pharo Kernel and most of derived images have no ToolRegistry at all. Currently it breaks Pharo Kernel job on CI server.
Here are affected methods:
Object>>crLog: {logging} Object>>log: {logging} Object>>logCr: {logging} Object>>logCrTab: {logging}
Of course the simplest way how to fix that is revert previous versions of this methods. However we may use some more general solution where ToolRegistry will be part of the kernel but then we will have to solve questions what tools are default, what to do if the tool class is missing etc.
-- Pavel
On 19 August 2011 11:41, Pavel Krivanek <pavel.krivanek@gmail.com> wrote:
Hi,
Igor changed some uses of "Transcript" to "Smalltalk tools transcript". Of course it is not bad idea however it has some unwelcome consequences - mainly it cannot work on images that have no tools and Pharo Kernel and most of derived images have no ToolRegistry at all. Currently it breaks Pharo Kernel job on CI server.
Here are affected methods:
Object>>crLog: {logging} Object>>log: {logging} Object>>logCr: {logging} Object>>logCrTab: {logging}
Of course the simplest way how to fix that is revert previous versions of this methods. However we may use some more general solution where ToolRegistry will be part of the kernel but then we will have to solve questions what tools are default, what to do if the tool class is missing etc.
Is 'Smalltalk' global name part of kernel? If so, then i think SmalltalkImage should be too and ToolRegistry. Tool registry is just a registry. It doesn't imposing the existance of one or another tool. If tool with given name is missing, then attempt to use it will lead for error.
-- Pavel
-- Best regards, Igor Stasenko AKA sig.
On Fri, Aug 19, 2011 at 1:38 PM, Igor Stasenko <siguctua@gmail.com> wrote:
On 19 August 2011 11:41, Pavel Krivanek <pavel.krivanek@gmail.com> wrote:
Hi,
Igor changed some uses of "Transcript" to "Smalltalk tools transcript". Of course it is not bad idea however it has some unwelcome consequences - mainly it cannot work on images that have no tools and Pharo Kernel and most of derived images have no ToolRegistry at all. Currently it breaks Pharo Kernel job on CI server.
Here are affected methods:
Object>>crLog: {logging} Object>>log: {logging} Object>>logCr: {logging} Object>>logCrTab: {logging}
Of course the simplest way how to fix that is revert previous versions of this methods. However we may use some more general solution where ToolRegistry will be part of the kernel but then we will have to solve questions what tools are default, what to do if the tool class is missing etc.
Is 'Smalltalk' global name part of kernel? If so, then i think SmalltalkImage should be too and ToolRegistry.
Tool registry is just a registry. It doesn't imposing the existance of one or another tool. If tool with given name is missing, then attempt to use it will lead for error.
The question why to have registry for something what is not necessary. Some applications may want to remove tools from the image so to place tools support to the kernel is a regression. The only tool that is required for the Kernel now is Transcript for some Compiler messages etc. I think that there is one much better solution - to remove Transcript dependency from the kernel and for such messages to use UIManager (something like #log: or maybe better #logStream). MorphicUIManager then will use Transcript. -- Pavel
On 19 August 2011 14:13, Pavel Krivanek <pavel.krivanek@gmail.com> wrote:
On Fri, Aug 19, 2011 at 1:38 PM, Igor Stasenko <siguctua@gmail.com> wrote:
On 19 August 2011 11:41, Pavel Krivanek <pavel.krivanek@gmail.com> wrote:
Hi,
Igor changed some uses of "Transcript" to "Smalltalk tools transcript". Of course it is not bad idea however it has some unwelcome consequences - mainly it cannot work on images that have no tools and Pharo Kernel and most of derived images have no ToolRegistry at all. Currently it breaks Pharo Kernel job on CI server.
Here are affected methods:
Object>>crLog: {logging} Object>>log: {logging} Object>>logCr: {logging} Object>>logCrTab: {logging}
Of course the simplest way how to fix that is revert previous versions of this methods. However we may use some more general solution where ToolRegistry will be part of the kernel but then we will have to solve questions what tools are default, what to do if the tool class is missing etc.
Is 'Smalltalk' global name part of kernel? If so, then i think SmalltalkImage should be too and ToolRegistry.
Tool registry is just a registry. It doesn't imposing the existance of one or another tool. If tool with given name is missing, then attempt to use it will lead for error.
The question why to have registry for something what is not necessary. Some applications may  want to remove tools from the image so to place tools support to the kernel is a regression. The only tool that is required for the Kernel now is Transcript for some Compiler messages etc. I think that there is one much better solution - to remove Transcript dependency from the kernel and for such messages to use UIManager (something like #log: or maybe better #logStream). MorphicUIManager then will use Transcript.
There is SmalltalkImage>>logDuring: aMonadicBlock except that it logs to file, not to transcript.
-- Pavel
-- Best regards, Igor Stasenko AKA sig.
2011/8/19 Pavel Krivanek <pavel.krivanek@gmail.com>:
On Fri, Aug 19, 2011 at 1:38 PM, Igor Stasenko <siguctua@gmail.com> wrote:
On 19 August 2011 11:41, Pavel Krivanek <pavel.krivanek@gmail.com> wrote:
Hi,
Igor changed some uses of "Transcript" to "Smalltalk tools transcript". Of course it is not bad idea however it has some unwelcome consequences - mainly it cannot work on images that have no tools and Pharo Kernel and most of derived images have no ToolRegistry at all. Currently it breaks Pharo Kernel job on CI server.
Here are affected methods:
Object>>crLog: {logging} Object>>log: {logging} Object>>logCr: {logging} Object>>logCrTab: {logging}
Of course the simplest way how to fix that is revert previous versions of this methods. However we may use some more general solution where ToolRegistry will be part of the kernel but then we will have to solve questions what tools are default, what to do if the tool class is missing etc.
Is 'Smalltalk' global name part of kernel? If so, then i think SmalltalkImage should be too and ToolRegistry.
Tool registry is just a registry. It doesn't imposing the existance of one or another tool. If tool with given name is missing, then attempt to use it will lead for error.
The question why to have registry for something what is not necessary. Some applications may  want to remove tools from the image so to place tools support to the kernel is a regression. The only tool that is required for the Kernel now is Transcript for some Compiler messages etc. I think that there is one much better solution - to remove Transcript dependency from the kernel and for such messages to use UIManager (something like #log: or maybe better #logStream). MorphicUIManager then will use Transcript.
-- Pavel
Then it could be (Smalltalk ui crLog:) instead of (Smalltalk tools transcript...) Or (UIManager deault crLog: ). The question is whether there is any interest in replacing a bunch of ThisOrThatManagerHandlerOrWhatever by a message send, and dispatch all these message to the System (Smalltalk). Nicolas
The question why to have registry for something what is not necessary. Some applications may want to remove tools from the image so to place tools support to the kernel is a regression. The only tool that is required for the Kernel now is Transcript for some Compiler messages etc. I think that there is one much better solution - to remove Transcript dependency from the kernel and for such messages to use UIManager (something like #log: or maybe better #logStream). MorphicUIManager then will use Transcript.
-- Pavel
Then it could be (Smalltalk ui crLog:) instead of (Smalltalk tools transcript...) Or (UIManager deault crLog: ). The question is whether there is any interest in replacing a bunch of ThisOrThatManagerHandlerOrWhatever by a message send, and dispatch all these message to the System (Smalltalk).
Nicolas This is a good question and we experimenting to find the right answer. We should have less as possible reference to classes. So that we can replace them easily. The experience changing Transcript was not really a good illustration of that point because Transcript is a global and since the class binding is shared in compile methods normally we would not have to recompile everything, but still. Now more generally I like the idea of newspeak that we could get the notion of from this module we pick and access only what we use. Stef
participants (4)
-
Igor Stasenko -
Nicolas Cellier -
Pavel Krivanek -
Stéphane Ducasse