Perl 6 language and compiler development | Logs at colabti.org/irclogger/irclogger_logs/perl6-dev | For toolchain/installation stuff see #perl6-toolchain | For MoarVM see #moarvm
Set by AlexDaniel on 12 June 2018.
00:11 lizmat joined 00:12 benjikun joined 00:16 lizmat left 01:47 ggoebel left 01:54 perlpilot joined 02:02 ggoebel joined 02:45 ggoebel left 02:48 perlpilot left 02:52 ufobat_ joined 02:55 ufobat left 02:59 ggoebel joined 03:56 BenGoldberg left 04:09 benjikun left 04:25 skids joined 05:04 skids left 06:42 brrt joined
[Tux] .tell lizmat ; re test-t/PP, yes: time. When I started the tests took way too long. I started with two tests. There are now *39* tests running is a sequence. Twice. If you want tests added (for whatever reason) just yell 06:43
yoleaux [Tux]: I'll pass your message to lizmat.
brrt \o
07:02 robertle joined 07:15 lizmat joined
Geth nqp/truffle: dd16ea0a7a | (Paweł Murias)++ | src/vm/jvm/runtime/org/perl6/nqp/truffle/nodes/expression/NQPCoerceIntToStrNode.java
[truffle] Add missing file
07:15
lizmat Files=1242, Tests=76407, 320 wallclock secs (15.59 usr 5.34 sys + 2219.84 cusr 219.86 csys = 2460.63 CPU) 07:16
yoleaux 06:43Z <[Tux]> lizmat: ; re test-t/PP, yes: time. When I started the tests took way too long. I started with two tests. There are now *39* tests running is a sequence. Twice. If you want tests added (for whatever reason) just yell
[Tux] Rakudo version 2018.06-37-g587cd4f9e - MoarVM version 2018.06-34-g411f73fdc
csv-ip5xs0.894 - 0.898
csv-ip5xs-207.248 - 7.418
csv-parser22.985 - 26.947
csv-test-xs-200.460 - 0.464
test8.698 - 8.890
test-t2.291 - 2.310
test-t --race0.966 - 0.974
test-t-2040.883 - 41.231
test-t-20 --race14.046 - 14.427
lizmat weekly: docs.google.com/forms/d/e/1FAIpQLS...wanalytics 07:25
notable6 lizmat, Noted!
07:26 ufobat_ left
lizmat [Tux]: just for reference, if you could add the results of the Pure Perl 5 version, that would be excellent 07:26
[Tux] you meanto this list as just posted? 07:28
lizmat no, I mean just now, once :-) (sorry, not quite awake yet( 07:29
)
:-)
[Tux] curl tux.nl/Talks/CSV6/speed-all.log | grep test-pp 07:30
enough? 07:31
lizmat yup
2018-06-29 08:52:02 csv-test-pp 0.681 07:32
so, yhe
so the test-t --race is only about 1.5x slower than the pure perl 5 version
and test-t is about 3x slower than the pure perl 5 version 07:33
07:34 pmurias joined
pmurias MasterDuke: sorry, I forgot to add a file again :( 07:34
MasterDuke: I have to set up travis to have it complain 07:35
07:42 pmurias left 07:46 pmurias joined
lizmat hmmm... do we have an easy way to create a sub that will take a thunk (rather than an explicit Callable)? 08:12
so you could write: foo DBIish.connect(...) instead of having to add curlies: foo { DBIish.connect( ... ) } 08:13
if not, maybe some parameter trait could do it: 08:14
sub foo( &code is thunked ) { ... } ?
Geth nqp: 255b8dd7e7 | 陈梓立++ (committed using GitHub Web editor) | t/nqp/022-optional-args.t
Half resolve XXX on optional-args.t

Confused by why NQP complains:
   Cannot find method 'defined': no method cache and no .^find_method
Since we have a method called `defined` in NQPMu.
08:17
08:48 [TuxCM] left 08:58 brrt left 10:00 brrt joined
jnthn lizmat: That's what macros will be fore :) 10:04
*for
lizmat yeah, I guess
jnthn Or, if you're daring enough to use their experimental form, what they're for now :P
lizmat hmmm....
not a lot of useful documentation about macros :-( 10:06
10:06 brrt left
jnthn Well yeah, we don't want anyone to use them really :P 10:08
Since we'll rip the rug out from under them later
lizmat yeah... well, then I'm not going to provide examples of code to be ripped out
jnthn Ah, I thought it was for use in a module that you'd be willing to update when needed :) 10:09
Anyway, I think for now "wrote 2 extra chars" isn't such a hardship :)
(e.g. wrap the thing up in curlies) 10:10
s/wrote/write/
lizmat yeah, it's now documented and uploaded: modules.perl6.org/dist/Object::Trampoline 10:12
10:14 [TuxCM] joined
jnthn ah, I see 10:14
lizmat afk for a bit&
jnthn I've quite a few times missed a thread-safe `defer { ... }` style thingy that gives back an `Awaitable` but only triggers the work on the first `await`, and in the future simply gives back the completed work 10:15
10:30 robertle left
Geth nqp: 395898aabe | 陈梓立++ (committed using GitHub Web editor) | t/nqp/022-optional-args.t
Remove XXX since $y here is int instead of object, thus has no .defined
11:02
11:07 robertle joined
lizmat weekly: github.com/shlomif/perl6-benchmarks 12:15
notable6 lizmat, Noted!
lizmat jnthn: are you saying that trampoline { } does that for you now? Or am I missing something? 12:16
12:17 brrt joined, ExtraCrispy left 12:20 ExtraCrispy joined
jnthn lizmat: Yes, I'm saying that writing the { ... } on the caller side isn't really so big of a hardship :) 12:23
lizmat so maybe I should call it "defer" and put it in as a real Perl 6 module, rather than a port ?> 12:24
jnthn Well, could also do that, though it's not identical functionality 12:26
It seems Object::Trampoline lets you store up method calls that should be run later 12:27
Which is maybe useful for something also :)
So it's more a "in addition to" rather than "instead of"
lizmat well, it lets you create an ersatz object that will become real as soon as you call any method on it
it will only take *one* method call to make it real 12:28
jnthn ah, right
lizmat but you can stack them in the sense that the code of an ersatz object can contain another ersatz object 12:29
my $dbh = trampoline { DBIish.connect: ... }
my $sth = trampoline { $dbh.prepare: 'select foo from bar' }
so as soon as you call $sth.execute, it will both realize $dbh and $sth into their intended state
my $awaitable = trampoline { start { work } } # shouldn't that do what you mean ? 12:31
so basically "defer" would be "trampoline start { } ? 12:32
timotimo but await won't know that this trampoline should be treated as an awaitable
i.e. it won't know what to do when you await it
lizmat when you await something, it calls a method on the Awaitable, does it not ?> 12:33
timotimo m: say await 1
camelia Must specify a Promise, Channel, or Supply to await on (got a Int)
in block <unit> at <tmp> line 1
timotimo m: say await 1 but Awaitable
camelia Method 'get-await-handle' must be implemented by Int+{Awaitable} because it is required by roles: Awaitable.
in block <unit> at <tmp> line 1
lizmat so there
I think that should work, lemme see
jnthn lizmat: There's no way to implement it with 6.c await
But the point is that it would *not* return a Promise, but rather something else that is Awaitable 12:34
But yes, you'd then make `get-await-handle` do the interesting thing :)
lizmat *any* method call will do the right thing, so I think it should work
jnthn huh? 12:35
jnthn is confused :)
timotimo but await won't do a method call on the trampoline object 12:36
it'll just complain that it's not a promise, channel, or supply
jnthn timotimo: In 6.c, yes :)
lizmat yeah, unfortunately
timotimo or does the typecheck cause it to become the thing?
jnthn Ah, I think that's what you're explaining
I'm not sure if `defer` is even a really good name for it :)
lizmat well, that's why I kept the "trampoline" nomer for now 12:37
12:49 robertle left 12:52 robertle joined 12:53 robertle left
Geth rakudo: ea161384d3 | (Elizabeth Mattijsen)++ | src/core/asyncops.pm6
Simplify await()

