🦋 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:55 buildable6 left 00:58 buildable6 joined 00:59 samcv left 01:00 samcv joined 01:02 buildable6 left, buildable6 joined
Xliff lizmat: So is that moar's job? 01:28
01:58 buildable6 left 02:01 buildable6 joined
jdv random datapoint, ive seen docker just lock up on no space... 02:29
just saying not all "real" sw handles faults well. happy path engineering ftw! 02:30
03:01 buildable6 left 03:03 buildable6 joined 04:03 buildable6 left 04:06 buildable6 joined 05:06 buildable6 left, buildable6 joined 06:06 buildable6 left 06:10 buildable6 joined 07:10 buildable6 left 07:13 buildable6 joined 08:13 buildable6 left 08:15 buildable6 joined 08:26 sena_kun joined 08:57 RakuIRCLogger__ joined, Geth left 08:58 RakuIRCLogger left 08:59 lizmat left 09:01 RakuIRCLogger__ left, RakuIRCLogger joined 09:15 buildable6 left 09:17 buildable6 joined 09:19 lizmat joined 10:17 buildable6 left 10:20 buildable6 joined 11:20 buildable6 left 11:22 buildable6 joined 11:26 buildable6 left, buildable6 joined
lizmat bisectable6: my %h{Cool}; dd %h.of 11:51
bisectable6 lizmat, Will bisect the whole range automagically because no endpoints were provided, hang tight
lizmat, ¦6c (72 commits): «Any␤» 11:52
lizmat, Nothing to bisect!
lizmat bisectable6: my %h{Cool}; old=2015.12 dd %h.of
bisectable6 lizmat, Will bisect the whole range automagically because no endpoints were provided, hang tight
lizmat, Will bisect the whole range automagically because no endpoints were provided, hang tight 11:53
lizmat bisectable6: old=2015.12 my %h{Cool}; dd %h.of
bisectable6 lizmat, Output on all releases: gist.github.com/8a638f929ce688bda8...656004a80d
lizmat, Nothing to bisect!
lizmat, On both starting points (old=2015.12 new=f45297d) the exit code is 0 and the output is identical as well
lizmat, Output on both points: «Any␤»
12:02 Geth joined
Geth rakudo/main: fef0c62961 | (Elizabeth Mattijsen)++ | src/Raku/ast/scoping.rakumod
RakuAST: allow nulls in resolving logic

To allow building resolve lists with fixed index references
Based on ab5tract's work in PR #5417
12:04
rakudo/main: 48068a03c8 | (Elizabeth Mattijsen)++ | src/Raku/ast/variable-declaration.rakumod
RakuAST: fix codegenning of object hashes with explicit constraint

And some additional streamlining.
Based on ab5tract's work on PR #5417
12:22 buildable6 left 12:23 buildable6 joined
Geth Benchmark/main: c48c2e1a7d | 2colours++ | 5 files
2.0
12:52
rakudo: ab5tract++ created pull request #5420:
DRAFT: RakuAST: Add :{} object hash initialization
13:02
rakudo/main: bb9496e512 | ab5tract++ (committed by Elizabeth Mattijsen) | 3 files
RakuAST: Improve WhateverCode's .raku

This change allows `(* * *).raku` to return `* * *`, providing round-tripping through `raku` for WhateverCodes.
13:12
13:16 Xliff left 13:23 buildable6 left, buildable6 joined 14:23 buildable6 left 14:27 buildable6 joined 14:31 buildable6 left, buildable6 joined
releasable6 Next release in ≈4 days and ≈3 hours. There are no known blockers. Please log your changes in the ChangeLog: github.com/rakudo/rakudo/wiki/ChangeLog-Draft 15:00
Geth rakudo: usev6++ created pull request #5421:
(Re-)align backtraces on JVM with MoarVM
15:19
15:27 buildable6 left 15:29 nebuchadnezzar joined 15:30 buildable6 joined 16:30 buildable6 left 16:32 buildable6 joined
Geth rakudo/main: 7e66cd2fc4 | (Elizabeth Mattijsen)++ | 6 files
RakuAST: add sections to translation context

  - named-A .. G
  - removed named datagram, exitcode: they turned out to be of named
   arguments of internals
17:02
roast: 2c72b5b7e2 | (Christian Bartolomäus)++ | S02-types/array-shapes.t
Fix tests for arrays that aren't shaped

