Skip to content

Miking Meeting Notes 2023

Lars Hummelgren edited this page Dec 21, 2023 · 79 revisions

Meeting Notes 2023-12-21

Note-taker: Lars Hummelgren

Participants: Anders Ågren Thuné, Oscar Eriksson, Linnea Stjerna, Lars Hummelgren, Viktor Palmkvist, David Broman

Pull requests

Discussion

  • Anders mentioned an alternative approach to compilation to OCaml, which would more or less be able to avoid obj wrapping. Risks degrading performance compared to current approach, but could potentially improve readability.
  • What to do next with the Miking paper; e.g., how to reuse the type checker for DSLs to get comprehensible type errors.

Meeting Notes 2023-12-14

Note-taker: Anders Ågren Thuné

Participants: Anders Ågren Thuné, John Wikman, Oscar Eriksson, Linnea Stjerna, Lars Hummelgren, Viktor Palmkvist, David Broman

Pull requests

Future discussion topics Packaging miking

Meeting Notes 2023-12-07

Note-taker: Viktor Palmkvist

Participants: Anders Ågren Thuné, John Wikman, Oscar Eriksson, Linnea Stjerna, Lars Hummelgren

Pull requests

Meeting Notes 2023-11-30

Note-taker: Linnea Stjerna

Participants: Anders Ågren Thuné, Lars Hummelgren, Viktor Palmkvist, John Wikman, Linnea Stjerna, David Broman, Johan Adamsson, Gizem Çaylak

Pull requests

  • https://github.com/miking-lang/miking/pull/775
    • Investigate problem with long compilation time when specialize is used
    • Check that there is no overhead when specialize is not used in a program
    • Add unit tests for specialize for different language constructs. Can add tests for unsupported language constructs but commented out.

Meeting Notes 2023-11-09

Note-taker: Linnea Stjerna

Participants: Anders Ågren Thuné, Lars Hummelgren, Viktor Palmkvist, John Wikman, Oscar Eriksson, Linnea Stjerna, David Broman

Pull requests

Discussion

  • Miking workshop
  • Miking documentation on website, installation should be updated
  • Miking paper

Meeting Notes 2023-11-02

Note-taker: Lars Hummelgren

Participants: Anders Ågren Thuné, Lars Hummelgren, Viktor Palmkvist, John Wikman, Oscar Eriksson

Pull requests

Meeting Notes 2023-10-19

Note-taker: Linnea Stjerna

Participants: Anders Ågren Thuné, Lars Hummelgren, Viktor Palmkvist, Gizem Çaylak, Linnea Stjerna, John Wikman, Oscar Eriksson

PRs

Discussion

  • Oscar is preparing a PR that needs to count the number of occurrences of each free variable, which would make the current implementation of free variable counting in free-vars.mc more complicated. We discussed if this would be an issue for the performance of k-CFA. Linnea will test the performance of k-CFA using both alternatives (keeping both versions, or rewriting to use the same code).
  • New issue: https://github.com/miking-lang/miking/issues/797

Meeting Notes 2023-10-12

Note-taker: Oscar Eriksson

Participants: Anders Ågren Thuné, Lars Hummelgren, Viktor Palmkvist, Gizem Çaylak, David Broman, Linnea Stjerna, John Wikman, Oscar Eriksson

Pull requests

Discussion We discussed testing compiler passes in a more rigorous way. One idea for lambda lifting is to compare the types of large programs before and after lambda lifting. They should remain the same. This methodology could also be applied to e.g. the ANF transform. The motivation for doing so is that some bugs are hard to cover with only utests.

We also decided to add negative literals to MExpr. This will, for example, allow us to pattern match on negative numbers, which is currently impossible.

Task Create an issue to add negative literals, and point to lexer.mc, bootparser, boot pprint, and pprint.mc, which are places that need to be updated. Mark it as a good starting issue.

Meeting Notes 2023-10-05

Note-taker: Viktor Palmkvist

