🦋 Welcome to Raku! raku.org/ | evalbot usage: 'p6: say 3;' or /msg camelia p6: ... | irclog: colabti.org/irclogger/irclogger_log/raku
Set by ChanServ on 14 October 2019.
Geth ¦ doc: Prince213 assigned to JJ Issue 1-file HTML does not yet exist github.com/Raku/doc/issues/3632 00:32
kleb hi everybody! 00:44
I have been debugging this incredibly bizarre error when running raku, and I think I almost have it figured out. The behavior is incredibly odd 00:45
i was hoping to describe it here and see if anybody might know what i can do to work around it! i think it might be a bug in the interpreter itself, but don't know the project well enough to diagnose it yet 00:46
kleb ------------- file: bin/script#!/usr/bin/env rakuuse v6;use lib 'lib';use MyLibrary::Graph;use MyLibrary::Scrape;sub MAIN { do_stuff(); #this function is from MyLibrary::Scrape}------------- file: lib/MyLibrary/Scraper.pm6use MyLibrary::CompletionChannel;#require Data::Dump::Tree<&ddt>;our sub do_stuff(@seed) { say "do_stuff"; #ddt @seed; 00:53
my $chan = Channel.new;}-------------- file: lib/MyLibrary/Graph.pm6## large file with lots of functions declared "our", as well as some use statements
aw dang it didnt space or indent... 00:55
here it is on pastebin: pastebin.com/raw/qx2zhfNQ
that is a basic idea of the code that is breaking
but the behavior is **almost** non-deterministic. I think i figured out how to deterministically make it break, but this certainly seems like a bug in raku 00:56
guifa What’s is the actual error that it’s giving?
kleb here is the error: 00:57
pastebin.com/raw/6WwiRARd 00:58
timotimo kleb: do you ever access hashes or arrays from multiple threads at the same time?
kleb not in this program stub
timotimo oh, that's not the kind of error i was expecting
kleb i stripped it back to the minimal broken example
timotimo can you use "raku --ll-exception ./bin/runner"?
guifa Do you still get the error if you comment out MyLibrary::Graph? Or are things okay without it? 00:59
kleb here is the --ll-exception output: pastebin.com/raw/Lktihuji 01:00
timotimo oh, 2020.01, is that your raku version? 01:01
ah, right, rakudo-star 01:02
there is a rakudo star of 2020.05 available
rakudo.org/star
kleb if I comment out MyLibrary::Scrape in ./bin/runner, and call a function from MyLibrary::Graph it works find. If I then comment out MyLibrary::Graph, and call that function in MyLibrary::Scrape, it works fine. If I then uncomment MyLibrary::Graph, it **still** works fine! but then if I change one line of code in MyLibrary::Scrape (from one space
to two spaces, for example) it breaks!
it works fine*** 01:03
timotimo can you try deleting the .precomp folder in lib/ ?
kleb if i delete the .precomp folder in lib after getting the error, i still get the error
timotimo fascinating, but as i said, it's quite possible that whatever the bug is was already fixed since then
kleb but then if I comment out MyLibrary::Graph, run it again, it works! then i uncomment that **exact** same line MyLibrary::Graph and it breaks again! 01:04
i am using package manager default raku :)
ill try with the very latest and see if i get it again 01:05
timotimo you can try setting RAKUDO_MODULE_DEBUG and see if that gives any interesting output
kleb wow RAKUDO_MODULE_DEBUG is hyper useful
thank u for that one :) you guys are awesome 01:06
timotimo no problem! 01:07
kleb what does "late loading" mean in the context of that debug output?
timotimo not sure 01:08
kleb pastebin.com/raw/WqAZsTYp 01:09
thats my output when it is **working** with both use statements uncommented 01:10
timotimo huh i wonder where the "Python" comes from that is being compared against in one spot 01:11
timotimo oh, you're using Inline::Python, that could have something to do with it 01:12
kleb and this one is the output from when it is broken: pastebin.com/raw/dZ0avZQB
i am indeed using inline python from the MyLibrary::Graph module
playing around with some networkx code 01:13
but none of that stuff is getting called when it is breaking i dont think...
timotimo i'm going offline now, but i hope you get it to work! 01:14
kleb thanks!!!
timotimo o/
kleb the two commands you gave have already helped me so much thank you!!
it looks like i am getting: Outdated precompiled 01:15
but then i delete ./lib/.precomp and still get the same error 01:17
i will try the newer raku
timotimo i wonder if the lib/.precomp is actually the wrong one?
perhaps "use lib" gives it trouble
no it does look like it's looking at lib/.precomp 01:18
kleb it is errors like these that really teach how everything works under the hood :p 01:21
i just switched to the newest raku with rakubrew and am reinstalling my modules
Geth ¦ problem-solving: JJ assigned to jnthn Issue IO::Path and Distribution::Resource share many methods github.com/Raku/problem-solving/issues/233 07:38
JJMerelo Rien ne va plus! The survey is going to be closed tomorrow docs.google.com/forms/d/e/1FAIpQLS...Q/viewform You want to be heard, fill it today! 07:53
tellable6 2020-09-12T20:53:45Z #raku-dev <ggoebel> JJMerelo Thank you for doing the survey. -MasterDuke mentioned you helped someone transfer some of their modules to raku-community-modules. Is that process documented anywhere?
JJMerelo .tell ggoebel yes I did... but then the amount of modules the community was in charge of increased by 30% and I wasn't too happy about it github.com/Raku/problem-solving/issues/210 My current opinion is that it's much better to get someone else to adopt your module. The community modules should be a last resource. 07:55
tellable6 JJMerelo, I'll pass your message to ggoebel
moritz Raku Fundamentals is now released, both print and ebook! twitter.com/nogoodnickleft/status/...3436916736 08:32
stoned75 m: release my %h; %h.of.say 08:53
camelia 5===SORRY!5=== Error while compiling <tmp>
Undeclared routine:
release used at line 1. Did you mean 'reverse'?
stoned75 m: release my %h; %h.of.say;
camelia 5===SORRY!5=== Error while compiling <tmp>
Undeclared routine:
release used at line 1. Did you mean 'reverse'?
stoned75 m: releases my %h; %h.of.say; 08:54
Geth doc/master: 4 commits pushed by (JJ Merelo)++
camelia 5===SORRY!5=== Error while compiling <tmp>
Undeclared routine:
releases used at line 1. Did you mean 'repeated', 'reverse'?
stoned75 commit: releases my %h; %h.of.say;
committable6 stoned75, ¦releases (46 commits): «(Mu)␤» 08:55
stoned75 commit: releases :{ 0 => 42 }<0>.say; 08:56
JJMerelo moritz: congrats! Shared
committable6 stoned75, gist.github.com/42c42d4e3dddf89c31...af0863e0d2
moritz JJMerelo: thanks on both counts 08:57
JJMerelo: do you have an ETA for Raku Recipies? 08:58
JJMerelo moritz I'm right now in the galleys revision period. Should turn them in by 21st. So I guess late October? 09:00
El_Che moritz: I saw the post about your book on twitter! Comgrats 09:01
I didn't comment om being already in Oreilly's Safari. I don't know if it's a good thing for you or not 09:02
moritz I finished my review October 24th, so it was a bit less than a month turnaround for me 09:03
stoned75 hi. in the gist gist.github.com/42c42d4e3dddf89c31...af0863e0d2 I'm trying to pinpoint what caused this behavior change in rakudo 2018.10. anyone would have an idea ? 09:04
moritz but then this was a second edition, so maybe they had less work in production
Geth doc: 3572f5ae8f | (JJ Merelo)++ | doc/Type/Distribution/Resource.pod6
No tabs anywhere :bug:
linkable6 Link: docs.raku.org/type/Distribution::Resource
JJMerelo moritz maybe. Anyway, couple of Raku-titled books in Apress before the end of the year :-) 09:05
moritz m: say (my $)<0> 09:06
camelia (Any)
moritz bisectable: :{ 0 => 42 }<0>.say;
bisectable6 moritz, Will bisect the whole range automagically because no endpoints were provided, hang tight
El_Che moritz, a typo on the pkg page (no page nr on Safari): In both cases, use version 202.01 to get the best compatibility with the examples used in this book.
bisectable6 moritz, Output on all releases: gist.github.com/08bfd123fbaa253a0c...952caa8e5f
moritz, Bisecting by output (old=2018.09 new=2018.10) because on both starting points the exit code is 0
El_Che 2020.01? 09:07
moritz El_Che: dammit. Thanks for the info. Too late to change in print :-/
bisectable6 moritz, bisect log: gist.github.com/1b6f5470cd1c5af76e...94f6742a42
moritz, (2018-10-08) github.com/rakudo/rakudo/commit/9a...cccf684eae
moritz, Output on all releases and bisected commits: gist.github.com/950ace1eabaa9a0ab1...54b126af13
moritz stoned75: ^^ that's the commit that caused the behavior change, according to git bisect
stoned75 yeah. got it. thanks! 09:08
El_Che moritz: it's very minor, people will use the latest on the pages anyway 09:10
Geth doc/hashmap-eg-output: 06fdbf2645 | (Stoned Elipot)++ | doc/Language/hashmap.pod6
Fix examples' output
11:57
doc: stoned++ created pull request #3633:
Fix examples' output
Geth doc: 5760b5ca12 | (Moritz Lenz)++ | doc/Language/regexes.pod6
Improve wording of :sigspace explanation

