Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision Last revision Both sides next revision | ||
portingblog [2022/05/23 16:23] christian [Observations] |
portingblog [2022/06/22 10:51] christian [Second fileOut of the full PDFtalk for Squeak and Pharo] |
||
---|---|---|---|
Line 6: | Line 6: | ||
Now the real project starts and will be recorded here. | Now the real project starts and will be recorded here. | ||
+ | |||
+ | ===== Second PDFtalk fileOut for Squeak and Pharo ===== | ||
+ | |||
+ | //Tuesday, 21. June 2022// | ||
+ | |||
+ | This version includes fileOuts for [[https:// | ||
+ | |||
+ | **Squeak: [[StateOfThePort# | ||
+ | |||
+ | **Pharo: [[StateOfThePort# | ||
+ | |||
+ | ==== Observations ==== | ||
+ | |||
+ | After the first raw fileOut, here is the result of the first porting changes. | ||
+ | |||
+ | Fortunately, | ||
+ | |||
+ | Since Squeak and Pharo are still very similar, I fixed the issues in both Smalltalks. The new fileOut improves the test statistics quite nicely: | ||
+ | * Squeak: run 608(+11), pass 317(+169), fail 63(+44), error 228(-202) | ||
+ | * Pharo: | ||
+ | Details at the [[https:// | ||
+ | PostScript is now almost ripe to pick. BTW, if anybody has use for PostScript, this package can be used stand-alone. | ||
+ | |||
+ | Now the list of issues. Maybe too detailed for most of you, but maybe you find an issue to comment on? | ||
+ | |||
+ | * harvested 11 tests from the independent [[https:// | ||
+ | * fixed UTF16 encoding (using Zinc in Pharo - I don't how yet how to load prerequisites. Zinc seems to be in the base though) | ||
+ | * added '' | ||
+ | * replaced ''# | ||
+ | * ''# | ||
+ | * replaced ''# | ||
+ | * '' | ||
+ | * Squeak: replaced '' | ||
+ | * ''# | ||
+ | * replaced ''# | ||
+ | * ''# | ||
+ | * '' | ||
+ | * '' | ||
+ | * added '' | ||
+ | * Pharo: '' | ||
+ | * Pharo: '' | ||
+ | * Pharo: added '' | ||
+ | |||
+ | ===== First fileout of the full PDFtalk for VA Smalltalk ===== | ||
+ | |||
+ | //Saturday, 11. June 2022// | ||
+ | |||
+ | This version includes fileOuts for VAST 10.0 and VAST 11.0. All load without fatal errors. | ||
+ | |||
+ | [[https:// | ||
+ | |||
+ | **[[StateOfThePort# | ||
+ | |||
+ | ==== Observations ==== | ||
+ | |||
+ | VA Smalltalk is a bit stricter than other Smalltalks when it comes to compiling code. A fileIn aborts | ||
+ | * when you define a class with an undeclared // | ||
+ | * when you //extend// an undeclared class or | ||
+ | * when a method contains a // | ||
+ | Syntax errors are shown on the Transcript and methods with syntax errors are not added to the system, but the fileIn proceeds. | ||
+ | |||
+ | Usually, for the initial fileOut, I add all the affected classes to the '' | ||
+ | |||
+ | But, hey, we do Smalltalk, right? Why not adding an error handler to the compilation and define the missing classes on the fly? The new class would subclasses Object and is useless otherwise. But now the class references stay valid and code browsing is much more meaningful. With some inlining and simplyfication I ended up with a handful methods without state - they could be attached to any class. I put them on the class side of the application class of a mini application. | ||
+ | |||
+ | {{: | ||
+ | |||
+ | This works very nicely. The freshly created classes are put into a subapplication with " | ||
+ | |||
+ | **I love Smalltalk!** | ||
+ | |||
+ | But a problem remains. Now I have code for VAST to read the fileOut. But I want to have everything automatic. I don't want to ask the user to install whatever other software. | ||
+ | |||
+ | But, hey, we do Smalltalk, right? Why not adding the code of the '' | ||
+ | |||
+ | **I love Smalltalk!** | ||
===== First fileout of the full PDFtalk for Pharo ===== | ===== First fileout of the full PDFtalk for Pharo ===== | ||
Line 11: | Line 87: | ||
// | // | ||
- | This new version includes fileOuts for Pharo 6.1, 7.0, 8.0, 9.0 and 10.0. All load without errors. | + | This version includes fileOuts for Pharo 6.1, 7.0, 8.0, 9.0 and 10.0. All load without errors. |
[[https:// | [[https:// | ||
- | '' | + | **[[StateOfThePort# |
- | '' | + | 597 Tests: 174 pass, 23 fail, 400 error (Pharo 6.1) |
==== Observations ==== | ==== Observations ==== | ||
Line 68: | Line 144: | ||
Although the fileout is very raw, some tests are already running. | Although the fileout is very raw, some tests are already running. | ||
- | '' | + | **[[StateOfThePort# |
==== Observations ==== | ==== Observations ==== |