Participants: Anders Ågren Thuné, Lars Hummelgren, Viktor Palmkvist, Gizem Çaylak, David Broman, Linnea Stjerna, Asta Olofsson

Pull requests

  • Asta: https://github.com/miking-lang/miking/pull/710
    • Change the large chained match-then-else on constants to a sem with a case per constant
    • A bit more detailed comments on why the excluded tests fail, for when someone wants to look into fixing them
    • Documentation on the homepage: reference page and a how-to guide "How to compile with the JVM backend".
    • Then we like (ping David when fixed)

Meeting Notes 2023-09-28

Note-taker: Lars Hummelgren

Participants: Anders Ågren Thuné, Lars Hummelgren, Viktor Palmkvist, Gizem Çaylak, Oscar Eriksson, David Broman

Pull requests

Discussion

  • David will create a Slack channel for discussing documentation.
  • Our goal is to move everything from the README to the website. David will make a first stab at this.

Meeting Notes 2023-09-21

Note-taker: Linnea Stjerna

Participants: Anders Ågren Thuné, Viktor Palmkvist, Linnea Stjerna, Lars Hummelgren, David Broman, Oscar Eriksson

Pull requests

Discussion

  • Documentation on the website should be kept in sync with the documentation repo, and it should be easy for the core team to make fixes in the documentation. The hypothesis is that it should be doable with the current documentation repo + using Github actions to automate the updates to the website. Additionally, the documentation should follow this way of structuring https://documentation.divio.com/

Meeting Notes 2023-09-14

Note-taker: John Wikman

Participants: Anders Ågren Thuné, John Wikman, Gizem Çaylak, Viktor Palmkvist, Linnea Stjerna, Lars Hummelgren

Pull requests

Discussion

  • Create issue on consistent/predictable float2string output format.

Meeting Notes 2023-09-07

Note-taker: Linnea Stjerna

Participants: Anders Ågren Thuné, Gizem Çaylak, John Wikman, Oscar Eriksson, Lars Hummelgren, Viktor Palmkvist, Linnea Stjerna, David Broman

Pull requests

PR to Viktor's repo (not to be merged by David):

We discussed next steps for setting up periodic execution of `miking-benchmarks`
  • How to run benchmarks?

    • External tool
      • hyperfine
      • perf
      • rust-criterion?
    • miking-benchmarks
      • How to use the miking compiler as a benchmark?
        • (git submodule?)
        • script to download the code
      • How to time the separate stages of bootstrapping within one benchmark?
  • Which benchmarks to run?

    • miking-benchmarks
      • subset which doesn't include heaviest/weirdest paper benchmarks
    • test/microbenchmark
    • make
    • make test-*
      • Times are (maybe?) not so relevant, but we want to check that they pass
      • We want to run the tests from the different repos in tandem to check that nothing breaks
  • What to store?

    • Raw metrics
      • Runtimes (wall time & cpu time)
      • Peak memory usage
    • Basic aggregates? (mean, variance)
    • Program output (including stderr) / return code
    • What benchmark: name? which command? (should be reproducible; nix? flake?)
    • System information, miking/dependencies version (nix? flake?)
    • When they ran
    • The ability to change format without changing the data (some tag/folder name to indicate format)
  • How to store the benchmarks?

    • Probably plain text
    • Example structure
      • v1/
        • THE-DATE/
          • system.json
          • benchmark1.json
          • benchmark2.json ...
  • How to sync the data from the benchmarks?

    • Locally on the machine (text files / database?)
    • In a git repo
    • Dropbox
    • Cloud solution
  • How to aggregate the data for visualization?

  • How to visualize the data from the benchmarks?

    • No visualization
    • Homegrown script
    • Someone else's script (e.g., hyperfine)
    • Full-scale solution (e.g., Grafana)
  • Next steps

    • Modify miking-benchmarks to output (minimal subset of) what we need
    • Setup a machine to run these periodically
    • Add bootstrapping to the miking-benchmarks
    • Add other external benchmarking targets (dppl, tests, ...)
    • Add more/better timing options
      • Investigate how other benchmarking suites do timing (OCaml benchmarks, ...)
      • Investigate options for how to run hyperfine/perf/... to get more accurate timing

