February 18th 2019
- Published an RFC for excluding fieldsets from section deep merging
- Adaptation and extension of the cross-platform error specs for the upcoming prerelease libraries
February 17th 2019
- Revised the associated comments RFC with detailed and updated specification details on whitespace processing
February 16th 2019
- Released enophp 0.1.3 with a critical fix for block value construction
- Full-time work on getting the new eno prerelease libraries ready for action
February 15th 2019
February 14th 2019
- A long day of cleanup work after the recent sprint
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
- Finished adaptions for feature-complete final specification support in enojs (a first prerelease will be published soon!) 🎉
February 3rd 2019
- Continuing work towards upcoming library prereleases with final specification support
February 2nd 2019
January 26th 2019
January 19th 2019
January 16th 2019
January 14th 2019
- Released a completely reengineered language grammar for prism-eno alongside One Dark/Light theme adaptations customized for eno, this is now used on eno-lang.org for all pre-rendered code and notation examples
January 13th 2019
- Published fully updated benchmarks with all the lastest libraries and an extended set of python benchmarks 🎉
- Added a last blog update badge to the index page, plus a fresh color coat
January 12th 2019
- Released vscode-eno 0.2.0 with improved grammar and syntax scope/coloring interplay
January 10th 2019
- Research and progress for the upcoming vscode-eno update
January 6th 2019
- Released sublime-eno 0.2.0 with an improved grammar and sublime default theme customizations for eno
- Released language-eno 0.4.1 with small grammar optimizations and an added screenshot in the readme
January 4th 2019
- Refactoring of website internals to facilitate upcoming features
- Re-evaluated the ruby benchmarks with latest libraries
January 3rd 2019
- Upgraded the blog from a generic markup page to a dedicated page generated with semantic data as a prerequisite for further website changes
- Refactoring of website internals to facilitate upcoming features
- Added fieldset reference examples to the language demos
- Mixed patterns spec improvements and corrections for enojs and enorb
January 2nd 2019
- Released enophp 0.1.2 with pattern matching core patches and improvements
- Released language-eno 0.4.0 with redesigned custom highlighting based on syntax theme variables and an improved grammar
January 1st 2019
- Work on the upcoming enophp stability release
December 31st 2018
December 30th 2018
- Began porting recent library patches and extending specs for enophp
- Iterative work on refining syntax scopes and matching rules for the atom/sublime eno grammars, including color scheme adaptions
December 25th 2018
- Released enopy 0.9.2 with patches to the grammar matching core
- Ported enojs' extensive grammar matching test suite to enopy as well
- Released language-eno 0.3.4 removing a faulty stray asterisk from a syntax matching rule
- Packaged the completed ace editor eno extension and integrated it on the website 🎉
December 23rd 2018
- The language demos now utitilize the freshly finished eno support for Ace editor - enjoy full syntax highlighting inside the in-browser editor!
- Released enorb 0.10.3 with patches and improvements to the grammar matching core
- Released enojs 0.17.2 with an edge case block pattern fix and some escape matching pattern hardening
December 22nd 2018
Deployed the shiny new document inspector on the language demo page, this should provide great insight into the examples and an easy jumpstart to interactively explore how eno documents work - browse away and enjoy the magic! 🧙
Released enojs 0.17.0 🚢
This release introduces a dependency-injection based reporter architecture, which is a breaking change
in case you are specifying a custom reporter in your code - the changelog
provides instructions on what needs to be changed in that case.
The gain of this is the possibility for users to implement custom reporters, consistency with the other eno libraries (which all use
dependency injection for their reporters) and as a collateral bonus it resolves an issue when using parcel
to bundle up eno in a web stack.
Yet another enojs release (0.17.1) fixing an issue in the grammar matching core which can lead to a specific invalid line pair getting faultily tokenized instead of triggering an error. The patch will be ported to enophp, enopy and enorb in the next days, which also employ the flawed matching pattern.
More refactoring and maintenance on the website internals
December 21st 2018
- Added what if ... ? demos (Cargo.eno, package.eno, .gitlab-ci.eno) to the language demo page
- Began work on eno syntax highlighting support in Ace editor for usage on eno-lang.org - ace-eno 🎉
- Some refactoring and maintenance on the website internals
December 15th 2018
- Implemented a better scaling responsive subnavigation in preparation for upcoming website additions
- There is now a page to interactively try out the language by itself (Thanks to Matt Lewis for his PR and feedback that got this started!)
December 14th 2018
December 11th 2018
- Fleshing out the enors error reporter implementation basis
- Optimizations for line classification in enojs, plus cleaning out stale code
December 9th 2018
- Development and studying for enors
December 8th 2018
- Research and adaptions in enors for the Rust 2018 edition
December 7th 2018
- Added the third RFC for the final eno specification to the eno language repository
- Released language-eno 0.3.3 for Atom which patches a discovered syntax highlighting irregularity.
December 5th 2018
- Adaptations on the frontpage to improve understandability of some of eno's concepts (based on insights from HN - thanks to all commenters!)
- Added the first two RFCs for the final eno specification to the eno language repository
- Arrived at a breakthrough for the first major blocker in the enors implementation 🎉
December 4th 2018
- Research and studying on Rust specific issues for enors
December 2nd 2018
- Quality time with and some package preparation tasks for enors
December 1st 2018
- Foundational development work on enors
November 30th 2018
- Development of enors (Rust) officially continues; a rough release schedule will be announced as soon as there is a basis to estimate from. Let's see if there'll be one more present under the christmas tree! 🎄
November 8th 2018
November 5th 2018
- Progress on the ABNF eno specification document - many thanks go to nzen / Nicholas for the contribution!
November 4th 2018
- Major refactoring, cleanup and layout corrections on eno-lang.org
- Detail work and completion of the enophp documentation
- Many collateral corrections in the enojs/py/rb docs
- Implement dynamic loader signatures in enophp
- Wrap up enophp's parse implementation and add specs for it
November 3rd 2018
- Initial rough work on the enophp documentation
- Major refactoring, cleanup and layout corrections on eno-lang.org
November 2nd 2018
- Implemented all of enophp's built-in loaders and added the complete spec suite for them
- Added lookup call specs, extended section element specs and various bugfixes for enophp
November 1st 2018
- Added specs for all 43 enophp element type mismatch errors, wrapping up the full error spec suite
October 31st 2018
- Added a good third of the enophp validation error generator specs
- Various bugfixes around enophp's error generation
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!
- Completed all of enophp's element implementations
- Added complete specs for all element implementations in enophp
- Various fixes and tweaks throughout the enophp implementation
- Small update to the eno-lang.org api documentation format and generator
October 28th 2018
- Spent some time working on line continuations for the future second/final eno spec
- Completed enophp's EmptyElement implementation including full specs
- Implementation of all enophp validation error generators
- Finish Field implementation in enophp including complete specs
- Complete ListElement implementation in enophp
- Added typehints throughout the enophp codebase
October 27th 2018
- Implemented enophp's resolver component and all error generators
- Added construction/verification scaffolding for all enophp element implementations
- Added a full testsuite for both the resolver and all error generators in enophp
October 26th 2018
- Fully implemented enophp's analyzer component and all analysis error generators
- Added complete specs for all analysis error types in enophp
- Research and major refactoring to accomodate for php language idiosyncracies
October 24th 2018
- Completed the full enophp tokenizer implementation and testsuite
- Various critical bugfixes around enophp's reporter implementations
- Implemented all enophp tokenization error generators plus the complete testsuite
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.
- Heavily improved the still lacking snapshot testing feature basis for the enophp implementation and testsuite.
- Implemented 90% of the standard eno tokenizer testsuite for enophp, plus a handful of bugfixes and general cleanup work
- Added missing support for non-section "noop deep copy" operators for enophp's tokenizer
September 25th 2018
- enophp (in its early stage) received a quick PHP expert audit from Alexander Sulz - thanks!
September 9th 2018
- Implemented all exception types (Error, ParseError, ValidationError) for enophp.
September 2nd 2018
- Implemented HTML & Terminal reporting, as well as most of the empty element implementation for enophp.
August 26th 2018
- Implemented base text reporting for enophp, plus some essential snapshot testing prerequisites.
August 22nd 2018
- Multiple documented real usecase examples and a Q&A document added to the core repository.
August 19th 2018
August 18th 2018
- Released enorb 0.10.2 with fixes to ensure compatibility with the ruby 2.3 and 2.4 series (changelog) - thanks to Ralf Ebert for reporting the issues!
- Added info badges to the library documentation pages to indicate how the docs can be edited by everyone who'd like to contribute.
- Some work towards completing the eno ABNF specification document.
August 17th 2018
- eno was on the HN frontpage and gained important public exposure - I'd like to say thanks to everyone who helped spread the word, asked fantastic questions and all the encouragement, PRs and reports that followed in the wake! These were intense and important 48 hours, now the steady work on eno and the ecosystem continues.
August 15th 2018
August 13th 2018
- Released enorb 0.10.1 with a bugfix addressing an undefined element link for block lookups (changelog).
- Released enopy 0.9.1 with a bugfix addressing an undefined element link for block lookups, as well as yet unreleased optimizations (changelog).
August 9th 2018
- Released enojs 0.16.1 with a bugfix addressing an undefined element link for block lookups, as well as yet unreleased optimizations (changelog).
August 4th 2018
July 28th 2018
- Officially kicked off development for the rust library implementation - enors.
July 28th 2018
- Rebooted the eno core language repository as the central collection point for all specification documents.
- Authored a new terminology document, describing the entire terminology employed by the eno language.
- Some more rust implementation basic research.
July 27th 2018
- Some early research for the planned rust implementation.
July 26th 2018
July 25th 2018
- Did a first production study of one of the eno logo designs in blender.
July 24th 2018
- Added some light performance optimizations for structural validation in enojs and enopy.
- Spent a late hour sketching possible eno logo designs.
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.
- Updated the advanced language guide on the website to use the new fieldset terminology.
- Released eno-locales 0.8.0, adapting all error messages to the new terminology - see changelog.
- Released enorb 0.9.0 with the new message catalog, fieldset API methods and a shorter base error class name - see changelog.
- Released enopy 0.8.0 with the new message catalog and fieldset API methods - see changelog.
- Released enojs 0.15.0 with the new message catalog and fieldset API methods - see changelog.
July 20th 2018
- Released enopy 0.7.0 with stability contributions from Dan Haiduc and a name change for the base error class - see changelog.
July 18th 2018
- Published the color schemes repository, with further work on the color scheme meta format and a sublime generator.
- Research and experimentation on how to circumvent Atom's missing generic support for syntax-specific color scheme support.
July 17th 2018
- Started work on a themes project for unified eno syntax theme development for all editors, drafted an enokai theme.
July 15th 2018
July 14th 2018
- You can sign up for the brand new newsletter now.
- Lots and lots of small corrections and updates on the website (big thanks to Michael Schwanzer!).
- Released enopy 0.6.2 with string pseudo loaders, also enopy now maintains a changelog.
July 13th 2018
- Released the vscode-eno language support package for Visual Studio Code.
- Released enopy 0.6.1 with a new date loader and various loader corrections.
- Put on some fresh paint and updated the website color scheme, as well as new plugin pages with screenshots.
- Added a paragraph on language stability and the development plan to the language page.
July 11th 2018
- Released enorb 0.8.1 with a new date loader and corrections for the lat/lng loader.
- Adopted the new average ips based perfomance metrics for the enorb optimization tooling and did some housekeeping for the specs suite.
- Did some speculative research and experimentation on the possibility (or maybe rather, likelihood) of an eno Java library.
- Graduated enopy and enorb into regular release status due to coverage degree and acquired stability from fixes ported between all implementations.
- Major website update: New frontpage, structural changes, some new quick tour content for the language, mobile version layout improvements and fixes.
July 10th 2018
- Released enojs 0.14.1 with a new date loader and corrections for the lat/lng loader.
- Completely refactored all specs for the enorb loaders.
- Rebooted the enojs-exploaders package as purely experimental sidetrack to the now available core loaders (with a single new 'slug' loader for now).
July 9th 2018
- Released enorb 0.8.0 with the new core loader API and dynamic loader signatures, see the updated documentation.
- Released enojs 0.14.0 with the new core loader API, see the updated documentation.
- Released enopy 0.6.0 with the new core loader API, see the updated documentation.
- Updated the frontpage introduction video to showcase the new core loader API.
July 8th 2018
- Worked on the internal architecture for the upcoming new core loader APIs, allowing e.g. calls like
July 7th 2018
July 6th 2018
- Released enojs 0.13.1 with light optimizations, minor fixes and including the new commaSeparated core loader.
- Added remaining dependency resolution test coverage for enojs and cleaned up some older specs, global coverage is now up at 96%.
- Published a new eno introduction video on the frontpage.
- Released enorb 0.7.2 with optimizations for structural validation and the new CommaSeparated loader.
- Did some research and initial tests for getting branch coverage metrics in enorb.
- Released enopy 0.5.1 with the new comma_separated core loader.
July 5th 2018
- Released enopy 0.5.0, now also providing core loaders for important types out-of-the-box, including the new datetime loader. See the full documentation.
- Released enorb 0.7.1, which now also offers a datetime core loader.
- Implemented comma-separated value core loaders for all eno implementations
July 4th 2018
- Released enojs 0.13.0 and enorb 0.7.0, now providing core loaders for important types out-of-the-box! See the full documentation for enojs and enorb.
- The enojs core loaders now also include a datetime loader based on the formats described in https://www.w3.org/TR/NOTE-datetime.
- Resolved some potential bottlenecks around list insertions in the enopy implementation, introduced performance measurements based on average ips instead of total duration.
July 3rd 2018
- Released enojs 0.12.0, enopy 0.4.0 and enorb 0.5.0, which implement eno's added language support for (new)line continuations on dictionary entries and list items.
- Added complete test coverage for enorb's tokenization as isolated snapshot tests.
- Released enorb 0.6.0 which also adopts the same regex-based tokenization logic used by enojs and enopy - no performance changes found but it fixes multiple issues.
- Released enopy 0.4.1 with fixes for older tokenization regressions.
July 2nd 2018
- Released enopy 0.3.1 with a few fixes for section methods.
- Further extended the enopy test suite, bringing coverage up to 90%.
July 1st 2018
- Added more isolated tokenizer snapshot tests and element implementation tests for enojs, coverage now up at 95%.
- Released enojs 0.11.1 with some small fixes for older undiscovered range indexing glitches
- Added more isolated tokenizer snapshot tests for enopy, coverage now up at 87%.
- Released enopy 0.3.0 which adopts the unified regex grammar tokenizer architecture from enojs, resulting in 1-1.2x speed gains.
- Updated benchmarks with enopy 0.3.0 and ruamel.yaml 0.15.42, with the latter now explicitly using the libyaml based engine.
June 30th 2018
- Released enojs 0.11.0 with a new single-pass tokenizer and much lighter memory and allocation footprint
- Added more isolated tokenizer snapshot tests for enojs to ensure regression-safety.
- Re-run the benchmarks, enojs now performs 7x faster than the fastest yaml parser in the content heavy benchmark.
June 29th 2018
- Brought test coverage for enopy up to 83% with tons of tests added for error implementations, dependency resolution, reporters, and more.
- Graduated enopy from Alpha to Beta with release 0.2.10, which includes collected fixes from the last two days.
- Added the last missing validation error implementations for enorb, alongside specs - released with 0.4.8.
June 28th 2018
- Added unit tests for enopy's tokenization, analysis and resolution error implementations and the Dictionary element implementation, coverage is now up at 52%.
- Fixed a minor issue in enopy's duplicate dictionary entry error implementation.
- Added tons of unit tests to enojs (especially covering error implementations), test suite coverage is now up at 93%.
- Released enojs 0.10.6 with various big and small fixes from the last days.
- Updated the benchmark report with better visual scaling at the top ranking performance field, as well as added explanations.
- Added some test scenarios with wide effect for enorb's html and terminal reporters, catalog messages, as well as the dependency resolver, coverage now up at 93%.
- Released enorb 0.4.7 with a critical fix for the html reporter.
June 27th 2018
- Performance optimization release enorb 0.4.6, adressing post-opening block consumption and later allocation with 1.25x speed decreases-3x speed gains, updated benchmarks.
- Released enopy 0.2.8 with a fix for a regression in enopy tokenization, set up a tokenization snapshot test scenario for future prevention.
- Added comprehensive unit tests for enopy's
List class, released yet another enopy patch release (0.2.9) addressing an older, undiscovered regression.
June 26th 2018
- Started collecting and evaluating test coverage for all eno implementations (currently 66% for enojs, 37% for enopy and 80% for enorb)
- Added some specs for enojs'
Value class and a fix for a discovered regression.
- Officially graduated enorb from Alpha to Beta status due to coverage and observed stability during usage in the last week.
- Performance optimization release enopy 0.2.7, adressing post-opening block consumption and later allocation with 1-2.7x speed gains, updated benchmarks.
June 25th 2018
June 24th 2018
- An enorb-exploaders gem is now available as well (with the same featureset as its js/py siblings).
- Improved clarity for some first impression texts on the frontpage (thanks to Dan Haiduc for feedback!).
- New benchmark report at github.com/eno-lang/benchmarks with an additional scenario added that evaluates performance for content-heavy data.
June 23rd 2018
- An experimental enopy loaders package is now available too (with the same featureset as its js sibling).
- Refactored the test structure for enopy, test coverage for enopy's
Value class added, released 0.2.4 with small fixes.
June 22nd 2018
- The website now has a dev blog and more contact options. ヽ(^o^)ノ
- Two enojs core error implementations (invalid/missing value) have been greatly overhauled and additional tests were added. (0.10.5)
- enojs now only bundles runtime files
- The interactive demos at eno-lang.org/demo now offer emulated, interactive python and ruby code examples as well
- The benchmark suite at github.com/eno-lang/benchmarks has been expanded from 2 to 5 scenarios, visual fidelity of the full report has been increased
- The experimental enojs loaders package now features
June 21st 2018
- An extensive benchmark suite is now available at github.com/eno-lang/benchmarks, it evaluates eno library performance across all supported languages, also in relation to popular yaml and toml parsers