»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg camelia perl6: ... | irclog: irc.perl6.org | UTF-8 is our friend!
Set by sorear on 25 June 2013.
00:07 kivutar left 00:09 EvanTeitelman left 00:11 EvanTeitelman joined 00:12 Psyche^_ joined, BenGoldberg joined 00:15 pmurias left
BenGoldberg rn: print eval "\"\\c[$_ ellipsis]\"" for <vertical horizontal> 00:15
camelia rakudo 223075, niecza v24-95-ga6d4c5f: OUTPUT«⋮…»
00:16 Psyche^ left
sorear rn: print eval "\"\\c[$_ diagonal ellipsis]\"" for 'up right', 'down left' 00:37
camelia rakudo 223075: OUTPUT«⋰===SORRY!=== Error while compiling eval_1␤Unrecognized character name down left diagonal ellipsis␤at eval_1:1␤------> "\c[down left diagonal ellipsis⏏]"␤»
..niecza v24-95-ga6d4c5f: OUTPUT«⋰Unhandled exception: Unrecognized character name down left diagonal ellipsis␤ at /home/p6eval/niecza/boot/lib/CORE.setting line 1502 (die @ 5) ␤ at /home/p6eval/niecza/src/STD.pm6 line 5651 (STD.sorry @ 6) ␤ at /home/p6eval/niecza/src/STD.pm6 line …»
sorear rn: print eval "\"\\c[$_ diagonal ellipsis]\"" for 'up right', 'down right'
camelia rakudo 223075, niecza v24-95-ga6d4c5f: OUTPUT«⋰⋱»
00:53 woosley left 01:07 dayangkun joined 01:52 ksh left 01:53 ksh joined
Mouq std: A: do { eval "{chr &?BLOCK.labels[*-1].ord + 1}: &?BLOCK" } 01:56
camelia std 7c17586: OUTPUT«ok 00:00 48m␤»
Mouq rn: A: do { eval "{chr &?BLOCK.labels[*-1].ord + 1}: &?BLOCK" }
camelia rakudo 223075: OUTPUT«===SORRY!=== Error while compiling /tmp/uuPIMD9U_f␤Undeclared name:␤ &?BLOCK used at line 1␤␤»
..niecza v24-95-ga6d4c5f: OUTPUT«Unhandled exception: Unable to resolve method labels in type Block␤ at /tmp/1tLFP1EeeX line 1 (ANON @ 3) ␤ at /tmp/1tLFP1EeeX line 1 (ANON @ 2) ␤ at /tmp/1tLFP1EeeX line 1 (mainline @ 6) ␤ at /home/p6eval/niecza/lib/CORE.setting line 4583 (ANON @ 3…»
Mouq std: A: do { eval "{chr &?BLOCK.labels[*-1].ord + 1}: do &?BLOCK" } # What I think I really meant 01:58
camelia std 7c17586: OUTPUT«ok 00:00 48m␤»
02:11 EvanTeitelman left 02:12 eternaleye left 02:17 prevost joined
Mouq r: (1e0 / 5.562684647e-309).say; (1e0 / 5.562684646e-309).say; 02:34
camelia rakudo 223075: OUTPUT«1.79769313462575e+308␤Inf␤»
02:37 prevost left
Mouq r: ("z" ~^ "C").perl 02:53
camelia rakudo 223075: OUTPUT«Invalid operation on binary string␤ in method perl at src/gen/CORE.setting:6099␤ in method perl at src/gen/CORE.setting:957␤ in block at /tmp/MCMK8hXivm:1␤␤»
Mouq r: ("z" ~^ "C").encode.decode.perl
camelia ( no output )
02:53 dayangkun left
Mouq r: ("z" ~^ "C").encode.decode.perl.say 02:53
camelia rakudo 223075: OUTPUT«"9"␤»
02:59 pupoque joined 03:09 preflex_ joined, ChanServ sets mode: +v preflex_, preflex left, preflex_ is now known as preflex 03:49 ssutch left 03:57 panchiniak_ joined, panchiniak_ left 03:58 btyler left 04:02 krokite joined, krokite left, krokite joined 04:11 iravan joined 04:12 iravan left 04:34 eternaleye joined 04:40 iSlug joined 04:50 iSlug left 04:51 rurban joined 04:56 krokite left
Mouq std: OUTER: do { my-inner: do { ... } }; my-inner: while { ... } 05:01
camelia std 7c17586: OUTPUT«===SORRY!===␤Expression needs parens to avoid gobbling block at /tmp/iKeVMnnk7P line 1:␤------> my-inner: do { ... } }; my-inner: while ⏏{ ... }␤Missing block (apparently gobbled by expression) at /tmp/iKeVMnnk7P line 1:␤-----…»
Mouq std: OUTER: do { my-inner: do { ... } }; my-inner: do { ... }
camelia std 7c17586: OUTPUT«ok 00:00 43m␤»
ingy random idea… port Kwiki to P6! 05:03
05:06 hypolin left 05:08 xenoterracide left 05:09 hypolin joined 05:10 BenGoldberg left 05:13 rurban left 05:26 SamuraiJack_ joined 05:33 iSlug joined
iSlug Hi everybody 05:34
Mouq Hi iSlug 05:35
05:36 cognominal joined 05:42 fridim__ left
moritz \o 05:45
sorear o/ 05:47
05:47 oris1024 joined
moritz danluu.com/pl-troll/ "Huh. That wasn’t so bad. I’ve now graduated to PL troll." :-) 05:50
timotimo remind me again if my checkout is at 13 o clock?
i guess ill evaluate my shower options 05:53
diakopter moritz: :) yeh, and there's no need for whitespace or punctuation at all, really... :D 05:55
Mouq …What sort of magick is Grammar.nqp's EXPR? 05:57
diakopter heh. 06:00
"operator precedence parser", where precedence is much extended from the traditional delineations
moritz Mouq: see nqp/src/Perl6/Grammar.nqp :-)
Mouq: though maybe you'll like the corresponding method in STD.pm6 better 06:01
JimmyZ wonders what :dba() means
diakopter "doing business as" (vulgar alias) 06:02
JimmyZ It looks like a comment in STD
diakopter it's like a comment, but it also helps debug output and errors 06:03
JimmyZ oh
Mouq Oooooh it pulls from github.com/perl6/nqp/blob/master/s...r.nqp#L403
moritz: Ah, yes, I think I'll read STD's EXPR before nqp's. Thank you 06:04
sorear EXPR is an LR-type parser 06:05
similar to the parsers generated by yacc
diakopter "P.S. If you want to try this at home, you don’t have to write a complete parser. You probably don’t even want to write a complete parser (the SV spec is 1300 pages long, vs 800 for C++, 500 for C, 300 for Java, and 30 for Erlang). " 06:06
sorear and very different from the LL parsers generated by the QRegex compiler
diakopter ... and the Perl 6 spec is how many "pages"
sorear the perl 6 spec is written in vaguese. it'll triple or worse when it's elaborated to the same level of precision as the C++ spec
diakopter rue.. 06:07
er, true...
well, rue, too...
sorear: yesterday jnthn and I talked through some ideas for implementing gather/take on moarvm - would you link me to your writeup(s) on those ops? I can't find them 06:08
both of us strongly suspect we can directly and straightforwardly implement those nqp::cont_* ops based on our handwavey understanding.. but I'd like to refresh my memory on the specifics 06:09
Mouq diakopter: looks like around 900 pages, going by 250 words per page
JimmyZ Is it in nqp/docs/continuations.pod ?
diakopter oh... maybe 06:10
ah okay 06:11
I'll just assume it's up-to-date :)
sorear yeah, that's what I wrote at the time
diakopter [OT] /me finds this interesting www.nature.com/news/did-a-hyper-bla...se-1.13743 06:12
sorear don't feel compelled to implement unrestricted multiprompt delimited continuations just because I got carried away
(OTOH they *are* pretty cool and useful things)
has anyone implemented lexotic gather yet?
diakopter doesn't know enough to answer that 06:13
but I doubt it
hoelzro timotimo: lazily evaluate? =P 06:14
diakopter sorear: does the JVM allow references to stack-allocated things? (if so, does it move them to heap area when you return from that frame?)
(or is that invisible to you entirely) 06:15
Mouq sorear: I needed to look up the terminology, but I understand better now. Thank you
hoelzro do we have Rakudo JVM wired up to the evalbot? 06:16
diakopter hoelzro: I've been waiting for some intrepid soul to volunteer to move the evalbot to another machine 06:17
hoelzro ah
diakopter hoelzro: you just volunteered yourself
congratulations.
hoelzro if I had a machine to spare, I'd be happy to =/
diakopter I have the machine
hoelzro oh?
diakopter just not the patience to move it
hoelzro heh
hoelzro looks around nervously
I could probably do it this afternoon 06:18
diakopter it's currently spread on two machines, fetched/updated/built on one, executed on another
hoelzro: okay, let me know. I'll give you sudo su - p6eval on both 06:19
hoelzro sweet
when's your flight, again?
diakopter 5:25 pm
Coke & I will be hanging out in the Lufthansa Senator lounge, most likely
hoelzro alright, I should be able to be back online by then 06:20
diakopter well, I will be... Coke will be if he's on a Star Alliance airline
timotimo kind of about to go have breakfast. will i find any of you down there?
06:20 FROGGS left
diakopter Martin & I 06:20
I ate all the eggs && salmon && most of the cheese 06:21
hoelzro I'm about to drop off of the free 30 minutes WiFi, so I'll see you all later. 06:25
safe journies!
timotimo rob already left for his flight? 06:26
diakopter oh I see
hoelzro yes
timotimo pleasant journey!
sorear diakopter: (references to stack allocated things) logically, no 06:30
the oracle jvm will sometimes put logically heap allocated things on the stack instead if it can prove no references escape, though 06:31
06:34 ssutch joined 06:37 xinming_ joined, dmol left 06:38 risou_awy is now known as risou 06:41 xinming left 06:44 FROGGS[mobile] joined 06:50 kaleem joined, kaleem left
Mouq This kind of bugs me: Is there a difference between '[…]**0..1' and '[…]?' 07:01
sorear I'm not sure about the present, it's changed at least once though 07:02
I can tell you of a time when they were the same, and also of a time when []? was special-cased to not generate arrays but **0..1 had no such special casing 07:03
moritz that time is now
? is special-cased to not produce an array in the Match tree
Mouq …huh. Okay.. 07:04
FROGGS[mobile] So you get either a match or nil 07:05
moritz we've had both configurations at least twice 07:06
FROGGS[mobile] "nice" 07:09
07:13 zakharyas joined 07:19 xinming_ left 07:22 xinming joined 07:29 ribasushi left, FROGGS joined
FROGGS o/ 07:29
sorear o/
[Sno] \o 07:30
07:31 ribasushi joined
[Sno] anyone can help me finding a parrot build/install issue? 07:31
moritz I can try 07:32
[Sno] I have build's where it installs a parrot_version.pir into lib/parrot/5.7.0/include/parrot_version.pir and build where it doesn't
and I cannot guess when it goes which way
moritz [Sno]: are both git checkouts? 07:33
or is maybe one from a tarball?
[Sno] moritz: nope, both tarballs
all from the same tarball, but some in a chroot, some only in sandbox 07:34
moritz [Sno]: do both have a config_lib.pir ?
07:34 domidumont joined 07:35 johnny5_ left
[Sno] us-east.manta.joyent.com/pkgsrc/pub...t-5.7.0nb1 <-- logs of a sample with parrot_version.pir 07:35
now lurking for config_lib.pir
moritz: yes, all have a config_lib.pir 07:36
moritz that's curious, because normally config_lib.pir include parrot_version.pir 07:37
07:37 robinsmidsrod joined, kaleem joined
[Sno] okay, so I have to dig why it's in the failing cases different, thanks 07:38
07:38 kaleem left, kaleem joined 07:39 kaleem left, krunen joined, kaleem joined 07:41 johnny5_ joined 07:42 cognominal left 07:50 cognominal joined 07:56 lizmat joined 07:57 dayangkun joined 07:58 dayangkun left, dayangkun joined 07:59 dayangkun left 08:02 FROGGS left
timotimo r: class module { has $.confusion }; say module.new() 08:07
camelia rakudo 223075: OUTPUT«===SORRY!=== Error while compiling /tmp/UPkWY5EFV6␤Unable to parse module definition␤at /tmp/UPkWY5EFV6:1␤------> s module { has $.confusion }; say module⏏.new()␤ expecting any of:␤ argument list␤ prefix or …»
timotimo r: class module { has $.confusion }; say ::('module').new() 08:08
camelia rakudo 223075: OUTPUT«module.new(confusion => Any)␤»
timotimo r: class module { has $.confusion }; say ::('module').new(confusion => *) 08:11
camelia rakudo 223075: OUTPUT«module.new(confusion => *)␤»
08:12 kaleem left 08:13 kaleem joined, kaleem left, kaleem joined
diakopter r: my WhateverCode:($) $x; 08:15
camelia rakudo 223075: OUTPUT«===SORRY!===␤Type 'WhateverCode' is not declared␤at /tmp/kq5JxyOq7o:1␤------> my WhateverCode⏏:($) $x;␤Malformed my␤at /tmp/kq5JxyOq7o:1␤------> my WhateverCode⏏:($) $x;␤ expecting any of:␤ scope…»
diakopter std: my WhateverCode:($) $x;
camelia std 7c17586: OUTPUT«===SORRY!===␤Multiple prefix constraints not yet supported at /tmp/Gk4uDf3Gdu line 1:␤------> my WhateverCode⏏:($) $x;␤Multiple prefix constraints not yet supported at /tmp/Gk4uDf3Gdu line 1:␤------> my WhateverCode⏏…»
08:16 FROGGS joined
timotimo my &foo = * + 1; say &foo.WHAT 08:19
r: my &foo = * + 1; say &foo.WHAT
camelia rakudo 223075: OUTPUT«(WhateverCode)␤»
timotimo %)
FROGGS yeah, w/e 08:21
:o)
r: say +(* + 1) 08:22
camelia rakudo 223075: OUTPUT«WhateverCode.new()␤»
08:22 salv0 left 08:23 salv0 joined
FROGGS r: 1 08:24
camelia ( no output )
FROGGS ^---- broken?
dalek ecs: 5097a7b | Mouq++ | S (5 files):
Fix links of the form L<Sdd-x>
FROGGS n: 1
camelia ( no output )
FROGGS ohh my 08:25
Mouq FROGGS: Probably my fault... 08:26
FROGGS Mouq: how so?
timotimo wha?
the evalbot has stopped outputting the value of the whole expression like a year ago
08:27 FROGGS[mobile] left
FROGGS timotimo: the name is missing 08:27
... it there is no output 08:28
if*
08:28 dmol joined
dalek albot: 798b0a5 | Mouq++ | evalbot.pl:
Fix thinko
08:29
Mouq FROGGS: I refactored the way it formats output recently 08:30
08:32 isBEKaml joined 08:33 FROGGS left 08:34 FROGGS joined
FROGGS Mouq++ # quick fix 08:34
08:36 daxim joined 08:38 xinming left 08:39 cognominal left, xinming joined 08:40 p5eval left 08:42 p5eval joined
moritz evalbot control restart 08:42
08:42 camelia left
timotimo evalbot assemble! 08:43
08:44 cognominal joined
FROGGS evalbot reappear 08:45
08:45 lizmat left
FROGGS hummm, someone should open the door 08:46
08:50 ssutch left, Mouq left 08:51 FROGGS left, camelia joined 08:52 ChanServ sets mode: +v camelia
masak antenoon, #perl6 08:53
moritz \o masak
masak how was Frankfurt? anyone have a brief report? I'm curious. :) 08:54
08:55 isBEKaml left 08:58 dakkar joined 08:59 woolfy joined 09:04 FROGGS joined 09:06 fhelmberger joined
timotimo masak: it was nice. the venue was absolutely fantastic, the course material had new stuff for everyone i'm sure, we had good food and drinks and laughs and talks 09:11
nwc10 but 3 days would have been better than 2?
timotimo well, i had 4 days of hanging out with perl hackers i've only ever seen on irc before (well, really just 2 full and 2 half days), I would have also accepted an additional day ;) 09:12
it turned out we had to stop for the first day a few slides before the planned end and skipped most of the JVM slides on the second day
and we skipped an exercise 09:13
one of the most interesting things i learnt was that "finishing my thesis" is now slang for "going to the toilet for a dump" 09:19
moritz it is? :-) 09:20
timotimo tadzik said "i'll be finishing my thesis" and pronounced "thesis" like "feces"
now i'm teasing him with it
tadzik >:( 09:23
well, at least the meaning is sort of similar :)
timotimo why are you hiding away from us, but at your computer? :P
tadzik . o O ( getting shit done )
09:26 lizmat joined
jnthn o/ from the airport 09:28
yoleaux 14 Sep 2013 19:49Z <FROGGS> jnthn: I can't quite remember that int16 task about strings you explained... You need to either explain it again or pass on to somebody who already knows :P
15 Sep 2013 11:35Z <JimmyZ> jnthn: Please follow about.travis-ci.org/docs/user/getti...rvice-Hook to Activate GitHub Service Hook, so we can test MoarVM on travis-ci
15 Sep 2013 11:36Z <JimmyZ> jnthn: Please review github.com/MoarVM/MoarVM/commit/b69f699aff, It looks like wrongish
FROGGS hi jnthn 09:29
jnthn Boarding in 20 or so :)
timotimo krunen: did you forget your HDMI corner-bend-thingie? 09:30
it seems like it was left in our room and i didn't have anything like it
FROGGS diakopter: how are things going? 09:32
timotimo diakopter left with wil to go shopping
wait no
he's standing right in front of me
should i poke it?
jnthn POKE IT 09:33
timotimo it?
him.
jnthn :P
09:33 woolfy left 09:34 woolfy joined
tadzik how did you get wifi on FRA? 09:34
what sorcery is this
jnthn tadzik: You get 30 mins free 09:35
tadzik aha
jnthn connect to Telekom
In fact you get 30 mins free per email address or maybe mac address, I'm not sure... :)
nwc10 and then you have to reprogram your MAC address?
jnthn I have multiple devices and multiple email addresses :P
nwc10 what do they do with the e-mail address?
tadzik "verify" it
jnthn I dunno. Probably spam me with currywurst or apfelwein adverts? 09:36
nwc10 Austria's A1 are spamming bastards, and send periodically me e-mail about whatever they want to sell more of.
Unfortunately they are the only people prepared to supply ADSL to this location
but when we move...
jnthn :) 09:37
nwc10 I'd love someone to tell me where to get Apfelwein in Vienna (at sensible Frankfurt prices) 09:38
FROGGS *g*
v5$ perl6 t/spec/op/pack.v5
1..14704
Zero-byte allocation not allowed in mem_sys_allocateParrot VM: PANIC: Out of mem!
C file src/gc/alloc_memory.c, line 70
aww :o(
nwc10 bad cider and expensive cider seem to the options
jnthn expensive bad cider would be even worse, though 09:40
nwc10 true
jnthn wow, lots of people submitted nqp pull requests during the class :)
nwc10 the cunning plan is working? 09:41
jnthn apparently ;) 09:42
nwc10 So far, least worst option (once my cache runs out) seems to be this lot, who sell Bulmers in bottles for a not-stupid price: www.bogside.at/
(And Newcastle Brown in 550ml bottles, despite their menu saying 0.5L. They do not appreciate the significance of this error)
FROGGS I'm a badass, I've only committed to my own repo :/
masak that's not how you use the word "badass" :) 09:46
jnthn I'm a badass, I'm sat in the chairs for gate 4 even though my flight goes from gate 5. 09:47
masak :P 09:49
JimmyZ :/ 09:50
FROGGS masak: that is exactly how *I* use the word badass :P 09:51
masak very well, Humpty Dumpty. 09:52
&dir in Rakudo is very very slow :(
jnthn oh dir
Any idea why?
moritz JVM or parrot? 09:53
FROGGS .oO( any idir? *g* )
masak Parrot.
FROGGS things are funny when you are tired and hungry
masak jnthn: maybe because it creates all those IO objects? I dunno.
JimmyZ btw: Parrot dir is not like JVM one, Parrot doesn't have opendir op, only a dir op returns all dirs 09:54
FROGGS 0.6s for a directory that has like 20 things in it 09:55
jnthn o.O
JimmyZ that's really slow ...
jnthn yes. 09:56
JimmyZ try MoarVM
:/
jnthn ok, I should go find my flight...
FROGGS ( perl6 -e 'say dir(".")' # 1.2s, perl6 -e 'say 1' # 0.6s )
nwc10 jnthn: have you checked behind the sofa? :-)
timotimo i like trains 09:58
FROGGS okay, that includes .gist 09:59
woolfy Getting empty in the lobby. Liz is bringing away [Coke], tadzik and diakopter to the airport. I am here with cognominal, mberends and not_gerd 10:00
FROGGS nah, it is the same when assigning to an array and don't say'ing it 10:01
10:01 xinming left
timotimo dir being slow is probably why ufo is so slow 10:01
10:03 xinming joined
timotimo apparently it is time for rain now 10:03
masak woolfy: hi and hugs to me from everybody! :) I should have said this sooner! :/ 10:06
er, *from* me *to* everybody. :)
masak .oO( demanding hugs: how to come off as excessively needy ) :P 10:07
timotimo too late, most have already dispersed
moritz hugs masak
our culture doesn't really support that, bug hugs *are* essential
cognominal happy birthday masak 10:08
woolfy slightly startled faces, but mberends, not_gerd and cognominal gracefully accepted your hug, given to them by proxy of me
did you have a nice birthday yesterday? 10:09
ooow, we did not even sang you a song yesterday by proxy
happy birthday to you, happy birthday to you, happy birthday dear masak, happy birthday to you
moritz masak++ 10:10
FROGGS yeah, think of all the flowers O.o
woolfy virtual flowers everywher
e
masak beams, blushes, and bristles :) 10:12
10:12 iSlug left
masak I did have a nice burfday yesterday. 10:13
FROGGS masak: happy birthday!! \o/
masak decided to spend it with @family, which was an exceptionally wise decision.
10:14 FROGGS left, iSlug joined 10:15 FROGGS joined
masak cognominal, woolfy, FROGGS: thank you. 10:15
masak raises his cup of hot chocolate in toast, to many more happy years in the name of Perl 6
FROGGS absolutely 10:17
FROGGS raises something virtually
timotimo mhhh chocolate on toast 10:20
10:21 pernatiy joined 10:22 FROGGS left
timotimo gist.github.com/timo/dc358f4f3999232f6303 - even this gives me No applicable candidates found to dispatch to for 'Int' ^H. 10:23
it seems i'm incapable of compiling a simple pir op this way
what could i be doing wrong? do i have to write coercers for all the ops children?
10:23 FROGGS joined 10:24 oris1024 left 10:27 denisboyun joined
FROGGS hmmm, ooc, I can't declare a generalized lexical postfix for things like `say 2²` ? 10:27
timotimo what is a generalized lexcal postfix? 10:28
putting coercers there gives me Method 'result' not found for invocant of class 'QAST::SVal' 10:32
woolfy lizmat, mberends, me, not_gerd and cognominal are going to have lunch at the same place we had lunch this weekend: Arche Nova in the conference building. Nice meal awaits us.
Bye bye
10:32 woolfy left, FROGGS left
timotimo good appetite :) 10:32
10:33 lizmat left 10:35 cognominal left 10:52 kivutar joined
[Coke] waves to woolfy et al. 10:56
(from the airport)
10:56 mdxi joined, mdxi left
[Coke] had a great time and will hack hack hack once he recovers. :) 10:56
10:58 pdurbin left 11:20 FROGGS joined
dalek : ebdcd7c | (Tobias Leich)++ | / (7 files):
use our own ModuleLoader, jnthn++