Meeting Notes 2023-08-31

Note-taker: Oscar Eriksson

Participants: Gizem Çaylak, John Wikman, Oscar Eriksson, Lars Hummelgren, Viktor Palmkvist

Pull requests

Meeting Notes 2023-08-24

Note-taker: Gizem Çaylak

Participants: Anders Ågren Thuné, Gizem Çaylak, John Wikman, David Broman, Oscar Eriksson, Lars Hummelgren, Viktor Palmkvist, Linnea Stjerna

Pull requests

Discussion

  • On the next Miking meeting, Miking benchmarks will be discussed (leaded by Viktor, Oscar, Anders).

Meeting Notes 2023-08-17

Note-taker: Anders Ågren Thuné

Participants: Anders Ågren Thuné, Daniel Lundén, John Wikman, David Broman, Oscar Eriksson, Lars Hummelgren, Viktor Palmkvist

Pull requests

Meeting Notes 2023-08-10

Note-taker: Viktor Palmkvist

Participants: Anders Ågren Thuné, Daniel Lundén, John Wikman, Gizem Çaylak, Linnea Stjerna, David Broman, Oscar Eriksson

Pull requests

Postponed pull requests

Meeting Notes 2023-08-03

Note-taker: Lars Hummelgren

Participants: Anders Ågren Thuné, Daniel Lundén, John Wikman, Gizem Çaylak, Linnea Stjerna, Lars Hummelgren

Pull requests

Meeting Notes 2023-07-13

Note taker: John Wikman

Participants: Anders Ågren Thuné, Daniel Lundén, John Wikman, David Broman, Gizem Çaylak

Pull requests

Meeting Notes 2023-07-06

Note taker: Anders Ågren Thuné

Participants: Anders Ågren Thuné, Daniel Lundén, Viktor Palmkvist, Gizem Caylak

Pull requests

  • Anders
  • Viktor
  • Daniel
    • miking-dppl#138: We like, merge.
    • miking-benchmarks#47: We like, merge.
    • miking#757: We like, merge. Daniel makes issues for some of the things touched by this PR:
      • arg.mc argparser is order-dependent in some cases
      • Random seed is automatically initialized.
  • David
    • miking#758: We like, but has a failing test (in stdlib/matrix.mc). Daniel has a quick look if it's something easy, and otherwise pings David.

Meeting Notes 2023-06-29

Note-taker: Viktor Palmkvist

Participants: David Broman, Viktor Palmkvist, Anders Ågren Thuné, Daniel Lundén, Lars Hummelgren, Gizem Caylak, John Wikman, Linnea Stjerna, Viktor Senderov

Pull requests

Discussion

David presented his thoughts on prerun and dive as constructs for meta-programming.

Meeting Notes 2023-06-22

Note-taker: Gizem Caylak

Participants: David Broman, Viktor Palmkvist, Anders Ågren Thuné, Daniel Lundén, Lars Hummelgren, Gizem Caylak

Pull requests

Discussion:

  • The next meeting starts at 15.30 on week 32.
  • David is handing over the maintainer responsibility to Daniel over summer

Meeting Notes 2023-06-15

Note-taker: Gizem Caylak

Participants: John Wikman, Anders Ågren Thuné, Daniel Lundén, Johan Adamsson, Lars Hummelgren, Gizem Caylak, Oscar Eriksson

Pull requests

Meeting Notes 2023-06-01

Note-taker: Anders Ågren Thuné

Participants: John Wikman, Anders Ågren Thuné, Viktor Palmkvist, Daniel Lundén, Linnea Stjerna, Johan Adamsson, Lars Hummelgren

Pull requests

