Some questions on sableCC and its future

83 views
Skip to first unread message

fabien...@imt-atlantique.fr

unread,
Feb 25, 2019, 8:21:20 AM2/25/19
to SableCC

Hi,
These questions are meant for Etienne but anyone can answer…
For a large open source modeling framework (https://www.openflexo.org), we use sableCC for several language parsers.

1) Recently, we started to face fatal errors when using sableCC (using gradle sableCC plugin 1.0.5 which rely on sablecc 3.2-1). We, non deterministically, get some 6 >= 0 (or other values) fatal errors when generating a parser. Launching again the parser generation often makes it work again. This behavior never happen using java 8, rarely on java 9, is more frequent in java 10. Any idea of a possible cause?

2) Recently, I discovered that there have been some commits on the github of sableCC. Does that mean that sableCC 4 may be soon released? Can he be considered as stable and replace sableCC 3?

3) If we were to try to resolve our problem, is there any interest to do it on sableCC 3? Is there a public repository to contribute to or are we supposed to do it only on version 4?

Fabien

Etienne Gagnon

unread,
Feb 25, 2019, 8:47:24 AM2/25/19
to sab...@googlegroups.com

Hi Fabien,


1) Recently, we started to face fatal errors when using sableCC (using gradle sableCC plugin 1.0.5 which rely on sablecc 3.2-1). We, non deterministically, get some 6 >= 0 (or other values) fatal errors when generating a parser. Launching again the parser generation often makes it work again. This behavior never happen using java 8, rarely on java 9, is more frequent in java 10. Any idea of a possible cause?


Have you tried using the latest stable version, SableCC 3.7? It fixes some subtle errors of earlier versions.



2) Recently, I discovered that there have been some commits on the github of sableCC. Does that mean that sableCC 4 may be soon released? Can he be considered as stable and replace sableCC 3?


No, SableCC 4 isn't stable. But, ObjectMacro 2, which is part of SableCC 4 is now stable. I won't give a timeline for SableCC 4, having missed all my previous estimates.

I've tested SableCC 4 beta and ObjectMacro 1 with students of my undergraduate and graduate courses. I got direct and indirect feedback.

A master student, Lam, used the feedback about ObjectMacro 1 to develop ObjectMacro 2 which is an awesome generator of text generators. Its main features are a nice and clean syntax, static and dynamic (fail-fast) cycle detection, robust typing, flexible linking of macros, internal parameters (along with context-specific text expansion), and support for multiple versions of macros.

I intend to use ObjectMacro 2 to complete the development of SableCC 4. I will also provide it as part of the SableCC 4 compiler generator framework.



3) If we were to try to resolve our problem, is there any interest to do it on sableCC 3? Is there a public repository to contribute to or are we supposed to do it only on version 4?

There isn't a public repository for SableCC 3 because it's a historical mess spanning 4 distinct source control systems. I'm planning to reconstruct a clean Git repository out of this mess, but it's a big project as I want it to be done correctly.

But first, I suggest trying SableCC 3.7 and see if it solves your problem. If it doesn't, could you provide me with a minimal grammar exhibiting the problem?

Cheers,

Etienne

Etienne Gagnon, Ph.D.
http://sablecc.org

fabien...@imt-atlantique.fr

unread,
Feb 25, 2019, 9:30:56 AM2/25/19
to SableCC


Le lundi 25 février 2019 14:47:24 UTC+1, Etienne Gagnon a écrit :

Hi Fabien,


1) Recently, we started to face fatal errors when using sableCC (using gradle sableCC plugin 1.0.5 which rely on sablecc 3.2-1). We, non deterministically, get some 6 >= 0 (or other values) fatal errors when generating a parser. Launching again the parser generation often makes it work again. This behavior never happen using java 8, rarely on java 9, is more frequent in java 10. Any idea of a possible cause?


Have you tried using the latest stable version, SableCC 3.7? It fixes some subtle errors of earlier versions.

Not yet, I will try it.
 
2) Recently, I discovered that there have been some commits on the github of sableCC. Does that mean that sableCC 4 may be soon released? Can he be considered as stable and replace sableCC 3?


No, SableCC 4 isn't stable. But, ObjectMacro 2, which is part of SableCC 4 is now stable. I won't give a timeline for SableCC 4, having missed all my previous estimates.

I've tested SableCC 4 beta and ObjectMacro 1 with students of my undergraduate and graduate courses. I got direct and indirect feedback.

A master student, Lam, used the feedback about ObjectMacro 1 to develop ObjectMacro 2 which is an awesome generator of text generators. Its main features are a nice and clean syntax, static and dynamic (fail-fast) cycle detection, robust typing, flexible linking of macros, internal parameters (along with context-specific text expansion), and support for multiple versions of macros.

I intend to use ObjectMacro 2 to complete the development of SableCC 4. I will also provide it as part of the SableCC 4 compiler generator framework.

Ok 

3) If we were to try to resolve our problem, is there any interest to do it on sableCC 3? Is there a public repository to contribute to or are we supposed to do it only on version 4?

There isn't a public repository for SableCC 3 because it's a historical mess spanning 4 distinct source control systems. I'm planning to reconstruct a clean Git repository out of this mess, but it's a big project as I want it to be done correctly.

Ok then
 

But first, I suggest trying SableCC 3.7 and see if it solves your problem. If it doesn't, could you provide me with a minimal grammar exhibiting the problem?

It is easy to provide the grammar but as the problem seems non deterministic, you may not encounter it...

Etienne Gagnon

unread,
Mar 8, 2019, 11:12:44 AM3/8/19
to SableCC
Hi Fabien,


Have you tried using the latest stable version, SableCC 3.7? It fixes some subtle errors of earlier versions.

Not yet, I will try it.

Did it solve your problem?

Etienne

fabien...@imt-atlantique.fr

unread,
Mar 8, 2019, 11:19:29 AM3/8/19
to SableCC
Yes we tried the 3.7 version but it does not solve the problem. I still get non deterministic fatal error during the generation of the code by sablecc. I do not know how to proceed now.

Furthermore, I haven't upgraded sablecc for all grammars because it rejects at least one our grammar specifying a strange conflicts not detected by 3.2 version. We do not have time at the moment to dig into the issue of this conflict.

Fabien
Reply all
Reply to author
Forward
0 new messages