»ö« 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 failedFAILED 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 failedFAILED 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
|