Discussions

  • Lars made an issue about the design of the AST builder. He argued that the AST builder functions should take Info arguments by default since that's the common use case in code transformations. We agreed. In the future we want metaprogramming facilities, but we're not there yet. The issue with changing the AST builder is the big changes it would bring to the code base, but the changes should be relatively mechanical. We also discussed whether to use language fragments and sems for the AST builder. We agreed this seems nice, but this would be a less mechanical change. Viktor also argued there should be a macro-kind-of-thing for creating an Info object pointing to its own location in the file. We agreed this seems nice, but needs more concrete thought; Viktor makes a write-up.
  • Linnea made an observation that most uses of distinct in the standard library could be replaced by the more efficient distinctSorted. People using distinct in their code should consider switching to distinctSorted. This might be solved automatically once we have UCTs.

Meeting Notes 2023-05-25

Note-taker: Oscar Eriksson

Participants: John Wikman, Oscar Eriksson, Anders Ågren Thuné, Viktor Palmkvist, Daniel Lundén, Linnea Stjerna, Johan Adamsson.

Pull requests

Discussion

  1. Viktor thinks we should not merge https://github.com/miking-lang/miking/pull/708 since he is no longer convinced about the approach in this PR.

  2. Viktor encourages all who feel obligated to take the new build-system https://github.com/miking-lang/miking/pull/738 for a spin.

  3. Anders did a small presentation on using Guix to package Miking programs.

Meeting Notes 2023-05-16

Note-taker: Linnea Stjerna

Participants: John Wikman, Oscar Eriksson, Anders Ågren Thuné, Viktor Palmkvist, Daniel Lundén, Linnea Stjerna, David Broman, Lars Hummelgren

Pull requests

Meeting Notes 2023-05-11

Note-taker: Lars Hummelgren

Participants: John Wikman, Oscar Eriksson, Lars Hummelgren, Johan Adamsson, Anders Ågren Thuné, Viktor Palmkvist, Daniel Lundén, Wiktor Dobrosierdow

Pull requests

Discussions

  • Wiktor presented FFI redesign proposal

Meeting Notes 2023-05-04

Note-taker: Viktor Palmkvist

Participants: John Wikman, Lars Hummelgren, Oscar Eriksson, Anders Ågren Thuné, Linnea Stjerna, Daniel Lundén

Pull requests

Discussions

Meeting Notes 2023-04-27

Note-taker: Johan Adamsson

Participants: John Wikman, Lars Hummelgren, Johan Adamsson, Oscar Eriksson, Anders Ågren Thuné, Linnea Stjerna, Viktor Palmkvist

Pull requests

Discussions

Meeting Notes 2023-04-20

Note-taker: David Broman

Participants: David Broman, Oscar Eriksson, Viktor Palmkvist, Lars Hummelgren, Johan Adamsson, Anders Ågren Thuné
Pull requests

Discussions

Meeting Notes 2023-04-13

Note-taker: Linnea Stjerna

Participants: Viktor Palmkvist, Gizem Caylak, Lars Hummelgren, Oscar Eriksson, Linnea Stjerna, David Broman

Pull requests

Discussions

  • (non-Miking) Oscar will present at the first group seminar next week.
  • We discussed the need to prioritize full bootstrapping.
  • We discussed future plans for metaprogramming in Miking.

Meeting Notes 2023-04-04

Note-taker: Gizem Caylak

Participants: Viktor Palmkvist, Gizem Caylak, Lars Hummelgren, Oscar Eriksson, John Wikman, Linnea Stjerna, David Broman, Asta Olofsson, Johan Adamsson, Mattias Grenfeldt

Pull requests

Discussions

Meeting Notes 2023-03-23

Note-taker: Lars Hummelgren

Participants: Viktor Palmkvist, Johan Adamsson, Lars Hummelgren, Oscar Eriksson, John Wikman, Linnea Stjerna, David Broman

Pull requests

Discussions

  • CLA vs. DCO
    • We aim to join an open-source organization
    • If you're interested, look up alternatives and form an opinion
    • We should keep discussing during meetings and decide in the coming weeks and/or months

Meeting Notes 2023-03-21

Note-taker: David Broman

