🦋 Welcome to the MAIN() IRC channel of the Raku Programming Language (raku.org). Log available at irclogs.raku.org/raku/live.html . If you're a beginner, you can also check out the #raku-beginner channel!
Set by lizmat on 6 September 2022.
00:00 reportable6 left 00:01 reportable6 joined 00:03 japhb left 00:17 deoac joined 00:35 japhb joined 01:35 evalable6 left, linkable6 left 01:37 evalable6 joined, linkable6 joined 01:58 Xliff left 02:00 deoac left 03:00 tellable6 left, evalable6 left, shareable6 left, reportable6 left, bloatable6 left, bisectable6 left, sourceable6 left, quotable6 left, committable6 left, nativecallable6 left, statisfiable6 left, benchable6 left, squashable6 left, releasable6 left, notable6 left, unicodable6 left, linkable6 left, coverable6 left, greppable6 left, bloatable6 joined, notable6 joined 03:01 evalable6 joined, tellable6 joined, benchable6 joined, committable6 joined, quotable6 joined, linkable6 joined, coverable6 joined 03:02 shareable6 joined, squashable6 joined, sourceable6 joined, bisectable6 joined, reportable6 joined, statisfiable6 joined, nativecallable6 joined, unicodable6 joined, greppable6 joined 03:03 releasable6 joined 03:12 squashable6 left 03:14 squashable6 joined 03:33 razetime joined 04:05 jpn joined 04:06 jpn joined, razetime left 04:10 jpn left 04:36 melezhik joined
melezhik . 04:36
tonyo melezhik: what exactly do you need resource wise? i can't get a static ip and my internet is very unreliable 04:37
if it's just one way to your servers and isn't mining bitcoins then it should maybe work (i live in the woods) 04:38
04:42 melezhik left 05:04 melezhik joined
melezhik Just Linux VM with 16-32 gb ram and , yes static ip 05:04
05:06 melezhik left 05:22 jrjsmrtn left 06:00 reportable6 left, razetime joined 06:03 reportable6 joined 06:36 wayland joined 06:38 wayland is now known as wayland76 06:55 abraxxa joined 07:15 abraxxa left 07:22 jpn joined 07:33 vlad joined 07:38 abraxxa joined 07:50 Manifest0 joined 08:02 razetime left, vlad left 08:17 teatwo left 08:18 teatwo joined 08:19 tea3po joined 08:22 teatwo left 08:27 razetime joined 08:29 sena_kun joined 08:30 Sgeo left 08:43 jpn left 09:11 wafflus joined 09:15 ab5tract joined 09:50 jpn joined 09:53 clarkema1 joined
Geth docker: 7c4b717825 | (Daniel Mita)++ | 5 files
Bump to 2023.08
10:09
docker: 9b9e5827fb | Altai-man++ (committed using GitHub Web editor) | 5 files
Merge pull request #56 from Raku/2023.08

