»ö« 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.
lue rurban++ Maybe it wouldn't hurt to add them to the Perl_6 page too? :) 00:00
rurban aah, one after another
lue ? did I accidentally unleash the specter of AfD on the main Perl 6 too? 00:01
rurban This is also a good one: www.infoworld.com/d/open-source/per...perl-6-445
jnthn If conference talks also count as references, I'm sure many such things can be found. 00:02
rurban If major news outlets cite conference talks. yes. oscon usually
en.wikipedia.org/wiki/Perl_6#Implementations needs to fix the "As of 2009 multiple Perl 6 implementations are under development, but none of them are considered "complete"" 00:04
00:10 ajr_ left 00:13 dmol joined, dmol left 00:16 BenGoldberg left 00:17 BenGoldberg joined 00:18 btyler left
japhb jnthn: The thing that most struck me about the AfD in question was that it was submitted on *Christmas*. Talk about a Grinch! 00:21
rurban They count Keep vs Delete on this page: en.wikipedia.org/wiki/Wikipedia:Ar...udo_Perl_6
00:22 thou joined 00:23 spider-mario left
rurban en.wikipedia.org/wiki/Wikipedia:GNG 00:24
lue japhb: what struck me the most is that it seems as though there was no period of time with the "has unreliable 1st party sources" infobox on the page, the guy just went straight for the deletion. 00:30
His search for reliable sources may have turned up nothing, but it should have turned up a vibrant and alive community with possibly somebody who could improve the article. 00:31
00:38 kurahaupo_mobile joined 00:43 wooden left 00:50 hoverboard left
segomos_ to his credit it doesn't say he searched the internet (tm) 00:51
lue segomos_: "A search turns up nothing better." I realize it doesn't say "Internet", but I'm not sure what else he could have searched :) 00:54
segomos_ probably spun around in his chair and saw nothing in the room to remind him of perl 6 and smugly put the punctuation on that sentence, then called it a day 00:55
BenGoldberg Maybe he visited his library, and looked on the shelves. 00:56
lue Yeah, rurban showed us that it doesn't take that long to find something, if you're trying. 00:57
01:00 immortal joined
lue But I'm a follower of WP:AGF, so I get the sense that he just simply missed the usable references. 01:01
lue &
perigrin lue: he could have searched his sock drawer, or behind the couch, or "all the lands of azeroth"
01:02 erkan left 01:04 abnorman left 01:10 gcole joined 01:13 daniel-s_ joined 01:26 hoverboard joined 01:29 gcole left, gcole joined 01:33 gcole left, gcole joined 01:43 kivutar left 02:03 abnorman joined 02:19 evgenyleg joined 02:29 evgenyleg left
japhb preflex: ask jnthn What is the relative priority of async sockets in your start-of-year hacking queue? 02:35
preflex Consider it noted.
02:35 abnorman left, Guest24869 is now known as ponbiki
segomos_ his user page has been vandalized 9 times 02:47
03:00 finanalyst joined
finanalyst r: class A { has $.a is default(2) }; my A $x.=new(); say $x 03:01
camelia rakudo-jvm a77214: OUTPUT«===SORRY!=== Error while compiling /tmp/dRDCXLRf8n␤Can't use unknown trait 'is default' in an attribute declaration.␤at /tmp/dRDCXLRf8n:1␤------> ␤ expecting any of:␤ rw␤ readonly␤ box_target␤»
..rakudo-parrot a77214: OUTPUT«===SORRY!=== Error while compiling /tmp/De4jMdifW8␤Can't use unknown trait 'is default' in an attribute declaration.␤at /tmp/De4jMdifW8:1␤------> ␤ expecting any of:␤ rw␤ readonly␤ box_target␤»
lue wonders who Bitasc is, and why they apparently created an account just to leave an unhelpful comment.
03:02 ivanshmakov left
finanalyst hello anyone. I was looking at 'is default'. Tried using it in a class. Got compile error. Is this a bug or spec? 03:03
class A {has $.a is rw = 3; }
lue finanalyst: is that 'rw' supposed to be 'default'? 03:04
finanalyst r: class A {has $.x is default(2)}
camelia rakudo-parrot a77214: OUTPUT«===SORRY!=== Error while compiling /tmp/bfqZjBm9ui␤Can't use unknown trait 'is default' in an attribute declaration.␤at /tmp/bfqZjBm9ui:1␤------> ␤ expecting any of:␤ rw␤ readonly␤ box_target␤» 03:05
..rakudo-jvm a77214: OUTPUT«===SORRY!=== Error while compiling /tmp/huobjP7UBi␤Can't use unknown trait 'is default' in an attribute declaration.␤at /tmp/huobjP7UBi:1␤------> ␤ expecting any of:␤ rw␤ readonly␤ box_target␤»
lue r: class A {has $!x is default(2)}
camelia rakudo-parrot a77214: OUTPUT«===SORRY!=== Error while compiling /tmp/tgbDnl0Bww␤Can't use unknown trait 'is default' in an attribute declaration.␤at /tmp/tgbDnl0Bww:1␤------> ␤ expecting any of:␤ rw␤ readonly␤ box_target␤»
..rakudo-jvm a77214: OUTPUT«===SORRY!=== Error while compiling /tmp/QGFLmPbACJ␤Can't use unknown trait 'is default' in an attribute declaration.␤at /tmp/QGFLmPbACJ:1␤------> ␤ expecting any of:␤ rw␤ readonly␤ box_target␤»
finanalyst r: class A {has $.a is rw = 2}; my A $x.=new(:a(4)); say $x; $x.a=Nil; say $x 03:07
camelia rakudo-parrot a77214, rakudo-jvm a77214: OUTPUT«A.new(a => 4)␤A.new(a => Any)␤»
lue r: class A {has $.a = 2}; my A $x.=new(:a(4)); say $x; $x.a=Nil; say $x
camelia rakudo-parrot a77214: OUTPUT«A.new(a => 4)␤Cannot assign to a readonly variable or a value␤ in block at /tmp/MEyZkTSipE:1␤␤»
..rakudo-jvm a77214: OUTPUT«A.new(a => 4)␤Cannot assign to a readonly variable or a value␤␤»
finanalyst so setting an attribute with = in a clase definition is not the same as a default because assigning Nil to the attribute does not return it to default 03:08
lue Huh. I'd've thought public attrs would be rw by default. (May be I'm thinking in old-Perl-6 terms)
finanalyst attr are ro by default according to spec 03:09
lue finanalyst: yeah, I'm thinking is default should work there, can't recall if it's specced to do so though.
Like I said, my mind could possibly be expecting older-spec'd behavior or something on the rw attrs front.
finanalyst lue: that's why I tried assigning Nil to a rw. If spec indicates default behaviour, currently thats not happening 03:10
BenGoldberg r: my $a is default 2; say $a; $a = 3; say $a; $a = Nil; say $a;
camelia rakudo-jvm a77214: OUTPUT«===SORRY!=== Error while compiling /tmp/Q7FvROSxlM␤Two terms in a row␤at /tmp/Q7FvROSxlM:1␤------> my $a is default ⏏2; say $a; $a = 3; say $a; $a = Nil; say␤ expecting any of:␤ scoped declarator␤…»
..rakudo-parrot a77214: OUTPUT«===SORRY!=== Error while compiling /tmp/tE3DsDNlh5␤Two terms in a row␤at /tmp/tE3DsDNlh5:1␤------> my $a is default ⏏2; say $a; $a = 3; say $a; $a = Nil; say␤ expecting any of:␤ scoped declarator…»
BenGoldberg r: my $a is default(2); say $a; $a = 3; say $a; $a = Nil; say $a;
camelia rakudo-parrot a77214, rakudo-jvm a77214: OUTPUT«2␤3␤2␤»
finanalyst i just filed a rakudobug 03:21
03:25 thou left 03:51 btyler joined 04:07 ssutch left 04:11 abnorman joined
lue likes how some of the POD synopses have Pod6 brainos :) [see html output of S32::IO] 04:22
04:25 thou joined 04:28 btyler left
BenGoldberg r: say sqrt(-1.0) 04:31
camelia rakudo-parrot a77214, rakudo-jvm a77214: OUTPUT«NaN␤»
BenGoldberg r: say i
camelia rakudo-parrot a77214, rakudo-jvm a77214: OUTPUT«0+1i␤»
BenGoldberg Why does sqrt(-1) not produce i?
r: say sqrt(1+0i) 04:32
camelia rakudo-parrot a77214, rakudo-jvm a77214: OUTPUT«1+0i␤»
BenGoldberg r: say sqrt(-1+0i)
camelia rakudo-jvm a77214: OUTPUT«6.123233995736766E-17+1i␤»
..rakudo-parrot a77214: OUTPUT«6.12323399573677e-17+1i␤»
BenGoldberg Hmm, nevermind, I think I see :)
r: say one(i,-i) 04:33
camelia rakudo-parrot a77214, rakudo-jvm a77214: OUTPUT«one(0+1i, -0-1i)␤»
BenGoldberg It would be interesting if sqrt produced a superposition of the roots... but it would probably be confusing for those who don't expect it ;) 04:35
r: say one(i,-1)**2 04:36
camelia rakudo-parrot a77214: OUTPUT«one(-1+1.22464679914735e-16i, 1)␤»
..rakudo-jvm a77214: OUTPUT«one(-1+1.2246467991473532E-16i, 1)␤»
BenGoldberg r: say one(i,-i)**2
camelia rakudo-jvm a77214: OUTPUT«one(-1+1.2246467991473532E-16i, -1-1.2246467991473532E-16i)␤»
..rakudo-parrot a77214: OUTPUT«one(-1+1.22464679914735e-16i, -1-1.22464679914735e-16i)␤»
TimToady as with FatRats, we don't let people fall accidentally into the domain of Complex arithmetic 04:40
lue BenGoldberg: I think the idea is that we assume you meant +√ and not the two-answers cases of √ 04:41
04:44 cognominal left, cognominal joined 04:45 preflex left, preflex_ joined, ChanServ sets mode: +v preflex_, preflex_ is now known as preflex
grondilu If I want to augment Perl6 grammar in a program, I have to write an advanced macro (when they are implemented)? Or is there an other way? 04:47
04:48 wooden joined, wooden left, wooden joined 04:57 davercc joined 05:00 thou left 05:01 hoverboard left 05:11 hoverboard joined 05:21 thou joined, ingy1 is now known as ingy 05:22 ingy left, ingy joined, daniel-s_ left 05:27 thou left 05:35 jnap left 05:48 BenGoldberg left 05:55 eternaleye left, eternaleye joined 05:56 eternaleye left, eternaleye joined 05:58 benabik joined 06:05 jnap joined 06:10 jnap left 06:23 ssutch joined 06:26 dayangkun left 06:31 SamuraiJack_ joined 06:36 ivanshmakov joined 06:39 dayangkun joined 06:40 darutoko joined 07:02 MikeFair left 07:06 jnap joined 07:10 jnap left 07:11 SamuraiJack_ left 07:17 abnorman left 07:23 kaleem joined 07:38 denis_boyun joined 07:46 denis_boyun left 07:59 denis_boyun joined 08:02 kurahaupo_mobile left 08:07 jnap joined 08:08 Pleiades` left 08:11 jnap left 08:13 Pleiades` joined 08:17 xinming left 08:18 xinming joined 08:19 denis_boyun left 08:34 denis_boyun joined 08:44 denis_boyun left 09:04 Pleiades` left 09:09 Pleiades` joined 09:15 dmol joined, dmol left 09:16 dmol joined, PZt left 09:19 davercc left 09:21 SamuraiJack_ joined 09:24 xinming left 09:25 xinming joined 09:31 hoverboard left
masak good antenoon, #perl6 09:36
timotimo hello masak :) 09:37
lizmat good antenoon to you too, masak, timotimo
masak and a fine antenoon it is
FROGGS hi all
masak lue: re irclog.perlgeek.de/perl6/2013-12-30#i_8053985 -- yes, &eval can be misused. but so can roles, or addition, or for loops. 09:38
I feel there's a bit of "Goto considered harmful"-style stigmatization of &eval going on, with not that much substance behind the arguments. 09:39
that is, the GOTO instruction *was* indeed worse than the more modern structured alternatives, as indeed &eval is worse than many alternatives. 09:40
lizmat I think it is a good thing, since eval in p6 is only similar to p5's eval on first look
masak how so?
lizmat because p5's eval has an implicit try
masak well, you're not wrong. 09:41
lizmat so, most p5ers would use eval to test stuff, rather than execute code in strings specifically
masak still not cause for uppercasing, if you ask me.
uppercasing yells "outside of the normal control flow!"
&
FROGGS masak: then we should lowercase MONKEY_TYPING
10:08 jnap joined 10:10 denis_boyun joined 10:11 PZt joined 10:13 jnap left 10:15 denis_boyun left
timotimo i'd like to have a flag for fudgeandrun to use something different than ./perl6 10:19
10:23 denis_boyun joined
FROGGS an environment var like PERL6_EXE? 10:24
one of these scripts already has something like that 10:25
timotimo maybe 10:26
10:29 denis_boyun left
timotimo jnthn: if we have a callmethod on a WVal, do we have to analyze more than "is the method name constant and does the metaobject have a weird find_method"? 10:56
10:58 kaleem left 11:05 xenoterracide left 11:21 rindolf joined 11:25 kaleem joined 11:38 carlin joined
timotimo our optimizer would need to be cleverer to try to inline method ACCEPTS of Regex, as it uses getlexrelcaller; it'd have to turn that into ... getlex? getlexrel? 11:38
carlin rakudo: my $nzst = 13 * 60 * 60; say DateTime.now().in-timezone($nzst)....d-to(day); 11:39
camelia rakudo-parrot a77214, rakudo-jvm a77214: OUTPUT«2014-01-01T00:00:00+1300␤»
dalek p: 41debf4 | (Tobias Leich)++ | src/vm/moar/ModuleLoader.nqp:
add nqp language diretory to search path
11:41
11:43 carlin left 11:51 kaleem left, kaleem joined
FROGGS btw, robot turtles is le awesome! we got our game a few days ago 11:52
11:54 zakharyas joined 11:55 SamuraiJack_ left
timotimo the link to the kickstarter is already pink on my browser :) 12:02
dalek kudo/moar_libpaths: c1479ce | (Tobias Leich)++ | src/core/IO/Spec/Unix.pm:
Str.match should be cheaper as Str ~~ Regex

