<div>Hi!</div><div><br /></div><div><br /></div><div>1)</div><div><br /></div><div>About hi memory using by current "21bit char in 4 byte":</div><div>21*3 = 63bit, set bit number 64 to zero.</div><div><br /></div><div>I.e. we can implement "packed string": 3 21bit WIDECHARs in 8 bytes.</div><div><br /></div><div><br /></div><div>2) </div><div><br /></div><div>> <span style="font-family:'calibri' , 'helvetica' , sans-serif;font-size:16px">C++ now has char16 and char32. Perhaps Modula-3 should too?</span></div><div><br /></div><div> Why not?</div><div><br /></div><div>And keep WIDECHAR as "default for current OS".</div><div><br /></div><div>Best regards, Victor Miasnikov</div><div><br /></div><div>21.03.2021, 12:06, "vvm@tut.by" <vvm@tut.by>:</div><blockquote><div>Hi!</div><div><br /></div><div><br /></div><div> Small remark:</div><div><br /></div><div>> <span style="font-family:'calibri' , 'helvetica' , sans-serif;font-size:12pt"> 4 represents Unix "widespread" </span></div><div><br /></div><div> I was builded this variant for Windows AMD64_NT.</div><div>See "Issue #47" near "sage.com.ua".</div><div>And update it to level "release <span class="1f1ea193f6735cf0wmi-callto">2021-03-12</span>".</div><div><br /></div><div> Libunicode was successfully compied.</div><div>Its tests are work.</div><div><br /></div><div>Best regards, Victor Miasnikov</div><div><br /></div><div>21.03.2021, 10:34, "Jay K" <<a href="mailto:jayk123@hotmail.com" target="_blank">jayk123@hotmail.com</a>>:</div><blockquote><div dir="ltr">
<div style="color:rgb( 0 , 0 , 0 );font-family:'calibri' , 'helvetica' , sans-serif;font-size:12pt">
<span style="margin:0px">  >  Using .cmd scripts require using MS VS 2012 ( VC110). </span>
<div style="margin:0px">  > Analogs of some .sh scriprs rewrited to .py aren't found.<br />
</div>
<span style="margin:0px"></span>
<div style="color:rgb( 0 , 0 , 0 );font-family:'calibri' , 'helvetica' , sans-serif;font-size:12pt">
<br />
</div>
To answer some of it:</div>
<div style="color:rgb( 0 , 0 , 0 );font-family:'calibri' , 'helvetica' , sans-serif;font-size:12pt">
  Olaf presumably wrote the .sh files.</div>
<div style="color:rgb( 0 , 0 , 0 );font-family:'calibri' , 'helvetica' , sans-serif;font-size:12pt">
  I was on Windows. I rewrote them in .cmd.  I recall someone wrote similar or additional ones.</div>
<div style="color:rgb( 0 , 0 , 0 );font-family:'calibri' , 'helvetica' , sans-serif;font-size:12pt">
  Then I was on Mac.</div>
<div style="color:rgb( 0 , 0 , 0 );font-family:'calibri' , 'helvetica' , sans-serif;font-size:12pt">
   I had multiple frustrations:</div>
<div style="color:rgb( 0 , 0 , 0 );font-family:'calibri' , 'helvetica' , sans-serif;font-size:12pt">
    cmd is definitely a horrible language. It is "builtin" yes, but otherwise is horrible.</div>
<div style="color:rgb( 0 , 0 , 0 );font-family:'calibri' , 'helvetica' , sans-serif;font-size:12pt">
      Really. Avoid it at much cost. Please let's not argue this. I haved use it a ton. Trust me.</div>
<div style="color:rgb( 0 , 0 , 0 );font-family:'calibri' , 'helvetica' , sans-serif;font-size:12pt">
<br />
</div>
<div style="color:rgb( 0 , 0 , 0 );font-family:'calibri' , 'helvetica' , sans-serif;font-size:12pt">
    I suspect sh is a horrible language too, but I am less experienced with it.</div>