Participants: Viktor Palmkvist, David Broman, Lars Hummelgren, Johan Adamsson, John Wikman, Anders Ågren Thuné, Linnea Stjerna, Oscar Eriksson, Asta Olofsson, and Mattias Grenfeldt

Pull requests

No pull requests this time.

Discussion

We discussed pros and cons of starting a non-profit organization called Miking Association. The benefit would be that we can transfer copyright using a Contributor License Agreement (CLA), and that this would enable us to change the license in the future (some open source organizations require that). The main downside is the extra administrative overhead. We made a poll, and it was clear that the core Miking group was not interested in more administration.

An alternative is to use a Developer Certificate of Origin (DSO) and that we state that "Miking Contributors" hold the copyright (part of the MIT license). This is a more lightweight process with both the pros and cons that it is hard to change the license in the future.

We will discuss this and hopefully take a decision on Thursday.

Meeting Notes 2023-03-16

Note-taker: John Wikman

Participants: Viktor Palmkvist, David Broman, Lars Hummelgren, Johan Adamsson, John Wikman, Anders Ågren Thuné, Linnea Stjerna, Oscar Eriksson

Pull requests

Discussion Discussed starting the Miking Organization. Plan to have first meeting on 2023-03-23. Lars and John will look at an contributor agreement beforehand. Also discussed future project management utilities.

Meeting Notes 2023-03-14

Note-taker: Viktor Palmkvist

Participants: John Wikman, Johan Adamsson, Asta Olofsson, Lars Hummelgren, Viktor Palmkvist, Linnea Stjerna, Oscar Eriksson, Anders Ågren Thuné

Pull requests

Discussion We decided to start documenting what we need for refactoring our tests and makefile setup, since it's making it a little bit tricky to setup the Java tests. Progress tracked in https://github.com/miking-lang/miking/issues/707. The first step is to document the tests that are a bit different from the normal tests (e.g., need dependencies, need to be built/run with other flags, etc.).

Meeting Notes 2023-03-09

Note-taker: Lars Hummelgren

Participants: John Wikman, Johan Adamsson, Asta Olofsson, Lars Hummelgren, David Broman, Gizem Caylak, Viktor Palmkvist, Linnea Stjerna, Daniel Lundén

Pull requests

Meeting Notes 2023-03-07

Note-taker: Viktor Palmkvist

Participants: John Wikman, Johan Adamsson, Asta Olofsson, Lars Hummelgren, Oscar Eriksson, David Broman, Linnea Stjerna

Pull requests

Discussion Loose thoughts on dropping the builtin sequence type in favor of a more standard array, then implementing ropes on top of that and using universal collection types where we would previously have used ropes. Needs more detailed discussion, so we postpone for later.

Meeting Notes 2023-03-02

Note-taker: Lars Hummelgren

Participants: John Wikman, Johan Adamsson, Asta Olofsson, Lars Hummelgren, Linnea Stjerna, Viktor Palmkvist, Gizem Caylak

Pull requests

