|
»ö« | perl6.org/ | nopaste: paste.lisp.org/new/perl6 | evalbot usage: 'perl6: say 3;' or rakudo:, alpha:, pugs:, std:, or /msg p6eval perl6: ... | irclog: irc.pugscode.org/ | UTF-8 is our friend! Set by lichtkind on 5 March 2010. |
|||
|
00:05
eternaleye left
|
|||
| diakopter blinks | 00:11 | ||
|
00:11
eternaleye joined
|
|||
| diakopter | TimToady: maybe - is an optional prefix on a decimal/integer token, so LTM gets it. | 00:12 | |
| TimToady | that'll screw up -2**4, which is usually meant -(2**4) | 00:13 | |
| since in math it's usually written -2⁴ | 00:14 | ||
| we might be able to get away with ^10 as a literal though | 00:15 | ||
| won't help with -8.abs though | |||
| we started going that direction with -3+2i but it was turning into a Bad Idea | 00:16 | ||
| diakopter | ---8.abs "emphatically negative" | 00:17 | |
| TimToady | and -1/7 was a mess, as you discovered :) | ||
| diakopter | yes | ||
| TimToady | so we'll probably leave quo the status | 00:18 | |
| diakopter | or 0-8.abs | ||
|
00:19
smash__ left
|
|||
| TimToady | there are lots of ways to fix it, but they all seem to be worse than (^10).foo | 00:19 | |
| ruoso wonders if there is another unicode character to represent prefix:<-> | |||
| ruoso runs for cover before the crowd approaches with torchs | 00:20 | ||
|
00:26
yinyin joined,
am0c left
|
|||
| eternaleye | ruoso: | 00:28 | |
| ergh | |||
| ー | |||
| — is another | |||
| (compose, -, -, -) | 00:29 | ||
| TimToady | obviously, ☹ for negative and ☺ for positive | 00:31 | |
| PerlJam | heh | 00:32 | |
| lue | hello! | ||
| looks like I missed a bit of non-ASCII discussion. darn :) | 00:35 | ||
| sorear | hello | 00:36 | |
| sorear appears | |||
| diakopter | like an apparition | ||
| isBEKaml | apparitions never say hello. :) | 00:37 | |
| lue | a quantum appearance, to be precise :) | ||
| isBEKaml winds up. The day has dawned brighter. Let's see what it holds. Gotta get to work. :) | 00:42 | ||
| isBEKaml is gone.... o/ | |||
|
00:42
am0c joined,
isBEKaml left
|
|||
| dalek | ok: a8ccc78 | chromatic++ | src/subs-n-sigs.pod: Edited half of this section, mostly for clarity and style. This could use some word parameter versus argument. |
00:44 | |
|
00:46
Exodist joined
00:52
kst left
00:53
kst joined,
k23z__ left
01:08
orafu left
01:12
lichtkind left
01:14
bradb joined,
bradb left
01:15
bradb joined
01:16
cdarroch left
01:20
lestrrat is now known as lest_away
01:25
ShaneC left,
ShaneC joined
01:28
ShaneC left
01:31
bradb left
01:32
wknight8111 left
|
|||
| snarkyboojum | phenny: tell masak, --target=sic is mighty fun to play with. cool stuff. | 01:38 | |
| phenny | snarkyboojum: I'll pass that on when masak is around. | ||
|
01:41
snarkyboojum left
01:45
takadonet1 joined
01:46
rv2733 left
01:51
stephenlb left
01:55
snarkyboojum joined
01:58
Psyche^ joined
02:03
Patterner left,
Psyche^ is now known as Patterner,
takadonet1 left
02:04
lest_away is now known as lestrrat
02:10
alester joined
02:11
Minimiscience joined
02:14
bradb joined
02:21
JimmyZ joined
02:30
takadonet1 joined
|
|||
| [Coke] | JimmyZ: what about the userid zhuomingliang ? | 02:35 | |
| ww | 02:36 | ||
|
02:42
TiMBuS left
|
|||
| JimmyZ | there was an id, jimmy | 02:42 | |
|
02:58
takadonet1 left
02:59
snarkyboojum left
03:00
Minimiscience left
03:01
snarkyboojum joined
03:11
am0c left
|
|||
| sorear | rakudo: sub k ($x) { sub () { $x }; }; my $a = k(12); my $b = k(24); say $a() | 03:16 | |
| p6eval | rakudo 082cae: OUTPUT«24» | ||
|
03:18
lestrrat is now known as lest_away
03:19
lest_away is now known as lestrrat
|
|||
| sorear | ah | 03:22 | |
| #73034 | |||
| moritz++ | |||
| reporting my bugs 2 months before me | |||
|
03:24
molaf joined
03:25
meppl joined
03:26
am0c joined,
agentzh joined
03:38
meppel joined
|
|||
| diakopter | perlesque: my $a = BigInteger.Create('2'); my $b = (BigInteger.Multiply($a.Power(333333),BigInteger.Create('65516468355'))).ToString(); say('length in decimal digits of the largest known twin prime: ' + ($b.Length)); say('its first few digits: ' + $b); | 03:40 | |
| p6eval | perlesque: OUTPUT«length in decimal digits of the largest known twin prime: 100355its first few digits: | ||
| ..111659361658117427982275056447748284627841501989315818143195562512552903769893899706131450160346036174685646429662107217694437705071008106571894525498510538322214090908452524919159911490325297241… | |||
|
03:42
meppl left
|
|||
| TimToady | er, + for concatenate? that's...not perlesque, no, no, no! | 03:47 | |
|
03:47
alester left
|
|||
| diakopter | yes. | 03:49 | |
| I mean, no, it's not. | |||
| you thought you saw a "+"; you didn't really; it's actually a tilde | |||
| see one sec | |||
| dalek | meta: r212 | diakopter++ | trunk/Sprixel/ (2 files): add tilde |
03:52 | |
|
03:52
alester joined,
alester left
|
|||
| diakopter | and by add tilde, I mean ADD | 03:53 | |
| ;) | |||
| TimToady | <diakopter> TimToady: does a while () { } loop retain the inner scope across iterations (preserving contextual assignments) or does it reinitialize/revert them at the end of each iteration? | 03:54 | |
| reinitializes | |||
| diakopter | ok | ||
| or as they say nowadays, okies. | 03:55 | ||
| TimToady | "everything is a closure" | ||
|
03:56
p6eval joined
|
|||
| diakopter | zugh. | 03:57 | |
| sorear | while is semantically a builtin HOF | 03:58 | |
| diakopter | ('zugh' at me breaking p6eval yet again) | ||
|
03:59
molaf left
|
|||
| diakopter | perlesque: my $a = BigInteger.Create('2'); my $b = (BigInteger.Multiply($a.Power(333333),BigInteger.Create('65516468355'))).ToString(); say('length in decimal digits of the largest known twin prime: ' ~ ($b.Length)); say('its first few digits: ' ~ $b); | 04:02 | |
| p6eval | perlesque: OUTPUT«length in decimal digits of the largest known twin prime: 100355its first few digits: | ||
| ..111659361658117427982275056447748284627841501989315818143195562512552903769893899706131450160346036174685646429662107217694437705071008106571894525498510538322214090908452524919159911490325297241… | |||
| diakopter | perlequel: . | ||
| oh; it's rebuilding rakudo ;) | |||
| perlesquel: . | |||
| p6eval | perlesquel: OUTPUT«Cannot open assembly 'asmbly_1.exe': No such file or directory.Command exited with non-zero status 2real 0.10user 0.00sys 0.00» | ||
| diakopter | or I can't type | 04:03 | |
| hm. I guess I can't do the perlesquel thing till I make it more robust. | 04:04 | ||
| the building of the stages and things is a tad fragile. | |||
|
04:09
meppel is now known as meppl
|
|||
| sorear | The new tools/contributors.pl in Rakudo is virtually a reimplementation of 'git shortlog' | 04:14 | |
| rakudo: say pir::isa__IPS(sub () {}, 'Sub') | 04:20 | ||
| p6eval | rakudo 082cae: OUTPUT«0» | ||
| sorear | problematic | ||
| sorear needs a more robust way to detect invocables | |||
|
04:23
snarkyboojum left
04:34
quester_ joined
04:39
snarkyboojum joined,
japhb left
|
|||
| quester_ | phenny: tell pmichaud When you have a moment, could you please take a look at RT #73148: "[PATCH] Fix bug #68752, make perl6 --version more informative" and let me know what you think? Thank you! | 04:42 | |
| phenny | quester_: I'll pass that on when pmichaud is around. | ||
| quester_ | rakudo: say ~\(1;2;3) | 04:59 | |
| p6eval | rakudo 082cae: OUTPUT«Capture()<0x5fa0930>» | ||
| quester_ | rakudo: say ~\() | ||
| p6eval | rakudo 082cae: OUTPUT«Capture()<0x4ed3138>» | ||
|
05:01
rurban left,
rurban joined
|
|||
| quester_ | phenny: tell masak It seems to me that RT #73326: "[BUG] Infinite recursion in stringification of a capture in Rakudo" was resolved at some point in the past, "say ~\()" now says "Capture()<0x4ed3138>". | 05:02 | |
| phenny | quester_: I'll pass that on when masak is around. | ||
|
05:04
lestrrat is now known as lest_away
05:06
am0c left
05:18
bradb left
|
|||
| lue ĵums in to say goodnight moon | 05:21 | ||
|
05:21
japhb joined
05:27
kaare joined
05:28
kaare is now known as Guest16135
05:42
XaeroOne joined
05:47
lurking2long joined
05:50
lurking2long left
|
|||
| pugssvn | r30489 | lwall++ | [STD] better messages at EOF, especially for regexes | 05:54 | |
|
05:55
XaeroOne left
|
|||
| TimToady | wow, finally caught up on backlog for first time in a week...now I just have to do everything else I have to do... | 05:57 | |
|
05:58
uniejo joined
|
|||
| snarkyboojum | TimToady: you need that text to speech converter and some kind of wearable computer setup :P | 05:59 | |
| TimToady | that wouldn't work too well for me; my reading speed varies too much, so most of the time the TTS would be either too fast or too slow | 06:01 | |
| and many things here have to be seen to be believed :) | 06:02 | ||
| snarkyboojum | hehe | ||
| eternaleye | I can just see flite or festival having an aneurism trying to parse some of what occurs in this channel | 06:04 | |
| rakudo: say pir::does__IPS(sub () {}, 'Callable') | 06:07 | ||
| p6eval | rakudo 082cae: OUTPUT«0» | ||
| eternaleye | rakudo: say pir::does__IPS(sub () {}, 'Code') | 06:08 | |
| p6eval | rakudo 082cae: OUTPUT«1» | ||
| eternaleye | sorear: ^^ maybe? | ||
|
06:10
quester_ left,
_jaldhar left
|
|||
| eternaleye | rakudo: say pir::does__IPS(-> {}, 'Code') | 06:10 | |
| p6eval | rakudo 082cae: OUTPUT«1» | ||
| eternaleye | rakudo: say pir::does__IPS( *.foo, 'Code') | ||
| p6eval | rakudo 082cae: OUTPUT«1» | 06:11 | |
|
06:11
_jaldhar joined
|
|||
| eternaleye | sorear: ^^^ very likely what you want | 06:11 | |
| rakudo: say pir::does__IPS( "Test for false positive", 'Code') | 06:12 | ||
| p6eval | rakudo 082cae: OUTPUT«0» | ||
|
06:16
yinyin left
06:18
Trashlord joined
06:23
viklund joined
|
|||
| eternaleye | The funny thing is I've never written a single line of PIR. | 06:25 | |
| moritz_ | good morning | 06:28 | |
| phenny | moritz_: 27 Apr 23:21Z <jnthn> tell moritz_ if you're in the know at all on the book PDF gen, the operators.pod example loses its » in the PDF, which makes the example have a FAIL. Maybe we could fix it, or even just use the ASCII >> instead, since it's a bit easier for people to type. ;-) | ||
|
06:30
XaeroOne joined
|
|||
| moritz_ | phenny: tell jnthn the » work here... seems to be dependent on tex version/flavour :( | 06:31 | |
| phenny | moritz_: I'll pass that on when jnthn is around. | ||
| eternaleye | moritz_: The error came up when isBEKaml was looking at the release PDF | 06:32 | |
|
06:55
JimmyZ left,
JimmyZ_ joined,
JimmyZ_ is now known as JimmyZ,
XaeroOne left,
justatheory left
07:03
lest_away is now known as lestrrat
|
|||
| moritz_ | eternaleye: it's wrong in the release pdf, but fixed locally here | 07:10 | |
| eternaleye | moritz_: I know, | ||
| I was noting that because the actual message didn't specify if it was on someone building it themselves | 07:11 | ||
|
07:16
_jaldhar left
07:17
jiing left
07:19
jiing joined
07:20
XaeroOne joined
07:23
meppl left
07:26
_jaldhar joined
07:31
_jaldhar left,
jiing left,
eternaleye left,
ruoso left,
gurjeet left,
araujo left,
szabgab left,
hugme left,
_sri left,
lestrrat left,
IRSeekBot left
07:32
bbkr_ joined,
_sri joined
07:37
_jaldhar joined,
jiing joined,
eternaleye joined,
ruoso joined,
gurjeet joined,
araujo joined,
szabgab joined,
obra joined,
sunnavy joined,
cookys_ joined,
c1sung joined,
Kovensky joined,
hugme joined,
lestrrat joined,
IRSeekBot joined,
card.freenode.net sets mode: +vv hugme IRSeekBot
07:38
iblechbot joined
07:40
gurjeet left
07:42
M_o_C joined
07:43
iblechbot left
07:44
iblechbot joined,
XaeroOne left,
XaeroOne joined
07:46
XaeroOne left
08:01
yinyin joined
08:14
plobsing left
08:20
sbp left
08:21
sbp joined
08:24
fridim joined
08:43
iblechbot left
08:48
dakkar joined
08:59
gfx joined
09:05
jonasbn joined
|
|||
| moritz_ | rakudo: say ~\(1;2;3) | 09:15 | |
| p6eval | rakudo 082cae: OUTPUT«Capture()<0x5ff38e8>» | ||
| moritz_ | I wonder what it should print | 09:17 | |
| maybe that's right... no idea | |||
| it's a bit hard to write tests for something you don't know at all | 09:18 | ||
| m6locks | whatsa capture | 09:23 | |
| moritz_ | basically an argument list | 09:24 | |
| see S02 | |||
|
09:24
lestrrat is now known as lest_away
|
|||
| m6locks | ok | 09:24 | |
| jnthn | o/ | 09:52 | |
| phenny | jnthn: 06:31Z <moritz_> tell jnthn the » work here... seems to be dependent on tex version/flavour :( | ||
| jnthn | Oh, ew. | ||
| moritz_ | actually I've investigated a bit more | ||
| the pdf from last release is b0rked | 09:53 | ||
| but when I build it locally, the new PDFs seem to be fine | |||
| although sorear++ told me that on his setup the ASCII version >> is broken | |||
| which I can't begin to comprehend at all | |||
|
10:01
iblechbot joined
10:13
M_o_C left
10:17
kcwu joined
10:18
pjcj_ joined
10:19
breinbaa1 joined,
mdxi_ joined,
broquain1 joined,
jnthn_ joined
10:24
pjcj left,
mdxi left,
broquaint left
|
|||
| dalek | ok: 0db6713 | moritz++ | src/subs-n-sigs.pod: [subs] try to be more consistent wrt argument vs. parameter; also define "parameter" |
10:24 | |
|
10:28
ruoso left
10:29
pugssvn joined
10:30
alester joined
10:34
pmurias joined
|
|||
| pmurias | diakopter: hi | 10:34 | |
| how should i invoke sprixel now? | 10:35 | ||
|
10:39
alester left,
JimmyZ left
10:42
jonasbn left
10:43
masak joined
|
|||
| masak | oh hai, #perl6 | 10:43 | |
| phenny | masak: 01:38Z <snarkyboojum> tell masak --target=sic is mighty fun to play with. cool stuff. | ||
| masak: 05:02Z <quester_> tell masak It seems to me that RT #73326: "[BUG] Infinite recursion in stringification of a capture in Rakudo" was resolved at some point in the past, "say ~\()" now says "Capture()<0x4ed3138>". | |||
|
10:45
arthur-_ left
|
|||
| masak resolves #73326 | 10:45 | ||
|
10:46
agentzh left
10:57
arthur-_ joined
11:05
arthur-_ left
11:07
envi^home joined
|
|||
| masak | this reminds me of Perl 6 and the reasons behind LTA: cheerfulsw.com/2010/dont-listen-to-...b-nielsen/ | 11:08 | |
| 'In short, software cries out for love.' <3 | 11:09 | ||
| putting good error messages into STD.pm6 and into Rakudo means putting in love. | |||
|
11:20
alester joined
11:22
M_o_C joined
11:31
dual left
11:33
alester left
11:37
dual joined
11:38
meppl joined
|
|||
| dalek | p-rx: 5961dad | bacek++ | (5 files): Update nqp-rx to recent parrot trunk. |
11:40 | |
| p-rx: 8600657 | bacek++ | src/stage0/ (4 files): New stage0 files |
|||
| p-rx: 4271e79 | moritz++ | (17 files): Merge remote branch 'bacek/master' |
|||
| p-rx: 09ca8b1 | moritz++ | build/PARROT_REVISION: bump PARROT_REVISION |
|||
|
11:45
JimmyZ joined
|
|||
| masak | I'd be interested to hear what people think of cognominal++'s suggestion on p6l. | 11:48 | |
| as far as I can see, it proposes to undo the generalization that led ? quantifiers to produce empty lists. | 11:49 | ||
| moritz_ | it requires more thought | 11:50 | |
| would it be the same for all qunantifiers? | |||
| dalek | p-rx: d893061 | moritz++ | (17 files): Revert "Merge remote branch 'bacek/master'" changes made to d823fc2d9ea6c8706c260937b34861c0596e6486. There were more changes in that branch than I realized, so I'll try to cherry-pick the commits I'm really interested in |
11:51 | |
| moritz_ | sorry for all the nqp-rx noise, I accidentally the whole thing | 11:52 | |
| masak: in particular, would ** 0..1 behave the same as as ? | 11:53 | ||
|
11:53
gurjeet joined
|
|||
| moritz_ | masak: and what if a different quantifier matches just once, will it still produce a list? | 11:53 | |
| masak | those are all good questions. | 11:54 | |
| moritz_ | maybe I should answer to the mail on p6l | ||
| masak | yeah, I thought of writing something like that, too. | ||
| dalek | p-rx: 695e31a | bacek++ | (5 files): Update nqp-rx to recent parrot trunk. |
11:56 | |
| p-rx: d04243b | bacek++ | src/stage0/ (4 files): Update stage0 files |
|||
| takadonet | morning all | 11:58 | |
|
11:59
am0c joined
|
|||
| colomon | o/ | 11:59 | |
|
12:00
pmurias left
|
|||
| masak | takadonet: \o | 12:01 | |
| moritz_ | rakudo: 'a' ~~ / <digit>* | 'a' /; say $/.keys | 12:02 | |
| p6eval | rakudo 082cae: OUTPUT«Method 'keys' not found for invocant of class 'Regex;Match'current instr.: '_block14' pc 29 (EVAL_1:0)» | ||
| moritz_ hates it | |||
| rakudo: 'a' ~~ / <digit>* | 'a' /; say $/.Hash.keys | |||
| p6eval | rakudo 082cae: OUTPUT«Method 'Hash' not found for invocant of class 'Regex;Match'current instr.: '_block14' pc 29 (EVAL_1:0)» | ||
| moritz_ | rakudo: 'a' ~~ / <digit>* | 'a' /; say $/.exists('digit') | ||
|
12:02
jnthn_ is now known as jnthn
|
|||
| p6eval | rakudo 082cae: OUTPUT«Method 'exists' not found for invocant of class 'Regex;Match'current instr.: '_block14' pc 29 (EVAL_1:0)» | 12:03 | |
| moritz_ | alpha: 'a' ~~ / <digit>* | 'a' /; say $/.Hash.keys | ||
| p6eval | alpha 30e0ed: ( no output ) | ||
| moritz_ | alpha: 'a' ~~ / <digit> | 'a' /; say $/.Hash.keys | ||
| p6eval | alpha 30e0ed: ( no output ) | ||
| moritz_ hopes he sent a non-bikesheddy response to p6l | 12:06 | ||
|
12:07
lichtkind joined
|
|||
| lichtkind | i dont get the parameter trait dynamic | 12:11 | |
| cognominal | "As far as I can see, it proposes to undo the generalization that led ? quantifiers to produce empty lists.". I wish I had expressed that so clearly. | ||
| masak++ | |||
| lichtkind | the sentence is: Specifies that the parameter is to be treated as an "environmental" variable, that is, a lexical that is accessible from the dynamic scope (see S02). | 12:12 | |
| does that mean a eg $a parameter is mapped to $*a ? | 12:13 | ||
| dalek | p-rx: 40bb2a8 | moritz++ | docs/bootstrapping.pod: [docs] fix typo in path |
||
| lichtkind | no suggestion? | 12:16 | |
| moritz_ | lichtkind: "accessible from the dynamic scope" means that if that sub calls another sub, that second sub can use CALLER:: to inspect the parameter | 12:17 | |
| lichtkind | moritz_: a like local var, thank you very much | 12:18 | |
| moritz_ | please don't use that term, it's confusing | 12:19 | |
| lichtkind | i ment it in the way: what we define in perl 4 and 5 as local | ||
| moritz_ | I know. Still please don't use it in the context of Perl 6 | 12:20 | |
|
12:20
plobsing joined
|
|||
| cognominal | moritz: the point of my idea is that it is specific que the '?' quantfier. zero or one, is not naturally represented by an array but by something present or missing. | 12:20 | |
| s/que/to/ | |||
| moritz_ | it's even in Perl 5 confusing | ||
| because people think of "local vars" as what my() provides | 12:21 | ||
| cognominal: still it blurs the distinction between a successful-but-zero-times and a failed submatch | |||
| cognominal: maybe it's worth it - I don't know | 12:22 | ||
| I just wanted to mention the points that came to my mind while reading the proposal | |||
| cognominal | I indeed agree that it blurs this distinction. | 12:23 | |
| moritz_ | if you really care about it, you can introduce an outer capture as a workaround | ||
| $<outer>=[<inner>?] | 12:24 | ||
| masak | I'm very uneasy with such a change. | ||
| but I can't pinpoint why. | |||
| maybe pmichaud has something to say about this. | |||
|
12:24
am0c left
|
|||
| moritz_ | I'm quite sure he has :-) | 12:24 | |
| cognominal | The strongest argument against my proposal is indeed that a successful-but zero-times match does not appear in the parse tree. On the other hand, that's my very point : suppressing them. | 12:26 | |
| masak | I think the lack of exceptions that led to the current design is the strongest argument against your proposal. | 12:27 | |
| IIRC, we originally had it much as you proposed. | |||
|
12:28
snarkyboojum left
|
|||
| cognominal | I did not remember the orginal discussion, I just want to show the consequences with a Perl 6 grammar that has optional rules everywhere. | 12:29 | |
| I would not be surprised that it does not hit other grammars heavily. | |||
| oops, double negation. | |||
| moritz_ mentallly removes a negation in an inappropriate place | 12:30 | ||
| masak | the original discussion was many years ago. | ||
| 2006 or 2007, perhaps. | |||
| it was either prompted by a request from audreyt or pmichaud, or both. | 12:31 | ||
| cognominal | what was the original design? | ||
| moritz_ | cognominal: maybe an interesting optimization would be to use a singleton empty list | ||
| jnthn | Well, match objects are readonly iirc, so that could maybe work. | 12:33 | |
|
12:33
_jaldhar left,
chitragupt left
|
|||
| moritz_ | they only mutable part of match objects are the ASTs | 12:33 | |
| s/they/the/ | |||
| and since arrays don't store ASTs, it could work | 12:34 | ||
|
12:34
moritz_ sets mode: +ooo jnthn cognominal masak,
gurjeet left
|
|||
| cognominal | My interest in not only parse tree generating less data, but also being more readable, I just find successful-but-zero-times submatch cluttering the parse tree. | 12:35 | |
| masak found the p6l message where $1 became $0! www.nntp.perl.org/group/perl.perl6....21038.html | 12:36 | ||
| :) | |||
|
12:36
[particle] left
|
|||
| cognominal | When you read a parse tree of a siimple program it is cluttered with the reductions triggered by the most adanced features of the language. | 12:37 | |
| masak | seems at that time, S05 said "Quantifiers (except C<?> and C<??>) cause a matched subrule or subpattern to return an array of C<Match> objects, instead of just a single object." | ||
| cognominal | Pedagagically speaking, it is wrong. | ||
|
12:37
[particle] joined
|
|||
| masak | wow, regex match syntax was really in flux in 2005 :) | 12:38 | |
| moritz_ | aye | 12:39 | |
|
12:40
am0c joined
|
|||
| cognominal | Perl 6 grammars is the very feature that convinced me of the Perl 6 power. | 12:40 | |
|
12:40
[Coke] left
12:41
[Coke] joined
|
|||
| moritz_ | it's certainly one of its outstanding killer features | 12:42 | |
| masak | rakudo: say flip 42 | 12:43 | |
| p6eval | rakudo 082cae: OUTPUT«24» | ||
| moritz_ | rakudo++ | ||
| takadonet | flip.... WOW! | ||
| [particle] | rakudo: flip off | 12:44 | |
| ;) | |||
| p6eval | rakudo 082cae: OUTPUT«Could not find sub &offcurrent instr.: '_block14' pc 29 (EVAL_1:0)» | ||
| [Coke] | ugh. I need to write p6doc just so I can do perldoc -f flip. :P | ||
| masak | rakudo: say flip [*] 1..4 | ||
| p6eval | rakudo 082cae: OUTPUT«42» | ||
| masak | \o/ | ||
| moritz_ has an idea what masak is about... | |||
| masak | you do? I don't :) | ||
|
12:44
snarkyboojum joined
|
|||
| moritz_ | we had that channel topic "we do haskell, too" | 12:44 | |
|
12:44
SmokeMachine joined
|
|||
| [Coke] | hurm. do we have any tests or specs for what p6doc should do? | 12:44 | |
| masak | snarkyboojum: \o | ||
| snarkyboojum | masak: o/ | 12:45 | |
| masak | [Coke]: I like to think of p6doc as grok. | ||
| moritz_ | which did the equivalent of flip [*] 1..4 in haskell | ||
| masak | [Coke]: but it's only a directory of plans in the pugs repo so far. | ||
| moritz_: ah, yes. that must be where I got it. | |||
| [Coke] | masak: path? | 12:46 | |
| only grok I see is in util | |||
| masak | svn.pugscode.org/pugs/docs/u4x/ | ||
| last time I spent time on u4x, I was trawling through P2T1A. | 12:47 | ||
| that's one of the files there. | |||
| don't remember how far I got. | |||
| were I to spend another batch of time on that -- something which by necessity would have to happen after the book is out -- I'd probably try to get a command-line app going. | 12:48 | ||
| moritz_ | didn't literal++ do just that? | ||
| masak | yes. | ||
| and his efforts have found their use in Padre, I think. | 12:49 | ||
| they would probably be a very good starting-point. | |||
| [Coke] | literal? | ||
| moritz_ | aka hinrik | ||
| literal | aka yours truly | ||
| masak | literal: \o/ | 12:50 | |
| [Coke] | ah, there you are. do you have something like perldoc6 going? | ||
| masak | literal: what do think about the u4x readiness of grok. | ||
| literal | [Coke]: something like that | ||
| masak | literal: we never really got to that point during that project, mostly due to lack of u4x :) | ||
| literal | I need to look into this stuff some more again | ||
| I read somewhere that the NPW scheduled this weekend is all but cancelled due to the ash | 12:52 | ||
| is that true? | |||
| masak | [Coke]: it might help to see the README, but my dream is basically that when the user sees e.g. a '^' in a Perl 6 program, she would type 'grok ^' and get help on the various constructs that might have a '^' in it. | ||
| moritz_ | literal: yes | ||
| literal | damn | ||
| masak | yes. a real pity. | 12:53 | |
| [Coke] | masak: I'm assuming that grok should itself be written in perl6, and rely on the existing synopses ? | ||
| literal | it's written in Perl 5 currently... | ||
| masak | the implementation language isn't terrivly important. something that works. | ||
| [Coke] | literal: where is grok now? | ||
| literal | [Coke]: github.com/hinrik/grok | ||
| [Coke] | masak: sorry, "ultimately" written in perl6. | 12:54 | |
| masak | aye. sure. | ||
| [Coke] | er, no quotes necessary | ||
| masak | it was probably wise of literal to choose Perl 5 for the project last summer. | ||
| [particle] | it was wise enough to finish the grant | ||
|
12:54
_jaldhar joined
|
|||
| masak | it's possible to write impressive stuff in Rakudo at this point, but it'll be impressive in a glacial, molasses kind of way. | 12:55 | |
| except when it crashes, which it does reasonably quickly. | |||
| </rant> | |||
| [particle] | you're innovating too quickly. | 12:56 | |
| we're helping you. :P | |||
| colomon | but as I said yesterday, I've been having really good luck with Rakudo lately. | ||
| [Coke] | literal: tests_recursive will not work if tests are already defined at /Users/coke/usr/lib/perl5/site_perl/5.10.1/Module/Install/Makefile.pm line 189. | ||
| literal | [Coke]: yeah, that's due to a Module::Install change | 12:57 | |
| lemme fix | |||
| colomon | master seems to be drastically more stable than alpha was. | ||
| [Coke] | guess I forked too soon. :P | ||
| masak | colomon: yes, things do seem to be improving. you're probably more of a master guy than I am right now. | ||
| moritz_ | colomon: except for the non-zero exit status that I've seen cropping up in the spectests recently :/ | ||
| colomon | moritz_: oh noez! | 12:58 | |
| masak: I don't even remember where I have alpha installed on my computer anymore. | |||
|
12:59
gfx left
|
|||
| masak | I wish I could say the same. I use alpha daily. | 12:59 | |
| colomon | and I'm pretty sure the code I've been writing wouldn't work on alpha anyway. ;) | ||
| moritz_ | masak: have you tried SVG.pm with master? | ||
|
13:00
pmurias joined
|
|||
| literal | [Coke]: try now | 13:01 | |
| moritz_ | rakudo: rx/foo/ | ||
| p6eval | rakudo 082cae: ( no output ) | ||
|
13:01
perseo22 joined
|
|||
| moritz_ | rakudo: my $x = rx{ foo }; say $x.WHAT | 13:01 | |
| p6eval | rakudo 082cae: OUTPUT«Could not find sub &rxcurrent instr.: '_block14' pc 29 (EVAL_1:0)» | ||
| [Coke] | anyone know how to rebase my fork? =-) | ||
|
13:01
ReiniUrban joined
|
|||
| moritz_ | [Coke]: do you have changes in there? | 13:02 | |
| if not, git merge hinrik/master | |||
| rakudo: my $x = rx/ foo /; say $x.WHAT | |||
| p6eval | rakudo 082cae: OUTPUT«Regex()» | ||
|
13:03
lest_away is now known as lestrrat,
rurban left
|
|||
| [Coke] | fatal: 'hinrik/master' does not point to a commit | 13:03 | |
|
13:03
ReiniUrban is now known as rurban
|
|||
| moritz_ | [Coke]: have you added literal's repo as a remote? | 13:04 | |
| [Coke] | no. | ||
| literal | try: git pull --rebase git://github.com/hinrik/grok.git master | ||
| [Coke] re-reads the "setup a fork" page on github. | |||
| masak | moritz_: no. haven't done anything with SVG.pm in ages. | ||
| moritz_ | git remote add hinrik github.com/hinrik/grok.git; git remote update; git merge hinrik/master | 13:05 | |
| masak | moritz_: specifically, I haven't renamed it to something more generic. | ||
| moritz_ | masak: needs just one change to parse | ||
| masak | hugme: add moritz_ to svg | ||
| hugme | masak: sorry, I don't know anything about project 'svg' | ||
| [Coke] | help.github.com/forking/ works much better if you do the "git remote add". =-) | ||
| masak | ah. | ||
|
13:06
M_o_C left
|
|||
| masak | moritz_: you now have commit access to the svg project. | 13:06 | |
| masak hugs moritz_ | |||
| welcome aboard :) | |||
| moritz_ | thanks :-) | ||
| takadonet takes a picture | 13:07 | ||
| moritz_ is not ashamed | |||
| takadonet | moritz_: Just a touching moment that I want to remember :) | ||
| dalek | ok: daf3a0c | (Hinrik Örn Sigurðsson)++ | (2 files): Sidestep some Module::Install fail |
13:08 | |
| [Coke] | literal: all tests pass. | ||
| moritz_ | rakudo: say (a => 1).elems | ||
| masak | a grok commit! literal++ | ||
| p6eval | rakudo 082cae: OUTPUT«Method 'elems' not found for invocant of class 'Pair'current instr.: '_block14' pc 29 (EVAL_1:0)» | ||
| moritz_ | alpha: say (a => 1).elems | 13:09 | |
| p6eval | alpha 30e0ed: OUTPUT«1» | ||
| masak submits rakudobug | |||
| moritz_ spectests fix for rakudobug | 13:10 | ||
| that's what blows up in SVG.pm | 13:11 | ||
| masak | appcheese++ | ||
| colomon | moritz_: how are you fixing that? he asked with some curiosity... | ||
| moritz_ | augment class Any { multi method elems() { 1 } } | 13:12 | |
| masak | colomon: '"Who discovered radium?" asked Marie curiously.' :) | ||
| colomon: www.fun-with-words.com/tom_swifties_history.html | |||
|
13:12
bluescreen joined
|
|||
| colomon | masak: yes, I know tom swifties. :) | 13:12 | |
| (though maybe not the history...) | 13:13 | ||
|
13:13
bluescreen is now known as Guest4436,
muixirt joined
|
|||
| moritz_ | masak: feel free to add yourself to the "basic Buf implementation" goal in docs/ROADMAP :-) | 13:15 | |
| masak does so | |||
| colomon | masak: what's your timeline like for Buf? | 13:16 | |
| masak goes looking for the appropriate gist | 13:17 | ||
| gist.github.com/360097 | |||
| cognominal | hum, what is the way to call a method in the super class? | 13:18 | |
| masak | depends. | ||
| usually through WALK-y things. | |||
| moritz_ | $obj.Class::method() | ||
| masak | such as 'nextsame'. | ||
| cognominal | thx, reading the doc | ||
| masak | or what moritz_ said, but I've never done that. feels a bit hardcoded. | 13:19 | |
| dalek | kudo: 6cf515b | masak++ | docs/ROADMAP: [ROADMAP] added self to Buf impl work |
||
| cognominal | hum, I forgot to say that the signature of the super method is different. | 13:20 | |
| moritz_ | nextwith() then | ||
| JimmyZ | someone? It's masak! :) | 13:21 | |
| colomon | masak++ # had a good time reading the example tom swifties, even if I did know what they were already. :) | ||
| masak | :) | ||
| JimmyZ wonders why people is interested in GSoC. | 13:23 | ||
| moritz_ | JimmyZ: getting money for fun hacking is interesting :-) | ||
| JimmyZ | oh, just find google needs GSoC students in China too. :) | 13:25 | |
| moritz_ | sure, why not? | 13:26 | |
| JimmyZ | I thought google didn't need | 13:27 | |
| masak | it's mostly about goodwill from Google's side, I think. | ||
| moritz_ | google doesn't really care where the students come from | ||
| there are a few countries which are not acceptable, but that's because of US laws, not because of google being selective | 13:28 | ||
| masak .oO( Illegal GSoC tribute ) | 13:29 | ||
| JimmyZ | bad laws, I guess. | ||
| moritz_ | JimmyZ: will, the US has trade embargos, iirc | 13:30 | |
| Cuba, Iran, ... don't know if there are more | |||
|
13:33
ruoso joined,
JimmyZ left
|
|||
| pugssvn | r30490 | moritz++ | [t/spec] test for RT #74732, Pair.elems | 13:36 | |
| r30491 | moritz++ | [t/spec] 3.end should return 0, just like 3.elems == 1 | |||
|
13:38
JimmyZ joined
|
|||
| [particle] | North Korea | 13:39 | |
| dalek | kudo: 6a502fc | moritz++ | src/core/Any-list.pm: implement Any.elems to fix RT #74732 |
||
| colomon | Thought that might be your solution. :) moritz_++ | 13:40 | |
|
13:42
perseo22 left
13:43
Guest16135 left,
chitragupt joined
13:44
Dunearhp left
|
|||
| masak | meanwhile, at work, a colleague would have been saved a lot of pain and frustration today if Java had just had roles. | 13:44 | |
| moritz_ | masak: SVG.pm is maximally hostile wrt inheritance :( | 13:46 | |
| masak | is that so? anything that can be improved? | ||
| moritz_ | well, all routines are (lexical) subs | ||
| masak | oops :) | ||
| moritz_ | so there's just one public method | 13:47 | |
| and nothing that could be changed through inheritance | |||
| masak | would be nice if it mutated into a general XML emitter which could be extended for e.g. SVG. | ||
| moritz_ | aye | ||
| anyway, with the latest rakudo fix it passes 2 of 3 tests | |||
| masak | \o/ | 13:48 | |
| moritz_ | and it fails the one test because the text that should be escaped doesn't appear in the output at all | ||
| masak | huh. | 13:49 | |
|
13:52
Guest4436 left
13:53
Guest4436 joined
|
|||
| JimmyZ | \o | 13:53 | |
| moritz_ | rakudo: my %c = '&' => '&'; say 'a&b'.subst(rx/ <[&]> /, {%c{$_}}, :g) | 13:58 | |
| p6eval | rakudo 6cf515: OUTPUT«ab» | ||
| moritz_ | that's the real problem | ||
| rakudo: my %c = '&' => '&'; say 'a&b'.subst(rx/ <[&]> /, {warn $_.perl; %c{$_}}, :g) | |||
| p6eval | rakudo 6cf515: OUTPUT«Method 'perl' not found for invocant of class 'Regex;Match'current instr.: '_block59' pc 587 (EVAL_1:208)» | ||
| moritz_ | rakudo: my %c = '&' => '&'; say 'a&b'.subst(rx/ <[&]> /, {%c{"$_"}}, :g) | ||
| p6eval | rakudo 6cf515: OUTPUT«ab» | ||
| moritz_ | rakudo: my %c = '&' => '&'; say 'a&b'.subst(rx/ <[&]> /, {wary $_; %c{"$_"}}, :g) | 13:59 | |
| p6eval | rakudo 6cf515: OUTPUT«Could not find sub &warycurrent instr.: '_block59' pc 587 (EVAL_1:208)» | ||
| moritz_ | rakudo: my %c = '&' => '&'; say 'a&b'.subst(rx/ <[&]> /, {warn $_; %c{"$_"}}, :g) | ||
| colomon | is the issue that $_ isn't being set properly in the code block called by subst? | ||
| p6eval | rakudo 6cf515: OUTPUT«Warningab» | ||
|
13:59
JimmyZ left
|
|||
| moritz_ | rakudo: my %c = '&' => '&'; say 'a&b'.subst(rx/ <[&]> /, {warn $_.WHAT; %c{"$_"}}, :g) | 13:59 | |
| p6eval | rakudo 6cf515: OUTPUT«Regex::Match()ab» | ||
| moritz_ | colomon: there's a Regex::Match object being passed | ||
| colomon: but it seems empty, or so | 14:00 | ||
| colomon | so that part is working, anyway. huh. | ||
|
14:00
gurjeet joined,
SmokeMachine left
|
|||
| colomon | :\ | 14:00 | |
| moritz_ | rakudo: my %c = '&' => '&'; say 'a&b'.subst(rx/ <[&]> /, {warn join ',', .from, .to, .Str %c{"$_"}}, :g) | ||
| p6eval | rakudo 6cf515: OUTPUT«Could not find sub &ccurrent instr.: '_block59' pc 587 (EVAL_1:208)» | ||
| moritz_ | rakudo: my %c = '&' => '&'; say 'a&b'.subst(rx/ <[&]> /, {warn join ',', .from, .to, .Str; %c{"$_"}}, :g) | ||
| p6eval | rakudo 6cf515: OUTPUT«3,-3,ab» | ||
| moritz_ | but it's a failed match object... WTF? | ||
| why would .subst pass a match object of a failed match to the substitution block? | 14:01 | ||
|
14:01
lichtkind left
|
|||
| moritz_ | rakudo: my %c = '&' => '&'; say 'a&b'.subst(rx/ <[&]> /, {warn join ',', .from, .to, .Bool; %c{"$_"}}, :g) | 14:01 | |
| p6eval | rakudo 6cf515: OUTPUT«3,-3,0ab» | ||
| moritz_ | rakudo: my %c = '&' => '&'; say 'a&b'.subst(rx/ <[&]> /, {warn join ',', .from, .to, .Bool, .orig; %c{"$_"}}, :g) | 14:02 | |
| p6eval | rakudo 6cf515: OUTPUT«3,-3,0,a&bab» | ||
|
14:02
broquain1 is now known as broquaint
|
|||
| colomon | moritz_: I need to get a big build going for $work, then I'll see if I can help here. | 14:03 | |
|
14:04
alester joined
14:06
fridim left
14:09
isBEKaml joined,
smash_ joined
|
|||
| smash_ | hello everyone | 14:09 | |
| colomon | o/ | ||
| [Coke] | SMASH! | ||
| masak | smash_: \o | 14:10 | |
| isBEKaml | good evening, #perl6! | ||
| moritz_ | good localtime() isBEKaml | ||
| isBEKaml | moritz_: aww, maybe there should be something that tells the time of the day (morning, evening, night) ;) | 14:11 | |
|
14:12
uniejo left
|
|||
| moritz_ | isBEKaml: sounds like a good exercise for a module, to get familiar with DateTime :-) | 14:12 | |
| masak | yes, please. | ||
| and a blog post :P | |||
| isBEKaml | moritz_: :) | 14:13 | |
| pmurias | ruoso: hi | 14:15 | |
|
14:16
kst left,
kst joined
|
|||
| pmurias | ruoso: rebuilding the mildew setting has seemed to bitrotted, i'm fixing it | 14:17 | |
| isBEKaml | moritz_: I have a little suggestion about the book. Since this is essentially a learn-as-you-code (code-as-you-learn as the case maybe :) ) approach, I feel you don't need to include answers to exercises at the end of the chapters. | ||
| moritz_: Instead, since the API can change over time, maybe you can just include some stable methods and additional ones to play with? | 14:18 | ||
| moritz_ | isBEKaml: maybe the answers should go at the end of the book | ||
| masak | aye. | 14:19 | |
| moritz_ | but they should be included if people don't find out themselves - research on minimal-guidance based learning suggests it's necessary | ||
| isBEKaml: uhm, which API are you talking about? | |||
| (or at least for some of them) | 14:20 | ||
| pmurias | does any one do exercises from programming books ? ;) | 14:21 | |
| moritz_ | pmurias: depends on how serious I am about learning | ||
|
14:23
SmokeMachine joined,
am0c left
|
|||
| moritz_ | wow, I still get feedback for my 5-to-6 blog posts | 14:24 | |
| I wonder if I should turn them into a mini book or so | |||
|
14:25
muixirt left
|
|||
| isBEKaml | moritz_: maybe API's the wrong term to use, I meant the functions, operators that you demonstrate through the chapters. I was thinking you can include some more of them that do similar things, perhaps.. | 14:27 | |
| pmurias | moritz_: it could be very usefull for perl5 coder who don't want to read the whole spec and would be bored by a from the basic introductory approach | ||
| isBEKaml | pmurias: :D I usually don't... Exercises let me be choosy about what to do.. ;) | 14:28 | |
| dalek | ok: db22164 | masak++ | src/subs-n-sigs.pod: [subs-n-sigs] fixed grammaro |
||
| moritz_ | isBEKaml: you mean like a short reference? | 14:29 | |
| colomon | moritz_: any luck sorting out .subst? | ||
| moritz_ | colomon: haven't investigated much more - only found that .subst calls .split(..., :all) | 14:30 | |
| masak | pmurias: we should probably have a comment such as 'if you're a Perl 5 coder, you might want to start from chapter $N rather than chaper 1'. | ||
| isBEKaml | no, not exactly. Problem statement, hint states some function that we can use. Now, have a look at this function/op and see what it does. If you don't understand, there's the glossary/IRC. ;) | ||
| moritz_ | masak: except that it doesn't work with our book | ||
| masak | why not? | 14:31 | |
| moritz_ | isBEKaml: that's actually a good idea | ||
| masak: because we cover things in chapter 1 that perl 5 programmers don't know | |||
| masak | that may be. but it's definitely more of a beginner's introduction than meant for Perl 5 coders. | 14:32 | |
| [Coke] | immutable strings branch is better with parrot trunk now, but still failing. | 14:34 | |
| isBEKaml | moritz_: I think readers would appreciate things more if the book takes on a laidback approach of allowing the learner to figure things out. | ||
| moritz_ | isBEKaml: agreed | 14:35 | |
| isBEKaml | moritz_: But lay down the concepts/foundation well beforehand.. | ||
| moritz_ | isBEKaml: might I trick you into writing such a laid-back guiding for one exercise? | 14:36 | |
| or bribe you, with virtual $beverage-of-choice | 14:37 | ||
|
14:38
am0c joined
|
|||
| isBEKaml | moritz_: sure, seeing as I'm only a couple of days into perl6, I might take long to come up with even a para of text. :D | 14:38 | |
| moritz_ | isBEKaml: well, it's a good test for the book... | 14:39 | |
| isBEKaml: if you read the first chapter, and try to solve the exercises | |||
| isBEKaml: you know *now* where you have troubles | |||
| isBEKaml: even telling us about these troubles would be helpful for us authors | |||
| isBEKaml | moritz_: yeah, there were some off-ish issues with formatting and some broken code, as far into chapter 2, nothing that's still in latest repos.. I'll be working through chapter 3 now, but the formatting there is broken. :( | 14:41 | |
| moritz_ | isBEKaml: wait, I'll upload a better PDF | ||
| isBEKaml: please try moritz.faui2k3.org/tmp/book.pdf | 14:42 | ||
| isBEKaml: should include fixed >> + their unicode versions | 14:43 | ||
| isBEKaml | moritz_: there's quite a distance! Connection's crawling in singledigit kbps.. :D | 14:45 | |
| moritz_: done downloading, thanks. | |||
|
14:47
viklund left
14:48
nihiliad joined
|
|||
| isBEKaml | moritz_: In page 11, even as it is explained about [max] and infix operators, it doesn't explain the significance of including the ">>" between objects and methods. We could go on wondering what these characters were doing there... | 14:51 | |
| colomon | rakudo: my %c = '&' => '&'; say 'a&b'.subst(rx/ <[&]> /, {warn $/.WHAT; %c{"$/"}}, :g) | 14:53 | |
| p6eval | rakudo 6a502f: OUTPUT«Any()ab» | ||
|
14:55
M_o_C joined
|
|||
| masak | bug opened 15:11, closed 15:50. :) moritz_++ | 14:55 | |
| moritz_ | colomon: I don't expect $/ to be set; I know it's NYI | 14:57 | |
| rakudo: 'a&b'.subst(rx/ <[&]> /, -> $x { warn $x.WHAT; 2 }) | 14:58 | ||
| p6eval | rakudo 6a502f: OUTPUT«Regex::Match()» | ||
| moritz_ | rakudo: say 'a&b'.subst(rx/ <[&]> /, -> $x { warn $x.WHAT; 2 }) | ||
| p6eval | rakudo 6a502f: OUTPUT«Regex::Match()a2b» | ||
| moritz_ | rakudo: say 'a&b'.subst(rx/ <[&]> /, -> $x { warn ~$x; 2 }) | ||
| p6eval | rakudo 6a502f: OUTPUT«&a2b» | ||
| colomon | so that pir::store_dynamic_lex call to set $/ isn't working? | ||
| moritz_ | nope; we could just as well remove it | 14:59 | |
| rakudo: my %c = '&' => '&'; say %c.perl; say 'a&b'.subst(rx/ <[&]> /, -> $x { warn ~$x; 2 }) | 15:00 | ||
| p6eval | rakudo 6a502f: OUTPUT«{"\&" => "\&"}&a2b» | ||
| moritz_ | rakudo: my %c = '&' => '&'; say %c.perl; say 'a&b'.subst(rx/ <[&]> /, -> $x { warn ~$x; %c{~$x} }) | 15:02 | |
| p6eval | rakudo 6a502f: OUTPUT«{"\&" => "\&"}&a&b» | ||
| moritz_ | rakudo: my %c = '&' => '&'; say %c.perl; say 'a&b'.subst(rx/ <[&]> /, -> $x { warn ~$x; %c{$x} }) | ||
| p6eval | rakudo 6a502f: OUTPUT«{"\&" => "\&"}&a&b» | ||
|
15:03
ruoso left
15:04
molaf joined
|
|||
| dalek | ok: 95acbd0 | moritz++ | bin/book-to-latex: [latex] use the font "bera" consistently. Patch by sahadev++ |
15:10 | |
|
15:10
molaf left
|
|||
| diakopter | pmurias: hi | 15:14 | |
| colomon | rakudo: my %c = '&' => '&'; say 'a&b'.subst(rx/ <[&]> /, {warn $_.WHAT; %c{"$_"}}, :g) | 15:15 | |
| p6eval | rakudo 6a502f: OUTPUT«Regex::Match()ab» | ||
| colomon | huh. | ||
| moritz_ | so | ||
| colomon | I removed the pir::store_dynamic_lex locally, and now I don't even get the ab from that. | ||
| pmurias | diakopter: hi | ||
| moritz_ | it works with -> $x but not with $_, right? | ||
| pmurias | diakopter: is sprixel in a working state atm? | 15:16 | |
| colomon | rakudo: my %c = '&' => '&'; say 'a&b'.subst(rx/ <[&]> /, -> $x {warn $x.WHAT; %c{"$x"}}, :g) | ||
| p6eval | rakudo 6a502f: OUTPUT«Regex::Match()ab» | ||
|
15:16
cotto_work left
|
|||
| moritz_ | rakudo: my %c = '&' => '&'; say 'a&b'.subst(rx/ <[&]> /, -> $x {warn $x.WHAT; %c{~$x}}, :g) | 15:17 | |
| p6eval | rakudo 6a502f: OUTPUT«Regex::Match()ab» | ||
|
15:17
cotto_work joined
|
|||
| moritz_ lost | 15:17 | ||
| colomon | I'm suspecting the real issue may be with the match objects. | 15:18 | |
| diakopter | pmurias: oh, sorta. | ||
| colomon | but I'm pretty lost myself in all this. | ||
| diakopter | I'll revert that change. | ||
| pmurias | i'm currently removing bitrot from mildew so i don't need a working sprixel atm | 15:19 | |
| diakopter | pmurias: fixed | 15:20 | |
|
15:20
jt joined
|
|||
| dalek | meta: r213 | diakopter++ | trunk/Sprixel/ (2 files): [perlesque] revert the save-assembly-only change |
15:21 | |
| colomon | moritz_: quasi-confirmed | 15:23 | |
| I just added say @chunks[$i].WHAT ~ ": " ~ @chunks[$i]; | |||
| to the source | |||
| and what I got back was | |||
| Regex::Match(): | |||
| moritz_ | so it's really a match object stringifying to the empty string? | ||
| rakudo: my %c = '' => '&'; say 'a&b'.subst(rx/ <[&]> /, -> $x {warn $x.WHAT; %c{~$x}}, :g) | 15:24 | ||
| p6eval | rakudo 6a502f: OUTPUT«Regex::Match()a&b» | ||
| moritz_ | (note the hash key...) | ||
| colomon | at least, it is that before it is passed as $_, yes. | ||
| moritz_ wonders why the tests for split() still all pass | 15:25 | ||
|
15:25
ruoso joined
|
|||
| colomon | actually, it may be failing instead of stringifying to the empty string, or something like that. | 15:26 | |
| not sure how you would tell the difference. | |||
| masak | rakudo: sleep | ||
| p6eval | rakudo 6a502f: OUTPUT«Not enough positional parameters passed; got 0 but expected 1current instr.: 'sleep' pc 373833 (src/gen/core.pir:29344)» | ||
| masak updates rakudobug | |||
| [Coke] | masak - that was fixed in alpha, but not master. | ||
| masak | indeed. | 15:27 | |
| [Coke] | masak: pending a "how to sleep for infinity" method in parrot. | ||
| masak | [Coke]: seems you already updated that ticket, to boot :) | ||
| colomon | heh. I'm not sure there are ANY tests in subst for sending a closure in that we actually pass at the moment. | ||
| masak | alpha sleeps for 68 years instead :) | ||
| colomon | lots of skips in that file. | ||
| moritz_ | that's sad-ish | ||
| masak | 68 years is probably enough for most purposes. | 15:28 | |
| moritz_ | (I mean the skips, not the 68 years :) | ||
| pmurias | diakopter: see the bug found when parsing mildews output | ||
| colomon | moritz_: there is exactly 1 test for the :all modifier to split, and that is skipped. :( | 15:29 | |
| moritz_ | :( | ||
| pugssvn | r30492 | pmurias++ | [mildew] fixes to the output of bread -Cperlesque | 15:30 | |
| dalek | meta: r214 | pawelmurias++ | trunk/Sprixel/t/parse_bug.t: failing test |
15:31 | |
| colomon | moritz_: do you want to have a go at writing some, or should I? | ||
|
15:31
synth joined
|
|||
| moritz_ | colomon: I need to decommute - I have you have time for some tests, that would be great | 15:32 | |
| colomon | moritz_: can't do a bunch, but I can at least do a few. sure thing. | ||
| diakopter | pmurias: did it say what line number it got to? | 15:33 | |
| gtg; bbl | |||
| colomon | moritz_: it gets better. as far as I can tell, we have pretty much only one direct test for the .match method, which is key to making split work. | 15:35 | |
|
15:35
rv2733 joined
|
|||
| colomon | rakudo: say "hello world".split(/[aeiou]/).perl | 15:37 | |
| p6eval | rakudo 6a502f: OUTPUT«("hello world")» | ||
| colomon | rakudo: say "hello world".split(/o/).perl | ||
| p6eval | rakudo 6a502f: OUTPUT«("hell", " w", "rld")» | ||
| colomon | rakudo: say "hello world".split(/o/, :all).perl | ||
| p6eval | rakudo 6a502f: OUTPUT«Method 'perl' not found for invocant of class 'Regex;Match'current instr.: 'perl6;Iterator;_block14882' pc 453094 (src/gen/core.pir:59398)» | ||
| pmurias | diakopter: no | 15:39 | |
| masak | colomon: [aeiou] is spelled <[aeiou]> nowadays. | 15:43 | |
| colomon | masak++ | ||
| errr.... what do I test for to see if something is a match? | 15:45 | ||
| Is it Match? Regex::Match? | |||
| I'm suspicious Rakudo doesn't match the spec there... | |||
| masak | known. :) | 15:46 | |
| and very aggravating. | |||
| colomon | what should it be ideally? | 15:48 | |
|
15:49
nadim joined
|
|||
| jnthn | Match, iirc. | 15:49 | |
| We're blocking on Rakudo running on latest Parrot so moritz++ can continue hacking in this area. | 15:50 | ||
| That in turn blocks on a Parrot bug, though I didn't check latest status of the ticket today. | |||
| colomon | jnthn++ | ||
|
15:52
dalek left
|
|||
| jnthn | ah, there has been a patch from Allison that may deal with the issue. | 15:52 | |
|
15:52
dalek joined
|
|||
| TimToady | catching errors like [aeiou] is on my list of lovin's to be installed in STD | 15:52 | |
| masak | :) | ||
| colomon | jnthn: can you back up a minute and provide more context for your last few comments here? you're not blocking on split, subst, or SVG.pm, are you? | 15:53 | |
| [Coke] | jnthn: immutable_strings is now hanging on a setprop fail. | ||
| masak | STD.pm6 -- knows more about Perl 6 programming than the average Perl 6 programmer :) | ||
| [Coke] | s/hanging/blocking/ | ||
| jnthn: the bug you reported in parrot yesterday is fixed. | 15:54 | ||
| jnthn | colomon: Progress on getting Match right is blocking on Rakudo running on latest Parrot trunk. | ||
| colomon | masak: you mean "than the average Perl 6 developer" ;) | ||
| jnthn | [Coke]: Ah, great. | ||
| colomon | jnthn: ah, interesting. | ||
| TimToady | All Perl 6 programmers are above average. :) | ||
| pugssvn | r30493 | colomon++ | [t/spec] Add some simple tests for :all. | ||
| jnthn | [Coke]: Will look into The Next Issue this evening then. | ||
|
15:55
envi^home left
|
|||
| colomon | rakudo: my $a = "hello".match(/<[aeiou]>/); say $a.WHAT; say $a | 15:55 | |
| p6eval | rakudo 6a502f: OUTPUT«Regex::Match()e» | ||
| masak | Perl 6 -- applying the Lake Wobegon effect to Second System Syndrome since 2001. | 15:57 | |
| colomon | ah, might have an idea what is going wrong here.... | 15:58 | |
|
16:00
iblechbot left
16:01
justatheory joined
|
|||
| colomon | got it/ | 16:02 | |
| (past colomon)-- | 16:03 | ||
|
16:06
M_o_C left
16:09
smash_ left
16:10
redicaps joined
|
|||
| redicaps | std: say "hello world" | 16:10 | |
| p6eval | std 30493: OUTPUT«ok 00:01 109m» | ||
|
16:14
redicaps left
16:15
ash__ joined
|
|||
| moritz_ | rakudo: say ?«'moin'.split(rx/<[aeiou]>/, :all) | 16:15 | |
| p6eval | rakudo 6a502f: OUTPUT«10001» | ||
| moritz_ | rakudo: say ?«'mon'.split(rx/<[aeiou]>/, :all) | ||
| p6eval | rakudo 6a502f: OUTPUT«101» | 16:16 | |
| moritz_ | rakudo: say 'mon'.split(rx/<[aeiou]>/, :all)».WHAT | ||
| p6eval | rakudo 6a502f: OUTPUT«Str()Regex::Match()Str()» | ||
| moritz_ | rakudo: say 'mon'.split(rx/<[aeiou]>/, :all)».uc | ||
| p6eval | rakudo 6a502f: OUTPUT«Method 'uc' not found for invocant of class 'Regex;Match'current instr.: '!dispatch_method_parallel' pc 359 (src/glue/dispatch.pir:72)» | ||
| dalek | meta: r215 | anteus4++ | trunk/Sprixel/t/controlflow.t: added loop tests |
||
|
16:18
am0c left,
snarkyboojum left
16:21
cdarroch joined,
cdarroch left,
cdarroch joined
16:22
nihiliad left
|
|||
| masak | std: >>.say | 16:28 | |
| p6eval | std 30493: OUTPUT«===SORRY!===Method call found where infix expected (omit whitespace?) at /tmp/4DPhQ3ZTnW line 1:------> >>⏏.say expecting any of: bracketed infix infix or meta-infix===SORRY!===Method call found where infix | ||
| ..expected (… | |||
| masak | std: .>>say | 16:29 | |
| p6eval | std 30493: OUTPUT«===SORRY!===Bogus statement at /tmp/FMxWM2dVEL line 1:------> <BOL>⏏.>>sayParse failedFAILED 00:01 108m» | ||
| jnthn | rakudo: >>.say | 16:30 | |
| p6eval | rakudo 6a502f: OUTPUT«Confused at line 11, near ">>.say"current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)» | ||
| jnthn | rakudo: .>>say | ||
| p6eval | rakudo 6a502f: OUTPUT«Confused at line 11, near ".>>say"current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)» | ||
| jnthn | Awesomization required! | ||
|
16:32
am0c joined
|
|||
| moritz_ | colomon: in perl6advent.wordpress.com/2009/12/0...yperspace/ you talk about (1, 2, 3, 4)>>++ | 16:33 | |
| TimToady | you're the first person who has asked for that to work, so I'm not sure that it's worth making it work. | ||
| moritz_ | colomon: which can't work, because ++ modifies in-place | ||
| TimToady | and $_».say isn't so much longer | 16:34 | |
| masak | not asking for it to work. :) | ||
| jnthn isn't asking for it to work either :-) | |||
|
16:34
_jaldhar left
|
|||
| TimToady | it doesn't even look like something people will try very often | 16:34 | |
| jnthn | I was meaning the error messages in Rakudo needed improving to STD quality. :-) | ||
| TimToady | oh, nevermind then :) | ||
| std: ».say | 16:35 | ||
| p6eval | std 30493: OUTPUT«===SORRY!===Method call found where infix expected (omit whitespace?) at /tmp/UsHpS4CPe0 line 1:------> »⏏.say expecting any of: bracketed infix infix or meta-infix===SORRY!===Method call found where infix | ||
| ..expected (o… | |||
| jnthn | Well, and I did also wonder if it accidentally worked in Rakudo. ;-) | ||
| TimToady | though it's not clear to me why it's even getting that message | ||
| jnthn | TimToady: It's...extremely SORRY. | ||
| Twice | 16:36 | ||
| :-) | |||
| (Which is also a tad odd.) | |||
| TimToady | it's supposed to suppress duplicates | ||
| which are often created under backtracking | |||
| diakopter | pmurias: I fixed the bug(s) | 16:37 | |
| pmurias: I'll commit them, but you need to commit P6Str.cs :P | 16:38 | ||
| TimToady | I think my supposition logic is not sufficiently suppositional... | 16:39 | |
|
16:40
masak left
|
|||
| jnthn | I suppose not. | 16:40 | |
| pmurias | diakopter: it's already commited | 16:42 | |
| diakopter | oh | 16:43 | |
| pmurias: oh, you typoed the capitalization :P | |||
| the class is named P6str inside P6Str.cs, and in parse_bug.t it's called P6Str | 16:44 | ||
| pmurias | what's the type of sprixel literals? | 16:45 | |
| dalek | meta: r216 | diakopter++ | trunk/Sprixel/ (5 files): [perlesque] note: subs that don't have an explicit return statement need to |
16:46 | |
| pmurias | diakopter: commited | 16:47 | |
|
16:49
SmokeMachine left
|
|||
| dalek | meta: r217 | pawelmurias++ | trunk/Sprixel/src/Types/P6Str.cs: fix P6Str |
16:51 | |
| pmurias | bjj& | ||
|
16:55
_jaldhar joined
|
|||
| dalek | kudo: 72f914f | (Solomon Foster)++ | src/core/Cool-str.pm: Clone the returned match so we can take it without worrying about the next iteration clobbering it. |
17:00 | |
| moritz_ thought matches were immutable | 17:01 | ||
|
17:11
bezko joined
|
|||
| bezko | new here, just dropping to ask if anyone knows what is the status of mod_parrot | 17:12 | |
|
17:12
molaf joined
|
|||
| diakopter | bezko: #parrot is on the mag-net | 17:13 | |
| colomon | moritz_: a match might be,but the var holding it isn't. | ||
|
17:13
dakkar left
|
|||
| jnthn | bezko: Not sure folks here would know - I've not heard anything much for a while. | 17:14 | |
| bezko: Probably best to ask on #parrot as diakopter suggested, they are more likely to be clued in. :-) | |||
| bezko | anyone using perl6 for web development? | 17:15 | |
| moritz_ points to masak | |||
|
17:31
ingy left
17:32
Transformer joined,
Transformer left
17:34
bezko left
17:41
ingy joined
17:43
wasy_ joined,
wasy_ left,
wasy_ joined
17:44
wasy_ left,
ash__ left
17:45
SmokeMachine joined
17:51
cotto_work left
17:54
cotto_work joined
|
|||
| colomon | rakudo: say "a" | 17:58 | |
| p6eval | rakudo 72f914: OUTPUT«a» | ||
| colomon | rakudo: say ?«'moin'.split(rx/<[aeiou]>/, :all) | 17:59 | |
| p6eval | rakudo 72f914: OUTPUT«11011» | ||
| colomon | rakudo: say 'moin'.split(rx/<[aeiou]>/, :all)>>.Str | 18:00 | |
| p6eval | rakudo 72f914: OUTPUT«moin» | ||
| colomon | rakudo: say ('moin'.split(rx/<[aeiou]>/, :all)>>.Str) | ||
| p6eval | rakudo 72f914: OUTPUT«moin» | ||
| colomon | rakudo: say ('moin'.split(rx/<[aeiou]>/, :all)>>.Str).perl | ||
| p6eval | rakudo 72f914: OUTPUT«("m", "o", "", "i", "n")» | ||
|
18:01
rv2733 left
18:02
ash__ joined
|
|||
| colomon | Does everyone agree that's the correct behavior? If so, I'll plop it in the test suite too. | 18:03 | |
| [Coke] | semi-related question: should .perl use '' for string literals? | 18:07 | |
| (where possible, modulo escaped chars, etc.) | |||
| colomon | [Coke]: you mean single versus double quotes? | ||
| TimToady | '' ends up looking like " in proportional fonts, alas | ||
| [Coke] | well, hell, let's use ‘’then. =-) | 18:09 | |
| (I am being facetious.) | 18:10 | ||
| colomon | rakudo: say ('moin'.split(/<[aeiou]>/, :all)>>.Str).perl | 18:11 | |
| p6eval | rakudo 72f914: OUTPUT«("m", "o", "", "i", "n")» | ||
| TimToady | I am of the school that says you always use "" unless you specifically want to suppress interpolation, but certainly I can see the other mindset as well. I don't think either view is "correct". | ||
| [Coke] | as long as there's a reason. just wondering, as I prefer 'foo' over "foo" | ||
| ah. I am of the school that says you use '' unless you need interpolation. | |||
| [particle] | q<> | 18:12 | |
| [Coke] | oh hush, you. =-) | ||
| TimToady | Q^@...^@ | ||
| [particle] | HA | 18:13 | |
| [Coke] | "Now you're just being silly!" | ||
|
18:13
meppl left
|
|||
| [particle] | you didn't need interpolation there. | 18:13 | |
| [Coke] | whoa. | ||
| phenny: .u asterism | |||
| TimToady | I see stars | ||
|
18:14
TimToady sets mode: +vvv buubot dalek hugme,
TimToady sets mode: +vv ilogger2 IRSeekBot,
TimToady sets mode: +vvv lisppaste3 p6eval phenny
|
|||
| ash__ | .u asterism | 18:14 | |
| phenny | U+2042 ASTERISM (⁂) | ||
| ash__ | .u snowman | 18:15 | |
| phenny | U+2603 SNOWMAN (☃) | ||
|
18:16
stephenlb joined
|
|||
| [Coke] | I am sidetracked to U+203B (reference mark) which is also the sign of the indian chief I used to be the paperboy of. ( | 18:16 | |
| spinclad | "there's more to {esc}ape $in a "'d @string[" | ||
| rakudo: say 'h"i" "there"!'.perl | 18:19 | ||
| p6eval | rakudo 72f914: OUTPUT«"h\"i\" \"there\"!"» | ||
| diakopter | std: my $a of Int | 18:22 | |
| p6eval | std 30493: OUTPUT«ok 00:01 107m» | ||
| sorear | nqp: say(pir::does__IPS(sub () {}, 'Code')) | ||
| p6eval | nqp: OUTPUT«0» | ||
| [Coke] | slash7.com/2006/12/22/vampires/ - "help vampires" via bdf. | 18:23 | |
|
18:25
justatheory left
|
|||
| spinclad | My school says that, all else being in an even balance, .perl should emit the form simplest for reconstituting, so prefers '' over "" here. (but not vehemently.) | 18:25 | |
|
18:27
uniejo joined
18:29
hicx174 left,
hicx174 joined
18:35
justatheory joined
18:40
gurjeet is now known as gurjeet_
18:41
gurjeet_ is now known as gurjeet,
nihiliad joined
|
|||
| sorear | eternaleye: No. Won't do, since it doesn't work with Parrot | 18:44 | |
| jnthn: Hi! | |||
| jnthn: I'm looking for... a better way for Parrot to recognize callables. | |||
| jnthn: blizkost currently uses VTABLE_isa(INTERP, $obj, 'Sub') | 18:45 | ||
| but there are plenty of non-Sub callables... like oh Perl6Sub | |||
| I'm thinking this is going to need a multi-faceted fixz | 18:46 | ||
| 1. add a 'callable' interface to Parrot, like our current 'array', etc | |||
| 2. make P6opaque support 'callable' iff does 'postcircumfix:<( )>' | 18:47 | ||
| 3. use 'callable' in blizkost | |||
|
18:47
gurjeet left
|
|||
| sorear | P6opaque already forwards VTABLE_invoke to postcircumfix:<( )> | 18:47 | |
|
18:47
uniejo left
18:48
gurjeet joined,
uniejo joined
|
|||
| [Coke] | sorear: you probably want something like "does Callable" (which is not set on a Sub, MultiSub, or an Eval, but can be in about 5m.) | 18:58 | |
| [Coke] catches up. Right. what you said, with does. =-) | |||
|
18:59
Transformer joined
|
|||
| [Coke] | (does Perl6Sub not inherit from Sub at some point?) | 18:59 | |
|
19:02
Transformer left
19:06
ShaneC joined,
ShaneC left,
[Coke] left
19:07
[Coke] joined
|
|||
| sorear | [Coke]: none of the Rakudo base classes actually inherit from PMCs iirc. It's delegation all the way down. | 19:10 | |
| [Coke] | sorear: would it be helpful if you could ask VTABLE_does(interp, pmc, "Callable") ? | 19:12 | |
| sorear | yes | ||
| diakopter | TimToady: (cont. previous "everything's a closure" thread), this means lexicals declared in the block also become uninitialized, unless of course they are "state" variables...? | ||
| TimToady | yes, the block is called repeatedly by the implementation of loop, and Perl doesn't care whether it's a "built-in" or something the user cooked up. | 19:14 | |
| diakopter | ok. | ||
| sorear | the default slang has special syntax for for but that can be overriden | ||
| TimToady | if you want a fast loop, there's always 'redo' and 'goto' | ||
| diakopter reallocates mental resources to tricksiness | |||
| jnthn | sorear: May we that we need a vtable override in Mu.pir for the does vtable method. | 19:15 | |
| sorear | jnthn: P6opaque would be more correct IMO as that's where our 'invoke' lives | 19:16 | |
| jnthn | And also inconsistent with all of our other vtable overrides. | 19:17 | |
| (Aside from invoke.) | 19:18 | ||
| The only ones that live in the PMC are in there because they need to be. | |||
|
19:20
sahadev joined
|
|||
| diakopter | I just remembered I already accounted for this. doh. I should write more comments. my code is not very self-documenting. even the code I wrote a few days ago. | 19:22 | |
| TimToady | perhaps you should consider writing in APL, since Unicode now supports that... | 19:23 | |
| [Coke] | conveniently, we have an APL for parrot. | ||
| (a very crappy, broken one, but still!) | 19:24 | ||
| diakopter pretends not to be nonplussed... oh nm | |||
| [Coke] | ETOOMANYNEGATIVES | ||
| sorear | [Coke]: An APL for Parrot? | 19:25 | |
| diakopter | ok, but I didn't think "plussed" wasn't a non-word | 19:26 | |
| [Coke] | "I pretend to care." | ||
| ? | |||
| sorear: code.google.com/p/paraplegic/ | |||
| diakopter | I wonder for what 'egic' is short. | 19:28 | |
| [Coke] | nothing. | ||
| diakopter | I would understand the suffix -ergic | 19:29 | |
|
19:30
REPLeffect left
|
|||
| arnsholt | diakopter: The word is properly segmented as para-plegic =) | 19:30 | |
| diakopter | oh, I thought it meant PARrotAPLegic | 19:31 | |
| er | |||
| PARrotAPLEGIC | |||
| PARrot-APL-EGIC | |||
| without the rot. | |||
| [Coke] | just PAR(rot)APLegic. | ||
| arnsholt | Yeah, that's probably the influence | ||
| sorear | jnthn: trac.parrot.org/parrot/ticket/1597 | 19:33 | |
| TimToady | wow, making STD parse the insides of character classes makes it really upset with itself... | ||
| [Coke] | bad std. | 19:34 | |
| ... "give yourself an STD, play with Perl6!" ? | |||
| sorear | I wonder how reasonable it would be to use Perl 6 itself to build a language implementation... we've got this wonderful grammar engine. | 19:35 | |
| arnsholt | I had a similar problem with NQP. There's some code that panics with a Perl 5 compat message when there's a - in a character class | ||
| Which is helpful, until you actually want - in your character class =) | |||
|
19:35
_jaldhar left
|
|||
| TimToady | it's supposed to let you use \- there | 19:35 | |
|
19:35
c9s joined
|
|||
| arnsholt | Yeah, that's what I did | 19:36 | |
| sorear | rakudo: sub foo($a) { $a() * 2; }; sub bar($b) { foo($b) * 2; }; say(bar({return 52})); | 19:37 | |
| p6eval | rakudo 72f914: OUTPUT«104» | ||
| sorear | TimToady: What's the correct output for that? | ||
| pmichaud | 19:33 <TimToady> wow, making STD parse the insides of character classes makes it really upset with itself... | 19:38 | |
| phenny | pmichaud: 27 Apr 15:29Z <moritz_> tell pmichaud that I pushed 082caee15e26038b615204b27034563706a16253 without asking you first - hope you like it, if not feel free to revert | ||
| pmichaud: 04:42Z <quester_> tell pmichaud When you have a moment, could you please take a look at RT #73148: "[PATCH] Fix bug #68752, make perl6 --version more informative" and let me know what you think? Thank you! | |||
| diakopter | sorear: re "I wonder how reasonable... ": LOL. but, that's the goal (as stated in S01, at least). | 19:39 | |
| pmichaud | This is why neither PGE nor NQP have worried about parsing things like \s, \S, \d, etc. inside of character classes :) | ||
| actually, parsing wouldn't be too bad, it's making them do something useful that is the pain point :-) | |||
| jnthn | sorear: Yes, but that won't help entirely since we wrap Parrot subs. | 19:40 | |
| sorear | jnthn: It's half of the solution. I still need a rakudocommitter to make Perl6Sub 'does' invokable | 19:41 | |
| jnthn | Perl6Sub? | ||
| pmichaud | phenny: tell moritz_ commit 082caee looks great to me if the other release managers are generally in agreement. | 19:42 | |
| phenny | pmichaud: I'll pass that on when moritz_ is around. | ||
| sorear | Or Sub? Whatever src/builtins/Sub.pir defines | ||
| jnthn | rakudo: say pir::does(Sub, 'invokable') | ||
| p6eval | rakudo 72f914: OUTPUT«1» | ||
| [Coke] | greetings, pmichaud. | 19:43 | |
| moritz_ | pmichaud: jnthn and masak were in agreement | ||
| phenny | moritz_: 19:42Z <pmichaud> tell moritz_ commit 082caee looks great to me if the other release managers are generally in agreement. | ||
| [Coke] | jnthn: where is that invokable coming from? | ||
| pmichaud | +1 from me then | ||
| was just stopping in for a moment to check on some messages; I'll be back tomorrow most likely | 19:44 | ||
| afk | |||
| pugssvn | r30494 | colomon++ | [t/spec] Simple test that split handles captures correctly. | 19:45 | |
| jnthn | [Coke]: Forget, I think we may just lie somewhere to say we do it. | ||
| [Coke] | jnthn: sneaky! | ||
| jnthn | yeah | 19:46 | |
| Code.pir | |||
| sorear | nqp: say pir::does(sub () {}, 'invokable') | ||
| p6eval | nqp: OUTPUT«Confused at line 1, near "say pir::d"current instr.: 'parrot;HLL;Grammar;panic' pc 500 (src/cheats/hll-grammar.pir:197)» | ||
| sorear | nqp: say(pir::does(sub () {}, 'invokable')) | ||
| p6eval | nqp: OUTPUT«0» | ||
| sorear | !!! I have the Tk example working in Perl6 now | 19:51 | |
| jnthn | sorear++ \o/ | 19:53 | |
| [Coke] | sorear++ \o/ | 19:54 | |
| colomon | \o/ | ||
| sorear | jnthn: pastie.org/939776 - two small bugfixes in the foreign module loader. (CGI.new works now, plus a forgotten newclosure) | ||
| [Coke] | |o/ \o| |o| _._ # important to stretch every once in a while. | ||
| sorear | there are two fudges in the Tk - perl6 example | 19:55 | |
| (sub () { ... }).do # this returns a Parrotsub | |||
| TimToady | alpha: sub foo($a) { $a() * 2; }; sub bar($b) { foo($b) * 2; }; say(bar({return 52})); | ||
| p6eval | alpha 30e0ed: OUTPUT«104» | ||
|
19:55
SmokeMachine left
|
|||
| sorear | eval("'MainWindow'", :lang<perl5>) # to use indirectly imported classes | 19:55 | |
| TimToady | the correct behavior is to complain about a return outside of a sub | ||
| jnthn | sorear: Yes, .do gives you the Parrot sub. | 19:56 | |
| sorear: Thanks for the patch - I'd wondered if we'd need a newclosure there. | |||
| sorear: Going to read for a bit now and got a couple of other little things to fix, then will get it in. | 19:57 | ||
| sorear | github.com/jnthn/blizkost/raw/bb495...ples/tk.pl | 20:00 | |
| TimToady | phone | ||
| sorear | not *too* bad | ||
|
20:02
tri1 joined
20:06
madalu joined
|
|||
| pmurias | diakopter: what type should the P6Str constructor take? | 20:10 | |
|
20:11
cotto_work left,
wasy joined,
wasy left,
cotto_work joined
20:13
molaf left
20:15
pyrimidine joined
20:17
xinming_ joined,
xinming left
20:18
TiMBuS joined,
takadonet left
|
|||
| [Coke] needs to actually do something for next week. :P | 20:26 | ||
| diakopter | pmurias: I don't know | 20:27 | |
| pmurias | ? | 20:28 | |
| diakopter | UTF32String.cs is essentially buf32 | ||
| (I wrote UTF32String) | |||
| so maybe that | |||
| TimToady | with a buf32 type we could replace icu | 20:29 | |
|
20:30
kst is now known as __k__s__t__
|
|||
| diakopter | it does hi/lo surrogates but obviously not combining | 20:30 | |
|
20:30
__k__s__t__ is now known as kst
|
|||
| pmurias | diakopter: if P6Str.new("foo") is to work it should be UTF32String? | 20:30 | |
| diakopter | pmurias: probably so, yeah | 20:31 | |
| pmurias | doesn't work | ||
| diakopter | and wherever input is pulled in, do a UTF32String.new(inputUTF16string) | ||
| what doesn't work | 20:32 | ||
| yeah you can't send a clr string into it (a clr string is a two-byte utf16 string) | |||
| pmurias | P6Str.new("foo") doesn't work when the constructor tkaes UTF32String | ||
| diakopter | right, | ||
| pmurias | * takes | ||
|
20:33
breinbaa1 left
|
|||
| diakopter | instead of storing a "string" as a field in P6Str, store a UTF32String, and give P6Str two constructors | 20:33 | |
| one that takes a clr string, and one that takes a UTF32String | 20:34 | ||
| cognominal | rakudo: class A { has $a }; say "can" if A.new.can('a') | ||
| p6eval | rakudo 72f914: ( no output ) | ||
| pmurias | which one will be called by P6Str.new("foo")? | ||
| cognominal | rakudo: class A { has $a=1 }; say "can" if A.new.a | ||
| p6eval | rakudo 72f914: OUTPUT«Method 'a' not found for invocant of class 'A'current instr.: '_block14' pc 29 (EVAL_1:0)» | 20:35 | |
|
20:35
breinbaas joined
|
|||
| cognominal | hum | 20:35 | |
| diakopter | whichever you want perlesque to :) if you think it should have character semantics, then I can have perlesque transform "foo" (string literal) into UTF32String | ||
| pmurias | neither works currently | ||
| diakopter | (it doesn't matter since you'll have two constructors anyway | ||
| ) | |||
| commit your .cs and your .t | 20:36 | ||
| dalek | meta: r218 | pawelmurias++ | trunk/Sprixel/ (2 files): failed attempt at getting P6Str.new to work |
20:37 | |
| diakopter | oh. | 20:38 | |
| my bad; I forgot to make the constructors actually pass in its arguments | 20:39 | ||
| since "new" is a special case (it isn't actually a method name on the class) | |||
|
20:39
SmokeMachine joined,
uniejo left
20:44
[particle] left
20:46
knewt_ joined
20:48
knewt_ left
20:51
knewt_ joined,
knewt_ is now known as knewt2
20:54
[particle] joined
20:57
tri1 left
21:00
am0c left
21:01
ReiniUrban joined
21:03
iblechbot joined,
ShaneC joined,
rurban left,
ReiniUrban is now known as rurban
21:04
SmokeMachine left,
ShaneC left
21:05
ruoso left
21:07
IllvilJa left
21:08
alester left
21:09
takadonet1 joined
21:10
espadrine joined
|
|||
| diakopter | pmurias: omg. | 21:13 | |
| I just spent 1 hr trying to find my bug, when it was your bug :P | 21:14 | ||
| you didn't make P6capture derive P6object ;) | |||
| (but I still had the new(args) bug) | 21:15 | ||
|
21:18
takadonet1 left
|
|||
| pmurias | diakopter: sorry ;) | 21:18 | |
|
21:19
wknight8111 joined
|
|||
| diakopter | (committed) | 21:19 | |
|
21:19
takadonet joined
|
|||
| pmurias | the test still fails | 21:21 | |
| dalek | meta: r219 | diakopter++ | trunk/Sprixel/ (7 files): [perlesque] fix constructor invocation bug ++pmurias |
||
| diakopter | oh, oops. | 21:22 | |
| oh, one more NYI thing there | 21:23 | ||
| wait, no | |||
| that should work. | |||
| pmurias | why do bugs in the emitter generate parse errors? | ||
| diakopter | 'cuz it's all 1 phase | ||
| parse/emit | 21:24 | ||
| meesa fan of transliteration | |||
| pmurias | meesa? | ||
|
21:24
espadrine left
|
|||
| diakopter | a star wars episode 1 allusion. nm. I'm a fan of transliteration. | 21:24 | |
|
21:25
espadrine joined,
gurjeet left,
chitragupt left
|
|||
| pmurias | throwing away the buggy parser and accepting json would be so nice... | 21:26 | |
| ;) | |||
| diakopter | but that's not the point; all the emitter bugs would still be there. | 21:27 | |
| because the json tree would have to be walked just like the lazily-created AST | |||
| so all the same emitter bugs would still need fixed. | |||
| like you said, it's the emitter bugs that cause the "parse" to fail. | 21:28 | ||
| emitting is the tough part. | |||
| pmurias | how can an emitter bug cause backtracking? | ||
| diakopter | that's a better question. :P | ||
| I haven't thought through that one. I'm not sure. | |||
| there must be some try/catch somewhere I'm not seeing | 21:29 | ||
| I'm working on fixing your .t | 21:32 | ||
|
21:33
tomaw left
|
|||
| diakopter | oh wait. | 21:33 | |
| that's strange. | |||
|
21:36
tomaw joined
21:42
espadrine left
21:47
am0c joined
21:49
hicx174 left
21:50
hicx174 joined
21:56
Guest4436 left
21:58
masak joined
|
|||
| masak | ahoy, #perl6! | 21:58 | |
| diakopter | hi | ||
|
21:58
lestrrat is now known as lest_away
|
|||
| masak | diakopter: having perlesque commits on-channel is quite new, isn't it? | 21:59 | |
| I like it. it makes work on it more visible. | |||
| diakopter | yes; ++moritz_ suggested it. | 22:00 | |
| masak | oughta do the same for Yapsi. | 22:01 | |
| diakopter | just let me know the rss/atom url | ||
| masak | seems to be github.com/masak/yapsi/commits/master.atom | 22:02 | |
| lue | o hai! | ||
| pmurias | why do you ++nick instead of nick++? | 22:03 | |
| masak | lue-san: hai! | ||
| pmurias | diakopter: what does the catch in Compiler/Continuations.cs do? | ||
| diakopter | that's program-runtime | 22:04 | |
| (stage2 input) | |||
| so it doesn't get that far at all | |||
| that's the trampoline | |||
|
22:04
chitragupt joined
|
|||
| pmurias | why doesn't it catch a specific Exception class | 22:05 | |
| ? | |||
| masak | ooh, someone in my vicinity who uses the word 'trampoline'! | ||
| what's a trampoline, and how does it differ from a continuation? | |||
| diakopter | it could catch NullReferenceException | ||
| it's just there for when next is null | 22:06 | ||
| so it doesn't have to check it every time | |||
| obviously in real user code, there would be user-level exception blocks | |||
| a trampoline can be a way to bounce reified frames | |||
| masak | bounce... reified... frames. | 22:07 | |
| diakopter | refractalize.blogspot.com/2009/02/s...tions.html | ||
| masak | what, like an exception? | ||
| thanks. will read. | |||
| diakopter | there's a part 2 of that too | ||
| masak | excellent. | 22:08 | |
| pmurias | diakopter: how's my test doing? | ||
|
22:08
Gruber joined
|
|||
| diakopter | pmurias: getting there. | 22:08 | |
| keep at it; assume I'll fix it :P | |||
|
22:09
pyrimidine left
|
|||
| pmurias | g'night | 22:09 | |
| diakopter | nite | ||
|
22:09
pmurias left
|
|||
| masak | night, pmurias. | 22:09 | |
| takadonet | .. | ||
|
22:10
hejki left,
p6eval left,
meteorjay left
|
|||
| diakopter | er | 22:10 | |
|
22:11
am0c left,
Grrrr left,
meteorjay joined
|
|||
| diakopter | where'd p6eval go | 22:11 | |
|
22:11
iblechbot left
|
|||
| lue | rakudo: I AM ERROR | 22:11 | |
| :*( | 22:12 | ||
|
22:12
p6eval joined
|
|||
| masak | I'm refactoring Yapsi tonight to pass 'environments' from compiler to runtime. an environment is simply all of the lexical scopes right now. I think that's a worthy abstraction to be using. | 22:12 | |
| it will allow things such as BEGIN blocks and a proper REPL to work. | |||
| lue | rakudo: say (0 orelse "hi") | ||
| p6eval | rakudo 72f914: OUTPUT«Unable to parse postcircumfix:sym<( )>, couldn't find final ')' at line 11current instr.: 'perl6;Regex;Cursor;FAILGOAL' pc 1664 (ext/nqp-rx/src/stage0/Regex-s0.pir:907)» | ||
| diakopter | instances of the scopes? or just 1? | ||
| lue | ō.o | ||
| masak | diakopter: hm, there seems to be a confusion in my mind about that right now. | 22:13 | |
| diakopter | ahah. | ||
| masak | which tells me I'm implementing it wrong. | ||
| scopes are not clonable at all in Yapsi presently. | |||
| diakopter | in perlesque, a class is generated for each scope (actually just each frame, but effectively each scope). | ||
| that class has slots for each lexical declared in that scope. | 22:14 | ||
| masak | how backwards :P | ||
| lue | rakudo: say 0 orelse "hi" | ||
| p6eval | rakudo 72f914: OUTPUT«Confused at line 11, near "say 0 orel"current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)» | ||
| diakopter | it's just a thoroughly GC'd edition of the way all compilers end up doing it... | ||
| masak | lue: I don't think any implementation does 'orelse' yet. | ||
| diakopter | like, way-over-thoroughly | 22:15 | |
| masak | diakopter: I see. well, as long as it works... | ||
| diakopter | GC'd | ||
| lue | I was hoping it'd be different :) | ||
| masak | lue: isn't '//' enough for your purposes? | 22:16 | |
| lue | I need closure though. | ||
| Bug closure :) | |||
| masak | lue: that's a nice, healthy need. | 22:17 | |
| and it compensates my need to open bugs quite well :P | |||
| speaking of which... | |||
| rakudo: my $*a = 42; foo; sub foo { say $*a; my $*a } | |||
| p6eval | rakudo 72f914: OUTPUT«Any()» | ||
| masak | what's a reasonable expectation here? | 22:18 | |
| should it be a compile error? | |||
| std: my $*a = 42; foo; sub foo { say $*a; my $*a } | |||
| p6eval | std 30494: OUTPUT«ok 00:01 110m» | ||
| lue | .oO(I love my crude orelse implementation, but a proper one requires deep magic into the kind of stuff C code was invented for.) |
||
| masak: what does the foo; on a line by itself do? | |||
| masak | lue: it calls the sub by that name. | ||
| diakopter | speaking of runtime, I'm starting to suspect I should just bite the bullet and write an "interpreted" (virtual method calls, not bytecode) edition of this parser generator. :| :| :| after all that work on writing ultra-efficient single-routine parsers. | ||
| masak | diakopter: why? | 22:19 | |
| I mean, what is making you realize that? | |||
| diakopter | cuz the startup (JIT) time in both mono and .NET is pretty high for the single-routine parser | ||
| (only relevant during bootstrapping phases.. but still) | |||
|
22:19
hejki joined
|
|||
| masak | std: class A {}; sub foo(A $a .= new) {} # I'm probably way too spoiled, but today I felt a need for this syntax, especially since my 'A' was really 'Yapsi::Environment' | 22:20 | |
| PerlJam | masak: re code above--error | ||
| p6eval | std 30494: OUTPUT«===SORRY!===Unable to parse signature at /tmp/c88fdHSFig line 1:------> class A {}; sub foo(⏏A $a .= new) {} # I'm probably way too sCouldn't find final ')'; gave up at /tmp/c88fdHSFig line 1:------> class A {}; sub foo(A $a | ||
| ..⏏… | |||
| diakopter | b/c the single-routine parser is .... hundreds of thousands of bytecode instructions long. | ||
| masak | PerlJam: good. that's all I need to hear. | ||
| masak submits rakudobug | |||
| diakopter | std: class A {}; sub foo(A $a += new) {} | 22:21 | |
| p6eval | std 30494: OUTPUT«===SORRY!===Unable to parse signature at /tmp/bveMolPNpk line 1:------> class A {}; sub foo(⏏A $a += new) {}Couldn't find final ')'; gave up at /tmp/bveMolPNpk line 1:------> class A {}; sub foo(A $a ⏏+= new) {} | ||
| ..expect… | |||
| diakopter | oh | ||
| lue | I would think it returns 42 (unless I'm completely wrong about the finer points of $*) | ||
| masak | rakudo: say $*a; my $*a = 42 | 22:22 | |
| p6eval | rakudo 72f914: OUTPUT«Any()» | ||
| masak | ah, that's an even simpler error case. | ||
| jnthn | Probably wants to die at compile time. | ||
| But at least it doesn't NPMCA at runtime. | 22:23 | ||
| masak | *nod* | ||
| PerlJam | rakudo: foo(); sub foo { say "hi" } | ||
| p6eval | rakudo 72f914: OUTPUT«hi» | ||
| jnthn | Yes, that but one should work. :-) | ||
| PerlJam | Hmm. | ||
| masak | std: my $a; { say $a; my $a } # it's a bit like this, actually | ||
| p6eval | std 30494: OUTPUT«===SORRY!===Lexical symbol '$a' is already bound to an outer symbol (see line 1); the implicit outer binding at line 1 must be rewritten as OUTER::<$a> before you can unambiguously declare a new '$a' in this scope at /tmp/snmNA7T0aX line 1:------> my | ||
| ..$a… | |||
| jnthn | masak: Right, it's exactly that. | ||
| masak: Rakudo gets that wrong too - it'll be the same fix for both. | 22:24 | ||
| PerlJam | Doesn't one of the synopses say that lexicals are available from the point of declaration to the end of the innermost enclosing scope? | ||
|
22:24
sahadev left
|
|||
| masak | jnthn: right. still reporting this one separately, just in case. | 22:24 | |
| PerlJam | Or is that just lexical *variables*/ | ||
| ? | |||
| I mean, if subs are lexical now, then I would expect foo(); sub foo { ... } to die too | 22:25 | ||
| jnthn | PerlJam: I'd understood it as just variables. | ||
| masak | PerlJam: subs are 'evaluated' at CHECK time or something of the kind. | ||
| PerlJam: so they're available textually before their declaration at runtime. | |||
| PerlJam | That seems ... anti-lexical | 22:26 | |
| or, anti- one of the salient features of lexicals according to PerlJam :) | |||
| masak | I'm very grateful it works that way. | ||
| otherwise it'd be difficult to do mutual recursion, or even normal recursion. | 22:27 | ||
|
22:27
am0c joined,
nihiliad left
|
|||
| masak | hm. maybe normal recursion would work. | 22:27 | |
| still, it'd force everyone to declare subs towards the top of a file. | 22:28 | ||
| jnthn | Yes, it'd be quite the nuisance. | ||
| PerlJam | Sure, I don't disagree. I just want a good definition of "lexical" | ||
| lue thought subs are useless closer to the top :) | 22:29 | ||
| masak | rakudo: class A { method foo(A :$a) { say $a.WHAT } }; A.new.foo | ||
| p6eval | rakudo 72f914: OUTPUT«Any()» | ||
| masak | jnthn: has this been reported? the fact that $a is of a type that wouldn't bind? | ||
| lue: sure, they tend to sink low when they can, just like puns. :P | 22:30 | ||
|
22:30
dalek left,
dalek joined
|
|||
| jnthn | masak: Looks odd. | 22:31 | |
| Is it peculiar to nameds? | |||
| lue | D: /me continues to find closure | ||
| masak submits rakudobug | |||
| ash__ | didn't :$a make it a named param? | ||
| diakopter | masak: test push to yapsi? :) | ||
| jnthn | rakudo: class A { method foo(A $a?) { say $a.WHAT } }; A.new.foo | ||
| p6eval | rakudo 72f914: OUTPUT«Any()» | ||
| masak | diakopter: in a bit :) | ||
| jnthn | rakudo: class A { method foo(Int $a?) { say $a.WHAT } }; A.new.foo | ||
| p6eval | rakudo 72f914: OUTPUT«Any()» | 22:32 | |
| ash__ | rakudo: class A {}; sub foo(A :$a) { say $a.WHAT }; foo; | ||
| jnthn | oh good | ||
| masak | so, not specific to nameds. | ||
| p6eval | rakudo 72f914: OUTPUT«Any()» | ||
| jnthn | It's an easy fix then, I expect. | ||
| masak | rakudo: say {a=>1, b=>1}.invert.perl # should be (1 => ["a", "b"]) | ||
| jnthn is a little surprised we musta gone many months with this bug. | |||
| p6eval | rakudo 72f914: OUTPUT«(1 => "a", 1 => "b")» | ||
| masak submits rakudobug | |||
| jnthn: we have too few spectests :) | 22:33 | ||
| ash__ | rakudo: class A {}; sub foo(A :$a) { say $a.WHAT }; foo :a<A.new>; foo :a<1>; | ||
| p6eval | rakudo 72f914: OUTPUT«Nominal type check failed for parameter '$a'; expected A but got Str insteadcurrent instr.: 'foo' pc 240 (EVAL_1:96)» | ||
|
22:33
nihiliad joined
|
|||
| lue feels a tear in the smtp rifts | 22:33 | ||
| ash__ | rakudo: sub foo(Int :$a) { say $a.WHAT }; foo; | ||
| jnthn | ash__: It's just a bug in the "what happens if an optional isn't bound and there's no default" logic, I think. | ||
| p6eval | rakudo 72f914: OUTPUT«Any()» | 22:34 | |
| ash__ | is that the same issue masak was talking about? | ||
| jnthn | Yeah | ||
| PerlJam | rakudo: $x = 42; say $x; my $x; | 22:35 | |
| p6eval | rakudo 72f914: OUTPUT«42» | ||
| PerlJam | Hmm | ||
| masak | rakudo: sub foo(Int $a = "OH HAI") { say $a }; foo | ||
| p6eval | rakudo 72f914: OUTPUT«OH HAI» | ||
| masak | that was fun, too :) | 22:36 | |
| jnthn-- :P | |||
| jnthn | That one is annoying. | ||
| masak | I'll take that back. you're doing a great job. jnthn++ | ||
| diakopter | ++jnthn # karma ain't real, though | 22:37 | |
| lue | rakudo: class A { method WHAT { "B" } }; A.new.WHAT.say # masak, you rakudobug'd this when output came in [] as opposed to «» | ||
| p6eval | rakudo 72f914: OUTPUT«B» | ||
| jnthn | Though probably easy to patch also. | ||
| lue | and it's still broken :/ | ||
|
22:37
Gruber is now known as Grrrr
|
|||
| sorear | I need to get myself a PCA so I can actually fix these stupid little rakudobugs | 22:37 | |
| masak | lue: is that the 'WHAT should be a macro' ticket? | 22:38 | |
| jnthn | sorear: Best to start by creating patches. | ||
| lue | Oh yes :) | 22:39 | |
|
22:39
ruoso joined,
madalu left
|
|||
| lue | it's probably not as simple as just changing it from 'method WHAT' to 'macro WHAT' :) | 22:39 | |
| masak | well, step one: implement macros :) | 22:40 | |
| lue | .oO(ruoso just joined us, and he's a part of #60992 as well!) |
||
| :O ... | |||
| ........... | |||
| sorear | alternatively, implement methodicals | ||
| I've lost a lot of my interest in them | |||
|
22:40
hercynium joined
|
|||
| sorear | but they're still a nice, 100% static equivalent of method-shaped macros | 22:40 | |
| so they could be good as a transitional form before we get true macros implemented | 22:41 | ||
| masak | sorear: have you seen the .$method syntax in Perl 6? | ||
| lue | <allcaps>We're this far in P6/Rakudo and we still don't have <i>macros</i>?</allcaps> | ||
| sorry about that. | 22:42 | ||
| [Coke] | lue: HIO, patches welcome! | ||
| masak | rakudo: class A { has $.greeting = "OH HAI" }; my $method = method { say self.greeting }; A.new.$method | 22:43 | |
| lue | rakudo: our macro foo(){say "yay";}; foo() # first I should learn what a macro is :P | ||
| p6eval | rakudo 72f914: OUTPUT«Malformed our at line 11, near "macro foo("current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)» | ||
| rakudo 72f914: OUTPUT«OH HAI» | |||
| masak | sorear: it reminds me of your methodicals, and it already exists. | ||
| lue: Pugs almost got to macros. | |||
| ash__ | std: macro foo { return "say 'yay';" }; foo; | ||
| p6eval | std 30494: OUTPUT«ok 00:01 109m» | ||
| masak | with all the parser technology we have at this point, they're definitely within reach. | 22:44 | |
| lue | rakudo: my @a=((1,2,3),(4,5,6)); my @b=((7,8),(9,0),(1,2)); say (@a * @b) | 22:45 | |
| p6eval | rakudo 72f914: OUTPUT«36» | ||
| sorear | masak: have you seen the STD.pm implementation of q:a:s{ ... } ? | ||
| lue is reading up on macros | |||
| masak | sorear: not in particular, no. | 22:46 | |
| Tene | I had a prototype of macros working, actually. | ||
| masak | sorear: why do you ask? | ||
| Tene: what happened to it? | |||
| sorear | masak: It's insane. And it's related to how macro implementation needs to work. | 22:47 | |
| masak | I'll definitely check it out. | ||
| Tene | masak: It's still on my laptop somewhere. It was Perl 6 style macros for my scheme compiler. | ||
| masak | thanks for the tip. | ||
| Tene: I remember you working on it. | |||
| Tene | What's q:a:s ? | ||
| masak | Tene: were you blocking on spec or something? | ||
| lue | .oO( spec definition of macro hertz my brain /o\ ) |
22:48 | |
| Tene | masak: Yes, there was one spec question I was blocking on. Still unresolved, afaik. I had a proposal, and TT was going to think about it. A limited subset would be fine to implement, though. | ||
| masak | Tene: what was the proposal? | ||
| Tene | masak: the body of a proto regex should be the default parsing rule for regexes in that class. | 22:49 | |
| The macro stuff refers to a "default parsing rule" for grammatical categories, and assumes one for its examples. | |||
| I think it did in at least one example, at least. | 22:50 | ||
| Lemme look for an example. | |||
|
22:51
IllvilJa joined
|
|||
| masak | that soudns vaguely sane, I think. | 22:51 | |
| but all this is predicated on people using macros anyway. | |||
| that's why it's important to have a working version out there for people to toy with, even a prototype. | 22:52 | ||
| Tene | like, macro postfix:<{{{ }}}> { ... } | ||
| Or, better... | |||
| github.com/rakudo/rakudo/blob/maste...ar.pm#L444 | 22:53 | ||
| If I want a new statement_prefix, the spec implies that I can just say: | |||
| macro statement_prefix:sym<OMG> { ... whatever } | 22:54 | ||
| and it would inherit the default parsing rule, which the grammar suggests is "<sym> <blorst>" | |||
| but that's not defined anywhere, so I would instead need to add: "is reparsed(/ <sym> <blorst> /)" | |||
| dalek | ok: 228f280 | duff++ | src/subs-n-sigs.pod: [subs] some clarifications and minor text changes |
22:55 | |
| Tene | I'd instead prefer to see in the grammar: proto token statement_prefix { <sym> <blorst> } | ||
| and the body of the others as {...} | |||
| sorear | Tene: have you seen the blizkost advancements? | 22:56 | |
| masak | diakopter: I pushed a change to yapsi 5 minutes ago, but it hasn't showed up yet. | ||
| diakopter | sign. | ||
| Tene | sorear: I've seen nothing at all. I'm excited to find out. | ||
| sorear | github.com/jnthn/blizkost/raw/bb495...ples/tk.pl | 22:57 | |
| Tene | masak: So, you could implement macros with the requirement that all macro definitions contain a parsing rule. | ||
| sorear | that. works in rakudo master. | ||
| masak | Tene: that'd still be way better than nothing. | ||
| Tene | sorear: That's very exciting. :) | ||
| masak | sorear++ | ||
|
22:58
gurjeet joined
|
|||
| Tene | masak: I think that I had some higher priorities pending in Rakudo to work on first, though? I don't really remember, and I never really had any notes on my tasklist, so I'm fairly lost. | 22:59 | |
| masak gently encourages Tene visavi macros ;) | 23:00 | ||
| unless, I mean, there are more urgent things that I'm forgetting about right now. | |||
| jnthn | Tene: There's some exceptiony stuff if you're interested. Including the block exit handling bits. | ||
| dalek | ok: a706369 | chromatic++ | src/subs-n-sigs.pod: Finished editing what's in this section. Added a couple of examples. |
||
| ok: 7c843c4 | chromatic++ | src/subs-n-sigs.pod: Merged branch 'master' of [email@hidden.address] |
|||
| jnthn | But more the CATCH catches return exceptions. | ||
| Tene | jnthn: I kind of remember that one. That would be easy. Is there a ticket somewhere for me to open in my browser and ignore? ;) | 23:02 | |
| jnthn | rt.perl.org/rt3/Ticket/Display.html?id=61126 | ||
| oh, that wasn't the one I wanted | |||
| but it's related | |||
| rt.perl.org/rt3/Ticket/Display.html?id=63430 | |||
| That's the one. | |||
| Tene | Ah. | 23:03 | |
| Yeah, I can do that. | |||
| masak | ah, yes. that one essentially makes CATCH blocks worthless. | 23:05 | |
| sorear | Does anyone here now have any cute small demos of programming with CGI, DBI, etc? | ||
|
23:06
nihiliad left
|
|||
| masak | sorear: there is the beginning of that in the Web.pm project. especially check out github.com/masak/web/blob/master/tu...al/win.pdf -- I wish it was more complete than it currently is. | 23:06 | |
| sorear | Er | 23:08 | |
| I'm looking for stuff I can turn into CGI:from<perl5> examples | |||
| though that is interesting, it's not quite what I'm looking for. | |||
| masak | ah, no. it's quite different. | 23:09 | |
| masak goes to bed | |||
| 'night, #perl6 | |||
| Tene | sleep well | ||
|
23:09
masak left
|
|||
| lue | goodnight | 23:10 | |
| jt | sorear: perldoc CGI has very good example snippet? | 23:14 | |
| lisppaste3 | takadonet pasted "bye bye for" at paste.lisp.org/display/98519 | 23:16 | |
|
23:16
ash__ left
|
|||
| takadonet | is there a way to get rid of the for in that piece of code so I can directly plug $*IN into the parse function? | 23:16 | |
| jnthn | $*IN.slurp() | 23:17 | |
| takadonet | !!!!!!!!!!!!!!! | ||
| jnthn++ | |||
|
23:32
plobsing_ joined,
snarkyboojum joined
23:35
plobsing left
23:36
justatheory left
|
|||
| lue | afk | 23:46 | |
|
23:56
am0c left
|
|||