<div style="color:rgb( 0 , 0 , 0 );font-family:'calibri' , 'helvetica' , sans-serif;font-size:12pt">
      I am a little more open to discussing this, educate me, but this is not likely the right forum.</div>
<div style="color:rgb( 0 , 0 , 0 );font-family:'calibri' , 'helvetica' , sans-serif;font-size:12pt">
<span style="color:rgb( 0 , 0 , 0 );font-family:'calibri' , 'helvetica' , sans-serif;font-size:12pt">      In particular it seems too string based, not enough typing.</span><br />
</div>
<div style="color:rgb( 0 , 0 , 0 );font-family:'calibri' , 'helvetica' , sans-serif;font-size:12pt">
<span style="color:rgb( 0 , 0 , 0 );font-family:'calibri' , 'helvetica' , sans-serif;font-size:12pt"><br />
</span></div>
<div style="color:rgb( 0 , 0 , 0 );font-family:'calibri' , 'helvetica' , sans-serif;font-size:12pt">
    I wanted *one* portable workflow, that I could understand and maintain and hopefully not just me.</div>
<div style="color:rgb( 0 , 0 , 0 );font-family:'calibri' , 'helvetica' , sans-serif;font-size:12pt">
       (Who among the .cmd maintainers also would maintain the .sh, or vice versa?)</div>
<div style="color:rgb( 0 , 0 , 0 );font-family:'calibri' , 'helvetica' , sans-serif;font-size:12pt">
       Those are both fuzzy things. sh is "portable" to Windows, just install Cygwin (or WSL).</div>
<div style="color:rgb( 0 , 0 , 0 );font-family:'calibri' , 'helvetica' , sans-serif;font-size:12pt">
       Heck, it is portable to MS-DOS (djgpp).</div>
<div style="color:rgb( 0 , 0 , 0 );font-family:'calibri' , 'helvetica' , sans-serif;font-size:12pt">
       I <b>should</b>​ be able to maintain sh, but, if I have/had freedom on the matter, I chose Python. At least back then.</div>
<div style="color:rgb( 0 , 0 , 0 );font-family:'calibri' , 'helvetica' , sans-serif;font-size:12pt">
       I later became somewhat disenchanted with Python, but maybe here it is ok.</div>
<div style="color:rgb( 0 , 0 , 0 );font-family:'calibri' , 'helvetica' , sans-serif;font-size:12pt">
       It is certainly preferable to .cmd in any case.</div>
<div style="color:rgb( 0 , 0 , 0 );font-family:'calibri' , 'helvetica' , sans-serif;font-size:12pt">
<br />
</div>
<div style="color:rgb( 0 , 0 , 0 );font-family:'calibri' , 'helvetica' , sans-serif;font-size:12pt">
<br />
</div>
<div style="color:rgb( 0 , 0 , 0 );font-family:'calibri' , 'helvetica' , sans-serif;font-size:12pt">
So I rewrote again in Python and have been using these ever since on Unix and Windows.</div>
<div style="color:rgb( 0 , 0 , 0 );font-family:'calibri' , 'helvetica' , sans-serif;font-size:12pt">
<br />
</div>
<div style="color:rgb( 0 , 0 , 0 );font-family:'calibri' , 'helvetica' , sans-serif;font-size:12pt">
I would really prefer to delete *.sh and *.cmd but people always protest that they like them.</div>
<div style="color:rgb( 0 , 0 , 0 );font-family:'calibri' , 'helvetica' , sans-serif;font-size:12pt">
<br />
</div>
<div style="color:rgb( 0 , 0 , 0 );font-family:'calibri' , 'helvetica' , sans-serif;font-size:12pt">
If you find something missing and desired in the *.py let me know, or try.</div>
<div style="color:rgb( 0 , 0 , 0 );font-family:'calibri' , 'helvetica' , sans-serif;font-size:12pt">
I admit pylib.py is a bit monolithic ("easier to reuse") but I still think it isn't horrible. Or maybe I got coded into a corner and another rewrite is needed. I do think the parameter handling is probably backwards -- it should take out what it knows is for
 the Python and pass through everything else by default to cm3, instead of the nickel and dime maintanence where I keep adding pass throughs. I was slowed down (years?) getting to that realization though by the unicode size problem which I just fixed.</div>