This has the consequene that we cant use Config.pm from Terms.pm. Turned it around.
11:25
: 74de2ff | (Tobias Leich)++ | Makefile:
fix Config.pm's dependecy
: b9f6f24 | (Tobias Leich)++ | lib/Perl5/Terms.pm:
fix that occourance of %Config
11:25 FROGGS left 11:29 dmol left 11:32 denisboyun left, FROGGS joined
FROGGS .tell jnthn when I set %*LANG<Perl5> is explodes due to reblessing the CURSOR in token statement like: "P6opaque only supports type changes where the MRO of the original type is a suffix of the MRO of the new type" 11:32
yoleaux FROGGS: I'll pass your message to jnthn.
FROGGS ossum, took ages to connect >.<
<FROGGS> if I declare a postfix:<²>(){} it would be lexically scoped... and it is specific for ²
<FROGGS> what I'd need (well, not really), would be a way tell put a range and a quantifier in the "sym"
<FROGGS> like: multi postfix:{ <[¹..³]>+ } () {...}
<FROGGS> (would be 0..9 of course)
<FROGGS> I can imagine that TimToady++ already specced sugar like that
<FROGGS> maybe this is saner: multi postfix:/<[¹..³]>+/ () {...}
timotimo: that was what I meant ^^ 11:33
hoelzro back at home! \o/ 11:35
[Coke] hoelzro: already? 11:37
I am in the airport still
hoelzro I left really early
I actually just came back from lunch!
11:38 FROGGS left
[Coke] is sitting next to diakopter 11:38
hoelzro ah, very good
diakopter: would you mind setting me up with the evalbot stuff?
diakopter hoelzro: howdy 11:44
11:59 btyler joined 12:02 gfldex joined 12:06 xinming left 12:13 kivutar left 12:14 iSlug left 12:15 iSlug joined 12:21 pupoque left
timotimo .tell FROGGS that looks more like a job for an is parsed macro. 12:22
yoleaux timotimo: I'll pass your message to FROGGS.
timotimo turns out my desktop wasn't even on. i wonder if it shut down by itself or if i just didn't turn it on in the first place :|
12:27 dmol joined 12:29 benabik left
[Coke] yikes 12:30
did it come back up ok, at least? 12:31
12:31 kivutar joined
timotimo yeah 12:32
no problems there
daxim any blorg posts about internal workshop yet? 12:34
[Coke] I will try to post one once I'm home, but I'm second furthers from home.
*furthest
daxim okay; are you pu(bli)?shing to planetsix? 12:36
[Coke] ... I am reminded that planetsix was supposed to die ages ago. 12:37
Yes, I have keys to planetsix, I'll make sure it shows up there.
12:39 jnap joined
[Coke] rant: the idiots spamming blogs.perl.org 12:40
daxim that's what you get for running MT
timotimo multi-tasking? 12:45
daxim movable type™ 12:46
it's the best worst perl multiblog software
12:47 cognominal joined
moritz if I ever write something that is supposed to superseed Movable Type, it'll be called Electronic Type, short ET :-) 12:54
12:55 kbaker joined 12:56 PacoAir joined, PacoAir left
[Coke] you have to bundle in something like google voice if you do that. 12:56
timotimo and the followup will be called FU? :)
13:05 fhelmberger_ joined, kivutar left, PZt left 13:07 justforfun joined
justforfun hello Folks 13:07
[Coke] Hallo
[Coke] wonders if nqp subs have slots on which he can save attributes.
13:07 fhelmberger left
justforfun Is Perl6 a new generation of Perl? 13:08
my mean is like Python 2 and Python 3
timotimo different from python 2 and 3
justforfun no Perl6 is a new generation of Perl? 13:09
13:09 stevan_ left
justforfun like Python 2 and Python 3 that Python 3 is a new generation 13:09
timotimo perl5 and perl6 will be continuously developed at the same time
justforfun Thus why Perl6?
timotimo it's a new member in the perl language family 13:10
nwc10 there's a bunch of stuff you can't fix in Perl 5
timotimo at the beginning, it seemed like perl6 would be replacing perl5 soon
nwc10 most obviously concurrency
justforfun it created to fix Perl 5 bugs?
nwc10 but the Unicode handling isn't ever going to be effecient for Graphemes 13:11
justforfun aha thus it is a new generation
timotimo perl 5 language bugs, not really implementation bugs
perl6 is a completely clean slate
justforfun Perl5 will be rare and Perl 6 is a new replacement
timotimo python 3 is just a continuation from python 2
jnthn home :)
yoleaux 11:32Z <FROGGS> jnthn: when I set %*LANG<Perl5> is explodes due to reblessing the CURSOR in token statement like: "P6opaque only supports type changes where the MRO of the original type is a suffix of the MRO of the new type"
nwc10 jnthn: which was more on time, the plane or the train? 13:12
justforfun timotimo: Can I send Pm?
[Coke] jnthn: ... I am still at the airport! jealous!
timotimo yeah, send patrick this way! :)
[Coke] missed pmichaud and hopes he's doing Ok.
timotimo same
[Coke] is also sad he missed moritz. 13:13
nwc10 also, it's a big maitenance drag that a lot of Perl 5 is written in C, because most people who use Perl don't know C, and most people who know C don't use Perl.
13:16 SamuraiJack_ left 13:17 PZt joined
jnthn nwc10: Plane left a little late but we just about made it up. Train was on time and I managed to get lucky with the every-20-minute thing and had a short wait this time :) 13:19
13:20 fhelmberger_ left
nwc10 now logged at irclog.perlgeek.de/perl6/2013-09-16#i_7592020 just in case it's a one off in "things actually worked" :-) 13:20
13:21 fhelmberger joined 13:22 iSlug left
jnthn It happens... :) 13:25
timotimo [Coke]: i think most of us are :( 13:26
moritz is certainly sad to have missed all those 6ers, especially those that he never met in person before 13:28
[Coke] no doubt W. will post pics soon, anyway. 13:36
masak waves from a train! o
JimmyZ \o/ 13:37
13:42 rurban joined 13:43 rurban left
[Coke] masakes on a train, starring SLJ. 13:46
13:51 thou joined 13:52 FROGGS joined 13:54 kaare__ joined, kaare__ is now known as kaare_ 13:55 grondilu joined, grondilu left
FROGGS . 13:59
yoleaux 12:22Z <timotimo> FROGGS: that looks more like a job for an is parsed macro.
FROGGS hmmmm, I have to read how that works... 14:00
14:00 ajr joined 14:01 ajr is now known as Guest67685, Guest67685 is now known as ajr_, stevan_ joined
dalek rlito: 8064a20 | (Flavio S. Glock)++ | / (3 files):
Perlito5 - js - CODE objects
14:03
14:03 xinming joined 14:06 cognominal left 14:07 itz_ joined 14:08 itz left, grondilu joined
grondilu rn: class Foo { our $.x; has Int $.y; multi method new { self.new: :y(-1) } }; say Foo.new.perl 14:09
camelia rakudo 223075: OUTPUT«maximum recursion depth exceeded␤current instr.: 'print_exception' pc 129011 (src/gen/CORE.setting.pir:55508) (src/gen/CORE.setting:10752)␤called from Sub '' pc 22603 (src/gen/perl6-bootstrap.pir:7493) (src/gen/BOOTSTRAP.nqp:1014)␤called from Sub '' pc 22571 (s…»
..niecza v24-95-ga6d4c5f: OUTPUT«Foo.new(...)␤»
14:10 xinming left
grondilu rn: my $n; sub foo { $n; LEAVE $n++ }; say foo() xx 4; 14:10
camelia rakudo 223075, niecza v24-95-ga6d4c5f: OUTPUT«␤»
grondilu rn: my $n; sub foo { return $n; LEAVE $n++ }; say foo() xx 4;
camelia niecza v24-95-ga6d4c5f: OUTPUT«1 2 3 4␤»
..rakudo 223075: OUTPUT«(Any) 1 2 3␤»
14:11 benabik joined 14:19 domidumont left 14:20 fridim__ joined, fhelmberger left 14:23 fhelmberger joined 14:26 krokite joined, krokite left, krokite joined 14:27 grondilu left 14:28 pmurias joined
[Coke] whee, finally got a lobotomized partcl to build on the jvm 14:29
just in time for diakopter to go catch his flight. 14:30
jnthn [Coke]++ 14:31
[Coke] ... running it is a different story. crappity. 14:32
gist.github.com/coke/6581483
any pointers on diagnosing that? 14:33
jnthn [Coke]: Something that should never happen happened, looks like... :S 14:34
[Coke] ok, there's one use in that fiel, that if I comment it out, I can continue. 14:35
that file is nearly 4000 lines of nqp. 14:36
14:37 justforfun left
[Coke] javap doesn't choke on the compiled class file for those 4K lines. 14:38
[Coke] peeks at the .serialized and goes slightly blind in one eye. 14:39
pmurias jnthn: what do we use nqp::getstaticcode for? 14:40
14:41 kaleem left
moritz pmurias: for example in the rakudo BOOTSTRAP 14:45
when we install methods into classes manually, we often want the actual static code object, not some closure
jnthn was gonna say, grep, but I suspect pmurias more means why we have it ;)
Anyway, yes, that. To get from a closure clone back to the original static code object 14:46
[Coke] .. you are now reading that send in jnthn's voice.
pmurias and why do we want to install a static code object instead of a closure? 14:47
jnthn Perhaps 'cus we don't want to serialize surrounding context in this case... 14:48
[Coke] I have a src/Partcl.pm -i fI run it directly, I can see that I am running MAIN; should I be able to run the corresponding .class file? (get an error that my input file is 0 len) 14:49
jnthn Should work
How are you trying to run it?
[Coke] perl wrapper with: 14:50
system("./install-jvm/bin/nqp","src/Partcl.pm",@ARGV);
that works - .class does not.
14:51 xenoterracide joined
moritz and we also use the static id of r a code object in the backtrace printer :-) 14:51
[Coke] er, I mean jar
using .jar => Error while reading from file: java.nio.charset.MalformedInputException: Input length = 1 14:52
jnthn Are you trying to give the .jar file to nqp?
[Coke] aye.
jnthn It won't know what to do with that...jar files need to be handed straight off to the JVM.
Just like a PBC or PIR file is given directly to parrot.
[Coke] ok makes sense. danke. 14:53
jnthn bitte
14:53 rurban joined 14:54 risou is now known as risou_awy
[Coke] I wonder if it would be helpful for nqp to catch that it was a lowlevel VM file and give a helpful warning. 14:55
... er, without the tautology. 14:56
jnthn That may be a good idea because it might be a good idea. :P 14:58
Guessing by extension may be enough. 14:59
[Coke] *thwap* :P
nwc10 you might be able to do it easily by "magic number" 15:00
jnthn 0xCAFEBABE or so, iirc :)
nwc10 Perl 5 (attempts) to deal with UTF-16 (BE and LE) if the "text" source code is alternating NUL bytes and something appropriate
and I think that it's viable to extend that to UCS-32
[Coke] -> boardish 15:01
15:01 risou_awy is now known as risou
jnthn good flight 15:03
15:03 fhelmberger left 15:04 fhelmberger joined
dalek rlito: 4b438fb | (Flavio S. Glock)++ | / (4 files):
Perlito5 - grammar - the "format" statement
15:13
pmurias jnthn: why does O hash take a string that it parses instead of a hash? 15:15
15:15 tba left, japhb left 15:16 tba joined
jnthn pmurias: 'cus NQP has no hash constants yet and we had no good way to implement them back when O was done. 15:16
pmurias by hash constants you mean hash literals? 15:21
15:22 denysonique left
pmurias or does Perl6 have real hash constants? 15:22
15:22 denysonique joined, dmol left
jnthn pmurias: I mean a way to do something close to STD's constant %term = (:dba('term') , :prec<z=>); 15:23
15:29 japhb joined
pmurias is constant %term; %term<dba> = 'term'; allowed? 15:31
dalek rlito: 9f36ffc | (Flavio S. Glock)++ | / (3 files):
Perlito5 - grammar - the "format" statement - use proper assignment
15:38 zakharyas left 15:40 stevan_ left, rindolf joined 15:43 fhelmberger_ joined
pmurias is the object constant or only the variable? 15:46
15:46 fhelmberger left
FROGGS RE: jnthn: when I set %*LANG<Perl5> is explodes due to reblessing the CURSOR in token statement like: "P6opaque only supports type changes where the MRO of the original type is a suffix of the MRO of the new type" 15:46
jnthn: the said type change is about the cursor itself? 15:47
jnthn pmurias: I dunno if the spec makes it explicit; I know that we have no mechanism to actually enforce "constant all the way down" 15:48
FROGGS: Yeah, I guess it expects that you did no more than derive the language we were previously in... 15:49
FROGGS ... which was what I did in the first days, but which is not a good idea for most slangs I guess :o) 15:50
I guess a design-pro must lay his hands on it... *cough*
(or his thoughts) 15:51
jnthn yeah, I'm pondering...
TimToady every cursor is supposed to be a new object in theory, so reblessing is not the only way to get a new object :) 15:55
15:56 denis_boyun joined 16:03 daxim left, iSlug joined 16:15 denis_boyun left
dalek p: f0716d4 | (Pawel Murias)++ | docs/ops.markdown:
Copy over the documentation of the radix op from nqp.ops.
16:16
16:24 fhelmberger_ left 16:26 denis_boyun joined 16:35 spider-mario joined 16:39 kaleem joined
masak I must confess to being fascinated by Go's mix of OO ingredients. nathany.com/good/ 16:47
it feels a bit like Perl 5's mix, for some reason.
HN discussion here: news.ycombinator.com/item?id=6392545 16:48
tadzik hello #perl6 16:50
16:50 crazedpsyc left 16:51 denis_boyun left 16:52 crazedpsyc joined
jnthn o/ tadzik 16:52
Get home ok?
tadzik yep, I dind't even crash the plane 16:53
jnthn well done! 16:54
tadzik that made me think of www.youtube.com/watch?v=bgg_oIK6rZ8 16:55
FROGGS hi tadzik! 16:59
16:59 kaleem left 17:07 jeffreykegler joined 17:09 dakkar left
ingy morning <o 17:10
FROGGS hi ingy
masak ingy! \o/
detrain &
17:10 SamuraiJack_ joined
TimToady .tell Mouq Yes, according to S05:45 niecza is corret and rakudo incorrect on irclog.perlgeek.de/perl6/2013-09-15#i_7590246 17:12
yoleaux TimToady: I'll pass your message to Mouq.
synopsebot Link: perlcabal.org/syn/S05.html#line_45
17:12 kbaker left
jnthn The NFA engine in Rakudo/NQP just doesn't do the longest-literal tie-breaker yet. 17:13
17:14 risou is now known as risou_awy 17:15 pmurias left 17:19 iSlug left 17:24 iSlug joined
GlitchMr glitchmr.github.io/ - I've a feeling I copied perl6.org design. 17:28
flussence ooh, box shadows 17:29
17:29 not_gerd joined
not_gerd o/ 17:29
FROGGS o/
17:36 rurban left 17:38 iSlug left, jeffreykegler left 17:40 denis_boyun joined 17:46 kbaker joined 17:51 zwut00 joined 17:57 ajr_ left 18:00 stevan_ joined 18:08 ssutch joined, stevan_ left 18:09 stevan_ joined 18:15 pernatiy left, dmol joined, Rotwang joined 18:21 rurban joined 18:27 zby_home joined 18:30 PZt left, PZt joined 18:34 brahmam joined 18:35 brahmam left 18:40 btyler left 18:42 alester joined 18:51 rindolf left 18:57 denis_boyun left
GlitchMr glitchmr.github.io/ 19:02
ok, here is real layout that doesn't copy perl6.org
(except it seems that GitHub caching is messing with me)
19:11 lowpro30 joined, stevan_ left 19:12 denisboyun joined 19:19 ssutch left, ssutch joined 19:21 ajr joined, ajr is now known as Guest97241 19:22 Guest97241 is now known as ajr_
FROGGS GlitchMr++ 19:34
I like it
GlitchMr Thanks :-). 19:35
timotimo tadzik: www.youtube.com/watch?v=8LOarjz5EeY hellsongs - seasons in the abyss, i mentioned this to you 19:38
19:40 lowpro30 left
tadzik timotimo: haha, that's awesome 19:48
and they have plenty of those
timotimo GlitchMr: your blog is now very easy on the eyes :) 19:49
19:50 SamuraiJack_ left
GlitchMr lol ;-) 19:51
Yeah, the previous blog was what happens when programmer who isn't designer designs a website.
masak GlitchMr: ss/it\'s a <(week)> since first Perl 6 changes article/year/ ? 19:52
GlitchMr lolyeah
timotimo so many changes in a week!
masak GlitchMr: compliments on the layout for that page. it looks really slick.
GlitchMr++
GlitchMr Actually, I didn't design it. 19:53
tadzik and they have more of those :)
masak I don't care; it's nice :)
GlitchMr Or rather, I did, but partially.
I wanted to update the layout, and showed it in certain IRC channel, and somebody improved it ;-). 19:54
FROGGS collab++
moritz that happened to me three times in here 19:55
(irclogs, perl6.org and feature matrix came originally from me with aweful design, and then people stepped up and improved on it)
timotimo you mean they stepped on it? :P 19:57
19:57 PacoAir joined
GlitchMr I still don't understand why Ruby programmers make nicer webpages than Perl or Python programmers. 19:57
19:57 btyler joined
masak it's mostly a matter of paying attention to such aspects, I think. 19:59
there's no magic bullet. just stepwise improvements. 20:00
FROGGS maybe the perl hacker are older in general?
...and have therefor other expectations 20:01
GlitchMr grokcode.com/746/dear-python-why-ar...u-so-ugly/
This is rather interesting.
timotimo huh? 20:02
heroku counts as a ruby site?
masak FROGGS: there is that. waves upon waves of web developers, each new wave "stuck" in the esthetics of their time.
FROGGS yeah 20:03
GlitchMr Well, I use Heroku to host Node.js stuff. 20:04
FROGGS masak: we should do something in the near future about the perl6 sites...
GlitchMr But I assume many Ruby programmers use it.
20:04 zby_home left
masak FROGGS: aye. 20:08
lue hello world o/ 20:09
timotimo well, how do we attract designers?
possibly somebody who wants to be paid
FROGGS timotimo: I know good ones (which wants/needs to be paid)
hi lue 20:10
20:10 EvanTeitelman joined
GlitchMr I think it could be important. "Strangely Consistent" and "Whatever but Cool" look nicely, but other than that, Perl 6 websites are sort of ugly. 20:12
And how website looks does have meaning. Perl 6 websites shouldn't look like Perl 5 websites. 20:13
japhb Is there a variable to which the value of interactive evals gets assigned? In other words, when using perl6 in interactive mode, entering one statement or expression after another, is there some variable that magically gets assigned with the value of each expression or statement executed? If not, could there be? My use case is roughly like bc's magic . variable, where I'm exploring some concept and want to use the result of one evaluation arbit
rarily within the next one.
FROGGS GlitchMr: exactly
jnthn japhb: no
japhb: Though it's probably not a hard feature to introduce if we can figure out the details... 20:14
masak if there were one, I'd expect it to be a contextual.
$*LAST
GlitchMr >>> 2 + 2
4
>>> _ + 2
6
Something like this in Python?
masak yeah.
GlitchMr Also, I think such variable should have short name.
japhb GlitchMr, yeah.
jnthn We could consider just making $_ be that...
GlitchMr $_ would be very confusing.
masak agree.
I wonder if we could get away with $
std: say 4 + $
jnthn No :)
japhb I thought of that, but figured what GlitchMr said: confusing
camelia std 7c17586: OUTPUT«===SORRY!===␤Non-declarative sigil is missing its name at /tmp/1B5243U9Ch line 1:␤------> say 4 + ⏏$␤Use of uninitialized value $first in string eq at STD.pm line 66222.␤Use of uninitialized value $first in string lt at STD.pm…»
masak yeah, no. 20:15
jnthn Why is $_ confusing, ooc? :)
GlitchMr Because it would be mutated when you don't want it.
masak jnthn: because it may have been assigned to independently.
jnthn hm, true
GlitchMr Sometimes you could want to experiment with $_.
japhb Because I'd like debugging and interactive eval to feel similar. In fact, I'd like the latter to be more or less a subset of the former. Which kills messing with a commonly used variable. 20:16
GlitchMr $ would be good, but I don't think modifying grammar for REPL to work would be good idea.
std: my $var; sub term:<$> { 4 }; $var + $ + $var
camelia std 7c17586: OUTPUT«===SORRY!===␤Confused at /tmp/sPV7lZZgVx line 1:␤------> my $var; sub term:<$> { 4 }; $⏏var + $ + $var␤ expecting any of:␤ POST␤ feed_separator␤ infix or meta-infix␤ infixed function␤ postcircumfix␤ postfix␤
..postfix_prefix_…»
20:16 SmokeMachine left
masak japhb: "The REPL is a special case of debugging." interesting slogan. 20:16
japhb I thought of $. in parallel with bc's . , but there's of course confusion from the perl5 world
masak japhb: I'm gonna mull over that a bit :)
GlitchMr $/ already means different thing in Perl 6 than in Perl 5. 20:17
japhb GlitchMr, no argument. I'm just saying, it's not completely without baggage.
masak japhb: wouldn't it be nice if the answer was "Perl 6 is hookable enough that you just `use Last::Var;`, and then the value of the last expression can be found in the variable *mumble*"? :)
japhb wonders whether mental mulling gives off the smell of mulled cider ....
jnthn masak: Well, the next step up is the REPL mode of the Rakudo debugger... :) 20:18
GlitchMr Underscore is safe in Python's REPL, because Python doesn't use _.
japhb masak, Why yes, it would! And then I'd want that loaded always, so I'd probably alias perl6 to perl6 -MLast::Var. ;-)
GlitchMr Also, Python's REPL contains interesting magic. If you write to _, it doesn't change its value.
jnthn So, let's just choose a char that Perl doesn't use...oh...wait...we used them all... ;-) 20:19
japhb heh
UNICODE!
:-/
timotimo $™
GlitchMr repl> 2 + 2
4
repl> ☃ * 2
8
japhb timotimo, is that your personal variable?
timotimo :D
jnthn Just use ↑
timotimo i can do whatever i like with it!
masak japhb: well, it's a precarious balance. it *should* be the default, if it being the default has exactly zero harmful side effects on anything else.
jnthn It points upwards to the thing :)
masak japhb: if it's a tradeoff, which it might well be, it should be all-is-fair-predeclare. 20:20
japhb jnthn, ooh, that's actually fun enough to think about. And it could be a magical "constant".
GlitchMr It would be nice to just use $, but I'm not sure whatever it's not dangerous to Perl 6 grammar.
timotimo $ already means something
japhb masak, agreed.
timotimo r: my $ = 5;
masak GlitchMr: yeah, we already ruled that out above.
camelia ( no output )
GlitchMr Also, we used every character with exception for `. 20:21
But something like ` + 2 would be just ugly.
japhb remembers when ` actually was used.
GlitchMr (well, actually ` is used in comments, but other than that)
japhb
.oO( intrinsic units )
timotimo "backtick" matches nicely, though :) 20:22
GlitchMr Alternatively, this magical variable can be 􏿽xBB􏿽xF6􏿽xAB. 􏿽xBB􏿽xF6􏿽xAB + 2 * 2
timotimo that looks like you're hypering in a term position :(
japhb Oh, *that* would be fun to type ... :-P
GlitchMr Perhaps just _. 20:23
In Perl 5, it was default filehandle, but it doesn't mean anything in Perl 6.
_ + 2 20:24
It would look just like in Python.
masak GlitchMr: I'm just wary of introducing a strange short symbol, Perl 5-style. 20:25
not_gerd oO( $$ + 2 )
timotimo r: my sub _() { say "this is the last value used" }; _ + 5
camelia rakudo 223075: OUTPUT«Too many positional parameters passed; got 1 but expected 0␤ in sub _ at /tmp/bE06CHmhE1:1␤ in block at /tmp/bE06CHmhE1:1␤␤» 20:26
GlitchMr $$ looks like PID, but...
masak it looks like Perl 5.
timotimo hm, not like that
japhb & # Gah, meeting
GlitchMr std: _
camelia std 7c17586: OUTPUT«===SORRY!===␤Undeclared name:␤ '_' used at line 1␤Check failed␤FAILED 00:00 41m␤»
GlitchMr std: sub _() { 42 }; say _ + 2 20:27
camelia std 7c17586: OUTPUT«ok 00:00 44m␤»
GlitchMr rn: sub _() { 42 }; say _ + 2
camelia niecza v24-95-ga6d4c5f: OUTPUT«Unhandled exception: Excess arguments to _, used 0 of 1 positionals␤ at /tmp/XDOohNQozS line 0 (_ @ 1) ␤ at /tmp/XDOohNQozS line 1 (mainline @ 4) ␤ at /home/p6eval/niecza/lib/CORE.setting line 4583 (ANON @ 3) ␤ at /home/p6eval/niecza/lib/CORE.setti…»
..rakudo 223075: OUTPUT«Too many positional parameters passed; got 1 but expected 0␤ in sub _ at /tmp/0EqsNJ0Q23:1␤ in block at /tmp/0EqsNJ0Q23:1␤␤»
GlitchMr HUH?
rn: my constant _ = 42; say _ + 2
camelia rakudo 223075, niecza v24-95-ga6d4c5f: OUTPUT«44␤»
masak GlitchMr: listop.
GlitchMr: if you leave out the parens, don't be surprised when the rest gets passed as a parameter :)
GlitchMr But, I used space before and after "+" operator. 20:29
Shouldn't that assume _ takes 0 arguments.
20:29 BenGoldberg joined
GlitchMr rn: sub _() { 42 }; say _+2 20:32
camelia rakudo 223075, niecza v24-95-ga6d4c5f: OUTPUT«44␤»
GlitchMr This is strange.
BenGoldberg Why?
GlitchMr I would rather expect _+2 to do the same thing as _ + 2. 20:33
BenGoldberg rn: sub _() { 42 }; say _ + 2
camelia niecza v24-95-ga6d4c5f: OUTPUT«Unhandled exception: Excess arguments to _, used 0 of 1 positionals␤ at /tmp/TSmpoXoXrj line 0 (_ @ 1) ␤ at /tmp/TSmpoXoXrj line 1 (mainline @ 4) ␤ at /home/p6eval/niecza/lib/CORE.setting line 4583 (ANON @ 3) ␤ at /home/p6eval/niecza/lib/CORE.setti…»
..rakudo 223075: OUTPUT«Too many positional parameters passed; got 1 but expected 0␤ in sub _ at /tmp/1Y_bk0EdVB:1␤ in block at /tmp/1Y_bk0EdVB:1␤␤»
jnthn japhb, masak: Module for you sir... gist.github.com/jnthn/6586219
masak GlitchMr: no, it's either parens or white space to pass arguments.
GlitchMr: adjust your expectations :) 20:34
GlitchMr I probably used Perl 5, CoffeeScript, and Ruby too much then :-).
masak jnthn: you know, I half-expected you to do that. :P
jnthn++
GlitchMr jnthn, shouldn't prev be a term, not subroutine? 20:35
jnthn GlitchMr: Patches welcome.
timotimo lovely 20:36
GlitchMr gist.github.com/GlitchMr/6586247
Patch
jnthn It's just a proof of concept for somebody with more time than me to do something nice with :)
timotimo rakudo internals could be said to have at least some whipuptitude 20:37
20:39 iSlug joined
GlitchMr It would be nice if "prev" wouldn't depend on internals, but considering REPL is implementation-specific, it's fine. 20:39
20:40 donaldh joined
masak we'll, you could always wrap this up into an implementation-agnostic API. 20:42
but the returns on that are probably pretty low.
FROGGS jnthn: ahh, and when I comment that die() when reblessing, it still doesnt work because it is not using my actions for some reason... 20:45
timotimo gist.github.com/timo/dc358f4f3999232f6303 - please help me understand why this doesn't work whatsoever? 20:47
everything but the $qastcomp.as_post for the QAST::VM is commented out
Tene jnthn: I hear you're doing something with cardinal these days? 20:48
jnthn: Oh, turns out I was rather misinformed by timotimo. 20:49
timotimo yes, i was hardcore trolling :)
20:49 iSlug left
jnthn Tene: Not really... I was doing a NQP/Rakudo internals course this weekend and needed some simple examples to illustrate/let people practice with ideas. 20:50
Tene: So I built a tiny bit of Ruby, then set implementing a tiny bit of PHP for the exercises. :)
Tene Ah.
jnthn Tene: I had literals, variables, functions, classes with methods...and that was about all :) 20:51
masak .oO( no big deal. we just retreated over the weekend, and re-implemented Ruby and PHP... )
timotimo jnthn: the only thing missing from that feature list is rails
masak .oO( we're Perl 6 core developers. FEAR US )
timotimo then you're golden :)
jnthn I hadn't quite imagined the level of resistance to having to write a PHP compiler :P 20:52
timotimo we're people, too, you know? 20:53
jnthn :)
timotimo actually, not even animals should ever have to do such a thing
only a water bear would go through that exercise unscathed
jnthn Trouble was, I wanted something that was (a) easy to parse, and (b) had basic class OO...
And (c) was untyped
Tene like smalltalk? 20:54
FROGGS nqp/src/stage1/QAST.pir:1618: $P5576."add_core_pirop_mapping"("bindattr_i", "repr_bind_attr_int", "3PPsi", 1 :named("inlinable"))
what is the 3 there?
in 3PPsi ?
20:54 benabik left
FROGGS I thought there would be only 0 for void... 20:55
Tene or was smalltalk prototyped?
timotimo yes, i was confused about that, too
jnthn I think the problem I had there was that smalltalk has everything as an object
I think I looked at it
FROGGS uhhh, everything is an object
that must be awful 20:56
Tene No, smalltalk has classes, not prototypes.
timotimo FROGGS: even the natives? 20:57
even statements?
20:57 lizmat joined
jnthn Well, really it's just that I wanted something where hello world was as simple as [puts|echo|say] "string" 20:57
Tene PHP is a lot more widely known and familiar, is probably the other major criteria
jnthn That is, I wanted an example that was simple along a bunch of dimensions. 20:58
And yeah, familiar was a criteria
Probably less cruel woulda been fro me to do PHP and set Ruby as the exercise :)
lizmat &decommuted
jnthn wb lizmat++
lizmat we left around 2pm after having lunch at the Arche restaurant (where we had lunch twice before) 20:59
then went to Perl to replenish our stock of Perl wine, and had dinner there at Hammes
then back home 21:00
an enjoyable afternoon / evening :-)
jnthn bbiab 21:02
21:09 not_gerd left
lizmat TimToady, pmichaud: inspired by the RaNIW, I decided to have a go at converting [] and {} accesses from multi method to multi sub 21:13
this proved remarkably uneventful, except for 2 things:
1. all tests that pass unhandled adverbs, now die instead of silently ignoring them 21:14
this is specifically true for []:exists and []:delete
timotimo hm, i wonder if i'd find anything interesting for dir slowness?
lizmat TimToady, pmichaud: will implement these and thus fix the problem
the second one is more serious, and needs some more thought 21:15
before this change, if a class wanted to provide [] or {} access to its object, the only thing it would need, was to provide a postcircumfix method 21:17
e.g. role Foo does Positional { @!array handles 'postcircumfix:<[ ]>' } 21:18
21:18 iSlug joined
lizmat this will no longer work 21:18
21:18 woolfy1 joined
lizmat jnthn's first suggestion, was to replace this with "handles 'at_pos'" 21:18
but that only works for single element accesses, not for slicese 21:19
*slices
similar problem with handles 'postcircumfix:<{ }>'
and handles at_key
also, how to handle the case of: 21:20
masak is it a show-stopper that it's not for slices?
seems to me the slices logic is (potentially) always the same
lizmat I think so
masak and only rarely would you want to override it
timotimo if you want super magic slices, you can still install a multi candidate for the postcircumfix, i think 21:21
masak at which point it's OK to do some more work.
right.
lizmat well, "at_key" and "at_pos" are really supposed to be internal methods
timotimo the existing slicing should just be using at_pos without too much trouble, right?
lizmat timotimo: no you can't
timotimo ah, that's a bit smelly
lizmat you could create a multi for the at_key perhaps
21:21 kbaker left
timotimo i can't install a multi sub postcircumfix:<{ }>(MyFancyClass $c)?? 21:21
lizmat the existing slicing is using at_pos / at_key as appropriate
how can you guarantee that the sub is visible where the object is used ? 21:22
timotimo oh, i hadn't even thought of that 21:23
lizmat suppose an object A is created in one compunit, and is passed to a sub in another compunit
timotimo installing it in GLOBAL would be a way to do it, but that smells terrifying
lizmat yes, and collsions *will* happen then
timotimo GLOBAL doesn't know how to merge multis?
lizmat I guess you could 21:24
21:24 Rotwang left
lizmat but then you're forcing the author to be hygienic about the signature 21:24
timotimo i don't think we should go there
lizmat I don't think so either
an alternative could be that the method access continues to exist 21:25
timotimo so at the beginning of the sub you check for a method to exist?
lizmat and that World only generates sub calls if it can be sure that they're going to be handled ?
(yuck)
anyways, I wanted to throw this in the group 21:26
timotimo no, you can't know that at the time the call needs to be generated
21:26 ssutch left, Mouq joined
lizmat indeed…. not a lot of times, indeed :-) 21:26
21:27 not_gerd joined
Mouq r: 1 21:27
lizmat so I hope that some people will think about this while I get some shuteye
yoleaux 17:12Z <TimToady> Mouq: Yes, according to S05:45 niecza is corret and rakudo incorrect on irclog.perlgeek.de/perl6/2013-09-15#i_7590246
synopsebot Link: perlcabal.org/syn/S05.html#line_45
camelia ( no output )
not_gerd lizmat: you could have a multi-candidate that dispatches to a method based on a role
timotimo oh, that could work well with the multi dispatch cache and so on
lizmat timotimo, not_gerd: the change I made, generates optrees with 'call' rather than 'callmethod' 21:30
timotimo yes, that's not what we mean
lizmat well, that's the change that has been on the todo list of rakudo for 1.5 years, afaik 21:31
timotimo we mean something like sub postcircumfix:<{ }>($thing) { ... }; postcircumfix:<{ }>(CustomHashAccess $thing) { ... }
21:31 denisboyun left
timotimo and then you'd have your class read class FooBar does CustomHashAccess { ... } 21:31
not_gerd a/sub/multi/ 21:32
s/a/s/
timotimo er, yes. pseudocode obviously ;)
jnthn back
lizmat but that still wouldn't solve the problem of an object from one compunit being passed to another
21:32 spider-mario left
lizmat unless you want to pollute GLOBAL with all of those multi-subs 21:32
timotimo er 21:33
i think i'm not being clear at all
jnthn multi subs are always looked up by lexical scope.
not_gerd role CustomCurlies { method curlies(|) { ... } }; multi sub postcircumfix:<{ }>(CustomCurlies $c, |arg) { $c.curlies(arg) }
that sub would be in core
lizmat ah, ok 21:34
hmmm....
that could work, I guess
jnthn Typically, if you are making your own array mechanism, at_pos is the one you want to override...
And possibly bind_pos too
timotimo we were worried that it won't let us change slice semantics
lizmat jnthn: this is not the real problem
jnthn Right, if you need to do that then you'd have to write an extra multi-candidate for the postcircumfix with your type as the argument, and export it... 21:35
lizmat it is about providing generic [] and {} semantics on an object
jnthn: not_gerd's solution would just be about adding a role to a class
21:35 iSlug left
jnthn Yes, but normally you don't actually want to implement all of the slice semantics... 21:35
I don't see hwo the thing not_gerd wrote would work, or maybe I missed something.
That was a lexical multi candidate inside of a role... 21:36
timotimo no, the role is closed before the multi sub
jnthn And was not exported, thus it goes nowhere...
oh...
timotimo the multi sub that looks for CustomCurlies invokes the method
jnthn yeah, so it is.
sorry, missed that.
lizmat class A does CustomCurlies { method postcircumfix }
indeed
21:36 iSlug joined
jnthn Yeah but...why? 21:36
lizmat 1. code change would be minimal 21:37
timotimo because exporting the multi candidate to GLOBAL sounds like a terrible hack?
jnthn Why not just write the multi candidates for yoru type?
timotimo: "exporting to GLOBAL" sounds pointless. You don't ever look up multis in GLOBAL!
lizmat because they would need to be exported to GLOBAL
jnthn You dont' ever look up subs in GLOBAL
watch
timotimo ah, right. but how do subs in the core setting for example know how to handle your custom curlies? 21:38
lizmat jnthn: well, how would an object created in compunit A know where to find the multi subs in compunit B
timotimo or from foreign modules that know nothing of your shenanigans
21:38 kaare_ left
jnthn lizmat, timotimo: That's what lift is for 21:38
timotimo does rakudo even lift?
jnthn And note this situation applies already for *everything else*.
lizmat and lift is NYI
jnthn No.
And look how terrible the consequences are. :P 21:39
timotimo :)
jnthn I mean, we should implement it.
But this problem already exists for every other operator in the language.
That is, pass your own two custom numeric types to something that wants to + them... 21:40
japhb jnthn++ # prev mini-implementation
jnthn And it also won't see your candidates without lift.
timotimo good point
not_gerd for what it's worth, postcircumfix feels more method-y to me than infix ops 21:41
jnthn not_gerd: It's not staying as a method.
21:41 bruges joined
jnthn If you do that we can't easily optimize native array access and we force every access to go through 2 levels of multi-dispatch. 21:41
*every array access 21:42
postcircumfixes are just postfixes with funny syntax.
And postfixes are subs.
lizmat ok, so basically: lift is the solution to this problems
timotimo i should start lifting, too
jnthn lizmat: aye
lizmat ok, I will sleep on that
jnthn lizmat: Maybe this just gives us another shove towards implementin git :)
uh, it
lizmat hehe 21:43
yes
so, my plan: 1: implement []:exists and []:delete
21:43 bruges_ left
lizmat 2. commit method -> sub change 21:43
3. mark failing tests as "todo" or "skip"
*still failing
jnthn How close are we to monthly release? 21:44
lizmat tests that need lift
japhb
.oO( Our new STM model: in-memory Git )
not_gerd jnthn: I was thinking about my expectation as a user - I'd expect for matrix[2..3][4..5] to always do the right thing even if I didn't include Math::LinearAlgebra
jnthn I think we're close, and we may want to put this in a branch and merge it after the next release...
not_gerd whereas I could live with having to do so when doing mat1 + mat2
lizmat jnthn: I will wait with 2 until after the monthly release, ok ?
jnthn lizmat: +1
lizmat or do you want me to waith with 1. as well ?
jnthn No, 1. makes things better today rather than risking breaking anything, iiuc? 21:45
lizmat indeed...
jnthn not_gerd: And it will unless your matrix class somehow needs to handle slice semantics in an unusual way...
lizmat it doesn't work atm, so I doubt anybody is using it :-)
r: my @a=1,2,3; say @a[*]:exists 21:46
camelia rakudo 223075: OUTPUT«1 2 3␤»
jnthn wow :)
lizmat r: my @a=1,2,3; say @a[*]:delete; say @a
camelia rakudo 223075: OUTPUT«1 2 3␤1 2 3␤»
jnthn yeah, if anybody is using it then they're just getting lucky somehow... :)
lizmat indeed
21:49 cognominal joined 21:50 alester left
lizmat gnight, #perl6! 21:50
it has been a fun weekend
sleep& 21:51
jnthn Indeed it has
lizmat++ # organizing it all
well, with help from others, but I mean, being the person who triggered it happening :)
timotimo i'm just glad i didn't get a cup to my head 21:52
jnthn I used to be a Perl 5 programmer once...but then I took a cup to the head...
arnsholt jnthn: From a cursory grep through the NQP sources, it looks like get_boxed_ref isn't exposed directly through an nqp::op. That sound more or less correct to you? 21:53
jnthn arnsholt: Correct, it can't be, it's not safe :)
arnsholt: It returns a pointer into the middle of an object :)
arnsholt Right, of course
In that case, I'm gonna make a branch and see if I can't refactor it into something more JVM-implementable 21:54
jnthn Well, since that particular bit of the REPR API is in no way exposed, we've no need to handle the use cases it serves the same way on all backends.
Just like we don't have gc_mark and gc_free methods in the JVM objects. 21:55
s/objects/repr api/
arnsholt That's true
But AFAICT, the way it's implemented on Parrot lets you have multiple box targets that don't box to int/num/str 21:56
As long as they've different REPRs
jnthn Right
We actually "need" it for bigint too... 21:57
But cheat because that's just a single field
We could just say "on JVM, if you inline anything, you must inline it to a single field, so we can get_ref it" 21:58
Which'd mean we'd hold the various bits of info about a native callsite at an extra level of indirection...
21:59 ssutch joined 22:01 donaldh left
not_gerd good night 22:03
~~ 22:04
22:04 not_gerd left
jnthn o/ 22:06
22:07 ssutch left 22:16 ajr_ left 22:20 PacoAir left, tba left 22:21 tba joined
jnthn 'night 22:23
masak o/, jnthn 22:25
22:26 rurban left, stevan_ joined, stevan_ left, stevan_ joined
masak 'night, #perl6 22:41
23:06 ssutch joined 23:08 TgMts joined 23:09 ssutch left 23:10 benabik joined 23:16 dmol left 23:23 zwut00 left 23:32 iSlug left 23:44 ssutch joined 23:50 TgMts left 23:59 ssutch left