<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 need some names.<div><br></div><div>C has a type "jmp_buf" -- with no "u" and with an underscore.</div><div><br></div><div><br></div><div>I need a module in m3front for counting tries and managing jmp_bufs.</div><div>I call it Jmpbufs.</div><div><span style="font-size: 12pt; ">It could be Jumpbufs</span><span style="font-size: 12pt; ">.</span></div><div><span style="font-size: 12pt; ">Or JumpBuffers.</span></div><div>Perhaps that is too direct.</div><div>Or sjljeh (setjmp/longjmp exception handling)</div><div>Or worked into the existing Marker.</div><div><br></div><div><div><br></div><div>A "constant variable" in C to hold sizeof(jmp_buf).</div><div>So far this was called Csetjmp__Jumpbuf_size.</div><div>However this "constant variable" should never be used from Modula-3.</div><div>Putting in a Modula-3 interface (Csetjmp), with the two level naming and a double underscore is unnecessary and I suggest should not be done.</div><div><br></div><div><br></div><div>This name is an "interface" between m3front and m3core, i.e. m3core/src/unix/Common/Uconstants.c.</div><div>It is always statically linked.</div><div><br></div><div><br></div><div>Potential names here are:</div><div><br></div><div><br></div><div>m3_jmpbuf_size my favorate at the moment</div><div>jmpbuf_size</div><div>Csetjmp_Jumpbuf_size already present by this name, but can be changed </div><div><br></div><div><br></div><div><span style="font-size: 12pt; "><br></span></div><div><span style="font-size: 12pt; ">"alloca"</span></div><div><br></div><div><br></div><div>This is (will be) part of the interface between m3front and every backend.</div><div>While it is *almost* pass-through, it isn't.</div></div><div>The C backend targeting non-Win32, non-VMS, can just pass through the name.</div><div>But every other case in every other backend must treat the name specially.</div><div>cm3cg has to convert it to "builtin_alloca".</div><div>LLVM probably is like cm3cg.</div><div><span style="font-size: 12pt; ">Win32 non-C has to change it to __chkstk or perhaps _chkstk.</span></div><div>Win32 C has to change it to _alloca.</div><div>OpenVMS has to change it to __ALLOCA or such.</div><div><span style="font-size: 12pt; ">That is, the symbol "alloca" is almost but not quite portable in C.</span></div><div><br></div><div><br></div><div>Again the function is never called from Modula-3 and need not be in an interface.</div><div><br></div><div><br></div><div>Potential names here are:</div><div><br></div><div>"alloca" what I'm using currently and remains my favorate.</div><div>"m3_alloca"</div><div>"m3_allocate_jmpbufs"</div><div><br></div><div><br></div><div>So far I'm calling it "alloca".</div><div><br></div><div><br></div><div>Thoughts/suggestions/criticisms?</div><div><br></div><div><br></div><div>Just wait for the larger diff?</div><div><br></div><div><br></div><div>As well, some of this could be more than "just random string function names".</div><div>We could make them CONSTs in M3CG_Ops.i3.</div><div><br></div><div><br></div><div>We could make separate functions in M3CG_Ops.i3, like "allocate_jmpbufs" and leave the "lowering" always to the backend -- this isn't likely, as many backends can share part of the lowering.</div><div><br></div><div><br></div><div>But adding alloca to M3CG_Ops.i3 might be reasonable.</div><div><br></div><div><br></div><div>Thanks,</div><div> - Jay</div> </div></body>
</html>