»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg camelia perl6: ... | irclog: irc.perl6.org | UTF-8 is our friend!
Set by sorear on 25 June 2013.
00:00 ssqq joined
Guest54457 yes, he'll have to answer 00:04
00:04 Guest54457 is now known as timotimo
FROGGS woolfy / timotimo: I guess that "this week" refers to the week when the APW happened 00:09
gnight 00:10
00:10 FROGGS left
timotimo oh, hm 00:10
did we have any good weeks since? :P
00:13 gfldex left 00:16 raiph joined 00:17 raiph left 00:28 KCL_ left
TimToady what the heck is t/spec/S02-magicals/78258.t? 00:36
00:36 ajr_ left
TimToady nevermind, was looking in the wrong subdir for UsedEnv 00:37
though I'd still like to understand the number 00:38
Mouq TimToady: rt.perl.org/Public/Bug/Display.html?id=78258 ? 00:41
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:42
00:43 dayangkun joined
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
this is when the for loop has 1024_000 iterations
and that's exactly how often both ofs are being called 00:49
m: say 191.68 / 1024_000
camelia rakudo-moar ac27d2: OUTPUT«0.00018719␤»
00:49 dayangkun left
timotimo that's not really terribly much time per call 00:50
m: say "each call to push takes 857.39 / 1024_000 miliseconds"
camelia rakudo-moar ac27d2: OUTPUT«each call to push takes 857.39 / 1024_000 miliseconds␤»
timotimo m: say "each call to push takes { 857.39 / 1024_000 } miliseconds"
camelia rakudo-moar ac27d2: OUTPUT«each call to push takes 0.0008372949 miliseconds␤»
timotimo (that's exclusive time) 00:51
00:52 bjz_ left
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:58 vti left
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.␤»
timotimo hah, oops :D
01:00 adu joined
timotimo well, doesn't seem *that* worth it 01:02
01:04 KCL_ joined
timotimo um ... wat 01:05
% time seconds usecs/call calls errors syscall
93.64 0.032699 0 126649 118380 write
where does that ridiculous number of errors come from?
ssqq How to set 'm: say' only see by me. 01:12
timotimo you can query camelia
01:21 ssqq left, ssqq joined 01:24 ssqq_ joined 01:25 chenryn joined 01:27 ssqq left 01:29 ssqq__ joined 01:30 chenryn left
dalek p: 0874b80 | TimToady++ | src/vm/parrot/ (3 files):
longlit5 for colorful birds
01:32
p: 79d85c1 | TimToady++ | src/QRegex/NFA.nqp:
enable birdy longlits
01:33 ssqq_ left
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
the profiler takes a bit of time to output its dump 01:34
especially since it records a complete call stack ... all the way down
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
but it produces bogus results :(
if you want to look at that code, i'd much appreciate it
github.com/MoarVM/MoarVM/commits/f...raph_depth - find the code here 01:36
01:36 ssqq_ joined 01:37 adu left
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
check the size of the html file
raydiak heh 58 megs 01:38
timotimo ouch %)
your browser will likely be eaten by an oom
01:39 ssqq__ left
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:39
or, I'm assuming...we'll see if chrome opens it 01:40
ew C 01:41
timotimo it'll open it just fine, but it won't show any data
then it'll say "it's dead, jim"
raydiak last time I gave it enough time, it actually loaded for a simpel Pray run 01:42
01:42 ssqq__ joined
timotimo impressive :) 01:43
ssqq__ :camelia :m say 'helo'
raydiak for a $180 USD pawn shop laptop, yes it is :)
hooray it did load...
01:44 raiph joined
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'
camelia rakudo-moar ac27d2: OUTPUT«helo␤»
01:46 ssqq_ left
raydiak sees a 60-million-character string of JSON being parsed, and no longer wonders what is so slow about the profiler 01:52
colomon is that the profiler input or output 01:53
?
raydiak output
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:54
01:54 ssqq__ left
raydiak I mean, vim takes several seconds just to seek to the beginning or end of this line :) 01:55
02:01 peteretep left 02:02 adu joined
timotimo yeah, browsers are not terribly fond of such big json documents, i fear 02:05
raydiak: what interface suggestions do you mean? for the profiler?
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
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 :)
timotimo moves to a different place 02:08
02:09 jakesyl joined
jakesyl Is there a perl 6 tutorial somewhere 02:09
timotimo jakesyl: vendethiel recently gave this presentation: slides.com/namidoc/learn#/ 02:10
well, a lightning talk really
it has some good pointers
raydiak several resources listed here: perl6.org/documentation/ the learn perl 6 in y minutes one is one of the most recent afaik 02:13
02:14 JimmyZ joined 02:17 perltricks joined
raydiak removing the JSON.parse did work, but didn't speed anything up noticably 02:20
need to profile the profiler :) 02:21
02:23 timotimo left
japhb suddenly has Men At Work running through his head 02:24
02:24 timotimo joined 02:26 chenryn joined
xiaomiao cc1: some warnings being treated as errors 02:28
... what joker added that to nqp makefile(s) ? :D
02:31 chenryn left 02:38 raiph left 02:47 Mouq left 02:48 chenryn joined
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
i was too lazy to do that ...
anyway, way past bedtime 02:58
o/
japhb o/
raydiak \o
timotimo o/- ← "dropping the mic" emoticon?
raydiak epic :)
03:01 perturbation joined
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?
actually we do; they are called "well-thought-out practices"
github.com/moritz/perl6-wtop - there is not much yet
maybe when i wake up there'll be more! :P
\o
raydiak cool, thanks \o 03:03
there are just so many choices to be made when trying to spec an api in p6 03:05
03:19 adu left
xiaomiao hrm. I can't quite figure out how nqp generates its Makefile 03:20
too many indirections :(
03:22 noganex joined 03:23 raiph joined 03:25 noganex_ left
tony-o timotimo: submitted a pr containing management speak for the readme 03:26
03:35 tinyblak joined
raydiak wow I'm sold, I better add more scalable synergy enterprise features to my resume :) 03:38
tony-o we could use people like you to get stuff done 03:47
:p
03:48 perturbation left 03:50 cognominal left 03:53 kurahaupo left 04:09 rmgk is now known as Guest32255, rmgk_ joined, Guest32255 left, rmgk_ is now known as rmgk 04:10 tinyblak left 04:12 anaeem1 joined 04:21 kaleem joined 04:26 raiph left 04:43 PerlJam joined 04:46 perltricks left 04:47 cognominal joined 04:49 grondilu left 05:03 kaare_ joined 05:06 chenryn left 05:10 xinming_ left 05:11 xinming joined
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
(gcc 4.9.2 doesn't appreciate them at all, so I just sed them away)
moritz xiaomiao: they are passed on from parrot's/moarvm's configure 05:20
xiaomiao ouchies. 05:21
05:21 kaleem left, davido___ joined 05:24 davido__ left 05:30 chenryn joined
ugexe ive been getting a thread error on moar/jvm (but not parrot) during panda's rebootstrap while installing JSON::Tiny 05:32
starting today i believe
so im guessing it has to do with a recent commit 05:34
05:44 raiph joined 05:52 grondilu joined
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
en.lichess.org/LSEBATRu/black
05:53 kaare_ left
grondilu oopps 05:56
TimToady
.oO(#chess6)
05:57
grondilu wrong chann again, sorry guys
05:57 JimmyZ left
grondilu I need to either pay attention or find a way to have irssi highlight different channels with different colors or something. 05:58
TimToady either that, or just admit you're human like the rest of us :) 06:01
unless, of course, you're not... :) 06:02
grondilu sometimes I wonder :-)
since I'm here, how is the great list refactor going? Is it coming soon? 06:03
06:05 jimmy_ joined 06:06 jimmy_ is now known as JimmyZ
dalek ast: 06a85e4 | usev6++ | S03-operators/arith.t:
Fix exception and error message
06:09
06:21 kaare_ joined 06:25 cognominal left, cognominal joined
ugexe rerunning the tests they are now passing. using the same commit id as what failed before (same with JSON::Tiny) 06:27
TimToady grondilu: pmichaud++ said he was gonna have a chance to work on it a lot this week, looked like 06:28
06:28 dayangkun joined, dayangkun left
grondilu ok, great 06:36
06:37 kaleem joined
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 :)
ugexe its during JSON::Tiny install from panda 06:38
raydiak it's the same heisenbug I kept running into and then couldn't reproduce when I had people's attention 06:39
removed all the prints from my code and the bug didn't come back due to later changes I had made, I guess
ugexe on the jvm JSON::Tiny gets installed, but then during panda install Panda::Tester gets a IllegalThreadStateException during compiling Tester.pm 06:41
was yours different on different vms?
from what i can tell panda doesnt have this problem 06:42
s/panda/parrot/
raydiak was only developing on a very recent moar
ugexe yeah moar does it too, just at an earlier stage
raydiak for me it was in my own code though
06:43 dayangkun joined
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
06:43 dayangkun left, ptc_p6 joined
ugexe gist.github.com/ugexe/d103c8eee285...-txt-L2863 06:44
hmm im good at spamming print statements
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
06:46 telex left
ugexe its the latest 06:46
raydiak hm I'll rakudobrew and see if it breaks here, if that helps 06:47
ugexe travis-ci.org/ugexe/P6TCI/builds/42009558
i can refresh that test and it seems to fail 50% of the time
you can see the slightly different error from jvm as well, and how parrot passes
06:48 telex joined
ugexe you can compare the rakudo/json::tiny/etc commit ids to the ones here where they all passed travis-ci.org/ugexe/P6TCI/builds/42044969 06:49
they are all the same
06:52 KCL_ left 06:54 raiph left
raydiak json::tiny just built successfully here, I'll try it a few more times when everything else is done 06:54
06:56 KCL_ joined 06:59 [Sno] left
raydiak failed to fail 5 times in a row 06:59
ugexe maybe its rakudo/moar/jvm then 07:05
not sure what could be different between building the same commit though
i cant get it to happen outside the travis machines either
raydiak huh...what is this travis thing anyway? 07:06
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
ugexe those links are to the output of those tests 07:08
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
raydiak "panda-fetch: command not found" didn't look like my error :) 07:10
ugexe thats not the error
panda-fetch wasnt installed
because of the thread error
travis-ci.org/ugexe/P6TCI/jobs/42009559#L910 07:11
:/ that doesnt unfold the line either it looks like 07:12
raydiak yeah no I got to it eventually, was just making fun of my initial confusion 07:14
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:16
ugexe yeah, but rakudobrew build-panda doesnt let us pass any flags 07:17
github.com/ugexe/P6TCI/blob/master/.travis.yml
i guess not manually per se
raydiak yeah you'd have to clone json::tiny and manually run the compile command
ugexe you can manually put them all in a config and run them
raydiak that'd work 07:18
ugexe whats interesting is it fails during compile for moar but not jvm 07:21
but using it with the jvm it errors at runtime
07:22 nebuchadnezzar joined
ugexe and parrot has no threads so presumable thats why this problem hasnt popped up there yet 07:22
raydiak the error for jvm looks like when it's building panda, after it's done with json::tiny 07:25
07:27 Mouq joined
raydiak jvm dying here: github.com/tadzik/panda/blob/maste...er.pm#L136 07:28
07:33 chenryn left
raydiak should you be able to assume that a pipe to a child process can be closed after 'for .lines' finishes? 07:33
07:34 chenryn joined 07:36 gfldex joined
dalek p: 6506e8c | TimToady++ | src/vm/parrot/ops/nqp.ops:
act needs to fit into 32-bits signed (for jvm)
07:37
p: 097d396 | TimToady++ | src/vm/jvm/runtime/org/perl6/nqp/ (2 files):
longlit5 for the vm of indonesian beverages
p: c696224 | TimToady++ | src/QRegex/NFA.nqp:
enable longlit for jvm; fit act sign into 32 bits
p: dfd3975 | TimToady++ | tools/build/MOAR_REVISION:
require moar that masks smaller fate in act
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:41
it wouldn't boot from stage0 when I tried to do the obvious thing in the ThreadContext 07:42
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:46
TimToady other than that, and bumping the nqp version in rakudo, I think I'm finally done with longest literals 07:47
raydiak ugexe: actually, never mind 07:48
07:48 FROGGS joined 07:50 vti joined
ugexe ive been retesting a build like that for the last 30 minutes with no failures 07:52
raydiak ah
07:52 chenryn left 07:53 chenryn joined
ugexe github.com/ugexe/P6TCI/blob/306d60...travis.yml 07:55
thats how you can do build-panda and then a manual panda install
er you want compiled commands. yeah you can do that too
raydiak ah, for the jvm failure...yeah meant for the json::tiny moarvm failure 07:56
wonder if a --ll-exception flag for panda to pass through to builds and tests would be worthwhile 07:58
07:58 brrt joined
ugexe github.com/tadzik/panda/pull/114 07:59
raydiak heh I'm almost caught up to the present 08:00
JimmyZ TimToady++ # hard work on longlit! 08:02
08:04 kjs_ joined
dalek ecs: f22ee3e | TimToady++ | S05-regex.pod:
Describe some details of tiebreaker #2
08:05
08:06 chenryn left 08:08 gfldex left
ugexe finally got it to error with a manual build after 08:08
travis-ci.org/ugexe/P6TCI/jobs/42044637#L911 08:10
at line #977 is the manual panda install where it passes the test #911 failed
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: gist.github.com/vti/c11a9c1e63332de1ab59 08:11
current it prints 1 and 1
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
moritz: so what is the alternative? first match and then remove?
raydiak there's also #123005
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...?id=123005
moritz vti: yes 08:13
vti: it sucks, but on the upside, $0.from and $1.to make it easy to find the indexes to pass to substr
FROGGS morning #perl6
vti moritz: ok, will do that, thanks
moritz or maybe 08:14
vti raydiak: then i ++ that bug :)
moritz m: $_ = 'abc'; my $match; s/b./{ $match = $/; '' }/; .say; say ~$match;
camelia rakudo-moar ac27d2: OUTPUT«a␤bc␤»
moritz vti: ^^ that seems to be a viable workaround too
dalek kudo/nom: 316f993 | TimToady++ | tools/build/NQP_REVISION:
bump nqp rev to enable longlit for parrot and jvm
08:15
raydiak good morning FROGGS o/
Mouq vti: You might try adding {} at the end of the regexes
vti Mouq: yep, it works 08:16
Mouq like s/^ (Foo)\: \h?{}//
vti Mouq++
moritz: that's the easiest ^^ :)
moritz wtf? 08:17
Mouq: do you understand why that works?
08:17 chenryn joined 08:18 [Sno] joined
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:19
Mouq moritz: Nope. When I found that trick out quite some time ago, someone (jnthn?) mumbled something about $/ not being vivified... 08:20
08:21 Mso150 joined
TimToady m: 'abcdefghi' ~~ / \w\w\w\w\w { say "got cclasses" } | abcde { say "got literal" } / 08:25
camelia rakudo-moar ac27d2: OUTPUT«got literal␤»
TimToady grondilu: it's about picking the more specific pattern when LTM ties
tadzik omg omg, did we forget about advent calendar?
moritz tadzik: nope, PerlJam++ already started organizing
tadzik *relief* :)
moritz tadzik: quick, sign up for a slot!
TimToady grondilu: also see all my recent commits :) 08:26
tadzik moritz: quick, come up with a subject! :P
TimToady subject-oriented programming
moritz tadzik: ALL UR GAMING ARE BELONG OT US 08:27
*TO
08:28 rindolf joined 08:31 darutoko joined
tadzik :) alrighty then 08:34
moritz tadzik: also, a summary of panda changes from this year would be very welcome 08:41
tadzik: and rakudobrew, if it hasn't been talked about yet
seems not 08:42
tadzik wow, is that so
indeed!
I'll sign up for 2nd
dalek : daa7880 | tadzik++ | misc/perl6advent-2014/schedule:
Sign up for 2nd
08:43
Mouq p6: say i**2 08:44
camelia rakudo-{parrot,moar} ac27d2: OUTPUT«-1+1.22464679914735e-16i␤»
dalek kudo/newio: 316f993 | TimToady++ | tools/build/NQP_REVISION:
bump nqp rev to enable longlit for parrot and jvm
08:46
kudo/newio: b3ef1ea | (Elizabeth Mattijsen)++ | tools/build/NQP_REVISION:
Merge branch 'nom' into newio
lizmat and a good *, #perl6!
raydiak \o lizmat
08:51 virtualsue joined 08:53 kjs_ left 08:56 molaf_ joined 08:58 molaf left
raydiak ugexe: this didn't succeed in breaking it, unfortunately, but is how I was trying to reproduce the moar/json::tiny failure: github.com/raydiak/json/blob/master/.travis.yml 09:01
09:01 Ven joined
Ven o/, #perl6. 09:01
raydiak \o Ven 09:02
brrt \o Ven, lizmat
09:02 |Tux| left 09:11 TuxCM joined 09:18 virtualsue left 09:19 virtualsue joined 09:22 bjz joined 09:27 kjs_ joined
Guest92293 o/ \o o/, #perl6 09:33
09:33 Guest92293 is now known as masak
masak ok, let's try this again: 09:34
today, I will blog.
later today, though. first, $work.
Ven
.oO( $BLOG! $BLOG! $BLOG! )
09:39
masak ooh, and I know what to blog about. :) 09:44
09:45 rurban joined
Ven moar power to the $BLOG :-) 09:46
09:46 dakkar joined 10:03 kjs_ left 10:09 pecastro joined
JimmyZ moar jit power ;) 10:10
10:14 denis_boyun joined 10:20 zakharyas joined 10:24 ssqq joined 10:28 ssqq left 10:29 JimmyZ left 10:30 kurahaupo joined
masak today's discussion topic: is metadata just data with delusions of grandeur? :) 10:38
seriously, I've seen domains that had loads of metadata, but no actual data. 10:39
brrt hmmm good question
when do we call data metadata
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
huf after you've said hello
masak tadzik: so... most data? 10:41
10:41 anaeem1 left
moritz masak: I find meta data just as scary as data 10:41
tadzik probably :)
huf never met a data i didnt like
moritz masak: "so you connected to pornhub.com? don't worry, we don't know the contents of your request"
masak my point is that it doesn't take much for data to be about data. 10:42
heck, every foreign key ever is metadata.
huf yeah, but code is data too
brrt hmmm
masak code is operating on data, so it's metadata.
huf so these terms are clearly very relative to the current topic
brrt i'm not sure i agree whether a foreign key is metadata
its part of the shape of the data
10:42 EXIXT is now known as exixt
tadzik what if it's operating on code? That's so meta 10:42
brrt a pointer isn't metadata
huf "metadata" is like "higher"
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
masak huf: technically "beyond" or "beside".
huf masak: yeah, but same applies to those too
10:44 Mouq left
brrt hmm... 10:44
no
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.
huf what's the difference between a crocodile?
raydiak there wasn't already doubt? :)
huf it's longer than green.
10:45 Mouq joined
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".
Ven that's an implementation detail :-)
brrt i think those well-defined domains are more common than you might think
e.g. in C? struct values are data, struct type is metadata 10:47
in SQL, metadata is the schema, data are the rows
masak brrt: never heard of that distinction.
10:47 sqirrel__ joined
brrt well, i'd put the difference between structure and value 10:48
structure is always meta
much like the distinction between species have little to do with the individuals, but with the properties-of-all-individuals
masak brrt: seems to me you're simply talking about types/schemas vs values. not the typical definition of "metadata".
rurban metadata cannot lie, content usually does. that's the reason
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?
brrt like moritz'es example, the fact that you connected to pornhub or any other site is part of the exchange
it's data
Ven has never heard of "metadata" outside of programming contexts
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".
rurban well, you can fool metadata also, but that's much harder
masak it's the modern equivalent of "the camera never lies"
rurban ipspoofing, mac spoofing, arp cache and so on
masak ah yes, *apart* from those ways.
Ven if you accept there's "metadata", then there has to be a tower of those. 10:51
DO YOU WANT A MULTIVERSE?
because that's how you get a multiverse...
rurban or morphing (cast, nci reinterpretation)
masak .oO( ...he shouted, panicked, in all-caps )
brrt i don't want a multiverse. i'd have no idea what would give energy to power all multiverses 10:52
on the other hand
dark energy
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".
brrt hmmm
but that implies that there is potentially a domain on which that data is necessary 10:55
so that would fit the comment definition, as e.g. pod comments are input for another tool (perldoc)
and anyway, that definition still excludes mass-scale spying data :-) 10:56
masak yes, "there is potentially a domain" is exactly right. that is, the view on metadata is *domain-dependent*. 10:58
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 :-)
Mouq e.g., file systems 11:00
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.
brrt hmmmmm
masak brrt: don't know about "no meaning". but it shouldn't be primary/necessary.
brrt ok, i think i can agree on that 11:02
wrt to mass surveillance 'metadata', i really do think it is weasly to call e.g. domain names 'metadata'
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.
Ven
.oO( I see meta-meta-data )
brrt what about email recipient address is data
masak arguably, yes. 11:04
and I can agree about the weasliness.
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:08
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.
Ven: I see it more as annotating existing data, regardless of structure.
what Mouq/OED said.
Ven masak: I'm just giving an example of a tower 11:10
brrt hmmm..... i'm not sure that structure is not metadata
Mouq Data about structure is arguably metadata about the representation of the data
Ven :-) 11:11
Mouq Rather than the data per se
brrt aye
masak I don't think that's how it's normally used, though.
brrt how do you see it normally being used?
masak and it contravenes my intuition that the data would still be OK/valid/fine if the metadata weren't there.
in a sense, I see metadata as "extra", not necessary/vital for the data. 11:12
brrt hmmm....
Ven masak: it's still ok/valid/fine if the metadata isn't there ;-)
brrt fair point
Ven that's the basic idea of dynamic typing :P
masak Ven: that felt like a frivolous point at first, but I think it's actually a good one.
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
brrt so maybe it's not really metadata but metacode
masak structure is rules about data access.
Mouq ^^ that
Ven masak: "dynamic typing" should be replaced with "weak typing".
masak not necessarily code.
Ven because dynamic typing can still be based on the idea of "having a structure"
that's... still a frivolous point to me, though. 11:14
brrt difference between rules and code is a weak one
Ven we should abolish the difference :-)
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))␤»
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 Mso150 left
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␤»
Ven I might be in love :)
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:18 kaleem left
brrt unifications are dangereous operations :-) 11:19
Ven you misspelled "awesum" :)
11:20 kjs_ joined
brrt afk 11:29
11:29 brrt left 11:33 kjs_ left 11:47 abraxxa left 11:48 abraxxa joined 11:55 chenryn left 12:05 rurban left 12:08 abraxxa1 joined 12:09 abraxxa left 12:10 abraxxa1 left 12:12 Ven left 12:20 rurban joined 12:25 KCL joined 12:28 KCL_ left 12:31 erkan joined 12:39 kaleem joined 12:46 lue left, sqirrel__ left 12:52 kaleem left 12:53 timotimo left, timo joined, timo is now known as timotimo
timotimo i should have nick colors now, yay 12:54
dalek ake: 753db10 | (Arne Skjærholt)++ | src/Snake/ (2 files):
First quick implementation of currying invocants into methods.
12:59
12:59 lue joined
timotimo hmm. did i mention arnsholts work on snake? 13:00
i kind of fear i didn't :o
arnsholt Mentioned in what? 13:02
timotimo my weekly post yesterday 13:03
arnsholt Aha. 'S ok =)
timotimo :S
arnsholt There's always next week =)
timotimo sometimes there's only "the week after next week" 13:05
arnsholt Or that 13:06
I'll just have to remember to do some work on snake before the next weekly summary =D
13:07 eternaleye left
timotimo OK :) 13:07
i can live with that, if you can live with that ;)
13:08 eternaleye joined
arnsholt It's still an on-again off-again project for me, so no publicity isn't a problem 13:08
I'll just keep tinkering
rurban github down for a moment... 13:10
nope, looks like the us routing is slow 13:13
13:14 kurahaupo left 13:18 exixt is now known as EXIXT 13:19 sqirrel__ joined
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
13:26 EXIXT is now known as exixt
hoelzro (if, for example, main.pl uses both A and B) 13:26
13:27 sven_123 joined
sven_123 hi - what happened to planet6.perl.org? 13:29
13:33 Akagi201 joined
rurban Please don't use B; this already exists in perl5 13:34
hoelzro rurban: it's just an example module name 13:35
13:38 ptc_p6 left 13:41 rurban left 13:43 guru joined 13:44 guru is now known as Guest76604, Guest76604 is now known as ajr_ 13:49 kjs_ joined 13:53 ptc_p6 joined
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
confusion?
what if it's a port of the original module?
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.
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
Ugator so CPAN will stay p5 for longterm? and p6 modules will be a completely new "world" this might cause confusion 14:01
14:02 sqirrel__ left
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:03
masak Ugator: there has been concrete progress on making Perl 6 modules available on CPAN, AFAIK. 14:05
14:05 rurban joined
masak hoelzro: no, package-level things are 'our'-scoped by default. 14:06
hoelzro ok, thanks for the clarification masak 14:07
hoelzro is trying to figure out how package ABC {} is installed from a Moar dump
Ugator masak: what is done in 1to1 ports in regard to naming?
timotimo what is B::? 14:08
masak timotimo: metacpan.org/pod/B
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:09 bjz left
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:10
14:11 bjz joined 14:13 kaare_ left
hoelzro any thoughts on my tale of two compunits? 14:18
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
but I'd bet on you figuring it out first =)
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:20
hoelzro isn't that the one in ModuleLoader.nqp? 14:21
or a different one?
I noticed that sometimes ABC.WHERE is the same address across compunits, and sometimes it's different 14:22
that confuses me
14:23 fhelmberger joined 14:24 cognominal left 14:44 zakharyas left 14:47 kaleem joined
lizmat commute to AmsterdamX & 14:48
14:48 lizmat left 14:53 KCL left 15:01 kaleem left 15:05 ajr_ left, guru joined, guru is now known as Guest96467 15:06 Guest96467 is now known as ajr_ 15:08 eternaleye left, pmurias joined
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.
pmurias masak: like if we had a Perl 6 web framework called DBI ;)
15:10 eternaleye joined
masak I agree that would be terribly confusing. also unlikely. 15:10
Ven that'd probably mean we picked very wrong names at some point :) 15:11
.oO( guess what the "bacon.js" library is for?? )
pmurias there is a also a question if the Perl 5 author should own the Perl 6 name by default 15:12
masak that's a good question. 15:13
FROGGS pmurias: since everybody can release the distribution and package Foo, that does not make much sense 15:15
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."
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.
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, [Sno] left
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"
pmurias: that depends on what version you've got installed
nine FROGGS: on CPAN you can't or at least shouldn't be able to
pmurias FROGGS: that seems like a horrible solution
FROGGS pmurias: if you have installed all dists that exist, a bare 'use Inline::Python' should use the recommended distribution 15:20
nine: when one would use P5's indexer
pmurias recommended by who?
FROGGS nine: but we use our own
pmurias: by the recommendation manager
nine FROGGS: on CPAN?
FROGGS nine: yes
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
nine: S11 and S22
pmurias FROGGS: so someone needs to own the recommended slot
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:22
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
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
nine But first-come-forever-own is not exactly how CPAN works. One can adopt namespaces.
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
* useful
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
pmurias: first-come-first-recommended seems useful 15:26
15:30 chenryn joined
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
though, when you declare dependencies in your applications/disst, you have to think about what you want 15:32
15:32 erkan left 15:33 telex left 15:34 erkan joined, erkan left, erkan joined, telex joined 15:35 chenryn left 15:36 chenryn joined, ajr_ left
ugexe raydiak: i dont think your travis run actually compiled any of those modules 15:37
15:39 liztormato joined, ajr joined, ajr is now known as Guest21868
liztormato Re S11 and S22 discussion right now: 15:39
A bare -use Foo- is P5 think in my book 15:40
15:40 lucas__ joined
lucas__ hello channel 15:41
moritz \o
liztormato For production quality code, you will need to specify
lucas__ moritz: o/
liztormato Auth and version as explicitly as possible
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?
I agree it's good to be precise. especially auth. 15:43
with version, I can see ways to make the system less robust to changing dependencies rather than more.
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 Guest21868 left
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
moritz lucas__: you do notice that there's C code on CPAN too? and SQL code? and ...
15:44 ajr_ joined
lucas__ Maybe even JS also... :) 15:44
Ugator should there be a warning, if I specify an old version? 15:45
liztormato Ugator: No
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
If you don't get what you want, them your specification is wrong 15:47
*then 15:48
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
lucas__: we don't use their websites
liztormato feels the need for an advent post
FROGGS yeah
masak ++lizmat
colomon lizmat++
liztormato Btw: the recommendation manager is only intended for *installation* of dists. Nothing else 15:50
lucas__ FROGGS: What do you mean? Are perl 6 modules hosted on CPAN infra? 15:51
liztormato -use- is about what CompUnitRepo provides
That generally is what is installed
Although the API would allow things such as CloudPAN 15:52
lucas__: Yes 15:54
FROGGS lucas__: yes
liztormato ;-)
FROGGS :o)
lucas__ OMG! :D
I didn't know that.
liztormato Although not limited to
15:54 kaare_ joined
FROGGS lucas__: though, we still use github mostly 15:54
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...
FROGGS damn, I need to work at that again :/
15:55 kaleem left
liztormato As do I. Will have time Thu-Sun at the patch -p2 hackathon 15:56
15:57 Mouq left
FROGGS I won't have time on Sunday, but Sat should work and the evenings anyway 15:57
liztormato Cool. I hope to finish the newio branch in any case 15:58
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?
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...
FROGGS masak: by spec or by design documents? 16:02
masak by synopsis, written by TimToady before the 2009 migration.
lucas__ what 2009 migration?? 16:03
16:03 jluis left
FROGGS lucas__: we migrated the year 2009 in 2004 :P 16:03
into*
masak: what happened 2009?
masak actually, the underscores seem to have been chosen by dduncan: see e35dc603.
colomon is pro-dash 16:04
masak a migration from something to SVN.
lucas__ colomon: \o/
masak yes, feel free to change it to dashes.
but please update S03 also.
arnsholt Does anyone know what the nqp::takeclosure op is for?
FROGGS Dash All The Things! /o/
liztormato Fwiw, I feel that using - is really a dogfooding issue 16:05
16:05 denis_boyun left
FROGGS liztormato: for what? work on syntax highlighters? 16:05
16:06 Ven left
FROGGS arnsholt: public static SixModelObject takeclosure(SixModelObject code, ThreadContext tc) { 16:06
if (code instanceof CodeRef) {
CodeRef clone = (CodeRef)code.clone(tc);
clone.outer = tc.curFrame;
liztormato FROGGS: Also , yes 16:07
FROGGS liztormato: what-else?
liztormato Idiomatic Perl 6 code
FROGGS *nod*
pmurias arnsholt: so that you get a freshly cloned coderef instead of -> {...} returning the same thing every time
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?
FROGGS ohh, I think our parser is already very good with that
lucas__ liztormato: Are you against this change? 16:09
FROGGS lucas__: no
liztormato But if we break anything, we should know assp
FROGGS pro dash ftw!
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
We have deprecation cycle
lucas__ liztormato: thanks. I wasn't very familiar with the term "dogfooding" :) 16:11
Also... do think having only the "negative" is ok, or an affirmative includes_min/includes_max would also make sense? 16:12
*do you (people) think...
*includes-min, includes-max 16:13
well, better not
FROGGS no, we don't need includes-* when we have excludes-* 16:14
liztormato +1
16:15 abraxxa joined 16:18 erkan left 16:20 erkan joined, erkan left, erkan joined
pmurias arnsholt: yes 16:24
liztormato Decaring& 16:25
16:25 liztormato left, guru joined 16:26 guru is now known as Guest82949
timotimo liz doesn't care? :( 16:26
16:26 ajr_ left
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.
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
lucas__: those are more OK, I think. they are more internal. YMMV.
lucas__ masak: I agree.
16:28 sqirrel__ joined
timotimo why don't we tell people to put lots more ' into their functions/methods? 16:35
osfameron why can't you have ' at the *end* of an identifier name btw? 16:38
is that just a parser issue?
timotimo quickly whip up a slang to investigate that idea :)
16:40 kurahaupo joined 16:42 grondilu left 16:43 kaleem joined
dalek rl6-roast-data: d636201 | coke++ | / (5 files):
today (automated commit)
16:44
16:45 chenryn left
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
bbiab 16:46
16:46 FROGGS left
timotimo i removed it? 16:46
oops.
in that case, we should either add --disable-jit to moar or introduce a moar_nojit
ugexe 'perl Configure.pl --backends=moar --gen-moar' == 'perl Configure.pl --backends=moar --gen-moar=master --gen-nqp=master' then?
timotimo since moar_jit is now the default
--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
=master will give you the very latest of both
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
lucas__ 3 PRs awaiting for you... :) 17:09
travis will break. right? 17:12
moritz travis just builds rakudo, doesn't spectest 17:15
17:16 PZt joined
[Coke] moar nojit: github.com/coke/perl6-roast-data/b...oar.sh#L12 17:16
ugexe ill send a pr with nojit option for rakudobrew 17:17
moritz ++ugexe 17:18
17:24 fhelmberger left 17:28 [Sno] joined 17:29 immortal joined 17:31 erkan left, sqirrel__ left
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:32
17:34 kjs_ left 17:35 kjs_ joined
arnsholt pmurias: Are you sure the takeclosure is needed to get correct closure stuff? Looks like Snake works correctly without it 17:36
17:37 kaleem left
timotimo maybe the semantics are slightly different? 17:37
[Coke] ~. 17:39
arnsholt Could be. I'll probably have to pester jnthn about it at some point 17:40
=)
dalek ake: 7af2d4d | (Arne Skjærholt)++ | src/Snake/Actions.nqp:
Simplify our QAST trees a bit.
17:41
timotimo i'd be interested if there's lessons we can learn from snake to make spesh better 17:43
like, better in general
17:47 sjohnson joined
timotimo damn, at one point i really have to stop obsessing so much about performance %) 17:47
17:48 Guest82949 left
arnsholt I think it's a bit early for that. There's still swathes of Python left to implement 17:49
But the whole "Python cannot into declarations" thing is likely to going to be a bottleneck, IMO
moritz timotimo: don't stop obsessing about preformance, please
17:50 pmurias left
colomon +1 17:51
17:54 lizmat joined
timotimo hunting performance can become timesome sometimes 17:55
tiresome*
17:56 virtualsue left 17:57 dakkar left
lizmat the AmsterdamX meeting has started :-) 17:57
17:57 guru joined, kjs_ left, guru is now known as Guest7448 17:58 Guest7448 is now known as ajr_ 18:01 kjs_ joined 18:05 kurahaupo_ joined 18:06 cibs left 18:07 cibs joined
lucas__ Should I put "is DEPRECATED" as a method trait or inside the block as a function call? 18:08
I'm copying the example from the recent Increase/Decrease change.
18:08 kurahaupo left
lizmat as a function call 18:09
subroutine traits don't work in the setting :-( 18:10
lucas__ lizmat: Thank you!
Also, I don't understand why Range sometimes uses $.excludes-min and $!excludes-min. Should I delegate to which one?
I guess is the private one, right?
lizmat $.foo is short for self.foo
it subclasses
$!foo accesses the attribute directly 18:11
and does not subclass
lucas__ Oh, so it should be $!foo, right?
I mean... the deprecated methods will delegate to $!foo instead of $.foo 18:12
lizmat generally, yes 18:13
18:16 sqirrel__ joined
dalek p: 247dc76 | TimToady++ | src/vm/ (2 files):
lazier longlit initialization
18:17
lucas__ I came up with this:
method excludes_min() { DEPRECATED('Use excludes-min instead'); $!excludes-min }
I'll put it at the very end of the Range class. 18:18
18:18 erkan joined, erkan left, erkan joined
lucas__ Do you like me to change something? 18:18
Similiar thing for excludes_max
18:18 pecastro left 18:20 immortal left
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:20
lizmat lucas__: 'excludes-min' is enough 18:22
the rest of the text is added
automagically
lucas__ Oh, interesting 18:23
dalek kudo/newio: ec07261 | (Elizabeth Mattijsen)++ | src/core/IO/Handle.pm:
We need to decont PIO as passing it conts it
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 :)
Hah, cool...0C! :D 18:26
bbiab o/
timotimo now i need some noms
18:27 ajr_ left 18:28 denis_boyun joined 18:29 perturbation joined
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:32
18:33 anaeem1_ joined 18:34 Akagi201 left
timotimo you can do that, yeah 18:34
lucas__ timotimo: Thank you
lizmat make it 2014.12 2015.12 though
18:35 cognominal joined
lizmat they won't get marked as deprecated until the next release 18:35
lucas__ ok
18:36 Akagi201 joined 18:43 Mso150 joined 18:44 FROGGS joined 19:08 eternaleye left 19:11 eternaleye joined 19:15 sqirrel__ left 19:20 kjs__ joined, erkan left 19:21 kjs_ left, kjs__ is now known as kjs_ 19:25 Alina-malina left 19:28 Sir_Ragnarok left 19:29 Sir_Ragnarok joined 19:30 Alina-malina joined
dalek kudo/newio: 5c66966 | (Elizabeth Mattijsen)++ | src/core/IO.pm:
Introduce SPURT-PATH()
19:30
kudo/newio: da34880 | (Elizabeth Mattijsen)++ | src/core/ (2 files):
Use new SPURT-PATH
kudo/newio: 63dd732 | (Elizabeth Mattijsen)++ | src/core/ (2 files):
We need PIO's to be Mu when passing

