My bad, what does the sketch of the plan *look like*?

-Andy
________________________________________
From: Andrew Christianson
Sent: Thursday, May 4, 2017 10:59:07 AM
To: dev@nifi.apache.org
Subject: Re: MiNiFi C++ Expression Language

What does the sketch of the plan to do the separate implementation? Write a 
flex/bison grammar, hook it into the cmake build, and start using it? Any 
constraints on features or syntax that this separate implementation must 
support?

-Andy
________________________________________
From: Matt Burgess <mattyb...@gmail.com>
Sent: Thursday, May 4, 2017 9:37:34 AM
To: dev@nifi.apache.org
Subject: Re: MiNiFi C++ Expression Language

No plans that I know of. In the meantime, EL support for MiNiFi is kind of held 
hostage, so maybe the separate implementation is more viable in the nearer 
term. If/When the ANTLR4 upgrade happens, we could replace whatever exists by 
then with the cross-platform ANTLR target generation, and test the whole kit 
and caboodle.

Anyone out there familiar with the aforementioned tools (or willing to 
hand-roll one)? What do you think about this "EL bootstrapping" approach?

Thanks,
Matt

> On May 4, 2017, at 9:22 AM, Andrew Christianson 
> <andrew.christian...@nextcentury.com> wrote:
>
> Got it. So the crux of the problem is porting from v3 to v4, plus the added 
> uncertainty of the C++ v4 target.
>
> I'm assuming that NiFi wants to eventually get onto v4 anyway. If that's the 
> case, then porting to v4 is probably the ticket. Are there any concrete plans 
> to do so in the NiFi mother project yet?
>
> -Andy
> ________________________________________
> From: Matt Burgess <mattyb...@gmail.com>
> Sent: Thursday, May 4, 2017 9:18:00 AM
> To: dev@nifi.apache.org
> Subject: Re: MiNiFi C++ Expression Language
>
> Correct, the current NiFi EL grammar is ANTLR3.
>
>
>> On May 4, 2017, at 9:12 AM, Andrew Christianson 
>> <andrew.christian...@nextcentury.com> wrote:
>>
>> Do I understand correctly that NiFi is currently using ANTLRv3?
>> ________________________________________
>> From: Matt Burgess <mattyb...@gmail.com>
>> Sent: Thursday, May 4, 2017 9:05:35 AM
>> To: dev@nifi.apache.org
>> Subject: Re: MiNiFi C++ Expression Language
>>
>> I haven't used Flex/Bison since a trivial example in college, so I'm not 
>> sure about the LOE for getting that set up, maybe there's a Maven-built 
>> project out there that we could look at for inspiration, but that seems 
>> unlikely :)
>>
>> An ANTLR4 refactor (assuming the C++ target is in good shape) would give us 
>> NiFi/MiNiFi EL compatibility (and full-featured EL support in MiNiFi C++), 
>> but we'd have to accept the risks of introducing bugs, regressions, etc. as 
>> a result of the refactor. Basically we'd just need to test the heck out of 
>> it on all platforms, which isn't a bad thing but adds to the LOE for the 
>> ANTLR4 upgrade, versus a smaller testing "surface" for incremental 
>> development of a C/C++ based grammar.
>>
>>
>> On May 4, 2017, at 8:51 AM, Andrew Christianson 
>> <andrew.christian...@nextcentury.com> wrote:
>>
>>>> I tried a quick ANTLR4 upgrade myself, it's indeed a big job to refactor 
>>>> the existing grammar. Since the source and target for MiNiFi C++ is, well, 
>>>> C++, an alternative could be to use lex/yacc (Flex/Bison) [1], Lemon [2], 
>>>> Ragel [3], etc. The downside is maintaining two grammars, but we are doing 
>>>> that with all the MiNiFi components already. The upside is being able to 
>>>> support EL incrementally as the grammar is developed. What do you think?
>>>
>>> This seems like a pragmatic approach. What's the level-of-effort required 
>>> to do the initial grammar port and set up the build tooling? Less than 
>>> refactoring for ANTLR4? I'm not as familiar with the EL grammar situation.
>>>
>>> -Andy
>>> ________________________________________
>>> From: Matt Burgess <mattyb...@gmail.com>
>>> Sent: Thursday, May 4, 2017 8:46:20 AM
>>> To: dev@nifi.apache.org
>>> Subject: Re: MiNiFi C++ Expression Language
>>>
>>> I tried a quick ANTLR4 upgrade myself, it's indeed a big job to refactor 
>>> the existing grammar. Since the source and target for MiNiFi C++ is, well, 
>>> C++, an alternative could be to use lex/yacc (Flex/Bison) [1], Lemon [2], 
>>> Ragel [3], etc. The downside is maintaining two grammars, but we are doing 
>>> that with all the MiNiFi components already. The upside is being able to 
>>> support EL incrementally as the grammar is developed. What do you think?
>>>
>>> Regards,
>>> Matt
>>>
>>> [1] http://dinosaur.compilertools.net/
>>> [2] http://www.hwaci.com/sw/lemon/
>>> [3] http://www.colm.net/open-source/ragel/
>>>
>>>
>>>
>>> Sent from my iPhone
>>>> On May 4, 2017, at 8:13 AM, Marc P. <marc.par...@gmail.com> wrote:
>>>>
>>>> Andrew,
>>>> I am not aware of it being actively worked [1]. This would require using
>>>> ANTLR4, but I don't believe C++ support is well tested [2].  Someone can
>>>> correct me if I'm wrong, but there would have to be changes to both sides.
>>>> I attempted a quick straw man with grammars, but didn't take it very far
>>>> after making initial changes to the grammar. It generated code, but I'm
>>>> uncertain of cross platform compatibility with the expression language. If
>>>> that's not expected or required that will remove some limitations as a
>>>> result of moving to ANTLR4.
>>>>
>>>> [1] https://issues.apache.org/jira/browse/MINIFI-140
>>>> [2] http://www.soft-gems.net/index.php/tools/49-the-antlr4-c-target-is-here
>>>>
>>>> On Thu, May 4, 2017 at 8:07 AM, Andrew Christianson <
>>>> andrew.christian...@nextcentury.com> wrote:
>>>>
>>>>> All,
>>>>>
>>>>> I see that we do not have support for the expression language yet in
>>>>> MiNiFi C++. Is anyone actively working on this, and if so, is there an 
>>>>> ETA?
>>>>> If no one is working on it, is there a general plan for how it should be
>>>>> implemented? I think I recall seeing references to ANTLR

Reply via email to