<div>Hi!</div><div> </div><div> </div><div><div><div>MN}}} </div><div>MN}}}  Now I know sort of why this is happening. </div><div>MN}}} The cit_util directory has an interface with the same name as sysutils does.  </div><div>MN}}} </div><div>MN}}}  But what I'm not understanding is, cit_util doesn't import sysutils, does it?  Not even indirectly.</div><div>MN}}} sysutils is part of the cm3 compiler, and not part of m3core or libm3 or anything else that cit_util imports.</div><div>MN}}} Why are the two clashing?</div><div>MN}}} How have others worked around the issue?</div><div>MN}}} </div><div><div><div> </div><div>JK}} </div><div>JK}}   You are right. I have it "fixed" it now. Sorry about that.</div><div>JK}}  The change was mostly very worthwhile but maybe a bit more than necessary.</div><div>JK}}  We should probably consolidate all of TextUtils/TextExtras into m3-libs/m3text or m3-libs/m3core.</div><div>JK}} </div><div> </div></div></div></div> </div><div>This is related?</div><div> </div><div><div><a href="https://github.com/modula3/cm3/commit/1c23de8a6c2660e6cfd5414965cc2b685d54f5f2#commitcomment-49702324" rel="noopener noreferrer" target="_blank">https://github.com/modula3/cm3/commit/1c23de8a6c2660e6cfd5414965cc2b685d54f5f2#commitcomment-49702324</a><div><div>== == ==</div><div>VictorMiasnikov replied 7 days ago</div><div> </div><div>===</div><div>ERROR LOG SUMMARY:</div><div>-----------------</div><div>WARNING:  Errors in package "caltech-parser\cit_util"</div><div>===</div><div> </div><div>===</div><div>------------------------------------------------------------------------------</div><div>--- processing package "caltech-parser\cit_util" ---</div><div>--- purging derived files from AMD64_NT ---</div><div> </div><div> . . .</div><div> </div><div>--- building in AMD64_NT ---</div><div> </div><div>ignoring ..\src\m3overrides</div><div> </div><div>Fatal Error: duplicate unit: D:\cm3\pkg\sysutils\src\TextUtils.i3 ..\src\TextUtils.i3</div><div> </div><div>WARNING:  Encountered an error when processing package "caltech-parser\cit_util" for "-build".</div><div>===</div><div>== == ==</div></div></div></div><div> </div><div> </div><div> </div><div>Best regards, Victor Miasnikov</div><div> </div><div>25.04.2021, 19:41, "Jay K" <jayk123@hotmail.com>:</div><blockquote><div><div style="color:rgb( 0 , 0 , 0 );font-family:'calibri' , 'helvetica' , sans-serif;font-size:12pt">You are right. I have it "fixed" it now. Sorry about that.</div><div style="color:rgb( 0 , 0 , 0 );font-family:'calibri' , 'helvetica' , sans-serif;font-size:12pt">The change was mostly very worthwhile but maybe a bit more than necessary.</div><div style="color:rgb( 0 , 0 , 0 );font-family:'calibri' , 'helvetica' , sans-serif;font-size:12pt">We should probably consolidate all of TextUtils/TextExtras into m3-libs/m3text or m3-libs/m3core.</div><div style="color:rgb( 0 , 0 , 0 );font-family:'calibri' , 'helvetica' , sans-serif;font-size:12pt">Setting up CI ought to occur soon. &#x1f641;</div><div style="color:rgb( 0 , 0 , 0 );font-family:'calibri' , 'helvetica' , sans-serif;font-size:12pt"> </div><div style="color:rgb( 0 , 0 , 0 );font-family:'calibri' , 'helvetica' , sans-serif;font-size:12pt"> - Jay</div><div><div> </div><div style="color:rgb( 0 , 0 , 0 );font-family:'calibri' , 'helvetica' , sans-serif;font-size:12pt"> </div><hr style="width:98%" /><div><font color="#000000" face="Calibri, sans-serif" style="font-size:11pt"><strong>From:</strong> Mika Nystrom <<a href="mailto:mika.nystrom@gmail.com" rel="noopener noreferrer">mika.nystrom@gmail.com</a>><br /><strong>Sent:</strong> Sunday, April 25, 2021 4:22 PM<br /><strong>To:</strong> Jay K <<a href="mailto:jayk123@hotmail.com" rel="noopener noreferrer">jayk123@hotmail.com</a>>; m3devel <<a href="mailto:m3devel@elegosoft.com" rel="noopener noreferrer">m3devel@elegosoft.com</a>><br /><strong>Subject:</strong> Re: duplicate unit TextUtils</font><div> </div></div><div><div>OK, I believe the trouble is coming from recent changes to netobj. It's causing netobj to pull in m3middle, which pulls in sysutils, which then goes all over the place that netobj is used.<div> </div><div>Netobj now requires Target, which is from m3middle:</div><div> </div><div> </div><div>c408284c5b (JayKrell        2021-03-18 20:36:33 -0700  291)             IF IntVal > Target.WideChar16Max THEN IntVal := ReplacementWt; END;</div><div> </div><div>c408284c5b (JayKrell    2021-03-18 20:36:33 -0700 17) import("m3middle")</div><div> </div><div>This is unfortunately going to break a lot of code on our end.  Hmm.  What is the right way to solve this problem?</div><div> </div><div>I noticed another thing while debugging this...</div><div> </div><div>scynoble99> grep TextUtils /tmp/d5.10.0/pkg/*/AMD64_LINUX/.M3EXPORTS | wc<br />   6515    6530  520287<br />scynoble99> grep TextUtils /tmp/d5.10.0/pkg/*/AMD64_LINUX/.M3EXPORTS | uniq | wc<br />     79      94    6387</div><div> </div><div>That seems a little bit odd, no?</div><div> </div><div>scynoble99> grep TextUtils /tmp/d5.10.0/pkg/webvbt/AMD64_LINUX/.M3EXPORTS | wc<br />    521     521   15630<br />scynoble99></div><div> </div> scynoble99> wc /tmp/d5.10.0/pkg/webvbt/AMD64_LINUX/.M3EXPORTS<br />  6332   6492 184297 /tmp/d5.10.0/pkg/webvbt/AMD64_LINUX/.M3EXPORTS<div> </div> scynoble99> sort /tmp/d5.10.0/pkg/webvbt/AMD64_LINUX/.M3EXPORTS | uniq -c | sort -g | tail<br />    521 export_interface("FastLex")<br />    521 export_interface("MsgIF")<br />    521 export_interface("MsgX")<br />    521 export_interface("OSSpecials")<br />    521 export_interface("PathRepr")<br />    521 export_interface("ProcessEnv")<br />    521 export_interface("SMsg")<br />    521 export_interface("System")<br />    521 export_interface("TextReadingUtils")<br />    521 export_interface("TextUtils")<div>scynoble99></div><div> </div><div>Why is one file exporting each of these interfaces 521 times?</div><div> </div><div>      Mika </div></div> <div><div>On Sun, Apr 25, 2021 at 8:20 AM Mika Nystrom <<a href="mailto:mika.nystrom@gmail.com" rel="noopener noreferrer">mika.nystrom@gmail.com</a>> wrote:</div><blockquote style="border-left-color:rgb( 204 , 204 , 204 );border-left-style:solid;border-left-width:1px;margin:0px 0px 0px 0.8ex;padding-left:1ex"><div>Hi Jay, others,<div> </div><div>I'm trying to build the head like so:</div><div> </div><div>./boot1.py AMD64_LINUX</div><div>./boot2.py</div><div> </div><div>and all looks good until this happens:</div><div> </div><div>ignoring ../src/m3overrides<br /><br /><br />Fatal Error: duplicate unit: /tmp/d5.10.0/pkg/sysutils/src/TextUtils.i3 ../src/TextUtils.i3<br /><br /> *** execution of [<function _BuildGlobalFunction at 0x7ffff4f7b550>, <function _ShipFunction at 0x7ffff4f7b5d0>] failed ***<br />ERROR: ./do-cm3-all.py buildship<br />scynoble99> cd /nfs/sc/disks/mst_109/mnystroe/cm3-github-2/caltech-parser/cit_util<br />scynoble99> /tmp/d5.10.0/bin/cm3   -DBUILD_DIR=AMD64_LINUX   -build -DROOT=/nfs/sc/disks/mst_109/mnystroe/cm3-github-2 -DTARGET=AMD64_LINUX<br />--- building in AMD64_LINUX ---<br /><br />ignoring ../src/m3overrides<br /><br /><br />Fatal Error: duplicate unit: /tmp/d5.10.0/pkg/sysutils/src/TextUtils.i3 ../src/TextUtils.i3<br /> </div><div>Now I know sort of why this is happening.  The cit_util directory has an interface with the same name as sysutils does.  </div><div> </div><div>But what I'm not understanding is, cit_util doesn't import sysutils, does it?  Not even indirectly.  sysutils is part of the cm3 compiler, and not part of m3core or libm3 or anything else that cit_util imports.  Why are the two clashing?  How have others worked around the issue?</div><div> </div><div>     Mika</div><div> </div><div> </div></div></blockquote></div></div></div></div>,<p>_______________________________________________<br />M3devel mailing list<br /><a href="mailto:M3devel@elegosoft.com" rel="noopener noreferrer">M3devel@elegosoft.com</a><br /><a href="https://m3lists.elegosoft.com/mailman/listinfo/m3devel" rel="noopener noreferrer">https://m3lists.elegosoft.com/mailman/listinfo/m3devel</a></p></blockquote>