Re: [ANN] Lua Callgraph Generator (lcg)

George Georgalis <[email protected]> Sat, 25 Jul 2026 11:15:50 -0700
Newsgroups gmane.comp.lang.lua.general
Message-ID <CAHK3FNyriRJPxreysw8z=ZwFLNQ_vvstf5N84DU5JCcmFS8WKg@mail.gmail.com>
--00000000000042454f0657737b87
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Sat, Jul 25, 2026 at 8:39=E2=80=AFAM 'Martin Eden' via lua-l <
[email protected]> wrote:

>
> I want this tool be complete in some sense. So it must stay simple.
>
>
I guess what I was getting at is, in order to do the input trace, the code
must have some coherence toward the nature of the nodes and edges captured
(their respective component classes) during the walk; and that would be the
optimal time to inlay style types in the dot data. eg for all the types of
nodes and edges you discover indicate that class in the node, that way
colors and shapes can be defined as dot preamble (stylesheet). In the
simplest sense, I could post-process the dot to make "GETUPVAL" a
parallelogram node, "TEST" a diamond, and related style attributes. But
differentiating edges would be more tricky. I was just imagining the class
type data would be convenient writing into the dot. Even if left as default
ellipse...

...I guess dot doesn't support node classes! so node style definition would
need to aggregate each node type together
{  "Close 8" "Close 9" "Close 10" bgcolor=3D"green" shape=3Dcircle };
and edge styles would just not be practical...

nevertheless differentiating node/edge classes within the graph, would
inform the analysis, in a similar way the graph uplifts analysis, from the
text. :-}

There is a powerful commercial tool made free, Sourcetrail which is the
only one I bookmark, it doesn't do scripting languages though.
Oh, I see it supports custom indexers...
https://github.com/CoatiSoftware/Sourcetrail/blob/master/DOCUMENTATION.md#c=
ustom-command-source-group

I made a function call to dot code parser but it only showed
function dependencies. Once you need a tool like this, the value really
comes through!

Best regards,
George


--=20
George Georgalis, (415) 894-2710, http://galis.org/

--=20
You received this message because you are subscribed to the Google Groups "=
lua-l" group.
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to [email protected].
To view this discussion visit https://groups.google.com/d/msgid/lua-l/CAHK3=
FNyriRJPxreysw8z%3DZwFLNQ_vvstf5N84DU5JCcmFS8WKg%40mail.gmail.com.

--00000000000042454f0657737b87
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div dir=3D"ltr"><br></div><br><div class=3D"gmail_quote g=
mail_quote_container"><div dir=3D"ltr" class=3D"gmail_attr">On Sat, Jul 25,=
 2026 at 8:39=E2=80=AFAM &#39;Martin Eden&#39; via lua-l &lt;<a href=3D"mai=
lto:[email protected]">[email protected]</a>&gt; wrote:<br></div>=
<blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-=
left:1px solid rgb(204,204,204);padding-left:1ex"><br>
I want this tool be complete in some sense. So it must stay simple.<br>
<br></blockquote><div><br></div><div>I guess what I was getting at is, in o=
rder to do the input trace, the code must have some coherence toward the na=
ture of the nodes and edges captured (their respective component classes) d=
uring the walk; and that would be the optimal time to inlay style types in =
the dot data. eg for all the types of nodes and edges you discover indicate=
 that class in the node, that way colors and shapes can be defined as dot p=
reamble (stylesheet). In the simplest sense, I could post-process the dot t=
o make &quot;GETUPVAL&quot; a parallelogram=C2=A0node, &quot;TEST&quot; a d=
iamond, and related style attributes. But differentiating edges would be mo=
re tricky. I was just imagining the class type data would be convenient wri=
ting into the dot. Even if left as default ellipse...<br><br></div><div>...=
I guess dot doesn&#39;t support node classes! so node style definition woul=
d need to aggregate=C2=A0each node type together</div><div>{=C2=A0 &quot;Cl=
ose 8&quot; &quot;Close 9&quot; &quot;Close 10&quot; bgcolor=3D&quot;green&=
quot; shape=3Dcircle };</div><div>and edge styles would just not be practic=
al...</div><div><br></div><div>nevertheless differentiating node/edge class=
es within the graph, would inform the analysis, in a similar way the graph =
uplifts analysis, from the text. :-}</div><div><br></div><div>There=C2=A0is=
 a powerful commercial tool made free, Sourcetrail which is the only one I =
bookmark, it doesn&#39;t=C2=A0do scripting languages though.<br></div><div>=
Oh, I see it supports custom indexers... <a href=3D"https://github.com/Coat=
iSoftware/Sourcetrail/blob/master/DOCUMENTATION.md#custom-command-source-gr=
oup">https://github.com/CoatiSoftware/Sourcetrail/blob/master/DOCUMENTATION=
.md#custom-command-source-group</a></div><div><br>I made a function=C2=A0ca=
ll=C2=A0to dot code parser but it=C2=A0only showed function=C2=A0dependenci=
es. Once you need a tool like this, the value really comes through!<br><br>=
</div><div>Best regards,</div><div>George</div></div><div><br clear=3D"all"=
></div><br><span class=3D"gmail_signature_prefix">-- </span><br><div dir=3D=
"ltr" class=3D"gmail_signature"><div dir=3D"ltr">George Georgalis, (415) 89=
4-2710, <a href=3D"http://galis.org/" target=3D"_blank">http://galis.org/</=
a><br><br></div></div></div>

<p></p>

-- <br />
You received this message because you are subscribed to the Google Groups &=
quot;lua-l&quot; group.<br />
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to <a href=3D"mailto:[email protected]">lua-l+unsubsc=
[email protected]</a>.<br />
To view this discussion visit <a href=3D"https://groups.google.com/d/msgid/=
lua-l/CAHK3FNyriRJPxreysw8z%3DZwFLNQ_vvstf5N84DU5JCcmFS8WKg%40mail.gmail.co=
m?utm_medium=3Demail&utm_source=3Dfooter">https://groups.google.com/d/msgid=
/lua-l/CAHK3FNyriRJPxreysw8z%3DZwFLNQ_vvstf5N84DU5JCcmFS8WKg%40mail.gmail.c=
om</a>.<br />

--00000000000042454f0657737b87--