Bump to 2023.08
10:23 jpn left 10:27 abraxxa left 10:31 abraxxa joined 10:41 jpn joined 10:56 abraxxa left 11:09 NemokoschKiwi joined
NemokoschKiwi wafflus: so here we go 11:11
wafflus ok 11:12
NemokoschKiwi bisectable6: (say: "d", 5).say
bisectable6 NemokoschKiwi, Will bisect the whole range automagically because no endpoints were provided, hang tight
NemokoschKiwi, ¦6c (68 commits): «(d 5)␤»
NemokoschKiwi, Nothing to bisect!
NemokoschKiwi so apparently this has always been the same
11:13 ab5tract left
wafflus ok /me confusedly wonders why Nemokosch as turned into a kiwi and is now talking 11:14
has
11:14 ab5tract joined
NemokoschKiwi the IRC bots don't work via discord 11:14
wafflus ah ok are you a bot? 11:15
NemokoschKiwi actually, the evalbot doesn't work either, but there is an evalbot for the discord side as well, using the glot.io API
no, the point isn't that I'm a bot, although that sounds like a fun perspective xD
I wanted to access an IRC bot 11:16
wafflus i didn't think you where but i thought you might have been one of the most sophisticated bots ever i wasn't 100% sure
NemokoschKiwi maybe in the close future 🕵️‍♂️
wafflus maybe they can take your brain out and put it into a robot body like robocop 2 11:17
NemokoschKiwi let me show you another example of bisecting, on something where I know there has been a regression
bisectable6: 'almafa' ~~ Real()
bisectable6 NemokoschKiwi, Will bisect the whole range automagically because no endpoints were provided, hang tight
wafflus k np you have been so nice and helpful 11:18
bisectable6 NemokoschKiwi, ¦6c (68 commits): «»
NemokoschKiwi, Nothing to bisect!
NemokoschKiwi um, am I stupid or something?
maybe this one also needs to produce output
bisectable6: say('almafa' ~~ Real()) 11:19
bisectable6 NemokoschKiwi, Will bisect the whole range automagically because no endpoints were provided, hang tight
NemokoschKiwi, Output on all releases: gist.github.com/7b1674fb362ea31da2...2e87358dfe
NemokoschKiwi, Bisecting by output (old=2020.10 new=2020.11) because on both starting points the exit code is 0
NemokoschKiwi, bisect log: gist.github.com/1d9b5d6c1ddeed40ac...649ed384a5 11:20
NemokoschKiwi, (2020-11-15) github.com/rakudo/rakudo/commit/f2...e8f9076d6e
NemokoschKiwi, ⚠ New output detected, please review the results manually
NemokoschKiwi, Output on all releases and bisected commits: gist.github.com/b786d8965262a868e0...8c3f5c1631
11:20 NemokoschKiwi left
nemokosch okay, this was meant to illustrate how cool this bot is 11:21
wafflus it's verry cool though probally a bit ahead in my understanding :)
nemokosch it's just, if you really run out of options why something doesn't work, or works differently 11:22
then you can check if there has been a change
wafflus nice
nemokosch here for example I'm positive that the current behavior of something ~~ Type() is borked 11:23
wafflus so its a actuall bug in raku itself?
nemokosch well, in Rakudo at least 😛 11:24
wafflus look at broken glass all around
sorry
nemokosch for say: "d", 5 I wouldn't be sure but at the very least it's unexpected by everything I know 11:25
11:26 jpn left
wafflus what if you did printf 11:27
:
sorry my bad anways thanks for your help 11:29
kjp m: $*OUT.say: "d', 5 11:35
camelia ===SORRY!=== Error while compiling <tmp>
Unable to parse expression in double quotes; couldn't find final '"' (corresponding starter was at line 1)
at <tmp>:1
------> $*OUT.say: "d', 5⏏<EOL>
expecting any of:
argum…
kjp bah!
m: S*OUT.say: "d", 5
camelia ===SORRY!===
Unrecognized regex metacharacter , (must be quoted to match literally)
at <tmp>:1
------> S*OUT.say: "d"⏏, 5
Couldn't find terminator *
at <tmp>:1
------> S*OUT.say: "d",⏏ 5
expecting any of:
kjp $*OUT.say: "d", 5
evalable6 d5
kjp What I am getting out is that : only introduces arhuments to methods, and a bare say is a function, and not a method. 11:36
nemokosch interesting
well, we did trace down what happened for say: "d", 5
say: became a label
the question is: should it be allowed to become a label there?
kjp Interesting question, but allowing a colon there to introduce arguments o a function would at least be very confusing. 11:38
Being a syntax error would be more useful.
nemokosch oh right, what I originally mistook it for was say "d": 5 11:39
that would be the equivalent of "d".say(5)
but for labels, all I can find is that they are meant to denote loops 11:40
we have a bare expression here, not a loop
kjp True, but I'm not au fait with things at that level. I can't remember the last time I used a label in any language other than assembler (and that's over 20 years ago). 11:41
nemokosch who are you, if I may? What is your relation to Raku? I can see you have been around for a couple of years at least, and I used to think you were the IRC account of the late Kaiepi 11:42
kjp Nope; just a retired sysadmin who used a lot of perl over the years and has been interested in and writing some raku for the last decade or so. 11:43
I just checked -- one git repo going back to November 2013, so a decade is about right. 11:44
nemokosch that's solid 😄
kjp solid maybel; whether it's sane or not given some of the things I write is another matter. 11:45
nemokosch what may be insane about it? The task? The density of the code? The reliance on metamodel features? 11:47
kjp The types of things; with other languages probably being a lot more suitable. 11:50
11:56 wafflus left 12:00 reportable6 left 12:01 reportable6 joined 12:16 jpn joined 12:17 jgaz left
nemokosch well, everything can be a lesson, either for you or for the design/implementation of the language 12:27
kjp But have I learnt those lessons? 12:28
Anyway -- it's bedtime, so see you tomorrow.
nemokosch the only person who can know the answer to that question is you 😛
good night
12:54 razetime left, jpn left 13:02 jpn joined 13:05 melezhik joined
melezhik say I a have a private attribute in my class named $!foo, how can I reference to it by symbolic link, when the name of attribute is taken from another variable? 13:07
m: class Foo { has !$foo; method bar () { my $name = "foo";  say $!$name }  } 13:08
camelia ===SORRY!=== Error while compiling <tmp>
Malformed has
at <tmp>:1
------> class Foo { has⏏ !$foo; method bar () { my $name = "foo"
melezhik m: class Foo { has !$foo; method bar () { my $name = "foo";  say $!$name }  } }
camelia ===SORRY!=== Error while compiling <tmp>
Malformed has
at <tmp>:1
------> class Foo { has⏏ !$foo; method bar () { my $name = "foo"
melezhik m: class Foo { has !$foo; method bar () {  }   }
camelia ===SORRY!=== Error while compiling <tmp>
Malformed has
at <tmp>:1
------> class Foo { has⏏ !$foo; method bar () {  }   }
ab5tract melezhik: you've got the twigil mixed up 13:09
melezhik m: class Foo { has $!foo; method bar () {  }   }
camelia ( no output )
melezhik m: class Foo { has $!foo; method bar () {  my $name = "foo" }   }
camelia ( no output )
13:09 jpn left
melezhik m: class Foo { has $!foo; method bar () {  my $name = "foo"; say $!{$name} }   } 13:10
camelia ===SORRY!=== Error while compiling <tmp>
Unsupported use of %! variable
at <tmp>:1
------> ar () {  my $name = "foo"; say $!{$name}⏏ }   }
melezhik m: class Foo { has $!foo; method bar () {  my $name = "foo"; say $!($name) }   }
camelia ( no output )
melezhik m: class Foo { has $!foo = "hello"; method bar () {  my $name = "foo"; say $!($name) }   }; Foo.new.bar().say
camelia Cannot find method 'is_dispatcher' on object of type BOOTCode
in method bar at <tmp> line 1
in block <unit> at <tmp> line 1
melezhik m: class Foo { has $!foo = "hello"; method bar () {  my $name = "foo"; say $!($name) }   }; Foo.new.bar() 13:11
camelia Cannot find method 'is_dispatcher' on object of type BOOTCode
in method bar at <tmp> line 1
in block <unit> at <tmp> line 1
melezhik m: class Foo { has $!foo = "hello"; method bar () {  my $name = "foo"; say $!($name) }   };  my $a = Foo.new()
camelia ( no output )
melezhik m: class Foo { has $!foo = "hello"; method bar () {  my $name = "foo"; say $!($name) }   };  my $a = Foo.new(); $a.bar();
camelia Cannot find method 'is_dispatcher' on object of type BOOTCode
in method bar at <tmp> line 1
in block <unit> at <tmp> line 1
melezhik m: class Foo { has $!foo = "hello"; method bar () {  my $name = "foo"; say "OK";  say $!($name) }   };  my $a = Foo.new(); $a.bar(); 13:12
camelia OK
Cannot find method 'is_dispatcher' on object of type BOOTCode
in method bar at <tmp> line 1
in block <unit> at <tmp> line 1
melezhik m: class Foo { has $!foo = "hello"; method bar () {  my $name = "foo"; say "OK";   }   };  my $a = Foo.new(); $a.bar();
camelia OK
melezhik m: class Foo { has $!foo = "hello"; method bar () {  my $name = "foo"; say "OK";  say $!foo   };  my $a = Foo.new(); $a.bar();
camelia ===SORRY!=== Error while compiling <tmp>
Missing block
at <tmp>:1
------> $!foo   };  my $a = Foo.new(); $a.bar();⏏<EOL>
melezhik m: class Foo { has $!foo = "hello"; method bar () {  my $name = "foo"; say "OK";  say $!foo;   };  my $a = Foo.new(); $a.bar(); 13:13
camelia ===SORRY!=== Error while compiling <tmp>
Missing block
at <tmp>:1
------> !foo;   };  my $a = Foo.new(); $a.bar();⏏<EOL>
melezhik m: class Foo { has $!foo = "hello"; method bar () {  my $name = "foo"; say "OK";  say "OK2";   };  my $a = Foo.new(); $a.bar();
camelia ===SORRY!=== Error while compiling <tmp>
Missing block
at <tmp>:1
------> OK2";   };  my $a = Foo.new(); $a.bar();⏏<EOL>
melezhik m: class Foo { has $!foo = "hello"; method bar () {  my $name = "foo"; say "OK";   }   };  my $a = Foo.new(); $a.bar();
camelia OK
melezhik m: class Foo { has $!foo = "hello"; method bar () {  my $name = "foo"; say "OK";   say $!foo; }   };  my $a = Foo.new(); $a.bar();
camelia OK
hello
melezhik m: class Foo { has $!foo = "hello"; method bar () {  my $name = "foo"; say "OK";   say $!foo; }   };  my $a = Foo.new(); $a.bar(); 13:14
camelia OK
hello
melezhik so basically instead of  say $!foo; inside bar method, reference to $!foo indirectly via $name, is it possible?
13:15 wafflus joined
melezhik m: class Foo { has $!foo = "hello"; method bar () {  my $name = "foo"; say "OK";   say ::($!$name); }   };  my $a = Foo.new(); $a.bar(); 13:15
camelia ===SORRY!=== Error while compiling <tmp>
Unable to parse expression in indirect name; couldn't find final ')' (corresponding starter was at line 1)
at <tmp>:1
------>  my $name = "foo"; say "OK";   say ::($!⏏$name); }   };  my …
melezhik m: class Foo { has $!foo = "hello"; method bar () {  my $name = "$!foo"; say "OK";   say ::($name); }   };  my $a = Foo.new(); $a.bar(); 13:16
camelia OK
No such symbol 'hello'
in method bar at <tmp> line 1
in block <unit> at <tmp> line 1
melezhik m: class Foo { has $!foo = "hello"; method bar () {  my $name = "$!foo"; say "OK";   say Foo::($name); }   };  my $a = Foo.new(); $a.bar();
camelia ===SORRY!=== Error while compiling <tmp>
Combination of indirect name lookup and call not supported
at <tmp>:1
------> = "$!foo"; say "OK";   say Foo::($name)⏏; }   };  my $a = Foo.new(); $a.bar();
expecting any of:
ab5tract melezhik: you could create a new class and create an object as a private instance variable, then in that class have all the different variables defined as public variables. This would allow $!private."$foo"
13:17 Vyrus is now known as Vyrus_away
melezhik m: class Foo { has $!foo = "hello"; method bar () {  my $name = "$!foo"; say "OK";   say MAIN::($name); }   };  my $a = Foo.new(); $a.bar(); 13:17
camelia ===SORRY!=== Error while compiling <tmp>
Combination of indirect name lookup and call not supported
at <tmp>:1
------> = "$!foo"; say "OK";   say MAIN::($name)⏏; }   };  my $a = Foo.new(); $a.bar();
expecting any of:
melezhik m: class Foo { has $!foo = "hello"; method bar () {  my $name = "$!foo"; say "OK";   say ::($name); }   };  my $a = Foo.new(); $a.bar();
camelia OK
No such symbol 'hello'
in method bar at <tmp> line 1
in block <unit> at <tmp> line 1
melezhik m: class Foo { has $!foo = "hello"; method bar () {  my $name = '$!foo'; say "OK";   say ::($name); }   };  my $a = Foo.new(); $a.bar(); 13:18
camelia OK
No such symbol '$!foo'
in method bar at <tmp> line 1
in block <unit> at <tmp> line 1
ab5tract m: class Foo { has $!foo = "hello"; method bar () { my $name = "$!foo"; say "OK"; say Foo::("$!foo"); } }; my $a = Foo.new(); $a.bar()
camelia ===SORRY!=== Error while compiling <tmp>
Combination of indirect name lookup and call not supported
at <tmp>:1
------> "$!foo"; say "OK"; say Foo::("$!foo")⏏; } }; my $a = Foo.new(); $a.bar()
expecting any of:
melezhik m: class Foo { has $!foo = "hello"; method bar () {  my $name = '$!foo'; say "OK";   say Foo::($name); }   };  my $a = Foo.new(); $a.bar();
camelia ===SORRY!=== Error while compiling <tmp>
Combination of indirect name lookup and call not supported
at <tmp>:1
------> = '$!foo'; say "OK";   say Foo::($name)⏏; }   };  my $a = Foo.new(); $a.bar();
expecting any of:
ab5tract jinx :) 13:19
melezhik m: class Foo { has $!foo = "hello"; method bar () {  my $name = '$foo'; say "OK";   say self!$name; }   };  my $a = Foo.new(); $a.bar(); 13:22
camelia ===SORRY!=== Error while compiling <tmp>
Cannot use this form of method call with a private method
at <tmp>:1
------> ame = '$foo'; say "OK";   say self!$name⏏; }   };  my $a = Foo.new(); $a.bar();
expecting any of:
ab5tract melezhik: this sounds a bit like an X-Y problem to me, to be honest. 13:23
13:23 jpn joined
melezhik m: class Foo { has $!foo = "hello"; method bar () {  my $name = '$foo'; say "OK";   say self!$name(); }   };  my $a = Foo.new(); $a.bar(); 13:24
camelia ===SORRY!=== Error while compiling <tmp>
Cannot use this form of method call with a private method
at <tmp>:1
------> e = '$foo'; say "OK";   say self!$name()⏏; }   };  my $a = Foo.new(); $a.bar();
13:28 jpn left 13:30 wayland joined, wayland76 left 13:37 melezhik left
tbrowder__ .ask El_Che what is the intended use of the path /opt/rakudo-pkg/share/perl6/bin 13:54
tellable6 tbrowder__, I'll pass your message to El_Che
13:56 Vyrus_away is now known as Vyrus
tbrowder__ looks like El_Che is busy with providing the new release, very cool! 13:58
13:59 ab5tract left 14:00 jpn joined 14:01 ab5tract joined 14:07 jpn left
tbrowder__ .tell El_Che it looks to me like the current /etc/profile.d/rakudo-pkg.sh is pointing to the wrong path 14:38
tellable6 tbrowder__, I'll pass your message to El_Che
tbrowder__ i just updated to the latest release 14:39
14:53 avuserow joined 14:55 Sgeo joined
antononcube @tbrowder Thanks for mentioning that -- I did not know moar-2023.08 is relaesed / available. 14:59
tbrowder__ i’m referring to El_Che’s rakudo-pkg release on Rakudo.org. not sure what moarvm version it has 15:21
15:26 jpn joined 15:32 jpn left 15:33 vlad joined
tbrowder__ cat /opt/rakudo-pkg/bin/rakudo-pkg_path.sh yields: 15:37
RAKUDO_PATHS=/opt/rakudo-pkg/bin:/opt/rakudo-pkg/share/perl6/bin 15:41
the last path part does not exist under the current pkg installation from a clean start (no existing /opt/rakudo-pkg directory) 15:43
16:20 jgaz joined 16:25 jpn joined 16:27 Xliff joined
Xliff \o 16:27
16:32 Tirifto left 16:34 Tirifto joined
tbrowder__ o/ 16:40
Xliff: do u use debian?
16:47 vlad left 16:52 bb8 joined, vlad joined 17:00 jpn left
Xliff tbrowder: Actually, it's Ubuntu, which is Debian-based. What's up? 17:09
hythm76 calling `nqp::sha1` directly on a `Junction` doesn't work, but wrapping it in a sub works 17:12
m: use nqp; sub foo ( $j ) { nqp::sha1($j) }; my $j = <a b>.any; say foo($j); say nqp::sha1( $j );
camelia any(86F7E437FAA5A7FCE15D1DDCB9EAEAEA377667B8, E9D71F5EE7C92D6DC9E92FFDAD17B8BD49418F98)
This type cannot unbox to a native string: P6opaque, Junction
in block <unit> at <tmp> line 1
hythm76 `nqp:sha1(<ab>.any)` # should this work? 17:14
gfldex no
hythm76 why not
tbrowder__ i'm having trbl using El_Che's rakudo-pkg with two new debian systems. i'm trying to have root's zef modules usable by ordinary users unless they want to install their own. i think in theory that should work without a lot of effort, but getting the paths and pieces to work together has so far escaped my attempts.
Xliff Containers?
gfldex Because NQP isn't part of Raku. Also, NQP doesn't really know about Junctions, at least not on NQP-Ops. 17:15
Xliff tbrowder__: Hmmm.... even Ubuntu's paths are subtally different from stock Debian. Do you need another test system to run against?
gfldex: Don't you mean that the other way 'round? NQP is a part of Raku, but Raku is NOT a part of NQP? 17:16
gfldex No, NQP is not part of Raku. There are no tests that ask for NQP-Ops in Roast. 17:17
Xliff hythm76: You would need to use the part of the Junction class that stores the individual items.
gfldex: Yet you can "use nqp" and Raku won't work without it.
nemokosch Raku could work without NQP in theory
gfldex You can, because Rakudo is build with NQP. Other Raku implementation might not.
nemokosch it's rather Rakudo that is based on NQP 17:18
Xliff gfldex: True, but there is only one, right now.
gfldex If you `use nqp;` you are in impementation-detail-land where one can easily get lost.
Xliff And nemokosch has the righter interpretation of it.
hythm76 so what is the difference between calling `nqp::sha1($j), and calling it inside of a sub body `sub foo ( $j ) { nqp::sha1($j) };`?
Xliff gfldex: This is also understood. However it is the direction that will confuse most people. That's my only point.
nemokosch hythm76: I think the right question to ask is whether the call to foo distributes the junction or not 17:19
if it does then we have an answer
gfldex Indeed. Exposing nqp by Rakudo may have been a mistake.
Xliff hythm76: The internals of how Junction are passed to a sub is allowing that to work.
gfldex: No tears over spilled milk... 17:20
17:20 vlad left
Xliff nemokosch: It does, and it is. 17:20
gfldex Junctions are a side-effect (so to speak) of MMD and there is no MMD on NQP-Ops.
nemokosch at the end of the day, we are all saying the same thing, then 17:21
Xliff Yep.
nemokosch moreover, if I have this right, if you did sub foo(Mu $j), suddenly that would also fail
gfldex Xliff: If you use anything that is not in Roast, it's going to be your tears, not mine. So I'm good if you spill some milk. :->
hythm76 nemokosch: yes sub foo(Mu $j) failed 17:22
nemokosch okay, so there is the answer, then: Junction is a "high-level" feature of the core, and it's the default type constraint Any that triggered the resolution of it 17:23
I don't think the runtime, or even NQP, knows anything about Junctions 17:24
Xliff gfldex: I'm not the one lamenting a decision that has had unintended benefits for Raku and the Community over it's last 8 years of existence over an issue that is largely academic.
gfdex: hythm76 asked a question, that was answered without mentioning NQP-Ops or Roast. 17:25
gfdex: Fortunately, I think we've arrived at an answer. Thanks for your input.
gfldex I'm pointing out facts. Nothing more, nothing less. If that offends you, there is /ignore for you. You don't have to ready anything I write. 17:26
nemokosch from my personal perspective, it's fortunate that Junction lives solely in the core because I know the core much more than NQP or the runtime 17:27
actually, anybody can understand the core reasonably well, all it takes is Raku knowledge and a little bit of NQP knowledge 17:28
this describes the dynamics of Rakudo development as well 17:30
there is a decent number of people who can contribute to the core
there have been some experienced users who could tackle something in the metamodel 17:31
hythm76 is it discouraged to use nqp in Raku code? and if one needs  `sha1` for example,  it is recommended to search for a module that provides sha1 functionality, instead of using nqp::sha1?
nemokosch and then NQP and the VMs are basically only a couple of dedicated individuals...
especially the VMs, of course
hythm76: this is kind of a controversial matter I think 17:33
it seems there was this vow or promise back in the day that "we won't use NQP simply for performance advantages"
but then it still happened, quite a lot of times, to modules like JSON::Fast
so at this point NQP is kind of the elephant in the room 17:34
hythm76 I see
gfldex hythm76: If you use nqp in your code and nqp needs changing, the core devs wont listen to your complaints. If you `use v6.d;`, we guarentee that you code will keep working for the next 100 years, so long you stay in the boundaries of tests for `v6.d`. NQP is not covered by those tests.
hythm76 Ok makes sense 17:35
nemokosch the same is true for the metamodel, strictly speaking
it's just the metamodel would be even more painful to give up on, than NQP is
gfldex That beeing written, nqp::sha1 is very unlikely to change in the next 10 years and it would be easy to fix in your code.
nemokosch if use nqp is the elephant in the room than metamethods are the blue whale in the room 😄 17:36
gfldex To provide a little context, Rakudo is using sha1 to provide identity to distribution/modules because we can't depends on os-level paths (because of Windows). 17:37
nemokosch this is why there is also a kind of tension between the people who draw the line at the Raku specs and the people who take Rakudo at face value, as the only thing we actually have and works
gfldex If you got lots of modules installed, there is a performance burden and maybe, just maybe somebody finds an algo that is much faster. That could be a reason to replace nqp::sha1. 17:38
nemokosch in case you are interested, not so long ago I opened a problem-solving issue about it, to at least preserve the problem: github.com/Raku/problem-solving/issues/381 17:39
17:41 wafflus left 17:45 jrjsmrtn joined
hythm76 actually my use case for sha1 is very similar to how Rakudo uses is (caching distributions locally using their identity eg. `nqp:sha1(foo:ver<0.1>:auth<suthor>:api<>`), and it makes sense for me to use nqp::sha1 in this case, and thats is probably tthe only nqp sub I have used 17:45
17:53 jpn joined
ugexe m: say CompUnit::Repository::Distribution.new(Distribution::Hash.new(${:name<Foo>, :version<1.1>}, :prefix(IO::Path))).id 17:54
camelia 44E70226BEB02350F69BAEEC430E830E3019B63D
tonyo . 17:55
18:00 reportable6 left 18:02 reportable6 joined
tbrowder__ Xliff: i may spin up a new Ubuntu VM for testing, but i really like Debian for its rolling releases. can Ubuntu do that now? 18:02
yes, paths on debian are too complicated imho 18:18
tea3po debian rolling releases? 18:27
18:29 sena_kun left 18:30 sena_kun joined 18:33 bb8 left 18:35 vlad joined 18:47 vlad left 18:50 jpn left 18:53 jpn joined
tbrowder__ not sure if that's the right term. i used to support an ubuntu host and as i remember it was a giant pain to upgrade the major versions. not as much pain with debian. 18:57
ubuntu may be easier now.
haven't looked at it in about 12 yrs 18:58
19:01 jpn left
tea3po debian testing is rolling-release, but it's not really a release. neither debian nor ubuntu are rolling release. rolling release distros don't have major versions. mint is a debian-derived rolling release distro. 19:26
Xliff tbrowder__: Sorry. I'm splitting my awareness between here and $dayJob.
What do you mean by "rolling release?" 19:27
tea3po both debian and ime ubuntu make upgrading easy, cuz the packages are so high quality.
Xliff Also, with respect to Ubuntu releases, since the latest rollover (xenial to bionic), upgrades have gotten easier.
tea3po there's a strict rule though, you /must/ read the release notes before upgrading. [and also, downgrades are difficult and unsupported] 19:28
Xliff tea3po: I guess I've been lucky, then. I rarely read the release notes. I just don't have the time. :/
tea3po you don't have to read everything but the important stuff will be obvious 19:29
Xliff I guess I will have to start, then. Thanks for the info.
tea3po you usually don't need to do anything to upgrade besides upgrade, but the thing is it's allowed for there to be "you must do/assure X before upgrading or your system WILL be broken" and they put those things in the release notes
Xliff tbrowder: You shouldn't have a problem upgrading 'bionic' to anything through 'mantic', although 'mantic' isn't officially released until sometime in October of this year. 19:30
tea3po this is also why you should not put names like "stable" in your sources.list
Xliff Yeah. That generally means that you do an 'update' and a 'dist-upgrade' before you change the release name in sources.list 19:31
So I did get that part. :)
tea3po dist-upgrade is not a lot different from upgrade
19:31 xinming left
tea3po upgrade will still mix your system if you specify "stable" in sources.list and a new release comes up 19:32
s/up/out/
Xliff Ah, yeah.
tea3po it's poorly named 19:33
debian releases are infrequent enough that reading release notes isn't a huge burden 19:38
19:54 xinming joined 20:01 Xliff left 20:18 teatime joined 20:21 tea3po left 20:22 teatime left, teatime joined 20:24 teatime left, teatime joined 20:41 [Coke] left 21:04 initrod joined 21:17 initrod left 21:22 initrod joined
tbrowder__ i guess i'll stick with debian, 21:23
now if i could just solve the rakudo-pkg trbl 21:25
21:30 initrod left 21:43 TieUpYourCamel left 21:48 xinming left
teatime are you packaging rakudo? 21:52
21:58 bb8 joined
nemokosch El_Che is packaging rakudo 21:58
22:08 IrresistibleMitt joined 22:10 IrresistibleMitt left 22:34 bb8 left 22:56 sena_kun left 23:19 wayland is now known as wayland76 23:44 squashable6 left 23:46 squashable6 joined