»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg p6eval perl6: ... | irclog: irc.perl6.org/ | UTF-8 is our friend!
Set by sorear on 4 February 2011.
TimToady there are many cursors, of many cursor types; they are all "special" in their own way 00:00
but each of them knows what language it is parsing, and what state they represent in the current parse 00:01
perlOblivious TimToady, so you always get a $􏿽xA2 when you work with regex? o.O
TimToady yes, but you're not supposed to know about that most of the time
it's more a concept
when you write a method in a grammar, the current cursor actually comes in as self, and the method returns a new cursor 00:02
nothing actually has to be called $¢
perlOblivious so you just return self+1?
TimToady that's just its name if you happen to refer to it in STD's action closures
no, a cursor is not a number 00:03
perlOblivious that is, you do self.cursor_fresh(self.pos+1)
TimToady yes, and return that
perlOblivious kewl
alright. thank you. this means perl already has everything i thought of :-)
TimToady well, not cursor_fresh, that's for changing type 00:04
perlOblivious then self.pos-1?
TimToady just self.cursor(self.pos + 1)
perlOblivious self.pos-1; return self?
ungh.
TimToady you can't modify a cursor
they are immutable 00:05
perlOblivious alright.
yeah, didn't make sense what i said anyway ;-)
TimToady (well, you can, if you're the optimizer, but that's cheating)
perlOblivious thanks for the clarification
i'll have to learn perl already.
TimToady the BIG point is that you backtrack merely by throwing away cursors, and getting the next one from a lazy list
so backtracking never has to "undo" anything it did when going forward 00:06
perlOblivious yeah. and it has to return to the state before, it's more complex than to just decrement a cursor, the transition from that state could've been a group 00:07
00:07 armitage81 left
TimToady it's just throwing away possible future universes, like Schrödinger's Cat. :) 00:07
mhasch poor kitten :-) 00:08
japhb_ TimToady, can a backtrack jump way back at once (dropping a pile of choice points all in one "step")?
perlOblivious TimToady, hmm, isn't it actually adding on more, given that it is going back in time, where present wasn't decided?
TimToady perlOblivious: but if the previous group was producing a lazy list of possible universes, you just throw away the current universe and pick the next on off the list, and it automatically recurses into the group through the magic of lazy lists
japhb_ is thinking in terms of GC tuned for making the grammar engine happy
TimToady *next one 00:09
00:09 armitage81 joined
TimToady lazy lists are a way of doing poor-man's continuations 00:09
00:10 armitage81 left
TimToady so a form of time travel, yes, in a branching universe 00:10
perlOblivious TimToady, if you're resetting state to a previous point, how would you count then?
japhb_ I guess if it's a lazy list, you never move more than one at a time ... it just may end up being logically distant, even though it's just "the next item on the list"
perlOblivious *all state
sorear perl 6 gather/take is exactly equal in power to coroutines
00:10 armitage81 joined
TimToady as long as the state of all the butterflies flapping in China is contained in the cursor, you're good to go 00:10
sorear in the macro-reducibility sense
TimToady yes, but cursors can at least be reused 00:11
mhasch can we choose between "longest match" and "first match"?
TimToady sure, use | vs ||
mhasch nice. 00:12
perlOblivious i'm thinking perl doesn't get the respect deserves - all because of the few extra ascii chars used for making code more succinct.
TimToady so cursors are a little more like continations in that respect than pure coroutines
*nuat
japhb_ TimToady, do you have any sense on how big the collection of "active" cursors gets to be in a typical STD parse? 00:13
TimToady perlOblivious: we don't want respect; we just want to help people get their work done
diakopter japhb_: it goes past warning's recursion threshold 00:14
japhb_ "Respect, no respect ... we're the ones with the chainsaw."
TimToady well, we wouldn't mind a little more respect, but it's easy to get so much respect you can't get anything else done
perlOblivious TimToady, marketing is almost everything unfortunately. 00:15
mhasch it's nice to be important, but more important to be nice
diakopter perlOblivious: I agree, at least for nowadays
20 years ago, things were far less industrialized 00:16
perlOblivious diakopter, there's really no escaping it. flocking is human nature
i use marketing in quite a broad sense
diakopter me too
00:16 armitage81 left
TimToady we do marketing; we're just subtle about it 00:16
00:16 armitage81 joined
TimToady p6 marketing is still mostly in the "Shh! Don't tell anyone yet!" stage. :) 00:17
perlOblivious TimToady, that's actually good
I think
TimToady it's a phase that will pass when the time is right 00:18
perlOblivious Otherwise there'd be pressure to prematurely standardize and freeze
TimToady "Avoid success at all costs."
perlOblivious What's that?
TimToady Haskell slogan.
ours is "Second system syndrome done right!" 00:19
perlOblivious hmm... weren't they designed by a committee decades ago?
TimToady committees are people too
perlOblivious yeah, they don't meet very often though, and their agreements are pretty much set in stone
TimToady well, of course, they believe in immutable values 00:20
perlOblivious XD
TimToady we only believe in them when it's convenient
perlOblivious i only believe in mutable values when they are convenient
speaking of which, i just got acquainted with Rust. Quite nice 00:21
diakopter lolz; committee convenient
00:21 armitage81 left, armitage81 joined
perlOblivious alright, nice chatting with you guys. cya 00:23
00:23 perlOblivious is now known as paxcoder, paxcoder left 00:25 armitage81 left 00:26 armitage81 joined, atrodo left 00:31 armitage81 left, armitage81 joined 00:32 armitage81 left 00:33 supernovus joined, armitage81 joined
supernovus Fwew, well, the XML library now has some rudimentary documentation. Currently just stuffed in the README.md on github, but hey, it's better than the previous state (which was zero documentation.) 00:34
00:36 supernovus left 00:37 armitage81 left 00:38 armitage81 joined, cognominal joined 00:40 armitage81 left 00:43 cognominal left, cognominal_ joined
cognominal_ r: Pair.new 00:43
p6eval rakudo 2fca74: ( no output )
cognominal_ I am not sure what to think of that. I would expect the method .new to return an instance of the same type as of the invocant, not from some base type
r: say Pair.new
p6eval rakudo 2fca74: OUTPUT«Any => Mu␤»
00:44 cognominal_ left 00:46 grondilu joined
skids
.oO(would it be too nanny to warn/fail harmlessly if --output= is set to the same file as the program file)
00:47
[Coke] has a qast question - if I want to not only create a lexical var but assign it a new instance of a class, how do I do that? (qast::var lets me make the lexical...) 00:53
japhb++ # army of darkness 00:56
00:58 anuby joined
japhb_ heh 01:05
01:14 rindolf joined, hypolin joined 01:20 armitage81 joined, sjohnson left, kst left, gootle left, arlinius left, Tene left, rhr left, ruz left, frettled left, charsbar_____ left, `patch` left 01:21 sjohnson joined, kst joined, gootle joined, arlinius joined, Tene joined, rhr joined, ruz joined, frettled joined, charsbar_____ joined, `patch` joined
[Coke] japhb_: new evil dead movie coming soon. 01:30
japhb_ Schweet.
Still starring The Chin?
[Coke] nope. 01:31
rjbs It's a remake of the first one.
en.wikipedia.org/wiki/Evil_Dead#The...13_film.29
no Ash
[Coke] rjbs: not exactly a remake, as I understand it, but definitely closer in tone to the 1st one.
rjbs I think it's as much a remake of Evil Dead as (say) Friday the 13th recently was a remake of the original. 01:32
fwiw
01:39 benabik left 01:43 rindolf left 01:50 armitage81 left, armitage81 joined 01:52 armitage81 left, armitage81 joined 01:53 armitage81 left, armitage81 joined 01:54 armitage81 left 01:55 sjohnson left 01:57 armitage81 joined, armitage81 left, armitage81 joined, grondilu left 01:58 benabik joined, sjohnson joined 02:05 MikeFair left 02:12 MikeFair_ joined 02:14 tokuhiro_ left 02:15 tokuhiro_ joined 02:19 tokuhiro_ left
japhb_ I'm getting this with ./perl6-debug -e 'say "test"' : 02:27
===SORRY!===
P6opaque only supports type changes where the MRO of the original type is a suffix of the MRO of the new type
Anybody else getting that?
(Fresh 'git pull; git clean -dxf; make') 02:28
02:29 japhb_ left 02:30 orafu left, orafu joined 02:35 am0c joined 02:59 kaleem joined 03:05 MikeFair_ left 03:15 sjohnson left, sjohnson joined 03:20 cognominal joined
[Coke] needs "make install" on the debugger. 03:27
japhb agreed 03:29
03:34 cognominal left 03:35 sjohnson left 03:39 sjohnson joined, araujo left 03:42 cognominal joined 03:51 cognominal left 03:59 thou joined 04:16 hash_table left 04:18 telex left 04:26 telex joined 04:33 telex left 04:37 telex joined 04:40 armitage81 left
sorear phenny: tell masak mobile.twitter.com/neiltyson/statu...360384?p=v 04:41
phenny sorear: I'll pass that on when masak is around.
04:46 azawawi joined
azawawi hi 04:46
what's the usual module namespace for writing language grammars in Perl? 04:47
Perl/Perl6 i.e. 04:48
sorear There isn't one yet. 04:49
azawawi i was thinking about Language::XYZ or Grammar::XYZ 04:50
do we have a smoke server somewhere for panda modules? 04:51
i.e. modules.perl6.org/ 04:52
05:03 azawawi left 05:04 am0c left 05:13 rogerrogerstein left
masak morning, #perl6 05:15
phenny masak: 04:41Z <sorear> tell masak mobile.twitter.com/neiltyson/statu...360384?p=v
masak sorear: indeed.
though here we're clearly skirting the line between "self-reference" and "autopun". 05:16
sorear wonders if masak can hear that in Tyson's voice 05:22
still, I thought it would amuse you.
masak aye :) 05:23
I think I can hear it in Tyson's voice. I've seen him on streamed media.
[Coke]: I think rt.perl.org/rt3/Ticket/Display.html?id=74946 is legit, fwiw. or at least, I don't see offhand why it would not be. 05:24
05:27 GlitchMr joined 05:29 replore joined, replore left 05:32 birdwindupbird joined
moritz good morning 05:36
masak good morning, good moritz. 05:38
sorear good moritzning.
05:39 birdwindupbird left
sorear how be you and Ronja? 05:39
moritz tired, otherwise quite fine
05:39 birdwindupbird joined
moritz yesterday night when I came home from $work, Ronja delightfully shouted "papa" and ran to me, throwing her into my arms 05:40
that was nice :-)
TimToady Heidi did that to me once, except she was on the wrong side of the swimming pool. :) 05:41
moritz :-)
05:41 tokuhiro_ joined
masak TimToady: how old? 05:41
TimToady good excuse for daddy to ruin a pair of shoes :)
about 2 05:42
masak oh!
yes, ruin those shoes.
sorear :-) 05:43
masak rn: my %h = a => "b"; %h<a> = %h.delete("a"); say %h.perl 06:08
p6eval niecza v22-13-g0d2a99e: OUTPUT«{"a" => "b"}.hash␤»
..rakudo 2fca74: OUTPUT«().hash␤»
masak [Coke]: another indication Rakudo is doin' it rong.
sorear masak: how so? 06:10
pmichaud and I reached an agreement months ago that = should evaluate its right argument first
(niecza does not actually do this, yet)
06:12 simcop2387 left, simcop2387 joined 06:15 tokuhiro_ left, tokuhiro_ joined
masak sorear: the above niecza evaluation is consistent with infix:<=> evaluating its right argument first. the key is deleted by the rhs, and the re-inserted by the lhs. 06:16
06:16 jaldhar left 06:17 jaldhar joined
dalek d: bcb3aa6 | larry++ | STD.pm6:
properly diagnose missing assignop on s[]
06:18
d: f14804f | larry++ | STD.pm6:
(except do it right)
d: 47e39ad | larry++ | CursorBase.pmc:
Merge branch 'master' of github.com:perl6/std
06:20 tokuhiro_ left 06:21 nyuszika7h left 06:22 flightrecorder joined, FROGGS joined 06:29 sjohnson left, sjohnson joined
sorear masak: ack, I misread p6eval's output and thought niecza's output was actually rakudo's 06:29
06:30 nyuszika7h joined 06:32 _jaldhar joined, jaldhar left 06:35 _jaldhar left, _jaldhar joined 06:37 odoacre left 06:41 _jaldhar left 06:46 azawawi joined
azawawi hi 06:46
moritz \o 06:47
azawawi is there any modules.perl6.org test smoker?
it is been a while since i did anything interesting in the perl6 land 06:48
06:48 bbkr_ left
azawawi takes a look at github.com/perl6/ecosystem/wiki/Mo...ed-Modules 06:48
so what's the recommended rakudo release for playing with modules? 06:49
s/rakudo release/perl6 distro/ 06:50
sorear azawawi: rakudo star 06:54
moritz azawawi: github.com/tadzik/emmentaler 06:56
06:58 odoacre joined 06:59 aharoni joined 07:09 brrt joined, GlitchMr left
azawawi moritz: thx 07:14
07:38 mucker joined 07:39 fhelmberger joined 07:42 hoelzro|away is now known as hoelzro 07:48 mst left 07:49 mst joined 07:55 MolbOrg joined 07:56 rking left
masak <TimToady> committees are people too 07:57
:D
07:59 rking joined
sorear OT: α Cen Bb. man, there is no time like the present. 08:01
masak full ACK.
"The planet is not in the habitable zone [...]" aww. en.wikipedia.org/wiki/Alpha_Centauri_Bb 08:03
08:04 azawawi left
FROGGS cool, didn't know 08:07
must be a sign that they finally found an extra-solar-planet on my birthday :P
UFP++
masak FROGGS: happy belated birthday. 08:08
sorear pretty soon exoplanet discoveries are going to be daily. 08:10
maybe even in time for my 22nd
FROGGS masak: thanks ;o) 08:11
22nd what? not birthay, right?
you don't look that young
tadzik :)
Life's full of surprises 08:12
FROGGS damn it, I'm an oldie
tadzik he's not that young, he's older than me :P
FROGGS and that exactly is... ?
sorear has FROGGS seen me?
FROGGS at the YAPC::EU, ya
I made jokes afterwards here that you look like weird al, remember? 08:13
tadzik so I'm not the only one :)
sorear heh
tadzik FROGGS: I'm 21 for a few more months
FROGGS I'm 30 now 􏿽xF3.􏿽xF2 08:14
but hey, I can still go to toilet on my own, so thats fine 08:15
masak FROGGS: I can report that being 31 feels exactly like being 30.
FROGGS hehe 08:16
ya, think you are right
you'Re just getting wiser
moritz it's big-ish events that make you feel older (living abroad, becoming a parent, starting to $work), not passing of time 08:17
08:17 kurahaupo left
moritz at least for me, so far 08:17
FROGGS definitely
sorear yeah
tadzik starting to live on my own felt like quite a jump for me
sorear yapc::eu was a much bigger deal for me than my 18th
FROGGS have two kids now, the oldest one is getting three years old this xmas 08:18
sorear (age of legal majority in US)
FROGGS two sons and the fact that I'm married to the best girl there is makes me think: what did I do before all that? sure, had my own flat and a good job, but it's nothing compared to what I "have" now 08:20
stuff like that my youngest can walk now is much of a jump to me that any of my birthdays
tadzik I view it as sort of a next level-up there is to be 08:21
08:21 fgomez left
FROGGS ya 08:21
tadzik as for "what did I do", well, get ready? :)
(got ready?) 08:22
moritz FROGGS: full ack
masak applied to Perl 6, it's the milestones we hit that matter, not the years that pass. 08:23
08:24 mucker left, mucker joined
FROGGS true 08:26
there are official milestones?
(written somewhere I mean)
masak github.com/rakudo/rakudo/blob/nom/docs/ROADMAP 08:27
FROGGS ohh cool, thanks 08:28
08:28 araujo joined
masak I'm not aware of a similar resource for Niecza. future milestones are sometimes mentioned with the release announcements. 08:28
jnthn japhb: I somewhat suspect something I comitted to Rakudo last night may have caused the debugger bustage. 08:29
08:30 mucker left
masak I seem to recall there was at least a per-version roadmap of Pugs, but I can't find it now. 08:31
ah, here: en.wikipedia.org/wiki/Pugs#Version_numbering 08:32
08:44 nwc10 joined 08:45 daxim left 08:49 dakkar joined 08:56 kaleem left, kaleem joined
moritz found blog.rfw.name/2012/10/17/c%2B%2B_templates.html quite fascinating 08:56
Timbus Andrei Alexandrescu replied :o 09:06
odd that he didnt bring up D and its compile time function evaluation
09:14 birdwindupbird left 09:17 anuby left, anuby joined 09:34 am0c joined 09:37 birdwindupbird joined 09:42 thou left 09:44 sjohnson left 10:00 brrt left 10:04 hypolin left 10:06 anuby left 10:14 SamuraiJack joined 10:15 xinming_ left 10:22 SamuraiJack_ joined 10:24 SamuraiJack left 10:25 kaleem left 10:29 xinming joined, mucker joined 10:31 birdwindupbird left 10:33 birdwindupbird joined 10:39 rindolf joined 10:42 birdwindupbird left 10:47 Guest2351 joined
Guest2351 hello 10:47
am0c Hi!
Guest2351 am coo 10:48
where are u from
am0c It may be an obvious question for others, what is the pronunciation for 'niecza' ?
from South Korea.
tadzik it's something along nye-tscha 10:49
10:49 Guest2351 left
am0c tadzik: I see. thanks! 10:49
p6eval: help 10:50
p6eval am0c: Usage: <(star|pugs|nqp|b|std|niecza|rakudo|nom|npr|n|r|perl6|prn|rn|p|rnp|nrp|pnr|rpn|p6|nr)(?^::\s) $perl6_program>
am0c p6eval: nom:: say "nom" 10:51
nom:: say "nom"
nr: say "nr" 10:52
moritz nom: say 'nom'
p6eval rakudo 2fca74, niecza v22-13-g0d2a99e: OUTPUT«nr␤»
rakudo 2fca74: OUTPUT«nom␤»
am0c nqp: say "nqp?"
p6eval nqp: OUTPUT«Confused at line 2, near "say \"nqp?\""␤current instr.: 'panic' pc 20008 (src/stage2/gen/NQPHLL.pir:7316) (src/stage2/gen/NQPHLL.pm:324)␤»
am0c n: say "n?"
moritz nqp doesn't like listops
p6eval niecza v22-13-g0d2a99e: OUTPUT«n?␤»
moritz you have to use say() with parens in nqp
am0c I see.
dislike listops.. that's really nice explanation, easy to understand! 10:54
11:03 rindolf left 11:05 Su-Shee_ joined 11:08 Su-Shee left 11:09 benabik left 11:17 Su-Shee_ is now known as Su-Shee
Hor|zon well, that's actually a bad case for an array, better case for a hash 11:19
woops wrong channel
soz
11:24 birdwindupbird joined 11:27 sudokode left 11:28 _jaldhar joined
bbkr__ what is the syntax to declare method with quoted name (for example with dot in it)? 11:34
jnthn r: class Foo { method ::("what? spaces and stuff!") { say 42 } }; Foo."what? spaces and stuff!"() 11:35
p6eval rakudo 2fca74: OUTPUT«No such method 'what? spaces and stuff!' for invocant of type 'Foo'␤ in block at /tmp/xWgjYSyx0H:1␤␤»
jnthn uh, I thought that...
11:35 sudokode joined
bbkr__ rakudo: class A {}; A.^add_method( "foo.bar", sub (A) { 123 } ); A."foo.bar"().say 11:37
p6eval rakudo 2fca74: OUTPUT«123␤»
jnthn r: class Foo { method ::("what? spaces and stuff!") { say 42 } }; say Foo.^methods 11:38
p6eval rakudo 2fca74: OUTPUT«::("what? spaces and stuff!")␤»
jnthn fail
bbkr__ i can do it through HOW but i was hoping for simpler syntax
hm, so the ::() syntax is correct but calling such method is bugged? 11:39
I see not - the method is registered but with ::() wrapping as part of the name 11:41
should I report bug?
moritz r: sub ::('&what? spaces and stuff!') () { say 42 }; say MY::.keys 11:43
p6eval rakudo 2fca74: OUTPUT«!UNIT_MARKER GLOBALish EXPORT $?PACKAGE ::?PACKAGE $_ $/ $! &&what? spaces and stuff! $=pod␤»
moritz r: sub ::('what? spaces and stuff!') () { say 42 }; ::('what? spaces and stuff!')() 11:44
p6eval rakudo 2fca74: OUTPUT«No such symbol 'what? spaces and stuff!'␤ in method <anon> at src/gen/CORE.setting:9957␤ in at src/gen/Metamodel.pm:2401␤ in any find_method_fallback at src/gen/Metamodel.pm:2389␤ in any find_method at src/gen/Metamodel.pm:925␤ in at src/gen/BOOTSTRAP.pm:827…
moritz r: sub ::('what? spaces and stuff!') () { say 42 }; ::('&what? spaces and stuff!')()
p6eval rakudo 2fca74: OUTPUT«42␤»
moritz r: sub ::('what? spaces and stuff!') () { say 42 }; &::('what? spaces and stuff!')()
p6eval rakudo 2fca74: OUTPUT«42␤»
bbkr__ how to co the same for class method? 11:47
moritz I don't think it works yet 11:48
11:48 MayDaniel joined
bbkr__ rakudo: Int.::("xyz")() # LTA error message IMO, worth reporting? 11:48
p6eval rakudo 2fca74: OUTPUT«No such method 'QAST::Want<-349714076>' for invocant of type 'Int'␤ in block at /tmp/FA1GhHpXzU:1␤␤»
bbkr__ std: Int.::("xyz")()
p6eval std 47e39ad: OUTPUT«ok 00:00 42m␤»
moritz bbkr__: I'm testing a really simply patch for method ::(...) { } now -- no idea if it'll work 11:56
pmichaud phenny: tell PerlJam when creating the 2012.10 release, note that we need to keep PARROT_REVISION at RELEASE_4_4_0 (i.e., don't bump it up to 4.9.0 because of issue #861). 11:57
phenny pmichaud: I'll pass that on when PerlJam is around.
11:58 kaleem joined
moritz $ ./perl6 -e 'class A { method ::("spac y") () { say 42 } }; A."spac y"()' 12:02
42
but it causes lots of spectestf failures :( 12:03
12:03 daxim joined 12:04 SamuraiJack__ joined, SamuraiJack_ left 12:09 rindolf joined, pmurias joined
jnthn moritz: odd it causes failures... 12:09
moritz jnthn: I noticed that my nom was out of date; I've rebased now and spectest again 12:10
jnthn consuming outdated nom is normally bad for you... 12:11
moritz :-)
am0c anyway what is "r:" for ?
jnthn rakudo 12:12
am0c ah.. I see
p6eval: help 12:13
p6eval am0c: Usage: <(star|pugs|nqp|b|std|niecza|rakudo|nom|npr|n|r|perl6|prn|rn|p|rnp|nrp|pnr|rpn|p6|nr)(?^::\s) $perl6_program>
jnthn nom and rakudo and r are all the same these days
"prn"? sounds like a Web 2.0 site for, well... :)
am0c tehe :3
then, star is now based on nom? 12:14
moritz yes
since 2012-04 iirc
am0c me notes 12:15
am0c notes
that's nice!
daxim p6eval: help help 12:20
p6eval daxim: Usage: <(star|pugs|nqp|b|std|niecza|rakudo|nom|npr|n|r|perl6|prn|rn|p|rnp|nrp|pnr|rpn|p6|nr)(?^::\s) $perl6_program>
daxim what's b? drawing a blank there
am0c b: say "Yey" 12:21
p6eval b 922500: OUTPUT«Yey␤»
pmichaud b is the Beijing release of Rakudo (2011.07)
it's the version before nom.
12:22 nmishin joined
am0c b: say $?VM 12:22
p6eval b 922500: OUTPUT«===SORRY!===␤Symbol '$?VM' not predeclared in <anonymous> (/tmp/qZqIblZMuy:22)␤»
12:23 nmishin is now known as mishin
masak trim-leading and trim-trailing are in the spectests but not in S32/Str. 12:26
rn: say trim-trailing("oh yeah! ")
p6eval rakudo 2fca74, niecza v22-13-g0d2a99e: OUTPUT«oh yeah!␤»
masak anyone mind if I add them to S32/Str? :) 12:27
moritz doesn't mind
pmichaud +1 if we're sure that we're keeping them :)
12:29 mishin left
dalek ecs: eb7089a | masak++ | S32-setting-library/Str.pod:
[S32/Str] mention trim-leading and trim-trailing
12:29
masak I think they're fairly established at this point.
12:30 SamuraiJack__ left
colomon masak++ 12:30
12:30 nmishin joined
masak I wonder what would happen if we gave 10 volunteers the task "find 10 things in the spec that can be improved, and propose patches to improve them". 12:34
omissions and typographical things rather than radical new features, of course. 12:35
am0c r: "yey".gist.say
p6eval rakudo 2fca74: OUTPUT«yey␤»
jnthn .say calls .gist, iirc. so that's probably redundant :) 12:36
masak am0c: the '.gist' is redundant; .say already prints the .gist of what jnthn said.
am0c er.. okay
jnthn uh-oh...do I really want Rakudo giving people the gist of what I said? :P
[Coke] so, regarding the debugger. Once I use make, there is no "perl6-debug" - there's an nqp script, but nqp bin/perl6-debug.nqp foo.p6 errors out. What am I missing? 12:37
jnthn make 12:38
12:40 nmishin left
jnthn oh, you did use make 12:40
wtf
why is there no perl6-debug?
What does "make" output for you? 12:41
[Coke] wtf. I just remade and now it's there. wtf.
ah. some weirdness with with the literal .exe perhaps.
or perhaps I was sleepy. jnthn++ 12:42
ah... you can't use it with straight rakudo compiler, eh?
jnthn if you make install'd Rakudo, yes but... 12:43
[Coke] star: use Term::ANSIColor
p6eval star 2012.07: ( no output )
jnthn ...I fear a Rakudo commit I made last night busted it.
[Coke] r: use Term::ANSIColor
p6eval rakudo 2fca74: OUTPUT«===SORRY!===␤Could not find Term::ANSIColor in any of: /home/p6eval/.perl6/lib, /home/p6eval/nom-inst/lib/parrot/4.8.0-devel/languages/perl6/lib, /home/p6eval/nom-inst/lib/parrot/4.8.0-devel/languages/perl6/custom/lib␤»
jnthn Oh, you need to install Term::ANSIColor too :)
12:43 jerome left 12:44 benabik joined
moritz jnthn: fwiw moritz.faui2k3.org/tmp/0001-allow-m...name.patch is that patch. It makes several test files fail with ambiguous dispatch to method Str 12:45
my only theory right now is that it misparses a method declaration somewhere
$ make && ./perl6 -e 'Nil.Str' 12:48
Ambiguous call to 'Str'; these signatures all match:
:(Mu:U \v: Mu *%_)
:(Mu : Mu *%_)
12:48 fhelmberger left 12:49 tokuhiro_ joined, skids left
am0c std: Nil.Str 12:49
p6eval std 47e39ad: OUTPUT«ok 00:00 41m␤»
12:51 jaldhar_ joined, _jaldhar left
moritz std is pretty boring, because it only parses. 12:51
12:54 gootle left
am0c p6: Nil.Str 12:54
p6eval rakudo 2fca74, niecza v22-13-g0d2a99e: ( no output )
moritz it seems my patch causes other subtle breakage as well 12:56
12:57 jerome joined 12:58 mtk joined 12:59 hash_table joined
am0c I see! 13:00
13:04 Psyche^ joined 13:05 PacoAir joined 13:06 PacoAir left, PacoAir joined
jnthn moritz: Hmm, you switched to deflongname there... 13:06
I'm not sure that'll work out
13:07 Patterner left, Psyche^ is now known as Patterner
moritz seems it doesn't, though I don't understand why it doesn't parseerror then 13:11
13:16 am0c left 13:22 GlitchMr joined 13:23 atrodo joined 13:28 bloonix joined
GlitchMr perl6: .say for 10, 9, 8, +* ... * 13:38
p6eval rakudo 2fca74: OUTPUT«(timeout)10␤9␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8􏿽xE2􏿽x90
..niecza v22-13-g0d2a99e: OUTPUT«(timeout)10␤9␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤
benabik GlitchMr: +* just converts the previous number to a number. This seems unlikely to be what you intended. 13:39
GlitchMr I just wanted identify function
Simple * didn't worked
benabik Ah. 13:40
13:40 sqirrel joined 13:42 rindolf left
moritz {$_} is the identity function 13:42
13:42 jaldhar_ left
benabik True. +* is only identity for numbers. 13:43
pmichaud perl 6: .say for 10, 9, (8 xx *) 13:45
perl6: .say for 10, 9, (8 xx *)
p6eval rakudo 2fca74: OUTPUT«(timeout)10␤9␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8􏿽xE2􏿽x90 13:46
..niecza v22-13-g0d2a99e: OUTPUT«(timeout)10␤9␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤8␤
sjn \o 13:47
Hor|zon I need a better font :D
sjn managed to get rakudo to segfault o/
flussence why's the rakudo one got "��" on the end?
truncating a ␤ on a byte? 13:48
Hor|zon GlitchMr: did you get my email? wasn't sure if you still used the myopera address 13:49
GlitchMr Yes, I've received it
If you mean that Pygments e-mail
Hor|zon yeah
are you still working on it? 13:50
GlitchMr Not really, but perhaps I'll continue it someday
Hor|zon oki doki
I was going to start, but I found your project on bitbucket
GlitchMr If you want to, start it 13:51
Currently I've problem with highlighting strings
I just want to make highlighter as accurate as possible
13:52 hash_table left
GlitchMr But thanks for reminding me 13:52
Hor|zon it was just from annoyance with Github's perl5 highlighting on perl6 13:53
bbkr__ what does : before "my" mean? there are many entries in Perl6/Grammar that look like this ":my %*RX;"
Hor|zon I was just going to "improve" the Perl 5 one under the name Perl 6
GlitchMr: sounds like you've thought it through a bit more 13:54
jnthn bbkr__: If yo just wrote "my" in a regex it'd match as text
:my is how you write a variable declaration in a regex
moritz bbkr__: : followed by a declaration is parsed as normal mainline code
up until the final ;
Hor|zon hmm, some stop gap would be nice
bbkr__ thanks!
GlitchMr Yeah, I want let's say, q:s[] highlight $scalars, but q[] shouldn't.
moritz so :my $x = 2 * 3; would initialize $x with 6
Hor|zon sounds like it already works a lot better than the Perl 5 hightlighting 13:56
would you feel comfortable releasing it before "perfection" ?
GlitchMr Well, perhaps yes, but I don't have basic stuff too... I want to make more complex things before less complex 13:57
I already have support for delimiters, such as #`[[ hello ] [ world [[ ]] yep it's still comment ]]
(well, technically Rakudo doesn't have so good support for delimiters, but it's still part of Perl 6 specification) 13:58
13:58 sirrobert left 14:00 jaldhar joined
Hor|zon hmm, I may play with it as well, it seems like a fun way to learn the STD module properly 14:06
14:06 flightrecorder left, FROGGS left, stopbit joined 14:08 flightrecorder joined, hoelzro left 14:09 aharoni left, hoelzro joined
[Coke] This is perl6 version 2012.09.1-36-g0937c72 built on parrot 4.8.0 revision RELEASE_4_8_0 14:10
^ I think this should say "rakudo" somewhere.
14:11 nyuszika7h left, nyuszika7h joined
moritz nqp/src/HLL/Compiler.pm 14:12
483: nqp::say("This is $!language version $version built on parrot $parver revision $parrev");
and we should include the NQP revision 14:13
benabik You don't really want to set $!language to Rakudo because you'd like to find Rakudo with compreg("perl6").
moritz thought so
14:13 sjohnson joined
benabik Rakudo probably should just override that method and print a more custom message. :-/ 14:13
moritz aye 14:14
currently I'm wondering if we store the NQP revision anywhere
14:15 skids joined
moritz what's the name of the plugin or system that allows me to injection custom javascript into webpages in firefox? 14:17
ah, greasemonkey
sjn hmf. having trouble logging into rt.perl.org to submit a rakudobug 14:18
anyone else having problems? 14:19
[Coke] moritz++
14:19 FROGGS joined
[Coke] sjn: I am already logged in. 14:19
jnthn sjn: You submit by sending mail
[Coke] you can't submit tickets via the webterface, though.
sjn hm 14:20
[Coke] r: say (;:[]) 14:21
p6eval rakudo 2fca74: OUTPUT«␤»
sjn that kinda sucks..
jnthn: which address?
[Coke] (that's specific to rt.perl.org, not rt)
[email@hidden.address] I think.
14:22 aharoni joined
jnthn that one 14:24
sjn: Sending email is *much* more accessible that getting an RT account...
14:26 jaldhar left
flussence zavolaj fails a test if I'm using panda to install it, but if I run it manually as "PERL6LIB=lib perl6 t/04-pointers.t" it's fine 14:28
skids does panda have a "dont compile" flag of some sort? 14:30
flussence there's --notests, I'm using that now...
not one for skipping the compile-to-pir step though 14:31
skids Well, as a stopgap for issues that crop up it could be useful.
sjn jnthn: I already have an rt account
skids (there are similar issues pointed out to me with Sum, and also anything that accesses its own POD right now will break.) 14:32
sjn although I'm thinking Ask's bitcard thing really is more in the way than being useful :-(
sjn has sent a mail
14:33 mucker left
jnthn May just be getting unlucky with pointrs 14:34
as in, memory layout differs
flussence maybe... prove was spitting out "Wstat: 11". That's a segfault isn't it? 14:37
14:38 hash_table joined 14:39 mucker joined
GlitchMr Hor|zon: dl.dropbox.com/u/63913412/pygments.png 14:40
Putting aside lack of quote like stuff highlighting, it works rather well
Notice how * * * is highlighted correctly :-) 14:41
14:43 kaare_ joined 14:45 am0c joined 14:47 replore_ joined
jnthn GlitchMr: ooh, nice 14:47
Hor|zon GlitchMr: oooh, you're further than you claim ;) 14:48
arnsholt Cool!
Hor|zon I was looking for existing standalone Perl 6 highlighters to steal their tests 14:49
can't seem to find any...maybe Padre has some...
timotimo_ oh, you use fish. is that the newer fork of fish? 14:50
diakopter std: s[a]=* 14:53
p6eval std 47e39ad: OUTPUT«ok 00:00 43m␤»
diakopter hmm
std: s[a]
p6eval std 47e39ad: OUTPUT«===SORRY!===␤Missing assignment operator at /tmp/mtQrY7qbHw line 1 (EOF):␤------> s[a]⏏<EOL>␤Parse failed␤FAILED 00:00 42m␤»
diakopter wonders what s[a]=* does 14:54
phenny: tell TimToady try std: /= # unblessed reference 14:56
phenny diakopter: I'll pass that on when TimToady is around.
GlitchMr s[a]=* is substitution
14:56 benabik left
GlitchMr Except * in this context makes no sense 14:56
14:56 benabik joined
GlitchMr For example, s[a]='b' means replace first 'a' in $_ with 'b'. 14:57
jnthn r: my $x = "aaaa"; $x ~~ s[a] = *; say $x
p6eval rakudo 2fca74: OUTPUT«Whatever<1362513759>aaa␤»
diakopter O_O 14:58
jnthn decommute &
lumi__ See, it just replaces it with whatever
15:02 benabik left
diakopter r: /@_/ 15:09
p6eval rakudo 2fca74: OUTPUT«=␀␀␀=␀␀␀=␀␀␀S␀␀␀O␀␀␀R␀␀␀R␀␀␀Y␀␀␀!␀␀␀=␀␀␀=␀␀␀=␀␀␀␤␀␀␀C␀␀␀a␀␀␀n␀␀␀n␀␀␀o␀␀␀t␀␀␀ ␀␀␀u␀␀␀s␀␀␀e␀␀␀ ␀␀␀p␀␀␀l␀␀␀a␀␀␀c␀␀␀e␀␀␀h␀␀␀o␀␀␀l␀␀␀d␀␀␀e␀␀␀r␀␀␀ ␀␀␀p␀␀␀a␀␀␀r␀␀␀a␀␀␀m􏿽xE2􏿽x90
diakopter whee
I get lots of boxes 15:10
FROGGS unwrap them then
diakopter what does that mean
oh. heh
FROGGS ;o)
diakopter they look funny on the irclog too 15:11
15:11 tokuhiro_ left
diakopter it's like.. the string is utf32 but interpreted as ascii... 15:11
15:11 tokuhiro_ joined
diakopter phenny: tell jnthn try r: /@_/ # wide chars interpreted as non-wide? 15:12
phenny diakopter: I'll pass that on when jnthn is around.
15:15 rindolf joined 15:16 tokuhiro_ left
diakopter phenny tell jnthn try r: my &={say 6;}; (my &).() # should it let me redeclare & but have it still the original assigned value? 15:16
moritz r: my &={say 6;}; (my &).()
p6eval rakudo 2fca74: OUTPUT«6␤»
moritz that looks wrong
r: my $ = 5; say my $ 15:17
p6eval rakudo 2fca74: OUTPUT«5␤»
diakopter <- no clue
rindolf Hi all. The "Current supported release" link here is broken - www.parrot.org/source.html - who can I report it to? 15:19
moritz [email@hidden.address]
15:19 orafu left 15:20 aindilis joined 15:25 hoelzro is now known as hoelzro|away 15:26 sirrobert joined 15:31 birdwind1pbird joined, FROGGS left 15:37 brrt joined
jnthn home 15:45
phenny jnthn: 15:12Z <diakopter> tell jnthn try r: /@_/ # wide chars interpreted as non-wide?
jnthn r: /@_/
p6eval rakudo 2fca74: OUTPUT«=␀␀␀=␀␀␀=␀␀␀S␀␀␀O␀␀␀R␀␀␀R␀␀␀Y␀␀␀!␀␀␀=␀␀␀=␀␀␀=␀␀␀␤␀␀␀C␀␀␀a␀␀␀n␀␀␀n␀␀␀o␀␀␀t␀␀␀ ␀␀␀u␀␀␀s␀␀␀e␀␀␀ ␀␀␀p␀␀␀l␀␀␀a␀␀␀c␀␀␀e␀␀␀h␀␀␀o␀␀␀l␀␀␀d␀␀␀e␀␀␀r␀␀␀ ␀␀␀p␀␀␀a␀␀␀r␀␀␀a␀␀␀m􏿽xE2􏿽x90
jnthn ... 15:46
pmichaud some ucs4 string is being concatenated with the ascii string somewhere
jnthn wtf.
Yeah but...
That's no damn excuse!
pmichaud and then being sent to stderr, which I suppose is not encoded as utf8
jnthn Yeah :S
Well, that's what one gets for implementing strings with encodings rather than treating encoding as a purely I/O time thing. 15:47
pmichaud ...but strings do have encodings. 15:48
15:48 flightrecorder left
jnthn In Parrot. 15:48
In Perl 6 strings are opaque thingies.
pmichaud string as a data type is an opaque thingy, yes, but internally there still has to be an encoding.
jnthn It's the transition to Buf where encoding gets interesting.
Well, if you call NFG an encoding, yes :) 15:49
pmichaud Perl 6 even goes so far as to declare that NFG is its encoding, iirc.
by every definition I can think of, NFG is an encoding.
the real question is probably... where's the ucs4 encoded string coming from? ;-) 15:51
TimToady well, if an encoding has to be linear, without indirection, then NFG isn't quite one of those 15:52
phenny TimToady: 14:56Z <diakopter> tell TimToady try std: /= # unblessed reference
TimToady NFG is also a bit of a data structure
15:53 fgomez joined 15:57 thou joined 16:01 hoelzro|away is now known as hoelzro 16:05 kaleem left
am0c r: say ~ Rat.^attributes 16:07
p6eval rakudo 2fca74: OUTPUT«$!numerator $!denominator␤»
timotimo_ i don't quite understand what the ~ does there. is it somewhat like [~] except it does something different (insert spaces)? 16:11
16:12 circlepuller is now known as Circlepuller
TimToady r: say Rat.^attributes 16:12
p6eval rakudo 2fca74: OUTPUT«$!numerator $!denominator␤»
TimToady it's unneeded in this case
geekosaur does whatever is necessary to make it a string.. but I htought say did that itself. like that :)
TimToady but it's stringification
timotimo_ oh, it's like this: 16:13
r: say +<a b c>
p6eval rakudo 2fca74: OUTPUT«3␤»
TimToady r: say "{Rat.^attributes}"; # same thing
p6eval rakudo 2fca74: OUTPUT«$!numerator $!denominator␤»
TimToady r: say '' ~ Rat.^attributes; # also same thing 16:14
p6eval rakudo 2fca74: OUTPUT«$!numerator $!denominator␤»
16:15 fglock joined
timotimo_ hm. how do i figure out what to do with an attribute? 16:15
r: say Rat.^attributes[0].^attributes
p6eval rakudo 2fca74: OUTPUT«No such method 'gist' for invocant of type 'BOOTSTRAPATTR'␤ in method gist at src/gen/CORE.setting:4839␤ in sub say at src/gen/CORE.setting:7268␤ in block at /tmp/RrQkwyPFwF:1␤␤»
timotimo_ at least i can figure out that it has 10 of them 16:16
jnthn timotimo_: doc.perl6.org/type/Attribute :) 16:17
timotimo_ r: .name.say for Rat.^attributes[0].^attributes
p6eval rakudo 2fca74: OUTPUT«$!name␤$!rw␤$!ro␤$!has_accessor␤$!type␤$!container_descriptor␤$!auto_viv_container␤$!build_closure␤$!package␤$!box_target␤»
timotimo_ this is nice enough :) 16:18
16:19 pmurias left 16:23 kikulli joined 16:26 aharoni left, Chillance joined 16:29 birdwind1pbird left, sjohnson left, sjohnson joined 16:31 thou left 16:36 thou joined
Hor|zon does anyone know what generates the html from pod at doc.perl6.org? 16:43
tadzik Pod::To::HTML I think
Hor|zon ooh OK 16:45
I noticed the "Methods supplied by class <name>" sections, just trying to figure out what does it 16:46
doesn't look like Pod::To::HTML
16:46 hoelzro is now known as hoelzro|away
tadzik oh 16:46
moritz++ does it :)
well, methods are introspectable, it's probably generated from this 16:47
r: say Rat.^methods
p6eval rakudo 2fca74: OUTPUT«Rat FatRat new nude Num floor ceiling Int Bridge base succ pred norm abs sign conj sqrt rand sin asin cos acos tan atan atan2 sec asec cosec acosec cotan acotan sinh asinh cosh acosh tanh atanh sech asech cosech acosech cotanh acotanh round unpolar cis Complex log …
Hor|zon lol, mr lenz 16:48
moritz Hor|zon: what's so funny? :-) 16:49
Hor|zon: there's a htmlify.pl script in the perl6/doc repo that generates the HTML for doc.perl6.org
Hor|zon people power 16:50
ah, so it is automated
diakopter TimToady: ws calls unsp and unv, and unsp calls unv, so you can remove the <.unv> from token ws
16:50 daxim left
Hor|zon moritz: any thoughts on a module? 16:50
moritz Hor|zon: what module? 16:51
dalek rlito: f81758e | (Flavio S. Glock)++ | README-perlito5-js:
Perlito5 - js - milestones - add CPAN testing
16:52
Hor|zon a htmlify package / module 16:53
TimToady diakopter: no 16:54
tadzik it'll be more like App:: module I think
TimToady diakopter: look at what the unsp rule matches 16:55
(or ask yourself "Why is it named that?") 16:56
diakopter migrate to meeting; brb &
moritz Hor|zon: well, look at htmlify.pl and ask yourself if you find stuff worth reusing in other applications 16:57
Hor|zon: if you find something, you're welcome to factor it out into a separate module
sirrobert What's a good way to show only the ends of a bunch of differently-lengthed strings. Like: "this is a very long string" -> "...ery long string" 16:58
16:58 hoelzro|away is now known as hoelzro
sirrobert is there an sprintf for showing the *right* $x chars of a string? 16:59
Hor|zon moritz: thanks, I was thinking of some higher level pod-to-pod niceness like htmlify already does, but maybe pod to pod, leaving the final format to another module
from a quick look most of the htmlify stuff is fairly format agnostic 17:00
dalek kudo-debugger: e4c27f0 | jnthn++ | bin/perl6-debug.nqp:
Diddle %*LANG in comp_unit.

