»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg p6eval perl6: ... | irclog: irc.perl6.org/ | UTF-8 is our friend!
Set by sorear on 4 February 2011.
raiph i notice perlito used to emphasize its nature as a perl6 subset ("miniperl") but now just talks about being a perl6 implementation 00:04
00:05 ksi left 00:09 Lothar left 00:25 hrj left 00:26 Lothar joined 00:34 whiteknight joined, whiteknight is now known as Guest92961, molaf_ joined 00:38 molaf left
dalek ecza: 40118ed | sorear++ | / (5 files):
Implement correct-style <{ }> assertion
00:48
01:06 spine joined
dalek ecza: df250ea | sorear++ | / (3 files):
Implement dottyop regex assertions
01:07
01:12 drbean left 01:15 bkolera joined, thou left 01:17 drbean joined 01:21 Guest92961 left 01:24 thou joined 01:26 simcop2387 left 01:27 simcop2387 joined 01:29 awwaiid left 01:30 awwaiid joined
flussence *sigh* I really wish I could figure out what makes tryrakudo die like that. The backend doesn't die, it just... stops accepting input randomly. 01:37
maybe it's the session timeout thing acting up... 01:38
01:38 Guest92961 joined, envi_ joined 01:39 sivoais left 01:49 poincare101 joined
poincare101 Cmon guys! When can I move out of php and back into perl?! (employer refuses to use perl 5, but like perl 6) 01:49
01:49 Chillance left
poincare101 even duke nukem forever released 01:49
01:50 Chillance joined, raiph left
poincare101 perl6: say 3; 01:52
p6eval pugs b927740, rakudo d5729f, niecza v12-51-g40118ed: OUTPUT«3␤»
sorear You can do it now, although you'll need to write a lot of infrastructure yourself 01:57
02:02 envi_ left 02:04 Chillance left
dalek ecza: bca1172 | sorear++ | / (4 files):
Implement <foo> calling my regex foo if in scope
02:13
02:22 cognominal___ left, cognominal joined 02:23 sivoais joined
sorear niecza: say join '|', [1, 2] 02:29
p6eval niecza v12-52-gdf250ea: OUTPUT«1 2␤»
02:29 jaldhar joined 02:30 benabik joined 02:39 spine left 02:45 risou is now known as risou_awy 02:50 tokuhirom joined
TiMBuS dies rakudo (nqp) use libffi now? so we dont need parrots thunks to do nci 02:58
also, does zavolaj work at all? becuae it sure doesn't seem to D:
colomon I believe it's supposed to be working in nom now. 02:59
benabik TiMBuS: Rakudo nom uses dyncall, not libffi
03:00 am0c joined
TiMBuS did parrot also switch to dyncall or 03:04
is this uh. one of those 'things'. where parrot and rakudo diverge 03:05
"===SORRY!=== No applicable candidates found to dispatch to for 'trait_mod:<is>'. Available candidates are:" 03:09
aw
that's zavolaj's unix-fork.p6 example 03:10
changing the declaration to: "sub fork() returns Int is native('libc')" 03:11
03:11 mkramer left
TiMBuS gives me: Cannot locate native library 'libc' 03:12
oh dear
maybe i dont have it :P
03:13 mkramer joined 03:18 mkramer left
benabik TiMBuS: What platform? 03:18
TiMBuS linux 03:19
frankenstein ubuntu
03:20 mkramer joined
geekosaur there should still be a /usr/lib/libc.so, but if it's being tricky then /lib/libc-mumble.so and /lib/libc.so.6 03:22
TiMBuS of course 03:24
rakudo just refuses to find it
03:26 Sarten-X left 03:28 Guest92961 left
TiMBuS okay that's bizzare? its just calling dlLoadLibrary which just calls dlopen 03:32
03:35 Psyche^ joined 03:39 Patterner left, Psyche^ is now known as Patterner 03:43 fridim_ left
TiMBuS sub fork() returns Int is native('libc.so.6') { ... } 03:48
-_- linux 03:49
03:51 hundskatt left 03:59 tokuhirom left 04:23 mkramer left
dalek ecza: b37bff8 | sorear++ | / (3 files):
Implement <&foo(ARGS)> syntax
04:25
ecza: bf48f50 | sorear++ | / (3 files):
Respect context correctly on @0 and @<foo>
ecza: ecef049 | sorear++ | src/ (4 files):
Mergeback
04:28 benabik left 04:36 tokuhirom joined 04:42 drbean left 04:48 drbean joined 05:05 cognominal left 05:12 benabik joined 05:30 poincare101 left 06:09 drbean left 06:14 drbean joined
dalek ecza: d32b7c4 | sorear++ | / (5 files):
Refactor proto compilation in preparation to make them actually used
06:22
ecza: 2f1fbaa | sorear++ | lib/ (3 files):
Actually use proto definitions to a small extent
06:49
07:04 drbean left 07:11 drbean joined
sorear rakudo: grammar G { proto regex f { x {*} y } } 07:13
p6eval rakudo d5729f: OUTPUT«===SORRY!===␤Proto regex body must be {*} (or <*> or <...>, which are deprecated) at line 1, near "}"␤»
sorear phenny: tell TimToady STD parses both {*} and [*] in regexes, but S05 only specs {*}. Which should win? 07:30
phenny sorear: I'll pass that on when TimToady is around.
sorear niecza: if 1 { my $/; "x" ~~ /./ }; say $/ 07:48
p6eval niecza v12-58-g2f1fbaa: OUTPUT«Any()␤»
08:07 drbean left 08:14 drbean joined 08:28 GlitchMr joined
dalek kudo/nom: d9d3ec3 | moritz++ | src/core/Exceptions.pm:
make X::Base a role, and add X::Obsolete
08:28
sorear o/ moritz, GlitchMr 08:37
GlitchMr Hi 08:38
moritz \o 08:39
dalek ecza: 5b61026 | sorear++ | / (6 files):
Implement fancy proto regexes with stuff around {*}
08:41
sorear -> sleep
moritz phenny: ask jnthn what's the best way to make sub throw from Perl6::Actions also available in Perl6::Grammar? move it to Perl6::Grammar and then install an alias? or put it into the cursor somhow, like panic? and if yes, how? 08:42
phenny moritz: I'll pass that on when jnthn is around.
09:09 fridim_ joined 09:35 mkramer joined 09:36 thou left 10:25 molaf_ left 10:30 guest___ joined 10:31 guest___ left 10:38 MayDaniel joined 10:44 drbean left 10:45 mkramer1 joined, mkramer left 10:49 drbean joined 10:55 donri joined 11:04 envi_ joined 11:07 replore joined 11:12 Moukeddar joined 11:16 drbean left 11:19 donri left 11:22 drbean joined 11:27 preflex_ joined, preflex left, preflex_ is now known as preflex 11:31 cognominal joined 11:36 Moukeddar left 11:46 ab5tract joined 11:54 grondilu joined 11:55 grondilu left
dalek : 40e7e7f | moritz++ | misc/perl6advent-2011/schedule:
[advent] update schedule for yesterday, just for completeness
11:58
12:06 whiteknight joined, whiteknight is now known as Guest11969 12:13 hundskatt joined
moritz nom: say get; say lines[0] 12:14
p6eval nom d9d3ec: OUTPUT«Land der Berge, Land am Strome,␤Land der Äcker, Land der Dome,␤»
12:17 drbean left
jnthn o/ 12:21
phenny jnthn: 08:42Z <moritz> ask jnthn what's the best way to make sub throw from Perl6::Actions also available in Perl6::Grammar? move it to Perl6::Grammar and then install an alias? or put it into the cursor somhow, like panic? and if yes, how?
jnthn moritz: Any reason it shouldn't go into the world, then $*ST.throw(...) would work? 12:22
moritz: $*ST is available throughout the grammar and actions. Plus you're calling it anyway to find the exception object, I guess.
moritz jnthn: good idea, thanks 12:23
jnthn wonders when the least bad time is to rename that. 12:25
moritz no reason not to do it now 12:28
I don't know of any bigger branches that would suffer from it 12:29
jnthn *nod* 12:30
OK, then probably I do it this weekend.
jnthn can has some tuits :)
Also plan to look at more Zavolaj bits. 12:31
moritz what do you want to rename it to?
Perl6::World and then $*W instead of $*ST ? 12:32
I have a bit of hacking time right now, unless Ronja decides that she needs more attention :-)
GlitchMr if (-e 'file') {...} 12:33
How can I write this in Perl 6?
12:33 tokuhir__ joined
moritz if 'file'.IO.e { ... } 12:33
GlitchMr :)
12:35 tokuhirom left
jnthn moritz: Yes, that is the renaming I was planning. 12:35
moritz: And the matching ones in NQP, HLL, etc. 12:36
(though they can be done independently of each other)
moritz wow, I did't know that NQP had a SymbolTable
12:38 mj41 joined 12:39 orafu left, orafu joined
moritz jnthn: I'm on the rename in Rakudo now. Seems to be easily automated. 12:44
jnthn moritz: Great, thanks :) 12:46
jnthn away for a few moments 12:47
dalek kudo/nom: d59a2d3 | moritz++ | / (4 files):
rename SymbolTable to World
13:08
kudo/nom: 02cced8 | moritz++ | src/ (7 files):
rename $*ST to $*W. No functional changes
jnthn \o/ 13:11
moritz: Are you taking on NQP too, or shall I?
moritz jnthn: I'll try, though my experiences with renaming files in nqp are not too good
(btw tests pass after each of the previous commits, which is why I didn't put them into a branch) 13:12
jnthn That's fine :)
I'd have been worried if the renaming had caused disruption.
13:14 tester joined 13:15 tester left 13:17 bkolera left
moritz nqp doesn't seem to be so problematic after all 13:20
jnthn \o/
dalek kudo/nom: e354349 | jnthn++ | docs/ROADMAP:
Merge the two regex sections in the roadmap.
13:21
13:32 simcop2387 left 13:33 simcop2387 joined
dalek kudo/nom: 6adbc07 | jnthn++ | src/Perl6/Optimizer.pm:
Fix a regression in block inlining optimizations.
13:39
13:43 pkkm joined
dalek p: 5c46507 | moritz++ | / (8 files):
rename SymbolTable to World

also updates generates files, to escape bootstrapping issues.
13:46
p: c43ccbe | moritz++ | .gitignore:
.gitignore generated files from dyncall
p: 6ad0a71 | moritz++ | src/stage0/ (6 files):
update bootstrap files
13:58 raiph joined 14:21 hundskatt left 14:23 hundskatt joined
jnthn moritz: u done nao? 14:30
colomon sorry I'm running late on the Advent post. Probably will be able to finish it this afternoon (Michigan time) 14:31
gotta go to Santa House now with three generations of Fosters. :) 14:32
14:35 benabik left 14:44 dickinsm joined, dickinsm left 14:46 Trashlord left, tokuhir__ left, Chillance joined 14:52 Trashlord joined 15:08 mkramer1 left, mkramer joined
dalek p: 0e65c0a | jnthn++ | / (5 files):
Rename HLL::Compiler::SerializationContextBuilder to HLL::World. Also rename the over-long, but widely used get_object_sc_ref_past to just get_ref.
15:16
kudo/nom: d51f3fe | jnthn++ | / (3 files):
Bump NQP_REVISION and chase World API changes.
15:17
15:38 thou joined 15:59 risou_awy is now known as risou 16:03 clintongormley1 joined 16:21 wolfman2000 left 16:23 raiph left
dalek p: 4762987 | jnthn++ | 3rdparty/sha1/sha1. (2 files):
Pull in and twiddle a public domain SHA-1 implementation.
16:29
p: c1567ab | jnthn++ | / (3 files):
nqp::sha1(...)
p: a9b908a | jnthn++ | src/NQP/Grammar.pm:
Switch NQP to use a SHA-1 hash of the soruce as the serialization context identifier, not a timestamp. This, along with a similar patch to Rakudo, should help with some of the bogus wrong-version issues we've been seeing with pre-compilation, while still forcing re-compilation to happen when it is needed.
p: fa287ec | jnthn++ | src/NQP/ (2 files):
Use $*W for the world in NQP also, for consistency with how we now do it in Rakudo.
kudo/nom: fcbec55 | jnthn++ | tools/build/NQP_REVISION:
Bump to latest NQP.
kudo/nom: 22d23a8 | jnthn++ | src/Perl6/Grammar.pm:
Use SHA-1 of the source instead of a timestamp for the serialization context ID, which should be more relaxed and require less unneeded re-compilations. Should help with some of the pre-compilation issues.
jnthn phenny: tell tadzik hopefully 22d23a8 clears up some of the pre-comp issues we've been seeing. 16:30
phenny jnthn: I'll pass that on when tadzik is around.
16:39 ksi joined, thou left 16:44 clintongormley1 left 16:46 GlitchMr42 joined 16:50 GlitchMr left 16:53 lichtkind joined 16:55 GlitchMr42 is now known as GlitchMr 17:01 kboga joined
tadzik oh hai 17:01
phenny tadzik: 16:30Z <jnthn> tell tadzik hopefully 22d23a8 clears up some of the pre-comp issues we've been seeing.
tadzik I hope so, nice :) 17:03
kboga hey jnthn, while technically not a bug, i think github.com/perl6/nqp/commit/fa287ec60e did something unintentional: $*SCOPE -> $*WOPE
jnthn kboga: oops!
tadzik :D
kboga :D
jnthn ...and it did it so consistently that all the tests still passed :D
tadzik how th did it happen? :P 17:04
17:04 colomon left
moritz probably a global search for SC or so :-) 17:05
s:g/SC/W/ 17:06
jnthn Right :)
Well, $*SC to $*W :)
Fixed locally, testing ;)
tadzik huh, I thought that changed $*ST 17:07
jnthn tadzik: In nom, we always called it ST (SymbolTable). NQP knew it as SC (Serialization Context) 17:08
dalek p: 103f44d | jnthn++ | src/NQP/ (2 files):
I accidentally s/$*SCOPE/$*WOPE/. kboga++ for noticing!
17:09
tadzik oh, ok
jnthn Anyway, now it's HLL::World, NQP::World, Perl6::World and $*W throughout. :)
My wopey mistake aside, I hope this reduces confusion. :)
17:15 alvis left 17:22 sayu joined 17:27 kboga left 17:31 MindosCheng joined
moritz Hello::World! 17:34
tadzik Hello::Moritz! 17:36
jnthn heh :) 17:39
17:44 mtk left
sorear good * #perl6 17:46
(Does anyone know TimToady's status?) 17:48
tadzik Hello::Sorear
17:51 mkramer left
TimToady still has shingles-induced ADD and a houseful of visiting distractions 17:51
phenny TimToady: 16 Dec 19:43Z <sorear> tell TimToady I am wondering why assertion:variable uses <EXPR(%LOOSEST)>. Is <$foo = $bar> supposed to mean something?
TimToady: 07:30Z <sorear> tell TimToady STD parses both {*} and [*] in regexes, but S05 only specs {*}. Which should win?
17:52 mkramer joined
TimToady [*] can go away 17:54
TimToady doesn't remember much about assertion:variable's intentions
TimToady is about a week behind in backlogging... 17:55
TimToady has mostly been up to physical labor but not mental; cephalic shingles takes a month or two to recover from 17:56
jnthn Ouch :( 17:59
TimToady: Sounds nasty. :( Hope the recovery goes smoothly, even if it'll take a bit... 18:00
TimToady so I can answer easy questions, but things that take deeper rumination tend to go astray 18:02
18:03 replore left 18:04 replore_ joined
dalek ast: 3d3f9a2 | moritz++ | S32-exceptions/misc.t:
initial tests for typed exceptions; very unstructured for now
18:08
18:11 mj41 left 18:14 mkramer left 18:15 mkramer joined
tadzik jnthn: I still get Incorrect pre-compiled version of /home/tadzik/src/perl/panda/ext/JSON/Tiny.pm loaded with fresh panda installation :/ 18:16
18:17 am0c left
tadzik oh, wait 18:18
why does it complain about ext/JSON/Tiny? :/
so it doesn't like to be ran againt a different version than the one it was compiled against
dalek d: dc62e1d | sorear++ | STD.pm6:
Remove metachar:sym<[*]> (TimToady says it is a fossil)
sorear TimToady: The regex code looks for '{*}' as a string, without whitespace; should non-regex protos require the same syntax? 18:20
(Do you know offhand if the asymmetry is an oversight)
18:21 ksi left
jnthn tadzik: er, and if it's still doing it then it means the *source* of those two is different, I think... 18:22
tadzik: Are they out of sync?
tadzik: Before it woudln't run against *anything* other than what it was compiled against.
tadzik: Now it's relaxed to "should be same source code"
tadzik jnthn: I suppose the JSON::Tiny bundled with panda is quite old 18:23
but well, it shouldn't be compiling it against it
it is used to _run_ panda, which will then copy panda someplace else and compile it using the JSON already built and installed
I guess updating ext/JSON is more of a workaround than a real solution 18:24
or is it? 18:25
jnthn tadzik: I'm just wondering if something, somewhere is then compiling against a different JSON::Tiny than you think it is. 18:26
tadzik it'd seem so that ext/JSON/Tiny is used not only to run the bootstrap
jnthn tadzik: Yeah. 18:27
tadzik: Which I guess is not what you intended.
tadzik PERL6LIB=$PWD/ext:$PWD/lib perl6 bin/panda install .
let me guess: Panda::Builder pushes stuff at the *end* of PERL6LIB...
jnthn Could explain it :)
tadzik hm, nope
my $p6lib = "{cwd}/blib/lib:{cwd}/lib:{%*ENV<PERL6LIB>}"; 18:28
but that explains it too
JSON::Tiny is in PERL6LIB, then we compile panda against... eww
we can't really pop ext/ off PERL6LIB in the middle of the panda run
okay, so bootstrap can just use $PWD after PERL6LIB 18:30
dalek ecza: 93ea52a | sorear++ | src/ (2 files):
Remove [*] stub
tadzik let's see
18:30 localhost left 18:32 localhost joined
cognominal jonathan, what is needed 1/ to get --target=parse working 18:39
jnthn 18:40
tadzik eww, this bootstraping staff is harder than I thought it is
I'll look at it tomorrow, less tired
cognominal my question is probably related to the bootstrapping 18:41
tadzik no worries, I only mean panda bootstraping
cognominal $ perl6 --target=parse -e 'say "hi"'
Could not locate compile-time value for symbol StaticLexPad
tadzik jnthn: so if I compile panda against a JSON::Tiny v3, and then I update JSON::Tiny to v4, panda just breaks? 18:44
jnthn cognominal: Figuring out where that error is coming from...
cognominal: 'cus I ain't sure without going digging. :)
tadzik: If you pre-compiled v3, and update it to v4, then re-compilation is needed.
tadzik: I mean, why would you not need to do it? 18:45
tadzik: We can look at who is responsible for maintaining the pre-compilation cache.
tadzik jnthn: I mean: I install panda compiled against a random JSON::Tiny, then I update JSON::Tiny to some other random version, and everything breaks?
and I have to rebootstrap panda and everythign?
jnthn tadzik: If you're pre-compiling panda and you update one of its pre-compiled dependencies, then yeah, it's going to be a problem. 18:46
tadzik okay
jnthn tadzik: At least you get told about it now.
tadzik true 18:47
jnthn tadzik: In ng I remember quite a few times where we silently used old pre-compiled versions of things and got very obscure errors.
tadzik still, I have no idea how to handle that properly and efficiently
jnthn tadzik: I can see two ways to go on it
cognominal my other gripe is to access EXPR method (which is a nqp symbol) from a perl6 grammar.
18:48 mkramer left
jnthn tadzik: Either the installer worries about triggering needed re-compilation of things that depend on a module that gets updated. 18:48
tadzik: Or we never pre-compile by hand and make Rakudo responsible for maintaining the cache.
tadzik don't we have long-term plans for the 2nd? 18:49
18:49 mkramer joined
tadzik the 1st seems quite nasty to me :/ 18:49
and is probably the only efficient way at the moment
jnthn tadzik: Yeah, though I *think* Pm was a bit uneasy about the 2nd. I want to understand exactly why before I go and put it in. 18:50
tadzik I see
I can just make Panda::Builder::build a no-op for now
18:56 ksi joined 19:01 risou is now known as risou_awy 19:03 simcop2387 left 19:05 packetknife joined, simcop2387 joined
sorear rakudo: $_ = 'foo $16 bar'; s[ '$' <( \d+ ] *= 2; say $_ 19:07
p6eval rakudo 22d23a: OUTPUT«===SORRY!===␤Unable to parse postcircumfix:sym<[ ]>, couldn't find final ']' at line 2␤»
jnthn std: $_ = 'foo $16 bar'; s[ '$' <( \d+ ] *= 2; say $_ 19:10
p6eval std be1f10e: OUTPUT«ok 00:01 124m␤»
jnthn ...wtf.
19:10 mkramer left
jnthn *I* can't parse that :) 19:10
19:10 araujo left
lichtkind moritz: ping 19:11
19:11 mkramer joined, mkramer left
sorear jnthn: S05:4387 19:11
jnthn sorear: But that says 19:12
s:g[\$ <( \d+ )>] *= 2 19:13
sorear: I don't see the closing )> in what you pasted. What am I missing?
s/pasted/tried
std: $_ = 'foo $16 bar'; s[ '$' <( \d+ )> ] *= 2; say $_ # this makes sense to me
p6eval std be1f10e: OUTPUT«ok 00:01 124m␤»
jnthn nom: $_ = 'foo $16 bar'; s[ '$' <( \d+ )> ] *= 2; say $_ # this makes sense to me
p6eval nom 22d23a: OUTPUT«===SORRY!===␤Unable to parse postcircumfix:sym<[ ]>, couldn't find final ']' at line 2␤»
jnthn Though nyi 19:14
sorear jnthn: <( and )> are not actually pairing operators
and )> at the end of a match is redundant
jnthn ...ouch.
sorear at least they didn't used to be 19:15
jnthn sorear: Where is <( actually defined in S05? I can't find it... 19:16
sorear 1857 19:17
19:17 packetknife left
sorear right below "The following tokens include angles but are not required to balance" 19:17
jnthn ah, I see 19:20
Well, apart from the bit on how they interact with backtracking, but that's prolly 'cus my brain is tired :)
I like the feature. Not so sure I like the syntax for it ;-)
19:21 colomon joined
sorear o/ colomon 19:21
lichtkind hai @all
colomon \o 19:22
sorear hello lichtkind 19:24
19:24 araujo joined
lichtkind sorear: :) 19:24
19:26 araujo left, araujo joined, araujo left, araujo joined
sorear jnthn: Do you know how <~~0> and <~~> are supposed to interact with capturing? 19:28
lichtkind is ~~0 an op ?
sorear jnthn: 1824 suggests that <~~0> might result in adding $1
lichtkind: S05:1804
19:28 araujo left 19:29 araujo joined 19:30 cognominal left
jnthn sorear: Hmm. It is suggestive of that. I don't actually know whether that's an accident of the example 19:33
sorear: I worry more about the named case
19:33 cognominal joined
jnthn <foo> d <~~foo> 19:33
Neither of those are quantified, but now should we get a list of results?
lichtkind sorear: thank you i didnt know that 19:34
sorear jnthn: It's suggestive but I don't think I can usefully generalize from it. 19:35
jnthn: See also the parenthetical on line 1497
jnthn sorear: Yeah, it feels unintentional to me
sorear Also I think 1513 is a real fossil 19:36
jnthn (1497) indeed, <~~0> introducing a capture feels inconsistent and surprising.
(fossil) yes. 19:37
sorear hmm 19:38
jnthn If you want a $1, you can always do (<~~0>)
Which is much more explicit.
ooc, how do you plan to implement <~~0> ?
sorear niecza: say "a1b2c3xyz" ~~ / <[a..z]> \d <&?BLOCK>? /
p6eval niecza v12-60-g93ea52a: OUTPUT«(timeout)»
sorear jnthn: I hadn't gotten there yet really
jnthn sorear: OK. The *easy* way is probably just refer back to the relevant piece of AST. 19:39
Then the compiler needn't handle this case specially.
<~~> is just "call self again"
sorear I wonder why my last test failed 19:40
jnthn Not sure...you'd think it'd hit end of string at some point.
(and thus refuse to recurse further)
dinner here, bbiab. Then...NativeCall hacking time! :) 19:42
sorear jnthn: actually it doesn't recurse at all 19:45
I wish the mono thread dumper was more reliable
19:48 sayu left
dalek ecza: 0a764b6 | sorear++ | lib/Kernel.cs:
Add sanity check to avoid infinite looping in exception dispatch when the call graph contains a cycle
19:50
sorear now, uh, to put it mildly, this should not happen 19:51
oh, hmm. 19:52
&?BLOCK is getting a reference to the mainline code, but the call system assumes the mainline is called _once_
niecza: say "a1b2c3xyz" ~~ regex { <[a..z]> \d <&?BLOCK>? }
p6eval niecza v12-60-g93ea52a: OUTPUT«#<match from(0) to(6) text(a1b2c3) pos([].list) named({}.hash)>␤»
sorear \o/
now that an actual block is being used it works :) 19:53
19:59 pkkm left 20:06 Trashlord left 20:12 pkkm joined 20:14 replore_ left
dalek ecza: ac66b89 | sorear++ | / (4 files):
Implement <( and )>
20:19
sorear phenny: tell jnthn /(<foo>) <~~0>/ /(<foo>) (<~~0>)/ /(<foo>) $1=<~~foo>/ What do you imagine the capture trees from these three regexes as? 20:23
phenny sorear: I'll pass that on when jnthn is around.
20:23 ksi left
sorear rakudo: say Match.^methods(:local) 20:24
p6eval rakudo 22d23a: OUTPUT«prematch postmatch caps chunks Str Numeric Bool ACCEPTS perl gist orig from to CURSOR ast␤»
sorear rakudo: say Match.^parents
p6eval rakudo 22d23a: OUTPUT«Capture() Cool() Any() Mu()␤»
20:29 Trashlord joined 20:36 ksi joined 20:42 Trashlord left
moritz sorear: I don't think <~~0> captures anything, because it starts with punctuation 20:44
lichtkind: pong
20:45 packetknife joined
moritz nom: $@ 20:46
p6eval nom 22d23a: OUTPUT«===SORRY!===␤Non-declarative sigil is missing its name at line 1, near "$@"␤»
moritz nom: $"
p6eval nom 22d23a: OUTPUT«===SORRY!===␤Non-declarative sigil is missing its name at line 1, near "$\""␤»
moritz std: $"
p6eval std dc62e1d: OUTPUT«===SORRY!===␤Unsupported use of $" variable; in Perl 6 please use .join() method at /tmp/4cKhyS9K8U line 1:␤------> $"⏏<EOL>␤Parse failed␤FAILED 00:01 119m␤»
dalek kudo/nom: b57f60e | moritz++ | / (3 files):
make throw() a method in Perl6::World