And it has the nice sideeffet that the former works on MoarVM.
12:03
timotimo s/" as "/" than "/
dalek kudo/moar_libpaths: a34b786 | (Tobias Leich)++ | src/vm/moar/ModuleLoaderVMConfig.nqp:
pull in a cheat from vm/parrot
12:04
FROGGS timotimo: yeah... braino
timotimo :)
dalek kudo/moar_libpaths: 03d85d1 | (Tobias Leich)++ | tools/build/Makefile-Moar.in:
install nqp modules to languages/nqp/lib
12:06
arnsholt timotimo: At least it was just a commit message braino and not, say, a compile-breaking braino =) 12:07
timotimo yeah. i have more of the latter than of the former :P
arnsholt I think I've only one compile-breaker, but that was pretty embarassing =) 12:08
(But it could be I've just repressed the memories of all my other compile-breakers =)
FROGGS IMPORTANT NOTE TO EVERYONE: you need to whipe <prefix>/install/languages/perl6/lib/Perl6/*.moarvm when the moar_libpath branch gets merged
timotimo i need a way to return a () from before &infix:<,> is defined >_<
FROGGS hehe
timotimo maybe i can just stub it really early?
FROGGS if I am lucky I can run v5 stuff now 12:10
12:10 jnap joined 12:11 atroxaper joined 12:15 jnap left 12:16 kurahaupo_mobile joined
FROGGS looks like I'd need p6reprname now :/ 12:23
12:24 kurahaupo_mobile is now known as kurahaupo_enrapt 12:25 kurahaupo_enrapt is now known as kurahaupo
moritz timotimo: Parcel.new ? 12:31
timotimo maybe. and stub class Parcel before the first else-less if? :P 12:32
FROGGS bbl & 12:34
timotimo oh, but maybe Parcel is in BOOTSTRAP
moritz I'm pretty sure it is 12:39
12:52 pjcj_ joined 13:00 PacoAir joined, wooden left 13:08 kaleem left
masak hi from a train \o 13:11
er, I mean "hi! from... a TRAIN!" :D 13:12
13:15 spider-mario joined
masak attempts to build Rakudo-on-Moar 13:18
13:20 immortal left, erkan joined, erkan left, erkan joined
moritz masak: and if you do python, it's "SNAKES ON A TRAIN" :-) 13:22
masak :P 13:23
no python today.
timotimo will you get back to python some time? 13:24
masak but I did read up on the Snake Lemma.
timotimo: that's likely, as I teach various courses, some of them Python courses.
when I dove into Python earlier this year, I was surprised at how similar the Perl and Python communities seem.
any animosity between the two camps is really rather silly. 13:25
colomon masak: yes, but they like snakes.
;)
we like butterflies and camels. 13:26
timotimo an empty parcel is immutable, no?
i think at some point, Parcel.new() without arguments could be optimized to return a globally shared empty parcel
probably not worth terribly much, especially given sink context etc. 13:27
hm, i wonder ...
masak colomon: Guido actually fought the association between Python-the-language and Python-the-snake for years. he squarely intended Python-the-comedy-group.
colomon masak: I never knew!
masak colomon: but then some O'Reilly book came out, with a big fat snake on the cover. and he kind of gave in.
colomon Guido++
masak nowadays the mascot/icon is even a cute stylized snake. 13:28
so Perl 5 has camels, Perl 6 has butterflies, Python has cute snakes, and Ruby has, er, um, foxes shouting "chunky bacon!"
timotimo i really like the current python logo 13:29
FWIW, the o'reilly book really should have had a really big foot on its cover
masak yeah.
timotimo Method 'eew' not found for invocant of class 'QAST::WVal' 13:30
masak ;) 13:32
colomon has chunky bacon cooking in the oven. 13:34
timotimo Nominal type check failed for parameter '%attrinit'; expected Associative but got Hash instead 13:35
... not sure what i'm doing wrong? 13:36
too early for Hash to be marked to be doing Associative?
i suppose else-less ifs appear very early in the setting ... 13:37
13:38 cognominal left
masak else-less ifs? why would they participate in the circularity dance at all? :) 13:40
they're a grammatical/actionable feature rather than a setting feature... 13:41
timotimo they are supposed to return (), they currently return Nil
13:43 kurahaupo left 13:51 SamuraiJack_ joined 13:52 ajr joined 13:53 ajr is now known as Guest99097, Guest99097 is now known as ajr_
masak .oO( we're Nilists. we don't parcel *anything* ) 13:57
masak .oO( the Nil is not a river in Egypt )
masak .oO( Jack and Jane went up the Nil ) 13:58
Jill*
hm, or "Jack and Nil went up a hill, but once there Jack found himself all alone" 14:02
timotimo no, Nil no longer flattens to an empty list in list context 14:04
dalek kudo/moar-support: 2393288 | (Tobias Leich)++ | tools/build/ (2 files):
pass several --libpath options
14:06
kudo/moar-support: 3fb7165 | (Tobias Leich)++ | src/core/terms.pm:
Merge branch 'moar-support' of github.com:rakudo/rakudo into moar_libpaths
kudo/moar-support: c1479ce | (Tobias Leich)++ | src/core/IO/Spec/Unix.pm:
Str.match should be cheaper as Str ~~ Regex

And it has the nice sideeffet that the former works on MoarVM.
kudo/moar-support: a34b786 | (Tobias Leich)++ | src/vm/moar/ModuleLoaderVMConfig.nqp:
pull in a cheat from vm/parrot
kudo/moar-support: 03d85d1 | (Tobias Leich)++ | tools/build/Makefile-Moar.in:
install nqp modules to languages/nqp/lib
masak timotimo: oh, ok. then there's still two of them. 14:07
masak .oO( Nil -- the artist formerly known as the empty list )
FROGGS >.< 14:08
timotimo tries his luck at some grocery shopping
14:08 atroxaper left
FROGGS p: ::('formerly known as prince') # :P 14:08
camelia rakudo-parrot a77214: OUTPUT«No such symbol 'formerly known as prince'␤current instr.: 'throw' pc 410302 (src/gen/p-CORE.setting.pir:171896) (gen/parrot/CORE.setting:10737)␤called from Sub 'sink' pc 446395 (src/gen/p-CORE.setting.pir:185119) (gen/parrot/CORE.setting:12127)␤cal…»
14:09 atroxaper joined 14:11 jnap joined 14:12 wooden joined 14:16 jnap left 14:19 jnap joined 14:20 atroxaper left, atroxaper joined
masak $ ./perl6-p -e 'say "OH HAI"' 14:21
OH HAI
\o/
er, wait.
it's perl6-m I want.
FROGGS *g*
masak $ ./perl6-m -e 'say "OH HAI"'
OH HAI
moar: 3rdparty/libuv/src/unix/loop.c:150: uv__loop_delete: Assertion `!((((*(&(loop)->active_reqs))[0]) == (&(loop)->active_reqs)) == 0)' failed.
Aborted
er, \o/
FROGGS sort of, yeah
masak and also a bit of /o\
FROGGS the uv__loop... thing is due to an unclean shutdown 14:22
masak eew
anyway, 's a bit cool that it workz.
ish.
FROGGS it should be a heisenfail, it might work if you run it again 14:23
masak trying again. 14:25
worked this time \o/
ok, here goes some spectesting.
er, maybe 'make test' first... 14:26
all sanity tests pass. wow. 14:27
14:29 zakharyas left, ivanshmakov left
masak ok, so there are some spectest failures... 14:31
14:36 zakharyas joined, ivanshmakov joined
FROGGS sure, many things are implemented just to "get further" 14:36
14:38 rjbs- left, rjbs- joined, rjbs- is now known as rjbs
timotimo i'm not sure how coercion methods are supposed to be implemented with decent performance 14:42
14:43 btyler joined
masak timotimo: please elaborate. what's difficult to implement performantly? 14:43
timotimo subset Even of Int where * %% 2; say 100.Even; 14:44
otherwise, class MyFoo { method Even { ... } }
we can't know anything except handwavey hopes during compile-time about methods
i *guess* it'd be implemented as a fallback? 14:48
masak ugh. troo.
timotimo or maybe every subset installs a role on Any? :)
masak picturing the lookup as MI *and* roles are taken into account...
yeah, that's going to have perf repercussions. 14:49
suddenly everything is potentially a coercion.
timotimo well, only things with capital initial letters
masak &
what about 'class even {}' ?
timotimo nobody would create a lowercase class and except it to work with coercion methods
document it with a big bright sign saying "don't you ever write your methods with capital letters" 14:50
btw, the lookup is also dependent on the lexical scope
so it's even more fun
also, do we allow my \Foobar := Str; 123.Foobar? 14:51
FROGGS perl6-m -e 'say 1.^name' 14:52
Int
\o/
dalek kudo/moar-support: da234d3 | (Tobias Leich)++ | src/vm/moar/ (2 files):
implement p6reprname
14:53
FROGGS timotimo: should be \Foobar := &Str if Str would be a sub 14:54
timotimo er
FROGGS can't imagine the method form would do
timotimo i did mean the Str class
not a sub by the same name
FROGGS p: my $foo = "Str"; say 123.$foo 14:55
camelia rakudo-parrot a77214: OUTPUT«No such method 'postcircumfix:<( )>' for invocant of type 'Str'␤ in any at gen/parrot/BOOTSTRAP.nqp:1687␤ in any at gen/parrot/BOOTSTRAP.nqp:1669␤ in block at /tmp/bQLWDUaRBT:1␤␤»
FROGGS p: my $foo = "Str"; say 123."$foo"
camelia rakudo-parrot a77214: OUTPUT«===SORRY!=== Error while compiling /tmp/PoDp6ug4u4␤Quoted method name requires parenthesized arguments. If you meant to concatenate two strings, use '~'.␤at /tmp/PoDp6ug4u4:1␤------> my $foo = "Str"; say 123."$foo"⏏[3…»
FROGGS p: my $foo = "Str"; say 123.("$foo")
camelia rakudo-parrot a77214: OUTPUT«No such method 'postcircumfix:<( )>' for invocant of type 'Int'␤ in any at gen/parrot/BOOTSTRAP.nqp:1687␤ in any at gen/parrot/BOOTSTRAP.nqp:1669␤ in block at /tmp/FoUh9_7D1J:1␤␤»
timotimo no, you've missed the important part of the discussion
FROGGS p: my $foo = "Str"; say 123."$foo"()
camelia rakudo-parrot a77214: OUTPUT«123␤»
timotimo this is about coercion methods
FROGGS this?
timotimo this discussion
15:03 btyler left 15:08 btyler joined 15:27 jnap left 15:42 smls joined
smls skims through doc.perl6.org/language/operators 15:47
What are some real-life use cases for infix:<but> ? 15:48
15:48 atroxaper left 15:49 manishka joined, atroxaper joined
arnsholt Similar to infix:<does>, but sometimes you can't alter an object directly since it may break other code's expectations 15:51
15:52 ajr_ left, ajr joined, ajr is now known as Guest41994, Guest41994 is now known as ajr_
smls Is there a rosettacode example or something that uses 'but' or 'does'? 15:55
15:56 Pleiades` left
smls It seems cool, but I can't relate it to any concrete programming needs from my Perl 5 experience. 15:57
16:01 Pleiades` joined, manishka left
FROGGS smls: one example is to mix in a role Cache to a variable, that computes something and stashes it... and later you check that an object does that role, and you take the cached value 16:04
we do that with regexes internally 16:05
smls I see 16:11
FROGGS so everywhere where you want to attach another bit of information or behaviour this is a nice approach 16:12
16:18 Pleiades` left 16:23 japhb_ left, tokuhirom left, PacoAir left 16:24 tokuhirom joined 16:27 Pleiades` joined, rurban left 16:28 jnap joined, Pleiades` left, Pleiades` joined, rurban joined 16:29 Khisanth left 16:32 jnap left 16:40 smls left 16:42 atroxaper left, atroxaper joined 16:43 Khisanth joined, Khisanth is now known as Guest56837 16:48 atroxaper left 17:06 colomon left 17:14 bibifuc joined, finanalyst left 17:15 atroxaper joined 17:20 PZt left 17:31 dayangkun left 17:36 xenoterracide joined 17:46 PZt joined 17:54 ajr_ left 17:55 ajr joined, ajr is now known as Guest87179, Guest87179 is now known as ajr_ 18:08 sftp left 18:09 atroxaper left 18:16 sftp joined 18:20 jnap joined 18:21 SamuraiJack_ left 18:23 Guest56837 left, dalek joined, ChanServ sets mode: +v dalek, Khisanth joined 18:25 jnap left 18:28 sftp_ joined 18:29 [particle] left, sftp left 18:30 [particle] joined, stevan__ joined 18:31 timotimo joined
TimToady preflex: tell smls Did you ever use "0 but true" in Perl 5? In Perl 6 you don't need to trick it; you can say 0 but True to get a numeric value of 0 that evaluates to True in boolean context 18:32
preflex Consider it noted.
18:34 stevan_ left 18:37 PZt left
masak nods politely to #perl6 18:41
18:44 ivan`` joined
lee__ should (0 but True).perl include "but True"? currently it just shows 0 18:53
FROGGS as I understand it .perl should be round trip safe
18:56 abnorman joined
TimToady maybe 'but' should add a .perl derived method 18:57
that wraps the base method
hard to know what to put in the general case, though, kinda like the problems with Routine.perl 18:58
one is tempted to just wrap the original source text
18:59 mtk left 19:00 mtk joined
masak p: sub foo {}; my $bar = &foo but role { method perl { "{callsame} but this anon role" } }; say $bar 19:00
camelia rakudo-parrot a77214: OUTPUT«sub+{<anon>} foo() { ... } but this anon role␤»
masak \o/
the most profound thing I've learned in category theory so far is that the whole of relational algebra can be reduced to three functors, ∆ (DUP/DEL), Σ (UNION), and Π (JOIN/SELECT), and that ∆ is a left adjunct of Σ, and Π is a right adjunct of Σ. 19:06
that's, like, a serious reduction of concepts into something extremely small.
lue should learn category theory in detail some time. 19:07
I know it's a bunch of dots and the arrows that connect them, but that's it :) 19:09
TimToady if it's that simple, they should teach it in grade school :) 19:15
masak it's that simple. that's why it's so bloody hard. 19:16
lue: in the back of my mind there are blog posts being written about category theory (with nice diagrams) being implemented in Perl 6. 19:17
19:17 skids joined
masak but that's gotta happen After t4 And The Rest of p6cc. 19:17
anyway. "dots and arrows" is a nice slogan. one thing that category theory hammers in is that set theory focuses too much on the dots, but the Interesting Stuff all happens in the arrows. 19:18
or put differently, No Dot Is An Island. a dot is defined by what other dots it knows. 19:19
19:19 colomon joined 19:20 jnap joined 19:25 jnap left 19:26 hoverboard joined 19:28 xenoterracide left 19:30 cooper left, ajr_ left 19:38 ajr joined, telex left, ajr is now known as Guest65184 19:40 telex joined 19:55 Guest65184 left 19:56 ajr_ joined
masak FROGGS: one of these days we're going to sit down and have an awesome talk about slangs. 19:58
lue reserves a chair at that figurative table 19:59
FROGGS \o/
I hope to get rid of my rakudo.patch file within that time too
masak FROGGS++ # perl6advent.wordpress.com/2013/12/1...16-slangs/ 20:03
FROGGS: minor nit: s/wether/whether/
FROGGS fixed, thanks :o)
20:06 darutoko left
lue I've got a couple questions IAre my concerns about changing a grammar rule but not the actions justified? 20:07
I've got a couple questions I'd like sorted out: Are my concerns about changing a grammar rule but not the actions justified?
masak wow, seems moritz++ won the popularity contest this year, with 4961 hits to his slot-23 post. :) 20:08
lue: what's the use case, in more detail?
lue And how do we reconcile the grammar+actions way of doing things with the grammar rule { {inline action rule} } way of doing things in slangs?
20:09 FROGGS[mobile] joined
lue masak: First terrible case out of my head: where someone wants to change the rule that parses the $ sigil to use ¢ instead. 20:09
I can't think of anything specific & likely at the moment, but I still think the general issue of desyncing the grammar and action parts hasn't been addressed, from what I've seen at least. 20:10
The issue really is with changing token foo { <bar> (\d+) } to token foo { <.bar> [\d+] } , and how to handle the lack of a change to the method foo that presumably uses those (once-)captured things. 20:13
masak lue: you're right -- discussion on slangs seems to talk about grammars, but not action classes. 20:19
historically, action classes Came Much Later. 20:20
lue masak: yes. Action classes used to be embedded { make } closures. I remember being surprised to learn from TimToady that action classes stole the make term from inlined grammar blocks.
20:21 jnap joined
masak clearly action methods are quite strongly tied to a particular grammar. 20:21
not just the corresponding grammar rule, but (implicitly) the whole rest of the grammar, too. 20:22
lue tries to find his old slangs gist...
20:22 zakharyas left
masak and one grammar can surely have several action classes -- which is definitely nice -- but I struggle to see the converse happening. 20:22
...by anything else than fantastic coincidence.
20:23 PZt joined
FROGGS[mobile] our sprintf has two action classes btw 20:23
lue grammar->actions is definitely one-to-one or one-to-many, and not many-to-one (unless you try *really hard* that is)
masak which is wonderful, and What I Said.
lue 8mo-old gist with some of these thoughts: gist.github.com/lue/5241230 20:24
(the "! NOTICE: ignore the below section !" comes from when I learned of the embedded { make } blocks)
20:25 jnap left
FROGGS[mobile] I can imagine to have a single action class for a JSON grammar and a YAML grammar 20:27
lue r: say $&say;
camelia rakudo-parrot a77214, rakudo-jvm a77214: OUTPUT«sub say() { ... }␤»
lue so that twigil idea is bust :) 20:28
FROGGS[mobile] or other very related things, like different versions ob a grammar that should be supported at the same time
lue FROGGS[mobile]: I think the main issue with many-to-one is that it'd be quite fragile, moreso than one-to-many. (Because actions are dependent on grammars, but not the other way 'round) 20:31
FROGGS[mobile] true
lue Not saying you can't (or shouldn't) do it, just that you have to be *really careful* if you're going to do it. :) 20:32
masak that goes without saying :) 20:35
masak .oO( Honey, I Shrunk The Grammar ) 20:36
lue I think we can all agree that the Actions half of things hasn't really been considered yet, and how to factor that into the current thinking around slangs should be Very Interesting™. 20:38
20:39 ajr_ left
FROGGS[mobile] I'd love to see "slang" as a first class keyword but I have no (good) ideas beyond that 20:40
lue And I think augment/supersede shouldn't have magically different meanings for slangs as well :) 20:41
FROGGS[mobile] because to me a slang is a collection of a grammar, an action class, a moduleloader and the slang's name
dunno how to bundle that nicely
lue wonders how much of his dislike for the current speccing of augment and supersede are caused by a lack of support in rakudo. 20:42
Well, the moduleloader isn't inherently part of a slang (cf. the quoting and regex languages)
masak we know from experience that the only way to get a handle on these things is to implement them and see what works and what doesn't.
that's why FROGGS++ is the hero here.
lue FROGGS++ indeed. 20:43
masak he's doing slangs in Rakudo before slangs really exist in Rakudo.
FROGGS[mobile] lue: the ML is optional, yes
:o) 20:44
lue maybe treating 'slang' as a super-container of sorts, in which you place a grammar and actions, would better fit the wildly expanded role of how languages work now?
something 'package' or 'module'-like in those respects. 20:45
FROGGS[mobile] it is a fun (and never ending) task, and I dont wanna swap it... (not even for an iphone)
it is just sad that we have nothing like such a collection... so we cant borrow ideas 20:46
20:47 rindolf left
lue FROGGS: that just means we get to be pioneers :D 20:47
2014: The year of, like, slangs or whatever, man.
FROGGS[mobile] yeah, but it should feel as if it belongs to Perl :o) 20:48
slang Foo { parser Bar { }; action Baz { } } 20:51
what I'd like too if you could have a single thing that would be a token and an action method at the same time 20:52
pmichaud_ good afternoon, #perl6 20:53
20:53 pmichaud_ is now known as pmichaud
FROGGS[mobile] but this wont end up good I guess 20:53
moritz FROGGS[mobile]: token integer { \d+ { make +$/ } }
FROGGS[mobile] Hi pmichaud
moritz good pm, pm
lue FROGGS[mobile]: feature foo { grammar } { action } :P 20:54
FROGGS[mobile] moritz: no, that is ugly... somehow
but maybe the sanest
pmichaud Happy New Year to all :)
FROGGS[mobile] Happy new year :o)
moritz happy new year to everybody! 20:55
moritz sick
pmichaud somehow "collection of grammar, action class, module loader, and name" doesn't sound like "slang" to me. Feels more like a "culture" or "fad". :-)
i.e., at some point it's more than just language/syntax and starts including behavior and social norms :) 20:56
masak happy new year, pm/everybody! \o/
moritz: get well soon(tm)
lue :) +1 for renaming an expanded slang keyword.
pmichaud Hope you get to feeling better soon, moritz... I caught something late last week that was No Fun on Friday and Saturday.
lue
.oO( counterculture Foo { ... } )
20:57
pmichaud alt.lang.perl6 Foo :-)
FROGGS[mobile] hehe
lue Only if you want to be tied down to using the JVM :P
pmichaud oh, I'm pretty sure that comp.lang.* and alt.* predate the JVM :) 20:58
moritz thanks masak and pmichaud
lue I'm aware, I was making fun of JVM's domains.reversed
geekosaur bring back JANet? 20:59
pmichaud OMG I love perl6advent.wordpress.com/2013/12/2...-ventures/ !! TimToady++ 21:02
masak it's wonderful.
lue I can't help but wonder what TimToady would write if he wasn't pushed to do something :) 21:08
pmichaud "Nothing."
moritz puns.
pmichaud Everything TimToady writes is a pun at some level. :-P
masak I hear eve 21:09
I hear even his nick is a pun.
pmichaud Anyone know of any europe-based perl6-ish events taking place in the March 2014 timeframe? 21:12
21:14 PZt left
colomon TimToady++ indeed 21:14
masak pmichaud: the PLPW, but it's in May. act.yapc.eu/plpw2014/ 21:15
pmichaud hmmm. I should put that on my calendar.
masak will try to be there
pmichaud I only did one perl event in 2013 (yapc::na) and I need more.
21:16 dwarring joined
pmichaud I still have yet to make it to a dutch perl workshop. :-/ 21:16
oooh, or maybe the QA Hackathon in Lyon :) 21:17
21:17 btyler left
FROGGS the german perl workshop will take place in march... though I think there will be just about 50 to 80 ppl 21:18
pmichaud size of workshop isn't the key thing -- mainly it's whoever else might be in attendance :-) 21:19
FROGGS I hope jnthn will come
pmichaud yes, jnthn++ tops my list :)
FROGGS he said he might be interested
21:22 jeffreykegler joined, jnap joined 21:24 xenoterracide joined 21:27 jnap left 21:28 xenoterracide left
pmichaud I'm afk again -- Happy (and safe!) New Year to everyone 21:30
masak pmichaud: \o
dagurval rp: sub a is DEPRECATED((sub { })()) { }; 21:31
camelia rakudo-parrot a77214: OUTPUT«===SORRY!===␤Null PMC access in get_bool()␤»
dagurval found a Null PMC access \o/
masak dagurval++ # \o/ 21:32
dagurval: submit it!
dagurval ok! last bug of the year 21:33
masak :)
...probably ;)
dagurval hehe, fingers crossed!
21:39 kurahaupo_mobile joined
colomon we should have a last bug of the year contest 21:45
dwarring already too late here 21:49
nqp build nit... 21:50
nqp and parrot repos are via http (not https) - e.g. github.com/perl6/nqp.git 21:52
see github.com/perl6/nqp/blob/master/t...nfigure.pm
this is not recommend and is sllooow see - github.com/blog/92-http-cloning
anyone object if I change http to https? 21:53
FROGGS +1
dwarring works much faster when I try it locally 21:54
dalek p: 61e4135 | (David Warring [email@hidden.address] | tools/lib/NQP/Configure.pm:
tweak nqp & parrot git urls (http => https)
21:57
dwarring done
21:57 raiph left 22:10 unclefester2 joined, sftp_ left
unclefester2 r: my Str ($s,$t); $s ~= "abc"; say $s; say $t ~ "def"; my Int ($i, $j); $i += 2; say $i; say $j +2 22:14
camelia rakudo-jvm a77214: OUTPUT«abc␤use of uninitialized value of type Str in string context␤def␤2␤Cannot look up attributes in a type object␤␤»
..rakudo-parrot a77214: OUTPUT«abc␤use of uninitialized value of type Str in string context in block at /tmp/KWPKUw9vbn:1␤␤def␤2␤Invocant requires an instance, but a type object was passed␤ in method Bridge at gen/parrot/CORE.setting:4272␤ in sub infix:<+> at gen/par…»
unclefester2 I have been away for a while 22:15
22:23 jnap joined 22:28 jnap left 22:33 MikeFair_ joined
unclefester2 r: class Dog{ has Str $.name}; my Dog @d; @d[1] = Dog.new(name => "Fred"); @d.say; say @d[0] + 2; 22:36
camelia rakudo-jvm a77214: OUTPUT«(Any) Dog.new(name => "Fred")␤use of uninitialized value of type Dog in numeric context␤2␤»
..rakudo-parrot a77214: OUTPUT«(Any) Dog.new(name => "Fred")␤use of uninitialized value of type Dog in numeric context in block at /tmp/i1NrX3l8e_:1␤␤2␤»
22:37 PacoAir joined
timotimo unclefester2: i don't understand what you're trying to do :) 22:39
unclefester2 Well its an array of dog and when I skip an element I am surprised that I can do arithmetic with the skipped dog? 22:42
I also wonder about the skipped element having a type of "(any)"
timotimo it should have a type of (Dog) 22:43
22:43 jeffreykegler left
unclefester2 I will do a bit more research in RT. If I don't find anything I may email in a bug report unless there are objections ... 22:44
timotimo ah, yes, it shouldn't be (Any)
22:44 jeffreykegler joined 22:45 kurahaupo_mobile left
timotimo it may just be a printing problem? 22:45
unclefester2 except for the addition I can do on the element later ....
timotimo yeah, let me investigate ): 22:46
:)
r: my Str @foo; say @foo[0]; say @foo[0].WHAT;
camelia rakudo-parrot a77214, rakudo-jvm a77214: OUTPUT«(Str)␤(Str)␤»
timotimo r: my class Dog { has $.name; }; my Dog @foo; say @foo[0]; say @foo[0].WHAT; 22:47
camelia rakudo-parrot a77214, rakudo-jvm a77214: OUTPUT«(Dog)␤(Dog)␤»
timotimo r: my class Dog { has $.name; }; my Dog @foo; @foo[1] = Dog.new( :name<Poopy> ); say @foo[0]; say @foo[0].WHAT;
camelia rakudo-parrot a77214, rakudo-jvm a77214: OUTPUT«(Dog)␤(Dog)␤»
timotimo r: my class Dog { has $.name; }; my Dog @foo; @foo[1] = Dog.new( :name<Poopy> ); say @foo[0]; say @foo[0].WHAT; say @foo;
camelia rakudo-parrot a77214, rakudo-jvm a77214: OUTPUT«(Dog)␤(Dog)␤(Any) Dog.new(name => "Poopy")␤»
timotimo *interesting*!
FROGGS we had that yesterday 22:48
List.at_pos give you a Dog because it returns the default
but the default value is not stored in the slots, so say @foo shows Any 22:49
timotimo oh? i see
22:51 BenGoldberg joined, colomon left 22:52 colomon joined
dalek kudo-star-daily: 00bddd4 | coke++ | log/ (5 files):
today (automated commit)
22:52
rl6-roast-data: b7b9a56 | coke++ | / (6 files):
today (automated commit)
22:53 xenoterracide joined
unclefester2 FROGGS: sorry - a bit new here - checked through the last two days and didn't see it - can you give link? Also it's not just an appearance problem because you can add 2 to @d[0] ... 22:55
timotimo no, that's no problem
22:56 sftp_ joined
timotimo r: class Dog { has $.name; }; my Dog $x; $x + 2; my Str $x; $x + 2; 22:56
camelia rakudo-parrot a77214: OUTPUT«Potential difficulties:␤ Redeclaration of symbol $x␤ at /tmp/0W4ws5eIAR:1␤ ------> $.name; }; my Dog $x; $x + 2; my Str $x⏏; $x + 2;␤WARNINGS:␤Useless use of "+" in expression "$x + 2" in sink context (line 1)␤u…»
..rakudo-jvm a77214: OUTPUT«Potential difficulties:␤ Redeclaration of symbol $x␤ at /tmp/TZLDGDx1Qy:1␤ ------> $.name; }; my Dog $x; $x + 2; my Str $x⏏; $x + 2;␤WARNINGS:␤Useless use of "+" in expression "$x + 2" in sink context (line 1)␤use …»
timotimo oops
r: class Dog { has $.name; }; my Dog $x; $x + 2; my Str $y; $y + 2;
camelia rakudo-parrot a77214: OUTPUT«WARNINGS:␤Useless use of "+" in expression "$x + 2" in sink context (line 1)␤use of uninitialized value of type Dog in numeric context in block at /tmp/WaOMUfMF6P:1␤␤use of uninitialized value of type Str in numeric context in block at /tmp/W…»
..rakudo-jvm a77214: OUTPUT«WARNINGS:␤Useless use of "+" in expression "$x + 2" in sink context (line 1)␤use of uninitialized value of type Dog in numeric context␤use of uninitialized value of type Str in numeric context␤»
timotimo … :)
FROGGS unclefester2: irclog.perlgeek.de/perl6/2013-12-26#i_8042741 22:57
23:00 MikeFair_ left 23:03 PZt joined
unclefester2 r: class Dog{ has Str $.name}; my Dog $d .= new(name => "Fred"); say $d + 2 23:03
camelia rakudo-parrot a77214: OUTPUT«Cannot call 'Numeric'; none of these signatures match:␤:(Mu:U \v: Mu *%_)␤ in any at gen/parrot/BOOTSTRAP.nqp:1218␤ in any at gen/parrot/BOOTSTRAP.nqp:1209␤ in method Numeric at gen/parrot/CORE.setting:997␤ in sub infix:<+> at gen/parrot/…» 23:04
..rakudo-jvm a77214: OUTPUT«Cannot call 'Numeric'; none of these signatures match:␤:(Mu:U \v: Mu *%_)␤ in any at gen/jvm/BOOTSTRAP.nqp:1201␤␤»
unclefester2 I think we all agree that what I typed in is not supposed to work but in my earlier example it sort of did.
Not only did it dump (Any) it added 2 to it. 23:05
timotimo a new year's eve rocket just exploded like a meter from my face %) 23:06
luckily, nobody was harmed
FROGGS /o\ 23:09
good that I have a reason to stay inside :o) 23:10
timotimo :)
we're on the 5th floor or the 6th
23:11 MikeFair_ joined
unclefester2 FROGGS: read through the backlog and agree that initializing to the default may be solution but think I may still have good test example 23:13
23:14 jeffreykegler left
[Coke] \o/ - tomorrow's run should have some passing moar tests. 23:15
timotimo \o/ 23:16
FROGGS yay \o/
[Coke]: I had about ten tests that hang during a spectest run... 23:18
but since these were not always the same tests I did not fudge any of those
[Coke]: so, maybe look from time to time and kill processes that run longer than five minutes 23:19
[Coke] the daily run has a ulimit timer that takes care of that. 23:20
timotimo same procedure as last year, FROGGS? 23:21
23:21 daniel-s_ joined
FROGGS same procedure as every year, timotimo :o) 23:21
[Coke] I'm doing a one-off run now, looks like it's going to take a while. 23:24
timotimo probably :) 23:25
[Coke] I'll gist up the results after the new years party.
timotimo at least you didn't decrease the nusresy size to 5k :)
23:34 MikeFair_ is now known as MikeFair