Otherwise we get a very strange error message, which is a type binding error gone awry.
19:34 jack_rabbit left
dalek kudo/newio: 55e38be | (Elizabeth Mattijsen)++ | src/core/io_operators.pm:
Fix issue with open(:rw :w :r)
19:36
19:43 gfldex joined
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
But I'm just thinking... I'm not clear if having both synonyms/antonyms in a language is a good thing.
19:46 kjs_ left
masak I can sort of see how 'excludes' was the first one that came to mind when writing the synopsis. 19:49
since exclusion corresponds to a '^' at either end.
timotimo right, because we put an extra character to exclude
so "excludes-min?" corresponds to "has an extra character at the beginning?"
lucas__ yes, it makes sense the relationship between excludes and having a caret (^) on the operator. 19:52
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:54
19:55 molaf_ left
lizmat yeah, we don't want the API to become less understandable for the implementation to become simpler 19:55
19:55 darutoko left
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:00
20:03 erkan joined, erkan left, erkan joined
dalek p: 97bcfe2 | TimToady++ | tools/build/MOAR_REVISION:
bump moar
20:04
20:04 virtualsue joined
dalek kudo/nom: 68d05b4 | TimToady++ | tools/build/NQP_REVISION:
bump nqp
20:05
20:05 virtualsue left 20:07 FROGGS left, FROGGS joined, eternaleye left
vendethiel Uhm, erh, hard question: 20:08
how can we make perl6 tooling "good"? Anything that tinkers with the internal is going to be hard as well to "ide"-ize
(add_method, add_fallback, and especially MACROS)
timotimo slangs 20:09
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
[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:11
dalek kudo/nom: e1aa077 | (Elizabeth Mattijsen)++ | / (5 files):
Add role PIO and class IO::Pipe placeholders
20:12
kudo/newio: 68d05b4 | TimToady++ | tools/build/NQP_REVISION:
bump nqp
20:13
kudo/newio: e1aa077 | (Elizabeth Mattijsen)++ | / (5 files):
Add role PIO and class IO::Pipe placeholders
kudo/newio: c775050 | (Elizabeth Mattijsen)++ | / (6 files):
Merge branch 'nom' into newio
vendethiel [Coke]: definitely; but still, that sounds dangerous
timotimo the restricted setting is a complete and utter joke 20:14
lizmat ssshhhh :-) 20:15
timotimo the parser needs to be more restrictive and prohibit, for example, nqp and pir ops
20:15 sqirrel__ joined
nine To read Perl, you have to run Perl. That's always been that way. 20:16
How can I access the class' name during role setup? 20:17
timotimo you mean at compose time?
nine yes
timotimo hm, you're looking for something to call where exactly?
nine I'm trying to create a Python class for every P6 class that consumes the PythonParent role. 20:18
And for that I need the name of the class the PythonParent role is composed into
FROGGS what about $*PACKAGE? 20:20
I've seen that in the grammar/actions at least
lizmat AmsterdamX shutting down&
20:21 lizmat left
FROGGS and the name should be available as $*PACKAGE.HOW.name($*PACKAGE) 20:21
nine FROGGS++ 20:22
The answer was close: ::?CLASS.HOW.name(::?CLASS);
FROGGS m: trait_mod:<foo>(Any, :$foo!) { say $*PACKAGE.HOW.name($*PACKAGE) }; class Bar is foo { }
camelia rakudo-moar 316f99: OUTPUT«===SORRY!=== Error while compiling /tmp/uBy0gsXhli␤Variable '$foo' is not declared␤at /tmp/uBy0gsXhli:1␤------> trait_mod:<foo>(Any, :$foo⏏!) { say $*PACKAGE.HOW.name($*PACKAGE) }␤»
timotimo that sounds like you could also write ::?CLASS.^name
masak was gonna say
FROGGS m: sub trait_mod:<foo>(Any, :$foo!) { say $*PACKAGE.HOW.name($*PACKAGE) }; class Bar is foo { }
camelia rakudo-moar 316f99: OUTPUT«===SORRY!=== Error while compiling /tmp/rxA8OOmWP7␤'Bar' cannot inherit from 'foo' because it is unknown.␤at /tmp/rxA8OOmWP7:1␤------> ␤»
timotimo FROGGS: not $?PACKAGE? 20:23
FROGGS m: sub trait_mod:<is>(Any, :$foo!) { say $*PACKAGE.HOW.name($*PACKAGE) }; class Bar is foo { }
camelia rakudo-moar 316f99: OUTPUT«===SORRY!=== Error while compiling /tmp/oEkk8sZ1mR␤Method 'item' not found for invocant of class 'Bar'␤at /tmp/oEkk8sZ1mR:1␤------> ␤»
FROGGS m: sub trait_mod:<is>(Mu, :$foo!) { say $*PACKAGE.HOW.name($*PACKAGE) }; class Bar is foo { }
nine timotimo: yes! Indeed. And I was so close with trying ::?CLASS.name
camelia rakudo-moar 316f99: OUTPUT«Bar␤»
timotimo :)
well, with ::?CLASS you get the type object of the class your code is inside of
FROGGS m: sub trait_mod:<is>(Mu, :$foo!) { say ::?CLASS.^name }; class Bar is foo { }
camelia rakudo-moar 316f99: OUTPUT«===SORRY!===␤Could not locate compile-time value for symbol ::?CLASS␤»
raydiak good afternoon #perl6 20:28
timotimo hello mister diak 20:29
FROGGS hi raydiak
masak oh hai diak
raydiak \o timotimo, FROGGS, masak 20:30
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 lucas__ left, brrt joined
brrt \o 20:35
raydiak hi brrt
masak o/ 20:36
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)␤»
raydiak haha masak :) 20:40
20:40 kaare_ left 20:41 colomon left
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
)
all I need is the hardware!
(it's ordered, just not yet delivered) 20:52
20:53 sqirrel__ left, anaeem1_ left
jnthn moritz: Is the order confirmed now? :) 20:54
moritz jnthn: yes
jnthn \o/ 20:55
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 20:57
japhb moritz++ 21:00
21:02 anaeem1_ joined 21:06 rindolf left 21:07 erkan left 21:08 erkan joined, erkan left, erkan joined
dalek ast: a5859e0 | usev6++ | S02-types/array.t:
Adjust tests for negative subscripts
21:11
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...?id=111924
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:13 erkan left
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␤␤»
dalek p: ca142ce | TimToady++ | src/QRegex/NFA.nqp:
comment out seldom-used debugging
21:20 pmurias joined
pmurias arnsholt: what do you mean by "Python cannot into declarations"? 21:21
arnsholt: issue #2 on github? 21:24
dalek ast: 4437bd2 | usev6++ | S02-types/array.t:
Fix descriptions of tests for negative subscripts
21:25 denis_boyun left
bartolin (sorry for the noise; I hope those tests aren't worse now than before I started messing with them :-) 21:25
TimToady looks pretty okay to me 21:31
dalek ecs: 96eb086 | raydiak++ | S12-objects.pod:
Remove stray bracket
21:33
21:41 kurahaupo_ left
raydiak in terms of a public api, would it be better to use string params restricted by subsets, or to export constants/enumerations? 21:43
moritz enums, IMHO 21:44
raydiak why?
moritz because they are introspectable
jnthn And more cheaply checkable 21:45
raydiak good points
moritz and once we have coercion types, adding coercions from strings to enum values will be super easy
masak no blog post tonight :/ -- hopefully tomorrow.
'night, #perl6
raydiak g'night masak o/ 21:46
21:47 ptc_p6 left
moritz \o * 21:47
raydiak \o moritz
21:55 kurahaupo joined, kurahaupo left
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:55
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
raydiak brrt: I think he meant this: perlcabal.org/syn/S02.html#Coercive...clarations 22:02
22:02 kjs_ joined, vti left 22:03 virtualsue joined 22:12 gtodd joined
brrt i see.. that is an awesome feature 22:12
dalek ast: 11a3b4e | usev6++ | S32-num/rounders.t:
Factor out test for MoarVM Issue 157

we hade test failures for JVM)
22:15
22:16 rurban left
pmurias raydiak: in Perl 6? using a prefix when namespaces are available seems a bad thing 22:17
raydiak pmurias: so you vote for no exporting at all and make them type Math::Symbolic before everything? 22:18
22:19 Mso150 left
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?
so just let them explicitly disable the exports and call them in the package when they need to? 22:21
then name them the shorter prettier versions?
pmurias yes
raydiak pmurias++ thank you, I no longer feel like I'm chasing my tail in circles 22:22
bartolin good night, #perl6 22:24
22:24 telex left
raydiak \o bartolin 22:25
22:26 telex joined, anaeem1_ left 22:28 anaeem1_ joined 22:33 Alula left, Alula joined, anaeem1_ left 22:35 Alula left 22:36 Alula joined 22:37 kjs_ left
arnsholt pmurias: Basically yeah (sorry for the weird language. Too much /r/polandball =) 22:38
22:41 brrt left 22:47 ggoebel111111113 left 22:48 Mouq joined 22:52 kurahaupo left 23:01 bjz left, denis_boyun_ joined 23:02 bjz joined 23:08 davido___ left, davido___ joined 23:09 gfldex left 23:13 kjs_ joined 23:19 Ugator left 23:24 bjz_ joined 23:25 pmurias left 23:26 bjz left 23:27 kjs_ left 23:30 bjz_ left
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:46
23:52 virtualsue left
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:52
idk where I'm going, wandering blindly down "what if" alleys 23:53
timotimo i think i mean something else than you 23:54
there's an SDL_FOOBAR_ASDF and an SDL_BARBAZ_ASDF
raydiak oh right, sorry, you have a different form of naming conflict :) 23:55