JS++ 0.4.2.1 – Minor Bug Fix Release

JS++ 0.4.2.1 has been released. This is a minor bug fix release. The following issues have been fixed:

1. Checking for permissions. Compiler now checks if the user has permission to read input files and write to output directories.
2. Segmentation faults for built-in modules (e.g. `Externals.DOM`)
3. Dead Code Elimination (DCE) algorithm updates so parent modules do not get eliminated.
4. Error 0119 was incorrectly being raised on function parameters. This has been fixed so assignments to parameters can be done.
5. Parser bug for regular expression literals.

In the next release, 0.4.2.2, we will be including free, open-source libraries for AJAX and real-time streaming.

The latest version can be downloaded from the JS++ homepage.

JS++ 0.4.2 Released

We are proud to announce the release of JS++ 0.4.2 Early Access Preview. The latest release of JS++ introduces modules, function overloading, dead code elimination, better integration with Microsoft Windows, and 16 new editor integrations.

Emacs Syntax Highlighting for JS++

JS++ 0.4.2 introduces the module keyword and enables modular design. The application entry point occurs at the “main file”. See the documentation for the main file for more information.

In addition, at the compiler level, JS++ gives you full access to static linking and dead code elimination. Dead code elimination means that all unused code will not be compiled into the final generated output. One of the biggest pain points in JavaScript is that you need to include the entire jQuery library just to use one function. With npm and the “micro-library” revolution, JavaScript code has grown and grown in size. Web pages take longer to load because they depend on megabytes of JavaScript to be downloaded, and this is especially painful over mobile connections. Dead code elimination solves this: if you didn’t use it, it doesn’t end up in the code you ship.

Please note that dead code elimination is a JS++ feature only. It cannot be retroactively applied to JavaScript code effectively. For example, JS++ is a superset of JavaScript that introduces structure, such as the module keyword. Unlike JavaScript prototypes, these structures cannot be modified at runtime. Therefore, the compiler is fully able to analyze which classes, variables, and functions actually get used and eliminate the ones that don’t get used. If your code is structured with JavaScript prototypes rather than JS++ classes and modules, dead code elimination will be a lot less effective.

JS++ 0.4.2 also introduces function overloading. All unused overloads and unused functions (even if not overloaded) will not be compiled in the final output via dead code elimination.

Modules, function overloading, and dead code elimination (DCE) together enable the creation of more sophisticated applications.

However, we’ve delivered much more than that. In addition to all the new compiler features, we are shipping integrations with 16 new code editors – including some of the most popular editors:

1. Sublime Text
2. Notepad++
3. Visual Studio Code
4. Vim
5. GitHub Atom
6. Adobe Brackets
7. GNU Emacs
8. UltraEdit
9. gedit
10. Kate
11. KWrite
12. Nano
13. Geany
14. Ace (Editor for Cloud9 IDE)
15. CodeMirror
16. Alex Gorbatchev’s SyntaxHighlighter

Sublime Text Build System

Finally, we’ve also improved Windows integration. Installation on Windows is now more seamless (no restarts necessary), and you can now use the GUI to compile JS++ files and avoid the command-line altogether:

JS++ Windows Context Menu

This is an exciting and comprehensive new release for JS++. You can download the latest version from the home page.