pugscode.org/ planetsix.perl.org/ | nopaste: sial.org/pbot/perl6 | evalbot: perl6: say 3; (or rakudo:, pugs:, elf:, etc) | irclog: irc.pugscode.org/
Set by mncharity on 5 January 2009.
00:06 eric257 left 00:15 |jedai| left 00:16 |jedai| joined 00:20 vixey left 00:25 aindilis` left 00:27 aindilis` joined 00:40 bsdperl left 00:48 |jedai| left, |jedai| joined 00:49 meppl joined 01:17 aindilis` is now known as aindilis 01:21 aindilis` joined 01:24 |jedai| left 01:25 elmex left, |jedai| joined 01:26 aindilis left 01:39 gravity joined 01:50 _jedai_ joined 01:51 |jedai| left, Limbic_Region left 01:52 stephens left
pugs_svn r24801 | particle++ | [S19] preliminary musings on metasyntactic options 01:58
01:58 meppl left 02:03 alc joined
pugs_svn r24802 | particle++ | [S19] fix pod-o 02:08
02:11 bsdperl joined
pugs_svn r24803 | particle++ | [S19] add a sentence on unchanged syntax features, fix some pod formatting errors, and remember to update document metadata 02:19
02:22 eternaleye joined 02:31 wknight8111 left 02:41 |jedai| joined, _jedai_ left 02:45 km2 joined 02:57 alester joined 03:05 hercynium_ joined 03:06 sail0r joined 03:07 plainhao joined, hercynium_ left, hercynium_ joined 03:09 sail0r left, hercynium left, aindilis` left 03:10 aindilis` joined 03:41 aindilis` left 03:43 cspencer joined 03:53 azawawi left 04:01 km2 left 04:02 fridim_ left
s1n rakudo: my @t; for(1..1000){ for(1..1000){ push @t, $_; } } 04:09
p6eval rakudo 35185: No output (you need to produce output to STDOUT)
s1n rakudo: my @t; for(1..1000){ for(1..1000){ push @t, $_; } }; @t.WHAT.say; 04:10
p6eval rakudo 35185: No output (you need to produce output to STDOUT) 04:11
s1n hmm
i think i found a cause of my segfaults 04:12
04:15 cspencer left 04:20 |jedai| left, |jedai| joined 04:24 athenot left, athenot_ joined 04:37 |jedai| left 04:38 |jedai| joined
pmichaud rakudo: class Foo { has $.a; method xyz { $a++; } }; my $b = 5; my $x = Foo.new( :a($b) ); $x.xyz; say $b; 04:39
p6eval rakudo 35188: OUTPUTĀ«Scope not found for PAST::Var '$a'ā¤current instr.: 'parrot;PCT;HLLCompiler;panic' pc 146 (src/PCT/HLLCompiler.pir:102)ā¤Ā»
04:39 ChrisDavaz joined
pmichaud rakudo: class Foo { has $.a; method xyz { $!a++; } }; my $b = 5; my $x = Foo.new( :a($b) ); $x.xyz; say $b; 04:40
p6eval rakudo 35188: OUTPUTĀ«6ā¤Ā»
04:56 perl6examples left
pugs_svn r24804 | pmichaud++ | [t/spec]: Change a #?todo to a #?skip for rakudo in for.t . 05:10
05:16 masak joined
masak pmichaud: re Pairs and .pairs: (1) what's the disadvantage of making .value modifiable? if there is no discernable disadvantage, I'm all for making pairs modifiable. (2) action at a distance is scary. 05:23
05:23 ChrisDavaz left 05:32 eric256 joined
eric256 moritz_: hey 05:32
eric256 thinks more and more that he is in a different timezone than everyone else (judging by the irc logs ;) )
05:33 justatheory left 05:35 _jedai_ joined 05:36 |jedai| left
masak eric256: well, at least a few of us are on CET. 05:36
which means that if I get up early, I can chat with the people in the US before they go to bed :) 05:37
eric256 lol yea 05:44
so your up early now?
masak eric256: it's 06:47 here.
05:45 preflex left
eric256 8 hours ahead of me 05:45
masak oh, so you're on the west coast?
eric256 central
masak ah.
eric256 mountain time actualy
time zones confuse me here 05:46
masak "mountain time". that sounds nice.
eric256 the whole other size of the globe thing realy confuses me
i have a hard enough time with the 4 time zones at work lol
masak eric256: it usually does confuse people in your country :)
eric256 hey!
lol
masak kidding :P
eric256: www.satirewire.com/news/0010/international.shtml 05:47
eric256 lmao 05:48
masak ;)
eric256 i moved here from the west coast. i always tell people that anything east of the rockies i consider the east coast ;)
masak sounds reasonable to me.
eric256 www.xkcd.com/503/ 05:50
masak aye ;) one of the confusing aspects of the New World.
eric256 move teh "me" X left to the other half of the US and you have my world view. lol
masak everyone: what's all this about 'is export' in S29? at best, it's inconsistently applied. which things should have it and which shouldn't? 05:51
eric256 darn globe doesn't realy lend itself to east and west references once you get outside your content
pretty soon we are going to need a S00 for defining terminology to be used in the rest of the S's 05:52
masak eric256: I know. I read a guideline at the Esperanto Wikipedia long ago about not using terms like "The Middle East" because it depends on perspective.
eric256: write it, and they will come. 05:53
eric256 i'm; still working on my last project
going to try and focus on smartlinks and examples
masak goodie. 05:54
eric256 and leave the rest alone. its too hard to keep up with you all ;)
masak I know the feeling. :)
eric256 maybe one example can be a rewrite of smart links
in perl6
masak how do you mean, 'rewrite'?
eric256 the smartlinks.pl utilities...its a bit....err...hacked together 05:55
not to offend but its scary at the moment and needs some love and care and rewriting
and i still think it should compile smartlinks into the existing POD (marked sufficiently that it can recognize and correct them each time it is run) 05:56
masak eric256: I'm not offended, I had no part in writing it.
eric256 then you end up with smartlinks_compiler and pod2html instead of our current smartlinks_compiler_to_html_plus_embed_test_info :)
masak eric256: uh, the _point_ of smartlinks is that they don't pollute the existind PODs. 05:57
eric256 masak:just covering my ass
05:57 hercynium_ left
masak s/ind/ing/ 05:57
eric256 masak: i understood there point as beeing a link between tests and specs, since we define implementations as passing test it would make sense that tests and spec are interlinked completly
masak eric256: yes, but having no dependency from the PODs to the tests is a good thing, by me. 05:58
that's a sort of inversion of control, I think.
it keeps things separate. 05:59
eric256 definitly there wouldn't be any actual links per say, just markers so that anyone editing the pod would see the tests that it links to and would know what tests might need updated to match new specs
masak eric256: no, even that'd be too, much I think.
eric256 certainly would propose hand entering links in specs
masak eric256: of course, you're welcome to produce inofficial PODs with that property.
05:59 _jedai_ left, _jedai_ joined
eric256 that could certainly be a first step 06:00
masak any additional steps would lower the quality of the synopsis documents, methinks. 06:01
eric256 but i'll tell you as a newbie that the way it is makes it very difficult for new people to get around between specs and tests. you basicaly end up having to use a browser to read the pod, which is hard to work with (searching/greping is difficult at best) then go find tests on your own
masak: why?
masak eric256: because the synopses are independent from the test suite, and that is a good thing.
the way things are now, the test suite refs the syns, but not the other way around. 06:02
that's by design.
eric256 but they arn't and arn't suppose to be. not the way its preached around that a perl6 implementation implements the test suite not the specs
masak eric256: it implements both.
also, the test suite implements the spec.
eric256 i wouldn't advocate creating links by hand in syns to tests, but having links in it is obviously usefull or we wouldn't have the HTML versions
masak eric256: that's true. however, I mostly use the POD files. 06:03
and I'm glad they're not diluted with explicit references to tests.
eric256 same here, but once in a pod file, how do you find the tests that are testing your sepc?
masak eric256: you know, you could write a tool for that! 06:04
eric256 lol
masak _that'd_ be useful.
eric256 thats what i'm talking about, but we already have a tool for it
just only outputs HTML instead of POD
so perhaps a second set of pod is the solution
best of all worlds
masak you needn't output either; just provide a spec number and a line number, and you get back the closest few smartlinks to tests. 06:05
eric256 btw if test are soo numerous that they would dilute the docs it might just be a sign that tests need consolodating
hmmm i'll keep that idea in mind
masak eric256: also, it'd be great if you could make the tool spot places in the specs which are undertested.
eric256 a cross reference of some sort
avar there was already such a tool for pugs 06:06
eric256 avar which part?
avar ...to grab L<> links in the tests..
eric256 yea thats the smartlinks.pl util we are talking about
avar ah:)
eric256 (unless there is another different tool, entirely possible)
avar no I meant smartlinks 06:07
I just thought you were about to re-invent smartlinks, didn't read the whole conversation. Nevermind 06:08
eric256 avar: no i just want to re-write in perl6 if possible and divide out some of its work ;)
masak avar: he doesn't want to reinvent them, only make them bidirectional.
eric256 needs to output POD/HTML or some sort of cross reference
eric256 writes a vim pluging for masak to hind return smartlinks ;) 06:09
masak eric256: you're not getting it...
eric256 masak i am
or neither of us are
masak: its my understanding that the spec and tests are both part of the definition of the language so there doesn't realy seem to be a reason they shouldn't be integrated in output somewhere. and certainly don't see why they should only be integrated in icky HTML ;) 06:11
pugs_svn r24805 | masak++ | [S29] multiple changes:
r24805 | masak++ | * added Object.warn (to be moved in the next commit to Any)
r24805 | masak++ | * added invocant colon to Object.perl (to be moved in the next commit to Any)
r24805 | masak++ | * added `is export` to Object.perl
masak eric256: don't let my different opinion stand in the way of your goals. go forth and do glorious things. but leave my syn PODs alone. 06:12
please.
pugs_svn r24806 | masak++ | [S29] moved .perl and .warn from Object to Any. removed Object heading for now. 06:15
eric256 lol 06:20
me considers doing it once just to make masak nervous
later 06:21
time to sleep here
have fun at work
masak eric256: thanks. see you. 06:22
06:22 eric256 left 06:24 cspencer joined 06:25 gravity left, _jedai_ left 06:26 _jedai_ joined
masak buubot: spack \bItem\b 06:33
buubot masak: S02-bits.pod:1 S03-operators.pod:2 S07-iterators.pod:1 S10-packages.pod:2 S12-objects.pod:1 S16-io.pod:2 S29-functions.pod:7
pugs_svn r24807 | masak++ | [S29] added slice and hash contextualizers, reordered item and list 06:36
06:47 cspencer left 06:49 _jedai_ left 06:57 ashizawa joined 07:00 eternaleye left 07:05 maerzhase joined 07:13 pbuetow joined 07:23 nekobaka joined 07:29 initself joined
initself should you be able to declare an array as an Int? 07:29
my Int @a
masak initself: syre. 07:30
sure*
initself so this bug is legit?
rt.perl.org/rt3/Ticket/Display.html?id=61926
This bug did not seem legit to me: 07:31
rt.perl.org/rt3/Public/Bug/Display.html?id=61924
Did I reply to the ticket properly?
masak ok, one question at a time. :)
re 61926, I don't see what the bug is about.
do I need to download something to read the ticket? 07:32
moritz_ my Int @a # allowed in the specs, but not yet implemented
initself masak: let me give you a better link
masak: rt.perl.org/rt3/Ticket/Attachment/515150/243028/
masak initself: re 61924, looks good to me.
initself: except you didn't specify exactly how you ran the code. that helps sometimes. 07:33
initself masak: if some random dude runs something and gets a good result, do i close the ticket?
masak initself: not necessarily.
initself masak: hey, here's one by you! 07:34
rt.perl.org/rt3/Public/Bug/Display.html?id=57876
masak initself: re 61926, it's as moritz_ says. just not implemented yet.
initself: aye, some are by me. :)
moritz_ about half of the RT queue is by masak ;-) 07:35
masak I like to report bugs, that's all.
initself that's a pretty weird one.
keep up the good work 07:36
initself goes to bed.
masak initself: I like weird ones, too :)
07:43 vixey joined 07:58 nekobaka left 08:14 alester left
Matt-W Morning 08:20
moritz_ good morning 08:26
masak good morning! 08:34
08:39 namenlos joined
masak @tell szabgab Did you notice that S29 actually has some documentation for C<pack>? I noticed it just now. 08:40
lambdabot Consider it noted.
Matt-W I never understood pack in perl 6 08:44
err, perl 5
moritz_ Matt-W: have you tried reading `perldoc perlpacktut"?
s/"/'/
masak Matt-W: it's one of those power tools that you don't know you need until you learn it.
Matt-W moritz_: I didn't know about that 08:45
08:45 namenlos left
Matt-W All I'd had was the information in perlfunc and Programming Perl, and I just always thought it was far too much hassle 08:45
08:46 namenlos joined
masak Matt-W: the same could be said of regexps, or sprintf 08:47
moritz_ Matt-W: I didn't know it either; pack always scared me...
Matt-W masak: yes, but I knew printf-ish stuff from being a C programmer, and regexps I learned years ago through a great deal of pain
masak I thought I'd learn it by implementing it in Rakudo :)
moritz_ Matt-W: then I thought "man, somebody wrote perlopentut, why is there no perlpacktut?"
turns out there was one already :-)
masak :) 08:48
Matt-W A pleasant discovery
masak do you two have an opinion on the `$str.subst( /(foo)/, $0.reverse )` issue? I'm thinking about writing a p6l email about it, but I'm hesitating because I might be the only one who feels the need for this. 08:49
Matt-W There's an issue? 08:50
masak Matt-W: well, to me there is. you can't write it like that.
because $0 will have no (or the wrong) meaning. 08:51
moritz_ masak: if you want magic, you use the magic form
masak moritz_: that's a good point.
moritz_ that is $str ~~ s[foo] = $0.reverse
08:52 pbuetow left
masak moritz_: and for the :g case? 08:52
Matt-W Ah because $0 in that first example, would refer to the $0 from a match that happened earlier in the block
moritz_ masak: for the :g case you add :g to the magic form
masak moritz_: ok. I'm happy.
moritz_ Matt-W: exactly
masak no mail to p6l needed.
Matt-W yes it's sensible to say that except if Perl 6 guarentees left-to-right argument evaluation order
masak I imagine this is something that will trip people up, though. 08:53
Matt-W And in any case, it's not an argument you evaluate before the call happens
so yeah
moritz_ Matt-W: I don't think that subst will be used all that often
masak Matt-W: it doesn't have to do with ltr arg eval order.
Matt-W it's impossible to make that work without seriously subverting things
moritz_ sorry, masak :)
Matt-W masak: I was thinking out loud. Usually a bad idea :)
08:53 iblechbot joined
Matt-W Perl 5 people will likely reach for ~~ anyway 08:53
masak moritz_: no worries. just telling you it's not because of that.
moritz_: you're probably right. 08:54
moritz_ Matt-W: even with guarantued order it's the wrong $0, because .subst doesn't set its callers $/ object
Matt-W moritz_: yes, I was trying to backpedal into that when I realised :)
because evaluating the regexp really doesn't matter, as that's not where the match would happen 08:55
masak moritz_: what about .subst( /foo/, { (~$0).reverse } ) ?
Matt-W Wouldn't that form a closure with $0 from the calling scope? 08:56
masak Matt-W: yes, or with $/, rather.
I didn't think of that.
that could be a problem. 08:57
moritz_ masak: that would work
masak moritz_: but what about what Matt-W said?
moritz_ rakudo: say "barfoo:.subst( /foo/, { (~$0).reverse } )
p6eval rakudo 35195: OUTPUTĀ«Statement not terminated properly at line 1, near "\"barfoo:.s"ā¤ā¤current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)ā¤Ā»
moritz_ rakudo: say "barfoo".subst( /foo/, { (~$0).reverse } )
p6eval rakudo 35195: OUTPUTĀ«Use of uninitialized valueā¤barā¤Ā»
masak I don't think Rakudo does closures in .subst yet. 08:58
moritz_ .subst can explicitly set $/ for the block it calls
that's the beauty of context variables
masak oh! that's pretty.
Matt-W So it wouldn't make a closure with $/ then 08:59
Ouch
moritz_ it won't close over $/ because it's not a lexical variable
Matt-W Oh dear 09:00
Something else to remember
moritz_ actually it's very DWIM'my 09:06
Matt-W It is as long as you remember that $/ isn't lexical and closures are for lexicals 09:07
Which I probably will from now on :)
moritz_ it's the same behaviour as in perl 5, which is why it doesn't surprise me 09:08
Matt-W I guess I never tried to do that in Perl 5 09:16
moritz_ in Perl 5 all these match variables are just globals
Matt-W But it means the day isn't wasted, as I've learned something
09:17 elmex joined
moritz_ my day also isn't wasted, I found the bug that I've been chasing two weeks before christmas 09:17
Matt-W But the rule is, if you want a closure with a match variable, copy it into a lexical and use that :)
Woo!
moritz_ s/i/j/ in two places helped
Matt-W The rest of my day probably will be wasted, I'm at work
masak Matt-W: :) 09:18
Matt-W Today I shall be teaching some of my esteemed colleagues how to merge changes from another svn branch into ours... 09:19
masak doesn't sound too bad. 09:20
I'm just doing a git-svn checkout here.
takes ages.
Matt-W It could be better... our subversion server is incredibly slow
masak oh, it's done! :)
Matt-W And also we recently moved to a different branch management model which would work far, far better if we were using git 09:21
Does Parrot know how to talk to networks yet? 09:23
09:23 alc left
masak Matt-W: 'talk to networks'? 09:23
Matt-W As in, open a TCP/IP socket and make use of it 09:24
masak don't know. maybe ask on #parrot on irc.perl.org? 09:25
Matt-W Ahah, it seems you can 09:28
There's an example which implements an HTTP server
masak Parrot++
Matt-W Excellent
mberends but Rakudo doesn't :( 09:29
masak don't just do something! stand there! 09:32
Matt-W Well maybe that can be fixed
masak of course it can :) 09:33
mberends I've asked before, and been told it is waiting for a new IO subsystem being developed
09:34 ft joined
masak well, isn't that finished now? 09:34
mberends dunno, I was considering an interim inline PIR kludge
it will be great to 'talk to networks'. for example, irc bots in rakudo. 09:36
Matt-W Oooh yes
masak definitely want that. 09:37
mberends but I have to grok PIR to get there 09:38
Matt-W I can read PIR, but I'm not very good at writing it 09:39
I did once write half a compiler that targetted it
mberends well, socket() and connect() are less than half a compiler 09:40
Matt-W lol
It was my BSc final-year project
Well, not part of my project, after it was all over I ripped the backend out of the compiler I'd written and stuck in one that generated PIR 09:41
In hindsight, I should've done that from the beginning, it was much easier
mberends agreed. my main compiler writing experience was Small-C in the previous century 09:43
not that I wrote it, I just fiddled with it, adding switch() and stuff 09:44
is anyone here coming to London Perl Mongers tonight? london.pm.org/meetings/locations/antelope.html
Matt-W It wasn't all that bad, I got a first for the project, but it was quite a nice experience to write the PIR generator 09:45
I wonder if I've still got that code...
mberends: bit far for me I'm afraid
mberends distance--
Matt-W I'm in Nottingham, so London for the evening is not really doable 09:46
09:50 rindolf joined
mberends finally pushed my first draft of perldoc pod2text pod2man Pod::Parser Pod::to::text Pod::to::man to github.com/eric256/perl6-examples/tree/master 10:00
please try to run it, there's more to follow (xhtml and a test suite) 10:01
10:02 pdcawley left
masak mberends: whoa! did you write that? 10:06
mberends yes! over the last 3! months 10:07
masak mberends: massive, massive kudos.
also, thanks for the acknowledgements.
mberends shh, you're making me blush
masak mberends: might I make a small request about the authors of November? either list them all, or (perhaps better) just say "the November developers". it's not just the two of us nowadays, and not all code is contributed by me or viklund. 10:09
mberends: might I add that the code looks exquisite? :)
what's with all the '# [*-1]' comments everywhere?
moritz_ *-1 works these days 10:10
mberends thanks, I'm a teacher, so I like textbook style. and I'll fix the November attributions.
moritz_ perl6: say (*-1).WHAT
p6eval elf 24807: OUTPUTĀ«Undefined subroutine &GLOBAL::whatever called at (eval 119) line 3.ā¤ at ./elf_f line 3861ā¤Ā»
..rakudo 35195: OUTPUTĀ«Null PMC access in get_number()ā¤current instr.: 'parrot;Whatever;' pc 8517 (src/classes/Whatever.pir:41)ā¤Ā»
..pugs: OUTPUTĀ«Numā¤Ā»
masak reports rakudobug 10:11
Matt-W bad bad bad bad 10:12
mberends [*-1] was broken on object property arrays. And I'm sticking to r34088 until RT62036 is cleared
10:12 Southen_ left
Matt-W yes lovely bug that 10:14
bit me my first day with rakudo
I'm using @.chapters[@.chapters.elems - 1] at the moment :(
it's like... C++
mberends exactly
masak Matt-W: use .end, at least
Matt-W oh is .end the last index?
mberends ah, good idea, thanks
moritz_ rakudo: class A { has @!a; method b { @!a = <a b c>; say @!a[*-1] }; }; A.new.b 10:15
p6eval rakudo 35195: OUTPUTĀ«Null PMC access in find_method()ā¤current instr.: 'parrot;A;_block39' pc 445 (EVAL_13:169)ā¤Ā» 10:16
moritz_ rakudo: class A { has @!a; method b { @!a = <a b c>; say @!a.values }; }; A.new.b
p6eval rakudo 35195: OUTPUTĀ«abcā¤Ā»
moritz_ rakudo: class A { has @!a; method b { @!a = <a b c>; say @!a.values[*-1] }; }; A.new.b
p6eval rakudo 35195: OUTPUTĀ«Null PMC access in find_method()ā¤current instr.: 'parrot;A;_block40' pc 454 (EVAL_13:170)ā¤Ā»
Matt-W By the way, will we always have to say use v6 at the start of a Perl 6 programme?
moritz_ Matt-W: not if you invoke it with perl6 or perl6.exe
Matt-W: only if you invoke it with perl or perl6.exe 10:17
mberends no, class { ... } is ok too
moritz_ ah, right
and module Foo; as well
Matt-W excellent
Matt-W is looking at mberends' code
mberends must go offline soon for about 12 hours, to end up at London.pm 10:18
masak mberends++ # perldoc pod2text pod2man Pod::Parser Pod::to::text Pod::to:man 10:19
Matt-W mberends: very nice code. 10:20
It's so good to see people writing Perl 6, and that the Perl 6 they're writing is so nice
mberends I wish the rest of you would bother to write more comments and POD
masak mberends: understood. will do.
mberends: Druid has comments but no POD. 10:21
Matt-W the code I'm working on has few comments and no POD
But I'll fix that before I put it up somewhere
mberends one of my subprojects is pod5 to pod6 translation, to reformat existing docs 10:22
and pod6 to pod5 translation, to connect to legacy doc handlers 10:23
moritz_ perl6: print sqrt(324)
p6eval elf 24807: OUTPUTĀ«Undefined subroutine &GLOBAL::sqrt called at (eval 119) line 3.ā¤ at ./elf_f line 3861ā¤Ā»
..pugs, rakudo 35195: OUTPUTĀ«18Ā»
masak does anyone know which one is oldest: $_ in Perl or $_ in bash? 10:39
moritz_ didn't know about $_ in bash 10:40
masak it's kinda neat. 10:42
10:42 ruoso left, mberends left
masak I suspect that bash inherited it from Perl, but I really don't know. 10:42
moritz_ the only mention of it in `man bash' is "When used in the text of the message, $_ expands to the name of the current mailfile" plus an example 10:43
masak moritz_: $_ contains the last argument of the last command. 10:44
moritz_ masak: ah, I usually access that via Esc-.
masak ooh. convenient. 10:45
Matt-W That's quite different to the Perl usage! 10:54
10:55 c9s joined 10:59 ashizawa left 11:08 ruoso joined 11:12 ruoso_ joined 11:14 ruoso left, ruoso_ left, ruoso joined
ruoso Hello! 11:16
where is the pugs-commits mail generated?
It's really starting to be annoying not having the commit message in the subject of the message 11:17
specially when people reply to that
11:29 c9s left
ruoso hmm... I'd expect STD to identify the named parameter somehow 11:34
it just list as plain arguments instead... I think the compiler is suppose to split the named from the positional then 11:38
11:41 Southen joined
ruoso and also, ":named<foo>" is parsed differently from "named => "foo"" 11:42
the first is enclosed in a nulltermish, and the second is straight a colonpair
Matt-W hmm shouldn't they be the same, ultimately? 11:43
they're both pair constructors, I thought...
ruoso so did I 11:44
Matt-W sounds like a bug to me 11:45
ruoso I presume it's still too early at TimToady localtime 11:47
Matt-W anywhere in the US is going to be pretty early 11:51
7am on the east coast, I think
ruoso hmm 11:53
it's not the pair constructors that are parsed differently
the second argument onward is always enclosed in a nulltermish 11:54
even for positional arguments 11:56
11:58 donaldh joined
Matt-W aaah 11:58
hmm
is that something to facilitate things with indeterminate numbers of arguments?
I don't know why it might be, I'm just throwing overcaffeinated ideas around 11:59
12:04 riffraff joined
Matt-W & 12:04
riffraff hi 12:05
masak overcaffeinated ideas sleep furiously.
ruoso hmm... nulltermish is used to look for the stopper 12:06
it probably also is there to make "foo(1,)" to work
or "@a = 1," 12:07
moritz_ std: my @a = 1,
p6eval std 24807: OUTPUTĀ«############# PARSE FAILED #############ā¤(Possible runaway string from line 1 to line 1)ā¤Can't understand next input--giving up at /tmp/Oxg1I1OWgk line 0:ā¤------> ā¤ expecting null termā¤00:06 105mā¤Ā»
ruoso hmm
std: my @a = 1,; 12:08
p6eval std 24807: OUTPUTĀ«00:06 105mā¤Ā»
ruoso std: my $a = 1,;
p6eval std 24807: OUTPUTĀ«00:06 105mā¤Ā»
moritz_ hilights TimToady to make sure he notices :)
ruoso rakudo: my $a = 1,; say $a.WHAT'
p6eval rakudo 35195: OUTPUTĀ«Statement not terminated properly at line 1, near "'"ā¤ā¤current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)ā¤Ā»
ruoso gah
rakudo: my $a = 1,; say $a.WHAT;
p6eval rakudo 35195: OUTPUTĀ«Arrayā¤Ā» 12:09
moritz_ perl6: my $a = 1,; say $a.WHAT;
p6eval rakudo 35195: OUTPUTĀ«Arrayā¤Ā»
..elf 24807, pugs: OUTPUTĀ«Intā¤Ā»
moritz_ actually I think that pugs and elf are right here
ruoso no... 12:10
moritz_ because it should be parsed as (my $a = 1), :
s/:/;/
ruoso no, it shouldn't
moritz_ remember, item assignment has tighter precedence than ,
only list assignment has looser prec
ruoso but this is how you create a list with only one item
moritz_ (1,) or list(1) work 12:11
ruoso perl6: my $a = (1,); say $a.WHAT;
p6eval pugs, rakudo 35195: OUTPUTĀ«Arrayā¤Ā»
..elf 24807: OUTPUTĀ«Intā¤Ā»
ruoso moritz_, in (1), the parens are noop
ah... list(1), sorry
moritz_ right
rakudo: "a" ~~ / . <?{{ print "was here\n" }}>; 12:13
p6eval rakudo 35195: OUTPUTĀ«was hereā¤Ā»
ruoso moritz_, std parses "my $a = 1,;" as I was expecting 12:14
moritz_ ruoso: then my understanding of Perl 6 parsing might be wrong yet again :/
ruoso but it parses as List assignment for some reason
moritz_ std: $a = 3, $b = 4;
p6eval std 24807: OUTPUTĀ«00:06 104mā¤Ā» 12:15
moritz_ ruoso: have you tried it without the my?
ruoso looking
moritz_ just '$a = 1,'
ruoso parsed the same way
and $a = 3, $b = 4 is parsed as $a = 3,($b = 4) 12:16
12:18 xinming_ joined
ruoso TimToady, why does "my $a = 1,;" is parsed as a list assignment? 12:19
s/is parsed/parse/ 12:20
12:20 iblechbot left
ruoso moritz_, btw... do you know how to make the pugs-commit messages to put the commit message in the subject? 12:21
moritz_ ruoso: pmichaud maintains the mailing post-commit hook 12:22
ruoso pmichaud, please ;)
moritz_ I also wanted to bother him about it, p6l looks a bit weird with the current subject
ruoso you're being generous by saying "a bit"
12:23 xinming left
moritz_ sometimes I'm a quite generous person :-) 12:23
the old mails didn't contain more in the subject as well 12:24
ruoso but they weren't that many ;)
masak I'm sorry I'm contributing to the email flooding. 12:28
it's the way I work on S29 -- can't really do it any other way.
ruoso I'm ok with flood, as long as I can sense anything about it ;)
masak good point.
ruoso but I unfortunally don't have a mental connection with the "svn diff" command ;)
masak I'd also like to see the subject lines contain commit messages.
moritz_ maybe the first line of the commit message 12:29
masak that'd be swell.
moritz_ and then we educate our commiters to put a short summary in the first line
ruoso yes, just replace the constant docs/Perl6/Spec by that
masak ...which is a good idea anyway.
moritz_ like the git users usually do it
masak moritz_: did you see mbrends++'s commit to perl6-examples? wow! 12:32
moritz_ masak: aye 12:33
12:33 rindolf left
pmichaud masak: did you ever figure out "is export"? 13:00
masak pmichaud: not really. I know we've talked about it, but I've forgotten it since then.
13:02 maerzhase left
pmichaud we use "is export" on methods that can also act as subs (and have the same signature) 13:02
so, for example: method abs($value:) is export 13:03
because we allow both $value.abs and abs($value)
we don't put "is export" on methods where the corresponding sub would have a different signature
ruoso pmichaud, I've been struggling with "is export" recently 13:04
masak pmichaud: ah, right. I remember now.
pmichaud: will review S29 accordingly.
pmichaud e.g., sort as a method is sort(@values: Matcher $by) but sort as a sub is sort(Matcher $by, *@values) 13:05
so, no "is export"
ruoso pmichaud, does rakudo implement "is export" as a real trait already? or just as a compiler hack?
pmichaud more as a hack. 13:06
but it's not too difficult to make it a trait.
ruoso I was wondering what kind of introspection would be needed to do so 13:07
since the trait sub only receives the sub object
maybe it does that using CALLER::<>
13:08 Jedai joined
moritz_ ruoso: it receives the method object, and can derive a sub object from that 13:11
Matt-W oh that's what is export is for
I was thinking it was something to do with exporting names from modules
ruoso sure... I was meaning in general, not only for methods
Matt-W I would expect traits to have to make a lot of use of introspection 13:12
looking at signatures and things
pmichaud (making breakfast and getting kids to school... bbiab)
ruoso moritz_, I waas thinking on the installation of the EXPORT::foo::bar alises 13:13
pmichaud in rakudo's case, introspection tells us the type of sub and the namespace it's compiled in, so we can pretty much resolve "is export" from that. 13:15
ruoso pmichaud, the namespace as a global?
or the "namespace object"?
i.e.: the Package 13:16
pmichaud ruoso: subs in Parrot have a "namespace" attribute that identifies the namespace (object) in which they execute 13:17
ruoso cool 13:18
pmichaud so we use that. :-)
ruoso in SMOP subs point to a lexical scope
pmichaud subs in Parrot have that also, but that's a separate attribute
ruoso so I'll probably have to use CALLER::<$?PACKAGE><EXPORT><ALL><bar> := sub 13:19
pmichaud that's effectively what rakudo will be doing (and parrot gives us an easy way to get CALLER::<$?PACKAGE> 13:20
ruoso cool... good to know we're doing things the same way ;) 13:21
it's a good sanity check
pmichaud yes.
ruoso (or at least, common insanity check)
pmichaud :-)
afk for a bit, kids on way to school
13:24 maerzhase joined
pmichaud (svn-commit mailing list) the script that handles it is in /data/svn/pugs/hooks/post-commit 13:34
all I did was to get it working based on whatever was available -- I didn't try to do much more than that
13:34 eric256 joined
pmichaud anyone who wants to adjust the script is very welcome to do so 13:34
ruoso I presume moritz_ has access to that machine 13:37
(I don't)
moritz_ ruoso: that's on feather; many people have access 13:38
13:39 riffraff left
eric256 mberends++ for pod2* ;) 13:51
13:51 maerzhase left
moritz_ perlbot: karma mberends 13:52
perlbot Karma for mberends: 4
moritz_ mberends++
13:53 Exodist joined, maerzhase joined
ruoso you know... while implementing named arguments, I realize that it will be a "compiler hack" 14:03
because the grammar sees it as positional arguments
that because it sees it as a regular infix:<,>
I think it would be nice if STD implemented a capture token 14:04
to make it more than a compiler hack, but something in the parse tree
otherwise the compiler will need to grep the semilist for pair constructors 14:05
and remove them from the semilist to build the named arguments 14:06
14:06 spx2_ left 14:07 spx2 joined 14:10 alester joined 14:13 alester left 14:15 alanhaggai joined 14:16 eric256 left 14:21 iblechbot joined 14:24 meppl joined 14:30 Lorn joined 14:46 Helios- left 14:50 Helios- joined, fridim_ joined 14:52 namenlos left 14:55 kane_ joined 14:57 c9s_ is now known as c9s
ruoso moves the named arguments issue to p6-l since it looks like a very complicated issue 14:57
pmichaud ruoso: I find it's not that difficult to have the compiler separate the named from positional arguments. 15:11
ruoso it's not a matter of difficulty
but of uglyness
pmichaud I think it's the waterbed theory of ugliness here. :-)
15:11 alester joined
ruoso waterbed theory? 15:12
pmichaud "waterbed theory of x" means that if you reduce x in one place you're just increasing it somewhere else
ruoso heh
pmichaud normally called "waterbed theory of complexity", I think. 15:13
anyway, that's one that you and p6l can work out :-)
ruoso I'm trying to make a change in STD to evaluate that 15:15
but I still didn't succeed in providing a working patch
15:18 eric256 joined, alanhaggai left
rakudo_svn r35197 | pmichaud++ | [rakudo]: spectest-progress.csv update: 279 files, 6175 passing, 0 failing 15:20
ruoso lunch & 15:21
15:41 ft left, ruoso left 15:44 aindilis joined 16:06 riffraff joined 16:12 ruoso joined, ejs joined 16:13 ruoso left 16:14 meppl left 16:19 meppl joined 16:20 spx2 left 16:21 spx2 joined 16:22 Patterner left 16:24 spx2 left 16:28 kane_ left 16:33 kane_ joined 16:34 eric256 left 16:37 araujo left 16:38 kane_ left
rakudo_svn r35207 | infinoid++ | [rakudo] Fix a couple of broken tests uncovered by r35190 (implementing the binary compare function). 16:40
16:47 Psyche^ joined 16:48 Psyche^ is now known as Patterner, hercynium joined 16:49 stephens joined 17:10 Southen_ joined 17:11 REPLeffect joined 17:20 justatheory joined 17:28 Southen left 17:34 stephens left 17:37 masak left, azawawi joined
azawawi hi 17:38
17:46 pdcawley joined 17:48 aindilis left, aindilis joined, ZuLuuuuuu joined 17:49 donaldh left 17:55 spx2 joined 18:01 donaldh joined 18:06 ZuLuuuuuu left 18:08 cj_ joined 18:11 cj_ is now known as _cj 18:14 cj left, Psyche^ joined
_cj hurms 18:15
18:15 _cj is now known as cj 18:23 donaldh left 18:26 araujo joined 18:31 Patterner left, Psyche^ is now known as Patterner 18:35 pbuetow joined 18:37 Helios- left 18:38 Helios- joined
moritz_ waves hello 18:44
18:46 fridim_ left 18:58 Helios- left 18:59 Helios- joined 19:07 Helios- left 19:08 Helios- joined 19:11 alester_ joined 19:12 alester_ left
pugs_svn r24808 | pmichaud++ | [t/spec] Update namespace.t spec. 19:20
19:28 Ehtyar left 19:39 ryanc left 19:42 Helios- left 19:43 Helios- joined 19:44 riffraff left, Helios- left 19:45 Helios- joined, ryanc joined 19:48 athenot_ left, athenot joined 19:51 riffraff joined 19:56 cspencer joined 20:00 stephens joined 20:05 icwiener joined 20:23 xinming joined 20:33 athenot left, athenot_ joined 20:35 xinming_ left 20:52 Lorn left
hercynium I have quick question if there's anybody 'round to answer... 20:59
moritz_ I'll do my best ;)
hercynium which synposes should I read to learn about how perl6 will do referencing and dereferencing?
thx, moritz :) 21:00
moritz_ in what way? like the \$x and @$x in perl 5? 21:01
21:01 ejs left, kisu_ joined
moritz_ then it's probably best to read S02 (context, captures, signatures etc.) 21:01
hercynium yeah, I think so... 21:02
I actually haven't looked at the synopsis list and just noticed that captures seem to have taken their place
PerlJam hercynium: why do you want to read about those? Typically, you won't need to worry about "references" 21:03
hercynium yesterday I thought to myself of some silly syntactic sugar I realized I wanted
where a function was parsing a string and spitting out about 4 different data structures
21:04 km2 joined
hercynium really, I just thought "I wonder how this could be better in perl6 :) 21:04
(the data is large, hence using references) 21:05
moritz_ the nice thing is that many dereferencations can happen automagically
rakudo: my @a = <b c d>; my $ref = @a; say $ref[*-1] 21:06
p6eval rakudo 35221: OUTPUTĀ«dā¤Ā»
hercynium rakudo: my @a = <b c d>; say @a[1] 21:07
p6eval rakudo 35221: OUTPUTĀ«cā¤Ā»
hercynium rakudo: my @a = <b c d>; my $ref = @a; say @ref[1]
p6eval rakudo 35221: OUTPUTĀ«Scope not found for PAST::Var '@ref'ā¤current instr.: 'parrot;PCT;HLLCompiler;panic' pc 146 (src/PCT/HLLCompiler.pir:102)ā¤Ā»
hercynium just curious :) 21:08
moritz_ $ref and @ref are different variables 21:09
21:09 kisu_ left 21:10 pmurias joined
[particle] sigils are invariant in perl 6, so an array always uses @ 21:11
21:11 riffraff left
hercynium I had a desire to be able to "return \@a, \%b, \%c, \%d" from a sub "do_stuff" and have the caller be "my (@d, %w, %i, %m) = do_stuff($data)" 21:12
(put a \ in front of that $data)
[particle] if your data structures are all references instead, then you can do that 21:13
21:13 eternaleye joined
[particle] the syntax isn't as pretty, but it does reduce copying in sub calls 21:14
hercynium rakudo: my $a = [qw(a b c)]; my @b = $a; say @b[2] 21:15
p6eval rakudo 35221: OUTPUTĀ«Use of uninitialized valueā¤ā¤Ā»
hercynium I should just read instead of beating up the bot :) 21:16
thx though! ttyl!
[particle] rakudo: my $a = <a b c>; my @b = $a; say @b[2];
p6eval rakudo 35221: OUTPUTĀ«Use of uninitialized valueā¤ā¤Ā»
[particle] err, ah, right
rakudo: my $a = <a b c>; my @b = $a.list; say @b[2];
p6eval rakudo 35222: OUTPUTĀ«cā¤Ā»
[particle] in your example, @b contains one element, which is a three-element array 21:17
rakudo: my $a = <a b c>; say $a[2] 21:18
p6eval rakudo 35222: OUTPUTĀ«cā¤Ā»
21:24 kisu left
moritz_ www.perlmonks.org/?node_id=735027 # couldn't resist to write a Perl 6 reply ;) 21:30
pdcawley grins. 21:33
21:38 mberends joined 22:05 aindilis left, aindilis joined
pugs_svn r24809 | particle++ | [S19] address backward (in)compatibilities 22:06
22:13 plainhao left
moritz_ rakudo: try { 'x(ab' ~~ m/'(' ~ ')' 'ab'/ }; say "error msg: $!" 22:18
p6eval rakudo 35224: OUTPUTĀ«error msg: Unable to parse , couldn't find final ')'ā¤Ā»
22:18 vixey left
moritz_ TimToady: is that desired behaviour? (ie that the match actually throws an exception to the outside code)? 22:19
22:21 Limbic_Region joined 22:24 SamB left
TimToady it's not thrown 22:25
or shouldn't be 22:26
moritz_ TimToady: so how does one access the error message?
TimToady rakudo: 'x(ab' ~~ m/'(' ~ ')' 'ab'/; say "error msg: $!"
p6eval rakudo 35224: OUTPUTĀ«Unable to parse , couldn't find final ')'ā¤current instr.: 'parrot;PGE;Match;FAILGOAL' pc 2927 (compilers/pge/PGE/Regex.pir:456)ā¤Ā»
TimToady it's in $!
moritz_ even if it shouldn't be thrown?
TimToady rakudo: 'x(ab' ~~ m/'(' ~ ')' 'ab'/; say "error msg: $/"
p6eval rakudo 35224: OUTPUTĀ«Unable to parse , couldn't find final ')'ā¤current instr.: 'parrot;PGE;Match;FAILGOAL' pc 2927 (compilers/pge/PGE/Regex.pir:456)ā¤Ā» 22:27
TimToady looks like it's in $/ too
moritz_ in this cases rakudo just throws, the say() is never reached
TimToady should just return an unthrown exception 22:28
moritz_ ok
thanks
pugs_svn r24810 | jnthn++ | [t/spec] Modify test that re-declared a variable (but isn't testing for the semantics of this) to not do so.
TimToady there seemed to be some confusion earlier about whether $/ is lexical 22:29
moritz_ I think I got that wrong :/
TimToady well, it is lexical...
moritz_ but also contextual
TimToady and .subst sets $/ in its caller
so $0 dwims 22:30
moritz_ and do closures ever close over $/?
TimToady they have their own $/ that is initially bound to the outer $/
pugs_svn r24811 | moritz++ | [t/spec] first tests for ~ in regexes 22:31
TimToady if the closure does its own .match or .subst, it rebinds it inside but not outside
so everything scope much like in p5, but without any global variables 22:32
*scopes
the other major change is that $/ is always the last result, not the last successful result 22:33
22:36 gbacon left
rakudo_svn r35227 | moritz++ | [rakudo] 'make spectest' works again if t/spec is a symbolic link, particle++ 22:50
[particle] can you find the last successful result in @/[1]? ;) 22:53
the idea of @/ scares me
PerlJam the last successful result would be the first one in @/ that doesn't hold Failure 22:54
[particle] @/.*?true 22:55
lambdabot Unknown command, try @list
[particle] i'm having fun making up syntax :) 22:56
PerlJam I think you wanted @/.>>true (or something) thought
s/ght/gh/
[particle] yeah, i'm riffing on perl 5's .*? minimal match regex syntax
it's very much like perl 6's .? call this method if it exists syntax
so .*? could be call the first method that exists 22:57
PerlJam except that .* is "call all candidate (possibly none)"
[particle] so .*? is call the first candidate, possibly none 22:58
PerlJam well, the analogy kind of fails for me the greediness of .* should be more like "call the last candidate, possibly none" 22:59
moritz_ grep { $_ }, @/
22:59 wknight8111 joined
moritz_ PerlJam: .* in regexes doesn't match the last possible char, but all possible chars 22:59
PerlJam moritz_: yes, I know ... it just doesn't map well in my brain. .*? (match fewest chars) -> (call first method) would make me want to see .* (match most chars) -> (call last method) 23:01
23:03 hercynium left 23:04 cspencer left 23:06 mberends left
pugs_svn r24812 | moritz++ | [t/spec] add and fix a few smartlinks 23:14
23:14 alester left
pugs_svn r24813 | pmurias++ | [mildew] use v6; is ignored 23:16
r24813 | pmurias++ | seperated out statement_control.pm
23:17 pmurias left 23:23 km2 left 23:26 mberends joined
pugs_svn r24814 | pmichaud++ | [t/spec]: Remove unneeded "returns Void" from hash.t 23:27
23:27 pdcawley left 23:42 aindilis left 23:43 aindilis joined 23:50 maerzhase left 23:53 LimbicRegion joined
pugs_svn r24815 | pmichaud++ | [t/spec]: #?rakudo skip a test involving non-working Block isa check 23:54
23:54 aindilis` joined
pugs_svn r24816 | pmichaud++ | [rakudo]: Change a 'todo' to 'skip' for non-existent Rat type in num.t. 23:56
23:56 Limbic_Region left, LimbicRegion is now known as Limbic_Region