Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2009-03-19

Perl 6 | Reference Documentation | Rakudo

| Channels | #perl6 index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

Time Nick Message
00:21 wknight8111 joined #perl6
00:28 Diederich-HireMe joined #perl6
00:37 skids Things that look benign till you really start to think about them:
00:38 skids async { my $a; ... }
00:38 skids Now asyncs are supposed to share context... so what's going on in the block?
00:39 skids Does the my drop a level and become visible by the parent thread?
00:39 skids Things that make me go hmmm.
00:39 jnthn skids: No, I would think the $a is lexically scoped within that block, and thus only visible inside the thread.
00:39 jnthn By context it means what's outside that block.
00:39 skids Ah, but then we have made it impossible to get an sync that is truly a peer.
00:40 skids s/sync/async/
00:41 skids And then: my $a;  async { $a.say } <-- does this have to use OUTER?
00:44 pugs_svn r25902 | lwall++ | [S05] define .caps and .chunks methods on match objects
00:44 skids unless the async is allowed to run off the bottom of the block.... ok that might work... but I don't think that was the original intent.
00:45 TimToady the compiler knows there that $a is really OUTER::<$a>
00:45 TimToady but this is one reason we've defined context vars the way we do, so that each thread can keep track of its own context
00:46 felipe joined #perl6
00:46 TimToady also why we track whether the outer context variable is readonly or rw
00:46 TimToady since those behave differently under threading
00:47 * skids suspects he's missed some p6l material or an RFC, goes looking
00:53 jnthn skids: I had always assume that reaching the end of the block meant that thread then was finished and terminated.
00:53 jnthn skids: Or was able to be .join()'d.
00:53 Woody4286 joined #perl6
00:54 bacek_ joined #perl6
00:58 frooh s1n: I was just wondering if we should make some kind of agenda for tomorrow?
01:00 pugs_svn r25903 | ruoso++ | [re-smop/nagc] the gc for native types is almost ready. it also supports weakrefs, but there is a circularity in there, which is how to make the delegation of the calls on the weakref since at this point we dont have capture yet... maybe I will need to assume that circularity
01:00 pugs_svn ..here, but I will think a bit more about it
01:04 japhb joined #perl6
01:08 hercynium joined #perl6
01:16 nihiliad joined #perl6
01:38 firelord joined #perl6
01:39 firelord hey everyone
01:40 meppl good night
01:40 firelord night meppi
01:40 meppl ;)
01:45 ced-2 joined #perl6
02:01 s1n frooh: still around? we keep missing each other
02:02 Kisu joined #perl6
02:03 Firelord joined #perl6
02:04 Firelord anyone got time to help me with some issue where perl6 is not finding any of modules and/or objects?
02:06 eternaleye joined #perl6
02:06 s1n Firelord: i doubt i could help, but it sure would be a fun exercise to see if i can :)
02:09 frooh s1n: yeah, sorry
02:09 Firelord s1ln: Thanks. It seems that my Perl6 executable cannot find my 'lib' folder even when I made and export my 'PERL6LIB' in my bash.rc
02:09 frooh I was doing some remote stuff fullscreen
02:10 Firelord s1n: Never mind.... I found my problem....
02:10 s1n Firelord: glad i could help :)
02:11 s1n frooh: i had an agenda in mind but it's one of those loose-do-whatever-comes-up types
02:11 Firelord s1n: Your the best
02:11 frooh s1n: yeah that's fine
02:11 frooh I just wanted to make sure we are on the same page
02:11 frooh we'll see which/if my co-workers come
02:12 frooh it should be cool either way; and I'll bring my laptop at the very least with today's build of rakudo
02:12 s1n no rush to have a huge crowd, first p6m meeting, outta be fun
02:12 frooh (and needless to say parrot)
02:12 s1n same here
02:13 s1n so basically, here's what i had in mind:
02:14 s1n 1) get-to-know 2) what interests us with p6 and see if any of us share a more specific common interest 3) q&a 4) next meeting / administrativa
02:14 frooh sounds good to me
02:14 frooh one of my friends, when I told him about it, was like, "So are you guys gonna distribute perl 6 there?"
02:14 frooh which I thought was pretty funny
02:15 frooh he was maybe under the impression that you can't get it on the internet or something
02:15 s1n we could, git clone makes that real easy :)
02:15 frooh I know
02:15 frooh although he recently got ... side-moted (???) out of programming and into sales
02:15 frooh he likes coding, but he is much better at people
02:16 s1n i'm mostly interested in seeing what other people are interested in, it's been hard trying to gain momentum in a community you're foreign to and is fairly unforgiving to beginners
02:16 frooh agreed
02:16 frooh did you see my two patches so far?
02:17 s1n no i did not, link?
02:17 frooh well, I'll give you a rundown before a link
02:17 frooh the first one was a pop method, but they didn't want anything for arrays as they are getting a rewrite
02:18 frooh so then I did some of the stuff in the wiki that was recommended (floor, ceiling, etc), but those were rejected because they wanted inline PIR in the setting
02:18 s1n i heard about that, didn't see the patch
02:18 frooh of course that wasn't communicated
02:18 frooh It is discouraging
02:18 frooh lemme see if I can find a link for you
02:18 s1n well, i think there's a few of us here who are trying to bust in to development...
02:18 frooh surely
02:18 s1n wayland comes to mind
02:18 frooh right
02:19 s1n and we really need to get the sorta boys club that has been doing perl6 for the last 8 years working better with us newcomers :)
02:19 frooh hahahaha
02:20 frooh well, I think it's mostly just a communication issue
02:20 frooh like if I had known about the PIR thing from the beginning I wouldn't have gotten discouraged and would have (hopefully) had a useful patch
02:20 frooh and it's not pmichaud's fault, he's mega busy
02:21 s1n jnthn, pmichaud, moritz_, etc those guys are all great and have done amazing work and are ridiculously busy, but we have to work on opening up the doors and improving communication
02:21 frooh right-0
02:21 frooh here's the first thing I mentioned
02:21 frooh http://github.com/frioux/rakudo/blob/0ea4c8df5561​85ebb30bd06e218d2229a6af04b4/src/setting/Array.pm
02:22 frooh http://rt.perl.org/rt3/Publi​c/Bug/Display.html?id=63874
02:22 frooh and that's the new one which I felt pretty good about, but I understand that it is porbably slower than the pir etc
02:24 s1n where is inline pir documented?
02:24 frooh I couldn't find the docs for that, but there are some recent examples that I can use in the future
02:25 frooh but they didn't arrive till *after* I wrote this stuff
02:25 s1n yeah it probably is, pmichaud warned me against doing functions that are basically the same in perl6 for the sake of performance
02:25 frooh right
02:25 frooh and I understand that
02:26 s1n the main problem is a communication breakdown, you experienced this first hand
02:26 s1n they don't want it that way but it's not documented anywhere
02:26 frooh but there *were* announcements that to work on the setting no PIR was necesary
02:26 s1n my advice, document it :)
02:26 frooh right
02:26 frooh well, it's probably in some rakudo docs
02:26 s1n PIR isn't that bad, you just have less sugar
02:26 frooh as it doesn't really belong with the perl 6 docs (which is all I look at)
02:27 frooh I know, but I just don't feel the need or even benefit of it until I was told I needed to learn it to hack on rakudo
02:27 s1n i don't think there are any solid rakudo docs, good/bad practices etc
02:27 frooh but I'll ask you more about pir tomorrow
02:29 frooh but in general inlining the PIR isn't so bad
02:29 frooh it's just q:PIR{...} I think
02:29 frooh and I would have asked you about specifics when I was trying to do it
02:30 frooh but you were all school'd
02:30 s1n i didn't know how to do inline pir, but if that's how you do it, we can do some sample stuff tomorrow if you want
02:30 frooh I'm down
02:31 s1n so you scratch my back, i'll scratch yours...
02:31 s1n i'm having trouble with my fork and getting it up to date and passing tests again: github.com/s1n/rakduo
02:31 frooh http://github.com/rakudo/rakudo/blob/f8b6aeec564df​a79162b3f6b53302afdc2f33b19/src/setting/Any-str.pm
02:31 s1n what's that?
02:31 frooh that has some inline PIR btw
02:31 s1n ahh, okay
02:32 frooh if you don't mind I'd rather help with git tomorrow
02:32 s1n bleh, okay
02:32 frooh haha, well I *can* help now, it's just harder over the web
02:33 s1n i'm patient :)
02:33 frooh I decided that I will pull from rakudo but not push to my fork unless a patch is accepted
02:33 frooh it makes it way easier as you don't have to deal with confilcts
02:33 s1n that's the problem i ran into :)
02:33 frooh I am not surprised
02:34 frooh really the only reason to do it anyway is if you are working with other people on the patch or using multiple comps
02:34 s1n so basically, i want to drop the branch i had and make a new one that is basically in sync with upstream
02:34 frooh well, pulling is easy peasy, from upstream anyway, it's just pushing will cause a mess.
02:34 s1n i want to redo some work, but i don't really want to remake the fork
02:34 frooh when you pull from upstream what happens?
02:34 frooh nah, don't remake the fork
02:35 s1n oh that works just fine
02:35 frooh so you are getting issues trying to push then?
02:35 s1n i pulled from upstream no problem, but something is wrong
02:35 frooh elaborate. (water&)
02:35 s1n i suspect my past changes are causing a problem, so i want to work on redoing them
02:36 s1n the branch i had is failing the spec tests, and i want to just drop it, redo it with the new workflow (not push to origin) etc
02:36 frooh ok, that shouldn't be a huge issue
02:36 frooh how about we do this
02:36 frooh make a patch of your brach
02:36 frooh so you still have what you did
02:37 s1n i have it backed up elsewhere
02:37 frooh ok, that's fine then
02:37 s1n easy to copy and paste the bits i changed, done :)
02:37 frooh ok, then you can deal with taht
02:37 frooh you know how to delete a branch?
02:37 s1n nope
02:37 frooh k
02:37 frooh locally it's git branch -D foo
02:38 frooh where foo is the name of the branch
02:38 s1n check
02:38 frooh and there may be a web based way to delete the remote branch
02:38 frooh a web based way that is
02:38 s1n meh, i need to learn git itself
02:39 frooh ok
02:39 frooh then lemme look
02:40 frooh I wish my git book wasn't at work
02:40 s1n o'reilly has one being published now, which one do you have?
02:40 frooh the prag prog one
02:40 s1n ah
02:40 frooh it is pretty good, but it could use some more...paradigm shifting
02:40 * gravity just rm's the appropriate branch in .git/refs/heads
02:41 gravity Although that's probably wrong
02:41 frooh but won't that not delete the remote branch?
02:41 gravity Yeah, you'd have to be on the server
02:41 s1n gravity: i really loathe the idea of managing my own repo, so i just want to learn the minimum subset of things i need for git to get out of my way
02:41 frooh s1n: I think you can do git branch -D origin/foo
02:41 frooh hahahaha
02:42 s1n frooh: i already did a git branch -D foo (no origin)
02:42 frooh right
02:42 frooh origin should delete the remote one
02:42 frooh the other one was the local branch
02:42 s1n not found
02:42 s1n should it be "origin foo"?
02:42 frooh let me look at your remote repo for a sec
02:43 frooh I don't think so
02:43 frooh http://www.kernel.org/pub/softwa​re/scm/git/docs/git-branch.html
02:43 frooh see the examples near the bottom
02:43 s1n that's not the same
02:43 s1n -d -r origin/foo
02:43 frooh so you did something like git branch -D origin/rt_work?
02:44 frooh well, the D says delete it even if you haven't merged it yet
02:44 frooh the -r is something I forgot :-)
02:44 s1n first i did git branch -D foo, then i tried -D origin/foo and it said branch not found
02:44 frooh so -D -r is probably what you want
02:44 s1n done
02:45 frooh doesn't look like it worked...
02:45 bacek_ to remove remote branch you need "git push origin :branch". All other manipulate with local repo
02:45 frooh it still exists on your github thing
02:45 frooh ah, there we go :-)
02:45 frooh thanks bacek_
02:46 ced-2 joined #perl6
02:46 bacek_ frooh: you are very welcome :)
02:47 s1n bacek_: is that an actual :branch or :foo where foo is my branch?
02:49 bacek_ actual branch
02:49 bacek_ for some value of "actual"
02:50 * frooh wonders what that means
02:50 bacek_ It should be remote-branch-name.
02:50 bacek_ eg "foo" :)
02:50 frooh nice
02:54 s1n hmm i think it worked
02:54 xinming joined #perl6
02:54 frooh it did!
02:54 frooh it's gone from your page
02:56 alester joined #perl6
02:59 xinming_ joined #perl6
02:59 amoc rakudo: my $foo; $foo.--;
02:59 p6eval rakudo f8b6ae: OUTPUT«Statement not terminated properly at line 1, near ".--;"␤␤current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)␤»
03:01 s1n frooh: so can i just create a new branch, add the upstream and try again?
03:01 frooh yeah
03:01 frooh I just wouldn't push
03:01 frooh since we are using RT pushing has pretty little value anyway
03:02 s1n true
03:02 s1n but it's not very git-like
03:02 s1n shouldn't we be pushing to a small branch per patch?
03:02 frooh yes
03:02 s1n only just before we submit to RT that is
03:03 frooh but that means *creating* a branch per patch
03:03 frooh you don't have to push it
03:03 s1n yeah, is that in your current workflow?
03:03 frooh the point of git is that you don't need to use another repo
03:03 frooh pushing?
03:03 s1n so after being accepted on RT, you push and then they cherry pick?
03:04 frooh well, I'd say no
03:04 frooh just pull from master and you get your stuff
03:04 frooh but that's a pragmatic answer
03:04 frooh vs a git-y answer
03:04 s1n how are they going to get our patch?
03:04 frooh you mail it to RT
03:04 frooh and pmichaud or jnthn applies it
03:04 s1n that's not git-y at all
03:04 Sepheebear joined #perl6
03:04 frooh no
03:04 frooh it isn't
03:05 frooh but for now I think it's how we will do the stuff, for technical reasons
03:05 s1n i would imagine you push to a branch, submit the patch to RT with a link to the commit, and then they can cherry pick
03:05 frooh I agree
03:05 s1n or you push after being accepting, comment the link, then they cherry pick
03:05 frooh but I don't think that pmichaud is comfortable with git enough to do that
03:06 frooh but I agree, that sounds best to me
03:06 s1n baptism by fire, doing is the best teacher :)
03:06 frooh hahaha
03:06 frooh agreed
03:06 frooh well, it's shower time for me, and then I have to chillax so I can get to sleep
03:06 s1n i think i'll just do that and see how it works out to them, push after RT
03:06 frooh sure
03:06 frooh I'll see you tomorrow at 7
03:06 s1n yup
03:07 frooh shower&
03:10 s1n bed&
03:20 finchely joined #perl6
03:27 Tene_ joined #perl6
03:33 alc joined #perl6
03:36 Kimtaro joined #perl6
03:51 ced-2_ joined #perl6
03:51 finchely left #perl6
03:58 Guest90163 joined #perl6
04:01 Guest90163 left #perl6
04:02 amoc joined #perl6
04:04 unobe joined #perl6
04:05 unobe joined #perl6
04:15 davistv joined #perl6
04:16 davistv Hey how can I help?
04:21 disismt joined #perl6
04:26 OuLouFu joined #perl6
04:28 pugs_svn r25904 | putter++ | [elfparse] More unpodding.
04:28 pugs_svn r25904 | putter++ | [elf_h] Added a kludged given/when.
04:31 dmpk2k joined #perl6
04:42 simcop2387 joined #perl6
04:59 Sepheebear joined #perl6
05:23 simcop2387 joined #perl6
06:04 pugs_svn r25905 | lwall++ | [t/spec] remove uses of prefix:<int>
06:45 maerzhase joined #perl6
07:32 amoc hello, could anyone please explain what "parametric types" in Perl6 Built-in Data Types?
07:33 moritz_ amoc: which document does it appear in?
07:33 amoc I really searched a lot, but i cannot reach to with my head '~'
07:33 amoc from here: http://perlcabal.org/syn/S0​2.html#Built-In_Data_Types
07:33 moritz_ ah
07:34 moritz_ roles can take parameters, just like subroutines do
07:34 amoc at third paragraph.
07:35 moritz_ role PaysTax[Num $rate] { method pay-tax { $.amount -= $.amount * $rate } }; class Employee does PaysTax[0.12] { .... };
07:35 moritz_ in this case PaysTax needs a parameter, $rate, when it's mixed into a class or an object
07:35 * amoc thinks
07:36 moritz_ so the long name of the role that's mixed into the class is PaysTax[0.12]
07:36 moritz_ and the short name is PaysTax
07:37 moritz_ see S14 for more details
07:37 amoc thank you very much,
07:37 moritz_ you're welcome
07:37 amoc i missed to read about roles.
07:37 ejs joined #perl6
07:39 moritz_ I learned OO in a classical class-based language (Eiffel and C++), so it took me quite some time to wrap my head around roles
07:41 maerzhase joined #perl6
07:46 amoc i see...*
08:20 Woody4286 joined #perl6
08:23 agentzh joined #perl6
08:27 masak joined #perl6
08:28 DemoPhreak joined #perl6
08:33 rgs joined #perl6
08:38 ejs joined #perl6
08:47 ejs joined #perl6
08:48 masak greetings, parrotcamels.
08:48 amoc *greetings*
09:02 masak TimToady++ # .caps and .chunks
09:02 masak as one who uses grammars for these things, I'm very happy about that addition.
09:04 Matt-W hmm
09:04 Matt-W what does .chunks do?
09:04 mberends joined #perl6
09:05 moritz_ Matt-W: returns all chunks in the order they appeared in the text
09:06 masak so, tokenization.
09:06 mberends greetings, masak. I strongly urge you to pull perl6-examples, cd to lib/Pod and try 'make podserver'
09:06 * masak complies
09:07 moritz_ so for 'foo 345 bar' ~~ /:s <ident> \d+ (\w+)/ it would return a match object for 'foo', ' ', '345', ' ', and a match object for the capture
09:07 moritz_ at least if I understood it correctly
09:07 mberends good parrot, masak.
09:10 Matt-W moritz_: that sounds very useful
09:11 moritz_ Matt-W: that's why I suggested it last year :0
09:11 DemoFreak joined #perl6
09:11 Matt-W moritz_++
09:13 r0bby_ joined #perl6
09:21 masak mberends: I've said it before, but I really like your Configure.pm.
09:21 masak mberends: thinking of stealing it for November and Druid.
09:22 masak not sure I like that it calls 'make' by itself, but OTOH I can't verbalise why I think that's ungood.
09:22 mberends I do admit it's 'cheeky'
09:22 masak mberends: wow! whatever it is that 'make podserver' is meant to do... wow!
09:23 mberends the tension is killing me... does podserver run or crash by you?
09:23 masak however...
09:23 masak it loops on 'sh: netcat: command not found'
09:23 masak is that something I should have installed? :)
09:23 mberends dang!
09:23 masak anyway, massive kudos.
09:24 masak um... are you sure 'make podserver' itself should be starting a webapp? :)
09:24 masak might that not be the job for a script or something instead?
09:24 mberends podserver *needs* netcat for listen() and socket I/O
09:25 masak ah, so that's how you solve it.
09:25 unobe left #perl6
09:25 masak is there any way for make to abort if 'netstat' is not found in the $PATH?
09:26 mberends the 'make' route is currently the friendliest way to sort out PERL6LIB and PERL6BIN and run the right process.
09:26 masak ah, point.
09:26 masak we really need to sort that out, and standardize.
09:26 mberends I'm sure Makefile can detect the absence of a file, yes.
09:26 mberends can you install netcat?
09:26 masak I will.
09:27 mberends masak++
09:43 moritz_ somehow I think I read in one of the design minutes that somebody mentioned a distributed bug/request tracker
09:44 moritz_ but I can't find it anymore
09:44 moritz_ any ideas where it was mentioned, or by whom?
09:46 sunnavy joined #perl6
10:04 alc joined #perl6
10:08 mikehh moritz_: not that I can find in this years minutes - I seem to remember something like that, but from where?
10:12 moritz_ http://www.ditrack.org/ seems nice, but I don't understand why they store tickets in svn when they want to be distributed...
10:14 jnthn morning
10:15 moritz_ good morning jnthn
10:16 alc joined #perl6
10:18 Matt-W morning jnthn
10:20 * jnthn can't believe Perl 6 now has a type with a "chunks" method...
10:21 jnthn (I had friends that used it as slang for...the substance produced when you're sick.)
10:22 jnthn Which is the first thing I thought of when I read the diff. :-|
10:23 masak morning, jnthn
10:23 jnthn masak: OH HAI
10:23 masak jnthn: well, maybe $/ _is_ sick. :)
10:24 jnthn Maybe. ;-)
10:25 Matt-W jnthn: as in 'to blow chunks'? yes we had that too but it's not the first thing I thought of. I thought of fudge.
10:29 amoc morning, everyone!
10:30 Matt-W morning amoc
10:30 jferrero joined #perl6
10:31 jnthn Matt-W: Yes, "to blow chunks". Eww!
10:37 masak in other news, 'crypt' is creepy, 'dump' is doubtful, 'pipe' is too smoker-oriented, and don't get me started on 'kill'.
10:38 jnthn fork that lot
10:39 moritz_ and then wait for it :-)
10:47 masak rakudo: class A { has $.x is rw = 0; submethod BUILD (:$a) { $.x++; } }; A.new()
10:48 p6eval rakudo f8b6ae: OUTPUT«Null PMC access in find_method()␤current instr.: 'postfix:++' pc 20473 (src/builtins/op.pir:33)␤»
10:48 * masak submits rakudobug
10:48 moritz_ Matt-W: there's already one for it
10:48 moritz_ sorry, meant masak
10:49 * masak halts submit process
10:49 masak moritz_: do you know anything about the cause?
10:49 masak moritz_: I'm eager to start using BUILD submethods...
10:50 moritz_ http://rt.perl.org/rt3/Tic​ket/Display.html?id=63902
10:50 moritz_ masak: no idea
10:50 moritz_ lunch&
10:51 masak ah, one of the bugs you found this weekend.
10:52 disismt joined #perl6
10:53 * amoc sighs*
10:54 ced-2 joined #perl6
10:55 * Matt-W wishes he could figure out why his code doesn't work
10:55 masak mberends: I did 'port install gnome-netstatus', but after seeing what port is pulling down, I'm starting to wonder whether this wasn't a mistake...
10:55 masak Matt-W: nopaste?
10:55 Matt-W masak: not got it with me
10:55 Matt-W can't get it down to a test case
10:55 masak ah.
10:55 Matt-W very frustrating
10:55 masak sounds like it.
10:55 Matt-W everything smaller I've tried has worked perfectly
10:55 masak huh.
10:56 Matt-W I may push it into a branch of form and ask if anybody else sees the same problem
10:56 masak aye, sounds like a good idea.
10:57 Matt-W and if anybody has time, if they can come up with a test case
11:00 Matt-W assuming I can't
11:00 mberends masak: gnome-netstatus does not contain netcat afaik. maybe 'port install netcat'.
11:00 masak oki
11:01 masak ah, much better.
11:03 masak strange, I can't find any binary after the install.
11:05 mberends try 'which netcat' or 'which nc', it might be an alias
11:06 masak /usr/bin/nc
11:06 mberends right now podserver is hardcoded to use netcat :(
11:06 masak right. is it a one-place change?
11:07 masak ah, Server.pm
11:07 mberends yes, one place. you're the guinea pig again for portability testing :)
11:07 masak seems so.
11:07 masak nc: illegal option -- c
11:07 masak :/
11:08 masak portability is hard! let's go shopping.
11:09 mberends :/ indeed. also, too distracted to concentrate on helping you right now. later maybe...
11:09 masak that's ok, I'm a bit too distracted to get help.
11:09 rgs joined #perl6
11:09 * mberends needs osx86 on his laptop
11:13 hanekomu joined #perl6
11:16 Matt-W masak: okay we'll go shopping, you can pay...
11:16 tombom joined #perl6
11:18 masak why do I always get to pay? :P
11:20 Matt-W because I had my gas and electricity bills
11:21 masak oh.
11:21 masak well, for this time, then.
11:24 Matt-W :D
11:24 Matt-W Let's go to the Apple Store!
11:24 Matt-W (and install Rakudo on all the demo machines)
11:24 masak :P
11:26 masak moritz_++ ihrd++ # RT tickets
11:33 masak today is Rakudo Release day, IIRC.
11:36 Matt-W wheee
11:40 jnthn Damm, I just broke my mouse.
11:41 Matt-W that's okay, you don't need a mouse to write PIR
11:42 jnthn I'm a Windows user! :-P
11:42 masak Windows has completely adequate keyboard shortcuts, methinks.
11:42 masak at least it did as of circa 1998.
11:42 jnthn erm.
11:43 jnthn OK, so now the scroll wheel is acting to move the cursor, and when I move the mouse it scrolls...
11:43 jnthn .oO( Maybe violence isn't always the solution to hardware problems... )
11:43 masak :)
11:44 masak lunch &
11:49 [particle]2 joined #perl6
12:02 disismt joined #perl6
12:08 baest I'm using the grammar and I don't understand why rules with <something>? prints 1 instead of contents of <something> like in http://pastebin.com/m179ca568
12:08 buubot baest: The paste m179ca568 has been copied to http://erxz.com/pb/16369
12:09 maerzhase joined #perl6
12:09 jnthn baest: It's quantified, so you get an array.
12:10 jnthn (list actually I guess...)
12:10 baest jnthn: ahh, so [0] would work?
12:10 jnthn Yes, should do.
12:10 baest it certainly does
12:11 baest jnthn: maybe it's just me, but does that make sense for '?' since 1 match is what we can get and you will not get an empty array in case of no match
12:13 jnthn It's just consistent for all quantifiers.
12:13 baest ok, fair enough
12:15 firelord joined #perl6
12:15 firelord left #perl6
12:18 pugs_svn r25906 | ruoso++ | [nagc] doesnt try to solve the circularity now, use the smop_placeholder_message in the weakref message, as in s0native, so it can be replaced later. The test also tests the weakref now
12:26 amoc rakudo: sub GLOBAL::foo () {...}
12:26 p6eval rakudo f8b6ae: OUTPUT«Malformed routine definition at line 1, near "GLOBAL::fo"␤␤current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)␤»
12:36 Zzz__ joined #perl6
12:45 ced-2_ joined #perl6
12:59 disismt joined #perl6
13:00 ced-2 joined #perl6
13:17 ced-2__ joined #perl6
13:21 amoc rakudo: my @a = <one two>; @a[-1] = 'zero'; @a.perl
13:21 p6eval rakudo f8b6ae: RESULT«"[\"one\", \"two\"]"»
13:21 amoc it is a bug, right?
13:21 masak amoc: [*-1]
13:22 amoc rakudo: my @a = <one two>; @a[*-1] = 'zero'; @a.perl
13:22 p6eval rakudo f8b6ae: RESULT«"[\"one\", \"zero\"]"»
13:22 masak S09.
13:22 jnthn I think -1 is meant to be a syntax error these days.
13:22 masak jnthn: why?
13:22 jnthn std: @foo[-1]
13:22 masak it's just out of bounds.
13:22 p6eval std 25906: OUTPUT«##### PARSE FAILED #####␤Obsolete use of [-1] subscript to access final element; in Perl 6 please use [*-1] instead at /tmp/LjHndWhXQw line 1:␤------> [32m@foo[-1][31m[0m␤Other potential difficulties:␤  Variable @foo is not predeclared at /tmp/LjHndWhXQw line 1:␤------>
13:22 p6eval ..[32m@...
13:22 amoc from http://perlcabal.org/syn/S09.html#N​egative_and_differential_subscripts
13:22 masak oh.
13:23 amoc it says: "Using a standard index less than zero prepends the corresponding number of elements to the start of the array and then maps the negative index back to zero"?
13:23 jnthn masak: Because STD.pm says so. But yes, you can declare an array with different indexes too...
13:23 masak shall I report this as a rakudobug?
13:23 jnthn So I'm not sure what'd happen there.
13:23 jnthn You can. We're inconsistent with STD.pm there, so it's probably worthy of a ticket.
13:24 masak someone put together an example for STD with a different-indexes array, and see what it says! :)
13:24 * masak submits
13:24 skids joined #perl6
13:28 mberends masak, could you make a gist of your 'man netcat'? for a little venture on the slippery slope of OS detection ;)
13:28 masak mberends: sure thing.
13:28 mberends tx
13:29 pugs_svn r25907 | ruoso++ | [re-smop] Builds and tests the new native garbage collector. Test pass (including weakref).
13:30 masak mberends: http://gist.github.com/81815
13:32 moritz_ rakudo: class A { method b { eval "say 'hi'" } }; A.new.b
13:32 p6eval rakudo f8b6ae: OUTPUT«Null PMC access in inspect_str()␤current instr.: 'eval' pc 16074 (src/builtins/control.pir:317)␤»
13:34 duke_leto joined #perl6
13:35 jnthn moritz_: Yeah, Ilay found that last night.
13:35 jnthn I'm almost certainly to blame.
13:35 masak *Ilya. that's the Russian letter 'ya' right there.
13:36 masak Я.
13:38 jnthn oops
13:38 jnthn yes typo
13:39 * moritz_ blames jnthn :-)
13:40 moritz_ git disagrees:
13:40 moritz_ git blame jnthn
13:40 moritz_ fatal: cannot stat path jnthn: No such file or directory
13:40 masak :P
13:44 disismt joined #perl6
13:49 masak frooh: nice about Dallas.p6m.
13:49 masak seems to me that should have been a p6u email, though, and not a p6x/p6l one.
13:49 moritz_ if only it were a bit closer to $here :-)
13:50 masak no biggie, just Separation of Concerns.
13:50 * jnthn -> slovak glass, back later
13:50 masak moritz_: well, on average, things are really far from $here.
13:50 jnthn moritz_: Hey, nothing is my fault!
13:50 jnthn bbl
13:51 masak jnthn: dovi!
13:52 masak man, the Web rocks. I touched up my Slovak greeting knowledge in 30s.
13:53 masak (on the other hand, I seriously need to close some of the 835 tabs I have open in Firefox.)
13:54 moritz_ I hope the 835 is jokingly, not literal?
13:54 masak moritz_: sadly, the latter.
13:54 Matt-W If it's literal, he's got far too much RAM
13:55 masak Matt-W: yah, I'm a Java programmer. I need the RAM.
13:55 moritz_ lol
13:55 Matt-W Try telling that to my employer
13:55 masak :)
13:55 Matt-W I do Java and C++ *at the same time* and I only get 1GB
13:55 masak that's harsh.
13:56 Matt-W IT's slow
13:56 Matt-W especially as we have to run Eclipse for the Java, and Visual Studio for the C++
13:56 Matt-W neither of which is very lightweight
13:58 * ruoso can't really picture someone doing sw development in the windows world...
13:58 Matt-W I wouldn't try
13:58 Matt-W I don't find it entertaining
13:58 Matt-W But it pays the bills!
14:00 masak Matt-W: go tell your employer that an additional Gb of RAM is the cheapest way to make you more productive right now. that's clearly the bottleneck.
14:01 Matt-W masak: indeed, it's nothing to do with them not blocking the hole in the network I'm using for this SSH connection
14:01 masak moritz_: of course not.
14:01 |jedai| joined #perl6
14:02 masak moritz_: oops, sorry. :/
14:02 masak Matt-W: of course not.
14:02 moritz_ m<tab> strikes again
14:02 masak :)
14:02 Matt-W hurrah for m<tab>
14:02 * masak considers prying up ERC and teching it to do it right.
14:03 masak it should clearly pick the last person to say something as the first alternative.
14:04 moritz_ masak: I thought so too, but what if somebody says something just before you hit Tab?
14:04 moritz_ well, somebody just just try it, and tell if it's a real probelm
14:04 masak moritz_: I still think I'd prefer that way.
14:04 masak I think it would reduce the number of mis-tabs.
14:05 masak or some of you guys could pick a different initial letter for your nick! :P
14:05 moritz_ masak: you be the first.
14:05 masak :P
14:05 masak yah, I'm actually the least qualified to have one.
14:05 masak my first name starts with a C.
14:06 Matt-W all my nicknames start with an M
14:09 moritz_ same here... 'moritz' and 'moritz_'
14:09 moritz_ how creative of me
14:10 mikehh I have only been using one - but it's a great club to belong to :-}
14:11 masak a club that is changing the world, no less.
14:18 Matt-W with some help from some other letters of the alphabet
14:18 masak :)
14:19 Matt-W such as j, p and l&t
14:33 riffraff joined #perl6
14:35 hercynium joined #perl6
14:37 nihiliad joined #perl6
14:54 frioux masak: you should come :-)
14:55 masak frioux: I'd love to. who pays my plane ticket?
14:55 frioux the perl foundation?
14:57 masak heh. :)
15:02 justatheory joined #perl6
15:03 Matt-W ooh the GNOME project is migrating to git. Clearly just imitating us :)
15:03 moritz_ they are? URL?
15:04 Matt-W http://mail.gnome.org/archives/devel-a​nnounce-list/2009-March/msg00005.html
15:04 Matt-W I'm hoping it'll be faster than the CVS->SVN migration was
15:04 Matt-W which took several years
15:04 Matt-W they're talking about a month
15:05 frioux In general I'd say the biggest problem with someone like GNOME going from SVN to git could be what happened with KDE
15:05 frioux everything was in one giant repo
15:05 Matt-W that sounds painful
15:05 frioux where with git its recommended to have a repo per project (unless they need to be together)
15:05 frioux yeah
15:05 Matt-W gnome currently has a subversion repo per project
15:06 Matt-W so I assume that structure will remain
15:06 frioux ah, the it shouldn't be much of an issue
15:06 frioux then*
15:06 frioux except training people
15:06 Matt-W yeah
15:06 frioux which even we struggle at currently :-)
15:06 Matt-W they've got documentation tasks as part of the migration
15:06 frioux well, that may help all of us
15:07 Matt-W it actually could result in some nice git documents appearing
15:07 frioux right
15:07 frioux a lot of the good git stuff out there are random blog posts
15:07 Matt-W particularly in the 'git for SVN users' line
15:07 Matt-W yeah
15:07 Matt-W and it can be really hard to figure things out
15:07 frioux well, I think there is a good amount of that stuff, it's when you realize that you need to do things completely differently that that stuff starts to be less helpful
15:07 Matt-W heh true
15:08 Matt-W but it can at least give you a good grounding in git terminology
15:08 frioux right.
15:08 moritz_ what I missed were "what to do when things go wrong" steps in the documetnation
15:08 Matt-W moritz_: lots of documentation misses that out unfortunately :(
15:08 frioux I should add that to the wiki or something...
15:09 frioux one problem is this: for the ease of pmichaud and others we are squashing commits
15:09 frioux and if you push and then squash again things are garaunteed to go wrong
15:09 frioux gauranteed?
15:10 [particle]1 guaranteed
15:10 frioux there we go :-)
15:10 [particle]1 gar-own-teed!
15:10 moritz_ maybe squash only a copy of the commit?
15:10 moritz_ if that's possible
15:10 frioux that's an interesting idea
15:10 moritz_ I mean you undo the merge commit
15:10 moritz_ go to you previous branch
15:10 moritz_ add a commit
15:10 frioux right
15:11 moritz_ and then squash again
15:11 frioux so you have both the history and a nice squash
15:11 frioux I'll look into adding that to my workflow
15:11 frioux because that would cause a lot fewer issues
15:11 frioux and then we could still push
15:11 frioux which although not required is nice
15:12 frioux se that we don't lose work if our house burns down
15:13 ced-2 joined #perl6
15:19 duke_leto joined #perl6
15:20 Kimtaro joined #perl6
15:21 moritz_ I see good reasons to push feature branches, but do you need to push the squash merges?
15:23 duke_leto joined #perl6
15:23 frioux no
15:23 frioux I think it's a bad idea to push those
15:26 Exodist joined #perl6
15:31 jnthn ruoso: Software development in the Windows world works out not so bad depending what you're doing. I still have yet to see a better C debugger than the Visual Studio one.
15:32 jnthn Windows is really a disaster on the server side.
15:33 ruoso jnthn, my last experience with windows development was with Delphi in the mid-90;s
15:33 Khisanth joined #perl6
15:33 jnthn ruoso: Ah. Things have perhaps moved on a bit since then. ;-)
15:33 moritz_ I've had much "fun" trying to install external libs and header files on windows
15:33 moritz_ but then again it was on win98...
15:33 ruoso you still miss a decent terminal and shell, don't you?
15:34 Matt-W I certainly do
15:34 jnthn The new PowerShell is meant to be OK.
15:34 Matt-W But I learned to develop on Linux
15:34 jnthn I guess you only miss it if you're used to having it.
15:34 Matt-W And jnthn is right, the Visual Studio debugger is really good
15:34 ruoso I like DDD
15:34 moritz_ jnthn: if the powershell is as good as what' I've read about it, it'll be much better than bash
15:35 Matt-W I just wish Visual Studio could manage to get console apps to keep their window open after they quit so you can see waht they said, but that's under the app's control
15:35 Matt-W The best solution I've found online is 'get your app to wait for a keypress before it finishes'
15:35 jnthn So while I've no doubt that objectively the shells available on Linux are generally better - certainly pre-PowerShell - since I never really got to the point of being a power user of a shell elsewhere I just don't miss it.
15:35 Matt-W which is a fat lot of good when you've got an unhandled exception
15:35 jnthn Matt-W: Yeah, that's...a pain.
15:36 Matt-W jnthn: one thing I always liked about UNIX is that graphical apps feel just like ordinary programmes that just happen to talk to the X server
15:36 duke_leto joined #perl6
15:36 Matt-W Windows makes things feel like you should have a GUI or else
15:37 jnthn I think it's partly cultural too.
15:37 jnthn In fact, perhaps even mostly cultural.
15:38 moritz_ sadly it's a culture that makes automation rather hard
15:38 [particle]1 matt-w: can you run the console app under cmd /c ?
15:38 jnthn Many Windows users (not power-users) just conflate "a window" with "a program".
15:38 [particle]1 or is it /k?
15:38 [particle]1 there's one option to cmd that makes the window stay open after the command
15:39 jnthn (Where by "a window" I don't mean the terminal one...)
15:39 Matt-W jnthn: that's how windows presents things, compare very much to mac os X where apps are distinct from their windows (and windows are usually documents)
15:39 Matt-W while windows... has MDI
15:39 * Matt-W shudders
15:39 jnthn Automation - yes, agree. PowerShell was partly a response to that from what I've heard. To make Exchange properly scriptable etc.
15:40 Matt-W yeah powershell's got a lot of potential
15:40 sri_kraih_ joined #perl6
15:40 jnthn It even stole from Perl in places. ;-)
15:40 [particle]1 windows 7 is fixing the mdi problem, to some degree
15:40 frioux but for us unix guys powershell is still annoying: you can't even resize the terminal emulator
15:40 frioux etc
15:40 Matt-W jnthn: well of course, Perl is full of good ideas :)
15:40 duke_leto joined #perl6
15:41 jnthn Matt-W: Sure, but always nice to see that acknowledged.
15:41 Matt-W yes it is
15:41 Matt-W and perl 6 is clearly full of good ideas because even perl 5 is borrowing them
15:41 * moritz_ hopes that with Perl 6 it will be easy to build something as modular as powershell
15:42 Matt-W if we get Perl 6 on .NET, you can write Powershell modules in it. I think I might explode if that happened.
15:42 jnthn Perl 6 on .Net would be very cool.
15:43 frioux one really cool thing about powershell thoguh is that instead of foo | bar passing the output strings of foo to bar is that it passes *objects* output by foo into bar
15:43 jnthn But hacking on one compiler at a time is enough for me. ;-)
15:43 [particle]1 hopeully slower than rakudo, though :)
15:43 frioux which is really an interesting thought
15:43 Matt-W yes they did it all objecty
15:43 Matt-W it does seem to require an adjustment in thinking
15:43 frioux objecty is the perfect word for it :-)
15:43 Matt-W things can pass a lot more rich information around
15:44 jnthn | in powershell reminded me a little of ==> in Perl 6.
15:44 frioux I haven't seen ==> enough to really grasp it
15:44 [particle]1 i'd like to see a powershell recipe or building parrot
15:44 [particle]1 *for
15:45 jnthn I don't know that any Perl 6 implementation has tried ==> yet, though maybe Pugs has it.
15:45 frioux isn't it like...a lazy pipeline?
15:45 moritz_ pugs: my @a; @a <<== 3, 4; say @a.perl;
15:45 p6eval pugs: OUTPUT«*** ␤    Unexpected "<<=="␤    expecting operator␤    at /tmp/SvEq9lTsVo line 1, column 11␤»
15:45 moritz_ frioux: it is
15:45 frioux so map ==> grep is more like 1 perl 5 thing as things can go all the way through the pipe?
15:45 moritz_ seems like not
15:46 jnthn pugs: my @a = 1,2,3; @a ==> map { $_ * 2 } ==> my @b; say @b;
15:46 p6eval pugs: OUTPUT«*** ␤    Unexpected " map"␤    at /tmp/DbLn71afaB line 1, column 22␤»
15:46 jnthn pugs: my @a = 1,2,3; @a ==> map:{ $_ * 2 } ==> my @b; say @b;
15:46 p6eval pugs: OUTPUT«*** ␤    Unexpected " map"␤    at /tmp/8gKtJKEXMP line 1, column 22␤»
15:46 jnthn meh, seems now.
15:47 grwi joined #perl6
15:47 mberends masak: podserver has 2 blockers on your install: 1. the BSD netcat lacks both -c and -e options, 2. proto gets parrot/rakudo r37000 which is pre $*PROGRAM_NAME
15:47 masak mberends: there's a Rakudo release coming out today.
15:47 masak if you can wait. :)
15:48 mberends that's blocker 2 removed, but blocker 1 remains :(
15:48 mberends there is no known workaround for that
15:48 masak not much I can do about that one, I'm afraid...
15:48 mberends like you said ;)
15:48 jnthn Is it me, or does Rakudo really need socket IO...
15:48 masak anyway, great work. I'll have a closer look at it when I'm free.
15:49 masak jnthn: the latter.
15:49 mberends jnthn, like masak said :)
15:50 Matt-W really need socket IO
15:50 Matt-W Do we even have a spec for it yet?
15:50 jnthn The m's are in alignment on the issue...
15:51 frioux haha, where's moritz_ ?
15:51 moritz_ in Germany
15:51 frioux no but are you in the alignment
15:51 moritz_ about... what?
15:51 frioux needing socket IO
15:52 moritz_ sure.
15:52 moritz_ a lone computer is a sad computer
15:52 mberends "the network is the computer" -- Scott McNealy, well said.
15:53 amoc Where can i get a list of methods in builtin Classes, which are presents now, or are in spec.
15:54 moritz_ amoc: http://perlcabal.org/syn/ follow the S32 links
15:55 Matt-W oooh dear
15:55 Matt-W time to go to my singing lesson
15:55 Matt-W this is going to be a disaster
15:55 amoc oops ! it is in the page i am browsing !;
15:55 Matt-W I'd feel much better if someone implemented socket IO for when I get back :)
15:55 * Matt-W runs
15:56 masak :P
15:56 duke_leto joined #perl6
15:56 jnthn Given I think Parrot list its socked IO...
15:57 duke_leto joined #perl6
15:58 duke_leto joined #perl6
15:59 duke_leto joined #perl6
16:06 donaldh joined #perl6
16:35 maerzhase joined #perl6
16:36 duke_leto joined #perl6
16:41 duke_leto joined #perl6
16:41 duke_leto left #perl6
16:45 amoc is it right that "my UndefinedType $var;" is possible?
16:46 duke_leto joined #perl6
16:50 jnthn amoc: No, that's going to be a compile time error.
16:50 jnthn rakudo: my UndefinedType $var;
16:50 p6eval rakudo f8b6ae: OUTPUT«Malformed declaration at line 1, near "UndefinedT"␤␤current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)␤»
16:50 jnthn std: my UndefinedType $var;
16:50 p6eval std 25907: OUTPUT«##### PARSE FAILED #####␤Malformed my␤In "my" declaration, typename UndefinedType must be predeclared (or marked as declarative with :: prefix) at /tmp/67NGS06Dvy line 1:␤------> [32mmy UndefinedType[31m $var;[0m␤FAILED 00:02 34m␤»
16:51 jnthn But Rakudo needs to steal the error reporting improvements from STD
16:51 duke_leto left #perl6
16:51 masak that's slightly too vague to be rakudobug material... :/
16:51 amoc I see.
16:52 jnthn masak: Yeah.
16:52 amoc from S02: "my Dog $spot by itself does not automatically call a Dog constructor. It merely assigns an undefined Dog prototype object to $spot: ", i was little confused of 'undefiend Dog prototype'
16:52 duke_leto joined #perl6
16:52 masak give me a juicy Null PMC access any day.
16:53 jnthn rakudo: class Foo { method bar { eval('') } }; Foo.bar
16:53 masak amoc: the 'undefined' here only means that the object has not been instantiated.
16:53 p6eval rakudo f8b6ae: OUTPUT«Null PMC access in inspect_str()␤current instr.: 'eval' pc 16074 (src/builtins/control.pir:317)␤»
16:53 jnthn masak: Happy?
16:53 duke_leto left #perl6
16:53 masak jnthn: that one's _old_ :P
16:53 jnthn You're so hard to please.
16:53 jnthn :-P
16:54 masak aye.
16:54 masak but I've been pleased about what I've managed to do with the bug count lately.
16:54 masak high enough to deserve a smiting.
16:54 masak (I've had help, too)
16:55 amoc masak: aha, thank you very much :)
16:55 Psyche^ joined #perl6
16:55 masak amoc: you're welcome. now, go forth and find Null PMC accesses.
16:56 Amir_ joined #perl6
16:57 * amoc boggles as he don't know what Null PMC access is.
16:58 masak amoc: it's an error internal to Parrot.
16:58 masak amoc: because of this, it should (ideally) never be visible in Rakudo.
16:58 masak but often they are. (by mistake)
16:59 masak finding a new such error means a free ticket at the bug tracking system.
17:00 aharoni Hi. I am using Cygwin on XP. I got the latest Parrot and Rakudo from svn/git. Parrot compiled nicely and `make test' succeeded. Rakudo compiled nicely, and `../../parrot perl6.pbc' seems to do the right thing. But `make test' gives me a bunch of messages such as this: "../../parrot perl6.pbc No subtests run" and later "Parse errors: No plan found in TAP output".
17:01 aharoni Rakudo is in parrot/languages/rakudo
17:01 moritz_ aharoni: does ./perl6 -e 'say "hi"' work?
17:01 jnthn That's...interesting. I thought we used the perl6 fakeexecutable for tests these days?
17:01 moritz_ we do, at least for 'make spectest'
17:02 aharoni Nope. perl6.exe doesn't seem to work on Cygwin.
17:02 moritz_ then 'make test' won't work either.
17:03 aharoni this does the right thing: ../../parrot perl6.pbc -e "say 'hi'"
17:03 amoc masak: eer.. so you mean, Null PMC access should not be visible to Rakudo. but it sometimes found?
17:03 aharoni this does nothing: ./perl6 -e "say 'hi'"
17:03 masak amoc: right.
17:06 jnthn aharoni: Nothing as opposed to segfaulting? (Not sure, how you'd check that on cygwin though...)
17:06 amoc i will report when i discover while using rakudo. '')/
17:09 aharoni jnthn: i think that nothing is nothing
17:09 jnthn Hmm.
17:10 jnthn It's odd that it'd fail completely silently.
17:10 jnthn aharoni: Out of curiosity, do you have a libparrot.dll in your Rakudo directory?
17:10 aharoni no
17:10 jnthn If not, does cp ../../libparrot.dll . help
17:11 [particle]1 amoc: try echo %ERRORLEVEL%
17:11 jnthn [particle]1: Ooh, I didn't know that worked on cygwin too. Nice.
17:12 ced-2_ joined #perl6
17:14 aharoni jnthn: there's only ../../libparrot.dll.a. But  `cp ../../cygparrot1_0_0.dll .' made a big change.
17:14 aharoni perl6.exe seems to work now and make test, too.
17:15 aharoni And the tests are successful, too.
17:15 aharoni Thanks.
17:18 jnthn aharoni: Ah, interesting to know. Please if you have time would you file a ticket about this?
17:18 jnthn mailto:rakudobug@perl.org
17:18 aharoni jnthn: OK.
17:18 jnthn Then hopefully we can get it fixed out of the box for cygwin users.
17:24 jferrero joined #perl6
17:24 * amoc sighs and thinks he should study english.
17:32 ejs joined #perl6
17:38 disismt joined #perl6
17:38 disismt joined #perl6
17:41 aharoni I don't get it. I logged in to rt.perl.org/ but i can't see the "file ticket" link. I already filed a few in the past.
17:41 moritz_ aharoni: you didn't.
17:41 [particle]1 you can't submit tickets to rt.perl.org via the web
17:42 [particle]1 only via email. sigh.
17:42 aharoni oh
17:42 moritz_ aharoni: rt.perl.org allows only email submissions
17:42 aharoni it was a couple of years ago...
17:42 moritz_ aharoni: it's rt.cpan.org that allows submissions via the web
17:42 frioux why does it only allow email submissions?
17:42 [particle]1 to cut down on usability.
17:42 [particle]1 or maybe spam.
17:42 frioux hahaha
17:42 frioux well, it certainly makes posting tickets less obvious initially
17:43 aharoni It always confused me badly. Bugs for Rakudo go to rt.cpan.org or to rt.perl.org? Or to both?
17:43 frioux I find rt hard to use in general, but I haven't messed with it much
17:43 [particle]1 cpan is for perl 5
17:44 moritz_ aharoni: rt.perl.org
17:50 |jedai| joined #perl6
18:04 aharoni http://www.rakudo.org/how-to-help is not very helpful with explaining how to file tickets.
18:08 ced-2 joined #perl6
18:13 pugs_svn r25908 | lwall++ | [S12] attempt to clarify type narrowness of multiple constraints, enums, and where clauses
18:14 meppl joined #perl6
18:15 amoc rakudo: .............
18:15 p6eval rakudo f8b6ae: OUTPUT«No exception handler and no message␤current instr.: 'return' pc 15627 (src/builtins/control.pir:39)␤»
18:15 amoc rakudo: say .............
18:15 p6eval rakudo f8b6ae: OUTPUT«No exception handler and no message␤current instr.: 'return' pc 15627 (src/builtins/control.pir:39)␤»
18:16 amoc i don't know why, but rakudo in my system doesn't emits a error when 13 dots.
18:17 * amoc thinks it is time-consuming thought, anyway.
18:18 jnthn TimToady: *sigh*.
18:18 jnthn +All constraints considered in type narrowness.
18:18 jnthn That breaks...a lot of assumptions I'd been making.
18:19 jnthn Before we had a nice clean design whereby anything more complex than a single type became a complex constraint, like a where clause, and thus didn't participate in type narrowness.
18:19 jnthn Including the sigil, since Int @foo was still only one type - Positional[Foo]
18:19 moritz_ jnthn: it was your turn to be offended today :/
18:19 jnthn (A parametric type, sure.)
18:20 jnthn The change's implication that the sigil implies an additional type rather than a parameterized one is misleading.
18:21 maerzhase joined #perl6
18:23 orafu joined #perl6
18:24 M_o_C joined #perl6
18:28 pugs_svn r25909 | lwall++ | clarify container constraint meaning of sigil as requested by jnthn++
18:30 jnthn And seeing that shows another upshot that I hadn't considered yet that makes it even more painful.
18:30 TimToady or maybe the parameter is an anonymous subset type rather than an anonymous role
18:31 jnthn TimToady: I don't even know how to write it reasonably. That looks wrong.
18:31 jnthn Why do you want to allow multiple constraints to be part of the nominal type?
18:32 TimToady nominal type?
18:32 jnthn As in, the one that participates in type narrowness analysis.
18:32 TimToady sometimes the type is anonymous
18:33 jnthn OK, I'm meaning the [insert word you like here] type as opposed to anything provided by where clauses.
18:34 TimToady if you have two constraints they both participate in the type; it's been that way forever
18:34 jnthn That's news to me.
18:34 grwi left #perl6
18:35 jnthn Sensibly I imagine you'd want to write Positional[Foo Bar].
18:35 jnthn Apart from that violates the two terms in a row rule.
18:35 TimToady we get away with it in sigs
18:35 TimToady :(Foo Bar) maybe
18:36 jnthn *sigh*
18:36 ruoso jnthn, I think that can be implemented in terms of subsets
18:36 TimToady mostly I'm trying to straighten out the relationship of values to enums
18:37 ruoso jnthn, :(Foo Bar) means :(Object where Foo & Bar)
18:37 tombom left #perl6
18:37 jnthn ruoso: That is _exactly_ what I've thought it meant for the last year I've been working on Perl 6 type stuff.
18:37 ruoso so what does it mean?
18:37 jnthn Apart from TimToady's recent commit changes that.
18:38 jnthn I'm not really sure.
18:38 ruoso you mean the last or the one before the last?
18:38 jnthn r25908 is the one that makes the big changes
18:38 TimToady the last one is semibogus on the role
18:39 ruoso I don't get it... what changed?
18:39 ced-2_ joined #perl6
18:40 jnthn ruoso: The key line is "+All constraints considered in type narrowness."
18:41 ruoso how does that change the meaning of :(Foo Bar)
18:41 ruoso ?
18:41 jnthn It means it can't be equivalent to :(Object where Foo & Bar)
18:42 jnthn Since where clauses don't contribute to type narrowness.
18:42 ruoso interesting... I don't understand that from that commit...
18:42 TimToady well, it's been that the presence of a where clause contributes
18:43 jnthn TimToady: Not quite to type narrowness.
18:43 TimToady the change is that static where clauses (based on enums) add more narrowness
18:43 jnthn TimToady: You make it sound oh so trivial.
18:43 TimToady that's my job :)
18:44 TimToady I could work it the other way, in fact, for a while I had it that
18:44 ruoso jnthn, what do you mean by "not quite to type narrowwness"
18:44 TimToady subsets are required to do that
18:44 ruoso ?
18:44 ruoso I understood that "all constraints" are considered in type narrowness
18:44 TimToady but I didn't like that because it made "where" in a subset different from "where" in a sig
18:45 * ruoso feels that he is missing something fundamental
18:45 TimToady but parameters have had multiple constraints for a long time
18:45 TimToady here's S02:     sub foo (Num Dog|Cat $numdog, MySig $a ($i,$j,$k,$mousestatus)) {...}
18:46 jnthn I find it vaguely depressing that I've spent the last year carefully thinking through a bunch of the Perl 6 type system stuff, thought I'd got it down to something that would fit together, implemented a lot of it...and now am being told one of the key assumptions I've made was wrong all along.
18:46 TimToady not that STD parses that quite...
18:46 moritz_ wts is a $numdog?
18:47 jnthn TimToady: Yes, I know that's possible. I figured that it implied Any $numdog where { Num & Dog|Cat }
18:47 jnthn erm, probably without the block there.
18:47 jnthn And I don't believe I was the only person working on that assumption.
18:48 ruoso I still don't understand how that assumption was broken
18:48 TimToady but then you can't use where for a tiebreaker, seems...
18:48 jnthn TimToady: You can, it is just like an additional layer of refinement.
18:49 ruoso "Any $numdog where Num & (Dog | Cat)" works as an anon type in my head
18:49 jnthn Or even just another where
18:49 TimToady I'm not actually interested in breaking your assumptions, but rather in getting constraints like 0 to work as expected
18:49 jnthn TimToady: I posted how that could happen quite easy.
18:49 ruoso which means that you can do the "A ~~ B" x "B ~~ A" in tie brake
18:50 TimToady It seemed to depend on the assumption there was only one constraint on the left, but maybe I was misreading
18:50 moritz_ TimToady: what's wrong with desugaring to 0.WHAT $x where 0 ?
18:50 moritz_ then it breaks ties with 'Int $x'
18:50 ruoso you don't need to
18:50 jnthn Right, ties at the type narrowness level, then wins because where 0.
18:51 ruoso the "A ~~ B" x "B ~~ A" solves it
18:51 ruoso 0 ~~ Int × Int ~~ 0
18:51 ruoso 0 is more specific then Int
18:52 TimToady so what about the Tue < Weekday < Day < Int ?
18:52 ruoso in which case the above test fail?
18:52 szabgab rakudo: for (1,2,3,4) -> $a, $b { say $a*$b }
18:52 p6eval rakudo f8b6ae: OUTPUT«2␤12␤»
18:52 TimToady seems like a programmer might expect all those
18:52 szabgab rakudo: for (1,2,3) -> $a, $b { say $a*$b }
18:52 p6eval rakudo f8b6ae: OUTPUT«2␤StopIteration␤current instr.: '_block14' pc 132 (EVAL_18:58)␤»
18:53 szabgab what is the correct behavior when the loop runs out of values half way its parameters ?
18:53 TimToady depends on whether the parameters are declared optional
18:53 jnthn ruoso: For one it means you start sticking things that don't do Abstraction into the dispatcher...
18:54 jnthn ERm
18:54 szabgab rakudo: for (1,2,3) -> $a, $b? { say $a*$b }
18:54 jnthn Sorry, I meant
18:54 p6eval rakudo f8b6ae: OUTPUT«2␤StopIteration␤current instr.: '_block14' pc 132 (EVAL_18:58)␤»
18:54 jnthn Into the type narrowness analysis.
18:54 ruoso jnthn, honestly I still don't see the point on the Abstraction role...
18:54 jnthn This blows away the ability to do to type-based caching of multi dispatch...
18:54 TimToady point
18:54 ruoso specially since 0 doesn'd do Abstraction
18:55 jnthn *exactly*
18:55 TimToady but all values may be used as subset types; that's been in there a long time
18:55 szabgab $b? was optionl, right?
18:55 TimToady right
18:55 jnthn TimToady: Yes, I know. The point that checks on the value were handled by subset types.
18:56 moritz_ szabgab: yes, it's an error
18:56 szabgab yeah!!!
18:56 jnthn (Of course, subsets can do type-based checks too.)
18:56 ruoso jnthn, but... type-based caching kinda fails with dynamic where, doesn't it?
18:56 TimToady I could live with nominal subsets, since they specify their base
18:57 jnthn ruoso: Yes, I know.
18:57 ruoso so, what's the difference? you already had that exception
18:57 jnthn ruoso: That's why we only cache dispatches that we know don't depend on a where clause which checks the value.
18:58 jnthn The difference is that before we had a nice, clean separation of types and values.
18:58 ruoso ah...
18:58 ruoso the Abstraction role
18:58 jnthn Right.
18:58 ruoso hmm...
18:59 ruoso jnthn, so a subset wasn't an Abstraction
18:59 ruoso ?
18:59 jnthn Even down to the point that the typename rule in Rakudo asks "does it do Abstraction"
18:59 jnthn ruoso: If you name a subset, it does.
18:59 ruoso but an anonymous subset doesn''t
18:59 szabgab there was a sudden surge in registration to the Perl6 newsletter I am writing - just in the last 3-4 hours, anyone might have an idea why ?
19:00 moritz_ szabgab: there was a sudden surge in interest in parrot and perl 6 in the last two days...
19:00 jnthn ruoso: I'm not sure if it matters...
19:00 ruoso jnthn, well... that's what we're dealing with here
19:00 jnthn Actually talking about Abstraction is confusing the issue a bit.
19:00 jnthn It's something that you can use as a type.
19:00 Tene joined #perl6
19:00 jnthn Remember that all subsets are based on a refinement of some "base type"
19:01 TimToady can a literal as a constraint mix in Abstraction, maybe?
19:01 szabgab moritz_, that does not explain
19:01 jnthn subset Foo of Int where ... is a refinement on int.
19:01 jnthn *Int
19:01 moritz_ szabgab: and some of your posts are rather high in the perl reddit category... but probably not enough either
19:01 TimToady I've always considered enums to be subsets containing a single value
19:01 moritz_ szabgab: check the logs, look for referrer
19:01 TimToady (for each enum)
19:02 szabgab yeah, I should run an analyzer on the log
19:02 TimToady grr, still ambig, for each enum value
19:02 jnthn TimToady: For each...yes, right.
19:02 jnthn That can work.
19:02 ruoso jnthn, but in that case we still have Any as the base type...
19:02 ruoso I think I'm missing the point
19:03 jnthn I think so too.
19:03 TimToady enums default to Int as base
19:03 jnthn I'll read the diffs and come back with something more coherent.
19:03 jnthn (As in, re-re-read them.)
19:03 TimToady I can give back that signature "where" is the same as subset where
19:04 * ruoso always seen that way
19:04 TimToady and require that for a where to participate in the official (possibly anon) type, it must be named
19:04 TimToady via a subset
19:04 ruoso but I never thought about using an Abstraction role...
19:04 TimToady which gives its provenance
19:04 ruoso as I use a more prototype-based oo... every value is a type
19:04 jnthn +All constraints considered in type narrowness.
19:04 jnthn +That is, these are equivalently narrow:
19:04 jnthn +
19:04 jnthn +    Foo Bar @x
19:04 jnthn +    Bar Foo @x
19:05 jnthn The up-shot of this is what's bothering me most.
19:05 ruoso I still see that as "Any where Foo & Bar & Positional"
19:05 jnthn Which is wrong, but anyway... &
19:06 frioux what *does* it mean?
19:06 TimToady Foo & Bar should be more specific than either Foo or Bar, but rewriting as Any makes them less specific
19:07 mberends joined #perl6
19:07 ruoso TimToady, but it's not simply Any
19:07 ruoso the type is the complete sentence
19:08 ruoso and tiebrake works with the "A ~~ B vs B ~~ A" test
19:08 TimToady but Any where is still less tight than either Foo or Bar
19:08 ruoso is it?
19:08 TimToady s/tight/narrow/
19:08 ruoso how so?
19:08 TimToady because a where only epsilons the narrowness it would have otherwise
19:09 ruoso "Any where Foo & Bar" is narrower than "Foo" or "Bar"
19:09 TimToady not to jnthn's multi sorter, I suspect
19:10 ruoso rakudo: role Foo {}; role Bar {}; subset Bla of Any where Foo & Bar; say Bla ~~ Bar; say Bar ~~ Bla;
19:10 p6eval rakudo f8b6ae: OUTPUT«0␤0␤»
19:11 ruoso hmmm... bad example, actually
19:11 ruoso since the subset requires both roles...
19:11 ruoso rakudo: role Foo {}; role Bar {}; subset Bla of Any where Foo | Bar; say Bla ~~ Bar; say Bar ~~ Bla;
19:11 p6eval rakudo f8b6ae: OUTPUT«0␤1␤»
19:14 ZuLuuuuuu joined #perl6
19:14 DemoPhreak joined #perl6
19:14 pugs_svn r25910 | putter++ | [elf_h] Sketched in support for multiple calling apis.  Left disabled.
19:14 pugs_svn r25910 | putter++ | So someone can add named vars, closures, etc.
19:14 pugs_svn r25910 | putter++ | Subs merely checking that they're off fastpath (positional args) is a 20% speed hit (for parse-cached self-compilation).  5% for the SSA version.
19:19 TimToady so enums and constant declarations are doing ::Tue := 2 but Abstraction, or some such, I guess
19:19 ruoso TimToady, ok... I got it.... "Any where ..." is the wrong approach
19:19 TimToady not sure how much the abstraction is buying us, since it's more an attribute of the symbol table entry than the object
19:20 TimToady I'm sure there's some happy medium in here somewhere, we just have to negotiate a little :)
19:20 ruoso :(Foo Bar @x) would mean an anonymous role that does Foo does Bar does Positional
19:21 TimToady not exactly
19:21 ruoso rakudo: role Foo {}; role Bar {}; role SigType does Foo does Bar {}; say SigType ~~ Foo; say Foo ~~ SigType;
19:21 TimToady Foo and Bar are parameters to the Positional role
19:21 p6eval rakudo f8b6ae: OUTPUT«0␤0␤»
19:21 TimToady somehow
19:21 TimToady that's what jnthn++ was remarking on earlier
19:22 ruoso hmm... that's surprising
19:22 TimToady looks a bit buggy, also the 0 0 case earlier with &
19:22 ruoso I'd expect "@x of Foo" or some sort...
19:22 mberends joined #perl6
19:22 Khisanth joined #perl6
19:22 simcop2387 joined #perl6
19:22 wolverian joined #perl6
19:22 bacek joined #perl6
19:22 araujo joined #perl6
19:22 c1sung joined #perl6
19:22 pugs_svn joined #perl6
19:22 TimToady which means Positional[Foo] in some form or other
19:23 ruoso I wouldn't expect Foo @x to determine the type of the items in @x
19:23 ruoso but to be a constraint on the type of positional
19:23 ruoso not the type of items inside the positional
19:23 TimToady that's what positional uses the parameter for!!!
19:23 ruoso I know... I know...
19:24 ruoso I mean..
19:24 ruoso :(Foo @bar) means a positional that also does Foo
19:24 ruoso in my head
19:24 TimToady well, then your head is on sideways
19:25 TimToady my Foo @array has always been an array of Foos
19:25 ruoso is it?
19:25 * ruoso always misread that then
19:25 ruoso I thought it would require "my Array of Foo @array"
19:26 nihiliad joined #perl6
19:26 ruoso so, how do you apply a constraint on the type of Positional?
19:26 TimToady that would be AoA of Foo
19:27 TimToady my @a is StrangeArray[...]
19:27 ruoso but that doesn't work if you put @a into a lvalue of a bind
19:27 TimToady is sets the container type, not the element type like of
19:27 ruoso rakudo: my Int $a; $a := "Hello";
19:28 p6eval rakudo f8b6ae: RESULT«"Hello"»
19:28 ruoso that is wrong...
19:28 ruoso isn't it?
19:29 TimToady well, it's certainly bad style
19:29 TimToady but := replaces the container
19:29 TimToady see S02:1079 for is vs of
19:30 ruoso ok... I think I see the point now... assignment always copy the elements...
19:31 TimToady it would be possible for binding to complain when it notices the type changing from the declared type, but it's a different check than for assignment
19:31 ruoso right right...
19:32 ruoso pugs: role Foo {}; role Bar {}; role SigType does Foo does Bar {}; say SigType ~~ Foo; say Foo ~~ SigType;
19:32 p6eval pugs: OUTPUT«1␤␤»
19:32 ruoso pugs is right here I think... it seems like a rakudobug
19:32 TimToady the inside-out of that may be why the subset where Foo & Bar didn't work
19:33 ZuLuuuuuu left #perl6
19:33 TimToady which should imply does Foo
19:33 ruoso TimToady, not if you see it as a subset of Any
19:35 ewilhelm how is validation on attribute mutators done? (and where is it documented?)
19:35 ewilhelm I can't seem to find that in S12.
19:36 ewilhelm something like:  foo should be between 0 and 50, so $thing.foo = 75; is an error
19:36 [particle]1 there's an ip address example, i think
19:36 [particle]1 oh, maybe that's in S05
19:37 ruoso TimToady, you said thinking it as an anonymous role didn't solve the issue...
19:37 ruoso why?
19:38 [particle]1 spack: 255
19:38 [particle]1 maybe it's 256... i don't have a perl6doc checkout atm :(
19:38 TimToady just that my role def does Foo; does Bar is an | rather than an &, so it probably needs subset
19:40 ruoso pugs: role Foo {}; role Bar {}; role SigType does Foo does Bar {}; subset Really of SigType where Foo&Bar; say Really ~~ Foo; say Foo ~~ Really;
19:40 p6eval pugs: OUTPUT«*** ␤    Unexpected ";"␤    expecting "::" or signature value␤    Variable "&Bar" requires predeclaration or explicit package name␤    at /tmp/f7d5N1RmXS line 1, column 100␤»
19:40 ruoso pugs: role Foo {}; role Bar {}; role SigType does Foo does Bar {}; subset Really of SigType where Foo & Bar; say Really ~~ Foo; say Foo ~~ Really;
19:40 p6eval pugs: OUTPUT«*** ␤    Unexpected " Bar"␤    expecting "::"␤    at /tmp/zKikA8P4hT line 1, column 98␤»
19:40 TimToady ewilhelm: see S06:293
19:40 ruoso pugs: role Foo {}; role Bar {}; role SigType does Foo does Bar {}; subset Really of SigType where { $_ ~~ Foo & Bar }; say Really ~~ Foo; say Foo ~~ Really;
19:40 p6eval pugs: OUTPUT«*** No such subroutine: "&Really"␤    at /tmp/Y2k4r6vfw2 line 1, column 118-131␤»
19:41 ruoso TimToady, so a subset of the anonymous role?
19:41 TimToady maybe, my brain is running out of nutrients
19:42 ruoso but in that case... I think it is never going to be a tie
19:42 ruoso hmm...
19:42 ruoso actually it is..
19:42 ruoso pugs: role Foo {}; role Bar {}; role SigType does Foo does Bar {}; subset Really of SigType where { $_ ~~ Foo && $_ ~~ Bar }; say Really ~~ Foo; say Foo ~~ Really;
19:42 p6eval pugs: OUTPUT«*** No such subroutine: "&Really"␤    at /tmp/e9dYpTJuHi line 1, column 125-138␤»
19:42 ruoso pugs: role Foo {}; role Bar {}; role SigType does Foo does Bar {}; subset Really of SigType where { $_ ~~ Foo && $_ ~~ Bar }; say Foo.does(Really); say Really.does(Foo);
19:42 p6eval pugs: OUTPUT«*** No such subroutine: "&Really"␤    at /tmp/Z7KUQYW3wc line 1, column 134-140␤»
19:43 ruoso it seems pugs doesn't support subsets very well
19:43 ruoso rakudo: role Foo {}; role Bar {}; role SigType does Foo does Bar {}; subset Really of SigType where { $_ ~~ Foo && $_ ~~ Bar }; say Foo.does(Really); say Really.does(Foo);
19:43 p6eval rakudo f8b6ae: OUTPUT«Null PMC access in getprop()␤current instr.: '!CREATE_SUBSET_TYPE' pc 17211 (src/builtins/guts.pir:213)␤»
19:44 ruoso rakudo: role Foo {}; role Bar {}; role SigType does Foo does Bar {}; subset Really of SigType where Foo & Bar; say Foo.does(Really); say Really.does(Foo);
19:44 p6eval rakudo f8b6ae: OUTPUT«Null PMC access in getprop()␤current instr.: '!CREATE_SUBSET_TYPE' pc 17211 (src/builtins/guts.pir:213)␤»
19:45 * ruoso submits the second rakudobug
19:46 TimToady it looks like nothing in the test suite actually uses multiple named constraints in front of the param var
19:47 TimToady maybe we can have a compromise for 6.0.0 that allows only one pre-constraint, and counts all post-constraints as epsilons
19:48 TimToady and reserve the multiple constraint syntax for future expansion
19:49 ruoso the problem is really in creatig the anon type and then creating the subset of it
19:49 TimToady let me run a STD test over t/ and see if it finds any cases of multiple <type_constraint>
19:49 kidd joined #perl6
19:49 TimToady well, and figuring the narrowest actual that encompasses, so we don't end up with accidental Any
19:49 ruoso the problem was about generalizing "Foo Bar" as "Any where ..."
19:49 TimToady yes
19:50 ruoso where it should declare a new anon type instead
19:50 TimToady but we can maybe punt on the issue for 6.0.0
19:50 TimToady and it sounds like punting for now is the conservative thing to do
19:50 ruoso lets wait for jnthn  to come back
19:50 TimToady if he ever does :)
19:50 ruoso I think he can solve that with an anon role
19:51 TimToady meanwhile, I'll look for any usage of Foo Bar $x
19:51 frioux what is that supposed to mean currently?
19:51 ruoso TimToady, it is indeed usefull
19:52 moritz_ never seen that syntax in the test suite
19:52 TimToady that we might allow sub x (Foo $x) but not sub x (Foo Bar $x)
19:52 TimToady for now
19:52 ruoso IO::Readable IO::Writeable $foo
19:52 TimToady easy to test, just remove the + on <type_constraint>
19:52 frioux interesting
19:52 ruoso creating an explicit role fails in that case
19:53 TimToady and then we can look to see if it can be rewritten IO $foo where IO::R & IO::W for now
19:53 TimToady anyway, I'll know the damage in half an hour
19:54 TimToady lunch shower $larry
19:56 Diederich joined #perl6
19:58 ruoso in fact, even the anon role fails
20:01 ruoso hmmm/....
20:02 ruoso what if we support using plain junctions as types
20:02 ruoso ?
20:02 ruoso Foo & Bar $foo
20:02 ruoso it's cool because we allow all the junction types...
20:02 ruoso and then it behaves like a regular junction when doing the "A ~~ B x B ~~ A" test...
20:04 TimToady works for constraints, but not for storage types
20:04 TimToady lunch &
20:04 * Exodist makes a note to remove 'lunch' from his IRC ping-me keyword list.
20:05 icwiener joined #perl6
20:07 * frioux wonders why it was in Exodist's ping-me list in the first place :-)
20:07 ruoso TimToady, I think constraints is already a big deal....
20:08 Exodist frioux: I use irc at my office, an we use it to talk about going out to lunch every day, and I have it ping me so I don't miss out on office lunches.
20:09 frioux oooooh
20:09 frioux I should get my coworkers to do that
20:09 frioux although we only go out once a week and typically just talk face to face about where to go
20:10 Exodist my office has a strange taboo about speaking aloud in the office space.
20:10 Exodist we have conference rooms for that
20:10 frioux oh.  Well I'd rather talk than irc :-)
20:10 Exodist and to get there we ping eachother in irc.
20:10 frioux meeting&
20:11 * ruoso would like to work in such a quiet office
20:11 ruoso usually the office I work on has all kinds of noises
20:22 TimToady hah, not a single instance of two constraints in front of a parameter
20:23 TimToady jnthn: for now we can restrict to a single named type in front, I suspect
20:24 TimToady so I will mark everything I added today in S12 as post-6.0.0 conjectural
20:25 TimToady but we still need to allow (0) as an autodeclared subset of Int somehow
20:35 pugs_svn r25911 | lwall++ | mark recent remarks as only for post-6.0.0
20:36 TimToady jnthn: you can come back now  :)
20:40 * TimToady apologizes for his reality-distortion field
20:44 pugs_svn r25912 | lwall++ | [STD] disallow multiple type_constraints in front of param_var for jnthn++
20:44 pugs_svn r25912 | lwall++ | [STD] remove prefix:<int>
20:44 pugs_svn r25912 | lwall++ | [STD,Cursor] more cleanup of sequential match output
20:44 pugs_svn r25912 | lwall++ | [viv] preliminary work on --p5 output of viv
21:09 nihiliad joined #perl6
21:18 ejs joined #perl6
21:28 wknight8111 joined #perl6
21:29 * jnthn breathes a sigh of relief
21:29 moritz_ ;-)
21:29 jnthn TimToady: Thanks. I was despairing...
21:30 jnthn TimToady: Also, disallowing multiple constraints in Perl 6.0.0 is good, means we do have a path to introduce them later.
21:33 ced-2 joined #perl6
21:42 ced-2_ joined #perl6
21:43 moritz_ rakudo: class A is A { }; say "alive";
21:43 p6eval rakudo f8b6ae: OUTPUT«Can't be own parent␤current instr.: '!meta_trait' pc -91305 ((unknown file):-1)␤»
21:43 moritz_ rakudo++
21:46 moritz_ rakudo: role A does A
21:46 p6eval rakudo f8b6ae: OUTPUT«Unable to parse role definition at line 1, near ""␤␤current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)␤»
21:46 moritz_ rakudo: role A does A { }; say 'alive'
21:46 p6eval rakudo f8b6ae: OUTPUT«alive␤»
21:47 moritz_ shouldn't that be an error as well?
21:47 pugs_svn r25913 | moritz++ | [t] move self_inheritance.t to spec/
21:48 mncharity joined #perl6
21:49 jnthn moritz_: Well, the spec says a role can't conflict with itself, but that may be stretching the concept just a little too far... ;-)
21:50 pugs_svn r25914 | moritz++ | [t] remove redundant test
21:50 amoc joined #perl6
21:51 pugs_svn r25915 | moritz++ | [t] remove a test which TimToady++ declared "totally bogus" (and I agree ;-)
21:54 pugs_svn r25916 | moritz++ | [t] moved a test to integration/
21:54 mncharity so, I have a p5 method which contains  $s =~ s/$pat/$replace/g; .  Which is fine... except for that odd case where  return(do{$o->m($p,$r)})  works...  but return(do{my $namedoesntmatter; $o->m($p,$r)})  doesn't.  sigh.  5.10.0.
21:54 cspencer joined #perl6
21:55 cspencer is anybody here familiar with rakudo's inline PIR?
21:55 moritz_ cspencer: just a tiny bit
21:55 mncharity from numerous past burns, I look suspiciously at $s =~ s/$pat/$replace/g; .  any thoughts on a form of it which might be less likely to tickle p5 implementation bugs?
21:55 cspencer i'm trying to get at a parameter than i've passed into the P6 sub
21:56 cspencer but i'm not sure how to do that from the PIR
21:56 moritz_ cspencer: with find_lex
21:56 cspencer ah ok
21:56 cspencer thanks :)
21:57 moritz_ rakudo: my $x = 5; say Q:PIR { %r = find_lex '$x' };
21:57 p6eval rakudo f8b6ae: OUTPUT«5␤»
21:58 cspencer moritz_: thanks, i should have realized that myself :)
21:58 moritz_ cspencer: I also needed to ask jnthn++ first, but I did it yesterday already ;-)
21:59 moritz_ that said, you can use `self' in PIR just like in Perl 6
21:59 mncharity /me notes echoing silence.  sigh.
21:59 moritz_ mncharity: what do you want to hear except "file perl bug"? ;-)
22:03 pugs_svn r25917 | moritz++ | [t] merged rules_with_embedded_parrot.t into no-capturing.t
22:05 moritz_ rakudo: my @a; @a[5] ~~ /nothing/; say "alive"
22:05 p6eval rakudo f8b6ae: OUTPUT«Use of uninitialized value␤alive␤»
22:06 mncharity moritz_: "anyone: nothing comes to mind"?
22:09 pugs_svn r25918 | moritz++ | [t] merge smartmatch_autovivifies.t into autovivification.t
22:10 moritz_ rakudo: my @a; @a[5] ~~ /nothing/; say @a.perl;
22:10 p6eval rakudo f8b6ae: OUTPUT«Use of uninitialized value␤Null PMC access in isa()␤current instr.: 'parrot;List;!flatten' pc 6213 (src/classes/List.pir:253)␤»
22:11 lucs_ joined #perl6
22:11 pugs_svn r25919 | moritz++ | [t/spec] forgot to declare variable; fudged for rakudo
22:14 jnthn moritz_: We can has more passing tests?
22:14 moritz_ jnthn: one or two more
22:20 donaldh joined #perl6
22:23 pugs_svn r25920 | moritz++ | [t/spec] merge attribute_of_return_value.t into instance.t
22:25 moritz_ std: my $x = 42; $$$$$$x
22:25 p6eval std 25920: OUTPUT«ok 00:02 35m␤»
22:27 pugs_svn r25921 | moritz++ | [t] remove tests which refer to non-existant `Rul'
22:27 jnthn Rul?
22:27 moritz_ Rul.
22:27 moritz_ no shit, sherlok
22:28 * jnthn can't quite imagien what Rul woulda been...
22:29 moritz_ jnthn: some internal Rule object, it seems
22:30 pugs_svn r25922 | moritz++ | [t] merge passig-arrays-to-functions.t into passing-arrays.t
22:32 pugs_svn r25923 | moritz++ | [t] move parsing_bool.t to spec/, clean up wrong try { } usage
22:38 pugs_svn r25924 | moritz++ | [t/spec] merge shift-from-function-array-arg.t into slurpy-params.t
22:39 moritz_ pugs: my $a = sub { 1 }; my $b; sub c($code) { return 1 if $code and $code(); return 0 }; c($b)
22:39 p6eval pugs: OUTPUT«*** Cannot cast from VUndef to Pugs.AST.Types.VCode (VCode)␤    at /tmp/InWC3sXiPr line 1, column 54-71␤»
22:39 moritz_ rakudo: my $a = sub { 1 }; my $b; sub c($code) { return 1 if $code and $code(); return 0 }; c($b)
22:39 p6eval rakudo f8b6ae: RESULT«0»
22:42 pugs_svn r25925 | moritz++ | [t] mrege cast_undef_shortcircuit.t into short-circuit.t
22:42 moritz_ perl6: my @a = 1..5; @a»++; say @a.perl;
22:42 p6eval elf 25924: OUTPUT«2␤»
22:42 p6eval ..pugs: OUTPUT«\(1, 2, 3, 4, 5)␤»
22:42 p6eval ..rakudo f8b6ae: OUTPUT«Statement not terminated properly at line 1, near "\x{bb}++; say @"␤␤current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)␤»
22:43 pugs_svn r25926 | moritz++ | [t] remove test that's already present in S03-operators/hyper.t
22:44 yahooooo joined #perl6
22:48 pugs_svn r25927 | moritz++ | [t/spec] rakudo doesn't do Int() yet, so use a different way to generate a
22:48 pugs_svn r25927 | moritz++ | random integer
22:48 nihiliad joined #perl6
22:49 nihiliad left #perl6
22:50 pugs_svn r25928 | moritz++ | [t] .values/.eigenstates on junctions is gone
22:51 pugs_svn r25929 | moritz++ | [t] .pick is not a method in junction
22:52 pugs_svn r25930 | moritz++ | [t] remove another test that relies on junction.pick
22:52 lucs_ meh
22:52 dalek rakudo: c26021b | (Moritz Lenz)++ | t/spectest.data:
22:52 dalek rakudo: we pass the (newly moved) parsing-bool.t
22:52 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/c​26021b5ff4b8dd1216095ff97455c6d9c6e4b88
22:54 pugs_svn r25931 | moritz++ | [t] merge array_deref.t into autothreading.t
22:57 pugs_svn r25932 | moritz++ | [t] merge junction/s09eg.t into autothreading.t
23:02 bacek_ joined #perl6
23:04 d4l3k_ joined #perl6
23:04 ewilhelm yay!  TPF is in Google Summer of Code this year:  http://socghop.appspot.com/org​/show/google/gsoc2009/dukeleto
23:06 pugs_svn r25933 | lwall++ | make as trait consistent with as/of in S02
23:06 pugs_svn r25934 | moritz++ | [t] removed some files in unspecced/, moved one to examples/ instead
23:08 pmichaud2 joined #perl6
23:16 fridim_ joined #perl6
23:19 moritz_ docs/notes/ is full of interesting documents
23:20 skids joined #perl6
23:27 pugs_svn r25935 | moritz++ | [t/spec] fix plan in autothreading.t
23:32 pugs_svn r25936 | putter++ | [elf_h] Enable dynamic Call/Apply api switching.
23:32 pugs_svn r25936 | putter++ | Speed cost of ~5% for parse-cached self-compilation.  20% bloat.
23:32 pugs_svn r25936 | putter++ | A perl 5.10.0 bug is sometimes tickled, so anyone using it should expect flakiness.
23:33 moritz_ rakudo: sub f($str) { eval $str }; my $x = 5; f('say $str');
23:33 p6eval rakudo c26021: OUTPUT«say $str␤»
23:34 moritz_ wtf?
23:34 jnthn huh?
23:35 TimToady I don't see any explanation for it
23:35 jnthn moritz_: Oh. I do.
23:35 TimToady unless eval is implemented as no-op...
23:35 moritz_ TimToady: even then it shouldn't execute a say()
23:36 TimToady hmm
23:36 moritz_ what *should* it do? complain that $str is not in scope inside the eval?
23:36 TimToady but it is in scope...
23:36 jnthn You're evaling the code say $str. And $str is the string you're evaling.
23:36 mncharity err, why isn't that correct behavior?
23:36 moritz_ argl
23:36 TimToady right
23:37 moritz_ rakudo: sub f($str) { eval $str }; my $x = 5; f('say $x');
23:37 TimToady bleah
23:37 p6eval rakudo c26021: OUTPUT«5␤»
23:37 moritz_ that's what I wanted to test
23:37 moritz_ is that correct?
23:37 jnthn Yes.
23:37 TimToady I don't think that's correct
23:37 jnthn ($x is in the outer scope of the point where you eval the string)
23:38 TimToady oh, yeah
23:38 moritz_ jnthn: only in the outer dynamic scope
23:38 mncharity rakudo: sub f($str) { eval $str }; {my $x = 5; f('say $x');}
23:38 TimToady retroactively
23:38 p6eval rakudo c26021: RESULT«undef»
23:38 TimToady eval sees the scope as it was at the block's CHECK time
23:38 TimToady so it sees the post-declared $x
23:38 TimToady so it's correct
23:39 TimToady has nothing to do with the fact that 'say $x' comes after the my
23:39 jnthn .oO( phew! )
23:39 mncharity (aka... audrey didn't want to do scope analysis so everything scopes to block level... ;-)
23:39 TimToady rakudo: sub f($str) { eval $str }; f('say $x'); my $x = 5;
23:39 moritz_ somehow my brain just had a phase transition to liquid
23:39 p6eval rakudo c26021: RESULT«5»
23:40 jnthn How does that one work?!
23:40 TimToady yes, she argued me into that, and I've been glad of it ever since
23:40 TimToady same way
23:40 mncharity :)
23:40 jnthn TimToady: Is that correct?
23:40 TimToady yes, it is
23:40 TimToady the eval knows the lexical pad it's launched from
23:40 mncharity no  my $x = $x;   sniff.
23:41 TimToady and by time the eval happens, that lexical pad contains my $x
23:41 TimToady and $x has been initialized to 5
23:41 TimToady because of the sub
23:41 moritz_ and it rescues eval_dies_ok in the test suite ;-)
23:41 moritz_ audreyt++
23:41 TimToady rakudo: eval('say $x'); my $x = 5;
23:41 p6eval rakudo c26021: RESULT«5»
23:42 TimToady now that one is a bit more problematic
23:42 moritz_ but still correct?
23:42 TimToady rakudo: eval 'say $x'; my $x = 5;
23:42 p6eval rakudo c26021: RESULT«5»
23:42 TimToady at the point it executes the eval, it should not have initialized $x yet
23:42 TimToady so it should be undef, I think
23:43 jnthn TimToady: I agree its wrong, but I don't see why f('eval $x'); my $x = 4 is right.
23:43 TimToady something's cheating on the init of the my, I suspect
23:43 jnthn (to print 4)
23:43 TimToady oh right, same problem
23:44 jnthn Since at that point we didn't do the assignment.
23:44 moritz_ TimToady: isn't 'my $x = 4' allowed to do the initalization at compile time?
23:44 TimToady no
23:44 jnthn I'm a tad confused how Rakudo is getting that wrong...well, rakudobug.
23:44 TimToady it's supposed to happen at normal execution time
23:46 TimToady rakudo: my $x = 42; say $x; my $x = 5
23:46 p6eval rakudo c26021: OUTPUT«Redeclaration of variable $x␤42␤»
23:46 TimToady that's supposed to be a warning, not an error
23:46 TimToady oh, it is
23:46 TimToady we got the 42
23:46 TimToady hmm
23:47 TimToady rakudo: my $x = 42; eval 'say $x'; my $x = 5
23:47 p6eval rakudo c26021: OUTPUT«Redeclaration of variable $x␤42␤»
23:47 TimToady rakudo: my $x; eval 'say $x'; my $x = 5
23:47 p6eval rakudo c26021: OUTPUT«Redeclaration of variable $x␤Use of uninitialized value␤␤»
23:47 TimToady rakudo: eval 'say $x'; my $x = 5
23:47 p6eval rakudo c26021: RESULT«5»
23:47 TimToady curious
23:47 amoc '~'
23:49 mncharity (I note in passing that I was pleasantly surprised by the low overhead of  p5 do{ ...expr... }  blocks.  (except for the part of them not always working of course.))
23:49 jnthn rakudo: say 1; my $x = say 2;
23:49 p6eval rakudo c26021: OUTPUT«1␤2␤»
23:49 jnthn rakudo: say 1; say $x; my $x = say 2;
23:49 amoc ops
23:49 p6eval rakudo c26021: OUTPUT«1␤Null PMC access in isa()␤current instr.: 'parrot;List;!flatten' pc 6213 (src/classes/List.pir:253)␤»
23:49 amoc rakudo: say $x; my $x=4
23:49 p6eval rakudo c26021: OUTPUT«Null PMC access in isa()␤current instr.: 'parrot;List;!flatten' pc 6213 (src/classes/List.pir:253)␤»
23:50 mncharity end of quarter almost here.  it might be interesting to do some sort of p6 status report(s).
23:50 moritz_ now that should complain at compile time about $x not being declared
23:50 jnthn Rakudo bug for sure.
23:50 mncharity g'night all &
23:50 moritz_ mncharity: send me one, and I'll put it into my next Tidings post (soon to come)
23:50 mncharity @todo.push
23:50 lambdabot Unknown command, try @list
23:51 mncharity lol
23:51 pugs_svn r25937 | moritz++ | [t/spec] test for declaring variables after an eval() they are used in
23:52 amoc sorry, but may anyone please explain what 'capture' or 'subscript' is ? i cannot clarify from reading Synopsises.
23:53 moritz_ amoc: subscript is a postfix operator like @x[4] or %h{$foo}, I think
23:53 amoc Captures are sort of references, %x and @x will bound to Capture, Capture Obj is function call arguments... (the explanations are not match in my head)
23:54 moritz_ amoc: http://svn.pugscode.org/pugs​/docs/Perl6/FAQ/Capture.pod
23:54 aindilis joined #perl6
23:54 moritz_ maybe a bit out of date, but it should still capture (sic) the idea
23:55 TimToady yes, ignore the part about using $ to get the invocant back out
23:55 TimToady the invocant is now always just the first positional argument
23:55 * jnthn is glad to see he can mostly have the weekend "off"
23:57 jnthn Will be hacking on Rakudo tomorrow, BTW. :-)
23:57 amoc er..
23:57 pugs_svn r25938 | lwall++ | [STD] "categorize" nouns and values for better extensibility
23:58 * jnthn is happy about this, because the last couple of days saw him trying to pile more stuff into a 3,000 line ASP file...
23:59 amoc moritz_: what is (sic) ?

| Channels | #perl6 index | Today | | Search | Google Search | Plain-Text | summary

Perl 6 | Reference Documentation | Rakudo