»ö« 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.
sena_kun tbrowder, ping? 00:01
tbrowder yo?
sena_kun I am not sure if I can help you, but are you on `Perl 6 Advent Calender` tab in `My Sites` tab on wordpress, right? 00:02
tbrowder ya caught me finger-fumbling again!
yes, i’m on that site
sena_kun Then you can select `Blog Posts` and there is a switch, `Me | Everyone`, if you choose second one, it will show posts of others. 00:03
And you can edit those, I think.
I don't know if editor rights are needed or anything, because I can see those pages too, not sure if I have any rights given. 00:04
but, disregarding that, the thing I would really like to see is to know how can one set a posting time exactly at first minute of midnight. Day 13 has `01:01` set for me, Day 3 - `02:01`. 00:05
tbrowder ok, i’ve seen that, and used it for a list. at the moment i don’t want to edit any post, i want to ensure the scheduling sysem works and shows the correct date/time format. as an example, jjmerelo’s day 2 post is showing as day 1, and the scheduler format may have contributed to that 00:06
sena_kun oooh
00:06 leont left
sena_kun well, I think you can edit scheduled time too, but, unfortunately, I don't have a clue on how scheduling works in wordpress. :( 00:07
tbrowder you should be able to modify the schedule and do an update, but i think you have to click the update button twice
sena_kun oh, by the way, for me it is already Day 2 for 2 hours. 00:08
and I see `Day 2` post
tbrowder i’m working on improving the instructions but life is intervening. i hope we can get authors to fix formattng after the fact if necessary and update. the preview in wp is not 100% in my experience. 00:10
erg!
make sure you update schedule so date is correct first, then set time dials to 00 01 00:11
sena_kun well, anyway, I still have a full post to write from scratch, heh. ok, I guess it is a sleeping time for me. o/
>make sure you update schedule so date is correct first, then set time dials to 00 01 00:12
oh, thanks, did exactly so. \o/
00:12 sena_kun left
tbrowder and on the p6 site, not your own 00:12
00:15 qiqi joined
Geth doc: 6f3282af62 | Coke++ | doc/Type/Cool.pod6
space after comma
00:15
doc: 52e407d003 | Coke++ | util/manage-page-order.p6
spaces, not tabs
synopsebot_ Link: doc.perl6.org/type/Cool
squashable6 🍕🍕🍕 First contribution by coke++! ♥
00:15 p6bannerbot sets mode: +v qiqi 00:37 kensanata left 00:43 qiqi left 00:48 kurahaupo joined 00:49 p6bannerbot sets mode: +v kurahaupo 00:58 kurahaupo left 00:59 kurahaupo joined 01:00 p6bannerbot sets mode: +v kurahaupo, pecastro left 01:02 Hotkeys joined, p6bannerbot sets mode: +v Hotkeys 01:07 kurahaupo_ joined, kurahaupo left 01:08 p6bannerbot sets mode: +v kurahaupo_
atweiden-air has anyone got 2018.11 to compile on macos? 01:09
SmokeMachine .tell pmurias you should try MemoizedDOM... :) 01:11
yoleaux SmokeMachine: I'll pass your message to pmurias.
01:14 daemon joined, p6bannerbot sets mode: +v daemon, aindilis left 01:16 lizmat left 01:19 kurahaupo_ left 01:20 kurahaupo joined 01:21 p6bannerbot sets mode: +v kurahaupo
vrurg atweiden-air: I did a couple of minutes ago. 01:26
01:32 kurahaupo left
vrurg 2018.11 is amazingly fast on startup... 01:37
mornfall is it? 01:38
i'm intrigued
vrurg got used to startup times at ~1-1.5sec 01:40
But now it just happens. Instantly. 01:41
mornfall can i have that?
i don't quite believe you, but i'm willing to try
vrurg: which version did you use before? 01:42
vrurg I'm migrating from release to relase with rakudobrew. So, the last one was 2018.10. 01:44
mornfall okay i'm building moar 2018.11
rakudo is next
vrurg mornfall: I guess some extra module recompilation has been avoided somewhere in the startup chain. I was always wondering why is it slow when the only thing changed, say, is a test script. 01:45
vrurg takes his words back. 01:52
Don't know what it was but now timing doesn't display any speed up. 01:53
Looks like a conincidence of a couple of factors which led to the wrong impression.
mornfall yeah, it seemed rather implausible :p 01:55
at least i have proper checkouts of the tools or something
01:55 coet left
mornfall too bad i have no idea how to make pull requests 01:56
without going crasy, anyway
crazy*
vrurg mornfall: are you serious? It'd not a big deal with github. Just fork a repository, branch, work – and let github form and submit the request. 01:58
It's*
mornfall yeah, sounds like a good way to go crazy to me :p
i have a 2 line patch which took maybe 10 minutes to pin down including finding the right part of rakudo (VM.pm6 fwiw) 01:59
and i didn't have to use the mouse to do it either... github makes me sad :\ 02:00
vrurg With two lines I wouldn't even bother and just send a patch. 02:01
02:04 tmtvl left
mornfall okay i found 'hub' which appears to make github less insane 02:07
02:17 irdr left
atweiden-air vrurg: interesting. rakudobrew crashes for me during compilation ix.io/1v36 02:18
have also tried homebrew, similar error there
vrurg atweiden-air: Have you upgraded the system recently? XCode?
02:18 irdr joined 02:19 p6bannerbot sets mode: +v irdr
vrurg Looks like you need to recompile all 3rd party libs – for the sake of reliability. 02:20
atweiden-air vrurg: i did just recently upgrade llvm from 6.0.0 to 7.0.0 via homebrew 02:21
wasn't aware there was an option to recompile 3rd party libs in rakudobrew
02:22 araraloren joined, p6bannerbot sets mode: +v araraloren
vrurg atweiden-air: That's not about rakudobrew. In your output it complains about libsha1, libatomicops, libuv – all seems to be coming from a directory 3rdparty which neither rakudobrew nor rakudo itself has. 02:24
I use MacPorts, but could guess that 3rdparty is where homebrew installs stuff. 02:25
atweiden-air vrurg: that log is from rakudobrew
afaik rakudobrew pulls those deps down itself
btw this is moarvm failing to compile, not rakudo 02:26
02:27 graphene left 02:29 graphene joined 02:30 p6bannerbot sets mode: +v graphene
vrurg Could a llvm bug then... I'm not even sure what rakudobrew is using to compile on my system. Though I have llvm40 installed. 02:30
02:32 molaf left
mornfall cool, i think i can live with 'hub pull-request' (unless it dies with a mysterious error message because you forgot to push into your fork, anyway) 02:36
02:40 ChoHag_ left
vrurg atweiden-air: I gave llvm 7.0 a chance, and then another one, and it worked for me both times. Can you try building an older version? Say 2018.10? I would suspect it will fail too. 02:44
02:44 molaf joined 02:45 p6bannerbot sets mode: +v molaf 02:48 mephinet joined, p6bannerbot sets mode: +v mephinet 02:49 reu joined, p6bannerbot sets mode: +v reu 02:53 graphene left 02:54 graphene joined 02:55 p6bannerbot sets mode: +v graphene 02:56 ChoHag joined, p6bannerbot sets mode: +v ChoHag 02:59 kurahaupo_ joined 03:00 p6bannerbot sets mode: +v kurahaupo_ 03:05 zacts joined, p6bannerbot sets mode: +v zacts 03:11 ferreira joined 03:12 p6bannerbot sets mode: +v ferreira
atweiden-air vrurg: indeed 2018.10 compilation fails as well 03:16
vrurg There're outdated versions of libraries lurking somewhere. Try checking out if your XCode is the latest too. I would try total upgrade and recompile. Check if there is something in the environment left behind (some custom settings for specific compiles). 03:19
vrurg wonders why llvm complains about libs in moarvm build dir only? That's weird. 03:20
atweiden-air will try a reboot ....
vrurg Oh, first of all: rm -rf ~/.rakudobrew/moarvm-2018.11 03:22
atweiden-air yes, i do that each time
03:22 ChoHag left 03:26 atweiden-air left 03:39 zapwai left 03:59 ChoHag joined 04:00 p6bannerbot sets mode: +v ChoHag, kurahaupo joined 04:01 p6bannerbot sets mode: +v kurahaupo 04:03 kurahaupo_ left 04:04 zacts left 04:10 kurahaupo left, kurahaupo joined 04:11 p6bannerbot sets mode: +v kurahaupo, Sgeo_ joined 04:12 p6bannerbot sets mode: +v Sgeo_ 04:14 Sgeo left 04:15 kerframil left 04:21 kurahaupo left, kurahaupo joined, graphene left 04:22 p6bannerbot sets mode: +v kurahaupo 04:23 graphene joined, p6bannerbot sets mode: +v graphene 04:24 Sgeo_ left 04:28 ChoHag left, cibs joined 04:29 p6bannerbot sets mode: +v cibs 04:34 qiqi joined, kurahaupo left, kurahaupo joined, p6bannerbot sets mode: +v qiqi 04:35 p6bannerbot sets mode: +v kurahaupo 04:44 qiqi left 04:45 kurahaupo left, kurahaupo joined 04:46 p6bannerbot sets mode: +v kurahaupo, Sgeo joined 04:47 p6bannerbot sets mode: +v Sgeo 04:50 Cabanossi left 04:51 Cabanoss- joined, qiqi joined 04:52 p6bannerbot sets mode: +v Cabanoss-, p6bannerbot sets mode: +v qiqi 04:55 kurahaupo left 04:56 kurahaupo joined 04:57 p6bannerbot sets mode: +v kurahaupo 05:00 araraloren left
Geth doc: 9900c9a188 | (Richard Hainsworth)++ (committed using GitHub Web editor) | doc/Programs/03-environment-variables.pod6
Update 03-environment-variables.pod6

