»ö« 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 | swarley: is there a difference between perl6 and nqp regex syntax? | 00:02 | |
00:03
lue joined
|
|||
swarley | Well, I mean for tokens an stuff, and I've not ever used Perl 6 regular expressions to be honest | 00:05 | |
and* | |||
raiph | hi lue | ||
lue | Why, upon bootstrapping panda after updating perl6, is there a ~/.perl6/2012.10-151-g112307b/bin I now need in my PATH in as well? | ||
raiph | lue: is nqp regex syntax the same as p6? | ||
lue | AFAIK, nqp regex syntax is basically P6's, but don't be surprised if something doesn't work. (Not Quite an expert in nqp, so I can't say for sure.) | 00:07 | |
00:09
swarley left
|
|||
lue | I can understand wanting to version-separate panda (considering it doesn't work anymore if you update), but why not turn the normal ~/.perl6 directories (~/.perl6/bin, etc.) into symlinks? | 00:10 | |
(come to think of it, there are a couple of other improvements I might make to panda...) | 00:12 | ||
raiph | lue: iirclog.perlgeek.de/search.pl?channe...mp;q=panda | 00:15 | |
s/ihttp/http/ | 00:16 | ||
00:16
swarley joined,
BillySeth left
|
|||
raiph | hi again swarley. i'm pretty sure nqp regex are the same syntax as perl 6 regex, except in code blocks ... and, for the most part, nqp code is a subset of perl6 | 00:18 | |
swarley | Well, I understand PCRE | ||
lue | For the record, my initial typings on panda were me being taken aback by being asked to amend my PATH (which I don't like doing freely) to a version-specific location, the implication being I have to do this with every update. | 00:19 | |
swarley | What I dont understand is this syntax pastebin.com/sHU4Sa0S | ||
japhb | swarley, PCRE is based on Perl 5 regex; Perl 6 grammers are different (similar basics, but more powerful, and with a cleaner and not-compatible syntax) | 00:20 | |
raiph | yeah, that's perl6 regex | ||
swarley | Okay, i suppose i mean rule syntax | ||
japhb | swarley: This is the official grammar/rule/token/regex spec for Perl 6: perlcabal.org/syn/S05.html | 00:21 | |
swarley | thank you very much | ||
japhb | np | ||
00:22
tokuhiro_ joined
|
|||
raiph | swarley: that's a great document; it's one of the language specification documents; it may well be overwhelming; you have other options for gaining information | 00:24 | |
nqp: say "hi" | |||
p6eval | nqp: OUTPUT«Confused at line 2, near "say \"hi\""current instr.: 'panic' pc 13089 (src/stage2/gen/NQPHLL.pir:4619) (src/stage2/gen/NQPHLL.pm:324)» | ||
japhb | raiph, nqp requires parens there | ||
lue | nqp: say("hi") | ||
p6eval | nqp: OUTPUT«hi» | ||
00:27
zjmarlow_ left
|
|||
lue & | 00:28 | ||
00:38
Pleiades` joined
00:45
whiteknight left
00:52
zjmarlow_ joined
|
|||
dalek | rl6-bench: 3525cb8 | (Geoffrey Broadwell)++ | bench: Allow extraction of specific release tags, instead of all of them |
01:05 | |
rl6-bench: 7f84c9c | (Geoffrey Broadwell)++ | components.json: Do local clones of parrot and nqp when building rakudo, instead of allowing full network clones from --gen-parrot |
|||
01:15
indasky__ joined
01:19
wamba left
01:32
spider-mario left
01:42
zjmarlow_ left
02:03
xinming left
02:05
xinming joined
02:07
tokuhiro_ left
02:08
bowtie left
02:11
tokuhiro_ joined
02:12
cognominal left
02:14
indasky__ left
02:15
tokuhiro_ left
02:19
cognominal joined
02:24
swarley left
02:30
tokuhiro_ joined
02:42
am0c joined,
tokuhiro_ left
02:43
tokuhiro_ joined
02:48
grondilu joined,
tokuhiro_ left
02:55
swarley joined
03:07
xdbr left
03:08
xinming left
03:13
grondilu left
03:18
xinming joined
03:52
orafu left,
orafu joined
04:07
skids joined
04:08
jaldhar joined
04:23
armitage81 joined
04:29
skids left
04:37
raiph left
04:38
Chillance left
04:41
armitage81 left,
gootle joined
04:43
tokuhiro_ joined
04:47
tokuhiro_ left
04:53
am0c left
|
|||
xenoterracide | is there anything like p5's __SUB__ (reference to the current subroutine) | 05:22 | |
sorear | &?ROUTINE | 05:28 | |
(p6 had it first) | |||
05:32
cognominal left
|
|||
xenoterracide | sorear++ | 06:04 | |
sorear: figured it had it first, I just din't know what I was looking for | |||
06:25
tokuhiro_ joined
06:55
swarley left
07:46
cognominal joined
07:47
tokuhiro_ left
07:48
tokuhiro_ joined
07:50
tokuhiro_ left,
tokuhiro_ joined
07:59
sisar joined
08:16
FROGGS joined,
flightrecorder joined
08:23
xinming left
08:24
GlitchMr joined
08:29
wamba joined,
domidumont joined
08:53
rindolf joined,
xinming joined
08:55
domidumont left
08:56
domidumont joined
08:59
zjmarlow_ joined
09:01
sisar left
09:04
xdbr joined,
SamuraiJack joined,
xinming left
09:07
kaare_ joined
09:08
zby_home_ joined
09:13
zjmarlow_ left,
zjmarlow_ joined
09:16
xinming joined
|
|||
FROGGS | morning pals | 09:16 | |
sorear | morning FROGGS | 09:22 | |
tipdbmp | How can I match only space characters (\s), that are not \n (newlines), cause it seems \s matched \n as well. | 09:25 | |
space characters = ' ', '\t', and probably more. | 09:26 | ||
FROGGS | <[\s]-[\n]> ? | 09:27 | |
just a guess | |||
r: say so "\n" ~~ <[\s]-[\n]> | 09:28 | ||
p6eval | rakudo 112307: OUTPUT«False» | ||
FROGGS | r: say so "\t" ~~ <[\s]-[\n]> | ||
p6eval | rakudo 112307: OUTPUT«False» | ||
xenoterracide | tipdbmp: why? just curious | ||
FROGGS | r: say so " " ~~ <[\s]-[\n]> | ||
p6eval | rakudo 112307: OUTPUT«False» | ||
FROGGS | meh | ||
xenoterracide | tipdbmp: not being all that familiar with p6 I wonder if things like /xms still apply | 09:29 | |
09:29
MayDaniel joined
|
|||
tipdbmp | Having fun with grammars, and noticed that \s matched \n but I want to show an error if if the "input" was something like A \nB instead of just A B. | 09:29 | |
xenoterracide | and so if you're asking about not seeing \n maybe your problem is that options like /ms aren't applied | ||
FROGGS | r: say so " " ~~ /<[\s]-[\n]>/ | ||
p6eval | rakudo 112307: OUTPUT«===SORRY!===Error while compiling block : Error while compiling op call: Error while compiling block : Error while compiling block : Unrecognized subtype 'zerowidth' in QAST::Regex cclass» | ||
FROGGS | r: say so " " ~~ /<[\s]>/ | 09:30 | |
p6eval | rakudo 112307: OUTPUT«True» | ||
FROGGS | okay, I dunno how | ||
tipdbmp | Why does "\n" ~~ /<[\s]-[\n]>/ give an error? | 09:33 | |
09:33
zjmarlow_ left,
zjmarlow_ joined
|
|||
FROGGS | maybe its not a valid syntax of the regex | 09:33 | |
the problem with perl6 regex is that you find pretty old stuff when googling for it | 09:34 | ||
tipdbmp | "b" ~~ /<[a..c]-[b]>/ # False | ||
i.e it works. | |||
FROGGS | r: "b" ~~ /<[a..c]-[b]> | 09:35 | |
p6eval | rakudo 112307: OUTPUT«===SORRY!===Regex not terminated at line 2, near ""» | ||
FROGGS | r: "b" ~~ /<[a..c]-[b]>/ | ||
p6eval | rakudo 112307: ( no output ) | ||
FROGGS | r: say so "b" ~~ /<[a..c]-[b]>/ | ||
p6eval | rakudo 112307: OUTPUT«False» | ||
FROGGS | r: say so "a" ~~ /<[a..c]-[b]>/ | ||
p6eval | rakudo 112307: OUTPUT«True» | ||
FROGGS | hmmm | ||
tipdbmp | What's so? =) | ||
boolean context? | |||
FROGGS | boolify the thing on the right | ||
huf | opposite of not | ||
09:36
zjmarlow_ left
|
|||
FROGGS | r: say so " " ~~ /<[a-c]-[b]>/ | 09:36 | |
p6eval | rakudo 112307: OUTPUT«===SORRY!===Unsupported use of - as character range; in Perl 6 please use .. for range, for explicit - in character class, escape it or place as last thing at line 2, near "c]-[b]>/"» | ||
FROGGS | r: say so " " ~~ /<[a..c]-[b]>/ | ||
p6eval | rakudo 112307: OUTPUT«False» | ||
FROGGS | r: say so " " ~~ /<[a..c]-[\n]>/ | ||
p6eval | rakudo 112307: OUTPUT«===SORRY!===Error while compiling block : Error while compiling op call: Error while compiling block : Error while compiling block : Unrecognized subtype 'zerowidth' in QAST::Regex cclass» | ||
FROGGS | bug? | ||
r: say so " " ~~ /\n/ | 09:37 | ||
p6eval | rakudo 112307: OUTPUT«False» | ||
FROGGS | r: say so " " ~~ /<[\n]>/ | ||
p6eval | rakudo 112307: OUTPUT«False» | ||
FROGGS | r: say so " " ~~ /<-[\n]>/ | ||
p6eval | rakudo 112307: OUTPUT«True» | ||
FROGGS | r: say so " " ~~ /<[\n]-[a]>/ | ||
p6eval | rakudo 112307: OUTPUT«False» | ||
FROGGS | hmmm | ||
09:38
zjmarlow__ joined
09:41
domidumont left,
domidumont joined
|
|||
FROGGS | made a bugreport | 09:46 | |
but I hate that RT -.- | |||
09:52
cognominal left
09:55
domidumont left
|
|||
GlitchMr | >>> "".join(sorted("qwertyuiop")) | 09:56 | |
oops | |||
wrong paste | |||
10:01
xinming left
10:04
birdwindupbird joined
|
|||
jnthn | morning, #perl6 | 10:17 | |
phenny | jnthn: 17 Nov 22:46Z <[Coke]> ask jnthn you recently worked on a bug /like/ rt.perl.org/rt3/Ticket/Display.html?id=77064 (114362) - this one has slightly different expected (by the OP) behavior. | ||
FROGGS | hi jnthn | 10:18 | |
sorear | good morning #jnthn | ||
jnthn | .oO( there's a channel where *I'm* the topic? oh my... :) ) |
||
FROGGS | it is good as long as the ppl dont stop talking when your appear | 10:20 | |
;o) | |||
jnthn | :) | 10:21 | |
10:29
moritz joined
10:31
zjmarlow__ left
|
|||
xenoterracide | how can I ask the meta object what methods it has? | 10:33 | |
10:34
xinming joined
|
|||
moritz | r: my $meta := 1.HOW; say $meta.HOW.method($meta) | 10:34 | |
p6eval | rakudo 112307: OUTPUT«No such method 'method' for invocant of type 'NQPClassHOW' in block at /tmp/Twksu1eBCE:1» | ||
moritz | r: my $meta := 1.HOW; say $meta.HOW.methods($meta) | ||
p6eval | rakudo 112307: OUTPUT«No such method 'gist' for invocant of type 'NQPRoutine' in method gist at src/gen/CORE.setting:5031 in sub say at src/gen/CORE.setting:7460 in block at /tmp/SXns63zmty:1» | ||
moritz | xenoterracide: did I understand correctly you want the meta object's methods, not the original object methods? | 10:35 | |
jnthn | Like that, but NQP routines don't know much about Perl 6 :) | ||
xenoterracide | moritz: yeah, I was just reading your code | ||
moritz | xenoterracide: which code? | ||
xenoterracide | moritz: what you put for the p6 eval | 10:36 | |
moritz | ah | ||
xenoterracide | though seems like currently doesn't work? | 10:39 | |
r: "".HOW.^methods | |||
p6eval | rakudo 112307: ( no output ) | ||
xenoterracide | r: say "".HOW.^methods | ||
p6eval | rakudo 112307: OUTPUT«No such method 'gist' for invocant of type 'NQPRoutine' in method gist at src/gen/CORE.setting:5031 in sub say at src/gen/CORE.setting:7460 in block at /tmp/ynvnAycnux:1» | ||
moritz | xenoterracide: oh, it works, it just doesn't work to print the list so easily | ||
xenoterracide | ah | ||
moritz | r: my @list := 1.HOW.^methods; say @list.elems | 10:40 | |
p6eval | rakudo 112307: OUTPUT«163» | ||
moritz | r: my @list := 1.HOW.^methods; for ^@list.elems { say @list[$_].name } | ||
p6eval | rakudo 112307: OUTPUT«No such method 'name' for invocant of type 'NQPRoutine' in block at /tmp/GIFG9CdVRI:1» | ||
moritz | r: my @list := 1.HOW.^methods; for ^@list.elems { say ~@list[$_] } | 10:41 | |
p6eval | rakudo 112307: OUTPUT«Cannot call 'prefix:<~>'; none of these signatures match::(str $a):(Str:D \a):(\a) in block at /tmp/iomDBp53IZ:1» | ||
jnthn should use his copious amounts of travel time in the next couple of weeks to design a decent solution to this... | |||
moritz | r: my @list := 1.HOW.^methods; for ^@list.elems { say nqp::p6box_s(nqp::set__PS(@list[$_])) } | ||
p6eval | rakudo 112307: OUTPUT«===SORRY!===Error while compiling block : Error while compiling op call: Error while compiling block : Error while compiling block : Error while compiling op call: Error while compiling op p6box_s: Error while compiling op set__PS: No registered operation handler … | ||
moritz | r: my @list := 1.HOW.^methods; for ^@list.elems { say nqp::p6box_s(nqp::assign__PS(@list[$_])) } | 10:42 | |
p6eval | rakudo 112307: OUTPUT«===SORRY!===Error while compiling block : Error while compiling op call: Error while compiling block : Error while compiling block : Error while compiling op call: Error while compiling op p6box_s: Error while compiling op assign__PS: No registered operation handl… | ||
moritz | r: my @list := 1.HOW.^methods; for ^@list.elems { say nqp::p6box_s(pir::set__PS(@list[$_])) } | ||
p6eval | rakudo 112307: OUTPUT«Null PMC access in set_string_native() in block at /tmp/O6TOw5lMrQ:1» | ||
xenoterracide thinks that someday $obj.^.^methods should work... it's the obvious? | 10:43 | ||
moritz | jnthn: could you explain QAST::Want to me? There are no docs for it. | 10:44 | |
it seems to be some way to support coercion to a particular type/format/whatever | 10:45 | ||
but there's not much code for that | |||
10:46
sisar joined
|
|||
jnthn | moritz: It's kind of like a switch statement based on context. | 10:47 | |
For example: QAST::Want.new( QAST::WVal.new(...), 'Ii', QAST::IVal.new(...) ) | |||
Here, we say that the default thing you get from this node is a WVal, but if the thing that will consume our result wants an integer (register or constant), then used the IVal instead. | 10:48 | ||
QAST::Want.new( $past, 'v', QAST::Op.new( :op('call'), :name('&sink'), $past ) ) | 10:49 | ||
moritz | doesn't that have to be QAST::BVal($past) for the last usage of $past? | ||
jnthn | This one says "normally emit just $past, but if we're in a void context (nothing will use the result), then instead emit the call | 10:50 | |
moritz | I kind thought you're not allowed to reuse a qast tree just like that | ||
*kinda | |||
jnthn | The rules are a little more interesting than that. :) | 10:51 | |
But with Want, it promises to only ever actually follow one of the branches. | |||
So re-use doesn't matter | |||
moritz | ok | ||
jnthn | Also $past need to have been a QAST::Block | ||
The big problem with re-using a QAST::Block is you get the block compiled twice | |||
moritz | right | ||
so QAST::Want is a *compile time* switch statement, right? | 10:52 | ||
jnthn | Correct. | ||
QAST::Compiler decides which child it wants. | |||
For example, see the proto method in there, and also the stuff dealing with void context in compile_all_the_stmts | 10:53 | ||
GlitchMr | perl6: say 3 !!= 3 | 10:54 | |
p6eval | niecza v22-32-gee5dcf1: OUTPUT«===SORRY!===An infix may not start with !! at /tmp/xrDHn2vYHE line 1:------> say 3 !!=⏏ 3Parse failed» | ||
..rakudo 112307: OUTPUT«True» | |||
GlitchMr | Interesting | ||
10:55
xinming left
|
|||
GlitchMr | Niecza thinks it's second part of ternary operator. Rakudo thinks it's opposite of != (read: ==). | 10:55 | |
moritz | jnthn: can i emit the equivalent of a nqp::can as QAST::Op(:op<can>) ? | ||
GlitchMr | std: say 3 !!= 3 | ||
p6eval | std d38bbd0: OUTPUT«===SORRY!===An infix may not start with !! at /tmp/tx8ts3TtDN line 1:------> say 3 !!=⏏ 3Parse failedFAILED 00:00 42m» | ||
jnthn | moritz: missing a .new :) | ||
moritz: But yes. | |||
moritz | erm, yes | ||
GlitchMr | perl6: say 3 ![!=] 3 | ||
p6eval | niecza v22-32-gee5dcf1: OUTPUT«Unhandled exception: Writing to readonly scalar at /tmp/qPaAT14EIf line 1 (mainline @ 3)  at /home/p6eval/niecza/lib/CORE.setting line 4211 (ANON @ 3)  at /home/p6eval/niecza/lib/CORE.setting line 4212 (module-CORE @ 578)  at /home/p6eval/niecza/li… | ||
..rakudo 112307: OUTPUT«True» | |||
moritz | jnthn: because I just saw an QAST::VM.new(:pirop('can IPs'), ...) | ||
GlitchMr | std: say 3 ![!=] 3 | 10:56 | |
jnthn | moritz: ooh...kill it! :D | ||
p6eval | std d38bbd0: OUTPUT«ok 00:00 42m» | ||
GlitchMr | What is ![!=] anyway? | ||
jnthn | GlitchMr: You can always bracket parts of a meta-operator | ||
GlitchMr | And why it doesn't work in Niecza? | 10:57 | |
jnthn | r: say (1,2,3) Z[*] (4,5,6) | ||
p6eval | rakudo 112307: OUTPUT«4 10 18» | ||
jnthn | No idea. | ||
moritz | maybe NYI | ||
jnthn | GlitchMr: If you had a ZTop operator and you wanted to use the Z meta-operator with it, but somebody had already created a ZZTop operator, you could be clear you wanted the meta-operator for doing Z[ZTop] for example. | 10:59 | |
11:13
sunnavy left
|
|||
dalek | kudo/nom: cecc9fa | moritz++ | src/Perl6/Actions.pm: replace QAST::VM with QAST::Op |
11:16 | |
11:19
sisar left
11:20
sunnavy joined
11:30
zjmarlow__ joined
11:34
spider-mario joined
11:39
Su-Shee joined
|
|||
Su-Shee | hello everyone. | 11:39 | |
FROGGS | hi | ||
moritz | \o FROGGS, Su-Shee | ||
GlitchMr | Just wondering, what editors are people on this channel for Perl 6? | 11:51 | |
Personally, I use Kate, but I'm wondering what other people use. | 11:52 | ||
using for Perl 6* | 11:54 | ||
jnthn | GlitchMr: notepad++ here | 12:07 | |
Stockholm & | |||
xenoterracide wonders why multi methods are explicit rather than implicit | 12:09 | ||
12:13
xinming joined
12:17
Moukeddar joined
12:18
bowtie joined
12:27
Kharec joined
|
|||
moritz | xenoterracide: to catch accidental redeclaration of methods | 12:27 | |
12:33
zjmarlow__ left
12:36
Psyche^ joined
12:39
Patterner left,
Psyche^ is now known as Patterner
12:51
Moukeddar left
13:08
xinming left
13:13
PacoAir joined
13:18
Kharec left
13:19
xinming joined
13:22
whiteknight joined
13:27
_ilbot left,
_ilbot joined
|
|||
tipdbmp | How does one check if a file exists? | 13:28 | |
13:28
xinming left
|
|||
moritz | r: say 'star/version'.path.e | 13:28 | |
p6eval | rakudo cecc9f: OUTPUT«True» | ||
moritz | r: say 'nosuchfile'.path.e | 13:29 | |
p6eval | rakudo cecc9f: OUTPUT«False» | ||
tipdbmp | Okay, tnx (vim 7.3 here, with the awesome perl6 syntax highlighting :P [which kinda laggs?]) | ||
13:32
imarcusthis left
|
|||
dalek | kudo/qast-sink-1: 5ad032d | moritz++ | src/Perl6/Actions.pm: first cut at sink context compiles the setting, but fails during startup |
13:36 | |
13:54
SamuraiJack_ joined
|
|||
nwc10 | jnthn: forgot to say. I'd infer Rakudo uses more memory (again) as a couple of days ago the Raspberry Pi took just over 24h to build Rakudo | 13:55 | |
anyway, good news | |||
rummaging round Andrea's mum's store of goodies looking for the power supply for an old parallel port scanner, bumped into a(nother) 5V micro USB power supply. | |||
So that now means I no longer have to *return* the phone charger I need to steal to power the external hard drive | 13:56 | ||
(network swap fails badly. Suspect dodgy USB drivers) | |||
13:57
SamuraiJack left
|
|||
nwc10 | also, curiously t-mobile used micro USB about a decade ago, but then switched *from* it to something custom | 13:57 | |
13:59
SamuraiJack_ left
|
|||
FROGGS | nwc10: t-mobile is not a vendor, just a reseller | 14:00 | |
14:04
xinming joined
|
|||
nwc10 | aha | 14:11 | |
14:29
dayangkun joined
14:30
dayangkun left
14:36
jaldhar left,
jaldhar joined
15:04
imarcusthis joined
15:17
Chillance joined
|
|||
TimToady | tipdbmp: maybe you're looking for \h, horizontal whitespace | 15:26 | |
n: say 3 ![!==] 3 | 15:28 | ||
p6eval | niecza v22-32-gee5dcf1: OUTPUT«True» | ||
TimToady | the problem with ![!=] in niecza is probably that != is a shorthand for !== | ||
but it's not sufficiently high-order to be used inside somehow | |||
or it just doesn't do the translation at the right spot | 15:29 | ||
also, it's not that it's confusing !! with the ternary operator, but that there is an explicit rule forbidding !! so that we *can* catch a missing ?? | 15:30 | ||
15:37
zjmarlow__ joined
15:49
spider-mario left
|
|||
tipdbmp | What are the equivalents for __FILELINE/PACKAGE__? | 15:54 | |
15:54
whiteknight left
15:59
skids joined
|
|||
moritz | r: say $?LINE | 16:05 | |
p6eval | rakudo cecc9f: OUTPUT«1» | ||
moritz | r: say ::?PACKAGE | ||
p6eval | rakudo cecc9f: OUTPUT«GLOBAL()» | ||
moritz | r: say $?FILE | ||
p6eval | rakudo cecc9f: OUTPUT«/tmp/AmekjwEERe» | ||
16:07
wamba left
|
|||
Su-Shee | moritz: are you doing a talk in march at the german perl workshop? | 16:10 | |
moritz | Su-Shee: I haven't submitted one yet | 16:12 | |
Su-Shee | moritz: will you/are you planning to? | ||
moritz | Su-Shee: not sure yet what to talk about | 16:13 | |
16:13
SamuraiJack joined
|
|||
moritz | Su-Shee: but it's likely that I'll attend, and at least submit one | 16:13 | |
Su-Shee | it's a very nice location. ;) | 16:14 | |
moritz | Su-Shee: and you still owe me a nougat trouffle :-) | 16:16 | |
*truffle | |||
Su-Shee | moritz: I'm planning to attend, it's basically served to me with a red carpet around the corner where I live, it can't get any more convenient :) | ||
16:17
SamuraiJack left
|
|||
Su-Shee | moritz: if you drop a hint in time, I can deliver ;) | 16:17 | |
16:19
SamuraiJack joined
16:23
wamba joined
16:30
bapa left
16:31
ChoHag joined
16:34
bapa joined
16:35
pmurias joined
|
|||
pmurias | hi | 16:35 | |
jnthn: what's the difference between orig and target on a cursor? | |||
16:43
raiph joined
16:54
zjmarlow__ left
17:00
wamba left,
snearch joined
17:01
snearch left,
snearch joined
17:04
snearch left,
birdwindupbird left,
snearch joined,
s1n joined
17:05
hash_table joined
17:06
snearch left
17:07
snearch joined
17:09
snearch left,
wamba joined
17:10
snearch joined
17:12
snearch left
17:22
pmurias left
|
|||
moritz | Su-Shee: I will :-) | 17:23 | |
17:28
ChoHag left
17:29
ChoHag joined
|
|||
jnthn | evening o/ | 17:32 | |
moritz | \o jnthn | 17:33 | |
I've now decided that for developing sink context, I'll only enable it with a command line option | |||
so that I don't have to debug the sunk-compiled setting first | |||
jnthn | phenny: tell pmurias orig is whatever the original input string was; target is it transcoded into something fixed width so we can scan it quickly. | ||
phenny | jnthn: I'll pass that on when pmurias is around. | ||
jnthn | moritz: Sounds sane. | 17:34 | |
nwc10: There's various things that could have made a difference, but it's hard to think of anything that'd make a really huge one. | 17:36 | ||
17:57
pmurias joined
|
|||
pmurias | jnthn: thanks | 18:04 | |
phenny | pmurias: 17:33Z <jnthn> tell pmurias orig is whatever the original input string was; target is it transcoded into something fixed width so we can scan it quickly. | ||
pmurias | jnthn: I'm implementing rules in js, and I'm not sure how to implement backtracking into rules, in pir there seems to be a stack of labels but I can't implement that in js | 18:07 | |
jnthn | pmurias: You can do it with an integer and switch statement. | 18:08 | |
And just keep a stack of integers. | 18:09 | ||
(the labels become case statements, and then you just fall through) | 18:10 | ||
pmurias | that would work | 18:11 | |
dalek | kudo/qast-sink-1: 3f12074 | moritz++ | src/ (3 files): only sink when --sink command line option is provided |
18:16 | |
pmurias | viv works by having rules return lists of cursors? | 18:18 | |
jnthn | Lazy lists. | 18:19 | |
In NQP, it always returns a cursor, which keeps around enough to know how to produce the next cursor if backtracking happens. | 18:20 | ||
pmurias | and how does niecza do it? | 18:21 | |
jnthn | Not sure | ||
18:28
jaldhar left,
jaldhar joined
|
|||
jnthn | time to find some dinner & | 18:31 | |
pmurias | what is cstack? | ||
moritz | pmurias: capture stack | ||
pmurias: it somehow[tm] tracks where each capture begins and ends | 18:32 | ||
jnthn | actually, c can also stand for cursor. it's cursors that live on it :) | ||
and the cursors know where the match started/ended. :) | |||
really ogne & :) | 18:33 | ||
18:50
spider-mario joined
18:52
zjmarlow__ joined
19:22
imarcusthis left
19:24
imarcusthis joined
19:36
imarcusthis left
19:42
imarcusthis joined
|
|||
tadzik | oh hai | 19:47 | |
moritz | oh tadzik | 19:48 | |
tadzik | oh shark | ||
19:50
colomon_ joined,
colomon left,
colomon_ is now known as colomon
19:51
colomon_ joined,
colomon left,
colomon_ is now known as colomon
19:52
colomon_ joined,
colomon left,
colomon_ is now known as colomon
19:53
colomon_ joined,
colomon left
19:54
colomon_ is now known as colomon,
rurban_ joined
|
|||
rurban_ | we got a little problem with parrot threads and empty parents in Parrot_interp_new() #856 | 19:55 | |
19:56
thou joined
|
|||
rurban_ | I've "fixed" parrot threads now for github.com/parrot/parrot/issues/856 on darwin. But we need to disallow subsequent empty parents for Parrot_interp_new(). Is this a problem? The workaround is to create a master interp and the childs have this as parent. | 19:57 | |
diakopter | why? (curious) | 20:06 | |
20:12
GlitchMr left
20:16
zjmarlow__ left,
GlitchMr joined
|
|||
dalek | ast: 60042a9 | moritz++ | S03-metaops/zip.t: RT #73948: Z, flattens in list context |
20:22 | |
sorear | good * #perl6 | ||
moritz | good morning sorear | ||
jnthn back | 20:24 | ||
o/ sorear | |||
mathw | \o/ wonderful people hello \o/ | 20:25 | |
tadzik | hello hello :) | ||
moritz | btw basic sinking works now | ||
jnthn | rurban_: I don't think we call that anywhere directly in NQP or Rakudo...unless you know otherwise. :) | ||
moritz: yay! | |||
moritz: Does it still bust setting compilation? | 20:26 | ||
moritz | note that I only sink subcalls and method calls for now | ||
jnthn: yes | |||
jnthn | Any clues why? | ||
rurban_ | jnthn: I just committed a better fix. No API changes needed. I just clarified a corner case with empty parents. | ||
jnthn is a bit surprised it does so, having looked at the patch. | 20:27 | ||
moritz | gist.github.com/4107222 | ||
jnthn: last I looked, it died during startup while concatenating some paths | 20:28 | ||
seems one of them was a Failure | |||
jnthn | Oh.. | ||
sorear | mathw: \o/ its been a while | 20:29 | |
mathw | sorear: busy busy busy! | ||
sorear | btw, does anyone remember TimTom? | ||
jnthn | Maybe it is actually a case of something putting a Failure in sink context (e.g. the bug is a bad assumption in the setting) | ||
moritz | jnthn: yes, maybe | ||
rurban_ | darwin: libtool -static -o libdyncall_s.a dyncall_vector.o dyncall_api.o dyncall_callvm.o dyncall_callvm_base.o dyncall_struct.o dyncall_callf.o dyncall_call.o. libtool: unrecognized option `-static' | ||
geekosaur | "darwin"? OS X? | 20:31 | |
moritz | std: 42 | 20:32 | |
p6eval | std d38bbd0: OUTPUT«ok 00:00 41m» | ||
mathw | Is anybody aware of any XML parsing work in Perl 6? | ||
rurban_ | ar -r works fine | ||
20:33
brrt1 joined
|
|||
moritz | jnthn: what do you think of extending the QAST::Want mechanism to closures, so that you do something like QAST::Want.new(QAST::IVal.new(:value(42)), 'v', sub { warn "Useless use of Int 42 in sink context" }) ? | 20:33 | |
jnthn | moritz: Doesn't sound too crazy. | 20:34 | |
moritz: Question is what it evaluates to... | 20:35 | ||
mathw notes: look first, THEN ask | |||
jnthn | As in, does it in this case just emit nothing? | ||
Guess it could... | |||
mathw: Maybe look on modules.perl6.org :P | 20:36 | ||
mathw | jnthn: yeah I'm not moving at top speed this evening... | ||
moritz | jnthn: well, if the closure returned a QAST::Node, it could be used, otherwise nothing is emitted | ||
jnthn | moritz: wfm | ||
tadzik | mathw: yeah, I've heard of like 2 implementations | 20:37 | |
mathw | it was inevitable somebody would do it | ||
moritz | $ ./perl6 -e '' | ||
===SORRY!=== | |||
postcircumfix:<{ }> not defined for type Failure | |||
mathw | I'm just very glad that if I want to try what I want to try I don't have to write an XML parser first | ||
'write an XML parser' is pretty far down my List Of Fun Things To Do With Perl 6 | |||
tadzik | mathw: feather.perl6.nl/~sergot/modules/ shows test results next to names :) | ||
may be of help | |||
moritz | my $prefix := $VM<config><libdir> ~ $VM<config><versiondir> ~ '/languages/perl6'; | 20:38 | |
that's the line that dies | |||
r: say $*VM<config> | |||
p6eval | rakudo cecc9f: OUTPUT«("git_describe" => "RELEASE_4_8_0", "sha1" => "7847e55203a7e06a54dc146fed5590751869ff05", "a" => ".a", "ar" => "ar", "ar_extra" => "", "ar_out" => "", "archname" => "i486-linux-gnu-thread-multi-64int", "arflags" => "cr", "as" => "as", "backtrace" => "1", "bigendian… | ||
jnthn | r: say $*VM<config><libdir>.WHAT | 20:40 | |
p6eval | rakudo cecc9f: OUTPUT«Str()» | ||
jnthn | r: say $*VM<config><versiondir>.WHAT | ||
p6eval | rakudo cecc9f: OUTPUT«Str()» | ||
jnthn | moritz: Wait, why $VM not $*VM? | ||
moritz | it complains about postcircumfix:<{ }> | ||
jnthn: it's the place where $*VM is installed | 20:41 | ||
jnthn | ah, ok | ||
moritz | jnthn: and there it's also available as $VM | ||
jnthn | --ll-exception? | ||
moritz | that's where I got the line from :-) | ||
jnthn | r: Failure.sink | ||
p6eval | rakudo cecc9f: OUTPUT«Cannot look up attributes in a type object in method <anon> at src/gen/CORE.setting:10154 in at src/gen/Metamodel.pm:2401 in any find_method_fallback at src/gen/Metamodel.pm:2389 in any find_method at src/gen/Metamodel.pm:925 in block at /tmp/zMp2OuZ32w… | ||
jnthn | Failure.new.sink | 20:42 | |
r: Failure.new.sink | |||
p6eval | rakudo cecc9f: OUTPUT«Not enough positional parameters passed; got 1 but expected 2 in method new at src/gen/CORE.setting:10126 in block at /tmp/NV9fvtps0q:1» | ||
jnthn | r: Failure.new("oh noes").sink | ||
p6eval | rakudo cecc9f: OUTPUT«No such method 'throw' for invocant of type 'Str' in method <anon> at src/gen/CORE.setting:10154 in at src/gen/Metamodel.pm:2401 in any find_method_fallback at src/gen/Metamodel.pm:2389 in any find_method at src/gen/Metamodel.pm:925 in block at /tmp/yqh… | ||
jnthn | bah :) | ||
moritz | r: sub f() { fail('foo') }; f().sink | ||
p6eval | rakudo cecc9f: OUTPUT«foo in method <anon> at src/gen/CORE.setting:10154 in at src/gen/Metamodel.pm:2401 in any find_method_fallback at src/gen/Metamodel.pm:2389 in any find_method at src/gen/Metamodel.pm:925 in block at /tmp/liw_tfK1n6:1» | ||
moritz | r: say Failure.^methods(:local) | 20:44 | |
p6eval | rakudo cecc9f: OUTPUT«new BUILD defined Int Num Numeric Bool Str gist <anon>» | ||
moritz | no sink yet; it triggers the exception through the fallback method | ||
jnthn | ah, ok | 20:45 | |
Thing is...the line we're looking at does a bind, not a call | |||
Unless the issue is with setting $VM somehow | 20:46 | ||
moritz | it does lots of calls | ||
two to infix:<~> | |||
several to postcircumfix:<{ }> | |||
jnthn | Yes but the statement itself isn't a call? | ||
moritz | no, it's not | ||
jnthn | oh, we're just transforming all calls... | 20:47 | |
But yeah, that still should certainly not come out vid. | |||
*void | |||
moritz | (I sink calls at the QAST level) | ||
well, now I'm trying to get more debug info out of it | |||
jnthn | Try doing a say $VM.WHAT before that line. | 20:48 | |
Or a $VM.perl | |||
moritz | $VM: Block.new() | 20:55 | |
20:55
armitage81 joined
|
|||
jnthn | hm, so something broke the hash/block distinction | 20:56 | |
20:57
SamuraiJack left
21:02
armitage81 left,
GlitchMr left
21:09
rurban_ left
|
|||
moritz | jnthn: does that use the $past<bare_block> mechanism? | 21:15 | |
cotto | gcc 4.7.2 doesn't seem to like variables named "typeid", which breaks nqp | 21:16 | |
21:16
zby_home_ left
|
|||
xenoterracide | can I mix in roles at new? | 21:17 | |
moritz | cotto: does it dislike type_id too? | ||
jnthn | moritz: Hm, perhaps. I'm pretty sure it looks at calls to infix:<,> and maybe infix:<=>> | ||
moritz: If the calls are getting wrapped, perhaps it's that. | |||
cotto | moritz, checking | 21:18 | |
moritz | jnthn: right | ||
jnthn | cotto: meh / | ||
:/ | |||
cotto | moritz, it seems happy with type_id | ||
moritz | then it's an easy fix | ||
seems to be just one place | |||
jnthn | sigils++ # avoid this problem | ||
cotto | It also requires either -fpermissive or some void* casts. | ||
jnthn | requires? | 21:19 | |
Or just warns without? | |||
cotto | explodes without | ||
jnthn | Where, ooc? | ||
cotto | VTABLE_set_pointer in nqp_dynop_setup | 21:20 | |
moritz | jnthn: in fact it checks elements under $past<past_block> | 21:21 | |
jnthn | moritz: Yeah, but that should be fine? | ||
I think that's happening is it looks at the top level call | |||
And now that top level call is wrapped | |||
In a QAST::Want | |||
cotto | a couple places in repr_registry.c (177, 209) | ||
moritz | not if $past is now a QAST::Want | ||
or does QAST::Want forward that stuff? | 21:22 | ||
jnthn | No | ||
moritz | should it, maybe? | ||
jnthn | But...I thought we just wrapped stuff at the top of the statement list? | ||
moritz | right | ||
jnthn | my $elem := $past<past_block>[1][0][0]; | 21:24 | |
This looks into the second node of the block, gets the first (and only) statement, and then tries to take it out of the QAST::Stmt node | 21:25 | ||
Now there's a QAST::Want in the way as well. | |||
moritz | $elem := $elem[0] if $elem ~~ QAST::Want | ||
jnthn | Riht. | ||
*right | |||
FROGGS | + | ||
21:25
rurban_ joined
|
|||
moritz | FROGGS: right :-) | 21:26 | |
moritz tries | |||
21:30
Kharec joined,
kaare_ left
|
|||
moritz | yay, unbroken \o/ | 21:33 | |
dalek | kudo/qast-sink-1: 5574863 | moritz++ | src/core/Failure.pm: Failure.sink makes the exception blow up |
21:34 | |
kudo/qast-sink-1: 3ee7808 | moritz++ | src/ (2 files): unbreak Hash/Block distinction |
|||
jnthn | \o/ | 21:37 | |
Now for the spectest ;) | |||
moritz | I'm building on my quadcore server now | ||
to spectest there | 21:38 | ||
jnthn | :) | ||
moritz | and I've locally reverted 3f12074d13a51b2602039ece5f95454055e8abd0 first | ||
so that it sinks by default | |||
jnthn | Wow, having sink context in this next relesae too would be awesome :) | ||
moritz | hm, four days until the compiler release | 21:39 | |
not unthinkable, but not a give either | |||
*given | |||
jnthn | aye | 21:43 | |
21:43
brrt joined
|
|||
moritz | and I don't know how easy or hard it will be to write a proper List.sink that does more than .eager | 21:43 | |
21:44
brrt1 left
|
|||
jnthn | moritz: I guess mostly it's not keeping the results of the block around. | 21:45 | |
brrt | r: my %hash = (foo => 'bar', quix => 'quam); say %hash.perl | ||
p6eval | rakudo cecc9f: OUTPUT«===SORRY!===Unable to parse expression in quote:sym<apos>; couldn't find final "'" at line 2, near ""» | ||
moritz | though as a first step, forwarding .sink to .eager might not be too bada first approximation | 21:46 | |
brrt: missing closing quote after 'quam | |||
brrt | my %hash = (foo => 'bar', quix => 'quam'); say %hash.perl; | ||
thanks moritz :-) | |||
r:my %hash = (foo => 'bar', quix => 'quam'); say %hash.perl; | |||
r: my %hash = (foo => 'bar', quix => 'quam'); say %hash.perl; | 21:47 | ||
p6eval | rakudo cecc9f: OUTPUT«("foo" => "bar", "quix" => "quam").hash» | ||
brrt | is a parcel or a closure the prefered way to make a hash? | ||
moritz | it seems sinking breaks autothreading right now | ||
brrt: use () for a flattening hash and {} for a hash in an item | 21:48 | ||
brrt | right, flattening, i forgot :-) | 21:49 | |
moritz | or at least some autothreading tests | ||
21:50
rindolf left
|
|||
moritz | anyway, sleep& | 21:51 | |
jnthn | 'night | 21:54 | |
22:10
Pleiades` left
22:14
spider-mario left
22:16
Pleiades` joined
|
|||
xenoterracide | privatepaste.com/3faa6928f5 seems that whatever arch rebuilt parrot for broke the ability to build rakudo... | 22:18 | |
I guess I should try a few other things | |||
lue | just out of curiosity, where did you run that build command? | 22:19 | |
22:20
zjmarlow__ joined,
PacoAir left
22:21
qu1j0t3 joined
|
|||
qu1j0t3 | hey, what's the impl language for perl6 these days? | 22:23 | |
is hugs still used much? | |||
i mean the compiler | |||
p6 compiler(s)* | 22:24 | ||
masak | qu1j0t3: Niecza is implemented in C# and Perl 6 on the CLR. | ||
jnthn | Rakudo is largely written in Perl 6 and NQP, plus some C low level bits. | ||
Nie...ah, masak got their first. | |||
(NQP being a Perl 6 subset) | |||
xenoterracide | lue: my home directory | ||
qu1j0t3 | masak: jnthn thanks. | ||
masak | qu1j0t3: given your question, I'm gussing you last paid attention to Perl 6 around 2005-2006 ;) | 22:25 | |
qu1j0t3 | so Hugs is kind of out of the picture? it's /that/ long ago that I lurked here. | ||
masak: well deduced, sir. | |||
jnthn | (and nqp is written in itself and bootstrapped these days) | ||
lue | Ah. I was thinking maybe it was some weirdness with running inside the git repo. | ||
masak | qu1j0t3: you might be thinking of Pugs, Perl 6 implemented on top of Haskell. | ||
pugs: say "still alive!" | |||
p6eval | pugs: OUTPUT«still alive!» | ||
lue | (specifically, rakudo's) | ||
qu1j0t3 | yes, Pugs. | ||
Pugs ran in Hugs, right? | |||
sorear | pugs these days runs on GHC | 22:26 | |
masak | it has a REPL looking very much like Hugs's. | ||
qu1j0t3 | sorear: ah! thanks. | ||
how current is pugs? | |||
sorear | pugs has been mostly unmaintained for a couple years | ||
masak | well, it's been maintained in an amortizing kind of way, keeping it up-to-date with the latest GHCs. | 22:27 | |
oh wait, that's the opposite of amortizing, isn't it? :) | 22:28 | ||
sorear | I do not think I have heard amortizing used that way before | ||
masak | au++'s been paing the GHC rent on it but not implementing new stuff, nor tracking the Perl 6 spec as it changed. | ||
paying* | |||
sorear | Audrey is in any case not been much involed in pugs lately | ||
22:29
Moukeddar joined
|
|||
sorear | that was almost grammatical | 22:29 | |
jnthn | .oO( a-mort-izing: non-death-maintaining ) |
||
xenoterracide attempts a nom/gen-nqp to see if it's been fixed more recnetly | |||
sorear | Moukeddar! \o/ | ||
Moukeddar | o/ sorear | ||
masak | jnthn: actually, the etymology has to do with "mort"="death" | ||
jnthn | Oh! | ||
masak | Moukeddar! \o/ | ||
Moukeddar | i just funished implementing a simple messaging Bus :) | ||
masak, o/ , Ma man! | 22:30 | ||
jnthn | I thought I was punning, but no, etymology got their first.. :P | ||
*there...wow. | |||
masak .oO( etymology also got they're first ) | |||
jnthn | I guess I should sleep given I'm meant to teach in the morning. :) | ||
'night, #perl6 | |||
masak | 'night, jnthn. | ||
Moukeddar | night jnthn | ||
sorear | jnthn means to teach in the morning? | 22:31 | |
this may prove a useful verb | 22:32 | ||
lue | xenoterracide: I just tried compiling rakudo-debugger, and it worked. (With non-gen'd nqp and parrot). The only differences I notice is that 1) I seem to be using the rakudo, etc. from /usr/local/bin, and 2) I compiled straight from the repo, and I don't think you did, judging from the paste. | ||
Moukeddar | did i log into the wrong room ? Etymology ? | ||
qu1j0t3 | sorear: certainly vowel-conserving. | ||
Moukeddar: i'd have thought that literary digressions were assured with TimToady around. | 22:33 | ||
masak | Moukeddar: we're all a bit interested in languages here. | ||
'night, #perl6 | |||
qu1j0t3 | linguistic* | ||
masak: ciao. thanks. | |||
xenoterracide | lue:I'm building from repo now, but I was building from the AUR pkgbuilds, arch maintains parrot, but I think they may have broken something today | ||
Moukeddar | welln #perl6 just keeps amazing me ^_^ | 22:34 | |
xenoterracide | or this has to do with what was being talked about earlier | ||
sorear keeps confusing AUR with AUD | |||
lue | Ah. Well, I use gentoo, but the rakudo toolchain is one of the couple of things I keep updated myself :) (along with lilypond and the latest LLVM) | 22:35 | |
xenoterracide tries --gen-parrot too | |||
I abandoned gentoo ages ago, but the OS isn't really here nor there, if doing --gen-parrot works then I'll probably have to figure out what changed when they rebuilt parrot | 22:38 | ||
22:44
brrt left
22:45
Moukeddar left
22:50
whiteknight joined
22:56
rurban_ left
23:10
MayDaniel left
23:17
pmurias left
23:20
zjmarlow__ left
|