Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2014-11-25

Perl 6 | Reference Documentation | Rakudo

| Channels | #perl6 index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

Time Nick Message
00:00 ssqq joined #perl6
00:04 Guest54457 yes, he'll have to answer
00:09 FROGGS woolfy / timotimo: I guess that "this week" refers to the week when the APW happened
00:10 FROGGS gnight
00:10 timotimo oh, hm
00:10 timotimo did we have any good weeks since? :P
00:16 raiph joined #perl6
00:36 TimToady what the heck is t/spec/S02-magicals/78258.t?
00:37 TimToady nevermind, was looking in the wrong subdir for UsedEnv
00:38 TimToady though I'd still like to understand the number
00:41 Mouq TimToady: https://rt.perl.org/Public​/Bug/Display.html?id=78258 ?
00:42 timotimo there's an artist who has a track called "43644466" which i really like a lot. but i couldn't figure what it means, so ... perhaps 78258 is like that?
00:43 dayangkun joined #perl6
00:48 timotimo kind of interesting thing on the side: the for_push benchmark (i believe) is spending 9.25% of its time in Array::of and 2.82% of its time in Perl6::Metamodel::ContainerDescriptor::of, which i guess is what the of method of Array is calling immediately
00:48 timotimo this is when the for loop has 1024_000 iterations
00:49 timotimo and that's exactly how often both ofs are being called
00:49 timotimo m: say 191.68 / 1024_000
00:49 camelia rakudo-moar ac27d2: OUTPUT«0.00018719␤»
00:50 timotimo that's not really terribly much time per call
00:50 timotimo m: say "each call to push takes 857.39 / 1024_000 miliseconds"
00:50 camelia rakudo-moar ac27d2: OUTPUT«each call to push takes 857.39 / 1024_000 miliseconds␤»
00:50 timotimo m: say "each call to push takes { 857.39 / 1024_000 } miliseconds"
00:50 camelia rakudo-moar ac27d2: OUTPUT«each call to push takes 0.0008372949 miliseconds␤»
00:51 timotimo (that's exclusive time)
00:56 timotimo m: say "rc-dragon-curve takes { 1620.63 / 8149 } miliseconds to call print each time something goes out to the screen"
00:56 camelia rakudo-moar ac27d2: OUTPUT«rc-dragon-curve takes 0.1988747 miliseconds to call print each time something goes out to the screen␤»
00:59 timotimo m: say "adding a my $*OUT to the very beginning of rc-dragon-curve takes that number down to { 1567.58 / 8149 } ms per call."
00:59 camelia rakudo-moar ac27d2: OUTPUT«adding a my <STDOUT> to the very beginning of rc-dragon-curve takes that number down to 0.1923647 ms per call.␤»
00:59 timotimo hah, oops :D
01:00 adu joined #perl6
01:02 timotimo well, doesn't seem *that* worth it
01:04 KCL_ joined #perl6
01:05 timotimo um ... wat
01:05 timotimo % time     seconds  usecs/call     calls    errors syscall
01:05 timotimo 93.64    0.032699           0    126649    118380 write
01:05 timotimo where does that ridiculous number of errors come from?
01:12 ssqq How to set 'm: say' only see by me.
01:12 timotimo you can query camelia
01:21 ssqq joined #perl6
01:24 ssqq_ joined #perl6
01:25 chenryn joined #perl6
01:29 ssqq__ joined #perl6
01:32 dalek nqp: 0874b80 | TimToady++ | src/vm/parrot/ (3 files):
01:32 dalek nqp: longlit5 for colorful birds
01:32 dalek nqp: review: https://github.com/perl6/nqp/commit/0874b809fe
01:32 dalek nqp: 79d85c1 | TimToady++ | src/QRegex/NFA.nqp:
01:32 dalek nqp: enable birdy longlits
01:32 dalek nqp: review: https://github.com/perl6/nqp/commit/79d85c1751
01:33 raydiak is it common for the profiler to go into an endless loop on code that otherwise runs normally? the script produced its final output after 30-60 seconds, but has been running for like 10 minutes since then
01:33 timotimo oh yeah
01:34 timotimo the profiler takes a bit of time to output its dump
01:34 timotimo especially since it records a complete call stack ... all the way down
01:35 raydiak ah, okay I'll be patient
01:35 timotimo if you're interested in making that better, i've started work on code to summarize the call graph after a certain depth has been reached
01:35 timotimo but it produces bogus results :(
01:35 timotimo if you want to look at that code, i'd much appreciate it
01:36 timotimo https://github.com/MoarVM/MoarVM​/commits/finite_callgraph_depth - find the code here
01:36 ssqq_ joined #perl6
01:37 raydiak oh yay the profiler returned, I can use my web browser again :)  lemme see if it looks like something I'd have a clue about
01:37 timotimo hahaha
01:37 timotimo check the size of the html file
01:38 raydiak heh 58 megs
01:38 timotimo ouch %)
01:38 timotimo your browser will likely be eaten by an oom
01:39 raydiak it's how I write the transformation routines in math::symbolic...basically a "1 while s/.../.../", except in my own super-slow tree-node-pattern-matching subs
01:40 raydiak or, I'm assuming...we'll see if chrome opens it
01:41 raydiak ew C
01:41 timotimo it'll open it just fine, but it won't show any data
01:41 timotimo then it'll say "it's dead, jim"
01:42 raydiak last time I gave it enough time, it actually loaded for a simpel Pray run
01:42 ssqq__ joined #perl6
01:43 timotimo impressive :)
01:43 ssqq__ :camelia :m say 'helo'
01:43 raydiak for a $180 USD pawn shop laptop, yes it is :)
01:43 raydiak hooray it did load...
01:44 raiph joined #perl6
01:44 raydiak this whole part of things is one of the top things on my non-Math::Symbolic p6 list...wanna get to all those interface improvements you suggested, timotimo++
01:44 Mouq m: say 'helo'
01:44 camelia rakudo-moar ac27d2: OUTPUT«helo␤»
01:52 * raydiak sees a 60-million-character string of JSON being parsed, and no longer wonders what is so slow about the profiler
01:53 colomon is that the profiler input or output
01:53 colomon ?
01:53 raydiak output
01:54 raydiak ran it on a math::symbolic run, gave me 58 megs, all of it is a string being JSON.parse'd all at once :P
01:55 raydiak I mean, vim takes several seconds just to seek to the beginning or end of this line :)
02:01 peteretep left #perl6
02:02 adu joined #perl6
02:05 timotimo yeah, browsers are not terribly fond of such big json documents, i fear
02:05 timotimo raydiak: what interface suggestions do you mean? for the profiler?
02:06 timotimo raydiak: tomorrow (or maybe if i can't fall asleep again tonight) i'm going to add a distinction in the allocations: allocated from a spesh'd frame, allocated from a jitted frame or allocated from an unoptimized frame
02:06 raydiak considering json is valid javascript, I question the wisdom of doing this this way...I'm trying to just s/JSON.parse('<stuff>')/<stuff>/ and see if it nets huge gains without breakage, but vim isn't cooperating witht he incredibly long line
02:07 raydiak timotimo: yeah for the profiler, remember you gave me a little list of possible improvements like a week or two ago?
02:07 timotimo yep i did :)
02:08 * timotimo moves to a different place
02:09 jakesyl joined #perl6
02:09 jakesyl Is there a perl 6 tutorial somewhere
02:10 timotimo jakesyl: vendethiel recently gave this presentation: http://slides.com/namidoc/learn#/
02:10 timotimo well, a lightning talk really
02:10 timotimo it has some good pointers
02:13 raydiak several resources listed here: http://perl6.org/documentation/  the learn perl 6 in y minutes one is one of the most recent afaik
02:14 JimmyZ joined #perl6
02:17 perltricks joined #perl6
02:20 raydiak removing the JSON.parse did work, but didn't speed anything up noticably
02:21 raydiak need to profile the profiler :)
02:24 * japhb suddenly has Men At Work running through his head
02:24 timotimo joined #perl6
02:26 chenryn joined #perl6
02:28 xiaomiao cc1: some warnings being treated as errors
02:28 xiaomiao ... what joker added that to nqp makefile(s) ? :D
02:48 chenryn joined #perl6
02:57 raydiak timotimo: sorry, I've been trying to follow and look for mistakes in your profiler branch, but my head seems to be more in a squishy creative place right now than a rigid analytical region of the mindscape :)
02:57 timotimo i think it'd probably help a whole lot to actually go ahead and profile the same short little program with decreasing levels of flattitude in that routine and compare outputs
02:57 timotimo i was too lazy to do that ...
02:58 timotimo anyway, way past bedtime
02:58 timotimo o/
02:58 japhb o/
02:58 raydiak \o
02:58 timotimo o/-    ← "dropping the mic" emoticon?
02:58 raydiak epic :)
03:01 perturbation joined #perl6
03:02 raydiak this might be (only a little?) premature, but do we have anything like a p6 style guide/best practices/something like that?
03:02 timotimo maybe o/_ would work better?
03:02 timotimo actually we do; they are called "well-thought-out practices"
03:02 timotimo https://github.com/moritz/perl6-wtop - there is not much yet
03:02 timotimo maybe when i wake up there'll be more! :P
03:02 timotimo \o
03:03 raydiak cool, thanks \o
03:05 raydiak there are just so many choices to be made when trying to spec an api in p6
03:20 xiaomiao hrm. I can't quite figure out how nqp generates its Makefile
03:20 xiaomiao too many indirections :(
03:22 noganex joined #perl6
03:23 raiph joined #perl6
03:26 tony-o timotimo: submitted a pr containing management speak for the readme
03:35 tinyblak joined #perl6
03:38 raydiak wow I'm sold, I better add more scalable synergy enterprise features to my resume :)
03:47 tony-o we could use people like you to get stuff done
03:47 tony-o :p
04:09 rmgk_ joined #perl6
04:12 anaeem1 joined #perl6
04:21 kaleem joined #perl6
04:43 PerlJam joined #perl6
04:46 perltricks left #perl6
04:47 cognominal joined #perl6
05:03 kaare_ joined #perl6
05:11 xinming joined #perl6
05:18 moritz xiaomiao: it's Configure.pl uses a templating mechanism in tools/lib/NQP/Configure.pm with the templates in tools/build/Makefile-*.in
05:18 xiaomiao moritz: I can't quite figure out where the CFLAGS come from, but they are extremely optimistic
05:18 xiaomiao (gcc 4.9.2 doesn't appreciate them at all, so I just sed them away)
05:20 moritz xiaomiao: they are passed on from parrot's/moarvm's configure
05:21 xiaomiao ouchies.
05:21 davido___ joined #perl6
05:30 chenryn joined #perl6
05:32 ugexe ive been getting a thread error on moar/jvm (but not parrot) during panda's rebootstrap while installing JSON::Tiny
05:32 ugexe starting today i believe
05:33 ugexe so im guessing it has to do with a recent commit
05:44 raiph joined #perl6
05:52 grondilu joined #perl6
05:53 grondilu so my opponent plays 1. g3, I play 1... e5, he replies with 2. Bg2 and I thought "let's have some fun" :  2... e4?!
05:53 grondilu http://en.lichess.org/LSEBATRu/black
05:56 grondilu oopps
05:57 TimToady .oO(#chess6)
05:57 grondilu wrong chann again, sorry guys
05:58 grondilu I need to either pay attention or find a way to have irssi highlight different channels with different colors or something.
06:01 TimToady either that, or just admit you're human like the rest of us :)
06:02 TimToady unless, of course, you're not... :)
06:02 grondilu sometimes I wonder :-)
06:03 grondilu since I'm here, how is the great list refactor going?  Is it coming soon?
06:05 jimmy_ joined #perl6
06:09 dalek roast: 06a85e4 | usev6++ | S03-operators/arith.t:
06:09 dalek roast: Fix exception and error message
06:09 dalek roast: review: https://github.com/perl6/roast/commit/06a85e467b
06:21 kaare_ joined #perl6
06:25 cognominal joined #perl6
06:27 ugexe rerunning the tests they are now passing. using the same commit id as what failed before (same with JSON::Tiny)
06:28 TimToady grondilu: pmichaud++ said he was gonna have a chance to work on it a lot this week, looked like
06:28 dayangkun joined #perl6
06:36 grondilu ok, great
06:37 kaleem joined #perl6
06:37 ugexe hmm restarting the travis test *yet again* it fails with the same error of Internal error: zeroed target thread ID in work pass
06:37 raydiak ugexe: you need a "print '';" somewhere :)
06:38 ugexe its during JSON::Tiny install from panda
06:39 raydiak it's the same heisenbug I kept running into and then couldn't reproduce when I had people's attention
06:39 raydiak removed all the prints from my code and the bug didn't come back due to later changes I had made, I guess
06:41 ugexe on the jvm JSON::Tiny gets installed, but then during panda install Panda::Tester gets a IllegalThreadStateException during compiling Tester.pm
06:41 ugexe was yours different on different vms?
06:42 ugexe from what i can tell panda doesnt have this problem
06:42 ugexe s/panda/parrot/
06:42 raydiak was only developing on a very recent moar
06:42 ugexe yeah moar does it too, just at an earlier stage
06:42 raydiak for me it was in my own code though
06:43 dayangkun joined #perl6
06:43 raydiak so I tried to track it down and it would go away, so I'd just leave a print in there somewhere and move on until I felt up to golfing it
06:43 ptc_p6 joined #perl6
06:44 ugexe https://gist.github.com/ugexe/d103c8ee​e285e855d7bc#file-gistfile1-txt-L2863
06:44 ugexe hmm im good at spamming print statements
06:46 raydiak it's good that we have another example of the failure, too...but I can't reproduce it...what version is your rakudo?
06:46 ugexe its the latest
06:47 raydiak hm I'll rakudobrew and see if it breaks here, if that helps
06:47 ugexe https://travis-ci.org/ugexe/P6TCI/builds/42009558
06:47 ugexe i can refresh that test and it seems to fail 50% of the time
06:47 ugexe you can see the slightly different error from jvm as well, and how parrot passes
06:48 telex joined #perl6
06:49 ugexe you can compare the rakudo/json::tiny/etc commit ids to the ones here where they all passed https://travis-ci.org/ugexe/P6TCI/builds/42044969
06:49 ugexe they are all the same
06:54 raydiak json::tiny just built successfully here, I'll try it a few more times when everything else is done
06:56 KCL_ joined #perl6
06:59 raydiak failed to fail 5 times in a row
07:05 ugexe maybe its rakudo/moar/jvm then
07:05 ugexe not sure what could be different between building the same commit though
07:05 ugexe i cant get it to happen outside the travis machines either
07:06 raydiak huh...what is this travis thing anyway?
07:07 ugexe every time you make a commit, travis gets a hook from github and it pulls in your code and runs the tests for it (according to a config file you setup)
07:07 raydiak oh neat
07:08 ugexe those links are to the output of those tests
07:09 raydiak yeah, I figured out how to read them when I noticed the lines are folded
07:09 ugexe oh yeah, i forgot about that
07:10 raydiak "panda-fetch: command not found" didn't look like my error :)
07:10 ugexe thats not the error
07:10 ugexe panda-fetch wasnt installed
07:10 ugexe because of the thread error
07:11 ugexe https://travis-ci.org/ugex​e/P6TCI/jobs/42009559#L910
07:12 ugexe :/ that doesnt unfold the line either it looks like
07:14 raydiak yeah no I got to it eventually, was just making fun of my initial confusion
07:16 raydiak can you manually run commands in a travis vm?  would be nice if we could reproduce an instance of it with something helpful like --ll-exception, or valgrind or whatnot
07:17 ugexe yeah, but rakudobrew build-panda doesnt let us pass any flags
07:17 ugexe https://github.com/ugexe/P6​TCI/blob/master/.travis.yml
07:17 ugexe i guess not manually per se
07:17 raydiak yeah you'd have to clone json::tiny and manually run the compile command
07:17 ugexe you can manually put them all in a config and run them
07:18 raydiak that'd work
07:21 ugexe whats interesting is it fails during compile for moar but not jvm
07:21 ugexe but using it with the jvm it errors at runtime
07:22 nebuchadnezzar joined #perl6
07:22 ugexe and parrot has no threads so presumable thats why this problem hasnt popped up there yet
07:25 raydiak the error for jvm looks like when it's building panda, after it's done with json::tiny
07:27 Mouq joined #perl6
07:28 raydiak jvm dying here: https://github.com/tadzik/panda/blo​b/master/lib/Panda/Builder.pm#L136
07:33 raydiak should you be able to assume that a pipe to a child process can be closed after 'for .lines' finishes?
07:34 chenryn joined #perl6
07:36 gfldex joined #perl6
07:37 dalek nqp: 6506e8c | TimToady++ | src/vm/parrot/ops/nqp.ops:
07:37 dalek nqp: act needs to fit into 32-bits signed (for jvm)
07:37 dalek nqp: review: https://github.com/perl6/nqp/commit/6506e8c9ed
07:37 dalek nqp: 097d396 | TimToady++ | src/vm/jvm/runtime/org/perl6/nqp/ (2 files):
07:37 dalek nqp: longlit5 for the vm of indonesian beverages
07:37 dalek nqp: review: https://github.com/perl6/nqp/commit/097d3960ff
07:37 dalek nqp: c696224 | TimToady++ | src/QRegex/NFA.nqp:
07:38 dalek nqp: enable longlit for jvm; fit act sign into 32 bits
07:38 dalek nqp: review: https://github.com/perl6/nqp/commit/c696224945
07:38 dalek nqp: dfd3975 | TimToady++ | tools/build/MOAR_REVISION:
07:38 dalek nqp: require moar that masks smaller fate in act
07:38 dalek nqp: review: https://github.com/perl6/nqp/commit/dfd397516c
07:41 TimToady jnthn: someone who knows Java better than me needs to fix up the XXX line in 097d396, which is an egregious hack just to get it to work
07:42 TimToady it wouldn't boot from stage0 when I tried to do the obvious thing in the ThreadContext
07:46 raydiak ugexe: will it still work if I just delete the before_script, script, and after_success portions, and put the manual compile commands in place of panda-build under install?
07:47 TimToady other than that, and bumping the nqp version in rakudo, I think I'm finally done with longest literals
07:48 raydiak ugexe: actually, never mind
07:48 FROGGS joined #perl6
07:50 vti joined #perl6
07:52 ugexe ive been retesting a build like that for the last 30 minutes with no failures
07:52 raydiak ah
07:53 chenryn joined #perl6
07:54 ugexe https://github.com/ugexe/P6TCI/blob/306d60bd​885076633b1b8df162b9cb97c4318526/.travis.yml
07:55 ugexe thats how you can do build-panda and then a manual panda install
07:55 ugexe er you want compiled commands. yeah you can do that too
07:56 raydiak ah, for the jvm failure...yeah meant for the json::tiny moarvm failure
07:58 raydiak wonder if a --ll-exception flag for panda to pass through to builds and tests would be worthwhile
07:58 brrt joined #perl6
07:59 ugexe https://github.com/tadzik/panda/pull/114
08:00 raydiak heh I'm almost caught up to the present
08:02 JimmyZ TimToady++ # hard work on longlit!
08:04 kjs_ joined #perl6
08:05 dalek specs: f22ee3e | TimToady++ | S05-regex.pod:
08:05 dalek specs: Describe some details of tiebreaker #2
08:05 dalek specs: review: https://github.com/perl6/specs/commit/f22ee3e888
08:08 ugexe finally got it to error with a manual build after
08:10 ugexe https://travis-ci.org/ugex​e/P6TCI/jobs/42044637#L911
08:10 ugexe at line #977 is the manual panda install where it passes the test #911 failed
08:11 vti i have a strange behavior when using substitution with smart match, i have written the smallest script that reproduces the problem; in short $0 from the previous match is not overwritten, there is something wrong with the loop, without looping it works ok: https://gist.github.com/vti/c11a9c1e63332de1ab59
08:11 vti current it prints 1 and 1
08:12 moritz vti: s/// currently doesn't set any match variables, except in the right-hand side of the substitution
08:12 vti moritz: ah, i see
08:12 vti moritz: so what is the alternative? first match and then remove?
08:12 raydiak there's also #123005
08:12 synopsebot Link: https://rt.perl.org/rt3//Publ​ic/Bug/Display.html?id=123005
08:13 moritz vti: yes
08:13 moritz vti: it sucks, but on the upside, $0.from and $1.to make it easy to find the indexes to pass to substr
08:13 FROGGS morning #perl6
08:13 vti moritz: ok, will do that, thanks
08:13 moritz or maybe
08:14 vti raydiak: then i ++ that bug :)
08:14 moritz m: $_ = 'abc'; my $match; s/b./{ $match = $/; '' }/; .say; say ~$match;
08:14 camelia rakudo-moar ac27d2: OUTPUT«a␤bc␤»
08:14 moritz vti: ^^ that seems to be a viable workaround too
08:15 dalek rakudo/nom: 316f993 | TimToady++ | tools/build/NQP_REVISION:
08:15 dalek rakudo/nom: bump nqp rev to enable longlit for parrot and jvm
08:15 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/316f993fb1
08:15 raydiak good morning FROGGS o/
08:15 Mouq vti: You might try adding {} at the end of the regexes
08:16 vti Mouq: yep, it works
08:16 Mouq like  s/^ (Foo)\: \h?{}//
08:16 vti Mouq++
08:16 vti moritz: that's the easiest ^^ :)
08:17 moritz wtf?
08:17 moritz Mouq: do you understand why that works?
08:17 chenryn joined #perl6
08:17 [Sno] joined #perl6
08:19 grondilu « TimToady has found four distinct ways to not properly implement the second tiebreaker for longest token matching (“longest literal string wins”). He’s now working on the fifth way. »  ^not sure what this is about
08:20 Mouq moritz: Nope. When I found that trick out quite some time ago, someone (jnthn?) mumbled something about $/ not being vivified...
08:21 Mso150 joined #perl6
08:25 TimToady m: 'abcdefghi' ~~ / \w\w\w\w\w { say "got cclasses" } | abcde { say "got literal" } /
08:25 camelia rakudo-moar ac27d2: OUTPUT«got literal␤»
08:25 TimToady grondilu: it's about picking the more specific pattern when LTM ties
08:25 tadzik omg omg, did we forget about advent calendar?
08:25 moritz tadzik: nope, PerlJam++ already started organizing
08:25 tadzik *relief* :)
08:25 moritz tadzik: quick, sign up for a slot!
08:26 TimToady grondilu: also see all my recent commits :)
08:26 tadzik moritz: quick, come up with a subject! :P
08:26 TimToady subject-oriented programming
08:27 moritz tadzik: ALL UR GAMING ARE BELONG OT US
08:27 moritz *TO
08:28 rindolf joined #perl6
08:31 darutoko joined #perl6
08:34 tadzik :) alrighty then
08:41 moritz tadzik: also, a summary of panda changes from this year would be very welcome
08:41 moritz tadzik: and rakudobrew, if it hasn't been talked about yet
08:42 moritz seems not
08:42 tadzik wow, is that so
08:42 tadzik indeed!
08:42 tadzik I'll sign up for 2nd
08:43 dalek mu: daa7880 | tadzik++ | misc/perl6advent-2014/schedule:
08:43 dalek mu: Sign up for 2nd
08:43 dalek mu: review: https://github.com/perl6/mu/commit/daa7880f44
08:44 Mouq p6: say i**2
08:44 camelia rakudo-{parrot,moar} ac27d2: OUTPUT«-1+1.22464679914735e-16i␤»
08:46 dalek rakudo/newio: 316f993 | TimToady++ | tools/build/NQP_REVISION:
08:46 dalek rakudo/newio: bump nqp rev to enable longlit for parrot and jvm
08:46 dalek rakudo/newio: review: https://github.com/rakudo/rakudo/commit/316f993fb1
08:46 dalek rakudo/newio: b3ef1ea | (Elizabeth Mattijsen)++ | tools/build/NQP_REVISION:
08:46 dalek rakudo/newio: Merge branch 'nom' into newio
08:46 dalek rakudo/newio: review: https://github.com/rakudo/rakudo/commit/b3ef1ea7e2
08:46 lizmat and a good *, #perl6!
08:46 raydiak \o lizmat
08:51 virtualsue joined #perl6
08:56 molaf_ joined #perl6
09:01 raydiak ugexe: this didn't succeed in breaking it, unfortunately, but is how I was trying to reproduce the moar/json::tiny failure: https://github.com/raydiak/j​son/blob/master/.travis.yml
09:01 Ven joined #perl6
09:01 Ven o/, #perl6.
09:01 raydiak \o Ven
09:02 brrt \o Ven, lizmat
09:11 TuxCM joined #perl6
09:19 virtualsue joined #perl6
09:22 bjz joined #perl6
09:27 kjs_ joined #perl6
09:33 Guest92293 o/ \o o/, #perl6
09:34 masak ok, let's try this again:
09:34 masak today, I will blog.
09:34 masak later today, though. first, $work.
09:39 Ven .oO( $BLOG! $BLOG! $BLOG! )
09:44 masak ooh, and I know what to blog about. :)
09:45 rurban joined #perl6
09:46 Ven moar power to the $BLOG :-)
09:46 dakkar joined #perl6
10:09 pecastro joined #perl6
10:10 JimmyZ moar jit power ;)
10:14 denis_boyun joined #perl6
10:20 zakharyas joined #perl6
10:24 ssqq joined #perl6
10:30 kurahaupo joined #perl6
10:38 masak today's discussion topic: is metadata just data with delusions of grandeur? :)
10:39 masak seriously, I've seen domains that had loads of metadata, but no actual data.
10:39 brrt hmmm good question
10:39 brrt when do we call data metadata
10:40 masak I've heard people call comments in code metadata. that was Steve Yegge, IIRC.
10:40 tadzik when it's data about data, like an index
10:40 huf after you've said hello
10:41 masak tadzik: so... most data?
10:41 moritz masak: I find meta data just as scary as data
10:41 tadzik probably :)
10:41 huf never met a data i didnt like
10:41 moritz masak: "so you connected to pornhub.com? don't worry, we don't know the contents of your request"
10:42 masak my point is that it doesn't take much for data to be about data.
10:42 masak heck, every foreign key ever is metadata.
10:42 huf yeah, but code is data too
10:42 brrt hmmm
10:42 masak code is operating on data, so it's metadata.
10:42 huf so these terms are clearly very relative to the current topic
10:42 brrt i'm not sure i agree whether a foreign key is metadata
10:42 brrt its part of the shape of the data
10:42 tadzik what if it's operating on code? That's so meta
10:42 brrt a pointer isn't metadata
10:42 huf "metadata" is like "higher"
10:43 huf it's meaningless without context :)
10:43 raydiak imo metadata is a question of perspective...if bring your context down a metalevel, data is viewed as metadata...up a level and vice-versa happens
10:43 masak huf: technically "beyond" or "beside".
10:43 huf masak: yeah, but same applies to those too
10:44 brrt hmm...
10:44 brrt no
10:45 brrt it may be in the interest of intelligence agencies to call urls and email topics metadata, but they're really part of the message
10:45 masak well, all I really wanted to do was sow some doubt that the notion of "metadata" has any real meaning except perhaps in a sufficiently defined domain.
10:45 huf what's the difference between a crocodile?
10:45 raydiak there wasn't already doubt? :)
10:45 huf it's longer than green.
10:45 Mouq joined #perl6
10:46 Ven masak: I have no idea what "metadata" is supposed to mean
10:46 masak I think we all agree that it's all ones and zeroes. whether we call them "data" or "metadata".
10:46 Ven that's an implementation detail :-)
10:46 brrt i think those well-defined domains are more common than you might think
10:47 brrt e.g. in C? struct values are data, struct type is metadata
10:47 brrt in SQL, metadata is the schema, data are the rows
10:47 masak brrt: never heard of that distinction.
10:47 sqirrel__ joined #perl6
10:48 brrt well, i'd put the difference between structure and value
10:48 brrt structure is always meta
10:48 brrt much like the distinction between species have little to do with the individuals, but with the properties-of-all-individuals
10:48 masak brrt: seems to me you're simply talking about types/schemas vs values. not the typical definition of "metadata".
10:48 rurban metadata cannot lie, content usually does. that's the reason
10:49 brrt i'd argue that this is the typical definition of metadata, and that (if anything) this meaning has been corrupted for political purposes
10:49 Ven political metadata? what?
10:49 brrt like moritz'es example, the fact that you connected to pornhub or any other site is part of the exchange
10:49 brrt it's data
10:49 * Ven has never heard of "metadata" outside of programming contexts
10:50 brrt no, the *meaning* of the word 'metadata' was stretched for political reasons :-)
10:50 masak rurban: hah! someone should write a crime thriller based on the flawed idea of "metadata cannot lie".
10:50 rurban well, you can fool metadata also, but that's much harder
10:50 masak it's the modern equivalent of "the camera never lies"
10:50 rurban ipspoofing, mac spoofing, arp cache and so on
10:50 masak ah yes, *apart* from those ways.
10:51 Ven if you accept there's "metadata", then there has to be a tower of those.
10:51 Ven DO YOU WANT A MULTIVERSE?
10:51 Ven because that's how you get a multiverse...
10:51 rurban or morphing (cast, nci reinterpretation)
10:51 * masak .oO( ...he shouted, panicked, in all-caps )
10:52 brrt i don't want a multiverse. i'd have no idea what would give energy to power all multiverses
10:52 brrt on the other hand
10:52 brrt dark energy
10:54 brrt i suspect that, if GDR secret service had need for it, they'd make a convenient distinction between spying and 'meta-spying' too
10:54 masak if I'm charitable, I can have "metadata" mean "annotation data". as in "this data is not strictly necessary in the domain, but it's nice to have".
10:54 brrt hmmm
10:55 brrt but that implies that there is potentially a domain on which that data is necessary
10:55 brrt so that would fit the comment definition, as e.g. pod comments are input for another tool (perldoc)
10:56 brrt and anyway, that definition still excludes mass-scale spying data :-)
10:58 masak yes, "there is potentially a domain" is exactly right. that is, the view on metadata is *domain-dependent*.
10:59 masak we could think of one or more "meta-domains" in which what's metadata here is data there.
10:59 brrt sometimes aristotle is useful :-)
11:00 Mouq e.g., file systems
11:01 brrt in a sense, for something to be 'really' metadata, it should have no meaning in the 'data' domain
11:01 masak brrt: I don't think the definition excludes spying data. I do think it excludes structs/schemas, though.
11:01 brrt hmmmmm
11:01 masak brrt: don't know about "no meaning". but it shouldn't be primary/necessary.
11:02 brrt ok, i think i can agree on that
11:02 masak like, email subject and body are data, because that's why the email was sent. header details are metadata, and that's one reason we don't normally look at them when we read emails.
11:02 brrt wrt to mass surveillance 'metadata', i really do think it is weasly to call e.g. domain names 'metadata'
11:02 Ven .oO( I see meta-meta-data )
11:02 brrt what about email recipient address is data
11:04 masak arguably, yes.
11:04 masak and I can agree about the weasliness.
11:08 Ven "metadata is the structure, like the fields. metametadata is the field structure, like (name, type). metametametadata is the data explaining what's a name and what's a type. metametametametadata is the data explaining ..."
11:09 Mouq OED: "metadata n. data that describes and gives information about other data."
11:09 masak Ven: I don't see metadata being usually about structure.
11:09 masak Ven: I see it more as annotating existing data, regardless of structure.
11:09 masak what Mouq/OED said.
11:10 Ven masak: I'm just giving an example of a tower
11:10 brrt hmmm..... i'm not sure that structure is not metadata
11:10 Mouq Data about structure is arguably metadata about the representation of the data
11:10 Ven :-)
11:11 Mouq Rather than the data per se
11:11 brrt aye
11:11 masak I don't think that's how it's normally used, though.
11:11 brrt how do you see it normally being used?
11:11 masak and it contravenes my intuition that the data would still be OK/valid/fine if the metadata weren't there.
11:12 masak in a sense, I see metadata as "extra", not necessary/vital for the data.
11:12 brrt hmmm....
11:12 Ven masak: it's still ok/valid/fine if the metadata isn't there ;-)
11:12 brrt fair point
11:12 Ven that's the basic idea of dynamic typing :P
11:12 masak Ven: that felt like a frivolous point at first, but I think it's actually a good one.
11:13 brrt but then, if you get down to it, structure is just a list of routines used to access values in a composite
11:13 Ven masak: it's a frivolous point
11:13 brrt so maybe it's not really metadata but metacode
11:13 masak structure is rules about data access.
11:13 Mouq ^^ that
11:13 Ven masak: "dynamic typing" should be replaced with "weak typing".
11:13 masak not necessarily code.
11:13 Ven because dynamic typing can still be based on the idea of "having a structure"
11:14 Ven that's... still a frivolous point to me, though.
11:14 brrt difference between rules and code is a weak one
11:14 Ven we should abolish the difference :-)
11:15 Ven m: my @a = <salut ca va oui et toi>; say any(@a) eq all(<salut oui et toi>)
11:15 camelia rakudo-moar 316f99: OUTPUT«all(any(True, False, False, False, False, False), any(False, False, False, True, False, False), any(False, False, False, False, True, False), any(False, False, False, False, False, True))␤»
11:16 Ven m: my @a = <salut ca va oui et toi>; say so any(@a) eq all(<salut oui et toi>)
11:16 camelia rakudo-moar 316f99: OUTPUT«True␤»
11:16 Ven m: my @a = <salut ca va oui et toi>; say so any(@a) eq all(<salut oui et pas moi>)
11:16 camelia rakudo-moar 316f99: OUTPUT«False␤»
11:16 Ven I might be in love :)
11:16 masak I think the distinction between data and metadata (in some domains) is the kind of thing that can put up walls in the way of insight/unifications.
11:19 brrt unifications are dangereous operations :-)
11:19 Ven you misspelled "awesum" :)
11:20 kjs_ joined #perl6
11:29 * brrt afk
11:48 abraxxa joined #perl6
12:08 abraxxa1 joined #perl6
12:20 rurban joined #perl6
12:25 KCL joined #perl6
12:31 erkan joined #perl6
12:39 kaleem joined #perl6
12:53 timo joined #perl6
12:54 timotimo i should have nick colors now, yay
12:58 dalek snake: 753db10 | (Arne Skjærholt)++ | src/Snake/ (2 files):
12:58 dalek snake: First quick implementation of currying invocants into methods.
12:58 dalek snake: review: https://github.com/arnshol​t/snake/commit/753db10d3e
12:59 lue joined #perl6
13:00 timotimo hmm. did i mention arnsholts work on snake?
13:00 timotimo i kind of fear i didn't :o
13:02 arnsholt Mentioned in what?
13:03 timotimo my weekly post yesterday
13:03 arnsholt Aha. 'S ok =)
13:03 timotimo :S
13:03 arnsholt There's always next week =)
13:05 timotimo sometimes there's only "the week after next week"
13:05 arnsholt Or that
13:06 arnsholt I'll just have to remember to do some work on snake before the next weekly summary =D
13:07 timotimo OK :)
13:07 timotimo i can live with that, if you can live with that ;)
13:08 eternaleye joined #perl6
13:08 arnsholt It's still an on-again off-again project for me, so no publicity isn't a problem
13:08 arnsholt I'll just keep tinkering
13:10 rurban github down for a moment...
13:13 rurban nope, looks like the us routing is slow
13:19 sqirrel__ joined #perl6
13:26 hoelzro if two compunits A.pm and B.pm each have their own package ABC {}, and B.pm defines class ABC::B {}, can code in A.pm see ABC::B even if A.pm doesn't 'use B'?
13:26 hoelzro (if, for example, main.pl uses both A and B)
13:27 sven_123 joined #perl6
13:29 sven_123 hi - what happened to planet6.perl.org?
13:33 Akagi201 joined #perl6
13:34 rurban Please don't use B; this already exists in perl5
13:35 hoelzro rurban: it's just an example module name
13:43 guru joined #perl6
13:49 kjs_ joined #perl6
13:53 ptc_p6 joined #perl6
13:54 masak rurban: even though that wasn't what it was all about in this case, what do you see as the harm of using module names that already exist in CPAN's Perl 5 namespace?
13:54 masak confusion?
13:54 masak what if it's a port of the original module?
13:58 Ugator maybe you should add to the v6 port to the perl5 module? so there is only one module?
13:58 masak I don't immediately see why that's better than keeping the modules separate.
13:59 geekosaur I don't think p5's B:: namespace is sensibly p6-able...
13:59 masak that way, both p5 and p6 users pay the size cost of both.
13:59 Ven joined #perl6
14:01 Ugator so CPAN will stay p5 for longterm? and p6 modules will be a completely new "world" this might cause confusion
14:03 hoelzro package ABC {} by itself is local to that compunit, right? if I wanted it to be externally visible, I would have to do 'our package', correct?
14:05 masak Ugator: there has been concrete progress on making Perl 6 modules available on CPAN, AFAIK.
14:05 rurban joined #perl6
14:06 masak hoelzro: no, package-level things are 'our'-scoped by default.
14:07 hoelzro ok, thanks for the clarification masak
14:07 * hoelzro is trying to figure out how package ABC {} is installed from a Moar dump
14:07 Ugator masak: what is done in 1to1 ports in regard to naming?
14:08 timotimo what is B::?
14:08 masak timotimo: https://metacpan.org/pod/B
14:09 timotimo oh
14:09 masak Ugator: it varies. I've ported modules and given them the same name. I've ported modules and given them a different name. others have done the same.
14:10 masak Ugator: as to collisions on CPAN, I don't think that's a big problem -- things will reside in different namespaces from the start. people's searches would probably default to seeing only the Perl 5 modules.
14:11 bjz joined #perl6
14:18 hoelzro any thoughts on my tale of two compunits?
14:19 FROGGS hoelzro: I started to debug it on sunday evening but did not get far
14:19 hoelzro FROGGS: I was looking a little last night myself
14:19 hoelzro but I'd bet on you figuring it out first =)
14:20 FROGGS hoelzro: there must be a symbol merger that runs at deserialization time... if we find it, we can solv that issue me thinks
14:21 hoelzro isn't that the one in ModuleLoader.nqp?
14:21 hoelzro or a different one?
14:21 hoelzro I noticed that sometimes ABC.WHERE is the same address across compunits, and sometimes it's different
14:22 hoelzro that confuses me
14:23 fhelmberger joined #perl6
14:47 kaleem joined #perl6
14:48 lizmat commute to AmsterdamX &
15:05 guru joined #perl6
15:08 pmurias joined #perl6
15:09 pmurias masak: re not using B as module name, I think it would be confusing if there were both Perl 5 and Perl 6 modules with the same name doing different things
15:09 masak fortunately, no-one is proposing that.
15:09 pmurias masak: like if we had a Perl 6 web framework called DBI ;)
15:10 eternaleye joined #perl6
15:10 masak I agree that would be terribly confusing. also unlikely.
15:11 Ven that'd probably mean we picked very wrong names at some point :)
15:11 Ven .oO( guess what the "bacon.js" library is for?? )
15:12 pmurias there is a also a question if the Perl 5 author should own the Perl 6 name by default
15:13 masak that's a good question.
15:15 FROGGS pmurias: since everybody can release the distribution and package Foo, that does not make much sense
15:17 Ven pmurias: I say no :)
15:17 FROGGS pmurias: that's where the recommendation manager would say: "I know this P5 guy, and we recommend to use TAP::Harness by leont, even when there are others that have higher version numbers or more recent patches."
15:17 nine Having a P5 author owning the P6 name by default would hinder random persons from porting their favourite P5 module to P6. There's an awful lot of orphaned P5 modules on CPAN.
15:18 pmurias everyone can have his own Foo distribution, but if we have multiple ones we need to determine which one is loaded by 'use Foo'
15:18 FROGGS nine: I can release an Inline::Python for Perl 6 right away under my name, and you can do the same under your name tomorrow
15:18 kaleem joined #perl6
15:19 pmurias FROGGS: and which one should 'use Inline::Python;' load?
15:19 FROGGS nine: there is no "I register for this namespace, and nobody else can in future"
15:19 FROGGS pmurias: that depends on what version you've got installed
15:19 nine FROGGS: on CPAN you can't or at least shouldn't be able to
15:19 pmurias FROGGS: that seems like a horrible solution
15:20 FROGGS pmurias: if you have installed all dists that exist, a bare 'use Inline::Python' should use the recommended distribution
15:20 FROGGS nine: when one would use P5's indexer
15:20 pmurias recommended by who?
15:20 FROGGS nine: but we use our own
15:20 FROGGS pmurias: by the recommendation manager
15:20 nine FROGGS: on CPAN?
15:20 FROGGS nine: yes
15:20 nine FROGGS: where can I find more information about Perl6 and CPAN? The topic interests me.
15:21 FROGGS pmurias: that's why you can/should specify a use Inline::Python:auth<nine> if *you* want to lock it down
15:21 pmurias FROGGS: so someone needs to own the recommended slot
15:21 FROGGS nine: S11 and S22
15:22 FROGGS pmurias: yes, like P5's indexer keeps a 02packages, we'd keep a list of recommended dists, which would not be that static in contrast to P5
15:23 FROGGS which means that we can change our mind and switch to a different auth in case the recommended dist is not maintained anymore
15:23 FROGGS pmurias: so the difference is just: there is no first-come-forever-own namespace thingy, but a list of recommended dists
15:24 pmurias having a first-come-forever-owns-the-default name seems superior
15:24 nine But first-come-forever-own is not exactly how CPAN works. One can adopt namespaces.
15:25 FROGGS but then again, I can fork TAP::Harness, patch it, and release it under my name... my clone would not just be recommended, but could be installed and used by: use TAP::Harness:auth<FROGGS>
15:25 pmurias having such a thing seems usefull
15:25 pmurias * useful
15:25 FROGGS nine: yes, and we make that adoption more clear, by saying that there is a group of ppl that has the power to decide
15:26 FROGGS pmurias: first-come-first-recommended seems useful
15:30 chenryn joined #perl6
15:31 pmurias what I would like to avoid is some incompatible version taking over as the default name all of a sudden and things breaking
15:31 FROGGS pmurias: the recommendation managers won't change the dist on a weekly basis and won't just pull the rug under your feet
15:32 FROGGS though, when you declare dependencies in your applications/disst, you have to think about what you want
15:34 erkan joined #perl6
15:34 erkan joined #perl6
15:34 telex joined #perl6
15:36 chenryn joined #perl6
15:37 ugexe raydiak: i dont think your travis run actually compiled any of those modules
15:39 liztormato joined #perl6
15:39 ajr joined #perl6
15:39 liztormato Re S11 and S22 discussion right now:
15:40 liztormato A bare -use Foo- is P5 think in my book
15:40 lucas__ joined #perl6
15:41 lucas__ hello channel
15:41 moritz \o
15:41 liztormato For production quality code, you will need to specify
15:41 lucas__ moritz: o/
15:41 liztormato Auth and version as explicitly as possible
15:42 liztormato That is *the* way to ensure there will be no breakage in production
15:42 masak liztormato: I agree with your point. but surely (a) the system is still opt-in? and (b) in the majority of cases the right version will be chosen if those are not specified?
15:43 masak I agree it's good to be precise. especially auth.
15:43 masak with version, I can see ways to make the system less robust to changing dependencies rather than more.
15:43 lucas__ Sometimes I read something about Perl 6 and CPAN together... Does it make sense? IMHO, code in two different languages on the same repository would be very confusing.
15:44 masak lucas__: I for one think it'd be a good thing for both Perl 5 and Perl 6, long-term.
15:44 liztormato If you say -use Foo- you will get the one of the first CompUnitRepo in @*INC that has a Foo
15:44 moritz lucas__: you do notice that there's C code on CPAN too? and SQL code? and ...
15:44 ajr_ joined #perl6
15:44 lucas__ Maybe even JS also... :)
15:45 Ugator should there be a warning, if I specify an old version?
15:45 liztormato Ugator: No
15:46 Ugator but this might be relevant for security
15:46 liztormato If your specification is matched by a CompUnitRepo, you get what you asked for
15:47 liztormato If you don't get what you want, them your specification is wrong
15:47 liztormato *then
15:49 FROGGS lucas__: btw, you do not find any Perl 6 dist when you use search.cpan.org or metabase.org... it is just that we use their storage..
15:49 FROGGS lucas__: we don't use their websites
15:49 * liztormato feels the need for an advent post
15:49 FROGGS yeah
15:49 masak ++lizmat
15:49 colomon lizmat++
15:50 liztormato Btw: the recommendation manager is  only intended for *installation* of dists. Nothing else
15:51 lucas__ FROGGS: What do you mean? Are perl 6 modules hosted on CPAN infra?
15:51 liztormato -use- is about what CompUnitRepo provides
15:51 liztormato That generally is what is installed
15:52 liztormato Although the API would allow things such as CloudPAN
15:54 liztormato lucas__: Yes
15:54 FROGGS lucas__: yes
15:54 liztormato ;-)
15:54 FROGGS :o)
15:54 lucas__ OMG! :D
15:54 lucas__ I didn't know that.
15:54 liztormato Although not limited to
15:54 kaare_ joined #perl6
15:54 FROGGS lucas__: though, we still use github mostly
15:55 FROGGS one reason is that the module installer (panda) only has CPAN support in a branch
15:55 lucas__ FROGGS: Yes, I was thinking the github was the only channel of distribution...
15:55 FROGGS damn, I need to work at that again :/
15:56 liztormato As do I. Will have time Thu-Sun at the patch -p2 hackathon
15:57 FROGGS I won't have time on Sunday, but Sat should work and the evenings anyway
15:58 liztormato Cool. I hope to finish the newio branch in any case
15:59 FROGGS liztormato: fixing CUR::I is also very high on my todo, which is a nice separate task
15:59 lucas__ Range methods are spelled with underscores: excludes_min, excludes_max. Do you think it's ok or they should be hyphenated?
16:01 Ven Uhm, how many language have a "minmax"  built-in? We do, List::Util (p5) does, ruby does...
16:01 masak lucas__: well, it is by spec...
16:02 FROGGS masak: by spec or by design documents?
16:02 masak by synopsis, written by TimToady before the 2009 migration.
16:03 lucas__ what 2009 migration??
16:03 FROGGS lucas__: we migrated the year 2009 in 2004 :P
16:03 FROGGS into*
16:03 FROGGS masak: what happened 2009?
16:03 masak actually, the underscores seem to have been chosen by dduncan: see e35dc603.
16:04 * colomon is pro-dash
16:04 masak a migration from something to SVN.
16:04 lucas__ colomon: \o/
16:04 masak yes, feel free to change it to dashes.
16:04 masak but please update S03 also.
16:04 arnsholt Does anyone know what the nqp::takeclosure op is for?
16:04 FROGGS Dash All The Things! /o/
16:05 liztormato Fwiw, I feel that using - is really a dogfooding issue
16:05 FROGGS liztormato: for what? work on syntax highlighters?
16:06 FROGGS arnsholt:     public static SixModelObject takeclosure(SixModelObject code, ThreadContext tc) {
16:06 FROGGS if (code instanceof CodeRef) {
16:06 FROGGS CodeRef clone = (CodeRef)code.clone(tc);
16:06 FROGGS clone.outer = tc.curFrame;
16:06 liztormato FROGGS: Also , yes
16:07 FROGGS liztormato: what-else?
16:07 liztormato Idiomatic Perl 6 code
16:07 FROGGS *nod*
16:07 pmurias arnsholt: so that you get a freshly cloned coderef instead of -> {...} returning the same thing every time
16:07 liztormato Finding parse issues with identifiers with -
16:08 arnsholt pmurias: Aha. So you need to actually invoke takeclosure on a block to get a closure?
16:08 FROGGS ohh, I think our parser is already very good with that
16:09 lucas__ liztormato: Are you against this change?
16:09 FROGGS lucas__: no
16:09 liztormato But if we break anything, we should know assp
16:09 FROGGS pro dash ftw!
16:10 lucas__ alright, I'll do it then. rakudo/roast/specs... this will break lots of things, right?
16:10 liztormato I'm pro dash, fwiw
16:10 liztormato We have deprecation cycle
16:11 lucas__ liztormato: thanks. I wasn't very familiar with the term "dogfooding" :)
16:12 lucas__ Also... do think having only the "negative" is ok, or an affirmative includes_min/includes_max would also make sense?
16:12 lucas__ *do you (people) think...
16:13 lucas__ *includes-min, includes-max
16:13 lucas__ well, better not
16:14 FROGGS no, we don't need includes-* when we have excludes-*
16:14 liztormato +1
16:15 abraxxa joined #perl6
16:20 erkan joined #perl6
16:20 erkan joined #perl6
16:24 pmurias arnsholt: yes
16:25 liztormato Decaring&
16:25 liztormato left #perl6
16:25 guru joined #perl6
16:26 timotimo liz doesn't care? :(
16:27 masak lizmat: I respect the fact that people like to put dashes in their code. I do have a lot of code bases with exclusively underscores in them, though.
16:27 lucas__ I was thinking range were the only instance of underscores... but grammatical categories and Test.pm also have them... But, well, it's different things, different matter.
16:28 masak it's like, some days I do dashes exclusively, and some days I do underscores. the code bases are consistent, but which style they get depends on the day I start them.
16:28 masak lucas__: those are more OK, I think. they are more internal. YMMV.
16:28 lucas__ masak: I agree.
16:28 sqirrel__ joined #perl6
16:35 timotimo why don't we tell people to put lots more ' into their functions/methods?
16:38 osfameron why can't you have ' at the *end* of an identifier name btw?
16:38 osfameron is that just a parser issue?
16:38 timotimo quickly whip up a slang to investigate that idea :)
16:40 kurahaupo joined #perl6
16:43 kaleem joined #perl6
16:44 dalek perl6-roast-data: d636201 | coke++ | / (5 files):
16:44 dalek perl6-roast-data: today (automated commit)
16:44 dalek perl6-roast-data: review: https://github.com/coke/perl6​-roast-data/commit/d6362019c6
16:45 ugexe in rakudobrew the only difference between the 'build moar' and 'build moar_jit' commands is '--gen-nqp=master'. Is that correct? (last pr from timo removed --enable-jit)
16:45 FROGGS --enable-jit is the default nowadays
16:46 FROGGS bbiab
16:46 timotimo i removed it?
16:46 timotimo oops.
16:46 timotimo in that case, we should either add --disable-jit to moar or introduce a moar_nojit
16:46 ugexe 'perl Configure.pl --backends=moar --gen-moar' == 'perl Configure.pl --backends=moar --gen-moar=master --gen-nqp=master' then?
16:46 timotimo since moar_jit is now the default
16:47 timotimo --gen-moar and --gen-nqp will look at tools/build/NQP_REVISION for rakudo and tools/build/MOAR_REVISION for moarvm to figure out which commit to build
16:47 timotimo =master will give you the very latest of both
16:48 ugexe but on a first build it should generate moar_jit now?
16:48 arnsholt pmurias: Right. That's likely a bug in Snake I'd be scratching my head over =) Thanks!
17:09 mr-foobar joined #perl6
17:09 lucas__ 3 PRs awaiting for you... :)
17:12 lucas__ travis will break. right?
17:15 moritz travis just builds rakudo, doesn't spectest
17:16 PZt joined #perl6
17:16 [Coke] moar nojit: https://github.com/coke/perl6-roast-da​ta/blob/master/bin/rakudo.moar.sh#L12
17:17 ugexe ill send a pr with nojit option for rakudobrew
17:18 moritz ++ugexe
17:28 [Sno] joined #perl6
17:29 immortal joined #perl6
17:32 timotimo since you can still always turn off the jit via an environment variable, having a jit vs nojit build isn't as important any more
17:35 kjs_ joined #perl6
17:36 arnsholt pmurias: Are you sure the takeclosure is needed to get correct closure stuff? Looks like Snake works correctly without it
17:37 timotimo maybe the semantics are slightly different?
17:39 [Coke] ~.
17:40 arnsholt Could be. I'll probably have to pester jnthn about it at some point
17:40 arnsholt =)
17:41 dalek snake: 7af2d4d | (Arne Skjærholt)++ | src/Snake/Actions.nqp:
17:41 dalek snake: Simplify our QAST trees a bit.
17:41 dalek snake: review: https://github.com/arnshol​t/snake/commit/7af2d4d29e
17:43 timotimo i'd be interested if there's lessons we can learn from snake to make spesh better
17:43 timotimo like, better in general
17:47 sjohnson joined #perl6
17:47 timotimo damn, at one point i really have to stop obsessing so much about performance %)
17:49 arnsholt I think it's a bit early for that. There's still swathes of Python left to implement
17:49 arnsholt But the whole "Python cannot into declarations" thing is likely to going to be a bottleneck, IMO
17:49 moritz timotimo: don't stop obsessing about preformance, please
17:51 colomon +1
17:54 lizmat joined #perl6
17:55 timotimo hunting performance can become timesome sometimes
17:55 timotimo tiresome*
17:57 lizmat the AmsterdamX meeting has started :-)
17:57 guru joined #perl6
18:01 kjs_ joined #perl6
18:05 kurahaupo_ joined #perl6
18:07 cibs joined #perl6
18:08 lucas__ Should I put "is DEPRECATED" as a method trait or inside the block as a function call?
18:08 lucas__ I'm copying the example from the recent Increase/Decrease change.
18:09 lizmat as a function call
18:10 lizmat subroutine traits don't work in the setting  :-(
18:10 lucas__ lizmat: Thank you!
18:10 lucas__ Also, I don't understand why Range sometimes uses $.excludes-min and $!excludes-min. Should I delegate to which one?
18:10 lucas__ I guess is the private one, right?
18:10 lizmat $.foo is short for self.foo
18:10 lizmat it subclasses
18:11 lizmat $!foo accesses the attribute directly
18:11 lizmat and does not subclass
18:11 lucas__ Oh, so it should be $!foo, right?
18:12 lucas__ I mean... the deprecated methods will delegate to $!foo instead of $.foo
18:13 lizmat generally, yes
18:16 sqirrel__ joined #perl6
18:17 dalek nqp: 247dc76 | TimToady++ | src/vm/ (2 files):
18:17 dalek nqp: lazier longlit initialization
18:17 dalek nqp: review: https://github.com/perl6/nqp/commit/247dc76e99
18:17 lucas__ I came up with this:
18:17 lucas__ method excludes_min() { DEPRECATED('Use excludes-min instead'); $!excludes-min }
18:18 lucas__ I'll put it at the very end of the Range class.
18:18 erkan joined #perl6
18:18 erkan joined #perl6
18:18 lucas__ Do you like me to change something?
18:18 lucas__ Similiar thing for excludes_max
18:20 TimToady jnthn: 247dc76 makes the XXX hack slightly less egregious, but it could still use to be cachified in the tc somehow, I think
18:22 lizmat lucas__: 'excludes-min' is enough
18:22 lizmat the rest of the text is added
18:22 lizmat automagically
18:23 lucas__ Oh, interesting
18:24 dalek rakudo/newio: ec07261 | (Elizabeth Mattijsen)++ | src/core/IO/Handle.pm:
18:24 dalek rakudo/newio: We need to decont PIO as passing it conts it
18:24 dalek rakudo/newio: review: https://github.com/rakudo/rakudo/commit/ec07261508
18:24 jnthn TimToady: I need to get some food and drink inside of me right now, but will take a look at it when I'm back :)
18:26 jnthn Hah, cool...0C! :D
18:26 jnthn bbiab o/
18:26 timotimo now i need some noms
18:28 denis_boyun joined #perl6
18:29 perturbation joined #perl6
18:32 lucas__ One more thing... Does "|<2014.11 2015.11>" unpacks a quoted word list in a function call? Should I add them to the DEPRECATED call?
18:33 anaeem1_ joined #perl6
18:34 timotimo you can do that, yeah
18:34 lucas__ timotimo: Thank you
18:34 lizmat make it 2014.12 2015.12 though
18:35 cognominal joined #perl6
18:35 lizmat they won't get marked as deprecated until the next release
18:35 lucas__ ok
18:36 Akagi201 joined #perl6
18:43 Mso150 joined #perl6
18:44 FROGGS joined #perl6
19:11 eternaleye joined #perl6
19:20 kjs__ joined #perl6
19:29 Sir_Ragnarok joined #perl6
19:30 Alina-malina joined #perl6
19:30 dalek rakudo/newio: 5c66966 | (Elizabeth Mattijsen)++ | src/core/IO.pm:
19:30 dalek rakudo/newio: Introduce SPURT-PATH()
19:30 dalek rakudo/newio: review: https://github.com/rakudo/rakudo/commit/5c669664ba
19:30 dalek rakudo/newio: da34880 | (Elizabeth Mattijsen)++ | src/core/ (2 files):
19:30 dalek rakudo/newio: Use new SPURT-PATH
19:30 dalek rakudo/newio: review: https://github.com/rakudo/rakudo/commit/da34880df6
19:30 dalek rakudo/newio: 63dd732 | (Elizabeth Mattijsen)++ | src/core/ (2 files):
19:30 dalek rakudo/newio: We need PIO's to be Mu when passing
19:30 dalek rakudo/newio:
19:30 dalek rakudo/newio: Otherwise we get a very strange error message, which is a type binding error
19:30 dalek rakudo/newio: gone awry.
19:30 dalek rakudo/newio: review: https://github.com/rakudo/rakudo/commit/63dd7322e5
19:36 dalek rakudo/newio: 55e38be | (Elizabeth Mattijsen)++ | src/core/io_operators.pm:
19:36 dalek rakudo/newio: Fix issue with open(:rw :w :r)
19:36 dalek rakudo/newio: review: https://github.com/rakudo/rakudo/commit/55e38beaa9
19:43 gfldex joined #perl6
19:45 lucas__ A little note on the negative/affirmative names on ranges: "not includes" means "excludes" and "not excludes" means "includes". Maybe "not excludes" sounds like a double negation. After doing the deprecated methods, I saw that it would be easy to do: method includes-min() { not $!excludes-min }
19:45 lucas__ But I'm just thinking... I'm not clear if having both synonyms/antonyms in a language is a good thing.
19:48 masak I can sort of see how 'excludes' was the first one that came to mind when writing the synopsis.
19:49 masak since exclusion corresponds to a '^' at either end.
19:49 timotimo right, because we put an extra character to exclude
19:49 timotimo so "excludes-min?" corresponds to "has an extra character at the beginning?"
19:52 lucas__ yes, it makes sense the relationship between excludes and having a caret (^) on the operator.
19:54 lucas__ I just run in occurrences of !$!excludes-min in the Range code and thought if it would be more easy to think as includes... But this is a minor thing, of course.
19:55 lizmat yeah, we don't want the API to become less understandable for the implementation to become simpler
20:00 timotimo the thing is: accessing $!excludes-min is super fast; calling self.includes-min which calls self.excludes-min and prefix:<!> is problematic because the method call is late-bound
20:03 erkan joined #perl6
20:03 erkan joined #perl6
20:04 dalek nqp: 97bcfe2 | TimToady++ | tools/build/MOAR_REVISION:
20:04 dalek nqp: bump moar
20:04 dalek nqp: review: https://github.com/perl6/nqp/commit/97bcfe2668
20:04 virtualsue joined #perl6
20:05 dalek rakudo/nom: 68d05b4 | TimToady++ | tools/build/NQP_REVISION:
20:05 dalek rakudo/nom: bump nqp
20:05 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/68d05b4304
20:07 FROGGS joined #perl6
20:08 vendethiel Uhm, erh, hard question:
20:08 vendethiel how can we make perl6 tooling "good"? Anything that tinkers with the internal is going to be hard as well to "ide"-ize
20:08 vendethiel (add_method, add_fallback, and especially MACROS)
20:09 timotimo slangs
20:09 timotimo yeah, pretty much the only way to do it properly is use the actual implementation. which means running code that's potentially untrusted
20:10 eternaleye joined #perl6
20:11 [Coke] don't need to run it in the same executable that the IDE is running in. could exec a new copy with a restricted setting.
20:12 dalek rakudo/nom: e1aa077 | (Elizabeth Mattijsen)++ | / (5 files):
20:12 dalek rakudo/nom: Add role PIO and class IO::Pipe placeholders
20:12 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/e1aa077b45
20:13 dalek rakudo/newio: 68d05b4 | TimToady++ | tools/build/NQP_REVISION:
20:13 dalek rakudo/newio: bump nqp
20:13 dalek rakudo/newio: review: https://github.com/rakudo/rakudo/commit/68d05b4304
20:13 dalek rakudo/newio: e1aa077 | (Elizabeth Mattijsen)++ | / (5 files):
20:13 dalek rakudo/newio: Add role PIO and class IO::Pipe placeholders
20:13 dalek rakudo/newio: review: https://github.com/rakudo/rakudo/commit/e1aa077b45
20:13 dalek rakudo/newio: c775050 | (Elizabeth Mattijsen)++ | / (6 files):
20:13 dalek rakudo/newio: Merge branch 'nom' into newio
20:13 dalek rakudo/newio: review: https://github.com/rakudo/rakudo/commit/c7750507b4
20:13 vendethiel [Coke]: definitely; but still, that sounds dangerous
20:14 timotimo the restricted setting is a complete and utter joke
20:15 lizmat ssshhhh :-)
20:15 timotimo the parser needs to be more restrictive and prohibit, for example, nqp and pir ops
20:15 sqirrel__ joined #perl6
20:16 nine To read Perl, you have to run Perl. That's always been that way.
20:17 nine How can I access the class' name during role setup?
20:17 timotimo you mean at compose time?
20:17 nine yes
20:17 timotimo hm, you're looking for something to call where exactly?
20:18 nine I'm trying to create a Python class for every P6 class that consumes the PythonParent role.
20:18 nine And for that I need the name of the class the PythonParent role is composed into
20:20 FROGGS what about $*PACKAGE?
20:20 FROGGS I've seen that in the grammar/actions at least
20:20 lizmat AmsterdamX shutting down&
20:21 FROGGS and the name should be available as $*PACKAGE.HOW.name($*PACKAGE)
20:22 nine FROGGS++
20:22 nine The answer was close: ::?CLASS.HOW.name(::?CLASS);
20:22 FROGGS m: trait_mod:<foo>(Any, :$foo!) { say $*PACKAGE.HOW.name($*PACKAGE) }; class Bar is foo { }
20:22 camelia rakudo-moar 316f99: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/uBy0gsXhli�Variable '$foo' is not declared�at /tmp/uBy0gsXhli:1�------> [32mtrait_mod:<foo>(Any, :$foo[33m�[31m!) { say $*PACKAGE.HOW.name($*PACKAGE) }[0m�»
20:22 timotimo that sounds like you could also write ::?CLASS.^name
20:22 masak was gonna say
20:22 FROGGS m: sub trait_mod:<foo>(Any, :$foo!) { say $*PACKAGE.HOW.name($*PACKAGE) }; class Bar is foo { }
20:22 camelia rakudo-moar 316f99: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/rxA8OOmWP7�'Bar' cannot inherit from 'foo' because it is unknown.�at /tmp/rxA8OOmWP7:1�------> �»
20:23 timotimo FROGGS: not $?PACKAGE?
20:23 FROGGS m: sub trait_mod:<is>(Any, :$foo!) { say $*PACKAGE.HOW.name($*PACKAGE) }; class Bar is foo { }
20:23 camelia rakudo-moar 316f99: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/oEkk8sZ1mR�Method 'item' not found for invocant of class 'Bar'�at /tmp/oEkk8sZ1mR:1�------> �»
20:23 FROGGS m: sub trait_mod:<is>(Mu, :$foo!) { say $*PACKAGE.HOW.name($*PACKAGE) }; class Bar is foo { }
20:23 nine timotimo: yes! Indeed. And I was so close with trying ::?CLASS.name
20:23 camelia rakudo-moar 316f99: OUTPUT«Bar␤»
20:23 timotimo :)
20:23 timotimo well, with ::?CLASS you get the type object of the class your code is inside of
20:23 FROGGS m: sub trait_mod:<is>(Mu, :$foo!) { say ::?CLASS.^name }; class Bar is foo { }
20:23 camelia rakudo-moar 316f99: OUTPUT«===SORRY!===␤Could not locate compile-time value for symbol ::?CLASS␤»
20:27 raydiak good afternoon #perl6
20:29 timotimo hello mister diak
20:29 FROGGS hi raydiak
20:29 masak oh hai diak
20:30 raydiak \o timotimo, FROGGS, masak
20:31 raydiak m: role Foo { has $.class = $?CLASS }; class Bar does Foo { }; my $o = Bar.new; say $o.perl; # another valid solution?
20:31 camelia rakudo-moar 316f99: OUTPUT«Bar.new(class => Bar)␤»
20:33 brrt joined #perl6
20:35 brrt \o
20:35 raydiak hi brrt
20:36 masak o/
20:37 masak m: class Bar { has $.class = $?CLASS }; say Bar.new.perl # raydiak: don't even need the role for that! :)
20:37 camelia rakudo-moar 68d05b: OUTPUT«Bar.new(class => Bar)␤»
20:40 raydiak haha masak :)
20:50 moritz feather successor update: I have a domain name (p6c.org), an IPv4 net (213.95.82.48/28) an IPv6 net (2001:780:101:ff00::/64
20:50 moritz )
20:50 moritz all I need is the hardware!
20:52 moritz (it's ordered, just not yet delivered)
20:54 jnthn moritz: Is the order confirmed now? :)
20:54 moritz jnthn: yes
20:55 jnthn \o/
20:57 nine That's a strange one: Calculated index (-1) is negative, but Array allows only 0-based indexing in method BUILDALL at src/gen/m-CORE.setting:1025
21:00 japhb moritz++
21:02 anaeem1_ joined #perl6
21:08 erkan joined #perl6
21:11 dalek roast: a5859e0 | usev6++ | S02-types/array.t:
21:11 dalek roast: Adjust tests for negative subscripts
21:11 dalek roast: and add reference to RT #111924
21:11 dalek roast: review: https://github.com/perl6/roast/commit/a5859e0987
21:12 synopsebot Link: https://rt.perl.org/rt3//Publ​ic/Bug/Display.html?id=111924
21:13 bartolin m: my @a; say @a[*-1]    # nine: that's one way to get that error message
21:13 camelia rakudo-moar 68d05b: OUTPUT«Calculated index (-1) is negative, but Array allows only 0-based indexing␤  in method gist at src/gen/m-CORE.setting:13776␤  in sub say at src/gen/m-CORE.setting:16510␤  in block <unit> at /tmp/A8DCAWhDiQ:1␤␤»
21:14 bartolin m: my @a; my $minus_one = -1; say @a[ $minus_one ]   # that's another way
21:14 camelia rakudo-moar 68d05b: OUTPUT«Calculated index (-1) is negative, but Array allows only 0-based indexing␤  in method gist at src/gen/m-CORE.setting:13776␤  in sub say at src/gen/m-CORE.setting:16510␤  in block <unit> at /tmp/sYEEBTvU8B:1␤␤»
21:14 dalek nqp: ca142ce | TimToady++ | src/QRegex/NFA.nqp:
21:14 dalek nqp: comment out seldom-used debugging
21:14 dalek nqp: review: https://github.com/perl6/nqp/commit/ca142cedc4
21:20 pmurias joined #perl6
21:21 pmurias arnsholt: what do you mean by "Python cannot into declarations"?
21:24 pmurias arnsholt: issue #2 on github?
21:24 dalek roast: 4437bd2 | usev6++ | S02-types/array.t:
21:24 dalek roast: Fix descriptions of tests for negative subscripts
21:24 dalek roast: (according to https://github.com/rakudo/rakudo/commit/10aa8bf41c those weren't runtime errors)
21:24 dalek roast: review: https://github.com/perl6/roast/commit/4437bd2e62
21:25 bartolin (sorry for the noise; I hope those tests aren't worse now than before I started messing with them :-)
21:31 TimToady looks pretty okay to me
21:33 dalek specs: 96eb086 | raydiak++ | S12-objects.pod:
21:33 dalek specs: Remove stray bracket
21:33 dalek specs: review: https://github.com/perl6/specs/commit/96eb08638d
21:43 raydiak in terms of a public api, would it be better to use string params restricted by subsets, or to export constants/enumerations?
21:44 moritz enums, IMHO
21:44 raydiak why?
21:44 moritz because they are introspectable
21:45 jnthn And more cheaply checkable
21:45 raydiak good points
21:45 moritz and once we have coercion types, adding coercions from strings to enum values will be super easy
21:45 masak no blog post tonight :/ -- hopefully tomorrow.
21:45 masak 'night, #perl6
21:46 raydiak g'night masak o/
21:47 moritz \o *
21:47 raydiak \o moritz
21:55 kurahaupo joined #perl6
21:55 raydiak what about naming? worry about cluttering the user's namespace...should you make them type something like (math::symbolic speculation) MS_OP_NODE or MS_VAR_NODE like C, even if it's more ugly and verbose than what you could get away with using strings that don't clobber each other?
21:56 brrt moritz: what are coercion types?
21:56 raydiak or call it OpNode and VarNode and let the user worry about the rare conflict, and easier to type and look at the rest of the time?
21:57 kurahaupo joined #perl6
22:02 raydiak brrt: I think he meant this: http://perlcabal.org/syn/S02.h​tml#Coercive_type_declarations
22:02 kjs_ joined #perl6
22:03 virtualsue joined #perl6
22:12 gtodd joined #perl6
22:12 brrt i see.. that is an awesome feature
22:15 dalek roast: 11a3b4e | usev6++ | S32-num/rounders.t:
22:15 dalek roast: Factor out test for MoarVM Issue 157
22:15 dalek roast: (since JVM rounds a bit more precise than Moar and Parrot
22:15 dalek roast: we hade test failures for JVM)
22:15 dalek roast: review: https://github.com/perl6/roast/commit/11a3b4e5bf
22:17 pmurias raydiak: in Perl 6? using a prefix when namespaces are available seems a bad thing
22:18 raydiak pmurias: so you vote for no exporting at all and make them type Math::Symbolic before everything?
22:20 pmurias I vote for exporting them when there is no conflict and using a namespace when there is one
22:20 raydiak pmurias: ah, or you meant don't worry so much about the naming, because we'll have far fewer conflicts than C?
22:21 raydiak so just let them explicitly disable the exports and call them in the package when they need to?
22:21 raydiak then name them the shorter prettier versions?
22:21 pmurias yes
22:22 raydiak pmurias++ thank you, I no longer feel like I'm chasing my tail in circles
22:24 bartolin good night, #perl6
22:25 raydiak \o bartolin
22:26 telex joined #perl6
22:28 anaeem1_ joined #perl6
22:33 Alula joined #perl6
22:36 Alula joined #perl6
22:38 arnsholt pmurias: Basically yeah (sorry for the weird language. Too much /r/polandball =)
22:41 brrt left #perl6
22:48 Mouq joined #perl6
23:01 denis_boyun_ joined #perl6
23:02 bjz joined #perl6
23:08 davido___ joined #perl6
23:13 kjs_ joined #perl6
23:24 bjz_ joined #perl6
23:46 timotimo raydiak: if you have a good idea for enums, i'm all ears. in my SDL2::Raw binding i have just named most values without the SDL_TYPE_ prefix and ended up with duplicates :\
23:52 raydiak well, the basic problem seems to be that constant symbols represent a value, and those values can conflict...while if you use string the problem doesn't exist, because the identifier itself *is* the value that you check against, so nothing to conflict
23:53 raydiak idk where I'm going, wandering blindly down "what if" alleys
23:54 timotimo i think i mean something else than you
23:54 timotimo there's an SDL_FOOBAR_ASDF and an SDL_BARBAZ_ASDF
23:55 raydiak oh right, sorry, you have a different form of naming conflict :)

| Channels | #perl6 index | Today | | Search | Google Search | Plain-Text | summary

Perl 6 | Reference Documentation | Rakudo