Skip to content

Miking Meeting Notes 2021

Daniel Lundén edited this page Dec 16, 2021 · 67 revisions

Meeting Notes 2021-12-16

Note-taker: Daniel Lundén

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

Pull requests

Discussion

  • We brought up the suggestion of adding unique symbols on AST nodes from the last meeting. It seems like this could also have other use cases besides CFA.
  • Anders brought up having a kind system for the type checker. We do not believe this is necessary initially.

Meeting Notes 2021-12-14

Note-taker: Linnea Ingmar

Participants: Linnea Ingmar, David Broman, Daniel Lundén, Anders Ågren Thuné, Viktor Senderov

Pull Requests

Discussions

  • (briefly, we should discuss next time): unique symbols for each term in the AST. The motivation is to remove need of ANF for CFA analysis, since ANF has some performance problems.

Meeting Notes 2021-12-09

Note-taker: Linnea Ingmar

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

Pull Requests (from last meeting)

Discussions We discussed alternatives to OCaml source code generation. Maybe byte code or Lambda IR.

Meeting Notes 2021-12-07

Note-taker: Lars Hummelgren

Participants: Linnea Ingmar, Lars Hummelgren, Viktor Palmkvist, Gizem Caylak

Pull Requests

Meeting Notes 2021-12-02

Note-taker: Oscar Eriksson

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

Pull Requests

Discussion

We discussed build systems. Vipa mentioned tup, which has some nice features such as automatic dependency detection, as a possible replacement for make. It is however a bit unclear how well it interacts with dune. To be continued.

Meeting Notes 2021-11-25

Note-taker: Gizem Caylak

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

Pull Requests

Meeting Notes 2021-11-23

Note-taker: Linnea Ingmar

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

Pull Requests

Discussion

  • We closed some issues.
  • We redid the discussion from last time on type in lang.
  • Systematic micro benchmarks. Suggestion is to use micro benchmarks in Miking repo and compare MCore with OCaml and C programs.

Meeting Notes 2021-11-18

Note-taker: Viktor Palmkvist

Participants: Linnea Ingmar, Lars Hummelgren, Viktor Palmkvist, Gizem Caylak, Daniel Lundén, Oscar Eriksson

Pull requests

Discussion

  • We discussed adding the ability to declare type aliases inside language fragments, since we do it often throughout the compiler and will need it to compile. We think it can be done by restricting aliases to only refer to aliases defined earlier (though they can still refer to syns that come later) and that we have a nice way to translate this to MCore. Here's the example we discussed this around:
lang L1
  syn T1 =
  | C1 A1

  type T1
  con C1 : A1 -> T1

  type A1 = T2
  type A3 = A1

  syn T2
end

lang L2
  syn T2

  type A2 = T1

  syn T1
end

lang L3 = L1 + L2

---

type L1_T1
type T2

type L1_A1 = T2
type A2 = T1

con C1 : A1 -> T1

Meeting Notes 2021-11-16

Note-taker: Lars Hummelgren

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

Pull requests

Discussion

  • Linnea will remove -j flag from workflow file in #507 to eliminate CI error outputs.
  • Viktor will investigate use of TUP as alternative to Make (after paper deadline).

Meeting Notes 2021-11-11

Note-taker: Oscar Eriksson

Participants: Daniel Lundén, Lars Hummelgren, Oscar Eriksson, Gizem Caylak, Anders Ågren Thuné, David Broman, Linnea Ingmar

Pull requests

Meeting Notes 2021-11-09

Note-taker: Gizem Caylak

Participants: Daniel Lundén, Lars Hummelgren, Oscar Eriksson, Gizem Caylak, Anders Ågren Thuné, David Broman, Linnea Ingmar

Pull requests

Discussion

Meeting Notes 2021-11-04

Note-taker: Linnea Ingmar

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

Pull requests

Discussion

  • We discussed the long execution time of running make test-all. It should be enough to run
    mi compile --test
    mi run --test
    
    on all files. Also, the boot tests (the fast ones) in order to test that pruning of externals is correct. The rest of the tests should run nightly on a server (when we have that). Moreover, the tests in generate.mc can be removed. Oscar will take a look.

Meeting Notes 2021-11-02

Note-taker: Daniel Lundén

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

Pull requests

Discussion

  • We discussed how to improve argument parsing for mi. Linnea will take a look at this.

Meeting Notes 2021-10-28

Note-taker: Lars Hummelgren

