»ö« | perl6.org/ | nopaste: paste.lisp.org/new/perl6 | evalbot usage: 'perl6: say 3;' or rakudo: / pugs: / std: , or /msg p6eval perl6: ... | irclog: irc.pugscode.org/ | UTF-8 is our friend!
Set by wolfe.freenode.net on 30 October 2009.
00:00 nihiliad left 00:13 payload joined
diakopter std: say((3 and 4)) # TimToady 00:23
p6eval std 28969: OUTPUT«ok 00:01 106m␤»
diakopter std: say(3 and 4)
p6eval std 28969: OUTPUT«===SORRY!===␤Unable to parse argument list; couldn't find final ')' at /tmp/aniI3Vi6c4 line 1:␤------> say(3 ⏏and 4)␤ expecting an infix operator with precedence tighter than list infix␤FAILED 00:01 104m␤»
diakopter std: say (3 and 4) 00:30
p6eval std 28969: OUTPUT«ok 00:01 106m␤»
jnthn pmichaud: btw, I won't be doing much more today. prob will do some more bits tomorrow...and count today + tomorro's bits as a Rakudo day. 00:31
Thus will do an ng status blog post tomorrow.
Let me know if there's anyting particular you want me to look at tomorrow (whenver you think of it...I'll backlog) 00:33
diakopter jnthn: g'nite 00:36
jnthn diakopter: not gone quite yet, just not got the brain cycles available to write code any more today either. ;-) 00:37
s1n hehe
00:37 orafu left, OuLouFu joined, OuLouFu is now known as orafu
jnthn cooool! 00:38
s1n :)
diakopter flame on flame
s1n that middle part removes, but it doesn't look true to the logo without it (and the narrow line is too narrow) 00:39
00:45 lichtkind left 00:48 alester left 00:49 brunov joined
diakopter the first terminal in STD.pm is token endid. I suppose I'll start there. :) 00:50
oh. a lookahead. har. 00:51
diakopter makes the commitment to track STD.pm's grammar changes from r28967... and proceed with a hand-translation to jsmeta... while also wedging/refactoring jsmeta's parsers into sprixel's runloop, since it's much better than jsmeta's 00:54
(the alternative was an automatic translation from the AST produced by viv from STD.pm... but the AST is just too large :) 00:55
(and there are too many spots that would have needed hand-translating anyway..)
here goes nothing
for those curious, jsmeta is roughly analogous to pge, and sprixel-rx is roughly analogous to nqp-rx... 00:57
01:03 iGhost left 01:10 NorwayGeek joined
diakopter std: /''/ # null pattern? 01:24
p6eval std 28969: OUTPUT«ok 00:01 103m␤»
jnthn diakopter: well, maybe ;-) 01:25
diakopter rakudo: say ('a' ~~ /^^''$$/ and True); say ('' ~~ /^^''$$/ and True) 01:28
p6eval rakudo d154eb: OUTPUT«␤1␤»
jnthn heh 01:29
Well, I don't really think we want to get in to exploring all of the possible patterns you could write that match an empty string. :-)
I think the point was that // was not an OK regex. :-) 01:30
std: "foo" ~~ //
p6eval std 28969: OUTPUT«===SORRY!===␤Null regex not allowed at /tmp/ud8pAa2f5y line 1:␤------> "foo" ~~ //⏏<EOL>␤FAILED 00:02 104m␤»
diakopter sets a new personal best for extent of S05 hand-waved/read in 1 sitting... (about 1/4) :D
jnthn The NEW endurance sport! 01:31
nqp: my $x := pir::box__PS('5 birds'); pir::say(pir::set__NP($x)) 01:45
p6eval nqp: OUTPUT«0␤»
pmichaud nqp: my $x := pir::box__Ps('5 birds'); pir::say(pir::set__NP($x)) 01:47
p6eval nqp: OUTPUT«0␤»
diakopter what's set__NP
pmichaud it's the set $Nx, $Px opcode 01:48
jnthn diakopter: set opcode, specifying arg types.
pmichaud: btw, I like that syntax. :-)
pmichaud jnthn: thanks. It's just the signature syntax from PAST, replacing the space with a double-underscore.
although I wonder if I should come up with identifier-versions of the *, :, +, and ~ keys
jnthn pmichaud: Oh, I figured it was easy to add based on what PAST already gave. But X being not so hard doesn't mean X isn't something that you'd think of doing. :-) 01:49
pmichaud well, while writing NQP there were several times where I thought "I just need one opcode, why do I have to write all of this other stuff around it?" 01:50
Juerd diakopter: Oh, just read the first version. Much easier ;)
01:50 IllvilJa joined
pmichaud so I decided that had to be fixed 01:50
jnthn Yeah
I've used it multiple times alreayd.
Juerd diakopter: Though keeping track of the changes became way too much for me 01:51
pmichaud it also means there's at least a chance that someone could write a pir:: emulation library for non-parrot platforms :-)
which will be far simpler than parsing the internals of Q:PIR { ... } :-)
jnthn Well, we'll deal with such things when we or someone else gets to doing a port to another platform.
Well, backend for, not port to. 01:52
I hope.
That is, I'd hope we'll be able to keep multiple backends as build options in one code base, rather than having forks. But that'll take effort.
pmichaud bbiab
jnthn bbitm ;-)
o/ 01:53
01:54 nihiliad joined
diakopter bye 01:54
Juerd: oh :)
luckily for me, Microsoft's MGrammar grammar-language (which jsmeta implements) is remarkably similar in overall expressiveness to Perl 6 regexes 01:55
and lexical scoping of names 01:58
01:59 nihiliad1 joined 02:00 nihiliad left
pugs_svn r28970 | kyle++ | [Test::Util] a little refactor 02:04
02:25 TiMBuS joined 02:47 xabbu42 left
carlin Argh, trying to parse RSS is turning out to be a real pain 02:52
pmichaud ...implemented assignops, using infix_postfix_meta_operator instead of pre-generating them all at startup. :-) 02:58
03:13 Psyche^ joined 03:24 Patterner left, Psyche^ is now known as Patterner 03:32 jaldhar joined 03:55 fax joined 04:26 tak11 joined 04:40 brunov left 04:47 nihiliad1 left 04:51 mepplock joined
carlin \o/ I can successfully parse use.perl RSS feeds 04:54
04:54 envi^home joined
carlin ... and wordpress feeds :D 04:55
and moritz's feed worked too. Fantastic. 04:56
04:58 meppl left, mepplock is now known as meppl 05:12 fax left 05:35 tak_ joined 05:42 tak11 left 06:13 eternaleye left 06:19 envi^home left 06:21 justatheory left 06:51 Chillance left 07:03 nbrown joined 07:07 eternaleye joined 07:29 PZt joined 07:48 quuxx left, quuxx joined 08:14 iblechbot joined 08:26 bpetering joined 08:29 silug joined 08:34 tak11 joined, wolverian joined, tak_ left 08:35 carlin_ joined, carlin_ left 08:36 mberends left 08:46 mberends joined 08:55 silug left 09:03 tak11 left 09:05 Su-Shee joined
Su-Shee good morning. 09:05
carlin o/
09:08 quuxx left
carlin Argh 09:09
09:09 quuxx joined
carlin quuxx: stop segfaulting please :-) 09:09
09:09 rfordinal joined
sjohnson hi 09:13
09:15 am0c joined 09:45 meppl left 10:01 kidd joined 10:02 carlin sets mode: +v quuxx 10:08 iblechbot left 10:28 am0c left 10:29 TopoMorto joined 10:36 TopoMorto left
jnthn o/ 10:43
carlin \o
10:53 TiMBuS left 11:05 pmurias joined
pmurias diakopter: backlogging, i'm not sure if i understand your plan to hand translate STD into jsmeta? 11:07
11:37 ejs left 11:55 ejs joined 12:01 Schwern left 12:02 mjk joined 12:13 rfordinal left, mjk left 12:19 redicaps joined 12:20 envi^home joined 12:22 redicaps left 12:56 pnate2 joined 12:57 pnate left 13:00 fax joined 13:05 desertm4x joined 13:06 Whiteknight joined
quuxx masak++ blogged "Here we go again; another full month of November": use.perl.org/~masak/journal/39825?from=rss 13:14
13:15 masak joined
masak greetings, #perl6-lings. 13:16
carlin o/ 13:20
masak quiet Sunday in here today.
colomon It's been ten whole hours since someone pushed to the ng branch. :) 13:21
masak oh, is that the branch I think it is?
I still am note done backlogging...
colomon yes it is. 13:22
amazing, amazing progress so far. 13:23
masak I've been gone a day, and I find myself thinking "I've been gone too long..." :)
jnthn colomon: Oh, it's just the calm before the storm. :-) 13:24
colomon jnthn: I hope so!
jnthn colomon: And also on my part, just needing a day doing something other than writing code. :-) 13:25
Well, part of a day doing something other than... :-)
colomon Watching you guys at work it yesterday was a lot more entertaining than the watching the football game... :)
13:27 Patterner left
colomon Hey, sweet, I wasn't aware we had working perl 6 library repositories in rakudo now. (Following masak++'s links all around.) 13:28
13:28 Psyche^ joined
masak colomon: we have what? :P 13:29
13:29 zaslon joined, Psyche^ is now known as Patterner
carlin Here's my progress from today 13:29
zaslon: ohhai
zaslon Sorry, I don't understand that command
carlin zaslon: link masak
zaslon masak's blog is at use.perl.org/~masak/journal/
colomon .perl6lib automatically in the library path, mostly.
carlin zaslon: remove masak
zaslon I am no longer following masak's blog
jnthn zaslon: link jnthn
zaslon jnthn's blog is at use.perl.org/~JonathanWorthington/journal/
carlin zaslon: link masak
zaslon Sorry, I don't know who masak is
carlin zaslon: add masak use.perl.org/~masak/journal/rss
This takes a while 13:30
masak carlin: cool. what's the bot written in?
zaslon I am now following masak's blog
colomon masak: you linked to the commit in the cheese speleology post you linked to today. :)
carlin zaslon: link masak
zaslon masak's blog is at use.perl.org/~masak/journal/
masak colomon: yes. what does it say we have?
carlin masak: perl6 of course :-)
masak carlin: really? carlin++
jnthn is impressed too :-)
masak that is just amazingly cool.
jnthn It's kinda useful *and* written in Perl 6!
colomon masak: "preload $HOME/.perl6lib and languages/perl6/lib in @*INC"
masak colomon: ah. yes. 13:31
colomon obviously proto doesn't work yet, but I can put things there by hand. (haven't actually tested yet...)
carlin tomorrow's job is getting zaslon to poll the feeds and alert when there's an update and then quuxx can be retired 13:32
masak \o/ 13:33
where does the name 'zaslon' come from?
carlin masak: zaslon radar
masak ah. cool. 13:34
colomon (one wikipedia check later) Flash Dance! :) 13:35
carlin: I trust this means yesterdays RSS grammar writing went well? 13:36
carlin heh
masak another XML grammar? :P
carlin The RSS part is called RSS::Hacks
I couldn't get any sense out of the xml grammar on proto :/ 13:37
masak sorry to hear that. 13:38
it's also not very active, I fear.
haven't seen krunen around here since NPW.
colomon I was poking around in proto and some of the projects yesterday as well. I think getting the installed modules branch working well will be a big step forward... 13:39
masak nod.
slavik so, when will rakudo get a smart make install? 13:40
colomon slavik: for rakudo itself?
slavik yes
masak slavik: it could be argued that it's not Rakudo's responsibility... 13:41
just as the python executable doesn't have a smart install, etc.
13:41 jan_ left
colomon my guess is pretty soon, but almost certainly not this month. 13:41
masak oh, maybe I misunderstood.
slavik masak: then I'd like packages. :)
colomon masak: (or maybe I'm misunderstanding...) 13:42
masak what would a smart 'make install' entail? 13:43
jnthn What's wrong with Rakudo's current make install, btw? 13:44
(I don't doubt it has issues, just curious what they are.)
colomon doesn't install it in your path.
jnthn Well, sure, by default. 13:45
I think that's more a configuraiton issue though?
Or more to the point, it'll install it where Parrot was configured to put binaries.
masak my 'make install' installs a 'perl6' in my path. but I don't do --gen-parrot 13:46
colomon rakudo: my $a = 2 < 3 ?? 42 !! 69; say $a; 13:47
p6eval rakudo d154eb: OUTPUT«42␤»
jnthn masak: Aye.
masak I knew it would pay off one of these days! :P
jnthn Well, --gen-parrot is great if you just want something self-enclosed to play with. 13:48
If you're trying to get something installed to system paths, then it'll need a couple more flags, of preferably a ready-installed Parrot to configure against.
colomon jnthn: sure, and it's certainly not bothering me now, but by Rakudo * it probably ought to default to installing in the path. 13:51
If you follow the default instructions for building and installing and it doesn't, people's first impression of Rakudo will be bad.
13:53 envi^home left
jnthn Sure - we'll have to consider what instuctions to give and what the defaults should be for that. 13:53
carlin github.com/carlins/rssbot # pushed today's work
13:54 zaslon left
colomon carlin++ 13:54
carlin it is quite rough in places, especially around anything to do with parsing the RSS 13:55
13:56 zaslon joined
jnthn Heh. It's probably still better than the lolsql code. :-) 13:56
13:56 desertm4x left 13:57 zaslon left
Juerd Was there a lolsql parser in perl6 yet? 13:57
carlin Yip, jnthn++ wrote one 13:58
Juerd url? :)
carlin github.com/jnthn/lolsql
Juerd Thanks
carlin A proto IRC-bt might be nice; "proto: link lolsql" 13:59
masak jnthn++
jnthn: no tests? :)
Juerd jnthn++ 14:00
14:00 zaslon joined
masak also, it could be argued that "UR DOIN IT RONG" is a LTA error message... but you know that. :) 14:01
I see I have a few things to add to proto's projects.list...
14:02 zaslon left
jnthn jnthn: :-P 14:02
masak: Heh, I wrote it in just over an hour while watching other people's talks. :-)
colomon Isn't "UR DOIN IT RONG" in the lolsql spec?
jnthn colomon: no, but it felt appropriate :-) 14:03
masak jnthn: it's way cool.
jnthn masak: Well, if you want to add good parse fail errors... It's fine if they're in lolspeak. ;-)
masak jnthn: 'Be gud kitteh...' jnthn++
Juerd Srsly lex and yacc are SO pwned now. ++ 14:04
masak yup. that's the gist of Perl 6 grammars.
colomon I really need to sit down and learn to use grammars. 14:06
.oO( Must get around to figuring out how to write propper grammar one day... )
14:12 brunov joined 14:15 rfordinal joined 14:21 nihiliad joined 14:27 zaslon joined, zaslon left 14:28 scallop joined 14:30 NorwayGeek left, NorwayGeek joined
pmichaud good morning, #perl6 14:34
jnthn afternoon, pmichaud 14:35
14:36 rfordinal left
pmichaud oh, I forgot to push my commits! 14:37
pmichaud pushes 4 commits.
...we can haz lazy lists. 14:38
jnthn omg!
pmichaud++ for 1...;
pmichaud we'll also get lazy ranges and lazy IO shortly. 14:39
also, arrays are now called Array. Not Perl6Array. Array>
*Array. 14:40
jnthn Wow. Unexpected.
But very nice. :-)
BTW, I note you do:
$P0 = get_hll_global ['Bool'], 'True'
setprop parcel, 'flatten', $P0
pmichaud yes 14:42
jnthn If you are just going to use a "did we get a null back" to test this, then you can just do setprop parcel, 'flatten', parcel ;-)
14:42 icwiener joined
pmichaud oh, true 14:42
jnthn Since it doesn't matter what you stick in there.
pmichaud I use that trick a few other places in the regex engine
jnthn Yeah, I've used it in Rakudo a bit before.
Thing is, if we start sticking bools in places, then we not only have to do a null check, but should perhaps be checking for truth too. 14:43
pmichaud question: We currently store type constraint information in the 'type' property. Should that be more properly named 'of' ?
jnthn Good question.
Well, for parametric arrays and hashes, the .of is really just coming from it being like
pmichaud (bools): well, I was using bools under the assumption that someday we might need to have the property present but still be able to indicate 'false' 14:44
jnthn role Positional[::T] { method of() { T } ... }
For scalars we kinda stash it away.
pmichaud so, should we stash it somewhere named 'of' ? ;-) 14:45
instead of 'type' ?
jnthn We can.
pmichaud I think I would prefer that. 'type' is sometimes too overloaded a term
jnthn But my point was more, the T in the role decl is more an implementation detail.
pmichaud right
jnthn The .of is what's exposed.
pmichaud right
I think I follow the implementation, I'm just asking about where we stash it :) 14:46
jnthn And $scalar.VAR.of is probably the related thingy here.
Well, my point is that it kinda doesn't matter. ;-)
I can go with of. It's 2 less chars to type. :-)
pmichaud it does in the code when I go to ask for 'type'
jnthn Well, yes, true. :-)
pmichaud somehow the word "of" tells me more directly what I'm asking for (in this case, a type constraint, or the 'of' property) 14:47
jnthn I menat doesn't matter in that it's guts, not user-visible.
pmichaud right
jnthn Anyway, let's go with "of"
pmichaud I'm thinking strictly in terms of code maintenance for the compiler writers
jnthn type is quite overloaded.
And after all, it's exactly what gets stored for my $x of Int;
pmichaud whenever there are two items that refer to the same concept, I like them to be similarly-named
jnthn (which my Int $x is just sugar for) 14:48
masak lazy lists! wicked! pmichaud++
jnthn OK. Let's go with that. :-)
BTW, put in the checking code now if you like, but I suggest not hacking in something to set the of property unless you really need it. 14:49
(It needs to be done by a trait_mod:<of> dispatch)
(And we can probably parse and run those soon.) 14:50
pmichaud I'm only hacking in the things needed to pass tests, not features-for-features sake
jnthn nod
pmichaud and like the assignop code, when I can do it "the right way" I'm tending to go ahead and do that
oh, nopaste coming
gist.github.com/223545 # assignment metaop code generation 14:51
jnthn niiice! 14:52
If I do it in an eval, will it keep track of what ops we already generated and not re-do them? 14:53
pmichaud yes.
well, I'll rephrase.
jnthn Brilliant.
pmichaud it will still generate the call to !gen_assign_metaop. But !gen_assign_metaop will notice that the operator already exists and short-circuit. 14:54
jnthn ah, ok
That'll do for now.
It's a huge improvemnet on generating them all.
pmichaud thus if someone has a custom infix:<+=>, that gets used in preference and not overwritten
the call to !gen_assign_metaop is cheap, anyway.
colomon how does that relate to overloading? 14:55
jnthn nod
pmichaud colomon: I haven't worked out the overloading details quite yet, but that should be simple also.
and we know where to put that code (in gen_assign_metaop)
colomon I mean, if I define a custom infix:<+=> for my matrix class, I don't want it mucking up += for Int.
jnthn Are folks allowed to define custom meta-op variants to make the set of meta-ops irregular? 14:56
pmichaud colomon: right -- we'll want to switch it to be a multi. There's even a "XXX" marker in the gen_assign_metaop code that says "this should be a Perl6MultiSub"
jnthn: yes, I believe so.
jnthn ah, ok
I think I read of some restriction at one point, but may be mis-remembering.
pmichaud anyway, yesterday was nicely productive.
jnthn Yes, indeed. 14:57
pmichaud I'm looking at the level 1 things we're starting to knock off the roadmap :)
laziness... check.
real constants ... check
oh, and the array code also fixes the auto-vivification problem
jnthn STD-like grammar ... well on the way :-)
pmichaud if you say @a[3] and @a[3] doesn't exist, it's not auto-bound into the array until you assign to it 14:58
jnthn Great.
That's another nasty gone.
pmichaud and I think that even @a[3][4] will work now, to auto-vivify @a[3] into an array
pmichaud tests
oh, not yet 14:59
need to handle undefs still
which brings up a question... is Failure a class, or is it a Role punned into a class ?
jnthn This is especially nice because generating hundreds (thousands?) of unused meta-op variants that we never used and making calls to !TOPERL6MULTISUB were two of our biggest startup costs, and we are eliminating both. 15:00
pmichaud more generally, what exactly do I get with undef() ?
jnthn I've heard it talked about muchly as a Role.
15:00 pointme joined
jnthn That can be mixed in to things. 15:00
15:00 clkao joined
jnthn undef is probably giving you the pun. 15:00
pmichaud I'm fine with that... what does undef() return then?
it's just a generic Failure object? 15:01
carlin pointme: lolsql
pointme jnthn's lolsql is at github.com/jnthn/lolsql/
carlin pointme: http-daemon
pointme mberends's http-daemon is at gitorious.org/http-daemon/
15:01 envi^home joined
jnthn pontme: complete-perl-6-implementation 15:01
pointme: complete-perl-6-implementation
pointme Sorry, I don't know anything about that project
jnthn aww!
15:02 NorwayGeek left
masak someone should start such a project. :P 15:02
pmichaud not me! waaaaay too difficult!
jnthn Yeah!
carlin pointme: all
pointme Sorry, I don't know what just happened
jnthn Me either!
pointme++ # error WIN
pmichaud: What's bothering you about the generic Failure object? 15:03
pmichaud just putting together a plan for it
jnthn OK.
pmichaud how do I create a role in PIR ?
and how much of roles are in place in ng ?
(or, more precisely, "what are we missing?"
jnthn pmichaud: Approx nothing of roles has gone back in yet.
pmichaud: Apart from one dynpmc. 15:04
pmichaud okay
jnthn pmichaud: Creating a role from PIR is simple though, in that there's a helper for it.
15:04 pointme left
jnthn !create_simple_role('Failure') or so. 15:04
carlin tomorrow's job is making the bot(s) respond to pings so they don't timeout
'night all
jnthn carlin++ # night!
pmichaud carlin++ # excellent work
carlin++ # please blog it!
jnthn yes! 15:05
carlin oh good idea
Tomorrow :-)
jnthn pmichaud: Again, some of it is in guts.pir. 15:06
pmichaud: They probably want to be extracted.
pmichaud jnthn: that's what I was thinking :-) 15:07
jnthn hopes guts.pir can just die
Because we already ripped out the things in it.
pmichaud I've been reluctant to pull in guts.pir all-at-once
jnthn Don't.
We'll take bits from it as we need it.
pmichaud I'm not in a rush for it
(well, not too much of a rush)
jnthn And if we end up passing the spec tests with some stuff still left in there, well, we found dead code. ;-)
pmichaud today I'll work on getting the other primitive types in place 15:08
jnthn OK, sounds like a plan.
15:08 NorwayGeek joined
pmichaud I think it's very likely we'll have Test.pm by tonight 15:08
jnthn What do we need beyond those to get us running the sanity tests?
pmichaud not sure... looking
jnthn OK. I can hack a bit on ng today too.
pmichaud 'try' looks like it might be the most challenging item left. 15:10
everything else looks.... trivial
(well, relatively trivial)
masak likes to try to say 'ng'
15:11 NorwayGeek left
pmichaud I'm also reorganizing the sanity tests a bit, and eliminating things that aren't really needed for Test.pm 15:12
15:12 NorwayGeek joined 15:13 lidden joined
jnthn masak: Unfortunately, there's not a chemical element Ng, which you coulda used instead. :-) 15:13
pmichaud I did think of that possibility...
masak jnthn: ŋ
pmichaud I just knew that "usenqprx" was going to get tedious for me to type for a while
masak 'ng' is very cute as a name. 15:14
jnthn There is a Pm in the periodic table though. ;-)
pmichaud anyway, I'm hoping that within a week or so 'ng' will be better known as 'master'
jnthn: yes, one of my favorite elements.
colomon a week!?!!!!! 15:15
jnthn luminesent in the dark, according to Wikipedia. ;-)
pmichaud named after Prometheus, the bringer of fire and knowledge to mankind 15:16
I like the parallels. :)
jnthn Fitting. :-)
pmichaud heh
masak 哈哈
pmichaud very interesting parallels when one compares the myth to Perl 6 15:17
masak "It was foretold in the table of the Elements..."
pmichaud so, I'm responsible for bringing fire and knowledges from the gods (TimToady++) to everyone else, and for my impertinence I get to spend every day chained to a rock and be tormented
(since Perl 6 exists to torment the implementors) 15:18
masak there certainly are parallels.