Skip to content

release/M2i

Compare
Choose a tag to compare
@github-actions github-actions released this 05 Oct 18:10
· 8271 commits to trunk since this release

Our last release was M2h. Here's a summary of what's new since then:

  • Many improvements to the pretty printer for round-trip code editing. Thanks @runaroama!
  • cd .. at long last! You can move up one level in a namespace structure.
  • Codebase creation workflow improvements - work by @hojberg and @rlmark
    • The former codebase creation command ucm init --codebase myNewCodebase has been deprecated in favor of a command line flag to the ucm ucm --codebase-create myNewCodebase which also opens the codebase
  • New Scope s ability for local mutable operations which are externally pure
  • New Ref type for mutable references which to which you can be read or written to using IO. Thanks @dolio!
  • New builtin functions:
    • Builtins for working with compression: Bytes.zlib.compress, Bytes.zlib.decompress, Bytes.gzip.compress, Bytes.gzip.decompress @pchiusano
    • New unsafe.coerceAbilities builtin. @dolio
    • Added new Ref and Scope @dolio
    • Added IO.systemTimeMicroseconds - thank you @alvaroc1!
    • Added Term.Link.toText @stew
    • Added Any.unsafeExtract @stew
    • Added Code.validate for testing/debugging @dolio
    • Added Code.display for displaying Code
  • Defining structural abilities and types requires structural keyword. @hojberg and @rlmark
  • Codebase UI
    • Source is now independently collapsable and are part of the "zoom cycle" triggered by the space key.
    • Signatures of open definitions are now displayed before docs. They are collapsed if there are docs and expanded when there are none.
    • Support switching perspective to a namespace. Switch perspective via the sidebar or an open definition.
    • Support namespace perspectives both overall and adhoc in the Finder via a context menu on any open definition
    • Docs render a lot nicer and Readme's of namespaces render by default when a namespace is the perspective
  • ... aaand more! See the full list of PRs merged below.

Fetching the latest base library

.> pull https://github.com/unisonweb/base:.releases._M2i .base_m2i

You can then (optionally) delete.namespace any old versions of base you have laying around. This will complain if you're still referencing definitions from the old version of base.

If you have definitions that depend on old definitions, you can find that out by doing:

.mycode> todo .base_m2i.patch

If you do have things todo, applying the patch to your namespace will replace the old versions with the new. We recommend forking a copy of your namespace before doing this:

.> fork mycode mycode2 
.mycode2> patch .base_m2i.patch
.mycode2> todo .base_m2i.patch

Assuming that reports "Nothing to do", you can delete.namespace mycode and then delete.namespace your old version of base. If you encounter any trouble, stop by the Slack in #alphatesting and we can help.

Known issues

  • Adding definitions with default metadata to large namespaces (e.g. base) may be slow. This will be fixed in an upcoming release

What's coming in future releases?

  • Usability and performance improvements for UCM, particularly around the update process.
  • Standalone bytecode files for running compiled Unison programs outside of UCM.
  • A new docs site based on the same doc renderer used on https://share.unison-lang.org
  • A first release of Unison's distributed programming API, initially just supporting local concurrent execution.
  • and a bunch more...

Check out https://github.com/unisonweb/unison/issues?q=is%3Aissue+is%3Aopen+label:P1 to follow current high priority issues being worked on.

Acknowledgements

Thanks to everyone who helped with this release, either by writing code or docs or submitting bug reports. For unisonweb/unison, here's all the folks with commits in this release (alphabetically by first name):

» git shortlog -s --no-merges "release/M2h".."release/M2i" | cut -f 2- | sort -f 

Alvaro Carrasco
Arya Irani
Dan Doel
Paul Chiusano
Rebecca Mark
Rúnar Bjarnason
Simon Højberg
Stew O'Connor

Also see the contributors for unisonweb.org and contributors for unisonweb/codebase-ui

A number of people contributed to the Unison base library. You can view author information for any definition using the links command:

.> links base.List.filter Author

  1. base.metadata.authors.pete_ts           : Author
  
  Tip: Try using `display 1` to display the first result or `view 1` to view its source.

PRs merged since last release

git log --oneline release/M2h..release/M2i | grep 'Merge pull request #'
  • #2323 from unisonweb/feature/compress
  • #2447 from unisonweb/welcome-onboarding-state-machine-authorship
  • #2450 from unisonweb/pchiusano-patch-2
  • #2438 from unisonweb/topic/rt-decl-ctor-constants
  • #2441 from unisonweb/pchiusano-patch-2
  • #2442 from unisonweb/silence-base
  • #2436 from unisonweb/fix/ui-229
  • #2437 from alvaroc1/trunk
  • #2418 from alvaroc1/trunk
  • #2433 from unisonweb/topic/hash-module-v1b
  • #2432 from unisonweb/topic/letblockparen
  • #2430 from ceedubs/remote-support
  • #2427 from unisonweb/topic/emphroundtrip
  • #2428 from unisonweb/debug/missing-data-case
  • #2421 from alvaroc1/bug/2325
  • #2420 from unisonweb/remove-trace-from-fieldnames
  • #2415 from unisonweb/topic/listblocks
  • #2403 from unisonweb/record-fix
  • #2400 from stew/feature/any-extract
  • #2414 from unisonweb/add-no-base-flag
  • #2384 from unisonweb/topic/lts-18.9
  • #2405 from unisonweb/remove-init-command
  • #2399 from unisonweb/topic/longbinaryops
  • #2387 from stew/feature/termlinktotext
  • #2397 from unisonweb/base-download-on-init
  • #2396 from unisonweb/topic/typeapplicationparens
  • #2395 from unisonweb/random-earth-views
  • #2393 from unisonweb/topic/listpatternprecedence
  • #2386 from unisonweb/round-trip-tests-docs
  • #2391 from unisonweb/improve-welcome-message
  • #2390 from unisonweb/topic/destructuringbindparens
  • #2388 from unisonweb/fix/higher-rank
  • #2385 from unisonweb/fix/roundtrip-testing
  • #2382 from unisonweb/fix/2353
  • #2380 from unisonweb/fix/2378
  • #2377 from stew/fix/2345
  • #2375 from unisonweb/feature/up
  • #2368 from unisonweb/namespace-details
  • #2365 from unisonweb/default-codebase-if-not-exists
  • #2372 from unisonweb/fix/delay
  • #2371 from unisonweb/fix/2355
  • #2369 from unisonweb/test/unlink
  • #2364 from unisonweb/fix/2355
  • #2366 from unisonweb/stackage-18.6-temp-downgrade
  • #2363 from unisonweb/topic/weed-codebase1-5
  • #2356 from unisonweb/fix/2344
  • #2352 from unisonweb/structural-kw#2251
  • #2351 from unisonweb/topic/scope-refs
  • #2349 from unisonweb/update-stack-resolver
  • #2346 from unisonweb/topic/unsafe-coerce