17 May 2018 P1.0 (Printing)

Initial printing.

30 April 2018 B3.0

Production is complete. Now it’s on to layout and the printer.

19 February 2018 B2.0

Fixed reported errata.

03 January 2018 B1.0

  • Atoms and variable names may now include any UTF-8 letters, digits, and combining marks, subject to the constraint that they must start with a letter or underscore.
  • Regular expressions no longer support the /g option.
  • Mention the data and time functions added in 1.5, along with the Date::Range module.
  • Clarified the scoping rules to show that the values bound to variables in block contexts are not available outside those contexts.
  • Rewrote the section on implementing reduce.
  • Some examples in the Enumeration chapter have been updated with the new inspect format for streams.
  • Some minor structural changes in the chapter on writing the GitHub issues fetcher.
  • Added a section on the breakpoint facility to the Tooling chapter.
  • Switch to using StreamData for property-based testing.
  • Added a new section on the code formatter.
  • Added a section on my preferred way to split code out when writing components.
  • The OTP section has been radically revised. The server chapter uses the new-style layout, and the supervisor chapter uses the new implicir child specifications. I’ve added a new chapter where we build a more complex application with a variety of server types and nested supervisors. I also use DyanmicSupervisor rather that :simple_one_for_one.
  • I now build releases using Distillery and not exrm.
  • Added section on @impl to Behaviours.
  • Rewrote most of the Protocols chapter, replacing the somewhat suspect Bitmap example with a module to dissect a Midi stream.
  • Added slice/1 to the description of Enumerable.
  • Updated the Type Specifications appendix to use the dialyxr mix tasks.