wording provided by pmichaud++ in
  github.com/rakudo/rakudo/issues/3906
12:14
linkable6 Link: docs.raku.org/language/regexes
Geth doc/proc-eg-output: e5aa4cf432 | (Stoned Elipot)++ | doc/Type/Proc.pod6
Fix example's output
13:22
doc: stoned++ created pull request #3634:
Fix example's output
doc/words-fix: a5e3684e66 | (Stoned Elipot)++ | 2 files
placate xt/words.t

  - remove duplicated word
  - sort words list
  - fold case
13:27
doc: stoned++ created pull request #3635:
placate xt/words.t
doc/spell-fix: f8c065000e | (Stoned Elipot)++ | 2 files
Add a new word and a word variant exception

This fix spell checks on doc/Type/Distribution/Resource.pod6
13:33
doc: stoned++ created pull request #3636:
Add a new word and a word variant exception
Geth doc/contexts-fix-link: e0c91ffdcf | (Stoned Elipot)++ | doc/Language/contexts.pod6
fix link
13:58
doc: stoned++ created pull request #3637:
fix link
13:59
Geth doc/contexts-eg-output: cff4eeecab | (Stoned Elipot)++ | doc/Language/contexts.pod6
Fix example's output
14:24
doc: stoned++ created pull request #3638:
Fix example's output
Geth doc/contexts-eg-say: 6ce34fd0c3 | (Stoned Elipot)++ | doc/Language/contexts.pod6
Sync example's code and its output
15:02
doc: stoned++ created pull request #3639:
Sync example's code and its output
Geth doc/contexts-op-xref: f236c093d2 | (Stoned Elipot)++ | doc/Language/contexts.pod6
xref operators
15:17
doc: stoned++ created pull request #3640:
xref operators
Geth doc/contexts-extra-word: 874d34d4ac | (Stoned Elipot)++ | doc/Language/contexts.pod6
remove extraneous word
15:26
doc: stoned++ created pull request #3641:
remove extraneous word
Geth doc: cff4eeecab | (Stoned Elipot)++ | doc/Language/contexts.pod6
Fix example's output
16:12
doc: 2617a3d913 | (Tom Browder)++ (committed using GitHub Web editor) | doc/Language/contexts.pod6
Merge pull request #3638 from Raku/contexts-eg-output

