<html>
<head>
<style><!--
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 12pt;
font-family:Calibri
}
--></style></head>
<body class='hmmessage'><div dir='ltr'> - I basically understand licensing.<br> - I understand GPL<br> - I understand more liberal BSD license<br> - I understand that the notion of "linking" hasn't been defined, but everyone seems to define it "like how static libraries work", "maybe with dynamic linking", and definitely not with "process boundaries".<br> - So cm3 calls gcc across a process boundary, and parse.c is GPL licensed, linked to other GPL licensed code, and does not "link" to cm3, so does not infect the cm3 runtime, so does not infect all the Modula-3 code.<br><br><br>What I do not understand:<br> - dual licensing<br> - who owns parse.c<br> - can parse.c be dual licensed?<br><br>In particular:<br>jair:mips jay$ edit /dev2/cm3.4/m3-sys/m3cc/gcc/gcc/m3cg/<br>    m3-parse.h           parse.c         <br> m3-def.h        m3cg.h              <br><br><br>Some of these files would be useful in other backends, structured like the cm3cg backend at least, and possibly<br>in-process ones, either call-based or "linearized IR in memory".<br><br>In particular m3-def.h and m3cg.h. I would like to maybe reuse these in non-GPL code.<br><br>m3cg.h is output by m3cggen.<br>m3-def.h I wrote.<br><br>These files need to be at least be GPL licensed since they are used by parse.c and linked to the overall gcc backend.<br>Can we also BSD license them or such?<br><br>(and broken record, but m3-def.h...we could really use some sort of preprocessor for Modula-3, maybe...this form of C/C++ is super useful...)<br><br> - Jay<br>                                      </div></body>
</html>