Camelia, the Perl 6 bug

IRC log for #perl6, 2009-03-11

Perl 6 | Reference Documentation | Rakudo | Niecza | Specs

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

All times shown according to UTC.

Time Nick Message
00:00 s1n it would be nice if i github notified me of these types of things
00:01 wayland76 Agreed, and that's why pmichaud *also* requires a message via RT
00:03 s1n wayland76: okay so he said squash the commit, send a pull request, and then submit to RT?
00:03 s1n submit the whole patch or a link?
00:08 wayland76 The patch, according to the backlog
00:08 wayland76 "patches to RT make it easier to reply with suggestions for fixes", 20:58 yesterday
00:10 s1n ahh okay, that helps
00:10 s1n basically, i had no idea anyone had even seen any of the commits, so i stopped
00:10 s1n github-- for not sending a notice
00:11 wayland76 If you can tell me what command to run to get the diff, at what point in the patch process, that would be great (so I can add it to the doco)
00:11 wayland76 Agreed, github--
00:11 wayland76 I went around looking for notification options, and mine already seem to be turned on
00:11 wayland76 @karma github
00:11 lambdabot github has a karma of -1
00:11 wayland76 @karma git
00:11 lambdabot git has a karma of 3
00:11 s1n wayland76: git diff will create a diff just like svn diff used to
00:12 s1n i have to go out for a run
00:12 s1n back in an hour&
00:13 wayland76 but at what point in the process (answer in an hour :) )
00:37 frooh_ s1n: did it put a message in your github mailbox at all?
00:39 frooh_ anyone home?
00:39 wayland76 no-one here but us chickens :)
00:40 frooh_ he must be thesising
00:40 wayland76 no, exercising.  See his second-last message :)
00:40 frooh_ ah, ok
00:41 wayland76 frooh_: can you tell me at what point in the process the diff needs to be run, so that it's being run against the current head?
00:41 frooh_ so we need some way to tell people that patches (github push requests) have been reviewed
00:41 wayland76 ...and did you see http://osteele.com/archive​s/2008/05/my-git-workflow
00:41 frooh_ wayland76: I am not sure I follow your question
00:41 wayland76 frooh_: That's right, but github doesn't have any options for that that I can see
00:42 wayland76 frooh_: Look at the last line of http://wiki.github.com/rakudo/​rakudo/steps-to-create-a-patch and tell me where it belongs :)
00:42 wayland76 (or update it yourself, if you prefer :) )
00:43 frooh_ ok
00:43 frooh_ so we need to submit real patches to RT
00:43 wayland76 That's right.
00:43 wayland76 (btw, with the osteele link, look at the pictures -- that's what I like about it :) )
00:44 frooh_ ok, I figured out how to do that yesterday, but I didn't know if we wanted to actually move away from RT or not
00:44 frooh_ so I will add instructions on how to submit a patch generated by git to RT
00:44 frooh_ now how does one submit a patch to RT?
00:45 wayland76 1) Get an account
00:45 wayland76 2) Create a new ticket, with patch attached :)
00:45 frooh_ ok...
00:45 frooh_ so url? :-)
00:46 wayland76 The perl6 queue is at http://rt.perl.org/rt3/Search/Results.htm​l?Query=Queue%20%3D%20'perl6'%20AND%20(St​atus%20%3D%20'open'%20OR%20Status%20%3D%2​0'new'%20OR%20Status%20%3D%20'stalled')
00:46 wayland76 (urgh!)
00:46 frooh_ awesome url there guys...
00:46 wayland76 Wait, I'll get something better
00:46 frooh_ too late
00:46 wayland76 http://rt.perl.org/rt3/
00:46 wayland76 ...and then click on "perl6" :)
00:47 wayland76 Why too late?
00:47 frooh_ I already opened your link
00:47 frooh_ with the awesome pseudo sql inside of it
00:48 frooh_ ok, I could never figure out where RT was and whatnot, so this may be helpful to others
00:48 wayland76 Yeah, it usually takes me a few minutes of googling/scrabbling when I want it too :)
00:48 frooh_ wow
00:48 frooh_ ok
00:48 frooh_ so I founed pmichaud's comments on my patch
00:48 frooh_ it is extremely not obvious
00:49 wayland76 Admittedly, I only interacted with 2 or 3 rakudobugs :)
00:49 wayland76 No?
00:49 frooh_ yeah
00:49 frooh_ you have to like, go to your personal repo
00:49 wayland76 Is it a little "1" with an envelope next to it?
00:49 frooh_ find the branch you asked to submit
00:49 wayland76 oh, that's bad
00:49 wayland76 github--
00:49 frooh_ and and then it's got a message icon next to it
00:50 frooh_ it's REALLY bad
00:50 frooh_ well, in general they do things nicely
00:50 frooh_ but honestly guys?
00:50 frooh_ couldn't they make it a message to the user?
00:50 frooh_ AND an email?
00:51 frooh_ http://support.github.com/sear​ch/discussions?q=pull+request
00:52 frooh_ I'm gonna ask them about this
00:52 eternaleye joined #perl6
00:57 nipotan left #perl6
00:59 frooh_ http://support.github.com/discussions/site/​338-pull-request-comments-message-and-email
00:59 frooh_ feel free to add your own comments
01:09 hercynium joined #perl6
01:17 gfldex joined #perl6
01:18 justatheory joined #perl6
01:18 frooh_ joined #perl6
01:18 gfldex_ joined #perl6
01:18 cognominal joined #perl6
01:18 ilogger2 joined #perl6
01:18 rhr joined #perl6
01:18 frooh joined #perl6
01:18 frooh how on earth do I make a ticket on rt?
01:19 bacek_ frooh: mailto:rakudobug@perl.org
01:19 frooh ok, so does someone actually need a login to make a ticket then?
01:22 bacek_ frooh: no. Just send mail
01:22 frooh sweet
01:22 frooh thanks again bacek_
01:25 bacek_ rakudo: say reduce -> $a, $b?, $c? { $a + ($b//0) + ($c//0) }, 1,2;
01:25 p6eval rakudo 0c893b: OUTPUT«3␤»
01:49 frooh rakudo: 1
01:49 ujwalic_ joined #perl6
01:49 p6eval rakudo 0c893b: RESULT«1»
01:53 frooh rakudo: my @a = (1, 2, 3); @a[1..*];
01:53 p6eval rakudo 0c893b: RESULT«[2, 3, undef]»
01:53 frooh rakudo: my @a = (1, 2, 3); @a[0..*];
01:53 p6eval rakudo 0c893b: RESULT«[1, 2, 3, undef]»
01:53 frooh rakudo: my @a = (1, 2, 3); @a[0..*-1];
01:53 p6eval rakudo 0c893b: RESULT«[1, 2, 3]»
01:53 frooh rakudo: my @a = (1, 2, 3); @a = @a[1..*-1];
01:53 p6eval rakudo 0c893b: RESULT«[2, 3]»
01:54 frooh rakudo: my @a = (1, 2, 3); @a[*-1];
01:54 p6eval rakudo 0c893b: RESULT«3»
01:58 frooh anyone here have any idea how I could change an array in a method (pop atm) ?
01:58 frooh it says array is a readonly variable
01:58 frooh I think I figured it out
01:58 frooh sorry
01:58 frooh is rw
02:01 skids Have there been any attempts to express what Perl6 code implementing an iterator would look like?  E.g. what's an iterator do say where a coroutine would yield() -- throw a signal caught by prefix:<=> ?
02:02 skids Or is it assumed to just use a state variable?
02:02 kjwcode joined #perl6
02:08 frooh joined #perl6
02:12 frooh I think I have bad ram...
02:12 frooh my computer crashes too often for that not to be the case I think
02:17 frooh rakudo: 1
02:17 p6eval rakudo 0c893b: RESULT«1»
02:30 skids frooh: often it can be memory bus timing problems, as well.  Oddly, compiling kernel is still one of the best tests, even with all these diagnostic utils :-)
02:30 frooh skids: that may be true, but I set the timing to what the ram specs are
02:31 skids Heheh.  Yeah, ehem, specs.  I seldom put much stock in those things :-)
02:33 frooh well it just sucks because I got good quality ram and stuff
02:33 frooh I am gonna run memtest all night and if there are any issues I am getting an RMA
02:33 frooh but I mean, it crashes something like every other day
02:33 frooh maybe every third
02:33 frooh my laptop NEVER crashes
02:34 skids or notch it down a bit or add wait states, if your BIOS will let you, and see if it stops.
02:34 frooh maybe X does, but not everything like this
02:34 skids (and check your fans)
02:36 frooh yeah
02:41 wayland76 I've got a computer that crashes when it gets too cold (like under about 20 degrees C)
02:42 wayland76 btw, skids, have you had a chance to look at S17?
02:42 frooh weird
02:43 s1n frooh: no, i did not get any sort of message in my github inbox when someone commented on a patch
02:44 frooh s1n: yeah, me neither
02:44 frooh I added some directions on how to submit the patch via rt
02:44 frooh but let me warn you
02:45 frooh the git rebase -i origin/master stuff can involve changing your history
02:45 frooh which means mega hassle when you do a push
02:45 frooh but there really isn't much to do about that
02:45 skids wayland76: yes, I did.  Right now I'm trying to hunt down all coro-like constructs in the rest of the specs to see if we really need them or just syntactical sugar for a work-alike.
02:46 frooh so if we *do* decide to just use RT only I plan on just sticking with my own personal repo and not doing push's/merge's till the patch is accepted
02:46 wayland76 skids: Great :)  Remember the Open Source motto of "commit early, commit often"
02:46 skids Yeah, I know I know but really all I have to "commit" is a lot of unanswered questions at this point.
02:47 s1n frooh: i was thinking of just using my personal fork for a temporary repo and submitting patches to RT from there
02:47 wayland76 frooh / s1n: Some of those support requests on github asked for e-mail notification, and I thought they said they were planning to do it
02:47 s1n that is, squash them in git as per your instructions, then link the commit on github
02:47 skids I notice SMOP is very aware of the stack problems inherent in coros, BTW.  The Parrot code is too thick for me at the moment, but I assume it is as well.
02:47 s1n wayland76: where did they say they were adding email notifications?
02:47 frooh s1n: yeah I agree, but what I am saying is that if you push into your own fork and then change some stuff and squash it again it gets mad at you
02:47 * kjwcode finds that keeping a rakudo-clean, rakudo-build, and rakudo-work area created with "cp -R" works well.
02:47 wayland76 at that point, it should be more possible to do github
02:47 frooh wayland76: I didn't read too many of them
02:48 s1n frooh: noted, i'll just have to stick to branching for every single friggin patch
02:48 frooh hahaha
02:48 wayland76 frooh: Me either, but I saw one in passing.  I'll try to find it
02:48 frooh wayland76: it's no big deal
02:48 frooh don't worry about it
02:48 frooh because until they implement the feature we should use rt
02:48 s1n frooh: will i have problems making new branches and pulling upstream when i start a new branch/patch?
02:48 skids cooincidentally I was just trying to figure out how to back out of my branch back to master.
02:49 frooh git co master/
02:49 frooh ?
02:49 frooh er
02:49 frooh yeah
02:49 s1n yeah, that'll switch to the master branch
02:49 frooh no / though
02:49 skids Yeah that gives me "Your branch is behind the tracked...."
02:49 s1n git pull upstream?
02:50 * frooh can't wait till we are all experts at git
02:50 skids "You asked me to pull without telling me which branch yada yada"
02:50 frooh git pull origin master
02:50 frooh probably
02:50 kjwcode git branch -d branchname?
02:51 wayland76 frooh: Nah, looks like I'm wrong -- sorry.  But they *did* say that they're planning to revise pull requests soon
02:51 frooh yeah, I did see that
02:51 s1n why not git pull upstream master?
02:51 s1n origin would be his fork/remote
02:51 skids git pull origin master actually pulled some stuff, that's progress, now I just have to figure out what from my old stuff is still mixed in.
02:51 frooh well, your upstream probably = my origin
02:52 frooh for me origin is upstream and frioux_origin is my form
02:52 s1n frooh: stick to your own guide :)
02:52 frooh fork*
02:52 wayland76 I think it's git checkout -a that you want
02:52 frooh haha
02:52 frooh k
02:52 wayland76 Unless I'm wrong :)
02:52 s1n henceforth: upstream equals rakudo proper, origin equals personal fork
02:52 skids hehe.
02:52 frooh deal
02:52 s1n skids: try upstream master
02:53 wayland76 you *have* all seen the pretty picture in http://osteele.com/archive​s/2008/05/my-git-workflow haven't you?
02:53 frooh skids: did you check into master when you meant to check in to some other branch?
02:53 kjwcode wayland76: I can't find -a as an option in "git help checkout".
02:53 frooh he probably mean git checkout -b
02:53 frooh as in, create a branch and check it out
02:54 kjwcode Makes sense.
02:54 skids wayland76: anyway, I do have a couple comments on S07
02:54 wayland76 oh, sorry, -f
02:54 wayland76 not -a
02:55 * frooh reboots and looks at hardware :-(
02:55 s1n wayland76: interesting article
02:55 wayland76 Use at your own risk :)
02:55 wayland76 skids: I'm listening :)
02:55 skids One is that the language in S06 about iterators spawning threads and stuff should be integrated in a form that doesn't concentrate on scoping stuff.
02:56 skids And explain how that relates to laziness modes.
02:56 s1n conversation has strayed, time to work on thesis
02:59 skids The second is that we'll probably eventually be wanting either A) a "Casual" level of laziness that allows enough eagerness to improve code locality, or B) a chunk() feed component that can cache a few values to get the same effect, perhaps with all the chunk()s doing some back door communicating to get the best balance between memory profile and code locality, with user tuning via parameters.
02:59 wayland76 skids: This second idea is something that ruoso and TimToady were arguing about recently
03:00 wayland76 I don't know that they came to a conclusion
03:00 skids Yeah I've been noticing the chats and another TODO item is backlogging since it all happens while I'm at work :-)
03:01 wayland76 I don't backlog either if it's been more than a day or two
03:01 wayland76 Can you give me the line number for the S06 threads stuff you're talking about?
03:01 skids The third is that really if we can figure out how to pass parms to an =$iter we don't really need a formal coro construct.
03:02 wayland76 In spite of having written the Iterators spec, I don't know that much about them -- I just cobbled together bits from ruoso, and incorporated others' changes
03:02 ruoso skids, S07 describes that
03:02 ruoso we name the "casual" level  as "mostly lazy"
03:03 skids Yeah "mostly lazy" does not strike me as quite being that.
03:03 wayland76 Maybe we need a better writeup for "mostly lazy", if you and ruoso are thinking the same thing.  I'll let you argue it out for a bit :)
03:03 * skids waits for firefox's search to stop soaking his cpu on S06 -- shoulda gone to the raw pod.
03:04 wayland76 Tip for skids: it really is worth doing an svn checkout of the Specs directory from the pugs repository
03:05 skids I have them checked out.  I like interactive search.  "less" is nice but still tedious.
03:06 skids anyway search for "promise of parallelizability"
03:07 skids If someone reads that paragraph and the one above it, they might need it spelled out that in Strict Laziness the parallism isn't utilized, and the order (I assume) of execution is guaranteed.
03:08 ruoso skids, strict laziness assume that, yes
03:09 ruoso so you can work with streams
03:09 skids Good.
03:10 ruoso 'mostly lazy' allows optimizations like auto-threading
03:10 ruoso in S07 it says that it won't fetch any data unless the user requests it
03:10 ruoso iirc
03:10 skids So anyway the way I read "Try to obtain available items without" forcing the eval of lazy objects is that it will do so to the letter, and that precludes forcing 2 or 3 lazy evaluations to fill a cache.
03:10 pugs_svn r25797 | wayland++ | Added a cross-reference to S07-iterators, as suggested by ruoso/skids on IRC.
03:10 ruoso (in the 'strict lazy' that is)
03:11 frooh joined #perl6
03:12 ruoso skids, I don't quite see what you mean, I think
03:13 frooh is an empty array necesarily == to ()?
03:13 ruoso ==, yes
03:13 ruoso because both will numify to 0
03:13 ruoso ===, probably not
03:14 frooh ok, great
03:14 skids Well, let me try to figure out how to phrase that, in the meantime, it leaves me asking "how do you get something that is mostly lazy" because nothing there seems to be...
03:15 ruoso sub foo(*@items) {...};
03:15 ruoso that's mostly lazy
03:15 wayland76 skids: If you're wondering, that update I sent through updates S06
03:16 skids wayland76: thanks
03:16 ruoso infix:<,> is also mostly lazy
03:17 ruoso so....
03:17 ruoso my $a := (@a,@b,@c);
03:18 ruoso makes $a 'mostly lazy'
03:18 frooh are the () required?
03:18 ruoso no.. .
03:18 frooh k, didn't think so.
03:18 frooh just making sure
03:18 skids OK, so the way I read "Mostly lazy" is that if you have func1() <== func2() <== (1,2,3)   func2 could be as eager as it wants, but func1 might be starved and not be able to nudge func1 due to the not forcing lazy's thing.
03:19 wayland76 ?
03:19 ruoso skids, func1 would not "starve"
03:19 ruoso because that would mean that it is "explicitly" requesting something
03:19 ruoso both in 'mostly lazy' and in 'strict lazy' it should go for the data when asked
03:20 wayland76 skids: Is that last "func1" in your comment supposed to be "func2"?
03:20 ruoso but in 'mostly lazy' the runtime is free to go and pre-fetch data if it's idle
03:20 skids by starved I mean in a precaching and code locality sense.  func1 couldn't ask func2 to get the next value while it was processing and getting ready to spit out resukts out the other end.
03:21 skids yeah, I'm very tired, sorry.
03:21 ruoso skids, basically, it there are no values, it will have to wait
03:21 ruoso there's no magic around thata
03:23 wayland76 ruoso: Did you have any thoughts on skids' idea of passing paramaters to an iterator?
03:23 frooh anyone know if the pir classes can use stuff from the setting?
03:23 ruoso wayland76, I think i missed that
03:24 skids Well, what I'm trying to get at is will such pipes really run optimally on a performance level given what you understand "Mostly Lazy" to mean.  Will they get things moving so an iterator gets to work on a few values before it has to yield cache space for another iterator.
03:24 skids To state things as a goal.
03:25 skids frooh: I believe so, but have not tried.
03:25 frooh skids: excellent
03:25 frooh thanks
03:25 frooh I'll try
03:25 ruoso I'm realy having a hard time parsing your last sentence...
03:25 wayland76 ruoso: skids made 3 points immediately after I said "skids: I'm listening :)".  His third point was about passing parameters to an iterator, and I figure you're the best person to answer it
03:26 skids I'm OK with pausing on "Mostly Lazy" since obviously I'm not coherent enough to express myself :-)
03:26 * frooh loves the automatic strictness of perl6
03:27 ruoso skids, maybe what you're missing is the "batch API"
03:27 ruoso iterators now only have the "give me the next" API
03:27 ruoso we still need to design "give me some"
03:27 ruoso or "give me as many as you can without blocking"
03:28 wayland76 I'll try to restate skids point with more punctuation: Well, what I'm trying to get at is, "Will such pipes really run optimally on a performance level, given what you understand 'Mostly Lazy' to mean?  Will they get things moving so an iterator gets to work on a few values before it has to yield cache space for another iterator?"
03:28 * skids chuckles
03:28 wayland76 HTH :)
03:29 ruoso ok... the mechanics around the feed operator are not quite defined yet
03:29 skids e.g. the optimal performance in f1() <== f2() <== f3 might be to run f3 six iterations, then run f2 4 iterations, then f1 2 iterations, then run round robine 2 iterations over f1, f2, f3.
03:29 ruoso but I guess it will create concurrent coroutines for each participant of the feed
03:30 wayland76 Anyway, I've gotta disappear for half an hour or so, but will backlog.
03:30 ruoso skids, but I do think feed should be 'strictly lazy' in the sense that it might be having IO as input
03:30 frooh skids: it seems that you were right, pir files use the setting
03:31 ruoso and you probably don't want to pre-read that if noone is consuming it
03:31 skids ruoso: totally agree on strict laziness.  There should be deterministic forms, even if the functions involved still have to be coded as though they might be asked to thread.
03:32 skids frooh: the pmichaud++ was right, not me :-)
03:32 frooh haha, k
03:32 skids s/the/then/
03:33 ruoso skids, or we assume that 'mostly lazy' *never* touches IO
03:33 ruoso in which case, I think the feed could very much be 'mostly lazy'
03:34 skids I think there will be non-IO cases where strict lazy behavior will be desireable, if the functions involved have side effects.
03:34 ruoso feeds are almost functional
03:34 ruoso if you want side-effects to be predictable
03:34 ruoso you want more imperative operators
03:35 skids And, incidentally I found S07 to be very clever in a particularly perlish way :-)
03:35 skids You don;t think strict laziness is strict enough for that?
03:36 ruoso I think that's not a reason that would be worth defining the type of lazyness of feed
03:37 ruoso I mean
03:37 ruoso it would be ok if the feed operator didn't guarantee side-effects order...
03:38 skids Yeah that kinda leaves me wanting some "uber strict" pragma or something.
03:40 ruoso skids, just use imperative operators instead of functional operators
03:40 ruoso i.e.: loop
03:41 ruoso functional operators imply less determinism
03:42 skids Just as a side note, it might be worth specifying that while laziness may vary, item processing order at each step is guaranteed even if eager, just to be explicit
03:43 skids e.g. @a = (1,2) will do @a[1] = 1 before @a[2] = 2.
03:43 skids unlike junctions
03:50 skids and hyperops
03:51 ruoso yes.... junctions and hyperops are in a different axis then eagernes/lazyness
04:00 diakopter TimToady: this was helpful for me... http://robey.lag.net/2008/07/1​3/git-for-the-real-world.html
04:04 skids I have to crash and can't really get into point #3 from above tonight.
04:06 s1n anyone sign the CLA with a $DAYJOB run it by their employer first? what was their response?
04:06 Tene s1n: my employer was just fine with it
04:07 wayland76 skids: 'night, and thanks
04:07 skids To add a point #4, defining the difference of behavior in eager feeds if you have a feed component with set siglet (*@items) versus one with set siglet ($item), and on the other side, functions that can fetch slices versus ones that can only fetch single items.
04:08 skids erm signature I guess, not siglet
04:08 s1n Tene: i'm curious about your experience, my employer got spooked when they were surprised to learn a majority of our products are linux based, so i'm wondering what their response would be if i brought it to them
04:08 wayland76 ruoso++ and skids++ :)
04:08 s1n do companies usually involve legal and review the license?
04:08 s1n and the CLA for that matter
04:09 Tene skids: for comparison, I work for http://gurulabs.com/
04:09 wayland76 s1n: Depends on the culture of the company and the scope of the project and the scope of your involvement in it
04:09 s1n Tene: wrong nick :)
04:09 Tene >< thanks
04:09 Tene My boss regularly files bug reports (often with patches) with open source projects
04:09 s1n they're a defense contractor so they spook pretty easily
04:09 wayland76 skids: Are you on p6l?
04:10 Tene skids: sorry, wrong nick
04:10 skids wayland76: I've been trying to avoid it.  Right now I'm mailing list free.  Feels good :-)
04:11 PZt joined #perl6
04:11 wayland76 ok.  If you were on p6l, I'd bundle your points up myself and send them there so you'd have some discussion waiting in the morning
04:11 skids Tene: yeah I realized :-)
04:11 Tene s1n: we're only like a dozen guys, so no legal department.  My boss just read it once and said it was fine.
04:11 s1n we have to get approval to add new open source applications to our products now, legal reviews the copyright notices and it's like a 6 month ordeal, but that's only for deliverable software
04:11 wayland76 but if you're not, there's no point :)
04:12 alester joined #perl6
04:12 s1n i'm curious about people at large companies with too many levels of management
04:12 wayland76 s1n: You'll probably find that will speed up once they've become accustomed to some of the main licenses
04:13 Tene s1n: does your contract cover work you do outside of business hours?
04:14 s1n wayland76: i suspect otherwise once management is involved (how they were surprised by linux usage is beyond me)
04:14 Tene s1n: most don't, and I believe that some that tried to have been ruled invalid in some states.
04:14 s1n Tene: most defense contractors have this psuedo-implicit "we own everything you do, say, and think" crap
04:14 s1n dunno if it's remotely legal though
04:15 Tene s1n: has it ever been tested in court?  If you're concerned, that's where I'd look.
04:15 s1n dunno, ianal
04:15 Tene That's an excellent point.  Wouldn't hurt to ask a lawyer.
04:15 s1n i suspect they'd be fine with it unless i have to involve legal (i.e. them sign a CLA or something)
04:15 wayland76 s1n: you may be right about management.  When I said "speed up", I meant if people do this regularly for 7 years or so :)
04:16 s1n wayland76: anytime legal is involved, things become exponentially slow and expensive
04:16 wayland76 :)
04:17 wayland76 We need some way of specifying the legal code in a way that computers can understand :)
04:17 wayland76 Btw, does anyone know what this mean? ...
04:17 s1n we need a way of removing the concept that an employer could own anything you do offsite
04:17 wayland76 error:imcc:syntax error, unexpected VAR, expecting '(' ('sub')
04:18 wayland76 (while compiling rakudo)
04:18 wayland76 s1n: That would help too
04:18 s1n wayland76: was that compiling or running sample code
04:18 wayland76 In the middle of "make"
04:19 wayland76 ... /usr/bin/parrot  -o perl6_s1.pbc perl6.pir
04:19 s1n wayland76: hmm i haven't updated my sandbox in a while, i can't really look into it until thursday
04:19 wayland76 OK
04:19 wayland76 This is with the latest parrot too
04:20 s1n i usually spend time on thursdays and fridays working on rakudo, if it's not fixed by then, i'll have to look into it
04:26 frooh wayland76: I compiled a couple hours ago and didn't get that error
04:26 frooh everything fresh
04:29 wayland76 Yeah, I'm trying to get the build working with the RPM version of parrot/parrot-devel
04:29 frooh lemme see if it happens now
04:29 wayland76 And unfortunately, I don't really even know where to begin debugging that error :(
04:29 wayland76 I'm not using the --gen-parrot option
04:30 frooh neither am I
04:30 frooh but I do make realclean before every build
04:30 s1n wayland76: is it finding the correct parrot_config and is that current (from a realclean)?
04:31 wayland76 It's finding a copy of parrot_config.  It's the parrot_config that was installed from the RPM
04:32 s1n wayland76: there's your problem
04:32 s1n iirc the parrot install still isn't working
04:32 wayland76 Ok, but it's the problem I'm trying to fix :)
04:32 s1n okay, is the parrot config stuff valid?
04:33 s1n does it reference current versions, and correct paths?
04:33 wayland76 It looks like it
04:33 wayland76 no, three things wrong
04:33 frooh mine built fine, but it looks like you've solved the issue
04:34 s1n if all else, try gen-parrot to make sure it builds against the rakudo sanctified revision of parrot
04:34 wayland76 build_dir, libparrot_ldflags, and rpath_blib
04:34 wayland76 Thanks s1n
04:34 s1n that sounds bad...
04:35 wayland76 Well, they're still pointing at the place that parrot was built, but it's not there any more
04:35 wayland76 or shouldn't be :)
04:35 s1n well, is rakudo looking to those paths? if so (likely), that's not going to cut it
04:35 wayland76 Anyway, that gives me something to go on
04:35 wayland76 I have no evidence that rakudo is looking there
04:36 wayland76 but no evidence that it's not, either
04:36 wayland76 Actually, I just checked, and those files are still there
04:36 s1n the entire build path?
04:37 wayland76 I think so.  It looks like it
04:37 wayland76 But that's something else that should be eliminated :)
04:37 s1n wayland76: are you trying to fix an RPM for parrot or rakudo?
04:37 wayland76 both :)
04:37 s1n oh
04:37 wayland76 :)
04:37 s1n well, for rakudo you could still do the gen-parrot
04:37 wayland76 The Parrot RPM works
04:37 s1n just tack the option in the spec file
04:38 wayland76 but I had to patch it to get it to include some of the files that rakudo relies on
04:39 s1n you could have the rakudo RPM check for parrot RPM installed, if it finds it, diff it against the PARROT_REVISION, and use the gen-parrot option appropriately
04:40 s1n (make sure to build the fakexecutable if using gen-parrot)
04:40 wayland76 My understanding is that gen-parrot downloads parrot, and I'm specifically trying to avoid the duplication of parrots :)
04:40 wayland76 (help, they're breeding!)
04:40 wayland76 :)
04:41 s1n wayland76: it won't install, just build it for sanity
04:41 wayland76 Hmm, now there's a thought :)
04:41 wayland76 But that won't help debug the parrot-devel RPM
04:41 s1n the parrot RPM would install, then the rakudo RPM would use it if it could, otherwise will use gen-parrot to make a fakexecutable
04:41 wayland76 Which should include everything that rakudo needs :)
04:42 s1n no it won't, but that's a chicken and the egg problem
04:42 wayland76 Not necessarily.  I'll keep working on it, and thanks for all your help so far :)
04:42 s1n you could just have the rakudo spec require a valid version of parrot built somewhere on the system
04:42 s1n not just installed, but the build tree
04:43 wayland76 Nah, don't like it :)
04:43 s1n that's why i recommended the gen-parrot option and parrot rpm check
04:44 wayland76 I should be able to download the latest rakudo and go "yum install parrot parrot-devel && rpmbuild -ta parrot.tar.gz" :)
04:44 wayland76 s/parrot.tar.gz/rakudo.tar.gz/
04:44 wayland76 sorry :)
04:45 s1n ideally you should be able to just do 'yum install rakudo'
04:45 s1n that would do all the necessary bootstrapping (gen-parrot, PARROT_REVISION check, etc)
04:45 wayland76 agreed, but what if I want a more recent rakudo than the packagers are willing to go with?
04:46 s1n doesn't SPEC support svn/cvs/git repositories and packages?
04:46 s1n i.e. gentoo has built-in support for git repository application installs
04:46 wayland76 I don't understand the question
04:46 wayland76 Spec, no.  RPM, maybe.
04:46 s1n i.e. doesn't the RPM SPEC support automatically pulling git/svn repo copies for local builds?
04:47 wayland76 possibly not, though; it's a binary distro
04:47 s1n wha? i've never made RPMs without SPECs?
04:47 s1n wayland76: wrong, SRPMs aren't binary
04:48 wayland76 sorry, I should've said rpmbuild
04:48 wayland76 not rpm
04:48 wayland76 No, I'm pretty sure it doesn't, now that I think about it
04:48 s1n no requirement to make rakudo/parrot a binary dist?
04:49 wayland76 no, but it should work as a package on a binary distro :)
04:49 s1n what's the diff, documentation isn't binary and you can install docs on a binary system
04:49 wayland76 (unless I've misunderstood again :) )
04:50 wayland76 Well, yes, but I mean "stuff that doesn't need compiling"
04:50 wayland76 so binary is probably the wrong word
04:50 wayland76 but it is the traditional label
04:50 s1n no, that's exactly what a binary dist is
04:51 s1n you want a frequently updated binary RPM?
04:51 s1n like a repo based source RPM?
04:52 wayland76 I want to have a tarball that can be built into a binary RPM by going rpmbuild -ta tarball.tar.gz
04:52 s1n why a tarball like that? i don't understand what you are trying to accomplish
04:52 wayland76 And, if someone puts the results on their site, I can download it and have it work
04:53 wayland76 Well, it's simply any tarball with a working .spec file in it
04:53 wayland76 and rpmbuild -ta turns it into both binary and source RPMs
04:55 s1n i've only built a few rpms, but i've usually built them from a software install, used rpmbuild -b (or some such)
04:56 s1n so your equivalent to that would be to build the sandbox yourself and have the spec copy the file from your sandbox and install the fakexecutable appropriately during the %install stage
04:56 wayland76 rpmbuild -ba is exactly the same, except a) you have to provide an external specfile (or SRPM?), and b) the files may have to be in carefully chosen places
04:56 s1n yeah, i usually do that because it's just easier
04:57 wayland76 -ta is easier if the tarball you download supports it, otherwise not :)
04:57 s1n i think this is starting to sound out of my realm of capability...
04:57 wayland76 What sandbox are we talking about here?
04:57 s1n rakudo sandbox
04:58 s1n i'd do like a git clone, build with gen-parrot, then hardcode all that crap with the external SPEC file
04:58 s1n but that's because i'm lazy and can get away with it :)
04:58 wayland76 I'm not understanding you either -- I don't know anything about the sandbox or fakexecuteable :)
04:58 wayland76 Yeah, I want to do this properly, because it should highlight interdependencies between parrot and rakudo
04:59 wayland76 They're not a bad thing, but we need to know about them :)
05:00 s1n i can work on explaining all of those things later, but i'm greatly falling behind in non-perl related work :(
05:00 wayland76 yeah, lets leave it here for now, and I'll ask for explanation if I need it
05:01 s1n wayland76: okay, good luck :)
05:02 wayland76 Thanks
05:04 eternaleye joined #perl6
05:05 cotto joined #perl6
05:23 sri_kraih joined #perl6
05:33 cognominal_ joined #perl6
05:45 eternaleye joined #perl6
05:52 masak joined #perl6
05:52 masak morning, parrotcamels.
05:53 wayland76 morning :)
05:57 kate21de joined #perl6
06:12 masak rakudo: my @a = <a b ! , c - d>; say (grep { $_ ~~ /\w/ }, @a).perl; say (grep { * ~~ /\w/ }, @a).perl
06:12 p6eval rakudo 0c893b: No output (you need to produce output to STDOUT)
06:13 masak p6eval: I'm sorry? it gives output on my box.
06:24 Psyche^ joined #perl6
06:30 * masak successfully parses YAML in Perl 6
06:38 eternaleye joined #perl6
06:39 masak rakudo: my @a = $b; my $b = 5
06:39 p6eval rakudo 0c893b: No output (you need to produce output to STDOUT)
06:40 masak moritz_: hilfe!
06:50 WootKit joined #perl6
07:12 * moritz_ rushes for help
07:12 moritz_ evalbot control restart
07:12 p6eval joined #perl6
07:14 moritz_ rakudo: my @a = $b; my $b = 5
07:14 p6eval rakudo 0c893b: No output (you need to produce output to STDOUT)
07:14 moritz_ rakudo: say "alive"
07:14 p6eval rakudo 0c893b: No output (you need to produce output to STDOUT)
07:14 moritz_ elf: say "alive"
07:14 p6eval elf 25796: No output (you need to produce output to STDOUT)
07:15 masak moritz_: hello. I'm so glad you're here. all the implementations are giving me the silent treatment.
07:15 WootKit left #perl6
07:15 WootKit joined #perl6
07:15 moritz_ nqp: say("alive");
07:15 p6eval nqp: No output (you need to produce output to STDOUT)
07:15 WootKit left #perl6
07:15 WootKit joined #perl6
07:16 moritz_ IO problems, it seems
07:16 moritz_ $ df
07:16 moritz_ df: no file systems processed
07:17 moritz_ ah, disk full
07:17 finanalyst joined #perl6
07:18 moritz_ perl6: say "back to life""
07:18 p6eval elf 25796, pugs, rakudo 0c893b: No output (you need to produce output to STDOUT)
07:18 moritz_ meh
07:20 moritz_ I've  upgraded the server to debian lenny yesterday night
07:20 masak nice.
07:20 moritz_ and it seems that something is using up all available disk space very fast
07:21 masak ouch.
07:22 alc joined #perl6
07:22 moritz_ and it's not the evalbot chroot, that's below 10G
07:25 ejs joined #perl6
07:28 moritz_ ah, it seems that the that's stored in /home/rbackup/ also tries to backup itself...
07:28 masak ah, the joy of recursion.
07:31 moritz_ perl6: say "back to life"
07:32 p6eval elf 25797, pugs, rakudo 0c893b: OUTPUT«back to life␤»
07:32 moritz_ an rm -rf can really be slooooooow
07:32 masak :)
07:32 masak moritz_++
07:33 masak rakudo: my @a = $b; my $b = 5
07:33 p6eval rakudo 0c893b: OUTPUT«Null PMC access in isa()␤current instr.: 'parrot;List;!flatten' pc 5892 (src/classes/List.pir:253)␤»
07:33 * masak submits rakudobug
07:33 masak rakudo: my @a = <a b ! , c - d>; say (grep { $_ ~~ /\w/ }, @a).perl; say (grep { * ~~ /\w/ }, @a).perl
07:33 p6eval rakudo 0c893b: OUTPUT«["a", "b", "c", "d"]␤["a", "b", "!", ",", "c", "-", "d"]␤»
07:33 sri_kraih_ joined #perl6
07:33 masak how come one works and the other doesn't? am I misunderstanding something, or is Rakudo not implemented in this particular spot?
07:34 moritz_ what should * ~~ Regex do?
07:36 masak moritz_: create a closure that matches something against the Regex, I think.
07:36 moritz_ masak: bare * doesn't create a closure
07:36 moritz_ masak: I think it's just a Whatever object
07:36 moritz_ it's *+1 that turns into a closure
07:37 masak moritz_: the difference being... what, exactly?
07:37 moritz_ the +1 ;-)
07:37 * masak needs to go back to the spec and re-read this
07:38 moritz_ infix:<+> returns a closure if it encounters the Whatever star
07:41 bacek_ rakudo: say (*-1).WHAT
07:41 p6eval rakudo 0c893b: OUTPUT«Use of uninitialized value␤Num␤»
07:41 moritz_ rakudo implements just a hack
08:19 DemoFreak joined #perl6
08:27 alexn_org joined #perl6
08:36 mikehh joined #perl6
08:40 pmurias joined #perl6
08:43 Kimtaro joined #perl6
08:49 xinming joined #perl6
09:11 ejs1 joined #perl6
09:17 * masak can now parse Perl 6 in Rakudo
09:18 masak I hope to be able to stop dropping teasers fairly soon, and actually release something.
09:20 moritz_ like, a perl 6 compiler written in Perl 6? :-)
09:21 masak no. :)
09:21 masak just a Perl 6 wrapper around STD.
09:21 masak I want to do a few lint-like things with it.
09:21 moritz_ why not? :-)
09:22 masak moritz_: why not a Perl 6 compiler written in Perl 6? good question.
09:22 masak I just haven't gotten around to it, I guess.
09:22 moritz_ it's just a smop, if we believe ruoso++ :-)
09:22 masak :)
09:23 masak most things are in our field.
09:31 Psyche^ joined #perl6
09:35 bacek good evening
09:36 bacek masak: Just emit parrot's PAST tree from you wrapper and that it!
09:36 moritz_ bacek: so how do you emit PAST from Perl 6?
09:37 masak bacek: that's a nice idea, didn't think of that.
09:37 masak bacek: but there's something to be said for using STD too.
09:37 bacek moritz_: no idea, I'm not solving small tactical problems. I'm work on THE STRATEGY
09:37 bacek :)
09:39 bacek rakudo: my $m = PAST::Node.new(); say "Hooray"
09:39 p6eval rakudo 0c893b: OUTPUT«Hooray␤»
09:39 bacek rakudo: my $m = PAST::Node.new(); say "Hooray"; say $m.WHAT
09:39 p6eval rakudo 0c893b: OUTPUT«Hooray␤Node␤»
09:39 bacek that's it. Easy :)
09:40 masak interesting.
09:41 bacek rakudo: my $v = PAST::Val.new(value=>42); say $v.WHAT; say $v.value;
09:41 p6eval rakudo 0c893b: OUTPUT«Val␤42␤»
09:41 bacek It "just works"
09:42 moritz_ rakudo: my $v = PAST::Val.new(value=>42); say $v.perl
09:42 p6eval rakudo 0c893b: OUTPUT«Method 'perl' not found for invocant of class 'PAST;Val'␤current instr.: 'parrot;P6metaclass;dispatch' pc 320 (src/classes/ClassHOW.pir:161)␤»
09:42 bacek rakudo: my $v = PAST::Val.new(value=>42); say $v.WHAT; say $v.as_post
09:42 p6eval rakudo 0c893b: OUTPUT«Val␤Method 'as_post' not found for invocant of class 'PAST;Val'␤current instr.: 'parrot;P6metaclass;dispatch' pc 320 (src/classes/ClassHOW.pir:161)␤»
09:43 bacek rakudo: my $v = PAST::Val.new(value=>42); my $c = PAST::Compiler.new; say $c.to_post($v);
09:43 p6eval rakudo 0c893b: OUTPUT«$P40␤»
09:44 bacek masak: ball on your side :)
09:44 masak bacek: :)
09:44 masak not sure I'll use that method, however. but cool that it works.
09:45 bacek rakudo: my $v = PAST::Var.new(name=>'foo', isdecl=>1); my $c = PAST::Compiler.new; say $c.to_post($v);
09:45 p6eval rakudo 0c893b: OUTPUT«Scope not found for PAST::Var 'foo' in ␤current instr.: 'parrot;PCT;HLLCompiler;panic' pc 146 (src/PCT/HLLCompiler.pir:102)␤»
09:45 bacek rakudo: my $v = PAST::Var.new(name=>'foo', is_decl=>1); my $c = PAST::Compiler.new; say $c.to_post($v);
09:45 p6eval rakudo 0c893b: OUTPUT«Method 'is_decl' not found for invocant of class 'PAST;Var'␤current instr.: 'parrot;PCT;Node;init' pc 58 (src/PCT/Node.pir:72)␤»
09:46 bacek rakudo: my $v = PAST::Var.new(name=>'foo', isdecl=>1, scope=>'package'); my $c = PAST::Compiler.new; say $c.to_post($v);
09:47 p6eval rakudo 0c893b: OUTPUT«$P42␤»
09:48 bacek It all depends on #61128 :)
09:52 bacek rakudo: my $v = PAST::Var.new(name=>'foo', isdecl=>1, scope=>'package'); my $c = PAST::Compiler.new; my $p = $c.to_post($v); say $p.WHAT
09:52 p6eval rakudo 0c893b: OUTPUT«Ops␤»
09:53 bacek rakudo: my $v = PAST::Var.new(name=>'foo', isdecl=>1, scope=>'package'); my $c = PAST::Compiler.new; my $p = $c.to_post($v); say POST::Compiler.new.pir($p)
09:53 p6eval rakudo 0c893b: OUTPUT«Null PMC access in find_method()␤current instr.: 'parrot;POST;Compiler;pir_children' pc 9495 (src/POST/Compiler.pir:76)␤»
09:54 bacek rakudo: my $v = PAST::Var.new(name=>'foo', isdecl=>1, scope=>'package'); my $c = PAST::Compiler.new; my $p = $c.to_post($v); my $post = POST::Compiler.new; say "posting"; say $post.pir($p)
09:54 p6eval rakudo 0c893b: OUTPUT«posting␤Null PMC access in find_method()␤current instr.: 'parrot;POST;Compiler;pir_children' pc 9495 (src/POST/Compiler.pir:76)␤»
09:55 bacek rakudo: my $v = PAST::Var.new(name=>'foo', isdecl=>1, scope=>'package'); my $c = PAST::Compiler.new; my $p = $c.to_post($v); my $post = POST::Compiler.new; say "posting"; say $post.to_pir($p)
09:55 p6eval rakudo 0c893b: OUTPUT«posting␤Null PMC access in find_method()␤current instr.: 'parrot;POST;Compiler;pir_children' pc 9495 (src/POST/Compiler.pir:76)␤»
09:57 masak when we count Rakudo RT tickets, do we count the stalled ones? we currently have 251 with them, and 239 without.
09:58 bacek 251? I've closed few of them today to reduce it to 249...
10:00 masak bacek: that might be me, I submitted one or two this morning.
10:00 masak sorry about that :)
10:01 bacek masak: It's all your fault!!! :)
10:01 moritz_ rakudo: my @a = $b; my $b = 5; say "alive";
10:01 p6eval rakudo 0c893b: OUTPUT«Null PMC access in isa()␤current instr.: 'parrot;List;!flatten' pc 5892 (src/classes/List.pir:253)␤»
10:02 bry4n joined #perl6
10:03 bacek moritz_: http://nopaste.snit.ch/15858 Any thoughts? (I can squash a patch against current HEAD)
10:06 bacek rakudo: role A {}; class B { has A $!a }; B.new
10:06 p6eval rakudo 0c893b: OUTPUT«Type mismatch in assignment.␤current instr.: 'die' pc 15944 (src/builtins/control.pir:204)␤»
10:06 moritz_ bacek: I know that pmichaud objected to shifting @.list, don't know if that applies in your case
10:07 moritz_ that said, there's also an infix:<minmax> operator specced
10:07 bry4n left #perl6
10:07 bacek moritz_: o! Good idea to implement just minmax and made min and max use it.
10:08 bacek moritz_: "someone" have to add tests for "minmax" :)
10:09 moritz_ bacek: feel free
10:09 masak volunteering cuts both ways.
10:13 mikehh rakudo 0c893bc on parrot 37303 make test/make spectest pass t/spec/S32-list/reduce.rakudo TODO passed:   14
10:14 bacek I'm not very confident with Spec to write tests...
10:14 bacek mikehh: yes, I expect this one to pass :)
10:15 mikehh we need to unTODO maybe
10:16 bacek just a sec
10:19 pugs_svn r25798 | bacek++ | [t/spec] Untodo List.reduce test for Rakudo
10:19 mikehh bacek++
10:19 bacek mikehh: I've already got my karma :)
10:20 mikehh bacek: It was the quick response
10:23 bacek mikehh: Removing one line of fudge is easy. BTW, you can get pugs commitbit. Just ask moritz_++
10:23 moritz_ bacek: you can hand yout commitbits yourself
10:24 bacek moritz_: erm... How?
10:24 masak bacek++ # commit, quick response, recruiting
10:24 * bacek implementing evil plans to rule the world with Perl6
10:26 moritz_ bacek: usually through http://commitbit.pugscode.org/ but it seems down atm
10:27 moritz_ bacek: now it works again
10:28 moritz_ you can login with your email addres (or was it svn user name?) and svn password
10:28 bacek moritz_: ok, I'll try
10:30 bacek moritz_: "access level" should be "author"?
10:30 moritz_ yes
10:30 bacek ok.
10:30 bacek mikehh: I can give you pugs commitbit now :)
10:30 moritz_ let me emphasize that *every* committer can invite new committers
10:31 mikehh bacek: thanks
10:31 bacek moritz_: and it's good! Looks like MLM :)
10:32 bacek mikehh: All I need is preferred username, email and your will :)
10:33 mikehh bacek: right on :-}
10:34 bacek mikehh: and email address is...?
10:35 mikehh bacek: mike.hind@gmail.com
10:35 bacek rakudo: parrot_trace 1; say (1,2).min
10:35 p6eval rakudo 0c893b: OUTPUT« 21275 set_returns PC40␤ 21277 returncc␤    67 new P4, "Int"                                        P4=PMCNULL ␤    70 assign P4, 1                                        P4=Object(Int)=PMC(0xb61a45e8) ␤    73 new P5, "Int"                                        P5=PMCNULL ␤
10:35 p6eval .. 7...
10:36 bacek mikehh: invite sent
10:37 bacek moritz_: can you check that evalbot didn't crashed after this?
10:38 bacek moritz_: (or just on your local copy of rakudo...)
10:38 ejs joined #perl6
10:38 * bacek having strange segfaults...
10:38 moritz_ no signs of a segfault here
10:39 bacek strange...
10:39 bacek mikehh: welcome to the club :)
10:42 bacek moritz_: are you using parrot's HEAD?
10:42 moritz_ bacek: no
10:43 bacek moritz_: --gen-parrot?
10:43 moritz_ bacek: yes
10:43 moritz_ (at least on evalbot's server)
10:46 bacek moritz_: ok. I found some glitches in parrot...
10:48 mj41 joined #perl6
10:48 mberends joined #perl6
10:50 Psyche^ joined #perl6
11:03 Psyche^ joined #perl6
11:18 kane_ joined #perl6
11:20 tomyan joined #perl6
11:49 tomyan joined #perl6
12:18 c9s joined #perl6
12:35 wayland76 'night all
13:10 aindilis joined #perl6
13:10 ujwalic joined #perl6
13:18 pmichaud wow, lots of scrollback this morning.  :-)
13:20 drbean_ joined #perl6
13:28 tomyan joined #perl6
13:31 ejs joined #perl6
13:39 tomyan joined #perl6
13:39 araujo joined #perl6
13:50 alester joined #perl6
14:10 duke_leto joined #perl6
14:10 duke_leto left #perl6
14:11 rmt_ joined #perl6
14:21 [particle] joined #perl6
14:21 Tene_ joined #perl6
14:29 jhorwitz joined #perl6
14:41 skids joined #perl6
14:52 PacoLinux joined #perl6
15:08 finanalyst left #perl6
15:14 nihiliad joined #perl6
15:44 masak http://developers.slashdot.org/comme​nts.pl?sid=1139903&amp;cid=26981365 # :P
15:44 aindilis joined #perl6
15:45 masak Matt-W: how's Form coming along?
15:46 Matt-W masak: I've not had a great deal of time, but I'm very confused about action methods
15:46 Matt-W I don't think mine are triggering
15:46 masak Matt-W: ok.
15:46 masak aye, I remember.
15:46 masak that was the latest thing we talked about.
15:46 Matt-W yes
15:46 Matt-W and I still haven't solved it
15:46 masak you could devise a test which clearly shows what you think is wrong.
15:46 Matt-W I put loads of say in them and they don't say anything
15:47 Matt-W I could try
15:47 Matt-W I don't know for sure how, once I've got the return value of parse(), to get the thing that my action methods should have made
15:47 Matt-W because if I do that and I call .WHAT on it, that should tell me if it worked or not
15:47 masak Matt-W: you could modify a global from the action method, just to be able to tell from a test whether the action method was entered.
15:48 Matt-W true
15:48 masak Matt-W: or that.
15:48 Matt-W I tried $($resultobject).WHAT but it said Str
15:48 Matt-W which was discouraging
15:48 Matt-W although I didn't get round to finding out what was inside the Str
15:48 Matt-W had to go to work
15:49 Matt-W When I do figure this out/any related rakudo bugs are fixed if that's what the problem is, I shall have to write it up
15:51 mikehh just built rakudo (0c893bc) on parrot r37310 linux i386 - make test/spectest all pass
15:52 Matt-W woohoo
16:06 jnthn OH HAI
16:06 * jnthn is back from conference trip and vacation.
16:06 jnthn Lviv for the win # architecture, cheap...
16:07 TimToady OH HAI OH GO ZAI MOOSE
16:07 TimToady OH HAI OH GOEZ AYE MOOSE
16:08 jnthn japanese lolspeak?!
16:08 TimToady I'm into multilingual puns...
16:09 jnthn Took me a moment to spot that one...
16:12 jnthn pmichaud: ping
16:14 diakopter punpolyglot punpolyglot, phim phim katchoo
16:14 skids ICMP: "I Canz Message Pmichaud" ? :-)
16:19 Kimtaro_ joined #perl6
16:28 Psyche^ joined #perl6
16:37 M_o_C joined #perl6
16:39 alester Morning all
16:45 DemoFreak joined #perl6
16:49 Kimtaro joined #perl6
16:50 Psyche^ joined #perl6
16:52 justatheory joined #perl6
17:12 Psyche^ joined #perl6
17:19 meppl joined #perl6
17:19 pmichaud jnthn: pong
17:20 jnthn pmichaud: hi, how's things?
17:20 pmichaud they're going reasonably well.
17:20 jnthn Good good. I'm back from vacation and ready to dig back in to Rakudo.
17:20 pmichaud cool.
17:20 pmichaud I think I'd like to refactor method dispatch a bit.
17:21 masak jnthn, pmichaud: I'm heading out, but hi to you both.
17:21 pmichaud (and possibly sub dispatch as well, but method dispatch is the more interesting at the moment)
17:21 jnthn .^dispatch?
17:21 pmichaud yes.
17:21 jnthn I did some pondering on that bit while on vacation.
17:21 pmichaud then this is timely :-)
17:21 jnthn It's not really flexible enough to do, say, .*/.*/.? for one.
17:22 jnthn And also .WALK is a dispatcher thing.
17:22 pmichaud the big change I'd like to see is that we eliminate the .HOW stuff from actions.pm
17:22 pmichaud currently actions.pm does  .HOW on the invocant, and then uses that to dispatch.
17:22 jnthn So I suspect the HOW API may need to change.
17:23 pmichaud I don't mind if we continue to dispatch through the .HOW -- I just don't want actions.pm to be doing it.
17:23 jnthn Sure
17:23 pmichaud i.e., we could do  '!method_dispatch'(invocant, 'method', args)
17:23 jnthn What are you wanting to do instead?
17:23 pmichaud then !method_dispatch figures out what to do and re-dispatches via .HOW if needed.
17:23 jnthn I avoided that to avoid an extra layer of indirection...
17:23 pmichaud we get the layer of indirection regardless.
17:24 pmichaud also, I'm thinking that !method_dispatch (or the HOW's dispatch) could cache method lookups
17:24 pmichaud instead of always walking the mro
17:24 jnthn I knew what I was changing would hurt performance a bit, so wanted to minimize it.
17:24 jnthn Yes, I did expect we'd cache at some point down the road. :-)
17:24 jnthn I've been trying to get us semantically correct first though.
17:25 pmichaud we're running into some (minor) issues where invocants might not have a HOW -- such as if they come from a foreign source.
17:25 jnthn Ah.
17:25 jnthn Yes, that makes sense.
17:25 pmichaud also, even if we have a performance hit at the moment -- at some point we might take !method_dispatch and optimize it in C or something like that.
17:26 jnthn Yeah, it maybe can be an dynop, but I'm a tad frightened about writing it yet. ;-)
17:26 pmichaud Yes, I can understand that.
17:26 pmichaud also, we need a '!private_dispatch' for dispatching to private methods.
17:26 jnthn I want to try and get the nextsame/callsame/etc things straightened out first.
17:27 jnthn Yeah, I noticed there was a spec change relating to those.
17:27 pmichaud there have been a lot of spec changes while you were out :-)
17:27 jnthn Yeah, moritz++ sumarized a few of them for me.
17:27 jnthn They looked like they'd all need work, but nothing like "oh noes we have to start Rakudo all over again" :-)
17:27 pmichaud we don't have to start Rakudo all over again, but some are significant.
17:28 jnthn Which ones are most significant?
17:28 pmichaud the biggest is that we no longer use    $(...)   for the AST
17:28 jnthn Oh?
17:28 pmichaud it's now   $<parse><?>
17:28 jnthn I thought I read somewhere that what $(...) does has changed.
17:28 rindolf joined #perl6
17:28 pmichaud i.e., we access the ast through the <?> key
17:28 pmichaud (this isn't implemented yet, but it's a change we'll have to make)
17:28 jnthn I'm not sure I like that... :-|
17:29 pmichaud for a short while NQP will convert $(...) to .<?>
17:29 pmichaud until all of the PCT-based languages can get updated.
17:29 jnthn $(...) always felt a bit magical but fine really to me...I understand this is part of bigger changes to sanify captures though.
17:29 jnthn (as far as I understand, that is...)
17:29 pmichaud and match objects, yes.
17:30 pmichaud other big change is that lists in item context no longer become an Array
17:30 jnthn <?> feels a tad magical to me too....
17:30 jnthn Oh?
17:30 pmichaud they become captures
17:30 jnthn OK, and mappings in item context?
17:30 pmichaud I haven't seen any mappings yet, to be honest :-)
17:31 jnthn Oh, wait...
17:31 jnthn :-)
17:31 jnthn Yeah, I just thought...how do you write a mapping literal
17:31 jnthn well
17:31 jnthn Mapping(x => 42) I guess in the end may do it...
17:31 TimToady it's possible <?> should just become a Match attribute
17:32 TimToady and accessed with a method
17:32 pmichaud I'd be okay with that.  We already have .from, .to, .chars, etc.
17:32 TimToady .result is a bit long though
17:32 pmichaud perhaps   .made   :-)
17:32 pmichaud since the result object is set with "make"  :-)
17:32 jnthn I prefer a method over <?>
17:33 pmichaud I'd prefer a method also because it feels weird that the result object shows up in %()
17:33 TimToady I just happen to use <?> in STD because p5 really only has hashes for objects
17:34 pmichaud surely a method could map to <?> for a given implementation :-)
17:34 TimToady well you also have to weed out <?> when they ask for .hash
17:34 pmichaud yes; I was thinking more in a "building" phase.
17:35 pmichaud i.e., while bootstrapping or while developing an implementation.
17:35 TimToady sure, but |%/ is gonna be fiddly in such a bootstrap
17:36 pmichaud how are .from and .to handled in STD?
17:36 TimToady |%$/ rather
17:36 TimToady hidden attrs are prefixed with _  :)
17:37 TimToady so _res could be one too
17:37 pmichaud then use _?  :-)
17:37 pmichaud or _res
17:37 TimToady or <_>
17:38 TimToady in fact, I see that STD cheats on <_from> in a few spots...
17:38 jnthn .made is cute :-)
17:39 TimToady seems like it would get a little grating
17:39 pmichaud yes.
17:39 jnthn Yeah. Cute is good for a while...
17:39 Matt-W It does have a certain consistency to it, but... overly cute
17:39 pmichaud .baked .
17:39 pmichaud then if it's not complete, it's .half-baked
17:39 jnthn :-P
17:40 pmichaud (there are good reasons I'm not the language designer.)
17:40 TimToady there are bad reasons that I am  :)(
17:40 TimToady s/(//
17:40 zamolxes joined #perl6
17:41 TimToady shower & # thinking about results
17:41 jnthn pmichaud: So back on the dispatch changes...
17:42 pmichaud (results oriented shower)++
17:42 jnthn I'm not opposed to those.
17:42 jnthn So go ahead.
17:42 Matt-W hurrah! I got my grammar action methods to trigger!
17:42 pmichaud well, I was going to let you do them.  :-)
17:42 Matt-W boo! It triggered a Null PMC access!
17:42 jnthn Oh, damm it. :-P
17:42 pmichaud if you want me to do them, I can, though.
17:42 jnthn It's like you think I know that bit of the code well or something. ;-)
17:43 frioux pmichaud: by the way, there *is* a place where comments on patches gets listed on github.
17:43 frioux The news feed
17:43 jnthn phone
17:43 pmichaud frioux: yes, but how many people are watching that?  (Yes, I noticed that earlier today also)
17:43 frioux so if I log into github.com it shows your comment on my patch yesterday
17:43 frioux pmichaud: agreed
17:43 frioux I am just saying, if we want to do github we just say subscribe to your news feed and you'll get it
17:44 frioux but I don't really care which happens
17:44 pmichaud in some senses it would be better if everyone could easily see everyones' comments
17:44 frioux as long as it's easy for you and easy for us more will get done
17:44 frioux wait, so people can't see your comments on my patch?
17:44 frioux well...not easily they can't I'm sure
17:45 pmichaud I suspect they _can_, but how many feeds would have have to subscribe to for that?
17:45 pmichaud s/have/they/
17:45 frioux 1 per dev I presume
17:45 frioux which is silly
17:45 pmichaud that doesn't scale well :-)
17:45 frioux agreed
17:45 frioux well, any other patches I submit will be via RT and I updated my workflow to say that
17:45 pmichaud thanks.
17:46 frioux if github makes pull requests nicer we can look at that again then
17:46 pmichaud so far RT seems to work out best.  Maybe github will evolve a bit.... exactly.
17:46 frioux but in the meantime I'll espouse the idea to use RT entirely for patches
17:46 frioux and honestly if we use RT we never even have to fork rakudo
17:46 frioux but that's a different more technical issue about git
17:46 pmichaud thanks, that will be helpful.  I enjoyed reading the overnight conversations and explanations -- I really appreciate you passing the word along to the others.
17:47 frioux no problem :-)
17:47 frioux well, I am at work, so I have to get back to that, but I figured I'd mention it while you're here
17:47 pmichaud I got an image we can temporarily use for Rakudo -- comments welcome.
17:48 frioux url?
17:48 pmichaud it can be seen at http://github.com/rakudo/rakudo
17:48 pmichaud (upper right corner)
17:49 pmichaud bigger version at http://pmichaud.com/perl6/rakudo-1.png
17:49 frioux I think it's cool, but I don't have those sensibilities
17:50 pmichaud it's at least better than the empty  "?" and o_O images that have appeared on github and twitter :-)
17:50 frioux agreed
17:50 frioux better identity
17:51 pmichaud anyway, thanks again for your excellent help on the patch workflow process.  It's taken a weight off of my shoulders.
17:51 pmichaud back in 15
17:58 jnthn OK - back...
17:59 jnthn pmichaud: For when yu're back - don't mind doing that refactor.
17:59 jnthn Planned to do Rakudo day soon.
17:59 jnthn Can't tomorrow - too many little bits to attend to.
17:59 pmichaud on friday I'm on trip with family (more)
17:59 diakopter .begotten
18:00 diakopter wow.
18:00 pmichaud I plan to be doing a fair bit of catching up and rakudo stuff in evenings while they're sleeping
18:00 pmichaud but I'll be a little distracted for a week
18:00 jnthn OK
18:00 pmichaud (also, I'll be in Pacific Time zone instead of Central)
18:01 pmichaud anyway, any day for a Rakudo day would be fine.  I'll probably assign a couple of tickets to you to look at, though :-)
18:01 jnthn I'm working Saturday this week too, since I had some vacation at start of the week...
18:01 jnthn If you trust me to just get on with stuff, and are happy to review it later on, Friday is easiest for me...
18:01 pmichaud I'm happy with that.
18:01 jnthn Just discovering someone wants me eyes on stuff on Saturday...
18:02 jnthn *my
18:02 jnthn OK, let me know what tickets you want me to deal with and I'll try. :-)
18:02 pmichaud The biggest challenge I'm seeing at the moment is that people are eager to contribute settings code for some of the builtins, but what's being contributed isn't really good design
18:03 jnthn I've seen some suspect bits, yes.
18:03 jnthn But at the same time want to encourage people.
18:03 jnthn So yes, challenge. But I totally agree we don't want to put stuff in that has issues.
18:03 pmichaud I made a list of some easy candidates on the github wiki.
18:04 jnthn That's a good thing.
18:04 jnthn I still plan to work on the Array/List/Hash/Mapping etc.
18:04 jnthn Since I need it to do typed arrays properly.
18:05 jnthn Which I in turn need to finish my grant...and get paid.
18:05 pmichaud okay, that should be fine.  I'd like to review before it goes back into trunk.
18:05 jnthn Sure, I'd like you to as well.
18:05 pmichaud but it's not likely anyone will be moving trunk away from what you're doing.
18:05 jnthn It's a painful refactor.
18:05 jnthn Certainly not -Ofun at this point.
18:05 pmichaud we need to fix vivification, too.
18:06 jnthn Aye.
18:06 pmichaud oh, on another point -- I'm thinking that !method_dispatch should also do a !DEREF on the invocant prior to dispatching.
18:06 jnthn Well, just the isa RPA to has-a RPA is hurting plenty ATM.
18:10 pmichaud over the next couple of days I'll try to identify some of the bigger issues that need looking at.
18:11 jnthn Sure.
18:11 jnthn A kind of roadmap for the next couple of months would be good.
18:11 jnthn I am keen to finish up my TPF grant soon and plan to immediately apply for a follow-up one.
18:11 pmichaud yes.  If it doesn't happen today/tomorrow for some reason, I'll do it on the plane.
18:12 pmichaud oh!  Some folks on parrot were looking for help with updating pdd13, too.
18:12 jnthn So I can keep a-hacking. :-)
18:12 pmichaud in preparation for the 1.0 release.
18:12 jnthn I glanced at the flame^Wthread...
18:31 moritz_ rakudo: regex { a ~ b c }; say "alive";
18:31 p6eval rakudo 0c893b: OUTPUT«alive␤»
18:31 moritz_ rakudo: regex { a ~ [b] c }; say "alive";
18:31 p6eval rakudo 0c893b: OUTPUT«Statement not terminated properly at line 1, near "c }; say \""␤␤current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)␤»
18:31 moritz_ rakudo: regex { a ~ (b) c }; say "alive";
18:31 p6eval rakudo 0c893b: OUTPUT«Statement not terminated properly at line 1, near "c }; say \""␤␤current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)␤»
18:31 Tene_ moritz++
18:32 moritz_ rakudo: regex { a ~ b (c) }; say "alive";
18:32 p6eval rakudo 0c893b: OUTPUT«Syntax error at line 1, near "}; say \"al"␤␤current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)␤»
18:32 Tene_ rakudo: regex { a ~ b [ c ] };
18:32 p6eval rakudo 0c893b: OUTPUT«Syntax error at line 1, near "};"␤␤current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)␤»
18:34 * moritz_ tries to grok Perl6Regex.pir
18:37 TimToady if it's any comfort, STD doesn't handle anything other than strings around ~
18:38 TimToady because it sets $*GOAL to one
18:39 TimToady and various things test what the current goal is.  I suppose it could set the goal to the pattern to match instead...
18:40 moritz_ well, PGE tries to parse arbitrary regexes around it
18:40 TimToady gimme5 transliterates it to non-sensical Perl 5
18:41 moritz_ but only with 'tighter'=>'infix:' which doesn't seem to do what we want
18:41 TimToady which isn't completely helpful
18:42 pmichaud jnthn: ooc, would it be helpful if I attempted the isa-RPA -> hasa-RPA conversion, since I'm already very familiar with the list/array code?
18:43 mberends joined #perl6
18:44 pmichaud 'tighter'=>'infix:' ought to be good enough, because the circumfix brackets should allow concatenations within them.
18:44 pmichaud (obviously it's not good enough, but that's the theory)
18:44 moritz_ I think 'tighter' =>'term:' works
18:44 moritz_ yes, it seems it does
18:44 moritz_ fancy a patch?
18:44 pmichaud that seems scary.
18:45 moritz_ but it passes all pge tests ;-)
18:45 moritz_ and a new one that I wrote
18:45 pmichaud does it work if either the goal or the expression are quantified?
18:45 pmichaud { a ~ b+ c* }
18:46 moritz_ the '(' ~ ')' \d+ tests still work
18:46 moritz_ wait a sec, trying...
18:47 moritz_ no, doesn't
18:47 moritz_ I was running the wrong tests :(
18:48 moritz_ what exactly does 'infix:' stand for?
18:48 pmichaud concatenation
18:48 moritz_ ah
18:48 moritz_ hm
18:50 pmichaud (rebuilding parrot now to test some things.)
18:50 moritz_ I can't even find the rules for parsing [...]
18:51 pmichaud circumfix:[ ]
18:51 moritz_ and that has implicitly tightest precedence?
18:52 pmichaud it's same precedence as term:
18:52 moritz_ ah right
18:52 pmichaud but any circumfix refuses to stop parsing until it has seen its closing token
18:52 pmichaud (even if that goes lower than the 'tighter' precedence)
18:52 moritz_ yes, that makes sense
18:53 pmichaud it doesn't appear to be a parsing issue, at least not on its own.
18:53 pmichaud PGE seems able to parse   a ~ [b] c    and   a ~ b [c]
18:54 Tene_ so what throws a syntax error, then?
18:54 pmichaud not sure.
18:55 pmichaud it doesn't seem to be able to compile it into a pge AST, though.
18:55 pmichaud so it's an error in the reduction somewhere, I geuss.
18:55 pmichaud *guess
18:55 finanalyst joined #perl6
18:56 pmichaud yes, it looks like the reduction fails.
18:57 moritz_ pmichaud: would you like a few more tests?
18:57 pmichaud http://nopaste.snit.ch/15861  # pir code I'm using to test PGE
18:58 pmichaud more tests are often welcome, yes.  But what I just nopasted should be enough for me to track it down.
18:58 pmichaud the last _dumper output gives me "null", which means it's failing to produce a valid pge::exp tree.
19:00 pmichaud looks like I'm getting an extra parse of the 'c'
19:01 pmichaud in  a ~ b [c]
19:01 pmichaud i.e., after parsing the brackets, it's continuing the parse from the wrong place.
19:01 moritz_ dooe the dumper truncate the string it shows?
19:02 pmichaud no, but sometimes the from/to in the parse tree aren't *exactly* what they should be.
19:02 moritz_ ah
19:02 moritz_ it ssems to miss the final ]
19:02 moritz_ but that might be such an inaccuracy
19:02 pmichaud in the dumper output? yes.
19:03 moritz_ offby1 ;-)
19:03 pmichaud well, it might be actually off-by-more-than-1
19:04 pmichaud aha, yes, that's it.
19:05 pmichaud 19:05 <nopaste> "pmichaud" at 72.181.176.220 pasted "possible patch to fix" (23 lines) at http://nopaste.snit.ch/15862
19:06 pmichaud it was grabbing the end-position from the wrong match.
19:06 moritz_ ah
19:06 pmichaud testing now.
19:07 pmichaud (nopaste 15863)   You must either have a lot of faith in me or a desire to torture me.  Or both.  :-)
19:09 moritz_ both. And I love tests ;-)
19:10 moritz_ uhm, it seems the formatting of my tests are wrong
19:10 pmichaud tabs, not spaces.
19:10 pmichaud I can fix it.
19:11 pmichaud I can manually enter them.. Even quicker.
19:11 moritz_ ah, I had expandtab enabled by default
19:12 moritz_ only one of them fails
19:12 moritz_ the last of the new ones
19:14 pmichaud that's because PGE still throws an exception instead of doing something more reasonable.
19:14 moritz_ so with /../ instead of n it will pass?
19:14 pmichaud yes, because it'll be looking for the error message.
19:14 moritz_ ah, good to know
19:15 moritz_ it seems my faith was not so ill placed after all ;-)
19:15 pmichaud okay, now to run a few more 'make tests'
19:15 pmichaud and see if rakudo builds.
19:16 pmichaud abc passes.  nqp passes.
19:29 pmichaud r37317 should have the fix.  If Rakudo passes its spectests then I'll bump PARROT_REVISION so that we get the correct pge behavior in rakudo.
19:29 cspencer joined #perl6
19:30 * moritz_ builds and spectests
19:31 moritz_ and I'll see if we already have spectests for RT #62122
19:31 Tene_ pmichaud: suggestions on how to write "backtracking over this token is a parse fail"?
19:32 moritz_ isn't that just ::: ?
19:32 pmichaud you want it to fail the entire parse, just the rule, or ... ?
19:34 Tene_ The entire parse.  for example, if (condition); with no body.  You don't want to fall back to calling the if() subroutine.
19:34 Tene_ At least, I don't, in this example.
19:34 pmichaud so, you don't want to backtrack over the if or the condition or ... ?
19:34 pmichaud what's the basic rule now?
19:35 pmichaud (easier to explain from an example)
19:35 Tene_ rule if { 'if' <cond=term> <ifture=term> <iffalse=term> }
19:35 Tene_ iftrue
19:35 pmichaud rule if { 'if' <cond=term> [ <iftrue=term> <iffalse=term> || <.panic: 'parse fail'> ] }
19:36 * Tene_ nods.
19:37 pmichaud amazing how it looks like the   "dothis() || die"   pattern from perl  :-)
19:37 moritz_ or even rule if { 'if' [ <cond=term> <iftrue> ... ] || <.panic: ...> }
19:38 moritz_ if you want all 'if's to be parsed as if statements
19:38 Tene_ moritz_: wouldn't that panic if 'if' didn't match?
19:38 Tene_ or is || tighter than | somehow?
19:38 moritz_ oh wait
19:39 moritz_ but pmichaud's example wouldn't panic if it matched an 'if', but the first <term> wen wrong, right?
19:39 pmichaud in my example, if we don't match an 'if', it just means we fail the rule.
19:39 pmichaud if we match an 'if' but not a condition, we fail the rule.
19:40 pmichaud if we match an 'if' and a condition, we either find iftrue+iffalse terms or we panic and fail the parse.
19:40 moritz_ ah
19:40 cspencer rakudo: sub foo is export{ return 1};
19:40 p6eval rakudo 0c893b: OUTPUT«Malformed routine definition at line 1, near "foo is exp"␤␤current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)␤»
19:40 moritz_ I wanted to construct a rule that paniced when matched an 'if', but the the condition failed
19:40 cspencer is the space between the "is export" and the "{" not optional?
19:40 pmichaud it is not optional.
19:41 Tene_ moritz_: just move the [ before the condition
19:41 moritz_ but I think I need more brackets for that
19:41 pmichaud is export{'...'}   is something different from is export { ... }
19:41 cspencer oh, ok :)
19:41 pmichaud yes, just move the bracket before <cond=term>
19:41 moritz_ ok
19:41 cspencer what's the export{'...'} taken to mean?
19:41 pmichaud rule if { 'if' [ <cond=term> <iftrue=term> || <.panic> ] }
19:42 pmichaud if we match 'if', we either find a condition and iftrue part or we panic
19:42 moritz_ cspencer: a postcifcumfix:<{ }> on export
19:42 moritz_ which doesn't really make sense, because 'is export' doesn't return a value
19:42 moritz_ on which that method could be called
19:43 pmichaud at any rate, the brackets following the trait are different from the brackets defining the body.
19:43 pmichaud because they're postcircumfix.
19:43 cspencer right, ok :)
19:43 moritz_ pmichaud: all spectests pass with r37319
19:44 pmichaud moritz_: okay, good.  my spectest run should be finishing shortly.
19:46 pugs_svn r25799 | moritz++ | [t/spec] unfudge tests for RT #62122 (goal matching with brackets)
19:54 cspencer in part of S32 it refers to "our Item multi method ....." - Item hasn't been implemented as a class, so should method definitions just be left as "multi method ..."?
19:54 moritz_ yes
19:54 cspencer Item essentially implies anything then
19:56 pugs_svn r25800 | lwall++ | rechristen .<?> as .rob (at least for now)
19:57 moritz_ .rob?
19:57 moritz_ result_object?
19:58 NordQ joined #perl6
20:00 TimToady phone
20:07 jnthn role Theif { method rob { ... } }
20:07 jnthn ;-)
20:07 jnthn It's short. Short is good.
20:09 Tene_ role Jonathan { ... }
20:09 TimToady pmichaud: ping phone
20:10 pasteling "wayland76" at 121.44.209.19 pasted "Rakudo build error" (9 lines, 421B) at http://sial.org/pbot/35476
20:10 jnthn Tene_: I'm get to be defined? ;-)
20:10 jnthn *yet
20:10 wayland76 Does anyone know why I get the Rakudo build error specified in that pastebot link?
20:11 cspencer the PIR implementation of the Any first method returns a fail("...") if it doesn't match anything, but i can't find that behaviour in the spec
20:11 cspencer is that the proper behaviour?
20:11 moritz_ wayland76: that means that you missed 'make clean' in the rakudo dir
20:12 jnthn cspencer: I figure it'd return some kind of undef...
20:13 jnthn Which fail does. Just an interesting undef.
20:13 cspencer okay :)
20:14 wayland76 moritz_: Well, I still get it if I do "make clean" as well
20:15 wayland76 @jonathans = (Jonathan.new() x 100);
20:15 lambdabot Unknown command, try @list
20:15 moritz_ it's xx for lists in Perl 6
20:15 wayland76 oh well :)
20:16 dalek rakudo: 9844bf0 | (Moritz Lenz)++ | build/PARROT_REVISION:
20:16 dalek rakudo: bump PARROT_REVISION so that we benefit from recent PGE fixes
20:16 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/9​844bf0fb31b5f5254895a972735355543814434
20:17 barney joined #perl6
20:17 wayland76 In the case of that error I pastebotted, it errors on "rebless_subclass sub, $P0", when it gets to "sub".  Is there a reason this would be particularly likely?  For example, is it possible that rebless (or sub) hasn't been defined for some reason?
20:18 wayland76 (Oh, and I'm using the latest Parrot, built as an RPM)
20:18 pmichaud wayland76: usually this means you need a "make clean" in Rakudo
20:19 rafl joined #perl6
20:19 wayland76 Well, I just tried that, and it didn't work for me
20:19 wayland76 Do we know what causes the need for the "make clean"?
20:20 Kimtaro joined #perl6
20:23 wayland76 Or, coming at it from a slightly different angle, do we know why it empties out gen_setting.pir before it does this?
20:25 wayland76 Wait, do I have to do Configure.pl again after the make clean?
20:25 wayland76 Oh, doesn't make a difference
20:33 ujwalic joined #perl6
20:34 ujwalic what does "svn: Error resolving case of 'http:\\svn.pugscode.org\pugs\t\spec'" mean
20:34 wayland76 It may mean that you need to use forward slashes
20:35 bacek joined #perl6
20:36 bacek good morning
20:37 ujwalic me on windows
20:39 buu joined #perl6
20:44 jnthn ujwalic: Ah, I've heard about that one before, but not got around to patching it yet...if you edit that to have forward slashes in the makefile by hand it should work out...
20:45 ujwalic thanks ... I was about to modify Configure.pl :)
20:45 jnthn ujwalic: Well, feel free to submit a Proper Fix too. ;-)
20:46 ujwalic s/// except line with svn .. will that do
20:46 wayland joined #perl6
20:47 diakopter ujwalic: but also use a \ to split that makefile line into two lines
20:47 diakopter so the last part of the command still gets substituted
20:48 ujwalic ok
20:48 pmichaud wayland76: sorry, I got caught on the phone.
20:49 pmichaud rebless_subclass is a dynamic opcode for Parrot -- it's not a Parrot built-in opcode
20:49 pmichaud s/dynamic opcode for Parrot/dynamic opcode for Rakudo/
20:49 moritz_ so it means that some dynops where not built or loaded?
20:49 pmichaud correct.
20:50 pmichaud so, when Parrot sees it (and when the dynop isn't loaded), it thinks it's supposed to be a subroutine call and complains about a missing paren.
20:51 jnthn *nod*
20:51 pmichaud generally I've seen it happen after (re)building Parrot but not rebuilding Rakudo.
20:51 wayland Ok, I figured it was something like that.  Is that declared in this line: 10:inline op rebless_subclass(in PMC, in PMC) :base_core {
20:51 pmichaud Also, I'm not certain what the status of handling dynops is for installed version of Parrot.
20:51 jnthn Yes
20:51 wayland (I'm trying to debug the build process)
20:52 jnthn I've seen people run into this occasionally, but never reproduced it myself...
20:52 pmichaud I *think* that one has to do "install-dev" with Parrot in order to get the tools needed to build Rakudo.
20:52 pmichaud (or any other language that has dynamic PMCs or dynamic opcodes)
20:52 moritz_ it always happened to me when I built rakudo and then re-built parrot
20:53 moritz_ and then again 'make' in rakudo without a 'make clean' first
20:53 wayland Well, I modified the Parrot RPM to do install-dev
20:53 pmichaud afaik, rakudo's make file isn't yet set up to build from install-dev
20:53 wayland but something might still be looking in the wrong places
20:53 pmichaud it still expects to build using Parrot's build tree
20:53 moritz_ on debian that should be two pacakges, parrot and parrot-dev
20:53 wayland Yah, that's what I'm trying to fix :)
20:54 wayland On Fedora, it's parrot and parrot-devel
20:54 wayland (and parrot-docs)
20:54 wayland I have both those built and installed
20:56 Whiteknight joined #perl6
20:57 pmichaud just a sec... playing with a patch to have --gen-parrot also do a "make install-dev"
20:58 pmichaud (and starting with some fresh checkouts)
20:58 wayland Ok.  I'm not using --gen-parrot :)
20:59 pmichaud right... but whatever we do I want to make sure that --gen-parrot continues to work, so it might be easier if --gen-parrot also did a local install.
20:59 wayland Great :)
20:59 pmichaud then we can have rakudo "build from an installed parrot" even if it's just a locally installed copy in parrot/
21:00 pmichaud instead of building from the build tree.
21:00 wayland Question -- if it can't find the dynext directory, would that cause the problem?
21:00 pmichaud likely, yes.
21:00 pmichaud because then the loadlib would fail.
21:01 mikehh I have been using the --parrot-config option
21:01 donaldh joined #perl6
21:01 wayland What parameter would I need to pass to parrot to tell it that? -L ?
21:02 pmichaud mikehh: it still depends on which version of parrot-config you end up using.
21:02 pmichaud i.e., if you use the parrot-config in the parrot build tree, it's still dependent and installs things to the build tree.
21:03 mikehh well I used perl Configure.pl --parot_config=../parrot/parrot_config
21:03 wayland Oh, yes, I see, -L
21:04 jnthn It sounds like the .loadlib is failing silently...
21:04 jnthn Which is probably a Bad Thing.
21:04 mikehh missed an r there
21:04 jnthn *Or* it's finding it but it was built against a different Parrot and it doesn't recognize the entry points it expects...
21:05 moritz_ and still shouldn't fail silently
21:05 jnthn Does the error change if you add a spelling mistake to the .loadlib directive? If not, it could be that it just ain't finding it but is silently ignoring that.
21:05 jnthn moritz_: Sure, but it's maybe interesting to know which it is.
21:06 mikehh I have had successful builds of rakudo using that most recently parrot r37310
21:06 pmichaud mikehh: yes, it looks to me as though you're building using Parrot's build directory
21:07 pmichaud (which is fine, but not what packagers want)
21:07 moritz_ jnthn: when I introduce a type in .loadlib 'perl6_grou' then it fails with "Class 'Perl6MultiSub' not found"
21:07 mikehh that's what I was hoping would happen make test/spectest pass
21:07 moritz_ jnthn: which is not a "loadlib failed"
21:08 NordQ joined #perl6
21:09 mikehh perhaps not but that would allow them to point to the relevant parrot dir
21:09 jnthn moritz_: Ugh.
21:09 jnthn report parrotbug ;-)
21:10 jnthn Oooh.
21:10 jnthn http://www.idg.no/computerworld/article123782.ece
21:10 mikehh mind you I am building and they probably want a pre-built set up
21:11 jnthn pmichaud made the Norweigan computing press ;-)
21:12 * jnthn is happy to see what looks like a fairly major site promoting the Oslo Perl Workshop.
21:13 mikehh jnthn: That's ok if you can read Norwegian or whatever :-}
21:14 jnthn mikehh: That's a language I didn't try yet... :-)
21:16 wayland It's just like English with a funny accent.  "Friprog-legenden Larry Wall skal tale til utviklerne under Nordic Perl Workshop." means "Free-programming legend Larry Wall shall tell (un)til utvik learns in the Nordic Perl Workshop"
21:16 wayland (sorry to any actual Norwegian speakers here)
21:17 ZuLuuuuuu joined #perl6
21:18 moritz_ wayland76: you have a point there. I hesitantly try to learn Norwegian these days, and it's rather easy to understand if you know German and English
21:18 moritz_ at least much easier than most other languages ;-)
21:19 jnthn I can sorta guess bits of it from knowing English.
21:19 ujwalic to create  a patch for rakudo do i need to have a account @ github
21:19 jnthn I imagine it's a lot easier than trying to learn, oh, say, Slovak. ;-)
21:20 moritz_ ujwalic: not if you don't want... you can just clone the repo and create the patch locally
21:20 ujwalic fine
21:20 wayland76 Well, Norwegian is a North Germanic language (as English and German are West Germanic), whereas Slovak isn't Germanic at all
21:22 jnthn wayland76: Right.
21:22 jnthn But Slovak does help with, say, Russian. :-)
21:22 wayland76 Of course :)
21:22 jnthn Which is lucky, since it's all the customs officer spoke on the train last night...
21:23 wayland76 Useful :)
21:24 jnthn Was a little amused. "Do you understand Ukrainian?" "No." They wonder what to do then realize...find someone who speaks another language. They come back with someone. I think...ah, they'll speak English. Nope. "Do you speak Russian?" Well, turns out enough to make customs happy I didn't work in Ukraine and wasn't smuggling fags...
21:24 jnthn s/fags/cigarettes/ # for our American readers... ;-)
21:25 wayland76 Google Translate says it's "Friprog-legend Larry Wall to speak to developers under the Nordic Perl Workshop."
21:30 alester Where did http://s3.amazonaws.com/twitter_production/​profile_images/92869533/rakudo-1_normal.png come from
21:30 alester and how can I get a bigger one for the logo for rakudo.org
21:39 pmichaud alester: it's a logo I had a friend of mine put together.
21:39 alester please send it my way
21:39 pmichaud bigger one at http://www.pmichaud.com/perl6/rakudo-1.png
21:39 alester a bigger one
21:40 alester I can handle that.
21:40 alester thanks.
21:42 wayland76 Well, I've convinced it to pass a -L to parrot, but I'm still back where I started
21:42 PerlJam what do the symbols mean in that image?
21:43 wayland76 It's a man with a beard in a doorway :)
21:44 dalek rakudo: cd256dc | pmichaud++ | docs/spectest-progress.csv:
21:44 dalek rakudo: spectest-progress.csv update: 317 files, 7148 passing, 0 failing
21:44 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/c​d256dc64b44f8d587f09e42a95f4ead0118a1f1
21:48 pmichaud PerlJam: I'm told they're the kanji for "rakudo"
21:48 bacek pmichaud: any thought about http://github.com/bacek/rakudo/commit/8​557c895d93731240db8b0eeaeeabe09a60bf964 ? (Reimplementing Any.min and Any.max in Perl6)
21:48 bacek afk & $dayjob ~~ $self
21:49 PerlJam I would have thought "rakudo" would be a single glyph.  Maybe it's "rakuda do"?
21:49 pmichaud it's possible.
21:52 pmichaud actually, I think it must be "rakudo".  The same pair of images appears on http://openlibrary.org/b/OL12350100M
21:53 pmichaud also:  http://www.mahou.org/Kanji/335A/?usage
21:54 cspencer rakudo: my $r = * ~~ (12 | Whatever);
21:54 p6eval rakudo cd256d: OUTPUT«Use of uninitialized value␤»
21:54 cspencer why does that expression produce that particularly error message?
21:54 wayland76 breakfast &
21:54 cspencer s/particularly/particular/
21:54 pmichaud cspencer: because rakudo doesn't know how to evaluate * as a lone term.
21:55 cspencer ah ok.  is there a better way of checking whether something is a Whatever object?
21:55 pmichaud rakudo: my $r = *;  say $r ~~ Whatever;
21:55 moritz_ rakudo: say * ~~ Whatever;
21:55 p6eval rakudo cd256d: OUTPUT«1␤»
21:55 p6eval rakudo cd256d: OUTPUT«1␤»
21:55 pmichaud that part seems to work.
21:56 moritz_ * is undef
21:56 moritz_ and $thing ~~ 1 will do a comparison with ==
21:56 moritz_ that's where teh warning comes from
21:57 pmichaud that seems reasonable.
21:57 cspencer ok, that makes sense then
21:58 cspencer rakudo: my $r = * ~~ (Whatever | 12)
21:58 p6eval rakudo cd256d: RESULT«Bool::True»
22:08 ujwalic what are the naming conventions for github/rakudo branch names
22:09 moritz_ underscores to delimit words
22:09 moritz_ and use your common sense ;-)
22:09 ujwalic :)
22:10 PerlJam underscores?
22:10 moritz_ _
22:10 PerlJam git groks dashes just like perl 6 identifiers :-)
22:10 pmichaud I prefer hyphens then :-)
22:10 pmichaud but I'm not too picky :-)
22:11 moritz_ ah, I didn't know that
22:11 moritz_ hyphens it is, then
22:11 pmichaud bacek: I'm not too keen on calling the comparison function twice just to compute min or max
22:12 moritz_ pmichaud: btw cspencer's patch for Any.first() looks good to me
22:12 pmichaud also, I don't see that minmax is defined in S32 yet... is it somewhere else?
22:13 frioux can't you use Xor for findind min and max somehow?
22:13 pmichaud I didn't see the Any.first() patch
22:13 pmichaud ah, because it's only 75 mins old :-)
22:13 PerlJam isn't first() the same as grep, but with a last in it?   something like  gather { take($_), last if &test($_) for @.list; }   ?
22:14 moritz_ PerlJam: except that gather/take returns a list, and first() returns an item
22:14 moritz_ but it's very simple, yes
22:14 japhb joined #perl6
22:14 moritz_ return $_ if $test($_) for @.list;
22:14 moritz_ fail('No values matched');
22:14 pmichaud I like it -- go with that.
22:15 PerlJam yeah, I'm still in the stage of using gather/take for everything because I think it's so cool  :)
22:15 ZuLuuuuuu left #perl6
22:15 pmichaud I wonder if we still want to be putting 'our' on the builtins.
22:16 moritz_ since they have no function right now I'll rip them out
22:16 cspencer pmichaud: is 'our' a bad thing?
22:16 pmichaud cspencer: not necessarily, but the meaning of 'our' has changed within the past 10 or so days.
22:16 cspencer generally, i was just following the method/sub's as defined in S32
22:16 cspencer oh, i must have missed that :)
22:16 pmichaud at least, the meaning of methods without 'our' has changed.
22:17 jnthn pmichaud: AIRITT our means "it's in the namespace and available as a method"?
22:17 cspencer what do they mean with/without the our now?
22:17 jnthn cspencer: IIUC, callable as a method but not lookupable through the package.
22:17 pmichaud yes, 'our' means "it's in the package"
22:17 Limbic_Region joined #perl6
22:17 pmichaud (in the namespace)
22:17 cspencer ah ok
22:17 pmichaud without 'our', it's not in the package namespace
22:17 pmichaud with our, one would be able to do   &Any::first
22:18 cspencer gotcha, ok
22:18 jnthn And oh hey, we got Parrot fixed to make those to easy, right? :-)
22:18 pmichaud not yet it's not fixed.
22:18 jnthn No :nsentry('name') and :method('name')
22:18 jnthn ?
22:18 moritz_ pmichaud: so should I remve the our's on sub and method defitions for now?
22:19 pmichaud moritz_: I don't know, I was just wondering if we should.  My inclination is that perhaps they should remain there.
22:19 pmichaud so that &Any::first is valid.
22:19 jnthn It's a design call really...
22:19 pmichaud jnthn: :method('name') and :nsentry('name')  are in parrot, but there's still not a way to compile-time create a method that doesn't appear in the namespace.
22:20 pmichaud https://trac.parrot.org/parrot/ticket/389
22:20 jnthn Just :method('name') doesn't...ok.
22:20 pmichaud the workaround will likely be that PCT will generate methods with names of ''
22:20 * jnthn wonders how hard it is to fix that in Parrot
22:21 jnthn Getting Rakudo more right tends to motivate me to fix Parrot-y things...
22:21 pmichaud however, doing that in PCT will likely mess up !TOPERL6MULTISUB, now that I think about it.
22:21 pmichaud because .name() won't report back the method name.
22:21 jnthn Right.
22:21 jnthn Let's fix Parrot.
22:21 pmichaud I'd read the ticket first -- istr that allison's response was "after 1.0"
22:22 jnthn Yeah,noticed that.
22:22 jnthn But 1.0 is not far off anyway.
22:22 jnthn We can hold off until then.
22:22 jnthn IMO
22:22 wayland76 Actually, I submitted a patch recently, and kid51 created a separate branch for it to live in
22:22 wayland76 (parrot patch)
22:23 ujwalic what should be the *pull request* message
22:23 PerlJam ujwalic: "Cool stuff!  Pull it now!"
22:23 PerlJam ;-)
22:24 wayland76 minmax is listed in S32-setting-library/Containers.pod
22:25 pmichaud I only saw it for Range
22:26 wayland76 What should it be on?
22:26 pmichaud I'm not sure we should have a .minmax at all.  But .min and .max would likely be defined on Any
22:27 pmichaud so if we have a .minmax, it'd be on Any also.
22:27 wayland76 Oh, I see, it's an operator.  Yeah, maybe it shouldn't be a method
22:27 pmichaud S03 mentions .minmax as a method on Ranges
22:28 wayland76 Yeah, just saw that
22:28 wayland76 So maybe S32 is right :)
22:28 wayland76 Or maybe minmax needs to be thought through more :)
22:29 pmichaud S03 also mentions a "minmax" listop.
22:29 pmichaud AFAICT, many things about Ranges need to be thought through more.
22:29 pmichaud S02 still shows Range as being immutable, for instance.
22:30 moritz_ and they aren't?
22:30 ujwalic Configure.pl is fixed for Windows,  Fixed conversion of '/' to '\' inside URLs in Makefile
22:31 ujwalic http://github.com/ujwal/rakudo/commit/6​967c3249c71450c71dc3faabb3d9ee195adc593
22:33 pmichaud I'll accept 6967c3
22:33 pmichaud (if someone else wants to do the work of applying them, that's fine with me.  I'm a bit distracted at home at the moment.)
22:33 moritz_ ok, I'll do it
22:34 pmichaud same for Any.first
22:38 dalek joined #perl6
22:38 moritz_ both pushed
22:39 moritz_ and dalek ate them here
22:40 moritz_ time for bed &
22:44 skids joined #perl6
22:44 pmichaud afk # fetching family dinner
22:47 diakopter bring home [the] bacon.
22:50 cspencer joined #perl6
22:57 cspencer one of the tests for the kv sub uses a named parameter like: "my @kv = kv(:array(@array))", but i don't see that kv accepts named params in the spec
22:57 cspencer did i miss something?
22:59 jnthn That test feels suspect to me...I'd expect .kv is an exported multi
22:59 jnthn And the first parameter comes frm the invocant of the defining class.
22:59 jnthn Which is never a named, AFAIK.
23:00 cspencer it seemed a little strange when i came across it
23:17 ZuLuuuuuu joined #perl6
23:22 bacek_ joined #perl6
23:28 kate21de1 joined #perl6
23:34 justatheory joined #perl6
23:37 s1n pmichaud: don't forget, tomorrow at 7pm
23:40 arejay joined #perl6
23:42 frioux is it a pm meeting or something?
23:43 s1n frioux: not really, we meet monthly and discuss rakudo, i ask questions, make observations, yada yada :)
23:43 frioux that's awesome
23:43 s1n he lives like 5 minutes from me
23:43 frioux wow
23:44 frioux doesn't he work at some university?
23:44 wayland76 That's pretty useful (for you, anyway :) )
23:44 s1n only like very very part time for one in the houston area
23:44 frioux ...
23:44 frioux houston eh?
23:44 NoirSoldats joined #perl6
23:45 frioux I wonder if I could come hang out one time...
23:45 s1n wayland76: yes, it is, i pick his brain, treat it like a mentorship
23:45 s1n frioux: we're in dallas :)
23:45 frioux fdjkslafdjkls;a
23:45 frioux me too!
23:45 s1n where about?
23:45 frioux live in plano, work in richardson
23:45 s1n sounds like 5 minutes further south from me than pmichaud
23:45 s1n i'm in mckinney
23:46 frioux oh my goodness
23:46 s1n he's in plano/allen
23:46 s1n i'll mention it next time
23:46 frioux well, at some point I wanna meet you guys
23:46 wayland76 Dallas.p6m :)
23:46 s1n course if you want to meet up with just me, i'm cool with that too
23:46 frioux no rush or anything, we are all busy, but still
23:46 frioux yeah, for sure
23:46 frioux speaking of
23:46 s1n weekends are best for me :)
23:46 frioux is there a different dallas.p6m than dallas.pm?
23:46 frioux because that seems a little dead
23:47 s1n dallas.pm isn't overly active
23:47 frioux like, they say meet once a month, but the next meeting is at the end of april
23:47 s1n i didn't even bother with dallas.pm, but if you want to start a dallas.p6m, i'm all for that
23:47 s1n in fact, if you want to start the first p6m, i'm up for that too
23:48 wayland76 I wasn't suggesting that one existed, but merely that you could form the first p6 Perl Mongers
23:48 frioux that could be oh so excellent
23:48 s1n let's do it then
23:48 frioux yes
23:48 frioux we should
23:48 s1n henceforth frioux and i are the first members of p6m :)
23:48 wayland76 Actually, it might even be an idea to start p6m as a subgroup of eg. Dallas.pm
23:48 * frioux high fives s1n
23:48 s1n we need a website now :)
23:48 * s1n fives back
23:48 frioux I have some hosting at dreamhost
23:48 wayland76 So as to attract more members :)
23:48 frioux right
23:49 s1n exactly, but we will have to eventually branch off
23:49 wayland76 p6m.org is available
23:49 s1n ooo, someone take it!
23:49 wayland76 you can get dallas.p6m.org :)
23:49 frioux haha
23:49 s1n omg, we need that domain
23:49 Sepheebear joined #perl6
23:49 wayland76 Is someone getting it?
23:49 frioux where should I buy it?
23:49 frioux I'll do it
23:50 wayland76 Well, I usually use Nearlyfreespeech.net
23:50 frioux well, I only need the domain...
23:50 wayland76 They do domains :)
23:50 frioux can I get the domain here and not host it
23:50 wayland76 Lemme look... (I think so)
23:51 s1n i've never bought a domain
23:51 frioux I have afoolishmanifesto.com
23:51 s1n i'll buy it now if someone helped out
23:51 frioux but I got it through dreamhost
23:51 frioux it's really cheap, I don't mind paying for it
23:52 frioux and I'll just give it to larry or perl.org or whoever later
23:52 wayland76 Looks like it: https://www.nearlyfreespeec​h.net/services/domains.php
23:52 frioux but do they own the domain name or do we?
23:53 wayland76 pm.org is currently the Perl Foundation / Ask Bjorn Hansen
23:53 frioux because it's not really clear
23:53 s1n why don't i just go to godaddy or some other generic service?
23:53 frioux sure
23:53 frioux I don't see why not
23:53 s1n and then donate it to TPF
23:53 frioux you wanna get it or do you want me to
23:53 wayland76 I'm pretty sure that we do, but I've got privacy protection turned on
23:54 wayland76 (not we, they)
23:54 wayland76 (I'm just a nfsn customer)
23:54 ZuLuuuuuu left #perl6
23:54 frioux yeah
23:54 s1n it's $15 bucks a year on godaddy
23:55 s1n other than info harvesters, what privacy concern should we have?
23:55 wayland76 And $8.59 on NFSN
23:55 frioux hahaha
23:55 frioux I have no idea
23:55 wayland76 privacy -> less spam
23:55 s1n email or snail?
23:56 wayland76 email spam.  But they also protect you from domain scams
23:56 s1n i already get loads of both but i recycle and report (gmail)
23:56 frioux no clue
23:56 frioux I am gonna head home
23:56 wayland76 no clue about what?
23:57 frioux I'll be back later
23:57 wayland76 ok
23:57 frioux email vs snailmail
23:57 wayland76 well, the scams come via both
23:57 wayland76 I've seen them when I worked for an ISP

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

Perl 6 | Reference Documentation | Rakudo | Niecza | Specs