Camelia, the Perl 6 bug

IRC log for #perl6, 2009-03-03

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:04 skids std: my $i = Num;
00:04 p6eval std 25658: OUTPUT«ok 00:02 34m␤»
00:04 skids std: my %f; %f{Num} = 1;
00:04 p6eval std 25658: OUTPUT«ok 00:02 35m␤»
00:05 bacek_ rakudo: multi sub foo { ... }; say &foo.HOW
00:05 p6eval rakudo 66595b: OUTPUT«Null PMC access in find_method()␤current instr.: '_block14' pc 79 (EVAL_19:43)␤»
00:05 bacek_ this is root of last few masak's bugs.
00:06 pmichaud bacek_: fair enough -- the spec doesn't indicate what should be returned there, though.
00:10 skids pmichaud: http://github.com/skids/rakudo/commits/settingjunk  -- top 2 (because I suck at git) commits.
00:11 bacek_ rakudo: sub foo { ... }; say &foo.HOW
00:11 p6eval rakudo 66595b: OUTPUT«get_string() not implemented in class 'P6metaclass'␤current instr.: 'print' pc 19432 (src/builtins/io.pir:26)␤»
00:13 pmichaud rakudo:  say 1.HOW;
00:13 p6eval rakudo 66595b: OUTPUT«get_string() not implemented in class 'P6metaclass'␤current instr.: 'print' pc 19432 (src/builtins/io.pir:26)␤»
00:15 pmichaud skids:  I think I'd prefer to see us use map() instead of threading to get the .perl values.
00:16 skids Hey, the comments in the POD said "This should actually autothread" so I did so :-)
00:16 skids I mean in the PIR.
00:16 pmichaud self.eigenstates.map( { .perl } ).join(', ')
00:17 skids Yeah I had that, but then said, well let's gofor that aututhreading goal.
00:17 pmichaud I think that might've been written before it was clear that .perl actually doesn't autothread on Junction.
00:19 pmichaud and actually:    self.eigenstates.perl   might be sufficient.
00:20 pmichaud (since eigenstates already returns a List)
00:20 skids No it puts squares around.
00:20 pmichaud oh yes, correct.
00:21 s1n who's andy lester (that is, what nick does he go by)?
00:21 pmichaud on #perl6, it's 'alester'
00:22 s1n pmichaud: thanks :)
00:22 s1n i saw the rakudo.org change
00:22 pmichaud yes.  Now we just need a way to get people accounts.
00:22 * s1n is lined up
00:23 s1n so is anyone using the patch review process that github provides?
00:23 pmichaud there's been a discussion thread about that on p6c
00:24 s1n guess i should subscribe to that and not p6l...
00:24 s1n how's the discussion gone?
00:25 s1n because i've submitted pull requests looking for feedback and i get the feeling they're being ignored
00:25 pmichaud http://groups.google.com/group/perl.perl6.co​mpiler/browse_thread/thread/a309daf77e96acda#
00:27 * s1n reading intently
00:27 s1n that was just sat.
00:27 pmichaud sat was when I was trying to go through the fork queue and becoming incredibly frustrated by it.
00:28 s1n imagine trying to keep up with mainline
00:28 s1n i stopped trying to constantly rebase my tree (and reapply master patches)
00:28 Limbic_Region joined #perl6
00:31 pmichaud I agree -- I would probably do the same.
00:32 pmichaud I would get my branch working, _then_ rebase once, then test everything.
00:32 pmichaud anyway, wife just called and kids and I have to meet her for dinner (in 10 mins) so I gotta run. bbl
00:36 Helios joined #perl6
00:39 dalek rakudo: 4ec17da | pmichaud++ | docs/ChangeLog:
00:39 dalek rakudo: ChangeLog update.
00:39 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/4​ec17da9880835e5447a98a25f0e707f04c0e624
00:53 araujo joined #perl6
00:54 krunen joined #perl6
01:01 bacek_ pmichaud: "I'd prefer to look for a way to automatically promote nulls into undefs at the appropriate points". I don't quite understand what exactly do you mean?
01:06 hercynium joined #perl6
01:21 sri_kraih joined #perl6
01:21 skids rakudo: { my $x; $x = BEGIN {time}; }
01:21 p6eval rakudo 4ec17d: OUTPUT«Could not find non-existent sub BEGIN␤current instr.: '_block20' pc 119 (EVAL_17:70)␤»
01:21 skids rakudo: { my $x; BEGIN {time}; }
01:21 p6eval rakudo 4ec17d: RESULT«{ ... }»
01:55 cognominal joined #perl6
01:55 eternaleye joined #perl6
01:58 Tene joined #perl6
02:00 NoirSoldats joined #perl6
02:02 alc joined #perl6
02:16 PZt joined #perl6
02:19 nixfu joined #perl6
02:20 bsb left #perl6
02:29 kanru joined #perl6
02:41 s1n pmichaud: i personally tried to do the "steps to submit a patch" and that is _way_ too much work, the fork quickly falls out of date, it's tough maintaining 2 remotes
02:41 s1n in general, i spent more time managing my fork/clone than i did coding, which is not good
02:42 s1n the problem with "developer creates a branch" is i have to have commit access to do that to the rakudo project, else i have to fork it
02:42 s1n (step 1 from alester's suggestion)
02:43 s1n alester: also, what's the "squash" option?
02:48 Tene Are there any other large projects hosted on github that we could look at for ideas?
02:49 s1n Tene: i dunno, but i've seen articles about how Linux patches make it through
02:50 s1n those might be of help, but there are significantly more people there than with rakudo
02:51 Tene If you just post patches to the list, that can still be handled just fine.
02:51 Tene If you posted a git url to the list, that could be handled just fine.
02:52 Tene The fork queue is nice, but apparently not designed for significant use.
02:52 Tene "only shows 50 commits" is pretty damning.
02:52 Tene You can send a pull request on github, though.
02:57 s1n Tene: yeah, but i don't think anyone pays attention to pull requests
02:58 s1n i sent out a handful trying to get some help and no one even responded
02:58 s1n i think you're right about the fork queue
02:58 Tene wait, for pull requests I think you have to log in as the 'rakudo' user
02:59 Tene which is very much not helpful.
02:59 Tene can you check if it's possible to send a pull request to 'pmichaud' or 'tene' or some other username than 'rakudo'?
02:59 s1n no, i made pull requests for my (now mostly abanonded) fork
02:59 s1n you can send them to anyone you want, rakudo related, or otherwise
03:00 Tene hmm
03:00 s1n i sent them to people i was seeing in the RSS commit feed
03:00 Tene Linux doesn't use github, just uses git.  iirc, they just pust to the list "please pull from this branch at this git url"
03:01 s1n yeah, but how do they do that?
03:01 s1n and how do i get a branch in rakudo if i don't have commit access?
03:02 s1n the point is i can commit to my clone and push to other repos, who are then responsible for patch review
03:02 s1n they have a hierarchy, rakudo has like 5 committers, a few forks on github for non-committers
03:03 avar The linux kernel takes advantage of the distributed model. someone developing e.g. a wifi driver for some card (e.g. iwlagn) has his own branch and pulls from upstream, this is then maybe pushed into some general experimental device driver repo, then into -mm and later into the main tree
03:04 s1n right, that demonstrates a sort of hierarchy of distributed repos
03:04 Tene s1n: if you want to make a branch on the 'rakudo on github' repository, you need commit privs, but you can maintain your own repository just fine
03:04 Tene s1n: and then when you want to advertise something for inclusion, you post to the list asking someone to pull from your repository
03:05 Tene you don't need anyone's permission to make your own repo.  It could be on github or anywhere else.
03:05 s1n repo and branch aren't the same thing with git
03:05 Tene s1n: Right.
03:05 s1n i have a fork of a repo, s1n/rakudo, with a branch rt_work
03:05 Tene Right.
03:05 s1n that's 1 branch, 2 remotes to do my work
03:06 s1n well, 2 branches if you count master
03:06 Tene gh-pages and rt_work
03:06 Tene right
03:06 s1n well, there aren't "subsystems" with rakudo
03:06 s1n it's just not large enough for that yet
03:07 Tene So what I'd like to see is you posting to the list saying 'pull from branch rt_work at git://github.com/s1n/rakudo.git'
03:07 s1n that to me was not the idea method to make a patch or 2 to a file to submit for review
03:07 Tene You can always just post patches ot the list too.
03:08 s1n Tene: i didn't post to p6c (didn't even know about it until today), but i did try pull requests and even posted in here looking for help
03:08 Tene Yes, I think that not many people look at the github website
03:09 Tene Recently a few people started, but quickly found the limitations of the fork queue and gave up on it
03:09 s1n Tene: it'll send you an email too
03:09 Tene If github does offer anything to make this nicer, a process can be formalized.  afaik, nobody here has found anything very helpful on github.
03:09 s1n the point is, it's easy to be pestered with commits
03:10 s1n imho, we should use github to just host the official rakudo and do the rest of the work off-site
03:10 Tene Are you proposing anything specific?
03:10 Tene Or just "give up on trying to use the github web interface"?
03:11 s1n well, i really wanted to know about alester's "squash" option
03:11 s1n that would make things _much_ friendlier
03:11 Tene s1n: I don't see anything in the log in this channel from alester mentioning 'squash'
03:11 Tene masak did...
03:11 Tene or was this somewhere else?
03:12 s1n i'd like to take a bunch of commits and package them together as a changeset
03:12 s1n on the p6c
03:12 s1n the link pmichaud sent me earlier
03:12 Tene git diff master > changeset.patch
03:12 Tene will do that
03:13 s1n no, that still just makes a patch, not too much different than svn diff > changeset.patch without committing locally
03:13 Tene Ah.
03:14 s1n first, managing a fork is not easy, having 2 repos to do your work out of is tough
03:14 Tene git rebase -i master
03:14 Tene will open $EDITOR
03:14 Tene That might be what you want.
03:14 s1n rebase, okay, so i haven't found a really good explanation of that yet
03:14 Tene Or checkout master and git merge --squash $BRANCH
03:14 Tene that will work too.
03:14 Tene rebase probably isn't what you want.
03:15 s1n okay, so tell me how that changes the workflow...
03:15 Tene I'm not entirely clear what you're wanting to do here.
03:15 Tene Or what your workflow was before.
03:16 s1n heh anything that lets me submit patches to earn commit access and improve at writing a compiler (newb)
03:16 s1n let me give you an example, in my fork, i was trying out the new Setting and changing the Range over to it (s1n/rakudo/src/setting/Range.pm)
03:17 s1n i made a handful of changes, and ultimately wanted someone to review them, there were merge conflicts though
03:17 s1n i ended up pushing to my fork, had to rebase first though
03:18 s1n first time i tried this i had to send a list of sha1 hashes to moritz_ for cherry picking, but i don't know if he liked doing that
03:19 s1n how can i better do this? i want to make local commits and then have something easily reviewable, such as squash
03:19 s1n i don't have commit access, so i have to do this in my own repo, if i fork it on github, that means i have to track origin _and_ upstream
03:20 s1n jeez, i've been talking too much
03:21 Tene If you push up to github, that provides an easy way to review changes.  Instead of giving commit IDs, though, just push up branches to your github repo.
03:21 Tene example:
03:21 s1n i did push to github, that's what i was saying
03:21 s1n i had made a series of pushes
03:23 Tene And you want to push up a single commit that represents the entire branch, right?
03:24 Tene git checkout -b foo-work; hack hack hack; git checkout master; <update from origin whatever>; git checkout -b foo-review; git merge --squash foo-work; <push foo-review branch to github>
03:24 Tene Approximately that?
03:24 s1n ehh, not quite
03:25 s1n more like (abbreviated greatly):
03:26 s1n git clone s1n; git pull upstream; hack hack hack; git push origin; hack hack hack; git push origin; git patch-smashing-for-review
03:27 s1n (just conceptual)
03:27 Tene And what is it that you're wanting to squash and why?
03:28 s1n the two hack-hack-hacks :)
03:28 s1n oh, for review
03:28 s1n in my real-yet-kinda-hypothetical-scenario i was having problems and i was looking for help
03:28 * Tene nods.
03:28 khisanth_ joined #perl6
03:28 Tene My preference is to run: git diff master | nopaste "PLZ HALP"
03:29 s1n heh
03:29 Tene where nopaste is a shell alias to post to the nopaste site that the bot in #parrot watches
03:29 Tene I've done that quite a few times.
03:29 s1n when you diff master, which remote would that be?
03:30 Tene Whatever's appropriate for what I'm saying.
03:31 Tene Somehow I don't think that answer was helpful. :)
03:31 Tene I'm sorry for being a bit confusing.  I'm not quite awake right now.
03:31 frooh hey guys, I'm trying to add some stuff to the prelude and I am getting errors about modifying the invocant.  Anyone have any ideas about what that could be about?
03:31 Tene frooh: can you show me the relevant code?
03:32 Tene paste it somewhere online?
03:32 frooh Tene: sure
03:32 frooh one sec
03:32 frooh http://rafb.net/p/w8bbQZ17.html
03:33 frooh maybe I should be using .:= ?
03:34 Tene Doesn't Perl6Array already have a shift method?
03:34 Tene Inherited from the parrot array class?
03:34 frooh Tene: yeah, but pmichaud said to just see what I could pull of in the perl
03:35 Tene Ah.
03:35 frooh if you have a better suggestion I'll do that :-)
03:35 frooh I just want to help :-)
03:35 Tene frooh: Okay.  My advice here is that you probably shouldn't be reversing the array there.  Reversing twice just to shift is going to be pretty expensive.
03:35 frooh Agreed
03:35 Tene can't you just @array.delete(0)
03:35 Tene ?
03:35 frooh no
03:35 frooh that gives
03:36 frooh <undef 1 2>
03:36 frooh instead of <1 2>
03:36 frooh delete only shortens the list if it's from the end
03:36 frooh I tried :-)
03:37 Tene What happens if you try to assign to @array[1..*] ?
03:38 Tene Oh, rakudo might no tbe lazy enough for that to work yet.
03:38 frooh even if that did work, I don't follow
03:38 Tene I think that shift isn't a good candidate for implementing in the Setting.
03:38 frooh haha, that's fine
03:38 frooh pop was way easy!
03:38 frooh @array.delete(@array.end))
03:38 lambdabot Unknown command, try @list
03:38 frooh more or less
03:39 Tene But you might be able to get away with something like: method shift(@a:) { my $r = @a[0]; @a = @a[1..*]; return $r; }
03:39 frooh or even @a[1..@a.end]
03:40 Tene That's what I'd try.  Hardly ideal, and might not work with assigning to the invocant.
03:40 frooh is that against the rules or something?
03:40 Tene is <undef ...> the spec'd behavior for array's delete
03:40 Tene ?
03:40 frooh yeah
03:40 Tene I'm not sure.  I don't know how that's defined.
03:41 frooh I guess because you don't want all the indices changing from a delete
03:41 frooh that's not the point
03:41 frooh if you want that you use shift: hence the name
03:43 frooh eah
03:43 frooh cannot assign to a readonly variable
03:43 frooh yeah*
03:44 frooh :-(
03:44 frooh oh well
03:44 frooh any other suggestions that someone who would like to contribute could start off with?
03:46 Tene You might go look at the spectests to look for unimplemented features.
03:46 Tene You might go look through... is it S29?
03:46 frooh yeah
03:46 Tene That defines the builtin functions?
03:46 wayland76 ...and S32 :)
03:46 frooh yeah
03:46 frooh so I guess look at the skipped ones then
03:46 wayland76 The main problem with S32 is that it's not complete
03:47 wayland76 S29 also has things grouped into categories that are not classes
03:47 frooh well, I'd def start at 29; I am not even close with trying to guess what would be good with this stuff
03:47 wayland76 Whereas everything in S32 is a method on a class
03:47 frooh oh
03:47 frooh so they stuff to 32 recently
03:47 frooh that's new right?
03:47 wayland76 Yes, that's now
03:47 frooh ok
03:47 wayland76 new
03:47 frooh I wondered when that happened
03:48 wayland76 And it's my fault :)
03:48 frooh haha
03:48 frooh well
03:48 wayland76 http://perlcabal.org/syn/
03:48 frooh I'd rather chaos than stagnation
03:48 wayland76 And click shift+refresh or ctrl+refresh
03:48 frooh (it's already open and bookmarked :-)
03:48 wayland76 I think S32/Containers.pod is what you want
03:48 frooh yeah
03:48 frooh I already had it open for the shift stuff :-)
03:49 wayland76 The S29 stuff probably needs more work
03:49 wayland76 Good :)
03:49 nihiliad joined #perl6
03:49 frooh so I should try to find incomplete things in 32 then and try to do those?
03:49 wayland76 frooh: That's my recommendation
03:49 * frooh wishes firefox had splits like vim
03:49 frooh alright!
03:49 frooh thanks wayland76
03:49 wayland76 welcome
03:50 wayland76 Also, while you're there, keep an eye out for things that are done, but not documented in S32 :)
03:50 frooh well, the spectest clearly needs to be reoganized
03:50 wayland76 Then either add them, or flick me an e-mail, and I'll see what I can do
03:50 frooh it's still called s29-array etc
03:50 frooh ok
03:50 frooh will do
03:51 wayland76 Yeah, I've only been changing specs, not other things
03:51 frooh hmm
03:51 frooh I'll see if I can add stuff
03:51 wayland76 I'm planning eventually to get on to rakudo hacking
03:51 frooh if I can't I'll do some reorg
03:51 frooh I've already got a commit bit for pugs so that's easy
03:51 wayland76 frooh++ :)
03:55 wayland76 Just a warning also, half of these things are still at the Draft stage
03:55 frooh yeah
03:55 frooh I understand that
03:55 japhb joined #perl6
03:56 frooh but in my fumbling maybe I can at least tell you guys something needs to be cleaned up or something
03:56 s1n frooh: i've been trying to learn my way around p6 and rakudo for a while in order to get commit access, it's been tough, too many changes for me to keep up with (switch to git, not the Setting stuff)
03:57 frooh alright
03:57 s1n i think i've been fumbling around since the summer trying to get my foot in the door
03:57 frooh hahaha
03:57 wayland76 Hopefully the setting will fix this problem
03:57 frooh well, I doubt I'm as smart as you, so I won't get my hopes up for that one
03:58 wayland76 In that you at least won't have to learn PIR and parrot :)
03:58 frooh I really don't want to learn pir :_)
03:58 frooh er
03:58 frooh :-)
03:58 s1n PIR is actually easy
03:58 frooh easy like MIPS?
03:58 s1n heh, easier than mips
03:58 frooh because I'm good at that, it's just...arduous
03:58 s1n mips doesn't have complex types like pmc
03:58 wayland76 frooh: I'm not that smart -- I write specs only because no-one else is, in hopes of prompting them to get frustrated and change them :)
03:59 frooh wayland76: nice
03:59 s1n i just want a workload of things to do with feedback on the things i've done
03:59 wayland76 My only real talent in this area is in reorganising existing material
03:59 s1n that's not so easy with rakudo/perl6
03:59 wayland76 s1n: Yeah, I know
04:00 wayland76 (ie. I agree)
04:00 wayland76 I'll try to remember to get onto some people about it :)
04:00 s1n honestly, my impression is the community is very self-serving, it's very hard to find help, find people to comment on work, and to grow into the community
04:01 frooh s1n: really?  I thought people were pretty helpful...
04:01 s1n there are lots of people interested, but all in different directions
04:02 s1n people are helpful sure
04:02 s1n but getting core questions answered are hard
04:02 frooh ah
04:02 frooh gotcha
04:02 wayland76 Yeah, I can agree with that :)
04:02 s1n there's jnthn and pmichaud and those are are friggin ridiculously busy
04:03 s1n personally, i have a perpetual feeling of being stuck on my first couple of patches
04:03 wayland76 In the last day or so, I've heard a number of similar complaints (and none before then)
04:03 wayland76 I might try to send something to the mailing list
04:03 s1n i don't want to say there should be organization...
04:03 wayland76 Question: what 2 or 3 things do you think would most help you?
04:04 s1n but developer relations (devrel) or similar would _really_ help attract newcommers
04:04 wayland76 (ie. for me, it would be a documented NCI, and a few others)
04:04 finchely joined #perl6
04:04 wayland76 I think this channel is devrel, but part of the problem is, the main Rakudo developers are all in Europe
04:04 s1n me? documented parser internals, documented process to getting commit access, formal patch review process
04:05 s1n if i write some code, try to paste it in here, i _might_ be lucky if i catch someone's attention
04:05 s1n i'd like to see a more directed newcommer focus (that is, here's how you go from being a newb to being a regular)
04:06 s1n GNOME's GnomeLove project is great like that
04:06 s1n http://live.gnome.org/GnomeLove
04:07 s1n look at all those guides! and the developers respond to patch, quickly! (no offense to you rakudo committers :))
04:08 wayland76 Btw, are either of you guys subscribed to p6c?
04:08 frooh I am subscribed to all of the lists
04:08 s1n wayland76: not yet, just heard about it today
04:08 frooh It's like drinking from a fire hose sometimes :-)
04:08 s1n i was subscribed to p6l but i'm going to have to stop because there's too much chatter for me to manage
04:08 s1n heh
04:09 wayland76 Yeah.  I'm only on p6l.  I just ignore the threads that don't interest me :)
04:09 frooh I decided to just put them in a separate folder (tag, gmail) and then just mark it as read if it's boring
04:09 frooh that time stuff a few days ago was interesting for a while
04:09 wayland76 Oh, yeah, I have it all filtered into a separate folder :)
04:09 frooh then it got really nitpicky
04:09 wayland76 frooh: yeah, agreed
04:09 s1n same here, i was sick on friday but now i have like 90 emails!
04:10 frooh s1n: exactly. which is why you just mark the boring ones as read
04:10 wayland76 Basically, if it looks like people already know more than me, I ignore the thread
04:10 s1n wayland76: i usually do the opposite
04:10 frooh haha, same here
04:10 s1n if the people know vastly more than me, i read with great intent
04:10 frooh it's a chance to learn!
04:11 s1n anyways, is there an effort for a devrel yet?
04:11 wayland76 I do it because I want things to be the best they possibly can.  That's probably why I'm on p6l rather than p6c :)
04:11 wayland76 s1n: Have you also investigated the #parrot channel?
04:11 s1n wayland76: reading and responding aren't the same
04:11 s1n have i checked for devrel on #parrot? no
04:12 s1n should i?
04:12 wayland76 Hmm.  Maybe not
04:12 wayland76 2 months ago, i would've said yes
04:12 s1n okay, so i'm going to head to bed, but...
04:12 wayland76 I'll get on p6c, and send an e-mail
04:12 wayland76 (presenting some of peoples views)
04:12 s1n this is something i want to continue on p6c tomorrow
04:13 wayland76 ok :)
04:13 s1n bed&
04:14 frooh I think I could get a start on classify
04:14 frooh I don't know about the lazy stuff, but I could defintely do it
04:17 wayland76 I think S07 talks some about lazy, IIRC
04:18 frooh indeed it does
04:19 pugs_svn r25659 | putter++ | [elfparse] Started sketching in support for calling non-Rx normal methods as subrules.
04:23 wayland76 (I wrote it based on ruoso's explanation :) )
04:23 meppuru joined #perl6
04:24 frooh so ?$foo means if $foo is true right?
04:24 frooh as in defined and not 0 or '' ?
04:24 wayland76 no idea
04:24 frooh haha, ok
04:25 wayland76 rakudo: $foo = 1; say ?$foo;
04:25 p6eval rakudo 4ec17d: OUTPUT«Scope not found for PAST::Var '$foo' in ␤current instr.: 'parrot;PCT;HLLCompiler;panic' pc 146 (src/PCT/HLLCompiler.pir:102)␤»
04:25 meppuru good night
04:25 wayland76 std: $foo = 1; say ?$foo;
04:25 p6eval std 25659: OUTPUT«Potential difficulties:␤  Variable $foo is not predeclared at /tmp/ZIL1jvy3yX line 1:␤------> [32m$foo[31m = 1; say ?$foo;[0m␤  Variable $foo is not predeclared at /tmp/ZIL1jvy3yX line 1:␤------> [32m$foo = 1; say ?$foo[31m;[0m␤ok 00:02 36m␤»
04:25 frooh sweet!  I got a non lazy version working
04:25 wayland76 g'night meppl
04:25 meppuru ;)
04:25 wayland76 std: my($foo) = 1; say ?$foo;
04:25 p6eval std 25659: OUTPUT«Potential difficulties:␤  Variable $foo is not predeclared at /tmp/t1YAICh11R line 1:␤------> [32mmy($foo[31m) = 1; say ?$foo;[0m␤  Variable $foo is not predeclared at /tmp/t1YAICh11R line 1:␤------> [32mmy($foo) = 1; say ?$foo[31m;[0m␤Undeclared routine:␤   my used at 1 ␤ok
04:25 p6eval .....
04:26 wayland76 whoops, meppuru, sorry :)
04:26 frooh rakudo: my $f = 1; say ?$f;
04:26 p6eval rakudo 4ec17d: OUTPUT«1␤»
04:26 frooh rakudo: my $f = 2; say ?$f;
04:26 p6eval rakudo 4ec17d: OUTPUT«1␤»
04:26 frooh rakudo: my $f = ''; say ?$f;
04:26 p6eval rakudo 4ec17d: OUTPUT«0␤»
04:26 frooh rakudo: my $f = ''; say ?$f.perl;
04:26 p6eval rakudo 4ec17d: OUTPUT«1␤»
04:26 wayland76 Well, it likes you, anyway :)
04:26 frooh that's weird
04:26 frooh it changed for .perl
04:27 frooh haha
04:27 wayland76 Well, maybe it does (?$f).perl
04:27 frooh I think I could maybe make it lazy with a nested grep and map...
04:27 frooh but..
04:27 frooh hm
04:36 finchely joined #perl6
04:36 finchely left #perl6
04:38 wayland76 That was a quick visit :)
04:38 wayland76 (by finchely)
04:38 frooh did he join and part?
04:38 frooh there are so many in this channel that I disabled them
04:39 wayland76 yeah.  And I agree, there are lots :)
04:39 frooh because if you leave them out you can just skim the list when you get a chance
04:40 frooh but if not, it's crazy
04:40 wayland76 On mine, they're all purple, so they're easy to ignore :)
04:41 frooh well, they were dim here too, but it was just so much text I didn't want to page through all of it
04:46 frooh well that was fun
04:46 frooh so I have a (nonlazy) version of classify in git
04:46 frooh should I email someone?
04:47 wayland76 I don't know :)
04:47 frooh haha, that's fine
04:47 wayland76 I'm completely ignorant of the development process
04:47 frooh it sure is quiet in here today...
04:47 wayland76 It always is at this time of day.  I'm in Australia, and it's the middle of the afternoon
04:48 frooh well, usually TimToady is at least around
04:48 wayland76 I get the Americans in the morning, and the europeans in the evening
04:48 frooh haha, I'm American :-)
04:48 wayland76 I figured that -- rr.com :)
04:48 frooh ah, good point
04:48 wayland76 Actually, I'm dual citizen, Australia and America :)
04:48 frooh also: classify is apparently already done, the test isn't where I'd expected
04:49 frooh how does that work?
04:49 frooh are you from there or here originally?
04:49 wayland76 my parents are American
04:49 wayland76 They were originally planning to go back, but never got around to it
04:49 frooh huh
04:49 wayland76 They used to make you choose when you were 18
04:50 wayland76 but when I was about 12, they changed the rules
04:50 frooh I wanted to go to australia for a year after I graduated college, but it cost to much
04:50 frooh they made it so you didn't have to choose?
04:50 frooh too*
04:50 wayland76 yeah, didn't have to choose
04:51 wayland76 I think plane tickets are cheap at the moment :)
04:51 frooh well, but there is still the travel and all that
04:52 frooh I wanted to go down there, buy a motorcycle, travel the continent for a while, and when I was done sell the motorcycle and buy a ticket back
04:52 frooh it just wasn't in the cards
04:52 wayland76 ok
04:52 wayland76 My parents did something similar in Europe
04:52 frooh that's cool
04:52 wayland76 missionaries in Cyprus for 2-4 years, met there
04:52 frooh wow, that's awesome
04:52 wayland76 then rode a motorbike from Cyprus to England to Calcutta :)
04:53 frooh wow
04:53 frooh they are cool :-)
04:53 wayland76 (Calcutta in India)
04:53 frooh yeah
04:53 wayland76 They are, rather :)
04:53 frooh my boss grew up in the phillipines
04:53 wayland76 I mean, not fashionable cool, but just interesting :)
04:53 frooh hhe was a missionary kid at the time and he has all these stories about running from wild boar and stuff
04:54 wayland76 That's kinda cool too :)
04:54 frooh well, they're cool the way that's good
04:54 wayland76 I know a number of missionaries and ex-missionaries, and they usually hae some good stories :)
04:55 frooh yeah
04:55 frooh ok, well, I need to start getting ready to hit the sack, but tomorrow I will move some of the S29 tests to S32 tests.
04:56 frooh I can't update the can-do list for rakudo as I can't commit to that
04:56 frooh but I'll let everyone know when I start
04:57 wayland76 Sounds good to me
04:57 wayland76 Put any unresolved questions out early in the morning for the Euros to answer :)
04:57 frooh haha, I'll do my best
04:58 frooh usually when I want to get serious work done I do it on the weekend at weird hours
04:58 frooh then everyone's around
04:58 Kimtaro joined #perl6
04:58 Tene_ joined #perl6
05:11 alc joined #perl6
05:12 masak joined #perl6
05:19 slango joined #perl6
05:31 masak morning, all.
05:32 wayland76 'morning :)
05:34 * masak yawns and stretches his arms upwards
05:34 masak \o/
05:36 Tene_ morning masak
05:37 masak Tene_: good morning sir. and congratulations.
05:37 Tene_ On what?
05:37 masak Tene_: on being accepted for the Web grant.
05:38 Tene_ oh, I didn't know that happened.  I guess I should check my emails sometimes.
05:38 masak aye. :)
05:38 masak it was only a few hours ago.
06:03 eternaleye pmichaud: Interesting post about GitHub pull queue workflow (and submission-management in general): http://benjamin-meyer.blogspot.com/20​08/08/code-review-should-be-free.html
06:04 eternaleye (the pull queue workflow is at the bottom)
06:04 masak @tell mberends here's a demonstration of how proto doesn't handle dependencies correctly yet: http://gist.github.com/73211 -- I believe I might have a fix to that, though.
06:04 lambdabot Consider it noted.
06:05 kanru2 joined #perl6
06:07 pugs_svn r25660 | lwall++ | [STD] =begin END not eating rest of file
06:15 wayland76 Is it just me, or does OpenID not work for the perl6 Wiki?
06:30 justatheory joined #perl6
06:35 dukeleto wayland76: i have had issues as well
06:37 wayland76 I log in, and it sends me to the perl 5 blog
06:37 wayland76 I tried to sign up for an ordinary ID, but no e-mail yet
06:38 masak wayland76: aye, I've gotten redirected like that as well.
06:38 masak but I think I solved it by simply going back to the Perl 6 wiki, and then I was logged in.
06:38 masak not 100% sure, though.
06:39 wayland76 well, it doesn't seem to have worked for me, anyway.  But I'll play with things some more.
06:42 wayland76 I can't log in to the perl5 wiki with my openID either
06:46 duke_leto joined #perl6
06:46 duke_leto left #perl6
06:49 eternaleye perl6: say( join( ' ', ( [~] ( [ 'a' .. 'z' ] xx 2 ) ) ) )
06:50 p6eval pugs: OUTPUT« ␤»
06:50 p6eval ..elf 25660: OUTPUT«/home/evalenv/pugs/m​isc/STD_red/match.rb:117:in `block in to_dump0': undefined method `to_dump0' for nil:NilClass (NoMethodError)␤     from /home/evalenv/pugs/misc/STD_red/match.rb:117:in `map'␤       from /home/evalenv/pugs/misc/STD_red/match.rb:117:in `to_dump0'␤  from
06:50 p6eval ../home/evalenv/pugs/...
06:50 p6eval ..rakudo 4ec17d: OUTPUT«a b c d e f g h i j k l m n o p q r s t u v w x y za b c d e f g h i j k l m n o p q r s t u v w x y z␤»
06:50 eternaleye perl6: say( join( ' ', ( [X~] ( [ 'a' .. 'z' ] xx 2 ) ) ) )
06:50 p6eval rakudo 4ec17d: OUTPUT«Statement not terminated properly at line 1, near "~] ( [ 'a'"␤␤current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)␤»
06:50 p6eval ..pugs: OUTPUT«*** ␤    Unexpected "["␤    expecting expression or ")"␤    at /tmp/Rt3Y9zpZat line 1, column 19␤»
06:50 p6eval ..elf 25660: OUTPUT«Parse error in: /tmp/Ky3lbVeaZL␤panic at line 1 column 0 (pos 0): Can't understand next input--giving up␤WHERE: say( join( ' ', ( [X~] ( [ 'a'␤WHERE:/\<-- HERE␤  STD_red/prelude.rb:99:in `panic'␤  STD_red/std.rb:76:in `scan_unitstopper'␤  STD_red/std.rb:224:in `comp_unit'␤
06:50 p6eval ..STD_r...
06:50 eternaleye Is [op] not working with Xop a known problem? I remember [X~X] working a few months ago
06:55 masak eternaleye: sorry, working in which implementation?
06:56 eternaleye Rakudo
06:57 eternaleye This was right around 0.7.summat I believe
07:04 masak I actually don't know -- haven't been using [X~X], ever.
07:04 masak I suggest you check the spectests and/or submit a feature request to rakudobug.
07:27 bacek_ perl6: say( join( ' ', ( [~] ( [ 'a' .. 'z' ] xx 2 ) ) ) )
07:27 p6eval pugs: OUTPUT« ␤»
07:27 p6eval ..elf 25660: OUTPUT«/home/evalenv/pugs/m​isc/STD_red/match.rb:117:in `block in to_dump0': undefined method `to_dump0' for nil:NilClass (NoMethodError)␤     from /home/evalenv/pugs/misc/STD_red/match.rb:117:in `map'␤       from /home/evalenv/pugs/misc/STD_red/match.rb:117:in `to_dump0'␤  from
07:27 p6eval ../home/evalenv/pugs/...
07:27 p6eval ..rakudo 4ec17d: OUTPUT«a b c d e f g h i j k l m n o p q r s t u v w x y za b c d e f g h i j k l m n o p q r s t u v w x y z␤»
07:28 masak pmichaud++ # RPN calculator in idiomatic Perl 6
07:31 bacek_ rakudo: say [R-] 21,63
07:31 p6eval rakudo 4ec17d: OUTPUT«Statement not terminated properly at line 1, near "-] 21,63"␤␤current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)␤»
07:33 bacek_ rakudo: say 21 R- 63
07:33 p6eval rakudo 4ec17d: OUTPUT«42␤»
07:33 bacek_ yeah! This on better :)
07:34 masak maybe I should submit the first one as a rakudobug?
07:34 bacek_ masak: no.
07:35 bacek_ std: say [R-] 21,63
07:35 p6eval std 25660: OUTPUT«ok 00:02 36m␤»
07:35 bacek_ hmm
07:35 masak :)
07:35 bacek_ looks like this is permitted syntax
07:36 masak aye -- why wouldn't it be?
07:36 wayland76 masak: Btw, still haven't received that S29 e-mail you mentioned one time :)
07:36 mberends masak: good morrow, your second gist shows that HTML::Template *was* built but the PERL6LIB was not extended before building the dependent (november)
07:36 lambdabot mberends: You have 1 new message. '/msg lambdabot @messages' to read it.
07:36 masak wayland76: then I'll send them to you directly.
07:37 masak mberends: exactly.
07:37 masak that's a bug, as far as I'm concerned.
07:37 masak you are welcome to fix it in master -- if not, then I will.
07:37 bacek_ masak: TODO ticket. "Implement prefix metaops for infix metaops"
07:37 masak bacek_: ah.
07:38 mberends masak: you seem to have the fix figured out - go for it
07:38 masak mberends: in due time. I'm currently working on 'update' in a branch.
07:38 mberends np
07:40 masak mberends: you might have seen that I refactored 'install' a bit also. that is in anticipation of my 'update' addition.
07:41 masak it currently seems to me that 'install' and 'update' will need to call each other recursively.
07:44 bacek_ bacek@illusion:~/src/parrot/languages/rakudo$ ../../parrot perl6.pbc -e 'say [R-] 21,63'
07:44 bacek_ 42
07:44 bacek_ heh
07:45 masak bacek_++
07:46 mberends masak: the refactor is nice, showdeps is handy. we may be able to unify install() and update() in an install_or_update() kind of function
07:47 masak mberends: maybe.
07:47 masak if that serves us somehow, we will. :)
07:47 mberends s/be able to/need to/
07:47 masak my instinctive reaction is that install and update are different things, though.
07:48 mberends depending on what is previously installed, there is no choice
07:49 masak please elaborate.
07:49 mberends I hope you're not thinking of update as side-by-side installation of multiple versions
07:50 mberends Let's imagine: you have HTML::Template 0.1 installed for something. November wants HTML::Template 0.2
07:51 mberends we have to decide whether to clobber 0.1
07:51 * bacek_ commute to home
07:51 bacek_ see you
07:52 masak bacek_: see you.
07:52 masak mberends: we clobber it, period.
07:52 masak (because we don't handle versions)
07:52 mberends in M$ that led to 'DLL Hell', especially with Data Access Components
07:53 masak it's a prototype.
07:53 masak it doesn't handle versions.
07:53 masak and most Perl 6 projects don't do the 0.1 and 0.2 thing.
07:54 mberends agreed. the most recent anything not broken is implicitly the best.
07:54 masak aye.
07:54 masak we _could_ sandboxedly update/build, I guess.
07:54 riffraff joined #perl6
07:55 masak and if that fails, we try to proceed with the latest working revision.
07:56 mberends the earlier question is answered automatically by: if $already_installed($proj) { update($proj) } else { install($proj) }
07:57 masak right.
07:57 pugs_svn r25661 | lwall++ | [named-params-in-BUILD.t] fix parsefail
07:58 mberends and update() may be able to short circuit if a revision is known to be current
08:00 masak aye.
08:16 moritz_ good morning
08:16 moritz_ rakudo: rule w { . }; 'a' ~~ m/<w>/; for %($/).kv {}
08:16 p6eval rakudo 4ec17d: RESULT«Method 'HOW' not found for invocant of class 'Iterator'␤current instr.: '_block14' pc 77 (EVAL_20:44)␤»
08:17 moritz_ rakudo: rule w { . }; 'a' ~~ m/<w>/; for %($/).kv -> $k, $v {say $v.WHAT }; say "still here";
08:17 p6eval rakudo 4ec17d: OUTPUT«Str␤still here␤»
08:18 masak moritz_: good morning.
08:21 moritz_ masak: that's the bug I actually wanted to reproduce yesterday
08:22 * moritz_ submits
08:26 moritz_ rakudo: rule w { . }; 'a' ~~ m/<w>/; for %($/).kv -> $k, $v {say $v.WHAT };
08:26 p6eval rakudo 4ec17d: OUTPUT«Str␤»
08:29 Matt-W Morning
08:33 moritz_ rakudo: rule w { . }; 'a' ~~ m/<w>/; say $<v>.WHAT
08:33 p6eval rakudo 4ec17d: OUTPUT«Failure␤»
08:33 moritz_ rakudo: rule w { . }; 'a' ~~ m/<w>/; say $<w>.WHAT
08:33 p6eval rakudo 4ec17d: OUTPUT«Match␤»
08:33 DemoFreak joined #perl6
08:41 Nom- joined #perl6
08:41 pugs_svn r25662 | masak++ | [u4x/TODO] added more terms
09:04 moritz_ @seen eric256
09:04 lambdabot I saw eric256 leaving #perl6 1m 9d 2h 32m 30s ago, and .
09:05 * masak has often wondered why lambdabot says 'and .' there
09:05 moritz_ "and PERIOD, I have nothing more to say!"
09:05 masak 哈哈
09:09 Kimtaro_ joined #perl6
09:20 bacek joined #perl6
09:41 ejs joined #perl6
09:51 ejs1 joined #perl6
10:03 masak is there a way to pipe a shell command into Rakudo?
10:05 moritz_ not direct
10:05 moritz_ you can redirect to a file, and then read that file
10:05 * masak senses a fantastic workaround building up
10:05 moritz_ masak: if you write one, please also make it available for the test suite
10:05 masak :)
10:06 moritz_ because then I could test @*ARGS, print/say etc.
10:06 masak I think I'll simply punt to Perl 5.
10:06 masak since we need this from both the Perl 5 and Perl 6 code in proto.
10:07 mberends masak: there is a file-based one in perl6-examples
10:07 masak file-based?
10:08 masak mberends: I'm just thinking of the problem of showing a dot progress bar when downloading/building. I don't think Rakudo can help us there.
10:08 masak thus we need to outsource that task to Perl 5.
10:08 mberends there is a qx() that returns the output piped via a /tmp file. Progress bars would not work with that technique.
10:09 masak right.
10:09 moritz_ mberends: is the qx() tested on various OS?
10:09 mberends linux and osx afaik
10:09 mberends *not* windows
10:09 moritz_ windows would be very interesting
10:11 mberends it may work in windows if %*ENV<TEMP> or %*ENV<TMP> is set
10:12 mberends look in perl6-examples/lib/Test/Harness.pm
10:12 * masak makes proto successfully build november-sans-html-template
10:13 mberends there /tmp is hard coded
10:14 mberends has anyone tried to build parrot and rakudo on plan9?
10:15 masak dont' think so, but I get really interested in trying now that you ask.
10:15 masak lunch &
10:28 dalek rakudo: e2ee4c7 | (Moritz Lenz)++ | src/ (2 files):
10:28 dalek rakudo: remove trailing spaces
10:28 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/e​2ee4c79e2604fbcd02cab77fd209aac5ba0c311
10:28 M_o_C joined #perl6
11:30 meppl joined #perl6
11:33 wayland76 Incidentally, one reason I want a documented NCI, or whatever replaces it, is so that we can go to work on the IO roles
11:34 masak sounds interesting.
11:34 * masak wants non-binding getch() in Pugs
11:34 masak er, Rakudo.
11:34 masak ETOOMANYIMPLS
11:35 * bacek start thinking 'bout own implementation of Perl6
11:35 masak bacek: cool. on top of what?
11:36 bacek masak: erm... Harmony?
11:36 masak that sounds familiar.
11:36 bacek ok, Mono?
11:37 masak ooh!
11:37 masak bacek++ # helping Perl 6 take over the world, one VM at a time
11:38 Kimtaro_ joined #perl6
11:42 wayland76 bacek: For what purpose?  (not that I'm saying it's a bad idea, just wondering)
11:43 bacek wayland76: -Ofun as usual
11:43 Matt-W Perl 6 on Mono would be very cool
11:43 Matt-W very, very cool
11:43 Matt-W probably quite difficult though
11:43 bacek Matt-W: Mone doesn't support DLR AFAIK.
11:44 bacek so it will be very-very difficult...
11:44 Matt-W if they don't, I expect they will soon
11:44 Matt-W DLR is open source
11:44 Matt-W so they don't even have to write their own
11:45 Matt-W hmm google suggests that mono's been capable of running the DLR since late 2007
11:46 wayland76 bacek: Ok :)
11:47 wayland76 masak: Thanks for those e-mails.  It's getting late here.  Hopefully I'll have a chance to get on to them tomorrow or the next day :)
11:49 masak I'm glad they finally got through.
11:49 masak a pox on the mail server who lost them last time I sent them.
11:54 wayland76 It reminds me of a line out of the movie "Amazing Grace"
11:55 wayland76 Someone says that something that William Wilberforce likes is "like a pox on the body politic"
11:55 wayland76 And Wilberforce says "I bow to the honourable member's superior knowledge in all things regarding the pox" :)
11:56 wayland76 (btw, I need paraphrase marks there instead of quote marks)
11:57 wayland76 anyway, goodnight all &
11:58 masak 'night, wayland76
12:14 pmurias joined #perl6
12:50 pugs_svn r25663 | pmurias++ | [mildew] t/01-sanity/04-if.t passes
13:03 rmt joined #perl6
13:07 trexy joined #perl6
13:07 agentzh joined #perl6
13:07 broquaint joined #perl6
13:07 p6eval joined #perl6
13:10 rmt What's the general feeling towards parrot/perl6 on embedded devices?  The memory footprint atm looks quite big compared to perl5. Rakudo especially.  Has anybody done some experimentation?
13:12 moritz_ rmt: afaict it's not high priority at them moment
13:12 Matt-W Optimisation in general isn't a very high priority at the moment...
13:12 moritz_ which means that nobody works on it, because other stuff is much more important
13:12 moritz_ (like getting parrot-1.0 out of the door without taking the door with them... ;-)
13:12 Matt-W hee
13:13 ruoso joined #perl6
13:14 rmt ;-)  I figure it will come eventually. :-)
13:14 ruoso Hello!
13:15 moritz_ rmt: I'm quite sure it will; at some point some hacker will surely try to plug parrot into firefox, and when that works others will try other embedding as well (esp. into smaller devices)
13:16 ruoso moritz_, isn't there a mod_parrot? that should be a good example
13:16 moritz_ ruoso: there is, but I don't know what the current status is
13:16 rmt Although small devices are now getting more powerful & more memory. :-P
13:16 moritz_ still no need to waste it immediately ;-)
13:17 ruoso and the people writing software for embedded devices already realized in the end you need C
13:17 moritz_ which is why parrot is written in C ;-)
13:17 rmt Your average mobile is more powerful a machine than what many of us first ran perl on. :-P
13:18 moritz_ not quite, but that's because I started rather late with perl ;-)
13:19 ruoso rmt, I think Sun failure with the original Java idea already proved that embedded devices require lowlevel software for most things...
13:19 ruoso yes, you can have java games in your cell phone
13:20 ruoso but that's pretty much it
13:21 rmt I consider Java a failure for the language, not the VM.. even though that's quite outdated nowadays :-P
13:21 moritz_ rmt: I agree, but the vm is still improving
13:22 * araujo thinks it is a failure as a language too
13:22 rmt Sun made Java something that any idiot could (and is forced to, at least in Uni) learn, and the end result is that any idiot did. Now every weakness in Java & the VM stands out blatantly.
13:24 rmt Programming should be a continual learning process, not just a job/paycheck, imho.
13:24 ruoso I was referring to the "original" java idea
13:24 rmt Yeah, I rant sometimes. Sorry. :-)
13:25 ruoso which was that you would be running java in your bike
13:25 ruoso and in your fridge
13:25 ruoso *that* failed
13:25 Matt-W my phone runs on Java
13:25 Matt-W ruoso: that was always a silly idea
13:25 Matt-W at least, I thought so
13:25 ruoso s/on //
13:25 ruoso your phone runs a vm, but it's not entirely inside one
13:25 Matt-W okay
13:25 Matt-W but most of the system software is running in that vm
13:26 ruoso only some games run in java
13:26 ruoso which model?
13:26 Matt-W T-Mobile G1
13:26 Matt-W runs Android
13:26 mberends rmt: building perl6 with pbc_to_exe currently pushes gcc's cc1 to use over 380MB on x86 Linux. It was too much for the swapper in an old 128MB system, but fine in 256MB. The G1 Google phone has 192MB and can install Debian...
13:26 rmt Bah, runs Dalvik.. completely other beast. Just ask the lawyers! ;-)
13:26 ruoso Matt-W, ok... i'm not that all familiar with android...
13:27 Matt-W heh
13:27 Matt-W it's a different VM
13:27 Matt-W they didn't find sun's to be very suitable :)
13:29 rmt So far I quite like parrot's compiler toolchain .. and while still in development, it seems easy enough to follow and reasonably documented. I was looking the the DLR - documentation is quite weak.
13:31 Matt-W I tend to view Parrot's toolkit as magical
13:31 Matt-W Whenever I look at Rakudo's source there are things that just seem to happen by themselves
13:32 moritz_ Matt-W: but that's PCT, not parrot build
13:32 * rmt has the desire to modify an existing language for a MUD.. something that will run untrusted scripts with varying privileges.. and restrict their time & resource usage.
13:33 moritz_ there's a security design document for parrot, but I don't know how much of it is actually implemented
13:33 Matt-W moritz_: yeah, but it's still wonderful magic stuff :) I'm going to stick to writing Perl 6 code I think
13:33 rmt There really aren't many languages with this in mind.. because people tend to trust their programmers
13:33 moritz_ trusting a programmer is always foolish ;-)
13:34 Matt-W lol
13:34 ruoso indeed, dalvik is nothing close to java
13:35 Matt-W Oh yes, it's got a translate hasn't it
13:35 Matt-W you have to run the java bytecode through something so that dalvik can run it
13:35 Matt-W presumably turning it into dalvik's bytecode
13:37 ruoso which breaks the main point of java "compile once, debug^Wrun everywhere"
13:37 M_o_C joined #perl6
13:38 Matt-W that never happened really
13:38 Matt-W devices are too different for that to be practical in any system
13:38 pmurias rmt: i'm forced to learn haskell & prolog in uni and propably C with java being fully optional
13:38 lambdabot pmurias: You have 2 new messages. '/msg lambdabot @messages' to read them.
13:38 Matt-W you either deliver massive bits of software that contain loads of ways to adjust themselves for different systems, or you deliver inferior software that's inadequate on every platform
13:38 Matt-W pmurias: wow, lucky you
13:39 Matt-W we had Java and Haskell as compulsory, and while I appreciate having done the latter I could've done without the former
13:40 moritz_ I do see the merit of learning one object oriented language
13:40 moritz_ though in teach I'd probably settle on Eiffel, not Java
13:41 moritz_ s/teach/teaching/
13:41 ruoso I still think Perl is the best language for anyone to start programming
13:42 ruoso the idea of only dealing with concepts that you understand is very powerful
13:42 ruoso it even has several functional influences
13:42 ruoso which is something that is missing in Java entirely
13:43 moritz_ but it's a very untypical programming language
13:43 Matt-W I think everyone should learn at least one of each major paradigm
13:43 |MoC| joined #perl6
13:43 ruoso but after learning Perl, you can learn any other
13:43 moritz_ aye
13:43 Matt-W Something with OO, something functional, something logical
13:44 ruoso Perl even helps you learning functional languages later
13:44 moritz_ though I've neglect logical a bit, but learned a few declarative smaller languages like SQL and regexes
13:44 Matt-W I did Prolog at uni
13:44 Matt-W can't remember much now, but I remember the principles. It was interesting to see something different again from functional or imperative
13:44 moritz_ never had that motivation, and lost my interest in it rather quickly when I tried to learn it for fun
13:46 ruoso I gained interest in functional programming by programming Perl
13:46 Matt-W ruoso: Really? Most people I've seen try to use Perl shy away from the functional features unless they have an existing functional background.
13:47 ruoso it has been said that i think sideways
13:47 Matt-W That's not a bad thing :)
13:47 Matt-W We did do some Perl at Uni as well
13:48 Matt-W That's what got me into learning it properly, and then I found out about Perl 6 and started paying attention and getting impatient. I've learned to put aside the impatience in the last seven years or so :)
13:50 rmt pmurias, I wish I had gone to your uni. :-P  Mine started Java the year I arrived.. we had some C++ too, luckily.. but I suspect that disappeared from the standard curriculum. We did cover Eiffel too, but not in any interesting way.
13:50 Lunchy joined #perl6
13:52 Matt-W We had a C++ module, but it wasn't compulsory and it was pretty lightweight
13:53 Matt-W Although I did already know C++ when I went to uni, so perhaps that was cheating a bit :)
13:54 mberends rmt: be glad you didn't start with me on Fortran IV ;)
13:54 moritz_ .oO( Cobol )
13:55 mberends and 80 column Hollerith card punches
13:56 mberends the mental damage is permanent
13:56 moritz_ non-free-form languages like the earlier fortran versions are "fun"
13:57 moritz_ there's a Dijkstra quote about that, I think ;-)
13:57 * Matt-W started with BBC BASIC, so is scarred forever if you believe Dijkstra
13:57 * mberends with port Fortran to Parrot one day...
13:57 mberends s/with/will/
13:58 moritz_ "It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration."
13:58 moritz_ oh, and guess what my first programming language was ;-)
13:58 pmurias ruoso: i think i'll add $reg1 = $reg2 to mold
13:58 * ruoso .oO( BASIC on a MSX )
13:59 Matt-W I would like to think I disprove that quote
13:59 ruoso pmurias, I have nothing against it... but doesn't "let" solve it?
14:00 moritz_ Matt-W: there's still hope for us: http://brainwagon.org/2007/06/14/qot​d-was-teaching-kids-basic-as-a-first​-programming-language-really-fatal/
14:00 moritz_ somebody contradicts Dijkstra
14:00 ruoso but I learned BASIC when I was 9, maybe that's what made me so weird
14:00 * mberends reckons moritz_ was weaned on Perl 5
14:01 Matt-W I learned it when I was 7
14:01 Matt-W Not very well though
14:01 Matt-W I just used it to draw pictures
14:01 Matt-W lots of PLOT 79 calls
14:01 mberends Basic didn't exist when I was 7
14:01 Matt-W I think that's the one for drawing driangles
14:01 ruoso I wrote a blackjack game in MSX BASIC
14:01 ruoso including a moving card ;)
14:02 Matt-W I have never written a game
14:02 Matt-W I admire people who can, but somehow I can never quite get my head round it
14:02 moritz_ mberends: there were a lot of languages that I began learning prior to Perl 5, but not many afterwards :)
14:02 Matt-W I suspect if I tried hard enough now I could figure it out
14:02 Matt-W After Perl 5, who needs anything other than Perl 6? :)
14:02 mberends moritz_++
14:02 moritz_ a game is just a program like any other ;-)
14:02 ruoso after basic, I went ot pascal, then oo pascal, then delphi
14:03 moritz_ Matt-W: yes, Perl 6 is one of the notable exceptions
14:03 ruoso and then I was saved by Perl
14:03 Matt-W moritz_: I always wanted to write a tetris clone, but I used to get this block when a program tried to pass a certain level of complexity, I couldn't see how to make it do anything else. Fortunately that evaporated in my first year of university.
14:03 mberends we had a keen Forth group in the 1980's
14:04 pmurias ruoso: i need $reg1 = $reg2 for &&
14:05 Tene joined #perl6
14:05 ruoso pmurias, hmmm... can't that be made in terms of "let"?
14:05 moritz_ afk
14:05 pmurias ruoso: and i think we will ned $reg1 = $reg2 when turning lexicals into registers
14:06 ruoso turning lexicals into registers?
14:07 pmurias instead of storing them in a lexical pad we can store the lexicals in registers
14:08 ruoso why?
14:08 pmurias it would be faster
14:08 ruoso that's a job to the bytecode optimizer
14:08 ruoso that will run later
14:08 ruoso and collect registers that are looking at the same lexical variable
14:09 ruoso and turn that into using the same register
14:10 ruoso as well as re-use unused registers, to reduce memory consumption
14:13 pmurias that's the job of the register allocator
14:14 ruoso but mold have a static register allocation
14:14 pmurias a naive one
14:14 skids joined #perl6
14:14 ruoso unless you plan to turn the per-mold registers into global registers
14:15 ruoso then you need a register allocator
14:15 ruoso but you still would benefit from mold bytecode optimization
14:16 pmurias what i'm proposing as different optimalisation is that we can keep lexicals in registers and have a constant per-mold lexical names to register number lookup table
14:16 ruoso that's premature optimization
14:17 pmurias i don't want to implement that now
14:17 ruoso right...
14:18 ruoso so, my suggestion is that, if you can write && using "let"... I don't think you need to implement $reg1 = $reg2
14:19 ruoso but I don't have a strong oppinion abou tit
14:20 jan_ joined #perl6
14:20 pmurias i figured out how to write && using a custom Ast Node without using $reg1 = $reg2
14:21 pmurias but not having $reg1 = $reg2 seems an arbitrary limitation
14:21 ruoso sure... just like any other limitation ;)
14:36 pugs_svn r25664 | pmurias++ | [mildew] added &&
14:36 pugs_svn r25664 | pmurias++ | [smop] added $reg1 = $reg2 opcode to mold
14:44 ejs joined #perl6
14:45 rkendall joined #perl6
14:45 mberends masak: starting to write YAML::Syck replacement for LoadFile and Dumpfile, changing the config_info hash to an array per your gist will bloat all the remaining perl5 code. Shall we stay with the hash right now and put order-preserving into a ToDo?
14:46 jan_ joined #perl6
14:47 masak mberends: maybe. can we still do the YAML comments?
14:47 pmurias ruoso: == compares the result of Num
14:47 pmurias ?
14:48 mberends i expect comments will be ok somehow
14:48 gfldex joined #perl6
14:50 ruoso pmurias, it is a multi
14:51 pmurias i'm faking it to get 01-sanity/03 to pass
14:51 pmurias pugs: say "1.2"+1,"6,7"+1;
14:51 p6eval pugs: OUTPUT«2.27␤»
14:51 pmurias pugs: say "1.2"+1,":","6,7"+1;
14:51 p6eval pugs: OUTPUT«2.2:7␤»
14:51 ruoso pmurias, I think it would probably be better to have Multi working
14:51 ruoso and then you can implement it properly, instead of faking it
14:52 masak mberends: I'd rate the comments as slightly more important than the insertion order right now.
14:53 mberends the hash needs to become a hash of arrays to contain a value as well as a comment.
14:54 mberends # the comment is another kind of value
14:55 masak mberends: do you even need a hash if you're just emulating YAML output?
14:55 mberends hash of hash would also fit if you prefer the notation
14:55 masak mberends: couldn't you simply have a sub for each kind of YAML output you want to fake?
14:56 masak oh, whatever. I'm micromanaging now, not helping. :P
14:57 pmurias ruoso: i'm sure what's the valid Perl 6 to replace the captures invocant
14:58 ruoso hm?
14:58 ruoso what do you mean?
15:00 pmurias in RoleHOW.dispatch replace the invocant in $capture with $class
15:01 ruoso there's the delegate method in the native capture
15:01 kane_ joined #perl6
15:02 mberends masak: the sensitive part of the design is the data structure in perl5's variables so that the rest of proto's code can get and set the values easily. The perl6 code in installer will probably have an easier time of it and does not have to have the same data struct unless the YAML strongly dictates the struct.
15:02 pmurias ruoso: i'll add it then
15:05 masak mberends: oh, right. haven't thought about that much. yes, we do actually re-save the YAML in one place in proto -- that complicates things. :/
15:06 mberends masak: lightbulb moment: a hash of hashes would enable us to maintain an 'order' attribute per value!
15:08 masak mberends: you mean a number? that sounds ungood.
15:08 mberends essentially the line number from the YAML file
15:09 rkendall joined #perl6
15:09 |MoC| joined #perl6
15:09 trexy joined #perl6
15:09 agentzh joined #perl6
15:09 broquaint joined #perl6
15:09 p6eval joined #perl6
15:09 masak mberends: I'd rather not.
15:09 masak that makes it very hard to add new values when re-saving, for example.
15:10 masak what's the easiest thing that could possibly work?
15:10 pugs_svn r25665 | pmurias++ | [smop] added capture.delegate
15:10 pugs_svn r25665 | pmurias++ | [mildew] added ||
15:10 mberends the current hash, abandoning order
15:11 masak let's go with that, then.
15:11 masak and maybe tie in the comments with a second hash.
15:12 mberends yes, that could work. YAML does not mind two hashes in one file.
15:12 pmurias food&
15:12 masak mberends: that's not what I meant, exactly.
15:12 masak at least I don't think it was.
15:13 mberends oh, I geddit. two hashes in memory, one struct in YAML
15:13 masak I'd like the comment to appear above each setting, as a comment.
15:13 masak mberends: right.
15:13 mberends masak: right
15:14 * mberends will go with that, it makes good sense
15:14 * alester learned all about git branches last night.
15:15 mberends just in time to tutor me!
15:15 alester Ok, ready for the big thing?
15:16 alester THEY DON'T GO ON THE SERVER UNTIL YOU EXPLICITLY TELL THEM THEY SHOULD GO ON THE SERVER.
15:16 * diakopter covers his ears
15:16 alester I lost bunches of code.
15:16 mberends LIGHTBULBS!
15:17 mberends romour has it the git server is actually another peer
15:17 alester Roughly, yes
15:17 masak mberends: aye.
15:17 alester but if you branch, it is only local to your machine
15:17 alester You have to explicitly push the branch to the remote if you want it to go there.
15:18 PerlJam alester: welcome to distributed VCSs  :)
15:18 PerlJam (I guess you've never used svk?)
15:18 alester PerlJam: I guess I'm just dumb, huh.
15:18 masak so there are basically four levels involved: your working copy, your index, your local commit history, and your remote repository.
15:18 ruoso but mostly you want your branches to stay local
15:18 alester What is my "index"?
15:19 PerlJam alester: that's the staging area for commits
15:19 alester ruoso: I don't want my branches to stay local if I'm working on multiple machines on the code.
15:20 PerlJam when you say "git add", that means "add these content changes to the index"
15:20 ruoso right.. but you dont need to push to the "official" repo
15:20 ruoso you can have a fork
15:20 ruoso and keep the main repo clean
15:20 alester I'm on a fork, but I want to branch that.
15:20 alester s/want/wanted/
15:20 ruoso ok then
15:22 alester Anyway, I've since closed and removed the branch, and my commit is back on the main petdance/rakudo
15:22 alester awaiting absorption
15:25 PerlJam moritz++  (.perl on Match)
15:25 alester What does .perl do anyway
15:25 moritz_ alester: the same as Data::Dumper in p5
15:26 zamolxes joined #perl6
15:27 mberends git question: if I edit a file in master and then create a new branch, does git retain or undo the file edits?
15:28 masak mberends: I don't think you can create a branch with a dirty working copy.
15:28 moritz_ it keeps the changes
15:28 moritz_ you can; I just tried with git-checkout -b newbranch
15:28 masak mberends: you can stash, branch and then stash apply. then you get the changes in the branch.
15:28 masak moritz_: ok.
15:29 masak then disregard what I just said.
15:29 mberends cool, thanks
15:29 moritz_ after creating the branch, the changes are in both master and the new branch
15:30 masak moritz_: are you really talking about changes which have not been git-added?
15:31 Exodist joined #perl6
15:31 moritz_ masak: yes.
15:32 masak moritz_: yes. you are right. I just tried it.
15:33 moritz_ although I noticed that for most other operations git requires a clean working copy
15:33 _MoC_ joined #perl6
15:33 moritz_ which takes time to get used to if you come from svn land
15:33 masak indeed.
15:34 ruoso but I think you can "git branch" "git checkout" with uncomitted and unadded cchanges
15:34 ruoso the changes will stay that way
15:34 ruoso so you can create a branch, go there, add and commit
15:34 TimToady git sems to require a lot more coordination in other channels than svn...
15:34 TimToady *seems
15:34 alester TimToady: It's funny that it's meant to make this all easier.
15:34 TimToady maybe it's just startup transients though...
15:35 alester TimToady: yes, that was the other thing I was going to say.  We are not experts yet.
15:35 moritz_ well, it's the first distributed scm I'm working with
15:35 moritz_ and surely not the simplest one
15:36 TimToady certainly if we are to remain scalable we need to study the decisions of a community that has already faced these issues
15:36 broquaint joined #perl6
15:37 TimToady on the other hand, if such scalability requires a linus, I ain't one...
15:37 alester TimToady: When we could flail around on our own for weeks, maybe months?  Where's the fun in that/
15:38 * mberends happily continues work in a local yaml-replacement branch of proto
15:38 masak mberends++
15:38 masak mberends: I'll be right back, gone for 30m.
15:38 mberends now for the code ;)
15:39 |MoC| joined #perl6
15:39 trexy joined #perl6
15:39 agentzh joined #perl6
15:39 p6eval joined #perl6
15:39 diakopter what, we can't have both a linus *and* a law?
15:43 p6eval joined #perl6
15:43 trexy joined #perl6
15:43 agentzh joined #perl6
15:44 cas joined #perl6
15:47 p6eval joined #perl6
15:47 trexy joined #perl6
15:47 agentzh joined #perl6
15:50 [particle]1 joined #perl6
15:52 agentzh joined #perl6
15:53 dalek joined #perl6
15:55 p6eval joined #perl6
16:00 trexy joined #perl6
16:07 pmichaud interesting scrollback today :-)
16:07 moritz_ ;-)
16:09 hercynium joined #perl6
16:09 pmichaud Okay, today we have another nice long fork queue for Rakudo.  Anyone want to tell me the appropriate steps to review it?  ;-)
16:11 alester pmichaud: I wish I could see what you see.
16:11 alester But I can't see your FQ
16:11 alester but I believe you'll just want to git-cherry-pick xxxxxx -n
16:12 alester You have 5c87f8aff70585f17962df45244e657ac0981f44 from me in your FQ?
16:12 pmichaud alester: you can't see the fork queue for Rakudo?
16:12 alester It's different for me than it is for you.
16:12 pmichaud http://github.com/rakudo/rakudo/forkqueue
16:12 alester because I may have applied some of those patches, or ignored others, or whatever.
16:13 pmichaud I don't understand.
16:13 alester And I definitely don't see my commits in the the queue
16:13 moritz_ I thought we wanted to ignore the FQ, and people request merges in RT?
16:14 moritz_ (or on IRC, or wherever)
16:14 pmichaud moritz_: alester and I are re-evaluating the FQ
16:14 alester moritz_:That was the other day.  Then Chris Dolan and I came up with a flow.
16:14 moritz_ alester: ah, ok. I didn't follow that thread too close
16:14 pmichaud alester: so, every person gets a different view of Rakudo's FQ?
16:14 alester pmichaud, can you take a screen shot of your FQ?
16:14 pmichaud alester -- sure... just a sec
16:14 alester Yeah, see it says "Your rakudo fork Queue"
16:14 pmichaud alester how about a pdf instead?
16:14 alester I didn't specify file format. :-)
16:17 pmichaud okay, that keeps crashing firefox.  I'll try a screen grab.
16:18 alester prob'ly 'cause the FQ does a bunch of JS
16:18 pmichaud it does okay in "print preview", just not the actual print.
16:19 pmichaud http://pmichaud.com/sandbox/fq-1.jpg
16:20 alester ok, I can't see mine.
16:20 alester but tha'ts OK
16:20 moritz_ it's the same as I see
16:20 alester is my 5c87f8aff70585f17962df45244e657ac0981f44 in there?
16:20 pmichaud note that I'm looking at rakudo's fork queue, not pmichaud's fork queue.
16:20 alester well, yes, but there's more below skids.
16:20 alester Your scrollbar doesn't like.
16:20 alester s/like/lie/
16:20 alester Yes, I know.
16:21 moritz_ alester: it's in there, yes
16:21 alester ok
16:21 pmichaud yes, I see 5c87f8
16:21 alester so then pmichaud can do a "git-cherry-pick 5c87f8aff70585f17962df45244e657ac0981f44 -n"
16:21 alester which will apply that commit, but not comit it.
16:21 alester and you can test it, diff it, whatever.
16:22 alester but if I was pulling stuff from rakudo/rakudo, then I'd not bother with the -n because I'm assuming that it's good.
16:23 pmichaud okay if I play "dumb" for a bit?  (more)
16:23 pmichaud pmichaud@orange:~/rakudo$ git cherry-pick 5c87f8
16:23 pmichaud fatal: Cannot find '5c87f8'
16:23 * skids totally screwed up his pushes, caveat, some to branch settingjunk, some to master, and one I have no clue where.
16:23 alester ok, you don't have my remote.
16:23 skids I suck I know.
16:23 pmichaud right.
16:23 alester So you can either add my remote.
16:23 pmichaud so I also need to add your repository as a remote.
16:23 alester right
16:24 alester you know how to do that?
16:24 pmichaud git remote add petdance <url>, yes?
16:24 alester yeah
16:25 pmichaud then 'git fetch'?
16:25 moritz_ and then 'git-fetch petdance'
16:25 alester git remote update
16:25 alester that will bring down everything in all your remotes.
16:25 moritz_ ah, that's convenient
16:26 moritz_ but I hope there's nothing wrong with 'git fetch'?
16:26 alester I think the remote update does the fetch + something else.
16:26 pmichaud pmichaud@orange:~/rakudo$ git cherry-pick 5c87f8 -n
16:26 pmichaud Finished one cherry-pick.
16:27 pmichaud pmichaud@orange:~/rakudo$ git diff
16:27 pmichaud pmichaud@orange:~/rakudo$
16:27 pmichaud :-(
16:27 alester git diff HEAD
16:27 pmichaud okay, git diff HEAD works
16:27 alester yeah, I just ran into that last night.
16:27 moritz_ why is the HEAD needed, even though it's not yet commited?
16:27 * masak read 'git diff HEAD rocks!'
16:28 alester moritz_: Not sure.
16:28 masak moritz_: isn't the diff against the last committed item, i.e. HEAD?
16:28 pmichaud 'git status' shows that the changes are uncommitted, yes.
16:29 alester There's a lot of stuff I just don't get here.
16:29 moritz_ masak: that's why I don't understand why I need the 'HEAD' part
16:29 alester I'm just trying to muddle through with memorization at this point.
16:29 alester #git was very helpful last night.
16:29 alester also, RJBS knows a lot.
16:29 masak moritz_: you're diffing wc against HEAD. it's wc that's implicit.
16:30 masak oh, wait. you don't need HEAD.
16:30 masak right?
16:30 pmichaud I do if I want to see the diff.
16:30 pmichaud 'git diff' displays nothing for me.
16:30 masak pmichaud: you're diffing what against what?
16:30 moritz_ masak: but when I change files locally, a bare 'git-diff' shows that. Not after a git-cherry-pick -n.
16:30 masak moritz_: ah.
16:30 moritz_ masak: and I don't understand the difference
16:30 pmichaud masak:  I basically did git-cherry-pick -n
16:31 masak then probably git-cherry-pick puts you in headless.
16:31 pmichaud masak:  after that, 'git diff' doesn't show me any changes.
16:31 moritz_ (and the bare 'git-diff' stays empty when I do a git-add $modified_file)
16:31 masak pmichaud: I see.
16:31 masak pmichaud: after git-cherry-pick, what does 'git status' say about your current branch?
16:32 pmichaud shows three files modified
16:32 pmichaud # Changes to be committed:
16:32 pmichaud #       modified:   Configure.pl
16:32 pmichaud #       modified:   tools/test_summary.pl
16:32 pmichaud #       modified:   tools/update_passing_test_data.pl
16:32 masak yes, but before that?
16:32 masak does it say 'you are not currently on any branch'?
16:32 pmichaud pmichaud@orange:~/rakudo$ git status
16:32 pmichaud # On branch master
16:32 pmichaud # Changes to be committed:
16:32 pmichaud #   (use "git reset HEAD <file>..." to unstage)
16:32 pmichaud #
16:32 pmichaud #       modified:   Configure.pl
16:32 pmichaud #       modified:   tools/test_summary.pl
16:32 masak ok.
16:32 pmichaud #       modified:   tools/update_passing_test_data.pl
16:33 masak ah.
16:33 moritz_ I'm asking in #git right now
16:33 masak pure 'git diff' doesn't show anything because it's already in the index.
16:33 masak you could also do 'git diff --cached'
16:34 masak pmichaud: pure 'git diff' diffs the wc against HEAD. but your changes are already in the index, to be committed.
16:34 pmichaud masak: ok, I get it.
16:34 pmichaud so, cherry-pick -n  does the equivalent of 'git-add' but doesn't do the 'git-commit' ?
16:34 alester It's more a merge than an add.
16:35 alester and yes, the -n says not to commit
16:35 alester git-cherry-pick --help
16:35 alester Note you cannot abbreviate as git-cherry because that is a command that shows the cherries that you have committed that have not been accepted on the main stream.
16:36 pmichaud okay, so I'm comfortable with alester's   5c87f8 commit and would know what to do there.  What about the other commits in the fork queue?
16:37 alester Do the same thing and then test 'em out, I guess.
16:37 moritz_ pmichaud: an answer I got before you joined was "the difference is that with cherry-picking the diffs are in the index, with local modifications it's not in the index"
16:37 masak right.
16:37 pmichaud alester:  this gets back to my point of "there are far too many commits to review here."
16:37 nihiliad joined #perl6
16:38 alester pmichaud, exactly.  You still have to have people well behaved.
16:38 alester My commit was easy, because I made it as easy as possible.
16:38 pmichaud alester: I'm trying to get to the point of being able to tell people how to behave.
16:38 pmichaud i.e., we don't document good behavior yet.
16:38 alester Right.
16:38 alester skids' commits, for example, are no good because they're not independent.
16:39 pmichaud but even in petdance/rakudo, I see dozens of commits.  How would I know which ones to review?
16:39 alester What he should have done is do all his work on a branch, then merge that down into a single --squash commit, and then you have a single commit to work with.
16:39 alester You do?
16:39 alester You may have to ignore older ones.
16:39 alester But I can't see your queue.
16:39 pmichaud screenshot coming.
16:39 skids Yeah I'll have to have a sit-down with git and figure out how one might be able to consolidate old commits somehow.
16:40 alester (And not to pick on you, skids, we all did slop)
16:40 pmichaud http://pmichaud.com/sandbox/fq-2.jpg
16:40 skids Hey I'm fulling willingto admit I have absolutely no clue as to what the heck I'm doing :-)
16:40 alester oh my
16:41 alester I think you can simply click All and then for Actions do an Ignore.
16:42 pmichaud yes, I can do that.  You're saying that when we all know what we're doing we wouldn't see this long queue?
16:42 alester Not sure why you see those as commits, because all those things that aren't from me are just cherry-picks from elsewhere.
16:42 alester pmichaud: Yes, that's the goal.
16:42 allbery_b joined #perl6
16:42 alester at least as I understand it.
16:42 pmichaud let me push your commit to master, first.
16:42 alester ok
16:43 alester and when you do that, the 5c87f8 ought to disappear when you reload the page.
16:44 skids So for future reference, when we have something we actually want to go upstream, we push it to master:master, but if we are working in a branch we push to branch:branch, and if we are in a branch and hopefully know that, and we want to push upstream we push branch:master, am I getting this?
16:44 alester skids: You shouldn't even necessarily have to push your branch up to the server.
16:44 Psyche^ joined #perl6
16:45 pmichaud okay, I just did "git commit -a; git push"
16:45 alester You cn have your branch be entirely on your local, and then merge it to your skids/rakudo fork
16:45 skids Right.
16:45 skids I was just typing in stuff until it stopped saying "rejected" :-)
16:45 pmichaud I suspect that I could have also simply applied it from the fq page.
16:46 alester pmichaud: Yes, but if you do that, then you can't run tests on it.
16:46 pmichaud alester: I mean after running tests on it.
16:46 alester oh, hmm, yeah, I guess, but I don't know what will happen if you do a git pull at that point.
16:46 alester you'll need to undo the merge in your wc
16:46 pmichaud that's no problem, I do that frequently.
16:47 alester Now, here's the weird thing.  It doesn't show that I wrote it.
16:47 alester http://github.com/rakudo/rakudo/commit/6​88f9a2f8626c893b529994ed4c241d12a63e6ee
16:47 dalek rakudo: 688f9a2 | pmichaud++ |  (3 files):
16:47 dalek rakudo: Modernizing some code. Eliminated globals from Configure.pl.  Error checking on file closes.
16:47 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/6​88f9a2f8626c893b529994ed4c241d12a63e6ee
16:47 alester I think that if you do it from the FQ screen, it shows that I wrote it, and you approved it.
16:48 pmichaud right.  In the patch world we would've added your attribution as part of the commit message.
16:48 pmichaud I didn't do that here because I wanted to see what would happen.
16:48 alester oK.  I'm not looking for credit or anything. :-)
16:48 alester But in the future, I think it'll be important.
16:48 pmichaud I also wonder if it would've kept the attribution if I didn't do "-n" on cherry-pick.
16:48 alester on more important commits.
16:49 alester I think so.  also, you can do git commit -c
16:49 alester or -C
16:49 pmichaud oh, git commit -a put me into the editor and I saw your commit message.
16:49 pmichaud Yes, looks like -C might have kept the author information.
16:49 alester git commit -a -C 5c87fc
16:50 alester or -s?
16:50 pmichaud anyway, I think I can figure out the options to keep the attributions in place.
16:50 alester ok
16:50 pmichaud okay, so I should now "ignore all" for petdance.
16:50 alester on those commits, yeah.
16:52 alester Your commit shows as red for me, alas.
16:52 NoirSoldats joined #perl6
16:52 pmichaud yes, because it conflicts with your commit.
16:52 alester whereas if you had kept that 5c87fc mine would have said "Oh, need for that."
16:53 pmichaud right.  But again, I can figure out how to streamline that.
16:54 Khisanth joined #perl6
16:55 alester interesting, my cherry pick on 688f9a2f8626c893b529994ed4c241d12a63e6ee had no problems.
16:55 alester Wonder if it said "This would put you exactly as you are, so nothing to do."
16:56 pmichaud it probably detected that nothing conflicted.
16:56 alester Tomato, tomahto.
16:56 alester :-)
17:00 pmichaud okay, now let me try again on bacek's e2d589 commit.  This time I'll try git-cherry-pick without -n
17:02 pmichaud okay, cherry-pick w/o '-n' puts it into my local repo.... now how do I see it?
17:03 alester it's just there
17:03 alester do a git log
17:03 pmichaud I'm trying to see the diff of what I currently have committed with where I started.
17:04 pmichaud ah, "git diff HEAD^"
17:04 alester I don't think you can
17:04 alester oh, Ok, that'll do it
17:04 alester or HEAD-1, I believe.
17:04 pmichaud it didn't like HEAD-1.  HEAD^ worked, though
17:05 alester ok, strange.
17:05 alester I haven't tried either, myself. :-)
17:05 pmichaud (I'm guessing HEAD^1)
17:05 masak not '-', '~'
17:05 alester no, I think it's HEAD^^^ if you want to go back 3
17:05 alester ah, thanks, masak
17:07 pmichaud "git diff ORIG_HEAD" also looks useful.
17:07 pmichaud (not sure what it does, but it also shows me the difference before/after bacek's commit)
17:12 ejs joined #perl6
17:13 pmichaud okay, doing it that way looks like it preserves author information.
17:14 alester doing what what way?  cherry-pick without the -n?
17:14 dalek rakudo: 868c638 | bacek++ | build/gen_metaop_pir.pl:
17:14 dalek rakudo: Implement [Rop]
17:14 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/8​68c63865dcaa8a7281aa922fcf1ba1652eaee30
17:14 pmichaud yes, cherry-pick without the -n.
17:20 masak I bow before the competent folks of #perl6, and ask this question: is Web a good name? background: http://gist.github.com/73406
17:20 masak yay, my first question with references. :P
17:20 alester Oooh, a gist.
17:21 mberends masak: no
17:21 masak mberends: ok.
17:21 masak I guess I'm just having separation anxiety, then.
17:21 pmichaud I think that by a similar argument, we would say that 'Test' is a bad name for a module also.
17:21 masak pmichaud: I agree.
17:21 mberends know your place in the food chain
17:22 masak mberends: aye, but this is an exception.
17:22 slango joined #perl6
17:22 masak I know how this must sound. :)
17:22 pmichaud I do think that "hubris" is one of the core Perl virtues, fwiw.
17:22 masak wayland76 tried to introduce 'Tree' with much the same arguments.
17:23 masak mberends: what would *you* call a web module that would replace CGI?
17:23 pmichaud masak: I think "Web" is fine as a nem.
17:23 pmichaud *name.
17:23 mberends xhtml
17:23 masak mberends: oh no, no, no.
17:23 pmichaud xhtml doesn't capture the module.
17:23 mberends sorry
17:23 masak mberends: you're not thinking big enough.
17:23 alester web is too vague
17:24 masak alester: so they keep telling me. why?
17:24 alester what aspect of web is it covering?
17:24 alester Server-side CGI handling?
17:24 masak alester: web development.
17:24 masak alester: Perl 6 development for the web.
17:24 mberends btw, congrats on the grant!
17:24 masak alester: please read the grant application.
17:24 pmichaud yes, congrats on the grant.
17:24 masak mberends: thank you :)
17:24 masak pmichaud: thank you :)
17:24 alester masak: No.
17:25 alester Just give me an idea.  And really, the module should have that same feel.
17:25 alester The user shouldn't have to read the grant application or source code to know what it does.
17:25 mberends masak: LWP6 ?
17:25 pmichaud masak: perhaps by way of comparison, we should look at other one-word-names in CPAN / Perl 6
17:25 alester I really despair of all the "6" that people want to put on things.
17:25 masak alester: it would be the module that would enable the programmer to make a web application, small or large.
17:26 masak alester: me too, fwiw.
17:26 * mberends three
17:26 alester MasaK: So, WebFramework
17:26 masak alester: if you don't want to read up on what it does, I can only help you so much.
17:26 alester If anyone creates a "6PAN", I'm leaving for Ruby.
17:26 masak alester: it's not really a framework, either.
17:26 alester masak: You're not thinking like a marketer.
17:26 pmichaud I don't find "WebFramework" any more descriptive than "Web", fwiw.
17:26 masak alester: obviously not.
17:26 alester You want people to use your code, you need to have it be interesting.
17:27 masak alester: I want people to reach for Web because everyone else is using it.
17:27 alester Really, go ahead and call it Web because who knows what else will come along.
17:27 pmichaud masak: I agree that "Web" is fine, but here's another perspective.
17:27 pmichaud why didn't you call November   "Wiki"  ?
17:27 masak ok, I need to go really soon. please keep discussing, and I'll backlog.
17:27 masak pmichaud: point taken.
17:28 alester Why is google google and not "search engine"
17:28 pmichaud and personally, I find "Rakudo" to be a much more useful name than "Perl 6"
17:28 masak pmichaud: I think we'll call the MVC part of Web something name-y, because that part _is_ opinionated.
17:28 alester pmichaud++
17:28 pmichaud (to identify what it is that we're building)
17:28 masak but a lot of things aren't.
17:28 mberends "March" ? ;)
17:28 alester What makes it NOT a framework, masak.
17:28 mberends yeah, what?
17:28 masak hm.
17:29 pmichaud so, instead of calling it "Web", where few people will know what it is, perhaps a more clever brand is useful.
17:29 alester pmichaud: Exactly.
17:29 pmichaud much like "Moose"
17:29 masak I want to make it more of a convention than a framework.
17:29 alester "Catalyst" is a great project name.
17:29 pmichaud Moose would be much less well known (and interesting) if it was    use Objects;
17:29 alester yup
17:29 masak in short, Web will enable people to get started with Perl 6 web programming really, really easily.
17:30 masak I have another gist to demostrate this.
17:30 pmichaud also, would Rails have been as popular if it was called   Ruby Web?  ;-)
17:30 masak pmichaud: as I said, we'll probably call the MVC framework something else.
17:30 masak http://gist.github.com/68506
17:31 pmichaud I'm just talking about a name :-).  And yes, I fully understand how hard it is to come up with good names; it took a year before we ended up with Rakudo.
17:32 pmichaud I also strongly feel that whoever does the work should be allowed to choose the name.  :-)
17:32 masak well, I'll try to be open to other names. but so far my clear favourite is Web.
17:32 * mberends suggests giving the naming process ample time...
17:32 alester mberends++
17:32 masak let's consider it a working name.
17:33 masak maybe we'll decide to change it as we go along.
17:33 pmichaud I'd go with Web as a working name, yes.  Just like Rakudo went with "perl6" as its working name.
17:33 alester masak: One more to consider.  You will not be able to Google for it if you call it Web.
17:33 masak alester: noted.
17:33 masak everyone, thanks for your feedback.
17:33 masak food &
17:33 * pmichaud googles "rakudo" out of curiosity.  Yay.
17:35 pmichaud It's nice that the entire first page of Google search results for "rakudo" has to do with Rakudo Perl.  :-)
17:35 pmichaud (at least on my system)
17:36 alester my perlbuzz templates are unhappy. :-(
17:41 pmichaud afk, lunch before #ps
17:43 DemoFreak joined #perl6
17:44 [particle]1 joined #perl6
17:45 aindilis joined #perl6
17:45 dalek rakudo: c08b9bd | pmichaud++ | docs/spectest-progress.csv:
17:45 dalek rakudo: spectest-progress.csv update: 315 files, 7087 passing, 0 failing
17:45 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/c​08b9bd36a68de80abf8b61d41838a3b2a59b583
17:55 aindilis` joined #perl6
18:00 ilogger2_ joined #perl6
18:04 Ariens_Hyperion joined #perl6
18:07 barney joined #perl6
18:13 akhil_ joined #perl6
18:16 Psyche^ joined #perl6
18:21 ejs joined #perl6
18:32 Exodist joined #perl6
18:40 PerlJam masak: you got the Web grant?  congrats!
18:40 masak PerlJam: thanks!
18:40 masak it's much easier to try hard to live up to expectations when it turns out that people are willing to fund you. :)
18:41 PerlJam masak: Okay ... since you're funded, I expect you guys to produce the perl 6 version of Catalyst  ;-)
18:41 masak we will make an honest start.
18:41 masak we do have a very ambitious 11-week plan.
18:41 PerlJam was code hosting going to be github?
18:42 masak aye, there's already a repo.
18:42 PerlJam url?
18:42 ruoso masak, my suggestion
18:42 masak PerlJam: http://github.com/masak/web/
18:42 PerlJam danke
18:42 masak np
18:42 ruoso create custom grammars, so you can do something like
18:42 ruoso controller Foo { action bar { } }
18:42 masak ruoso: noted. I've been thinking such things.
18:43 ruoso and talk with mst and nothinmuch
18:43 masak but I also want to write working Rakudo-today code.
18:43 masak ruoso: I'll definitely talk to them. I'm a lurker at #moose.
18:43 ruoso #catalyst and #catalyst-dev are helpful as well
18:43 masak I can imagine.
18:44 masak I will give myself a crash course in various web things in the coming weeks.
18:44 ruoso and for starters, I'd warn that "DispatchType" was the biggest mistake in Catalyst...
18:44 ruoso so, don't repeat it ;)
18:44 masak ruoso: ok. any links?
18:44 ruoso make other mistakes instead
18:44 * PerlJam wonders why no one has pressed Devel::Declare into service for controller Foo { action bar {} }
18:45 ruoso PerlJam, mst has already considered that
18:45 ruoso and it seems it can do the job just fine
18:45 ruoso masak, unfortunally I don't have any links to that...
18:45 masak ruoso: ok, I'll try to do some research myself.
18:45 ruoso but basically, if you use more than one dispatch type in an application
18:46 masak ruoso: thanks for the pointer.
18:46 ruoso it will blow in your face
18:46 ruoso not with an error,
18:46 PerlJam heh ... we'll show those ruby folks what a DSL really looks like!  ;)
18:46 masak ruoso: dispatch type?
18:46 ruoso but with unpredictable behaviour
18:46 ruoso :Path, :Regex, :Chained
18:46 ruoso make everything a variation of :Chained
18:46 ruoso if you talk with mst, he'll explain that in detail
18:47 * masak is in over his head already
18:47 masak I'll talk to mst.
18:47 * ruoso also does a kind warning about mst mood, which is mostly hard to deal with
18:47 ruoso ;)
18:47 masak :)
18:53 Tene_ joined #perl6
19:08 ejs left #perl6
19:16 justatheory joined #perl6
19:19 Whiteknight joined #perl6
19:25 mikehh joined #perl6
19:37 estrabd joined #perl6
19:39 renormalist joined #perl6
19:41 Ariens_Hyperion joined #perl6
19:56 mberends masak: batten down your windows, I have a yaml-replacement branch ready to send.
19:56 masak hit me.
19:57 masak I'll be boring and warn that I won't have the chance to look at it really closely until sometime tomorrow afternoon... but I'm definitely curious.
19:57 mberends pushed
19:58 ejs joined #perl6
19:58 masak pulled.
19:58 mberends all this Web excitement... btw how about "Uppsala" or a place you like a lot?
19:59 masak mberends: thing is, I like 'Web'.
19:59 mberends heh
19:59 PerlJam I vote for just Web.
19:59 masak mberends: git says I'm up-to-date.
19:59 masak you sure you pushed?
19:59 * mberends probably didn't push the correct branch
20:07 mberends nope, cannot see a change on git hub. git status showed the changed file in the yaml-replacement branch. git add proto updated the status as usual. git commit added a comment and created a commit. git push flushed the status. I'm puzzled.
20:09 masak mberends: so you did your development in a branch, you say_
20:09 masak ?
20:09 mberends yes, create during that earlier discussion today.
20:10 masak did you perchance do 'git co master; git merge yaml-replacement; git push origin master' ?
20:10 masak (you should)
20:10 masak sorry, s/co/checkout/
20:10 masak :)
20:10 masak aliases are addictive.
20:12 mberends no, it was 'git branch yaml-replacement; git checkout yaml-replacement'
20:12 masak yes, when you began your branch work, it was.
20:12 masak but when you were finished?
20:14 mberends the finish was 'git status; git add proto; git commit; git push' and the status said yaml-replacement
20:14 masak well, there you go.
20:14 masak that doesn't work.
20:14 mberends git branch also says yaml-replacement
20:14 masak you need to merge back to master.
20:15 masak I think you might have managed to push your branch up to github, perhaps.
20:15 masak I don't have time to check.
20:15 masak but that doesn't matter.
20:15 masak merge to master and push from there.
20:15 mberends oh dear, I had hoped this branch technique would safeguard master from relatively untested code.
20:15 masak sure it can!
20:15 masak once you learn to use it :)
20:16 mberends in the right hands, quite
20:17 mberends so, is it now 'git checkout master; git merge yaml-replacement' ?
20:18 masak yup.
20:18 masak took me half a summer to wrap my head around git.
20:18 masak but it was worth it.
20:19 * mberends copies and pastes the one precious file before proceeding
20:19 masak might I recommend googling for 'git from the bottom up'? that one helped me.
20:19 mberends good, thanks
20:22 mberends 'git realpush' worked this time ;)
20:23 * masak realpulls
20:24 bacek good morning
20:24 masak mberends: looks really good.
20:24 masak bacek: dangit, I haven't even gone to bed yet! :)
20:24 mberends what? is it tomorrow already?
20:25 bacek mberends: 7-and-half hours
20:25 bacek masak: what for? It's morning already! :)
20:25 masak like heck it is.
20:25 masak in that case I would be very late now.
20:43 aindilis joined #perl6
20:45 * mberends tries the Plan 9 livecd but has learned only one thing: Snarf is the new Copy.
20:48 baest joined #perl6
20:49 mncharity joined #perl6
20:51 mncharity moritz_:  hi.  I just saw: http://perlgeek.de/blog-en/per​l-6/tidings-2009-02.writeback 's "Elf  Mitchell Charity developed a branch of his elf compiler that's very easy to get to run: just change to its directory and type make.".  that's regrettably not correct.  intent, but not current state.  perhaps the README is misleading?
20:52 mncharity gimme_elf is waiting on someone who does perl _5_ and cares.  need to get the 4 p5 files of the gimme5 implementation to work as a single p5 file.  they currently don't, and I've blown my time budget for it.
20:52 mncharity s/cares/cares+has tuits/
20:54 Tene_ why do they need to be a single file?
20:57 pugs_svn r25666 | putter++ | [gimme_elf] README: Made description of current project state less misleading.  moritz++
20:58 mncharity Tene_: gimme_elf's "thing" was "one file, no complexity, just download and run".
20:58 Tene_ ah
20:58 mncharity so no real reason.  anyone who wants to do an elf variant that installs, in whatever manner, or a CPAN module, or whatever, is most welcome/encouraged to.
20:59 mncharity Has anyone explored whether rakudo can currently be used for non-small p6 projects?
21:00 alester mncharity: whare are you thinking?
21:01 mncharity pugs could pass lots of tests too.  but pugsbugs would prevent doing anything larger than the smallish modules in ext/ .
21:01 mncharity if rakudo is over that hump, then most of the justification for elf goes away.
21:01 mncharity s/most/much/
21:02 diakopter yeah, a good tabular view of the passing vs. failing tests would be nice.  There probably already is one somewhere...
21:02 mncharity as far as I know, rakudo hasn't yet been tested against even the ext/ modules.
21:02 mncharity I was hoping someone else had explored the issue / had experience/insight,
21:03 mncharity because otherwise it looks like it's near the top of my own todo list.
21:03 mncharity and I'd really rather not just now.
21:03 alester What are the ext/ modules
21:03 * mncharity gets pointer
21:04 mncharity http://perlcabal.org/svn/pugs/browse/ext
21:04 mncharity http://perlcabal.org/svn/pugs/view/ext/README
21:05 alester None of those are going to work, I'm sure.
21:05 sri_kraih joined #perl6
21:06 alester big question: what are we going to ship with rakudo as far as modules?
21:06 mncharity I suspect so as well.  The key question is
21:06 mncharity if their language is tweaked to reflect current spec, will they still not work?
21:06 [particle]1 alester: almost none. just what's needed to install modules.
21:07 alester Whatever those happen to be. :-)
21:07 mncharity And if still not, how difficult/possible is it to get them to do so.
21:07 masak alester: AFAIU, only what's needed to get out on CPAN or equiv.
21:07 alester Defining the core modules could open up a world of opportunities.
21:07 alester "We need this 20 modules to ship Rakudo. Get on it."
21:07 mncharity concept++
21:08 diakopter well, does "ship Rakudo" also depend on "pass the entire test suite"?
21:09 alester Again, not a question for me.
21:09 alester but one to answer.
21:09 mberends mncharity: the porting of perl5 core modules to Rakudo is the task I'd like to work on most of all. There are some beginnings in http://github.com/eric256/perl6-examples
21:09 mncharity alester: re "None of those are going to work, I'm sure.", and if they were tweaked to reflect current language spec?
21:09 [particle]1 rakudo will ship monthly
21:10 mncharity re porting core, great!  /me looks...
21:10 diakopter (including the [yet unwritten?] tests to interpret/compile/evaluate as Perl 5 without the 'use v6' etc?
21:10 diakopter )
21:10 alester It has long been my assumption that the 'run perl 5 code' will not happen in any Rakudo 1.0.
21:12 diakopter alester: right, okay, [particle]1 was answering my question about what it means to "ship rakudo", but was indirectly correcting your usage of "ship rakudo" when talking about needing 20ish modules for it...
21:12 alester I pulled 20 out of my butt
21:12 diakopter alester: therefore, what exactly do you mean by "ship rakudo", since [particle]1 uses it as "monthly namings/snapshots"?
21:13 mncharity sigh.  "github, it's the new sourceforge!"  with all the years of pain that implies.  ah well.  perhaps time to punt gitorious.  :/
21:14 [particle]1 don't confuse the program with a distro
21:14 [particle]1 rakudo will likely have multiple distros, by multiple authorities
21:14 alester mncharity: Is there anything you DO like?
21:14 mncharity lol :)
21:15 diakopter alright...... .... I still want to know what alester means by "ship rakudo"?
21:15 alester I don't know.
21:15 alester At some point we have to say "Rakudo is ready for prime time" and make the commensurate hoopla.
21:16 diakopter I ask b/c I always thought that finish line was completing the language implementation as defined by the test suite
21:16 SamB why not composite time ?
21:16 diakopter (lol)
21:17 alester We can keep saying"We release every month" forever, but that doesn't gain us the splash, or finish line, that we need.
21:17 diakopter ... or zeta function time?
21:19 diakopter no, but redefining the finish line works, too.  that's why I was asking how you wanted to define it. :P
21:19 [particle]1 there's no finish line for perl 5
21:19 mncharity alester: re "Is there anything you DO like?"  If you told me 15+ years ago that I'd never again use a debugger capable of rolling time backwards until past 2008, I'd have said you were a nutty pessimist.  And yet here in the future... .   So, no, not much of the current state of software engineering fills me we gleeful delight.
21:20 mncharity Nice to seek Haskell getting near to win.
21:20 alester [particle]1: Yes, we can push out the finish line.
21:20 alester But we need to have something to aim for.
21:20 mncharity Some of the java->massive parallelism is nice.
21:22 mncharity http://code.google.com/p/cakejs/ is kind of cute.
21:22 * [particle]1 aims for continuous improvement
21:22 alester Yes, of course, and yet that doens't work for most outsiders.
21:23 [particle]1 sure. "usable subset" is a near-term goal
21:23 mncharity in a "Microsoft broke the web a decade ago but we're finally digging out from that by piling up the dead bodies high enough" kind of way.
21:23 alester And what that usable subset is has yet to be defined.
21:23 [particle]1 mainly, rakudo is missing some i/o, but is otherwise near to that
21:23 mncharity .end
21:23 mncharity ok, let's see.
21:23 * [particle]1 thinks CGI.pm will compile on rakudo
21:24 mncharity mberends: how much of that code is currently running in rakudo?
21:24 [particle]1 i'm compiling parrot/rakudo now to find out
21:24 mberends mncharity: all of it, and Pod::Parser with 47 tests so far
21:25 mncharity :)
21:26 pmichaud particle has it correct -- as I see it, Rakudo is an implementation of Perl 6.  It's not a distribution (at least not in the sense that I've heard TimToady/the design time speak of Perl 6 distributions)
21:26 pmichaud s/time/team/  # still can't type :-(
21:26 donaldh joined #perl6
21:27 mncharity perhaps scavenge code from ext/ ?   a couple of announcements of "and ext/foo/ now runs in rakudo too!" might wake up all the ext/ authors and get them writing p6 for rakudo.
21:27 mncharity I'd very much like to see waking up of p6 authors.
21:29 mberends [particle]1: there is a Rakudo CGI.pm in http://github.com/viklund/november/tree/master/lib
21:29 masak but please let it die in peace. :)
21:29 masak we're building Web to supercede it.
21:30 masak November's CGI.pm was never meant to be anything but temporary.
21:30 [particle]1 yes, i know. but still, ext/CGI/lib/CGI.pm exists in pugs
21:30 alester pmichaud: There has to be a distribution.
21:30 [particle]1 it's just a module from a different authority
21:30 alester There has to be a tarball that people download and install that says "I am usable."
21:31 pmichaud alester: sure, I'm just saying that "Rakudo Perl" might not be the distribution.
21:31 alester We need a finish line.  Some kind of milestone.
21:31 pmichaud alester: I don't disagree with you on these points.
21:31 alester Right now, the only people moving forward are core people, and it's tough to bring people in, or even to help out myself.
21:31 [particle]1 the distro may, however, be called rakuda-do :)
21:31 alester I'm just assing around with perlcritic.
21:32 Ariens_Hyperion rakudo -> raccoon
21:32 [particle]1 alester: the barrier for entry has been lowered quite a bit now that we can write primitives in perl 6
21:32 pmichaud I'm simply saying that Rakudo Perl can be the compiler used in several distributions.  It's not necessary for Rakudo Perl to be a distribution in and of itself.
21:32 [particle]1 this needs to be advertised in articles and tutorials
21:32 pmichaud [particle]: we're not *completely* there yet, though.
21:32 [particle]1 yeah, need 'import' working
21:32 alester [particle]1:  But what should people do?  I cross the low barrier, and then what?
21:33 alester We need direction.
21:33 pmichaud before I start pointing out direction I'd like to get our patch workflow in place.
21:33 alester I don't see them as mutually exclusinve
21:33 pmichaud otherwise I end up with gobs of useless commits on github.
21:33 alester esp. 'cause direction is going to take a while.
21:34 [particle]1 one direction is passings tests. another is converting modules.
21:34 pmichaud if I post an invitation identifying places for people to start hacking, we need the infrastructure in place to support that hacking first.
21:34 pmichaud otherwise we're setting people up for big disappointment and failure.
21:34 pmichaud or frustration.
21:34 alester pmichaud: I understand that.
21:35 alester I'm not saying you need to advertise the direction yet.
21:35 alester BUt I'm guessing we dont' know what that direction is yet.
21:35 alester s/we/you/
21:35 pmichaud I have some ideas, yes.
21:35 alester some ideas, right.
21:35 alester I'm just thinking that it will take a while to turn into a roadmap to get to that milestone.
21:36 mncharity one possibility might be to spin up individual perlmonger groups.  eg, if vienna is active, use them as guinea pigs.  eg, if they have a monthly hackfest, ask them to devote one to creating primitives, or porting modules, or whatever.
21:37 pmichaud I think that there tends to be a huge amount of planning to make that happen, though.
21:37 pmichaud (more)
21:37 mncharity could be.
21:37 pmichaud If the thing to be accomplished in a hackfest can be done within a couple of hours, then it's likely done before the hackfest already.
21:38 pmichaud If it's fairly significant, then it's not doable in a couple of hours, or it requires larger understanding/coordination with the overall code base.
21:38 nihiliad joined #perl6
21:39 mncharity I'm not sure about that last part.  Is there even a list of all methods mentioned in Snn with their signatures yet?
21:39 mncharity That's a "need a warm bodied minion, needn't even know perl" kind of task.
21:39 pmichaud mncharity: people are working on that now, I believe.  Yes, documentation and updating synopses can be a good hackfest sort of task.
21:41 mncharity next step up, just sketching in class definitions with empty method bodies would be great.  well, at least elf wise.  don't know, would it help rakudo?
21:42 pmichaud mncharity: yes, as long as it doesn't conflict with existing method bodies.
21:44 mncharity dunno.  I just remember pugs had 50+ active committers going at the same time, in a situation where only a few @audrey could actually improve the implementation.  even once there was some "prelude written in p6" support.  so... it suggests there's *something* they could be working on.
21:45 pmichaud were most of the commits to the implementation or to things surrounding the implementation (such as ext/) ?
21:45 pmichaud because things like ext/ could be done now, yews.
21:45 pmichaud *yes.
21:46 mncharity Eg, I've been finding the rx test suite to be partial to the point of toy-ness.  A checklist of feature X is parsed and works once on a toy case.  But almost no attempt to really bang on an implementation, looking for problems.
21:46 mncharity surrounding
21:46 pmichaud I've invited people to bang on rx tests since 2004.
21:47 mncharity lol  (sad lol)
21:47 pmichaud and that hasn't required any Perl 6, PIR, or other specialized knowledge beyond S05.
21:47 [particle]1 the fact that we have a perl 6 grammar tells me pge is working well.
21:48 [particle]1 the fact that it's not full, and that it's slow tells me pge could work better
21:49 mncharity Oh yes, I was going to suggest now that tests are moving into spec, that we also invite people to contribute to something else.  "t/slushpile"? :)    spec-ness raises the barrier to contributing a test.   we might want to have a "zero effort, please just spew tests here, and someone with more experience and clue will grovel over the input, pulling out nice bits, and leaving suggestions on improving that not yet usable.
21:49 pmichaud mncharity: I think we have that, in t/spec/uncategorized (more)
21:50 pmichaud that said, I'd be totally in favor of t/slushpile or something like it.
21:50 pmichaud my concern would be that a lot of tests would go into t/slushpile that are really already in t/spec
21:51 pmichaud we somewhat have this already in Rakudo, where people contribute tests to Rakudo's local test suite instead of the official test suite.
21:51 mncharity avoiding dups doesn't seem worth creating backpressure on test writers.  most bug reports are dups... still want'em.
21:51 pmichaud it does take cycles to filter the dups.
21:51 mncharity indeed.
21:52 mncharity maybe it's just me, but my bottleneck isn't cycles, it's that there's noone around helping.
21:52 pmichaud what I do seem to hear a lot of:  "I want to write tests, but I don't want to have to review what's already been done." (more)
21:52 pmichaud or "I want to contribute to an implementation, but I haven't looked at the docs or subscribed to the appropriate mailing lists" (more)
21:53 pmichaud some of that is that we haven't done a good job of pointing people in the correct places.  rakudo.org is intended to fix that (more)
21:53 pmichaud some of it is that we have done a good job of pointing people to the correct places, but they don't bother with files named "README".
21:54 masak there's a README? :P
21:54 mncharity lol
21:54 masak (kidding, I've actually seen it)
21:55 pmichaud usefully, it's the major thing that shows up when viewing the rakudo github repo :-)
21:55 mberends perl5 Test::Tutorial is almost the right kind of Howto for testing. We should ask each test writer to do some preliminary duplicate squashing.
21:56 pmichaud mberends++ # I like that approach.
21:57 masak heading home now. today has been a very good day.
21:57 masak see y'all tomorrow.
21:57 mberends "I don't want to have to review what's already been done." is nonsense.
21:57 mberends masak: o/
21:57 mncharity Having barriers to entry to filter populations, protect or engineer communities, or shield core development staff, can indeed be useful.  But they're also usually "not what you really want".  OLPC just being the most recent high profile project to tank on "we're too busy to spend time creating a community".
21:58 masak \o
21:58 pmichaud mberends: I agree, but it's the sentiment I seem to get from others.
21:58 mberends the others then need encouragement and enlightenment
21:58 pmichaud I think the truth is that writing tests isn't fun unless you (1) need the feature for whatever other project you're working on, and/or (2) you have the ability to quickly make the test pass.
21:59 pmichaud or (3) you're _really_ interested in fleshing out the spec and improving test coverage.
21:59 diakopter I would interject that the barrier to entry (into the "writing Perl 6" role) is (currently! but perhaps not for very long) high enough to prevent anyone but the most diligent/vigilant/available/skilled individuals from making any progress and being able to ramp up to making a valuable contribution.  This is almost entirely due to the language specification's ever-moving target and the confusion about multiple [all mostly incomplete and largely mutually c
22:01 mncharity "incomplete and largely mutually c" ...?
22:01 nihiliad joined #perl6
22:01 diakopter oh, hm, some of that got truncated
22:02 * pmichaud waits for the truncated part to appear, then has a reply.
22:02 diakopter http://perl6irc.pastebin.com/d18d2c8d
22:03 Whiteknight joined #perl6
22:04 pmichaud that was longer than I expected.  :-)
22:04 diakopter (that's what she said)
22:05 pmichaud Yeah, I get that a lot.  :-)
22:05 mncharity re '"I don't want to have to review what's already been done." is nonsense.', I strongly suggest not.  Eg, say looking at some corner of the spec and spewing combinations of "feature X1 with Y1 in context Z1.  now X1 Y1 Z2.  now X1 Y2 Z1.  now..." might be a task of cost .  repeatedly grepping over the spec, groveling over scattered test files for X's and Y's, can very easily be a task in and of itself much >X
22:05 diakopter (twss, again)
22:06 mncharity err,
22:06 mncharity s/cost ./cost C/;  s/much >X/much >C/
22:07 diakopter okay, but the tests one writes will need updating if the spec changes.
22:07 diakopter (and who commits to that maintenance)
22:07 diakopter (whoever changes the spec :P)
22:07 skids diakopter: The moving target is very frustrating, and I agree the biggest barrier to participation.  People don't like implementing something to the letter of a spec and then being told, but no, we didn't mean that in the spec.  I'm the patient type though so it doesn't bother me as much.
22:09 mncharity re d18d2c8d, yes, nice, but...  *I* haven't done many/most of those things.  So it's not clear that's really the required level effort to participate.
22:09 mncharity re spec changes, I just don't see it.
22:09 mncharity we are talking about truly trivial volumes of code.
22:10 skids The other thing is the heavyweight contributors have to learn to be a whole lot less thorough.  If, say jnthn or someone were to implement some feature like say int8, DON't also implement int16, int32 along with it.  Leave any work that can be easily done by imitation be done by newbies for learning purposes.
22:10 diakopter for someone who knows the language(s) and the change thoroughly, yes it's a trivial volume of code.
22:11 mncharity If spec changes are really a big problem, then p6 has a really big problem.  For it's a language one of whose major disadds will be allowing a thousand little incompatible p6 dialects to blossom.
22:11 diakopter my point about the moving target was mostly that it's a psychological deterrent based on the fear of wasted effort, not that it's necessarily a rational fear based on a good model of how the test suite is updated.
22:12 mncharity Aside from being the single largest most complex language in existence.
22:15 mncharity skids: there aren't a whole lot of people now asking "I'd like to help, by doing something small and easy.  please point me".  once were, haven't been for a while (years).  the "defer doing parts of tasks to provide newbie learning material" is indeed a great approach.  but without an active community to suck them into, I'm not sure it's currently worth the cost.  aside from their being no newbies.;)
22:16 skids Well, it would be good to set aside a few simple tasks and just leave them undone so you have them ready for newbies.  If you keep one, they may have friends that will follow them in.
22:17 diakopter right, without *visible* entry points to the helping task, no one can volunteer themselves.
22:17 mncharity re "psychological deterrent", could be.  I'm not sure.  I don't recall that being one of the things mentioned when this comes up periodically at the local pm group.
22:19 skids From personal experience it is a deterrent, I shoved passed a through "do I really want to continue with this" moments already.
22:20 diakopter the larger problem is that it (the task of writing tests) *can't* really be broken down into X1/Y1/Z1, because one must first become familiar with the entirety of the Synopses (and the existing test suite) to know you're writing tests that tests things for which there's not already tests, and to know you're writing tests that actually test the specified language
22:21 mncharity hmm.  my fuzzy recollection is, even when pugs had a very active community, having things like TASKS lists and undone things we're really helpful.  the most helpful thing might have been having big open targets like writing tests.  and "here is a place where you can insert the random module X which is dear to your heart".  and accessible infrastructure (bot, test, build, etc).  ...
22:21 skids "We need a killer app" ... heheh. (Should go in the hall of fame next to "imagine a beowolf cluster of..."
22:22 mncharity skids: re deterrent, ah, thanks, good to know.
22:22 pmurias joined #perl6
22:23 diakopter re: X1/Y1/Z1 above, and my claim is that the task of getting past that hump is ultimately impossible for nearly everyone (perhaps 100%, including those who actually do attempt it) who are considering undertaking the task.
22:24 mncharity in the category of a random idea, any interest in defining a "minimal core perl" set of features?  pugs is dead, but all other impls could aim for / only be declared usable once they do the minimal core.  then we could at least say "if you write X, it will run everywere".  p6 is such a big language, without that...
22:25 skids A lot of the currently undone stuff is very entangled.  I'm looking at helping firm up S17 right now, and IO and that really need to be done at the same time, and events, and before any of that I need to understand something far afield from my normal fair: CPS and stack handling, just to know what's realistic.  But then I'm an EE not a CS.
22:25 diakopter I mean, yes, we can have a syntactic shorthand to do something (no, everything!) you can make a (wordier, definitely!) API for in a slightly-less-complex language, but perhaps that should be in a syntactically sugary sub-language, not the CORE STD
22:26 mncharity re: X1/Y1/Z1 above, I claim there are at least some cases of it being really easy, even trivial.  Eg, "take rx flag X1 and combine it with Y2" (I almost guarrentee there *wont* be an existing test[1]), and iterate.
22:26 diakopter :) okay, but what's the correct result to test against
22:27 mncharity re [1], could someone explain to me why there is so much concern over duplicates?  has it been a problem?  what's going on?  who cares?  create a second t/ the same size as t/ with 50% overlap and 50% new stuff, and I'd be unreservedly delighted.
22:27 diakopter we can use STD to generate applications that match the syntax automatically, but truly understanding what they're supposed to return/output?
22:28 skids Maybe if you could find a couple more masak's in different time zones, we could just tell people drop by IRC there's a 24/7 coverage team and if you can convince them you can make rakudo do something lame, they'll file a bug.
22:29 pmichaud I don't mind too much if there are duplicates in t/spec
22:29 pmichaud I do mind if there are lots of duplicates that I'm expected to filter into t/spec
22:29 pmichaud (where "I'm" == maintainer who is limited in tuits)
22:29 mncharity skids: Indeed.  For a while audrey was that 24/7 coverage, and said "you find a bug, I'll fix it (fast)", and did, and it was indeed very popular and effective at building community.
22:30 skids Maybe if we had a t/99-contributed-tests and any new test goes in there as long as it is a correct test, even if it is duplicated, and then someone goes through periodically and garners things.
22:30 diakopter further proliferation of bug reports doesn't help anyone (I'm still insisting); adding failing test cases (that may or may not match spec) also doesn't help since they're not known to be correct... who's going to spend all the time to review those commits?
22:30 mncharity gotcha is, at least over the last couple of years, it seems many of the rakudo bugs have been parrot bugs, and very not tractable.
22:31 skids Parrot does seem to be stabilizing, though.
22:31 diakopter in both cases you need someone who's already an expert in the language to spend scads of time reviewing them... and even then he (pmichaud, this means you :P) has to consult TimToady on many of them, online/offline/whatever
22:31 mncharity re "who's going to spend all the time to review those commits?", see, that's the thing.  if there was actually a community around, that's the kind of thing the community would help with.
22:32 mncharity someone should do a webpage on "all the things dev teams say as reasons why they need to work for years without help because getting help would be too costly". :/
22:33 diakopter costly for the helpers, yes
22:33 pmichaud this latter point (reviewing commits) gets back to why I'm looking for a better patch review workflow than what we have now.
22:33 TimToady any particular reason everyone chose today to get discouraged?  :)
22:34 pmichaud TimToady: I'm not at all discouraged -- I think we're all constructively looking for ways to increase our momentum.
22:34 diakopter if it's planned/done correctly, the dev team can recruit tons of available helpers
22:34 * skids isn't discouraged.  Just always has 2 cents in his pocket.
22:34 mncharity anyone discouraged? (other than me)
22:34 diakopter (not discouraged; trying to point out that perhaps many others are discouraged from joining the fray)
22:35 * skids steals "decommuting" from TimToady
22:36 renormalist I just read the discussion for a while. My 2c: the community doesn't need more tests or spec. They need a perl6 exe with basic functionality like subs, methods, classes, basic data types and especially external libs to structure their first programs.
22:37 pmichaud rakudo has all of that, with perhaps some work needed on external lib management.
22:37 renormalist the community wants to code in any subset of perl6, it just needs to be somewhat useable, kind of perl4 would be enough
22:37 diakopter renormalist: most languages have those things.. that wouldn't be learning anything new/fun/perlish
22:37 renormalist pmichaud: yes, probably, especially the latest announcement was a very good one with those make instructions. really.
22:38 pmichaud renormalist: yes... it was good to finally be able to separate rakudo from Parrot's build process.
22:38 * mncharity waits to see renormalist has additional thoughts before asking questions...
22:38 renormalist diakopter: I would immediately start writing perl6 programs if I would have some confidence that the bsaic stuff like skalar/arrays/hases and "the dot" generally work, maybe some file IO
22:38 pmichaud In retrospect I wish we had made that separation quite a bit sooner... but I was really expecting Parrot to have it's "make install" sequence in place long before its 1.0 release.
22:39 renormalist diakopter: I just lost the track of following the progress though all the lots of stuff, as I said, the latest announcement brought it back into my personal wishlist, really
22:40 renormalist I, personally just wanted to read whether there is something to make .pm files and a PERL5INC path and file io
22:41 renormalist then I would replace my typical one-shot perl5 logfile converters with perl6 experiments
22:41 renormalist the same stuff, that perl started at all
22:41 renormalist perl1 I mean
22:41 * renormalist has ended this thought
22:42 pmichaud renormalist: yes, we can do .pm files.  The path is PERL6INC for Rakudo.
22:42 renormalist pmichaud: that's great, really, this makes it even higher on my wishlist
22:42 * mncharity wonders what "do .pm files" means... fears confusion
22:42 renormalist and I think starting people to *use* the whatever subset of perl6 makes the community
22:43 renormalist mncharity: external modules that I can "use"
22:43 mncharity p6, don't have to be p5?
22:43 pmichaud renormalist: projects like November and others are already doing .pm modules
22:43 renormalist mncharity: just to structure code a bit more in contrast to big .pl files
22:43 pmichaud renormalist: in fact, in Rakudo it's possible to pre-compile the .pm files so that you don't incur the compilation overhead each execution.
22:44 mncharity ah, ok.  elf too has that.
22:44 mncharity elf doesn't precompile... goes for much lower overhead. :)
22:44 mncharity hmm, no, not true
22:45 renormalist maybe a summary of what topics those ~7000 passing tests cover would be useful in the next announcement. Or in a readme.
22:45 mncharity caches parser results.  though fairly fast without.
22:45 renormalist maybe there already is, I'm just thinking loud
22:45 mncharity summary idea++
22:45 * diakopter mentions again the tabular listing of passing/failing
22:46 diakopter (if only by .t filename)
22:46 mncharity areas of the language/implementation, syntactic and semantic, which are "rock solid", "can play with", "don't work", etc.
22:46 renormalist indeed
22:46 pmichaud diakopter: I can easily make a list of passing/failing per .t file
22:47 pmichaud I already do it per-synopsis
22:47 diakopter cool; I thought I might have read somewhere that such a list existed
22:47 mncharity pugs and it's derivatives had the smoke report pages... but which never really seemed addequate to answer that kind of simple question: should I use feature foo?  will it bite me later?  etc.
22:47 * renormalist should now start to actually execute the make instructions from the latest release
22:48 renormalist btw, having releases of Rakudo, similar to the Parrot releases, at all are a great progress. thanks for that, too.
22:49 pmichaud sure, I'm happy to be doing it.
22:49 renormalist it all made a similar positive effect (to me) as in the times, when there were pugs releases of audrey. in those times I also started to play
22:49 pmichaud being able to break away from Parrot's trunk development really helps.
22:49 pmichaud i.e., Parrot trunk changes don't immediately affect what we're doing in Rakudo's trunk/head
22:50 renormalist that sounds contradictory, from a far point of view, but if it is so, well, ok
22:50 renormalist it's probably a sign of maturity of Parrot
22:50 pmichaud we've had trouble that people would make a change to Parrot that would cause Rakudo to stop working.
22:50 mncharity It might be nice to have something like:  "arrays: never break, method and function operations (push, pop, etc) are rock solid, ... <any caveats to "if its an array, it works and can be counted on">", hashes, etc, etc, etc.
22:50 renormalist I see
22:51 awarefish joined #perl6
22:51 pmichaud Now Rakudo lags Parrot head, and we periodically update the Parrot revision pointer to whatever new version of Parrot we work with.
22:51 pmichaud latest rakudo spectest results, by synopsis
22:51 pmichaud http://perl6irc.pastebin.com/m1c25f86f
22:51 pmichaud dinnertime, gotta go.
22:52 renormalist I see, again. This simple stability and "perl6.exe" made it back to my wishlist. not the test coverage itself.
22:52 renormalist and I have to sleep
22:52 mncharity thanks for the feedback!
22:52 mncharity much appreciated
22:53 renormalist no problem, I have to thank
22:53 * renormalist <--- loosely perl6 follower who sees the progress
22:53 mberends renormalist++ # feet firmly on ground
22:54 renormalist I have to go to bed now, good night
22:54 TimToady night
22:55 * mncharity notices "Setting" in official docs.  eeep, ok, can live with that...  is there any backstory for this phrase?
22:56 TimToady there was quite a bit of discussion both here and on p6l
22:56 TimToady but the basic idea is that CORE is not something that comes before your program
22:57 TimToady it surrounds your program like a lexical scope
22:57 TimToady and then we redefine -n and -p to be alternate settings that do loops
22:58 TimToady (CORE being the outermost lexical namespace now)
22:59 TimToady from your file scope you might go OUTER:: one or more times to get teo CORE
23:00 TimToady basically, a setting is a snapshot of a particular Perl 6 variant, is another way of looking at it
23:01 TimToady but if someone slips up and says prelude, we don't bite their heads off :)
23:02 pmurias joined #perl6
23:03 TimToady but basically this is the process of having "hygeinic macros" as applied to prelude scoping; we don't want a copy/paste view of how the prelude interacts with user code
23:03 buubot joined #perl6
23:06 buubot joined #perl6
23:08 mncharity summary of pm's paste:
23:08 mncharity Half working: Bits and Pieces, Operators, Blocks and Statements, Subroutines, Objects, Builtin Functions.
23:09 mncharity Fractionally working: Regexes and Rules, IO / User / Group.
23:09 mncharity Untested or nonexistent: Iterators, Data Structures, Packages, Modules, Overloading, Roles and Parametric Types, Unicode, Processes and Concurrency, Compiling, Command line interface, Introspection, Calling foreign code, CPAN, Security, Testing, ..., Standard perl library, Pragmatic modules, Setting library.
23:09 mncharity I was rather surprised by the S09 Data Structures, *64* tests.  Huh?  That can't be right.
23:10 dwhipp joined #perl6
23:10 wayland76 Keep in mind that about half the ones you mentioned are drafts
23:11 mncharity pmichaud:  ^^^  I'm not sure I believe those pasted numbers
23:11 wayland76 Maybe we should be moving some of these towards non-draft status, but that's how they're currently defined
23:11 mncharity re drafts, indeed.   I was doing a "from the potential p6 random programmer's perspective, what is the state of the various language features".
23:12 mncharity of the various language features to be potentially used"
23:13 mncharity draft-ness simply adds some "you can't count on this not changing", but I didn't even get to that aspect of things.
23:13 dwhipp perl6: my $long_name = 1; $long_name = - $long_name
23:13 p6eval pugs: RESULT«\-1»
23:13 p6eval ..elf 25666: RESULT«-1␤»
23:13 p6eval ..rakudo c08b9b: RESULT«-1»
23:14 dwhipp perl6: my $long_name = 1; $long_name -=
23:14 p6eval elf 25666: OUTPUT«/home/evalenv/pugs/m​isc/STD_red/match.rb:117:in `block in to_dump0': undefined method `to_dump0' for nil:NilClass (NoMethodError)␤     from /home/evalenv/pugs/misc/STD_red/match.rb:117:in `map'␤       from /home/evalenv/pugs/misc/STD_red/match.rb:117:in `to_dump0'␤  from
23:14 p6eval ../home/evalenv/pugs/...
23:14 p6eval ..rakudo c08b9b: OUTPUT«Statement not terminated properly at line 1, near "-="␤␤current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)␤»
23:14 p6eval ..pugs: OUTPUT«*** ␤    Unexpected end of input␤    at /tmp/qTcmDFk0ro line 2, column 1␤»
23:14 mncharity I hadn't realized our test coverage was quite that tiny.
23:14 dwhipp no assignment-meta-operators for prefix-operators :-(
23:15 mncharity um,did you mean
23:15 diakopter in 2004 there were >2M lines in the C# compiler's regression suite
23:15 mncharity perl6: my $long_name = 1; $long_name -= 1;
23:15 p6eval rakudo c08b9b: RESULT«0»
23:15 p6eval ..pugs: RESULT«\0»
23:15 p6eval ..elf 25666: OUTPUT«Unknown rule: infix_postfix_meta_operator:=␤It needs to be added to ast_handlers.␤ at ./elf_h line 2042␤»
23:16 diakopter perl6: my $long_name = 1; $long_name *= 1;
23:16 p6eval rakudo c08b9b: RESULT«1»
23:16 p6eval ..pugs: RESULT«\1»
23:16 p6eval ..elf 25666: OUTPUT«Unknown rule: infix_postfix_meta_operator:=␤It needs to be added to ast_handlers.␤ at ./elf_h line 2042␤»
23:16 diakopter perl6: my $long_name = 1; $long_name *= -1;
23:16 dwhipp No, I'm really wanting an assignment meta-op for prefix operators -- presumably should become a postfix operator. I guess the "-=" case is ambiguous, though.
23:16 p6eval pugs: RESULT«\-1»
23:16 p6eval ..rakudo c08b9b: RESULT«-1»
23:16 p6eval ..elf 25666: OUTPUT«Unknown rule: infix_postfix_meta_operator:=␤It needs to be added to ast_handlers.␤ at ./elf_h line 2042␤»
23:18 dwhipp diakopter: yes, for negation "*= -1" works; what would you do for inversion ("!") ? What about a reduction...
23:18 dwhipp perl6: my @list = 1,2,3; @list [+]= ();
23:18 p6eval rakudo c08b9b: OUTPUT«Statement not terminated properly at line 1, near "[+]= ();"␤␤current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)␤»
23:18 p6eval ..pugs: OUTPUT«*** ␤    Unexpected "[+]="␤    expecting operator␤    at /tmp/qbDtiA7KEV line 1, column 25␤»
23:18 p6eval ..elf 25666: OUTPUT«Parse error in: /tmp/yGN9aiPHQz␤panic at line 1 column 18 (pos 18): Can't understand next input--giving up␤WHERE: my @list = 1,2,3; @list [+]= ();␤WHERE:                  /\<-- HERE␤  STD_red/prelude.rb:99:in `panic'␤  STD_red/std.rb:76:in `scan_unitstopper'␤
23:18 p6eval ..STD_red/std.rb:224:...
23:18 dwhipp perl6: my @list = 1,2,3; @list [+]= nil;
23:19 p6eval elf 25666: OUTPUT«Parse error in: /tmp/8tXWfTlRCy␤panic at line 1 column 18 (pos 18): Can't understand next input--giving up␤WHERE: my @list = 1,2,3; @list [+]= nil;␤WHERE:                  /\<-- HERE␤  STD_red/prelude.rb:99:in `panic'␤  STD_red/std.rb:76:in `scan_unitstopper'␤
23:19 p6eval ..STD_red/std.rb:224...
23:19 p6eval ..rakudo c08b9b: OUTPUT«Statement not terminated properly at line 1, near "[+]= nil;"␤␤current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)␤»
23:19 p6eval ..pugs: OUTPUT«*** ␤    Unexpected "[+]="␤    expecting operator␤    at /tmp/DHnF9uexH3 line 1, column 25␤»
23:20 mncharity off to monthly ruby hackfest.  goodnight all.
23:21 mncharity oh, a sortof upbeat note: given this http://shootout.alioth.debian.org/u32q/benchm​ark.php?test=all&amp;lang=all&amp;d=data&amp;​calc=calculate&amp;gpp=on&amp;gcc=on&amp;java​=on&amp;javaxint=on&amp;jruby=on&amp;box=1 , and recent js speedups, javascript is becoming an attractive "might even be faster than p5" backend.
23:22 mncharity has even integrated the regexp vm ops into the full vm ops.  so get jit and all.
23:22 bacek_ joined #perl6
23:22 mncharity dwhipp: I note you can also just say  elf:  or pugs:  or  rakudo:  ...
23:23 mncharity (I took that out of the /topic to save space :/ )
23:23 dwhipp std: my @list = 1,2,3; @list [+]= ( 4, 5 );
23:23 p6eval std 25666: OUTPUT«ok 00:02 37m␤»
23:23 dwhipp std: my @list = 1,2,3; @list [+]= ( );
23:23 Ariens_Hyperion joined #perl6
23:23 p6eval std 25666: OUTPUT«ok 00:02 38m␤»
23:24 dwhipp rakudo: my @list = 1,2,3; @list [+]= ( );
23:24 p6eval rakudo c08b9b: OUTPUT«Statement not terminated properly at line 1, near "[+]= ( );"␤␤current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)␤»
23:27 pugs_svn r25667 | putter++ | [elfparse] Tweak previous revision.
23:38 TimToady dwhipp: note that [+]= is identical to +=
23:38 TimToady [] means reduce only as a prefix op
23:39 TimToady so if it works at all to say:  my @list = 1,2,3; @list [+]= ( 4, 5 );
23:40 TimToady I'd expect it to be equiv to @list += 3 + (4,5)
23:40 TimToady and set @list to [5]
23:41 TimToady as for unary assignops, I don't see much use for 'em apart from obfu
23:43 dwhipp The only one I regularly find myself wanting is "invert this boolean" -- $long_name = ! $long_name;
23:43 orafu joined #perl6
23:45 dwhipp (the reduction-assign can from an reverse-polish calculator, where I wanted to say "@stack = [+] @stack")
23:47 dwhipp std: $long_name.=prefix<!>
23:47 p6eval std 25667: OUTPUT«Potential difficulties:␤  Variable $long_name is not predeclared at /tmp/UELJgZL9S7 line 1:␤------> [32m$long_name[31m.=prefix<!>[0m␤ok 00:02 34m␤»
23:47 dwhipp std: my $long_name; $long_name.=prefix<!>
23:47 p6eval std 25667: OUTPUT«ok 00:02 35m␤»
23:48 dwhipp rakudo: my $long_name = 0; $long_name.=prefix<!>
23:48 p6eval rakudo c08b9b: OUTPUT«Could not find non-existent sub prefix␤current instr.: '_block14' pc 79 (EVAL_19:46)␤»
23:49 wayland76 btw, if ruoso's around, I think my language development was much like yours; BASIC, Pascal, Delphi, Perl
23:49 frioux joined #perl6
23:50 TimToady you mean prefix:<!> instead
23:50 TimToady though :<!> is supposed to work too
23:50 frioux rakudo: my %h1 = {'foo' => 'bar', 'baz' => 'bif'}; my %h2 = {'staion' => 'frew'}; %h1 .= cat %h2;
23:50 p6eval rakudo c08b9b: OUTPUT«Method 'cat' not found for invocant of class 'Perl6Hash'␤current instr.: '_block14' pc 201 (EVAL_17:66)␤»
23:51 dwhipp std: my $long_name; $long_name.=prefix:<!>
23:51 p6eval std 25667: OUTPUT«ok 00:02 35m␤»
23:51 TimToady but I think you really just want $longname.not
23:51 TimToady .=not rather
23:51 frioux rakudo: my %h1 = {'foo' => 'bar', 'baz' => 'bif'}; my %h2 = {'staion' => 'frew'}; cat(%h2, %h1);
23:52 p6eval rakudo c08b9b: OUTPUT«Could not find non-existent sub cat␤current instr.: '_block14' pc 195 (EVAL_17:64)␤»
23:52 dwhipp rakudo: my $long_name = 0; $long_name.=not
23:52 p6eval rakudo c08b9b: OUTPUT«Statement not terminated properly at line 1, near ".=not"␤␤current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)␤»
23:52 dwhipp rakudo: my $long_name = 0; $long_name.not
23:52 p6eval rakudo c08b9b: OUTPUT«Method 'not' not found for invocant of class 'Int'␤current instr.: 'parrot;P6metaclass;dispatch' pc 320 (src/classes/ClassHOW.pir:161)␤»
23:53 frioux rakudo: cat(1..5);
23:53 TimToady unimpl presumably
23:53 p6eval rakudo c08b9b: OUTPUT«Could not find non-existent sub cat␤current instr.: '_block14' pc 78 (EVAL_18:43)␤»
23:53 frioux wurrd
23:53 frioux pugs: my %h1 = {'foo' => 'bar', 'baz' => 'bif'}; my %h2 = {'staion' => 'frew'}; %h1 .= cat %h2;
23:53 p6eval pugs: OUTPUT«*** No compatible multi variant found: "&infix:%"␤    at /tmp/8tkdhgCnsO line 1, column 75-89␤»
23:53 frioux pugs: my %h1 = {'foo' => 'bar', 'baz' => 'bif'}; my %h2 = {'staion' => 'frew'}; %h1 .= cat(%h2);
23:53 p6eval pugs: OUTPUT«*** Unimplemented unaryOp: cat␤    at /tmp/e9Trqzl6bM line 1, column 75-90␤»
23:53 frioux hmm
23:53 frioux bummer
23:54 orafu joined #perl6
23:54 frioux rakudo: "frew"
23:54 TimToady what are you expecting %h1.cat to do?
23:54 p6eval rakudo c08b9b: RESULT«"frew"»
23:54 frioux to merge two hashes
23:54 TimToady why are you expecting that?
23:55 frioux uhh
23:55 frioux concatentate?
23:55 cas left #perl6
23:55 frioux how should I do it?
23:56 TimToady at the moment, that would be %h1 ,= %h2, but I doubt that's implemented
23:57 TimToady presumably %h1 <<== %h2 will work someday, if we ever get feeds
23:57 frioux I have to do real work now :-)
23:57 TimToady for now, you'll probably need for %h2.kv -> $k,$v { %h1{$k} = $v } in rakudo
23:57 frioux but either way
23:58 frioux I prefer ,=
23:58 TimToady it's easy to mistake for .=, alas
23:58 pmichaud my %h1 = (foo=> 1, baz=>2);  my %h2 = (station=>3);  %h1 = %h1, %h2;  say %h1.perl;
23:58 pmichaud rakudo: my %h1 = (foo=> 1, baz=>2);  my %h2 = (station=>3);  %h1 = %h1, %h2;  say %h1.perl;
23:58 p6eval rakudo c08b9b: OUTPUT«{"foo" => 1, "baz" => 2, "station" => 3}␤»
23:59 TimToady was trying to avoid the copy :)
23:59 TimToady but yes, that works
23:59 pmichaud I was just verifying it.
23:59 pmichaud I'm not sure why we don't have ,= in rakudo yet.
23:59 TimToady seems like we talked about %h1.push once upon a time too

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

Perl 6 | Reference Documentation | Rakudo | Niecza | Specs