»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'p6: say 3;' or rakudo:, or /msg camelia p6: ... | irclog: irc.perl6.org or colabti.org/irclogger/irclogger_logs/perl6 | UTF-8 is our friend!
Set by moritz on 22 December 2015.
00:01 khw joined
AlexDaniel m: for ^5 { LAST { LAST { say ‘foo’ }; say ‘bra’ }; .say } 00:08
camelia rakudo-moar 1dca2d: OUTPUT«0␤1␤2␤3␤4␤bra␤»
AlexDaniel m: LAST {}(5) 00:10
camelia rakudo-moar 1dca2d: OUTPUT«Cannot find method 'Nil' on object of type Int␤ in block <unit> at /tmp/YfEr3VkYN6 line 1␤␤»
AlexDaniel m: Nil(5)
camelia rakudo-moar 1dca2d: OUTPUT«Cannot find method 'Nil' on object of type Int␤ in block <unit> at /tmp/Jf8g6cPo7p line 1␤␤»
AlexDaniel why method?
dalek c: 64b6a26 | (Wenzel P. P. Peppmeyer)++ | doc/Type/Callable.pod:
add infix:<∘> to the index
00:12
AlexDaniel gfldex++ 00:13
gfldex: wait, but it's not going to make 「o」 searchable 00:14
gfldex: I know that search results for 「o」 are not that great, but at least it should be listed
perhaps once we start prioritizing exact matches it will be better 00:15
00:16 pierre_ joined 00:35 jnthn left
sortiz AlexDaniel, 'cus any coercion attempts to use the corresponding method on the coerced. I.e. for example, Str(5) desugar to 5.Str() 00:35
00:35 jnthn joined, Actualeyes joined
AlexDaniel m: sub Mu { say 42 }; Mu(5) 00:36
camelia rakudo-moar 1dca2d: OUTPUT«Cannot find method 'Mu' on object of type Int␤ in block <unit> at /tmp/Ha9JeWGiCV line 1␤␤»
AlexDaniel m: sub Mu { say 42 }; Mu()
camelia rakudo-moar 1dca2d: OUTPUT«WARNINGS for /tmp/iniEIuFqLz:␤Useless use of constant value Mu() in sink context (line 1)␤»
AlexDaniel m: sub Mu { .say }; Mu(42) 00:37
camelia rakudo-moar 1dca2d: OUTPUT«Cannot find method 'Mu' on object of type Int␤ in block <unit> at /tmp/ADoJZQ_Yey line 1␤␤»
ZoffixWin I'm not proud to admit, but I converted perl6.party/ to Perl 5 :(
AlexDaniel ZoffixWin: what was the reason?
ZoffixWin AlexDaniel, huge memory leaks: irclog.perlgeek.de/perl6/2016-05-08#i_12449184 00:38
AlexDaniel ah
mst ZoffixWin: what, you didn't just switch it over to CGI?
ZoffixWin pfft, fuck CGI
mst hipster 00:39
ZoffixWin :)
mst it's a perfectly reasonable protocol
the one non-static part of the shadowcat site is a Web::Simple JSON API deployed as .cgi that angular talks to ;) 00:40
ShimmerFairy I'd at least use the variant of CGI that doesn't re-run the script every time (IIRC the big sticking point with plain CGI)
AlexDaniel mst: I'm not sure if perl 6 is going to work well enough with cgi given its startup time
mst honestly, it being a blog, I'd have it static generating 00:41
sortiz is planing to embed Rakudo in apache: mod_perl6 00:42
AlexDaniel sortiz: yeeaaah! That'd be great
mst AUGH
what could possibly go *foom* 00:43
ZoffixWin hopes that was a joke.... 00:44
ShimmerFairy there's no need for that; just implement a Perl 6 script executor in PHP :P
ZoffixWin >_<
mst ShimmerFairy: pretty sure you can already embed perl5 in PHP as an extension
so all you need to do then is writen an Inline::Perl6 shim 00:45
sorted!
sortiz No ZoffixWin, I'm serious, at $work I use mod_perl every day.
ZoffixWin 0.o0
AlexDaniel ZoffixWin: ok, so… There's a problem with contrast on navbar
ShimmerFairy mst: but if it's PHP, how can we make it inconsistent and illogical? :P
AlexDaniel ZoffixWin: leaverou.github.io/contrast-ratio/#...-%23428bca 00:46
mst sortiz: ok, but could you make sure this time people only use it for writing actual web server extensions rather than deploying web apps?
AlexDaniel ZoffixWin: same goes for timestamps leaverou.github.io/contrast-ratio/#...-%23f6f6f6
mst because mod_perl is great for the former and a lot of billabnle hours I wish I hadn't billed for the latter
AlexDaniel ZoffixWin: also, I'd increase the font size in the navbar 00:47
ZoffixWin: and if you're wondering if I am the only one who is pissed of by things like that, see this contrastrebellion.com/ 00:48
00:48 cdg left, cdg joined
mst ShimmerFairy: write a slang that calls back into perl5 for ~~ behaviour 00:49
ZoffixWin AlexDaniel, so you're pissed off because a tiny portion of text doesn't score a high-enough number on some website? :)
ShimmerFairy mst: I'll have to code up a ~~~ that matches values unless they're objects, then :P
AlexDaniel ZoffixWin: I'm pissed off because it is hard to read, for no reason
ZoffixWin Configure your monitor properly :)
AlexDaniel ZoffixWin: my monitor is alright, thank you. Fix your website ;) 00:50
ZoffixWin heh
mst ZoffixWin: navbar font is tiny
ZoffixWin: contrast is terrible
ZoffixWin: I take it you hate accessibility 00:51
ZoffixWin I don't know what you're talking about! On my $1,100 monitor it looks fantastic!
:P
mst I mean, I can just about read this, but I know people who're various forms of dys-something-ic who'd be screwed
00:52 khagan left
mst there's something seriously wrong when I end up thinking "I'd rather be reading blogs.perl.org" :P 00:52
00:52 Ben_Goldberg joined
ZoffixWin 0.0 00:52
ShimmerFairy "Works Best on IE 5.0"
00:52 BenGoldberg left 00:53 Ben_Goldberg is now known as BenGoldberg, TeamBlast left, khagan joined
mst "Works Best On An Expensive Machine While Neurotypical And Under Thirty" 00:53
ShimmerFairy "Valid HTML 3.2" 00:54
mst that's almost true of trout.me.uk
ZoffixWin is not neutortypical nor under thirty :)
mst neutertypical sounds like a genderoftheday post
ZoffixWin :D 00:55
00:55 cdg left
AlexDaniel alright, you took it down! 00:55
“Service Unavailable”
00:55 Ben_Goldberg joined
mst also, if you're using apache, you could use FastCgiServer with say five children 00:55
and then have a small cron script that shoots one in the head every so often 00:56
00:56 Ben_Goldberg left
mst and that'd give you mostly-lkea-proof-ness 00:56
ZoffixWin Yeah, I'm trying to fix the in-browser-code-sample-runners
mst that or you could just ulimit it and watch it go pop by itself
00:56 TeamBlast joined 00:57 BenGoldberg left
ShimmerFairy mst: it always strikes me as funny when I remember that a phrase like "kill child" is wildly different in computer terms vs. the rest of life :) 00:58
hotel apparently there's a lot of contentious computing terms 01:00
e.g. master/slave
mst let's not go there
hotel backs away
ShimmerFairy that's another good one, though fortunately it's pretty much limited to tiny little switches on your HDDs (and probably just old ones at that) nowadays :P 01:01
mst speaking as somebody who deals with the care and feeding of databases sometimes 01:02
hotel and anything in a network
AlexDaniel github.com/django/django/pull/2692
mst it's an argument I could do without having to deal with
ZoffixWin AlexDaniel, fixed! perl6.party/
mst and the conversation on that PR nicely encapsulates why I said "let's not go there" :)
ZoffixWin AlexDaniel, the constrast/size stuff
hotel ZoffixWin, I like the about page 01:03
ZoffixWin :P
hotel oh is this one of those jekyll blogs?
ZoffixWin
.oO( jekyll blogs??? )
hotel oh, guess not 01:04
AlexDaniel ZoffixWin: nice, thanks! It's not perfect but at least it is much better now
hotel github.com/HotelCalifornia/hotelc.me jekyll 01:05
oh actually not it's not 01:06
ignore me
01:28 huggable joined 01:30 pierre_ left 01:36 pierre_ joined 01:38 kurahaupo joined
dalek c: 299a655 | (Wenzel P. P. Peppmeyer)++ | doc/Type/Cool.pod:
add `is copy` example to lines
01:39
01:41 kurahaupo left, kurahaupo joined 01:42 kurahaupo left, mattp_ is now known as mattp 01:43 sufrostico left 01:44 ssotka left
dalek c: 0764762 | (Wenzel P. P. Peppmeyer)++ | doc/Type/Mu.pod:
State that Mu.gist will truncate at 100 elements.
01:47
01:50 zakharyas joined 01:53 kid51 left 01:54 pierre_ left 02:05 pierre_ joined
sortiz ZoffixWin, reading your last blog, I found an important detail: 'is native' without parameter doesn't "look for the Standard C library", In dlopen based systems, it looks in *any* already loaded dynamic library, obviously libc among them. So, as soon as you load any other, subsequent symbols don't need the parameter. 02:08
02:08 noganex joined
ZoffixWin But how do you "load any other"? 02:09
You mean in my libcdio example, I could omit that parameters for the second is native() call and it'll work? Interesting.... 02:10
mst is there not a collision issue there (albeit one you shouldn't expect to have to deal with normally) 02:11
sortiz That the tricky part: Yep as soon as you call the first sub, the library is loaded, so other subs called later, don't need it, and is faster.
02:11 noganex_ left
ZoffixWin wonders what would happen with two libs having same-named functions 02:11
geekosaur you need to specify to get the right one 02:12
ZoffixWin Ah
geekosaur iirc the most recently loaded one will win 02:13
02:16 eam joined
sortiz And there are other tricks available, for example see: github.com/perl6/DBIish/blob/maste...ibs.pm6#L8 02:16
mst geekosaur: which is why I was wondering is always specifying the name was worth it anyway 02:18
geekosaur it's a problem if a different module has loaded a shared object with a conflicting name but has not yet called one conflicting name 02:19
then ti calls it later, after your module has loaded that name from the other shared object
probably doesn't happen often because you couldnt use both those objects in a C/C++ program 02:20
so peopel avoid such collisions just to avoid being incompatible with some other library 02:21
sortiz And lots of libraries use a naming scheme that avoids collisions.
Yep, 'cus the same problem happens at standard link time. 02:22
02:22 DrForr left
mst right, hence 'wondering if', I'm mostly wondering if there's a real use case that anybody would care about that's sufficient to make it worth doing that 02:22
02:22 DrForr joined
mst probably the answer is 'if a user of your module finds one, go add the annotations then, because they probably never will' 02:22
sortiz Imo, NC needs to separate the library loading of the symbol resolving step, to allow finer control. And otoh, in Windows there are other problems. 02:25
02:27 AlexDaniel left 02:33 araujo_ joined 02:35 araujo left 02:39 skids joined 02:48 yqt left, mr-foobar left 02:49 mr-foobar joined 02:54 mr-foobar left, mr-foobar joined
hotel ah-ha, I've always wondered how nativecalls from lanuages worked without method bodies 02:57
iirc there's a similar syntax in java's jni
03:04 diakopter left 03:11 mr-foobar left 03:13 mr-foobar joined 03:20 diakopter joined 03:29 ssotka joined 03:30 mr-foobar left 03:31 mr-foobar joined 03:37 sortiz left 03:41 mr-foobar left 03:42 mr-foobar joined 03:55 pierre_ left 04:03 pierre_ joined 04:04 pierre_ left 04:12 araujo_ left 04:14 itcharlie left 04:24 _28_ria left 04:27 wamba joined 04:28 mr-foobar left 04:30 mr-foobar joined 04:42 khw left
hotel is it possible to get input from stdio? 04:50
04:50 Cabanossi left
hotel s/is it possible to/how does one/ 04:51
timotimo m: say lines()[0]
camelia rakudo-moar 1dca2d: OUTPUT«Céad slán ag sléibhte maorga Chontae Dhún na nGall␤»
timotimo m: say $*IN.read(32).perl
camelia rakudo-moar 1dca2d: OUTPUT«Buf[uint8].new(67,195,169,97,100,32,115,108,195,161,110,32,97,103,32,115,108,195,169,105,98,104,116,101,32,109,97,111,114,103,97,32)␤»
hotel timotimo++ 04:52
I was expecting something like input() lol
timotimo m: say get 04:53
camelia rakudo-moar 1dca2d: OUTPUT«Céad slán ag sléibhte maorga Chontae Dhún na nGall␤»
04:53 Cabanossi joined
timotimo m: my &input = &get; say input() 04:53
camelia rakudo-moar 1dca2d: OUTPUT«Céad slán ag sléibhte maorga Chontae Dhún na nGall␤»
04:53 telex left
timotimo there you go 04:53
AFK
hotel ah, thanks 04:54
04:54 telex joined, diakopter left 04:57 sno left
ugexe my $input = prompt("Enter input:"); 04:59
05:05 pierre_ joined 05:07 diakopter joined 05:10 pierre_ left
hotel yeah, realised I needed prompt after about 20 seconds of actually thinking about what I needed >.< 05:11
05:17 TimToady left 05:19 TimToady joined 05:22 skids left, pierre_ joined 05:28 huggable left, huggable joined 05:34 mr-foobar left 05:36 mr-foobar joined 05:55 domidumont joined 05:59 CIAvash joined, domidumont left 06:00 sno joined, domidumont joined 06:06 cbk left
_nadim Good morning 06:11
06:16 hotel is now known as hotel|sleepy
hotel|sleepy it's the middle of the night *yawns* 06:17
but good morning anyway :)
06:26 firstdayonthejob joined 06:28 pierre_ left 06:32 pierre_ joined 06:41 firstdayonthejob left 06:44 _dolmen_ joined 06:51 grondilu left 06:52 ufobat joined 06:56 rodarmor left, rodarmor joined 07:00 _dolmen_ left 07:02 sammers joined 07:04 Sgeo_ joined 07:05 Sgeo left 07:06 lue joined 07:07 ShimmerFairy left, lue is now known as ShimmerFairy
ufobat morning 07:10
07:14 ssotka left
sammers hi all, I am using multi MAIN and I would like to have the output of my script look something like this: ./garage newcar <make> (e.g. 'chevy', 'ford', 'toyota') <model> where some parameter in the signature requires one of the three make types. I just want to be able to display the valid parameters as output if the user runs the script without passing any parameters. 07:16
is it possible to do that with the default multi MAIN signature definition? 07:17
right now I can get the validation on `make` using where (or operator), but I would like to print out valid options at the same time. 07:18
timotimo i know you can verify against a subset, but i don't think it'll output that with the default usage, yeah
sammers hmm
yeah
timotimo m: multi sub MAIN("newcar", $make where /chevy | ford | toyota/) { } 07:19
camelia rakudo-moar a5540e: OUTPUT«Usage:␤ /tmp/FZ0Dk9KeLj newcar <make> ␤»
timotimo right :(
sammers hmm
timotimo m: subset make of Str where /chevy | ford | toyota/; multi sub MAIN("newcar", make $make) { }
camelia rakudo-moar a5540e: OUTPUT«Usage:␤ /tmp/1qTUmLBZJx newcar <make> ␤»
timotimo nope
sammers hmm
timotimo well, you can still generate your own usage, or take the generated usage and modify it before printing it
sammers ok, that should work then... 07:20
can you point me to an example?
CIAvash sub USAGE {}
sammers ok, thanks
07:21 darutoko joined
hotel|sleepy so where is it morning right now? 07:21
CIAvash timotimo: how do you modify the generated usage?
07:22 darutoko- joined
timotimo hotel|sleepy: 9am here in germany 07:23
hotel|sleepy ah
timotimo CIAvash: i was expecting you could probably "callsame" the usage you'd have generated, but maybe that doesn't actually work
hotel|sleepy well then guten morgen
timotimo guten morgen to you, too
hotel|sleepy >2am, but thanks 07:24
timotimo hehe.
moritz yes, sounds like morning :-)
timotimo i hope you can get better sleep than me
hotel|sleepy one day
sammers thanks, I will just use USAGE in place of the default MAIN output. 07:25
07:25 darutoko left 07:30 mr-foobar left 07:31 mr-foobar joined 07:33 rindolf joined 07:34 darutoko joined, darutoko left 07:37 darutoko- left
raydiak m: sub MAIN (#|{chevy, ford, or toyota} $make, $model) { } 07:43
camelia rakudo-moar a5540e: OUTPUT«Usage:␤ /tmp/caQSB8wFR_ <make> <model> ␤ ␤ <make> chevy, ford, or toyota␤»
raydiak sammers: ^ you can document a parameter in the USAGE output like that
timotimo ooooh, of course! 07:44
raydiak you can document each multi MAIN the same way by putting the #|{} before the whole sub too 07:45
m: #|{Add a new car to the database} multi MAIN ('newcar', #|{chevy, ford, or toyota} $make, $model) { } 07:46
camelia rakudo-moar a5540e: OUTPUT«Usage:␤ /tmp/QI3rvGWdah newcar <make> <model> -- Add a new car to the database␤ ␤ <make> chevy, ford, or toyota␤»
mst oh, that's really neat 07:47
timotimo thank you for pointing that out. it totally slipped my mind that that's totally a thing you can have 07:48
hotel|sleepy documentation capture?
raydiak happy to help :)
hotel|sleepy très cool 07:49
CIAvash nice! 07:50
timotimo time for zoffix to write a blog post about commenting on parameters and such 07:51
hotel|sleepy lol yeah 07:53
raydiak m: multi MAIN (#|{A} $a, #|{B} $b) {}; multi MAIN (#|{C} $c, #|{X} $x) {}; multi MAIN (#|{Y} $y, #|{Z} $z) {}
camelia rakudo-moar a5540e: OUTPUT«Usage:␤ /tmp/RJQcIvy6Bu <a> <b> ␤ /tmp/RJQcIvy6Bu <c> <x> ␤ /tmp/RJQcIvy6Bu <y> <z> ␤ ␤ <a> A␤ <b> B␤ <c> C␤ <x> X␤ <y> Y␤ <z> Z␤»
timotimo that's not confusing at all to read! what with the nl-symbols and it all being in a single line :P 07:54
raydiak: have you tried glot.io yet?
raydiak my old local rakudo has those spat out in some crazy random but repeatable order
timotimo: nope, what is it?
oh neat 07:55
timotimo very 07:56
maybe we should teach camelia to take glot.io for code
raydiak that could be fun 07:57
07:58 RabidGravy joined
hotel|sleepy oh, looks nice in my window 08:00
raydiak timotimo: looks pretty straightforward github.com/prasmussen/glot-snippet...snippet.md 08:01
08:01 vytas left
hotel|sleepy I once knew a bot that had some pastebin integration 08:01
raydiak I wonder if camelia's still works...it breaks every time github changes their urls... 08:02
mst hotel|sleepy: does fpaste.scsys.co.uk/perl6 count? :) 08:03
hotel|sleepy lol idk
it was a while ago, I forget what it even did with pastebin
shadowpaste "hotel|sleepy" at 217.168.150.38 pasted "test paste please ignore" (1 line) at fpaste.scsys.co.uk/513661 08:04
hotel|sleepy I see
timotimo that's the one, yeah 08:08
DrForr Hrm, 'hotel|sleepy' - I sense a nick collision in my near future :)
timotimo what a surprise mst knows about that one!
hotel|sleepy nick collision?
DrForr I'll be at a hotel myself in the near future. 08:09
hotel|sleepy ah
timotimo well, you may be at a hotel, but hotel|sleepy *is* a hotel
hotel|sleepy timotimo++
timotimo who knows, maybe you'll end up a guest in hotel|sleepy 08:10
hotel|sleepy that made me shiver a little
RabidGravy morning
hotel|sleepy o/
timotimo didn't mean to creep you out :S
hotel|sleepy lol
mst hotel|sleepy is secretly a hypervisor? 08:11
hotel|sleepy nah, I just run windows 08:12
08:14 hotel_california joined
jast it's getting a little crowded 08:14
hotel_california good job internet 08:15
timotimo well, at least you have ipv6
jast never liked that internet guy
hotel_california ipv6 support: the one thing att does kinda right
08:15 hotel_california is now known as hotel
hotel of course, all the local addresses are ipv4 :I 08:15
08:17 motel joined, hotel|sleepy left 08:19 motel left 08:22 hotel left 08:29 pierre_ left 08:31 pmurias joined
RabidGravy Oooh *two* new kernels, that has got to be a first 08:32
and in the years I have been using fedora + planetccrma it is the first time the planetccrma RT kernel is the same version as the stock one 08:35
timotimo oh, you have a realtime kernel? for your audio needs?
08:36 CIAvash left
RabidGravy yeah, can get the latency with a FW audio interface down into <100ms with it 08:37
timotimo their website speaks of fedora 22, what about fedora 23? 08:38
08:39 mr-foobar left
RabidGravy they just don't update the website very often 08:39
timotimo huh, ok
RabidGravy just replace the 22 in any url with 23 then it should work
08:40 CIAvash joined, espadrine joined
timotimo wow, rezound is *rotten* 08:41
or rotted?
they celebrated their move from cvs to svn in january of 2008 %)
RabidGravy lots of still used audio software out there that either could use some love or is completely abandoned 08:42
08:43 pierre_ joined
timotimo wow. rezound surely does look like it's from 2008 at most 08:46
08:47 grassass left
timotimo huh, sweep also stopped getting news entries in 2008 08:47
i wonder what terrible thing happened that eyar
A roadmap for Planet CCRMA 08:48
Last updated on Aug 14 2003.
... %)
okay, enough sound tack in #perl6 from me ... for now :P 08:49
08:52 pierre_ left 08:54 vytas joined, araujo joined 08:55 araujo left 08:56 araujo joined, araujo left, araujo joined, araujo left 08:59 jluis joined 09:01 araujo joined 09:02 araujo left 09:07 xinming left 09:08 abraxxa joined 09:09 grassass joined 09:11 mls left 09:13 mls joined 09:19 mls left, mls joined
masak good antenoon, #perl6 09:20
Perl 6 day today! \o/
09:20 xinming joined
timotimo hey masak 09:21
that sounds nice :)
masak it kinda does, doesn't it? :)
09:24 pierre_ joined
RabidGravy well, it's "rebuild perl 6 on at least one machine" day 09:25
09:28 huggable left, huggable joined
timotimo .tell skarsnik at some point gptrixie could totally extract doxygen stuff like \param and the general description and then put the corresponding pod comments into the generated code :3 09:28
yoleaux timotimo: I'll pass your message to skarsnik.
09:34 kurahaupo joined 09:35 CIAvash left 09:40 iH2O joined 09:45 pierre_ left 09:48 pierre_ joined
ZoffixWin timotimo, "commenting on parameters"? what's that? 09:50
09:52 dalek left, dalek joined, ChanServ sets mode: +v dalek 09:56 cpage_ left 09:58 iH2O left
ZoffixWin That's RE <timotimo> time for zoffix to write a blog post about commenting on parameters and such 09:59
09:59 ufobat_ joined
mst ZoffixWin: the #|{} thing 10:00
ZoffixWin isn't a fan of the #|{} thing
10:00 xinming left
ZoffixWin 'cause it eats CPU cycles 10:00
10:01 xinming joined, nowan left 10:02 ufobat left
ZoffixWin DOOM! DOOM released! 10:03
10:03 nowan joined 10:05 pierre_ left 10:06 kurahaupo left
pmurias ZoffixWin: while parsing? 10:06
ZoffixWin I don't know. I didn't measure anything. I'm just not a fan of the idea that writing documentation affects my program in any way. 10:09
10:09 Sqirrel joined
psch ZoffixWin: well, it's runtime introspectable documentation 10:09
is there prior art for our .WHY? it never occured to me to ask 10:10
ZoffixWin psch, what was the reason for making it so? 10:11
Well, other than "because we can"
10:12 ufobat_ left, pierre_ joined 10:13 kid51 joined
psch ZoffixWin: i have no idea. it was speculated way before i got involved 10:14
ZoffixWin: it's really easy not to use, in any case :)
ZoffixWin Sure :)
10:15 pierre_ left
psch conceptually i really like, but yeah, the performance impact is a bit of a turn-off 10:15
i mean, it'd be pretty great to have WHYs for all the buildins, so that a REPL session can teach you almost everything 10:16
10:16 pierre_ joined
psch but that would currently probably put compilation near half an hour or more again, and no one wants that for some reason... :) 10:16
*built-ins
mst ... 10:17
you could use the old dump/restore trick 10:18
ala 'perldoc -f dump'
ZoffixWin Wouldn't it pre-compile and not affect after the initial compilation?
Maybe timotimo is right... I *should* write a blog post :P
mst I've found pod2usage type things kinda useful 10:19
mst sets a cacodemon on ZoffixWin
ZoffixWin *the demon glitches because ZoffixWin apparently doesn't have the latest nVidia drivers* 10:20
psch yeah, i think someone had a plan to pull in all the WHYs from module-space 10:21
mst turns rendering off and sends four very low-res cacodemons after ZoffixWin instead
ZoffixWin :)
psch that's a yellow two :o 10:22
crawl.chaosforge.org/index.php?title=Cacodemon :P
mst psch: crawl.chaosforge.org/index.php?title=Cacodemon 10:23
gah
psch: media.moddb.com/images/mods/1/24/23...i111-2.png
THAT is a cacodemon
ZoffixWin: also how the fsck did you manage to get 3rd drivers enabled on original zoom? WHAT DID YOU DO DO THAT POOR INNOCENT DOSBOX 10:24
ZoffixWin mst, you're just living under a rock :) en.wikipedia.org/wiki/Doom_(2016_video_game)
mst that's Doom 4 10:25
IRRELEVANT
I DON'T CARE IF THEY RENAMED IT
THEY ALSO CLAIMED THERE WAS MORE THAN ONE HIGHLANDER MOVIE
tadzik oh, Doom discussion
sign me up
ZoffixWin tadzik, new doom released today!
It has fancy pants engine. If the cost of your computer is more than $3000 you get to see pretty things! 10:26
:)
tadzik ZoffixWin: well, I'm still sad that the XCOM 2 DLC is not a day1 on linux :(
10:26 TEttinger left
tadzik the new doom apparently runs on Vulkan, so it should run pretty well on wine :) 10:27
ZoffixWin really? wow :o
tadzik ye
10:27 ufobat_ joined
tadzik www.youtube.com/watch?v=anrvBD4aTGY 10:27
(this video also makes it not look like a shitty doom that the multiplayer beta showed it to be) 10:28
RabidGravy I got Doom out of my system in the early nineties
ZoffixWin I've seen that, but I've no idea what "Vulkan API" is, much less that 3D Windows games actually work on Linux
DrForr That is a bigger FG than I recall...
psch it's something with warp drives i wanna say..? 10:29
:P
tadzik ZoffixWin: Vulkan is basically the OpenGL working group's response to DX12, a very much low-level api, verbose, explicit and performance focused 10:30
ZoffixWin neat
10:33 ZoffixWin left
ilmari doom 3 is the only game I've expressly bought a new GPU to play 10:36
and I waited until the Linux version was out
tadzik I still haven't played that one, actually
10:37 pierre_ left, pierre_ joined 10:39 pierre_ left, ZoffixWin joined 10:40 cpage__ joined 10:43 zakharyas left, ZoffixWin left 10:50 cpage__ left 10:52 _4d47 joined 10:55 dvinciguerra joined 11:06 araujo joined 11:07 araujo left, araujo joined, araujo left, araujo joined 11:08 jluis left 11:09 ChoHag left 11:10 ChoHag joined 11:19 kaare_ joined 11:22 pierre_ joined 11:28 cpage_ joined 11:37 jack_rabbit left
masak I call BS on all claims that #|{} significantly affects performance that are not accompanied by numbers showing this. 11:38
11:45 Actualeyes left
nine #|{}? 11:47
tadzik multiline Pod, I guess 11:48
masak or just Pod attaching to stuff like parameters -- see backlog
11:49 kid51 left, pmurias left 11:51 pmurias joined 11:56 araujo_ joined, sjoshi joined 11:57 araujo_ left 11:59 araujo left
psch m: #|{ some docs here␤at least i hope }␤ my $x; say $x.WHY 12:01
camelia rakudo-moar 110087: OUTPUT«(Any)␤»
psch well, that way i probably doesn't impact performance... vOv
masak m: #|{Add a new car to the database} multi MAIN ('newcar', #|{chevy, ford, or toyota} $make, $model) { }
camelia rakudo-moar 110087: OUTPUT«Usage:␤ /tmp/_ZvZUTjfSw newcar <make> <model> -- Add a new car to the database␤ ␤ <make> chevy, ford, or toyota␤»
nine Just too cool not to post: www.youtube.com/watch?v=QQ9gs-5lRKc 12:02
psch m: { #|{Add a new car to the database} multi MAIN ('newcar', #|{chevy, ford, or toyota} $make, $model) { } } xx 10000; say now - BEGIN now
camelia rakudo-moar 110087: OUTPUT«0.03902052␤»
psch m: { multi MAIN ('newcar', $make, $model) { } } xx 10000; say now - BEGIN now 12:03
camelia rakudo-moar 110087: OUTPUT«0.04039844␤»
psch clearly adding docs make code faster
+s
masak not sure a MAIN in a block like that will be visible when the program is run 12:04
indeed not 12:05
psch it shoudn't - i just wanted to xx it for a bad benchmark :)
masak even disregarding that, your benchmark is crazy
it doesn't call MAIN. an optimizer could eliminate the whole block as having no side effects.
psch a different "crazy" than "meaningless"?
oh, yeah i suppose 12:06
12:09 inokenty left 12:11 pierre_ left 12:12 inokenty joined 12:14 Actualeyes joined 12:15 Sgeo_ left 12:16 mephinet left 12:20 mephinet joined 12:22 Hotkeys joined, robinsmidsrod joined 12:36 |2701 joined, abraxxa left 12:39 pmurias left
llfourn nine: magnets and marbles is awesome. Made my day. Thanks. 12:43
tadzik :) it is quite cool 12:44
12:45 cognominal joined 12:50 tomboy65 joined 12:51 tomboy64 left 12:54 astj left 12:55 cognominal left 12:56 AlexDaniel joined
AlexDaniel m: say prompt(∞) x 2 12:57
camelia rakudo-moar 110087: OUTPUT«InfCéad slán ag sléibhte maorga Chontae Dhún na nGallCéad slán ag sléibhte maorga Chontae Dhún na nGall␤»
AlexDaniel works nicely on camelia
teatime g'morning p6ers 13:06
13:12 pierre_ joined
masak good afternoon teatime 13:12
teatime eh, whichever. 13:13
it's 5 o'clock somewhere.
alternately: "Good $GREETING_TIME, $USER_NAME!"
lizmat
.oO( good *, * )
[Coke] S99:UGT if such things bug you
synopsebot6 Link: design.perl6.org/S99.html#UGT_if_su...gs_bug_you
[Coke] S99:UGT
synopsebot6 Link: design.perl6.org/S99.html#UGT
teatime I am llol, [Coke]… you guys have thought of *everything*. 13:16
masak Perl 6 is not a young community anymore
more than half as old as the Perl community, for example :)
teatime heh, I suppose that's true enough. 13:17
13:17 pierre_ left 13:22 mr-foobar joined 13:28 huggable left, huggable joined 13:29 mr-foobar left, mr-foobar joined 13:32 pmurias joined 13:35 kurahaupo joined 13:36 pierre_ joined 13:40 prammer joined 13:41 sjoshi left 13:42 kurahaupo left, kurahaupo joined 13:45 prammer left 13:46 cognominal joined 13:54 cognominal left 13:57 Coleoid_n joined 13:58 itaipu joined, tbrowder joined 14:01 cdg joined 14:08 mr-foobar left 14:09 mr-foobar joined 14:10 brrt joined 14:19 sufrostico joined
timotimo well, zoffix doesn't have to advertise the #|{ ... } variant if they don't like and just demonstrate the #| foo bar \n variant instead 14:25
14:25 desolator joined
desolator hiho 14:25
moritz hello desolator 14:30
desolator what's up my friend? 14:31
moritz never knows what to answer to that question 14:32
desolator :) 14:34
nine Everything that's not down obviously 14:35
14:35 pierre_ left
desolator I invent a Perl motto: "Learn Perl change the world", how is it? 14:36
14:38 khw joined
DrForr Pretty generic, if you want an honest opinion :) 14:39
stmuk_ s/the/your
profan s/your/our/ 14:40
sjn desolator: "Yes, what IS up your friend?" :)
sjn can imagine that question being rhetorical 14:41
oh, and hi, #perl6 :)
desolator I need to speak with IT Guru :P 14:46
tadzik oh noes, where on earth do we find one :o 14:47
teatime Perl6: Your future is mutable. 14:48
(mine, is lazy.)
timotimo i'd lean more towards something containing "composable"
teatime timotimo: luckily, my slogan is mutable. 14:49
desolator I think moritz is guru :P
ugexe what you need is a full stack 10x rockstar 14:52
teatime heh, that filename is nearly half the typical max file name length.
the whole path is still pretty safely under the limit, though. so unless someone decides to make it even worse, I don't see how I can object to those filenames on those grounds :/
moritz DOS 8.3! 14:53
14:56 leedo joined, hankache joined 14:57 araujo joined, araujo left 14:58 _4d47 left, araujo joined, araujo left, araujo joined
hankache afternoon #perl6 14:58
15:07 nicqbot joined
AlexDaniel huggable: what time is it? :is: It's morning 15:10
huggable AlexDaniel, Added what time is it? as It's morning 15:11
15:12 llua joined
moritz would prefer "It's *always* morning in UTC!" 15:13
15:14 llua left
hankache huggable: what time is it? 15:15
huggable hankache, It's morning
hankache neat!
geekosaur ugt?
psch huggable: hi, what time is it? :is: UGT 15:16
huggable psch, Added hi, what time is it? as UGT
psch needs a greeting, others no ;)
hankache huggable: what time is it? 15:17
huggable hankache, It's morning
hankache huggable: hi, what time is it?
huggable hankache, UGT
nicqbot I'm assuming huggable is written in Perl6? 15:18
AlexDaniel yes 15:19
psch huggable: huggable
huggable psch, nothing found
AlexDaniel huggable: huggable :is: github.com/zoffixznet/huggable 15:20
huggable AlexDaniel, Added huggable as github.com/zoffixznet/huggable
AlexDaniel huggable: source 15:29
huggable AlexDaniel, See github.com/zoffixznet/huggable
AlexDaniel ah there it is
15:29 cosimo joined, cosimo left, cosimo joined, domidumont left 15:31 ssotka joined
brrt .tell lizmat we'll need os x debug permissions to be enabled 15:37
yoleaux brrt: I'll pass your message to lizmat.
[Coke] Anyone know if Wenzel P. P. Peppmeyer is on IRC? 15:38
AlexDaniel [Coke]: gfldex
[Coke] AlexDaniel: Danke.
.seen gfldex
yoleaux I saw gfldex 12 May 2016 15:40Z in #perl6: <gfldex> sortiz: because of a lack of rakudobug it seams
AlexDaniel huggable: I am your father :is: NOOOOOOoooooo! Zoffix is my father. 15:39
huggable AlexDaniel, Added I am your father as NOOOOOOoooooo! Zoffix is my father. 15:40
gregf_ huggable: sup 15:43
huggable gregf_, nothing found
15:46 desolator left
Coleoid_n Hi, #perl6! 15:49
I'm wanting to pitch in on p6doc, but I'm having trouble getting it to run at all. I put in a pull request to get it to compile, yet after that fix it still errors out at runtime. 15:50
15:50 brrt left
Coleoid_n I could make the content fixes without running them locally, but I'd rather not. 15:51
timotimo haha, how did that ever work :D
Coleoid_n Is docs\bin\p6doc the script I should be working with?
timotimo the doc repo is also frequently htmlify.p6'd and put online 15:52
Coleoid_n Yeah, I hit another problem there. I could 'make html' no problem, but when I tried to run the local web server it went into a redirect loop. 15:53
Though I could simply load the pages into a browser after I generate them...
timotimo it'd be pretty swell if we could automatically build pull-requests or branches and serve them on a virtual host subdomain thingie 15:54
but who's gonna configure that ... *shrug*
MadcapJake so why is it again that Perl 6 can't happen on Android? 15:55
psch MadcapJake: invokedynamic 15:56
MadcapJake: well, that's if you're talking rakudo-jvm
MadcapJake But this www.youtube.com/watch?v=STDBY5kT4_M seems to say otherwise
psch MadcapJake: rakudo-moar can compile to android on a *nix chroot
...to qualifies that further, running rakudo-jvm on dalvik is not supported, because the vm opcode invokedynamic is not supported by dalvik 15:57
MadcapJake did you check out that video linked? It specifically is about invokedynamic-based languages on Android
psch "We will then explain, how Dalvik was modified [...]" from the descriptioin 15:58
-i
MadcapJake ahh, it has to be a custom Dalvik :(
what a lame talk then ;) really got my hopes up.
timotimo didn't java-on-android recently get java8 features?
MadcapJake "watch how we make this work on that!" *whispers* using our custom version of that designed to work with this ... 15:59
teatime heh… my music player's shuffle queued up "It Never Rains in Southern California" and "Only Happy When it Rains" back-to-back. 16:00
timotimo it knows.
MadcapJake Since I first got interested in programming, I've wanted to make an AI-backed music player (something like Pandora but less about homogeneity) 16:01
geekosaur dalvik being replaced by ART, which may already have a way to do that 16:02
MadcapJake Try and make "fun" playlists, mix in other kinds of musics, do things like teatime mentioned where song themes meld together, basically a "cool playlist generator"
psch ART also doesn't do invokedynamic 16:03
i think it does java8 macros, but with runtime bytecode generation
nicqbot Huh, sounds like a pretty cool idea!
teatime MadcapJake: I bet you could get some pretty interesting / appealing playlists w/ a simple markov chain algo, and observing the choices of some people who can choose to whatever songs they want in whatever order.
I'm sure spotify and whoever else makes money on that sort of thing does a ton more. but, their suggestions kindof suck. for me anyway. 16:04
16:04 Relsak joined 16:05 araujo_ joined
nicqbot It's why I no longer use Pandora; start a station for one band, and never hear from them again. 16:05
MadcapJake teatime: I agree, I think suggestions are largely based on "what sounds similar" and "what other stuff does this user like" but I think that's the wrong way to look at playlists. A playlist should be about interesting variety!
16:06 skids joined
teatime Pandora def. has a strong "what sounds similar" aspect due to having the whole different approach of the music genome project as a data source. but I figure that is probably a small part of their total data / analysis by now. 16:07
MadcapJake So my music player would have an ebb & flow between genres, sometimes jumping genres and other times smoothly transitioning between them. All the while looking for interesting follow ups. I would allow users to favorite songs but also favorite chains so the program could get smarter about what sounds good after what
teatime hrm.. I don't really know anything about AI or signal processing or anything vaguely relevant, but it seems like programatically determining if song A "sounds like" song B should be a solved, or at least straightforwardly approachable problem by now. 16:08
16:08 araujo left
teatime I mean, I can tell my phone "Text my mom's work number and tell her that I'm running 10 minutes late, thanks.", and it seems like NLP should be harder :) 16:08
MadcapJake Well right, back in the day, Pandora (when it wasn't a product and was more of an experiment) would tell you all the things that it found about the song/artist you gave them) it was really neat to see what they were looking at 16:09
teatime MadcapJake: agreed. 16:10
MadcapJake As an aside, I think they don't have as strong a database of music as they used to have. 16:11
16:12 vytas left
teatime MadcapJake: right, but I figure they've supplemented what they lack in manual analysis of newer tracks, with various automated stuff. 16:12
that's why I said I figure the MGP-type data probably isn't important to pandora like when it started. 16:13
RabidGravy yeah I used to like pandora when you could still get it in Europe
16:13 maybekoo2 joined 16:15 ptolemarch joined
MadcapJake teatime: yeah I suppose, but I just think the playlists they generate are too similar-sounding when in a saturated genre (popular styles) and too dissimilar in more esoteric playlists (largely the fault of a terrible music industry/economy) 16:15
Point being, I like eclectic mixes and Pandora just does not deliver on this front :)
nicqbot same 16:16
teatime spotify is... I dunno, different. and you can listen to whatever songs you want. but yeah, overall I'm pretty meh on it too. I should def. dig out my terabytes of FLAC etc. albums.
my rather large box of HDDs marked 'TO-DO' makes me want to avert my gaze, if I happen to glance toward it. 16:18
16:19 sno left
teatime there's def. a couple or three raid5/6 arrays mixed in there among the individually-useful ones.. unmarked / unlabeled and all mixed together, naturally. 16:19
MadcapJake teatime: I have an old 128G HDD that failed on me so, my young naive self, decided to put it in a plastic bag and freeze it :P I then found out that this is largely a recipe for a completely b0rked HDD but I still am holding on to it in case I ever get money to spend on someone to try and save it xD 16:21
(and it's full to the brim with music from my {middle,high}-school years 16:22
RabidGravy all of the reasons above are why I typically listen to DJ mixes these days
teatime heh, have never done it myself, but from what I understood that was a good technique. 16:23
as in, has a decent probability of making your unreadable drive at least partially readable.
MadcapJake I found out that you'd have to open it in a completely moistureless room or the minute you open it moisture will instantly cling to all surfaces (something like that, at least)
geekosaur ^ 16:24
teatime if you care about the data a medium-lot, there are some other long-shots you could attempt. (if you care about it a whole-lot, you'd probably pay someone qualified enough to charge for it to recover the data for you.)
geekosaur it was a last resort mechanism to try to get data off a dying drive; if it worked then great, if not then it was dying anywya
teatime yeah.
"Grandpa, did computers *really* have moving parts when you were a kid?" 16:25
MadcapJake teatime: right, I'm waiting for some money to charge someone to save it. It's not really valuable in any way but it's a huge chunk of what I did as a kid (listen to music)
RabidGravy I actually smashed up a bunch of old HDDs with a club hammer last year
teatime MadcapJake: I suppose finding a new-condition identical drive is basically impossible, heh. 16:26
RabidGravy: I enjoy busting up HDDs, they have lots of fun parts inside.
shiny mirror frisbees, strong magnets, neato keychain rings.
RabidGravy concluded that I wasn't motivated to attempt recovery, but wasn't sure what was on them
16:27 araujo_ left, kaare_ left
MadcapJake yep! Now my current 1TB is still chugging along and has even survived a couple of tumbles (the case is all bashed up) so I really should back it up someday soonish 16:27
16:27 acrussell joined
teatime heh, if I sat down to process my HDD box (it should be labelled something like, "Combine these onto a NAS, someday."), and I found out every single one was unreadable.. that would be a pretty positive outcome. It'd mean I could chuck the whole lot out on the spot, and never think about them again, *and* I wouldn't have to do any of the work of figuring out what's on them, copying it off, and then looking 16:28
through it / collating it
RabidGravy I have a small stack of 2.5" externals I rotate for backups and a 1TB for scratch storage
teatime maybe I should give it a few good kicks and then take a stab at xferring them all 16:29
I have a 16TB raid6 I put together 2+ years ago and have never gotten around to placing a single file on, heh
MadcapJake teatime: wow! What does raid6 do? 16:30
16:30 kaare_ joined, domidumont joined
teatime it's like raid5, except there's two drive's-worth of parity data, so you lose 2 rather than 1 drive's-worth of usable space, and then you gain the ability to have any two drives (rather than any one) fail and still be able to read all of the data. 16:31
raid5 is pretty much obsolete now, at least for spinning disks. I actually dunno much about raid on SSDs.
probably kinda similar to HDDs, though.. their specs seemed to be converging when I was last interested.
dalek c: 85581a9 | (Jason Cole)++ | bin/p6doc:
@opts compilation error fix third time charm
16:32
c: edf96f5 | RabidGravy++ | bin/p6doc:
Merge pull request #513 from Coleoid/master

  @opts compilation error fix
MadcapJake I would imagine raid would greatly reduce the life expectancy of SSDs, right?
teatime why?
16:32 acrussell left 16:33 acrussell joined
MadcapJake SSD wear 16:34
16:35 acrussell left
teatime yeah but what about the way raids use the disks would be worse than typical usage patterns? there's a bunch of different kinds of arrays w/ different properties and purposes, but I'm having trouble thinking of a setup that would be SSD-harmful. I'm sure there is one or two.. 16:35
MadcapJake: also, SSDs aren't really fragile flowers anymore, either.. they've really caught up to HDDs for specs like MTBF and write cycles and stuff, I think.
MadcapJake I dunno enough about raid to say, but I guess it seems using a set of SSDs in parallel would mean that all of them wear at the same rate, at the very least. 16:36
teatime you'd def. want to get discard/trim working through all of the layers (filesystem, LVM-like abstraction layer, if any, and RAID layer), or at least work around not having it by maybe wasting some space and choosing your SSDs carefully 16:37
MadcapJake You could reduce that by just backing up at intervals instead of writing to all at the same time
teatime MadcapJake: ah, the same is true of HDDs too, though.. it's a really good idea to try to source disks from different batches/lots etc. if at all possible, because they do tend to fail in groups.
which works against your risk/probability calculations when you're thinking about what kind of redundancy you ned. 16:38
MadcapJake Ahh that's nifty!
16:38 Sqirrel left
teatime but, raid isn't backup anyway; it's real role is to allow quicker recovery from failure events (compared to restoring from backups stored on slow, bulk media) 16:38
16:38 domidumont1 joined
MadcapJake right, so I suppose it's a tradeoff between spending time restoring/backing up and dealing with wear (which probably would often lean towards dealing with wear especially as they get better/cheaper) 16:40
teatime heh, I think this is the longest I've ever managed to keep #p6 off-topic w/o some interesting p6 thing coming along to ruin it. :)
16:40 araujo joined
MadcapJake this is true, from pandora/music to raid/storage we've been off-topic for quite some time! 16:40
16:40 Sqirrel joined
teatime ok, for flash, its only writes that are destructive, right? read operations are safe/free, I think. 16:41
geekosaur yes
and unlike some other forms of memory, a read does not necessitate a rewrite 16:42
16:42 domidumont left
teatime so let's take one of the simplest cases, a two-drive RAID1, which is just a simple mirror. when you write data, it's written to both drives. any one drive can fail w/o losing data. reading can be sped up a bit, because you have two drives you can read from in parallel w/ the same data. but there's no more writing ever happening than there would be in the case of a single drive. 16:42
MadcapJake: ^ 16:43
TimToady those of us who still feebly backlog appreciate it when OT stuff comes in large monolithic chunks that we can tl;dr conveniently 16:44
RabidGravy :) 16:45
teatime heh. /me blushes. 16:46
and this, strangely, is actually on-topic: is there a #p6 (or #perl) -offtopic channel?
MadcapJake TimToady: you're welcome! ;)
teatime MadcapJake: I was gonna continue on and give a similar analysis for other array types... but my heart's not in it. 16:47
MadcapJake teatime: haha well most of that stuff is over my head anyways :)
TimToady teatime: in theory, we'd like to think that nothing is unrelated to Perl 6 in the long run :) 16:48
MadcapJake lol
use Storage::Raid; Raid.new(6).write('Wow!') # :D 16:49
mst TimToady: it's a key component of my plan to build a self replication hegemonising swarm
TimToady the Plurality is near!
AlexDaniel teatime: you can use Slack for offtopic stuff (because basically nobody is there…) 16:50
MadcapJake AlexDaniel: :) I may as well just take the whole thing down. Failed to gain adoption and I think IRCCloud solves everything I wanted that Slack had (personally) 16:51
AlexDaniel teatime: another point to note is that actual development now happens on #p6dev
16:52 ufobat_ left
MadcapJake I had slack fever for a bit but it has mostly subsided :P. Diet and exercise is key. 16:53
teatime MadcapJake: the wikipedia articles are a solid intro and have nice infographics. 16:54
MadcapJake: e.g., en.wikipedia.org/wiki/Standard_RAID_levels and en.wikipedia.org/wiki/Nested_RAID_levels 16:55
MadcapJake Perhaps someday I'll dive in to learn more but I need some extra {HD,SD}Ds to whet my appetite. Right now it just makes me pine for them/job/money :P
16:56 |2701 left 16:57 itaipu left
MadcapJake The kinds of articles I'm reading now are "How can you turn your old barely working hardware into semi-acceptable modern computers!" 16:57
16:59 firstdayonthejob joined
MadcapJake Or "How to successfully rummage through your local college's surplus sales!" 17:00
17:01 molaf joined
geekosaur or the free table in the cs department >.> 17:06
17:11 molaf left
diakopter MadcapJake: you can buy a 200GB microSD card for $80 17:11
RabidGravy not quite reached the "break point" though, when they are the same price as 16Gb are now I'll be using them for everything 17:18
diakopter If only there was a microSD array thingy with lots of slots 17:19
RabidGravy mind I have at least one device that can't hack sdhd cards at all
and another that can't deal with larger than 8gb CF cards reliably 17:20
geekosaur diakopter, search "microsd raid" 17:21
RabidGravy I have even another device (a ymaha qy-100 sequencer) that uses those old mmc cards
geekosaur I'm seeing 4- and 10-sd units
17:23 espadrine left
diakopter hm, I actually don't want raid; I just want tons of readers 17:24
17:28 huggable left, huggable joined 17:29 domidumont1 left 17:31 dvinciguerra left 17:34 wamba left, domidumont joined 17:35 mohae joined 17:37 brrt joined, mohae_ left 17:40 lue joined 17:41 dvinciguerra joined, ShimmerFairy left 17:42 ZoffixWin joined, ZoffixWin left, ZoffixWin joined, |2701 joined, dvinciguerra left 17:43 dvinciguerra joined 17:45 hotel joined 17:47 dvinciguerra left 17:48 itaipu joined 17:54 autarch left 17:55 sno joined 17:56 Relsak left 17:57 firstdayonthejob left 18:05 caasih left, firstdayonthejob joined 18:06 hankache left, kaare_ left 18:07 kaare_ joined 18:08 cdg left 18:09 TimToady left 18:11 TimToady joined 18:14 dvinciguerra joined
DrForr Evenin'. Can someone point me to a module that links to a C++ library? 18:16
hoelzro DrForr: not published, but here's my xapian binding: github.com/hoelzro/p6-xapian 18:18
also potentially helpful: hoelz.ro/blog/binding-to-cpp-with-nativecall
DrForr That'll do - I've got 5 legs ahead of me tomorrow and I want something to play with :) 18:19
jnthn really hopes that's not "a 5 leg flight"... 18:20
hoelzro DrForr: just playing around, or do you have a C++ library you're meaning to bind? 18:21
DrForr Playing for the moment, when I finally land I might have something to show :)
hoelzro nice! 18:22
RabidGravy or github.com/Perl6-Noise-Gang/Audio-Soundtouch 18:23
hoelzro if I have new candidates for a multi within a module, should they be available to calls to that multi outside of that module?
oops, false alarm 18:24
DrForr 4 legs, 3 flights but it'll be ~24 hours.
RabidGravy DrForr, if you can actually just finish that it would be sweet
hoelzro please disregard that
timotimo hoelzro: well, in general, the availability of multis is lexically scoped 18:25
hoelzro timotimo: that's what I thought 18:27
so if a module provides candidates for a multi, I would need to import them (or it would need to export them) for them to be considered, right?
timotimo that's right 18:28
hoelzro ok, thanks for the sanity check =) 18:29
now if I have two new candidates in a module, should specifying 'is export' on one implicitly export the other? 18:30
timotimo .o( "is expert" )
i think you can't export individual candidates only, but i don't know for real
hoelzro ok 18:31
I'
grr
I'm seeing that behavior, but I think I'm just misunderstanding how multi candidates and exports work
leedo I should be able to do `is export` on a sub inside a class, right? recently this stopped working in a project of mine 18:33
i need to make a smaller test case i guess
timotimo yeah, i guess so, but don't you still have to import the class' package then?
Ulti so the JIT was turned off on OSX? my tests run faster than before o___O 18:34
RabidGravy wahay!
timotimo it was just turned off for a short while 18:35
Ulti oh right
lets see what commit I'm on... either way this is the fastest they've been and its a significant improvement
18:36 slobo joined
timotimo that's surprising. and good. 18:36
Ulti 1.95s usually up above 2.4s
18:54 buharin joined 18:55 brrt left, _4d47 joined
hotel timotimo, did you ever go to sleep? 0.0 18:56
nicqbot man brew 18:57
oops, wrong window!
_4d47 hello everybody, is it possible to create a class that answers the same for any method name invoked on it ? 18:59
leedo so loading a perl 5 module with Inline::Perl5 causes my subs to stop exporting from a class
nine _4d47: yes, add a FALLBACK method 19:01
geekosaur _4d47, design.perl6.org/S12.html#FALLBACK_methods
geekosaur slow 19:02
nine slower but more usefull
19:02 maybekoo2 left
nine leedo: any Perl 5 module? 19:03
_4d47 nine: i would like it to answers same for all methods, even those defined in parents
nine _4d47: what exactly is your use case?
_4d47: and yes, you can do it with some meta model trickery 19:04
_4d47 nine: my use case is fixing github.com/4d47/perl6-tag-helper and having fun learning perl6 :) 19:06
19:06 hotel left
leedo nine: gist.github.com/leedo/cc2f52430291...02472e840c yeah, so far any module will do it 19:08
i also have to manually delete the .precomp directory 19:09
for it to pick up the changes
nine leedo: is the precomp issue on the very latest rakudo? 19:11
leedo yeah, i built it about 20 minutes ago
nine _4d47: incidentally I do something quite similar: github.com/niner/Inline-Perl5/blob...5.pm6#L753 19:12
leedo I only have to nuke .precomp when i add Inline::Perl5 usage to a file though
not when I remove it
nine leedo: ooh... Inline::Perl5 exports a "no precompilation" into your module. We therefore abort precompilation of your module and never get to overwrite the outdated precomp file. 19:13
leedo ah, that'd explain that 19:14
I think the exported sub not working is another unrelated issue
nine I hope so :) 19:16
_4d47 nine: oh your dynamically overriding methods from the base class, cool 19:18
nine Perl 6++ 19:19
19:20 brrt joined, spider-mario joined, brrt left
leedo nine: is there a way to disable precomp with an env variable? 19:23
lizmat ping
yoleaux 15:37Z <brrt> lizmat: we'll need os x debug permissions to be enabled
nine leedo: no. Many people asked, but noone wanted it badly enough to commit the two lines necessary ;) 19:25
19:35 buharin left 19:46 lue is now known as ShimmerFairy 20:03 nicqbot left 20:22 sortiz joined 20:23 cdg joined 20:26 araujo left 20:27 araujo joined 20:29 ShimmerFairy left 20:30 ShimmerFairy joined 20:31 Coleoid_n left, domidumont left 20:32 _dolmen_ joined
tbrowder perl6 code question: could someone please look at my gist here and try to answer the question: \ 20:32
gist.github.com/tbrowder/4b4b2fd29...04222cb782
20:33 dvinciguerra left 20:34 _4d47 left
tbrowder the question is why the backslashes are needed on two lines but not others in the chained expression 20:34
the backslashed code in question is found in perl6/doc/htmlify.p6 20:35
lizmat tbrowder: looks to me that should work 20:39
what is the error that you get ? 20:40
fwiw, the backslash used to be needed
but that changed last November or so
mst tbrowder: two lines were written before larry saw sense, the rest after
(yes I have an opinion about that feature how did you guess) 20:41
20:42 ShimmerFairy left
tbrowder lizmat: it doesn't cause an error in the normal running of the code, but I'm trying to add something to the docs and I get an error in that visnity when I add my code elsewhere--just wondering if the backslashes are really needed--thanks 20:42
20:42 ShimmerFairy joined
tbrowder er, "vicinity" 20:42
lizmat they shouldn't be anymore 20:43
tbrowder okay--I'll press on--thanks
lizmat if you can prove they *are* necessary, then we have a bug :0)
20:46 TEttinger joined 20:47 sufrostico left 20:48 dvinciguerra joined 20:50 patrickz joined 20:55 lue joined 20:57 ShimmerFairy left
tbrowder lizmat: it looks like they are necessary. I removed all such backslashes in that prog and got errors like this: <===SORRY!=== Error while compiling /usr/local/people/tbrowde/mydata/tbrowde-home-bzr/perl6/perl6-repo-forks/doc/./htmlify.p6 Malformed postfix call (only alphabetic methods may be detached)> 21:04
I then tried putting them back piecemeal and got errors until they were all put back in. 21:05
lizmat hmmm... perhaps the .&summary is throwing a spanner in the works?
sortiz or the >> 21:06
tbrowder don't know--it looks like several instances of a function arg with a chained method and the function itself with chained methods...
but how does a backslashed line actually parese? is the leading whitespace on the following line gobbled up? if not... 21:08
lizmat yes, that's the idea of the \ at the end of a line 21:09
iirc
geekosaur \ followed by whitespace is an "unspace"
tbrowder right, but I though it only gobbled the newline, not the following whitespace on the following line--I guess it depends on what prog is using it 21:10
psch wonders if there's a copy-pasto in line 4 of the gist or if infix methop really has problems 21:11
as in, line 4 doesn't have a \
geekosaur tbrowder, design.perl6.org/S02.html#Unspaces
psch we have two methops, one's the "normal" one, without space (or with unspace), the other is the one with space
like, < ^5.map(* + 2) > vs < ^5 .map(* + 2) > 21:12
m: say ^5.map(* + 2);
camelia rakudo-moar e39b21: OUTPUT«Potential difficulties:␤ Precedence of ^ is looser than method call; please parenthesize␤ at /tmp/WQ5eY6touq:1␤ ------> 3say ^57⏏5.map(* + 2);␤^1␤»
psch m: say ^5 .map(* + 2);
camelia rakudo-moar e39b21: OUTPUT«(2 3 4 5 6)␤»
21:17 brrt joined, sufrostico joined
tbrowder geekosaur: thanks--very helpful--Perl 6 unspace is much different from C or bash!! 21:21
21:26 aindilis` left, aindilis` joined 21:28 kaare_ left, huggable left, huggable joined, _dolmen_ left 21:31 nowan_ joined 21:32 pmurias left 21:33 nowan left 21:35 mohae_ joined, cpage_ left 21:36 lue is now known as ShimmerFairy 21:37 mohae left 21:40 sufrostico left 21:43 yqt joined 21:45 brrt left 21:46 dvinciguerra left 21:47 cosarara left 21:50 cosarara joined 21:58 ptolemarch left 22:07 cpage_ joined 22:10 dvinciguerra joined 22:13 dwb joined 22:14 _dolmen_ joined
dwb Perl with types is like a dream. Nice work, y'all. 22:15
TimToady thanks! 22:16
22:18 derp_commander joined
derp_commander hey 22:18
psch types are cool, yeah. but to me, the ease of switching between work-on-one-thing and work-on-many-things (and the different ways to do it) is more noticeably nice 22:19
jnthn Somebody who likes types and meta-model hackery and, unlike me, understands probability, might find ashishagarwal.org/2011/10/04/pdf-type-theory/ an interesting thing to explore in Perl 6 :)
psch ooh boy
timotimo oh lord, types for portable document formats? in our programming laungague?
TimToady not you, you're busy :P
derp_commander no, probability density functions 22:20
timotimo oh
.o( portability density functions )
geekosaur const 0 :p
jnthn Probability makes me feel dense... :)
derp_commander probability distribution objects exist in Mathematica
huf probability document formats is what the web is
timotimo "you can probably print it. also, you may be able to edit it, perhaps" 22:21
derp_commander heh
timotimo "there's a good chance it'll have forms that you can interact with if you have the officially sanctioned app"
jnthn timotimo: Pretty much sums up my experience with PDF forms :P
TimToady and there's some probability it will encrypt your boot record
huf it'll likely render mostly ok
if your concept of ok is sufficiently lax
timotimo it prints like you had given a laxative to the printer beforehand? 22:22
derp_commander you know, it's funny, I was just thinking earlier "What if blocks were actually just a kind of function?" Then I read the P6 docs and, yup, turns out they are
psch m: say Block ~~ Routine
camelia rakudo-moar 361448: OUTPUT«False␤»
psch m: say Block ~~ Code
camelia rakudo-moar 361448: OUTPUT«True␤»
psch m: say Routine ~~ Block 22:23
camelia rakudo-moar 361448: OUTPUT«True␤»
derp_commander psch: strictly speaking, both are callables
m: say Block ~~ Callable
camelia rakudo-moar 361448: OUTPUT«True␤»
psch derp_commander: strictly speaking, functions (or subs) are a subtype of Blocks
timotimo actually, even more strictly speaking, many curly blocks you write won't actually get a Block object created for it, i don't think 22:24
dwb I'm working through a pet project of mine in Perl6, which is a content addressable article store. When I write this system I like to start by implementing a "read" method, and then use that method to punch the rest of the code into place (which consists of articles in the store). It wasn't immediately apparent to me how to load a multimethod out of a file and punch it into a class at runtime. What docs/source should I be ponder?
psch that reminds me, i came across &?BLOCK not working recently..?
derp_commander psch: note I used the word "function" with a meaning from mathematics, not P6
dwb *ing
jnthn: Oh, neat. 22:25
derp_commander from my perspective, a Block is simply a function which takes at most one argument, $_
psch m: my $x = -> $a, $b { }; say $x.WHAT
camelia rakudo-moar 361448: OUTPUT«(Block)␤»
dwb My love of types is directly proportional to the implementation of parametric multimethods.
psch derp_commander: that's unfortunately not right :)
22:25 Sgeo_ joined
timotimo if you want to punch a multi method into a class, maybe you want to work with multi subs instead? 22:26
derp_commander psch: it's not right in the P6 sense, but I'm coming from a Python/Mathematica background
dwb timotimo: I'll have a gander at that, thanks.
timotimo i mean, you can add multi methods into a class via the MOP
psch derp_commander: to get back to your previous point: i'm not sure what perl6 type i would map the mathematical concept of "function" to, fwiw
derp_commander and it was Mathematica that introduced me to the idea of multi subs, which all functions there are by default
dwb Ah, I didn't realize there was an MOP. Dope, I'll look at that, too. 22:27
psch derp_commander: oh, yeah. of course it might be different in other space. apologies for wrongly assuming we're purely in perl 6 space
TimToady
.oO(space, the final frontier...)
psch *other spaces
timotimo front: the final space
derp_commander These are the voyages... 22:28
psch m: { say &?BLOCK } # must've been mistaken about &?BLOCK...
camelia rakudo-moar 361448: OUTPUT«-> ;; $_? is raw { #`(Block|61490352) ... }␤»
derp_commander what's with the number? 22:29
psch derp_commander: it's the .WHICH of the Block
derp_commander: well, the number itself is the .WHERE, actually...
derp_commander psch: oh, Python's hash() 22:30
22:30 kid51 joined
derp_commander (or id(), pedantically speaking) 22:30
TimToady .WHICH would the the id, but can be more expensive, so I think it's using WHERE as a proxy
psch m: &?BLOCK() 22:31
derp_commander m: say &?BLOCK();
psch hihi
derp_commander ...
22:32 rindolf left
TimToady probably regressing 22:32
camelia rakudo-moar 361448: OUTPUT«(timeout)»
derp_commander ...I think we broke it
psch it's not quite < fork while fork >... :)
TimToady you recalled the mainline, I think
geekosaur it did respond, but it was recalling itself
jnthn Yeah :)
geekosaur stack: the final frontier...
psch geekosaur++
derp_commander STACK SMASH! 22:33
22:37 wamba joined, dvinciguerra left
psch ...i kinda got nerd-sniped by the PDF pdf, i notice 22:37
derp_commander heh
earlier in #perl I was tossing around thoughts of what would, to me, be an ideal programming language 22:38
22:39 patrickz left
derp_commander based on my travels in Python, JS, wikitext, shell, Lua, and now a little P5 22:39
oh, and Mathematica 22:40
psch derp_commander: you can probably implement it in Perl 6 :)
derp_commander psch: I'd have to sketch it out first
and Python is really the only language I know well enough to write a parser in, as weird as writing an interpreter in another interpreted language might be 22:41
psch derp_commander: well, rakudo *is* largely self-hosting 22:43
jnthn derp_commander: You might find Perl 6's built-in grammars interesting for parsing
derp_commander jnthn: like I said, I'd first have to sketch out what the language should look like 22:44
jnthn :)
derp_commander first thought: get rid of barewords. Except for certain special hacks, all program-level identifiers and literals should be in some way be sigiled or quoted 22:46
that way the language builtins and the program globals are in two different contexts, and the language can be extended without breaking compatibility 22:47
22:48 dwb left
TimToady sounds like Perl 3 or so :) 22:54
people didn't like verb sigils... 22:55
derp_commander TimToady: it simplifies a lot of parsing aspects. Also, if you use a ${identifier} format, you can have literally anything as an identifier name except '}' 22:56
TimToady are you making this easy for you or for your user?
our slogan in here is: Tormenting the implementor on behalf of the user. :) 22:57
derp_commander TimToady: the harder parsing is, the more likely you're going to get something horribly wrong. And again, it leaves you free to define new builtins as the language develops 22:58
From Python, I like duck typing, and the idea that the functionality of operators attaches to the object, as opposed to the operator
TimToady sure, it's all tradeoffs
otoh, if you take that too far, the reader of a program will have no idea what the + means in a + b 22:59
or >>, if you're C++ 23:00
ZoffixWin m: sub infix:<+> { $^a - $^b }; say 2 + 2
camelia rakudo-moar 361448: OUTPUT«0␤»
ZoffixWin ^_^
derp_commander the different sigils would then serve as a kind of coercion operator, calling on the object referenced to return some kind of wrapper that implements a particular role. Python ends up using the type routines like str(), list(), dict(), and iter() for that purpose
23:00 dwb joined
TimToady ZoffixWin: sure, but the scope of that damage is lexical 23:00
derp_commander: one can go all OO like that, but it's possible to mesh decent functional programming in as well, by our lights 23:01
23:02 _dolmen_ left
derp_commander TimToady: yes, by way of the various callable types, as in Python and P6 23:02
TimToady classifies Python as a language that is too OO and very little FP, actually 23:05
at the same time, it's not as OO as Ruby
but again, it's all tradeoffs 23:06
psch m: ([=] (my $x), 1); (say "\$x is ", $x) # P6 is actually a lisp 23:07
camelia rakudo-moar 361448: OUTPUT«$x is 1␤»
derp_commander TimToady: at a certain level, the OO paradigm of Python starts to break down as you come up against the underlying C functions and structures
psch ...i kid, i kid. the commas ruin it :)
derp_commander isn't that considered one of the useful aspects of Lisp? That all code constructs are themselves data values? 23:08
23:08 firstdayonthejob left
psch derp_commander: as far as i know, yes. but looking closer you can tell that that's not true for the snippet above. "$x" is something different than "say" 23:10
derp_commander: mind, my knowledge of lisp is limited, and "code is data is code" is not much more than a catch phrase to me... :) 23:11
23:11 BenGoldberg joined
derp_commander psch: yeah, Python3 made the print statement into a function 23:11
but then I thought, why not make the OTHER statements into functions too? functions that act on other expressions or statements 23:12
psch m: ([=] (my $x), (say "what's \$x now?"));
camelia rakudo-moar 361448: OUTPUT«what's $x now?␤»
23:12 cpage_ left
psch in my understand, in a lisp that would not print anything 23:13
but assign the invocation of the say routine into $x, curried if you will
+ing
because "code is data is code"
derp_commander so if ( this ) { that } is actually a function we can sorta write as if((this), {that}) 23:14
psch derp_commander: no, exactly not. in a lisp-ier language it might be, but in Perl 6 "if" is a keyword 23:15
derp_commander now, of course at some point you have to stop and kick the logic up the interpreter, but you can say that this process is theoretically infinite
psch m: if(1) { say "this warns" }
camelia rakudo-moar 361448: OUTPUT«5===SORRY!5===␤Word 'if' interpreted as 'if()' function call; please use whitespace instead of parens␤at /tmp/c0RmHnDK98:1␤------> 3if7⏏5(1) { say "this warns" }␤Unexpected block in infix position (two terms in a row)␤at /tmp/c0RmHnDK98…»
psch s/warns/dies/ # ... :)
derp_commander psch: right, it isn't true in P6, nor Python, and I don't think Ruby either
gfldex m: sub if($a, &c){ $a && c }; if(True, {say 'Hi derp_commander!'});
camelia rakudo-moar 361448: OUTPUT«Hi derp_commander!␤»
psch m: my &if = { if $^a { &^b() } }; if(1, { say "hi" }) # huh? 23:17
camelia rakudo-moar 361448: OUTPUT«Too many positionals passed; expected 1 argument but got 2␤ in block <unit> at /tmp/lOVSGpYKi3 line 1␤␤»
psch ...it's not the &-sigil, fwiw
m: my &if = { if $^a { $^b() } }; if(1, { say "hi" }) #
camelia rakudo-moar 361448: OUTPUT«Too many positionals passed; expected 1 argument but got 2␤ in block <unit> at /tmp/aPNqj6kXku line 1␤␤»
psch apparently placeholder detection does only go one block deep..?
TimToady the inner ^ is hidden by the block
jnthn It's easily possible to make a language where everything is function application. And such a language will be really easy to write a parser for and pretty easy to add macros for. But, it seems most human readers then struggle to parse out intent from a sea of function application. :)
TimToady scoping of placeholders is always to nearest {}
psch m: my &if = { $^b() if $^a }; if(1, { say "hi" }) # 23:18
camelia rakudo-moar 361448: OUTPUT«hi␤»
gfldex $^b is the first anon parameter of the inner block
auto parameter even
derp_commander in Python you can, conceptually, keep going down the chain with func.__call__.__call__.__call___ and so on. Of course, you're not actually digging into anything, instead you're getting a bunch of method wrappers
TimToady derp_commander: Python tends to be weak on DSLs because of it's OO focus 23:19
*its
derp_commander TimToady: DSLs?
TimToady S99:DSL
synopsebot6 Link: design.perl6.org/S99.html#DSL
psch m: { sub CALL-ME { OUTER::<&CALL-ME> } }()()()()()
camelia ( no output )
ZoffixWin Domain Specific Language
jnthn I kinda find earlier versions of JavaScript that way. function .. function ... function ... yeah, sure, but some of those are expressing modules, some methods, some subroutines, some lambdas...
And, by ES6, those patterns are now enshrined in special syntactic forms, which is generally welcomed. 23:20
psch m: { sub CALL-ME { say "called"; OUTER::<&CALL-ME> } }()()()()()()()()()()() # it never stops
camelia rakudo-moar 361448: OUTPUT«called␤called␤called␤called␤called␤called␤called␤called␤called␤called␤»
derp_commander TimToady: I can think of several DSLs that are simply extended Python
TimToady done by preprocessing somehow, I'll warrant 23:21
derp_commander TimToady: no
TimToady multi-pass parsing is evil
how are they implemented then?
derp_commander usually it's done by defining objects and importing them
dwb m: IO::Path.new("./foo/bar").WHAT.say
camelia rakudo-moar 361448: OUTPUT«IO::Path is disallowed in restricted setting␤ in sub restricted at src/RESTRICTED.setting line 1␤ in method new at src/RESTRICTED.setting line 32␤ in block <unit> at /tmp/fHSgqTgP5f line 1␤␤»
dwb Whups. 23:22
I don't have good footing yet in the Perl6 type hierarchy, but should IO::Path $p.dirname maybe return an IO::Path?
psch dwb: dir*name* sounds like a Str to me, intuitively
ZoffixWin dwb, you can also do './foo/bar'.IO.WHAT.say
dwb I hoped to do IO::Path.new($path).dirname.mkdir;
ZoffixWin dwb, .dirname.IO.mkdir ?
TimToady derp_commander: how does this change the parsing?
derp_commander those objects then have method overrides that allow them to be used in interesting ways with the existing operators
dwb I got to IO::Path.new($path).dirname.IO.mkdir, just wondered why a path part of a path needed the coersion. 23:23
TimToady or do such DSLs have to fit into the One True Syntax?
derp_commander TimToady: it doesn't. The only thing that changes are the methods being called
TimToady that's a very limited view of DSL
you can't even add a new operator in such a world view 23:24
derp_commander TimToady: but since all the builtin operators simply call object methods anyway, you can create some really weird syntax without modifying the parser
ZoffixWin m: './eval'.IO.print
camelia rakudo-moar 361448: OUTPUT«./eval»
derp_commander TimToady: no, that is one thing Python lacks, the ability to add new operators 23:25
TimToady m: sub infix:<mynewop>($a,$b) { $a ** $b }; say 2 mynewop 3
camelia rakudo-moar 361448: OUTPUT«8␤»
23:26 itaipu left
TimToady all operators in P6 are lexically scoped functions, and language mutation is therefore lexically scoped, not object scoped 23:26
dwb psch: good point. 23:27
ZoffixWin dwb, my guess would be whoever implemented it thought a more common usecase would be to use the value as a string, so doing the extra step and instantiating an IO::Path object is needless overhead. A programmer who needs it, can type the extra three characters themselves :)
derp_commander it's a potentially useful ability, but it creates difficulties for a language which is executed line-by-line
TimToady if you can't add new operators, you find that the culture is overly accepting of overloading existing operators with completely unrelated semantics, to the great detriment of readability
dwb ZoffixWin: I dig. I thought Paths were already stringy. 23:28
ZoffixWin dwb, no, they're Cool: docs.perl6.org/type/IO::Path#Relate...nd_classes 23:29
(if you meant Stringy, as in the role: docs.perl6.org/type/Stringy )
psch Junctions will never be Cool :/
dwb Ahhh. I dig.
derp_commander TimToady: traditionally that's what methods are supposed to be used for. I would suggest the ability should exist, but I would put it in a special system module like Mathematica does, and with no guarantees of future compatibility, as well as possibly other restrictions. 23:30
TimToady traditionally, computer languages suck, and we aim to fix that here
methods are great for attaching behaviors to objects, but a lousy way to do language derivations, in the absence of a parser that understands lexical scoping as hierarchy of derived grammars 23:33
derp_commander TimToady: all such additional syntax, if not ALL syntax, would be converted at the intermediate stage to method calls in the interpreter's language
23:33 itcharlie joined 23:35 sufrostico joined
TimToady "the language" is a tricky concept when you're talking about multiple languages :) 23:35
P6 considers itself to be multiple languages braided together
23:36 Ben_Goldberg joined, BenGoldberg left, Ben_Goldberg is now known as BenGoldberg
derp_commander TimToady: when I say "the language", without qualifications, it means "this hypothetical language I'm cooking up" 23:37
23:37 BenGoldberg left
derp_commander brb 23:38
23:39 BenGoldberg joined
TimToady and I'm saying thinking of your language as a single language is a mental trap 23:39
23:40 slobo left 23:41 dvinciguerra joined
derp_commander TimToady: English includes constructs from multiple languages, yet we still say it's a language 23:41
one that's used for a lot of things and in a lot of ways 23:42
psch derp_commander: but direct or indirect speech can both be considered sublanguages inside that language
TimToady nevertheless, Californian is a subtly different language than Texan
psch derp_commander: granted, direct speech is "the same as outside", but there's still a context switch
derp_commander poetry vs prose, technical journals vs novels, written vs spoken, etc.
23:43 stewa02 joined 23:44 stewa02 left
derp_commander what you have within it are roles, contexts, and forms 23:44
dwb Is it possible to call several multi-methods that match a single signature? I suppose I could make a dispatch table and do so myself fairly painlessly, but Perl6 seems like the language that might provide me junctions on ambiguous multis. 23:45
23:45 BenGoldberg left
dwb So I thought I'd ask. 23:45
TimToady our philosophy is that pretty much any declaration changes the language for the rest of the lexical scope, and this is actually reflected internally by use of derived grammars with new methods
so we're already doing a lot of what you are starting to think about
derp_commander oh, and I like multi-methods 23:46
23:46 BenGoldberg joined
psch dwb: multi method dispatch decides via the signature which method to call 23:46
TimToady our multi-methods and multi-subs are well scoped, unlike the usual global implementation
psch dwb: so, i'm fairly confident that's a "no, you can't call multiple methods with one set of args"
23:46 autarch joined
psch dwb: well, the specific method op for that aside... :) 23:47
TimToady that being said, method dispatch is just another form of function application
skids Well, there's .*
TimToady yes, and we can substitute in different dispatchers like that 23:48
because a method is really just a function that has been chosen by a dispatcher
if you scratch our OO hard enough, you find fairly strong FP, and if you scratch our FP hard enough, you find fairly strong OO :) 23:49
derp_commander Mathematica I think supports predicate dispatching
via pattern matching 23:50
TimToady is that basically delegation like Tcl does?
derp_commander TimToady: no, it's actually a very new concept in general purpose languages 23:51
23:51 slobo joined
RabidGravy and also, at an entirely user level low-magic level you could actually create a proto sub or method that did that kind of dispatch 23:51
TimToady is this pattern matching on a dispatch/arg-binding level, or on a macro level?
dwb TimToady: Nice. So I should (after more than one day of playing) be able to do an `all`, `any`, `one` or `none` on a set of namespaced subroutines with the same signature?
derp_commander TimToady: dispatch level, let me pull some things up 23:52
TimToady okay, we can do pattern matching there already
skids There's also runtime where clauses, for a poor-man's solution to that.
dwb HASH::foo(sig) is different than OTHERHASH::foo(sig)?
23:52 cpage_ joined
TimToady derp_commander: see rosettacode.org/wiki/Pattern_matching#Perl_6 23:53
23:53 RabidGravy left
dwb Sorry, crossed streams I think. 23:54
23:54 cdg left 23:55 pierre_ joined
skids Ergh that redblack example really steps on my C-ish efficiency nerves for some reason. 23:55
TimToady well, nobody is claiming it's gonna be efficient :) 23:56
derp_commander TimToady: in Mathematica, all of the syntax and grammar consists of rules that operate on patterns
skids Yeah but that's kinda the point of redblack trees. :-)
dwb psch: What I'm working toward is: "multi method dispatch decides via the signature which methods to call", where the plurality of methods is the thing I want. Renaming them into a symbol table is okay, if that's the way to roll. 23:57
23:57 dmc_ joined
mspo TimToady: you come in around the same LOC as ocaml 23:58
the erlang one is doing my head in 23:59
23:59 Actualeyes left
TimToady derp_commander: in Perl 6, all of the syntax and grammar consists of rules that operate on patterns :) 23:59