10 Feb 2025

Previous: 3 Feb 2025 Next: 17 Feb 2025
  1. Babel: solve the opam repository with pubgrub-opam

    1. While converting the whole repository I fixed a bug in a package definition

    2. X on-demand dependency provider

      opam-repository has a lot of packages, so we only load packages we need

      1. O add a caching dependency provider with interior mutation

    3. X parse filtered package formula

      • While the grammar allows for it I can’t actually find any booleans or integers in the dependency formula of Opam.
      • Why are they there?
      • I’m just ignoring them for now so I don’t need to complement logic for comparing them etc.
    4. X encode filtered package formula in pubgrub

      Take (A, 1) depending on B {build} as a minimal example. We encode this in the ‘package calculus’ as

      (A, 1) -> (B {build}, *)
      (B {build}, lhs) -> (B, *), (`build`, false)
      (B {build}, rhs) -> (`build`, true)
      

      Note that B {build} is a proxy package associated with the formula build.

      1. O conjuntions and disjuntions aren’t complete

  2. A deployment idea

    • whenever a binary is executed, execute the packaging/build lazily to satisfy the request for that binary
    • you could use binfmt_misc for this in Linux
    • with mount namespaces, you could hide the compilation/packaging of the binary in its own namespace and the only thing “exported” to the main filesystem are the binary/data needed to runtime
  3. Teaching

    I marked the first supervision work for Robinson Part II’s Computer Networking.

    There’s a bit of a tension between examinable work and hands-on experience. I’ve previously given some practical ideas for students, but didn’t get any bites.

    Patrick said his networking supervisor was very light on the setting / marking work, but gave them a lot of hands-on demos of real life Linux networking with iptables and so on. Michael recounted his Unix socket programming introduction to networking, which I think is great. My first networking practical was writing a file distribution program then some hands-on performance analysis of TCP.

    I think a bit of this practical element is missing in the Cambridge curriculum. The course page encourages learning by doing, but with the pressures of term I haven’t found many students have the time to pick up work that does count towards their grade. The masters-level course on networking, Introduction to networking and systems measurements, gets very practical, which I think is great.

  4. SNS

    1. O read https://arxiv.org/pdf/2405.20745 and think about how it could apply to a spatial DSL

  5. Misc

    1. O write up research ideas for website