<div dir="ltr"><div>Hold the phone :( ... I didn't `set inputpauseonerror on` when I loaded the files, so I didn't see the compile errors when undefined globals were referenced ... so the porting effort will not be "greatly simplified" ...</div><div><br></div><div>Sooo, the first order of business is to get a picture of the undefined globals and the best way to do that is to add an additional .gs file first in line, where you simply define the missing global in UserGlobals just to satisfy the compiler and then send me the list of missing classes/globals and I can give you some pointers on the best way to replace the references ... I was actually going to do that earlier today when I mistakenly ignored the errors ... <br></div><div><br></div><div>I've done a little bit more work. I defined a Smalltalk class with a couple of methods and got to the point where the initialize methods are being run; defined CharacterCollection class>>lf and then hit a reference to RBParser...</div><div><br></div><div>I've noticed/realized that all of the classes are being loaded into UserGlobals by default and having to get through the initialize methods in each .gs file may not be ideal ...  so at this point I can offer to regenerate the .gs files using a different dictionary (Globals or ???) for the class definitions ... and it probably makes sense to edit the .gs files and move the initialize methods to a final .gs file that is input after all of the classes and methods have been loaded ... this will allow you to get a handle on all of the globals needed and better scope out what needs to be done, rather than dealing with getting initialize methods to run cleanly (something that could/should be done after all the globals have been defined) ... <br></div><div><div><div><br></div><div>RBParser can be found in the rb project[1], however in the one instance I saw, the RBParser is being used to parse a Smalltalk method and in this case it is probably overkill to port the entire RBParser project when all that needs to be done is parse a method ... there are a couple of different things that can be done directly in GemStone to satisfy those needs ... So at the end of the day, it's probably worth deferring the port/replace decision until later when we know whether RBParser is being used in other parts of the XML code base ...<br></div><div><br></div><div>Anyway, let me know if you'd like me to regenerate the .gs files using a different symbol dictionary ... and sorry for the overly optimistic email ...</div><div><br></div><div>Dale <br></div><div><br></div><div>[1] <a href="https://github.com/dalehenrich/rb">https://github.com/dalehenrich/rb</a></div></div></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Sun, May 7, 2023 at 5:34 PM Greg Spehar <<a href="mailto:spehargreg@gmail.com">spehargreg@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="auto">Dale,<div><br></div><div>Wow! This is great! Will load it let you know how it goes. <br><br><div dir="ltr"><span style="background-color:rgba(255,255,255,0)">Regards,<br></span><div><div><div><div><b>Greg</b></div></div><div><span style="background-color:rgba(255,255,255,0)"></span></div></div></div></div><div dir="ltr"><br><blockquote type="cite">On May 7, 2023, at 3:22 PM, Dale Henrichs <<a href="mailto:dale.henrichs@gemtalksystems.com" target="_blank">dale.henrichs@gemtalksystems.com</a>> wrote:<br><br></blockquote></div><blockquote type="cite"><div dir="ltr"><div dir="ltr"><div>Greg and Christian, I converted the filetree source code in XML-XMLParser[1] to topaz (.gs format) and noticed that the project was dependent upon 3 other projects: BitmapCharacterSet[2], OrderPreservingDictionary[3], and XML-XMLWriter[4], so I converted the filetree source code for those projects as well, then copied the generated .gs files into the XML-XMLParser project gemstone directory[5] along with an install.tpz file.</div><div><br></div><div>Then I took a 3.6.5 extent0.dbf and ran the install script and amazingly the files all loaded okay until I got an MNU while running  the class initializers for XML-XMLParser (the last file):</div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div>ERROR 2010 , a MessageNotUnderstood occurred (error 2010), a XMLAbstractFactory class does not understand  #'allSubclassesDo:'<br></div></blockquote><div>The fact that all of the class definitions and methods loaded without error implies that there are no dependencies on the GLASS/GsDevKit class library, which should greatly simplify the porting effort.<br></div><div><br></div><div>Bruno Buzzi[6] did the original port of XML-XMLParser and friends about 3 years ago ... with a little bit of help from me (converting the tonel source to filetree) and it seems that he was able to avoid leaning heavily on any Pharo/GsDevKit compatible classes ...<br></div><div><br></div><div>I also want to note that I updated the CI code for the XML-XMLParser project and that the unit tests run clean against a GLASS/GsDevKit extent[7]. The CI test are run against 3.5.3, 3.5.8, 3.6.0 and 3.6.5 and at this point there is no conditional code involved.<br></div><div><br></div><div>Let me know if you guys have any questions,</div><div><br></div><div>Dale<br></div><div><br></div><div>[1] <a href="https://github.com/GsDevKit/XML-XMLParser" target="_blank">https://github.com/GsDevKit/XML-XMLParser</a></div><div>[2] <a href="https://github.com/GsDevKit/BitmapCharacterSet" target="_blank">https://github.com/GsDevKit/BitmapCharacterSet</a></div><div>[3] <a href="https://github.com/GsDevKit/OrderPreservingDictionary" target="_blank">https://github.com/GsDevKit/OrderPreservingDictionary</a></div><div>[4] <a href="https://github.com/GsDevKit/XML-XMLWriter" target="_blank">https://github.com/GsDevKit/XML-XMLWriter</a></div><div>[5] <a href="https://github.com/GsDevKit/XML-XMLParser/tree/gemstone/gemstone" target="_blank">https://github.com/GsDevKit/XML-XMLParser/tree/gemstone/gemstone</a></div><div>[6] <a href="https://github.com/brunobuzzi" target="_blank">https://github.com/brunobuzzi</a></div><div>[7] <a href="https://github.com/GsDevKit/XML-XMLParser/actions/runs/4908998434" target="_blank">https://github.com/GsDevKit/XML-XMLParser/actions/runs/4908998434</a></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Sat, May 6, 2023 at 2:11 AM Christian Haider <<a href="mailto:mail@christianhaider.de" target="_blank">mail@christianhaider.de</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div><div lang="DE"><div><p class="MsoNormal"><span>Hi Dale,<u></u><u></u></span></p><p class="MsoNormal"><span><u></u> <u></u></span></p><p class="MsoNormal"><span lang="EN-CA">I’d like to have that too </span><span style="font-family:Wingdings" lang="EN-CA">J</span><span lang="EN-CA"><u></u><u></u></span></p><p class="MsoNormal"><span lang="EN-CA"><u></u> <u></u></span></p><p class="MsoNormal"><span lang="EN-CA">Happy hacking,<u></u><u></u></span></p><p class="MsoNormal"><span lang="EN-CA">Christian<u></u><u></u></span></p><p class="MsoNormal"><span lang="EN-CA"><u></u> <u></u></span></p><p class="MsoNormal"><span lang="EN-CA"><u></u> <u></u></span></p><div style="border-color:rgb(225,225,225) currentcolor currentcolor;border-style:solid none none;border-width:1pt medium medium;padding:3pt 0cm 0cm"><p class="MsoNormal"><b>Von:</b> GemStone-Smalltalk <<a href="mailto:gemstone-smalltalk-bounces@lists.gemtalksystems.com" target="_blank">gemstone-smalltalk-bounces@lists.gemtalksystems.com</a>> <b>Im Auftrag von </b>Dale Henrichs via GemStone-Smalltalk<br><b>Gesendet:</b> Freitag, 5. Mai 2023 23:17<br><b>An:</b> Greg Spehar <<a href="mailto:spehargreg@gmail.com" target="_blank">spehargreg@gmail.com</a>><br><b>Cc:</b> <a href="mailto:gemstone-smalltalk@lists.gemtalksystems.com" target="_blank">gemstone-smalltalk@lists.gemtalksystems.com</a><br><b>Betreff:</b> Re: [GemStone-Smalltalk] XML Parser Class/Classes in Gs?<u></u><u></u></p></div><p class="MsoNormal"><u></u> <u></u></p><div><div><p class="MsoNormal">I don't have the time to look into it :), but I do have the time to produce the .gs file that will allow you to look into it ...<u></u><u></u></p></div><div><p class="MsoNormal"><u></u> <u></u></p></div><div><p class="MsoNormal">Let me know, and I should be able to get to it by Monday...<u></u><u></u></p></div><div><p class="MsoNormal"><u></u> <u></u></p></div><div><p class="MsoNormal">Dale<u></u><u></u></p></div><div><p class="MsoNormal"><u></u> <u></u></p></div></div><p class="MsoNormal"><u></u> <u></u></p><div><div><p class="MsoNormal">On Fri, May 5, 2023 at 1:21 PM Greg Spehar <<a href="mailto:spehargreg@gmail.com" target="_blank">spehargreg@gmail.com</a>> wrote:<u></u><u></u></p></div><blockquote style="border-color:currentcolor currentcolor currentcolor rgb(204,204,204);border-style:none none none solid;border-width:medium medium medium 1pt;padding:0cm 0cm 0cm 6pt;margin-left:4.8pt;margin-right:0cm"><div><p class="MsoNormal">Dale,<u></u><u></u></p><div><p class="MsoNormal"><u></u> <u></u></p></div><div><p class="MsoNormal">Yes, I would love to take this route.<u></u><u></u></p></div><div><p class="MsoNormal">Would you like me to take a shot at it or is it something you might be able to look into?<u></u><u></u></p></div><div><p class="MsoNormal">(If you do, I will go hunt down that $1 Billion Powerball ticket and send it to you… if I find it of course.)<u></u><u></u></p></div><div><p class="MsoNormal"><u></u> <u></u></p></div><div><p class="MsoNormal">Regards,<u></u><u></u></p><div><div><div><div><div><p class="MsoNormal"><b><span style="font-size:8.5pt;color:black">Greg Spehar, MBA, PMP, ACP, DASM</span></b><span style="color:black"><u></u><u></u></span></p></div><div><p class="MsoNormal"><b><span style="font-size:8.5pt;color:black">Senior Program Manager</span></b><span style="color:black"><u></u><u></u></span></p></div><div><div><p class="MsoNormal"><span style="font-size:8.5pt;color:black">-------------------------------------------------------------------------------------------------------</span><span style="color:black"><u></u><u></u></span></p></div><div><p class="MsoNormal"><b><span style="font-size:8.5pt;color:black">P:</span></b><span style="font-size:8.5pt;color:black"> 503.332.3663</span><span style="color:black"><u></u><u></u></span></p></div><div><p class="MsoNormal"><b><span style="font-size:8.5pt;color:black">E:  </span></b><span style="color:black"><a href="mailto:spehargreg@gmail.com" target="_blank"><span style="font-size:8.5pt">spehargreg@gmail.com</span></a><u></u><u></u></span></p></div></div><div><p class="MsoNormal"><b><span style="font-size:8.5pt;color:black">W: </span></b><span style="color:black"><a href="http://www.linkedin.com/in/spehar" target="_blank"><span style="font-size:8.5pt">http://www.linkedin.com/in/spehargreg</span></a><u></u><u></u></span></p></div></div><div><p class="MsoNormal"><b><span style="font-size:8.5pt;color:black">T:</span></b><span style="font-size:8.5pt;color:black"> @spehargreg</span><span style="color:black"><u></u><u></u></span></p></div><div><p class="MsoNormal"><b><span style="font-size:8.5pt;color:black">C:</span></b><span style="font-size:8.5pt;color:black"> </span><span style="color:black"><a href="https://calendly.com/spehargreg/30-minute-meeting-connect" target="_blank"><span style="font-size:8.5pt">https://calendly.com/spehargreg/30-minute-meeting-connect</span></a><u></u><u></u></span></p></div></div></div></div><div><p class="MsoNormal"><br><br><u></u><u></u></p><blockquote style="margin-top:5pt;margin-bottom:5pt"><div><p class="MsoNormal">On May 5, 2023, at 3:15 PM, Dale Henrichs <<a href="mailto:dale.henrichs@gemtalksystems.com" target="_blank">dale.henrichs@gemtalksystems.com</a>> wrote:<u></u><u></u></p></div><p class="MsoNormal"><u></u> <u></u></p><div><div><div><p class="MsoNormal">Greg,<u></u><u></u></p></div><div><p class="MsoNormal"><u></u> <u></u></p></div><div><p class="MsoNormal">I don't believe that there are any XML parsers in the base system, however, there is a port of the Pharo XML-XMPParser[1] to the GLASS/GsDevKit environment that was done a couple of years ago. The GLASS/GsDevKit environment has a fair amount of Pharo compatibility code built in, so it is hard to estimate how much work would be required to port that to the base image ... but it would probably be a good place to start ...<u></u><u></u></p></div><div><p class="MsoNormal"><u></u> <u></u></p></div><div><p class="MsoNormal">The source is in filetree format, but it would be relatively straightforward to convert the filetree format packages into a single .gs file that could be loaded into the base ... let me know if you'd like to take that route ...<u></u><u></u></p></div><div><p class="MsoNormal"><u></u> <u></u></p></div><div><p class="MsoNormal">Dale<u></u><u></u></p></div><div><p class="MsoNormal"><u></u> <u></u></p></div><div><p class="MsoNormal">[1] <a href="https://github.com/GsDevKit/XML-XMLParser" target="_blank">https://github.com/GsDevKit/XML-XMLParser</a><u></u><u></u></p></div></div><p class="MsoNormal"><u></u> <u></u></p><div><div><p class="MsoNormal">On Fri, May 5, 2023 at 12:57 PM Greg Spehar via GemStone-Smalltalk <<a href="mailto:gemstone-smalltalk@lists.gemtalksystems.com" target="_blank">gemstone-smalltalk@lists.gemtalksystems.com</a>> wrote:<u></u><u></u></p></div><blockquote style="border-color:currentcolor currentcolor currentcolor rgb(204,204,204);border-style:none none none solid;border-width:medium medium medium 1pt;padding:0cm 0cm 0cm 6pt;margin-left:4.8pt;margin-right:0cm"><div><p class="MsoNormal">All,<u></u><u></u></p><div><p class="MsoNormal"><u></u> <u></u></p></div><div><p class="MsoNormal">Does anyone have access to a Gs XML parser? I am looking to use XML in the system I am designing…<u></u><u></u></p></div><div><p class="MsoNormal">(Or maybe I missed it in the image… yes I did look..)<u></u><u></u></p></div><div><p class="MsoNormal"><u></u> <u></u></p></div><div><p class="MsoNormal">Thanks,<u></u><u></u></p><div><div><div><div><div><p class="MsoNormal"><b><span style="font-size:8.5pt">Greg Spehar, MBA, PMP, ACP, DASM</span></b><u></u><u></u></p></div><div><p class="MsoNormal"><b><span style="font-size:8.5pt">Senior Program Manager</span></b><u></u><u></u></p></div><div><div><p class="MsoNormal"><span style="font-size:8.5pt">-------------------------------------------------------------------------------------------------------</span><u></u><u></u></p></div><div><p class="MsoNormal"><b><span style="font-size:8.5pt">P:</span></b><span style="font-size:8.5pt"> 503.332.3663</span><u></u><u></u></p></div><div><p class="MsoNormal"><b><span style="font-size:8.5pt">E:  </span></b><a href="mailto:spehargreg@gmail.com" target="_blank"><span style="font-size:8.5pt">spehargreg@gmail.com</span></a><u></u><u></u></p></div></div><div><p class="MsoNormal"><b><span style="font-size:8.5pt">W: </span></b><a href="http://www.linkedin.com/in/spehar" target="_blank"><span style="font-size:8.5pt">http://www.linkedin.com/in/spehargreg</span></a><u></u><u></u></p></div></div><div><p class="MsoNormal"><b><span style="font-size:8.5pt">T:</span></b><span style="font-size:8.5pt"> @spehargreg</span><u></u><u></u></p></div><div><p class="MsoNormal"><b><span style="font-size:8.5pt">C:</span></b><span style="font-size:8.5pt"> </span><a href="https://calendly.com/spehargreg/30-minute-meeting-connect" target="_blank"><span style="font-size:8.5pt">https://calendly.com/spehargreg/30-minute-meeting-connect</span></a><u></u><u></u></p></div></div></div></div><p class="MsoNormal"><u></u> <u></u></p></div></div><p class="MsoNormal">_______________________________________________<br>GemStone-Smalltalk mailing list<br><a href="mailto:GemStone-Smalltalk@lists.gemtalksystems.com" target="_blank">GemStone-Smalltalk@lists.gemtalksystems.com</a><br><a href="https://lists.gemtalksystems.com/mailman/listinfo/gemstone-smalltalk" target="_blank">https://lists.gemtalksystems.com/mailman/listinfo/gemstone-smalltalk</a><u></u><u></u></p></blockquote></div></div></blockquote></div><p class="MsoNormal"><u></u> <u></u></p></div></div></blockquote></div></div></div></div></blockquote></div>
</div></blockquote></div></div></blockquote></div>