Thursday, November 8 2018
Monday, November 5 2018
- Progress on the ABNF eno specification document - many thanks go to nzen / Nicholas for the contribution!
Sunday, November 4 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
Saturday, November 3 2018
- Initial rough work on the enophp documentation
- Major refactoring, cleanup and layout corrections on eno-lang.org
Friday, November 2 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
Thursday, November 1 2018
- Added specs for all 43 enophp element type mismatch errors, wrapping up the full error spec suite
Wednesday, October 31 2018
- Added a good third of the enophp validation error generator specs
- Various bugfixes around enophp's error generation
Tuesday, October 30 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
Sunday, October 28 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
Saturday, October 27 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
Friday, October 26 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
Wednesday, October 24 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
Tuesday, October 23 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
Sunday, September 25 2018
- enophp (in its early stage) received a quick PHP expert audit from Alexander Sulz - thanks!
Sunday, September 9 2018
- Implemented all exception types (Error, ParseError, ValidationError) for enophp.
Sunday, September 2 2018
- Implemented HTML & Terminal reporting, as well as most of the empty element implementation for enophp.
Sunday, August 26 2018
- Implemented base text reporting for enophp, plus some essential snapshot testing prerequisites.
Wednesday, August 22 2018
- Multiple documented real usecase examples and a Q&A document added to the core repository.
Sunday, August 19 2018
Saturday, August 18 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.
Thursday 16/Friday 17, August 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.
Wednesday, August 15 2018
Monday, August 13 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).
Thursday, August 9 2018
- Released enojs 0.16.1 with a bugfix addressing an undefined element link for block lookups, as well as yet unreleased optimizations (changelog).
Saturday, August 4 2018
Sunday, July 28 2018
- Officially kicked off development for the rust library implementation - enors.
Saturday, July 28 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.
Friday, July 27 2018
- Some early research for the planned rust implementation.
Thursday, July 26 2018
Wednesday, July 25 2018
- Did a first production study of one of the eno logo designs in blender.
Tuesday, July 24 2018
- Added some light performance optimizations for structural validation in enojs and enopy.
- Spent a late hour sketching possible eno logo designs.
Sunday, July 22 2018
Saturday, July 21 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.
Friday, July 20 2018
- Released enopy 0.7.0 with stability contributions from Dan Haiduc and a name change for the base error class - see changelog.
Wednesday, July 17 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.
Tuesday, July 17 2018
- Started work on a themes project for unified eno syntax theme development for all editors, drafted an enokai theme.
Sunday, July 15 2018
Saturday, July 14 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.
Friday, July 13 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.
Wednesday, July 11 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.
Tuesday, July 10 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).
Monday, July 9 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.
Sunday, July 8 2018
- Worked on the internal architecture for the upcoming new core loader APIs, allowing e.g. calls like
Saturday, July 7 2018
Friday, July 6 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.
Thursday, July 5 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
Wednesday, July 4 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.
Tuesday, July 3 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.
Moday, July 2 2018
- Released enopy 0.3.1 with a few fixes for section methods.
- Further extended the enopy test suite, bringing coverage up to 90%.
Sunday, July 1 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.
Saturday, June 30 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.
Friday, June 29 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.
Thursday, June 28 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.
Wednesday, June 27 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.
Tuesday, June 26 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.
Monday, June 25 2018
Sunday, June 24 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.
Saturday, June 23 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.
Friday, June 22 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
Thursday, June 21 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