»ö« 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.
diakopter oh! 00:00
they *did* get pushed
they just don't appear in the main listing on github's history line
flussence hmm
diakopter because they're on my master merge commit with 2 parents 00:01
00:01 xinming_ left
diakopter curiouser and ... 00:01
flussence if you want to pick certain files, make a separate clean branch and merge only those into it, I guess
diakopter no, I'm saying I don't need to
my problem was a false alarm
flussence oh well, someone might find that useful anyway :)
diakopter github.com/jnthn/6model/commit/dd7...1d5e298b6a and its 3 parents 00:02
they weren't listed here either (of course)..
diakopter starts to learn a bit more
jnthn diakopter: Lemme check if they're in my pull 00:03
diakopter: What am I looking for?
diakopter Ops\P6capture.cs
flussence the one thing I've learned with git is that it's easier to start with a clean copy and mess it up than to tidy up a messy tree
...and clean copies are cheap, too 00:04
diakopter I've done that a couple of times already.
jnthn 4,563 P6capture.cs
In Ops
diakopter time to upgrade TortoiseGit though
jnthn: yay. also, it's here github.com/jnthn/6model/blob/maste...capture.cs
jnthn diakopter: However, seems not to have made it into the proejct file. 00:05
diakopter oh yes. :)
I forgot to commit that.
a neglection as opposed to a git misunderstanding 00:06
jnthn np
Any particular thing you'd like me to hack on tomorrow?
diakopter me?
jnthn Yeah
diakopter looks 00:07
jnthn (e.g. if there's any upcoming blockers you can see yourself hitting...)
diakopter attribute viviself
flattened args
jnthn k 00:08
diakopter I've needed those when "directly" porting Cursor.pir so far.. (I'm avoiding refactoring as much as possible so far)
jnthn *nod*
OK, I'll see what I can do.
diakopter default arg expressions
jnthn The first ain't to bad to work around, but the latter is kinda difficult
Default args for the non-value case?
diakopter remember the default arg expressions work, but only if they don't reference lexicals 00:09
jnthn Oh, yes.
I can look at that.
frettled jnthn++
jnthn OK, I try and do those (or at least some of them) tomorrow.
heh. diakopter++ # taking on the task that scares me :)
frettled :) 00:10
that, too!
diakopter predicts jnthn will sleep soon
jnthn Yeah
And finally...I can sleep without setting an alarm clock. \o/
diakopter: Probably awake for another 30 mins or so 00:11
diakopter: Though plan to resume hacking tomorrow ;)
At least we sorta have workinger packages now :) 00:12
frettled I'm still in awe about the progress in specs and implementation (Parrot+Rakudo).
dalek odel: 078ff60 | diakopter++ | dotnet/runtime/Rakudo.Net.csproj:
[dotnet] add P6capture.cs to the .csproj
00:16
sorear 76.49% 52m33s 00:17
00:17 aindilis joined
diakopter jnthn: I set my vstudio to complain about mixed line-endings (Tools..Options..Environment..Documents) so I can reset everything to be LF-only like it seems to be in the git repo (regardless of what they are on your disk) :) 00:18
hopefully that will decrease your oddities
jnthn diakopter: OK, fingers crossed...
diakopter: I'm still utterly confused by it. :)
diakopter: It's still better than using TFS for version control though. ;)
*sigh*$dayjob*sigh*
sorear What is the value of try { die "foo" }?
jnthn sorear: Sets $! 00:19
sorear jnthn: that's irrelevant to my question 00:20
jnthn oh
*that* meaning of value
:)
...yeah, this is why I stopped writing code a little bit ago. :)
sorear: It may be the exception object. 00:21
masak it may be Nil.
00:21 justatheory joined
jnthn masak: Hm 00:22
Maybe
masak: I kinda like that more
masak: Either way it should be something that is Boolean false and undefiend so I guess not the exception object.
masak makes more sense, I think.
jnthn And it shoudln't be a Failure
masak no.
jnthn (Because the try threw away the exception) 00:23
So Nil probably makes most sense.
oh, is Nil undefined these days?
rakudo: say Nil.defined
p6eval rakudo : OUTPUT«Bool::False␤»
00:23 vx64z joined
jnthn Good (if it's up to date :)). 00:23
dalek ecza: 4b53c13 | sorear++ | / (3 files):
Fix ~/capture interaction
00:24
ecza: a01a003 | sorear++ | / (2 files):
Disallow assignment to non-existing dynvars
00:26 vxz left, vx64z is now known as vxz
masak blog post! strangelyconsistent.org/blog/novemb...d-bad-news 00:26
sorear needs to get more consistant about quickly implementing stuf flike that
masak heads home 00:28
'night, #perl6
00:28 masak left 00:38 cdarroch left 00:39 whiteknight joined 00:45 sftp left 00:46 justatheory left 00:48 justatheory joined 00:55 colomon left, justatheory left 01:03 colomon joined 01:06 risou joined
dalek odel: 3c9aed7 | diakopter++ | / (2 files):
[dotnet] add a failing test for jnthn++ to investigate/fix
01:35
diakopter phenny: ask jnthn plz look at 6model 3c9aed7 01:36
phenny diakopter: I'll pass that on when jnthn is around.
01:48 justatheory joined 01:51 am0c left
dalek tpfwiki: Herbert Breunung | Perl 6 Variable Tablet 01:52
tpfwiki: www.perlfoundation.org/perl6/index....ble_tablet
tpfwiki: Herbert Breunung | Perl 6 Tablets
tpfwiki: www.perlfoundation.org/perl6/index...._6_tablets
lichtkind TimToady: thank you 01:53
dalek lek-poller: 9d471b9 | sorear++ | modules/local/ (2 files):
Use CREDITS data for tpfwikilog
02:06
tpfwiki: (Herbert Breunung)++ | www.perlfoundation.org/perl6/index....ble_tablet 02:18
02:20 am0c^ left 02:34 drbean_ joined, dd-sphere joined 02:35 am0c^ joined 02:37 drbean left 02:38 ch3ck3r left 02:39 drbean_ left 02:46 drbean joined 03:07 dd-sphere left
diakopter sorear: did your bugfix make it into mono 2.8.1 03:31
oh. no. 03:34
03:34 KyleHa joined 03:56 cosimo joined 03:59 KyleHa left 04:13 whiteknight left 04:26 Bzek_ joined 04:29 Guest2242 left, Bzek left 04:32 Limbic_Region left
lichtkind good night 04:34
04:37 meppel joined 04:40 meppl left, drbean left 04:45 alester joined
MindosCheng Good night. 04:47
04:48 masak joined
masak good morning, #perl6. 04:48
I've spent the idle hours writing an LTM algorithm for .trans: gist.github.com/707628
it passes all the tests, but there are a few corner cases (which we should have tests for, but don't) that it doesn't handle. 04:49
here are the two I can think of: 04:50
"AAA".trans(["A", "A"] => ["1", "2"]) # what should the result be? why? 04:51
it also doesn't resolve on token length at all, because all tests pass without it.
(so yes, it's a longest-token matcher that doesn't take longest token into account) :) 04:52
anyway, feel free to review.
MindosCheng masak++
masak I'll go sleep now, and when I wake up I plan to add the missing spectests and patch up Rakudo with the new code.
04:53 masak left 04:59 kanishka joined 05:00 lichtkind left, obsd123 joined 05:03 vxz left
lue ohai o/ 05:06
MindosCheng Hey~ 05:17
05:18 ggoebel left 05:19 ggoebel joined
ggoebel party got moved to Runde 8 05:19
oops disregard 05:20
05:20 ggoebel left 05:28 drbean joined 05:34 justatheory left 05:55 meppel left 05:59 am0c^ left 06:16 obsd123 left 06:25 alester left
lue phenny: "Дивитися YouTube українською"? 06:25
phenny lue: "Watch YouTube Ukrainian" (uk to en, translate.google.com)
lue
.oO(that makes sense)
06:39 obsd123 joined, Chillance left 06:47 kanishka left 06:54 mssm joined 07:01 kanishka joined 07:03 kanishka left 07:06 mssm left 07:19 mssm joined 07:28 am0c joined 08:17 Woodi left, Woodi joined
dalek ecza: 6598951 | sorear++ | / (3 files):
Start of the contexts overhaul

Previously, to extract a String from a value like "foo", first the
  .Str method is called, then the result is unboxed to get a String.
This results in a lot of unneccessary method calls. Now, there is an intermediate layer of C#-level virtual calls, which directly do the needed operations for simple types, or else delegate it to the corresponding method.
08:55
09:01 _xiaomo_ joined
tadzik github.com/github/gitignore/blob/m....gitignore 09:09
tadzik mumbles something about .pir
09:14 xinming joined 09:17 plobsing left
dalek ecza: ecbb97d | sorear++ | / (4 files):
Start writing builtins to use the new contexts
09:28
09:31 sniz joined
dalek ecza: 56de4a2 | sorear++ | src/ (3 files):
Add simplifier rules to use new builtins
09:36
09:39 nymacro joined 09:40 agentzh joined
dalek ecza: 83891ca | sorear++ | src/ (2 files):
Use new contexts in conditional operators
09:45
sorear 18us down to 2.7us on ctxmark.pl 09:46
it helps that ctxmark.pl uses the two builtins I implemented (this isn't a coincidence)
0.23 us for Perl 5 :( 09:47
simon does anyone here know if negative look-arounds extend the set of regular languages, or if they're just syntax sugar that prevents a blow-up in regex size? 09:48
MindosCheng corear++
sorear++
sorear there's one more easy optimization I can do - adding a constant pool 09:49
no need to reconstruct 1000000.0 every time through the loop
it would be even better if the loop could be done without allocating, but I'm not sure if that's sanely possible now 09:50
since Num is an object now
Perl 5 can run the loop without allocating
0.97 us with SGen 09:54
sorear out 09:55
10:02 _xiaomo_ left 10:08 araujo left 10:13 mavrc joined 10:22 oha joined 10:24 risou left 10:30 MayDaniel joined 10:44 MayDaniel left 10:50 wamba joined 10:53 Woodi left 10:55 am0c left 11:04 obsd123 left 11:10 sftp joined 11:12 Woodi joined 11:17 am0c joined 11:24 am0c left 11:30 teslos joined 11:32 agentzh left 11:42 am0c joined 12:02 am0c left 12:10 drbean left 12:17 am0c joined 12:18 drbean joined 12:20 Trashlord joined 12:29 orafu left, orafu joined
tadzik hmm, idea. Could we organize something like 'adventsketch', so we can discuss the workflow? I don't know how it was going last year, but I'd personally start planning something 12:36
12:36 sftp left
moritz_ tadzik: last year there was a file in which there was one line per day 12:37
tadzik ok. moritz_, could we hit the first day with you MAIN article?
moritz_ tadzik: people entered their name and topic for a particular date 12:38
tadzik: we could, but a more general "current state of Perl 6" or "how to install a compiler" or so might be better suited for a start
people usually prepared their entry a bit in advance
and if they didn't, others reminded them :-)
tadzik "what changed since last year?"
(that needs a has) 12:39
moritz_ that said, an adventsketch wouldn't be a bad idea either
tadzik I can write something like this probably
that would cover the distinction between Rakudo and Star
moritz_ just don't assume too much of last year's knowledge
+1
tadzik sure thing
12:40 sftp joined
tadzik what is the state of advent2009 tests? I thought they're here, but I had to notice the brokeness of Grammar chapter over time myself anyway. Are they reliable? 12:40
moritz_: can I schedule you for 2nd? 12:42
cosimo what's the idiomatic way to opendir/readdir in p6?
tadzik dir()?
cosimo i tried searching for this info, but I couldn't find it 12:43
tadzik > dir('.') 12:44
bin .mc .NERDTreeBookmarks r-PERL.diff fortunes
hmm, maybe an article about file mangling? 12:45
cosimo something in the perl6 book? 12:47
tadzik no idea. But I alredy voluneered for an article about this on Perl 6 Advent Calendar. Or you can learn your way around and write it yourself :) 12:48
cosimo the file test '-f $file' is gone. in your code, I saw '$file.IO ~~ :f'
tadzik: is that correct? 12:49
tadzik yes 12:50
dalek : 707daf9 | (Tadeusz Sośnierz)++ | misc/perl6advent-2010/ (2 files):
[advent calendar] Added an idea about file mangling, added schedule and assigned some initial volunteers to it
tadzik you may want to look into File::Find
sorear: why isn't that tadzik in dalek's message?
12:52 teslos left
cosimo tadzik: that's where I learned about $x.IO ~~ :y 12:53
:)
tadzik :)
cosimo would be nice to know where did you learn that
here maybe?
12:54 araujo joined, araujo left, araujo joined
tadzik probably 12:54
dalek : 2f0d9cf | (Tadeusz Sośnierz)++ | misc/perl6advent-2010/schedule:
[advent calendar] volunteered for day 3: File operations
tadzik I'm wondering where did I learn that, but no idea :) 12:55
cosimo: perlgeek.de/en/article/5-to-6#post_11 there is a little
at least the file tests
13:05 meppl joined
cosimo please, tell me rakudo has an eval method. please. :-| 13:13
i mean function, builtin
yes!
flussence rakudo: eval('yes')
p6eval rakudo : ( no output )
flussence whoops.
rakudo: eval('say yes')
p6eval rakudo : ( no output )
flussence :/
tadzik :>
flussence oh, might be disabled in p6eval 13:14
tadzik rakudo: eval "say 'yes'"
p6eval rakudo : OUTPUT«yes␤»
tadzik hmm
flussence ...or I'm just being stupid :)
tadzik rakudo: eval "dir('.').perl.say"
p6eval rakudo : ( no output )
tadzik rakudo: eval "dir('.').perl.say"; say $!
p6eval rakudo : OUTPUT«Operation not permitted in safe mode␤»
tadzik good
cosimo: whatcha writing? 13:15
13:22 jonalv joined
jonalv o/ 13:22
13:22 Patterner left
jonalv do you guys have a bot that keeps track of people? I am looking for masak... 13:23
cosimo tadzik: a port of facter to perl6 13:25
tadzik: puppetlabs facter
sorry again, stupid question 13:26
how do i "map { "$_.foo" } @x" ? 13:27
13:27 jonalv left
cosimo ah, just needs a comma 13:28
flussence rakudo: my @x = 1..9; say @x».ord
p6eval rakudo : OUTPUT«495051525354555657␤»
jnthn o/ #perl6 13:29
phenny jnthn: 01:36Z <diakopter> ask jnthn plz look at 6model 3c9aed7
cosimo rakudo: my @x = map { "$_/facter" } @*INC; say @x.perl; 13:30
p6eval rakudo : OUTPUT«===SORRY!===␤Confused at line 22, near "my @x = ma"␤»
cosimo rakudo: my @x = map { "$_/facter" }, @*INC; say @x.perl;
p6eval rakudo : OUTPUT«["lib/facter", "/home/p6eval/.perl6/lib/facter", "/home/p6eval/p1/lib/parrot/2.10.0-devel/languages/perl6/lib/facter", "./facter"]␤»
cosimo cool
jnthn phenny: tell diakopter I've looked but I think the right thing is happening. Everything inherits from Mu, so 7 passes as expected. 8 fails because if you look at the multi candidate in Mu, it's multi method Str(Mu:U $self:) { ... }. The :U means "something undefined" but $xyz is defined. 13:34
phenny jnthn: I'll pass that on when diakopter is around.
13:34 Psyche^ joined, Psyche^ is now known as Patterner
jnthn phenny: tell diakopter So test 8 was incorrect here. I corrected it - s/$xyz/XYZ/ - and it passes. 13:36
phenny jnthn: I'll pass that on when diakopter is around.
dalek odel: eb4daa2 | jonathan++ | / (3 files):
[t] Correct a test case.
jnthn phenny: tell diakopter Note that we do need a Str with Mu:D that does something sensible. But it probably needs .WHERE to work first, if it's going to do the same thing the Rakudo one does (which seems sensible). 13:38
phenny jnthn: I'll pass that on when diakopter is around.
jnthn phenny++
cosimo is it better to self.call($something) or $.call($something) ? 13:40
is it even the same thing?
jnthn Similar 13:41
$.call($something) also puts the result in item context.
cosimo jnthn: and that means... 13:42
jnthn Same as self.call($soemthing).item 13:43
cosimo writes down 13:46
colomon jnthn: might you have time help me sort out what's going on with nqp-rx 3-5 hours from now?
jnthn colomon: Yes, somewhere in that time window I should be about. 13:47
colomon \o/
football watching and nqp-rx hacking, sounds like a fine afternoon.
13:47 M_o_C joined
jnthn colomon: Plan to take a walk now, and go out for noms this evening, but that's probably a good 5 hours away :) 13:47
13:48 mubuti joined 13:51 mubuti left
cosimo what is the equivalent of ruby/python's "yield" in rakudo? 13:55
jnthn cosimo: See gather/take 14:05
I think that's what you want, anyway
jnthn -> walk
14:10 juanmabc joined
cosimo jnthn: thanks 14:17
juanmabc hi, so to summariza, what's the state? just to talk about: what kan i do? 14:23
come on, guys, you do know it! =D 14:25
cosimo you mean perl6? 14:26
just take a look at real working code, modules.perl6.org/ 14:27
dalek d: 6ca59e0 | util++ | std_hilite/spec_highlight:
[std_hilite] Fix typo
14:28
juanmabc thanks, so perl 5 modules require a port, is this porting hard?, mainly i like Perl CPAN quantity&quality, 6 is nothing without it ;) 14:34
MindosCheng I guess it's possible to write a translator for normal modules ...... 14:39
cosimo juanmabc: well, if you look at modules.perl6.org, there's several modules that are straight ports of p5 code 14:51
tadzik jnthn: what's Item Context? 14:52
cosimo: which ones? :)
cosimo tadzik: LWP::Simple? :)
Digest::MD5, MIME::Base64 14:53
tadzik cosimo: isn't P5 LWP::Simple using LWP::UserAgent behind the scenes?
cosimo tadzik: well, I meant high-level API is the same, not really the underlying code
that wouldn't be fun 14:54
14:54 _twitch joined
tadzik right 14:54
cosimo: I'm afraid it isn't
well, that it is... nevermind 14:55
cosimo: cpansearch.perl.org/src/GAAS/libwww.../Simple.pm
use LWP::UserAgent ();
15:00 nadim left 15:03 whiteknight joined 15:05 nadim joined 15:06 sftp left, sftp joined
tadzik oh ffs, I just saw example C++ exams on my Uni. Dozen of classes, inheriting various things from each other, and the task is "say what the output would be" 15:07
MindosCheng tadzik: 42 15:09
jnthn Compile error ;) 15:10
tadzik I wish
so the task is to learn the MRO. Excellent
MindosCheng Hello World!
tadzik wanna see teh code? 15:11
MindosCheng Please!
tadzik feather.perl6.nl/~tjs/kol1_ex1.pdf
jnthn had quite enough brain-damaging code at $dayjob this week...
The Polish is cute though 15:13
:)
tadzik it's the only funny part :)
15:14 lichtkind joined
tadzik and this guy's coding style... he tends to name methods like get_pole() -- half-Polish-half-English on his slides 15:14
MindosCheng It's the typical question about the calling order and which method too be called in C++.
Get golf? 15:16
tadzik golf?
I'd rather get a phone with an ssh client
MindosCheng You may bring a phone with gcc on it... 15:17
15:18 risou joined
clkao MindosCheng! 15:22
MindosCheng clkao!
clkao: I thought you just hang there... 15:23
clkao: So you did read the channel. lol.
dalek tpfwiki: (Herbert Breunung)++ | www.perlfoundation.org/perl6/index....ble_tablet 15:24
clkao from time to time 15:26
MindosCheng I see. 15:27
lichtkind does anyone know whyt .com method does exactly? 15:35
does anyone know what the .com method does exactly?
moritz_ in which class?
lichtkind i think its should be in str
grr i mean comb
it should be close to .match
moritz_ except that it implies :g 15:36
15:36 M_o_C left
moritz_ and defaults to rx{.} 15:36
lichtkind but comb stand for combine? 15:37
moritz_ no
to comb = kämmen
search for something
lichtkind ah thatswhy i dont know this word :) 15:38
moritz_ oh, and .comb returns strings by default, not Match objects
lichtkind look at my hair :)
thank you very much i think i overlooked this one, its completely missing in the index
is the .comb in array gone or just in list context? 15:39
moritz_ doesn't understand the question 15:40
tadzik I also thought comb is from the hair thing :)
lichtkind moritz_: as far as i know .comb was an alias to the X crossproduct operator
moritz_ never heard that before 15:41
lichtkind i took it from the synopses 15:42
but its not there anymore
that kind of stuff i dont make up :)
moritz_ no, you don't, you just confuse other stuff :-) 15:43
15:43 cognominal joined 15:45 nymacro left
lichtkind the returning match object can also be found under $\ ? 15:45
tadzik $/ rather 15:46
lichtkind yes
but the same .match returns
moritz_: but .comb can also return an array of strings? 15:48
tadzik doesn't it? 15:49
jnthn rakudo: "12 beer 42 bed 69".comb(/\d+/).perl.say
p6eval rakudo : OUTPUT«("12", "42", "69")␤»
jnthn rakudo: "12 beer 42 bed 69".match(/\d+/).perl.say 15:50
p6eval rakudo : OUTPUT«Match.new(␤ from => 0,␤ orig => "12 beer 42 bed 69",␤ to => 2,␤)␤»
jnthn lichtkind: Note how comb gives back a list of strings and match a match object
rakudo: "12 beer 42 bed 69".match(/\d+/, :g).perl.say
p6eval rakudo : OUTPUT«(Match.new(␤ from => 0,␤ orig => "12 beer 42 bed 69",␤ to => 2,␤), Match.new(␤ from => 8,␤ orig => "12 beer 42 bed 69",␤ to => 10,␤), Match.new(␤ from => 15,␤ orig => "12 beer 42 bed 69",␤ to => 17,␤))␤»
jnthn Or a list of match objects
lichtkind thanks jnthn but X has no more a method alias? 15:52
moritz_ lichtkind: are you sure you're not confusing it with the :x regex modifier?
which is about repetition
lichtkind rakudo: "12 beer 42 bed 69".comb(/\d+/) 15:53
p6eval rakudo : ( no output )
lichtkind moritz_: i am shure
rakudo: "12 beer 42 bed 69".comb(/\d+/).say
p6eval rakudo : OUTPUT«124269␤»
15:54 icwiener joined
jnthn lichtkind: X is more making permutations 15:54
*for
lichtkind i know
i just was looking for the new method alias
jnthn I don't know there ever was one. It doesn't make that much sense to me to have one... 15:55
It's more sub-y than method-y.
moritz_ more to the point, X is a symmetric operation between N lists. Which list should you call it on if it where a method? 15:56
jnthn Yes, much better put. 15:57
15:57 masak joined
masak oh hai, #perl6! 15:57
jnthn lolitsmasak
moritz_ his masakness has joined the channel!
masak you deference surprises and delights me. 15:58
15:58 risou left
tadzik masak: someone was looking for you, but gone now 15:58
15:58 risou joined
masak ah, such is life. a constant quest for the person not on the channel. 15:58
masak backlogs 15:59
oh, it was jonalv++. :) yes, he wanted to sushi earlier. 16:00
tadzik how philosophical
:)
dalek tpfwiki: (Herbert Breunung)++ | www.perlfoundation.org/perl6/index....dex_tablet 16:02
masak with the latest addition to dalek, I now know that lichtkind is active a lot, though not with what :) 16:03
lichtkind masak: yes we talked yesterday with soroar about that a sort of diff function was mentioned a good to have since socialtext dont allowes commit messages 16:04
jnthn Ouch. Re-basing nqp-rx is a tad painful thanks to the bootstrap files being updated multiple times in master... 16:05
masak lichtkind: yes, I saw. tricky.
moritz_ jnthn: it's probably eaiser to write a perl script that looks for those commits that do not update bootstrap files, and cherry-pick them one after the other 16:06
16:06 am0c left
jnthn moritz_: It's a slight deeper issue in that my branch and master have both pushed things into the bootstrap but they aren't mergeable. I hope I get away with just merging all the stuff aside from them and then re-generating them. 16:08
Let's see... :)
dalek tpfwiki: (Herbert Breunung)++ | www.perlfoundation.org/perl6/index....dex_tablet
jnthn git++ # can do all of this locally
masak I've performed the requisite improvements on the .trans LTM: gist.github.com/707628 16:09
any objections to incorporating this into Rakudo?
jnthn moritz_: Hmm...
moritz_: I get the same kinda errors I got with Rakudo's updated Configure.pl on Win32 16:10
The one that I patched rong :)
tadzik what's LTM? I hear it often
masak tadzik: Longest-Token Matching.
tadzik mhm
masak tadzik: it's the idea that when two rules compete, the one that matches the longest thing wins.
tadzik: consider, for example <= and <=> 16:11
moritz_ jnthn: hm
tadzik I see
so Rakudo doesn't have that?
moritz_ jnthn: I'm very curious, since the block that caused the error previously is now enclosed in an eval { ... } block
masak tadzik: when you write <=>, you don't want the Perl 6 parser to match on <= just because that rule happened to be defined earlier, or later, or something.
jnthn moritz_: I think it was fixed in Rakudo
masak tadzik: nqp-rx has it (IIUC) a bit more than PGE did.
moritz_ tadzik: rakudo has a very limited form
jnthn moritz_: But not in nqp-rx?
moritz_ ah 16:12
possible
masak tadzik: still not a full-fledged one, like STD.
jnthn moritz_: I'll sort the rest of the merge stuff out and then I'll have a look.
masak tadzik: it's LTM that distinguishes | from || in regexes, by the way.
jnthn learns to love git rebase a little more every time he sues it
er, uses
:)
moritz_ jnthn: I guess there's more logic in Configure.pl and gen_parrot.pl that can be moved to the module
... which should be renamed to Parrot::Something, not Rakudo::Something 16:13
masak tadzik: so the Perl 6 parser has it, Perl 6 grammars (of which the Perl 6 parser is but a special case) have it, and .trans has it.
moritz_ because it's really about parrot revisions
jnthn ugh...git clone of Parrot is *slow* on this mobile connection...
masak tadzik: I just implemented the .trans one: gist.github.com/707628
jnthn wonders if his wired boradband can be persuaded to work again...
masak jnthn: yes, rebase is wonderful. it has a certain "forbidden pleasure" to it. "oooh! I'm rewriting local history!" :P 16:14
lichtkind is there still a slice method ?
masak lichtkind: yes, see S29. 16:15
lichtkind thanks
masak lichtkind: are the synopses so difficult to grep that it's easier for you to ask here?
just curious.
jnthn "What did you do at the weekend?" "Enjoyed some wonderful forbidden pleasure."
masak jnthn: most people wouldn't understand :)
best to be a little bit discreet about it.
(that's why it's done locally, duh) 16:16
jnthn masak: But I'm allowed to push the results out to the world... :)
lichtkind masak: i greped for slice( and found nothing
16:16 am0c^ joined
masak lichtkind: I did 'ack -w slice' and found it right away. 16:16
jnthn: yes, but no-one can tell from those results that there were forbidden pleasures involved. 16:17
lichtkind: however, look at github.com/perl6/specs/commit/b962...45b578cce1 16:18
jnthn masak: Ah, I see. Well, as I read today, "By developing a sense of concern for others' well-being, then no matter what others' attitudes are, I can keep inner peace in bed."
masak lichtkind: so I suspect C<slice> in S29 is a fossil.
jnthn ...best Twitter follow ever. :) 16:19
masak jnthn: ah, the wise @DalaiLamaInBed... :)
jnthn: best Twitter follow ever in bed? :P
jnthn :P 16:20
lichtkind masak: thanks lol i find much clearer even with that funny conotation 16:21
masak lichtkind: after Mu, nothing surprises me anymore.
16:22 envi_laptop joined
lichtkind masak: i read about, it reads in german almost like cow 16:22
masak lichtkind: I guess that's close-ish to the original Japanese. 16:24
jnthn I'm not sure how I feel about cows being undefined and on top of everything... 16:25
lichtkind TimToady: is slice in S29 a fossil?
jnthn: Muuuuuuuuuuuu
16:25 am0c joined
cosimo %*ENV is still read only, right? 16:26
lichtkind i guess so 16:27
16:27 envi_laptop left
cosimo Doing '%*ENV<LANG> = "C"' I get "cannot modify readonly value" 16:28
rakudo: %*ENV<LANG> = "C"; say "yodawg. I herd you like ENV, so I put an ENV in ur ENV";
masak rakudo: class A { my $b = class { method foo { say "OH HAI" } }; method bar { $b.new.foo } }; A.new.bar
p6eval rakudo : OUTPUT«Cannot modify readonly value␤ in '&infix:<=>' at line 1␤ in main program body at line 22:/tmp/jfv0ynvTd6␤»
rakudo : OUTPUT«OH HAI␤»
masak cosimo: I think that's a known and reported rakudobug. 16:29
lichtkind but take it seriously we have an method alias to Z why not X
masak lichtkind: what makes you think there's not a method alias to X?
tadzik hmm, wonder if that could be fixed
lichtkind moritz_ and jnthn attmepted to make me think so :)
dalek tpfwiki: (Herbert Breunung)++ | www.perlfoundation.org/perl6/index....kup_tablet 16:30
masak oh, ok.
cosimo masak: does fixing that involve parrot-fu?
masak cosimo: dunno. check the RT ticket for clues. also ask pmichaud_, I think.
he has been in that area of Rakudo before, fixing things.
tadzik masak: why is ENV readonly? Is that due to lack of Parrot support? 16:31
masak I don't know why %*ENV is readonly. yes, possibly it has something to do with how it's wired up.
I can definitely see how it'd be easier to wire it up readonly than rw. 16:32
tadzik looking at the code (glue/run.pir:58-61) I wonder how is it marked readonly and why, and how to make it rw, if it's makeable for me 16:33
dalek d: 4b3cf08 | util++ | / (5 files):
Fix typos
16:34
lichtkind masak: im willing to learn i now used ack for the first time in my life and found out its got soloured output 16:37
masak lichtkind: :)
jnthn oh f**k 16:39
16:40 MindosCheng left
jnthn Yeah, this rebase is going to be a real headache. 16:40
Parrot has been up to their usual deprecation tricks.
tadzik :>
jnthn So I can't build the bootstrap files with knowhow rolled into them
dalek tpfwiki: (Herbert Breunung)++ | www.perlfoundation.org/perl6/index....dex_tablet
jnthn And I can't build the nom branch with the latest bootstrap files 16:41
(Because they're missing having knowhow pushed into the bootstrap)
:/
masak I'd call that an intrinsically complex situation. 16:42
16:42 juanmabc left
masak i.e. there's not much git *can* do to make that easier. 16:43
jnthn Oh, git has done all it could have
This isn't gits fault in the slightest.
masak shame, otherwise it would have been an excellent opportunity to exclaim "stupid git!" :P 16:45
dalek kudo: 9fe5972 | masak++ | src/core/Cool-str.pm:
[src/core/Cool-str.pm] new .trans algoritm

This one abstracts away the actual matching-and-replacing into a
  helper class implementing a simple longest-token matching algorithm.
tadzik masak++ indeed
dalek ast: 27fc171 | masak++ | S05-transliteration/trans.t:
[trans.t] unskip regex tests for Rakudo
ast: a632892 | masak++ | S05-transliteration/trans.t:
[trans.t] indent some tests
ast: 2c952c4 | masak++ | S05-transliteration/trans.t:
[S05-transliteration/trans.t] four new tests

These tests make sure we don't regress on LTM in .trans in Rakudo.
tpfwiki: (Herbert Breunung)++ | www.perlfoundation.org/perl6/index....ble_tablet 16:51
16:51 mila_ joined 16:55 mila__ left
masak tadzik: .comb *is* from the hair thing. but I guess the metaphor made more sense when lice were more common... 16:56
16:57 am0c^ left
lichtkind aaaah cross is alias to X 16:57
crosswith and zipwith notally sync 16:59
totally
masak dang, I liked the word "notally"...
jnthn "I notally covered her screen with post-its!" 17:01
jnthn keeps trying to rescue the forked bootstrap by hand...
We...could do with making sure this doesn't happen again. :/ 17:02
> knowhow Foo { method bar() { say("rescued") } }; Foo.bar; 17:06
rescued
masak \o/ 17:09
jnthn It works with Parrot and the PBC
But the fakeexecutable explodes. :/
src\io\api.c:306: failed assertion 'pmc'
:/ 17:10
er
! [rejected] nom -> nom (non-fast forward)
wtf.
17:10 _twitch left
jnthn All I did was rebase and a few patches on top of it. 17:10
Util jnthn: what branch are you working on? 17:11
jnthn nqp-rx/nom
17:11 lichtkind left
jnthn wonders if this is what --force is for 17:11
flussence might be a bad idea, on the chance git is right in complaining... 17:12
jnthn heh 17:13
gitk's history looks nice
dalek tpfwiki: (Herbert Breunung)++ | www.perlfoundation.org/perl6/index....kup_tablet
jnthn e.g. it has the commits from master and then the rest of mine re-based on top of it.
17:13 sniz left
jnthn yeah, it looks...exactly how I'd expect. Hmm 17:14
17:14 risou left
Util jnthn: can I help? Are you trying a real merge, or just `git pull --rebase` ? 17:16
jnthn how confusing. If I git pull it tries to go back to how things look at the latest on github
Util: I did git pull, git rebase master, and a couple of commits to fix up things.
Util: In gitk all looks fine.
Util: So I'm a tad lost on what it's complaining about. 17:17
Util jnthn: at what point did Git first complain?
jnthn Util: Not up until I was done and ready to push to github
I did "git push origin nom"
(nom is the branch name)
At which point it gave the non-fastforward error.
masak jnthn: I don't think you can pull if you've rebased local history. 17:19
jnthn masak: Yeah, I only did it out of curiosity 17:20
Un-done that now
Util jnthn: You said: "But the fakeexecutable explodes." Do you have a fakecutable in the repo?
jnthn I didn't want to anyway.
masak oh, ok.
jnthn Util: That's nothing to do with this, that's some other problem.
I don't care much about that for now.
stackoverflow.com/questions/559917/...rd-why-use seems to describe my situation
But I *am* only pushing after the rebase, like it suggests... 17:21
jnthn is a tad reluctant to use --force 17:22
But even more reluctant to re-do all of this.
Util "and only rebase your work" -- did your `git rebase` rebase any commits by others? 17:23
jnthn Util: Hm. I thought I was the only person who'd committed to the nom branch.
Util: Yeah, just checked. Only me.
Util jnthn: but you rebased to master 17:24
jnthn Util: Right, I just wanted to re-play all my commits on top of the latest stuff in master.
That's what rebase does, iiuc? 17:25
Gives me the latest master, and then re-applies all my patches in the branch?
Anyway, I guess I maybe shoulda used merge, not rebase. 17:26
Util rebase does not give you "latest" master; that part comes from the `pull`
jnthn Util: Yes, I already had pulled before I started. 17:27
Util: I actually did a fresh clone of nqp-rx to work on this just in case... :)
So I certainly had the latest master files
17:28 icwiener_ joined
jnthn Anyway, iiuc, git push --force is only going to make life annoying for anyone who already has commits in the nom branch that they didn't push. I think that amounts of zero people. :) 17:28
Util I would double check that HEAD on the master and nom branches are really at the point you think they are at. 17:29
jnthn Well, other than me.
Util: gitk history display for both of them looks exactly as I'd expect it to look 17:30
Nothing missing. Everything in the order I'd expect.
Util In any case, I think you are right about --force being OK, and even if it fails, you can reset --hard to before your rebase, and merge from there
masak jnthn: no, 'git push --force' is going to make life annoying for anyone who pulled the history you're now overwriting.
jnthn masak: So what should I do?
masak jnthn: it's your repo, so your policy.
sometimes one has to --force.
jnthn masak: Actually this is the nqp-rx repo...
masak oh well, it's your branch :) 17:31
jnthn OK, if the fallout is restricted to my branch, then I guess that's OK.
masak I think it's fair to assume that most people who are following along the nom branch can be reached on this channel.
17:31 icwiener left
masak if there were a maining list, I think it would be prudent to announce a --force push there. 17:32
etc.
Util You can be liberal in the branch, and just tiptoe when you merge nom into master.
dalek p-rx/nom: c0a8057 | jonathan++ | build/Makefile.in:
Stub in stuff to build dynops and dynpmcs in the Makefile.in.
p-rx/nom: d09ff5d | jonathan++ | src/ (2 files):
Stub in STable structure and PMC.