Discussion

  • Utest custom pretty-printing options (https://github.com/miking-lang/miking/issues/677)
    • Has to be a record & we supply helper functions
    • Syntactic distinction to show which case we're using
    • Force use of "special" record syntax, we can't extract out the record
    • Update type checker to not check consistency between using and test arguments (2nd pass in type check)
  • John presented progress on MLang AST and pretty-printer

Meeting Notes 2023-02-28

Note-taker: Viktor Palmkvist

Participants: Daniel Lundén, David Broman, Asta Olofsson, Johan Adamsson, Linnea Stjerna, John Wikman, Oscar Eriksson

Pull requests

Discussion We'll have a separate meeting on the bootstrapping process and report on a miking meeting next week.

Meeting Notes 2023-02-23

Note-taker: Linnea Stjerna

Participants: Daniel Lundén, David Broman, Asta Olofsson, Johan Adamsson, Linnea Stjerna, Lars Hummelgren, John Wikman, Elias Castegren, Anders Ågren Thuné

Pull requests

Discussion We discussed compilation of functions to JVM.

Meeting Notes 2023-02-21

Note-taker: Oscar Eriksson

Participants: Viktor Palmkvist, Daniel Lundén, David Broman, Asta Olofsson, Johan Adamsson, Linnea Stjerna, Lars Hummelgren, John Wikman, Mattias Grenfeldt, Wiktor Dobrosierdow, Gizem Caylak

Pull requests

Discussion Wiktor presented his ideas on the FFI. The proposal was mainly based on https://github.com/miking-lang/miking/issues/586. During the discussion Viktor proposed to consider the interpreter as just another FFI backend. This suggestion was generally agreed to be a good idea as we would not have to special case how we handle externals in interpreted code.

Meeting Notes 2023-02-16

Note-taker: Viktor Palmkvist

Participants: Daniel Lundén, David Broman, Asta Olofsson, Johan Adamsson, Linnea Stjerna, Oscar Eriksson, Lars Hummelgren, John Wikman

Pull requests (in merge order)

  • Oscar: https://github.com/miking-lang/miking/pull/682. We like, merge.
  • Asta: https://github.com/miking-lang/miking/pull/683.
    • Add the bash scripts for compiling and running, as well as a new script for downloading the .jar files (temporary solutions, until the compiler and/or our build system deals with this stuff).
    • Also minor documentation on how to run and test, but no need for automated tests yet.
    • Asta pings Lars, Lars does a sanity-check, then we like, merge.

Discussion Thoughts on more automated testing of series of PRs. Viktor will make a first prototype of the thing. Some discussion on performance and oddities of the OCaml backend (it won't inline a condition that's let-bound just before an if).

Meeting Notes 2023-02-14

Note-taker: Daniel Lundén

Participants: Daniel Lundén, David Broman, Asta Olofsson, Gizem Caylak, Johan Adamsson, Linnea Stjerna, Viktor Palmkvist, Oscar Eriksson.

Pull requests (in merge order)

Discussion

  • Asta presented her progress on the JVM backend.

Meeting Notes 2023-02-02

Note-taker: Lars Hummelgren

Participants: Lars Hummelgren, Daniel Lundén, Oscar Eriksson, Viktor Palmkvist, David Broman, Johan Adamsson, Gizem Çaylak, Linnea Stjerna, Asta Olofsson

Pull requests

Discussions

  • Build system and versioning discussions.
  • Java bytecode generation.

Meeting Notes 2023-01-31

Note-taker: John Wikman

Participants: Lars Hummelgren, Viktor Palmkvist, Daniel Lundén, John Wikman, Gizem Çaylak, David Broman, Oscar Eriksson, Linnea Stjerna

Pull requests

Discussions

Meeting Notes 2023-01-26

Note-taker: Lars Hummelgren

Participants: Lars Hummelgren, John Wikman, Viktor Palmkvist, Johan Adamsson, Oscar Eriksson

Discussions

  • Issues
    • #221 is resolved and can be closed
    • #498 and #574 refer to the same issue (as stated in a comment in #574)
      • Close #498 and refer to #574, as it identifies the problem
      • Should use eqString, but could check and have a warning if isPrefix but not eqString matches (did you mean...)
    • #566 was fixed by PR #598 and should be closed
    • We propose adding a label for good first issues
      • #208 and #664
      • We would like a better way to add labels
  • LR(k) parser progress
    • Constructing the parse table is done
    • Remaining work is to construct an AST for the generated parser
  • Remaining work for full bootstrapping

Meeting Notes 2023-01-24

Note-taker: John Wikman

Participants: Lars Hummelgren, John Wikman, Johan Adamsson, Linnea Stjerna, Viktor Palmkvist

Pull requests

Meeting Notes 2023-01-12

Note-taker: Daniel Lundén

Participants: Daniel Lundén, David Broman, Lars Hummelgren, Anders Ågren Thuné, Gizem Caylak, John Wikman, Linnea Stjerna, Viktor Palmkvist, Oscar Eriksson

Pull requests (in merge order)

Clone this wiki locally