Tweag+Nix dev update #45

Previously in Tweag :eyes:

Making Nix solve people’s problems :wrench::toolbox:

Documentation :books:

As usual, @fricklerhandwerk did a lot of work on the documentation side:

More Details

Making Nix work reliably everywhere :penguin::apple:🪟

CUDA work



Making Nix ubiquitous :rocket:

Blog posts and media :newspaper:


We are preparing for a 1.0 release in the following weeks.

  • @yannham:
    • implemented the last part of RFC005, fixing a number of issues with metadata and merging.
    • Fixed the query command in the REPL and an infinite import loop (#1143, #1142)
    • Enriched the interface of error reporting for custom contracts (e.g. ability to provide notes, #1152, #1156)
    • Added missing documentation for optionals field and symbolic strings (#1169, #1172)
    • Switched to arbitrary precision rationals as the underlying implementation of Number instead of 64 bits floats (#1182)
    • Renamed short primitive types like Num and Str to long names (Number, String) as well as associated functions (#1164)
  • @vkleen:
    • Implemented a new not_exported metadata to prevent a record field from being exported. Useful for example to mix contracts and other local definitions in one record, but hide them from the final configuration (Non-exported record fields by vkleen · Pull Request #1132 · tweag/nickel · GitHub).
    • Extended the stdlib, improved the naming of existing functions (#stdlib)
    • Improved the semantics of dictionary contracts (#dictionary)
    • Investigated and in the course of fixing a strange interaction between recursive records, polymorphic contracts and the new dictionary contracts (#current). Cleaned and refactored a bit the contract generation code along the way.
  • @ebresafegaga:
    • Fixed the LSP to correctly handle import with parse errors in them (#1124)
    • Hid stdlib internal calls from the stack trace when reporting a function contract error (#1139)
    • Improved the reporting of contract error message (#1149, #1185)
    • Started to work on an emacs mode
  • @dpl0a continued to work on incremental evaluation. He’s very close to getting a incremental evaluation for merging (overriding a value would only recompute fields that directly depend on this value), but he need to fix failing tests. This is stepping stone toward doing the same across separate evaluations.
  • A bunch of Tweagers worked a bit on Nixel as well, cleaning the current architecture a bit, and started a more serious challenge: a realistic, customizable Haskell devshell (#53)
  • We woud’ like to thank the non-Tweager contributor @asymmetric as well, who helped improving the CI and the flake, fixed typos and error messages.

:computer: may your Nix builds be short and fast :vulcan_salute:

Hosted by Flying Circus.