Fix missing tabs.
17:32 dalek left
jnthn Wow... 17:32
tadzik :)
still alive on #parrot :)
jnthn ...wow. 17:33
17:35 plobsing joined
jnthn OK, nom branch history on github has all the commits from master, plus the rescued bootstrap. 17:35
17:35 dalek joined, ChanServ sets mode: +v dalek
jnthn I think the lesson is to use merge next time. :) 17:35
Util jnthn++
masak yes, merge is for when you're constrained by already publicly pushed history.
that's exactly what it's for. 17:36
jnthn masak: Aye, I thought that only wanting to replay patches of my own meant that I was safe.
Util also, rebase --interactive supports 's' for "squash"ing commits together
17:37 mssm left
masak 'rebase -i' is probably at the core of the 'forbidden pleasures' thing. 17:37
jnthn masak: But of course, I'd shared them with the world.
masak jnthn: yes, that's the downside with pushing the branch publicly.
Util jnthn: One-line summary of nom/knowhow? Just curious. 17:38
masak it's a eat-cake-have-it thing.
jnthn Util: nom = new object model, knowhow = the primitive that it builds stuff (like classes) out of
Util: The bleeding edge dev of it happens in github.com/jnthn/6model/ 17:39
Util Intended for NQP-only, or prototyping for Rakudo?
jnthn Util: Intended to replace all the places P6object is used today in NQP and Rakudo.
Util thx 17:40
17:40 muixirt joined
jnthn Util++ masak++ # git help 17:40
colomon: nqp-rx/nom now builds for me on latest Parrot at least and has all the other nqp-rx patches from master in. I hope that magics away your difficulties. 17:42
colomon \o/
jnthn If not, we can try and fathom why. 17:43
colomon nom, then hacking and football
jnthn nom is ambiguous in this context ;) 17:44
masak maybe we should adopt the more traditional term "food" :)
food &
17:44 masak left 17:57 CAAECZH joined 18:01 baest left 18:02 baest joined
colomon back 18:03
18:15 justatheory joined 18:21 teslos joined
TimToady halfback or fullback? 18:28
Util $ ack -H reclaration STD.pm6 | cat # Ambiguous typo 18:30
STD.pm6:5689: # fake up an alias to outer symbol to catch reclaration
??? declaration ? redeclaration ? 18:31
jnthn That should be reclarified. :)
colomon jnthn: still cannot build 18:32
jnthn Same error?
18:33 envi left
jnthn wonders if he accidentally spaces in the makefile instead of tbs... 18:34
*tabs
(My make program doesn't care...)
colomon I just pushed the fix for that.
but that's not the problem
Parrot VM: Can't stat src/stage1/nqp.pbc, code 2.
main: Packfile loading failed
make: *** [src/stage2/HLL.pbc] Error 1
jnthn Does that file exist? 18:36
Is there some previous error that results in it not being made maybe?
Are you doing parallel make by any chance?
colomon I'm just typing make 18:37
the file does not exist
jnthn OK, I guess that's non-parallel
Hm
odd.
18:37 MayDaniel joined, Chillance joined
colomon trying make clean and make again, capturing the output this time. 18:37
jnthn colomon: Are there any PBCs in that directory? 18:38
colomon ls src/stage1/
HLL.pbcP6Regex.pbcgen
jnthn (I should be 3 of them by the time we start on stage 2)
ok, just one missing. :S
colomon whoops, spaces disappeared somehow there.
gist.github.com/708039 18:40
I don't see anything obvious in there...
jnthn $(STAGE1)/$(NQP_PBC)
dalek ecs: 60864d9 | TimToady++ | S29-functions.pod:
fossil slice contextualizer -> lol

  masak++ and lichtkind++ found a fossil use of the "slice"
contextualizer, which was renamed to "lol" some time ago.
jnthn Is the rule that should build it.
colomon: Something looks very odd there. 18:41
colomon: It's starting on stage 2 without finishing all the stage 1 things. 18:42
18:42 oha left
TimToady I don't suppose you're in a situation that could have clock skew 18:42
18:42 oha joined
TimToady like if git was setting last modified times or something 18:43
jnthn TimToady: I suspect some missing makefile dependency is perhaps more likely...
Hmm
That'd be odd though. It works fine in the master branch and I didn't think I'd changed *that* much in the makefile... 18:44
18:45 wtw joined
jnthn All the rules for stage2 have a dependency on $(STAGE1_PBCS) 18:45
colomon: In particular, line 272 of Makefile.in is where it appears that it's trying to do the thing that fails. 18:47
colomon: Or at least, the stuff within there
colomon: But it should have a dependency on the (not-yet-existing) file...
colomon huh 18:51
18:51 lichtkind joined
jnthn Hmm. I'm really not seeing what's missing :S 18:51
colomon: Time for me to get some dinner - maybe I'll have a sudden realization during it :)
colomon one sec 18:52
perl -MExtUtils::Command -e mkpath src/stage1/gen
and then the next step is for the stage 2 stuff to start. does that help?
jnthn colomon: That's where it's going wrong. 18:53
colomon: It should build various things inside that directory.
colomon there are five pir files in that directory
jnthn OK 18:54
But it doesn't do all the stage 1 stuff
colomon right, not disagreeing, just hoping this helps trigger ideas
jnthn gist.github.com/708046 18:55
colomon hold on, I might have it.
jnthn That's what it looks like for me.
colomon I think it might be another tab issue
one that doesn't trigger an error for some reason
jnthn Oh. 18:56
:/
colomon go eat, I think I'm on the right track now.
:)
jnthn I really shoulda checked your patch to see if the ones you'd fixed were the ones I knew about...they aren't. 18:57
sorear good * #perl6
jnthn colomon: Mine for for building NQP_HOW 18:58
Line 258 and and line 299
jnthn -> nom
18:59 nothingmuch joined 19:00 rgrau` joined
sorear tadzik: still here? 19:01
tadzik sorear: yep
19:01 MayDaniel left
sorear you need to get an entry added to Parrot's CREDITS file 19:01
dalek tpfwiki: (Herbert Breunung)++ | www.perlfoundation.org/perl6/index....dex_tablet
sorear that's how dalek knows your nickname
19:04 meppl left
colomon jnthn: I appear to have a build. But there's no make test? 19:06
oh, no, my prove is just stupid. 19:07
dalek p-rx/nom: 9474e17 | (Solomon Foster)++ | build/Makefile.in:
Catch two more missing tabs that slipped by me the first time.
19:10 rgrau` left
lichtkind sorear++: do you plan to do this diff thing? 19:10
19:10 wtw left
dalek tpfwiki: (Herbert Breunung)++ | www.perlfoundation.org/perl6/index....kup_tablet 19:12
19:16 rgrau` joined, Trashlord left
dalek tpfwiki: (Herbert Breunung)++ | www.perlfoundation.org/perl6/index....kup_tablet 19:17
19:19 obsd123 joined 19:23 Chillance left 19:25 Chillance joined
colomon jnthn: what should I expect make test to do? I seem to have a number of failures, as well as a bunch of "Non-zero wait status: 11" messages 19:25
19:28 zby left
dalek tpfwiki: (Herbert Breunung)++ | www.perlfoundation.org/perl6/index....ble_tablet 19:28
19:38 justatheory left
cosimo I just read about gather/take and I must admit I didn't really understand it 19:55
tadzik the stuff you put inside gather generates a lazy list 19:57
now when you want a nth element, the gather block is executed until it produces n 'take's 19:58
19:58 takadonet joined
tadzik of course it doesn't produce the same n twice, the next time it'd be run from the moment it stopped last time 19:58
20:01 icwiener joined
cosimo easy, right? :) that completely confuses my mind 20:01
diakopter colomon: how'd it go 20:02
phenny diakopter: 13:34Z <jnthn> tell diakopter I've looked but I think the right thing is happening. Everything inherits from Mu, so 7 passes as expected. 8 fails because if you look at the multi candidate in Mu, it's multi method Str(Mu:U $self:) { ... }. The :U means "something undefined" but $xyz is defined.
diakopter: 13:36Z <jnthn> tell diakopter So test 8 was incorrect here. I corrected it - s/$xyz/XYZ/ - and it passes.
diakopter: 13:38Z <jnthn> tell diakopter Note that we do need a Str with Mu:D that does something sensible. But it probably needs .WHERE to work first, if it's going to do the same thing the Rakudo one does (which seems sensible).
diakopter oh
cosimo rakudo: sub pick-next { gather for 1..5 { take $_ } }; say pick-next(); say pick-next(); 20:03
p6eval rakudo : OUTPUT«12345␤12345␤»
cosimo mmh
tadzik: so I can't use it for iterator functions?
20:05 Eevee joined
tadzik cosimo: iterator functions... now you will need to explain some term to me :) 20:05
cosimo: no, it returns a list
so your sub just returns the gather result, which is an array
20:05 icwiener_ left
colomon errr... which is a list, generated by a gather / take iterator. 20:06
jnthn colomon: A number of things will probably fail.
colomon: If you see things about get_how and get_what in the test output, those are a result of "class" not yet being switched to use the new meta-model. 20:10
colomon get_how and get_what, yup 20:11
those appear to be the only real errors
jnthn OK, that's what I'd expect.
(.HOW and .WHAT are actually macro-ish in nqp-rx now) 20:12
colomon okay, so you wanted me to muck about with HLLCompiler?
jnthn *nod* 20:13
colomon (trying to find your suggestions in the backlog again...)
jnthn colomon: Locate HLL::Compiler (src/hll/Compiler.pm I think) 20:14
colomon: Notice it inherits from PCT::HllCompiler
cosimo tadzik: how do I make the sub return just one "taken" element at a time?
jnthn That's the blocker.
cosimo tadzik: if that even makes sense...
tadzik cosimo: you can have a 'static' lazy list and just shift it every call
dalek odel: 8ecef19 | diakopter++ | common/NQP/P6Objects.pm:
[P6Objects] more Cursor porting
jnthn colomon: I think the way to go is to remove that inheritance 20:15
tadzik I don't know how to translate C static to Perl6
jnthn colomon: And then see what breaks.
colomon and then copy methods from Parrot's version of HLLCompiler? 20:16
lue ohayo o/
jnthn The one in PCT, yes
colomon has found jnthn++'s previous suggestions
okay, I can try that.
jnthn colomon: The easy option is to wrap the PIR code in NQP methods and use Q:PIR
colomon should I start another branch, you think?
jnthn In fact, that's probably a good way to get started.
Up to you :) 20:17
It's just you and me working with the nom branch so far, so it won't inconvenience anyone if stuff breaks a bit more :)
colomon would it inconvenience you if I broke stuff? 20:18
jnthn Well... :)
Not much :)
colomon tries to balance his lack of branch-foo with inconvenience to jnthn... 20:20
ooooh, in one minute I get to see what I'm being attacked with in Lacuna Expanse. :)
lue .oO[ I thought breaking things was a contractual obligation around here (well, if there were such a contract) :) ]
colomon lue: _not_ breaking things is a contractual obligation in Rakudo. 20:21
but this is an obscure nqp-rx branch jnthn and I are talking about.
lue s/breaking things/breaking things in the hopes of magically gaining new features later/ 20:23
moritz_ how do I build 6model? 20:25
jnthn moritz_: What are you looking to build it with?
moritz_: Mono?
moritz_: In which case, go to dotnet/runtime, xbuild [the sln file] 20:27
moritz_: Probably add an alias from csc to mcs
And then just make in the dotnet/compiler directory
Then to run something, ./try the_file
colomon jnthn: now working in local nomnom branch
jnthn colomon: hehe :) 20:28
diakopter add an alias from nmake to make, from csc to msc, and from msbuild to xbuild :0
moritz_: ^^
actually sorry not the nmake one.
but the try.sh does need a bit of adjustment I think
jnthn ah, ok
moritz_: In the final step when it works, be the person who commits a file saying how they did it. ;) 20:29
diakopter the make line in there might should be make P6Objects.dll
moritz_ jnthn: it just worked, without any aliases
maybe diakopter++ installed them already 20:30
diakopter well
moritz_ (this is on the evalbot server)
diakopter the all target will work
but 'try' won't
until the csc -> msc one is there
jnthn ah, ok
diakopter needs to shut up 20:31
diakopter looks on the evalbot server
moritz_ too distracted
diakopter: in the chroot, /home/p6eval/6model/
diakopter besides, it's gmcs, not msc 20:32
jnthn oh :)
They changed the name of the compiler when adding generics? :)
diakopter I suppose that's right
20:32 MayDaniel joined, icwiener left
diakopter moritz_: what was your pwd when you did `make` 20:33
(it needed to be dotnet/compiler)
parrot-nqp is not in the path
(so nothing really worked) :) 20:34
diakopter goes to find a parrot-nqp
20:36 whiteknight left
diakopter there we go 20:36
oh, apparently I used some feature of nmake that's not supported by gmake
using a relative path as a target dependency? ..\runtime\bin\Debug\RakudoRuntime.dll 20:37
20:38 MayDaniel left
diakopter help anyone? 20:38
colomon jnthn: parsegrammar seems to be only three lines long? ending in a tailcall? Does that make sense? 20:39
diakopter hm I'll try the forward slash
jnthn colomon: I'm not sure what it does - I think it just sets the grammar to use for parsing though? 20:40
In which case I guess it's short.
colomon gist.github.com/708138
oh, wait, is that what self.'attr' does? 20:41
20:41 masak joined
colomon o/ 20:41
diakopter moritz_: (I'm working' on it...)
jnthn colomon: Oh, I think .attr is a helper method for doing such things, yes.
Iiiiiit's masak! 20:42
masak ahoy!
takadonet masak: yo
20:42 Limbic_Region joined
jnthn Ako sa mas-ak? :) 20:42
tadzik hi masak 20:43
Limbic_Region Ako ay pagod - ikaw?
masak jnthn: 私は元気です。 ^^
jnthn Limbic_Region: :P 20:44
masak colomon, takadonet, tadzik: hi there, you lovely people. 20:45
tadzik hello Masak the Friendly 20:46
Limbic_Region jnthn - when I first came in I really thought you were speaking Tagalog so I couldn't help but join in
masak Limbic_Region: how come you know Tagalog?
jnthn Limbic_Region: It was Slovak. :P 20:47
Limbic_Region masak - my wife is filipina
and I don't know Tagalog very well at all
masak oh! cool.
Limbic_Region masak - I have drank Irish beer in German, spoke to a prostitute in American Sign Language in S. Korea - helped a Nun not miss a flight in Spanish but I don't even really speak English all that well 20:48
;-)
er
Germany
dalek odel: 73d3c7c | jonathan++ | dotnet/runtime/R (2 files):
[dotnet] Add ops for getting the caller and outer sub at a given level.
20:49
masak Limbic_Region: that's fine. neither do I. it's just a language I use for international communication such as this.
English -- the pseudocode of spoken languages.
oh! 20:50
while you're all here!
jnthn uh-oh
masak it's now 20 days until The Announcement!
jnthn :)
I knew it was going to be that! 20:51
masak are you all excited? because I am, and I *know* what I'm going to announce :P
Limbic_Region masak - if you tell me that Christmas is THE Christmas then I will cry - because I will be in the Philippines and wouldn't here the news until next year 20:52
masak here is, out of a total of three, the second mysterious pre-announcement clue: en.wikipedia.org/wiki/5_(number)
Limbic_Region but I can't possibly imagine that this Christmas will be THE Christmas
masak Limbic_Region: I'll be happy at some point to have a proper discussion about what that actually means.
jnthn "It is the natural number following 4 and preceding 6."
masak :) 20:53
tadzik 5 might be the roman V
jnthn ...this is how wikipedia has so many pages!
;)
masak jnthn: aleph-0 of them?
jnthn al'eph said so... 20:54
masak :P
jnthn lol...these pages are great
"The number 69 can be rotated 180° and remain the same."
masak jnthn: you went immediately to 69? :P
anyway, I understand if this clue doesn't stir up the same wild speculation that the first clue did.
diakopter what was the first clue 20:55
jnthn masak: That's what she said!
Limbic_Region jnthn - only if spun around the x axis - try doing that with the y axis and you will get 96
masak diakopter: irclog.perlgeek.de/perl6/2010-11-10#i_2984192 20:56
jnthn ...I didn't know there were "untouchable numbers"
masak apparently, according to that backlog, there are four clues, not three. 20:57
oh well, I'll just have to make one on the day before the announcement, then.
Limbic_Region I thought it said possibly four 20:58
not definately four
masak hm, you're right.
Limbic_Region here is what you get when you combine the first two clues - www.amazon.com/Where-Will-Five-Year...amp;sr=8-1
masak 哈哈
apparently 217 is the lowest natural number without its own Wikipedia article. 20:59
Limbic_Region nope 21:00
try -100_(number) 21:01
masak "natural number".
tadzik -100 is not natural
Limbic_Region oh, missed that part
tadzik hmm, maybe the announcement is masak's birthday :)
Limbic_Region tadzik - and THAT is a matter of opinion :-D
masak tadzik: my birthday is September 15. 21:02
tadzik bah, my calendar is in my flat 21:03
lue ohai masak o/
masak lue: hi! I'm watching the last few episodes of the newest Doctor Who season.
lue: the last I've seen is the van Gogh one. lovely episode. 21:04
lue The Van Gogh ending touched me in a such a way that, for a few days, I *seriously* wanted a TARDIS to do that for the real Van Gogh. 21:05
masak it was indeed touching.
lue you'll love the series ending :) 21:06
masak sssh! :)
but yeah, it's building up to something, for sure.
as usual.
tadzik watched two TMNT episodes 21:07
lue Thinking about DW, got any requirements for the history in your November posts?
masak lue: I generally scour Wikipedia for things that happened on that date until I find something that catches my fancy. 21:08
it tends to be either humorous, catastrophic, horrible or just weird.
lue
.oO(DW premiered on 23 November 1963 (17:15 UTC), one day after the assaination of JFK.)
21:10
on to something that isn't better suited for #doctorwho [should see if that exists actually], I have a week-long break from school, and I plan on working with P6 a lot during that time \o/ 21:14
masak \o/ 21:15
tadzik any particular plans? 21:16
21:17 cognominal left, wamba left 21:18 masonkramer joined
lue working on my Pod parser, hopefully something that'll work by the end of the week :) 21:20
colomon jnthn: so, it isn't just enough to copy the parsegrammar method -- I need to copy the attribute it uses as well, right? 21:23
21:25 Guest72060 joined
jnthn colomon: Is there an attr method in PCT::HllGrammar? 21:28
colomon yes 21:29
(Just so we're on the same wavelength, I meant the $parsegrammar attribute.) 21:30
jnthn If there's attributes then yse, they also need copying over. 21:32
colomon there's a bunch of them
jnthn Yes, I guess there will be quite a few...it holds the grammar/actions/other bits. :)
colomon @stages $parsegrammar $parseactions $astgrammar $commandline_banner $commandline_prompt @cmdoptions $usage $version $compiler_progname
lue I have this line in my grammar: regex docline { ^^ \h* [<directive>|<content>] \h* $$} and <content> is /\N*/ . Could the greediness of <content> be a reason for a <directive> being matched only once when (in my test file), it should be twice? 21:33
jnthn colomon: Oh
But they'll need to become decls like
has @!stages;
colomon yes, that's what I was thinking.
but then I started wondering why we wanted to do this. :)
colomon doubts it is a clever new Repeat Yourself programming style.... ;) 21:34
jnthn colomon: I rather suspect that if you translate PIR to NQP you'll end up with less lines of code overall :) 21:38
takadonet well well well 21:48
Look who just ported over Algorithm::Diff
github.com/Takadonet/Algorithm--Diff
and all the non-oo tests work! 21:49
jnthn That dude must be awesome.
:)
takadonet pretty much of it works 100% 21:50
pretty much all of it works 100% * 21:51
dalek albot: bd038b0 | moritz++ | build-scripts/rebuild-6model.sh:
6model build script by diakopter++
21:52
takadonet now just need someone to commit to github.com/perl6/modules.perl6.org/ for me :)
takadonet pokes masak
tadzik o/
takadonet tadzik: o/
masak takadonet: hi. not following along too closely, I'm afraid. writing a blog post. can I help you?
lue rakudo: say "hi" ~~ / !<digit> /
p6eval rakudo : OUTPUT«===SORRY!===␤Confused at line 22, near "say \"hi\" ~"␤» 21:53
colomon takadonet++
masak takadonet: oh, you want to add it to the ecosystem? cool!
lue rakudo: say "hi" ~~ / \!<digit> /
p6eval rakudo : OUTPUT«␤»
takadonet masak: yes it works great! . All the non-oo is working. Just got to fix up 3 fcn that have no test and i'm 100% done
colomon sorry for disappearing there, computer needed so my little guy could skype with my mother.
masak basically, you need to add it to projects.list in github.com/perl6/ecosystem 21:54
moritz_ takadonet: you now have commit access to the ecosystem repo
takadonet moritz_: thanks
colomon takadonet: do you have a github id? ... whoops, looks like moritz_++ beat me to it.
takadonet I finally have a bit!!!
colomon takadonet: yeah, now you're committed.
moritz_ (and to most other repos too in the perl6 organization)
tadzik first!
dalek osystem: 0e7f267 | (Tadeusz Sośnierz)++ | projects.list:
Added Algorithm--Diff
tadzik :) 21:55
takadonet !!!
moritz_ takadonet: sorry, I didn't know you haven't had one before, or needed one
tadzik and my name is not my nick again
masak tadzik++
takadonet tadzik: you beat me to it
tadzik karma Tadeusz Sośnierz?
aloha Tadeusz Sośnierz? has karma of 0.
tadzik karma Tadeusz Sośnierz
aloha Tadeusz Sośnierz has karma of 4.
tadzik karma tadzik
aloha tadzik has karma of 34.
takadonet karma Takadonet
aloha Takadonet has karma of 14.
tadzik ah, let the official guy have some :)
takadonet++ #deserves more karma 21:56
takadonet forgot the karma. Download it and poke holes in my code!
lue something about my grammar is off...
moritz_ debug it!
lue I am! :)
21:57 p6eval left
tadzik that's a well-commented /*out*/ code! 21:57
diakopter .oO
21:57 p6eval joined, ChanServ sets mode: +v p6eval
diakopter () 21:57
sigh
moritz_ masak: did you benchmark old vs. new .trans ? 21:58
masak moritz_: no, and I don't know if I saved the benchmarking script.
moritz_ diakopter: did you restart p6eval?
21:58 p6eval left
diakopter yeah 21:58
21:58 p6eval joined, ChanServ sets mode: +v p6eval
masak moritz_: it's probably slowed now, but likely not as slow as it was before I started changing it around. 21:58
and it has more features now.
jnthn nqpnet: say("plz can haz?") 21:59
:)
21:59 p6eval left
jnthn kan inte haz 21:59
*kann
masak no, 'kan' was right.
jnthn dammit! 22:00
masak there are a few exceptions regarding words ending with m or n.
22:00 p6eval joined, ChanServ sets mode: +v p6eval
masak they don't need to be doubled. 22:00
diakopter nqpnet: say("plz can haz?")
masak I sense a pent-up need.
p6eval nqpnet: OUTPUT«/bin/sh: parrot: not found␤make: *** [NQPSetting.dll] Error 127␤./try2.sh: 5: parrot: not found␤error CS5001: Program `RakudoOutput.exe' does not contain a static `Main' method suitable for an entry point␤Compilation failed: 1 error(s), 0 warnings␤---␤Cannot open assembly 'RakudoOu…
diakopter oops forgot the path
lue does regex disable backtracking? 22:01
diakopter nqpnet: say("plz can haz?")
p6eval nqpnet: OUTPUT«/bin/sh: parrot: not found␤make: *** [NQPSetting.dll] Error 127␤./try2.sh: 6: parrot: not found␤error CS5001: Program `RakudoOutput.exe' does not contain a static `Main' method suitable for an entry point␤Compilation failed: 1 error(s), 0 warnings␤---␤Cannot open assembly 'RakudoOu…
masak moritz_: seems I didn't save the benchmarking script. I could create a new one, of course, and re-do all the statistics...
moritz_: but I don't think I want to spend time on that today. maybe some other day. 22:02
or maybe someone else wants to give it a try. it's quite easy.
diakopter nqpnet: say("plz can haz?")
p6eval nqpnet: OUTPUT«(timeout)»
diakopter hm 22:03
masak \o/
diakopter nqpnet: say("plz can haz?")
p6eval nqpnet: OUTPUT«---␤plz can haz?␤»
masak yay, but why the extra output?
diakopter nqpnet: say("plz can haz?")
p6eval nqpnet: OUTPUT«plz can haz?␤»
masak \o/
diakopter++
jnthn masak: try used to show the build line, a "---" and then the real program output
moritz_ diakopter++ indeed
jnthn masak: A while back diakopter++ made it much quieter. :)
diakopter++ # yay! 22:04
nqpnet: proto foo($x) { say("before"); {*}; say ("after") }; multi foo($x) { say("in multi") }; foo(42)
p6eval nqpnet: OUTPUT«Unable to parse blockoid, couldn't find final '}' at line 1␤current instr.: 'parrot;Regex;Cursor;FAILGOAL' pc 2368 (ext/nqp-rx/src/stage0/Regex-s0.pir:1192)␤called from Sub 'parrot;JnthnNQP;Grammar;blockoid' pc 10704 (gen_grammar.pir:3191)␤called from Sub 'parrot;JnthnNQP;Grammar;r…
diakopter nqpnet: my $a := 10000; $a := $a - 1 while $a > 0; say('done'); 22:05
p6eval nqpnet: OUTPUT«done␤»
diakopter nqpnet: my $a := 100000; $a := $a - 1 while $a > 0; say('done');
p6eval nqpnet: OUTPUT«done␤»
diakopter nqpnet: my $a := 1000000; $a := $a - 1 while $a > 0; say('done');
p6eval nqpnet: OUTPUT«done␤»
jnthn fail :)
tadzik :)
masak still. wow.
jnthn diakopter: I know why that's so slow - I benchmarked a bunch of similar stuff.
masak that's a fast Perl 6. I like it already.
slow!? 22:06
jnthn masak: :)
tadzik niecza: my $a = 1000000; $a = $a - 1 while $a > 0; say 'done'
jnthn er, s/benchmarked/profiled/
masak rakudo: my $a := 1000000; $a := $a - 1 while $a > 0; say('done');
jnthn masak: Well, compared to Rakudo... :)
p6eval niecza 83891ca: OUTPUT«done␤»
rakudo : OUTPUT«(timeout)»
tadzik :D
masak jnthn: I know which one I prefer...
tadzik nqpnet: my $a := 1000000; $a := $a - 1 while $a > 0; say('done'); 22:07
:D
niecza: my $a = 1000000; $a = $a - 1 while $a > 0; say 'done'
bah, it was outght to be a race
22:07 obsd123 left
p6eval nqpnet: OUTPUT«done␤» 22:07
niecza 83891ca: OUTPUT«done␤»
diakopter rakudo: my $a := 10000; $a := $a - 1 while $a > 0; say('done');
p6eval rakudo : OUTPUT«done␤»
jnthn Is that Rakudo build an optimized one, ooc?
tadzik nqp: my $a := 1000000; $a := $a - 1 while $a > 0; say('done'); 22:08
masak diakopter: I've told jnthn that I want to implement Druid on top of nqp.net. as I understand it, it doesn't have substr or STDIN line input yet, but once it does, I'll give it a shot.
p6eval nqp: OUTPUT«done␤»
moritz_ jnthn: I think so
tadzik ...wow
diakopter it has substr
jnthn moritz_: 'cus the nqpnet one is just Debug build.
colomon do optional parameters work in NQP? I need the NQP cheat sheet
masak diakopter: oh, good!
jnthn colomon: Yes, there's a bug with lexical scoping of the default closure that I need to look into though.
masak then all I need is $*IN.get.
jnthn masak: Could you cope with a hacked prompt to get started? 22:09
masak jnthn: certainly.
jnthn C<prompt>
diakopter nqpnet: say(substr("foobar", 2, 2))
p6eval nqpnet: OUTPUT«ob␤»
jnthn 'cus I can give you that easily.
masak \o/
dalek albot: 8ba8049 | moritz++ | evalbot.pl:
nqpnet target by diakopter++
22:10
jnthn nqpnet: proto sub foo($x) { say("before"); {*}; say ("after") }; multi sub foo($x) { say("in multi") }; foo(42)
p6eval nqpnet: OUTPUT«Unable to parse blockoid, couldn't find final '}' at line 1␤current instr.: 'parrot;Regex;Cursor;FAILGOAL' pc 2368 (ext/nqp-rx/src/stage0/Regex-s0.pir:1192)␤called from Sub 'parrot;JnthnNQP;Grammar;blockoid' pc 10704 (gen_grammar.pir:3191)␤called from Sub 'parrot;JnthnNQP;Grammar;r…
jnthn gah what
tadzik "Any implementation passing the official test suite and fullfiling the Synopses is..."? Good enough? Official? Ideas?
jnthn std: proto sub foo($x) { say("before"); {*}; say ("after") }; multi sub foo($x) { say("in multi") }; foo(42)
p6eval std a194beb: OUTPUT«Potential difficulties:␤ $x is declared but not used at /tmp/qJahmEn7eu line 1:␤------> "); {*}; say ("after") }; multi sub foo(⏏$x) { say("in multi") }; foo(42)␤ok 00:01 123m␤»
diakopter Definitive
masak tadzik: awesome.
moritz_ s/is/may itself call Perl 6.0/
diakopter Conforming 22:11
is Conforming
masak moritz_: s/itself call/call itself/
moritz_ indeed
tadzik 6.0, or just 6?
masak any such implementation is comforting.
tadzik or „the Perl 6”?
moritz_ tadzik: no
"a Perl 6"
tadzik right
masak er, why?
we don't say "a C"? 22:12
we say "a C implementation".
moritz_ well
then say "a Perl 6.0 compiler"
masak I would think that "a Perl 6" might refer to a sub-dialect that someone wrote.
tadzik what if that's an interpreter?
masak "that's a nice Perl 6 you have there" -- "why, thank you!" 22:13
jnthn nqpnet: proto sub foo($x) { say("before"); {*}; say("after") }; multi sub foo($x) { say("in multi"); }; foo(42);
p6eval nqpnet: OUTPUT«before␤in multi␤after␤»
jnthn finally!
:)
moritz_ jnthn++
22:15 ch3ck joined, cognominal joined
sorear lichtkind: no. I don't see a way to get the old version, nor a good programmatic way to summarize a diff 22:19
lichtkind sorear: you mean to crawl www.perlfoundation.org/perl6/index....1120192555 is too much effort 22:21
tadzik sorear: how would you summarize niecza as a Perl 6 implementation with a few words? Aiming for performance rather than completeness maybe? I'd like to mention it in the Advent Calendar post 22:22
moritz_ rakudo: say &say.signature.cando 22:23
p6eval rakudo : OUTPUT«get_attr_str() not implemented in class 'Perl6MultiSub'␤ in main program body at line 1␤»
22:23 muixirt left
moritz_ rakudo: say &sqrt.signature 22:23
sorear Aiming to study performance issues
p6eval rakudo : OUTPUT«get_attr_str() not implemented in class 'Perl6MultiSub'␤ in main program body at line 1␤»
moritz_ rakudo: say &sqrt.signature.perl 22:24
p6eval rakudo : OUTPUT«get_attr_str() not implemented in class 'Perl6MultiSub'␤ in main program body at line 1␤»
sorear I want to know WHY existing implementations are so slow and HOW to make a fast one
colomon jnthn: huh. now getting a get_bool error during my compile?
22:24 ch3ck left
colomon afk for a moment... 22:24
jnthn colomon: Remember that this is a bootstrapping thingy so if you break something sufficiently then stage 2 won't build. 22:25
sorear niecza: my $x = 0; $x++ until $x == 10000000; # this slightly different loop form will run about ten times faster for now
p6eval niecza 83891ca: OUTPUT«(timeout)»
colomon jnthn: ah
sorear niecza: my $x = 0; $x++ until $x == 1000000;
p6eval niecza 83891ca: ( no output )
sorear niecza: my $x = 0; $x++ until $x == 5000000;
p6eval niecza 83891ca: ( no output )
lue afk # nommery! 22:26
jnthn colomon: I think it compiles HLL::Compiler into stage 1, then uses it in stage 2.
sorear nqpnet is bootstrapped now?
jnthn (stage 1 being built with the one in bootstrap files)
sorear: No. :( colomon and I are talking about nqp-rx on Parrot.
sorear: Working towards nqpnet bootstrap though :) 22:27
dalek ok: a5ebb8f | (Patrick Donelan)++ | src/roles.pod:
Fixes minor typo in roles.pod