<div style="color:rgb( 0 , 0 , 0 );font-family:'calibri' , 'helvetica' , sans-serif;font-size:12pt">
<br />
</div>
<div style="color:rgb( 0 , 0 , 0 );font-family:'calibri' , 'helvetica' , sans-serif;font-size:12pt">
We should probably try to use Quake and/or Modula-3 here more instead, really.</div>
<div style="color:rgb( 0 , 0 , 0 );font-family:'calibri' , 'helvetica' , sans-serif;font-size:12pt">
I think Quake is up to this task actually. I spent a fair amount of time redoing all the config files also.
<span id="87e8110692b251fe94124405b9460dd878cfd4d2c50ed68c9d588db6819f9520&#x1f642;">&#x1f642;</span></div>
<div style="color:rgb( 0 , 0 , 0 );font-family:'calibri' , 'helvetica' , sans-serif;font-size:12pt">
  (Esp. the "Cartesian refactoring" into architecture + OS, all the ".common" files).</div>
<div style="color:rgb( 0 , 0 , 0 );font-family:'calibri' , 'helvetica' , sans-serif;font-size:12pt">
<br />
</div>
<div style="color:rgb( 0 , 0 , 0 );font-family:'calibri' , 'helvetica' , sans-serif;font-size:12pt">
Quake may not be general purpose but it isn't horrible either. (The variable look ups are slow though, alas, I think multiple hash table lookups, one per nested scope..but it is fast enough).</div>
<div style="color:rgb( 0 , 0 , 0 );font-family:'calibri' , 'helvetica' , sans-serif;font-size:12pt">
<br />
</div>
<div style="color:rgb( 0 , 0 , 0 );font-family:'calibri' , 'helvetica' , sans-serif;font-size:12pt">
For building the entire system, approximately, drop m3makefile's that connect all the packages.</div>
<div style="color:rgb( 0 , 0 , 0 );font-family:'calibri' , 'helvetica' , sans-serif;font-size:12pt">
<br />
</div>
<div style="color:rgb( 0 , 0 , 0 );font-family:'calibri' , 'helvetica' , sans-serif;font-size:12pt">
For iterating over specific packages/groups, maybe trivial also.</div>
<div style="color:rgb( 0 , 0 , 0 );font-family:'calibri' , 'helvetica' , sans-serif;font-size:12pt">
<br />
</div>
<div style="color:rgb( 0 , 0 , 0 );font-family:'calibri' , 'helvetica' , sans-serif;font-size:12pt">
Granted, Quake is super obscure and time spent learning it will not reap much benefit.</div>
<div style="color:rgb( 0 , 0 , 0 );font-family:'calibri' , 'helvetica' , sans-serif;font-size:12pt">
Python is at least "more useful" in the wide world.</div>
<div style="color:rgb( 0 , 0 , 0 );font-family:'calibri' , 'helvetica' , sans-serif;font-size:12pt">
<br />
</div>
<div style="color:rgb( 0 , 0 , 0 );font-family:'calibri' , 'helvetica' , sans-serif;font-size:12pt">
<span style="background-color:rgb( 255 , 255 , 255 );display:inline !important;font-size:14px">> How turn on "wide char"
 / 21bit UNICODE in 4 bytes feature on Win 32?</span><br />
</div>
<div style="color:rgb( 0 , 0 , 0 );font-family:'calibri' , 'helvetica' , sans-serif;font-size:12pt">
<span style="background-color:rgb( 255 , 255 , 255 );display:inline !important;font-size:14px"><br />
</span></div>
<div style="color:rgb( 0 , 0 , 0 );font-family:'calibri' , 'helvetica' , sans-serif;font-size:12pt">
<span style="background-color:rgb( 255 , 255 , 255 );display:inline !important;font-size:14px">Look here and you can figure
 it out:</span></div>
