»ö« | 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: 100355␤its 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: 100355␤its 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 2␤real 0.10␤user 0.00␤sys 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 &off␤current 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 &rx␤current 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 = '&' => '&amp;'; say 'a&b'.subst(rx/ <[&]> /, {%c{$_}}, :g) 13:58
p6eval rakudo 6cf515: OUTPUT«ab␤»
moritz_ that's the real problem
rakudo: my %c = '&' => '&amp;'; 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 = '&' => '&amp;'; say 'a&b'.subst(rx/ <[&]> /, {%c{"$_"}}, :g)
p6eval rakudo 6cf515: OUTPUT«ab␤»
moritz_ rakudo: my %c = '&' => '&amp;'; say 'a&b'.subst(rx/ <[&]> /, {wary $_; %c{"$_"}}, :g) 13:59
p6eval rakudo 6cf515: OUTPUT«Could not find sub &wary␤current instr.: '_block59' pc 587 (EVAL_1:208)␤»
moritz_ rakudo: my %c = '&' => '&amp;'; 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«Warning␤␤ab␤»
13:59 JimmyZ left
moritz_ rakudo: my %c = '&' => '&amp;'; 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 = '&' => '&amp;'; say 'a&b'.subst(rx/ <[&]> /, {warn join ',', .from, .to, .Str %c{"$_"}}, :g)
p6eval rakudo 6cf515: OUTPUT«Could not find sub &c␤current instr.: '_block59' pc 587 (EVAL_1:208)␤»
moritz_ rakudo: my %c = '&' => '&amp;'; 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 = '&' => '&amp;'; say 'a&b'.subst(rx/ <[&]> /, {warn join ',', .from, .to, .Bool; %c{"$_"}}, :g) 14:01
p6eval rakudo 6cf515: OUTPUT«3,-3,0␤ab␤»
moritz_ rakudo: my %c = '&' => '&amp;'; say 'a&b'.subst(rx/ <[&]> /, {warn join ',', .from, .to, .Bool, .orig; %c{"$_"}}, :g) 14:02
p6eval rakudo 6cf515: OUTPUT«3,-3,0,a&b␤ab␤»
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 = '&' => '&amp;'; 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 = '&' => '&amp'; say %c.perl; say 'a&b'.subst(rx/ <[&]> /, -> $x { warn ~$x; 2 }) 15:00
p6eval rakudo 6a502f: OUTPUT«{"\&" => "\&amp"}␤&␤a2b␤»
moritz_ rakudo: my %c = '&' => '&amp'; say %c.perl; say 'a&b'.subst(rx/ <[&]> /, -> $x { warn ~$x; %c{~$x} }) 15:02
p6eval rakudo 6a502f: OUTPUT«{"\&" => "\&amp"}␤&␤a&ampb␤»
moritz_ rakudo: my %c = '&' => '&amp'; say %c.perl; say 'a&b'.subst(rx/ <[&]> /, -> $x { warn ~$x; %c{$x} })
p6eval rakudo 6a502f: OUTPUT«{"\&" => "\&amp"}␤&␤a&ampb␤»
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 = '&' => '&amp;'; 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 = '&' => '&amp;'; 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 = '&' => '&amp;'; 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 = '' => '&amp;'; say 'a&b'.subst(rx/ <[&]> /, -> $x {warn $x.WHAT; %c{~$x}}, :g) 15:24
p6eval rakudo 6a502f: OUTPUT«Regex::Match()␤a&amp;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 1␤current 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>⏏.>>say␤Parse failed␤FAILED 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 11␤current 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 s␤Couldn'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 instead␤current 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