Change FormatCode F to C, since F is not usefully implemented. C<> changes the markup
05:06
squashable6 🍕🍕🍕 First contribution by finanalyst++! ♥
05:06 kurahaupo left 05:07 kurahaupo joined 05:08 p6bannerbot sets mode: +v kurahaupo 05:18 qiqi left 05:22 kurahaupo left, kurahaupo joined 05:23 p6bannerbot sets mode: +v kurahaupo 05:31 qiqi joined 05:32 p6bannerbot sets mode: +v qiqi 05:37 kurahaupo left, kurahaupo joined 05:38 p6bannerbot sets mode: +v kurahaupo 05:41 kurahaupo left 05:42 qiqi left 06:04 ChoHag joined 06:05 p6bannerbot sets mode: +v ChoHag 06:06 benjikun left 06:13 benjikun joined 06:14 p6bannerbot sets mode: +v benjikun 06:25 kurahaupo joined 06:26 p6bannerbot sets mode: +v kurahaupo 06:35 kurahaupo left 06:36 kurahaupo joined, p6bannerbot sets mode: +v kurahaupo 06:44 graphene left 06:45 kurahaupo left 06:46 graphene joined, kurahaupo joined, p6bannerbot sets mode: +v graphene, p6bannerbot sets mode: +v kurahaupo 06:56 kurahaupo left, andrzejku_ joined 06:57 kurahaupo joined, p6bannerbot sets mode: +v andrzejku_ 06:58 p6bannerbot sets mode: +v kurahaupo 07:07 kurahaupo left, kurahaupo joined 07:08 p6bannerbot sets mode: +v kurahaupo 07:18 kurahaupo left, kurahaupo joined 07:19 p6bannerbot sets mode: +v kurahaupo 07:28 kurahaupo left, graphene left 07:29 kurahaupo joined 07:30 graphene joined, p6bannerbot sets mode: +v kurahaupo, p6bannerbot sets mode: +v graphene 07:34 qiqi joined 07:35 p6bannerbot sets mode: +v qiqi 07:40 kurahaupo left 07:41 kurahaupo joined 07:42 p6bannerbot sets mode: +v kurahaupo 07:43 Sgeo left 07:45 Sgeo joined 07:46 p6bannerbot sets mode: +v Sgeo 07:52 kurahaupo left 07:53 kurahaupo joined, p6bannerbot sets mode: +v kurahaupo 08:03 kurahaupo left 08:04 kurahaupo joined, p6bannerbot sets mode: +v kurahaupo 08:16 kurahaupo left, kurahaupo joined 08:17 p6bannerbot sets mode: +v kurahaupo
Geth doc: 81df0c33c6 | (JJ Merelo)++ | doc/Language/exceptions.pod6
Revise and explain examples