Also run a test for typed exceptions
20:47 molaf joined, Trashlord joined
colomon New Advent post up, proofreading deeply appreciated, as I am both sick and surrounded by company. 20:54
perl6advent.wordpress.com/2011/12/1...andelbrot/
I somehow forgot to add three more pictures I generated for the article.
moritz colomon++ 20:56
I've only skimmed it, too tired for proper proof reading
nom: $\
p6eval nom 22d23a: OUTPUT«===SORRY!===␤Non-declarative sigil is missing its name at line 1, near "$\\"␤»
moritz std: $\ 20:57
p6eval std dc62e1d: OUTPUT«===SORRY!===␤Unsupported use of $\ variable; in Perl 6 please use the filehandle's :ors attribute at /tmp/A9tq4lYqqq line 1:␤------> $\⏏<EOL>␤Parse failed␤FAILED 00:01 119m␤»
moritz rakudo seemes to have regressed on a lot of those error messages
21:01 molaf left 21:09 GlitchMr left
sorear colomon++ 21:14
proofreeding&
21:15 pkkm left
sorear colomon: &.done-bc should be &.done-cb 21:16
moritz jnthn: any objections to adding an accessors for $!orig in NQPCursorRole or NQPCursor?
jnthn: that way I could create line numbers from the cursor directly, without going through a match (usefor the the <obs> rule in Perl6::Grammar) 21:17
sorear I didn't see anythign else 21:18
moritz hm, doesn't really seem to help either :( 21:21
jnthn moritz: Note that Perl6::Grammar is still using the older regex engine. 21:23
phenny jnthn: 20:23Z <sorear> tell jnthn /(<foo>) <~~0>/ /(<foo>) (<~~0>)/ /(<foo>) $1=<~~foo>/ What do you imagine the capture trees from these three regexes as?
moritz jnthn: ok, in method obs() in Perl6::Gramar, how do I get my hands on a $/ object? 21:24
jnthn sorear: Eww. Those would probably make by "just reference the AST from the earlier capture" approach problematic...since that chunk of the AST would want to capture.
moritz: If it's a method, you don't have one - you just have self which is a cursor.
moritz: What do you need in particular? 21:25
moritz: Is there not a self.pos() already?
moritz jnthn: I need $/.orig and $/.from 21:26
sorear jnthn: what uses which grammar engine, and what are the differences between them?
moritz yes, self.pos, would be good enough 21:27
jnthn sorear: Rakudo still uses nqp-rx's grammar engine + mods to make it use 6model objects.
moritz sorear: Perl6::Action still uses the old regex engine, but with 6model object
jnthn sorear: wait, that was unclear
sorear: Rakudo still uses nqp-rx's grammar engine + mods to make it use 6model objects for parsing Perl 6.
moritz erm, Perl6::Grammar
jnthn sorear: It uses QRegex for a user's grammars and regexes.
moritz but regexes in rakudo user land use qregex
jnthn My goal for the January release is that it's all on QRegex. 21:28
Since it does LTM, is more efficient, and will literally eliminate 1000s of lines of PIR from our codebase. 21:29
sorear jnthn: docs/TODO.S05 has a very terse list of things I have issues with marked DUBIOUS or DISCUSS 21:30
jnthn moritz: cursor does have a .from method
sorear just fyi
jnthn: what should happen with / <foo> <( <bar> )> <baz> /; $/.chunks ? 21:31
there are captures outside $/.from ..^ $/.to
s/^/i.e. when /
moritz I don't think there are, in $/
jnthn sorear: The spec read to me like <( and )> just give you a different .to and .from 21:32
moritz $/ doesn't know anything about stuff outside <(...)>
jnthn moritz wants the less easy answer ;-)
moritz heh, seems jnthn and I have different ideas about that :-)
jnthn I can see having the stuff before and after captured could be useful 21:33
I mean, then you could substitute just a certain bit of text
sorear moritz: what happens in / (..) & (. <( .) / then? $0 straddles $/.from
jnthn But be able to capture and refer to bits on the other side of it.
er, on either side of it, I meant.
moritz sorear: hm, no idea
jnthn sorear: I've no idea how on earth one would implement tiebreaker 5 efficienlty. 21:34
Or sanely
Or...yeah, please say that can go away :)
moritz -> sleep 21:35
jnthn 'night, moritz
sorear jnthn: I'm not quite sure what it means even... 21:37
jnthn sorear: I think it's trying to say "augmented rules are considered below ones in the grammar in the first place" 21:38
sorear jnthn: I guess .caps and .chunks should warn if any captures overlap the edge of the match
jnthn And then trying to define an ordering between different monkey-patchings.
I guess you could get the meta-object to track such things.
Though even then the "distance" concept is weird.
sorear if it's not a total order, it's not useful as a final tiebreaker 21:39
jnthn sorear: Yeah, and I'm not totally convinced it can be. Plus I'm not convinced it's a useful tiebreaker anyway.
I mean, we encourage langauge derivation by subclassing or mixins.
sorear ditto
jnthn Both of which are already covered.
(by 3) 21:40
sorear: By the way, how did you handle augment with regard to the bounded serialization? 21:41
sorear jnthn: augment blocks are implicitly INIT phasers
jnthn sorear: wfm
21:41 mj41 joined
jnthn Dunno if TimToady'll have some objections to that interpretation... 21:42
Feels sane though.
sorear I'm sure he will. _I_ have objections to it.
But I couldn't think of anything better.
jnthn That's where I got to with it.
"This ain't ideal but every other option sucks harder."
All the items inside of an augment are declarative, though, so it's only the meta-object "wiring" that is happening at INIT time. 21:43
sorear Right, just a bunch of .^add_method and .^invalidate calls 21:44
(I think .^invalidate needs to disappear from the public API, but that's very todo)
jnthn Invalidation probably wants to be under the control of the meta-object. 21:45
OK, really time to try and dig into this native call array stuff...
...if I can remember the design of the thing I was half way through implementing when $dayjob struck. 21:51
imarcusthis yay, managed to render hello world with Mojolicious through Perlito 22:00
and the p5 backend
dalek p: e233dc4 | jnthn++ | src/6model/ (3 files):
Add function to the index repr ops table for getting the element stable.
22:01
22:13 bkolera joined 22:19 bluescreen10 left, bluescreen10 joined 22:24 nsh_ left 22:37 bkolera left, dorlamm joined 22:49 MayDaniel left 22:52 sbp joined 22:53 sbp left, nsh joined
dalek ecza: c6fb1d3 | sorear++ | / (2 files):
Remove Match[0] feature which no longer seems a net win
23:16
ecza: 7dedef9 | sorear++ | / (3 files):
Add Match methods: kv, keys, values, caps, chunks, prematch, postmatch
p: 530d322 | jnthn++ | src/NQP/Actions.pm:
Implement .REPR in NQP.
23:17
p: 52f0785 | jnthn++ | src/6model/reprs/CArray.c:
Helps to not have void as the return type if you want to return stuff...
p: 6401041 | jnthn++ | src/ (2 files):
First couple of ops for indexed repr funcs.
p: 31a8dc5 | jnthn++ | src/6model/reprs/CArray.c:
Fix bits/bytes thinko.
sorear jnthn: what is the current project stuff? how does a CArray repr function? 23:20
dalek kudo/nom: 40091ee | jnthn++ | src/core/operators.pm:
The type-object case of infix:<but> need not .clone().
kudo/nom: c4876ea | jnthn++ | / (2 files):
Bump to latest NQP.
kudo/nom: c7b0aa9 | jnthn++ | src/Perl6/Metamodel/Mixins.pm:
Mixins should preserve the representation of the object being mixed in to.
volaj: 6803a5a | jnthn++ | lib/NativeCall.pm6:
Put in first few bits of C array handling support. Doesn't do much yet, though it just managed to successfully access a C array of doubles passed returned to it.
23:21
jnthn sorear: The CArray representation mostly just keeps hold of a chunk of memory that it treats like a C array. 23:22
sorear: The native call engine just finds and passes along that pointer. Or, alternatively, makes an instance of the type in question and sticks the pointer in there. 23:23
It attempts to give you bounds checking if you create the array yourself. Of course, if it just comes back from C land, there's little it can do to help.
23:25 worr left
jnthn Implicit in all of this is that 6model is now starting to understand types of representation beyond "an object with attributes". Which is a helpful part of $research_project to work out how to bootstrap 6model from zero. 23:25
sorear What is the use model for this new representation? 23:26
I don't completely understand the last comment
jnthn sorear: The NativeCall library exposes a class that uses this representation.
sorear What is a representation other than a way of stuffing attributes into a memory block?
jnthn: so you can make a CArray in Perl, use it mostly like an Array, but have O(1) marshalling? 23:27
jnthn sorear: Mostly, I've realized that if you s/attributes/data/, you get some kind of "ubiquitous representation polymorphism". 23:28
sorear: Yes, the idea is you can work with it just like an array, but under the covers it's making sure you're getting something you can pass off to C. 23:29
So yes, O(1) mashalling.
sorear What do you mean by s/attributes/data/ ? 23:30
Are you saying that it is possible now to write classes which use means other than the attribute API to store data?
jnthn sorear: It was a substitution on your "What is a representation..." comment
sorear: Where I'm heading with this is, representation polymorphism seems to abstract nicely beyond just objects, but to data structures in general. 23:31
sorear A CArray is not an object?
jnthn Hmm, I'm explaining this badly... 23:32
Yes, it is an object.
What I'm trying to get at is that not all objects work on the basis of storing attributes.
Some of them want an array-ish interface. Like, CArray. 23:33
23:33 ksi left
jnthn Some of them, like P6int, have never stored attributes at all. Their only interest is boxing. 23:33
Representations are always about memory management/memory access. They're always orthogonal to type. But there's different "modes" of accessing memory. 23:34
Which might be boxing/unboxing, attributes, array-ish indexing, etc.
sorear Ah. 23:40
Are you planning to still have a limited set of repr operations?
sorear is simultaneously reading LoL.pm and trying to figure out what this is and how it works 23:41
jnthn Yes.
sorear Just adding (optional) index operations?
jnthn Well, I've broken out most of what I had before into sub-protocols. 23:42
So now a REPR implements a few common things they all have, plus optionally any of attribute access, boxing and indexing.
Uninstantiable (the most boring REPR ever) implements none of those. 23:43
sorear wonders if this means Rakudo will stop using RPAs 23:44
jnthn Yes, it's a step in that kind of direction too. Though if Parrot really *does* want to implement 6model then all of its PMCs will need to be "re-realized" in 6model terms. 23:45
sorear What exactly is LoL currently? 23:48
Where is nqp::p6list defined? 23:49
ah, found the second answer
jnthn sorear: I didn't quite figure LoL out yet. I know it gets special handling somewhere in the iterator code.
jnthn wonders when Pm will next drop by 23:50
It seems to suceed at not flattening. 23:51
Getting a write-up of this stuff is one of the things Pm mentioned to me that he's most wanting to do. 23:52
23:53 aindilis left
jnthn OK, time for me to relax a bit. Still recovering from two weeks of relatively intense $dayjob. 23:53
back tomorrow & 23:54
23:57 mj41 left