DSLForge editor to support ANTLR v4 - antlr4

I have gone through http://dslforge.org/getting-started-generate-ace-editor/ but this supports ANTLR v3.3 only. Can it be tweaked to work with v4? I tried replacing antlr-all.min.js with a antlr4 js but that did not work.

To be able to use DSL Forge with ANTLR v4, you need a working JavaScript target, which is not publicly available afaik. Until now the most stable JavaScript target for ANTLR is the one shipped with ANTLR v3.3.

Related

How to configure eslint for particular ECMA features?

The project targets specific version of Node.js. This is the runtime of the code.
There is no transpilation step. JavaScript code is deployed as it is.
Particular Node version can support particular ECMA version partly. I want to use those features that are supported.
Eslint allows for specifying compatibility as ECMA version only, as far as I know.
How can I tell Eslint that a particular ECMA feature is supported?
For example: https://kangax.github.io/compat-table/es2016plus/#node16_9. Node v16.9 supports ES2022 only partly, so I cannot set ecmaVersion to 2022. But I want to use instance class fields, for example, which is supported by Node v16.9.
I know about https://github.com/mysticatea/eslint-plugin-node and its fork https://github.com/eslint-community/eslint-plugin-n, which are supposed to somehow configure Eslint based on the package.engines.node value. But my question is about the core Eslint - is there a way of configuring particular ECMA features that are supported by the runtime?

Frontend users with Bolt 4

I moved to Bolt 4 (from Bolt 3.7) and would like to implement front-end user to give them access to private contents of the website. Previously, I used the extension BoltAuth/Auth, which worked like a charm.
Now in Bolt 4, there is no easy way like in Bolt 3.x to install an extension from the back-end page. I found out I could use composer to do so, but I run in the following problem:
> composer require "boltauth/auth:3.0.1"
[InvalidArgumentException]
Could not find a matching version of package boltauth/auth. Check the package
spelling, your version constraint and that the package is available in a stability
which matches your minimum-stability (stable).
Either I do something wrong, or the extension is not compatible with Bolt 4.1.
Could someone tell me if there is a way to make this extension work? Or alternatives for front-end user management?
EDIT: I'm now using the bolt/users extension as it can be used to add a ROLE_MEMBERS and let users login for the frontend.
Yes, unfortunately the architecture for plugins (mainly driven by the move from Silex to Symfony) changed completely between 3.x and 4.x and it's not really feasible to release new 4.x compatible versions.
So for now there won't likely be updates to BoltAuth. It may be worth joining the Slack community and seeing if any other developers are working on 4.x compatible solutions to the client login scenarios.

Azure functions experimental templates

I am trying to use Azure functions and I see that there are Sample and Experimental type of templates.
Can I trust experimental templates in production environment?
Basically, experimental templates are for languages and/or features which are still in preview (e.g. features like external files and any language other than C#, F#, or Node).
It's possible that there could be significant breaking changes introduced for these preview languages and features. However, you are able to decide whether or not to upgrade your functions runtime to the newer version, so the old version should still work in production.

Which Node.js module should I install to be able to use google protocol buffers?

It seems that there are a few modules available for Node.js from multiple people to work with protocol buffers. Some are more or less actively maintained. I found https://github.com/chrisdew/protobuf which seems to be working fine. But is there a tried and true (officially certified) path?
No doubt... the better,complete and beautifully designed is: Protobuf.js
Cheers!
There are no official implementations of Protobuf aside from Java, Python and C++. For node.js, you'll probably want to go with chrisdew since it's the one on npm. I personally use my own fork because I need to work with int64's.
It's worth mention protocol-buffers nodejs package as an option
Now you already have a JS google official version. You can download it here https://github.com/google/protobuf/releases

Haxe in the field

I had a fresh look at Haxe again recently and realized that I had overlooked some of its elegance before. But I guess it lacks some visibility among the developers still.
So my question is, does anybody here use it for production? If so, how do you use it? What are the gotchas or difficulties you encounter? Do you recommend it for future projects?
I use Haxe to develop all my Flash applications, and I love it. I develop on Linux and with Emacs,
and I really like how I can make Haxe fit within my preferred development environment. I just use
simple Makefiles that look something like:
project.swf: Project.hx
haxe project.hxml
It's really easy to get started in Haxe, and it's very elegant. I've
had no problems at all using Haxe as compared to using the Adobe Flash
builders, and have developed a bunch of big projects including PanningPedagogy, The Orchive,Cantillion and Audioscapes.
I've released the source code to all of these as GPL on SourceForge, check them out at:
https://sourceforge.net/projects/panning/
https://sourceforge.net/projects/orcaannotator/
https://sourceforge.net/projects/cantillion/
https://sourceforge.net/projects/margridflash/
You might find some useful information in the lists of Projects Using Haxe and People Using Haxe.
My company uses Haxe for production use. For programming swf content is absolutly no problem on the technical side. Using it on the server side is a little bit harder. If you Haxe for PHP you sometimes have some problems with typing (this is more or less a PHP problem). The neko vm is very stable and very very fast but it takes some time to get it running with all you other server software (mysql, apache - mod_rewrite), but once you got it you it is very stable.
We used it for generation swf applications, tried the possibilies of Haxe JS. Also we created socket server for a multiplayer game and start to generate all our webpages with Haxe PHP or neko.
The community is very helpful, the documentation is sometimes a little bit to short.
This is only my opinion and the experiences I made.
For those of us who don't know what Haxe is, it's a programming language for developing web apps. It has multiple compiler targets (Flash, php, JavaScript, and the Neko language's VM)
Welcome to haxe [haxe.org]
Haxe entry on Wikipedia
Haxe are currently gaining more popularity as a cross-platform development (mainly for game development) tools thanks to NME/OpenFL: http://www.openfl.org/
Write once in Haxe and deploy it to Flash, Android, iOS, and more..
HaxeJS is very good for web production, it allows to use all the underlying js modules while giving extra abilities like pre-processor, typed fields, conditional-compilation, classes, haxe libraries, refactoring and auto-completion from IDE etc.. plus its very quick to compile and output ready-to-use js files.
I haven't tried microsoft typescript, but so far I've been using HaxeJS for both client and server (nodejs) on a few production projects and it feels a great choice. The only issue is if i want to share js libraries or npm modules with others, I'll probably need to rewrite the js by hand then.
We used it at a previous internship, for an internal web system. We only compiled to js and I just once compiled some minor code to both js and C#. I can say it worked quite well and many custom widgets were made at the time. Debugging the produced js wasn't that bad either, but it sometimes didn't produce the code you wanted it to (I remember one string comparison issue in js, where the reference was being compared instead of the value). The code was deployed in production and had worked fine for years. I'm pretty sure they still use it today.
That was in 2013, I haven't used it since. One problem I did have was trying to compile code made in version 2.08 using version 2.10. It needed some minor, but non-obvious adjustments. I can't quite comment on more recent releases, but I'd be a bit careful on not breaking large pieces of code by upgrading to new versions of the compiler.
You compile, haxelib run flow run "target" in target you type for example web, and thats all, in your bin, folder you get your files, remember to configure your project.flow file acording to your target and project.

Resources