Closes #2468 after most of the work has been done by @uzluisf
08:21
synopsebot_ Link: doc.perl6.org/language/exceptions
squashable6 🍕 JJ++ closed issue “Exceptions: `try` block …”: github.com/perl6/doc/issues/2468
08:21 jjmerelo joined, p6bannerbot sets mode: +v jjmerelo 08:26 kurahaupo left 08:30 gurmble joined, p6bannerbot sets mode: +v gurmble 08:31 kurahaupo joined 08:32 rindolf joined, p6bannerbot sets mode: +v kurahaupo 08:33 p6bannerbot sets mode: +v rindolf 08:44 qiqi left 09:06 Aceeri_ left 09:09 Manifest0 left 09:10 Manifest0 joined 09:11 p6bannerbot sets mode: +v Manifest0 09:16 rindolf left 09:21 qiqi joined, p6bannerbot sets mode: +v qiqi 09:39 yqt joined 09:40 p6bannerbot sets mode: +v yqt 09:43 rindolf joined, p6bannerbot sets mode: +v rindolf 09:52 qiqi left 09:53 hami joined, p6bannerbot sets mode: +v hami 09:57 hami left 10:15 rindolf left 10:19 jjmerelo left 10:33 rindolf joined, p6bannerbot sets mode: +v rindolf 10:40 qiqi joined 10:41 p6bannerbot sets mode: +v qiqi 10:43 kensanata joined, p6bannerbot sets mode: +v kensanata 10:51 qiqi left 10:55 lizmat joined, p6bannerbot sets mode: +v lizmat 10:56 coet joined, p6bannerbot sets mode: +v coet 11:03 rindolf left 11:07 wbn_ left, wbn joined 11:08 p6bannerbot sets mode: +v wbn 11:11 rindolf joined, sno left 11:12 pecastro joined, p6bannerbot sets mode: +v rindolf 11:13 p6bannerbot sets mode: +v pecastro 11:19 qiqi joined, p6bannerbot sets mode: +v qiqi 11:31 sena_kun joined, p6bannerbot sets mode: +v sena_kun 11:32 lichtkind left 11:40 robertle joined, p6bannerbot sets mode: +v robertle 11:44 lichtkind joined 11:45 p6bannerbot sets mode: +v lichtkind, ExtraCrispy left 11:47 qiqi left 11:52 qiqi joined 11:53 p6bannerbot sets mode: +v qiqi
scott what's a nice way to do this kind of thing, where `cycle` makes an infinite lazy list? 12:09
take 10 (cycle [1,2,3]) == [1,2,3,1,2,3,1,2,3,1]
Summertime [1,2,3] xx * 12:10
scott i found `|$x xx *` mentioned on a blog but it seems rather obscure
timotimo m: (|[1, 2, 3] xx *)[^10]
camelia ( no output )
timotimo m: (|[1, 2, 3] xx *)[^10].perl.say
camelia (1, 2, 3, 1, 2, 3, 1, 2, 3, 1)
timotimo m: flat([1, 2, 3] xx *)[^10].perl.say
camelia (1, 2, 3, 1, 2, 3, 1, 2, 3, 1)
Summertime oh right yeah needs the slip
timotimo no need for the |, you can use flat instead
Summertime but my character count! 12:11
timotimo well ... :)
12:11 dogbert17 joined
Summertime I wouldn't consider xx obscure, it is on the operators page of the documentation n' all 12:11
although a fair ways down
timotimo i think the obscure thing is having to combine three things 12:12
?
scott i mean, |, xx, and * all interacting for what could be .cycle
12:12 p6bannerbot sets mode: +v dogbert17
Summertime ah, yeah in that case 12:12
mornfall 'xx *' does seem to come up somewhat often 12:14
12:16 lizmat left
Summertime it could make more sense performance-wise to have something for containers seperate from xx too? since xx also re-evaluates the left side multiple times right? 12:16
timotimo we already optimize that when the value is static
Summertime m: (rand xx 10).say
camelia (0.058144186329716185 0.9723508447993349 0.3466275522323401 0.7530386225477884 0.28545861665026184 0.45543396888796783 0.7284208845806376 0.5768109343578602 0.28018795980570455 0.622501207127057)
Summertime ah oki
12:16 ufobat_ joined
timotimo m: my @foo = [1, 2, 3] xx 5; @foo[2][0] = "hello"; say @foo 12:17
camelia [[1 2 3] [1 2 3] [hello 2 3] [1 2 3] [1 2 3]]
timotimo ^- it clones the value each time instead of evaluating a piece of code
12:17 p6bannerbot sets mode: +v ufobat_
Summertime well, argument for compositing of so many things for something so simple, in python I think the equivilent is chain.from_iterable(repeat([1,2,3])), chain == flat, repeat(list,n) == xx, the concepts are portable across languages ^.^ 12:19
only thing different is default n value, instead of * 12:20
oh there is a cycle function there... foot in mouth I suppose (and need to go fix yesterday's AoC answer ;-;) 12:21
scott you may have guessed, but i'm also doing AoC stuff :P 12:22
i started this year practicing Julia, but got fed up when i repeatedly realized it would be a Perl 6 one-liner, so i'm switching to practicing p6 =) 12:23
lucasb hehe, me too was doing aoc day 1 12:24
I wanted that "|(lines».Int) xx *" somehow to create the cycled list, but doesn't work 12:25
for 2 reasons: bug with lines() and thunk xx :)
Summertime hypers and slips don't always interact quite nicely 12:26
lucasb I should try with "A xx B :!thunked"
Summertime I was aiming to do all of AoC in p6 this year, but at least in fedora's perl6 package, I get an event loop error for my day1part2 answer... still too lazy to build perl6 to make sure its not my distro's package's fault ;-; 12:27
timotimo what version do they ship at the moment?
Juerd What is AoC?
scott Juerd: adventofcode.com/
moritz Advent of Code?
yoleaux 1 Dec 2018 23:44Z <tbrowder> moritz: ^^^
Juerd Thanks
12:28 MasterDuke joined, p6bannerbot sets mode: +v MasterDuke, MasterDuke left, MasterDuke joined, herbert.freenode.net sets mode: +v MasterDuke, p6bannerbot sets mode: +v MasterDuke
Summertime This is Rakudo version 2018.04 built on MoarVM version 2018.04.1 / implementing Perl 6.c. 12:28
mornfall Summertime: building rakudo star is pretty easy, turns out :P 12:29
MasterDuke Summertime: i don't know what's involved, but using the whateverable bots you can set standard input and such which you can't do with camelia
*what's involved in your code 12:30
AlexDaniel` evalable: stdin foo bar
evalable6 AlexDaniel`, STDIN is set to «foo bar»
MasterDuke or yeah, building rakudo isn't all that complicated
Summertime I can replicate without any specific input, and its a fairly super-common case (adding to a container in a loop)
so I'm guessing fedora package issue 12:31
timotimo weird. what does that error actually look like?
oh
the "fd > stderr" assertion thing?
Summertime ye
in uv 12:32
timotimo a backtrace or something would be nice :S
MasterDuke huggable: debs 12:33
huggable MasterDuke, CentOS, Debian, Fedora and Ubuntu Rakudo packages: github.com/nxadm/rakudo-pkg/releases
mornfall sounds like someone closed a fd
that assertion doesn't seem to make any sense
MasterDuke Summertime: also, you can find packages for the newest releases there ^^^
mornfall (on the surface, that looks more like a bug in libuv than in moar or rakudo) 12:34
Summertime moar: src/unix/core.c:539: uv__close: Assertion `fd > STDERR_FILENO' failed.
Aborted (core dumped)
with --ll-exception
mornfall Summertime: you need to gdb into the core and ask for 'bt'
but it's perfectly legal to close stdin/stdout/stderr and following open() will just return one of those 12:35
(just like if you close stdin, the next open will return 0... some people mistakenly treat that as an error) 12:36
12:36 domidumont joined
MasterDuke Summertime: perl6-gdb-m 12:36
12:37 p6bannerbot sets mode: +v domidumont
Summertime give moment, trying to remember the smallest reproducable 12:37
mornfall github.com/Samsung/iotjs/issues/1246 12:39
12:39 kensanata left
mornfall (basically what i said above -- this will trip up if you ever close one of stdin/stdout/stderr) 12:39
why is your libuv compiled with assertions enabled is a different mystery entirely 12:40
Summertime mornfall, I think you might be too smart for your own good, it does only happen when a probably-closing action is done on stdin ($*ARGFILES.lines specifically in my case)
thanks for solving that part for me
-for your own good, + just super smart
12:41 coet left
Summertime $*IN.close; my @x; loop { @x.push(0) }; 12:43
probably could get reproducer smaller but
and I don't have gdb installed atm, and a bit tired to learn how to fight with gdb, I'll look into that tomorrow (along with compiling rakudo) 12:44
and I can compile it its just... non portable binaries ;-; I wanna be able to move them and their related files around, but the paths are hardcoded in 12:45
MasterDuke: I think I came across that before, but didn't realise that the package-building was set up to not require trust, so I'll definitely look into that now that I know that, thanks! 12:48
SmokeMachine .tell pmurias Any idea of why Im getting this error? www.irccloud.com/pastebin/4DYflois/ 12:49
yoleaux SmokeMachine: I'll pass your message to pmurias.
mornfall Summertime: what you want is to get libuv that's not a debug build
Summertime: are you sure you didn't build libuv yourself at some point, overriding the system/packaged one? 12:50
oooh nevermind
moarvm ships a copy of libuv /o\
Summertime if moarvm isn't forcing it on, and if fedora isn't doing some wacky splitting out dependencies stuff that I'm mistakenly overriding, I'll file a downstream bug tomorrow 12:51
mornfall Summertime: i think moarvm defaults to using its own, and perhaps the fact it uses a debug build is a bug (which may have been fixed since) 12:53
Summertime: fedora people probably want to pass --has-libuv to ./Configure.pl in moarvm
at first sight, it seems that libuv gets the same cflags as the rest of moarvm, so perhaps your moarvm is a debug build too (which would possibly make it abysmally slow :p) 12:58
timotimo: running with --profile on This is Rakudo version 2018.11 built on MoarVM version 2018.11 gives me Unhandled exception in code scheduled on thread 4 Invocant of method 'CALL-ME' must be a type object of type 'List', not an object instance of type 'List'. 13:02
(code runs okay without --profile)
Summertime they do pull out libuv as a seperate package, which p6 depends on (at least package-wise), I do find that p6 runs slower than I would expect though... 13:03
I'm too tired for this headache, I'm just going to install new packages and hope that solves everything
mornfall well, it's not super fast even in an optimized build, so that might mean nothing 13:04
Summertime feels pretty snippy when using any batchy kinda stuff, its just for-loops and appendy mutations seem to go ultraslow 13:05
tbrowder .tell jjmerelo i've edited your day 2 post a bit: adjusted the date/time published (p6 wp is on UTC, so you use the exact date an time of 00:01 which displays in the summary as 12:01 AM); also, removed the duplicate title and closed up some of the extra newlines inside obvious paras. you may want to tweak the content by hand some more. i would like you to completely update day 2 content later following the procedures i'm 13:08
updating in perl6/advent (when i finish them later today). BTW, i haven't seen you use cuddled elses before!!
yoleaux tbrowder: I'll pass your message to jjmerelo.
mornfall timotimo: (but fwiw, the profile now renders okay with moarperf, so there's some good news too) 13:11
13:11 lizmat joined, p6bannerbot sets mode: +v lizmat 13:15 MasterDuke left
Summertime yep, works absolutely fine with packages from that repo, so its fedora's packages I need to go start a fite with 13:16
13:44 andymcd joined, p6bannerbot sets mode: +v andymcd 13:45 andymcd left
lucasb m: say (1,2,2,3,3,3).categorize({$_}) 13:48
camelia {1 => [1], 2 => [2 2], 3 => [3 3 3]}
lucasb m: say (1,2,2,3,3,3).categorize(*)
camelia Doesn't make sense to categorize with itself
in block <unit> at <tmp> line 1
SmokeMachine m: say (1,2,2,3,3,3).categorize(*.self) 13:51
camelia {1 => [1], 2 => [2 2], 3 => [3 3 3]}
lucasb
^^ with regard "Doesn't make sense" :-) 13:52
tbrowder imho wordpress is a terrible platform for our advent articles. i just looked at perladvent.org and its basic look is good and could be dressed up for us. i’ll bet it’s lots easier to use and maintain than what we have (which is beautiful for sure—when the formatting is right). 14:00
14:01 ufobat_ left 14:08 pmurias joined, p6bannerbot sets mode: +v pmurias
pmurias SmokeMachine: hi 14:09
yoleaux 01:11Z <SmokeMachine> pmurias: you should try MemoizedDOM... :)
12:49Z <SmokeMachine> pmurias: Any idea of why Im getting this error? www.irccloud.com/pastebin/4DYflois/
pmurias SmokeMachine: maybe if I could have a look at what you are compiling I would have a better idea 14:10
lucasb I share tbrowder opinion with regard wordpress 14:14
14:14 pmurias left
lucasb I never did any post in my life, but I guess wordpress doesn't give much freedom in contrast with a self-hosted static html solution 14:14
14:15 pmurias joined, p6bannerbot sets mode: +v pmurias
lucasb I admire the perl5 advent. I think they organize their event in a private mailing list. I don't think it's a bad idea to borrow their ideas for next year. Hosting things in perl6.github.io/advent 14:16
SmokeMachine pmurias: it’s the same code as in the 6pad but in different files... 14:19
tbrowder we obviously have good web design people here—the docs pages look pretty nice to me. should be able to have somthing similar for advent. author submits md file named yyyy-mm-dd and site tiols take care of md2html and scheduling at the right time!
SmokeMachine pmurias: sorry, I’m not with my Mac now...
tbrowder s/tiols/tools/
author can then update via webeditor as needed. 14:21
SmokeMachine pmurias: perl6.github.io/6pad/#ada3d7e0a425...426a97039f
tbrowder comments and notifications are nice to have but i don’t know how that would work except maybe via github webhooks 14:22
pmurias SmokeMachine: I'll add into onto my pile of stuff to investigate/fix 14:23
SmokeMachine pmurias: could it be because I’m trying to use use and different files? 14:27
tbrowder one example of a wordpress irritant to me: the title is used as a key to a post. thus some articles wind up with double titles because there is a separate, special title block in the wp editor which has to be filled and sometimes the title in the html content is not removed by the author.
pmurias SmokeMachine: I have to try running it myself, I haven't seen that exact error before 14:28
tbrowder (must lower blood pressure...)
14:29 qiqi left 14:30 tmtvl joined 14:31 p6bannerbot sets mode: +v tmtvl 14:33 Woodi joined, masak joined
sena_kun m: enum <one>; say one.HOW; given one { when Int && $_.HOW ~~ Metamodel::ClassHOW { say "Bad"; }; when Int && $_.HOW ~~ Metamodel::EnumHOW { say "Good" } } 14:33
camelia Perl6::Metamodel::EnumHOW.new
Bad
14:34 masak is now known as Guest98771, p6bannerbot sets mode: +v Woodi, p6bannerbot sets mode: +v Guest98771
sena_kun is it just me or a second part(which checks if it's an Int or an enum) gets ignored? 14:34
m: enum <one>; if one ~~ Int && one.HOW ~~ Metamodel::ClassHOW { say "Bad" } elsif one ~~ Int && one.HOW ~~ Metamodel::EnumHOW { say "Good" } 14:35
camelia Good
14:36 kybr joined, p6bannerbot sets mode: +v kybr 14:39 caa51h joined
tobs m: enum <one>; say one.HOW; given one { when $_ ~~ Int && .HOW ~~ Metamodel::ClassHOW { say "Bad"; }; when $_ ~~ Int && .HOW ~~ Metamodel::EnumHOW { say "Good" } } # sena_kun 14:40
camelia Perl6::Metamodel::EnumHOW.new
Good
14:40 p6bannerbot sets mode: +v caa51h
SmokeMachine pmurias: if any news, please let me know... 14:40
sena_kun tobs, thanks. is explicit $_ usage sets topic for `.HOW` to be called on? 14:42
tobs sena_kun: given sets $_, and .HOW is (always) just shorthand for $_.HOW 14:43
sena_kun tobs, if $_ is set by given and .HOW is called on it, why my condition fail then?
tobs I think you using "Int && some-bool" above is what creates the problem. Did you mean "$_ ~~ Int && some-bool"?
sena_kun I did, but shouldn't `when Int` be equivalent to `when $_ ~~ Int`, ah, hmm, no. 14:44
it likely shouldn't.
14:44 pmurias left
tobs it should, but I think it's different when you use && too 14:44
sena_kun yeah, that might be it.
anyway, thanks! 14:45
14:45 pmurias joined, p6bannerbot sets mode: +v pmurias 14:47 pmurias left 14:51 pmurias joined, p6bannerbot sets mode: +v pmurias 15:02 clarkema joined, p6bannerbot sets mode: +v clarkema
clarkema Hi all 15:03
Suppose I have two lists of equal length, one of values and one which is a 'mask', containing just True or False. What's the best way to get a new list, containing only the values from the first list where the corresponding position in the 'mask' list is True? 15:04
I've been playing around with a grep, trying to get the index of the first list and compare with that slot in the mask list, but that doesn't feel right
lucasb m: say ((1,2,3) Z=> (True,False,True)).grep(*.value)».key 15:06
camelia (1 3)
lucasb there must be some better way :)
sena_kun that have to be about right, I think 15:08
clarkema lucasb: interesting idea!
15:09 coet joined, p6bannerbot sets mode: +v coet
sena_kun m: my @mask = True, False, True; my @a = do gather { for <a b c>.kv -> $i, $v { take $v if @mask[$i] } }; say @a; 15:10
camelia [a c]
clarkema is there a way to get the index in a grep?
sena_kun doesn't create a zipped list just to throw things away.
lucasb m: my @mask = True,False,True; say ({ $^x if @mask[$^i] } for <a b c>.kv) # based on sena_kun's 15:13
camelia (a c)
clarkema There really _is_ MTOWTDI 15:16
tobs m: my @values = 1,2,3; my @mask = True, False, True; say @values[@mask.grep(*.so, :k)] 15:18
camelia (1 3)
clarkema AoC is such a good source of interesting questions 15:19
15:27 zakharyas joined, p6bannerbot sets mode: +v zakharyas
SmokeMachine m: say ((1,2,3) Z=> (True,False,True)).Set 15:35
camelia set(1 3)
clarkema In this particular case I need the order to be preserved -- they're going to get stitched back together into a string 15:36
lucasb day 2? 15:37
clarkema yup 15:38
lucasb ah, the "find the two strings that differ in exactly 1 character" part? let me think :) 15:44
15:44 coet left, coet|CAD joined, p6bannerbot sets mode: +v coet|CAD, coet|CAD left
clarkema Yup, fine them and then report the answer, which is the string without the differenting character 15:44
hence the mask idea ;) 15:45
I mean you can just do it using grep over a zip of pairs, but I wanted to try playing around
15:45 coet joined, p6bannerbot sets mode: +v coet, coet left 15:47 coet joined, p6bannerbot sets mode: +v coet, coet left 15:48 coet joined, p6bannerbot sets mode: +v coet
SmokeMachine m: my &a := {$^a if $^b}; say flat <a b c> Z[&a] (True, False,True) 15:48
camelia (a c)
tobs SmokeMachine: That was on the tip of my tongue :) 15:50
clarkema SmokeMachine: nice! 15:52
15:53 rindolf left 15:55 carl^ joined 15:56 carl^ left, rindolf joined 15:57 p6bannerbot sets mode: +v rindolf 15:58 rindolf left 16:00 rindolf joined, p6bannerbot sets mode: +v rindolf
tobs I haven't read the task, but finding strings which differ in exactly one character sounds like a job for the one junction 16:01
m: my @strings = "abcd", "abde", "abce", "1bce", "123d"; say ([X] @strings xx 2).grep: -> ($s, $t) { one [Zne] ($s, $t)».comb } 16:02
camelia ((abcd abce) (abde abce) (abce abcd) (abce abde) (abce 1bce) (1bce abce))
tobs alas, I get each pair twice, effectively because *I* don't care about ordering but X does 16:03
16:06 jmerelo joined 16:07 p6bannerbot sets mode: +v jmerelo
jmerelo squashable6: status 16:07
squashable6 jmerelo, The date for the next SQUASHathon is not set
jmerelo Right
lucasb m: { say ($^a, $^b) if ($^a.comb Z $^b.comb).flat.grep({ $^x !eq $^y }) == 1 } for ($_ X $_ given <ab ac jk xy>).flat 16:08
camelia (ab ac)
(ac ab)
lucasb ^^ me too get double pairs
16:15 pmurias left, noyb joined, pmurias joined, p6bannerbot sets mode: +v pmurias, noyb left
Xliff m: say <ab>.comb Z <ac>.comb 16:19
camelia ((a a) (b c))
16:19 xinming_ joined
tbrowder .ask moritz how do you feel about adding a new top-livel tab on perl6.org for Advent? that would be a convenient place to move from Wordpress. then we could mark it WIP until it is satisfatory—hopefully in time for next year. 16:19
lucasb private leaderboard in aoc? hey let's create one for we #perl6 :-)
Xliff m: say <ab>.comb X <ac>.comb
camelia ((a a) (a c) (b a) (b c))
lucasb my rank position is over 10k, hehe 16:20
16:20 p6bannerbot sets mode: +v xinming_
Xliff m: say <ac>.comb X <jk>.comb 16:20
camelia ((a j) (a k) (c j) (c k))
tbrowder we could use the theming and all you use now on wp
clarkema Yeah, I ignore the global board
it's a waste of time on the UK/EU timezone -- I'm certainly not getting up at 5am on a Sunday to compete ;) 16:21
lucasb 169430-b1c331b2 <-- code
clarkema: yeah, me too :-)
16:22 xinming left
lucasb nice, clarkema! I'm anonymous user. I just created a throwaway reddit account for this :) 16:23
16:24 pmurias left
jmerelo tbrowder: do you mean using perl6.org itself? I kind of like wordpress.com, if not for anything else, for the convenience... 16:25
clarkema lucasb: i do like the idea of a #perl6 board, and using it to trigger discussion
moritz tbrowder: do we have a toolchain for a blog-like thing on perl6.org? 16:26
16:26 pmurias joined, p6bannerbot sets mode: +v pmurias 16:27 jmerelo left, jmerelo joined 16:28 p6bannerbot sets mode: +v jmerelo
sena_kun m: Any ~~ (10 => 'ten') 16:29
camelia No such method '10' for invocant of type 'Any'
in block <unit> at <tmp> line 1
sena_kun is this a bug?
jmerelo m: say (10 => 'ten').^name 16:30
camelia Pair
jmerelo sena_kun: definitely a weirdness
sena_kun I see. I wonder if it is worth a ticket.
jmerelo sena_kun: ~~ is equivalent to "ACCEPTS" 16:31
16:31 MilkmanDan joined, p6bannerbot sets mode: +v MilkmanDan
jmerelo m: say Any.ACCEPTS( (10=>ten)) 16:31
camelia 5===SORRY!5=== Error while compiling <tmp>
Undeclared routine:
ten used at line 1. Did you mean 'tan'?
jmerelo m: say Any.ACCEPTS( (10=>ten))
camelia 5===SORRY!5=== Error while compiling <tmp>
Undeclared routine:
ten used at line 1. Did you mean 'tan'?
jmerelo m: say Any.ACCEPTS( (10=>"ten"))
camelia True
jmerelo m: say Any ~~ (10=>"ten")
camelia No such method '10' for invocant of type 'Any'
in block <unit> at <tmp> line 1
lucasb it's the other way around, Pair.ACCEPTS
jmerelo m: say Any ~~ 10=>"ten"
camelia False => ten
jmerelo m: say (10=>"ten").ACCEPTS( Any ) 16:32
camelia No such method '10' for invocant of type 'Any'
in block <unit> at <tmp> line 1
jmerelo Precedence rules?
lucasb sena_kun: I would say it's worth an issue, yes. It's calling Pair.key on the subject, right?
x ~~ (foo=>10); # it's calling x.foo, why? 16:33
sena_kun Dunno. Just stumbled upon this, no more. Worse for me is that my design has turned out to be a mess, which is... not good. :) 16:34
creating a ticket...
jmerelo sena_kun++
tobs m: say "/tmp" ~~ :e 16:40
camelia No such method 'e' for invocant of type 'Str'
in block <unit> at <tmp> line 1
tobs m: say "/tmp".IO ~~ :e
camelia True
tobs That behaviour for pairs at least supports this syntax
lucasb ah, that was the intention, thanks for the reminder :-)
This use of P6 pairs it's what other languages have a Symbol data type for (I think) 16:42
well, expect that symbols are unique across the process and pairs don't 16:43
*except
clarkema yeah, they're definitely not the same as lisp-y symbols
tobs m: say "/tmp".IO ~~ :e & :!d
camelia False
clarkema I do wish they were available in p6 16:44
tobs it's kinda cute
Ulti is there some big thing Im missing on why Str can't be Positional? just wrote some ugly looking .comb / .substr / .join code and can't think of something nicer looking 16:49
it feels like I could shim that functionality in using substr, just wondering if/why that would be bad? 16:50
16:51 lizmat left
jmerelo Ulti: I suspect it's got something to do with Unicode. But I guess it's simply because it's better to consider a string a single thing. 16:52
Ulti yeah I just checked the docs Uni actually does do Positional
but you can kind of manipulate a Str in a similar way, Im just wondering if it really matters that underneath you're hiding things like bytes 16:53
Str is quite explicit in numerical things being grapheme level
I guess someone might want to remove a combining character or something so it gets unintuitive quickly
timotimo Ulti: there's a module in the ecosystem for python-ish strings, but i think it makes most code explode 16:54
Ulti orly why would code explode 16:58
timotimo because code in the core setting doesn't expect strings to behave like that :D
Ulti I guess for blah where blah on a string suddenly iterates characters is a big assumption change
but then most of the string like types are actually positional if you look at the type map 16:59
just make a type called String instead of Str :D
timotimo well, i guess :)
Ulti give it some nicer methods for common string tasks... feels like a fun module waiting to happen 17:00
timotimo make a sub that does comb/map/join all in one step and call it as a method syntactically?
Ulti you mean as an operator rather than the positional interface
timotimo yeah 17:01
Ulti yeah thats a nice solution to not break the world
timotimo m: sub smap(Str $a, Code $c) { $a.comb.map($c).join("") }; "hello".&smap(*.succ.uc).say
camelia IFMMP
17:03 clarkema left
Ulti feels super expensive though 17:03
unless that is heavily optimised away
to just point into the middle of a string :/
you really want to go through substr
which I assume does the pointer thing but knows how to jump around at a grapheme level rather than a byte level 17:04
timotimo yeah, strings aren't a byte-level thing 17:05
Ulti this is what I was doing anyway, plus it links to a fun advent puzzle gist.github.com/MattOates/fa3a306e...445bae1aed
lucasb Ulti: wanna join the leaderboard? the code is 169430-b1c331b2 17:07
17:07 Manifest0 left, Manifest0 joined
Ulti oh cool, thanks 17:07
17:08 p6bannerbot sets mode: +v Manifest0
Ulti Im not sure I understand the scoring system 17:09
given everyone there has done all the tasks?
lucasb it's by time... since the task was published
Ulti oh that sucks 17:10
I only started today about half an hour ago
tbrowder moritz: i don’t know about existing tooling for blogs...i was thinking of rolling our own. but i can look into some systems. 17:12
Ulti 5am is a bit early for me
lucasb Ulti: yeah, me too. I won't mess with my sleep just for this. :) The board is just for we #perl6 players have fun 17:13
tbrowder jjmerelo: my complaint about wordpress involves the editing...not very consistent imho. fyi, your post originally posted on day 1 with a dup title, 17:14
17:15 kensanata joined, p6bannerbot sets mode: +v kensanata
jmerelo tbrowder: it did delete some stuff when I copy-pasted for no reason. But I'm wary about having to maintain yet another resource. Plus wordpress is network, and we might get some traffic out of that 17:16
tbrowder: I noticed about the day. Maybe it's on PST or something, I don't know. I didn't notice the dup title, but I did have to do quite a bit of editing. 17:17
tbrowder: I'm OK with moving, as long as it does not involve a lot of maintenance and does have goodies like comments
17:18 lizmat joined, p6bannerbot sets mode: +v lizmat
tbrowder ok, i’m just imagining at the moment. if wordpress had an api so we could better control consistency that would work. 17:19
aha, it does have a rest api interface! p6 to the rescue! 17:21
mornfall i don't know, wouldn't it be better to just not use wordpress? :p 17:22
(i know, not a good time)
17:23 SqrtNegInf joined 17:24 p6bannerbot sets mode: +v SqrtNegInf, pmurias left
Altreus Seems like Slang::Piersing breaks things like self!handle-message 17:25
"Two terms ina a row" 17:26
but spelled right
17:26 coet left
Altreus Useful as it is to have ! as part of a method name it does not seem to be 100% functional just yet 17:26
tbrowder the wordpress site we have looks beautiful. the main problem imho is humans using an editing interface that is not very friendly so individual authors discover (or not) various ways to publish. api tools could help smooth that out. 17:27
moritz do we have a real problem? Or was an author inconvenienced a bit? 17:28
jmerelo tbrowder++ 17:32
tbrowder well, i’m probably the biggest klutz here, but the current process is a bit confusing. 17:33
jmerelo tbrowder: I also tried to change the CSS so that level-2 headers don't look smaller that regular text. I just couldn't.
tbrowder: I mean, it's LTA in many aspects. But it's low maintenance, which is ideal with the current level of human resources...
mornfall as far as 'beautiful' is concerned, the preformatted blocks suffer from a) too little horizontal space (they often have scrollbars) and b) inconsistent font size (source code is a lot smaller than non-source-code) 17:34
17:35 pmurias joined, p6bannerbot sets mode: +v pmurias
mornfall of course the picture of code in the middle of the second day really stands out too :\ 17:35
jmerelo mornfall: that was a screenshot... No better way to get that. it's the output of Data::Dump
jmerelo: suggestions are welcome 17:36
mornfall can't you just copy&paste it into a code block?
jmerelo mornfall: you can't copypaste terminal colors.
lucasb ah, ansi2html hehe 17:37
mornfall which is good, because they are completely inconsistent with the syntax highlighter :p
timotimo jmerelo: actually, you can, with the right terminal
mornfall (which would just dtrt, most likely?)
jmerelo timotimo: maybe, but I actually wanted to illustrate the actual terminal output...
timotimo hum. i wonder if i did it right or not
tbrowder i think we could use zoffix’s acme module as a start and add appriopriate code to take an authors’ md file as a commit to the per6/advent and automatically htmlify it and publish it on time. the author would always be able to edit the source and changes would be auto pushed to wp 17:38
jmerelo mornfall: it need not be consistent, far as I can see. It's just a different thing.
tbrowder: please tell me that you're talking about next year
lucasb ^^ agreed, any changes are for next year :-) 17:39
tbrowder yes, NEXT year 17:40
lucasb IMO, an author is expected to deliver a well formated markdown file, just that. Use Jekyll (or Uzu) in perl6/advent repo, and publish in GitHub pages
mornfall well, tbrowder said the site looked beautiful... unfortunately i can't agree with that
but let's leave it at that
timotimo: did you get that message about --profile crashing in 2018.11? (in backlog) 17:41
timotimo yeah
:(
tbrowder if the source is formatted right, AND it is entered into wp editor right, anf IF it’s scheduled to be published correctly.
jmerelo mornfall: we can hand-code h2 and code's CSS, but that's that...
Altreus looks like I can't use extended identifiers on methods either, or am I doing it wrong?
oops didn't mean to press enter
oh wait I might be
If I hadn't pressed enter I would now delete the message :P 17:42
tbrowder relying on each author to hand code html, css, etc, is asking for trouble
mornfall timotimo: i guess i can open an issue... though it doesn't seem to crash reliably (presumably depends on the script)
damn it also doesn't crash anymore with the same script 17:43
timotimo ah, unreliable crashes are no fun; it's perhaps possible to make it more reliable by setting MVM_SPESH_BLOCKING=1 in the environment
tbrowder moritz: can you dup the current p6 wp site so we can have a sandbox site? 17:44
17:44 pmurias left
timotimo that most strongly helps in multithreaded programs, but spesh itself is on its own thread already 17:44
Altreus github.com/shuppet/p6-api-discord/...e2c4571f94
"missing block" method pin⏏:!p {
mornfall timotimo: clearly a race condition is involved (which is unfortunate) ... i can also no longer reproduce 17:45
timotimo what
jmerelo tbrowder: we can export it to anything we want, but let's please not do this right now. Let's focus on spreading the word on current posts, helping them, reviewing them, and so on.
tbrowder: some of them are scheduled aleady, reviewing them would help.
mornfall i might have rebuilt moarvm in the meantime, with system libuv, which could throw off timing... 17:46
tbrowder for sure, it’s just the time though to look ahead at the same time
17:48 vrurg left, molaf left
mornfall timotimo: but hey, the overview page is pretty... one thing i don't understand though is whether JIT-compiled implies specialized (it certainly looks that way from that page) 17:48
17:49 vrurg joined, p6bannerbot sets mode: +v vrurg 17:50 pmurias joined, p6bannerbot sets mode: +v pmurias
timotimo ah, i ought to make that clearer, probably 17:51
the jit runs as a post-specialization step; if a frame doesn't get a specialized version of itself built, it won't be jitted either
mornfall a completely off topic remark, i think the inliner needs to be a lot more aggressive than it is :p says here it eliminated about 3M frames, on top of 6M that happened 17:57
17:57 molaf joined
mornfall inlining happens in spesh too? 17:57
17:58 p6bannerbot sets mode: +v molaf
mornfall (also, do the frames entered etc. include profiling instrumentation? the numbers look awfully high for what the code does) 17:58
(how about the initial compile, is that included?)
18:00 pmurias left
lucasb tbrowder: just showing, in case you think it's worth following their example: github.com/perladvent/Perl-Advent , cfp.perladvent.org/ 18:01
18:04 graphene left
tbrowder lucasb: thanks, i was looking for that source! 18:05
jmerelo lucasb: they use pull requests just as tbrowder is suggesting... People can comment and do stuff with it.
18:06 graphene joined
jmerelo I mean, in general, I don't think WP is the best. But I would rather take that starting in January to have it ready by September or so 18:06
It would make a good Google Summer of Code project, for instance.
18:06 p6bannerbot sets mode: +v graphene
jmerelo Besides, we are using LTA highlighting. Uploading stuff to gists and scraping the result is such a hack. (nice hack, but hack). We would be better off using the best highlighting available. 18:07
Which for the time being is the one used in Atom and in perl6/doc
xinming_ How can we get the list of "things" matches for $/ object? 18:12
18:12 kensanata left
xinming_ something like, $/<abc> $/<xyz> <--- How can we returns abc and xyz as hash? 18:12
sena_kun `$/.Hash`? A very wild guess, don't think it'll work out though. 18:13
tobs m: my $match = "abc" ~~ /<alnum>/; say $match.Hash 18:14
camelia {alnum => 「a」}
tobs m: my $match = "abc" ~~ /<alnum>+/; say $match.Hash # :)
camelia {alnum => [「a」 「b」 「c」]}
xinming_ Got it, Thanks.
perl6 rocks
tbrowder if we go the p5 route i think we need a github user named “perl6advent” i tried to do that earlier today but i wasn’t accepted because my email name was recognized. i don’t know if we can get that as a group somehow. 18:15
jmerelo tbrowder: we probably have emails (individual or colective) from other domains
18:16 vrurg left
xinming_ another confusion, my %h = (:a<a>, :b<b>); call-sub |%h; <--- This will make %h pairs into named arg, How can we force the keys of this hash as "array"? But also expanded the hash? 18:17
moritz tbrowder: you are using gmail, right? you can always use [email@hidden.address] 18:18
it's delivered to your normal inbox, but most services don't recognize that it's a separate address
tbrowder ref the p5 example, they seem to be a bit more strict than we have been, but that’s not all bad (iff you have a large enough body of interested authors).
moritz tbrowder: but the proper way is probably to create a github org
tbrowder ok, thanks.
18:22 yqt left
jmerelo tbrowder: they also started _quite_ early. 18:26
Just las week we had almost half the schedule empty
18:26 graphene left
tbrowder ok, i have a github group “perl6advent” started and i sent out a few invites that i could find github names for 18:27
if you want an invite i need yr github name
18:28 graphene joined
tbrowder i noticed mark fowler did all the 2018 articles 18:28
er, 2017
18:28 p6bannerbot sets mode: +v graphene 18:32 pmurias joined, p6bannerbot sets mode: +v pmurias 18:33 pmurias left 18:36 Guest98771 is now known as masak
masak it took years, but I've now identified an *awesome* use for an adverb \o/ 18:38
maybe *the* use
unfortunately, it's part of a future advent post, so I can't show you yet ;)
lucasb advance us some tips about it! 18:40
Geth gtk-simple: da2dbb3c20 | faraco++ | examples/18-cairo-draw-handler.pl6
add Cairo install instruction (for zef)
18:41
masak lucasb: nah :) 18:46
m: say rand x 3 18:47
camelia 0.215863582456106370.215863582456106370.21586358245610637
masak how come xx is thunky but x isn't? :)
jmerelo masak: no spoilers!
masak .oO( "no spoilers!" said the racecar driver ) 18:48
mornfall masak: to keep you on your toes
masak mornfall: dang it! :) 18:49
19:03 Manifest0 left 19:04 Manifest0 joined 19:05 p6bannerbot sets mode: +v Manifest0 19:07 uzl joined, p6bannerbot sets mode: +v uzl
uzl .tell jmerelo Great article, JJ! And it was really fun to read. 19:09
yoleaux uzl: I'll pass your message to jmerelo.
uzl .tell jmerelo By the way, shouldn't "That sign [ #| ] ties it to the code behind the comment..." be "That sign ties it to the code after the comment..."? 19:10
yoleaux uzl: I'll pass your message to jmerelo.
jmerelo uzl: thanks! 19:11
yoleaux 19:09Z <uzl> jmerelo: Great article, JJ! And it was really fun to read.
19:10Z <uzl> jmerelo: By the way, shouldn't "That sign [ #| ] ties it to the code behind the comment..." be "That sign ties it to the code after the comment..."?
jmerelo uzl: Probably. Let me check.
uzl: fixed. Thanks! 19:13
uzl jmerelo: No problem. ;)!
jmerelo We're getting a good amount of attention, BTW: www.flickr.com/photos/atalaya/4609...ateposted/ 19:14
Hey, Slashdot!
Anyway, it would be great if you spread the word every single day. 19:15
mornfall is there a repo with the posts (in progress)? 19:16
jmerelo clickbaits yesterday's post, an interesting take on porting stuff from Perl 5 to 6 perl6advent.wordpress.com/2018/12/...ard-tools/
mornfall: afraid not.
They are in drafts in the WP site.
tobs it's an advent calendar after all
19:17 andrzejku_ left
mornfall if it was in a repo, i'd send patches for typos but can't do the work in a browser 19:17
jmerelo mornfall: pretty much everyone is here (including YT, today's author). Grateful for everything you send.
mornfall the problem is that copy-editing is most efficiently done by, well, copy-editing in place and sending diffs or pull requests or whatever... it's super inefficient to say things like "Were they letter to Santa?" should be "Were they letters to Santa?" 19:19
uzl jmerelo: I have a question regarding Pod. I've stated it here: gist.github.com/uzluisf/fe0c282ce3...cce2d92e3f
masak so, wait... `say` uses .gist on objects, but string interpolation uses .Str -- was it always like that, or did that change recently? 19:21
jmerelo masak: probably. Don't remember any recent change to the documentation
19:21 lizmat left
jmerelo uzl: will check it out, but StackOverflow is probably a better venue for that 19:21
masak when I write custom classes, which one am I expected to define, typically? can I safely let the other defer to the first? 19:22
19:23 avalenn joined, p6bannerbot sets mode: +v avalenn
uzl jmerelo: Thanks. I'll try to do that later. 19:25
19:26 andrzejku_ joined 19:27 p6bannerbot sets mode: +v andrzejku_ 19:30 uzl left 19:34 sno joined, p6bannerbot sets mode: +v sno 19:36 pmurias joined, p6bannerbot sets mode: +v pmurias 19:39 pmurias left 19:40 someuser_ left
lucasb I think that most languages only have 2 methods, the usually overrideable "to string" method, and one dump/inspect/"repr" method that returns a evaluable string 19:41
that's .Str and .perl, I think
19:42 someuser joined
lucasb .gist was meant for "humans" (in the REPL) ? For not output a huge list... just the first 100 elements 19:42
I think it's funny that the method is called ".perl"
19:42 kensanata joined, p6bannerbot sets mode: +v kensanata, p6bannerbot sets mode: +v someuser
andrzejku_ after updating moarvm I have a problem: p6captureouters second arg must be MVMCode 19:43
lucasb if I create a Perl-like language, should I named the method ".foolang" ? :-)
19:44 domidumont left
andrzejku_ ahh sorry 19:44
I know the cause
19:48 lizmat joined, p6bannerbot sets mode: +v lizmat 19:50 pmurias joined, p6bannerbot sets mode: +v pmurias 19:52 pmurias left 19:55 jmerelo left
timotimo andrzejku_: did you rebuild rakudo? 19:55
andrzejku_ timotimo: now yes and it is working :)
timotimo good 19:57
20:11 zakharyas left 20:14 coet joined, p6bannerbot sets mode: +v coet 20:22 ufobat joined 20:23 p6bannerbot sets mode: +v ufobat 20:25 robertle left 20:28 sacomo joined, p6bannerbot sets mode: +v sacomo
ufobat m: sub foo($bar) { say $bar}; say &foo.signature ~~ :(Str) 20:35
camelia False
ufobat this doesn't match, but how could i check whether a Code is callable with a parameter without trying it in EVAL? 20:36
timotimo m: sub foo($bar) { say $bar }; (1).Capture ~~ foo.signature 20:37
camelia 5===SORRY!5=== Error while compiling <tmp>
Calling foo() will never work with declared signature ($bar)
at <tmp>:1
------> 3 foo($bar) { say $bar }; (1).Capture ~~ 7⏏5foo.signature
timotimo m: sub foo($bar) { say $bar }; (1).Capture ~~ &foo.signature
camelia Cannot unpack or Capture `1`.
To create a Capture, add parentheses: \(...)
If unpacking in a signature, perhaps you needlessly used parentheses? -> ($x) {} vs. -> $x {}
or missed `:` in signature unpacking? -> &c:(Int) {}
in block <unit> at …
timotimo m: sub foo($bar) { say $bar }; \(1) ~~ &foo.signature
camelia ( no output )
timotimo m: sub foo($bar) { say $bar }; say \(1) ~~ &foo.signature 20:38
camelia True
timotimo m: sub foo($bar) { say $bar }; say \() ~~ &foo.signature
camelia False
timotimo m: sub foo($bar) { say $bar }; say \(1, 2, 3) ~~ &foo.signature
camelia False
ufobat hm 20:39
let me try :)
andrzejku_ what do you think is rust a good language in perl6 users opinion? 20:40
ufobat timotimo, thank you! works perfectly 20:44
mornfall good language for what, andrzejku_? 20:45
it'll surely give you a lot faster code than raku
andrzejku_ that I know
mornfall it's also a lot more pain to write
so choose your poison, i suppose? 20:46
andrzejku_ mornfall: maybe yes maybe no 20:47
mornfall: I wonder know why business choice that language 20:48
ufobat i like rust a lot :) 20:52
imho rust has a few concepts that are not easy to undersand when you're just familiar with perl6. If you're familiar with them it is not harder to write. It is just different 20:54
20:59 kensanata left 21:03 pmurias joined, p6bannerbot sets mode: +v pmurias
Voldenet I like how rust tries to understand lifetimes, but I don't really like the syntax for it 21:10
21:11 AlexDaniel joined, p6bannerbot sets mode: +v AlexDaniel
AlexDaniel . 21:12
Kaiepi m: sub term:sym<ᅠ> { say 'evil!' }; ᅠ 21:13
camelia evil!
Kaiepi m: sub term:sym<‮> { say "if two astronauts were on the moon and one bashed the other's head in with a rock would that be fucked up or what" {; ‮ 21:15
camelia 5===SORRY!5=== Error while compiling <tmp>
Unexpected block in infix position (missing statement control word before the expression?)
at <tmp>:1
------> 3 a rock would that be fucked up or what"7⏏5 {; ‮
expecting any of:
Kaiepi m: sub term:sym<‮> { say "if two astronauts were on the moon and one bashed the other's head in with a rock would that be fucked up or what" }; ‮
camelia if two astronauts were on the moon and one bashed the other's head in with a rock would that be fucked up or what
masak don't they do psychological evaluations in astronaut school? 21:18
21:18 andrzejku_ left
Kaiepi idk probably 21:19
masak Voldenet: ooc, what don't you like about the lifetimes syntax? 21:23
(and do the recent improvements help, do you think?)
Kaiepi rust is still tier 3 on openbsd grr 21:27
i might still try it out anyways though seems like a neat language 21:31
not sure what i want to write with it though
lucasb hey, what's is this unicodey trick to flip everything? 21:33
mornfall Voldenet: lifetimes are *hard* and deciding lifetimes statically limits what you can express in your language
Voldenet: it doesn't matter how clever you get or how much you refine the syntax and the heuristics
Kaiepi U+202E lucasb
lucasb m: say "foobar\x[202E]foobar" 21:34
camelia foobar‮foobar
mornfall (unless you give up mutable state... in that case, it becomes a lot easier, but this is not what rust does)
lucasb ah, thanks Kaiepi!
m: class { multi method m(1) {}; method gist { "\x[202E]" } }.m 21:36
camelia Cannot resolve caller m(‮: ); none of these signatures match:
(<anon|1>: Int $ where { ... }, *%_)
in block <unit> at <tmp> line 1
lucasb :D
21:37 Hotkeys left 21:48 yqt joined 21:49 p6bannerbot sets mode: +v yqt 21:53 kybr left, leont joined 21:54 p6bannerbot sets mode: +v leont 21:55 ufobat left 21:56 kybr joined 21:57 p6bannerbot sets mode: +v kybr, pmurias left 21:59 pmurias joined, p6bannerbot sets mode: +v pmurias 22:01 rindolf left 22:05 dct joined, p6bannerbot sets mode: +v dct
masak mornfall: "static types are *hard* and deciding types statically limits what you can express in your language" -- just as true. doesn't mean static types are a bad idea. 22:10
mornfall masak: static types are much more natural than static lifetime arguments 22:12
masak: lifetime is a property of executions, type is a property of locations 22:13
masak not sure I agree with that offhand
SmokeMachine pmurias: the parcel solution isn't working either for MemoizedDOM: :(
pmurias: usercontent.irccloud-cdn.com/file/....12.07.png usercontent.irccloud-cdn.com/file/....12.40.png 22:14
mornfall masak: do you know LTL, or some other temporal formalism for specifying behaviours?
masak mornfall: I've seen them but not used them.
mornfall: here's my thinking: in dynamically typed languages such as Perl 5/6 or JavaScript, the developer does some kind of "informal type reasoning" about their code. things like "this is a Str, so I can call .chars on it" 22:15
mornfall masak: you could argue that lifetimes are more like typing a heap, instead of typing just named variables 22:16
masak: most languages give up on that right off the bat :p
SmokeMachine pmurias: gist.github.com/FCO/f38fa33d2aea52...85fdcf1aae
masak mornfall: in a manually heap-managed language like C++, the developer does a similar kind of informal reasoning about lifetimes: "this object just fulfilled its purpose, so I can free it. oh, and here too."
mornfall masak: yes, that's all fine -- but in C or C++, you either stick to simple lifetime idioms, or you implement reference counting 22:17
masak mornfall: I think I agree with the straightforward facts that (a) we're more comfortable as a community with static types than with explicit lifetimes, and (b) we've been doing the former longer :)
mornfall masak: to some degree, modern C++ tries to do a lot of safety improvements for the not-so-simple lifetime situations with unique_ptr and friends (with no runtime overhead) 22:18
masak *nod*
we're basically in violent agreement so far
mornfall *but* unique_ptr is a bloody mess to use correctly :p
and that's the simplest case, really -- one unique owner 22:19
masak I'll take your word for it
leont unique_ptr isn't all that messy IME
mornfall anything that smells of a mutable closure is going to be completely out of scope
leont But having to use move semantics is extra mental payload
mornfall leont: if you only have that one unique_ptr, it's not messy, but it *usually* happens that you need to lend out a raw pointer to someone 22:20
masak leont: maybe you were lucky and no-one else was using it while you were :P
mornfall leont: which is why rust has a borrows checker, to make that safe (in C++, it's very much unsafe to do that)
leont Yeah, rust definitely does this better. Note to self: allocate time for learning (more) rust 22:21
mornfall in C++, your only choice is to rewrite everything with shared_ptr as soon as you need to, well, share that resource
but of course you immediately go into GC land
(assuming you want to retain static safety)
leont No, rewriting everything to shared_ptr will quickly lead to circular references, and it's usually not necessary 22:22
You do need to plan ahead your ownership
mornfall leont: if you had unique_ptr at start, there absolutely will not be circular references
leont: there can be exactly one unique_ptr to any object (which is why it's called unique)
masak "plan ahead your ownership" sounds exactly like the kind of implicit lifetime/ownership reasoning I'm talking about
experienced C++ programmers do it by rote anyway. Rust just forces you to do it, and checks your mistakes 22:23
mornfall leont: if all you have is unique_ptr, you can never have shared mutable state
masak well, "just"
mornfall and you could of course argue that shared mutable state is bad (which it is) but it also is about the only way to write code that runs quickly on existing hardware 22:24
getting rid of shared mutable state is not the answer, because you risk paying more penalty than what you saved by not having a GC
22:24 pmurias left
leont masak: I'm not disagreeing with that. 22:24
mornfall and GC wins hands down for usability, every time
leont But not on a lot of performance metrics, or on predictability. 22:25
22:25 aindilis joined, pmurias joined, p6bannerbot sets mode: +v pmurias
mornfall yes, *but* GC tech has gotten a lot better since the 60s ;-) 22:25
masak Rust could be described as having a "static GC" ;)
mornfall that's an oxymoron 22:26
22:26 p6bannerbot sets mode: +v aindilis
mornfall unless you call 'automatic variables' in C also 'static GC' i guess 22:26
what rust has is an extension of lexically-bound lifetime 22:27
which is still static, but more powerful than just having a stack
one thing that can be arguably made easier in a static-lifetime program is hunting down memory leaks 22:28
but i have no data to support that, it's a wild guess
memory leaks in haskell can be a real pain in the backside, and that's a language that doesn't even have mutable state (most of the time, anyway) 22:29
Voldenet masak: fundamentally the problem with rust lifetime syntax is that /it just doesn't read well/ - I'm sure one could get used to it with experience though
mornfall (and as i mentioned above, without mutable state, lifetime is a lot easier in principle, though you often pull back all the complexity to make it run faster)
Voldenet mornfall: lifetimes aren't hard, they must be statically described in all languages 22:30
btw
mornfall Voldenet: that's nonsense
do you perhaps mean scope?
Voldenet hm, I'm not sure now, if the former makes sense then I probably used this vocabulary wrong 22:31
mornfall scope is related to names... lifetime is related to values 22:32
Voldenet For example C doesn't force you to define static lifetimes 22:33
except... it does
mornfall it's perfectly plausible that a value outlives its name (e.g. when you return x; ... 'x' disappears, but the value that lived in 'x' survives)
Voldenet: you have malloc/free in C... you can have as dynamic a lifetime as you please
Voldenet Okay, so where does the value disappear, then?
pmurias SmokeMachine: I'll dedicate tommorow to getting that to work
mornfall conventionally, when it is no longer reachable from the root set 22:34
SmokeMachine pmurias: please, let me know if I can help!
mornfall (that's when its lifetime ends)
but if you destroy it explicitly (e.g. via free()), then that's when it's gone
masak that's a very GC view of lifetime :)
mornfall masak: not only GC -- stack variables work that way too (only you don't think of it that way perhaps) 22:35
Voldenet in fact, you can implement gc in rust
mornfall Voldenet: something something reimplementing common lisp :p
you can write any language in any other language, that's not the point
masak mornfall: uhm. isn't it more like, stack variables don't work that way at all? :)
or more like, with stack variables, the scope completely coincides with the lifetime 22:36
mornfall masak: yes, but they become dead when they fall out of the root set, which happens to include such variables directly :p
masak your point seems to fall under "correct but contrived"... :) 22:37
mornfall but to ensure safety of a program, memory re-use should always coincide with the lifetime end in the 'GC view' as you put it
if you re-use memory to which pointers exist, it'll be really hard to ensure that those pointers are never used by the program incorrectly 22:38
masak right, and failure to do that results in either (a) use-after-free or (b) memory leaks, depending on which way they don't coincide
mornfall yes, use-after-free is by far worse of the two :)
so basically, GC is 'correct' and 'static lifetime' is a static (over)approximation of what GC would do 22:39
masak good discussion. I'm still kind of fond of the phrase "static GC" (and I didn't coin it, Steve Klabnik did) :)
'night
mornfall so i guess perl6 has static dynamic types :p 22:40
(i still think it's a stupid term)
more obviously so with 'static dynamic types' which is why i guess it's called 'gradual typing' instead :-) 22:42
pmurias SmokeMachine: I'll get some sleep and I'll think what we need to make rakudo.js more user friendly (I have mostly focues on getting test to pass thus far) 22:43
SmokeMachine pmurias: good night! thanks!
mornfall (anyway, type-system-like declarative annotations are the wrong approach, but i'll need maybe another decade to do it right :p both for advanced static types that are borderline proof systems, but also for lifetimes) 22:44
pmurias mornfall: re 'gradual typing' Perl 6 has mostly type assertions 22:46
SmokeMachine could any one, please, take a look at my post draft to see if its getting ok? my english isn't very good, so I need some help... 22:48
it's the "A Red Secret Santa"
pmurias SmokeMachine: link? 22:49
SmokeMachine pmurias: it's on the wordpress... Ill copy it to a gist... 22:50
Voldenet mornfall: declarative type systems are clearer in describing intent - I almost always use them in perl6, because usage is a lot easier afterwards 22:51
SmokeMachine pmurias: could you see if it's visible? perl6advent.wordpress.com/?p=7148&...eview=true
no, it isnt
tbrowder SmokeMachine: it’s visible—brief glance look good... 22:53
mornfall pmurias: well, there's a degree of static type checking, at least it seems like there is to me? i'm still very much new to the language 22:56
timotimo m: sub test-it(Str $foo) { }; test-it(1)
camelia 5===SORRY!5=== Error while compiling <tmp>
Calling test-it(Int) will never work with declared signature (Str $foo)
at <tmp>:1
------> 3sub test-it(Str $foo) { }; 7⏏5test-it(1)
timotimo but you can't have static type checking with method calls, as they are dynamic
tbrowder it’s showing 2 dec so make sure and schedule it properly for 3 dec at 00:01
SmokeMachine tbrowder: thanks! :) 22:57
pmurias: gist.github.com/FCO/d3dd6dfe7de354...d1ab65cd91
Voldenet m: sub test-it(Str $foo) { }; my $x = 1; test-it($x)
camelia Type check failed in binding to parameter '$foo'; expected Str but got Int (1)
in sub test-it at <tmp> line 1
in block <unit> at <tmp> line 1
Voldenet Dynamic types fail at runtime instead at compile time, which is why declaring types everywhere helps 22:59
m: sub test-it(Str $foo) { }; my Int $x = 1; test-it($x)
camelia 5===SORRY!5=== Error while compiling <tmp>
Calling test-it(Int) will never work with declared signature (Str $foo)
at <tmp>:1
------> 3b test-it(Str $foo) { }; my Int $x = 1; 7⏏5test-it($x)
SmokeMachine I hope my perl6 is better than my English... 23:00
23:01 graphene left 23:03 graphene joined, p6bannerbot sets mode: +v graphene
ryn1x What can I set $*OUT to if I just want to ignore output and have it not print to the screen? Like using 1>/dev/null. 23:05
yoleaux 10 Nov 2018 21:47 MST <AlexDaniel> ryn1x: no, it's not implemented as linked lists, but potentially it can be depending on the compiler or backend. See also github.com/perl6/doc/issues/1726
Voldenet ryn1x: you've suggested the soluton already 23:08
$*OUT = open :w, "/dev/null";
(I'm not sure if that's the best solution, but it's something)
ryn1x I was thinking I want something the doesn't reach outside of perl... but though maybe there was something built in so I dont dave to create a class with a print method that does nothing... 23:10
s/though/thought
Voldenet hmm, $*OUT = class { multi method print(Str $s) { } }.new 23:11
ryn1x That works 23:12
works without multi too 23:13
Voldenet Though it might not be proper way to do it 23:14
docs.perl6.org/type/IO::Handle#Cre...om_Handles
pmurias SmokeMachine: gist.github.com/pmurias/ed73ad5dab...277a728a3a did some quick fixes
mornfall Voldenet: no, they are not -- they are good for describing simple facts, like 'this is an integer' ... not so much for describing complicated things like 'the result of this function is a valid index into the array it got as its argument'
ryn1x thanks Voldenet 23:16
pmurias SmokeMachine: when is the pos scheduled?
SmokeMachine pmurias: thank you very much!! 21st 23:17
pmurias sleep for real& 23:21
SmokeMachine pmurias: good night
23:21 pmurias left 23:27 yqt left
Voldenet mornfall: I agree - the best way would be to describe validation, which in best case would fail at compile time 23:27
23:29 kurahaupo_ joined 23:30 p6bannerbot sets mode: +v kurahaupo_ 23:32 TreyHarris joined, p6bannerbot sets mode: +v TreyHarris, kurahaupo left 23:33 kurahaupo_ left 23:36 dct left 23:39 kurahaupo joined, pecastro left 23:40 p6bannerbot sets mode: +v kurahaupo
Voldenet mornfall: in fact, there is a language that allows you do such things godbolt.org/z/PD0Q7h 23:40
but with this approach, comple times can get obnoxiously high 23:41
mornfall Voldenet: I would know :P 23:42
sena_kun re describing complicated things in types <- I don't know a thing on topic or about what you folks are talking, but: dependent types, LiquidHaskell, Idris and friends should come to the rescue. Whatever are those any good is another question though. 23:44
mornfall sena_kun: i was basically bashing those :-) 23:45
sena_kun ah
well, very lazily read some parts of the log with a lot of distractions, so my comments likely would be not good at all. :) 23:47
23:53 marcoonroad joined, p6bannerbot sets mode: +v marcoonroad 23:57 vrurg joined 23:58 p6bannerbot sets mode: +v vrurg
marcoonroad hi, folks. is there any code coverage library available for perl 6? such technique is often implemented with instrumentation / ast-rewrite (complex) or by the means of reflection (slower sometimes)... i'm just wish to test how much tests i'm doing. i know that code coverage is far from the better approach, and that fuzzy / property tests are more useful by covering the data space instead the code space... thx in advance o/ 23:58
23:58 w_richard_w joined 23:59 p6bannerbot sets mode: +v w_richard_w