Signed-off-by: Moritz Lenz [email@hidden.address]
sorear also, do you plan to ever implement gather/take in nqprakudo?
er
rakudonet
jnthn sorear: Yes, at which point I'm going to be interested to understand how it is done continuationless :)
sorear continuationless? 22:29
jnthn sorear: Without needing continuations. OTOH, Rakudo already doesn't.
sorear: Rakudo's gather/take uses some coroutine meachnism iirc.
sorear yes
jnthn msdn.microsoft.com/en-us/magazine/cc164086.aspx is an interesting read. 22:30
sorear gather/take are equivalent in power to coroutines (see a p6l post of mine which I'm thinking of turning into an advent post)
masak moritz_: informal use of psyde tells me that .trans can't be very much slower. I'm curious now about the exact numbers. :)
jnthn sorear: Though it points out int he article not to do it in production code...
masak blog post! strangelyconsistent.org/blog/novemb...whale-wins 22:31
tadzik hmm, I'd like to say Rakudo Star tarballs are available for windows too, but the last one is the first one. Are you still managing this, jnthn? 22:32
sorear jnthn: I emailed a couple DLR guys about coroutines a few month ago 22:33
dalek ok: 4d0ec84 | moritz++ | src/ (2 files):
be more careful about explaining "nominal" types
sorear jnthn: I'm told fibers are a bad choice because they have a 1MB stack allocation, which is a bit high for a gather
jnthn sorear: Yeah, plus not sure that really works too well for Mono. 22:34
sorear a SoC student implemented a Mono-specific coroutines engine a bit back
it'll probably work if you use reflection emit to pick an implementation at runtime 22:35
jnthn sorear: Is that in mainline mono? 22:36
sorear jnthn: the unmanaged part is
VM support, I mean
the actual coroutine library is shipped separately, but it's pure C# using the Mono private APIs
jnthn OK
Just looking at it now 22:37
Looks interesting.
tadzik rakudo: sub foo() { my $a; return $a++}; say foo; say foo; say foo; 22:38
p6eval rakudo : OUTPUT«Any()␤Any()␤Any()␤»
tadzik how do I make something like a static variable in C?
sorear state $a
niecza: sub foo() { state $a = 0; return $a++ }; say foo; say foo; say foo
p6eval niecza 83891ca: OUTPUT«0␤1␤2␤»
sorear buubot: eval: sub foo() { state $a = 0; return $a++ }; say foo; say foo; say foo 22:39
buubot sorear: ERROR: syntax error at (eval 32) line 1, near "say foo"
sorear buubot: eval: use 5.010; sub foo() { state $a = 0; return $a++ }; say foo; say foo; say foo
buubot sorear: 0 1 2 1
moritz_ does anybody remember how references to tables work in PseudoPod?
tadzik where are the building instructions for Rakudo Star? 22:42
22:43 obsd123 joined 22:46 jaldhar left
dalek ok: 500c8c2 | moritz++ | src/regexes.pod:
[regex] try to properly cross-link a table
22:47
22:49 jaldhar joined
dalek : ce274cf | (Tadeusz Sośnierz)++ | misc/perl6advent-2010/articles/reaching-the-stars.pod:
Added the article „Reaching the Stars”
22:52
22:52 obsd123 left
tadzik proofreading will be Very Welcome 22:52
22:53 obsd123 joined
masak looks 22:53
tadzik: ah, this is meant to be the first entry? 22:54
tadzik masak: well, I was quite scared too 22:55
masak tadzik: looks good.
tadzik: but what I think would most help the Advent planning right now -- at least it worked very well last year -- is if we created a file with 24 empty slots, where people could sign up. 22:56
fill in their name and the topic.
tadzik: you could create the file and put yourself on December 1. :) 22:57
tadzik: ss/Yapsi, which/Yapsi, whose/, I think. 22:58
tadzik masak: do you mean github.com/perl6/mu/blob/master/mi...0/schedule
oh, sure
dalek ok: 0afc0b8 | moritz++ | src/subs-n-sigs.pod:
[subs-n-sigs] answer a question by jkeenan++
masak ooh, a schedule! :)
tadzik++
masak goes and grabs a handful of days.
dalek : 3478d03 | (Tadeusz Sośnierz)++ | misc/perl6advent-2010/articles/reaching-the-stars.pod:
gramarro by masak++
22:59
tadzik dalek, I don't like this nickname either, but no one knows who Tadeusz Sośnierz is
moritz_ we're doing 25 days this year? 23:00
tadzik hmm, I don't mind :)
masak last year, the 25th was "merry christmas!" 23:01
tadzik seen pmichaud
aloha pmichaud was last seen in #perl6 10 days 3 hours ago saying "Er. Bbl".
masak :/ 23:02
tadzik Er. :(
sorear "l"
jnthn 10 days later? :(
masak pmichaud_: we miss you!
jnthn hopes pmichaud_++ is well and just heavily distracted
masak hopes everything is ok, and that pmichaud_ is just busy
jnthn Well, heavily distracted with $work, anyway... 23:03
23:05 ch3ck joined
dalek : 7b88d2f | masak++ | misc/perl6advent-2010/schedule:
[misc/perl6advent-2010/schedule] picked three slots

Negotiable and not set in stone. Yay, Advent Calendar 2010! \o/
23:10
tadzik hands masak a banana
masak tadzik: it's also possible to do drafts in the Wordpress installation at perl6advent.wordpress.com -- I'm only mentioning it because that's what a lot of us did last time, and it seemed to work great. 23:11
committing to mu is fine too, of course.
23:18 macwadu joined
jnthn masak: my $longest_substitution_matcher = class { 23:19
masak uh-oh :)
jnthn masak: did a my class LSM { ...
not work?
masak hm.
didn't actually try. :/
masak tries now
jnthn It pretty much does what you have, iirc.
Apart from you can then use it without the $ 23:20
:)
masak I have had bad experiences with nested classes.
sorear people are working on ltm in rakudo now?
masak no, it's just for .trans
I needed it for a regression in November. this used to work.
dalek odel: fbd8320 | jonathan++ | dotnet/compiler/DNST2CSharp.pm:
[dotnet] Don't really need a temporary variable for DNST::ArrayLiteral and DNST::DictionaryLiteral nodes, so skip having them (will be closer to the IL we'll one day emit, so good to get it tested this way).
23:22
odel: a180bfb | jonathan++ | dotnet/compiler/PAST2DNSTCompiler.pm:
[dotnet] Factor out the capture forming logic since it's about to get a tad more complex.
23:23 mavrc left
masak jnthn: using 'my class' seems to work. at least the trans.t file runs fine. jnthn++ 23:28
spectesting Justin Case, and then committing.
jnthn Fairy Nuff. 23:29
tadzik :D
macwadu is there any modolu to send sms? 23:32
ruoso to which extent the introspection of the grammar rules is specced? 23:33
meaning... introspect it to find the tokenization, discover the literal elements...
tadzik macwadu: I don't see any on modules.perl6.org 23:34
masak ruoso: that would be nice. I haven't seen spec for that.
tadzik macwadu: well volunteered!
masak sending SMS messages sounds like a highly platform-dependent task. 23:35
23:35 meppl joined
macwadu i found this WWW:SMS 23:35
ruoso masak: I was just talking to edenc (catalyst guy), and using plain Perl 6 grammar as a action dispatch engine would be uber cool
but there's the problem of how to solve the uri_for_action
masak ruoso: ooh
macwadu i found this www-sms.sourceforge.net/ 23:36
but the gateways are offline
masak ruoso: I guess you could always re-parse the code with custom action methods.
ruoso masak: hmm... sounds promising... 23:37
masak but it hasn't been done before. 23:38
ruoso masak: in fact, the only thing that needs to be done is detect the literals and count the captures in the non-literals 23:40
masak toys with the idea of a regex introspection API 23:41
if it can't be done with Rakudo proper, I bet GGE could be made to do such a thing
ruoso mostly, tokenization is the key
jnthn In Rakudo you can go regex syntax => AST 23:42
ruoso jnthn: that would probably give the information I need then...
masak jnthn: how? 23:43
ruoso with some rakudo-specific-magic, I guess
jnthn Yeah, it is Rakudo-specific
masak dang. :/
jnthn masak: I don't knwo the exact incantation.
masak: Something along the lines of instantiating the regex grammar with the relevant actions
masak GGE (used as a library) would be implementation independent, but slow.
23:43 edenc joined
jnthn masak: And parsing and looking at .ast of the match object 23:44
edenc hi guys
ruoso there he is
masak edenc: hi! \o
edenc looks like ruoso finally managed to draft me :)
masak: hey
masak edenc: welcome! good work with Catalyst!
edenc well, not enough, ;) 23:45
given that there seems to be a lot of space for improvement
masak gosh, I should hope so. 23:46
applications that are done already -- where's the fun in that? :P
ruoso jnthn: do you think it's possible to do that introspection entirely in p6 land? or does it involve lower level stuff?
edenc well, what I've been talking to ruoso about is to make the dispatcher work at the request parse level 23:47
you define a grammar that handles the dispatching, which is both more expressive and efficient than all the "popular" ways to do dispatch these days 23:48
masak ruoso: it is possible in p6 land, if you're prepared to load GGE.pm.
jnthn ruoso: I think it's possible in p6land.
ruoso: The only thing is that the AST is implementation specific.
ruoso .oO( curious how the name action from the web dispatch matches with action from grammars )
edenc given the set of uri's handled by a web app is a language
ruoso jnthn: cool... 23:49
the idea is still a toy, so being rakudo-specific is not a problem
jnthn ruoso: But - in Rakudo at least - AST nodes are just objects, like any other object.
23:49 gbacon joined
edenc so, ruoso tells me that part of the grammar language I was envisioning is implemented (partially?) in rakudo already 23:50
ruoso jnthn: a project like this would eventually lead to more spec...
edenc problem is, I don't even know where to start :)
ruoso edenc: actually, the grammar you need is entirely implemented already
since action closures in Perl 6 are already implemented, right?
jnthn Yes, you can put closures inside regexes 23:51
ruoso rakudo: grammar Foo { rule bar { /foo/bar { say "hello" }/baz { say " world" } } }; "/foo/bar/baz" ~~ /<Foo::bar>/;
p6eval rakudo : OUTPUT«===SORRY!===␤Malformed regex at line 22, near "bar { /foo"␤»
edenc so, I write the grammar and get an perl 6 objectified AST, or what?
ruoso got his Perl 6 skills a bit rusty 23:52
edenc ok, where's the grammar language documented? 23:53
sorear S05
jnthn ruoso: Inside the rule you are already in regex syntax so the / ain't needed there
23:53 macwadu left
ruoso jnthn: that is meant as a literal 23:53
jnthn oh
duh :) 23:54
ruoso: Then it needs quoting.
sorear only \w charactes can be used unquoted in p6regex
ruoso rakudo: grammar Foo { rule bar { "/foo/bar" { say "hello" } "/baz" { say " world" } } }; "/foo/bar/baz" ~~ /<Foo::bar>/;
p6eval rakudo : OUTPUT«===SORRY!===␤regex assertion not terminated by angle bracket at line 22, near "::bar>/;"␤»
ruoso rakudo: rule bar { "/foo/bar" { say "hello" } "/baz" { say " world" } }; "/foo/bar/baz" ~~ /<bar>/;
p6eval rakudo : OUTPUT«Useless declaration of has-scoped rule in a module; add our or my to install it in the lexpad or namespace␤Method 'bar' not found for invocant of class 'Cursor'␤ in <anon> at line 22:/tmp/GlkF5PiU1z␤ in 'Cool::match' at line 2509:CORE.setting␤ in 'Regex::ACCEPTS' at line 6016:CO…
ruoso rakudo: my rule bar { "/foo/bar" { say "hello" } "/baz" { say " world" } }; "/foo/bar/baz" ~~ /<bar>/; 23:55
p6eval rakudo : OUTPUT«Method 'bar' not found for invocant of class 'Cursor'␤ in <anon> at line 22:/tmp/RX2ilUgiAG␤ in 'Cool::match' at line 2509:CORE.setting␤ in 'Regex::ACCEPTS' at line 6016:CORE.setting␤ in main program body at line 10:/tmp/RX2ilUgiAG␤»
ruoso rakudo: my rule bar { "/foo/bar" { say "hello" } "/baz" { say " world" } }; "/foo/bar/baz" ~~ /<&bar>/;
p6eval rakudo : OUTPUT«hello␤ world␤»
ruoso aha!
edenc ruoso++
marvelous
well, I guess I'd better read up 23:56
ruoso: I'm curious, what would a subrule look like? 23:58
ruoso rakudo: my rule baz { "/baz" { say "subrule" } }; my rule bar { "/foo/bar" { say "hello" } <&baz> { say " world" } }; "/foo/bar/baz" ~~ /<&bar>/; 23:59
p6eval rakudo : OUTPUT«hello␤subrule␤ world␤»