-
Notifications
You must be signed in to change notification settings - Fork 34
Miking Meeting Notes 2021
Note-taker: Daniel Lundén
Participants: Daniel Lundén, Viktor Palmkvist, Anders Ågren Thuné, Lars Hummelgren, Gizem Caylak, Linnea Ingmar
Pull requests
- Lars https://github.com/miking-lang/miking/pull/522: We like, merge.
- Linnea https://github.com/miking-lang/miking/pull/523: We like, merge.
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.
Note-taker: Linnea Ingmar
Participants: Linnea Ingmar, David Broman, Daniel Lundén, Anders Ågren Thuné, Viktor Senderov
Pull Requests
- Viktor: https://github.com/miking-lang/miking-dppl/pull/77.
- Some renamings of function names (including other files in the repo).
-
student_t_classic
->student_t
-
student_t
->linear_student_t
-
- Remove code that is commented out.
- After that, we like.
- Some renamings of function names (including other files in the repo).
- Viktor: https://github.com/miking-lang/miking-dppl/pull/79. We like, merge.
- Daniel: https://github.com/miking-lang/miking/pull/521. We like, merge.
- Daniel: https://github.com/miking-lang/miking-dppl/pull/78. We like, merge.
- Daniel: https://github.com/miking-lang/miking-benchmarks/pull/35. We like, merge.
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.
Note-taker: Linnea Ingmar
Participants: Linnea Ingmar, Lars Hummelgren, Viktor Palmkvist, Gizem Caylak, David Broman, Oscar Eriksson
Pull Requests (from last meeting)
- Gizem: https://github.com/miking-lang/miking/pull/518
- Change
eqset
toset
library for comparing sequences. - If possible, write a test that generates a graph with size
n
to test complexity.
- Change
- Linnea: https://github.com/miking-lang/miking/pull/519
- We like, merge.
- Lars: https://github.com/miking-lang/miking/pull/520
- We decided to wrap the program with try-with in case
--runtime-checks
is enabled.
- We decided to wrap the program with try-with in case
Discussions We discussed alternatives to OCaml source code generation. Maybe byte code or Lambda IR.
Note-taker: Lars Hummelgren
Participants: Linnea Ingmar, Lars Hummelgren, Viktor Palmkvist, Gizem Caylak
Pull Requests
- Gizem: https://github.com/miking-lang/miking/pull/518
- Add note on time complextity
- Then we like, merge
- Linnea: https://github.com/miking-lang/miking/pull/519
- We like, merge
- Lars: https://github.com/miking-lang/miking/pull/520
- Try wrapping the entire generated OCaml program in a try-with expression instead.
- State that
--runtime-checks
might be useful, and print information about the exception or rethrow it.
Note-taker: Oscar Eriksson
Participants: Linnea Ingmar, Lars Hummelgren, Viktor Palmkvist, Gizem Caylak, Oscar Eriksson, David Broman
Pull Requests
- Lars: https://github.com/miking-lang/miking/pull/516, We like, merge. @lars will open another PR where relevant intrinsics are wrapped in try-catch expressions.
- Lars: https://github.com/miking-lang/miking/pull/517, We like, merge.
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.
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
- Daniel: https://github.com/miking-lang/miking/pull/513 . We liked, merge
- Add an issue pprint #var"lam" based on hash not keyword
- Daniel: https://github.com/miking-lang/miking-dppl/pull/76 . Change 'weight' to 'likelihood', then we liked merge
- Linnea: https://github.com/miking-lang/miking/pull/514 . We liked, merge
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
- Anders: https://github.com/miking-lang/miking/pull/510. By default, the type-checker should give an error message on the newly added record polymorphism. Add a flag to allow the polymorphism (i.e., a flag to disable the error messages). After that, we like.
- Lars: https://github.com/miking-lang/miking/pull/511. We like, merge.
- David: https://github.com/miking-lang/miking/pull/512. We like, merge.
Discussion
- We closed some issues.
- We redid the discussion from last time on
type
inlang
. - Systematic micro benchmarks. Suggestion is to use micro benchmarks in Miking repo and compare MCore with OCaml and C programs.
Note-taker: Viktor Palmkvist
Participants: Linnea Ingmar, Lars Hummelgren, Viktor Palmkvist, Gizem Caylak, Daniel Lundén, Oscar Eriksson
Pull requests
- Daniel
-
https://github.com/miking-lang/miking/pull/508
- We like.
-
https://github.com/miking-lang/miking-dppl/pull/75
- Relatively low on tests now, but Daniel would like to merge it and add them later. Otherwise we like.
-
https://github.com/miking-lang/miking/pull/508
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
syn
s 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
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
- Daniel
-
https://github.com/miking-lang/miking/pull/506
- We like
-
https://github.com/miking-lang/miking-dppl/pull/71
- Daniel has to make some changes, will ping David afterwards
-
https://github.com/miking-lang/miking/pull/506
- David
- Linnea
-
https://github.com/miking-lang/miking/pull/507
- We like, but need to fix some dependency problems
-
https://github.com/miking-lang/miking/pull/507
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).
Note-taker: Oscar Eriksson
Participants: Daniel Lundén, Lars Hummelgren, Oscar Eriksson, Gizem Caylak, Anders Ågren Thuné, David Broman, Linnea Ingmar
Pull requests
- https://github.com/miking-lang/miking/pull/500 We like, merge
- https://github.com/miking-lang/miking-benchmarks/pull/34 We like, merge!
- https://github.com/miking-lang/miking/pull/501 We like but lars will ensure that failing tests fails the action and that the action is run when we want to. Ping @david when done.
- https://github.com/miking-lang/miking/pull/502 We like, merge!
- https://github.com/miking-lang/miking/pull/503 Change so that errors point to term where the typecheck failed and fix the incorrect seq test, then very good we like, merge!
Note-taker: Gizem Caylak
Participants: Daniel Lundén, Lars Hummelgren, Oscar Eriksson, Gizem Caylak, Anders Ågren Thuné, David Broman, Linnea Ingmar
Pull requests
- https://github.com/miking-lang/miking/pull/499. We liked merge
- https://github.com/miking-lang/miking-dppl/pull/67 We liked merge
- https://github.com/miking-lang/miking-dppl/pull/68. David will check this.
- https://github.com/miking-lang/miking-dppl/pull/70. We liked merge
Discussion
- Name suggestions for the new computers:
- Apollo 1 and 2
- Issues to be closed: https://github.com/miking-lang/miking/wiki/Miking-Meeting-Notes-2021#meeting-notes-2021-09-16
Note-taker: Linnea Ingmar
Participants: Daniel Lundén, Lars Hummelgren, Oscar Eriksson, Viktor Palmkvist, Anders Ågren Thuné, David Broman, Linnea Ingmar
Pull requests
- https://github.com/miking-lang/miking/pull/496. Everyone present liked the new syntactic sugar introduced in the PR.
Discussion
- We discussed the long execution time of running
make test-all
. It should be enough to runon all files. Also, themi compile --test mi run --test
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 ingenerate.mc
can be removed. Oscar will take a look.
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
- https://github.com/miking-lang/miking/pull/493. Move some of the PR documentation to the Miking README. Then we like, merge.
- https://github.com/miking-lang/miking/pull/494. We like, merge.
- https://github.com/miking-lang/miking/pull/495. We like, merge.
Discussion
- We discussed how to improve argument parsing for
mi
. Linnea will take a look at this.
Note-taker: Lars Hummelgren
Participants: Anders Ågren Thuné, Lars Hummelgren, Gizem Caylak, Daniel Lundén, Linnea Ingmar, Oscar Eriksson, Viktor Palmkvist
Pull requests
- Anders
- Daniel
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
Note-taker: Viktor Palmkvist
Participants: Anders Ågren Thuné, Lars Hummelgren, Gizem Caylak, Daniel Lundén, David Broman, Linnea Ingmar, Oscar Eriksson
Pull requests
- Daniel: https://github.com/miking-lang/miking-benchmarks/pull/31
- We like
- Daniel: https://github.com/miking-lang/miking/pull/487
- We like
- Daniel: https://github.com/miking-lang/miking-dppl/pull/64
- We like
- Lars: https://github.com/miking-lang/miking/pull/488
- We like
- Linnea: https://github.com/miking-lang/miking-benchmarks/pull/32
- Change
--timeout-s
to--timeout-sec
- Maybe change
data.mc
totypes.mc
- Add corresponding
make uninstall
rule - Then we like
- Change
- David: https://github.com/miking-lang/miking/pull/489
- Merge after 487 (and a rebase)
- Then we like
- David: https://github.com/miking-lang/miking-dppl/pull/65
- Things have changed in the compiler so updates are needed. We're guessing that it's related to symbolization, that it doesn't run in
compileRunMCore
but it did before. We don't wantcompileRunMCore
to re-symbolize, so code that uses it should make sure to get symbols right ahead of time. - Merge this one last
- After that we like
- Things have changed in the compiler so updates are needed. We're guessing that it's related to symbolization, that it doesn't run in
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?
Note-taker: Oscar Eriksson
Participants: Lars Hummelgren, Gizem Caylak, Linnea Ingmar, Viktor Palmkvist, Anders Ågren Thuné, David Broman
Pull requests
- Oscar: The draft https://github.com/miking-lang/miking/pull/486. Conclusion, proceed with the proposed idea.
Discussion
-
Freeze syntax, Options, use a special character such as
`
since having a keyword, e.g.freeze
could falsely give the expression thatfreeze f
is an application. On the other hand we want to limit the use of special symbols in the core language.We vote against :
- Keyword:
freeze
, e.g.freeze x
. - Symbol:
`
, e.g.`x
(or other symbol, e.g.$
). - Hashstring:
#frozen"x"
.
Result: Against 1: IIII Against 2: I Against 3:
Which boils down to 3.
- Keyword:
-
Integer sizes, We discussed how we should encode integer sizes. Broadly it boiled down to that we would like to have:
an
Int
orMachineInt
which we will guarantee behaves correctly if its below53
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.
Note-taker: Gizem Caylak
Participants: Lars Hummelgren, Gizem Caylak, Linnea Ingmar, Viktor Palmkvist, Anders Ågren Thuné, David Broman, William Rågstad
Pull requests
- Oscar: https://github.com/miking-lang/miking/pull/480. After renaming 'withExn' to 'Exn', we like & merge.
- David: https://github.com/miking-lang/miking/pull/481. After changing on PR reviews (ident -> expr, asyncSleep -> asyncSleepSec , tic -> tick), we like & merge.
- Linnea: [DRAFT] https://github.com/miking-lang/miking/pull/482
- Create an issue on dependency on time-outs
- Remove the test case with Some for timeout & fix the naming of mentioned functions.
- Add installation documentation in benchmarks on timeout options.
- Linnea: https://github.com/miking-lang/miking/pull/483. We liked, merge.
- Linnea: [DRAFT] https://github.com/miking-lang/miking-benchmarks/pull/30. After fixing #482 and getting feedback from Daniel to test, Linnea will ping.
- Anders: https://github.com/miking-lang/miking/pull/485. We liked, merge.
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.
Note-taker: Daniel Lundén
Participants: Daniel Lundén, Lars Hummelgren, Gizem Caylak, Linnea Ingmar, Viktor Palmkvist, Anders Ågren Thuné, David Broman
Pull requests
- https://github.com/miking-lang/miking/pull/479. We like, merge.
- https://github.com/miking-lang/miking/pull/477. We like, merge.
- https://github.com/miking-lang/miking/pull/478. We like, merge.
- https://github.com/miking-lang/miking/pull/475. We like, merge.
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.
Note-taker: Linnea Ingmar
Participants: David Broman, Lars Hummelgren, Oscar Eriksson, Linnea Ingmar, Daniel Lundén, Anders Ågren Thuné
Pull requests
- https://github.com/miking-lang/miking-dppl/pull/60. We like, merge.
- https://github.com/miking-lang/miking/pull/476. We like, merge.
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.
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
- Daniel
- https://github.com/miking-lang/miking-dppl/pull/59
-
https://github.com/miking-lang/miking-benchmarks/pull/29
- We like, but Daniel will try both PRs first and then ping David.
- Oscar
-
https://github.com/miking-lang/miking/pull/472
- The logging has non-zero overhead, so it should not be used in the compiler for now.
- We like, after Oscar adds note in file to not use this in the main repo.
- https://github.com/miking-lang/miking/pull/473
-
https://github.com/miking-lang/miking-dae/pull/3
- We like
-
https://github.com/miking-lang/miking/pull/472
- Lars
-
https://github.com/miking-lang/miking/pull/474
- Update to return a triple containing return code, stdout and stderr, then we like
-
https://github.com/miking-lang/miking/pull/474
- Anders
-
https://github.com/miking-lang/miking/pull/475
- We like. Before merge, Viktor does thorough review, then Anders adds test cases and pings David.
-
https://github.com/miking-lang/miking/pull/475
Discussion
- Externals
- Rename
ident
toexpr
in external map - Should continue discussion on syntax
- Rename
- Slack
- We will make the main channels public
- Documentation
- Too few comments in existing code, both for individual functions and modules
Note-taker: Gizem Caylak
Participants: David Broman, Lars Hummelgren, Oscar Eriksson, Linnea Ingmar, Daniel Lundén, Anders Agren Thune, Gizem Caylak
Pull requests
- Anders: https://github.com/miking-lang/miking/pull/459
- We liked most, but discuss further & postpone merging to next meeting.
- Lars: https://github.com/miking-lang/miking/pull/470
- We liked, merge.
- Linnea: https://github.com/miking-lang/miking/pull/469
- We liked, merge.
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
- Viktor: https://github.com/miking-lang/miking/pull/465
- We like, merge before 464!
- Lars: https://github.com/miking-lang/miking/pull/464
- We like, merge after 465!
- Gizem: https://github.com/miking-lang/miking-dppl/pull/53
- We like, merge!
- Daniel: https://github.com/miking-lang/miking/pull/467
- We like, merge!
Discussion
- Create an issue on the move from explicit
smap
andsfold
implementations tosmapAccumL
(found here: https://github.com/miking-lang/miking/issues/466). - Daniel creates a PR fixing issues with
make lint
. - Create an issue on the documentation of how boot is installed (found here: https://github.com/miking-lang/miking/issues/468)
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
- Oscar: https://github.com/miking-lang/miking/pull/453
- This may have affected non-developer related things, Oscar checks again, then pings David
- We like
- Linnea: https://github.com/miking-lang/miking/pull/462
- The test should be moved to test-all, then we like
Discussion
Issues to be closed:
- https://github.com/miking-lang/miking/issues/35
- https://github.com/miking-lang/miking/issues/174
- https://github.com/miking-lang/miking/issues/187
- https://github.com/miking-lang/miking/issues/214
- https://github.com/miking-lang/miking/issues/324
- https://github.com/miking-lang/miking/issues/390
Typesystem task force: https://github.com/orgs/miking-lang/projects/2
We probably remove the project board, since we're not using it.
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
- Lars: https://github.com/miking-lang/miking/pull/437
- Add top-level limitation to documentation
- Add it to the readme.
- Then, we liked merge.
- Lars: https://github.com/miking-lang/miking/pull/447
- Three steps:
make
- Two steps:
make light
- Then, we liked merge.
- Three steps:
- Lars: https://github.com/miking-lang/miking/pull/461
- Fix small things, e.g. remove commented code, then we liked merge.
- Anders: https://github.com/miking-lang/miking/pull/448
- We liked, merge
- Anders: https://github.com/miking-lang/miking/pull/458
- We liked, merge
- Linnea: https://github.com/miking-lang/miking/pull/451
- Do not merge (try closing it)
- Linnea: https://github.com/miking-lang/miking/pull/456
- We liked, merge
- Linnea: https://github.com/miking-lang/miking/pull/457
- We liked, merge
- Oscar: https://github.com/miking-lang/miking/pull/452
- We liked, merge
- Oscar: https://github.com/miking-lang/miking/pull/453
- We liked, merge
- David: https://github.com/miking-lang/miking/pull/460
- Fix on the Oscar's comment, then we liked merge
Note-taker: Linnea Ingmar
Pull requests
- https://github.com/miking-lang/miking/pull/447. We like the idea, but we propose decrease code duplication before merge. Also, we think David will have opinions so we should discuss at next meeting.
-
https://github.com/miking-lang/miking/pull/448. We like, after changing the name of the compiled target for the
make build-mi
rule. - https://github.com/miking-lang/miking-benchmarks/pull/28. We like, merge.
- https://github.com/miking-lang/miking/pull/449. We like, merge.
- https://github.com/miking-lang/miking/pull/450. We like, merge (includes #449).
- https://github.com/miking-lang/miking-dae/pull/2. We like, merge.
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 expressiona - 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.
Note-taker: Daniel Lundén
Pull requests
- https://github.com/miking-lang/miking/pull/441. We like for now, merge. We might need a better way of handling this in the future, but it's not obvious what we should do at this point in time.
-
https://github.com/miking-lang/miking/pull/442. We like. Merge after the change to
find
(to usingfoldl
) has been reverted. -
https://github.com/miking-lang/miking/pull/443. We like. Add a bit more information regarding the various tests you can run (do not only include
test-all
, which runs an overwhelming number of tests) before merging. The intention is thatmake test
should eventually run an appropriate number of tests for checking that everything has been installed correctly. Currently,test
is an alias fortest-boot-base
. - https://github.com/miking-lang/miking/pull/444. We like, merge. Uncontroversial.
- https://github.com/miking-lang/miking/pull/445. We like, merge. Uncontroversial.
- https://github.com/miking-lang/miking/pull/446. We like, merge. Uncontroversial.
Discussion
- https://github.com/ocaml-multicore/ocaml-multicore/issues/639 Linnea will try to remove some obj-wrapping in the intrinsics provided to the multicore OCaml people, to assist with debugging.
Note-taker: Gizem Caylak
- Lars: https://github.com/miking-lang/miking/pull/436
- We liked, merge.
- Lars: https://github.com/miking-lang/miking/pull/437
- After these fixes we liked: Remove the possibility of doing tail call, only instrument top-level function, currying [partial application], detailed documentation.
- Linnea: https://github.com/miking-lang/miking/pull/438
- We liked, merge.
- Oscar: https://github.com/miking-lang/miking/pull/439
- Update the license date at the bottom of the
README.md
file, then we liked, merge.
- Update the license date at the bottom of the
- Oscar: https://github.com/miking-lang/miking-dae/pull/1
- We liked, merge.
- Issues that should be closed:
- Viktor will create an issue on https://github.com/miking-lang/miking/issues/390 related to side effects not maps.
Note-taker: Lars Hummelgren
- Daniel: https://github.com/miking-lang/miking/pull/435
- We like
- Daniel: https://github.com/miking-lang/miking-dppl/pull/51
- We like
- Lars: https://github.com/miking-lang/miking/pull/432
- Backtrack to simpler slice version, then ping David
- 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.
Note-taker: Viktor Palmkvist
- Daniel: https://github.com/miking-lang/miking/pull/433
- We like
- Joey: https://github.com/miking-lang/miking-dppl/pull/49
- We like
- Daniel: https://github.com/miking-lang/miking-dppl/pull/50
- We like
- Lars: https://github.com/miking-lang/miking/pull/431
- We like
- Lars: https://github.com/miking-lang/miking/pull/432
- We would like some more performance experiments, to figure out why it's a few seconds slower in the first step of bootstrapping
Note-taker: Oscar Eriksson
- https://github.com/miking-lang/miking-dppl/pull/47. We like, merge after addressing dlunde's comments.
- https://github.com/miking-lang/miking-dppl/pull/48. We like, merge.
- https://github.com/miking-lang/miking/pull/427. We like, merge.
- https://github.com/miking-lang/miking/pull/429. We like, merge.
- https://github.com/miking-lang/miking/pull/430. We like, merge.
- https://github.com/miking-lang/miking/pull/428. We like, merge.
- @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.
Note-taker: Daniel Lundén
Pull requests
- https://github.com/miking-lang/miking/pull/425. We like, merge.
- https://github.com/miking-lang/miking/pull/426. We like, merge.
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.
Note-taker: Linnea Ingmar
PRs
-
https://github.com/miking-lang/miking/pull/421
- We like
-
https://github.com/miking-lang/miking/pull/423
- We like
- We will not add to
make test-all
but should be tested automatically. - Indicates that there might be a problem with
MSeq
indirection. - We should double check complexities in Rope implementation. E.g.,
tail
is linear.
-
https://github.com/miking-lang/miking/pull/424
- We like, ping Daniel when 421 has been merged.
-
https://github.com/miking-lang/miking/pull/422
- We like
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
writematch 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
Note-taker: Viktor Palmkvist
Pull requests
- Lars: https://github.com/miking-lang/miking/pull/416
-
We mostly like, but we'd like to switch the constructor-index function to an intrinsic
-
constructorTag : a -> Int
. We provide (only) the following guarantees:- Two terms which are applications of the same constructor will produce the same tag.
- Two terms in the same type which are applications of different constructors will produce different tags.
Applying the intrinsic to another kind of value will produce an unspecified int (perhaps
0
, perhaps not). Implementation likely goes viaObj.tag
in OCaml, and via the constructor's symbol inboot
-
- Linnea: https://github.com/miking-lang/miking/pull/415
- We like
- Oscar: https://github.com/miking-lang/miking/pull/417
- Included in #418
- Oscar: https://github.com/miking-lang/miking/pull/418
- We like, but explicitly test the mutability around tensor transposition
- Oscar: https://github.com/miking-lang/miking/pull/419
- We like
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 formmatch <Pat> then <Expr> else <Expr>
, and the value to be matched is specified inside the pattern. Questions include syntax and scoping.
-
Note-taker: Lars Hummelgren
Pull requests
- https://github.com/miking-lang/miking/pull/414. We like
-
https://github.com/miking-lang/miking-benchmarks/pull/25
- Rewrite absolute paths to relative paths
- Rebase and send message to David on Slack
- Make a separate PR with installation instructions
Discussion
- Should have a meeting in the future to discuss a common way to set up benchmarks.
Note-taker: Oscar Eriksson
Pull requests
- https://github.com/miking-lang/miking/pull/412. Document complexity and which data structure it is optimized for, then we like, merge.
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.
Note-taker: Daniel Lundén
Pull requests
- https://github.com/miking-lang/miking-dppl/pull/45. We like, merge.
- https://github.com/miking-lang/miking/pull/411. Remove fprint functions and put flush in printLn. Then we like, merge.
Note-taker: Gizem Caylak
Pull requests
- Gizem: https://github.com/miking-lang/miking-dppl/pull/43
- After removing
crbd
files under model, we liked and ping David.
- After removing
- Viktor: https://github.com/miking-lang/miking-dppl/pull/27
- We liked, merge.
- @Daniel and @Viktor Create an issue on miking-dppl
- Viktor: https://github.com/miking-lang/miking-benchmarks/pull/20
- Working progress.
- @Daniel: Create an issue for JSON support (or another format that can handle big data)
- @Daniel: Create an issue on handling saving experiment in case of crash
- @Daniel: Create an issue on giving parameters, options, as lists in toml [app]
Note-taker: Daniel Lundén
Pull requests
- https://github.com/miking-lang/miking/pull/408. We like, but tests must pass before we merge. Lars will test in addition to David.
- https://github.com/miking-lang/miking-dppl/pull/42. We like. Fix print, then ping David for merge.
- Merge https://github.com/miking-lang/miking/pull/400 and https://github.com/miking-lang/miking/pull/404 (from previous meeting).
- https://github.com/miking-lang/miking/pull/409. We like, merge after 400 and 404.
Note-taker: Lars Hummelgren
Pull requests
-
https://github.com/miking-lang/miking/pull/402. We like, but Linnea will create issue on
foldl
/foldr
workarounds. - https://github.com/miking-lang/miking/pull/399. We like, merge.
- https://github.com/miking-lang/miking/pull/393. We like, merge.
- https://github.com/miking-lang/miking/pull/403. We like, merge.
- https://github.com/miking-lang/miking/pull/400. We like, merge.
- https://github.com/miking-lang/miking/pull/404. We like. Add test cases to show how it works, then ping David.
Note-taker: Daniel Lundén
Pull requests
- https://github.com/miking-lang/miking-dppl/pull/40. We like, merge.
-
https://github.com/miking-lang/miking-dppl/pull/27. Viktor (Senderov) updates description, and moves phylogenetic models to
miking-benchmarks
(leave an example CRBD model and things we're not benchmarking), then ping David.
Note-taker: Daniel Lundén
Pull requests
-
https://github.com/miking-lang/miking/pull/393: We may want to keep the direct implementations of
smap
andsfold
if they result in better performance. David will discuss this with Viktor. After this, we like, merge. - https://github.com/miking-lang/miking/pull/395: We like, merge.
- https://github.com/miking-lang/miking/pull/396: We like, merge.
- https://github.com/miking-lang/miking-dppl/pull/39: We like, merge.
- https://github.com/miking-lang/miking-benchmarks/pull/18: We like, merge.
- https://github.com/miking-lang/miking/pull/397: We like, merge this first (fixes tests currently failing in develop)
- https://github.com/miking-lang/miking/pull/398: We like, merge.
Note-taker: Gizem Caylak
Pull requests
- Linnea: https://github.com/miking-lang/miking/pull/388
- We liked, but @Linnea will make changes in
thread.ext-ocaml.mc
and @Oscar will test it, then ping David
- We liked, but @Linnea will make changes in
- Linnea: https://github.com/miking-lang/miking/pull/389
- We liked, but Linnea will add
fold
andmapi
and add evaluate, then merge.
- We liked, but Linnea will add
- Daniel: https://github.com/miking-lang/miking/pull/394
- Rename
maptoSeq
andmapFromSeq
, then we liked and merge.
- Rename
- Daniel: https://github.com/miking-lang/miking-dppl/pull/38
- We liked, merge.
- Oscar: https://github.com/miking-lang/miking/pull/392
- Oscar will remove the extra things (which Linnea will add in her PR) then we liked and merge.
Note-taker: Linnea Ingmar
Pull requests
- https://github.com/miking-lang/miking/pull/386. Maybe over-engineered solution but we like, merge.
- https://github.com/miking-lang/miking/pull/387. We like, merge.
- https://github.com/miking-lang/miking-dppl/pull/37. We like, merge.
- https://github.com/miking-lang/miking-benchmarks/pull/16. We like, merge.
- https://github.com/miking-lang/miking-benchmarks/pull/17. We like, merge.
- https://github.com/miking-lang/miking/pull/388. Draft. Should use external functions for multicore instead since sundials does not work with multicore switch
- https://github.com/miking-lang/miking/pull/389. Draft. Linnea will present benchmarking numbers next time.
Note-taker: Oscar Eriksson
Pull Requests
- https://github.com/miking-lang/miking/pull/380, we like, merge
- https://github.com/miking-lang/miking/pull/372, @Oscar test on UBUNTU 20.04, @Lars test ocamlformat installation, then we like merge.
- https://github.com/miking-lang/miking/pull/381, we like, merge
- https://github.com/miking-lang/miking/pull/382, we like, merge
- https://github.com/miking-lang/miking-dppl/pull/35, change to PR, then we like, merge
Note-taker: Lars Hummelgren
Pull Requests
- https://github.com/miking-lang/miking-dppl/pull/33 We like
- https://github.com/miking-lang/miking-benchmarks/pull/14 We like
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.
Note-taker: Linnea Ingmar
PRs
- https://github.com/miking-lang/miking/pull/372. More people should try it out and comment in the PR, then we like.
- https://github.com/miking-lang/miking/pull/375. We like.
- https://github.com/miking-lang/miking-benchmarks/pull/13. We like.
-
https://github.com/miking-lang/miking/pull/376. Lars will run the
micro-benchmarks using switches with/without
flambda
. We like.
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)
Note-taker: Linnea Ingmar
PRs
- https://github.com/miking-lang/miking/pull/369, we like (merge before 368).
- https://github.com/miking-lang/miking/pull/368, Oscar writes small section in README, then we like.
- https://github.com/miking-lang/ocaml-multicore/pull/6, we like.
- https://github.com/miking-lang/miking-benchmarks/pull/12, Daniel updates the README, then we like.
- https://github.com/miking-lang/miking/pull/370, we like.
- https://github.com/miking-lang/miking/pull/371, we like.
- https://github.com/miking-lang/miking-dppl/pull/30, we like.
Note-taker: Oscar Eriksson
- PRs
- https://github.com/miking-lang/miking/pull/366 Remove unnecessary type annotations (ping david), then we like, merge!
- https://github.com/miking-lang/miking/pull/365 We like, merge!
- https://github.com/miking-lang/miking/pull/364 We like, merge!
- https://github.com/miking-lang/miking-dppl/pull/29 We like, merge!
- https://github.com/miking-lang/miking-dppl/pull/28 We like, merge!
- https://github.com/miking-lang/miking-benchmarks/pull/11 Remove empty file (ping david), then we like, merge!
Note-taker: Gizem Caylak
Pull Requests
- Daniel: https://github.com/miking-lang/miking/pull/361
- Remove the sundials tests from Makefile + Lars will test it, then we liked, merge
- Viktor: https://github.com/miking-lang/miking/pull/362
- We liked, merge
- Gizem: https://github.com/miking-lang/miking-dppl/pull/24
- We liked, merge
- Daniel: https://github.com/miking-lang/miking-dppl/pull/25
- We liked, merge
Note-taker: Gizem Caylak
Pull Requests
- Oscar: https://github.com/miking-lang/miking/pull/359
- We liked, merge
- Gizem: https://github.com/miking-lang/miking-dppl/pull/22
- After Daniel’s PR #23 is merged and Gizem, pings then merge.
- Daniel: https://github.com/miking-lang/miking/pull/360
- We liked, merge
- Daniel: https://github.com/miking-lang/miking-dppl/pull/23
- We liked, merge after Daniel pings.
- Linnea: https://github.com/miking-lang/miking-benchmarks/pull/10
- We liked, merge
- Linnea: https://github.com/miking-lang/ocaml2mcore/pull/7
- We liked, merge
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
Note-taker: Linnea Ingmar
PRs
- https://github.com/miking-lang/miking/pull/346. We like, merge.
- https://github.com/miking-lang/miking/pull/348. We like, merge.
- https://github.com/miking-lang/miking/pull/350. We like, merge.
- https://github.com/miking-lang/miking/pull/349. We like, merge.
- https://github.com/miking-lang/miking/pull/347. We like, merge.
- https://github.com/miking-lang/miking/pull/351. We like after some minor changes. Merge after Oscar’s PR.
Discussion about how to improve compilation speed and code size. Lars will investigate.
Note-taker: Daniel Lundén
Pull Requests
- https://github.com/miking-lang/miking/pull/344. We like. David will investigate an issue, then merge.
- https://github.com/miking-lang/miking/pull/345. We like, merge.
- https://github.com/miking-lang/miking-dppl/pull/20. We like, merge.
- https://github.com/miking-lang/miking-dppl/pull/21. We like, ping Daniel after merge of #20 to fix conflicts before merge.
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.
Note-taker: Lars Hummelgren
Pull Requests
- https://github.com/miking-lang/miking/pull/338 Add tensor as a keyword without square bracket. Then we like, merge
- https://github.com/miking-lang/miking/pull/339 Fix naming of temp dir. Then we like, merge
- https://github.com/miking-lang/miking/pull/340 We like, merge
- https://github.com/miking-lang/miking/pull/341 Continue working on PR then we like, merge
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.
Note-taker: Linnea Ingmar
PRs
- https://github.com/miking-lang/miking/pull/329 We like, merge.
- https://github.com/miking-lang/miking-benchmarks/pull/8 We like, merge.
- https://github.com/miking-lang/ocaml2mcore/pull/5 We like, merge.
- https://github.com/miking-lang/ocaml-multicore/pull/4 Linnea will merge.
- https://github.com/miking-lang/miking/pull/330 We like, merge. Compiler tasks
- Scan for use, remove fragments that are not used: Linnea
- Use aliases for Obj.obj and Obj.repr?
- Dead code elimination. Look at symbols. Remove lets (including recursive lets) that have lambda in the rhs. lets that are not lambdas need to be kept because of side-effects: David
- Look at if we can shorten pattern compilation
- First step: Create small programs and understand what is happening. Meeting Friday 13 to discuss: Oscar
- Record projection: is it a problem? Does it produce a lot of code? If so, can we special case it in the compilation to reduce the amount of produced code?
- Add flag for compact pretty printing (remove whitespace)
- Investigate Ropes performance, look for unnecessary copying. Add micro benchmarks to miking-benchmarks. Note
- Extra meeting tomorrow Friday at 13
Note-taker: Gizem Caylak
Pull Requests Daniel: Naive parallel make and tests https://github.com/miking-lang/miking/pull/322
- We liked, merge Lars: Pass more compilation tests https://github.com/miking-lang/miking/pull/323
- We liked, merge Lars: Fix inconsistent constructor applications https://github.com/miking-lang/miking/pull/326
- We liked, merge Linnea: Don’t generate OCaml code for empty variant types https://github.com/miking-lang/miking/pull/316
- We liked, merge. Linnea: Catch exception from error in generated OCaml code https://github.com/miking-lang/miking/pull/321
- We liked, merge Linnea: Improve variant compilation and start of compilation of lists https://github.com/miking-lang/ocaml2mcore/pull/4
- We liked, merge Oscar: Add tensors to run-all.sh https://github.com/miking-lang/miking/pull/327
- We liked, merge David: Keyword maker https://github.com/miking-lang/miking/pull/328
- Add header pattern then we liked, merge Anders: https://github.com/miking-lang/miking/pull/325
- We liked, merge
👇Merge order for some PRs:
First
- Daniel https://github.com/miking-lang/miking/pull/322
- Linnea https://github.com/miking-lang/miking/pull/316
- Linnea https://github.com/miking-lang/miking/pull/321
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].
Note-taker: Oscar Eriksson
PRs
- https://github.com/miking-lang/miking/pull/320 Recursive unwraping of types, then we like merge (as soon as possible).
- https://github.com/miking-lang/miking/pull/321 Run benchmarks before and after so see if we can observe any change in performance, then we like, merge.
- https://github.com/miking-lang/miking-benchmarks/pull/7 Change so that all implementations use the same pivot element, then we like, merge.
- https://github.com/miking-lang/miking/pull/316 Wait and try with sids instead of direct string comparisons.
Discussion Make test scripts run in parallel (dlunde)
Note-taker: Lars Hummelgren
Pull requests Gizem
- https://github.com/miking-lang/miking/pull/306 We like now, merge
- https://github.com/miking-lang/miking/pull/311 We like, merge Lars
- https://github.com/miking-lang/miking/pull/312 We like, merge
- https://github.com/miking-lang/miking/pull/315 We like, merge Linnea
- https://github.com/miking-lang/miking-benchmarks/pull/6 We like, merge
- https://github.com/miking-lang/ocaml2mcore/pull/3 We like, merge
- https://github.com/miking-lang/miking/pull/313 We like, merge
- https://github.com/miking-lang/miking/pull/314 Add info to generated types, add dprint & error constants to boot-parser. Then we like, merge Discussions
- Extra meeting tomorrow afternoon to discuss compilation
Note-taker: Daniel Lundén
Pull Requests
- https://github.com/miking-lang/miking/pull/307. We like, merge.
- https://github.com/miking-lang/miking/pull/308. We like, merge.
- https://github.com/miking-lang/miking/pull/309. Add test case, then we like, merge.
- https://github.com/miking-lang/miking/pull/302. We should keep sh, and instead fix the script. Oscar will take a look at it.
- https://github.com/miking-lang/miking/pull/304. We like, merge.
- https://github.com/miking-lang/miking/pull/303. Change prelude.mc to common.mc. Merge after 308.
- https://github.com/miking-lang/miking/pull/306. Discuss a bit more, and bring it up tomorrow again.
Note-taker: Linnea Ingmar
miking:
- #296 https://github.com/miking-lang/miking/pull/296: we like
- #299 https://github.com/miking-lang/miking/pull/299: we like
- #297 https://github.com/miking-lang/miking/pull/297: we like
- #294 https://github.com/miking-lang/miking/pull/298: we like ocaml2mcore:
- #2: https://github.com/miking-lang/ocaml2mcore/pull/2 we like miking-benchmarks:
- #5 https://github.com/miking-lang/miking-benchmarks/pull/5: we like discussion
- Fibonacci benchmark was really slow, we found that (<) was compiled into a generic caml_lessthan, not int less-than. Solution is to type annotate (<) with int -> int -> bool. Possibly other primitives need to be type annotated. Next steps for compiler
- type annotate intrinsics: Lars
- more benchmarks: Linnea
- constructors, e.g. binary tree
- Compile/run file after file, focus on compile: Lars
- utest translation of constructors: ?
Note-taker: Daniel Lundén
Pull Requests (miking)
- https://github.com/miking-lang/miking/pull/289. We like, merge.
- https://github.com/miking-lang/miking/pull/290. We like, merge.
- https://github.com/miking-lang/miking/pull/291. We like, merge. (EDIT)
- https://github.com/miking-lang/miking/pull/292. Includes 289, contact Lars before. We like, merge.
- https://github.com/miking-lang/miking/pull/294. Add tyConst or similar to ast.mc, remove constant types in builtins, and tweak type-annot-mc accordingly. We then like, merge.
- https://github.com/miking-lang/miking/pull/293. We like, merge. Pull Requests (ocaml2mcore)
- https://github.com/miking-lang/ocaml2mcore/pull/1. We like, merge. Pull Requests (ocaml-multicore)
- https://github.com/miking-lang/ocaml-multicore/pull/1. Make @Linnea Ingmar maintainer of this fork. We like, merge. Pull Requests (miking-benchmarks)
- https://github.com/miking-lang/miking-benchmarks/pull/3. We like, merge. Meeting on Thursday is cancelled. We'll have unofficial meetings as needed.
Note-taker: Gizem Caylak
Pull requests
- Linnea: https://github.com/miking-lang/miking/pull/284 We liked, merge
- Linnea: https://github.com/miking-lang/miking/pull/285 We liked, merge
- Lars: https://github.com/miking-lang/miking/pull/286 We liked, merge
- Lars: https://github.com/miking-lang/miking/pull/288 Contact David when you are done. Then we liked.
- Gizem: https://github.com/miking-lang/miking/pull/287 We liked, merge
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
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
Note-taker: Viktor Palmkvist
- PRs
- Linnea: https://github.com/miking-lang/miking/pull/273
- We like
- Linnea: https://github.com/miking-lang/miking/pull/277
- We like
- Lars: https://github.com/miking-lang/miking/pull/276
- Merge 273, then Lars adds annotations for map intrinsics, then Linnea reviews, then we like.
- Lars: https://github.com/miking-lang/miking/pull/274
- Add printing of the info field of terms that lack types required for compilation, then we like
- Lars: https://github.com/miking-lang/miking/pull/275
- Merge after 274, but we like
- Viktor: https://github.com/miking-lang/miking/pull/278
- We like, but merge first in case of merge conflicts, since the author will become unresponsive for a while
- Linnea: https://github.com/miking-lang/miking/pull/273
Note-taker: Linnea Ingmar
PRs
- https://github.com/miking-lang/trellis-dsl/pull/2 We like
- https://github.com/miking-lang/miking/pull/272 Recurse through all types Add the type signature of typeLift as a comment + explanation Then we like Discussion about handling merge conflicts
- We should do merge instead of rebase locally to keep merge history.
Note-taker: Oscar Eriksson
-
https://github.com/miking-lang/miking/pull/269
- We like merge but merge 268 first.
-
https://github.com/miking-lang/miking/pull/260
- We like, merge.
-
https://github.com/miking-lang/miking/pull/268
- Replace length with call to cardinal. Rename Err suffix to Exn. Then we like, merge before 269.
-
https://github.com/miking-lang/miking/pull/270
- We like, merge
-
https://github.com/miking-lang/miking/pull/271
- We like, merge
- Discussion
** The Prelude
Remove the prelude, rename preluce.mc to common.mc (David takes this task).
** Bool intrinsics
We postpone this discussion
** Should we always print the stacktrace
Add flag to print stacktraces (Daniel takes this task)
** Naming boot
Change mi to call the interpreter by default. Name boot
mi-boot
.
Note-taker: Daniel Lundén
Pull Requests
- https://github.com/miking-lang/miking/pull/266. We like, merge.
- https://github.com/miking-lang/miking/pull/267. We like, merge.
- https://github.com/miking-lang/miking/pull/258. Restrict atomicCAS to only operate on ints for now. Then merge. Discussions
- OCaml prelude should be generated separately to speed up tests.
Note-taker: Lars Hummelgren
Pull Requests
- Linnea https://github.com/miking-lang/miking/pull/254 We like, merge https://github.com/miking-lang/miking/pull/255 We like, merge https://github.com/miking-lang/miking/pull/258 (draft) We like, but add tests and ping David when ready https://github.com/miking-lang/miking/pull/263 We like, merge
- David https://github.com/miking-lang/miking/pull/259 We like, merge
- Oscar https://github.com/miking-lang/miking/pull/262 We like, merge
- Viktor https://github.com/miking-lang/miking/pull/256 We like, merge https://github.com/miking-lang/miking/pull/257 We like, rebase and ping David
- Lars https://github.com/miking-lang/miking/pull/261 We like, merge
Discussions
@Oscar Eriksson will remove Sundials tests from make test-all
and ping David
Note-taker: Viktor Palmkvist
- PRs
- Viktor: https://github.com/miking-lang/miking/pull/253
- Before change: Executed in 16,93 secs fish external usr time 16,60 secs 0,00 micros 16,60 secs sys time 0,27 secs 974,00 micros 0,27 secs
- After change: Executed in 16,70 secs fish external usr time 16,51 secs 343,00 micros 16,51 secs sys time 0,15 secs 96,00 micros 0,15 secs
- We like
- Linnea: https://github.com/miking-lang/miking/pull/252
- Copy-paste error, then we like
- Lars: https://github.com/miking-lang/miking/pull/251
- (discussed last week, but we didn't finalize the name)
- Viktor: https://github.com/miking-lang/miking/pull/253
- Discussion on what PRs we're aiming to finish by next meeting
- subsequence 6
- subseq 2
- Project board update
Note-taker: Daniel Lundén
Miking release
- We had a status update and discussion. Pull Requests
- https://github.com/miking-lang/miking/pull/251. We like, replace sub with something else?
- https://github.com/miking-lang/miking/pull/250. We like.
- https://github.com/miking-lang/miking/pull/252. DRAFT discussion.
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"" = ....
Note-taker: Linnea Ingmar
PRs
- Ropes (Lars) https://github.com/miking-lang/miking/pull/245
- We like, but replace intrinsic
makeSeq
with acreate
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...
.)
- Breakable operators parser (Viktor) https://github.com/miking-lang/miking/pull/246
- We like, but add
iter
toseq.mc
before merge
- Boot parser stuff (David) https://github.com/miking-lang/miking/pull/247
- 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.
Note-taker: Gizem Caylak
Pull Requests
-
ANF utests and some general cleanup https://github.com/miking-lang/miking/pull/244 (Daniel)
- We liked, merge.
-
Boot parser https://github.com/miking-lang/miking/pull/243 (David)
- Refactor Pat names (Viktor’s comments)
- Then, we liked.
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 ).
Note-taker: Lars Hummelgren
Pull requests https://github.com/miking-lang/miking/pull/242 (Viktor)
- Add prefix to functions with very short names
- @Daniel Lundén will have a look at it
- Then we like, merge https://github.com/miking-lang/miking/pull/241 (Anders)
- Remove wildcard match pattern
- Then we like, merge
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
Note-taker: Linnea Ingmar
PRs
- Poor man’s type checker (Viktor) https://github.com/miking-lang/miking/pull/237
- We like
- New lexer (Viktor) https://github.com/miking-lang/miking/pull/238
- We like
- Type annotations (Lars) https://github.com/miking-lang/miking/pull/236
- Annotate utest, reclet and never
- After that, we like
- More map intrinsics (Linnea) https://github.com/miking-lang/miking/pull/239
- We like We also quickly went through status on items for release
Note-taker: Viktor Palmkvist
- PR, Linnea: https://github.com/miking-lang/miking/pull/235
- We like
- Lars will look at using ropes to optimize join in pprint
- Ernst: presentation of master's thesis
- We like, even though it's not a PR :)
- https://github.com/ernstwi/tml
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.
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
- Not relevant anymore, we will use Boot parsing library instead
- A list of requirements have been established
-
- Will start working on this next week
- For the release, make sure that the Boot version is in good shape
- Plan on compilation of records & data types to OCaml
-
-
- 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
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.
Note-taker: Daniel Lundén
Pull Requests
- https://github.com/miking-lang/miking/pull/233. We like, merge.
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.