Blog

August 30th 2019

August 16th 2019

August 4th 2019

August 3rd 2019

With today's additions tree-sitter-eno is feature complete πŸŽ‰ Proof of concept integration into language-eno and ironing out some known edge case issues is up next!

July 31st 2019

July 29th 2019

July 28th 2019

Released enolib 0.8.0, supporting the new empties πŸš€ - see changelog.

July 27th 2019

July 26th 2019

July 24th 2019

July 19th 2019

July 17th 2019

Currently working on resolving numerous smaller but intricate bugs in the syntax highlighting implementations for prism.js and Ace. Additionally about three weeks were spent on getting the tree-sitter C parser implementation to about 80% of completion. The tree-sitter parser will enable the atom plugin for eno to offer perfect code folding as well as rock-solid stability and improved performance. Also through the various bindings it will give everyone a means for super fast basic eno parsing in C, C++, Rust and other low level languages!

June 19th 2019

June 12th 2019

Released enolib 0.7.2 with minor patching and refactoring regarding the semantical analysis of lines triggering parse errors - see changelog.

June 11th 2019

Released enolib 0.7.0 with new, simpler interfaces for requiring additional locales and reporters - this is a breaking change if you are using them - see changelog.

June 8th 2019

Released sublime-eno 0.3.0 for Sublime Text, featuring highlighting differentiation for sections as well as scope terminology updates to comply with the latest language specification.

June 4th 2019

Released vscode-eno 0.3.0 for Visual Studio Code, featuring highlighting differentiation for sections as well as scope terminology updates to comply with the latest language specification.

May 31st 2019

Released language-eno 0.4.3 for Atom, updating some scope terminology in accordance with the latest language specification.

May 29th 2019

Released enolib 0.6.0 with a bunch of API additions, fixes and polish, mostly around element lookups - see changelog.

May 27th 2019

May 17th 2019

May 16th 2019

Published the official deprecation announcement releases for enorb and enorb-exploaders (now superseded by enolib and enotype respectively)

May 10th 2019

Released enolib 0.5.2 with a minor fix on all platforms and a heap of smaller corrections and refactoring in the ruby implementation - changelog.

May 5th 2019

Published a python-only enolib 0.5.1 release with lots of fixes and clean up, including a contribution from Massimo Redaelli (thank you!) - changelog.

May 4th 2019

Released ruby-only enotype release 0.3.1, most prominently including a helper method to obtain all loaders as a hash of procs for easily passing around loaders and registering them with enolib - changelog.

April 22nd 2019

Released language-eno 0.4.2 for Atom, including a long planned visual tweak to better differentiate sections and minor scope changes for better convention compliance - changelog.

April 21st 2019

Released enolib for ruby πŸš€

Also published 0.5.0 for javascript and ruby, adding two minor missing section accessors - see changelog.

April 20th 2019

April 16th 2019

April 14th 2019

April 10th 2019

April 7th 2019

April 6th 2019

April 5th 2019

Ported the first half of the latest enolib parsing implementation to Ruby

April 2nd 2019

Released enolib 0.4.1 with minor fixes and python package documentation additions - see changelog.

April 1st 2019

Added complete python documentation for enolib

March 31st 2019

πŸš€ Released enolib 0.4.0 for python - package on PyPI

March 30th 2019

March 29th 2019

March 27th 2019

Ported the bulk of the new enolib core architecture and parser implementation to python - some specs already run through and if nothing fundamental gets in the way things are nicely on schedule for an early april release. πŸŽ‰

March 24th 2019

March 23rd 2019

March 22nd 2019

March 21st 2019

March 20th 2019

March 16th 2019

March 15th 2019

Went out for the world climate strike day, answered lots of great questions and ideas on GitHub and marked all legacy ecosystem javascript packages on npm as deprecated - they will be end of life at the beginning of 2020.

March 13th 2019

The new javascript documentation for enolib is now feature-complete and covers all base functionality.

March 12th 2019

March 10th 2019

March 9th 2019

Released enolib 0.2.0 (changelog) and the new transitional website, everything here is still heavily work in progress right now.

March 3rd 2019

Released enolib 0.1.1 with error reporting fixes and two new query methods - see changelog

March 2nd 2019

Worked on rebooting the website the last days, splitting it into an archived eno/first version and the soon default final ecosystem branch. Also wrote some of the coming documentation for enolib and did some major redesign work for the final branch of the website.

February 27th 2019

It's shipping day again! πŸŽ‰ The JS implementation for the new flagship enolib library was just released as 0.1.0 on npm, and API documentation is coming the next days. The enolib project is the successor to the existing enojs/enophp/enopy/enorb libraries, uniting them under a single name to reflect their close connection (they practically offer 1:1 the same API on all supported languages) and make them easier to recognize between different platforms. Importantly they also implement the living draft for the final specification and offer a greatly overhauled API design and internal architecture, resulting in more functionality, safety, performance and ultimately also fun. More updates coming soon - stay tuned!