Fix example's output
linkable6 Link: docs.raku.org/language/contexts
Geth doc/terms-pair-op: b968f3dfce | (Stoned Elipot)++ | doc/Language/terms.pod6
Tweak operator mention's style and xref it
16:25
doc: stoned++ created pull request #3642:
Tweak operator mention's style and xref it
16:26
Geth doc: decbae6345 | (Stoned Elipot)++ (committed by Juan Julián Merelo Guervós) | doc/Language/hashmap.pod6
Fix examples' output
16:41
linkable6 Link: docs.raku.org/language/hashmap
Geth doc: 53468bce05 | (Stoned Elipot)++ (committed by Juan Julián Merelo Guervós) | 2 files
placate xt/words.t

  - remove duplicated word
  - sort words list
  - fold case
16:46
JJMerelo m: put 333444777 ~~ /(3+)/; 16:49
camelia 333
Geth doc: 6cec70728e | (Stoned Elipot)++ (committed by Juan Julián Merelo Guervós) | doc/Language/terms.pod6
Tweak operator mention's style and xref it
16:54
linkable6 Link: docs.raku.org/language/terms
Geth doc/contexts-eg-say: edf21b8ea4 | (Stoned Elipot)++ | doc/Language/contexts.pod6
Sync example's code and its output

  ... the other way around