You should do the Awaitable role to be able to await on, not be a Promise, Channel or Supply per se.
13:01
lizmat also cuts about 4K from the setting.moarvm 13:02
13:13 [TuxCM] left
ilmari lizmat: shouldn't the die message in the Any:D version be updated too? 13:18
lizmat yeah, looking at that right now 13:19
also considering to change s/Awaitable:D/Any:D/ for the functional await() to see if I can make it work with trampoline 13:20
jnthn lizmat: argh no wht 13:21
lizmat jnthn: what ?
my commit ? or what I'm doing afterwards
?
jnthn Those are meant to be in 6.d
lizmat the separate candidates ?
jnthn The use of Awaitable in the `await` candidates 13:22
lizmat came clean through spectests though?
ah, you're saying asyncops is only in the d.setting > 13:23
?
jnthn No, I'm saying that the `await` candidates that deal with Awaitable are in the 6.d setting
We may get away with it, but I was intentionally keeping only Promise/Supply/Channel as things you can `await` in 6.c to make sure we preserved behavior there 13:24
lizmat ah, ok
jnthn We probably do get away with it, I guess 13:25
lizmat judging by the spectest we do
want me to revert or not?
jnthn I just had the generalization of `await` to `Awaitable` down as "6.d behavior"
I'm sure I had a good reason for that, but I forget what it is now :(
lizmat I'll revert just in case, it was only because of DRY that I did that 13:26
Geth rakudo: 5a4c95e7b2 | (Elizabeth Mattijsen)++ | src/core/asyncops.pm6
Revert "Simplify await()"

