<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN">
<html><body style='font-size: 14pt; font-family: Verdana,Geneva,sans-serif'>
<p>Hi,</p>
<p>So the state of golang code production is a little complicated ....</p>
<p>In ragel version 6 there is support. This was coded into the binary and is implemented by cloning and specializing all the code generators. All the other languages are supported this way.</p>
<p>While cloning worked, it resulted in an unmaintainable mess over time. Adding features to the code generator required updating the codegens for all the supported langs, some of which suffered bitrot. It became a huge pain.</p>
<p>So for ragel 7 I started working on a new translation framework that would make it easier for adding other languages. I succeeded in the backend, but still had clone issues in the frontend parser (distinct lexers are required for each language). I ended up stopping this effort because I couln't see a straightforward path with the frontends and didn't want to be in the same position as with ragel 6. Also, I personally don't use any host langs other than C and ASM so I had a hard time justifying additional effort.</p>
<p>Enter some new recent insights and I can actually see a path towards out-of-tree host lang support in the frontend as well as backend. I'm currently exploring that route. If successful (expected) I will add the support necessary for other people to maintain their own host languages.</p>
<p>So in the meantime you can use ragel 6 and wait for ragel 7 out-of-tree host language support. I'll probably provide a few examples, one of which likely will be golang.</p>
<p>-Adrian</p>
<p>On 2017-06-29 15:42, Krish I wrote:</p>
<blockquote type="cite" style="padding-left:5px; border-left:#1010ff 2px solid; margin-left:5px"><!-- html ignored --><!-- head ignored --><!-- meta ignored -->
<div dir="ltr">Hi!
<div> </div>
<div>I am fascinated with state machines and I recently found out about Ragel.</div>
<div>I would also like to revise my compiler knowledge from school.</div>
<div> </div>
<div>As I am currently learning Golang, can I add support for Golang in Ragel, if one does not exist already?</div>
<div> </div>
<div>Also, I would love to have a pure-go implementation rather than a C-binding and would like to know if that is possible.</div>
<div> </div>
<div>This will be a personal hobby projects and I can dedicate 2 hours 4 to 5 days a week if that is possible. I am also alright with MIT license, if that makes any difference.</div>
<div> </div>
<div>
<div>Best,</div>
<div>Krish</div>
</div>
</div>
<br />
<pre>_______________________________________________
ragel mailing list
<a href="mailto:ragel@colm.net">ragel@colm.net</a>
<a href="http://www.colm.net/cgi-bin/mailman/listinfo/ragel">http://www.colm.net/cgi-bin/mailman/listinfo/ragel</a>
</pre>
</blockquote>
</body></html>