emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
From: Martyn Jago <martyn.jago@btinternet.com>
To: emacs-orgmode@gnu.org
Subject: Re: GSoC 2012 -- Elisp backend for Ragel
Date: Sun, 25 Mar 2012 13:52:02 +0100	[thread overview]
Message-ID: <m2ty1cx2q5.fsf@btinternet.com> (raw)
In-Reply-To: 87vclsykl6.fsf@gmail.com

Hi, and welcome Aurélien,

Nicolas Goaziou <n.goaziou@gmail.com> writes:

> Hello,
>
> Aurélien Aptel <aurelien.aptel@gmail.com> writes:
>
>> On Sun, Mar 25, 2012 at 6:17 AM, Rustom Mody <rustompmody@gmail.com> wrote:
>>> FYI, there is already an elisp Org parser being worked on in development
>>> branch of Org mode. It isn't finished yet, but still advanced enough so
>>> a generic exporter could be built upon it.
>>
>>> Is there any interest in ignoring it and restart all the work from
>>> scratch?
>>>
>>> Yes I agree, no point redoing work unnecessarily.  Maybe the optimal
>>> solution would be for Aurélien to work with Nicolas and Adrian to minimize
>>> useless rework?
>>
>> Regardless of the org-mode parser, I think I should work on the elisp
>> backend for ragel which is something that can benefit any elisp
>> project.
>
> Certainly.
>
>> As for the new org-mode parser, I could not find it on the repo. Could
>> you point me to the relevant files?
>
> See org-element.el in contrib/ directory.  You need development version.
>
>> Is it still hand written? 
>
> Yes.
>
>> If so, I think it's ultimately a bad idea and it should be rewritten
>> using ragel.
>
> It may be. But it allows for flexibility. Org's syntax is evolving, and
> I consider org-element.el as a parser, but also as a guidance in that
> process. Since there is no formal description for Org syntax yet, an
> org-element.el is more useful than a full-blown parser generator for
> now.
>
> I don't know ragel (save for a short excursion in its website), but I'm
> pretty sure that even if it generates elisp code without dependency, any
> evolution to Org syntax will require to use it again. At that time, it
> may be difficult to find someone able and willing to undertake that
> updating task in a reasonable delay (since we're talking about a core
> feature). On the other hand, there are quite a few elisp hackers in
> Emacs's world.
>
> Now, if ragel can improve org-element.el while preserving its
> flexibility (and a compatible output, since I assume you won't also
> rewrite the generic export engine), I'm all ears.

I am a big fan of formalizing as much state design as possible into
formal state-machines, and have been for some time.

For the design process I currently use the excellent plantuml library
from within Org-mode (Aurélien, see lisp/ob-plantuml.el for the
Org-babel interface), although have previously used a bespoke
Ruby/Graphviz library of my design, and previous to that Ragel.

For that reason I think it would be great to see an `Org-Babel'
implementation of Ragel. I think it could be a very useful tool.

However, I don't use code auto-generation by Ragel and the like for the
following reasons...

 1) It complicates the build process
 2) It adds yet more SOUP (software of unknown provenance) to the build
 process which may then need mitigating against (this is relevant to me,
 although possibly not to Org-mode). 
 3) FSM implementation into code is inherently very simple anyway

What I do instead is validate the FSM code against the formal state
representation as an integration test (which is fairly easy to arrange).

So my point is, I personally don't see the use of FSM code generators as
a panacea to perfect super-fast code. To me their usefulness is in the
visual representation of the state interaction (during development, and
subsequent code documentation), and the resulting code quality.

Just my 10c

Best, Martyn

>
>
> Regards,

  reply	other threads:[~2012-03-25 12:52 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-03-22 13:43 GSoC 2012 -- Elisp backend for Ragel Rustom Mody
2012-03-23 11:12 ` Aurélien Aptel
2012-03-23 11:36   ` Rustom Mody
     [not found]     ` <CAJ+TeoebkVTLs9nrDTH_6xvzvkk1vTEZDL2iHmEAkTUfZRjpjQ@mail.gmail.com>
     [not found]       ` <CAJ+TeoebkVTLs9nrDTH_6xvzvkk1vTEZDL2iHmEAkTUfZRjpjQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2012-03-25  4:17         ` Rustom Mody
2012-03-25  6:55           ` Rustom Mody
2012-03-25 10:06           ` Aurélien Aptel
2012-03-25 11:40             ` Nicolas Goaziou
2012-03-25 12:52               ` Martyn Jago [this message]
2012-03-27 20:34                 ` Aurélien Aptel
2012-03-27 21:22                   ` Achim Gratz
2012-03-27 22:11                     ` Aurélien Aptel
2012-03-28  6:34                       ` Achim Gratz
2012-03-29 17:50                         ` Aurélien Aptel
2012-03-29 17:52                           ` Samuel Wales
2012-03-29 19:04                           ` Achim Gratz
     [not found]               ` <87vclsykl6.fsf-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2012-03-27 20:03                 ` Aurélien Aptel
2012-03-26 16:01             ` Bastien
     [not found]               ` <87wr674aii.fsf-mXXj517/zsQ@public.gmane.org>
2012-03-27 20:49                 ` Aurélien Aptel
2012-03-27 22:10                   ` Bastien
2012-03-26 15:53     ` Bastien
  -- strict thread matches above, loose matches on Subject: below --
2012-03-21 18:51 Aurélien Aptel
2012-03-21 19:32 ` Aurélien Aptel
2012-03-21 19:34 ` Samuel Wales
2012-03-22 12:22 ` Thorsten
2012-03-24  8:16 ` Nicolas Goaziou
2012-03-26 16:03 ` Bastien

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.orgmode.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=m2ty1cx2q5.fsf@btinternet.com \
    --to=martyn.jago@btinternet.com \
    --cc=emacs-orgmode@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).