»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'p6: say 3;' or /msg camelia p6: ... | irclog: irc.perl6.org or colabti.org/irclogger/irclogger_log/perl6 | UTF-8 is our friend! 🦋
Set by Zoffix on 25 July 2018.
nine vrurg: pong 03:00
Geth rakudo.org: 2939c1bf66 | (Roman Baumer)++ | 4 files
Revert "Temporary Fix no 2 to get downloads working. Needs to be reverted when new infra is up and running"

This reverts commit ae783a93a569ec0c485cf44edc15f8d5eef3cb3e.
08:40
rakudo.org: ce1fc37025 | (Roman Baumer)++ | 5 files
Revert "Temporary Fix to get downloads working. Needs to be reverted when new infra is up and running"

This reverts commit 39034f316ec14dd7c74d9b075eb323d7d3cee0b5.
lizmat weekly: perl6.eu/word-wrapped-weekends.html 09:25
notable6 lizmat, Noted! (weekly)
lizmat weekly: rage.powered.ninja/2019/07/29/best-months.html 09:28
notable6 lizmat, Noted! (weekly)
Geth doc: ed6dbdf23a | Antonio++ (committed using GitHub Web editor) | doc/Language/community.pod6
Update community.pod6
09:45
synopsebot Link: doc.perl6.org/language/community
pmurias Elronnd: looking into it 10:23
ab6tract o/ all :) 10:59
long time since i've been around, hope everyone is doing well!
i'm wondering if it is possible to define an infix:<'> operator that somehow has tighter precedence than quoting 11:00
The issue is that I'm not sure how to refer to the q/Q operator when calling the is tighter() trait 11:01
and/or that it might very well not be possible to get tighter than the quote parser 11:04
lizmat wouldn't you need a postcircumfix operator ? 11:05
or actually, a circumfix operator ?
pmurias ab6tract: why would you want to do that? 11:06
ab6tract no, it's to pass arguments to a constructor.. the idea is that 5'6 would be a call to sub infix:<'> ($min,$sec) { CoordDetails.new: :$min, :$sec } 11:08
then i could create a tighter infix:<°> operator that would take (Int, CoordDetails) as arguments 11:09
and return a Coord object
it might be a better approach to just make it a proper DSL using grammars but i thought there might be a way to do it with operators and export 11:10
pmurias ab6tract: this seems like something that will work beyond horrible with syntax highlighting 11:13
ab6tract good point, but that's not a major concern for this project 11:15
ab6tract if it were a DSL, there would be no rule for quotation other than this infix representation 11:17
pmurias ab6tract: what are you creating? 11:18
ab6tract i'd rather keep that a bit quiet for the moment, if you don't mind :)
it's meant to be an interactive environment where you are exploring geometric relationships between objects 11:19
pmurias ok, will it be unveiled later on?
ab6tract based on command-line inputs
pmurias: very much so, yes
the use case for this DSL is sort of an interactive terminal application, using Terminal::Print
"DSL" .. it's just meant to be a way to quickly create objects without having to use quotation marks 11:20
pmurias by DSL you mean short snippets of Perl 6 with notation shortcuts? 11:21
snippets being relatively simple expressions?
rba rakudo.org is running on the nine-server now. let me know if there are any issues.
rba timotimo: May you have a look in the access log if you still have requests on the temp-server? 11:22
ab6tract pmurias: right, I'm thinking of these operators as a "constructor chain" that slowly builds it's arguments from right to left.. first CoordDetails, then Coord, then Position, etc, which in the end returns an object that is fed into yet another operator, this time an infix to compare it with another Position object 11:24
antoniogamiz m: enum A <b>; say so A::b; 11:25
camelia False
ab6tract 5°43'54
antoniogamiz why enums evaluates to False?
ab6tract 5°43'54 => Position.new: :degree(5), minute(43), :second(54)
sorry, that fat arrow is meant to imply 'returns this object' 11:26
Geth rakudo.org: 838adbc882 | (Roman Baumer)++ | templates/docs.html.ep
change doc.perl6.org to docs.perl6.org
11:26
ab6tract one way to do it would be to use a slang, i assume 11:27
ab6tract but this approach seemed sort of elegant, in a weird way 11:30
using custom operators and precedence 11:31
but honestly, i don't think it will work anyway because custom ops want whitespace 11:32
antoniogamiz should I report this kind of errors in rakudo? => ===SORRY!===No such method 'Str' for invocant of type 'NQPMu' 11:35
SmokeMachine how can I `-n` a non utf8 file? 11:39
ab6tract antoniogamiz: those are compiler erroys (whenever you see SORRY!) 11:40
in this case telling you that there is a definedness issue
antoniogamiz mm but the code I'm writing should compile 11:41
antoniogamiz gist.github.com/antoniogamiz/a8d4b...7924e77107 11:42
pmurias Elronnd: what's your java version? 12:07
lizmat_ weekly: news.ycombinator.com/item?id=20613090 12:09
notable6 lizmat_, Noted! (weekly)
crella my Int $a = 1; my Str $b = 'c'; How should I code to convert $a to string and set $b as the string? 12:27
cygx m: my Int $a = 1; my Str $b = 'c'; $b = ~$a; say $b 12:29
camelia 1
cygx crella: ^
crella It seems not right. For example, when $a = 1,I want to set $b='1'; when $a = 77, I want to set $b = '77' 12:33
I haven't found enough docs to solve this problem...
timotimo the code cygx gave you should be doing that, what issue are you seeing? 12:35
m: my Int $a = 1; my Str $b = 'c'; $b = ~$a; dd $b # dd will output some extra info, such as the type and variable name
camelia Str $b = "1"
crella [code] while $a <= 10 { $b ~= $a;$a += 1;print $b~' ';dd $b;} 12:37
[output] c1 Str $b = "c1" 12:38
c12 Str $b = "c12"
c123 Str $b = "c123"
timotimo oh, the issue is probably using the $b ~= $a, which is short-hand for $b = $b ~ $a where you really wanted $b = ~$a 12:39
cpan-p6 New module released to CPAN! Gnome::Glib (0.14.1) by 03MARTIMM 12:41
crella ok, solved ,thanks 12:42
chloekek p6: my $a = 1; $a .= Str; say $a;
camelia 1
chloekek p6: my $a = 1; $a ~=; say $a;
camelia 5===SORRY!5=== Error while compiling <tmp>
Missing required term after infix
at <tmp>:1
------> 3my $a = 1; $a ~=7⏏5; say $a;
expecting any of:
prefix
term
chloekek p6: sub postfix:<~=>($x is rw) { $x .= Str; }; my $a = 1; $a ~=; say $a;
camelia 5===SORRY!5=== Error while compiling <tmp>
Missing required term after infix
at <tmp>:1
------> 3 is rw) { $x .= Str; }; my $a = 1; $a ~=7⏏5; say $a;
expecting any of:
prefix
term
12:43
chloekek p6: sub postfix:<~=>($x is rw) { $x .= Str; }; my $a = 1; $a~=; say $a; 12:45
camelia 1
Xliff \o/ 13:03
Wow!
Latest verison of rakudo cut off 800 seconds from last GTK compile!
pmurias did NFA stuff change in the last months in NQP?
getting some bitrot in CODEPOINT_I_LL handling in nqp.js 13:04
Xliff July 17th - real 3991.98 / Last night - real 3194.54
cpan-p6 New module released to CPAN! String::Fold (0.2.0) by 03TYIL 13:57
SmokeMachine vrurg: Can I close that issue? 14:27
vrurg: Sorry, forget about that... I just saw I've closed... :) 14:29
vrurg SmokeMachine: which one? ;) I'm trying to get the testing done on 2019.07.1 for the private methods. No idea what's wrong with travis. 14:37
SmokeMachine I think it's related to the docker image used on the test... 14:38
SmokeMachine vrurg: I've run the tests on your MR on my machine, and it passed... 14:40
vrurg: yes, when I run with `docker run -v $PWD:/code fernandocorrea/red-tester` it breaks! 14:41
vrurg: I'll try to rebuild the image...
vrurg Good. Hope it solves. 14:42
vrurg is afk for a while
timotimo vrurg: github.com/MoarVM/MoarVM/issues/1154 14:46
you asked for a ticket for this feature a long time ago, i finally wrote it
i'm particularly hoping it'll help make visible how the profiler sees the call graph evolve, so i can better figure out "profiler lost sequence" error messages 14:52
jdv79 how does one profile something nowadays? 14:58
jdv79 hmm, ...--profile=foo... ends in Segmentation fault (core dumped) :( 15:00
SmokeMachine vrurg: running on the last Rakudo version haven't fixed that... 15:13
timotimo jdv79: are you on latest moarvm and such? 15:34
jdv79 timotimo: latest rakudo, whatever that pulls in. 16:08
after 5 tries i was able to get a html output
but then chrome crashed trying to render it:(
on one of the tries there was also a panic about GC something... 16:09
timotimo the very latest rakudo didn't yet get a bump for nine's incredible bug-fixing spree i don't think 16:12
jdv79 cool 16:13
timotimo if the html output is too massive, you can ask it to output an .sql file and get moarperf from my github 16:14
github.com/timo/moarperf/
Comma also uses the sql format for its builtin profiling UI
timotimo maybe the profiler output should figure out if the html file ends up over like 50 megs and interactively offer to output sql instead/in addition 16:23
jdv79 idk. but devel::nytprof manages to pump out html that's not killer like that:) 16:41
ugexe in the profiler some tabs (like the default one) would crash if kept running but other tabs would immediately show their data
jdv79 maybe just kill the html output if it only works for trivial code sizes
arm chair critiquing is too easy though 16:42
timotimo it's still extremely valuable, since moarperf is quite a dependency 16:43
i would say moar's profiler has a lot more information that nytprof (though it doesn't do per-line like nytprof does) 16:44
i wonder if giving the json hashes in the output single-letter keys would help at all
or using lists everywhere instead of maps 16:45
if anybody would like to prototype that ... :)
jdv79 cool. for me devel::nytprof is gold
statement level has been invaluable to get some really perf sensitive code opti'd 16:46
maybe p6 won't need those sorts of optis in the future so maybe not needed 16:47
vrurg timotimo: is your plan to integrate tracy into moar? I've only looked at the frontpage yet.
timotimo vrurg: yeah, put tracy start/end points all over the code 16:47
but integrating the code with our current build system frightens me a little
vrurg Hm... Not sure how much helpful can I be. I've got involved with nqp/rakudo for the reason I needed 6.e and I knew what I want from the result. But Moar – I've never been deep into it. 16:49
timotimo well, i heard you can do perl5 code :D
vrurg Need to carefully consider if it's be more help or damage if I try. ;)
timotimo the fun thing is that the whole rest of moar is built with C, and this is now C++ code 16:50
vrurg timotimo: not much, just ~20 years of it...
timotimo i hope we can get this done in under a year
vrurg How I wish it could be at least nqp... Perl5 regexes are so much out of the stone age to me now... 16:51
jdv79 get what done in < 1y? 16:52
timotimo jdv79: build and link tracy in moarvm's build 16:53
jdv79 is that some sort of best of bread profiler type thing? 16:54
timotimo i don't know what "best of bread" means
jdv79 oh, breed 16:55
best of its ilk
timotimo hm. really more of a "good" profiler?
vrurg timotimo: as a coincidence, I was looking into profiling lately too, with no success too. But still wonder how useful it would be in locating memory leaks on rakudo level? I.e. my code was relocating ~70k records from a .txt and .csv and ending up bloated to 6-7Gb.
timotimo it probably can't compete with Rad Game Tools's Telemetry
vrurg: we have the moarvm heapanalyzer for that :) 16:56
timotimo moarvm already has "telemeh", which is slightly similar to tracy, but crucially there's no visualization tool, which makes it basically useless 16:57
vrurg timotimo: moar-ha failed to read the dump for me. Can't remember details, something about unexpected uint size or alike. I'm gonna give it another try later and create a ticket if needed. 16:59
jdv79 what led to the decision to build a webapp to do the profiler? 17:00
why not just static html files?
vrurg is preparing for diving into the dark waters of moar's configure... 17:01
timotimo vrurg: the moar heapanalyzer currently requires the program to shut down gracefully, maybe that didn't happen in your case 17:02
jdv79 installing the deps for moarperf might be worse than for $work and i thought that was the worst i'd ever seen:) 17:03
rba Please help us to check if static generated docs on docs.p6c.org are looking fine before we make it available under docs.perl6.org
timotimo in the future i'm hoping to just distribute finished js bundle files for that part of the whole
vrurg timotimo: could be.
jdv79 both the p6 and the js took a while 17:04
but that would help
timotimo vrurg: if that's the case, you can also "use Telemetry" and then whenever you want a heapsnapshot to be made "snap :heap"
rba docs.p6c.org
vrurg slaps own forehead. 17:04
MasterDuke vrurg: heaptrack is also good for finding memory leaks
vrurg Telemetry, of course! 17:05
MasterDuke: noted, thanks!
timotimo vrurg: to be fair, that is a new feature of that module
jdv79 moarperf seems to not work:(
timotimo many cases of memory leaks in perl6 code are from where your program actually holds on to data for too long, which means it's not actually leaked
jdv79 i get a blank page
timotimo jdv79: oh no! can you get output from the javascript console in the "inspect element" thingie?
dev tools the experts call it i believe 17:06
jdv79 [ERROR] 403 /js/main.js - 127.0.0.1 17:07
timotimo did you "npm run build"?
vrurg timotimo: 6Gb is still too much. Besides, I suspect it's something in DB::Pg where nothing like this should happen. But, anyway, I have to process the information collected here so far first. :)
timotimo vrurg: of course. i just mean it's not a leak that a regular c-level heap tracker like heaptrack or massif would figure out 17:08
jdv79 oh, forgot to after waiting for hte deps. oops.
timotimo it would make a lot of sense for moarperf to actually figure out when that happens
it's a nightmare to build already with all the different moving parts 17:09
gotta run! bbl!
vrurg timotimo: o/ 17:10
vrurg SmokeMachine: I tested my patch on a Mint VM. All tests are ok. I'm totally confused and no idea what breaks travis. Is it only my PR which fails? 17:39
cpan-p6 New module released to CPAN! Gnome::Gtk3 (0.17.12) by 03MARTIMM 17:46
chloekek .seen jmerelo 18:50
El_Che chloekek: he's being famous at perlcon-eu 18:56
chloekek Aha :) 18:57
Did some more think(er)ing about distribution versions and realised that this problem was already solved before and therefore nothing new. 18:59
tadzik huh, #perlcon-eu is a thing? 19:10
El_Che tadzik: I'll use my right to remain silent :) 19:11
jdv79 chloekek: what was wrong with dist vers? 19:21
chloekek Running the same installation command at different times can give in different results. 19:22
Geth doc: 67aefcde93 | (Tom Browder)++ (committed using GitHub Web editor) | doc/Language/pod.pod6
add note on string constraint