This is where it shoulda been done in the first place. Makes things work again with latest Rakudo.
Hor|zon I will steal a few things if I do start a module, if you don't mind :) 17:01
17:01 dakkar left
jnthn [Coke]: Debugger patched for latest Rakudo. 17:01
17:03 spider-mario joined
skids r: say "string".substr(min(*-5,0),min(*,5)) # sirrobert: 17:03
p6eval rakudo 2fca74: OUTPUT«tring␤»
sirrobert skids: ahh, great. I was going down a dark path there... fraught with regexes and .split.reverse
thanks =)
skids Oh actually, the second parm can be skipped. 17:04
sirrobert ahh, catch to end
great
so the * in that context means ...
"the thing in question" ?
in this case the string
(I still haven't wrapped my head around * in a holistic way)
skids Whatever :-) length of the string. 17:05
sirrobert skids: cool... as an aside:
diakopter TimToady: the only difference I see is the \\ <?before [\s|'#'] >
17:06 birdwindupbird left
sirrobert r: "foobarbaz".substr(*-5) 17:06
p6eval rakudo 2fca74: ( no output )
sirrobert r: say "foobarbaz".substr(*-5)
p6eval rakudo 2fca74: OUTPUT«arbaz␤»
masak r: say "foobarbaz".substr(*/2) 17:08
p6eval rakudo 2fca74: OUTPUT«This type cannot unbox to a native integer␤ in method substr at src/gen/CORE.setting:3634␤ in block at /tmp/40KzzZH3Ch:1␤␤»
masak r: say "foobarbaz".substr(* * .5)
p6eval rakudo 2fca74: OUTPUT«This type cannot unbox to a native integer␤ in method substr at src/gen/CORE.setting:3634␤ in block at /tmp/jNbypEjRnD:1␤␤»
sirrobert r: say "foobarbaz".substr(*)
p6eval rakudo 2fca74: OUTPUT«No such method 'Int' for invocant of type 'Whatever'␤ in method substr at src/gen/CORE.setting:3634␤ in block at /tmp/AkvvmoAlII:1␤␤»
masak r: say "foobarbaz".substr((*/2).Int)
p6eval rakudo 2fca74: OUTPUT«arbaz␤»
masak that was too difficult.
aren't Rats Cool? 17:09
moritz masak: patch it, it's not too hard :-)
masak r: say Rat ~~ Cool
p6eval rakudo 2fca74: OUTPUT«True␤»
masak so I posit it should work.
moritz: patching it is a good idea.
moritz: would you suggest I start by writing a spectest? 17:10
moritz masak: whaterver your usual workflow is
masak I'd say it's write spectest, see it fail, then patch rakudo and make sure all spectests still pass. then push spectest and rakudo patch. 17:11
oops, need to detrain & 17:12
17:14 brrt left
TimToady diakopter: yes, well, unsp only matches unv after a backslash; what if ws needs to match unv without a backslash in front of it? 17:17
r: say "foobarbaz".substr(* div 2) 17:20
p6eval rakudo 2fca74: OUTPUT«arbaz␤»
TimToady sirrobert: use this for now^^ 17:21
oh, that was masak :) 17:22
agree that a Rat should Coolify to Int in this case
skids r: multi sub foo (WhateverCode $foo) { $foo(3).say }; foo(*-1); # Didn't realize making your own Whatevers was so easy 17:23
p6eval rakudo 2fca74: OUTPUT«2␤»
sirrobert TimToady: thanks
diakopter TimToady: oh. I forgot the \\ means something :)
17:24 bbkr joined
TimToady what did you think it didn't mean? :) 17:25
diakopter some kind of weird alternation 17:30
sirrobert my $foo = 'foo'; my $bar = 'bar'; for ($foo, $bar) -> $x { $x = 'baz' }; say "$foo $bar"; 17:34
in a situation like that, how do I write to $foo and $bar by reference?
so that writing to $x writes into $foo then $bar 17:35
TimToady r: my $foo = 'foo'; my $bar = 'bar'; for $foo, $bar <-> $x { $x = 'baz' }; say "$foo $bar";
p6eval rakudo 2fca74: OUTPUT«===SORRY!===␤Missing block␤at /tmp/1kJBOZM5Gg:1␤»
TimToady r: my $foo = 'foo'; my $bar = 'bar'; for $foo, $bar -> $x is rw { $x = 'baz' }; say "$foo $bar";
p6eval rakudo 2fca74: OUTPUT«baz baz␤»
sirrobert ahh 17:36
TimToady b: my $foo = 'foo'; my $bar = 'bar'; for $foo, $bar <-> $x { $x = 'baz' }; say "$foo $bar";
p6eval b 922500: OUTPUT«===SORRY!===␤Missing block at line 22, near "; say \"$fo"␤»
TimToady n: my $foo = 'foo'; my $bar = 'bar'; for $foo, $bar <-> $x { $x = 'baz' }; say "$foo $bar";
p6eval niecza v22-13-g0d2a99e: OUTPUT«baz baz␤»
sirrobert so the <-> just isn't in rakudo yet
what is b: ?
TimToady right, though I thought it was in at one point
I have a vague recollection there were parsing problems before rakudo had LTM 17:37
so maybe not
sirrobert well, is rw works for me =)
geekosaur sirrobert, IIRC b is an older version of rakudo
sirrobert geekosaur: thanks
TimToady it would prefer to parse < over <->
sirrobert TimToady: ah, that makes sense 17:38
sorear o/ 17:39
skids r: say 3 <<+<<< (1,2) # lingering LTM problem 17:40
p6eval rakudo 2fca74: OUTPUT«===SORRY!===␤Preceding context expects a term, but found infix < instead␤at /tmp/848X61VuJB:1␤»
sirrobert While running a test (with Test.pm) is there a way of knowing the number of the test currently being run? 17:42
moritz you mean, the sequence number? 17:43
sirrobert yeah
moritz seems not, it's in a lexical variable in Test.pm 17:44
sirrobert fair enough =)
thanks
where is Test.pm stored? rakudo star repo?
ah, found it in Rakudo (not star) 17:45
jnthn skids: Do you know it's LTM, or is that just a guess?
skids Oh, a guess, sorry. 17:46
jnthn skids: No worries - if you knew it was LTM I was just gonna ask for how you knew, which may help me in tracking down the problem ;)
masak TimToady: Rakudo did <-> at one point, yes. though it was long ago. alpha, I think. 17:47
the b lineage never did it. nom still doesn't do it.
masak .oO( NYRI )
<TimToady> I have a vague recollection there were parsing problems before rakudo had LTM 17:49
TimToady: well, <-> is an interesting one, isn't it? 17:50
moritz <-> lambdas were reputed to be one of them
masak because <-> belongs to the statement level, whereas < belongs to EXPR.
so naively it should find < and ignore <->
jnthn I think that's what I ran into last time I investigated.
masak so <-> has to be special in some way. a stopper.
jnthn And yes, when EXPR calls infix, <-> isn't on the menu.
masak right.
that's what I mean. 17:51
it's a very clear case of a more general problem: how do I tell the parser "ok, enough of the sublanguage; come back up"?
jnthn oh gosh
infix:lambda
oh, but 17:53
That does
<?before '{' | '->' >
moritz masak: you just return from your parser, and then the calling parser takes control again
jnthn Which doesn't handle <->
TimToady infixstopper calls lambda
lambda shouldn't be considered an infix 17:54
masak moritz: yesbut.
moritz: my point is that it doesn't happen automagically. in this case, infixstopper is needed.
jnthn TimToady: aha
TimToady I think infix:lambda is really only there to produce error messages 17:55
not sure why it has a <O(|%term)> at the end 17:56
that might be a fossil 17:57
masak do a git blame! oh wit.
wait*
jnthn :)
I'll have some dinner, then look at giving Rakudo an infixstopper
masak \o/
or should I say \<->/
TimToady well, if you're a cobra maybe 17:58
masak I can not say with certainty I'm not a cobra. 18:00
dalek rlito: 828649a | (Flavio S. Glock)++ | / (19 files):
Perlito5 - add Perlito5X namespace
18:01
rlito: 19136b6 | (Flavio S. Glock)++ | ChangeLog:
Perlito5 - add Perlito5X namespace - ChangeLog
skids Perhaps the <-> just goes spinning off into space yelling "curse you skywalker" 18:09
[Coke] O_o 18:11
masak r: role W[$s] { method q { say $s; nextsame } }; ([but] class {}, W["wrapper"], W["6"], W["Perl"], W["another"], W["just"]).q
p6eval rakudo 2fca74: OUTPUT«just␤another␤Perl␤6␤wrapper␤»
18:11 _edwin joined
_edwin hi perl6! 18:11
masak hi _edwin!
_edwin should something like has @.a handles('postfix:<[]>') work?
18:12 cognominal joined
masak r: role W[$s] { method q { say $s; nextsame } }; ([but] class {}, (W[$_] for <wrapper 6 Perl another just>)).q 18:13
p6eval rakudo 2fca74: OUTPUT«just␤another␤Perl␤6␤wrapper␤»
masak _edwin: I don't see why not.
cognominal Is there a Perl6 html formatter for Perl 6 pod? I know Damian Conway as a perl5 package for that.
_edwin oh, I meant postcircumfix, but nevertheless 18:14
moritz Pod::To::Html exists, though it's far from perfect
when it's installed, you can say perl6 --doc=html yourfile > output.html 18:15
_edwin woo! handles('postcircumfix:<[ ]>') did it! :)
very cool 18:16
18:16 MolbOrg left, zby_home_ joined
cognominal thx moritz 18:17
diakopter TimToady: what is $ { $¢.moreinput } 18:19
18:19 mucker left
[Coke] p6: Nil.comb(*); 18:19
p6eval niecza v22-13-g0d2a99e: ( no output )
..rakudo 2fca74: OUTPUT«Cannot call 'comb'; none of these signatures match:␤:(Cool : Mu *%_)␤:(Cool : Regex $matcher, $limit = { ... }, Mu *%_)␤␤ in method comb at src/gen/CORE.setting:2101␤ in block at /tmp/LaQ5cPmwt2:1␤␤»
am0c r: class A { has $.cat is rw = "grr.." }; A.new.cat: "meow!"; 18:20
p6eval rakudo 2fca74: OUTPUT«Too many positional parameters passed; got 2 but expected 1␤ in method cat at src/gen/CORE.setting:1590␤ in block at /tmp/nJ54rcw3yj:1␤␤»
_edwin do I read the spec correctly, that substr is supposed to work on arrays, too?
am0c r: class A { has $.cat is rw = "grr.." }; A.new.cat( "meow!" );
p6eval rakudo 2fca74: OUTPUT«Too many positional parameters passed; got 2 but expected 1␤ in method cat at src/gen/CORE.setting:1590␤ in block at /tmp/QjftFcgAuE:1␤␤»
_edwin "$piece = substr(@buffer, $beg, $end - $beg);"
am0c r: class A { has $.cat is rw = "grr.." }; A.new.cat = "meow!";
p6eval rakudo 2fca74: ( no output )
am0c r: class A { has $.cat is ro = "grr.." }; A.new.cat = "meow!";
p6eval rakudo 2fca74: OUTPUT«===SORRY!===␤Cannot call 'trait_mod:<is>'; none of these signatures match:␤:(Mu:U $child, Mu:U $parent)␤:(Attribute:D $attr, :rw(:$rw)!)␤:(Attribute:D $attr, :readonly(:$readonly)!)␤:(Attribute:D $attr, :box_target(:$box_target)!)␤:(Routine:D $r, :rw(:$rw)!)␤:(Rout…
am0c r: class A { has $.cat = "grr.." }; A.new.cat = "meow!";
p6eval rakudo 2fca74: OUTPUT«Cannot assign to a readonly variable or a value␤ in block at /tmp/cnlXwL1BLQ:1␤␤»
am0c aha! readonly is default behavior! 18:21
arnsholt Is it possible to change/influence the behaviour of a container by applying a trait? 18:22
Say, as a random example: my $errno is native('libc')
am0c r: class A { has $.cat = "grr.."; method meow { $.cat = "meow" }; A.new.meow; 18:23
p6eval rakudo 2fca74: OUTPUT«===SORRY!===␤Unable to parse expression in block; couldn't find final '}' at line 2, near ""␤»
am0c r: class A { has $.cat = "grr.."; method meow { $.cat = "meow" } } A.new.meow;
p6eval rakudo 2fca74: OUTPUT«===SORRY!===␤Confused␤at /tmp/ZY6jAxOglv:1␤»
am0c r: class A { has $.cat = "grr.."; method meow { $.cat = "meow" } } A.new.meow();
p6eval rakudo 2fca74: OUTPUT«===SORRY!===␤Confused␤at /tmp/GsxT7I218S:1␤»
moritz am0c: you need ; after }
masak am0c: }; 18:24
am0c r: class A { has $.cat = "grr.."; method meow { $.cat = "meow" }; } A.new.meow();
p6eval rakudo 2fca74: OUTPUT«===SORRY!===␤Confused␤at /tmp/AoSYR66_YF:1␤»
masak other }
am0c r: class A { has $.cat = "grr.."; method meow { $.cat = "meow" }; }; A.new.meow();
p6eval rakudo 2fca74: OUTPUT«Cannot assign to a readonly variable or a value␤ in method meow at /tmp/zdoO1GKado:1␤ in block at /tmp/zdoO1GKado:1␤␤»
masak heh :)
arnsholt And you want $!cat =
am0c I see. thank you :3
moritz am0c: you need to assign to $!cat, which is the actual attribute; $.cat is the attribute
masak accessor*
moritz erm yes 18:25
18:25 alester joined
moritz doc.perl6.org/language/objects#Attributes 18:25
18:25 cognominal left
masak feels he has a right to correct moritz' typos, since their nicks both start with "m" :P 18:25
am0c I see
moritz masak: better you correct them than they go uncorrected and confuse everybody 18:26
am0c I agree! 18:27
unless masak helped I would not understanded.
s/ed// 18:28
masak moritz: it's weird. overall, we've met very little in meatspace, but I still feel I know how you work well enough to dare to auto-correct your typos. it's as if my simulation of you is good enough :)
moritz masak: I kinda feel the same about you
am0c heh
_edwin just thinking, it would be cool if one could "lift" methods of an attribute to methods of the class 18:29
masak that made me happy. :)
_edwin: isn't that what 'handles' does?
am0c so, does it mean that `has $.something"` is not a declaration for 'attribute'? 18:30
moritz am0c: it's a declaration of an attribute $!something and of an accessor
masak am0c: more like, it declares both attribute and (readonly) accessor.
_edwin as in: class Foo { has $.value lifts('prefix:<->') } would implement multi prefix:<->(Foo $x) { Foo.new(:value(- $x.value) }
moritz
.oO( macros! )
18:31
_edwin masak: the difference would be the Foo.new(:value(...)) part
masak yes, I see the difference now.
not sure I see what the use cases would be, but certainly something like this would be *possible*, at least. 18:32
am0c I see!
masak what kind of grammar category does 'handles' belong to, anyway?
18:32 SamuraiJack joined
_edwin masak, I came accross a use case working on a RC solution, which might be considered "artificial" ;) 18:32
masak maybe, maybe not :) 18:33
am0c r: class A { has $.cat = "grr.."; method meow { $cat = "meow" }; }; A.new.meow; 18:34
p6eval rakudo 2fca74: OUTPUT«===SORRY!===␤Variable $cat is not declared␤at /tmp/nUfluf3Vt6:1␤»
am0c r: class A { has $.cat = "grr.."; method meow { $!cat = "meow" }; }; A.new.meow;
p6eval rakudo 2fca74: ( no output )
masak moritz: linking back to an earlier topic, courses.csail.mit.edu/6.851/spring1...e/lec1.pdf contains the phrase "our tree traversal technique is does [sic] not extend to DAGs". meaning that the nested subset algorithm doesn't work. 18:35
am0c thinks the last code seems not good though
arnsholt Where are containers specced?
18:39 kikulli left, sqirrel left 18:41 sirrobert left 18:45 flightrecorder joined
am0c r: class A { submethod BUILD { .perl.say }; }; A.new; 18:47
p6eval rakudo 2fca74: OUTPUT«Any␤»
am0c r: class A { method p6 { .perl.say }; }; A.new.p6; 18:48
p6eval rakudo 2fca74: OUTPUT«Any␤»
masak arnsholt: what kind of containers? arrays/hashes/sets, or scalar containers holding values? 18:49
jnthn am0c: self does not go in $_
am0c I see.
masak not since 2005 ;)
18:49 GlitchMr left
am0c r: class A { method p6 { .^attributes.say }; }; A.new.p6; 18:49
p6eval rakudo 2fca74: OUTPUT«␤»
_edwin arnsholt, S32-setting-library/Containers.pod looks promising 18:50
am0c is 'Any' just to mean nothing here?
18:50 GlitchMr joined
geekosaur it's a type object, which behaves as a typed "undefined" 18:51
am0c I see.. 18:52
masak am0c: what geekosaur said. each type has a type object, like the Str type has the Str type object.
r: say "OH HAI".defined; say Str.defined 18:53
p6eval rakudo 2fca74: OUTPUT«True␤False␤»
am0c oh, sorry for rtfm-ish question! I typed my mutterings here before I try to search them because this place is so so so kind and comfortable.
masak that's allowed.
rtfm-ish questions inform our documentation efforts :) 18:54
diakopter don't forget design decisions
18:55 SamuraiJack left
am0c heh :3 18:56
18:56 fgomez left
am0c r: say Mu.WHAT 18:57
p6eval rakudo 2fca74: OUTPUT«Mu()␤»
diakopter TimToady: is <.finishlex> implicitly called at the end of a rule? 18:58
or does it not need to be called at all
oh; nm 19:02
am0c perlcabal.org/syn/S32/Basics.html It's interesting that Any is a role, and Mu is a class. and 'a role does a class' in this case. 19:03
jnthn masakbot: search RT <-> # :)
am0c r: class Joyable { }; role Anyway does Joyable { }; 19:04
p6eval rakudo 2fca74: OUTPUT«===SORRY!===␤Joyable is not composable, so Anyway cannot compose it␤at /tmp/hrSU0a0wuJ:1␤»
jnthn am0c: The claim that Any is a role feels highly suspect. 19:05
moritz am0c: Any is a class, whatever S32::Basic might say
arnsholt masak: Yeah, sorry. Scalar containers holding stuff (I'm pondering ways to get global variables in Zavolaj)
jnthn arnsholt: "get global variables"?
19:06 fgomez joined
moritz also 'role Any does Mu' would suggest that Mu was also a role 19:06
am0c er..
19:06 amkrankruleuen joined
am0c S32::Basic says that Mu is a class though. 19:06
dalek ecs: 5945c20 | moritz++ | S32-setting-library/Basics.pod:
[S32::Basic] Any is a class, not a role
arnsholt jnthn: Stuff like errno. Non-function symbols shared in a library 19:07
_edwin .u ellipsis
phenny U+0EAF LAO ELLIPSIS (ຯ)
_edwin not what I expected :}
am0c I found a typo yey!
dalek kudo/nom: b08d545 | jnthn++ | src/Perl6/Grammar.pm:
First pass at adding $*GOAL and infixstopper.

