Skip to content

Releases: AshleyYakeley/Truth

Pinafore 0.5

15 Apr 00:55
Compare
Choose a tag to compare
  • Language
    • redesign dynamic types
    • allow decarations in do-blocks
  • Library
    • built-in
      . add collect.FiniteSetModel
      . add newClockUTC.Date, newClockLocal.Date
      . improve type of getList.FiniteSetModel
      . add DynamicType and functions
    • GTK
      . allow checkbox menus
    • UILib
      . update

Pinafore 0.4.1

30 Oct 22:56
Compare
Choose a tag to compare
  • Install
    • Nix flake outputs for VS Code extension
  • Language
    • improve recursive type simplification
    • clean up error messages
    • reserve "type" keyword
  • Library
    • add constructors for Time type
  • Fixes
    • fix type solver
    • reject "rec a, a" types
    • fix fromList.Map

Pinafore 0.4

27 Aug 22:07
Compare
Choose a tag to compare
  • Install
    • Debian package works on:
      . Ubuntu 22.04 LTS "jammy"
      . Debian 12 "bookworm"
    • add Nix flake
  • Language
    • overhaul of declarations
      . separate namespaces from modules,
      with "namespace" declarations and "with" and "import" declarators
      . both non-recursive ("let") and recursive ("let rec") declarators
      . "expose" declarations
      . allow declaration documentation with #| and {#| #} comments
    • datatype declarations
      . "closedtype" now "datatype storable"
      . can now have parameters
      . can now have subtypes
      . record constructors/patterns for datatypes
      . allow recursive types in datatypes
    • can declare arbitrary subtype relations
    • import lists
    • syntax
      . allow defintion of new operators
      . changed recursive type syntax from "rec v. T" to "rec v, T"
      . type names (+:), (*:), List, Unit
      . tuple constructor/pattern (,,) etc.
      . type signatures now attach to bindings, not stand-alone
      . separate syntax for static ":" and dynamic ":?" pattern typing
      . new syntax for function expressions: fn, match, =>
      . new syntax for datatype definitions
      . generalised "{}" and "do" syntax to any namespace
    • reject rather than mutate uninvertible type signatures
    • allow polymorphic recursion with type signatures
  • Interactive
    • :doc to retrieve name documentation
  • Library
    • Std
      . Literal type now byte array rather than text
      . Literal types now have GDS Literal
      . add Showable type for showing, show replacing toText
      . add min/max/lesser/greater functions
      . add List1 type for non-empty lists, subtype of List
      . rename "Ref" types and functions to "Model"
      . add TextModel type & associated functions, use for uiTextArea
    • new Task module
      . add Task type & associated functions
    • new Stream module
      . add sinks & sources
    • new Env module
      . move invocation-type stuff here
      . add stdin, stdout, stderr
    • new Eval module
      . move evaluate here
    • new Colour module
      . add Colour & AlphaColour types, etc.
    • new GIO module
      . add GIO File type and functions
    • new Cairo module
      . add Cairo-based functions for creating drawings
    • new Image module
      . add Image, HasMetadata, PNGImage, JPEGImage types, etc.
    • GTK
      . rename (from "UI")
      . explicit control over context
      . menu bar is just ordinary element
      . element for Image
  • Storage
    • Anchors now 256 bit, hash using BLAKE3
    • Store literals as binary rather than as text
    • Embed smaller literals directly in the anchor
  • Fixes
    • fix defect in lexical scoping

Pinafore 0.3.1

29 May 22:16
Compare
Choose a tag to compare
  • fix serious defect in type unifier (really this time)

Pinafore 0.3

11 Apr 01:17
Compare
Choose a tag to compare
  • Language
    • add subsumption expressions
    • allow module-qualified names
    • improve type simplification
  • Library
    • Std
      . add "index" function for lists
      . add "forWhole" function
      . change some constructor names not to clash with type name
      . new ListRef type, with functions
      . rename various reference-related functions
    • UI
      . separate module
      . rename "UI" type to "Element"
      . elements for CSS styling
      . openWindow now takes size
      . notebook can track page selection
  • Fixes
    • fix defect involving export of open expressions
    • fix serious defect in type unifier
    • fix defect involving imported types

Pinafore 0.2

21 Dec 19:19
Compare
Choose a tag to compare
  • new module system
  • dynamic supertypes
  • dynamic entity types
  • generalised open entity subtypes
  • various new predefined bindings
  • bug fixes

Pinafore 0.1

21 Sep 19:27
Compare
Choose a tag to compare

Initial release. See https://pinafore.info/.