an empty string is not valid as a pod config key
19:23
synopsebot Link: doc.perl6.org/language/pod
Kaiepi m: class Foo { my class Bar { has $.baz }; has Bar %.bar }; my Foo $foo .= new; $foo.bar{$_} .= new: baz => $_ for 'a'...'z'; say none($foo.bar.values).baz eq 'A' 20:16
camelia none(False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False)
Kaiepi m: class Foo { my class Bar { has $.baz }; has Bar %.bar }; my Foo $foo .= new; $foo.bar{$_} .= new: baz => $_ for 'a'...'z'; say so none($foo.bar.values).baz eq 'a' 20:17
camelia False
Kaiepi m: class Foo { my class Bar { has $.baz }; has Bar %.bar }; my Foo $foo .= new; $foo.bar{$_} .= new: baz => $_ for 'a'...'z'; say so any($foo.bar.values).baz eq 'a'
camelia True
Kaiepi m: class Foo { my class Bar { has $.baz }; has Bar %.bar }; my Foo $foo .= new; $foo.bar{$_} .= new: baz => $_ for 'a'...'z'; say so none($foo.bar)>>.value.baz eq 'a' 20:20
camelia No such method 'value' for invocant of type 'Foo::Bar'. Did you mean 'values'?
in block <unit> at <tmp> line 1
Kaiepi m: class Foo { my class Bar { has $.baz }; has Bar %.bar }; my Foo $foo .= new; $foo.bar{$_} .= new: baz => $_ for 'a'...'z'; say so none($foo.bar)>>.baz eq 'a'
camelia True
Kaiepi oh sweet i don't need to use .values 20:21
Kaiepi m: say %(a => 1, b => 2, c => 3) ∖ %(a => 1, b => 4, c => 9) 20:27
camelia set()
Kaiepi m: say %(a => 1, b => 2, c => 3) ∖ %(a => 1, b => 4, c => 9, d => 16) 20:27
camelia set()
Kaiepi m: say %(a => 1, b => 4, c => 9, d => 16) ∖ %(a => 1, b => 2, c => 3) 20:28
camelia set(d)
MasterDuke hm, docs.perl6.org shows `Generated on 2019-08-01T15:34:46Z`. we haven't had a rebuild since the squashathon? 20:29
timotimo docs.p6c.org/ - Generated on 2019-08-04T05:53:39Z [Debug: off] 20:34
Kaiepi i haven't checked to see what's going on with RAKUDO_MODULE_DEBUG yet, but what would make a group of about a dozen modules take over 10 minutes to compile? 20:46
Kaiepi ok can my internet not go to shit right after asking something 20:54
timotimo i answered on discord because that keeps messages around even when you're offline 20:56
Kaiepi ah 20:58
timotimo hm, since release has been a while, why not Just Merge It™
Kaiepi ? 21:01
timotimo nested_stagestats
timotimo whew, my computer is freezing up 21:07
timotimo oh no 22:01
reproducible builds test fails
nooooo it passes without my changes 22:08
vrurg timotimo: speaking of profiling: "fish: perl6 -I ../perl6-cache-async/l…” terminated by signal SIGSEGV (Address boundary error) 22:33
timotimo wheee 22:34
vrurg And on top of it – perhaps ulimit was reset as it leaving me no coredumps. 22:35
timotimo: 0 libmoar.dylib 0x0000000106bf65a0 MVM_profile_heap_take_snapshot + 816 22:42
timotimo is that with --profile=heap or with Telemetry? 22:43
vrurg --profile=heap
Still no core dump but have crash report from macOS. Perhaps this is for a moar ticket?
MasterDuke that should be a regular profile written to a file named `heap` 22:44
vrurg MasterDuke: ?? I mean, SIGSEGV should've been accompanied with a core file but my system ignores 'ulimit -c unlimited' and creates none. 22:47
MasterDuke vrurg: i don't know anything about the crash, i just meant that --profile=foo now means the filename to write to. if you want a heap snapshot you have to use --profile-kind=heap 22:48
vrurg MasterDuke: ah, I see. It was just a shortcut. for profile-kind. ;) 22:49
MasterDuke (y) 22:51
timotimo repl.it/talk/announcements/dollar-...rl-6/17263 oooooh 23:21
weekly: repl.it/talk/announcements/dollar-...rl-6/17263 oooooh
notable6 timotimo, Noted! (weekly)
randy80 p6: sub MAIN( :$input ) { my $input //= 1; } 23:33
camelia ===SORRY!===
Cannot find method 'default' on object of type NQPMu
randy80 I know there's a lot wrong with that line of code, but it's a line that I accidentally wrote, and the error message had me stumped. 23:34
Should I report that as a bug? If so, where? I'm in the very early stages of learning Perl 6. 23:35
timotimo yeah that's totally worth a bug 23:36
jdv79 i never got why people have such an issue with sigils 23:37
timotimo i basically started with QBASIC, so ... :) 23:38
jdv79 maybe cause i learned p5 ver early, maybe my 3rd lang or so.
nice
timotimo i was young and i didn't know what i was doing
after that came VB5 :)
jdv79 im trying to remember. maybe qbasic, php, p5, js, cf... 23:43
all meh langs 23:44
ugexe glad i never read that cold fusion book back when i was looking at learning my 3rd language 23:45
jdv79 duringbthe dot bomb times $work used it...