<div style="color:rgb( 0 , 0 , 0 );font-family:'calibri' , 'helvetica' , sans-serif;font-size:12pt">
<span style="background-color:rgb( 255 , 255 , 255 );display:inline !important;font-size:14px"><br />
</span></div>
<div style="color:rgb( 0 , 0 , 0 );font-family:'calibri' , 'helvetica' , sans-serif;font-size:12pt">
 <a id="cd3ec0b5fd36e541192a7174f8037be4cad5bf6e8a6ca15a3c4631f72a418c65LPlnk" href="https://github.com/modula3/cm3/commit/c408284c5bc858218e9242f73a34263168544c61" target="_blank">Rework widechar size initialization. · modula3/cm3@c408284 (github.com)</a> <br />
</div>
<div class="3a2f13102c4daf23372293f48c3ecbc6b1056b616f5aa6265ee56752482a1d1_Entity e0443e033b66be882e20ac2a9c862221aab3dd1a97a0850601b8e7b859da845_EType_OWALinkPreview ab1ab60c257d3cb6e87d258ee8c149889bd9c8cb28298c6d82543ea4a7e693a_EId_OWALinkPreview bc6f4b853021ea899da18c579f199cd0cd3fd1b51377bdeea7df4f79d32910d_EReadonly_1"></div>
<div style="color:rgb( 0 , 0 , 0 );font-family:'calibri' , 'helvetica' , sans-serif;font-size:12pt">
<br />
</div>
<div style="color:rgb( 0 , 0 , 0 );font-family:'calibri' , 'helvetica' , sans-serif;font-size:12pt">
There is no perfect answer here, as to the size of widechar. 1, 2, and 4 all make sense.</div>
<div style="color:rgb( 0 , 0 , 0 );font-family:'calibri' , 'helvetica' , sans-serif;font-size:12pt">
 1 represents a rebellion against widechar, and the world has mostly rebelled against it or never accepted it </div>
<div style="color:rgb( 0 , 0 , 0 );font-family:'calibri' , 'helvetica' , sans-serif;font-size:12pt">
 2 represents Windows widespread use, and Java, and .NET.</div>
<div style="color:rgb( 0 , 0 , 0 );font-family:'calibri' , 'helvetica' , sans-serif;font-size:12pt">
     This is both not-huge-like-4, and perhaps the victim of early adoption, when 2 seemed like eough.</div>
<div style="color:rgb( 0 , 0 , 0 );font-family:'calibri' , 'helvetica' , sans-serif;font-size:12pt">
 4 represents Unix "widespread" use, or at least the typedef that nobody uses, and perhaps what Windows should use.</div>
<div style="color:rgb( 0 , 0 , 0 );font-family:'calibri' , 'helvetica' , sans-serif;font-size:12pt">
 As well, portability would be good. C and C++ already lack portability here, due to the windows:2 vs. unix:4 schism. </div>
<div style="color:rgb( 0 , 0 , 0 );font-family:'calibri' , 'helvetica' , sans-serif;font-size:12pt">
 C++ now has char16 and char32. Perhaps Modula-3 should too?</div>