Participants: Anders Ågren Thuné, Lars Hummelgren, Gizem Caylak, Daniel Lundén, Linnea Ingmar, Oscar Eriksson, Viktor Palmkvist

Pull requests

Discussions

  • Slack channels to rename/remove:
    • benchmarks -> miking-benchmarks
    • archive compiler-task-force
    • mcore -> miking-mcore or miking-general
    • archive hackinar
    • For other channels, we don't know

Meeting Notes 2021-10-26

Note-taker: Viktor Palmkvist

Participants: Anders Ågren Thuné, Lars Hummelgren, Gizem Caylak, Daniel Lundén, David Broman, Linnea Ingmar, Oscar Eriksson

Pull requests

Discussion

  • We moved to new public channels for PRs and meetings
  • Oscar will archive the channels he created way back when
  • For next time: other channels to archive?

Meeting Notes 2021-10-21

Note-taker: Oscar Eriksson

Participants: Lars Hummelgren, Gizem Caylak, Linnea Ingmar, Viktor Palmkvist, Anders Ågren Thuné, David Broman

Pull requests

Discussion

  • Freeze syntax, Options, use a special character such as ` since having a keyword, e.g. freeze could falsely give the expression that freeze f is an application. On the other hand we want to limit the use of special symbols in the core language.

    We vote against :

    1. Keyword: freeze, e.g. freeze x.
    2. Symbol: `, e.g. `x (or other symbol, e.g. $).
    3. Hashstring: #frozen"x".

    Result: Against 1: IIII Against 2: I Against 3:

    Which boils down to 3.

  • Integer sizes, We discussed how we should encode integer sizes. Broadly it boiled down to that we would like to have:

    an Int or MachineInt which we will guarantee behaves correctly if its below 53 bits, otherwise its undefined. Optionally you can specify the range of the int, e.g. Int<min, max> where the range is encoded in the type system and operations can change the range, e.g. shift. Since it is encoded in the type system we can for example detect overflows statically and warn the user and allow him/her to take appropriate action.

    As a first step we will introduce these types only at the syntax level (syntax might be different) and treat them as ordinary integers in the type-checker. Lars will experiment more on the ranged types.

Meeting Notes 2021-10-19

Note-taker: Gizem Caylak

Participants: Lars Hummelgren, Gizem Caylak, Linnea Ingmar, Viktor Palmkvist, Anders Ågren Thuné, David Broman, William Rågstad

Pull requests

Discussion

  • A point that will be solved by Unified Collection later: mapSize is linear.
  • test-all does not test all externals '.ext' in makefile. We should have a separate discussion on how to handle externals.

Meeting Notes 2021-10-05

Note-taker: Daniel Lundén

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

Pull requests

Discussion

  • Freeze syntax discussion postponed.
  • Linnea showed OCaml code example with a performance anomaly. We suggested creating an issue in OCaml's GitHub repo for it.

Meeting notes 2021-09-30

Note-taker: Linnea Ingmar

Participants: David Broman, Lars Hummelgren, Oscar Eriksson, Linnea Ingmar, Daniel Lundén, Anders Ågren Thuné

Pull requests

Discussion We discussed the type checker PR (mainly syntax). Our proposal is to add the keyword freeze as the only new syntax, since everything can be expressed with that. If we see that the programs become too verbose we can always add more syntax later. But we didn't take any decision about this, it's only a proposal.

Further, we think we should do "eliminator instantiation" to avoid explicitly having to instantiate expressions at function applications (later PR).

We discussed test server setup. We need to fix some issues with the Makefile:

  • It should return non-zero exit code in case a test fails.
  • We should output the executable to something unique, so that parallel tests don't overwrite or remove each other. We should add an -o flag to the argument parser.

Meeting notes 2021-09-28

Note-taker: Lars Hummelgren

Participants: David Broman, Lars Hummelgren, Oscar Eriksson, Viktor Palmkvist, Linnea Ingmar, Daniel Lundén, Anders Agren Thune, Gizem Caylak

Pull requests

Discussion

  • Externals
    • Rename ident to expr in external map
    • Should continue discussion on syntax
  • Slack
    • We will make the main channels public
  • Documentation
    • Too few comments in existing code, both for individual functions and modules

Meeting Notes 2021-09-23

Note-taker: Gizem Caylak

Participants: David Broman, Lars Hummelgren, Oscar Eriksson, Linnea Ingmar, Daniel Lundén, Anders Agren Thune, Gizem Caylak

Pull requests


Meeting Notes 2021-09-21

Note-taker: Oscar Eriksson

Participants: David Broman, Lars Hummelgren, Oscar Eriksson, Viktor Palmkvist, Linnea Ingmar, Daniel Lundén, Anders Agren Thune, Gizem Caylak

Pull requests

Discussion

Meeting Notes 2021-09-16

Note-taker: Viktor Palmkvist

Participants: David Broman, Lars Hummelgren, Oscar Eriksson, Viktor Palmkvist, Linnea Ingmar, Daniel Lundén, Anders Agren Thune, Gizem Caylak

Pull requests

Discussion

Issues to be closed:

Typesystem task force: https://github.com/orgs/miking-lang/projects/2

We probably remove the project board, since we're not using it.

Meeting Notes 2021-09-14

Note-taker: Gizem Caylak

Participants: David Broman, Lars Hummelgren, Oscar Eriksson, Viktor Palmkvist, Linnea Ingmar, Daniel Lundén, Anders Agren Thune, Gizem Caylak

Pull requests


Meeting Notes 2021-09-09

Note-taker: Linnea Ingmar

Pull requests

Discussions

  • Literals for negative integer and floats, to be able to pattern match on those. We think we should have that. An option is simply -1 without a space. If we have a space, then the expression a - 1 would be interpreted as "a minus 1" when it actually means "a applied to the argument minus one". Maybe we should require parentheses: (-1) in some cases? Then we could allow space: (- 1).
  • Some of us stayed and figured out how to type the map intrinsics.

Meeting Notes 2021-09-07

Note-taker: Daniel Lundén

Pull requests

Discussion


Meeting Notes 2021-09-02

Note-taker: Gizem Caylak

PRs

Discussion


Meeting Notes 2021-08-31

Note-taker: Lars Hummelgren

PRs

Discussion

  • Oscar will replace broken link to batteries externals file in README with more pedagogical example, and update copyright year to 2021.
  • Anders will go through README to replace broken links and clarify text.
  • David will create MikingDAE repo under Miking organization, Oscar will add DAE solver in PR.

Meeting Notes 2021-08-26

Note-taker: Viktor Palmkvist

PRs


Meeting Notes 2021-08-24

Note-taker: Oscar Eriksson

PRs

Discussion

  • @larshum will remove the bigarray part of rope interface in a easy to find PR (for future reference).
  • @vipa or @larshum adds additional rope implementation that slices better.
  • A thing to think on further down the line. Should we separate flattening of ropes from its operations.

Meeting Notes 2021-08-19

Note-taker: Daniel Lundén

Pull requests

Discussion

  • We discussed nested pattern guards. Viktor's idea is interesting, but requires further consideration due to the possibly quite severe changes required. We will let this sit for a while, and return to it at some later point (since it is not directly required by anyone).

Notes

  • David checks dependency issue with Python for multicore, and updates README directly if necessary.

Meeting Notes 2021-08-17

Note-taker: Linnea Ingmar

PRs

Discussion

  • Look through and document complexities of all sequence representations. Linnea, Lars and Viktor volunteered to have a session.
  • Possible syntactic sugar: instead of match a with (x, y) then ... else never write match a with (x, y) in ...
  • Problem with multicore switch, Batteries does not compile
    • Task: try to remove Batteries as a dependency (Linnea will start investigate)

Next: Viktor presents possible syntax for match guards


Meeting Notes 2021-08-05

Note-taker: Viktor Palmkvist

Pull requests

Discussion

  • We discussed #230
    • then does not work as a separator between guards in LR(1)
    • Viktor will look into how it would work to put something like guards inside patterns, whereby match would have the form match <Pat> then <Expr> else <Expr>, and the value to be matched is specified inside the pattern. Questions include syntax and scoping.

Meeting Notes 2021-07-01

Note-taker: Lars Hummelgren

Pull requests

Discussion

  • Should have a meeting in the future to discuss a common way to set up benchmarks.

Meeting Notes 2021-06-29

Note-taker: Oscar Eriksson

Pull requests

Miking Meetings during the summer

  • Last meeting for the summer on Thursday. Meetings resume w31.
  • Emergency contact via phone during vacation.

Tip from vipa

Stacked git https://stacked-git.github.io/ to handle multiple patches.


Meeting Notes 2021-06-24

Note-taker: Daniel Lundén

Pull requests


Meeting Notes 2021-06-22

Note-taker: Gizem Caylak

Pull requests


Meeting Notes 2021-06-17

Note-taker: Daniel Lundén

Pull requests


Meeting Notes 2021-06-15

Note-taker: Lars Hummelgren

Pull requests


Meeting Notes 2021-06-15 (separate PPL paper meeting)

Note-taker: Daniel Lundén

Pull requests


Meeting Notes 2021-06-03

Note-taker: Daniel Lundén

Pull requests


Meeting Notes 2021-06-01

Note-taker: Gizem Caylak

Pull requests


Meeting Notes 2021-05-28

Note-taker: Linnea Ingmar

Pull requests


Meeting Notes 2021-05-25

Note-taker: Oscar Eriksson

Pull Requests


Meeting Notes 2021-05-20

Note-taker: Lars Hummelgren

Pull Requests

Discussions

  • Linnea will ask multicore OCaml about stack overflow error in multicore+flambda switch.
  • We will use the multicore switch as the default OCaml compiler. Linnea will update README accordingly.
  • When to use ast-builder. Conclusions: avoid using it when info field should be preserved.
  • Lars will create an issue on the performance of the compiled interpreter.

Meeting Notes 2021-05-18

Note-taker: Linnea Ingmar

PRs

Discussions

  • Rest of the meeting notes should be moved to GitHub (Linnea will finish)
  • Daniel will reverse the order after they're migrated
  • make test is not defined, we will edit the README (Oscar)

Meeting Notes 2021-05-11

Note-taker: Linnea Ingmar

PRs


Meeting Notes 2021-05-06

Note-taker: Oscar Eriksson

  • PRs

Meeting Notes 2021-05-04

Note-taker: Gizem Caylak

Pull Requests


Meeting Notes 2021-04-29

Note-taker: Gizem Caylak

Pull Requests


Meeting Notes 2021-04-27

Note-taker: Lars Hummelgren

Pull Requests

https://github.com/miking-lang/miking-benchmarks/pull/9 We like, merge after PR 353

https://github.com/miking-lang/ocaml2mcore/pull/6 We like, merge after PR 353

https://github.com/miking-lang/miking/pull/352 We like, merge

https://github.com/miking-lang/miking/pull/353

  • Remove test command, then we like, merge
  • @Daniel Lundén will create issue discussing how others handle command-line arguments

https://github.com/miking-lang/miking/pull/354 We like, merge

https://github.com/miking-lang/miking/pull/356

  • Compiled version of compiler gets segmentation fault
  • We like, merge after solving this & passing all tests

Meeting Notes 2021-04-22

Note-taker: Linnea Ingmar

PRs

Discussion about how to improve compilation speed and code size. Lars will investigate.


Meeting Notes 2021-04-20

Note-taker: Daniel Lundén

Pull Requests


Meeting Notes 2021-04-19

Note-taker: Oscar Eriksson

  • PRs ** https://github.com/miking-lang/miking/pull/343 Remove symbolize and reduce in eval, then hurray! We like merge! ** https://github.com/miking-lang/miking/pull/342 Test if we can always omit obj wrapping of array elements, then we like merge!
  • FFI We decided on a syntax for defining external functions as external name : ty in These should not be curried and will replace intrinsics eventually. Oscar will implement this in the parser. We want a one to many mapping between these names and implementations (with different signatures), where the choice of implementation is made in a clever way during compilation. A mapping between the name defined in MCore and names, as well as signatures, in the implementation should be given as meta-data in some way and form.

Meeting Notes 2021-04-15

Note-taker: Lars Hummelgren

Pull Requests


Meeting Notes 2021-04-13

Note-taker: Daniel Lundén

Pull Requests

  • https://github.com/miking-lang/miking/pull/331. Oscar updates some option documentation. Then we like, merge.
  • https://github.com/miking-lang/miking/pull/333. Add flag for turning on/off the optimization. Then we like, merge.
  • https://github.com/miking-lang/miking/pull/335. Linnea needs to check some things. Then Lars will review, and we can then merge.
  • https://github.com/miking-lang/miking/pull/334. Wait with merging until dead code elimination PR is merged. Discussion
  • We decided to refactor the boot lexer to directly add constants in the AST. Also, we should add a check after parsing to ensure constants are always fully applied. This will be helpful when compiling and when doing static analysis. We will not refactor the delta function in boot and the interpreter for now, since this does not affect compilation. We should later discuss if we should also have a different syntax for intrinsics. David will take responsibility for implementing the above.

Meeting Notes 2021-04-08

Note-taker: Linnea Ingmar

PRs


Meeting Notes 2021-04-06

Note-taker: Gizem Caylak

Pull Requests Daniel: Naive parallel make and tests https://github.com/miking-lang/miking/pull/322

👇Merge order for some PRs:

First

Then Lars’s PRs https://github.com/miking-lang/miking/pull/323 https://github.com/miking-lang/miking/pull/326

TODO

  • @Daniel Lundén Add string map
  • Decision points: Primitive tensor type: @Oscar Eriksson’s proposal bracket syntax, Tensor[Type], is accepted [maybe do a big refactoring later for prefix version in general].

Meeting Notes 2021-04-01

Note-taker: Oscar Eriksson

PRs

Discussion Make test scripts run in parallel (dlunde)


Meeting Notes 2021-03-30

Note-taker: Lars Hummelgren

Pull requests Gizem


Meeting Notes 2021-03-29

Note-taker: Daniel Lundén

Pull Requests


Meeting Notes 2021-03-25

Note-taker: Linnea Ingmar

miking:


Meeting Notes 2021-03-23

Note-taker: Daniel Lundén

Pull Requests (miking)


Meeting Notes 2021-03-22

Note-taker: Gizem Caylak

Pull requests

Order: First Linnea’s PRs should be merged before Lars’s.

Discussion points

  • @Lars Hummelgren: There is a self-reference problem in all standard library files that include other standard library files (this includes almost all of them). I have not been able to figure out how to solve this, but maybe I’m just doing something wrong here. For example, when trying to compile stdlib/option.mc I get the following error message: FILE "stdlib/option.mc" 1:0-1:17 ERROR: File exists both locally and in standard library: stdlib/bool.mc.
  • @Lars Hummelgren: Type annotations of intrinsics do not work properly for programs that have been parsed using the boot parser, which may cause utest generation to fail (as it now requires types). This is because no environment is passed to the typeAnnot function to map intrinsic names to their AST nodes.
  • @Gizem Caylak TmUtests do not have a using term in the standard library. This is supported by the boot-parser on the OCaml side, so we need to update the TmUtest AST node to include a using term and update the boot-parser on the MCore side to make use of all given information. @Gizem Caylak Tests in stdlib/math.mc depend on a default comparison function for floats - there’s probably other places as well. I think tests on floats should be required to use an explicit comparison function. Perhaps we should provide a default one which takes an epsilon and two floats?
  • @Gizem Caylak The type signature of not in stdlib/bool.mc is inconsistent, as is reported by the type annotator. Its type is Bool -> Bool, but it is annotated as Bool -> Bool -> Bool.
  • @Lars Hummelgren : The compiler (src/main/compile.mi) currently places output files in the same directory as the source file, but I suppose it should be placed in the current working directory. Not assigned: Add support for more types in the utest translator.
  • @Oscar Eriksson: Translation of references to tensors & compile rank 0 tensors to OCaml references
  • @Linnea Ingmar Micro-benchmark test of OCaml compilation

Meeting Notes 2021-03-18

Note-taker: Lars Hummelgren

https://github.com/miking-lang/miking/pull/279

  • @Gizem Caylak will create issue on lexer bug found while testing
  • Add more corner-case tests, at least one with nested records
  • Then we like https://github.com/miking-lang/miking/pull/280
  • Handle file permission problems
  • Then we like https://github.com/miking-lang/miking/pull/281
  • Remove commented-out print for passed tests
  • Then we like Compilation tasks
  • Adding builtins to mexpr/builtins.mc: David Add, but comment out intrinsics that are not supported Urgent push
  • Hook up the utest translator to src/main/run.mc and src/main/compile.mc mi run --test, mi compile --test, no mi test
  • Support more types in the utest translator
  • Add more intrinsics to the compilation
  • Script to list and run tests on all files (one for run and one for compile) Added points:
  • Translation of references to tensors & compile rank 0 tensors to OCaml references
  • Micro-benchmark test of OCaml compilation

Meeting Notes 2021-03-16

Note-taker: Viktor Palmkvist


Meeting Notes 2021-03-11

Note-taker: Linnea Ingmar

PRs


Meeting Notes 2021-03-09

Note-taker: Oscar Eriksson


Meeting Notes 2021-03-04

Note-taker: Daniel Lundén

Pull Requests


Meeting Notes 2021-03-02

Note-taker: Lars Hummelgren

Pull Requests

Discussions @Oscar Eriksson will remove Sundials tests from make test-all and ping David


Meeting Notes 2021-02-25

Note-taker: Viktor Palmkvist


Meeting Notes 2021-02-23

Note-taker: Daniel Lundén

Miking release


Meeting Notes 2021-02-18

Note-taker: Oscar Eriksson

  • Refactor to use one constructor for each tensor type, i.e. int, float, tm, to remove need for Obj.t in ast.ml.
  • Use lambda to create tensors. Evaluate at first index (and keep) to be able to inspect the element type (needed to create the right kind of tensor). ** https://github.com/miking-lang/miking/pull/249 We like ** https://github.com/miking-lang/miking/pull/248 Change PR according to the discussion that resulted in the following conclusion: No _ in lambdas and lets. lam. 1. .. -> lam #var"". .... ; -> let #var"" = ....

Meeting Notes 2021-02-16

Note-taker: Linnea Ingmar

PRs

  • We like, but replace intrinsic makeSeq with a create that initialises a sequence from a lambda
  • Also, add some explanation comments for the Concat/Leaf data structure to the source file
  • After that, we like (- The naming of the sequence intrinsics and stdlib functions will stay the same, tensors will be called tensor....)
  • We like, but add iter to seq.mc before merge
  • We like, but (1) should run poor man’s type checker and fix any errors, (2) should fix typos (Lars’ comments), and (3) fix a test that fails.

Meeting Notes 2021-02-11

Note-taker: Gizem Caylak

Pull Requests

Discussions

  • Add comments on top of files ( what should be the convention? )
  • Where to put the tests?
  • Remove asc_ function.
  • Naming in boot and other ones should be the same ( e.g. Pat ).

Meeting Notes 2021-02-09

Note-taker: Lars Hummelgren

Pull requests https://github.com/miking-lang/miking/pull/242 (Viktor)

Discussions

  • Add intrinsic function for initializing sequences based on index (Array.init)
  • @Daniel Lundén will write test case for bimap problem, @Lars Hummelgren will fix
  • Continued discussions about universal collection types

Meeting Notes 2021-02-04

Note-taker: Linnea Ingmar

PRs


Meeting Notes 2021-02-02

Note-taker: Viktor Palmkvist


Meeting Notes 2021-01-28

Note-taker: Oscar Eriksson

  • Drafts ** https://github.com/miking-lang/miking/pull/235 Brings down the time from 20s to 4s. Looking at the performance plot for expr2str it seems that the runtime complexity is quadratic, we expected it to be O(nlogn). Linnea will run another test to check this.

The next steps: Guarantee uniqueness in the current scope only (free variables still need to be unique globally). ** https://github.com/miking-lang/miking/pull/236

Looks good but probably attach types to each node and not just let expressions.


Meeting Notes 2021-01-26

Note-taker: Lars Hummelgren

Pull Requests

https://github.com/miking-lang/miking/pull/234

  • Update README
  • Fix cyclic references in printing
  • Then we like, merge

Discussions

  • Status of release tasks
  1. Not relevant anymore, we will use Boot parsing library instead
  2. A list of requirements have been established
  3. Will start working on this next week
  4. For the release, make sure that the Boot version is in good shape
  5. Plan on compilation of records & data types to OCaml
  6. Wait until next release

Type annotations

  • We discussed whether to add type tags to every AST node or use let ascriptions
  • Lars will add type tags to AST nodes

Discussion on container types

  • Sequences
    • Immutable
    • Uses ropes internally
    • Bigarrays when element type is ints and floats
    • Arrays otherwise
  • Tensors
    • Mutable
    • Supports variable number of dimensions (1-16)
    • Only supports ints and floats for now

Meeting Notes 2021-01-19

Note-taker: Linnea Ingmar

  • We looked at performance issues (see this thread). We came up with a plan with a few things to try: 1) avoid some iterations through the environment by essentially merging pprintEnvLookup and pprintEnvFree, and 2) replace the AssocMaps in the environment by HashMaps.
  • Lars and Oscar briefly talked about the Rope data structure (to be used as the internal sequence data structure).
  • The meeting trailed off into a discussion about universal collection types. Viktor will maybe write down some ideas somewhere.

Meeting Notes 2021-01-14

Note-taker: Daniel Lundén

Pull Requests

Discussions

  • We will use prefix syntax for patterns.
  • Use the keywords andp, orp, notp. These will be binary. Syntactic sugar for variadic versions could be an option if needed.
  • PatSeqEdge = concatp , PatSeqTot = [].

TODO

  • Move meeting notes to GitHub

Postponed discussions

  • Something about sequences (Lars, Oscar, David).
  • Performance problems in pprint.
Clone this wiki locally