This reverts commit ea161384d37b2e80b2a75c532dbb68dbb9492f27.
This should stay until 6.d
jnthn ah, ok 13:28
That feels safer
Geth rakudo: 84f60adad1 | (Elizabeth Mattijsen)++ | src/core/Baggy.pm6
Bring Baggy.perl inline with Setty.perl

Wrt to immutable bag() and mix(). This does not fix the fact that ().Set
  ().Bag and ().Mix now return the immutable set() bag() mix() respectively.
13:52
14:10 travis-ci joined
travis-ci Rakudo build failed. Elizabeth Mattijsen 'Simplify await() 14:10
travis-ci.org/rakudo/rakudo/builds/398236256 github.com/rakudo/rakudo/compare/5...161384d37b
14:10 travis-ci left
buggable [travis build above] ☠ All failures are due to: failed make test (1 failure). Across all jobs, only t/05-messages/01-errors.t test file failed. 14:10
14:23 squashable6 joined
lizmat ok, should ().Set return set() or Set.new ? 14:24
jnthn: ^^
jnthn That's a good question. I guess on can never really rely on a coercer call giving a new object though, since it's just identity on something that's already that type. 14:26
lizmat jnthn: same for ().Bag -> bag() or Bag.new ? and ().Mix -> mix() or Mix.new "
jnthn *one
lizmat true 14:27
m: dd set().Bag
camelia bag()
b2gills s/defer/later/ ??
jnthn I think .new and .clone can be expected to always produce a new object, but I don't immediately feel that needs to extend to coercers
b2gills: Well, it's more like if-needed, but we want one word :) 14:28
lizmat ah, in that case, I need to change the .perl again
s/defer/when-needed/
timotimo procrastinate
14:32 ExtraCrispy left 14:34 ExtraCrispy joined
lizmat
.oO( that's just lazy )
14:35
14:57 skids joined
Geth rakudo: c37c3b5966 | (Elizabeth Mattijsen)++ | src/core/set_operators.pm6
Mark set()/bag()/mix() as pure

So that set/bag/mix with literal values can be created once at compile time, instead of at runtime.
15:01
lizmat m: my %h = a => 1, b => 0; dd Set.new(%h) 15:14
camelia (:b(0),:a(1)).Set
lizmat m: dd (:b(0),:a(1)).Set
camelia ("a").Set
lizmat *sigh*
AlexDaniel lizmat: fwiw rindolf++ colabti.org/irclogger/irclogger_log...06-29#l811 15:32
lizmat makes a mental note
AlexDaniel lizmat: I like it because I'm often confused by stuff like 2x faster in commit messages (which then end up in the changelog, because I'm not redoing the measurements)
and usually the changelog for a release has a variety of these 15:33
lizmat yup
so, if I said 10% faster, I meant 1.1x faster
AlexDaniel newspeed ÷ oldspeed, and then “5.5x as fast” – this is very clean and understandable, I think
lizmat that's how I always did it
AlexDaniel 1.1x faster or 1.1x as fast? 15:34
:)
lizmat what's the difference ?
15:34 b2gills left
AlexDaniel “ “two times faster” refers to the increase in speed and means that the speed ratio is 3:1, while “two times as fast” means that the speed ratio is 2:1 ” 15:34
“two times faster” is probably interpreted differently by different people 15:36
lizmat yeah, it was identity for me before just now
ok, I meant 10% faster is 1.1x as fast
AlexDaniel \o/
lizmat BTW, my calculation is always (newspeed - overhead) / (oldspeed - overhead) 15:37
jnthn I also quite like "runs in 60% of the time it used to", which is also clear
15:39 b2gills joined
AlexDaniel actually, now I'm confused 15:58
in our case less time is better…
so it should be oldspeed ÷ newspeed, no?… 15:59
yes
lizmat whatever, it's all relative :-)
16:01 eaterof joined 16:09 skids left, AlexDaniel`` left, eater left, [TuxCM] joined, [TuxCM] left, eaterof is now known as eater
lizmat m: use nqp; dd nqp::iscont(Pair.new("a",True).item) # this feels like it should say 1, right jnthn ? 16:09
camelia 0
16:11 [TuxCM] joined 16:12 squashable6 left 16:14 skids joined, undersightable6 joined, AlexDaniel`` joined, kornbluth.freenode.net sets mode: +v undersightable6
jnthn m: say Pair ~~ Iterable 16:15
camelia False
jnthn lizmat: No, it's fine
16:15 brrt left
lizmat is it ? 16:15
this breaks Set roundtripping if the Set contains pairs 16:16
jnthn Yes, .item can return identity if the thing will not flatten
lizmat m: my %h = a => 1, b => 0; dd %h.Set 16:17
camelia ("a").Set
lizmat m: my %h = a => 1, b => 0; dd Set.new(%h)
camelia (:b(0),:a(1)).Set
16:17 benchable6 left
lizmat m: dd (:b(0),:a(1)).Set 16:17
camelia ("a").Set
16:17 Zoffix joined
Zoffix There's a ticket on that topic R#1862 16:17
synopsebot R#1862 [open]: github.com/rakudo/rakudo/issues/1862 [@LARRY] Some objects don't .item'ize even though they probably should
16:17 AlexDaniel`` left
Zoffix m: dd $_ for $(set <a b c>) 16:18
camelia :a
:c
:b
16:18 ilmari[m] left, CIAvash[m] left
Zoffix m: dd $_ for my $ = set <a b c> 16:18
camelia Set $ = ("a","b","c").Set
Zoffix So basically, $() / .item don't actually make `for` iterate over the item as an item.
jnthn If something decides that it's going to implement .iterator without making itself Iterable, then it's on that type to also implement method item, I'd say 16:19
Zoffix OK 16:20
lizmat testing that for Pair now
jnthn away for a bit 16:49
lizmat m: my @q = :p(1); dd @q[0] 16:51
camelia Pair @q = :p(1)
lizmat this will become: Pair @q = $(:p(1))
and thus breaks 6 spectests :-( 16:52
m: 'my %h = a => 1, b => 0; dd Set.new(%h); dd Set.new(%h).perl.EVAL # how badly do we want to fix this ? 16:53
camelia 5===SORRY!5=== Error while compiling <tmp>
Unable to parse expression in single quotes; couldn't find final "'" (corresponding starter was at line 1)
at <tmp>:1
------> 3AL # how badly do we want to fix this ?7⏏5<EOL>
expecting …
lizmat m: my %h = a => 1, b => 0; dd Set.new(%h); dd Set.new(%h).perl.EVAL # how badly do we want to fix this ?
camelia (:b(0),:a(1)).Set
("a").Set
lizmat same for Bag / Mix, btw 16:54
16:58 dogbert17 joined 16:59 travis-ci joined
travis-ci Rakudo build passed. Elizabeth Mattijsen 'Mark set()/bag()/mix() as pure 16:59
travis-ci.org/rakudo/rakudo/builds/398287011 github.com/rakudo/rakudo/compare/8...7c3b59665f
16:59 travis-ci left
lizmat afk& 17:02
17:03 ilmari[m] joined 17:08 hankache joined 17:09 committable6 joined, ChanServ sets mode: +v committable6, bisectable6 joined, releasable6 joined, squashable6 joined 17:14 benchable6 joined, greppable6 joined 17:17 Zoffix left
Geth rakudo: e23e2f6808 | (Aleks-Daniel Jakimenko-Aleksejev)++ | tools/speedup.p6
Helper tool for perf improvement descriptions

This tool should help us consistify commit messages and changelog entries. It prints the preferred form (e.g. “2x as fast”) to stdout and some extra variants are printed to stderr along with formulas that were used. Note that I'm proposing “2x as fast” variant because it is very easy to calculate and relatively easy to understand. The script ... (6 more lines)
17:27
rakudo: 0721bfa754 | (Zoffix Znet)++ | tools/speedup.p6
Round the `of the time` measure as well
17:34
17:34 AlexDaniel`` joined, CIAvash[m] joined
Geth nqp/W4anD0eR96-patch-1: 7369239b00 | 陈梓立++ (committed using GitHub Web editor) | src/core/testing.nqp
Add callback of nqp::spawnprocasync to catch exception

This will fix #467 , which now throw an exception with
   no such file or directory
   at gen/moar/stage2/NQPCORE.setting:1226 (NQPCORE.setting.moarvm:)
instead of hanging.
17:35
nqp: W4anD0eR96++ created pull request #477:
Add callback of nqp::spawnprocasync to catch exception
17:37 brrt joined 17:43 lizmat left 17:44 ggoebel left
Geth nqp/W4anD0eR96-patch-2: 4971fb59a6 | 陈梓立++ (committed using GitHub Web editor) | t/nqp/114-pod-panic.t
More robust test
17:50
nqp: W4anD0eR96++ created pull request #478:
More robust test
18:03 ggoebel joined 18:10 hankache left 18:11 yoleaux joined 18:40 j3nnn1 joined
tbrowder_ note that 6.d changes are being asked about on #perl6. yesterday i filed a new issue on roast for the 6.d proposed changes. 18:51
Geth 6.d-prep: 638678d548 | (Zoffix Znet)++ (committed using GitHub Web editor) | README.md
Add more notes that this is a core dev doc

and not a list of changes for 6.d language
19:19
19:21 brrt left
Geth nqp/new-runner-enable-execname: 77c71f547b | 陈梓立++ | 4 files
Pass --execname to nqp thus nqp::execname() works
19:28
nqp: W4anD0eR96++ created pull request #479:
Pass --execname to nqp thus nqp::execname() works
nqp/W4anD0eR96-patch-2: 4971fb59a6 | 陈梓立++ (committed using GitHub Web editor) | t/nqp/114-pod-panic.t
More robust test
19:29
19:33 [Tux] joined
MasterDuke pmurias: ping 19:55
yoleaux 28 Jun 2018 15:45Z <pmurias> MasterDuke: I added the int to str conversion
28 Jun 2018 15:47Z <pmurias> MasterDuke: your attempt and doing the conversion didn't work is because smart_stringify expects something that returns an object
28 Jun 2018 15:47Z <pmurias> MasterDuke: btw thank you for contributing
28 Jun 2018 17:07Z <Zoffix> MasterDuke: just mentioning, in case these opts are JITable and you know how, but on this script from one of our users JIT bails on these: ctxouter, getcodename, setmethcache raw.githubusercontent.com/shlomif/...r_189-2.p6
20:22 bartolin_ left
tbrowder_ Zoffix: that doc is clear, i was hoping to see a comment on the roast issue. 20:23
20:24 bartolin joined
Geth nqp/new-runner-enable-execname: 85e6854063 | 陈梓立++ (committed using GitHub Web editor) | tools/build/install-jvm-runner.pl.in
Update install-jvm-runner.pl.in
20:33
20:36 Zoffix joined
Zoffix tbrowder_: sorry, what sort of comment? 20:36
Geth nqp/new-runner-enable-execname: 5689499fab | 陈梓立++ (committed using GitHub Web editor) | t/nqp/114-pod-panic.t
Update 114-pod-panic.t
tbrowder_ instructions say to enter 6d proposals as roast issues. i was hoping for someone to look at my new roast issue GH #441. 20:38
Zoffix tbrowder_: yeah, deprecating sounds good. If there's a way to emit a warning if the language is 6.d, then that'd be great, and it can be removed in 6.e 20:40
tbrowder_: the decision on whether to emit a warning would be done during compile time, right? Right when you're parsing the Pod table? Then you can just use $*W.lang-ver-before('d') as a conditional to decide whether to emit the warning. Like in here: github.com/rakudo/rakudo/blob/mast...5020-L5022 20:41
(that code changes behaviour based on language, not emits a warning, but it does use that conditional) 20:42
tbrowder_ ok, so how should i proceed, work on a pr for 6.d using your suggestions or? 20:44
Zoffix tbrowder_: the change doesn't sound all that controvercial and all you're doing right now is making 6.d lang emit a warning. I'd just go ahead and commit directly. 20:50
21:04 brrt joined
tbrowder_ ok, thanks. 21:08
21:19 skids left
Geth nqp: 7369239b00 | 陈梓立++ (committed using GitHub Web editor) | src/core/testing.nqp
Add callback of nqp::spawnprocasync to catch exception

This will fix #467 , which now throw an exception with
   no such file or directory
   at gen/moar/stage2/NQPCORE.setting:1226 (NQPCORE.setting.moarvm:)
instead of hanging.
21:24
synopsebot NQP#467 [closed]: github.com/perl6/nqp/issues/467 [severe] nqp t/nqp/114-pod-panic.t hangs
nqp: 67c01fe8fb | (Jonathan Worthington)++ (committed using GitHub Web editor) | src/core/testing.nqp
Merge pull request #477 from perl6/W4anD0eR96-patch-1

Add callback of nqp::spawnprocasync to catch exception
21:24 pmurias left
21:24 brrt left
21:25 pmurias joined 21:58 pmurias left 21:59 pmurias joined, pmurias left 22:01 lizmat joined
lizmat hmmm... making Pair Iterable makes the installation process hang 22:20
jnthn I'm not surprised 22:21
lizmat so I figured the basic issue with roundtrippability of Set/Bag/Mix wrt to Pairs, is that the .perl of a Set does not distinguish between a Pair as a key, with a value, and any other key and a value 22:23
22:23 MasterDuke left 22:24 MasterDuke joined
lizmat m: my $b = Pair.new("a",42).Bag; dd $b, $b.total 22:25
camelia Bag $b = ("a"=>42).Bag
42
lizmat m: Bag.new(Pair.new("a",42)); dd $b, $b.total 22:26
camelia 5===SORRY!5=== Error while compiling <tmp>
Variable '$b' is not declared
at <tmp>:1
------> 3Bag.new(Pair.new("a",42)); dd 7⏏5$b, $b.total
lizmat m: my #$b = Bag.new(Pair.new("a",42)); dd $b, $b.total
camelia 5===SORRY!5=== Error while compiling <tmp>
Malformed my
at <tmp>:1
------> 3g.new(Pair.new("a",42)); dd $b, $b.total7⏏5<EOL>
lizmat m: my $b = Bag.new(Pair.new("a",42)); dd $b, $b.total
camelia Bag $b = (:a(42)).Bag
1
lizmat grrr
note that the .perl output of both is the same, but the number of "elements" is different 22:27
22:27 perlpilot joined
lizmat well, the .perl is not the same, but when EVALled, it will be the same 22:27
m: dd ($(:a(42))).Bag # even if I itemize the Pair, it doesn't work like it should 22:31
camelia ("a"=>42).Bag
lizmat and that's because Pair doesn't have its own .item method 22:32
adding Pair.item and adapting Pair.perl so that it checks for itemness, breaks several spectests :-( 22:33
jnthn Hmm 22:34
That's still less drastic than breaking the whole build ;)
lizmat yeah, and I think it's more correct
jnthn But yeah, we'd have to take a look at what the spectests are
lizmat you could also argue, come to think of it
that the .perl of Bag is too smart 22:35
but no, because the same problem exists for Set
m: dd Set.new(:a(42)=>0); dd Set.new(:a(42)=>0).perl.EVAL 22:36
camelia ((:a(42)) => 0).Set
().Set
lizmat ah, two tests
Geth rakudo: 3cbf25e0f5 | (Elizabeth Mattijsen)++ | src/core/Pair.pm6
Give Pair its own .item

And adapt .perl so that it checks for containerness. This seems to be consistent (at least to me), and a prerequisite to problems with roundtripping QuantHashes.
22:38
lizmat grr... fixing problems
ah no, 6 tests over 2 files
Geth roast: 4abf48150f | (Elizabeth Mattijsen)++ | 2 files
Fix tests wrt to containerness of Pair.perl

Which was changed in 3cbf25e0f5
22:43
roast/6.c-errata: a291e7f024 | (Elizabeth Mattijsen)++ | 2 files
Fix tests wrt to containerness of Pair.perl

Which was changed in 3cbf25e0f5
22:47
lizmat argh, I'm too tired for the rest 23:02
more tomorrow
&
23:06 nativecallable6 joined, statisfiable6 joined 23:14 j3nnn1 left