17:37
Geth doc/contexts-op-xref: c2651cc2dd | (Stoned Elipot)++ | doc/Language/contexts.pod6
rephrase the sentence about the ? and ! operators
17:47
pel I'm curious as to why Raku does not use LLVM like many new languages do: Rust, Swift, Kotlin, etc... Is it because LLVM diid not exist when MoarVM was created, or because it's too complicated? 17:50
lucs pel: Ask in #raku-dev maybe? 17:51
codesections can LLVM output bytecode? I think of it as aimed at machine code, but I'm certainly no expert 17:53
pel It outputs LLVM IR bytecode. Raku compiles down to JVM bytecode I think (I'm no expert) 17:57
Geth doc: 094659ff83 | (Stoned Elipot)++ (committed by Juan Julián Merelo Guervós) | doc/Language/contexts.pod6
xref operators
18:06
doc: 4b77fa4609 | (Stoned Elipot)++ (committed by Juan Julián Merelo Guervós) | doc/Language/contexts.pod6
rephrase the sentence about the ? and ! operators
linkable6 Link: docs.raku.org/language/contexts
Geth doc: 06c21504f7 | (Stoned Elipot)++ (committed by Juan Julián Merelo Guervós) | doc/Type/Proc.pod6
Fix example's output
18:07
doc: 8d120c3e2a | (Stoned Elipot)++ (committed by Juan Julián Merelo Guervós) | doc/Type/Proc.pod6
use multiline example output style
linkable6 Link: docs.raku.org/type/Proc
Geth doc: e87f675ffd | (Stoned Elipot)++ | doc/Language/terms.pod6
fix link anchor
18:19
linkable6 Link: docs.raku.org/language/terms 18:20
guifa Another case of a protect-against-perlisms getting in the way of things lol 19:11
sub implicit-say { say CALLERS::<$_> }; for ^3 { implicit-say } 19:12
evalable6 (LoweredAwayLexical)
(LoweredAwayLexical)
(LoweredAwayLexical)
guifa o.O LoweredAwayLexical? is that new?
sub say { say CALLERS::<$_> }; for ^3 { say } # <— What I actually meant to point out lol 19:13
codesections guifa: it's not *brand* new -- it's been around as long as I've been writing Raku, anyway. But that doesn't rule out "new" :) 19:53
tbrowder hi, i believe there was a discussion here recently about how one can show non-raku dependencies in the META6.json file. was there any resoution that anyone remembers? 21:06
*resolution
codesections m: 's' ~~ /(.) <?{ say $/}>/ #1 22:57
camelia 「s」
0 => 「s」
codesections m: 's' ~~ /(.) { say $/}/ #2
camelia 「s」
0 => 「s」
codesections m: 's' ~~ /(.) $( say $/)/ #2 22:58
camelia Nil
codesections m: 's' ~~ /(.) $( say $/)/ #3
camelia Nil
codesections Why is the match available in #1 and #2, but not in #3 ^^^^ ?
guifa You need to have {} before matches are available 23:11
m: 's' ~~ /(.) {} $( say $/)/
camelia 「s」
0 => 「s」
guifa I don’t remember the exact reason why, but has something to do with *waveshands* LTM and optimizations 23:12
but I don’t think it’s intended to be that way forever
In the first two examples, you’re working on code blocks, so matches are by default available