Skip to content

Meeting minutes

Frank Emrich edited this page Apr 17, 2023 · 14 revisions

2023-03-27, version 0.9.7

  • PR #1170: Refactoring of lens tests and benchmarking
    • Frank will review the PR
  • PR #1169: Generative labels
    • needs some coordination regarding addressing open issues
  • PR #1135: Grouping and aggregation
    • Wilmer made some progress on this
    • One problem: Requires way to express that two rows share same labels, but different types associated with present labels, not expressible in current system
    • Will sidestep typing issue with hack for the time being
  • Project ideas for interns
    • Porting Process module to use OCaml 5 concurrency features
    • Continuing some of Sam's UG projects (Gather Town, concurrency APIs in Links, ...)

2023-01-30, version 0.9.7

  • Switch to OCaml 5 (PR #1165)

    • Agreement that this is a good thing
    • CI was running ancient OCaml 4.08, updated to 4.14.01 now
    • Suggestion to update CI to compile and run tests with OCaml 5.0 _and _ 4.14.1 for the time being
  • Hide session fail effect (PR #1167)

    • Sam briefly discussed the idea:
      • Given the pervasineness of the SessionFail effect once ession exceptions when are enabled, add option to make SessionFail subsumed by wild
      • Another motivation: Whether or not session exceptions are enabled affects whether SessionFail appears in effects of certain functions, making it difficult to give them (and their users) sufficiently general types to work in both situations.
    • Sam suggests some additional offline discussion about taking some of these ideas further
  • Fixes for linear variables in handlers (PR #1162)

    • Wenhao pointed out that this PR is not intended to solve the long-standing issue #544, but the related, but different issue #1161
    • The PR is generally ready, but needs some finishing touches
  • Generative labels (PR #1148, now replaced by new PR #1169)

    • PR needs reviewing
    • General discussion about the problems caused by earlier work on splitting frontend desugaring into smaller steps, in particular separating handling of effect sugar and type variables.
      • These two concerns can't actually be separated, as they are mutually dependent, at least in the case of recursive rows
      • Frank will create issue to track the broader problem and to discuss solutions (such as turning both desugaring steps back into one)
  • Grouping and aggregation (WIP PR #1135)

    • No update here. This requires some theoretical work in order to solve an inefficiency problem
  • Next Links release

    • No date decided, no pressing need
  • Need Links meeting

    • 27 March 2023

2022-11-14, version 0.9.7

  • Round of introductions (again!, yaaay)
  • Open PRs
    • Three PRs related to effect handlers, particularly, the type system. Need some help reviewing and tidying up the patches. It would be good to get some of the new PhD students to help out.
    • No real update regarding #1135.
  • Misc
    • React in Links
    • Steven Chang has been working on an "embedding of React in Links". Some issues have been identified: Links webserver/appserver does not understand JavaScript modules (i.e. *.mjs files), persistent effect handlers on the client (e.g. effect handlers in event handlers).
    • New Grand Coordinator
    • Sam has funding for two RAs working for 18 months on EHOP.

2022-10-03, version 0.9.7

  • Introductions
  • Open PRs
    • Plan to merge #1148 first. The scoping mechanism needs to be patched -- possibly do this retrospectively.
    • Merge #1151 and #1158 in any order.
    • #1135 still very experimental. The generated queries are slow.
  • Next release prioritisation
    • Merge PRs
    • Split JS runtime
  • Skye case studies
    • Make code available from the case studies
    • proposal: create a repo under links-lang per case study
      • alternatively: one monorepo for all case studies
      • James needs to be involved in the decision.
  • Misc
    • Live demos: we have a Google VM instance running on links-lang.app.
      • Con: The Google credits expire after one year, so we need to keep reapplying for credits.
      • Some labour/maintenance is required to keep this server/instance running, also students (well staff too, really) pose a certain "risk" as they may accidentally bring down the server/instance.

2022-08-01, version 0.9.7

  • Release of 0.9.7 (dhil)
  • Temporal database update (simonjf)
    • The latest release contains the first iteration of the temporal database support; long-term we want to do something more general: database annotations; compositional theory of annotations.
    • Working on a paper detailing the design.
    • Questions about how temporality interacts with effects.
  • Version 1.0 (dhil)
    • Toggle effect handlers by default.
    • Make session failure a transparent effect.
    • Mechanism for detecting client disconnect without session types.
  • Pull requests
    • #1158 polymorphic operations: needs a little tweaking before merge.
    • #1148 fresh label: also needs a little tweaking.
    • #1151 new syntax for handlers: ready for merge.
  • Misc
    • Move away from Google Meet
      • Google Meet will soon start cutting meeting short at the 60-minute mark.
      • Suggestion: use Zoom instead.
    • Hybrid meetings
      • Book room in Forum with TV setup.
      • Next meeting: September 26, 2022
    • Put 2022 interns on https://links-lang.org
    • Start work on a (WebAssembly) compiler for Links.

2022-06-27, version 0.9.6

  • Introductions
  • 0.9.7 release (dhil)
    • Waiting on #1132. Yi is working on a fix for #1132.
  • Effect aliases (robin)
    • Implemented aliases for effect rows
    • Implemented fresh operation labels
  • Links benchmarks suite (Yi)
    • Implemented new benchmarks
    • Extended the option -Xcustom-js-runtime to be a multi option
  • Misc
    • Simon got two MSc students working on Links related stuff.
      • One student is looking at supervisor hierarchies.
      • The other one is doing examples for relational lenses.
    • SPLS is on Friday: still space for lightnings talks
    • Lens refactor
      • Inline typechecking stuff into typeSugar
      • Integrate the query normalisation stuff

2022-04-25, version 0.9.6

  • 0.9.7 release? (dhil)
    • Nobody objects to a new release.
    • Prepare a new release asap (dhil)
  • Make default paths more uniform (jamescheney)
    • Default to source tree paths when compiled from source
    • Default to OPAM paths when installed via OPAM
    • Axe the environment variable LINKS_LIB
    • Version check JSLIB
  • Client/server annotations (jamescheney)
    • See #219, #1133, #1134
  • Relatively major things (sam)
    • We will build a Wasm backend for Links
    • Intern starting this Monday to work on front-end stuff related to effect handlers.
  • Misc
    • We have a VM that runs in the Google Cloud. links-lang.app for apps running on that VM instance.

2022-03-28, version 0.9.6

  • 0.9.6 released (dhil)
  • JavaScript runtime changes (dhil)
    • More changes to come.
  • DPMT.links (sam)
    • Degree Project Management Tool (DPMT), the current revision is implemented by Tom Spink.
    • There is room for improvement. Ohad suggested to re-implement DPMT in Links.
    • In its essence: a database with a frontend.
    • Potential Links related issues: security and stability.
      • Integration with DICE authentication.
      • Serialised continuations should be encrypted (maybe we don't need serialised continuations at all?).
      • An option to disable RPC features of Links?
    • Deadline? Ask Sid.
  • Links compiler infrastructure (dhil)
  • Misc
    • Option or Maybe? We go with Maybes.
    • Anybody got a figure for Links that lists/connects its various features? Yes, Simon does.
      • More generally, we should create/collect materials for presenting Links to various audiences.

2022-02-28, version 0.9.5

  • Preparing 0.9.6 (or 0.10.0?) release
    • Sticking with 0.9.6 for this release.
  • Updates to CHANGES.md [sent to [email protected]] (wilmer)
    • Moving forward we will add an "Unreleased" section to CHANGES.md, where we can record changes that have not yet been bundled into a release.
  • JavaScript runtime changes (dhil)
    • A thorough Spring cleaning of the JavaScript/client side stuff.
  • Misc

2022-01-31, version 0.9.5

  • 0.9.5 release
    • Pull-requesters: remember to modify CHANGES.md accordingly!!
  • Temporal database stuff (simonj)
    • In essence a simple thing, but touches most of the code base (new keywords, parsing, typechecking, ir nodes, evaluation rules)
    • How many database flags do we have (mixing_norm, more?)?
      • Many of our database features are controlled via code annotations, e.g. query [nested] { ... }.
      • We need a flag for toggling temporality.
      • Potential problem with temporal joins in nested queries.
      • Emit warnings for potential problematic interactions between temporality and shredding.
    • We have interested users(/use-cases?).
  • Communicating over secure connections (https/wss) (sam)
    • We need a way to configure Links to admit secure and non-secure connections.
    • Flag to instruct Links to only operate over secure connections?
  • Next release: When? What version number?
    • ASAP after merge of temporal database stuff.
  • Misc
    • It'd be useful to be able to detect when a user closes their web browser / tab. We can sort of do this with session exceptions, however, it is somewhat troublesome as it changes the type signatures of all communication-primitives.
    • MVU has its own HTML data type for building components. It lacks support for manipulating the DOM, e.g. attaching a video.
    • (Alien) abstract types.
    • Document the previously used release names.
      • 0.6: Gorgie
      • 0.7: Dalry
      • 0.8: Merchiston
      • 0.9: Burghmuirhead

2021-11-29, version 0.9.4

  • Preparation of next release
    • Release condition: Temporal database stuff. It is not quite ready yet.
    • PR #1061 needs to implement a value restriction check before merge.
    • Issue #1067 is prioritised for release 0.9.5
    • Version number? Increment revision number for hotfixes, and increment minor for significant changes / features added.
  • Misc
    • UG students wishlist: Ability to detect dropped connections
      • We can possibly add a facility to the prelude which uses session types under the hood to propagate failures.
    • SSL/secure connections: set up an apache proxy server with lets encrypt

2021-10-25, version 0.9.4

  • Links hackathon (Frank&Daniel)

    • Frank has implemented F system-style type abstractions (PR #1061)
    • Daniel has been working on hygienic names.
  • Flaky headless CI (Daniel)

    • Transient failures due to incompatibility between Selenium web drivers and web browser versions
    • Temporary solution: disable Firefox step (until someone dedicates time to iron out the issues). Open issue on links-lang/links.
  • Misc

    • Temporal database queries: it's coming together. Still needs more polishing before it's in a mergeable state. The type checking needs to be refactored, the IR and related stuff is done.
    • Gather.town clone / WebRTC support in Links: Both UG students have managed to get Links up and running with WebRTC via the alien interface. Possibly want to make one version using the MVU library. The MVPs will have two different APIs, which we'll reconcile later (maybe).
    • Dump compilation artifacts to disk: IR, AST, JS code, HTML, Value.t, Queries, compilation units?
      • Concrete wish: "Static" webpage generation from Links

2021-09-27, version 0.9.4

  • 0.9.4 release
    • Release pipeline easier than ever!
  • Admin: organisation/repository privileges for past members
    • Garbage collected students and interns.
  • Headless testing
    • Test workshop in a (near) future?
  • 0.9.5 roadmap
    • Temporal database stuff (!)
    • Effect handlers enabled by default (!)
  • Misc
    • Undergrad projects (MInf):
      • Zulip channel #links-webrtc
      • Update Links INSTALL.md for opam version 2.1.0 (no depext)
      • Simon has an IT student, who will do a project in Links (TBD)
    • Location inference (Kwanghoon)
      • PolyRPC -- prototype compiler for the poly rpc calculus
      • Locations need only be written down in type signature, not terms
      • Some locations can be omitted altogether as the compiler is capable of inferring them.
      • Location types to appear in the IR of Links?
      • Location inference can be done with ordinary type inference: A -> B L ~ ((L * A) -> B) Is the location a capability?
      • Separate meeting about location inference/PolyRPC
      • SF: The current realisation of locations in Links are a bit of a mess spawnClient, here, there Space for a nicer design
    • Wasm backend. Daniel and Sam are working on MULTIPLE Wasm backends for Links Motivation: Compiling functional languages to Wasm Experimentations with effect handlers on Wasm One "unified" backend for client & server side Links programs
Backends: Links IR -> JankyScript
          Links IR -> NotWasm
          Links IR -> Wasm bytecode
          \
          | Direct style
          | CPS

2021-08-30, version 0.9.3

  • End-to-end tests (PR #1035)
  • Preparation of release 0.9.4
    • Release responsible: Dee and dhil
    • Change changelog with PRs
  • Miscellaneous
    • Minor issue: Emit a warning when shadowing a binding
    • Next meeting: 27th September 2021
    • Two undergraduate students to work on "gather.town clone in Links"
    • Dee to work on wasm compilation

2021-07-26, version 0.9.3

  • Links benchmarks (dhil)

  • Pull request updates

    • Fix error with global let bound anonymous functions #1009, #1015, #1023 (Dee & dhil)
    • Coping with deeply nested literal JSON objects #1019 (dhil)
    • Roundtrip printer patch to handle current shared effect sugar #1006 (Samo)
    • Surface syntax for Presence type arguments #1000 (dhil)
    • Run interpreter testsuite on ubuntu-latest and macos-latest #981 (dhil)
    • Heterogeneous queries and delateralization #936 (wricciot)
  • Temporal database update? (simonjf)

  • Progress on version 0.9.4

  • Miscellaneous

2021-06-28, version 0.9.3

  • Release 0.9.3 (dhil)

    • Simplified release process
    • Possibly change license from GPL-2 to GPL-3
      • Let's try GPL3-only
  • Migration of continuous integration from Travis to GitHub Actions (dhil)

    • Changes to the test infrastructure
    • Potential enhancements
  • Up-to-date documentation (slindley)

    • (slindley): Poorly maintained documentations Various "competing" unmaintained documentations We need the documentation on the webpage, up-to-date.
    • (simonfowler): Quite a bit of effort has already been invested into Sphinx * Markdown-like syntax * expressions.rst is fairly complete * Structure in place for most things, for more advanced things only stubs are in place
    • (rudihorn): Use Pull Request templates, e.g. have a checkbox for "Have you updated the documentation?" CI to automatically deploy documentation
    • (vashti): GitHub wiki already records the basic, and ought to be merged into more complete documentation Happy to spend some time to make sure the documentation is meaningful

    Simon Fowler will take the lead on documentation maintaince

  • Pull request updates

    • Parsing recursive rows #993 (Samo)
    • New round-tripping pretty printer #982 (Samo)
    • Heterogeneous queries and delateralization #936 (wricciot)
    • Permissive escape bodies #981 (dhil)

Closed pull requests

  • In DesugarInners, don't patch already frozen variables #988 (merged by frank-emrich)
  • Sugartoir: Fix setting ambient effect when traversing zero-ary function #972 (merged by frank-emrich)
  • Freshen generalized type variables after turning lambda into named function #971 (by frank-emrich, merged by dhil)
  • fix #967 #968 (by kwanghoon, merged by dhil)
  • fix #895 #965 (by jamescheney, merged by dhil)
  • Consolidate primitive row labels and type informations #984 (merged by dhil)
  • Move the function tt to typeUtils.ml #983 (merged by dhil)