»ö« 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! | Rakudo Star Released!
Set by diakopter on 6 September 2010.
00:01 tri left 00:04 ashleydev is now known as fud, fud is now known as FUD, FUD is now known as __FUD__ 00:05 dalek joined, ChanServ sets mode: +v dalek 00:08 __FUD__ is now known as ashleydev, BooK_ left 00:10 dalek left, whiteknight joined 00:14 hercynium joined
lue ohai o/ 00:17
masak greetings, lue.
lue I saw that pun-fest earlier. [ I would come up with a pun, but it would have everybody hopping, and I don't think anyone could beer it :) ] 00:18
diakopter somehow I missed a punfest in theh backlog 00:22
jnthn lue: So you bottled out? Couldn't tap into the punfest? Can't pump them out fast enough?
masak jnthn: my, you're just overflowing with liquid-related material. 00:23
jnthn It wasn't too pour an effort. 00:24
(OK, *that* one was...)
lue Will anyone &slurpy that liquid? 00:25
00:26 envi left
jnthn Sure, when it comes through the ==> 00:26
masak down the hatch!
jnthn down the batch! ;) 00:27
Actually I shouldn't do that. Tomorrow it's a socialist^Wred day here in Sweden, so the systemka won't be open for me to acquire a replacement batch for the rest of the weekend. :) 00:28
lue Make sure it's decaf. We wouldn't want «jnthn», now do we? 00:29
jnthn Probably not. I've already had at least one person give me the "you must be one of the most nuts people I ever met" look already today. :) 00:30
masak a look most often given to geeks by non-geeks, by the way. 00:31
jnthn Yes, I think that probably sums it up. 00:32
lue masak: did you see that gist I linked to in my blog post? gist.github.com/662027
masak lue: no, but now that I do, I'm happy you're experimenting with Tardis. 00:33
I see you have added line-by-line editing of the program. 00:34
lue That feature Works™* (*only works in certain situation) 00:35
00:35 bgoggin joined, bgoggin left
masak rakudo: say (my @a).end 00:36
p6eval rakudo 142d22: OUTPUT«-1␤»
masak S32 says: "Returns the final subscript of the first dimension; for a one-dimensional array this simply the index of the final element."
masak submits rakudobug
huh. I didn't even see the missing "is" in that second sentence before :) 00:37
00:37 patspam left
jnthn masak: huh. If there's nothing in there, what do you want it to return? 00:37
lue
.oO(It must be the effect of re-reading what you put in IRC)
jnthn 0 would be wrong because that'd imply there's one thing in there.
lue rakudo: say Nil.end 00:38
p6eval rakudo 142d22: OUTPUT«-1␤»
lue but -1 could be in a list as well.
masak jnthn: I don't know. but it's not to spec right now.
jnthn: maybe Failure.
lue: if you say that, you've misunderstood the purpose of .end (just like I did first time I saw it) 00:39
jnthn masak: I think you maybe need to explain it then. :)
masak: 'cus I suspect I'm missing something also... 00:40
masak well, first off, let's agree on what S32 actually *says*.
it says "returns the final *subscript*.
an empty array has no final subscript.
hence -1 is *wrong*.
jnthn Hm
True
It may be a handy sentinel if you planeed to do some math on it.
But yeah, I can see flagging it up as a Failure is probably better. 00:41
masak if S32 said "returns less than the length of the array", -1 would have been fine.
but it doesn't.
so it isn't.
this is why we have a spec, for precision and clarity.
in this case, it's precise and clear. hence, bug.
if you want -1, please use C<+@a - 1> :) 00:42
jnthn fairy nuff.
masak I even have a use case for this being wrong: Tardis. 00:45
colomon masak++ # just read blog post
masak \o/
this line: github.com/masak/tardis/blob/maste...tardis#L37 00:46
when I was restoring Tardis, at one point @ticks was empty (but shouldn't be). @ticks.end returned -1, and the line sais "# Finished. Ticks: 0..-1" 00:47
which looked... wrong.
it certainly wasn't something I expected ever to get putting that line in.
sorear You think a crash would look more correct?
masak maybe. 00:48
but a Failure would only generate a warning, I think.
sorear 0..-1 looks like an empty list to me
colomon 0..0 is not empty
and Failure becomes 0 in this context, no?
masak dunno.
sorear S04:1220
any use of a Failure other than .defined or .Bool causes an exception to be thrown 00:49
masak right.
booby-trap.
00:54 icwiener left
masak so, it will die, not just warn. 00:54
that's fine by me. 00:55
because @ticks.end was used here in a way never intended.
lue masak: alright if I fork Tardis to hack on it? [I remember cases where forking caused issues]
00:56 icwiener_ joined
masak lue: you have my permission. 00:56
diakopter forking leads to spooning
colomon huh. Haven't there been repeated complaints that something like 4 + Failure returned the no Bridge method error rather than 4?
masak diakopter: but never to sporking?
colomon: I'm still a wee bit uneasy about the whole Bridge thing. 00:57
colomon masak: can you explain?
masak in my mental model of Math, there are the equivalents of Num and Rat and Int... but not of Bridge.
that's the extent of my complaint about the elected model. 00:58
I realize it's addressing a real problem. I don't have a better solution.
jnthn
.oO( a Real problem... )
masak if I did, I would complain louder :)
jnthn: your punnery is Continuous! 00:59
jnthn An Integral part of #perlt!
colomon your mental model of Math isn't going to have Bridge, because Bridge isn't an actual type.
jnthn *#perl6
lue you would be able to get changes I make when I fork, right? (Or am I thinking of the wrong thing?)
masak colomon: that isn't much of a consolation. so it's a conversion method to something that isn't an actual type; so what? 01:00
colomon Bridge is more-or-less "the most accurate Real type available in this Perl 6 that everyone knows about."
masak lue: there's something called a fork queue in github. it allows changes to flow back.
colomon If you have a better one-word term for that, I'll be happy to change it.
jnthn Coercomatic
colomon ooooo 01:01
masak all I know right now is that it's not "really" called Bridge. :)
diakopter I spun a pun for the pundits, and I was expunged.
masak jnthn: by the pronunciation rules of English, the second 'c' in that word is pronounced 'k'.
lue Coerce-o-matic? 01:02
jnthn masak: English doesn't have pronunciation rules. :P
masak right. needs to be what lue said.
lue
.oO(or the coerceinator)
masak jnthn: a fayre poynte.
sorear I imagine colomon is cognate to Solomon, and has a soft c 01:04
masak huh.
sorear I'm uneasy about Failure in general.
colomon sorear: actually not.
sorear Very uneasy.
masak sorear: for optimization reasons? 01:05
colomon My name is Solomon, but my id is colomon with a hard c sound.
but back to Failure
sorear masak: semantics, mostly 01:06
I have a very clever implementation of delayed throw waiting
which I would hate as a Perl 6 user, but at the same time it would be a shame to throw it away as an implementer
masak :) 01:07
I haven't really been the victim of a lot of delayed throws in my Perl 6 adventures.
either that, or they're so natural that I don't think of them as such. 01:08
I have been worried about Freaky Action at a Distance.
but practice hasn't confirmed this worry (yet).
sorear masak: the reason you haven't been the victim of any delayed throws is because nobody implements them. 01:11
masak oh. 01:12
sorear S04 has other consequences
the most disturbing for me is that try { function(); CATCH { } }; can still throw exceptions 01:13
delayed exceptions require the ability to throw more than one exception at once; CATCH only skims off the top exception 01:14
jnthn try { function(); } OTOH...
sorear the rest will sail through, unless you have a for @$! { .handled = True } in your catch
sorear goes off and reads the GHC-on-LLVM thesis 01:15
01:24 dnl- joined 01:28 dnl left 01:30 cdarroch left 01:37 ggoebel left 01:45 sftp left 01:46 ggoebel joined
jnthn goodnight, #perl6 01:49
01:53 icwiener_ left
masak 'night, jnthn. 01:58
lue masak: I think Tardis will end up being a really fun project for me. [ gee, a program that dabbles in time travel, I wonder why I like it :) ] 02:00
masak :)
lue .oO[ BTW, I think smashing random bits with a rubber mallet is fun as well :) ] 02:01
sorear the GHC/LLVM integration does something so simple I could never have thought of it 02:12
masak do tell.
sorear GHC requires a very specific format of stack frames...
so I was wondering how it conveyed that to the backend.
nope, it just uses a program-managed stack pointer; the compiler's own call stack is unused 02:13
GHC-generated LLVM code consists of zero-argument functions that tail call each other
masak sweet.
sounds a lot like CPS. 02:14
sorear this does mean that esp goes unused, which is not pretty on a CPU with only 8 integer registers, though
masak time for me to sleep as well. 02:15
'night, #perl6.
lue g'night o/
02:15 masak left, whiteknight left
sorear wonders if lue will apply to GCI 02:15
lue I'm considering it. 02:19
02:26 ggoebel left 02:40 xinming_ joined 02:42 xinming left 02:44 hercynium left, patspam joined 02:57 hercynium joined 03:08 risou joined 03:11 jlaire left 03:12 risou_ joined 03:15 risou left 03:16 jlaire joined 03:17 ggoebel joined 03:19 ggoebel left 03:43 Chillance left 04:00 plobsing joined 04:10 risou_ left 04:19 wooden left
sorear niecza: for ("x", "\xFFFE") -> $ch { say ?($ch ~~ /<-[ f ]>/) } 04:20
p6eval niecza f730971: OUTPUT«Unicode character 0xfffe is illegal at /home/p6eval/niecza/src/Niecza/Actions.pm line 907.␤Unicode character 0xfffe is illegal at /home/p6eval/niecza/src/Niecza/Actions.pm line 907.␤Bool::True␤Bool::False␤»
04:20 hercynium left 04:21 lidden left
sorear niecza: for ("x", "\x2FFF") -> $ch { say ?($ch ~~ /<-[ f ]>/) } 04:22
p6eval niecza f730971: OUTPUT«Bool::True␤Bool::False␤»
sorear it looks like I accidentally coded 'All' to exclude Cn 04:23
04:29 dnl- left
sorear fixed 04:33
04:42 araujo left 04:52 justatheory left 05:00 chitragupt left 05:12 Axius joined 05:26 Axius left
sorear fixed q[foo]... it wasn't an LTM issue, it was » being broken and only matching on the left side of actual whitespace 05:31
06:11 Lorn left 06:12 Lorn joined 06:15 risou joined 06:22 patspam left 06:32 Lorn left 06:53 Bucciarati left 06:54 dukeleto left, dukeleto joined 06:55 jhuni joined 07:02 risou left 07:06 risou joined 07:16 aesop_ left 07:19 aesop joined 07:22 _kaare joined 07:41 Lorn joined 07:44 mberends left 08:04 risou left 08:08 PZt left 08:11 PZt joined 08:28 Lorn left 08:38 nymacro joined 08:50 Lorn joined
sorear yay, got <foo> working at last 08:52
08:57 meppl joined 09:03 nymacro left 09:05 Ross joined 09:08 envi joined 09:29 dalek joined, ChanServ sets mode: +v dalek 09:30 dalek left 09:36 xinming_ left 09:43 constant left 09:45 constant joined, constant left, constant joined 09:48 mavrc joined 09:55 dalek joined, ChanServ sets mode: +v dalek 09:57 sftp joined 09:59 MayDaniel joined 10:07 wamba joined 10:10 dalek left 10:17 dalek joined, ChanServ sets mode: +v dalek 10:19 dalek left 10:21 dalek joined, ChanServ sets mode: +v dalek 10:24 dalek left, dalek joined, ChanServ sets mode: +v dalek 10:27 dalek left 10:28 masonkramer left, masonkramer joined 10:29 dalek joined, ChanServ sets mode: +v dalek, dalek left 10:30 dalek joined, ChanServ sets mode: +v dalek
dalek : 21ceeb2 | sorear++ | misc/dalek-conf.json:
dalek test commit
10:31
10:31 dalek left 10:34 dalek joined, ChanServ sets mode: +v dalek
sorear dalek should now be working for repos 10:35
sorear out
tadzik o/ 11:18
11:18 wallberg joined 11:20 wallberg left, wamba left 11:21 wamba joined, wamba left, kensanata joined, wamba joined 11:22 M_o_C joined, ggoebel joined
tadzik oh, I see IO::Stat in use 11:24
11:31 jhuni left 11:34 mberends joined 11:41 mberends left, mberends joined 11:44 kanishka left 11:49 kanishka joined 11:52 M_o_C left 12:09 araujo joined, araujo left, araujo joined 12:16 mberends left, mberends joined
mberends the Perl booth (and the other booths) here at t-dose.org is well attended. We are staffed by at least 7 people :) 12:17
(wifi still goes up and down a bit, the network experts are working on that) 12:18
jnthn o/ mberends 12:21
Are you handing out round tuits? ;-)
12:23 lidden joined, mberends left 12:25 mberends joined
mberends jnthn: I hadn't got a round tuit yet, but I really should ;) 12:26
test 6model/dotnet on Mono/Ubuntu netbook: All tests successful. Files=24, Tests=167, 195 wallclock secs 12:33
jnthn ah, cool...the library loading primitives didn't break the Mono build. :-) 12:36
12:37 vdrab joined 12:38 wallberg joined
mberends jnthn: several tests are reporting: warning CS0169: The private method `NQPOutput_1289046623.Load(Rakudo.Runtime.ThreadContext, Rakudo.Runtime.Context)' is never used 12:38
not serious, but perhaps an avoidable distraction
jnthn: Wendy sends @greetings 12:39
araujo pastie.org/1276960
12:46 phenny left 12:47 phenny joined 12:49 phenny left, phenny joined
jnthn mberends: Oh, it shoulda been marked public. 12:50
mberends: Thanks, will fix.
mberends: Greetings to Wendy too :)
oh huh, the Main is private too. 12:51
13:03 kanishka left 13:04 pmurias joined 13:14 whiteknight joined 13:18 Patterner left 13:33 Psyche^ joined, Psyche^ is now known as Patterner 13:37 icwiener joined 13:47 colomon left 13:51 MayDaniel left 13:52 colomon joined 13:54 xinming joined 13:57 colomon left, phenny left 13:58 phenny joined
moritz_ just had a p6advent brainstorm 14:00
result soon to be seen on p6u 14:01
14:02 Ross left 14:10 icwiener left 14:24 phenny left, phenny joined 14:26 phenny left, phenny joined 14:28 takadonet joined
takadonet yo 14:28
14:42 wamba left
jnthn o/ takadonet 14:46
takadonet jnthn: how are u sir? 14:49
jnthn takadonet: Fine, thanks. Busily preparing for a course I'm teaching next week, but hoping to get some Perl 6 hacking in later on today too. :-) And you? 14:52
14:52 countley joined
takadonet jnthn: going to do some chores around the house but hacking now around a rakudo bug/NYI and I may have a solution 14:53
jnthn Nice :-)
takadonet well my solution just went boom.... 14:54
14:55 mberends left
jnthn Rakudo may yet find applications in the demolition industry. ;-) 14:55
14:56 mberends joined
takadonet jnthn: maybe 14:58
15:00 mberends left 15:08 patspam joined 15:12 sftp left, wallberg left 15:13 MayDaniel joined 15:21 xinming left 15:22 sftp joined 15:23 xinming joined 15:27 countley left 15:30 justatheory joined 15:36 kensanata left 15:40 masak joined
masak \o/ 15:40
I see you've had a quiet day here. 15:42
jnthn There goes the peace and quiet... :P 15:44
masak mwhaha
jnthn masak++ # managed to get two spec commits out of TimToady++
masak: Did you see 'em? 15:45
masak yes. one parallel and one antiparallel :)
jnthn :)
For the BUILD one, I'm wondering if we want a deprecation cycle (more)
masak possibly.
jnthn Instead of just changing Rakudo to only care about publics and ignore privates, it still works with the privates but warns for one release that this ain't going to work in the future 15:46
Then after that we drop it
masak great idea.
jnthn So there's a release's grace.
masak jnthn++
jnthn Well, it's quite easy to do too.
masak then we get to test things a bit.
jnthn Right.
I think it's going to break a lot of people's code.
masak quite possibly. 15:47
jnthn I've got plenty of slides out there with examples that rely on the existing behavior.
One of us (or someone else) should write a good blog post explaining the change too, which we can reference in the next release.
We've got a good 2-3 weeks beofre the next release anyways. 15:48
So no immediate hurry.
I may patch Rakudo this weekend though.
15:48 Bucciarati joined
masak aye. 15:50
jnthn Cruiously, I think I may reach the point of writing NQP.Net's BUILD this weekend also :)
masak yay
jnthn Depends how long it takes me to decontaminate^Wdejava-ize this course material... 15:53
masak actually, I think Java is a pretty OK language. my main complaint is its lack of closures.
but otherwise, it's fine. I like TDD-ing in it. 15:54
jnthn masak: I'm actually "translating" a TDD course 15:56
masak: And keep seeing things and thinking, "gee, I like the way we do it in C# better" 15:57
masak would be nice to hear about some of those things at some point.
I'm sure C# got some things righter than Java.
jnthn It'd be silly if they hadn't.
Coming five years later.
masak right. 15:58
15:59 kanishka joined
masak since Wien, I'm rediscovering sour cabbage. turns out I had a big hunger for it that I wasn't aware of. 16:01
so today I went to the store and bought a big jar of it. 16:02
jnthn Om nom nom kysla kapusta 16:03
I ate loads of that when I was on vacation in Germany/Austria/Slovenia earlier this year. :) 16:04
In Ljubljana I had one night blutwurst with sour cabbage struddel.
masak om nom nom 酸菜 :) om nom nom kimchi :)
tadzik ~~ 16:05
masak tadzik! \o/
jnthn happy smartmatch, tadzik
masak hope you get ACCEPTed.
tadzik moritz_++ # p6advent support
jnthn Well, we removed the possibility to REJECT... 16:06
masak felt too negative.
tadzik I'm also thinking about something targeted for P5ers, but more like "you no longer need getopt, moose, autobox, everything's here, wee!"
masak those posts are often good, yes. 16:07
tadzik so, am I to create a repo for ideas, or one will be created in perl6/? 16:08
ah, there is it, in mu 16:09
I'll create a new dir
16:12 PZt left 16:14 kanishka left 16:24 wamba joined 16:32 colomon joined
tadzik moritz_: SYN 16:33
moritz_: one of your points is: what is a term, what is an operator? why is the distinction import? I assume you mean "important" 16:35
ideas gitpushed to mu 16:36
dalek : 4d192cc | tadzik++ | misc/perl6advent-2010/topic-brainstorming:
Added topic-brainstorming for 2010 Advent Calendar
tadzik bah, review is no longer a clickable link 16:37
colomon tadzik++ 16:40
masak tadzik: alternatively, "why is the distinction of import?" :)
16:44 jferrero joined
jnthn Because it's not of export? 16:44
masak you can't export things from Perl 6, because Perl 6 is all-encompassing. 16:45
jnthn I think "of importance" would be the right thing there :)
"of import"...read weird to me.
masak are you seriously going to question my knowledge of English? :P :P
tadzik masak: :) 16:46
jnthn Probably not, given I'm only a native speaker. :P
masak I do agree that "of import" sounds... a little bit stiff.
but it's not incorrect.
tadzik gee, mu is huge! 16:47
masak tadzik: it was *the* repo for many years.
jnthn masak: Aye, it's correct.
masak: I'd just never, ever say it like that.
tadzik masak: yeah, half of the size is the .git files 16:48
masak tadzik: er :)
oh, because of the history.
that's not too bad.
jnthn If the whole history only takes as much space as the current version, I'd say the history is stored pretty efficienlty. :) 16:49
masak there's git's nice design for you. designing things right from scratch is... of import. :) 16:50
jnthn :P
masak you're right, it does sound odd.
16:56 PZt joined
colomon "import" in that sense makes me think of 70s comic book writers. 17:00
masak why?
17:01 dnl joined
colomon it's the sort of psuedo-grandiose language they loved to use. 17:01
dnl m􏿽xF6insen
colomon the same way the writers a decade before just stuck exclamation points after every single sentence.
nothing at all wrong with it, mind you, it's just not the way people normally talk. 17:06
masak dnl: hi. you might want to switch your client to utf8. seems you have latin-1 right now. 17:07
dnl masak: ok, thx 17:08
17:08 dnl left, dnl joined
masak dnl: Wir alle benutzen Unicode hier. :) 17:08
dnl ja ich eig. auch 17:09
masak \o/
dnl hope it lööks better now :>
jnthn Ja, we be nutz about Unicode!
17:09 xabbu42 left
masak dnl: it lööks greät! 17:09
dnl hehe, thx
masak rakudo: say "hi dnl! »ö«" 17:10
p6eval rakudo 142d22: OUTPUT«hi dnl! »ö«␤»
masak rakudo: sub foo { say "like our" }; &foo.wrap: { say "how do you"; callsame; say "evalbot? :)" }; foo 17:12
p6eval rakudo 142d22: OUTPUT«how do you␤like our␤evalbot? :)␤»
jnthn I'd do that with protos and a multi if only we had an nqpnet evalbot here. :) 17:13
masak rakudo: class A { method foo { say "ourselves" } }; class B is A { method foo { say "proud of it" } }; class C is B { method foo { say "we're pretty" } }; C.new.*foo
p6eval rakudo 142d22: OUTPUT«we're pretty␤proud of it␤ourselves␤»
masak rakudo: class A { method foo { say "if this" } }; class B { method foo { say "works?" } }; class C is A is B { method foo { say "hm, wonder" } }; C.new.*foo 17:15
p6eval rakudo 142d22: OUTPUT«hm, wonder␤if this␤works?␤»
masak \o/
jnthn :) 17:16
Yeah, it works MRO.
*walks
masak C3, even.
jnthn I tried upgrading 6model to use C4 at one point, but it got explodey. 17:17
masak *groan*
jnthn Ooh, thanks to diakopter++'s hacking I suspect it's possible to get the C3 code running on NQP.Net now. :)
17:19 Ross joined, Ross left, Ross joined 17:21 Ross left 17:24 xinming left
masak rakudo: class A { method foo { say "A" } }; class B is A { method foo { say "B"; nextsame } }; B.new.foo 17:33
p6eval rakudo 142d22: OUTPUT«B␤A␤»
masak rakudo: class A { method foo { say "A" } }; class B is A { method foo { say "B"; nextsame } }; my &x = B.WALK(:name<foo>)[0]; &x.wrap: { say "wrap"; nextsame }; x(B.new)
p6eval rakudo 142d22: OUTPUT«wrap␤B␤»
masak submits rakudobug
at least I suppose it is one. 17:34
I love my job. :)
why doesn't the last evaluation print "wrap␤B␤A␤"? 17:35
tadzik did we have wrapping at our last advent calendar? Maybe we could explain Test::Mock btw 17:36
masak I think jnthn should do a Test::Mock instalment.
jnthn Oh yeah, I heard that's a nice module.
masak remembers he has promised to write a review of it
jnthn :P
tadzik maybe for advent calendar? 17:37
masak if that's deemed the right medium, sure.
jnthn I'd be happy to write an article on it for the advent calendar.
tadzik jnthn: care to add yourself to the file?
jnthn Can take it from various angles I guess.
tadzik: Where is The File?
tadzik jnthn: mu/misc/perl6advent2010 I think
masak tadzik++ # Making Stuff Happen 17:38
tadzik it's to start on Decembet the first?
colomon yes
tadzik advent is 23 days? 17:39
masak 24.
jnthn 24.
tadzik So eve's included, ok
so 24 topics to choose
masak rakudo: say [*] 1..4
p6eval rakudo 142d22: OUTPUT«24␤»
tadzik I think those will have to be chosen and assigned to writers by 20th of November 17:40
masak tadzik: it would be *really* helpful to have a file with 24 slots in it.
tadzik hmm
masak tadzik: last year we filled in the blanks a couple days before at the latest.
tadzik ah, ok 17:41
masak and on the day in question we made sure that the person was available and ready.
worked out pretty well. we never missed a day, at least.
colomon I had to go with emergency posts twice.
(I think.)
masak some people wrote drafts in advance.
tadzik so maybe let's just create a 24-slot arra^Wfile, and people will volunteer for the days?
colomon So it pays for at least one or two of us to have stuff done in advance.
masak tadzik: yes. 17:42
tadzik But I think it'd be nice to make a list of a must-have posts from what we have brainstormed
masak tadzik: maybe put that at the head of such a file?
that way, when people are choosing a slot, they have some inspiration as well.
jnthn: no comments on the wrap-B-A bug above? 17:43
tadzik masak: good idea. But I'd wait few days for the ideas to clarify, and stuff
masak nod
tadzik I wonder what can I write about 17:44
masak what do you want to write about? 17:46
tadzik oh, everything, it's fun :)
I remember promising to extend a grammar chapter in The Book 17:47
maybe the module system
dukeleto tadzik++ # adventy stuff 17:48
masak do people remember which articles resonated best with people last year?
jnthn I think it was mostly the frequency of published material. 17:49
masak: looking at the wrap one
colomon good grief, my mandelbrot set post has gotten 40 views this week!? 17:50
masak :)
(long tail)++
jnthn masak: hmm
masak: I can kinda see why it's happening. 17:51
masak: It feels wrong.
masak what feels wrong?
jnthn That wrapping it breaks the deferal up the MRO
colomon #1 Metaoperators
#2 Getting Rakudo
#3 The beauty of formatting
#4 Static Types and Multi Subs 17:52
#5 Grammars and Actions
that's all time.
perl6advent.wordpress.com/wp-admin/...;summarize
masak colomon: looks about right.
colomon probably have to be logged in to see that.
masak jnthn: yes -- that's the title of my bug report :)
colomon (logged into wordpress as a Advent contributor, I mean) 17:53
jnthn masak: To make it work, the current candidate list kinda needs to get "collected" or something.
When it gets to the ponit of being fully iterated.
So we fall to the otuer dispatcher's idea of current candidate list. 17:54
masak jnthn: ok.
jnthn e.g. empty = implicit pop
masak adds all this to the ticket
jnthn Not sure if we get ourselves into trouble in exciting new ways by doing that though :) 17:55
masak conceptually, I don't see any problem.
jnthn No, I don't have an immediate example of a problem we'd cause or some extra fragility it'd introduce.
Tend to be a little knee-jerky against implicit magic, that's all. :-) 17:56
masak what's magic about it? 17:57
I think I'm still missing the hard part.
wrapping, to me, is a very "clean" operation.
no much magic about it.
jnthn masak: Remember that when you wrap something you're adding a new dispatcher.
So now what happens is not .foo => method dispatcher 17:58
But .foo => method dispatcher => wrap dispatcher
masak right.
jnthn Each dispatcher implies the existence of a candidate list.
masak the wrapping dispatcher is nested inside the method dispatcher.
jnthn nextsame and friends look for the candidate list on the top of the stack, essentially.
17:58 simon__ joined
jasonmay could I achieve async IO by writing something lower-level within a perl6 module? 17:59
jnthn Right, but that's the issue. The method just becomes the last thing in the candidate list.
jasonmay like I think parrot has something like poll() ?
masak jnthn: yes, but 'nextsame' inside the original unwrapped method shouldn't change receiver.
jnthn What's a receiver?
jasonmay in rakudo I mean
masak jnthn: one of the dispatchers.
jnthn YOu seem to be implying that nextsame is boudn in some way at compile time.
It's not.
It's just a sub call.
masak jasonmay: I've never seen anyone do that. but maybe there's a way.
jasonmay: you might want to ask the #parrot people over at irc.perl.org 18:00
jasonmay is there a better way?
jnthn jasonmay: All Rakudo's IO is wrapping around Parrot IO objects really.
masak jasonmay: async IO isn't really there yet, as far as I know.
jnthn jasonmay: So if Parrot has bits we're not providing yet, there'll be ways to do it. It's mostly dependent on what Parrot offers so far though.
jasonmay ok cool 18:01
thanks
masak jnthn: I can't put my finger on it. the model you describe doesn't sound right. let me think about this for a day or two.
jnthn Oh, I think mberends++ and I maybe managed to work out how to call select using Zavolaj once.
masak: I alluded to a lot of this in that dispatch blog post a few weeks ago.
tadzik . o O ( FakeAsyncIO.pm )
jnthn masak: The one that led to the multi-dispatch changes. 18:02
masak right.
jnthn The multi-dispatch changes addressed most of it.
But I still think we may have some lingering more general dispatch issues.
Particularly around dispatcher interaction.
masak I'm getting increasingly interested in dispatcher interaction. 18:03
I mentioned it the other day as well.
jnthn Aye, it's (one of many mnay things) on my mind too.
Anyway, under the current model you'd need the now-empty wrap candidate list's dispatcher frame to vanish or be ignored by the nextsame in the method to resume walking the outer candidate list. 18:04
Which is do-able, but just makes me that tiny bit uncomfy. :)
masak just stumbled over perl6training.net/ 18:05
jnthn: I think you should mention Rakudo on there, not just Pugs :P
jnthn sheesh
how old is *that*
masak 3 years?
jnthn Given the picture of me on there...not recent.
masak :) 18:06
jnthn pushes updating it onto his "things to do" list
Not sure the market for Perl 6 training is quite there yet though. :)
masak won't be long now. we just need to release Perl 6, and then... oh wait. :/ 18:07
jnthn :P
I should update the referenced slides and point to Rakudo, at least. :)
masak++ # reminding me to take care of stuff I forgot I even had :)
masak strangely, living in a post-"Christmas" climate feels just like living in a pre-"Christmas" climate. anyone else notice that?
except, of course, that Rakudo is awesomer than two years ago. I shouldn't forget that. 18:08
Rakudo is in many ways more at this point than Pugs was at its peak. it's just gotten there with less fanfare. 18:09
sorear good * #perl6 18:15
tadzik hello sorear 18:16
jnthn: I read your 2005 talk about Parrot, it mentions JIT, Threads, why are they no more, what has happened?
masak greetings, sorear.
sorear jasonmay: you may find this useful, it's a cooperative thread scheduler in pure Perl 6: www.nntp.perl.org/group/perl.perl6....34249.html 18:17
masak tadzik: JIT has always been a problem child in Parrot. as far as I understand, one is still at square 1 with it. threads are there, but so untested as to be virtually not there.
jnthn tadzik: Nobody wanted to maintain the JIT so it got ripped out instead, under the assumption that it would be replaced soon thereafter.
Guess what didn't happen. 18:18
sorear tadzik: the link change was not intentional. It broke last night when I was busy making dalek work at all again after recent github changes
I'm suprised nobody noticed dalek is working...
tadzik Parrot folks noticed. I didn't notice it was broken 18:20
jnthn noms & 18:24
cxreg jnthn: isn't that why they're now doing lorito? 18:25
colomon sorear++
tadzik cxreg: Lorito has more reasons to be than to enable easier JIT compilation 18:26
jasonmay sorear: thanks, I'll take a look in a bit 18:27
18:27 jhuni joined 18:30 simon__ left, dalek left
sorear tadzik: the URLs should be fixed now 18:31
18:31 dalek joined, ChanServ sets mode: +v dalek 18:36 takadonet left 18:46 hercynium joined
tadzik sorear++ 18:47
18:59 wamba left 19:00 bluescreen joined
diakopter post-Christmas? really? 19:00
19:01 bluescreen is now known as Guest22875
masak diakopter: so says the current Perl 5 pumpking, obra. 19:02
diakopter: according to obra, Christmas was the Rakudo Star release.
diakopter that's utter bull****. the [para]phrase was "when [a] Perl 6 is released, every day will be like Christmas, [so we can refer to its release date as Christmas]". Until every day is like Christmas [in terms of using Perl 6], Perl 6 hasn't been released. 19:06
I'm disappointed he said that. 19:07
19:07 dalek left
masak the "every day will be Christmas" is not part of the original quote/joke about Christmas, though. 19:07
diakopter: you want the URL to the talk?
diakopter what was the original quote/joke
arnsholt I think it was just "Perl 6 will be released for Christmas" 19:08
masak "When will Perl 6 be released? -- By Christmas. [We're just not saying which one.]"
Larry used to say that to interviewers.
19:08 dalek joined, ChanServ sets mode: +v dalek, dalek left
arnsholt It was audreyt that made the extension, no? 19:09
masak not originally.
she used it a lot in talks, though.
I'm trying to recall the name of the (likely) originator.
I traced it back through the IRC logs once.
arnsholt Cool
19:10 dalek joined, ChanServ sets mode: +v dalek, icwiener joined
diakopter I never said I was referring to the "original" use of "Christmas"... but if obra made that comment about Rakudo Star, that's contrary to what S01 says 19:10
(now referring to Larry's use of "Christmas")
masak ok. 19:11
diakopter (when "Perl 6" will be released)
6.0.0
so don't see how we're post-Christmas in any sense 19:12
tadzik It's rather "it has alredy started snowing"
diakopter (snowing N years before Christmas?) 19:13
masak anyway, I'm using Perl 6 every day. and it's at least November :)
tadzik masak: are you releaseing psyde? 19:14
masak tadzik: soon, soon.
tadzik before christmas?
masak yes. I give my word. 19:15
probably early December some time.
(and no, psyde is not the Big Announcement)
ah. it was fglock++ who coined the "every day will be Christmas" variation. 19:17
or was it putter++? 19:18
dang.
tadzik rakudo: role something {}; multi trait_auxiliary:<is>(something $trait, $block, $arg) { .WHAT.say for $trait, $block, $arg} # what's wrong? 19:19
p6eval rakudo 142d22: OUTPUT«===SORRY!===␤Null PMC access in get_string()␤»
masak submits rakudobug
tadzik right :)
masak rakudo: sub trait_auxiliary:<a>() {} 19:22
p6eval rakudo 142d22: OUTPUT«===SORRY!===␤Null PMC access in get_string()␤»
masak that's what's wrong.
19:22 hercynium left
jnthn huh :S 19:22
You wanted trait_mod anyway, if you're trying to write a trait, though. But yes, something's wrong there. 19:23
masak something that seems to have evaded the spectests.
19:26 patspam left
tadzik LolDispatch uses trait_auxiliary 19:27
why would I want trait_mod?
masak isn't LolDispatch alpha code?
tadzik dunno
probably. But it contains a funny and easy example for traits, and I wanted to understand those 19:28
19:29 au|irc left
lue ohayo 19:29
masak lue: \o 19:30
tadzik: we definitely need more such examples.
tadzik masak: that was my intention 19:31
masak tadzik: why don't you badger jnthn a bit more, and maybe he'll show you a working example. 19:32
either that, or look in the Rakudo source code.
tadzik masak: there is a working example in Zavolaj, but LolDispatch was easier to read
rakudo doesn't use mod_auxiliary anyway :/ 19:33
jnthn tadzik: A while back, the various different types of trait handler were unified. 19:34
Everything is trait_mod now
So the code will need an update for that. 19:35
tadzik ah, that explains a lot
masak blog post! strangelyconsistent.org/blog/novemb...pragmatism 19:37
24 days to go. I'm not even breaking a sweat so far. :)
tadzik gist.github.com/665650 -- out of ideas again :/
oh wait, that's wrong 19:38
fixed a gist
lue What would the best way be to allow quoting on a commandline? [things like rewrite "say $a;"] I'm hoping there's some tricky regex thing
tadzik jnthn: how do I use these? :/ 19:39
masak lue: I don't understand what you're asking.
lue I want to force people to use quotation marks for clarity's sake, but I don't need them when I'm processing the info. 19:40
(in my example above I need just say $a; ] 19:41
19:41 namer joined, Steppenwolf joined 19:43 namer left
lue I wonder, is it still possible to add tasks to GCI, or is that finalized? 19:44
tadzik they are still being added I think
but ask #parrot
masak lue: I don't understand the context of your commandline problem. 19:45
lue: you probably explained it well, given that one has some piece of extra information that I don't have. 19:46
either that, or I need coffee.
lue Right now, in my fork of Tardis, I have the rewrite command. All I want is to be able to detect some sort of quotation so Tardis doesn't disappear. 19:48
masak ok, so the context is your rewrite command.
and you want to detect quote marks.
I'm with you so far.
lue with input -e "my $a = 3; say $a;" and rewriting the first line of code (tick 1) using rewrite "my $a = 2;" produces this as the program: 19:50
"\"my \$a = 2;\"; say \$a;" 19:51
[ sorry, imagine \ in front of every $ in the input ] 19:52
masak well, the regex /^ \" (.*:) \" $/ will tell you whether the string starts and ends with quotes. 19:55
and if it matches, you can just replace that string with $0.
lue all that looks familiar except the colon.
masak though I must confess that allowing both the quote and non-quote form sounds like the Wrong kind of user-friendliness. 19:56
lue: the colon is a ratchet, preventing backtracking. it allows the regex to fail faster when it fails.
jnthn tadzik: May need to be "our" scoped for the moment.
masak it has the same effect as using 'token' rather than 'regex'.
lue I know. I think I'll leave it at not-quoting, considering it doesn't do that much harm. 19:57
(although trying to rewrite anything that uses some sort of quotation (i.e. say "hello";) fails miserably right now)
rakudo: my $a = "Well; hello; there;" say $a.split(';').perl 19:58
p6eval rakudo 142d22: OUTPUT«===SORRY!===␤Confused at line 22, near "my $a = \"W"␤»
tadzik jnthn: what, the role?
masak lue: missing semicolon.
lue rakudo: my $a = "Well; hello; there;"; say $a.split(';').perl
p6eval rakudo 142d22: OUTPUT«("Well", " hello", " there", "")␤»
lue rakudo: my $a = "Well; hello; there;"; my @b = $a.split(';').perl; @b[1] = "hi;"; say @b.join(';') 19:59
p6eval rakudo 142d22: OUTPUT«("Well", " hello", " there", "");hi;␤»
masak lue: .perl makes it into one element. 20:00
lue rakudo: my $a = "Well; hello; there;"; my @b = $a.split(';'); @b[1] = "hi;"; say @b.join(';')
p6eval rakudo 142d22: OUTPUT«Well;hi;; there;␤»
jnthn tadzik: No, those are our-scoped by default.
tadzik: the multi
masak multi subs are our-scoped by default? 20:01
ah; roles are.
*phew*
tadzik jnthn: but it is
lue rakudo: my $a = "hi;"; $a.chop; say $a;
p6eval rakudo 142d22: OUTPUT«hi;␤»
lue
.oO(that explains my double-semicolon issue.)
20:02
tadzik masak: is 'before' just fancy '<'?
jnthn tadzik: oh, yes...
masak tadzik: yeah, it's the general one, not just numeric.
jnthn Your candidate also shows up in the list.
tadzik yeah 20:03
jnthn rakudo: our multi trait_mod:<is>($block, $arg, :$foo!) { say "ok" }; sub bar() is foo(42) { } 20:04
p6eval rakudo 142d22: OUTPUT«===SORRY!===␤Could not find sub &say␤»
jnthn ...
tadzik that's... cool
jnthn rakudo: our multi trait_mod:<is>($block, $arg, :$foo!) { "ok".say }; sub bar() is foo(42) { }
p6eval rakudo 142d22: OUTPUT«ok␤» 20:05
jnthn That way works.
tadzik hmm
but what with this say?
jnthn oh, maybe the trait subject comes first...
sorear needs to hurry up
jnthn It's just the usual outer-and-BEGIN bug.
tadzik mhm
masak it's in RT, but probably not in that form.
tadzik yay, it works 20:06
jnthn I think when pmichaud++ and I discussed the set of bugs at YAPC earlier int he year, we concluded that we needed lexpad changes to do it, but doing that implied a bunch of other changes.
Or at least, doing it properly did. 20:07
lue masak: is it known that Yapsi::Compiler can't accept any input with quotation marks in it? Both ' and escaped " fail. 20:10
masak lue: Yapsi doesn't have strings yet.
only Ints. 20:11
jnthn Well, that did for BCPL... :-) 20:12
masak it just hasn't been a priority.
lue Hm, it bugs me. [maybe I should go fix it. /me goes to try to fix it] 20:13
jnthn Can't believe the official Perl 6 doesn't have strings!
masak it's a disgrace!
tadzik jnthn: well volunteered!
sorear I have strings working in niecza-compiled STD btw
jnthn Dissapoinstring. 20:14
lue jnthn: We ought to stringle you for all those puns... 20:16
jnthn Using a rope? :-) 20:18
20:19 risou joined
lue your murder would be a titlecase for any lawyer :) 20:19
20:22 dFlamingR joined 20:24 dFlamingR left 20:26 FlamingRed joined 20:31 Steppenwolf left
masak nice post by draegtun++ that I hadn't seen before: transfixedbutnotdead.com/2010/10/31...ng-update/ 20:32
tadzik gist.github.com/665696 what am I doing wrong now? :)
sorear masak: Have you read your blog lately?
masak sorear: why, is there something wrong with it?
tadzik was so hoping this would work, so he could present a working example
sorear masak: strangelyconsistent.org/blog/feed.atom
see for yourself
masak looks
ouch. 20:33
masak fixes
sorear++: thanks.
20:33 phenny left 20:34 phenny joined
sorear was it related to the shell code in your last blog post? 20:35
masak yes.
seems to be a missing quote.
tadzik jnthn: might taking a look at the gist? You seem to be the one knowing stuff about traits 20:37
masak sorear: should work now. 20:38
lue is currently break— er, fixing yapsi. 20:41
tadzik jnthn: oh, I'm stupid, nevermind 20:42
masak someone picked up on my roman-numeral experimentation from a few days ago: perlenespanol.com/foro/numeros-roma...t5499.html 20:43
20:46 MayDaniel left 20:50 jdd joined 20:53 jdd left 20:54 y3llow_ joined, pothos_ joined
lue masak: I start to see why strings aren't available yet. 20:54
20:56 y3llow left, pothos left, y3llow_ is now known as y3llow 20:57 pothos_ left, pothos joined
sorear waits for somebody to commit something 21:02
masak lue: no, it's not particularly hard, I don't think. it just hasn't been prioritized so far.
flussence I'm probably misunderstanding something here, but why doesn't "rule { '/*' ~ '*/' .* }" parse C++-style comments? I couldn't get it to work in my CSS grammar thing. 21:04
masak that .* looks a bit too greedy to me.
tadzik yep. What about /* */ */? 21:05
masak that doesn't parse.
sorear .* in a rule takes everything up to the end of the file and doesn't give anything back 21:06
flussence .*? doesn't work for me either, though.
sorear also, you want to use token, not rule
flussence oh. I suddenly remember making that mistake last time...
sorear Try '/*' .*? '*/'
I'm wary of ~ / quantifier parsing interactions 21:07
masak me too.
flussence yep, that's the one I changed it to and it worked with that, hence the confusion.
masak I'm skeptical of ~ in general.
it's still slightly slushy, IMO.
sorear ~ carries a fair performance cost in niecza because it has to set $*GOAL 21:08
STD.pm6 relies extensively on being able to check what the current goal is
flussence I think I might avoid using it entirely for the time being, writing test cases is awkward when ~ throws up a fatal error... 21:10
21:11 kjeldahl joined
lue Funny enough, that's probably the same reason \" .* \" won't DWIM :) 21:11
21:12 whiteknight left
sorear starts hacking on JSYNC::XS for Niecza 21:12
21:13 risou_ joined
masak someone should write a "what everyone who would even consider using a quantifier needs to know about greedy quantifiers" blog post. 21:13
feels like this is a FAQ.
21:14 risou left
lue
.oO(I like working on grammars, because I don't deal with regexes often in anything else I do)
21:14
tadzik gist.github.com/665696 -- looks like the trait can't set/modify any variables 21:15
masak lue: the reason Str hasn't made it into Yapsi yet is that they're not on the the path of things I'm interested in exploring: control flow, exceptions, phasers, etc.
tadzik: looks that way, yes :/ 21:16
tadzik dang. If it won't work before advent calendar, there is no reason to write about traits imho 21:17
sorear wonders if I should be blogging or anything like that
masak sorear: yes, please. 21:18
lue Yes! I got it to parse :D , but: Unknown instruction: $0 = "hello" (I've already got an idea on the answer)
masak: It's fine, I'm working on it for you :)
masak lue: that means you've made it into the runtime. but the runtime also only knows about integers. 21:19
it doesn't know what to do when it sees an instruction assigning a string to a register.
lue Well, I found the resting place of the error, so I know the general area. 21:22
lue wonders if using Tardis on Yapsi is a good idea... 21:24
masak unfortunately, Yapsi can not parse itself yet. 21:28
for example, the Yapsi source code contains strings, and Yapsi doesn't handle strings. but that's just the beginning of it.
it'd be really cool to have it self-host. some ways to go to get there, though.
lue It looks like there would have to be a string version for everything (lib/Yapsi.pm:523 about). 21:30
21:30 jhuni left
masak depends how the runtime chooses to handle strings. 21:31
21:32 myname_ joined
masak rakudo: sub tall { $^guy ~~ /tall/ }; sub dark { $^guy ~~ /d }; sub handsome { $^guy ~~ /handsome/ }; my &ideal := &tall & &dark & &handsome; my $date = "tall, dark and handsome"; if ideal($date) { say "swoon!" } # from E06 21:34
p6eval rakudo 142d22: OUTPUT«===SORRY!===␤Unable to parse blockoid, couldn't find final '}' at line 22␤»
masak hm. worked locally. 21:35
rakudo: sub tall { $^guy ~~ /tall/ }; sub dark { $^guy ~~ /dark/ }; sub handsome { $^guy ~~ /handsome/ }; my &ideal := &tall & &dark & &handsome; my $date = "tall, dark and handsome"; if ideal($date) { say "swoon!" } # from E06
p6eval rakudo 142d22: OUTPUT«swoon!␤»
masak there we go.
that's... awesome.
lue I'm probably breaking Yapsi with every edit, but its fun :) 21:36
masak lue: are you running the tests?
lue $ bin/yapsi -e 'my $a = "hello"; say $a;' 21:37
"hello"
(initiate Kirby Dance)
_Now_ I'll run the tests. 21:38
21:38 mavrc left
masak lue++ 21:38
lue ...how do I run the tests? (make test fails because this server's copy of prove doesn't have -e) 21:39
tadzik with mbuild! :)
(unless it uses prove too :F) 21:40
(it does)
21:40 risou_ left
tadzik thinks about how trans could be sped up 21:41
masak lue: I suggest you update Test::Harness from CPAN.
tadzik masak: how bad does it sound to make trans run regex substitutions for every pair of array elements? 21:42
masak tadzik: it doesn't work, for reasons explained in today's post.
tadzik hmm, must've missed that
masak the nice thing about .trans is that it doesn't double-substitute.
regexes would.
21:43 rindolf joined
rindolf Hi all. 21:43
masak rindolf! \o/
tadzik ah, I see
hey rindolf
rindolf Hi masak , tadzik
tadzik: your nick reminds me of the Hebrew letter/word Tzadiq.
masak rakudo: say "Hello rindolf, the IRC user formerly known as another Perl 5 successor." 21:44
rindolf Tzadiq means "righteous" in Hebrew.
p6eval rakudo 142d22: OUTPUT«Hello rindolf, the IRC user formerly known as another Perl 5 successor.␤»
tadzik rindolf: nice. I think the original name, Tadeusz, is also Herbew. IIRC
ah, it's aramic
(aramaic)
rindolf tadzik: ah. 21:45
21:45 jhuni joined
masak jhuni: aloha! 21:45
aloha: jhuni!
rindolf masak, tadzik : what's up?
tadzik rindolf: oh cool. I was having fun with traits, but they're sadly to broken to be fun atm :( 21:46
masak rindolf: it's *not* Christmas yet. but we're pretty productive, and things are looking good.
rindolf masak: cool.
tadzik rindolf: gist.github.com/665696
lue how do I get cpan working on a machine I don't have root priveleges on? 21:47
tadzik use local::lib
masak lue: you can also run the test files directly: `perl6 t/compiler.t ; perl6 t/runtime.t` 21:48
lue: but then you probably need to set PERL6LIB explicitly.
PERL6LIB=`pwd`/lib
sorear curl -L cpanmin.us | perl - -i App::cpanminus
rindolf Hmmm... I may need to package the new Rakudo for Mandriva Cooker. 21:49
Or should I wait for the next one?
sorear it'll spit out a big chunk of warnings saying it's auto,matically doing soemthing with local::lib
tadzik Star is not old yet
lue I think I got it.
tadzik btw, any C++ers around?
sorear yes 21:50
unfortunately
rindolf tadzik: I know some C++.
tadzik: not a lot.
tadzik: I know C better.
tadzik I have a Uni project in C++ to write, so I prototyped it in Perl 6 and now I need to translate it :)
flussence I don't know C++, but I can pretend to if needed!
tadzik rindolf: same here. I try to avoid C++ if I can
sorear I know quite a lot of C++ 21:51
lue perl6 t/* seems to work just fine. 21:52
tadzik pastie.org/1277857 -- here. It is supposed to be an app encrypting its input, having different algorithms, easily addable. That's what I thought about, and I'm not sure how to express myself in C++
sorear use inheritence 21:53
tadzik first thing that discouraged me was that I can't easily use :: in class names in C++, they're operators
well, I do. So the role would turn into a class with virtual methods, yes?
sorear the :: in Perl6 class names actually came from C++
masak rakudo: sub foo($x) { say $x }; my &x = &foo.assuming("assumed!"); &foo.wrap({ say "wrapped!"; nextsame }); x
p6eval rakudo 142d22: OUTPUT«wrapped!␤assumed!␤»
masak wow.
sorear but you need to use package Foo { class Bar { } }
not class Foo::Bar 21:54
*usage* syntax is the same
tadzik I see
so I'd be doing namespace Foo { class Bar {} } in C++?
sorear yes
21:55 mavrc joined
tadzik hmm, I'll do some trials 21:55
oh, I made it compile. Yet I'm not sure it makes sense 21:57
lue masak: tests 29..46 of compiler.t fail, every other test in t/ is fine. Is that expected?
masak lue: no, 100% tests pass is expected. 21:58
masak runs the Yapsi tests
21:59 REPLeffect left 22:00 REPLeffect joined
tadzik pastie.org/1277872 -- am I doing this right? Sorry for polluting the channel with C++, but only Perl 6 people will understand what was I going to do :) 22:00
22:00 MayDaniel joined
masak lue: all tests pass here. 22:02
22:02 myname_ left
sorear tadzik: virtual ... const = 0; 22:04
if you don't put in the = 0 C++ will assume there's a definition somewhere, and you might get link errors
lue
.oO(I'm going to spend a while finding the error, aren't I?)
22:05 Chillance joined
tadzik sorear: tanks. The rest is fine? 22:05
sorear (Bjarne Stroustrop thinks NULL is spelled 0 and publically hates the macro.)
yes
tadzik s/tanks/thanks/
well, the guy who I give projects to said to use 0L instead of NULL, because it's a macro and blah blah 22:06
masak lue: I don't know. but if you do find it, make all the tests pass, and add at least one new test for your new functionality for good measure, you might want to consider sending me the patch. :)
22:06 REPLeffect left
lue I only changed two things, so it shouldn't be that hard to find the issue. 22:09
22:09 M_o_C joined, M_o_C left, M_o_C joined
masak dev.perl.org/perl6/doc/design/exe/E06.html contains some of the most fearless Perl 6 macro usage I've seen so far. I know the text is old, but it's both refreshing and scary at the same time to see them used like that. something within me screams "that will NEVER work!" 22:12
(I don't mean that macros won't ever get implemented. I mean that E06 assumes that it's easier and less of a hassle that it'll turn out to be)
tadzik return (\@sheep, \@goats); -- that looks Perl5ish 22:13
masak well, it's legal Perl 6.
but yes, Perl 6 was a lot closer to Perl 5 at that time. perhaps not too surprising.
masonkramer rakudo: sub bag ( *@items --> Bag ) is export { }
p6eval rakudo 142d22: OUTPUT«===SORRY!===␤Unable to parse postcircumfix:sym<( )>, couldn't find final ')' at line 22␤»
masak masonkramer: I'd guess --> isn't implemented yet. 22:14
rakudo: sub foo( --> Int ) {}
tadzik that int should've been Int, no?
p6eval rakudo 142d22: ( no output )
masak masonkramer: ah. Bag isn't implemented yet. 22:15
tadzik rakudo: Int foo() { "bar" }
p6eval rakudo 142d22: OUTPUT«===SORRY!===␤Confused at line 22, near "Int foo() "␤»
tadzik rakudo: Int sub foo() { "bar" }
p6eval rakudo 142d22: OUTPUT«===SORRY!===␤Confused at line 22, near "Int sub fo"␤»
masonkramer Oh, right.
tadzik no C-style available?
masonkramer Yeah, I'm trying to implement Bag right now
jnthn tadzik: not without a scope deccy
masonkramer but that line isn't working for me either
tadzik jnthn: hm?
jnthn rakudo: my Int sub foo() { "bar" }
p6eval rakudo 142d22: ( no output )
tadzik cool
masak tadzik: what jnthn said. you have to "forewarn" Perl 6 that something declaratory is coming. 22:16
tadzik cooler if sub could be ommited :>
jnthn It's forbidden (TTIAR) without it though.
tadzik ah, I see
masak jnthn: ah yes. that's why.
jnthn "BEWARE! Upcoming declaration!"
masak or rather, the forewarning is necessary due to TTIAR. 22:17
lue TTIAR?
tadzik Two Terms In A Row
dalek ecza: 45f6aeb | sorear++ | lib/JSON/JSDOM.cs:
Add a DOM for the JSON/JSYNC/YAML interface
22:19
lue
.oO(dang it, even commenting out everything I added, those failing tests still fail)
22:19 REPLeffect joined
tadzik yay, paths work 22:20
masak lue: wnat about running the tests on a clean checkout?
lue would I lose all 2 lines I added? (I can add them in again, not that difficult) 22:21
masak not if you do a new checkout somewhere else. 22:22
tadzik or git stash your changes
masak either that, or 'git stash' your what tadzik said :)
22:23 icwiener left
masonkramer how can I declare my implementation of postfix<{}> for objects that do Associative? 22:23
jnthn method postcircumfix:<{ }>($key) { ... } 22:24
lue too late :) [if it were more than 2 little things (kindly indicated to me by git diff beforehand) I would've stashed]
masonkramer thanks
lue still won't compile 29..46 of compiler.t with clean checkout of lib/Yapsi.pm hm :/ 22:27
masak lue: and you don't have any old .pir files littering about?
lue (I just realized I probably need to update Rakudo)
masak no, I don't think so. 22:28
unless it predates Rakudo Star.
22:28 masonkramer_ joined, masonkramer left
lue I think it does. In any case, good idea to update! 22:28
22:28 masonkramer_ is now known as masonkramer
masak calls it an early night 22:31
see you tomorrow, #perl6.
22:31 masak left
masonkramer goodnight 22:31
22:40 patspam joined 22:50 mberends joined, starcoder left 22:51 REPLeffect left 22:53 M_o_C left
dalek odel: 28e9882 | jnthn++ | dotnet/compiler/PAST2DNSTCompiler.pm:
[dotnet] Fix a little bug in PAST2DNST when compiling some package variable binds.
22:55
odel: 3682233 | jnthn++ | dotnet/compiler/ (2 files):
[dotnet] Twiddle JnthnNQP a bit to make packages live in the package by default, but also allow my to be used to say it's a lexical package.
odel: 2348cc1 | jnthn++ | common/NQP/NQPSetting.pm:
[common] Mark the various packages in the setting as lexical ones.
22:55 starcoder joined 23:03 dalek left, dalek joined, ChanServ sets mode: +v dalek 23:05 pmurias left 23:06 REPLeffect joined
masonkramer can I set a default value for hashes? 23:17
tadzik what do you mean?
masonkramer the value to which a hash value autovivs 23:18
tadzik hmm, you'll have to setup your subset of Hash I think
23:22 rindolf left 23:24 meppl left 23:26 mavrc left, MayDaniel left 23:27 dalek left 23:28 dalek joined, ChanServ sets mode: +v dalek 23:35 _kaare left, Axius joined 23:36 dalek left 23:39 dalek joined, ChanServ sets mode: +v dalek 23:40 FlamingRed left 23:44 REPLeffect left 23:48 REPLeffect joined
dalek odel: de688fe | jnthn++ | dotnet/compiler/PAST2DNSTCompiler.pm:
[dotnet] Fix code-gen bug that caused problems with && and || and probably other things that cared about what a failed if/unless evaluated to.
23:59
odel: f7efbd5 | jnthn++ | t/nqp/25-class.t:
[t] We now pass 25-class.t.