It looks like these tests have been added on the wrong assumption that adding a dot between the array name and the shape declaration should fail. At the time when the tests were added the synopsis (S09-data.pod) stated that those forms are errors. Later on it was clarified that they aren't supposed to die, but just can't be used to declare shaped arrays: github.com/Raku/old-design-docs/co...8527c2291.
17:14
17:14 lizmat left
nemokosch on one hand it's great that somebody fills the most obvious gaps 17:17
on the other hand it doesn't seem like a good idea to just upstream commit to what is still considered to be the language specification 17:18
practically redefining the language on the fly
bartolin nemokosch: yeah, you have a point there. 17:21
nemokosch everything I wanted to say in this topic, I have already said. In fact, I even asked the RSC to at least refrain from committing to Roast without any formal procedure 17:26
bartolin oh, that's something I've missed.
nemokosch you aren't the only one, I'm afraid 😅
but of course this would mostly be solved if there was a "real specification" and there was no such pressure on Roast 17:27
bartolin btw, I would be totally fine with reverting the above commit and fix the issue in a different way. 17:28
nemokosch for what it's worth, I don't think there is a point in reverting; it's not something unprecedented to happen 17:30
I just wanted to raise awareness of the contradictory nature of this "long-standing tradition"
bartolin I was under the impression that we have an "immutable" branch "6.c" for the state of roast when 6.c was released -- and a branch "6.c-errata" for obvious errors (where this commit could be merged to). And then the same for 6.d. But it looks like we don't have a branch "6.d". 17:31
17:32 buildable6 left
nemokosch I think in general it would be good to still "see the forest for the trees" 17:33
it's a recurring theme that there is a broader problem and some particular examples get remedied, not the problem itself 17:34
17:35 buildable6 joined
reverting a commit when there is a long-running tradition to upstream redefine the language would be such a remedy 17:36
bartolin just to make sure I understand correctly: With "see the forest for the trees" you refer to (additionally) having a written description how things are supposed to work, instead of just roast?
nemokosch I mean it much more generally
general issue comes up -> "for example?" -> 3 examples given -> addressing the given examples one by one -> n-3 examples remain 17:37
ironically, the very idea of Roast relies very much on this way of thinking
in the presentation you linked, Patrick Michaud basically just said "there are still gaps in the spec but they will get filled over time". I really wish it was that simple. It didn't get filled over time, moreover I think it cannot get "filled" 17:39
17:40 buildable6 left, buildable6 joined
bartolin because the combination of features lets the number of required tests explode (so that it becomes impossible to manage/handle/understand)? (Please excuse my ignorance, if you already explained this in detail. I didn't follow that closely in the last months.) 17:44
nemokosch At the very least, all code paths that can run for user code, should be tested, any of them that aren't are immediately subject to undefined behavior 17:45
and "all code paths" should arguably cover the bytecode VM(s) as well 17:46
and then still, in theory, somebody could fulfill the spec in a different way, with different code paths, unfolding different undefined behavior
you cannot even phrase statements like "adding two Int (exact class) values with the &infix:<+> operator yields an Int (exact class)" 17:47
I also don't think there is any strategy for what operators must be available as subs, what absolutely mustn't, and what are compiler-specific 17:48
fortunately, this approach is so limiting that finding examples that break out of it is simple, I won't run out of them easily 17:49
we all just naturally imply that certain features "work", without any specification of what "working" means 17:51
bartolin I see your points. I'm afraid that I'm not qualified to propose a "good" solution to the problem :( 17:58
nemokosch I think, even if there isn't a great lot of motivated people to take up on it, or a tight deadline kind of thing, at least the aim/final goal should be a written specification, a la Ada, C, C++, iirc Pascal also had one, and so on 18:02
here, the examples are just to illustrate that this is definitely a real possibility
(again, even though I think "the interpreter is the spec" or "the reference guide is the spec" are also better approaches than "a very finite number of Raku tests are the spec") 18:04
PHP is a more recent example of a written specification, it was even mentioned in that talk 18:06
Mind you, I'm not saying that XYZ should suddenly start working on a written specification for Raku, much rather that it would be good to announce, or circulate the idea at the very least, that this is a long-term goal 18:08
which is really just a very symbolic acknowledging that Roast is uncapable of sufficiently defining the language 18:10
bartolin In my mind a combination of a written description and a (substantially expanded) test suite could form a specification. I've never looked into a C standard (or some such), but I could imagine that trying to write down everything verbally would be a really, really tedious work -- and it would leave room for corner cases or undefined behavior as well. So having an evolving test suite that codifies 18:22
exactly how things are supposed to work still seems reasonable to me.
nemokosch the C standard deliberately leaves space for "imagination" 18:27
but I'd say that's nothing compared to being unable to define any operations, let alone in a language with this abundance of built-in types and operations 18:28
bartolin But to come back to committing something to roast: Would it work to have immutable branches per released version of the language ("6.c", "6.d"). If new tests are added to the current default branch of roast ("master"), that wouldn't affect the released version. (It would affect the future versions, though.) 18:30
(That was my mental model how we handle roast. But only today I noticed that we don't have a branch "6.d".) 18:31
nemokosch What you suggest makes sense to me, and it definitely sounds more precautious than the current way 18:32
bartolin we *do* have "6.c-errata" and "6.d-errata", btw. Those would come into play for obvious errors in the released versions. 18:34
bartolin tries to find references to the setup with "6.c", "6.c-errata", etc. 18:35
18:35 buildable6 left
nemokosch is 6.d one big errata? 😂 18:37
18:38 buildable6 joined 18:47 notna joined
bartolin If I'm not mistaken, we (or better jdv++) not only run spectests against master, but also against 6.c-errata and 6.d-errata for each release (see github.com/rakudo/rakudo/blob/main...ain=1#L301 and github.com/rakudo/rakudo/blob/main...L510-L519) 18:55
19:10 notna left
bartolin ah, I finally noticed that we have a tag "6.d" (and "6.c") for roast. That sounds just fine -- no need for a branch there. Sorry for the noise. 19:28
nemokosch it's also strange that the versions are presented in an incremental fashion 19:30
as if 6.d was just 6.c plus stuff
19:38 buildable6 left 19:39 buildable6 joined
Geth roast: usev6++ created pull request #845:
Tweak README: Use tags for new releases, not branches
19:59
20:39 buildable6 left 20:40 buildable6 joined 20:58 lizmat joined 21:40 buildable6 left 21:41 buildable6 joined 21:45 buildable6 left, buildable6 joined 22:01 sena_kun left
Geth rakudo/main: 495bec9f4e | ab5tract++ (committed by Elizabeth Mattijsen) | 4 files
RakuAST: Add :{} object hash initialization

This turns out to be a simple case of enabling multiple identities for `RakuAST::Circumfix::HashComposer` as both `&circumfix:<{ }>` and `&circumfix:<:{ }>`.
Send the :object-hash reality down from the grammar through the block-or-hash calculation into the composer itself, set the resolver to use the right lookup in the object-hash initialization case, and we're done.
22:10
22:41 buildable6 left 22:44 buildable6 joined 23:44 buildable6 left 23:45 buildable6 joined