»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'p6: say 3;' or rakudo:, std:, or /msg camelia p6: ... | irclog: irc.perl6.org | UTF-8 is our friend!
Set by masak on 12 May 2015.
TimToady .tell abc-xyz Currently rakudo uses a grammar written in NQP that you can get at, but it's not called STD, and it's not fully bootstrapped in Perl 6. It may be bootstrapped in some future version, but for now it's more valuable to implement it in NQP as a portability layer. 00:00
yoleaux TimToady: I'll pass your message to abc-xyz.
00:01 ShimmerFairy joined
ugexe testers.perl6.org is not accepting reports 00:02
dalek Heuristic branch merge: pushed 226 commits to rakudo/glrish by TimToady 00:04
00:04 freeze left
dalek Heuristic branch merge: pushed 24 commits to rakudo/glrish by TimToady 00:05
00:05 cognominal left, freeze joined 00:06 ShimmerFairy left 00:14 freeze left 00:16 freeze joined 00:18 ShimmerFairy joined 00:22 BenGoldberg joined, BenGoldberg left, BenGoldberg joined 00:23 freeze left 00:24 laouji joined 00:30 freeze joined 00:32 llfourn left 00:35 yqt left 00:37 espadrine left 00:39 laouji left, laouji joined 00:42 laouji left, laouji joined
dalek kudo-star-daily: de710b5 | coke++ | log/ (8 files):
today (automated commit)
00:50
01:07 khw joined 01:22 rmgk is now known as Guest12097, rmgk_ joined, Guest12097 left, rmgk_ is now known as rmgk, alexande3 joined 01:29 aborazmeh joined, aborazmeh left, aborazmeh joined 01:33 dolmen joined 01:34 namenick joined
namenick p6: "aa" ~~ / .+ % <?same> /; 01:35
camelia rakudo-moar debcfc: OUTPUT«Method 'same' not found for invocant of class 'Cursor'␤ in block <unit> at /tmp/tmpfile:1␤␤»
01:36 yeahnoob joined 01:53 dayangkun joined 01:55 aborazmeh left 01:56 gfldex left 02:12 awwaiid joined 02:15 Khisanth joined 02:23 chenryn joined 02:29 llfourn joined 02:33 llfourn left 02:34 hoelzro joined 02:51 noganex joined 02:52 raiph left 02:53 namenick left 02:54 chenryn left, noganex_ left 03:01 huf joined 03:11 jack_rabbit joined 03:16 chenryn joined 03:29 llfourn joined 03:32 skids left 03:33 llfourn left 03:35 BenGoldberg left 03:37 jack_rabbit left 03:39 atroxaper joined, ShimmerFairy left 03:40 jack_rabbit joined 03:43 leont left 03:47 atroxaper left 03:50 jack_rabbit left 03:51 ShimmerFairy joined 03:57 chenryn left 04:01 jack_rabbit joined 04:09 kaare_ joined 04:12 dayangkun left 04:14 dayangkun joined 04:15 raiph joined 04:21 atroxaper joined, khw left 04:30 jack_rabbit left 04:50 prammer joined, cognominal joined 04:51 [Sno] left 04:52 TEttinger left 04:56 vendethiel joined 04:58 chenryn joined 05:04 chenryn left 05:14 baest left 05:16 atroxaper left 05:17 baest joined 05:20 cognominal left 05:21 vendethiel left 05:23 atroxaper joined 05:27 atroxaper left 05:29 llfourn joined 05:31 Alina-malina left 05:32 TEttinger joined 05:34 llfourn left
lizmat good *, #perl6! 05:40
alas, I will be afk for most of the day&
05:46 ChoHag joined 05:50 diana_olhovik_ joined 05:56 rurban joined
ChoHag I believe utf-8 may be my friend too today. 05:59
timotimo
ChoHag But my new nemeses: Tiny fonts.
nemesis 06:00
timotimo oh yes.
ChoHag sighs
One problem per day is enough.
timotimo i hear you
06:00 chenryn joined 06:03 atroxaper joined 06:04 raiph left 06:10 brrt joined 06:14 Guest92532 joined, [Sno] joined 06:17 Guest92532 left 06:23 sunwenjie joined 06:24 domidumont joined
timotimo .tell smls could you be super nice and fetch the newest dll files for gtk-simple for me to put onto hack? or maybe give me a script or instructions where they can be found, exactly? also, if you could grab gtksourceview-3 in addition to what we already have, that'd be swell :) 06:25
yoleaux timotimo: I'll pass your message to smls.
brrt \o 06:26
06:30 FROGGS joined 06:34 RabidGravy joined 06:38 mr-foobar left 06:39 jkva joined, agre joined 06:41 zakharyas joined 06:42 domidumont left 06:46 agre left 06:50 agre joined 06:55 agre left, jkva left
timotimo m: class One { our sub test { say "yay" } }; class Two { import One; method foo { test() } }; Two.foo; 06:59
camelia rakudo-moar debcfc: OUTPUT«5===SORRY!5=== Error while compiling /tmp/wB6qd38T5t␤Undeclared routine:␤ test used at line 1␤␤»
timotimo how to do this right?
07:00 dolmen left
moritz m: class Oone { sub test is export { say "yay" } }; class Two { import One; method foo { test() } }; Two.foo; 07:01
camelia rakudo-moar debcfc: OUTPUT«5===SORRY!5=== Error while compiling /tmp/uOKaPNBIog␤Could not find module One to import symbols from␤at /tmp/uOKaPNBIog:1␤------> 3 { say "yay" } }; class Two { import One7⏏5; method foo { test() } }; Two.foo;␤»
moritz m: class One { sub test is export { say "yay" } }; class Two { import One; method foo { test() } }; Two.foo;
camelia rakudo-moar debcfc: OUTPUT«yay␤»
moritz timotimo: use "is export" if you want to import :-)
timotimo ok
07:03 coffee` joined 07:04 amurf left 07:05 jkva joined 07:08 Ven joined 07:11 abraxxa joined 07:13 dolmen joined 07:15 azawawi joined 07:27 coffee` left
azawawi hi #perl6 07:30
07:30 llfourn joined 07:31 espadrine joined
cdc brrt++ # blogging 07:34
brrt thanks :-) 07:35
07:35 llfourn left
ChoHag Can I consume a role/extend a class where the final class/subclass changes (or defines) the default of an attribute? 07:35
Or any other aspect of a consumed attribute for that matter. 07:36
07:42 telex left, mr-foobar joined, atroxape_ joined 07:44 telex joined 07:45 atroxaper left 07:52 atroxaper joined, atroxape_ left, darutoko joined
moritz the consumer can set the default in a BUILD submethod 07:54
or you can write a role that requires the consumer to provide a method which returns the default 07:55
07:55 coffee` joined
RabidGravy someone be a love and make URI so I can manipulate the uri 07:56
07:57 virtualsue joined
[TuxCM] [Coke], lizmat, tux.nl/Files/uchar-nopro 07:57
timotimo don't we have some URI module already?
moritz sure we do
[TuxCM] that is a slightly stripped version, as my original contains company code
RabidGravy yeah, but it's parse only, don't want to get sidetracked into making mutations 07:58
07:58 zakharyas left
azawawi lizmat: ping 08:00
08:01 atroxaper left 08:03 Mhoram joined
azawawi .tell lizmat why is .send deprecated? Any reason behind that? Thanks for all your hard work. github.com/rakudo/rakudo/commit/26...ccd9d9b801 08:04
yoleaux azawawi: I'll pass your message to lizmat.
timotimo azawawi: because hoelzro renamed it to "print"
08:05 gfldex joined
azawawi oops thought it was lizmat :) 08:05
so does it make it sense? socket.print ?
timotimo i think so? 08:06
RabidGravy consistency
azawawi you're printing to a socket... that's new :)
timotimo well, tcp is stream-based 08:07
so yeah, you *are* writing to a socket
RabidGravy send(2) does something slightly different in that it allows you to specify flags
timotimo we don't have anything for UDP sockets yet
RabidGravy: our old "send" didn't have any support for flags, either
RabidGravy zackly 08:08
timotimo in unix, the difference between "write" and "send" is that send lets you pass flags
in perl6 you can't flags anyway
so we don't let you send (yet)
azawawi cool 08:10
azawawi must be a rakudo 2025 feature :)
timotimo i've been very very slow with the udp socket support :(
RabidGravy changes HTTP::UserAgent 08:12
timotimo thank you kindly
azawawi timotimo: well I have been very very slow with farabi6 :) 08:13
timotimo i disagree 08:14
08:16 dakkar joined 08:18 virtualsue left 08:19 alexande3 left
RabidGravy I think I have reached an all time high in the number of modules I have in progress 08:20
[TuxCM] test 50000 47.312 47.217 08:21
test-t 50000 47.420 47.325
08:26 xinming_ left, xinming joined 08:27 virtualsue joined 08:28 yeahnoob left
timotimo hum. 08:36
i do "require Cairo;" and then attempt to access the cairo_t class via ::('cairo_t'), but i get "no such symbol cairo_t" ... i think this must have worked at some point
i ought to give the require statement a list of names to fetch i guess 08:37
Trying to import symbols cairo_t, Cairo from 'Cairo', but it does not export anything
:|
jnthn peers at the RT queue 08:39
timotimo ah, it doesn't "is export" that
there's not a single "is export" in the cairo module 08:40
nwc10 jnthn: is that a wise thing to do? :-)
timotimo but it already worked at some point :\
fixed the mistake apparently, yay 08:41
08:43 g4 joined
jnthn Well, it gives me something to do while the coffee starts working better :) 08:46
RabidGravy really with send -> print recv wants to be changed too as they used to be kinda sorta symmetrical 08:47
08:47 TEttinger left 08:53 amurf joined 08:57 amurf left 08:58 Ven left
nwc10 pete pasted this text "Characters should actually be grapheme clusters, though current implementations erroneously count codepoints instead." which I think is from doc.perl6.org/routine/chars 09:02
is that text out of date now, due to NFG? 09:03
dalek kudo/nom: 30089ad | jnthn++ | src/core/ (2 files):
Tighten up types on things that must be callable.

This avoids whining (potentially at a distance) about missing .count,
  .arity, and so forth, and instead showing a more helpful error about
how we can't bind the signature here.
ast: 8a54a62 | jnthn++ | S32-exceptions/misc.t:
Test for RT #125675.
ast: 01d0210 | jnthn++ | S32-list/sort.t:
todo => skip on some very dubious tests.
jnthn nwc10: On MoarVM at least, yes 09:04
09:05 xfix joined
nwc10 does the masakbot create github issues, as well as RT tickets? :-) 09:05
09:05 xfix left, nightfrog left
nwc10 more usefullly, does dha++ fix stuff like this if made aware of it? 09:05
09:06 nightfrog joined 09:08 espadrine left
jnthn m: use Test; sub foo($r = rx{foo}) { ok $r ~~ Regex }; foo(); 09:12
camelia rakudo-moar debcfc: OUTPUT«===SORRY!===␤Cannot call method 'match' on a null object␤»
09:16 sergot joined
sergot hi o/ 09:17
09:17 salva left 09:18 zakharyas joined 09:19 mr-foobar left
RabidGravy yo sergot 09:19
rurban Why did you call arrays declared with a fixed size "shaped" and not "sized"? I think I'll call them sized_arrays in perl5, i.e. AvSIZED. Is it because of multidimensional support? 09:20
jnthn Yes.
rurban Should I also call them shaped?
jnthn I dunno, are you going to do multi-dim support?
rurban perl5 has no multidim support
I die on multi dims so far 09:21
but maybe I can add it later.
JimmyZ Does JVM have multidim support?
looks like not?
rurban Not sure if the parser allows that. my int @a[2,10]; hmm
jnthn JimmyZ: Already ported MultiDimArray REPR to JVM. 09:22
brrt perl5 has multidim faking, and it's awesome ^^
jnthn So so far as Perl 6 needs, "yes" ;)
brrt or at least, it's useful
09:22 araujo left
dalek kudo/nom: c8c1b67 | jnthn++ | src/Perl6/Actions.nqp:
Avoid boolifying code objects in compiler.

Some of them react to boolification by trying to match against $_, when we only want to check if we have one. Fixes RT #125670.
09:22
ast: 9263645 | jnthn++ | S06-signature/defaults.t:
Test for RT #125670.
JimmyZ I meant JVM itself :) 09:23
jnthn JimmyZ: iirc yes, though I may be remembering the CLR :P
Well, there's two RTs down... :) 09:24
rurban I just thought of being less confusing to the casual user. Ok, Shaped then. I really dislike this name. Sized sounds good for multidim also. But this is too late unfortunat.
09:24 Mhoram left 09:25 itz joined
itz morning 09:25
brrt morning itz
timotimo it's itz!
09:25 Mhoram joined 09:31 llfourn joined
dalek kudo/nom: d922521 | jnthn++ | src/Perl6/World.nqp:
Always decont things used as type constraints.

Fixes RT #125715.
09:34
09:34 espadrine joined
dalek ast: 985d992 | jnthn++ | / (2 files):
Test for RT #125715.
09:35
09:36 llfourn left 09:48 chenryn left 09:49 chenryn joined 09:56 rurban_ joined, Ven joined 10:03 brrt left 10:06 Ven left, mr-foobar joined
dalek kudo/nom: 915e445 | jnthn++ | src/Perl6/Actions.nqp:
Remove comment about decision already made.
10:08
kudo/nom: 0a1da50 | jnthn++ | src/Perl6/ (2 files):
Fix private method call in role code-gen.

We can't just assume $*PACKAGE holds the type we should locate the private method in. Rather, ::?CLASS must be used in this case.
ast: b7f4121 | jnthn++ | S14-roles/stubs.t:
Test for RT #125694.
10:08 Ven joined 10:14 chenryn left 10:23 inokenty joined 10:28 llfourn joined
jnthn m: (1,2,3).map({ die 'oh noes' }) 10:29
camelia rakudo-moar d92252: OUTPUT«Unhandled exception: oh noes␤ at <unknown>:1 (/home/camelia/rakudo-inst-1/share/perl6/runtime/CORE.setting.moarvm:throw:4294967295)␤ from src/gen/m-CORE.setting:792 (/home/camelia/rakudo-inst-1/share/perl6/runtime/CORE.setting.moarvm:die:86)␤ fro…»
jnthn Didn't we have an RT about error of last statement in a problem sucking if it occurs while sinking? 10:43
jnthn can't find it
itz rt.perl.org/Public/Bug/Display.html?id=124434? 10:50
jnthn m: Failure.new(Exception.new); 1 10:51
camelia rakudo-moar 0a1da5: OUTPUT«Exception exception produced no message␤␤Actually thrown at:␤ in block <unit> at /tmp/CeOq_nzqJJ:1␤␤»
jnthn That one does look fixed, but isn't what I meant :) 10:52
skids++ work probably fixed that one recently
10:55 ShimmerFairy left 10:57 RabidGravy left
dalek kudo/nom: fac28d3 | jnthn++ | src/ (3 files):
Test for concise error on sinking last statement.

If the last statement in a file used to need sinking, and doing so threw an exception, we'd spit out an epic low-level backtrace rather than a nice high-level one. Fix that by making non-EVAL and non-REPL stuff we compile put the last statement in sink context in the code we generate rather than having MAIN do the sinking. Also means a trailing 0; in a file now warns.
10:57
ast: bcebafd | jnthn++ | S10-packages/precompilation.t:
Fix test to not produce a sink warning.
ast: 364c287 | jnthn++ | integration/weird-errors.t:
Test we get concise error on last statement sink.
11:08 ShimmerFairy joined
dalek ast: ed5d178 | jnthn++ | S17-promise/start.t:
Test for RT #125346.
11:10
jnthn m: my $p = (0..3).map: *+1; say await $p; 11:13
oops
m: my $p = start { (0..3).map: *+1 }; say await $p;
camelia rakudo-moar 0a1da5: OUTPUT«(timeout)»
rakudo-moar 0a1da5: OUTPUT«␤»
jnthn hmm
FROGGS m: await 42 11:14
yoleaux 29 Jul 2015 16:22Z <lizmat> FROGGS: looking at debugging 'Proc::Async.new("perl6", "-e", "exit 2").start.result.perl.say'
camelia ( no output )
yoleaux 29 Jul 2015 16:22Z <lizmat> FROGGS: it looks like the "done" callback is not being called, and thus the exit code is never set
11:14 dayangkun left
jnthn Wonder why we lose the result of the map... 11:15
m: my $p = start { (0..3).map: *+1 }; say $p.result;
camelia rakudo-moar 0a1da5: OUTPUT«1 2 3 4␤»
FROGGS m: my $p = start { (0..3).map: { say "huh"; $_+1 } }; say await $p;
camelia rakudo-moar 0a1da5: OUTPUT«huh␤huh␤huh␤huh␤1 2 3 4␤»
FROGGS m: my $p = start { (0..3).map: { $_+1 } }; say await $p; 11:16
camelia rakudo-moar 0a1da5: OUTPUT«␤»
FROGGS hmmmm
jnthn That really is a wtf... 11:18
11:18 chenryn joined
jnthn Hm, and it really is lunch time. 11:19
bbiab
FROGGS what the lunch 11:20
11:20 brrt joined
jnthn Apparently, nothing unless I go to the shop... 11:21
11:21 jkva left 11:24 laouji left 11:32 llfourn left 11:48 azawawi left 11:51 leont joined
nine brrt: I'm sure you are being asked that every other day, but I don't recall reading about it: would it be possible to appropriate llvm's or gcc's optimization passes for MoarVM? 11:53
brrt i'm not asked that often, in fact :-)
but it's a good question
the answer, unfortunately, is no 11:54
nine That begs the question: why? :)
brrt ehm... let me think about that for a bit 11:55
the most basic reason is that it's a question of (in-memory) code representation 11:56
11:56 araujo joined
brrt if you want gcc or llvm to do something clever with your code, you must first convert your code to llvm ir or gcc ir 11:57
possibly textually, which is not really awesome
nine That's a given, yes. But I don't see how that would be impossible?
Of course, if it would actually be worth it, would be another question.
But since it seemed to quite quite some work just to use all x86_64 registers and how much more work it will probably be to make _good_ use of them, the answer may not be clear. 11:58
brrt well, what you're talking about would amount to replacing the entire moarvm jit 'backend' with a gcc/llvm backend, and that's certainly possible
if you want to use *just* the optimization passes, then you'd have to convert your code to llvm ir, then have it optimize it, then convert it back; but i'm unsure what the point of that would be 11:59
because clearly llvm and gcc have just fine code generators
the main problem with such an approach - from my admittedly biased view - is that both gcc and llvm are made for c and c++ semantics 12:00
that means that to get perl6 semantics out of that (or more specifically moarvm semantics) you'll have to add in all sorts of constraints to the IR 12:01
unfortunately, such restraints prohibit llvm from optimizations 12:02
12:02 salv0 joined
[TuxCM] .tell [Coke] tux.nl/Files/uchar-nopro 12:03
yoleaux [TuxCM]: I'll pass your message to [Coke].
brrt a very simple example would be the interaction with GC; it requires that at certain points all values are flushed to memory
a moarvm-specific JIT may be able to lift some of those constraints because it has full knowledge of the code, but llvm would not be able to 12:04
moreover, llvm is large and slow
12:05 virtualsue left, llfourn joined
brrt gcc is of course GPL 12:07
which is a licensing headache 12:08
Ven ...and is a headache to use as a library :P 12:09
arnsholt Well, you're not really supposed to be able to use GCC as a library, are you? =) 12:10
brrt it exists arnsholt
not sure if it's called libjit or that's something else
arnsholt Oooh, right. I'd forgot about that 12:11
brrt bbiab
12:11 brrt left 12:13 brrt joined
brrt back 12:13
12:14 Ven left
brrt anyway, nine, was that a reasonable answer? :-) 12:14
12:15 smls joined
sergot .seen masak 12:21
yoleaux I saw masak 27 Jul 2015 16:28Z in #perl6: <masak> yeah, but two `whenever`s can work in parallel without any extra instructions, which is nice.
12:21 chenryn left 12:22 Ven joined 12:30 muraiki joined 12:34 ab6tract joined
ab6tract o/ #perl6 12:34
doing a hackathon with flock, comparing some speed metrics of his perlito5-java backend vs rakudo 12:35
*fglock
12:35 mr-foobar left
ab6tract the difference between Int and int on jvm is.... a bit unbelievable, to be honest 12:35
brrt between perlito5-java and rakudo or within rakudo? 12:36
\o ab6tract
12:40 Ven left
ab6tract brrt: within rakudo 12:40
gist.github.com/ab5tract/1c394b6ef32bbf27374c
gist is incomplete, just showing where I am currently
I haven't had the patience so far to let the non-native version finish 12:42
with native int, though, we are ~100% faster than p5 :D
brrt \o/ 12:43
(i'm at 0.48 seconds for the native run)
pretty cool
i'm wondering how that will do after the new codegen is in place 12:44
(and after that, what happens when we have whole-routine register allocations and optimization)
ab6tract brrt: 0.48 seconds on moarvm ? 12:45
12:45 Ven joined
brrt yeah 12:45
4.6s for perl5
ab6tract that's fracking awesome :D
brrt use integer reduces that (for perl5) to 3.7s
ab6tract damn.. you... autocorrect.... fracking is not cool. fricking cool is fricking cool 12:46
brrt actually, one of the open projects is reducing big integer operations to small integers
fracking gets quite hot, i've heard
(for moarvm)
and possibly to use escape analysis to (locally) unbox Int to int 12:47
jnthn On Windows the difference between the two benchmarks in gist.github.com/ab5tract/1c394b6ef32bbf27374c is more notable: 0.67s including startup for Rakudo on Moar, vs. 7.35s for Perl 5 (dropping to 6.53s with use integer) 12:50
ab6tract that would be sweet
jnthn: nice!
jnthn Remove the native "int" types, and it's darn slow, alas 12:51
brrt MVM_JIT_DISABLE=1 increases runtime to 2.8s; MVM_SPESH_DISABLE=1 to 2.9s 12:52
jnthn Despite all the allocation going on, causing 593 GC runs, the time doing GC only amounts to 2.5% of runtime. 12:54
Oh...
ab6tract i get 280 seconds here
jnthn ab6tract: 46s for r-m without the "int" annotations for me
ab6tract (for the non-native version)
jnthn But...we're not inlining any stuff o.O
Oh...darn, I bet I upset a bunch of that when I fixed &?ROUTINE. 12:55
jnthn should sort that out 12:56
brrt of course
it's much easier to perform if you just do the wrong thing :-P
jnthn Right ;)
ab6tract prelate's generated java code runs in 0.9 seconds :)
brrt well, that was on your machine that took 5s for the moarvm code, right 12:57
ab6tract s/prelate/flavio/ # only having these autocomplete issues in webchat.freenode.net
jnthn That's quite a correction :P
ab6tract brrt: no, I'm doing jam testing
brrt i don't comprehend? 12:58
ab6tract brrt: everything should be smoother now, I've gotten the autocorrect crap disabled 12:59
so, "no I
"no I'm doing jvm testing"
brrt ah, ok
:-)
autocorrect makes people confused
FROGGS that exclaims things :o) 13:00
ab6tract seriously... i think typos are easier to parse
FROGGS: :)
jnthn Perl 6. It runs on MoarVM and jam. :P
ab6tract jnthn: so, interestingly, when I use for instead of while, the native type hints don't seem to have much of an impact at all
jnthn ab6tract: How do you write that with "for"? 13:01
brrt i think that's probably because for takes a closure
jnthn Indeed
nine brrt: yes, thank you very much for explaining. 13:02
brrt you're welcome :-)
13:05 ab6tract left 13:07 ab6tract joined
ab6tract jnthn: gist.github.com/ab5tract/1c394b6ef...ark-for-p6 13:08
13:10 skids joined
brrt yeah, that's blocky 13:12
jnthn ab6tract: I highly doubt that way of writing it will perform well at the moment. 13:14
13:17 raiph joined
DrForr tadzik: Deprecation warning in Panda::Ecosystem. 13:18
tadzik DrForr: oh. Will look, thanks 13:22
DrForr Added a GH issue as well.
13:23 llfourn left
ab6tract jnthn: preliminary investigation agrees :) 13:23
jnthn: am I doing something particularly suboptimal there?
13:24 llfourn joined
jnthn ab6tract: using "for" on a native array 13:24
Things should improve after the GLR 13:25
Though not sure if that alone will cut out any boxing.
13:25 Mhoram left 13:26 donaldh joined 13:27 aborazmeh joined, aborazmeh left, aborazmeh joined, FROGGS left 13:28 abraxxa left 13:29 spider-mario joined
ab6tract jnthn: a bit of a saddy that we will again have performance implications of for-vs-where 13:29
13:29 abraxxa joined 13:34 aborazmeh left
dalek ast: 6e4fb04 | jnthn++ | S32-io/IO-Socket-Async.t:
Fix deprecation in test.
13:34
ab6tract jnthn: so the for-vs-while performance difference is just for native arrays? or will for always be slower because closures 13:35
jnthn ab6tract: Not sure about "always", but they won't be going away any time soon. 13:36
13:36 RabidGravy joined
jnthn ab6tract: Though the difference should hopefully reduce far enough that you have to really care about performance to bother about it. 13:36
RabidGravy boom! 13:37
nine Boom. Boom boom boom. Boom boom. Boom! Have a nice day. 13:41
DrForr waves to nine. Woops :) 13:43
13:49 cognominal joined 13:52 rindolf joined 13:53 TimToady left 13:55 brrt left, TimToady joined
ab6tract jnthn: so I got 2498.388 seconds for the naive for version :) 13:56
13:57 rurban left, Ven left 13:58 araujo left 14:01 khw joined
ab6tract does anyone know of example Java interop code? The stuff from the advent calendar is all quite old 14:03
jnthn m: use Test; sub doit() { if True { LEAVE 1; return 'ls'; } }; is doit(), 'ls', 'return in nested block with LEAVE works'; 14:05
camelia rakudo-moar fac28d: OUTPUT«const_iX NYI␤ in sub doit at /tmp/RaWLP57F6m:1␤ in block <unit> at /tmp/RaWLP57F6m:1␤␤»
jnthn ab6tract: I know psch++ worked on it most recently, and may have posted some examples somewhere 14:06
ab6tract pinging psch++ :) 14:09
timotimo ab6tract: do you know that a for ^1000 will actually generate an int over native integers? 14:12
dalek p: 3c8c39d | jnthn++ | tools/build/MOAR_REVISION:
Bump MOAR_REVISION for various fixes.
14:14
14:15 Ven joined, smls left
dalek kudo/nom: b1a56a2 | jnthn++ | tools/build/NQP_REVISION:
Bump NQP_REVISION.

Gets a MoarVM with a race condition in frame validation fixed, along with a bug in extop/exception interaction fixed.
14:15
ast: 21837e8 | jnthn++ | S04-phasers/enter-leave.t:
Test for RT #125480.
14:16
timotimo well, there's at least an optimization in place that's supposed to do it, but it broke multiple times in the past 14:18
ab6tract timotimo: that's why I was doing my int @range = ^400. that was my attempt to enforce nativity 14:20
timotimo ah
you mean naivity?
ab6tract :) 14:21
it was a naive attempt to enforce a native array
jnthn You got a native array 14:22
It's just that doing a "for" over one isn't particularly smart.
timotimo right, it'll probably box each of those ints 14:23
and then unbox it again
jnthn gets tired of seeing rt.perl.org/Ticket/Display.html?id=68572 and its dependents, and decides he's smart enough today to decide for good that our-scoped stuff inside of roles is just going to be forbidden. 14:28
cognominal timotimo: nativity is delayed until christmas 14:29
[Coke] finds that uchar needs xrdb, and wonders about making a uchar6 which might not need it. 14:31
yoleaux 12:03Z <[TuxCM]> [Coke]: tux.nl/Files/uchar-nopro
[Coke] Tux++
14:32 smls joined 14:38 yqt joined
ab6tract perl6 appears to respect CLASSPATH (at least, it chokes when it is malformatted in any way). however, loading modules from the CLASSPATH doesn't seem to be working... that is, what works in perlito5 with hte same enviornment is not loadable from perl6 14:42
14:58 rurban_ left, virtualsue joined
jdv79 what is the failure mode for >>.? should all other tasks be cancelled asap or let them complete? 15:00
i couldn't find it in the spec
when >>. is async that is
15:03 hoelzro_ii joined 15:05 salv0 left 15:06 spider-mario left
[Coke] .ask tux if uchar has been tested on OS X? (I just installed quartz, xrdb, and now it runs without x errors, but if I run "uchar -d STUFF" it just prints out the original word. 15:10
yoleaux [Coke]: I'll pass your message to tux.
15:14 zakharyas left 15:17 nowan joined 15:20 donaldh left 15:21 donaldh joined
ab6tract .ask psch any clues on what might be borking module loading from non-SDK modules which also happen to be in CLASSPATH? 15:23
yoleaux ab6tract: I'll pass your message to psch.
raiph .tell moritz Did you mean `use Perl6::Grammar:from<NQP>` (ie no space before `:from`)? 15:25
yoleaux raiph: I'll pass your message to moritz.
raiph star: use LWP::Simple; LWP::Simple.get('api.ipify.org').say; LWP::Simple.mirror('api.ipify.org') # Perl 6 LWP::Simple clone doesn't support `mirror`, so... 15:26
camelia star-m 2015.03: OUTPUT«78.47.60.231␤No such method 'mirror' for invocant of type 'LWP::Simple'␤ in block <unit> at /tmp/4OekuvQXz3:1␤␤» 15:27
15:27 Ven is now known as Guest11249, Guest11249 is now known as Ven_
raiph star: use LWP::Simple:from<Perl5>; LWP::Simple.get('api.ipify.org').say; LWP::Simple.mirror('api.ipify.org') # ... thought I'd try this but does the `:from<Perl5>` actually work? 15:27
camelia star-m 2015.03: OUTPUT«78.47.60.231␤No such method 'mirror' for invocant of type 'LWP::Simple'␤ in block <unit> at /tmp/siur_BbOHa:1␤␤»
ab6tract raiph: I think you need to use Inline::Perl5 first 15:28
timotimo star: use LWP::Simple; LWP::Simple.get('api.ipify.org').say
camelia star-m 2015.03: OUTPUT«78.47.60.231␤»
timotimo hm, doesn't seem rigght
raiph timotimo: LWP::Simple is bundled with Star
timotimo mhm 15:29
[TuxCM] [Coke], not tested on OSX
timotimo it'd be sensible to have it throw an exception if the :from isn't supported or something?
star: use LWP::Simple:from<lua>;
camelia ( no output )
[TuxCM] developed ages ago on HP-UX for testing diacriticals we needed for our GBA
ab6tract timotimo: agreed
raiph is this because camelia's star is too old?
itz . o O ( HP-SUX )
[TuxCM] itz, why? 15:30
[TuxCM] would understand such a snark remark about AIX
itz foldoc.org/HP-SUX :)
[TuxCM] have you ever works on it? 15:32
ab6tract star: use Thing:from<nonlang>
camelia star-m 2015.03: OUTPUT«===SORRY!===␤Do not know how to load code from nonlang␤»
ab6tract star: use Thing:from<lua>
camelia star-m 2015.03: OUTPUT«===SORRY!===␤Do not know how to load code from lua␤»
ab6tract funny :) 15:33
timotimo yeah, it only errors out if it finds no module at all
geekosaur only familiar with an ancient version of hp/ux where an open file couldn't be deleted (unlike most unixlikes, but like windows)
timotimo it seems like the :from is more or less a tiebreaker in its implementation
itz not since the early 90s
15:33 g4 left
[TuxCM] geekosaur, still true for share libraries that are used from memory. I don't recall it ever being true for files opened with an editor or somesuch 15:34
geekosaur also, AIX was a great OS. just don't make the mistake of thinking it's a unixlike :)
[TuxCM] AIX sucks on *all* levels except its file system implementation
geekosaur [TuxCM], this was in the context of the unix anonymous temp file hack: open/create and immediately unlink, leaving only the fd
ugexe lizmat: i was looking to implement absolutify() inside CURLy so CURLI could absolutify `provides` and `bin` paths. so i'm clear on its purpose, is it correct that $p1.absolutify($p2) would work would like rel2abs? or is absolutify meant to work with no arguments? 15:35
[TuxCM] which fool thought it would be a great idea to put 64bit objects and 32bit objects in the same library?
geekosaur and, um, this was in the late 1980s
[TuxCM] and allow the same object names for both
15:36 xfix joined
timotimo why not? 15:36
sounds like FatELF and what osx has
ab6tract timotimo: well, fwiw, :from<Java> is essentially broken for me
[TuxCM] because you cannot see from outside if there is any valid content in it
15:36 spider-mario joined
geekosaur (having my first serious C program be a BBS meant some interesting long distance calls at odd hours...) 15:36
[TuxCM] just testing for the file is void. loading the lib needs specific ENV vars
and it makes porting OSS very hard, as most of the projects remove the library before the add the objects 15:37
that means you have to build for 32bit, safe the lib, rebuild for 64bit 15:38
ugexe without an argument to absolutify i dont see how, with its current attributes/methods, to determine the actual absolute path
[TuxCM] use ENV and ar flags to add the objects from the saved lib to add those to the newly created lib
15:39 yqt left
[Coke] jnthn: how might I get a list of all the characters that are combiners? 15:42
jnthn m: (^1000).grep({ uniprop($_, 'Canonical_Combining_Class') != 0 }).map(&uniname).say 15:43
camelia rakudo-moar b1a56a: OUTPUT«COMBINING GRAVE ACCENT COMBINING ACUTE ACCENT COMBINING CIRCUMFLEX ACCENT COMBINING TILDE COMBINING MACRON COMBINING OVERLINE COMBINING BREVE COMBINING DOT ABOVE COMBINING DIAERESIS COMBINING HOOK ABOVE COMBINING RING ABOVE COMBINING DOUBLE ACUTE ACCENT CO…»
jnthn But look beyond the first 1000, of course ;)
timotimo m: say 100.&uniprop('Canonical_Combining_Class') 15:45
camelia rakudo-moar b1a56a: OUTPUT«0␤»
15:48 spider-mario left
[Coke] weird, getting Cannot convert string to number: base-10 number must begin with valid digits trying to compare to 0. 15:50
jnthn Oh, maybe you're tripping up on unassigneds... 15:51
Or "Not_Reordered" or so
jnthn forgot the Unicode data isn't all integers
timotimo turns out i didn't find any gnome introspection stuff for gtksourceview because it's called "GtkSource-3.0.typelib"
and i saw it and was like "... that's not it for sure" 15:52
15:52 telex left
[Coke] jnthn: '888':'Not_Reordered' 15:52
easy enough to fix. :)
jnthn .grep({ +uniprop($_, 'Canonical_Combining_Class') }) may do it
TimToady m: .say for (^1000).grep({ uniprop($_, 'Canonical_Combining_Class') ne 0 }).map(&uniname)
camelia rakudo-moar b1a56a: OUTPUT«COMBINING GRAVE ACCENT␤COMBINING ACUTE ACCENT␤COMBINING CIRCUMFLEX ACCENT␤COMBINING TILDE␤COMBINING MACRON␤COMBINING OVERLINE␤COMBINING BREVE␤COMBINING DOT ABOVE␤COMBINING DIAERESIS␤COMBINING HOOK ABOVE␤COMBINING RING ABOVE␤COMBINING …»
jnthn Or that... 15:53
hoelzro o/ #perl6
15:54 telex joined
hoelzro jnthn++ # fixing RT issues 15:57
15:59 RabidGravy left
dalek ecs: 91635d4 | jnthn++ | S14-roles-and-parametric-types.pod:
Elaborate on meta-structure of roles.

This also explains and justifies making `our` declarations inside of roles a compile-time error.
15:59
ast: 42f32cc | jnthn++ | S (2 files):
Remove tests out of line with current design.
16:02
ast: a722e02 | jnthn++ | S14-roles/basic.t:
Update test to match current design.

While the ticket complained about our $.x and my $.x in roles, only the former was covered in the test. This changes it to cover the latter, which is valid.
kudo/nom: 05edaa4 | jnthn++ | src/ (2 files):
Don't allow our packages inside of roles.
kudo/nom: e80b49a | jnthn++ | src/Perl6/ (2 files):
Disallow our-scoped subs in roles.
kudo/nom: 31a083f | jnthn++ | src/Perl6/Actions.nqp:
Disallow our-scoped variables in roles.
16:04 spider-mario joined, sunwenjie left, sunwenjie joined
ab6tract .ask psch the module loader code for NQP... is there no native-Java way to find a class? can't we just s/::/./ and load the class? I know that CLASSPATH issues are notoriously common in Java, but still... 16:05
yoleaux ab6tract: I'll pass your message to psch.
[Coke] m: say "a" ~ chr(774); 16:06
camelia rakudo-moar b1a56a: OUTPUT«ă␤»
ab6tract at present, even though I have '.' in my CLASSPATH, I cannot load a ./Module.class or ./Module.java via use Module:from<Java> (using a short, stupid name for the sake of example)
dalek c: fd4b367 | jdv79++ | lib/Language/concurrency.pod:
Start of section on safety.
16:08
ast: f205c13 | jnthn++ | S14-roles/namespaced.t:
Test RT #73390, RT #100468, RT #88750, RT #76450.
16:09
jnthn There's another of those 6-year-old tickets dealt with :) 16:11
16:11 RabidGravy joined, chansen_ joined
TimToady jnthn: what's your feeling on when we should start hacking seriously on GLR? 16:12
16:12 clkao joined
jnthn TimToady: "Soon" :) 16:13
TimToady: I have very few $dayjob responsibilities this month 16:14
TimToady: Uh, for Aguust I mean :)
*August
TimToady do you think we can get it out for the Aug release?
jnthn If we can be decisive enough about things.
I was pondering the various types and their relationships on the flight home last night 16:15
16:16 donaldh left
TimToady we definitely need to make a harder distinction between iterators and lazy arrays-of-non-containers 16:16
jnthn Indeed
[Coke] tux, lizmat, jnthn : here's uchar -d: gist.github.com/coke/a6185c6ecdeec5e83bd3
m: say "3" neq "4" 16:17
camelia rakudo-moar b1a56a: OUTPUT«5===SORRY!5=== Error while compiling /tmp/iFFgkRq0Q3␤Two terms in a row␤at /tmp/iFFgkRq0Q3:1␤------> 3say "3"7⏏5 neq "4"␤ expecting any of:␤ infix␤ infix stopper␤ postfix␤ statement end␤ sta…»
[Coke] I wonder if adding a helpful message there about using "ne" instead of "neq" would help. 16:18
jnthn I pondered a bit what happens if we make List be what Parcel is now, only Array gets .shift and friends, and we have some type (I called it Generator to have a working name) for things that produce values but aren't committed to keeping them around.
TimToady what's "neq"?
jnthn And it turned out that nearly everything produced a Generator... :P
TimToady did you mean !eq?
[Coke] TimToady: it's how pascal-like languages spell ne.
16:18 pnu joined
jnthn And then it wasn't clear what type thigns like .eager, .hyper, etc. produced. 16:19
[Coke] just took me a second to figure out I wasn't writing coldfusion. :)
16:19 ggherdov joined
TimToady jnthn: I think of those as negotiators 16:19
jnthn Do you have a feel for how "deep" they go? 16:20
.map(...).map(...).hyper # is the hyper just about that final map?
TimToady I'm hoping it goes deeper, for optimization purposes 16:21
you'd like to be able to hand nested mappings to a single processor, so you don't have pipelining overhead along with threading 16:22
(my gut tells me)
jnthn Right, that's the desirable thing about it going deeper
16:22 FROGGS joined
jnthn The problematic bit is @thing-i-don't-know-about.map(...).hyper 16:22
16:23 zoosha joined
jnthn And I've no idea if the thing I don't know about can have any unevaluated things safely evaluated over many threads. 16:23
In other words, I'm worrying about composability.
As a data point, PLinq (the .Net parallelized implementation of map, grep, etc.) makes you mark out where in a pipeline it's safe to parallelize, and then lets you opt out of it again deeper in. 16:24
16:24 Spot__ joined
jnthn So it has a "region" it knows you've declared safe. 16:24
TimToady well, everything would need to know the range of its capabilityes, and the negotiation restricts that actual possibilities to the intersection of the output and input capabilities 16:25
I also see interational ops as returning a negotiator, and it's not till someone actually starts pulling stuff that you actually set up the whole pipeline 16:26
jnthn Sure, but sub foo() { my %h; $file.words.map({ %h{$_}++ }) }; foo.map(...).hyper # how do we know the map inside of the thing returned from the sub will be upset by parallelism during the neogiation?
TimToady perhaps that's like what you're saying about opting out later
jnthn Oh, I can easily agree on not setting up the pipeline until we actually start pulling stuff. That's exactly the way Supply pipelines work. 16:27
TimToady good question
jnthn I think my question is orthogonal (and better captured by the example I just gave) 16:28
TimToady I suppose in that particular case we've got to notice that the map refers to something extern that is not threadsav^Hfe
sorry for typos, laggy connection...
jnthn np
16:28 FROGGS left
jnthn Well, it's really easy for not threadsafe things to get disguised though... Which is why we've tended towards explicit things like .hyper and .race to opt in and say "I promise this is safe" 16:29
TimToady so maybe we need to separate the markers for can-hyper vs want-hyper somehow 16:31
or can-whatever-this-pipeline-can
jnthn Maybe something like that, yeah.
I'd really like to take care of .hyper and .race during the GLR work, anyways. So we are sure we have the API to do them.
(Or didn't do anything to stop us having them.)
16:31 ab6tract left 16:32 dakkar left
TimToady if we do one level to start, let's at least not preclude deeper 16:32
16:34 araujo joined
jnthn *nod* 16:34
16:34 araujo left
TimToady if we negotiation a strictly lazy pipeline, can we get to the point where our getters are just nested closures, or does that buy us anything over an OO approach? 16:34
jnthn Well, at the moment we do far better at optimizing chains of method calls than nested closures 16:35
16:35 araujo joined
jnthn Both on Moar and on JVM 16:35
We can inline method calls successfully already.
TimToady okay
a bunch of metaops are done with FP currently though 16:36
jnthn We don't do well at inlining things that close over outer state so far.
Yeah, we may want to refactor some of that. The operators themselves don't tend to close over anything, so should be inlinable.
Well, not sure they are now, but that's an achievable amount of work, I think. 16:37
(In the context of meta-ops, I mean. We can inline most operators in "normal" use.) 16:38
Anyway, I'd lean to a more object-y API for iterators.
TimToady well, most of 'em need state anyway
smls jnthn: In your GLR idea, what would be the difference between Generator and Iterator? 16:39
yoleaux 06:25Z <timotimo> smls: could you be super nice and fetch the newest dll files for gtk-simple for me to put onto hack? or maybe give me a script or instructions where they can be found, exactly? also, if you could grab gtksourceview-3 in addition to what we already have, that'd be swell :)
jnthn Aye, but if that's carried in attributes, we're really good at optimizing access to those.
smls hm, timotimo's message was not meant for me was it? 16:40
jnthn smls: Generator = a think that produces values if iterated
*a thing
16:41 captain-adequate joined, diana_olhovik_ left
timotimo smls: not? 16:41
jnthn And the Iterator is the thing you actually use to obtain values.
smls timotimo: Well, I don't understand what it's about
timotimo you are right 16:42
i really wanted retupmoca
i just lazily looked at the GTK::Simple git log
smls ah :) 16:43
dalek rl6-roast-data: 51374e9 | coke++ | / (9 files):
today (automated commit)
16:43 espadrine left
TimToady jnthn: I dunno, stackoverflow.com/questions/1022564...-generator seems to say it kinda the other way around 16:44
in any case, the concepts kinda blur when you're mixing FP and OO
I never could keep them straight :)
jnthn If you know who C# does it, then I'm using Iterator for something like IEnumerator (but we'll need to fold a good bit more into ours) and Generator for IEnumerable 16:45
*how
But really, I'm using Generator for "the type of thing you get from .map, xx, lines, etc." - something you actually normally encounter as a programmer 16:46
[TuxCM] [Coke], mine also takes into account which of those are supported by the current font. That might be why you got those X errors
TimToady by the SO definition, a generator is just an iterator with an implicit object somewhere, and an iterator is an object that supplies a generator-like method
jnthn And Iterator as the API used to pull things through the pipeline.
16:47 rurban joined
jnthn Well, I'm mostly trying to say that the type genCountingNumbers() returns is something user-visible, but the thing your implementation of map (or for) obtains in order to actually walk through the values is something else. 16:48
(It *is* user-visible I guess, but you rarely need to work at that level.)
TimToady right, map/for really interrogate their argument (singular) for an iterator to pull from 16:50
jnthn So for $value -> $x { ... } is roughly my $tmp1 = $value.iterator; my $tmp2 = -> $x {...}; while $tmp1 { $tmp2($tmp1.pull) }
TimToady right 16:51
and we'll have to teach p5 programmers that there aren't really any lists, syntactically speaking, just singular objects that can behave like lists 16:52
well, except insofar as comma is syntactic 16:53
smls jnthn: "Iterator as the API used to pull things through the pipeline" -- isn't that Iterable (the role) rather than Iterator (the class)?
jnthn smls: Iterator probably is a role
smls oh
jnthn Like IEnumerator is
smls m: say Iterable; say Iterator;
camelia rakudo-moar 31a083: OUTPUT«(Iterable)␤(Iterator)␤»
timotimo "Iterable" sounds more like something you can grab earlier values out of - or perhaps only "start again from the beginning"?
jnthn smls: I'm not talking about how things are now, but how I think they should be post-GLR, fwiw. 16:54
TimToady smls: if you're asking about how it is now, it's confused now
16:54 smls left
jnthn And Iterable is just something like role Iterable { method iterator() { ... } } 16:54
16:54 smls joined
TimToady we overloaded .list for too many things 16:54
jnthn Indeed, and the List type.
smls ok
jnthn Anyway, I'll maybe avoid using the word Generator 'cus it's perhaps loaded in ways I didn't intend. 16:55
16:55 raiph left
jnthn I mostly mean "a thingy that, when iterated, may forget its values" 16:56
TimToady but if we think of a gather/take as a generator, it kinda fits into the notion that you have code producing values rather than an object
jnthn Well, gather/take is one of the things I'd have said returns a Generator in the way I used the word, yes
smls pmichaud proposed 'Seq' as a provisional name for that, didn't he?
jnthn But it turns out that almost every list operation then will
smls: Yes 16:57
TimToady internal types don't really need short names though
jnthn I could live with that name for it too
Well, I don't see it as internal
my $thing := gather ...; # $thing would be whatever the type we're talking about is called
TimToady okay 16:58
16:59 itz left
jnthn The "what happens when the thing gets a name so can be iterated multiple times" question is the fun one. 16:59
TimToady does it make sense for me to continue trying to prototype things from the top down? or will everything naturally rewrite itself from the bottom up in time for us to play with it? 17:00
jnthn Which led me to wonder if the thing gather and friends return has some .memoize() method, and ::='ing it into an @foo would call that for you, at which point it has to remember.
TimToady I don't think iterators ever promise to be reiterable, but maybe I could be wrong sometimes 17:01
jnthn It's not the *iterator* that promises
It's the source of values the iterator lets you move through.
TimToady well, if you're bind it to something that promises, then you have to remember the values
but you're not talking about caching values here? 17:02
timotimo you really mean ::=?
compile-time bind?
smls Btw, what is the motivation for having it as a different type from List (rather than a property that a List may have)?
jnthn TimToady: I mean "what signature binding does", which we already know is distinct from :=
TimToady ::= isn't compile-time bind
jnthn uh, ^ was for timotimo :)
TimToady smls: what is "it"? 17:03
smls Generator
timotimo oh, that's :::= ?
TimToady looks worriedly at timotimo 17:04
ChoHag Did I stumble into a Gilette board meeting?
timotimo .. didn't we have something like that at some point?
jnthn sub foo(@x) { say @x.elems; for @x { .say } }; foo(lines())
17:04 Hor|zon left
TimToady give away the handle, sell the razors 17:04
timotimo: are you confusing the readonly that ::= does with compile time? 17:05
jnthn I'm saying that the above isn't going to work if we don't at some point do something to make whatever we bind to @x remember the values produced by lines
TimToady readonly is still a runtime concept
timotimo ... maybe? i remember something like that from somewhere ... sorry for the noise
jnthn And we need to pick carefully any places that happens "magically"
sub foo(\x) { say x.elems; for x { .say } }; foo(lines()) # I'd maybe expect this to *not* work out well, for example
TimToady my inclination is to attach that to the @ sigil 17:06
jnthn Mine too
TimToady maybe we can sell razor subscriptions as well, and encourage people to change their razors more often than they otherwise would
jnthn I suspect we're probably at the point where I need to start writing the bottom-up code so we have something more concrete to work around. 17:07
TimToady it would relieve my anxiety a bit if we got started on it :)
b2gills TimToady: really it should be looked at from both bottom up and top down ( thinking like that has helped John Deere at their manufacturing plants ) 17:08
jnthn TimToady: Yes, mine too ;) 17:09
And now I'm successfully married, relocated, don't have a course to finish writing, and don't feel dizzy half the time any more, I'm in a decent place to work on it :) 17:10
17:11 njmurphy joined
ChoHag jnthn: Recently married? 17:11
I suggest not having kids if you like programming.
TimToady hey, I had four
ChoHag You got the rest of the world to do your programming for you. 17:12
timotimo thing is, babbies don't come with JTAG
jnthn :)
TimToady actually, I made enough programming that I could afford a stay-at-home wife 17:13
but yes, in the sense that the real programming is mostly out on CPAN, I agree
Perl was the razor handle, and CPAN the blades 17:14
jnthn needs a keyboard break, not to mention a dinner break...
I'l bbl
TimToady should go get his car smogged...
jnthn I thought it was the car that made the smog? :)
TimToady desmogged
jnthn Maybe that's just in Beijing...
Anyway, back in a bit :) 17:15
TimToady one of those classes of words where the negation means the same thing; I peeled the banana, I unpeeled the banana
ChoHag Speak of the devil (is that the right phrase...?) my daughter's back.
jnthn
.oO( I untyped on IRC )
17:16
17:22 xfix left, preyalone joined 17:24 mr-foobar joined 17:26 diana_olhovik joined 17:46 abraxxa left, llfourn left 17:56 Hor|zon joined
ChoHag What's the 'right' way to get the class name of self? 17:59
self.WHAT.perl works but looks like it a 'wrong' way.
timotimo self.WHAT.name sounds like a better idea 18:00
m: say "foo".WHAT.name
camelia rakudo-moar 31a083: OUTPUT«Method 'name' not found for invocant of class 'Str'␤ in block <unit> at /tmp/JbfgZkudu1:1␤␤»
timotimo er
m: say "foo".WHAT.^name
camelia rakudo-moar 31a083: OUTPUT«Str␤»
timotimo is what i meant
m: say "foo".^name
camelia rakudo-moar 31a083: OUTPUT«Str␤»
18:03 Ven_ left
ChoHag Thanks. 18:04
18:07 rurban left 18:10 cognominal_ joined, jinxter joined 18:13 cognominal left 18:21 domidumont joined 18:23 dwarring joined 18:25 domidumont left 18:26 domidumont joined 18:29 cognominal__ joined 18:32 flussenc1 joined, TEttinger joined 18:34 sergot_ joined, nowan_ joined, zoosha_ joined, chansen_ left, flussence left, robinsmidsrod left, cognominal_ left, zoosha left, rindolf left, sergot left, nowan left 18:36 rindolf joined
leont Awesome, moar is crashing with a "double free or corruption"􏿽x85 18:37
18:37 vendethiel joined
tadzik Lovely :) 18:37
18:38 jinxter left, jinxter joined
RabidGravy noice 18:38
18:41 flussenc1 is now known as flussence
timotimo ouch 18:42
you can Configure.pl your moarvm with --asan
that'll give you lots of diagnosis info
18:42 chansen_ joined 18:43 diana_olhovik left 18:46 diana_olhovik_ joined 18:51 [Sno] left 18:55 jinxter left
leont It's in mutli-threaded code, so the mistake may be mine, but if so it's subtle 18:56
timotimo right, i'm just now handling a segv in a six-threaded program 18:57
jnthn Well, we still shouldn't SEGV ever, unless you screw up with NativeCall
The one timotimo has was hit by someone else not long ago too 18:58
18:59 robinsmidsrod joined
timotimo well, this is also with nativecall 19:00
but nativecall shouldn't cause the gc to stumble over a nulled STable
19:00 dolmen left
jnthn Right, this is clearly a GC bug 19:00
19:02 Ven joined
[Coke] sees a lot of non-git-friendly commit messages in the past 2 weeks or so. 19:03
timotimo hm?
[Coke] thinks git friendly has the gist of the commit in the first...50ish characters.
timotimo oh, text on the second line?
hobbs short first line, blank line, paragraphs after 19:04
jnthn tries to stick to that
I edit the messages with Vim which does pretty colors to tell me off if I'm getting it wrong :)
timotimo has trouble making the first line very short most of the time
yup
ChoHag "Hacked on stuff. See below." 19:07
timotimo that's not helpful :)
ChoHag Accurate though.
timotimo that's both true for so many things :) 19:08
19:08 Ven left
flussence the summary line is supposed to reflect what's in the commit itself, so if the summary itself is too big... 19:10
.oO( ...use a smaller font size )
19:13 dolmen joined 19:14 zakharyas joined 19:22 baest left
timotimo sometimes i already struggle with a one-line-change 19:24
19:25 yqt joined 19:27 virtualsue left 19:41 esaym153 joined
ChoHag I guess there's always tweet-speak. 19:41
esaym153 so, totally off topic... what cell phone does Larry Wall (TimToady) use? :)
timotimo is that very different from txtspk? 19:42
ChoHag I don't really know the details. I'm too old for both.
I just know it's basically compression.
timotimo hm-hm
ChoHag Lossy.
19:42 preyalone left 19:43 llfourn joined 19:46 amurf joined 19:47 llfourn left 19:50 amurf left 19:56 Ven joined, Ven left 20:00 darutoko left 20:02 virtualsue joined 20:07 virtualsue left, virtualsue joined 20:08 virtualsue left, virtualsue joined 20:09 virtualsue left, virtualsue joined 20:11 [Sno] joined
dalek pan style="color: #395be5">perl6-examples: 7e9c6c0 | (Steve Mynott)++ | categories/cookbook/17sockets/17-01tcp_client.pl:
.sock to .print
20:18
itz__ .send that is :/
20:24 rurban joined
dalek c: 45a260a | paultcochrane++ | lib/Type/IO/ArgFiles.pm:
Document $*ARGFILES
20:25
20:26 lucasb joined
lucasb m: fail 20:28
camelia ( no output )
lucasb should that... fail? 20:30
20:30 zakharyas left
timotimo hm, the last statement gets sunk 20:31
it should throw, shouldn't it?
lucasb yeah, I was expecting it to fail; I'm on an outdated revision locally, and it throws here 20:33
20:34 virtualsue left 20:37 ChoHag left 20:38 raiph joined 20:43 llfourn joined 20:48 llfourn left 20:49 coffee` left 20:50 Khisanth left 20:51 Khisanth joined
ab5tract_ is still marvelling at moar's speed when while looping with native integers 20:52
*when while-looping 20:53
21:01 skids left 21:03 dj_goku_ joined, dj_goku_ left, dj_goku_ joined 21:04 mattp__ joined 21:05 leont left, Psyche^_ left, dj_goku left, apejens joined, Psyche^ joined 21:06 leont joined
ab5tract_ ugexe: I'm enjoying your posts about zef! 21:07
21:08 virtualsue joined
ab5tract_ my @basenames = @processes.flatmap(*.flat).flat>>.id>>.IO>>.basename; # this line makes me sad though 21:11
I was going to try to convince you that `@processes.map: *.id.IO.basename;` was an even cleaner why to write what you wanted. 21:12
but it looks like you've already had to adjust the code for flattening 21:13
21:14 raiph left 21:17 jjido joined 21:20 lucasb left 21:22 raiph joined
tony-o hail zef 21:22
21:27 muraiki left, diana_olhovik_ left
ab5tract_ m: module N { our $foo = "thingy"; our $thingy = "other thingy"; }; say N::<<\${N::<$foo>}>>; say my $other ="\${N::<$foo>}"; say N::<<$other>>; 21:30
camelia rakudo-moar 31a083: OUTPUT«(Any) (Any)␤$thingy␤other thingy␤»
ab5tract_ ah, wait.. I'm misunderstanding << >> in this context 21:31
tony-o what are you sinking it means?
ab5tract_ tony-o: well, actually I was misholding it for every context.
m: module N { our $foo = "thingy"; our $thingy = "other thingy"; }; say N::<<"\${N::<$foo>}">>; 21:32
camelia rakudo-moar 31a083: OUTPUT«other thingy␤»
21:33 domidumont left
ab5tract_ I was thinking of it as qq{ } rather than qw( ) (to explain it in p5 terms) 21:34
ugexe ab5tract_: thanks. that line is so convoluted because now my processes structure looks like [[1,2,3],[4],[5,6]] (chunks to process in parallel), so i had to shoehorn that in to get by for now 21:55
TimToady hopefully this gets more betterer after GLR 21:57
timotimo many people are counting on it :P 21:58
22:04 geekosaur joined 22:16 rurban left
tony-o ===> Precompiling [done] 22:16
oops
22:18 telex left 22:20 telex joined
dalek kudo-star-daily: 525a101 | coke++ | log/ (9 files):
today (automated commit)
22:25
22:31 smls left 22:32 rangerprice joined 22:34 rangerprice left
ab5tract_ ugexe: I see.. I wonder if this snippet offers anything useful: 22:36
m: my @f.push: [<oo ooo oooo>] xx 20; ( @f.values.map: { [ @($^g)>>.succ ] } ).perl.say
camelia rakudo-moar 31a083: OUTPUT«(["op", "oop", "ooop"], ["op", "oop", "ooop"], ["op", "oop", "ooop"], ["op", "oop", "ooop"], ["op", "oop", "ooop"], ["op", "oop", "ooop"], ["op", "oop", "ooop"], ["op", "oop", "ooop"], ["op", "oop", "ooop"], ["op", "oop", "ooop"], ["op", "oop", "ooop"], ["…»
22:38 vendethiel left
ab5tract_ that's the (arguably, of course) cleanest approach for operating on every element of a uniformly [ [],[],[],.. ] LoL 22:39
it was certainly the cleanest that I was able to muster
22:43 skids joined 22:44 hoelzro_ii left, llfourn joined
ugexe my @basenames = @processes.values.map: { @($^a)>>.id>>.IO>>.basename } # same number of characters, but agree its cleaner. ab5tract_++ 22:48
22:48 llfourn left
jjido ab5tract_: funny. I guess operating on the first character instead of last would not be as "clean" 22:48
ugexe >>.reverse>>.succ>>.reverse :o 22:49
ab5tract_ jjido: not sure what you mean 22:50
jjido m: my @f.push: [<oo ooo oooo>] xx 20; ( @f.values.map: { [ @($^g)>>.succ>>.reverse ] } ).perl.say 22:51
camelia rakudo-moar 31a083: OUTPUT«(["op", "oop", "ooop"], ["op", "oop", "ooop"], ["op", "oop", "ooop"], ["op", "oop", "ooop"], ["op", "oop", "ooop"], ["op", "oop", "ooop"], ["op", "oop", "ooop"], ["op", "oop", "ooop"], ["op", "oop", "ooop"], ["op", "oop", "ooop"], ["op", "oop", "ooop"], ["…»
jjido m: my @f.push: [<oo ooo oooo>] xx 20; ( @f.values.map: { [ @($^g)>>.succ]>>.reverse } ).perl.say
camelia rakudo-moar 31a083: OUTPUT«((("op",), ("oop",), ("ooop",)), (("op",), ("oop",), ("ooop",)), (("op",), ("oop",), ("ooop",)), (("op",), ("oop",), ("ooop",)), (("op",), ("oop",), ("ooop",)), (("op",), ("oop",), ("ooop",)), (("op",), ("oop",), ("ooop",)), (("op",), ("oop",), ("ooop",)),…»
jjido oh well. I was joking about "poo" 22:52
ab5tract_ ugexe: you know, I've been really enjoying how concise >>. is. then as soon as I have to do something like >>.method>>.chain>>.for>>.days, I start to wish for something even more precise!
#perl6-problems
ugexe i know your pain 22:53
ab5tract_ jjido: haha! it's late here, that was my fault for not getting the joke ;)
speaking of which, I think I'm going to call it a night
jjido ok good night
22:57 RabidGravy left
ab5tract_ not to poo all over the place but.. 23:03
m: "ooo".succ.comb.reverse.join # this works
camelia ( no output )
ab5tract_ m: "ooo".succ.comb.reverse.join.say # this works 23:04
camelia rakudo-moar 31a083: OUTPUT«poo␤»
ab5tract_ @(["ooo" xx 20])>>.succ>>.comb>>.reverse>>.join.say # should I expect this to work?
if not, how can we determine under which conditions a hyper-chain of methods would differ from it's non-hyper behavior 23:06
m: @(["ooo" xx 20])>>.succ>>.comb>>.reverse>>.join.say # oop s ;)
camelia rakudo-moar 31a083: OUTPUT«o o p o o p o o p o o p o o p o o p o o p o o p o o p o o p o o p o o p o o p o o p o o p o o p o o p o o p o o p o o p␤»
ab5tract_ okay, that was too muc time spent on 'poo'.. out for real now :) 23:07
23:11 amurf joined 23:13 raiph left 23:15 inokenty left 23:18 Sgeo_ joined
Sgeo_ Does (1|2|3) + (4|5|6) make sense? By analogy with Haskell's List monad, I would expect 5|6|7|6|7|8|7|8|9 or 5|6|7|8|9 if duplicates automatically get removed 23:19
23:19 virtualsue left 23:21 Peter_R joined
TimToady m: say (1|2|3) + (4|5|6) 23:29
camelia rakudo-moar 31a083: OUTPUT«any(any(5, 6, 7), any(6, 7, 8), any(7, 8, 9))␤»
TimToady it doesn't dedup at the moment
23:30 jjido left
Sgeo_ Would that nesting cause it to behave differently from 5|6|7|6|7|8|7|8|9? 23:30
TimToady well, junctions aren't ordered, but if you wrote that junction, it should work the same, I think 23:31
Sgeo_ m: say so 8 == ((1|2|3) + (4|5|6))
camelia rakudo-moar 31a083: OUTPUT«True␤»
TimToady m: say 5|6|7|6|7|8|7|8|9
camelia rakudo-moar 31a083: OUTPUT«any(5, 6, 7, 6, 7, 8, 7, 8, 9)␤»
TimToady doesn't dedup even there really
Sgeo_ Not as interested in the dedup as I am in the nesting 23:32
I can't make my own not-Anys that twist around the meaning of calls that have them as arguments that are expecting Any, can I? 23:33
TimToady well, the outside of Any is reserved for future concepts, so the intent is to support that sort of thing eventually 23:35
we only use it for Junction currently
so I don't know how hardwired the Junction dispatch is, or whether it would handle other types 23:37
ShimmerFairy IIRC "Each" once existed and was outside of Any too, and it was similar to Junction. 23:39
23:40 spider-mario left