This fixes parsing of <->.
19:09
kudo/nom: d617f7d | jnthn++ | src/Perl6/World.pm:
Fix <-> semantics.
19:11 SamuraiJack joined
masak jnthn++! 19:12
quick, release Rakudo! :P
_edwin rosettacode.org/wiki/Binary_strings#Perl_6 19:13
colomon _edwin++ 19:16
masak arnsholt: I don't believe they are spec'd in one single place. 19:17
19:19 fhelmberger joined
dalek ast: 26d9454 | jnthn++ | S0 (3 files):
Unfudging/refudging for <-> fix.
19:19
jnthn masak: Release isn't until tomorrow :P
arnsholt masak: Right. Off to the Rakudo code then =) 19:20
dalek kudo/nom: 6064d0f | jnthn++ | docs/ChangeLog:
Note <-> in ChangeLog.
masak jnthn: maybe I could cut a "rogue masak release" tonight, and direct people to it! :D 19:21
jnthn masak: Even better, you could close the RT for <-> if we have one! :P
masak we have one. 19:22
shall I find it for you?
am0c jnthn++
jnthn masak: Go for it.
masak: Just resolve it; I unfudged tests.
masak rt.perl.org/rt3/Ticket/Display.html?id=74182 19:23
jnthn am0c: I hear there's a Korean Perl Workshpo.
*Workshop
masak resolves it
jnthn am0c: Happy it's happening again. :)
am0c yes, 2 days left!
jnthn am0c: I'll have to make it over to Korea again sometime. It was great. :) 19:24
am0c Although I'm not good at Perl 6, planed to present about Perl 6. :3 19:25
jnthn ;)
diakopter phenny tell sorear leaky error: n: /a/($_) 19:26
am0c jnthn: I will give you beers and gifts then!
diakopter n: /a/($_)
p6eval niecza v22-13-g0d2a99e: OUTPUT«Unhandled exception: System.InvalidCastException: Cannot cast from source type to destination type.␤ at Anon.1.Run.MAIN.C1ANON (Niecza.Frame ) [0x00000] in <filename unknown>:0 ␤ at Niecza.Kernel.RunCore (Niecza.Frame& cur) [0x00000] in <filename unknown…
am0c we will welcome you anytime you here >_< 19:27
s/here/come/;
jnthn \o/
am0c o/ 19:28
jnthn shall see if he can manage it next year sometime
diakopter r: say /a/(1)
p6eval rakudo 2fca74: OUTPUT«No such method '!cursor_start' for invocant of type 'Int'␤ in regex at /tmp/YZQSy8AOb4:1␤ in block at /tmp/YZQSy8AOb4:1␤␤»
diakopter heh
moritz r: say (;:[]) 19:29
p6eval rakudo 2fca74: OUTPUT«␤»
moritz r: say (;:[]).perl 19:30
p6eval rakudo 2fca74: OUTPUT«[]␤»
moritz r: say (:[]).perl
p6eval rakudo 2fca74: OUTPUT«[]␤»
moritz what does the colon do?
n: say (;:[]).perl
p6eval niecza v22-13-g0d2a99e: OUTPUT«"" => []␤»
moritz that's kinda what I expected 19:31
diakopter bwahaha
rn: say (::[])
p6eval niecza v22-13-g0d2a99e: OUTPUT«Unhandled exception: System.IndexOutOfRangeException: Array index is out of range.␤ at Niecza.Kernel.InstantiateRole (Niecza.Frame th, Niecza.Variable[] pcl) [0x00000] in <filename unknown>:0 ␤ at Run.CORE.C669_param_role_inst (Niecza.Frame ) [0x00000] i…
..rakudo 2fca74: OUTPUT«GLOBALish 7 EXPORT 11 $?PACKAGE 15 ::?PACKAGE 19 $_ 23 $/ 27 $! 39 $=pod 43 !UNIT_MARKER 51␤»
diakopter phenny: tell sorear another leaky error: n: say (::[])
phenny diakopter: I'll pass that on when sorear is around.
19:31 hoelzro is now known as hoelzro|away
diakopter what is rakudo doing there 19:32
moritz diakopter: symbol table
r: say MY:: === ::
p6eval rakudo 2fca74: OUTPUT«False␤»
moritz r: say MY::
p6eval rakudo 2fca74: OUTPUT«PseudoStash.new("GLOBALish", GLOBAL, "EXPORT", EXPORT, "\$?PACKAGE", GLOBAL, "::?PACKAGE", GLOBAL, "\$_", Any, "\$/", Any, "\$!", Any, "\$=pod", Array.new(), "!UNIT_MARKER", !UNIT_MARKER, )␤»
diakopter oh
moritz r: say ::
p6eval rakudo 2fca74: OUTPUT«PseudoStash.new("GLOBALish", GLOBAL, "EXPORT", EXPORT, "\$?PACKAGE", GLOBAL, "::?PACKAGE", GLOBAL, "\$_", Any, "\$/", Any, "\$!", Any, "\$=pod", Array.new(), "!UNIT_MARKER", !UNIT_MARKER, )␤»
moritz nr: say (;).perl 19:33
p6eval niecza v22-13-g0d2a99e: OUTPUT«Nil␤»
..rakudo 2fca74: OUTPUT«()␤»
moritz nr: say (;).elems
diakopter rn: say (:::[])
p6eval rakudo 2fca74, niecza v22-13-g0d2a99e: OUTPUT«0␤»
niecza v22-13-g0d2a99e: OUTPUT«Unhandled exception: System.NullReferenceException: Object reference not set to an instance of an object␤ at Niecza.StashCursor.Core (System.String key, Boolean final, Niecza.StashCursor& sc, Niecza.Variable& v, Niecza.Variable bind_to) [0x00000] in <file…
..rakudo 2fca74: OUTPUT«===SORRY!===␤ResizablePMCArray: index out of bounds!␤»
diakopter phenny: tell sorear another: n: say (:::[])
phenny diakopter: I'll pass that on when sorear is around.
diakopter rakudo shouldn't say that there 19:34
I wonder what index it's trying 19:35
tadzik I don't like it when things like this parse
so you make a syntax error somewhere, and there's no syntax error, it just misworks 19:36
dalek ast: f2fa61e | moritz++ | S02-types/parcel.t:
RT #115282, (;) parses
19:36 replore_ left
masak submits rakudobug 19:36
jnthn diakopter: It's an internal error of some kind 19:37
My motivation to fix these things, or have them clutter RT, is relatively low, fwiw.
masak r: say (:::[])
p6eval rakudo 2fca74: OUTPUT«===SORRY!===␤ResizablePMCArray: index out of bounds!␤»
diakopter _._.
jnthn Maybe somebody else likes hunting them though.
masak jnthn: I prefer to have them in RT.
jnthn: could mark them up in some way if you like.
colomon rn: say (1..10).list.Array
p6eval niecza v22-13-g0d2a99e: OUTPUT«Unhandled exception: Unable to resolve method Array in type List␤ at /tmp/1zuJIDwEPl line 1 (mainline @ 4) ␤ at /home/p6eval/niecza/lib/CORE.setting line 4212 (ANON @ 3) ␤ at /home/p6eval/niecza/lib/CORE.setting line 4213 (module-CORE @ 579) ␤ at /home… 19:38
..rakudo 2fca74: OUTPUT«1 2 3 4 5 6 7 8 9 10␤»
masak sometimes I've given them the label [WEIRD]
diakopter my premise is that exposing such things could point to larger problems 19:39
19:39 fgomez left
am0c std: sub nom ($a, $b? = "question") { }; 19:39
p6eval std 47e39ad: OUTPUT«Potential difficulties:␤ $b is declared but not used at /tmp/Sh_mbI_3X2 line 1:␤------> sub nom ($a, ⏏$b? = "question") { };␤ $a is declared but not used at /tmp/Sh_mbI_3X2 line 1:␤------> sub nom (⏏$a, $b? = "question") { };␤o… 19:40
am0c std: sub nom ($a, $b? = "question") { return $a + $b; };
p6eval std 47e39ad: OUTPUT«ok 00:00 45m␤»
jnthn am0c: The default value implies the ?
So you may omit it here
am0c yes! though I was curious if I explicitly denote it when default value is provided. 19:41
19:41 thou left
colomon n: say Array.new((1..10).list) 19:41
p6eval niecza v22-13-g0d2a99e: OUTPUT«Unhandled exception: Excess arguments to List.new, used 1 of 2 positionals␤ at /home/p6eval/niecza/lib/CORE.setting line 0 (List.new @ 1) ␤ at /tmp/LGEEIrzIWT line 1 (mainline @ 4) ␤ at /home/p6eval/niecza/lib/CORE.setting line 4212 (ANON @ 3) ␤ at /ho…
jnthn am0c: You may put it there if you wish. 19:42
am0c: It's just not required.
19:42 hash_table left
am0c I see. 19:43
diakopter hee hee
std: /a <~~ >/
p6eval std 47e39ad: OUTPUT«Can't locate object method "desigilname" via package "STD::Regex::_X_SsSlash::_X_SsGt" at STD.pm line 62308.␤FAILED 00:00 42m␤»
diakopter I'm getting better at this code manual inspection thing 19:44
I used to be awful. Now I'm slightly less awful
phenny tell sorear sorry for the spam - another n: /a <~~ >/ 19:45
masak diakopter: if you use phenny too much, she'll overflow and fall back to pm. 19:47
am0c std: sub foo (|bareword) { };
p6eval std 47e39ad: OUTPUT«ok 00:00 43m␤»
19:48 fhelmberger left
masak rakudo: <-> $x { } 19:48
p6eval rakudo 2fca74: ( no output )
_edwin how difficult would string macros be to implement in rakudo? 19:49
colomon n: say (@((1..10).list)).WHAT
p6eval niecza v22-13-g0d2a99e: OUTPUT«List()␤»
diakopter phenny: tell TimToady stdbug std: /a <~~ >/
phenny diakopter: I'll pass that on when TimToady is around.
_edwin would love to solve an RC task with macro include($filename) {$filename.MAGIC.slurp }
colomon n: my @a = (1..10).list; say @a.WHAT 19:50
p6eval niecza v22-13-g0d2a99e: OUTPUT«Array()␤»
_edwin where .MAGIC would be incantation to evaluate an AST argument.
diakopter oh hm. the ~~ thing wasn't what I thought it was 19:52
moritz nqp: my @a := []; @a[-1] 19:53
p6eval nqp: ( no output )
moritz r: :::[] 19:55
p6eval rakudo 2fca74: OUTPUT«===SORRY!===␤ResizablePMCArray: index out of bounds!␤»
moritz the lines that dies is
@components[+@components - 1] := @components[+@components - 1] ~ (...)
in World.pm
jnthn std: :::[] 19:56
p6eval std 47e39ad: OUTPUT«ok 00:00 42m␤»
tadzik ( ° ー°)
moritz (that's in dissect_longname)
nqp: my @a := []; @a[+@a - 1] := @a[+@a - 1 ] ~ 'foo'
p6eval nqp: OUTPUT«ResizablePMCArray: index out of bounds!␤current instr.: '' pc 78 ((file unknown):150492226) (/tmp/qd6wCbd1F7:1)␤»
19:57 fgomez joined
moritz nqp: my @a := []; @a[+@a - 1] := @a[+@a - 1 ]; 19:57
p6eval nqp: OUTPUT«ResizablePMCArray: index out of bounds!␤current instr.: '' pc 78 ((file unknown):167979266) (/tmp/TZt0kPQPtY:1)␤»
moritz nqp: my @a := []; @a[+@a - 1] := 1;
p6eval nqp: OUTPUT«ResizablePMCArray: index out of bounds!␤current instr.: '' pc 68 ((file unknown):154888031) (/tmp/UELWz4VSuD:1)␤»
moritz nqp: my @a := []; @a[+@a - 1] ;
p6eval nqp: ( no output )
moritz ah, it's parsed bit like infix:['foo'] 19:58
jnthn ah... 19:59
Hmm.
moritz except that the [] is emptz and there's a :: instead of an identifier
19:59 Chillance left
jnthn yeah 19:59
20:00 thou joined 20:01 GlitchMr left, Chillance joined 20:02 kurahaupo joined
am0c > my @a = (0, :a<b>, 2); my $a = @a.Parcel; $a.WHAT.say; $a.^does('Parcel()').say 20:07
Parcel()
False
> my @a = (0, :a<b>, 2); my $a = @a.Parcel; $a.WHAT.say; $a.^isa('Parcel()').say
Parcel()
0
diakopter "after Perl 6 comes out.." should probably be updated in STD.pm6
am0c is it right that 'isa' returns zero, and 'does' returns False?
20:08 nlpplz left
pmichaud well, Rakudo and Niecza are "out", but Perl 6.0.0 isn't yet. :-) 20:08
masak 'night, #perl6 20:09
pmichaud r: my $a = (1,2,3); $a.WHAT.say; $a.isa(Parcel).say
p6eval rakudo 2fca74: OUTPUT«Parcel()␤True␤»
pmichaud r: my $a = (1,2,3); $a.WHAT.say; $a.isa(Parcel).say; $a.HOW.isa(Parcel).say 20:10
p6eval rakudo 2fca74: OUTPUT«Parcel()␤True␤too few positional arguments: 2 passed, 3 (or more) expected␤ in any isa at src/gen/Metamodel.pm:960␤ in block at /tmp/2gos69bPtT:1␤␤»
pmichaud r: my $a = (1,2,3); $a.WHAT.say; $a.isa(Parcel).say; $a.HOW.isa($a, Parcel).say
p6eval rakudo 2fca74: OUTPUT«Parcel()␤True␤1␤»
moritz I wonder if code like :::[] should die with "empty name disallowed" or so
20:12 birdwindupbird joined 20:13 colomon_ joined
Hor|zon moritz: I saw Pod::To::HTML for Perl 6, that's why I was thinking Pod => Pod or some kind of Pod syn tree 20:14
problem with pod mdules in p5 was all the reinventing of wheels
who cares about the final format, it's the "nice bits" we need to share 20:15
on that note, it would be nice to port String::Tagged
hmmm
20:16 colomon left, colomon_ is now known as colomon
_edwin std: s[]*] 20:17
p6eval std 47e39ad: OUTPUT«===SORRY!===␤Null pattern not allowed at /tmp/ME9Siv5BjQ line 1:␤------> s[⏏]*]␤ expecting any of:␤ statement end␤ statement list␤Parse failed␤FAILED 00:00 41m␤»
20:21 kurahaupo left, Chillance left, Chillance joined 20:23 alester left
diakopter n: (sub { * })() 20:24
p6eval niecza v22-13-g0d2a99e: OUTPUT«Unhandled exception: System.NullReferenceException: Object reference not set to an instance of an object␤ at Niecza.Kernel.TypeDispatcher (Niecza.Frame th, Boolean tailcall) [0x00000] in <filename unknown>:0 ␤ at Niecza.Kernel.StandardTypeProtoC (Niecza.…
diakopter phenny: tell sorear sorry again, another: n: (sub { * })()
phenny diakopter: I'll pass that on when sorear is around.
diakopter likes the tailcall Boolean above 20:25
20:25 nlpplz joined, SamuraiJack left
_edwin nr: $x='$x';eval($x).say 20:28
p6eval rakudo 6064d0: OUTPUT«===SORRY!===␤Variable $x is not declared␤at /tmp/nUS6w9XzDB:1␤»
..niecza v22-13-g0d2a99e: OUTPUT«===SORRY!===␤␤Variable $x is not predeclared at /tmp/mPVLAVWdfI line 1:␤------> <BOL>⏏$x='$x';eval($x).say␤␤Variable $x is not predeclared at /tmp/mPVLAVWdfI line 1:␤------> $x='$x';eval(⏏$x).say␤␤Unh…
_edwin nr: my $x='$x';eval($x).say
p6eval rakudo 6064d0, niecza v22-13-g0d2a99e: OUTPUT«$x␤»
_edwin nr: my $x='$x';$x.eval.say
p6eval niecza v22-13-g0d2a99e: OUTPUT«Unhandled exception: Variable $x is not predeclared␤ at /home/p6eval/niecza/boot/lib/CORE.setting line 1437 (die @ 5) ␤ at /home/p6eval/niecza/src/STD.pm6 line 5633 (STD.sorry @ 7) ␤ at /home/p6eval/niecza/src/NieczaActions.pm6 line 2049 (ANON @ 41) ␤ …
..rakudo 6064d0: OUTPUT«===SORRY!===␤Variable $x is not declared␤at eval_0:1␤»
diakopter phenny: tell sorear different error: n: (sub { ** })() 20:29
phenny diakopter: I'll pass that on when sorear is around.
_edwin why does eval($x) behave differently from $x.eval ?
does $x.eval get a different lexical scope? 20:30
20:32 birdwindupbird left 20:33 tokuhiro_ joined 20:34 hash_table joined 20:39 flightrecorder left
diakopter rn: class Foo::Bar { }; sub baz(--> Foo::Bar) { Foo::Bar.new }; say baz 20:39
p6eval niecza v22-13-g0d2a99e: OUTPUT«Bar.new(...)␤»
..rakudo 6064d0: OUTPUT«Foo::Bar.new()␤»
diakopter niecza likes the shortname; rakudo likes the long one
20:40 MayDaniel left 20:42 flightrecorder joined 20:46 rindolf left, kaare_ left 20:58 benabik joined 21:05 sftp left 21:09 sftp joined
_edwin rosettacode.org/wiki/Narcissist#Perl_6 21:11
maybe this is a motivation for implementing nested quote delimiters? *hint* *hint* ;) 21:12
21:13 kurahaupo joined
_edwin btw the perl 5 solutions cheats IMHO 21:13
diakopter _edwin: _edwin++ _edwin++ _edwin++ _edwin++ _edwin++ _edwin++ _edwin++ _edwin++ 21:14
21:14 skids left
_edwin blushes 21:14
colomon _edwin: how are nested quoting delimiters supposed to work? 21:15
21:16 zby_home_ left
_edwin like q{ this is a string and this -->q{ is just part of the string } <-- } 21:16
hm, actually if slurp() does text mode, this narcissist should also work with a Windows newline in narcissist.pl, I guess 21:17
colomon std: say q{ this is a string and this -->q{ is just part of the string } blu + 23 43 } 21:19
p6eval std 47e39ad: OUTPUT«ok 00:00 42m␤»
colomon n: say q{ this is a string and this -->q{ is just part of the string } blu + 23 43 }
p6eval niecza v22-13-g0d2a99e: OUTPUT« this is a string and this -->q{ is just part of the string } blu + 23 43 ␤»
colomon is still not quite clear why that works, but it just did, right? 21:20
_edwin r: q{ this is a string and this -->q{ is just part of the string } blu + 23 43 }
p6eval rakudo 6064d0: OUTPUT«===SORRY!===␤Confused␤at /tmp/XrOfE7TGLI:1␤»
_edwin niecza++
too bad niecza does not like slurp()
21:21 benabik left
_edwin as in multi slurp (IO $fh = $*ARGFILES, ... 21:21
colomon _edwin: that ought to be fixable
dalek ecza: 136ddcf | (Solomon Foster)++ | lib/CORE.setting:
Add Parcel.Array and List.Array. There's probably a better way of doing this, but this gets the job done for the moment.
21:22
colomon _edwin: that's in S32? 21:23
_edwin yes, line 115
S32-setting-library/IO.pod
good night perl6 21:27
21:27 _edwin left
dalek p: 21af32a | jnthn++ | src/HLL/Grammar.pm:
Allow nesting of quotes.
21:37
kudo/nom: 42a280b | jnthn++ | / (2 files):
Get nested delimeters parse fix.
21:39
jnthn phenny: tell _edwin I fixed the nested quote delimeters thing, I think :)
phenny jnthn: I'll pass that on when _edwin is around.
colomon is working on slurp() in niecza. 21:40
does slurp() eat all the files in $*ARGS and then stdin, too? 21:51
or is it one or the other? 21:53
21:59 PacoAir left
bbkr is it safe to pass shallow clone to bless like that: "class B is A { method new (A $a) { self.bless($a.clone) } };" ? 22:00
on logical level interferences between two instances of A and B is desired. however on syntax level i'm not sure if shallow clone is the same as $class.CREATE() which bless is expecting. 22:06
jnthn bbkr: CREATE creates a much more "empty" object 22:07
bbkr: If you want to make a clone but with some attributes changed, you can pass named args to clone, I believe. 22:08
sleep & 22:10
bbkr i noticed that CREATE is empty container and initialization params follows in bless(). that's why I was not sure if I can pass already initialized object there. 22:11
rakudo: class A { has $.x is rw = [6]; }; class B is A { method new (A $a) { self.bless($a.clone) } }; my $a = A.new; my $b = B.new($a); $b.x.[0]++; $a.say 22:12
p6eval rakudo 6064d0: OUTPUT«A.new(x => [7])␤»
bbkr n: class A { has $.x is rw = [6]; }; class B is A { method new (A $a) { self.bless($a.clone) } }; my $a = A.new; my $b = B.new($a); $b.x.[0]++; $a.say 22:13
p6eval niecza v22-14-g136ddcf: OUTPUT«A.new(...)␤»
bbkr n: class A { has $.x is rw = [6]; }; class B is A { method new (A $a) { self.bless($a.clone) } }; my $a = A.new; my $b = B.new($a); $b.x.[0]++; $a.x.[0]say
p6eval niecza v22-14-g136ddcf: OUTPUT«===SORRY!===␤␤Confused at /tmp/U4LLfGHzKc line 1:␤------> my $b = B.new($a); $b.x.[0]++; $a.x.[0]⏏say␤␤Parse failed␤␤»
bbkr n: class A { has $.x is rw = [6]; }; class B is A { method new (A $a) { self.bless($a.clone) } }; my $a = A.new; my $b = B.new($a); $b.x.[0]++; $a.x.[0].say
p6eval niecza v22-14-g136ddcf: OUTPUT«6␤»
bbkr discrepancy here between R and N. according to clone spec this looks like nieczabug 22:15
22:24 cognominal joined
cognominal nr: my @a = [[1, 2], 3, 4, [5, [6, [7]]]]; sub flatten($a) { $a ~~ Positional ?? $a.map({ &?ROUTINE($_)}) !! $a }; say flatten(@a).perl 22:25
p6eval rakudo 42a280, niecza v22-14-g136ddcf: OUTPUT«(1, 2, 3, 4, 5, 6, 7).list␤»
cognominal is there a better way to flatten, arrays of arrays?
22:29 tokuhiro_ left, amkrankruleuen left 22:30 Chillance left, Chillance joined
TimToady colomon: it's one or the other 22:32
phenny TimToady: 19:49Z <diakopter> tell TimToady stdbug std: /a <~~ >/
TimToady only reads $*IN if there are no filenames
colomon TimToady++ 22:33
22:33 flightrecorder left, cognominal left
TimToady if we followed p5 here, slurp would actually only do one file at a time, but maybe we don't want that, since nobody will expect slurp to iterate 22:34
that would more properly be done by undefining the newline on the filehandle and using .get, I think 22:35
22:44 thou left
sorear o/ 22:46
phenny sorear: 19:31Z <diakopter> tell sorear another leaky error: n: say (::[])
sorear: 19:33Z <diakopter> tell sorear another: n: say (:::[])
sorear: 20:24Z <diakopter> tell sorear sorry again, another: n: (sub { * })()
sorear: 20:29Z <diakopter> tell sorear different error: n: (sub { ** })()
sorear *shrug*
22:49 stopbit left, spider-mario left
TimToady just so your name isn't Atlas :) 22:50
22:55 m0ss joined 22:56 Chillance left 22:58 m0ss left
bbkr std: class A { class B is A { } }; A::B.new 23:00
p6eval std 47e39ad: OUTPUT«ok 00:00 42m␤»
bbkr rn: class A { class B is A { } }; A::B.new'
p6eval niecza v22-14-g136ddcf: OUTPUT«===SORRY!===␤␤Confused at /tmp/bhbYrTIh10 line 1:␤------> class A { class B is A { } }; A::B.new⏏'␤␤Parse failed␤␤»
..rakudo 42a280: OUTPUT«===SORRY!===␤Confused␤at /tmp/dHBvhsqeq9:1␤»
bbkr rn: class A { class B is A { } }; A::B.new
p6eval niecza v22-14-g136ddcf: ( no output )
..rakudo 42a280: OUTPUT«No such method 'new' for invocant of type 'B'␤ in block at /tmp/0pmKibaECe:1␤␤»
23:07 fgomez left
am0c I think an 'Array' should be a class rather than a role. perlcabal.org/syn/S32/Containers.html#Array 23:26
23:27 jerome left
sorear am0c: Array has to be a role 23:27
am0c oh
sorear because it's parametrized, and classes can't be
am0c aha, I see! 23:30
sorear I agree it's kind of silly 23:31
am0c it feels like a sort of meta-template thingy in c++ term although it's different internally. 23:35
but it makes me feel that Hash could be better if it is parameterized, for example, like Hash[Str; Int]; 23:37
sorear the techical term for that is parametric polymorphism.
shachaf Yay, parametric polymorphism. 23:38
23:41 jerome joined
am0c then, could I check it is right the reason that Array has to be parameterized is.. exactly because of the `parametric polymorphism`? 23:42
or by other parametrical term? 23:43
sorry, I just got confused.
sorear hey shachaf 23:45
shachaf hi sorear
I was looking up newtype Curry a = Curry (Curry a -> a) and your name kept coming up in IRC logs. 23:47
sorear yeah that kind of thing happens 23:49
has ghc been fixed yet to not explode when compiling curry's paradox?
shachaf Well, (\f -> (\x -> outR x x) (InR (\x -> f (outR x x)))) is a usable "fix". 23:51
I think it wasn't at one point because of inliner issues?
sorear shachaf: I mean it used to be the case that when attempting to compile curry's paradox, the inliner would crash, and this stood as a WONTFIX ticket for several years 23:53
shachaf When trying to compile which code? 23:55
sorear the code you just pasted. 23:56
shachaf By usable I mean that it compiles and runs.
sorear then clearly ghc has been fixed
shachaf Oh, I'm wrong. 23:57
It works in ghci but no with ghc.
Bah.