<html>
<head>
<style>
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 10pt;
font-family:Verdana
}
</style>
</head>
<body class='hmmessage'>
I might be able to win just by making m3scan/m3id.i3 not public, changing Module to module in the m3makefile or such.<BR>
Or renaming it, same thing really. The unit name only occurs twice. I have to verify nobody uses it outside of m3scan though.<BR>
Keeping MxConfig/M3Config duplicates isn't great, because I have MxConfig importing M3Config's constants, and then M3Config would want to have a Get function that called into MxConfig -- circularity..though the constants are generated and that could be copied instead...not a lot of duplication here in any case but I'll see...<BR>
 <BR>
 - Jay<BR> <BR>
<HR id=stopSpelling>
From: jay.krell@cornell.edu<BR>To: m3devel@elegosoft.com<BR>Date: Thu, 16 Jul 2009 18:54:59 +0000<BR>Subject: [M3devel] duplicated code and unit names -- M3ID, M3Keyword<BR><BR>
<STYLE>
.ExternalClass .EC_hmmessage P
{padding:0px;}
.ExternalClass body.EC_hmmessage
{font-size:10pt;font-family:Verdana;}
</STYLE>
We have some redundancies that are causing me some grief.<BR> <BR>We have two units called M3ID.<BR>They have no overlap, and could be merged into one.<BR>"No overlap" doesn't mean they are completely unrelated, but sort of.<BR> <BR> <BR>More bothersome is that m3-sys\m3scanner<BR>and m3-tools\m3scan have near duplicate code, in particular<BR>the list of tokens and the Classify function.<BR> <BR>In particular, where people were using libm3\M3Config,<BR>there are problems using instead m3quake\MxConfig, because<BR>this can bring together the two M3IDs.<BR> <BR>I was going to replace all uses of M3Config with MxConfig.<BR>However to avoid the duplicate M3ID units, I think I'll<BR>keep M3Config and MxConfig more like duplicates of each<BR>other at least for now, to avoid bringing m3quake<BR>into places that have the other M3ID.<BR><BR>M3Config is in libm3 and MxConfig is in m3quake.<BR>m3quake imports m3middle, which has M3ID.<BR> <BR>Therefore, if you use M3Config and have your own M3ID,<BR>you can't switch to MxConfig without renaming one of the M3IDs.<BR>This does occur in m3-tools.<BR> <BR>C:\dev2\cm3.2\m3-sys\m3scanner\src\M3Keyword.m3(25):PROCEDURE Classify (READONLY x: ARRAY OF CHAR): TK =<BR>C:\dev2\cm3.2\m3-sys\m3scanner\src\M3Keyword.m3(360):  END Classify;<BR>C:\dev2\cm3.2\m3-tools\m3scan\src\M3ID.i3(12):PROCEDURE Classify (READONLY x: ARRAY OF CHAR): M3Token.T;<BR>C:\dev2\cm3.2\m3-tools\m3scan\src\M3ID.m3(17):PROCEDURE Classify (READONLY x: ARRAY OF CHAR): M3Token.T =<BR><BR><BR> - Jay<BR></body>
</html>