Ah, interesting. Does Ragel actually approximate the bytecode size of the separate functions and break them into multiple init functions if near the 64kb limit? If it does, maybe an approximation could be done to avoid init functions entirely. Or alternatively, how about a "write init" option to not use functions at all?<br>

<br>-Nate<br><br><br><div class="gmail_quote">On Thu, Apr 7, 2011 at 1:34 PM, Adrian Thurston <span dir="ltr"><<a href="mailto:thurston@complang.org">thurston@complang.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">

If I recall correctly, the functions are there because the initializers become code in the calling function. Since java has a limit on the amount of (compiled) code per function, we always use separate functions so we can test for a reasonable approximation of the limit on a per-array basis. I think that was it.<div>

<div></div><div class="h5"><br>
<br>
On 04/06/2011 01:20 AM, Nate wrote:<br>
</div></div><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;"><div><div></div><div class="h5">
Ragel currently outputs a method and static field for Java, eg:<br>
<br>
private static byte[] init__tableLayout_trans_targs_0 () { return new<br>
byte[] {...}; }<br>
private static final byte _tableLayout_trans_targs[] =<br>
init__tableLayout_trans_targs_0();<br>
<br>
We could save a few bytes on class file size by just assigning the<br>
array, without an method:<br>
<br>
private static final byte _tableLayout_trans_targs[] = new byte[] {...};<br>
<br>
The end result is the exactly the same, but less code needs to be output<br>
and the class files will be a little bit smaller.<br>
<br>
-Nate<br>
<br>
<br>
<br></div></div>
_______________________________________________<br>
ragel-users mailing list<br>
<a href="mailto:ragel-users@complang.org" target="_blank">ragel-users@complang.org</a><br>
<a href="http://www.complang.org/mailman/listinfo/ragel-users" target="_blank">http://www.complang.org/mailman/listinfo/ragel-users</a><br>
--===============1102049<br>
</blockquote>
<br>
-- <br>
Adrian D. Thurston<br>
<a href="http://www.complang.org/thurston/" target="_blank">http://www.complang.org/thurston/</a><br>
<br>
_______________________________________________<br>
ragel-users mailing list<br>
<a href="mailto:ragel-users@complang.org" target="_blank">ragel-users@complang.org</a><br>
<a href="http://www.complang.org/mailman/listinfo/ragel-users" target="_blank">http://www.complang.org/mailman/listinfo/ragel-users</a><br>
</blockquote></div><br>