Releases: ELLIOTTCABLE/Pratchett.js
Paws.js 5: “nordic paws”
Huge API refactoring and renaming, ‘Rulebook’ conformance-testing, a PEG parser, and more.
Hilights
-
Rename and refactor terminology
Put a lot of effort into conforming well to the "new terminology". Confusingly, the meaning of "native" is now swapped with its previous meaning, as are "responsible" and "owned". Oh well. Biting the bullet, re-phrasing to be intuitive, and then sticking with my choices.
The only interesting change: the call-pattern for ownership (previously responsibility) has changed, slightly. Expect to use
owned
anddisowned
to return Relations, butown: yes/no
orowns = yes/no
to modify the actual values. -
Implement basic Rulebook support
I've been working with Devyn on a "RubySpec-ish" framework for maintaining implementation parity and encouraging / easing new implementation work. This is a first-stab at implementing support for these 'rules' in the reference impl.
-
Use a new generated PEG parser
In addition to being written clearly in PEG, the new parser supports sequences-of-expressions (that is, the new semicolon-delimited sub-expressions.)
This requires a huge refactoring of the entire codebase (upcoming), but will lead to a much cleaner and clearer reactor implementation.
-
Completely re-implement
Execution
andadvance()
Execution
is now built to utilize the new script forms from the new parser.Most notably,
advance()
is wayyy more clear than it previously was (although I'm still a far cry from happy with it.) -
interact
: Completely re-writeReadline
monkey-patchingOf note, I got fed up and basically included half the goddamn code of
Readline
directly into interact, so I could modify it without as much gratuitous monkey-patching.This is probably a bad thing. >,>
Other changes
- Breaking (libside): ❯
ccef5
Parser: Allow quoted labels - Breaking (API): ❯
4b9db
RemovingNative
in favour of rawExecution
- Breaking (API): ❯
943c3
Execution#clone
clones locals as well - New (CLI): ❯
b60cc
Add acheck
operation (for Rulebooks) - New (CLI): ❯
43cd5
Supporting YAML rulebooks incheck
- New (CLI): ❯
2634b
check
: Add a flag to inject spec namespace - New (API): ❯
91fd0
ImplementThing#inject
- New (API): ❯
9e60d
Emit'flush'
event on emptied queue - New (API): ❯
59634
Paws.primitives
returns a constructed ‘bag’ - New (API): ❯
d672b
ImplementRule.construct
- New (API): ❯
2cb3a
Integrate the new parser with the API - New (API): ❯
b8a11
Parser: Implement reserialization ofExpressions
- New (API): ❯
017de
check
: Completely re-writeCollection
to be more asynch - Refactor: ❯
e9ccc
interact
: Re-write to use the new parser - Refactor: ❯
c03ce
Re-arrange the chunks of the executable - Refactor: ❯
6a890
Factoring the help-template, too, into its own file - Refactor: ❯
91f3c
Re-spacing the --help for an 80-column term - Refactor: ❯
2a6ea
Debugging: Rewrite (and DRY up) varioustoString
methods - Fix: ❯
e5757
Reactor: Handle locals-null signifier - Fix: ❯
97131
check
: DispatchRules
more intelligently - Fix: ❯
931e4
interact
: Recognize ⌃D after ⌃C properly
- Meta: ❯
16621
Tool for coverage dynamically - Meta: ❯
93254
Dropping nominal support for Node v0.8.x - Meta: ❯
8dad9
Scripts: Improvetest.sh
with Rulebook support - Meta: ❯
fbc91
Scripts: Laying groundwork for integration-testing - Dependency: ❯
53d68
Updatepretty-error
- Dependency: ❯
4dfd0
Use newertaper
, supporting--runner
- Dependency: ❯
ba3eb
Update CoffeeScript, and remove illegal octal escapes - Dependency: ❯
2b4a6
Replacinguuid
withnode-uuid
- Dependency: ❯
1089a
Update Lodash to the 3.x generation - Dependency: ❯
3fbf5
Bring other, more minor dependencies up to date
Paws.js 4: “brillig paws”
Example-code, [square brackets], and more.
I'll admit: I'm only doing this to refresh myself on GPG-signing tags, and the GitHub ‘releases’ system.