+1<br><br>On Saturday, October 1, 2016, H. Hirzel &lt;<a href="mailto:hannes.hirzel@gmail.com">hannes.hirzel@gmail.com</a>&gt; wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Good, so let&#39;s wait until next week....<br>
<br>
--Hannes<br>
<br>
<br>
P.S. Another thing is that  we need glossary entries on the swiki for<br>
- delimited dynamic variables<br>
- delimited continuations<br>
<br>
On 10/1/16, Frank Shearar &lt;<a href="javascript:;" onclick="_e(event, &#39;cvml&#39;, &#39;frank.shearar@gmail.com&#39;)">frank.shearar@gmail.com</a>&gt; wrote:<br>
&gt; On Sep 30, 2016 09:50, &quot;Nicolas Cellier&quot;<br>
&gt; &lt;<a href="javascript:;" onclick="_e(event, &#39;cvml&#39;, &#39;nicolas.cellier.aka.nice@gmail.com&#39;)">nicolas.cellier.aka.nice@gmail.com</a>&gt;<br>
&gt; wrote:<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; 2016-09-30 14:57 GMT+02:00 Jakob Reschke &lt;<a href="javascript:;" onclick="_e(event, &#39;cvml&#39;, &#39;jakob.reschke@student.hpi.de&#39;)">jakob.reschke@student.hpi.de</a>&gt;:<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; Hello,<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; Looks good to me as an outline. I have the following comments,<br>
&gt;&gt;&gt; questions or doubts:<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; 1. Currently, for me it does not feel like &quot;entering&quot; or &quot;leaving&quot; an<br>
&gt;&gt;&gt; Environment, as that works with dynamic scoping in a block. So step 8<br>
&gt;&gt;&gt; could turn out to be void.<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; 2. Since all of this should go into a workspace, not into the browser,<br>
&gt;&gt;&gt; what is the shortest applicable snippet of code that, given a source<br>
&gt;&gt;&gt; code string and a class, creates a new method in that class?<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; 3. I am not sure what will happen if you attempt to create a subclass<br>
&gt;&gt;&gt; that has the same name as another imported class. Generally,<br>
&gt;&gt;&gt; evaluating Superclass subclass: #Subclass ... a second time will<br>
&gt;&gt;&gt; replace the former Subclass by the new Subclass. &#39;myEnvironment&#39; would<br>
&gt;&gt;&gt; have imported Hello from Smalltalk globals, so an &quot;old&quot; Hello is<br>
&gt;&gt;&gt; already visible. We have to check that evaluating the subclass<br>
&gt;&gt;&gt; expression will not try to update that existing Hello class, but<br>
&gt;&gt;&gt; create a new one instead. Here, the &quot;shallow&quot; lookup mechanism would<br>
&gt;&gt;&gt; be needed.<br>
&gt;&gt;&gt;<br>
&gt;&gt; Don&#39;t import: Smalltalk globals entirely, just from: Smalltalk globals<br>
&gt; import: #Transcript.<br>
&gt;&gt; and #Object too, depending in which environment you&#39;ll evaluate the<br>
&gt; message for creating the class...<br>
&gt;&gt;<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; Once I have figured out 2. I will try out and check 3. ;-)<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; Kind regards,<br>
&gt;&gt;&gt; Jakob<br>
&gt;&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; Here is a snippet that works, but is not especially short.<br>
&gt;&gt;<br>
&gt;&gt; | createHelloClass createHelloMethod english spanish |<br>
&gt;&gt;<br>
&gt;&gt; &quot;Straight but verbose code to create a Hello class and compile a say<br>
&gt; method.<br>
&gt;&gt;  There&#39;s one trick: Environment current, otherwise Compiler would<br>
&gt; evaluate in nil class environment, not good&quot;<br>
&gt;&gt; createHelloClass := [Object subclass: #Hello<br>
&gt;&gt;             instanceVariableNames: &#39;&#39;<br>
&gt;&gt;             classVariableNames: &#39;&#39;<br>
&gt;&gt;             poolDictionaries: &#39;&#39;<br>
&gt;&gt;             category: &#39;Test&#39;].<br>
&gt;&gt; createHelloMethod := [:greeting |<br>
&gt;&gt;     | methodSource sourceCode |<br>
&gt;&gt;     methodSource := &#39;say Transcript cr; show: &#39; , greeting printString.<br>
&gt;&gt;     sourceCode := &#39;Hello class compile: &#39; , methodSource printString , &#39;<br>
&gt; classified: &#39; , &#39;test&#39; printString.<br>
&gt;&gt;     Compiler evaluate: sourceCode environment: Environment current].<br>
&gt;&gt;<br>
&gt;&gt; &quot;Create the english and spanish environments&quot;<br>
&gt;&gt; english := Smalltalk globals.<br>
&gt;&gt; spanish := Environment withName: &#39;Spanish&#39;.<br>
&gt;&gt; spanish importSelf.<br>
&gt;&gt; spanish from: english import: #Transcript.<br>
&gt;&gt;<br>
&gt;&gt; &quot;Create the class and compile the method in each environment:&quot;<br>
&gt;&gt;<br>
&gt;&gt; [createHelloClass value.<br>
&gt;&gt; createHelloMethod value: &#39;Hello world&#39;] on: CurrentEnvironment do: [:exc<br>
&gt; | exc resume: english].<br>
&gt;&gt;<br>
&gt;&gt; [createHelloClass value.<br>
&gt;&gt; createHelloMethod value: &#39;Buenos dias&#39;] on: CurrentEnvironment do: [:exc<br>
&gt; | exc resume: spanish].<br>
&gt;&gt;<br>
&gt;&gt; &quot;Greet&quot;<br>
&gt;&gt; Compiler evaluate: &#39;Hello say&#39; environment: english.<br>
&gt;&gt; Compiler evaluate: &#39;Hello say&#39; environment: spanish.<br>
&gt;&gt; Compiler evaluate: &#39;Hello say&#39; environment: english.<br>
&gt;&gt;<br>
&gt;&gt; &quot;Cleanup&quot;<br>
&gt;&gt; [Compiler evaluate: &#39;Hello removeFromSystem&#39; environment: Environment<br>
&gt; current] on: CurrentEnvironment do: [:exc | exc resume: english].<br>
&gt;&gt; [Compiler evaluate: &#39;Hello removeFromSystem&#39; environment: Environment<br>
&gt; current] on: CurrentEnvironment do: [:exc | exc resume: spanish].<br>
&gt;&gt;<br>
&gt;&gt; Yes, a DynamicVariable:<br>
&gt;&gt;    CurrentEnvironment value: english during: [&quot;load something&quot;].<br>
&gt;&gt; would be nicer than:<br>
&gt;&gt;     [&quot;load something&quot;] on: CurrentEnvironment do: [:exc | exc resume:<br>
&gt; english].<br>
&gt;&gt; Otherwise we coulf fileIn some chunk format stream thru en<br>
&gt; EnvironmentLoader for: english...<br>
&gt;<br>
&gt; I wrote Control to do pretty much that: give a nice interface through which<br>
&gt; to create and change delimited dynamic variables (and delimited<br>
&gt; continuations). I would link to it (it&#39;s on SS3) but my phone is a bit<br>
&gt; limited...<br>
&gt;<br>
&gt; frank<br>
&gt;<br>
&gt;&gt;&gt; 2016-09-30 13:29 GMT+02:00 H. Hirzel &lt;<a href="javascript:;" onclick="_e(event, &#39;cvml&#39;, &#39;hannes.hirzel@gmail.com&#39;)">hannes.hirzel@gmail.com</a>&gt;:<br>
&gt;&gt;&gt; &gt; Starting a new thread, culled from the thread &#39;What are environments<br>
&gt; for&#39;.<br>
&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt; There are many more good questions and thoughts in the  thread &#39;What<br>
&gt;&gt;&gt; &gt; are environments for&#39; but this thread is just about what the subject<br>
&gt;&gt;&gt; &gt; says:<br>
&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt; How to create a &#39;Hello world&#39; example for environments<br>
&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt; --Hannes<br>
&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt; On 9/29/16, David T. Lewis &lt;<a href="javascript:;" onclick="_e(event, &#39;cvml&#39;, &#39;lewis@mail.msen.com&#39;)">lewis@mail.msen.com</a>&gt; wrote:<br>
&gt;&gt;&gt; &gt;&gt; On Thu, Sep 29, 2016 at 07:51:23AM +0200, H. Hirzel wrote:<br>
&gt;&gt;&gt; &gt;&gt;&gt; On 9/29/16, Jakob Reschke &lt;<a href="javascript:;" onclick="_e(event, &#39;cvml&#39;, &#39;jakob.reschke@student.hpi.de&#39;)">jakob.reschke@student.hpi.de</a>&gt; wrote:<br>
&gt;&gt;&gt; &gt;&gt;&gt; &gt; Hi Nicolas,<br>
&gt;&gt;&gt; &gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt;&gt;&gt; &gt; First, thank you for answering me in the other thread.<br>
&gt;&gt;&gt; &gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt;&gt;&gt; &gt; 2016-09-28 23:02 GMT+02:00 Nicolas Cellier<br>
&gt;&gt;&gt; &gt;&gt;&gt; &gt; &lt;<a href="javascript:;" onclick="_e(event, &#39;cvml&#39;, &#39;nicolas.cellier.aka.nice@gmail.com&#39;)">nicolas.cellier.aka.nice@gmail.com</a>&gt;:<br>
&gt;&gt;&gt; &gt;&gt;&gt; &gt;&gt; Without clear goals or vision, fixing could essentially mean &quot;let<br>
&gt;&gt;&gt; &gt;&gt;&gt; &gt;&gt; Environment be transparent&quot;, that is let it remain a promise, a<br>
&gt;&gt;&gt; &gt;&gt;&gt; &gt;&gt; potential,<br>
&gt;&gt;&gt; &gt;&gt;&gt; &gt;&gt; whithout too many side effects... Not exactly YAGNI, just a bit<br>
&gt;&gt;&gt; &gt;&gt;&gt; &gt;&gt; of<br>
&gt;&gt;&gt; &gt;&gt;&gt; &gt;&gt; over-engineered nice piece of code that might serve later. OK<br>
&gt;&gt;&gt; &gt;&gt;&gt; &gt;&gt; this<br>
&gt;&gt;&gt; &gt;&gt;&gt; &gt;&gt; sounds<br>
&gt;&gt;&gt; &gt;&gt;&gt; &gt;&gt; like a mandatory first step.<br>
&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt;&gt;&gt; &gt; I don&#39;t quite get what you mean by transparent, other than fixing<br>
&gt; it<br>
&gt;&gt;&gt; &gt;&gt;&gt; &gt; and enhancing the documentation to shed some light on what it is,<br>
&gt; why<br>
&gt;&gt;&gt; &gt;&gt;&gt; &gt; it is there and how to use it.<br>
&gt;&gt;&gt; &gt; ..<br>
&gt;&gt;&gt; &gt; ...<br>
&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt;&gt;&gt; Another maybe simple use case could be to have a project specific<br>
&gt;&gt;&gt; &gt;&gt;&gt; environment set up when you enter a project<br>
&gt;&gt;&gt; &gt;&gt;&gt; (<a href="http://wiki.squeak.org/squeak/1020" target="_blank">http://wiki.squeak.org/<wbr>squeak/1020</a>).<br>
&gt;&gt;&gt; &gt;&gt;&gt;<br>
&gt;&gt;&gt; &gt;&gt;&gt; We now have very nicely cleaned up Project code in Squeak 5.1<br>
&gt;&gt;&gt; &gt;&gt;&gt;<br>
&gt;&gt;&gt; &gt;&gt;&gt; 1) Subclass MorphicProject --- MyMorphicProject<br>
&gt;&gt;&gt; &gt;&gt;&gt; 2) Subclass PasteUpMorph  --- MyPasteUpMorph<br>
&gt;&gt;&gt; &gt;&gt;&gt; 3) Override #initialize in MyMorphicProject and use MyPasteUpMorph<br>
&gt;&gt;&gt; &gt;&gt;&gt; 4) ... some more adaptations ..... to enter a new Environment --<br>
&gt;&gt;&gt; &gt;&gt;&gt; how?<br>
&gt;&gt;&gt; &gt;&gt;&gt;<br>
&gt;&gt;&gt; &gt;&gt;<br>
&gt;&gt;&gt; &gt;&gt; I like this idea a lot.<br>
&gt;&gt;&gt; &gt;&gt;<br>
&gt;&gt;&gt; &gt;&gt; I would love to see a simple &quot;hello world!&quot; level example of<br>
&gt; Environments.<br>
&gt;&gt;&gt; &gt;&gt; If someone could make an EnvironmentsDemoProject that opens a new<br>
&gt; project<br>
&gt;&gt;&gt; &gt;&gt; with<br>
&gt;&gt;&gt; &gt;&gt; something that changes Duck&gt;&gt;speak ==&gt; &#39;quack&#39; to Duck&gt;&gt;speak ==&gt;<br>
&gt; &#39;moo&#39;,<br>
&gt;&gt;&gt; &gt;&gt; I think it might really help me to understand how to use<br>
&gt;&gt;&gt; &gt;&gt; Environments.<br>
&gt;&gt;&gt; &gt;&gt;<br>
&gt;&gt;&gt; &gt;&gt; Dave<br>
&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt; So let&#39;s focus on a &#39;hello world&#39; example for environments and do it<br>
&gt;&gt;&gt; &gt; _slowly_ step by step so that people can catch up with the issues.<br>
&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt; Outline of steps of a &#39;Hello world&#39; environments example<br>
&gt;&gt;&gt; &gt; ==============================<wbr>===============<br>
&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt; Steps<br>
&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt; 1. subclass Object with a #Hello class.<br>
&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt; 2. compile a class method #say the method should write &#39;Hello&#39; to the<br>
&gt; Transcript<br>
&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt; 3. run<br>
&gt;&gt;&gt; &gt;     Hello say<br>
&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt;     The result should be &#39;Hello&#39; on the Transcript<br>
&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt; 4. create a new Environment called &quot;myEnvironment&quot;.<br>
&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt; 5. import the Smalltalk environmnet into myEnvironment<br>
&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt; 6. subclass Object with a #Hello class in myEnvironment<br>
&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt; 7. compile a method #say the method should write &#39;Buenas dias&#39; to the<br>
&gt; Transcript<br>
&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt;    run<br>
&gt;&gt;&gt; &gt;         Hello say<br>
&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt;    Result should be<br>
&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt;         30-Sept-2016<br>
&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt; Starting a new thread, culled from the thread &#39;What are environments<br>
&gt; for&#39;.<br>
&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt; There are many more good questions and thoughts in the  thread &#39;What<br>
&gt;&gt;&gt; &gt; are environments for&#39; but this thread is just about what the subject<br>
&gt;&gt;&gt; &gt; says:<br>
&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt; How to create a &#39;Hello world&#39; example for environments<br>
&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt; --Hannes<br>
&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt; On 9/29/16, David T. Lewis &lt;<a href="javascript:;" onclick="_e(event, &#39;cvml&#39;, &#39;lewis@mail.msen.com&#39;)">lewis@mail.msen.com</a>&gt; wrote:<br>
&gt;&gt;&gt; &gt;&gt; On Thu, Sep 29, 2016 at 07:51:23AM +0200, H. Hirzel wrote:<br>
&gt;&gt;&gt; &gt;&gt;&gt; On 9/29/16, Jakob Reschke &lt;<a href="javascript:;" onclick="_e(event, &#39;cvml&#39;, &#39;jakob.reschke@student.hpi.de&#39;)">jakob.reschke@student.hpi.de</a>&gt; wrote:<br>
&gt;&gt;&gt; &gt;&gt;&gt; &gt; Hi Nicolas,<br>
&gt;&gt;&gt; &gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt;&gt;&gt; &gt; First, thank you for answering me in the other thread.<br>
&gt;&gt;&gt; &gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt;&gt;&gt; &gt; 2016-09-28 23:02 GMT+02:00 Nicolas Cellier<br>
&gt;&gt;&gt; &gt;&gt;&gt; &gt; &lt;<a href="javascript:;" onclick="_e(event, &#39;cvml&#39;, &#39;nicolas.cellier.aka.nice@gmail.com&#39;)">nicolas.cellier.aka.nice@gmail.com</a>&gt;:<br>
&gt;&gt;&gt; &gt;&gt;&gt; &gt;&gt; Without clear goals or vision, fixing could essentially mean &quot;let<br>
&gt;&gt;&gt; &gt;&gt;&gt; &gt;&gt; Environment be transparent&quot;, that is let it remain a promise, a<br>
&gt;&gt;&gt; &gt;&gt;&gt; &gt;&gt; potential,<br>
&gt;&gt;&gt; &gt;&gt;&gt; &gt;&gt; whithout too many side effects... Not exactly YAGNI, just a bit<br>
&gt;&gt;&gt; &gt;&gt;&gt; &gt;&gt; of<br>
&gt;&gt;&gt; &gt;&gt;&gt; &gt;&gt; over-engineered nice piece of code that might serve later. OK<br>
&gt;&gt;&gt; &gt;&gt;&gt; &gt;&gt; this<br>
&gt;&gt;&gt; &gt;&gt;&gt; &gt;&gt; sounds<br>
&gt;&gt;&gt; &gt;&gt;&gt; &gt;&gt; like a mandatory first step.<br>
&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt;&gt;&gt; &gt; I don&#39;t quite get what you mean by transparent, other than fixing<br>
&gt; it<br>
&gt;&gt;&gt; &gt;&gt;&gt; &gt; and enhancing the documentation to shed some light on what it is,<br>
&gt; why<br>
&gt;&gt;&gt; &gt;&gt;&gt; &gt; it is there and how to use it.<br>
&gt;&gt;&gt; &gt; ..<br>
&gt;&gt;&gt; &gt; ...<br>
&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt;&gt;&gt; Another maybe simple use case could be to have a project specific<br>
&gt;&gt;&gt; &gt;&gt;&gt; environment set up when you enter a project<br>
&gt;&gt;&gt; &gt;&gt;&gt; (<a href="http://wiki.squeak.org/squeak/1020" target="_blank">http://wiki.squeak.org/<wbr>squeak/1020</a>).<br>
&gt;&gt;&gt; &gt;&gt;&gt;<br>
&gt;&gt;&gt; &gt;&gt;&gt; We now have very nicely cleaned up Project code in Squeak 5.1<br>
&gt;&gt;&gt; &gt;&gt;&gt;<br>
&gt;&gt;&gt; &gt;&gt;&gt; 1) Subclass MorphicProject --- MyMorphicProject<br>
&gt;&gt;&gt; &gt;&gt;&gt; 2) Subclass PasteUpMorph  --- MyPasteUpMorph<br>
&gt;&gt;&gt; &gt;&gt;&gt; 3) Override #initialize in MyMorphicProject and use MyPasteUpMorph<br>
&gt;&gt;&gt; &gt;&gt;&gt; 4) ... some more adaptations ..... to enter a new Environment --<br>
&gt;&gt;&gt; &gt;&gt;&gt; how?<br>
&gt;&gt;&gt; &gt;&gt;&gt;<br>
&gt;&gt;&gt; &gt;&gt;<br>
&gt;&gt;&gt; &gt;&gt; I like this idea a lot.<br>
&gt;&gt;&gt; &gt;&gt;<br>
&gt;&gt;&gt; &gt;&gt; I would love to see a simple &quot;hello world!&quot; level example of<br>
&gt; Environments.<br>
&gt;&gt;&gt; &gt;&gt; If someone could make an EnvironmentsDemoProject that opens a new<br>
&gt; project<br>
&gt;&gt;&gt; &gt;&gt; with<br>
&gt;&gt;&gt; &gt;&gt; something that changes Duck&gt;&gt;speak ==&gt; &#39;quack&#39; to Duck&gt;&gt;speak ==&gt;<br>
&gt; &#39;moo&#39;,<br>
&gt;&gt;&gt; &gt;&gt; I think it might really help me to understand how to use<br>
&gt;&gt;&gt; &gt;&gt; Environments.<br>
&gt;&gt;&gt; &gt;&gt;<br>
&gt;&gt;&gt; &gt;&gt; Dave<br>
&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt; So let&#39;s focus on a &#39;hello world&#39; example for environments and do it<br>
&gt;&gt;&gt; &gt; _slowly_ step by step so that people can catch up with the issues.<br>
&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt; Outline of steps of a &#39;Hello world&#39; environments example<br>
&gt;&gt;&gt; &gt; ==============================<wbr>===============<br>
&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt; Steps<br>
&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt; 1. subclass Object with a #Hello class.<br>
&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt; 2. compile a class method #say the method should write &#39;Hello&#39; to the<br>
&gt; Transcript<br>
&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt; 3. run<br>
&gt;&gt;&gt; &gt;     Hello say<br>
&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt;     The result should be &#39;Hello&#39; on the Transcript<br>
&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt; 4. create a new Environment called &quot;myEnvironment&quot;.<br>
&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt; 5. import the Smalltalk environmnet into myEnvironment<br>
&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt; 6. subclass Object with a #Hello class in myEnvironment<br>
&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt; 7. compile a method #say the method should write &#39;Buenas dias&#39; to the<br>
&gt; Transcript<br>
&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt;    run<br>
&gt;&gt;&gt; &gt;         Hello say<br>
&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt;     The result should be &#39;Buenas dias&#39; on the Transcript<br>
&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt; 8. Leave environment called &#39;myEnvironment&#39;<br>
&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt; 9. run<br>
&gt;&gt;&gt; &gt;     Hello say<br>
&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt;     The result should be this time &#39;Hello&#39; on the Transcript<br>
&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt; Any comments on these steps?<br>
&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;<br>
<br>
</blockquote>