<div style="color:rgb( 0 , 0 , 0 );font-family:'calibri' , 'helvetica' , sans-serif;font-size:12pt">
<br />
</div>
<div style="color:rgb( 0 , 0 , 0 );font-family:'calibri' , 'helvetica' , sans-serif;font-size:12pt">
<span style="color:rgb( 0 , 0 , 0 );font-family:'calibri' , 'helvetica' , sans-serif;font-size:12pt"> - Jay</span><br />
</div>
<div style="color:rgb( 0 , 0 , 0 );font-family:'calibri' , 'helvetica' , sans-serif;font-size:12pt">
<br />
</div>
<div>
<hr style="display:inline-block;width:98%" />
<div id="be7f816f47680a87bf30e6ee9bda8218f2e387f28ef856c18dfa722bbcbb9bfadivRplyFwdMsg" dir="ltr"><font color="#000000" face="Calibri, sans-serif" style="font-size:11pt"><b>From:</b> <a href="mailto:vvm@tut.by" target="_blank">vvm@tut.by</a> <<a href="mailto:vvm@tut.by" target="_blank">vvm@tut.by</a>><br />
<b>Sent:</b> Sunday, March 21, 2021 6:50 AM<br />
<b>To:</b> Jay K <<a href="mailto:jayk123@hotmail.com" target="_blank">jayk123@hotmail.com</a>>; m3devel <<a href="mailto:m3devel@elegosoft.com" target="_blank">m3devel@elegosoft.com</a>><br />
<b>Subject:</b> Re: [M3devel] refactoring cm3 into just one package?</font>
<div> </div>
</div>
<div>
<div>Hi!</div>
<div><br />
</div>
<div><br />
</div>
<div> We can compare how we do some things today and will be do in future.</div>
<div><br />
</div>
<div>  As example:</div>
<div><br />
</div>
<div>How turn on "wide char" / 21bit UNICODE in 4 bytes feature on Win 32?</div>
<div><br />
</div>
<div> In correlated ReadMe described only Unix / Cygwin / MinGW way with .sh files.</div>
<div><br />
</div>
<div> Using .cmd scripts require using MS VS 2012 ( VC110).</div>
<div><br />
</div>
<div> Analogs of some .sh scriprs rewrited to .py aren't found.</div>
<div><br />
</div>
<div><br />
</div>
<div>Best regards, Victor Miasnikov</div>
<div><br />
</div>
<div>20.03.2021, 21:31, "Jay K" <<a href="mailto:jayk123@hotmail.com" target="_blank">jayk123@hotmail.com</a>>:</div>
<blockquote>
<div dir="ltr">
<div style="color:rgb( 0 , 0 , 0 );font-family:'calibri' , 'helvetica' , sans-serif;font-size:12pt">
I was thinking..
<div><br />
</div>
<div>sysutils m3scanner m3middle m3objfile m3linker m3back m3quake m3front cm3</div>
<div><br />
</div>
<div>Might as well we combine these into just one or two packages?</div>
<div>I understand the need to break software up into coherent</div>
<div>reusable pieces, and I have no intention to change the graph</div>
<div>among these, but is this more than necessary splitting?</div>
<div><br />
</div>
<div>Plus, you know, linkers can split up static libs.</div>
<div><br />
</div>
<div>I say two because: Move it all into a lib, and then link executables to it.</div>
<div>So some of it can be reused outside of cm3, some is.<br />
</div>
<div>We'd have cm3lib and cm3, or cm3 and cm3exe.</div>
<div>m3tools cm3ide etc. would import the library.</div>
The executable would just be one line that calls library.<br />
</div>
<div style="color:rgb( 0 , 0 , 0 );font-family:'calibri' , 'helvetica' , sans-serif;font-size:12pt">
<br />
</div>
<div style="color:rgb( 0 , 0 , 0 );font-family:'calibri' , 'helvetica' , sans-serif;font-size:12pt">
 - Jay</div>
</div>
,
<p style="margin-bottom:0;margin-top:0">_______________________________________________<br />
M3devel mailing list<br />
<a href="mailto:M3devel@elegosoft.com" target="_blank">M3devel@elegosoft.com</a><br />
<a href="https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fm3lists.elegosoft.com%2Fmailman%2Flistinfo%2Fm3devel&data=04%7C01%7C%7C5218207ae31346d4484808d8ec35af91%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C637519062609962171%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=W10zoDP8s3VNXZG1uP8Cv0HnHNH7Cx4oMlsK9QYGdvQ%3D&reserved=0" target="_blank">https://m3lists.elegosoft.com/mailman/listinfo/m3devel</a><br />
</p>
</blockquote>
</div>
</div>
</div>
</blockquote>
,<p>_______________________________________________<br />M3devel mailing list<br /><a href="mailto:M3devel@elegosoft.com" target="_blank">M3devel@elegosoft.com</a><br /><a href="https://m3lists.elegosoft.com/mailman/listinfo/m3devel" target="_blank">https://m3lists.elegosoft.com/mailman/listinfo/m3devel</a><br /></p></blockquote>