🦋 Welcome to the IRC channel of the core developers of the Raku Programming Language (raku.org #rakulang). This channel is logged for the purpose of history keeping about its development | evalbot usage: 'm: say 3;' or /msg camelia m: ... | Logs available at irclogs.raku.org/raku-dev/live.html | For MoarVM see #moarvm Set by lizmat on 8 June 2022. |
|||
00:00
reportable6 left,
reportable6 joined
|
|||
Nemokosch | I wish it ran that fast, haha | 00:22 | |
didn't know this TEST_JOBS env though | 00:23 | ||
can I get a commit bit to rakudo? | |||
00:31
dogbert17 joined
00:33
dogbert11 left
|
|||
Geth | rakudo: 2colours++ created pull request #5169: Fix for storing parameterised hashes as items |
00:56 | |
01:33
evalable6 left
01:35
evalable6 joined
02:56
MasterDuke joined
03:29
dogbert11 joined
03:30
dogbert17 left
03:34
dogbert17 joined
03:36
dogbert11 left
03:42
dogbert17 left
03:46
dogbert17 joined
04:00
dogbert11 joined
04:02
dogbert17 left
04:06
dogbert11 left
04:07
dogbert11 joined
04:10
dogbert17 joined
04:13
dogbert11 left
04:14
dogbert11 joined
04:16
dogbert17 left
04:21
dogbert17 joined
04:23
dogbert11 left
04:28
dogbert11 joined
04:30
dogbert17 left
05:06
dogbert17 joined
05:08
dogbert11 left
05:10
dogbert17 left
05:11
dogbert11 joined
05:20
dogbert17 joined
05:23
dogbert11 left
06:00
reportable6 left
06:02
reportable6 joined
08:22
Nemokosch joined
|
|||
Nemokosch | bisectable6: say Dateish ~~ Cool | 08:22 | |
bisectable6 | Nemokosch, Will bisect the whole range automagically because no endpoints were provided, hang tight | ||
Nemokosch, ¦6c (66 commits): «True» | 08:23 | ||
Nemokosch, Nothing to bisect! | |||
Nemokosch | why are (apparently) all roles Cool? xD | 08:24 | |
Nemokosch | let's do one more | 08:28 | |
08:28
dogbert17 left
|
|||
Nemokosch | bisectable6: say PositionalBindFailover ~~ Cool | 08:28 | |
bisectable6 | Nemokosch, Will bisect the whole range automagically because no endpoints were provided, hang tight | ||
Nemokosch, ¦6c (66 commits): «True» | |||
Nemokosch, Nothing to bisect! | |||
nine | Bootstrap says: Perl6::Metamodel::ParametricRoleHOW.pretend_to_be([Cool, Any, Mu]); | 08:30 | |
Nemokosch | hm, you are right. Do you know what purpose that serves? Why do all roles need to pretend to be Cool for type checking? | 08:34 | |
nine | The commit message that introduced this says "Roles should be narrower than Cool/Any/Mu." and it fixed "multis don't distinguish Positional" | 08:37 | |
Nemokosch | gotcha github.com/rakudo/rakudo/commit/00...070b30077f | 08:42 | |
but this doesn't give a lot of insights about Cool in particular | |||
08:46
dogbert17 joined
08:52
Nemokosch left
09:02
dogbert11 joined
09:03
dogbert17 left
09:04
dogbert17 left
09:08
dogbert11 left
09:11
dogbert11 joined
09:17
dogbert17 joined
09:20
dogbert11 left
09:31
dogbert17 left
|
|||
lizmat | nine: looking at the implementation of PRE / POST phasers, and they get a lot of QAST inserted into their bodies | 10:42 | |
so rather than inserting the qast with all its complications, I'm considering adapting the RakuAST blorst instead | 10:43 | ||
which would make it much more high level, and potentially more flexible | |||
opinions ? | |||
specifically translating World line 4460 and following | 10:47 | ||
10:53
dogbert17 joined
11:12
MasterDuke left
11:15
dogbert17 left
11:19
dogbert17 joined
11:23
dogbert17 left
12:00
reportable6 left
12:02
reportable6 joined
|
|||
lizmat | nine: Cannot find method 'apply-sink' on object of type NQPMu does that ring a bell ? | 12:29 | |
nine | not in general | 12:31 | |
lizmat | too bad :-) | 12:33 | |
12:35
ab5tract joined
|
|||
lizmat | nine: do you see something inherently wrong in gist.github.com/lizmat/136cee1a104...f528ac95c6 ? | 12:36 | |
it basically turns the blorst into X::Phaser::PrePost.new(:phaser<PRE>, :condition($blorst.DEPARSE)).throw | 12:37 | ||
X::Phaser::PrePost.new(:phaser<PRE>, :condition($blorst.DEPARSE)).throw unless $blorst | 12:38 | ||
Geth | nqp/main: d7e8161577 | (Christian Bartolomäus)++ (committed using GitHub Web editor) | src/vm/jvm/QAST/Compiler.nqp [JVM] Add some constants DISP_* (#794) At least DISP_ONLYSTAR is referenced by Rakudo, so it makes sense to define them similarly to src/vm/moar/QAST/QASTOperationsMAST.nqp. |
12:44 | |
nine | lizmat: well I don't understand what PRE and POST phasers are even supposed to do. | 12:49 | |
lizmat | m: { PRE say "foo" }()' | ||
camelia | ===SORRY!=== Error while compiling <tmp> Two terms in a row at <tmp>:1 ------> { PRE say "foo" }()⏏' expecting any of: infix infix stopper statement end statement modifier st… |
||
lizmat | m: { PRE say "foo" }() | ||
camelia | foo | ||
lizmat | m: { PRE !say "foo" }() | ||
camelia | foo Precondition '!say "foo"' failed in block at <tmp> line 1 in block <unit> at <tmp> line 1 |
||
lizmat | PRE phaser is supposed to throw if it returns something falsy | 12:50 | |
it is called before any other block phaser in a block | |||
rather than messing with QAST, I thought RakuAST would provide a more HLLy approach | 12:51 | ||
nine | Looks ok then | 12:52 | |
lizmat | could it be that the NQPMu is caused by something not being serialized ? | ||
aahhh... ok, looks like a missing "postfix" | 12:54 | ||
nine | nine's debug lemma #1: the bug is _always_ in your own code. | 12:56 | |
lizmat | Oh, I had no doubt about that :-) | ||
Nemokosch | Especially when your own code is a runtime | 13:04 | |
lizmat | :-) | ||
13:21
ab5tract left
13:32
ab5tract joined
13:39
Xliff joined
13:47
ab5tract left
|
|||
lizmat | some progress, another weird error now: | 14:21 | |
No such method 'IMPL-WRAP-QAST' for invocant of type | |||
'RakuAST::Statement::Expression' | |||
nine: ring a bell ? | |||
nine | You have an expression somewhere where there should be a statement modifier | 14:22 | |
lizmat | aaahhh ok | 14:26 | |
14:38
dogbert17 joined
|
|||
lizmat | meh... looks like NQPMu is truthy in Raku land :-( | 14:47 | |
nine | Always better to be explicit | 14:57 | |
Nemokosch | As a type object? | 15:01 | |
15:14
dogbert17 left
15:22
ab5tract joined
|
|||
lizmat | ok, got the PRE phaser passing now, if the condition is true | 15:32 | |
if it is false, then it show a specific error, not: No exception handler located for catch | |||
so I guess there's still something going wrong when throwing the exception | 15:33 | ||
vrurg | Is "no exception handler" specced??? | 15:38 | |
15:40
ab5tract left
|
|||
lizmat | ir's one of those "this shouldn't happen" things | 15:41 | |
vrurg | That's what I mean. Hopefully, it not a part of the specs. :) | ||
lizmat | it's not | 15:44 | |
15:56
dogbert17 joined
16:06
squashable6 left
16:08
squashable6 joined
16:43
dogbert17 left
|
|||
nine | waaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaah | 17:02 | |
lizmat | my feelings entirely | 17:04 | |
is something a lot simpler all of a sudden? or a lot more difficult ? | 17:05 | ||
please don't keep us in suspense! :-) | 17:06 | ||
nine | It seems to never end... Trying to get whatever currying fully implemented. | 17:07 | |
lizmat | aah... yeah, that: another piece of magic :-( | ||
nine | I got it down to generating perfectly working code. Except...that the meta object is wrong. It gets created too early, so it thinks the WhateverCode would have only one parameter. | ||
17:10
gfldex left
|
|||
lizmat | so I guess the parameter info needs to be cached first :-( | 17:11 | |
nine | Problem is that there is no way to know when exactly it would be ok to run IMPL-CHECK on the thunk (thereby creating the meta object), because a node only knows its descendants. But a parent may also be an ApplyInfix and steal our curry. | ||
lizmat | and you don't know the parent anyway, right ? | 17:12 | |
nine | I don't | ||
lizmat | in better news: I got the PRE phaser working :-) | 17:13 | |
nine | lizmat++ | 17:16 | |
Geth | rakudo/main: bc7189cc82 | (Elizabeth Mattijsen)++ | 6 files Add complete support for PRE phasers - Grammar / Actions added - RakuAST::StatementPrefix::Phaser::Pre classes added - Deparsing added - Tests added This one turned out to be a bit more difficult, but in the end simpler because the QAST-twiddling in World from before, has been replaced by generating code using RakuAST classes. Only tricky bit was to hide this extra code from deparsing, to allow roundtripping. |
17:36 | |
lizmat | onto POST! | ||
17:44
dogbert17 joined
18:00
reportable6 left
|
|||
Geth | rakudo/main: 73839db27f | (Stefan Seifert)++ | 2 files RakuAST: fix "lexical already declared" when placeholder is used multiple times |
18:00 | |
rakudo/main: 28cb8cc2d0 | (Stefan Seifert)++ | 3 files RakuAST: fully implement whatever currying of infixes With this * * * + * * * results in a callable taking 4 args and returning the sum of two products. The difficulty here is that each tree node only knows its children but not its parent. Thus a node cannot know whether there is a parent infix ... (6 more lines) |
|||
nine | 109 and 641! | ||
18:01
reportable6 joined
18:39
melezhik joined
18:40
melezhik left
18:51
ab5tract joined
18:57
melezhik joined
19:02
melezhik left
19:04
melezhik joined,
melezhik left
19:22
gfldex joined
19:54
epony joined
20:54
nine left,
nine joined
21:28
NemokoschKiwi joined
23:04
ab5tract left
23:43
epony left
|
|||
NemokoschKiwi | do `is` calls all count as tests with regards to the argument of `plan`? | 23:50 | |
i.e if I write a block in roast with two is'es, does that increment that number by two? | 23:51 | ||
23:57
NemokoschKiwi left
|