February 21st 2019

Published enotype 0.1.0 πŸŽ‰ on GitHub, npm, PyPI and rubygems

enotype will be the go-to companion library for the upcoming series of eno parsers supporting the final specification. It provides all the standard type loaders that presently are always included with the current eno libraries in a separate package, thereby slimming down the core and making it unopinionated regarding what types are considered standard.

Additionally, as the readme states, it is "A cross-language standard library for types.", meaning it can be used in many other contexts apart from eno as well! The upcoming eno parsers use a simplified model for loader functions - they always only take a string and produce a converted value (or throw an expection), whereas in the current libraries they accept variable numbers of parameters (key, value, internally also a context) in either positional or keyword form dependent on the language.

As you will notice there is hardly any documentation included right now, that however will be tackled alongside work on the prerelease libraries over the next days and weeks.

February 20th 2019

February 18th 2019

February 17th 2019

February 16th 2019

February 15th 2019

February 14th 2019

February 12th 2019

Final day of an 8-day long non-stop fulltime development sprint on the eno libraries! πŸŽ‰

Huge progress was made on a lot of tricky architectural questions for the next generation of eno libraries, restructuring and separation of concerns between the different repositories and projects happened, some 80% of the way to get all 4 existing eno libraries compatible with the final specification was traveled.

The coming weeks will see plenty of cleanup on the results, tying up loose ends and getting everything in shape for gradual release and announcement. Aaand a lot of documentation will need to be written or updated. ;)

February 4th 2019

February 3rd 2019

February 2nd 2019

January 26th 2019

January 19th 2019

January 16th 2019

January 14th 2019

January 13th 2019

January 12th 2019

January 10th 2019

January 6th 2019

January 4th 2019

January 3rd 2019

January 2nd 2019

January 1st 2019

December 31st 2018

December 30th 2018

December 25th 2018

December 23rd 2018

December 22nd 2018

December 21st 2018

December 15th 2018

December 14th 2018

December 11th 2018

December 9th 2018

December 8th 2018

December 7th 2018

December 5th 2018

December 4th 2018

December 2nd 2018

December 1st 2018

November 30th 2018

November 8th 2018

November 5th 2018

November 4th 2018

November 3rd 2018

November 2nd 2018

November 1st 2018

October 31st 2018

October 30th 2018

Today enophp reached feature-complete state! In the coming days the remaining missing parts of the testsuite will be implemented (which will likely entail some bugfixing), alongside some detail considerations around loaders. Also, importantly, the documentation for enophp on eno-lang.org will be set up. After that it's release time!

October 28th 2018

October 27th 2018

October 26th 2018

October 24th 2018

October 23rd 2018

After some time off to a) earn money and thereby cross-finance the next months of eno development, b) gather more insights in the currently largest production usecase of eno and c) recharge batteries :) development is now continuing!

Getting the enophp implementation feature-complete in november is the current development target, with the enors (rust) implementation coming up next on the roadmap, likely to commence around december.

September 25th 2018

September 9th 2018

September 2nd 2018

August 26th 2018

August 22nd 2018

August 19th 2018

August 18th 2018

August 17th 2018

August 15th 2018

August 13th 2018

August 9th 2018

August 4th 2018

July 28th 2018

July 28th 2018

July 27th 2018

July 26th 2018

July 25th 2018

July 24th 2018

July 22nd 2018

July 21st 2018

Dictionary elements are now called Fieldset elements. This change was long in the making, addressing a few issues and improving a few aspects of the original terminology, e.g.: Conceptually, sections are dictionaries as well (in the generic sense of the term), so this was rather ambiguous. Fieldset indicates the strong relation to fields - it's really just a way of grouping fields - whereas dictionary possibly indicated some larger, non-existant difference. Fieldset as a term also hints at fieldsets in HTML and forms in general, which is also desired because it's a more user-facing and user-friendly wording and concept.

Note that in the eno language context this is purely a non-functional change, it only modifies how the language construct is referred to in documentation, error messages, and by the APIs, but it does not change the way fieldsets/dictionaries work in any way.

July 20th 2018

July 18th 2018

July 17th 2018

July 15th 2018

July 14th 2018

July 13th 2018

July 11th 2018

July 10th 2018

July 9th 2018

July 8th 2018

July 7th 2018

July 6th 2018

July 5th 2018

July 4th 2018

July 3rd 2018

July 2nd 2018

July 1st 2018

June 30th 2018

June 29th 2018

June 28th 2018

June 27th 2018

June 26th 2018

June 25th 2018

June 24th 2018

June 23rd 2018

June 22nd 2018

June 21st 2018