Skip to content

Releases: ELLIOTTCABLE/Pratchett.js

Paws.js 5: “nordic paws”

11 Apr 02:56
Compare
Choose a tag to compare
Pre-release

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 and disowned to return Relations, but own: yes/no or owns = 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 and advance()

    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-write Readline monkey-patching

    Of 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 Removing Native in favour of raw Execution
  • Breaking (API): 943c3 Execution#clone clones locals as well
  • New (CLI): b60cc Add a check operation (for Rulebooks)
  • New (CLI): 43cd5 Supporting YAML rulebooks in check
  • New (CLI): 2634b check: Add a flag to inject spec namespace
  • New (API): 91fd0 Implement Thing#inject
  • New (API): 9e60d Emit 'flush' event on emptied queue
  • New (API): 59634 Paws.primitives returns a constructed ‘bag’
  • New (API): d672b Implement Rule.construct
  • New (API): 2cb3a Integrate the new parser with the API
  • New (API): b8a11 Parser: Implement reserialization of Expressions
  • New (API): 017de check: Completely re-write Collection 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) various toString methods
  • Fix: e5757 Reactor: Handle locals-null signifier
  • Fix: 97131 check: Dispatch Rules 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: Improve test.sh with Rulebook support
  • Meta: fbc91 Scripts: Laying groundwork for integration-testing
  • Dependency: 53d68 Update pretty-error
  • Dependency: 4dfd0 Use newer taper, supporting --runner
  • Dependency: ba3eb Update CoffeeScript, and remove illegal octal escapes
  • Dependency: 2b4a6 Replacing uuid with node-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”

04 Jul 01:37
Compare
Choose a tag to compare
Pre-release

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.