Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2009-05-25

Perl 6 | Reference Documentation | Rakudo

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

All times shown according to UTC.

Time Nick Message
00:04 H1N1 joined #perl6
00:38 kst joined #perl6
00:43 aindilis joined #perl6
00:45 bacek joined #perl6
00:47 agentzh joined #perl6
01:08 alc joined #perl6
01:19 LadyLuna1y joined #perl6
01:20 agentzh joined #perl6
01:23 ZuLuuuuuu joined #perl6
01:24 alc joined #perl6
01:28 eternaleye joined #perl6
01:33 eternaleye joined #perl6
01:40 kst joined #perl6
01:41 Kisu joined #perl6
01:58 agentzh joined #perl6
02:09 meppl good night
02:15 eternaleye joined #perl6
02:21 eternaleye joined #perl6
02:25 eternaleye joined #perl6
02:33 eternaleye joined #perl6
02:34 davidad joined #perl6
02:41 justatheory joined #perl6
02:41 alester joined #perl6
02:47 eternaleye joined #perl6
02:49 JDlugosz hi all.
02:50 all hi
02:56 eternaleye joined #perl6
02:57 agentzh joined #perl6
02:57 JDlugosz is this syntax for returning a typed array correct:
02:57 JDlugosz sub foo of Type @ { ... }
02:59 eternaleye joined #perl6
03:03 eternaleye joined #perl6
03:08 wayland76 Don't think so
03:08 wayland76 S02 says...
03:08 eternaleye joined #perl6
03:09 wayland76 (among other options): sub get_pet() of Animal {...}
03:09 wayland76 so I'd imagine it'd be something like sub get_pet() of Array {...}
03:10 JDlugosz That syntax came up before, in the mailing list.
03:11 wayland76 (In case I haven't said, I'm no expert -- I don't even have a working Perl 6 installation at the moment :) )
03:11 JDlugosz I'd argue that there is no such thing.
03:11 wayland76 Well, but I mean, no installed Rakudo or SMOP or anything like that
03:12 wayland76 I'm getting closer, though.  See, I'm not going to install Rakudo until I can turn it into an RPM, and thanks to Parrot changes over the weekend, I'm one step closer :)
03:13 JDlugosz Care to read something (not too long)?
03:13 wayland76 Btw, when you say "That syntax", do you mean what I said, or what you said?
03:13 JDlugosz What I said.
03:13 wayland76 I'd be happy to, if I can finish it before my compile finishes
03:13 JDlugosz Still editing, but I'll push it up...
03:14 wayland76 Well, mailing list tends to be golfy.  Who said it?
03:14 wayland76 if it was Moritz, it's probably right :)
03:14 wayland76 rakudo:  sub foo of Type @ { ... }
03:14 p6eval rakudo 23718a: OUTPUT«Malformed routine definition at line 1, near "foo of Typ"␤in Main (src/gen_setting.pm:0)␤»
03:14 wayland76 rakudo:  sub foo of Type @ { say "hi" }
03:14 p6eval rakudo 23718a: OUTPUT«Malformed routine definition at line 1, near "foo of Typ"␤in Main (src/gen_setting.pm:0)␤»
03:14 wayland76 rakudo:  sub foo as Type @ { say "hi" }
03:14 p6eval rakudo 23718a: OUTPUT«Malformed routine definition at line 1, near "foo as Typ"␤in Main (src/gen_setting.pm:0)␤»
03:15 wayland76 rakudo:  sub foo as Array { say "hi" }
03:15 p6eval rakudo 23718a: OUTPUT«Malformed routine definition at line 1, near "foo as Arr"␤in Main (src/gen_setting.pm:0)␤»
03:15 wayland76 rakudo:  sub foo returns Array { say "hi" }
03:15 p6eval rakudo 23718a:  ( no output )
03:15 wayland76 rakudo:  sub foo returns Array { say "hi" }; foo()
03:15 p6eval rakudo 23718a: OUTPUT«hi␤»
03:15 wayland76 rakudo:  sub foo returns Array { return ("hi") }; say foo()
03:15 p6eval rakudo 23718a: OUTPUT«Type check failed on return value␤in sub foo (/tmp/E4kfYo8Xvh:1)␤called from Main (/tmp/E4kfYo8Xvh:1)␤»
03:15 JDlugosz <http://www.dlugosz.com/Perl6/web/code.html>
03:16 wayland76 That last golf I did there is something that might be heading in the direction you want :)
03:16 JDlugosz Who?  I'd have to look back and check.  August, I think.
03:16 JDlugosz Oh, 'returns' is gone as a synonym for 'of'.
03:17 wayland76 Maybe, but S02 still says it's there :)
03:17 eternaleye joined #perl6
03:18 wayland76 Oh, have you looked at S32/Callable?
03:18 JDlugosz I saw it disappear in a diff,  S06, "subroutine traits".
03:19 JDlugosz I see old example in S02, par for the course.
03:19 JDlugosz Check "blame" for S06 to make sure that was done on purpose.
03:21 agentzh joined #perl6
03:21 wayland76 JDlugosz: Not sure I followed that
03:21 wayland76 I was referring to: http://svn.pugscode.org/pugs/docs/Perl6/Spec/S32-setting-library/Callable.pod
03:22 wayland76 oops,
03:22 wayland76 http://perlcabal.org/syn/S32/Callable.html
03:22 JDlugosz "blame" is a command on version control systems.  Shows who changed each line last.
03:22 JDlugosz Change 23431 larry on S06
03:23 JDlugosz Yes, that changed returns to of.  No more returns trait.
03:24 JDlugosz ^^^^ Larry -- that was on purpose, right?
03:24 wayland76 JDlugosz: Ah, I understand.  I thought you were talking about Callable, and was confused :)
03:25 wayland76 ping TimToady (this may make his IRC client go "bing" :)
03:25 eternaleye joined #perl6
03:25 JDlugosz No need to bother him, he looks back at the log.
03:26 wayland76 Sorry, it's my sense of instant gratification :)
03:26 JDlugosz Tim Nelson... that you?
03:26 wayland76 I'm exemplifying one of the Perl virtues -- impatience
03:26 wayland76 JDlugosz: Yes, that's me
03:26 JDlugosz I see your name on the S32 you just cited.
03:27 wayland76 Yeah, that's right
03:27 JDlugosz It is dated Feb this year, but does not cover any of the stuff that was discussed on the mailing list last summer.
03:27 wayland76 Basically, I have no clue, but write synopses in hopes of provoking someone to improve them :)
03:27 JDlugosz Including "Code" being an obsolete name for Callable, before Roles were introduced and the name changed to be an adjective.
03:27 JDlugosz So.... how about updating that based on the HTML file I just showed you?
03:28 wayland76 Well, I think pretty much everything I wrote was drawn from other specs
03:28 wayland76 JDlugosz: I'd love it if you'd do that
03:28 JDlugosz I'm reworking my old "proposal" doc to be up to date and more imperitive than speculative, and makeing syntax current.
03:28 JDlugosz Yea... nobody was updating the docs based on discussions.  Pestering them on that is why I now have commit access myself.
03:29 JDlugosz I lovingly went through and fixed all the Code/Callable and used concrete types where sensable, but nobody merged in until this week.
03:29 wayland76 I was hoping that eventually, S32 would become a sort of "object/role reference manual", and other docs could be written to say things like "See S32/whatever for details"
03:29 JDlugosz Anyway, check out my link.  Does that make sense?
03:29 JDlugosz Sounds good to me.
03:29 eternaleye joined #perl6
03:30 wayland76 So far, but remember, I'm no expert, so I have to take it slowly :)
03:30 JDlugosz The sigs I mentioned I gathered from mentions in the
03:30 JDlugosz Synopses, too.  Just fixed contradictions.  Probably you did the same.
03:31 JDlugosz no expert... well, is anyone?  These classes need to be properly engineered based on rough ideas of uses cases.  Until that is done and accepted, nobody can be an expert.
03:32 JDlugosz I can answer some of you questions you wrote.
03:32 JDlugosz "what does do return.... method body?
03:32 wayland76 Well, yes, but the person who should really be checking this is probably Moritz -- he'll make the time, etc
03:33 JDlugosz Hmm, well, I can answer it for Routine.  Does it make sence to have it on the abstract base class?
03:34 JDlugosz Did you look at my HTML file?
03:34 wayland76 I'm in the process of reading it.  But like I said, I have to take it slowly :)
03:37 JDlugosz Ah, I missed .assuming, mentioned in S02.
03:37 eternaleye joined #perl6
03:37 JDlugosz Oh, no I didn't.
03:40 nihiliad joined #perl6
03:41 davidad joined #perl6
03:41 wayland76 I haven't finished reading it yet, but I'm being called for lunch.  afk&
03:45 eternaleye joined #perl6
04:00 eternaleye joined #perl6
04:02 alester joined #perl6
04:04 JDlugosz Uh...  this doesn't make sense in S03
04:04 JDlugosz my $args = \(@foo: @bar);
04:04 JDlugosz is instead equivalent to:
04:04 JDlugosz @foo.push(@bar);
04:04 JDlugosz Taking the capture doesn't cause the method to be called.  In contrast to the previous example, the second line is missing.  Should it also say:      push |$args;
04:04 JDlugosz In that case, push becomes a method call because the |$args contains the invocant.  But we don't keep track of it as such anymore (it's just the fist positional), and it only parses if push is already a function anyway... ?
04:07 eternaleye joined #perl6
04:09 eternaleye joined #perl6
04:10 pugs_svn r26929 | jdlugosz++ | Code to Callable, clarify "Type" under smart matching (see <http://irclog.perlgeek.de/perl6/2009-05-24#i_1171474>
04:22 eternaleye joined #perl6
04:22 wayland76 JDlugosz: I'm not very good about this myself, but it's customary to put the name of the Spec(s) changed into the commit message
04:23 wayland76 ie. "[S01] Made some changes here"
04:23 JDlugosz You mean svn doesn't know?!
04:23 wayland76 Oh, it does, but you'll notice the message on the IRC channel didn't say
04:23 JDlugosz I see.
04:24 wayland76 It doesn't actually matter, but if you're only changing one or two specs, then that can be helpful to people :)
04:24 wayland76 (and like I implied, I often forget myself)
04:25 JDlugosz I'll keep it in mind.
04:26 wayland76 Oh, you wrote "upwrap" in your essay.  I suspect you mean "unwrap" :)
04:26 eternaleye joined #perl6
04:28 szabgab joined #perl6
04:30 eternaleye joined #perl6
04:36 wayland76 I was surprised that the document ended where it did :)
04:36 wayland76 I was sort of expecting something more conclusion-y on the end :)
04:37 wayland76 But for the sort of document this is, that's find :)
04:49 ssm joined #perl6
05:03 Kisu joined #perl6
05:06 wayland76 s/find/fine/
05:09 hanekomu joined #perl6
05:44 iblechbot joined #perl6
05:46 araujo joined #perl6
05:47 justatheory joined #perl6
06:52 lu_zero joined #perl6
06:52 lu_zero hi
06:52 lu_zero I just tried to build rakudo with an installed parrot 1.2.0
06:53 lu_zero is help needed to get the process in shape or it's just too early and everything is fine?
06:54 TimToady well, you don't say what went wrong
06:54 moritz_ currently compiling against an installed parrot is not supported
06:54 moritz_ patches to change that are welcome.
06:55 lu_zero TimToady basically it could break in parrot_config stating the build dir but not the install dir
06:55 lu_zero and rakudo asking for something it isn't currently installed
06:56 lu_zero like PCT.pbc
06:56 moritz_ that's installed if you did a 'make install-dev'
06:56 lu_zero (and using the build dir value)
06:56 lu_zero moritz_ good to know =)
06:56 * lu_zero updates that part
06:57 lambdabot joined #perl6
06:57 moritz_ (oh, and you'd need the Stockholm release, not the current HEAD, because that requires a newer parrot than 1.2.0)
06:57 davidad joined #perl6
06:58 lu_zero I was planning to package that one
06:58 lu_zero btw which is the version scheme?
06:58 sri_kraih_ joined #perl6
06:59 lu_zero right now versions have a plain number (17) but the package has a snapshot date (2009-5)
07:06 lu_zero /tools/* like dynpmc.pl are still missing
07:08 DemoFreak joined #perl6
07:14 wayland76 I'm actually working on related problems
07:14 wayland76 I'm turning rakudo into an RPM
07:15 wayland76 lu_zero: What Distro?
07:15 lu_zero wayland76 gentoo
07:15 wayland76 Ah, ok
07:15 wayland76 I'm doing Fedora 10 at the moment
07:16 wayland76 I'm also finding that I need extra Parrot files
07:16 lu_zero so once I beat the Makefile to submission I have to handle the fact parrot still report build location instead the right ones...
07:16 wayland76 But I suspect that RPM works differently than eg. emerge in that regard
07:16 wayland76 Maybe :)
07:16 lu_zero wayland76 not that different
07:16 ZuLuuuuuu joined #perl6
07:17 wayland76 Do you want a copy of my current patch?
07:17 lu_zero would be useful
07:17 wayland76 send me your e-mail address in a private message :)
07:17 lu_zero btw do you have a bug tracking rakudo for fedora ?
07:17 wayland76 Not sure
07:18 wayland76 I've been working on getting some necessary stuff into Parrot for Rakudo install process
07:18 wayland76 And that just came through today
07:18 wayland76 I may've created a bug ages ago, but I forget :)
07:21 iblechbot_ joined #perl6
07:22 agentzh joined #perl6
07:24 wayland76 Btw, I should say that parts of the patch came from something Allison was doing ages ago
07:24 wayland76 So I don't understand it all 100%
07:24 lu_zero hmm
07:24 wayland76 Especially the makefile stuff :)
07:24 wayland76 But it seemed to improve the situation
07:25 wayland76 Am I correct in guessing you know who Allison is?
07:25 lu_zero the makefile part from what I see just need a PARROT_DIR variable that points at the installed dir more or less
07:25 lu_zero wayland76 no ^^
07:26 wayland76 Ok, Allison is one of the big Parrot people (big = notable :)
07:27 wayland76 When I was doing stuff on Parrot, and no-one else could help me, then we had to bother Allison :)
07:29 lu_zero I see
07:31 wayland76 So that's why I trust her patches
07:31 wayland76 At least, to a certain extent :)
07:34 wayland76 But any bugs in it are problably mine
07:34 wayland76 Unless they're due to bitrot :)
07:35 lu_zero ^^;
07:36 wayland76 The main bit I'm unsure about is the changes to t/harness
07:38 amoc joined #perl6
07:41 wayland76 The patch is basically everything I hacked together 2 months ago, adapted to today's Rakudo, but with no more updates than that
07:42 lu_zero the patch looks working
07:42 lu_zero let me see how much =)
07:42 wayland76 Also, I forgot some files in the first e-mail (git diff didn't pick them up), so I just sent them
07:43 wayland76 Just stick them in the "build" dir
07:43 wayland76 Are you making an official Gentoo package?
07:43 wayland76 I'm not doing anything official for the RPM, just making something that works
07:44 lu_zero I aim to have an official package
07:44 lu_zero hmm
07:44 lu_zero could you please send me the git diff as file?
07:46 wayland76 Done.  I presume you mean as an attachment.
07:47 wayland76 How does the Gentoo packaging creation setup work?
07:47 wayland76 With RPM, you just make a spec file, and that contains everything
07:47 wayland76 But I know on Debian, they create a whole directory structure with a bunch of different files
07:48 agentzh joined #perl6
07:52 lu_zero in gentoo you make an ebuild file and that's all more or less
07:54 wayland76 Ok.  Anyway, we should be able to pool our work on the build system for the most part then
07:55 wayland76 You'll notice that a new version of tools/dev/install_files.pl was checked into to Parrot over the weekend
07:55 wayland76 I'm planning to rely on this for doing the actual installation
07:56 wayland76 Basically, we make a manifest like the one that Parrot has, and hopefully the scripts will be able to do most of the rest
07:57 lu_zero hmm
07:57 lu_zero the patch broke Configure.pl
07:57 wayland76 In what way?
07:57 lu_zero Global symbol "$short" requires explicit package name at Configure.pl line 76.
07:57 lu_zero and %valid_options being %options now
07:58 wayland76 Ah, I think I know the problem.  Let me check
07:59 wayland76 Oh, it does it to me too
07:59 wayland76 My build must've broken before I got to there
07:59 wayland76 I'll fix it
07:59 lu_zero ok
07:59 lu_zero I have to run
08:02 wayland76 ok
08:02 wayland76 I've sent the fixes
08:02 wayland76 Just problems created by trying to integrate last month's code with this month's :)
08:04 lu_zero btw
08:05 lu_zero this is the gentoo tracking bug for parrot http://bugs.gentoo.org/show_bug.cgi?id=247125
08:05 wayland76 ok
08:05 lu_zero I appended a rakudo bug that's currently empty ^^
08:05 lu_zero now I must run ^^
08:05 wayland76 bye
08:08 lu_zero btw
08:08 lu_zero +RAKUDO_DYNEXT = @buildroot@@slash@usr@slash@lib@slash@rakudo@slash@@rakudoversion@@slash@dynext doesn't look right if I understood where it will be used
08:10 masak joined #perl6
08:11 wayland76 What's wrong with it?
08:13 agentzh joined #perl6
08:16 padd173_ joined #perl6
08:43 agentzh joined #perl6
08:51 dakkar joined #perl6
08:51 meppl joined #perl6
09:08 xinming joined #perl6
09:15 SamuraiJack joined #perl6
09:19 riffraff joined #perl6
09:19 LadyLunacy joined #perl6
09:27 agentzh joined #perl6
09:32 pmurias joined #perl6
09:43 jferrero joined #perl6
10:15 DanielC joined #perl6
10:17 DanielC Hello. What does the dot (.) mean when it comes before a function (such as .print .odd .whatever). What does it do? Thanks.
10:17 lambdabot DanielC: You have 1 new message. '/msg lambdabot @messages' to read it.
10:18 jnthn DanielC: It means "call on $_"
10:18 DanielC ah
10:18 DanielC So .print means print $_
10:18 jnthn Well, $_.print
10:19 jnthn Though those two are about equivalent.
10:19 DanielC ??  Is print now a method?
10:19 lambdabot Plugin `compose' failed with: Unknown command: ""
10:19 jnthn You can call it as a method, yes.
10:19 jnthn It's available as a function too.
10:19 jnthn Seem for .say
10:19 jnthn erm,
10:20 jnthn *same
10:20 jnthn And most other things that were just functions in Perl 5.
10:20 DanielC So with Perl 6 you'll be able to write  $myString.print or print $myString ?
10:20 jnthn Right.
10:20 DanielC That's interesting.
10:20 jnthn There's no list of "functions that take $_ by default" any more.
10:20 jnthn You use the .foo construct instead.
10:20 DanielC Ok. That sounds like a good change (more rationalized).
10:21 jnthn Yes, Perl 6 is very much trying to get rid of lists that you have to memorize.
10:21 DanielC So... when do I get to use Perl 6 in production? :-)
10:23 jnthn Hard to say, and depends what your demands are for using something in production (as with anything, there's those that are in a position to early adopt, and those who have stability needs meaning they don't deploy anything too shiny and new.)
10:23 jnthn The Rakudo implementation is coming along pretty well, feature wise.
10:24 sjohnson DanielC: do you mean like, $string.trim; ?
10:24 DanielC Ok. When can an early adopter expect to use it?
10:24 DanielC Is Rakudo going to be the "official" Perl 6? I know it's the one that compiles to the Parrot VM.
10:25 jnthn I guess when they feel comfortable doing so. Personally I wouldn't yet, on the other hand I know people who have written little Perl 6 scripts to do useful bits here and there.
10:25 wayland76 An early adopter who doesn't demand feature completeness or many libraries can use it now
10:25 jnthn Right.
10:25 jnthn There's no "official" Perl 6.
10:25 jnthn Other than the spec and test suite.
10:25 DanielC ok
10:26 wayland76 The "official" Perl 6 is the Specs, the tests, and the standard grammar (called STD)
10:26 jnthn The implementations are all equally official (or unofficial). :-)
10:26 wayland76 There will be multiple implementations
10:26 DanielC Is the language still in flux? Or is the language decided and we just need to wait for the implementations?
10:26 wayland76 The ones that are seeing progress are Rakudo and SMOP
10:26 wayland76 The language changes, but it's mostly when the spec is unclear, it's clarified
10:27 wayland76 But occasionally there's something completely new
10:27 DanielC Ok. That gives me an idea of where things are.
10:27 wayland76 Mostly as a result of arguments about clarity
10:27 jnthn Much of the spec are pretty stable now, but implementations tend to run across bits that need clarification.
10:27 jnthn Other bits of the spec are still in flux, but not so much things I'd consider "core".
10:27 wayland76 (like threads :) )
10:28 jnthn Right, the concurrency stuff is still muchly in flux. On the other hand, the spec for the object model is mostly just in clarifications mode.
10:29 DanielC wayland76: What is SMOP? I don't know that one. I thought Pugs was the most complete implementation.
10:29 wayland76 Btw, I saw someone point out that the problem with the threads-on-events model is that it requires co-operative multithreading, not pre-emptive
10:29 wayland76 SMOP is the C version that's intending to integrate well with Perl 5
10:30 jnthn DanielC: Rakudo has in many areas caught up with and in others surpassed Pugs now.
10:30 wayland76 Rakudo is the Perl 6 on Parrot one, and I suspect it's more feature-complete than Pugs now, since there's no Pugs activity at the moment
10:30 Chillance joined #perl6
10:30 jnthn Still behind it in some (e.g. lazy lists).
10:30 DanielC ok
10:30 DanielC thanks
10:30 DanielC If you Google for Perl 6 you hit Pugs.
10:30 wayland76 Parts of Rakudo are being written in Perl 6 now :)
10:31 wayland76 DanielC: Yeah, our Google-foo probably needs some work
10:31 wayland76 But if I write http://www.rakudo.org/ Perl 6 perl 6 perl 6 in the IRC log, it will probably help :)
10:31 DanielC :-)
10:32 wayland76 Although the Official Perl 6 is really at http://perlcabal.org/syn/
10:32 wayland76 Rakudo is just the implementation that I personally lean towards
10:32 DanielC I would say that Perl 6 is "production ready" when Rakudo is self-hosting, because Rakudo is far more complex than anything I'll ever write.
10:32 wayland76 Because I've adopted the Parrot dream :)
10:33 wayland76 Carl Masak has written a wiki that runs on Rakudo :)
10:33 DanielC neat
10:33 wayland76 It's called "November"
10:34 * DanielC notices that Rakudo's website is PHP-based ...
10:34 wayland76 He's using it to develop a suite of modules that we're calling Web.pm
10:34 wayland76 Oh, definitely.  We haven't gotten to the CMS stage yet
10:35 DanielC I understand. I like Drupal anyways. Rakudo's website uses Drupal.
10:35 wayland76 That's the third project on my list after I have a Rakudo RPM :)
10:35 jnthn Heh, rakudo.org running on a web-app written using Rakudo would be kinda neat.
10:35 agentzh joined #perl6
10:35 wayland76 jnthn: Why stop there.  I want to run perl.org on Rakudo :)
10:36 wayland76 (well, I want someone to, anyway :) )
10:36 wayland76 (just to clarify, I don't run perl.org)
10:36 DanielC I just expected rakudo.org to run on Perl 5. I just thought it was funny that it used a PHP CMS (nothing against PHP, Drupal is a good CMS).
10:37 _Chillance_ joined #perl6
10:38 jnthn DanielC: We're generally a pragmatic bunch. If the best tool for the job is Drupal, who cares what it's written in. :-)
10:39 wayland76 Besides, it's only temporary :)
10:39 jnthn Not to mention that some of those working on Rakudo also work more generally on Parrot, and thus are working towards dynamic language interoperability anyway.
10:39 DanielC Yeah. In fact, I use Drupal myself, even though I like Perl better than PHP.
10:40 icwiener joined #perl6
10:41 DanielC Anyways, now I have a much better idea of where Perl 6 / Rakudo is ("wiki -> yes, CMS -> no").
10:47 wayland76 Probably a fairly basic Wiki compared to MediaWiki, though :)
10:52 hcchien_ joined #perl6
10:54 avar someone make a mediawiki grammar in perl6 :)
10:55 wayland76 I don't doubt that it will happen :)
10:57 wayland76 I'm hoping we can get a complete collection of grammars for /etc too :)
10:57 hcchien joined #perl6
10:57 avar even /etc/mail/sendmail.cf ?:)
10:58 kane_ left #perl6
11:02 masak avar: November has a partial MediaWiki grammar.
11:02 payload joined #perl6
11:02 wayland76 avar: Well, there *are* limits :)
11:02 wayland76 Then again, if someone sent one in, I'd include it :)
11:08 DemoFreak joined #perl6
11:13 hcchien_ joined #perl6
11:15 hanekomu_ joined #perl6
11:17 clkao joined #perl6
11:23 payload joined #perl6
11:25 tulcod joined #perl6
11:28 hcchien joined #perl6
11:34 ruoso joined #perl6
11:35 SamuraiJack left #perl6
11:41 tulcod joined #perl6
11:41 DanielC joined #perl6
11:49 Kisu joined #perl6
11:51 orafu joined #perl6
12:01 masak I'm thinking about .reduce and MMD again. It's an interesting issue, because the argument are in a list, not all of which need match for the MMD to be successful. After that, the process is repeated.
12:03 wayland76 I'll happily enter the lists to present the argument on MMD's part, and reduce the other argument to nothing :)
12:03 masak example: multi foo(Num $a, Num $b) { $a + $b }; multi foo(Num $a, Str $b) { $a + $b.chars };
12:03 wayland76 (actually, I won't, I just wanted to say that :) sorry )
12:03 masak and then [1, 2, 3, "grok", 5].reduce(&foo)
12:04 Kisu joined #perl6
12:04 masak hm, it's an example of reduce and MMD, but not a good example of why it's different from just normal MMD...
12:05 jnthn I suspect if anything is going to happen here, reduce will just need to be a bit smarter about how it uses MMD, rather than introducing special casses into MMD itself.
12:06 Whiteknight joined #perl6
12:07 masak jnthn: guess so.
12:08 masak jnthn: if one of the candidates has a slurpy param, MMD will be much easier. :)
12:09 masak hm, the reduce-on-URLs that ruoso has been toying with might be a good use case for how one wants reduce/MMD to work...
12:11 ruoso masak, yes... I'm wating anxiously for that ;)
12:11 ruoso regex-based dispatch is cool
12:11 ruoso but multi-based dispatch is even cooler
12:12 wayland76 How about using a grammar of regexes to recognise them, and MMD to dispatch each one as a separate, event-firing thread!
12:12 masak ruoso: what I meant was that maybe such an application needs to be written before we know exactly how reduce/MMD needs to behave.
12:12 wayland76 (sorry, I'm getting carried away here :) )
12:13 masak wayland76: you're not very much off the mark, actually.
12:13 ruoso masak, hmm... I see...
12:13 ruoso but is there that many options?
12:13 masak ruoso: I don't know. my brane hertz when I think about it.
12:14 wayland76 ...and if you keep going, in Megahertz?
12:14 jnthn Mine too, which is why I wonder if we really want this to be something built-in to reduce...
12:14 wayland76 s/in/it/
12:14 pmurias ruoso: hi
12:14 masak jnthn: we might, if there turns out to be a really simple but amazingly cool way to resolve things. :)
12:14 ruoso hi pmurias
12:15 wayland76 masak: I'd settle for it even if it was mundane :)
12:15 pmurias unsigned char foo = 0;
12:15 pmurias while (1) {
12:15 pmurias foo++;
12:15 pmurias printf("%d\n",foo);
12:15 pmurias sorry
12:15 jnthn masak: Sure. Maybe first step is to write a reduce that does what's needed as something non-core and then propose it to be official.
12:15 pmurias touchpad--
12:15 finanalyst joined #perl6
12:17 pmurias ruoso: i'm blocking on the circularity cause by $?BLOCK
12:17 finanalyst pmichaud: i worked last night to get a small program to replicate a segfault I was hitting. I sent to rakudobug, but didnt add [BUG] to the start. Ticket has ID of [perl #65956]
12:18 clintongormley joined #perl6
12:18 finanalyst the script made Parrot run out of memory
12:18 ruoso pmurias, that's why we included WEAKREF
12:21 pmurias how will we expose weakrefs to Perl 6?
12:22 ruoso a SMOP-specific macro, maybe?
12:23 pmurias SMOPWeakRef seems dicouraging enough
12:23 pmurias or SMOP::WeakRef
12:24 ruoso or even
12:24 ruoso SMOP::WEAKREF
12:25 pmurias ruoso: do you think any of the automatic cycle removal algorithms could work for smop?
12:26 ruoso pmurias, I'm not that familiar with that kind of solution... is there any of that which works in refcount gc?
12:29 ZuLuuuuuu joined #perl6
12:29 pmurias i found some stuff on google (a few papers and a mention on wikipedia) but i haven't fully groked the algorithms yet
12:30 pmurias http://www.research.ibm.com/people/d/dfb/papers/Bacon01Concurrent.pdf
12:40 payload1 joined #perl6
12:41 hanekomu joined #perl6
12:45 mizioumt joined #perl6
12:51 DanielC If Perl 6 is a spec rather than an implementation, will there still be point releases? 6.1, 6.2, 6.3, etc?  Will you be able to write something like "use 6.2" ?
12:51 pmurias DanielC: the spec will be versioned
12:51 DanielC ok
12:52 DanielC Will you get to write "use 6.2" or similar?
12:52 pmurias ruoso: weak-refs delegate all method calls?
12:52 masak DanielC: 'use v6.2', probably.
12:52 DanielC thanks.
12:52 masak DanielC: have you tried Rakudo yet?
12:53 DanielC I haven't. Until just now I thought it was not very mature.
12:53 masak DanielC: it's pretty impressive, I would say.
12:54 masak not done yet, mind you, but there's lots you can do already.
12:54 clintongormley I just wish you guys would hurry up and finish it!  (Not in the sense of "you're so slow", but in the sense of "I can't wait!") :)
12:54 masak people are already writing sizeable applications in top of Rakudo.
12:54 DanielC I wouldn't mind using it for my personal scripts.
12:54 masak clintongormley: wait for what, exactly? some specific feature you'd like?
12:54 wayland76 Admittedly, the ROADMAP needs an update :)
12:55 masak wayland76: no, not anymore. :)
12:55 masak pmichaud++
12:55 wayland76 Oh?  YAY!
12:55 masak \o/
12:55 DanielC If I use Rakudo for my personal scripts, it won't matter if it's "production ready" or not.
12:55 clintongormley i've downloaded and tried it out a few times, with varying degrees of success
12:55 masak DanielC: that's the spirit!
12:55 clintongormley actually, the biggest block is not knowing about all the new stuff
12:55 wayland76 Why wasn't that sent to my local newspaper as a world-changing story :)
12:55 clintongormley and not having the time to investigate properly
12:55 masak clintongormley: feel free to ask about anything at all.
12:55 * clintongormley wishes for more time
12:55 wayland76 ...and the antidote to that block is to hang out here :)
12:56 * wayland76 suggests polyphasic sleep to clintongormley
12:56 clintongormley masak: thanks for the offer. i read all the p6 posts I can find
12:56 wayland76 clintongormley: Have you seen JDlugosz's stuff?
12:56 masak clintongormley: I've found that the very best way to learn is to have an itch and scratch it with Perl 6.
12:56 clintongormley it's one of those "i don't know what i don't know until i try to do something"
12:56 masak clintongormley: exactly.
12:57 masak start with a small script, and see how far you get.
12:57 clintongormley wayland76: i've seen some of his stuff - i find his writing quite difficult to follow
12:57 wayland76 ...or a small grammar :)
12:57 wayland76 Really?
12:57 clintongormley well, he tends to write long essays about eg the meaning of undef
12:58 clintongormley i think he has a CS background, which I don't, so i tend to get a bit lost
12:58 masak I find JDlugosz hard to follow too sometimes. his texts are quite high-level.
12:58 DanielC masak: You said people are writing sizeable apps with Rakudo. Can you name a couple? I know about a wiki called "November".
12:58 wayland76 I thought he was quite good when he was in tutorial mode.  His main problem seems to be that he's writing before he has an up-to-date spec in his mind :)
12:58 clintongormley i haven't seen his tutorials
12:58 masak DanielC: that's one. I wrote a 3D board game called Druid. and there's a project installer called Proto. :)
12:59 DanielC That sounds impressive.
12:59 clintongormley i've tried to get involved with dev a couple of times, but there is so much you need to know before being useful, that my efforts have been failures
12:59 masak DanielC: then there's the Pod parser by mberends, and the Form port by Matt-W.
12:59 clintongormley ENOTENOUGHTIME
12:59 masak DanielC: yes, try my board game! I'd like some feedback on it.
12:59 masak DanielC: you can download it using proto. :)
12:59 DanielC masak: Sure, I enjoy games. Where can I find it?
12:59 masak clintongormley: we all have little time here.
12:59 wayland76 clintongormley: Did you see the one on "Meditations on a loop"?
13:00 clintongormley wayland76: no - link?
13:00 masak DanielC: https://github.com/masak/druid/
13:00 DanielC *click*
13:00 wayland76 clintongormley: Well, it's wrong, so I hesitate to provide a link.  But the link is http://www.dlugosz.com/Perl6/web/med-loop.html
13:01 wayland76 When I say "Wrong", I mean that bits of the syntax were wrong when I read it.  He may've updated it now
13:01 wayland76 masak: Do you remember whether he has?
13:01 masak wayland76: no idea.
13:01 abra joined #perl6
13:01 clintongormley gaaah - i look at that and my eyes glaze over
13:01 wayland76 Ok
13:02 wayland76 I guess to me it reads like a Tom Christiansen FMTEYEWTK, and I like those
13:02 masak clintongormley: that's not the desired effect. maybe start at the other end? :)
13:02 clintongormley masak: at the bottom?
13:02 masak (I mean, by writing code instead of trying to read it)
13:02 clintongormley ah yes :) exactly
13:03 wayland76 clintongormley: Keep in mind, though, I've been doing Perl 5 for ... Wow, approaching 15 years (well, maybe 14 or so)
13:03 clintongormley wayland76: me for 12
13:03 clintongormley i'm in design mode at the moment, which makes me scurry off to find snippets of things to read to avoid actually designing.  but there is this elemental contention between work and work-avoidance, so long tutorials lose
13:03 wayland76 oh, ok.
13:04 clintongormley the last time i had actual free time to play on new stuff was between christmas and new year
13:04 clintongormley </sigh>
13:04 wayland76 :)
13:05 wayland76 Just out of interest, what did you think of Tom C's FMTEYEWTK documents?
13:06 clintongormley wayland76: the last time i looked at them was probably 12 years ago, when they were way over my head.
13:07 wayland76 Oh, ok.  The thing I liked about them was that they would take an example of a short but complex piece of code, and explain it *completely*
13:07 wayland76 Maybe 5 lines or so
13:07 clintongormley i should take another look
13:07 clintongormley my perlfoo is reasonable (excluding anything to do with C)
13:07 wayland76 I'll link you the one that I liked
13:09 wayland76 http://www.perl.com/doc/FMTEYEWTK/sort.html
13:10 clintongormley that looks good
13:10 wayland76 It may be moderately basic for you now, but I thought it was good.
13:12 wayland76 (well, the pieces may be basic; I suspect the algorithm is clever :) )
13:12 clintongormley yes - pretty much a schwartzian transform
13:12 clintongormley but nicely written
13:12 mizioumt joined #perl6
13:12 masak did you know that Perl 6 has the Schwartzian transform built-in?
13:13 clintongormley yes i've seen that
13:13 wayland76 Well, it was written by Randal Schwartz, what do you expect :)
13:13 clintongormley :)
13:14 wayland76 (ie. the code in the FMTEYEWTK was written by Randal, with Tom explaining)
13:14 clintongormley yes
13:14 clintongormley one question (and i don't that Perl6 doesn't have builtin keywords), but from my frequent glances at p6, it looks like there is an explosion of keywords
13:14 wayland76 Ok, so you like the FMTEYEWTK, but not JDlugosz's stuff
13:14 wayland76 It has builtin keywords, but not functions
13:14 wayland76 Well, and some built-in types
13:14 clintongormley ah right, ok - but the question remains
13:15 clintongormley what i'm wondering is if we're going to need a PHP style index, to make head or tail of it
13:15 clintongormley (this coming from a by-stander, rather than somebody immersed in p6)
13:15 wayland76 Well, something like that, and a good point
13:15 masak moritz_: I see you license under a cc license. do you think it's risk-free, if I want to borrow parts of your p5-to-p6 tutorial, to copy-and-adapt things into u4x, which is licensed under Artistic 2.0?
13:16 wayland76 S32 heads in that direction.  masak, will your u4x project cover that?
13:16 clintongormley i suppose a lot of them are convenience methods, which obviate writing the same thing from scratch (as we'd have to do in p5 now)
13:16 clintongormley so as soon as you discover them, you stop doing it manually
13:16 wayland76 ( clintongormley: u4x = userdocs for Christmas = user-friendly documentation)
13:16 pmurias masak: do you think moritz_ would sue you?
13:16 clintongormley wayland76: yes - i saw that mentioned previously. last time i looked i didn't see any docs (but it was a while ago)
13:17 wayland76 clintongormley: There's some of that.  .say and .slurp for example
13:17 clintongormley yes
13:17 masak pmurias: no. and I do think he's ok with it.
13:17 masak pmurias: I'm mostly interested about the interactions between cc and Artistic in the abstract.
13:18 masak afk &
13:18 clintongormley although, most of the new keywords seem to either be pretty obvious, or easy to remember once explained
13:19 clintongormley it's probably the punctuation that is going to hurt my head initially :)
13:20 clintongormley wayland76: here's an example of why i'm not crazy about JDuglosz's stuff:
13:20 clintongormley The result of the expression now looks like this: ⋖ ⋖ ⋖  ⋖ ⋖ Nil ⋗ ⋗, ⋖ ⋖ 2 ⋗ ⋗, ⋖ ⋖ 3 ⋗ ⋗, ⋖ ⋖ Nil ⋗ ⋗, ⋖ ⋖ 5 ⋗ ⋗, ⋖ ⋖ Nil ⋗ ⋗, ⋖ ⋖ 7 ⋗ ⋗, … ⋗ ⋗ ⋗ with the 93 iterations not shown in the ellipses.
13:25 wayland76 Those all show up here as a box with an X in it :)
13:25 clintongormley ah :)
13:25 clintongormley i'm going to give him some feedback - don't like talking about the guy behind his back!
13:26 wayland76 Oh, yes, I see them when I look at the document
13:26 wayland76 Well, I expect he backlogs :).  But I could be wrong
13:26 clintongormley i think it's just a matter of style really
13:26 wayland76 I've already sent him some feedback
13:26 clintongormley i'll msg him
13:26 wayland76 Then again, I've just spent a week looking at Unicode parentheses, so it's no problem for me :)
13:27 clintongormley heh
13:27 wayland76 Get used to unicode, though :)  It's going to be a part of life in Perl 6
13:28 wayland76 http://www.fileformat.info/info/unicode/category/index.htm
13:28 clintongormley oh sure - i'm happy with that
13:28 wayland76 Click on a category.  Then choose "list".  It has all the characters there
13:28 clintongormley but that same info could have been presented with nesting, and have been more readable
13:28 wayland76 There are 4 special categories for parentheses
13:29 wayland76 I agree it could've been improved :)
13:31 wayland76 Incidentally, if you have autocomplete in your IRC client, you can spell JDlugosz's name correctly by typing "JD" and pressing tab :)
13:31 wayland76 I find it makes it easier for me :)
13:32 clintongormley Waaaay! I'm using pidgin - i had no idea it could do that!
13:32 DanielC Woot!  Rakudo comes with an interactive shell. I've always wanted that for Perl.
13:32 DanielC I always use Python as a calculator because Perl 5 isn't an interactive shell.
13:32 clintongormley perl -de 5
13:33 clintongormley perl -e print 5 + 10
13:33 clintongormley perl -e 'print 5 + 10' :)
13:33 DanielC clingtongormley: I usually want to do a lot more than just one calculation.
13:33 wayland76 I use bash as my calculator
13:33 wayland76 $(( 5 + 10 ))
13:33 DanielC I appreciate having a real shell where I can create functions, variables, etc.
13:34 wayland76 echo $(( 5 + 10 ))
13:34 wayland76 But it only does integer division :(
13:35 DanielC so a real interactive shell is much better than perl -e 'print 5+4' or $(( 4 + 3 )).
13:36 clintongormley DanielC: why not just put perl into debugger mode: perl -de 5
13:36 DanielC My only annoyance with the Rakudo shell is that it doesn't display the result of each calculation.
13:36 clintongormley i live in the debugger
13:36 DanielC clintongormley: I didn't know about that option.
13:37 clintongormley perl -de 5
13:37 clintongormley > x $a = 5 + 10
13:37 clintongormley > x $a ^ 2
13:37 lambdabot <no location info>: parse error on input `='
13:37 lambdabot Couldn't match expected type `a -> b'
13:37 finanalyst what is the syntax to make rakudo emit the pbc for a program?
13:37 clintongormley heh :)
13:37 DanielC With Rakudo you have to say 'say'.
13:37 clintongormley with the perl debugger, you just use 'x'
13:37 DanielC What does x do?
13:37 clintongormley which acts like a dumper
13:38 clintongormley it's similar to : print Data::Dumper::Dumper(....)
13:38 clintongormley in the p5 debugger, just type 'h' for help
13:38 araujo joined #perl6
13:38 clintongormley there will be lots of options that you won't need initially, but just ignore those until you do need them
13:38 DanielC I just played with it a little. It feels a bit like a hack. I think I'd still use python for that (even though I don't actually like python).
13:39 DanielC What annoys me about python is that if you do "3 / 2" it does integer division, which is almost never what I want.
13:40 * clintongormley notes that the p5 debugger DWIM ;)
13:40 DanielC :-)
13:42 DanielC I think it would be groovy if the Rakudo shell had a flag or something to make Perl output the return value of each statement (just add an implicit 'say' before every line).
13:44 wayland76 I think it would be groovy if it output the flag of a random country as ASCII art :)
13:44 clintongormley that'd be cool until the return value is a large object, which results in a 4,000 line dump
13:44 wayland76 Better idea, though; a repl container function :)
13:44 lu_zero ^^;
13:45 DanielC clintongormley: Somehow that has never been a problem for me, and I have been using the Python shell for at least a decade.
13:46 clintongormley maybe it returns the equivalent of MyClass=HASH(0x7c1838)
13:46 DanielC Maybe.
13:46 clintongormley depends what you use it for, i suppose
13:47 DanielC I would consider MyClass=HASH(0x7c1838) to be a sensible output for the shell, as long as it still does the right thing for simple numbers and arrays.
13:47 DanielC I would not expect a shell to print out the contents of a hash.
13:48 DanielC (without an explicit command to do so)
13:48 clintongormley sure
13:48 FurnaceBoy joined #perl6
13:48 clintongormley i was being facetious :)
13:48 DanielC Any Rakudo developers here? Where do I submit a feature request?
13:50 pmurias the shell should propably print out .perl of the value
13:51 DanielC What is .perl?
13:52 pmurias perl6: say [1,2,3].perl
13:52 p6eval elf 26929: OUTPUT«[1,2,3]␤»
13:52 p6eval ..rakudo 23718a: OUTPUT«[1, 2, 3]␤»
13:52 p6eval ..pugs: OUTPUT«\(1, 2, 3)␤»
13:52 FurnaceBoy left #perl6
13:54 DanielC I just experimented a little. I like the output of .perl, it looks sensible for a shell.
13:54 skids joined #perl6
13:54 DanielC Hmm...  It looks like you can't define variables in the Rakudo shell.
13:55 DanielC $foo = 1  gives "Symbol '$foo' not predeclared in <anonymous> in Main ..."
13:56 clintongormley my $foo ?
13:56 DanielC That works.
13:56 DanielC Is there a reason why the my is mandatory in the shell?
13:57 finanalyst1 joined #perl6
13:58 pmurias use strict is default in Perl6
13:58 PacoLinux joined #perl6
13:58 DanielC pmurias: Really? I thought it wasn't going to be.
13:59 DanielC e.g. for one-line programs, use strict seems wrong.
13:59 DanielC But I assume that the Perl6 guys know what they are doing.
14:00 jnthn DanielC: my should be optional in -e "..."
14:00 jnthn (Though isn't yet.)
14:01 jnthn In the REPL, not so sure what's right there...
14:01 DanielC ok
14:01 DanielC That sounds fine then. So in a real program 'use strict' is on by default but in "perl -e" it is off by default.
14:04 masak DanielC: I think I agree that the return value should be printed by default in the REPL.
14:04 masak DanielC: but have you discovered the largest deficiency yet with the current Rakudo REPL?
14:04 DanielC REPL == shell?
14:05 masak DanielC: yes.
14:05 DanielC No, I haven't. What's the largest deficiency?
14:05 masak DanielC: Read, Eval, Print, Loop :)
14:05 DanielC ah
14:05 jnthn masak: Is that the deficiency? ;-)
14:05 masak DanielC: the deficiency is that variables don't survive.
14:05 jnthn masak wants a REPRL
14:06 masak from one evaluation to the next.
14:06 jnthn Read, Eval, Print, Remember, Loop
14:06 DanielC Man... you are right.
14:06 DanielC say $foo  =>  gives an error.
14:06 masak DanielC: cf this post. http://use.perl.org/~masak/journal/38279
14:06 DanielC Even though the previous line clearly said 'my $foo = 1'
14:07 DanielC *click*
14:08 jnthn DanielC: It's exactly the same semantics as if you eval'd each line (at the moment).
14:08 jnthn If you eval('my $foo = 42') you wouldn't expect $foo to exist after that eval.
14:08 masak that's the reason, but it still sucks.
14:08 DanielC And that's probably how it works internally.
14:08 jnthn I agree it's not the most helpful behavior in the REPL though.
14:08 jnthn Yes, that's almost exaclty how it wroks internally. :-)
14:09 DanielC I once wrote my own Perl shell that did exactly that: while(1) { print eval (<STDIN>) }. I stopped using it after a few hours.
14:09 masak I'd argue that the keep-variables behaviour would be good not only for Rakudo, but for all PCT languages.
14:12 jnthn masak: And conveniently enough, the places we really need to solve this are probably outside of Rakudo. :-)
14:12 jnthn And in PCT.
14:12 DanielC What is PCT?
14:12 masak DanielC: it's the toolkit for creating new compilers, i.e. new languages under Rakudo.
14:13 DanielC ok
14:13 masak s/Rakudo/Parrot/, sorry. :)
14:13 DanielC ok
14:13 DanielC PCT = Parrot Compiler Toolkit?
14:15 jnthn DanielC: Yes
14:15 jnthn Too many TLAs!
14:15 DanielC heh
14:17 jnthn OK, time for me to hack on Rakudo some. :-)
14:17 * clintongormley cheers : GO JNTHN GO!
14:18 masak oh, is today a Rakudo day?
14:18 jnthn masak: No, but I haz a grant. ;-)
14:19 DanielC Paul Graham opines one of the things that makes a language successful is the ability to make quick throw-away programs with it. Maybe we can extrapolate from that that "perl -e" and an interactive shell are important.
14:19 masak jnthn: \o/
14:19 DanielC I can tell you that those are some of my favourite features of Perl and Python (resp). Most of my Perl programs are "perl -e". I don't know if I'm alone in that.
14:20 masak DanielC: using the up and down arrows, tab completion, interactive help...
14:20 masak all those would make throw-away programming easier.
14:21 * DanielC nods
14:22 * jnthn already did a bit of his grant and should blog about it.
14:22 DanielC Why is it so hard to make an interactive shell for Perl? Is it something I would understand or is it very complicated?
14:23 jnthn The persisting lexicals issue is a tad tricky.
14:23 masak DanielC: no, it's simple. the community as a whole doesn't seem very interested in creating tools that are externally impressive.
14:23 jnthn But solvable.
14:23 clintongormley jnthn: why would lexicals need to persist? as opposed to just turning off strict and using globals?
14:23 jnthn That's the only hard technical blocker I'm aware of.
14:23 masak they can be technologically impressive on the inside. but they seldom have the glitz that Ruby and Python manages to add to their REPLs and other apps.
14:24 masak clintongormley: that wouldn't always be what one wants.
14:24 jnthn clintongormley: 'cus people will still type my $x = 42; <nl> say "omg the answer is $x"
14:24 jnthn And expect it to work.
14:24 clintongormley ok
14:25 jnthn So it's probably best that we make it work. :-)
14:25 clintongormley well, you don't seem to have much else on your plate ;)
14:26 * clintongormley waits
14:26 clintongormley is it done yet?
14:26 clintongormley masak & jnthn? you both going to YAPC::EU this year?
14:27 jnthn clintongormley: :-P
14:27 jnthn clintongormley: I'm going to YAPC::EU, yes. Speaking even. :-)
14:27 clintongormley i wouldn't expect any less :)
14:27 clintongormley we've passed each other in previous YAPCs
14:27 clintongormley but i don't think we've spoken
14:28 clintongormley i'll introduce myself this time round
14:28 DanielC Dang. I'll be away on 3-5 August so I can't go to the conference.
14:28 * DanielC makes a mental note to look up more Perl conferences in Europe.
14:28 clintongormley where are you DanielC?
14:28 DanielC Germany.
14:29 DanielC On the side close to France.
14:29 clintongormley i'm in spain, on the side close to france :)
14:29 clintongormley barcelona
14:29 jnthn I'm in Slovakia, on the side close(st) to France. ;-)
14:29 clintongormley heh
14:29 clintongormley you in bratislava?
14:30 jnthn Aye.
14:30 clintongormley is the IP still going?
14:30 jnthn IP?
14:30 jnthn .oO( my IP address is still fine... )
14:30 clintongormley Irish Pub
14:30 jnthn Oh, in Stare Mesto? I think so...
14:31 clintongormley which was about the only restaurant worth going to about 12 years ago
14:31 jnthn I believe there is one centrally anyways.
14:31 clintongormley (according to the friends i was visiting)
14:31 jnthn I don't tend to go out in the center so much...
14:31 clintongormley i bet it's changed a lot since then
14:31 clintongormley like prague has
14:32 clintongormley ok laters all - must crack on
14:32 jnthn Most probably, but no idea. First time I came here was only a couple of years back.
14:32 jnthn Well, yes, I have an idea from what I've been told, but not from personal experience. :-)
14:33 * jnthn was still doing high school 12 years ago.
14:33 jnthn OK, time to re-arrange Object.pir some and hopefully not break excessively much.
14:33 DanielC masak:  In your post you write about Ruby's ri...  What does ri / u4x have that perldoc doesn't have?
14:34 DanielC I have always thought highly of perldoc.
14:35 masak DanielC: me too. perldoc does a lot of things right.
14:35 masak DanielC: here's what I imagine. http://svn.pugscode.org/pugs/docs/u4x/README
14:35 DanielC *click*
14:37 DanielC masak:  So you'll be able to run "grok map" to learn how the map function works instead of going to "perldoc perlfunc" ?
14:37 masak DanielC: correct.
14:37 clintongormley what about adding a "Perl6 Concepts" page, to navigate your way through roles, adverbs, sigils, slang etc
14:38 masak clintongormley: there will likely be tutorials, perhaps connected through something like that.
14:38 clintongormley cool
14:38 DanielC I think I like where you are going with this "grok" program.
14:38 masak see http://svn.pugscode.org/pugs/docs/u4x/TODO for what we currently think we'll document.
14:38 masak DanielC: glad to hear it.
14:39 masak DanielC: literal is tasked to write it as a GSoC project this summer.
14:39 masak erm, I mean literal++.
14:39 DanielC cool
14:39 DanielC I remember that one of the things I loved about Perl when I began learning it was perldoc.
14:40 masak yes. this will be like that, only more so. :)
14:40 clintongormley btw, DanielC do you know about the form: "perldoc -f map"
14:40 DanielC I liked that perldoc had both great tutorials and great reference (and not just one or the other).
14:40 masak DanielC: indeed.
14:40 DanielC clintongormley: No, I didn't know that. Thanks.
14:43 DanielC masak: Will grok also support the documentation for all the CPAN modules the way perldoc does?
14:44 masak DanielC: I don't know. I don't have 20/20 vision forwards.
14:44 DanielC Ok.
14:45 masak but it sounds desirable.
14:46 masak I'm presently thinking about how best to store the documentation tied to Perl 6 itself (core subs, classes, operators) in such a way that the 'grok' program can easily access it.
14:46 DanielC What's wrong with the current man page format?
14:47 masak that's a different question, but I think we can do better than that.
14:47 masak I liked the color-coded version of the ri output, for example.
14:47 masak at least as an option.
14:47 masak HTML should be another option.
14:47 DanielC My ri is not in colour...
14:47 masak DanielC: no, not by default.
14:48 masak see _why's tutorial linked from my blog post.
14:48 DanielC ok
14:48 masak we'll probably want to put u4x docs on the web as early as possible, autogenerated just like the specs.
14:49 DanielC I don't think u4x is a very memorable name (neither is ri). I think "perldoc" and "grok" are much better names.
14:50 masak me too.
14:50 masak u4x is a throwaway name.
14:50 payload joined #perl6
14:50 masak it's just the name of the effort to write the documentation for grok.
14:50 masak and perhaps to write grok itself.
14:51 masak I chose it because I think that the thought of Christmas is a decent way to motivate people to think about documentation.
14:51 masak people realize that if Christmas ever comes, we'll need to be ready, I think.
14:51 DanielC ok
14:52 masak it would be quite embarassing to have all other aspects of Perl 6 ready, but to have no or very poor documentation.
14:52 DanielC Indeed.
14:52 masak like it or not, people go a lot by first impressions.
14:52 DanielC Especially since documentation has "always" been one of the selling points of Perl.
14:52 masak indeed.
14:53 masak it's one of the things we have to rebuild from scratch, and that naturally takes time.
14:53 DanielC Perl6 will still use POD, so at least that won't change.
14:54 masak DanielC: sure, but there's also Pod, a new version written for Perl 6.
15:00 masak I expect that the u4x documentation will be written in Pod.
15:01 DanielC The new pod is almost the same as the old pod, isn't it?
15:01 masak no, I wouldn't say that.
15:02 DanielC ok
15:02 masak it has a great number of similarities, but just as the rest of Perl 6, it's a cleaned-up version with lots of cruft removed and lots of neat ideas put in.
15:02 DanielC Is there a guide to the new pod somewhere?
15:02 masak and just as the rest of Perl 6, it hadn't really congealed yet. TheDamian is allegedly working on a new draft.
15:03 masak DanielC: there's S26. and the CPAN module Perl6::Pod.
15:03 masak DanielC: and lots of email discussion scattered on p6l around 2006.
15:04 * DanielC finds S26 and starts reading
15:11 iblechbot joined #perl6
15:19 sri_kraih joined #perl6
15:20 ruoso pmurias, weak-refs do delegate all the calls
15:23 icwiener joined #perl6
15:32 Gothmog_ joined #perl6
15:33 Gothmog_ joined #perl6
15:36 ejs joined #perl6
15:46 abra joined #perl6
15:47 orafu joined #perl6
15:49 simcop2387 joined #perl6
15:49 literal DanielC: masak probably meant to say Perl6::Perldoc, not Perl6::Pod
15:51 masak oh, right. aye.
15:52 masak it currently resides in the perl6-examples repository on github.
15:52 jnthn *sigh*
15:53 jnthn So I think I've got a refactor about right...apart from it fails one spectest. A really bizzare one to fail too. :-|
15:53 literal masak: no, Pod::Parser is in perl6-examples :)
15:53 literal Perl6::Perldoc is the Perl 5 module on CPAN
15:53 masak yes. my brain isn't 100% today.
15:54 masak arranging Esperanto Youth meetings tends to sap one's powers a bit, at least mine. :)
15:54 jnthn rakudo: role C { }; class HasC { has C $.x is rw; }; HasC.new.x = 42; say "alive"
15:54 p6eval rakudo 23718a: OUTPUT«Type mismatch in assignment; expected something matching type  but got something of type Int()␤in Main (/tmp/n7Ah6FMEon:1)␤»
15:54 masak and I'm sneezing a bit to often, which makes me suspect that I'm on my way to getting a cold if I don't watch out...
15:55 masak rakudo++
15:55 jnthn masak: Yeah, bizzarely it fails to fail after the refactor I did. But nothing else anywhere else fails. :-|
15:55 jnthn It's like...why *that* test...
15:56 masak :)
15:56 masak it's today's puzzle.
15:57 jnthn I guess I shouldn't complain. It was a fairly major-ish change that I did, so to only hit this issue is kinda not so bad.
15:59 jnthn oh hmmm, I think I know what's up with it.
16:02 masak even better than today's puzzle is _solving_ today's puzzle. :)
16:02 jnthn rakudo: class A { has Int $.x is rw; }; my $y = A.new; $y.x = "oh noes";
16:02 p6eval rakudo 23718a: OUTPUT«Type mismatch in assignment; expected something matching type Int but got something of type Str()␤in Main (/tmp/edV7WWyPnS:1)␤»
16:02 jnthn gah
16:03 jnthn OK, so our spectests are missing a test or ten.
16:03 masak o_O
16:03 * masak submits rakudobug
16:03 jnthn masak: Erm
16:03 jnthn The above output is correct.
16:03 masak oh, right.
16:03 masak I misread.
16:03 jnthn masak: The point is we don't have a test for that.
16:03 masak thought things went wrong at construction.
16:04 masak man, I'm really not working at full speed today. :/
16:04 jnthn So it turns out actually I didn't break just attributes typed with roles (which woulda been SO weird) but just typed scalar attributes in general.
16:04 jnthn Which makes complete sense.
16:04 masak ah.
16:04 jnthn I was just pretty sure I'd fail other tests, that's all.
16:05 masak & # going swimming
16:05 literal < DanielC> masak:  So you'll be able to run "grok map" to learn how the map function works instead of going to "perldoc perlfunc" ?
16:05 literal DanielC: you can already do "perldoc -f map" :)
16:07 literal oh, it seems someone already told you about it
16:08 JDlugosz Howdy y'all.
16:09 JDlugosz I just got to the stuff about me in the backlog...
16:09 JDlugosz If "meditations on a loop" isn't correct now, let me know.  It's been updated based on the initial readings' feedback.
16:10 JDlugosz I'm also marking the status within the document, though in this case it was at the bottom.
16:12 JDlugosz For those interested, my current attempts at writing something have run into issues, but that's how I find such issues in my knowledge (as well as in the spec), by organizing it and writing about it.  Writing is a great way to learn.
16:12 JDlugosz In the 90's I wrote a lot for magazines.
16:12 literal does the guy who created the Period Table of Perl 6 Operators hang out here?
16:12 JDlugosz Yes, I have a degree in Computer Science.
16:12 literal Periodic
16:13 clintongormley JDlugosz: hiya John i sent you a number of messages - not sure if you got them
16:13 JDlugosz What (where) is "FMTEYEWTK"?
16:13 clintongormley http://www.perl.com/doc/FMTEYEWTK/index.html
16:13 JDlugosz Messages:  I'll try now.  But lambdabot's didn't mentionanything when I came back.
16:14 clintongormley JDlugosz: no sorry - i meant direct IRC, as opposed to in #perl6
16:14 JDlugosz I'm up to 13:12 UTC in the backlog.
16:15 clintongormley ok - i suppose it depends on your IRC client :)
16:16 JDlugosz "⋖ ⋖ ⋖  ⋖ ⋖ Nil" ... well, I'm trying to show what goes on underneith.  Using parens would conflict with the meaning I'm explaining of how parens wrap things up in a Capture.
16:16 iblechbot joined #perl6
16:16 clintongormley i was thinking more about nesting, there
16:16 clintongormley sorry - vertical whitespace
16:17 dalek rakudo: 3eb18eb | jnthn++ | src/classes/Object.pir:
16:17 dalek rakudo: Refactor class creation somewhat. We now have a kind of proto-instance (which ain't - yet anyway - the proto-object) that we set up once with all of the containers, and then we clone it. This is a step on the road to being able to do traits on attributes right and also to allowing custom BUILDs. We temporarily regress on 1 spectest (not 1 file, just 1 test).
16:17 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/3eb18eb1e82d811475706c42566308a4f15f2a86
16:17 JDlugosz How might I describe it other than nesting, since the layers of wrappers is what I'm pointing out?
16:18 clintongormley <
16:18 clintongormley <
16:18 clintongormley <
16:18 JDlugosz vertical whitespace?  You mean make it on multiple lines?  OK.
16:18 JDlugosz Never wrote in LISP, I take it?
16:18 clintongormley heh - no :)
16:20 JDlugosz I don't see any "messages to me".
16:21 JDlugosz In the backlog on the web site, that is.  My client reset at some point so nothing before 10:39 UTC.
16:22 pugs_svn r26930 | hinrik++ | Add some links to other Perl 6 docs
16:23 clintongormley JDlugosz: here's what i wrote:
16:23 clintongormley I have 12 years experience with p5, but don't have a CS background, and I find your tutorials quite hard to read.  I have to really sit and study them.
16:23 clintongormley the result is, I either skim, or get bored and leave - either way not doing your content justice
16:23 clintongormley i would suggest:
16:23 clintongormley - smaller blocks of text
16:23 clintongormley - single concepts, rather than trying to explain too much in one place
16:23 clintongormley - better layout, eg show nested data structures with line breaks, rather than on a single line
16:23 clintongormley - trim the words to what is necessary, eg "Wow, the built in Int class has a .prime method!  Well, no, it doesn’t.   Once upon a time methods that were not found would fail-over to ordinary sub calls. That has been removed and this example was not updated. Perl 6 is a moving target!"
16:23 clintongormley I appreciate the effort you're putting into it, which is why i'm giving you my feedback - I'd like to use your docs in the future :)  Hope I haven't caused any offence
16:24 clintongormley Since I wrote that, I've thought more about your tutorials, and maybe they're aimed at somebody who knows more about p6 than I do currently (ie very little)
16:25 clintongormley in which case, the level may be appropriate
16:27 JDlugosz Thanks, noted.
16:28 skids JDlugosz: just wanted to make sure you knew about this: http://www.perlfoundation.org/perl6/index.cgi?WITCH
16:29 JDlugosz skids:  what about it?
16:30 skids Just that it exists
16:30 skids In case it's foldable somehow into what your doing
16:30 JDlugosz OK, I bookmarked it.
16:30 JDlugosz And I'll keep it in mind if I write about one of those.
16:31 DemoFreak joined #perl6
16:32 skids It's not necessarily aimed at linking just to the spec -- it only started that way because I layed out the initial stuff onmy first read through the synopsis.
16:32 skids So it could link into u4x pages as well.
16:34 skids Does u4x have a stable web location yet, or will it be prone to move around for a bit?
16:35 eMaX joined #perl6
16:36 literal I'm not sure
16:36 literal will be in pugs svn for now
16:36 JDlugosz Why not start a github for something new?
16:37 literal it might end up there, I think we first have to figure out the layout of the docs and such
16:38 skids .oO(If roads moved as much as websites...)
16:42 nsh joined #perl6
16:45 Psyche^ joined #perl6
16:54 DanielC Doesn't ~~ man something special in Perl 6?  But ~~ is already used by the i18n module (http://search.cpan.org/~audreyt/i18n-0.10/lib/i18n.pm)
16:54 DanielC s/man/mean/
16:57 skids ~~ is smart match in Perl6.
16:57 skids (and in perl 5.10 I am told)
16:58 DanielC So there is a conflict with i18n...  What is a smart match?
16:59 literal I think they intentinally left ~~ unused so they could use it later, and i18n was written before 5.10 :P
16:59 skids http://perlbuzz.com/2007/12/perl-510-now-available.html (5.10 version)
17:02 skids were il8n to be Perl6-ified likely it would use a cusom defined set of flags to Q.
17:09 jnthn rakudo: class A { has Int $.x is rw }; my $x = A.new; $x.x = "dies"
17:09 p6eval rakudo 3eb18e:  ( no output )
17:11 jnthn (dies now locally)
17:13 skids jnthn: I was looking into making (...) xx * work (to the limit that Ranges currently work) but wonder where would .Iterator get jammed ... that is what's the internal class of an in-progress list operation lke that?
17:14 skids I'm guessing we would not want one class per kind of list operation, nor a per-instance anonymous role...
17:17 jnthn As far as I know, Iterator is a role and we'd hand back something that does Iterator.
17:17 jnthn Which may be the thingy itself.
17:17 jnthn I'm not quite sure how it'll play out for List and Array.
17:18 skids Well, externally it will just look like a list, but we need some hook to hanf the state and the logic that actually performs the iteration on.
17:18 skids s/hanf/hang/
17:19 skids e.g. right now, 1..* hangs RangIterator in Range.
17:19 skids But I'm guessing we don't want ReplicationIterator, ZIPiterator, etc, etc.
17:19 jnthn Well, I think it returns a RangeIterator when you ask for .iterator on a range.
17:20 LadyLuna1y joined #perl6
17:20 jnthn No, we don't, but since I believe all of those would - like map and grep - be buildable on the gather/take primitive...
17:20 fridim_ joined #perl6
17:21 skids Yeah, in that case they are just subs...
17:21 jnthn Then I expect it will all fall out of making gather/take lazy.
17:21 * skids was kind of thinking to be able to do something in the interim.
17:22 skids So maybe I should just make an internal Any class that we hope will vanish later.
17:22 skids erm subclass.
17:23 jnthn Perhaps, yeah. I kinda fear any workaround is going to get messy though.
17:23 nbrown_ joined #perl6
17:23 skids Well, just follow Range's example :-)
17:24 skids Excep hide it away.
17:24 jnthn Yeah but even Range isn't very lazy.
17:24 jnthn Not when you stick it into a for loop anyway.
17:26 skids Ah, I guess not.  I thought I remembered 1..*  working more than it does.
17:27 jnthn I appreciate that you want the laziness, but my own experience of trying to get us in that direction is that it's just going to be even more work that trying to do laziness proper. I suspect that more productive in the long run, if you want to work on this area, is looking at re-writing the operators that need to be lazy in terms of gather/take.
17:28 jnthn (also note pmichaud has thought this stuff through more than me...)
17:28 jnthn It's possible to write operators in the setting now.
17:29 jnthn So looking at moving a couple to work in terms of gather/take that will need to is probably a quite interesting thing to try.
17:29 skids I already have zip/roundrobin eritten in those terms (pending slices)
17:29 jnthn ah, cool
17:30 skids (Even have a workaround using PIR to get around binding array elements so it lvalues properly)
17:33 skids It does feel a bit wrong though knowing any callbacks with takes that users are expecting to go to an outer gather in them are going to blow up.
17:37 moritz_ @tell masak Artistic 2.0 is fine
17:37 lambdabot Consider it noted.
17:38 finanalyst1 moritz_: hi. i was looking at your blog on making an executable
17:39 moritz_ somebody looks at my blog ;-)
17:39 moritz_ finanalyst1: I have to run now, but I'll backlog, if you have any questions
17:40 finanalyst1 is it possible to get part way there? eg. is it possible to have perl6 emit pbc, which can then be used with parrot?
17:40 moritz_ yes
17:40 finanalyst1 i read your blog at least once a week
17:40 moritz_ if the rakudo runtime is available
17:40 moritz_ dinner &
17:40 finanalyst1 bon appetite
17:40 finanalyst1 i need to go eat too
17:48 dalek rakudo: b0e33e2 | jnthn++ |  (4 files):
17:48 dalek rakudo: Add a stub p6opaque, and start making objects we create use that instead of Object as their repr. Fill out its clone vtable method enough to un-regress the test my last commit had us fail. This also lays the foundations for starting dispatch refactor.
17:48 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/b0e33e21a689a91176805a32be5971298c6df24f
18:03 DanielC joined #perl6
18:05 * skids ponders slice laziness.
18:05 skids Essentially, can a function return two or more infinite lists as captures.
18:06 skids And at the same time support these "flatten in list" behaviors.
18:06 skids When there's no want-like construct...
18:12 skids I suppose just return <some lazy object> for each slice.
18:15 skids Or rather ( <some lazy object> ) I guess.
18:15 sjohnson1 joined #perl6
18:17 justatheory joined #perl6
18:18 mizioumt joined #perl6
18:34 sjohnson1 joined #perl6
18:39 rjbs joined #perl6
18:40 rjbs Camelia.  Cute!
18:40 rjbs Hm.  Is S26 (http://perlcabal.org/syn/S26.html) still the latest, more or less?
18:42 r0bby_ joined #perl6
18:44 sjohnson2 joined #perl6
18:44 r0bby joined #perl6
18:52 skids rakudo: y sub a { return gather for 1..3 { take ( gather {take 1; take 2; take 3;} ) } }; a().perl.say
18:52 p6eval rakudo b0e33e: OUTPUT«Could not find non-existent sub y␤»
18:52 skids rakudo: my sub a { return gather for 1..3 { take ( gather {take 1; take 2; take 3;} ) } }; a().perl.say
18:52 p6eval rakudo b0e33e: OUTPUT«[1, 2, 3, 1, 2, 3, 1, 2, 3]␤»
18:52 skids rakudo: my sub a { return gather for 1..3 { take \( gather {take 1; take 2; take 3;} ) } }; a().perl.say
18:52 moritz_ oops, t/spec/S12-methods/indirect_notation.t aborts after 11 tests
18:52 mizioumt joined #perl6
18:54 jferrero joined #perl6
18:55 skids hrm evalbot seems to take much longer for that to fail than on my system.
18:55 skids cmon ulimit, u can do it.
18:55 moritz_ it's on a rather slow machine
18:56 jnthn moritz_: On current Rakudo?
18:56 jnthn moritz_: With the Parrot in PARROT_REVISION?
18:57 moritz_ jnthn: with rakudo b0e33e21a689a91176805a32be5971298c6df24f
18:57 p6eval rakudo b0e33e: OUTPUT«maximum recursion depth exceeded␤in method List::list (src/gen_setting.pm:722)␤called from method Any::map (src/gen_setting.pm:34)␤called from method List::perl (src/gen_setting.pm:732)␤called from method Any::map (src/gen_setting.pm:732)␤called from method List::perl
18:57 p6eval ..(src/gen_sett…
18:57 moritz_ jnthn: and parrot r39159
18:57 moritz_ which is a bit newer than required
18:58 jnthn moritz_: OK. Maybe it's heisenbug, or maybe it's an issue in Parrot.
18:59 kst joined #perl6
18:59 moritz_ maybe time for another realclean
19:00 sjohnson3 joined #perl6
19:02 skids rakudo: (\(1,2),\(3,4)).perl.say # .perl of any list of captures will explode
19:02 moritz_ skids: then please don't make evalbot explode in such a way
19:02 skids is that bad?
19:03 moritz_ well, it wastes resources, and evalbot isn't available to others during that time
19:03 dalek rakudo: d23ef7a | moritz++ | t/spectest.data:
19:03 dalek rakudo: [t/spectest.data] three more passing test files
19:03 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/d23ef7a56761eec3b85029603b3bf1531fa47d0d
19:03 skids oh, I thought it was pretty much fair game for abuse, sorry.
19:04 moritz_ it's fair game for use ;-)
19:04 moritz_ just like it's not safe against run()/qx and that kind of fun
19:04 * skids hunts for preexisting RT
19:06 p6eval rakudo d23ef7: OUTPUT«maximum recursion depth exceeded␤in method List::list (src/gen_setting.pm:722)␤called from method Any::map (src/gen_setting.pm:34)␤called from method List::perl (src/gen_setting.pm:732)␤called from method Any::map (src/gen_setting.pm:732)␤called from method List::perl
19:06 p6eval ..(src/gen_sett…
19:07 rjbs left #perl6
19:15 hanekomu_ joined #perl6
19:17 icwiener_ joined #perl6
19:22 TheMyster joined #perl6
19:24 pmurias joined #perl6
19:25 finanalyst joined #perl6
19:33 pugs_svn r26931 | moritz++ | [ext] kill Sudoku, it was wrong in several ways, and rather outdated.
19:33 pugs_svn r26931 | moritz++ | I'll probably redo do it on perl6-examples for rakudo
19:36 pugs_svn r26932 | moritz++ | [ext] some small syntax updates (and a few WTF comments)
19:37 jferrero joined #perl6
19:40 jnthn rakudo: say grep * % 2, 0..6;
19:40 p6eval rakudo d23ef7: OUTPUT«135␤»
19:43 moritz_ jnthn: btw, congratulations to your now accepted grant
19:43 TimToady rakudo: say grep * !% 2, 0..6
19:43 p6eval rakudo d23ef7: OUTPUT«Statement not terminated properly at line 1, near "!% 2, 0..6"␤in Main (src/gen_setting.pm:0)␤»
19:44 jnthn moritz_: Thanks
19:44 jnthn moritz_: Already working away at it. :-)
19:45 moritz_ TimToady: should that work? I thought ! as a prefix infix meta op was only available for operators that return Bool
19:45 jnthn TimToady: Is that classed as a meta-op?
19:45 moritz_ std: 3 !% 2
19:45 p6eval std 26932: OUTPUT«ok 00:02 35m␤»
19:45 moritz_ std: 1A2
19:45 p6eval std 26932: OUTPUT«Can't call method "cursor_fresh" on an undefined value at STD.pm line 40804.␤FAILED 00:02 35m␤»
19:45 moritz_ the shortest script that can crash STD.pm ;-)
19:45 TimToady o_O
19:46 moritz_ std: 1A
19:46 p6eval std 26932: OUTPUT«Can't call method "cursor_fresh" on an undefined value at STD.pm line 40804.␤FAILED 00:02 35m␤»
19:46 moritz_ ah, even shorter
19:46 jnthn std: A
19:46 p6eval std 26932: OUTPUT«Undeclared name:␤      A used at 1 ␤ok 00:02 35m␤»
19:46 jnthn phew :-)
19:46 jnthn std: =
19:46 p6eval std 26932: OUTPUT«Undefined␤ok 00:02 35m␤»
19:46 TimToady S03 allows !% as a special case
19:46 moritz_ ah
19:47 sjohnson3 joined #perl6
19:47 moritz_ ouch, http://perlcabal.org/syn/S03.html shows an encoding mess
19:48 TimToady has a BOM on the front
19:49 lichtkind joined #perl6
19:50 pugs_svn r26933 | moritz++ | [S03] maybe a newline after the BOM unconfuses the POD parser?
19:52 moritz_ so it returns a Bool?
19:52 lichtkind do i can access the internal perl objects via perl 6?
19:53 moritz_ what do you mean by "internal perl objects"?
19:53 TimToady !% returns a Bool
19:53 TimToady % doesn't, of course
19:54 moritz_ right
19:54 jnthn TimToady: So it's really just an op in its own right rather than falling out of anything else?
19:54 jnthn oh
19:54 jnthn token infix:sym<%> ( --> Multiplicative) { <sym> <?{ $<O><iffy> = 1; }> }   # Allow !% operator
19:54 TimToady it can be viewed either as a metaop or not, doesn't much matter, except unless there's an LTM conflict
19:55 pugs_svn r26934 | moritz++ | [t/spec] test !% from S03
19:55 moritz_ std: 1 !!% 2
19:55 TimToady but as you can see, STD views it as a metaop
19:55 p6eval std 26934: OUTPUT«##### PARSE FAILED #####␤Syntax error (two terms in a row?) at /tmp/dn5YqBmWYQ line 1:␤------> [32m1 [31m!!% 2[0m␤    expecting any of:␤  infix or meta-infix␤      infix stopper␤    infix_prefix_meta_operator␤       standard stopper␤ statement modifier loop␤  terminator␤FAILED
19:55 p6eval ..00:02 35m␤»
19:56 jnthn *nod*
19:56 TimToady ! disallows !!
19:56 TimToady since !! usually means ??!!
19:56 moritz_ I just read it in S03, and wondered what the error message would be
19:57 skids std: 1 ?% 2
19:57 p6eval std 26934: OUTPUT«##### PARSE FAILED #####␤Obsolete use of ?: for the conditional operator; in Perl 6 please use ??!! instead at /tmp/iUY90kxwUc line 1:␤------> [32m1 ?[31m% 2[0m␤FAILED 00:02 35m␤»
19:57 skids not that I actually would use that...
19:58 dduncan joined #perl6
19:58 ilogger2 joined #perl6
20:02 moritz_ I found that the very accurate hilighting of the error position makes the error message much less important ;-)
20:03 TimToady still...
20:04 TimToady lunch &
20:09 lichtkind TimToady: is true that you can give perl 6 variables new properties vio self written roles ?
20:09 eMaX joined #perl6
20:10 lichtkind ahh
20:11 moritz_ like, traits?
20:11 moritz_ or, mixins?
20:13 lichtkind moritz_: doesnt matter
20:13 moritz_ "yes"
20:14 moritz_ rakudo: role A { method newmethod { say "OH {self}" } }; ("HAI" but A).newmethod
20:14 p6eval rakudo d23ef7: OUTPUT«OH HAI␤»
20:14 lichtkind moritz_: i mean traits, the things you declare with but
20:15 lichtkind or is
20:15 lichtkind doenst matter if run or compiletime
20:15 lichtkind what i mean that variable can doting the couldnt do before
20:15 jnthn Actually, the thing that does matter about traits is that they are "compile time" :-)
20:21 lichtkind yes but i had the feeling you had to acess some internal values of var objects and how you coukld do that in a role
20:22 lichtkind is ther eany example code to that?
20:23 s1n jnthn: i'm seeing warnings about /* within comments, looks like there's one ending up in perl6_ops_switch.c. that looks like it was caused by ops2c.pl
20:24 jnthn lichtkind: It's not yet implemented, there maybe are some tests somewhere...but that bit of the spec is currently up for revision.
20:24 nacho__ joined #perl6
20:24 jnthn s1n: Oddness.
20:25 s1n jnthn: even odder is with parrot r39171, it eats up all my memory and is killed :/
20:25 s1n err during the compile anyways
20:25 jnthn Ouch, sounds like Parrot bug.
20:25 azawawi joined #perl6
20:26 azawawi hi
20:26 azawawi moritz_: ping
20:27 jnthn s1n: Is taht while compiling the dynop?
20:27 jnthn I just looked at the file and don't see anything suspect in the commenting. :-S
20:27 azawawi is this still working in the latest rakudo - http://perlgeek.de/blog-en/perl-6/my-first-executable.writeback ?
20:27 jnthn s1n: Oh, one weird thing...I missed something
20:27 s1n jnthn: if by dynop you mean the perl6_ops_*, then yess
20:28 s1n jnthn: keep in mind i'm daring to try trunk instead of PARROT_REVISION
20:28 pugs_svn r26935 | pmurias++ | [re-smop] fixed memory leak
20:29 jnthn s1n: Yeah, very possibly my bad in the .ops file
20:29 pugs_svn r26936 | pmurias++ | [re-smop] fix leak
20:29 s1n jnthn: glad i could help :)
20:30 azawawi jnthn: is perl6 pbc 2 exe method still working in latest rakudo?
20:30 s1n jnthn: let me know if there's anything else i can help with. i never got around to testing that problem i mentioned yesterday
20:30 s1n azawawi: it's not a real exe, but close enough to be called "fakexecutable"
20:31 pmurias ruoso: do you think i should chase down leaks or work on RoleHOW and other thing for my GSoC project?
20:31 ruoso pmurias, I think you can start on RoleHOW...
20:31 azawawi s1n: cool but it was working before and now it is not...
20:31 jnthn s1n: Let me know if d23ef7a helps clear up the warning.
20:31 s1n azawawi: you could write a bug on RT, but given parrot's inability to install still, it might be stalled
20:32 jnthn azawawi: Were you compiling a Perl 6 program down to a pbc?
20:32 ruoso pmurias, I think you will be able to go a lot forward before one of that leaks really bite you... and I hope we get to it before it bloks you...
20:33 azawawi jnthn: yeah, i was making a 'generate perl6 executable' action for Padre::Plugin::Perl6...
20:33 pmurias getting Failure correctly require not leaking memory
20:33 s1n jnthn: hmm, i'm at c6df24f (just pulled), is that a newer commit or am i up to date enough?
20:33 ruoso pmurias, what do you mean by "getting Failure"?
20:33 jnthn s1n: Hmm.
20:34 jnthn s1n: Doesn't match my push ID here, but maybe :-)
20:34 pmurias ruoso: implementing Failure
20:34 s1n jnthn: wha?? okay, lemme go see what i have then
20:34 dalek rakudo: 37e6703 | jnthn++ | src/ops/perl6.ops:
20:34 dalek rakudo: Oops, mistake in the .ops file.
20:34 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/37e6703ad4bd8ce677c906a7ec3b5e9bb3bf0e9f
20:34 azawawi jnthn: it generates the executable but when you execute it; you get http://sial.org/pbot/36804
20:34 jnthn s1n: That one that just went by there. :-)
20:34 ruoso pmurias, ah... because it's currently segfaulting...
20:35 pmurias failures throw themself when they get garbadge collected, which never happens if they get leaked
20:35 jnthn azawawi: It looks to me as if it's somehow failing to find the dyn PMCs.
20:36 jnthn azawawi: Are you running the exe/building the exe in the same place as your Rakudo tree, out of interest?
20:36 ruoso pmurias, no... they do not throw themselves at that point
20:36 s1n jnthn: i'm at http://github.com/rakudo/rakudo/commit/b0e33e21a689a91176805a32be5971298c6df24f
20:36 ruoso pmurias, it's the block itself that checks for unhandled exceptions in $!
20:36 s1n so sans your ops fix, i should be current
20:37 azawawi jnthn: yeah on the latest rakudo tree; i ran the commands there to double check it...
20:37 ruoso pmurias, btw... you removed the init_destr_2 test... did you add any other test to reproduce that bug?
20:38 jnthn s1n: OK, but that fix should hopefully ahve removed the warning you were seeing. :-)
20:38 pmurias At scope exit, C<$!> discards all handled exceptions from itself, then performs
20:38 pmurias a garbage-collection check for all remaining (unhandled) exceptions.
20:39 ruoso pmurias, it doesn't mean "garbage-collection" as *the* garbage collector
20:39 ruoso it's just a generic use of the term
20:39 ruoso (note that I did think what you're thinking, but TimToady told me what it means)
20:40 pmurias if so it's extremly miss-leading
20:41 s1n jnthn: i didn't pull, but reverting back to PARROT_REVISION compiles fine
20:41 pmurias ruoso: i overzealously deleted test init_destr_2
20:42 DanielC I have an idea for Perl6 Pod. Is there a mailing list I should join or should I send an email directly to Damian Conway?
20:42 moritz_ azawawi: last time I tried it worked
20:42 jnthn s1n: OK. I still had made a mistake in the perl6.ops file anyway though. :-)
20:42 moritz_ DanielC: to the list, I'd say
20:42 s1n jnthn: and i'm still seeing that "Method 'foo' not found for invocant of class ''" problem without a stacktrace
20:42 s1n jnthn: other than the comment warning, would that cause other problems?
20:42 jnthn s1n: Aye, I didn't yet work out whether the breakage was in Parrot or Rakudo...
20:43 jnthn s1n: You're getting a build failure with latest Parrot?
20:43 s1n jnthn: yes
20:43 DanielC moritz_: perl6-users? perl6-language?
20:43 moritz_ DanielC: language
20:43 DanielC thanks
20:43 jnthn s1n: Paste?
20:43 s1n jnthn: on building the fakexecutable
20:43 jnthn (build log)
20:43 jnthn Oh
20:43 s1n jnthn: sure, give me a few minutes
20:44 s1n jnthn: though there's nothing special
20:44 s1n jnthn: it just runs out of memory and is killed
20:44 azawawi moritz_: this is what happened here (script+output): http://sial.org/pbot/36806
20:44 ruoso pmurias, btw... t/role in re-mildew loops infinitely
20:44 s1n jnthn: still want to see it?
20:45 jnthn s1n: No, I doubt it'll be revealing in this case.
20:45 s1n jnthn: lemme know if there's anything i can do to help
20:45 s1n jnthn: i don't know how to track down either of these problems
20:46 moritz_ azawawi: ah, fails here too with latest rakudo
20:46 azawawi moritz_: then it is not a win32-only issue; cool :)
20:48 jnthn s1n: I don't see anything much in the recent Parrot change log about the pbc2exe.
20:48 jnthn (as in the timeline at https://trac.parrot.org/parrot/timeline)
20:48 azawawi moritz_: i added it btw in Padre::Plugin::Perl6 to generate fakexecutables...
20:49 s1n jnthn: i'm not really knowledgable about the parrot build system (maybe i will be after the PVMW :) )
20:49 jnthn Tracking down the exception backtrace - I'm a bit unsure where to start too. I'll probably get the C debugger out and stick a breakpoint in the "throw exception from c" code.
20:49 s1n jnthn: now i do know my way around a debugger :)
20:49 jnthn Or in the .backtrace() method in Exception perhaps.
20:50 jnthn There's an ATTR thrower that is meant to be populated. Either it isn't being, or something else is adrift.
20:50 jnthn s1n: Gotta go deal with something else - be back in a bit.
20:51 s1n jnthn: sure, lemme know if you want my help when you get back
20:52 pmurias ruoso: i think having SMOP_MOLD_DEBUG as an env variable would be nice (being able to toggle it at runtime)
20:53 ruoso pmurias, that's an interesting idea... but I think it would be just to add the env var check when the compiling switch is defined
20:53 azawawi jnthn: so shall i RT it then as a rakudo/parrot bug?
20:53 ruoso so we can disable it entirely if we want
20:53 pmurias yes that's sensibl
20:53 pmurias e
20:55 azawawi ruoso: what's the status on mildew? can i test it now or not? :)
20:56 ruoso azawawi, you can... on the re-mildew directory... using re-mold
20:56 ruoso re-smop
20:56 * azawawi tests it
21:01 dduncan left #perl6
21:05 daemon joined #perl6
21:19 * ruoso just got the news that a Perl 6 presentation at the International Free Software Forum (FISL) was accepted
21:20 moritz_ cool
21:21 ruoso it's a 5k people event
21:21 moritz_ who gives the talk?
21:22 ruoso me
21:23 moritz_ so what will you tell them? that it's a smop? ;-)
21:24 ruoso heh...
21:24 ruoso it's a more generic talk
21:24 ruoso "Perl 6 - the quest for the holy grial" ;)
21:24 ruoso *grail
21:26 moritz_ make sure that it's recorded, and then point us to the video ;-)
21:26 ruoso it will be... every talk is in FISL
21:26 ruoso but it will be in portuguese
21:26 donaldh joined #perl6
21:27 * ruoso decommute &
21:27 moritz_ :)
21:28 tulcod joined #perl6
21:33 TimToady U    t/spec/S32-num/log.t
21:33 TimToady U    t/spec/S32-num/sqrt.t
21:33 ZuLuuuuuu joined #perl6
21:34 TimToady whoops
21:39 r0bby joined #perl6
21:49 payload joined #perl6
21:50 sjohnson joined #perl6
21:58 mizioumt joined #perl6
21:59 jnthn s1n: I'm quite tired and in need of sleep so not really got the energy to look at any more Rakudo bits tonight, I'm afraid.
22:00 dalek rakudo: 2376c44 | jnthn++ | src/pmc/p6opaque.pmc:
22:00 dalek rakudo: Fix build on C++. Patch courtesy of NotFound++.
22:00 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/2376c44a48f210f30d6a1fa26e09dc8aee1ecb63
22:00 sjohnson jnthn: how do you feel about the Perl 6 progress overall?
22:03 jnthn sjohnson: Pretty good. We're maintaining a decent pace of development.
22:03 jnthn And the community around Perl 6 seems to be growing.
22:03 jnthn Both of which are good things.
22:03 jnthn The recent Rakudo releases have all gained nicely on the test suite, and brought significant new features.
22:04 sjohnson i have found rakudo the best one so far
22:04 jnthn It has at the moment the best mix of active development and features.
22:04 jnthn IMO.
22:06 sjohnson neato
22:07 sjohnson i'm excited for Perl 6 to replace Perl 5
22:07 jnthn Perl 6 is both the more interesting, and the most challenging, project I'm involved with.
22:09 skids when the goals are to get it right on principle, rather then just good enough for the task at hand,  the challenge level definitely goes up sharply
22:10 sjohnson jnthn: could you say you are excited at the same time?
22:10 jnthn sjohnson: Oh, for sure.
22:10 sjohnson im so glad i found this channel as Perl 5 was lacking enough to make me consider abandoning Perl and scripting in Ruby
22:10 sjohnson but then by fluke I found out about this channel
22:10 sjohnson and am patiently waiting for Perl 6 to arrive in a release-form
22:12 sjohnson as I have some feelings for Perl, if that makes sense
22:12 jnthn Perl 6 is certainly a fascinating language. Both on the surface, but also once you dig deeper too.
22:13 sjohnson i am happy as a lot of basic things you don't need to reply on CPAN anymore
22:13 sjohnson ie, String::Strip;
22:13 sjohnson with p6's trim method
22:21 skids nor any of those grammar definition things like Parse::RecDescent now that I think of it...
22:22 sjohnson what was that stuff used for?
22:22 sjohnson don't recall ever having to use that stuff
22:23 skids the most common use was probably for creating parsers for application config file syntax.
22:23 sjohnson i've be doing it all by hand
22:23 sjohnson maybe there was an easier way
22:24 alester joined #perl6
22:26 japhb joined #perl6
22:29 kate21de joined #perl6
22:31 kst joined #perl6
22:34 sjohnson skids: do you have a job where you use perl often?
22:34 skids only for scripts.  I don't have a coding job.
22:39 sjohnson what kind of scripts?  personal stuff?
22:39 skids no work stuff.
22:40 sjohnson o
22:41 skids http://abrij.org/~bri/hw/splitp for example
23:07 JDlugosz TimToady ^^^^  please see my short email on the language mailing list.  I really want to get my concepts straight, and everybody seems to have different ideas.
23:13 jnthn JDlugosz: fwiw, I'm with ruoso on:
23:13 jnthn %a<b> := 1;
23:13 jnthn is an operation in the hash itself, not in that specific cell of the
23:13 jnthn hash.
23:13 JDlugosz You mean the <b> is ignored?
23:13 jnthn No, just in so far as you have to actually know both the hash and which storage cell in the bash to do the binding.
23:14 JDlugosz And the Int doesn't do Associative.
23:14 jnthn Sure, but you're binding to a single storage location in the hash.
23:14 JDlugosz what binding?
23:14 jnthn Huh?
23:14 JDlugosz Binding applies to "names", e.g. things in the symbol table.
23:14 jnthn The one I wrote abobe.
23:14 jnthn *above
23:15 JDlugosz I mean "what does binding have to do with that?"
23:15 jnthn I don't see the issue.
23:15 skids any := is a binding
23:15 jnthn I know.
23:15 JDlugosz Symbol table names are "bound".
23:15 jnthn JDlugosz: Contrast the meaning with assignment.
23:16 JDlugosz The cell in the hash is not a container.
23:16 jnthn my %a; my $x = 42; %a<b> = $x; $x = 43; say %a<b>; # 42
23:16 jnthn my %a; my $x = 42; %a<b> := $x; $x = 43; say %a<b>; # 43
23:16 jnthn Oh. That's where you're going wrong.
23:16 sri_kraih joined #perl6
23:16 jnthn The cell in the has *is* a container.
23:17 jnthn Same as the cell in $x[42] for example.
23:17 jnthn (But if you were assuming not, then your confusion all makes sense to me now.)
23:17 skids .oO(it's at the very least an autobox)
23:18 JDlugosz Er... the other containers (Array and Hash) are made up of a bunch of Item containers, rather than being something on the same level as one?  My understanding is that an Item Container is like an array with one element.
23:18 JDlugosz It has one "slot" inside it, that may be changed via assignment.
23:18 JDlugosz The hash has lots of slots.  They are inherent in the hash, not separable.
23:19 jnthn OK, but in %a<x> := $x; you are talking about one of those slots.
23:19 JDlugosz But that slot can't become a different kind of container.  It is a small part of a container having many slots.
23:19 japhb joined #perl6
23:20 jnthn I'm not quite sure I follow.
23:20 jnthn %a<x> = [1,2,3] works and is example enough that the slot can hold another container.
23:21 ruoso joined #perl6
23:21 JDlugosz let me look at your example when not on one line:
23:21 JDlugosz my %a;
23:21 JDlugosz my $x = 42;
23:21 JDlugosz %a<b> = $x;    # or := in the other example
23:21 JDlugosz $x = 43;
23:21 JDlugosz say %a<b>;
23:21 JDlugosz Ah, so you are using := there to mean %a<b> = \($x);
23:21 jnthn I hadn't ever seen it like that...
23:21 JDlugosz I agree with "a slot can hold another container".
23:22 ruoso hah... you're here
23:22 ruoso pugs: my %a; %a<b> := 1; %a<b> = 2; say %a.perl;
23:22 p6eval pugs: OUTPUT«*** Can't modify constant item: VInt 1␤    at /tmp/j9Tp5bvvRN line 1, column 20-29␤»
23:22 ruoso rakudo: my %a; %a<b> := 1; %a<b> = 2; say %a.perl;
23:22 p6eval rakudo 2376c4: OUTPUT«rtype not set␤in Main (src/gen_setting.pm:3166)␤»
23:22 JDlugosz Ah.... so IF a slot in anything holds another container, assinment normally drops through and it's invisiable.  But := will let you replace that at a higher level.
23:22 JDlugosz OK.
23:23 JDlugosz That's not described in the Synopses, but I understand it.
23:23 jnthn I just see %a<b> := $x as meaning "take the address of $x and stick it in the slot %a<b> so $x and %a<b> both refer to the same thing"
23:23 jnthn At a memory level.
23:23 jnthn The only hard bit is that %a<b> in "binding context" needs to hand back some kind of proxy that knows both the container and the slot.
23:23 JDlugosz jnthn I see how that would work.  Again, not described in S02, S03, or S06.
23:23 jnthn erm, the index
23:24 JDlugosz Clearly the syn are not the "whole story" by a long shot.
23:24 skids .o0(which is sure going to be fun to implement on a packed typed array)
23:24 ruoso jnthn, in SMOP, that is implemented with a "bvalue"
23:24 jnthn ruoso: How do you determine when to hand back the bvalue? Or do you do so always from postcircumfix:<{ }>?
23:25 ruoso jnthn, it always return a bvalue for now...
23:25 jnthn In Rakudo we've discussed a :bvalue adverb.
23:25 JDlugosz Diagrams would really help.
23:25 JDlugosz What is a bvalue?
23:25 jnthn Since it's a) not the common case and b) more expensive for us to make one when we don't need one.
23:25 ruoso jnthn, basically I see removing the bvalue being an optimization
23:25 skids ruoso: JFYI the non-implementation TODO RT for that feature under rakudo is #61412
23:26 nsh_ joined #perl6
23:26 jnthn ruoso: IIRC there was discussion that you could always syntacticly know when you'd need a bvalue and thus it'll be an easy optimization.
23:27 jnthn ruoso: OTOH it may not be an important one for you because of differences in smop's architecture etc.
23:27 ruoso jnthn, probably... I just didn't try doing any optimizatino yet
23:27 jnthn ruoso: We either, we just went for implementing the common case first, which was assignment. ;-)
23:27 ruoso JDlugosz, a bvalue is a proxy object that points to the origin of that value
23:27 jnthn Nicely put.
23:28 ruoso JDlugosz, %a<b> returns a bvalue that says "I'm from %a, trying to access key "b"
23:28 ruoso and in SMOP, it doesn't even do any lookup at that point
23:28 ruoso it's "lazy lookup"
23:29 ruoso then later, if you try to use it in any context, it should delegate that to the actual value
23:29 ruoso but if you try to bind something to it
23:29 ruoso it can go back to the original value and replace the container
23:29 JDlugosz ❝I just see %a<b> := $x as meaning "take the address of $x and stick it in the slot %a<b> so $x and %a<b> both refer to the same thing"❞
23:29 JDlugosz I can understand that as being a synonym for %x<b> = \($x); , but that might give a different morphology from simply putting the item container that $x is bound to in the hash's slot.  The normal fall-through semantics take over so the existance of an item container there (or a capture there) is invisible for the most part.  But you get the aliasing.
23:30 ruoso JDlugosz, it is not a synonym... because %x<b> = \($x) is making an assignment to an item
23:30 JDlugosz bvalue is a proxy for a lazy lookup (but below the level of Perl 6 language semantics).  OK.
23:30 ruoso which causes it to be used in item context
23:30 ruoso therefore making the capture useless
23:30 JDlugosz something like that is implied for autovivication (or not) depending on use.
23:30 jnthn Aye, bvalue doesn't (and likely shouldn't) appear in the spec.
23:30 kate21de1 joined #perl6
23:30 jnthn AFAICT.
23:31 ruoso although for someone implementing a Hash that can be target to binding
23:31 ruoso it needs to be
23:31 jnthn Oh, hmm
23:31 JDlugosz ruoso:  right, the item (one slot in the hash) is given the Capture.
23:31 jnthn That's a good point.
23:31 JDlugosz you can't do anything with the slot other than store something in it.
23:31 ruoso probably in S32
23:32 ruoso jnthn, but I'm not sure it's really something that needs to be spe
23:32 ruoso *spec
23:32 ruoso because it's the natural way of implementing such thing in Perl 6
23:32 JDlugosz Oh, using the explicit \ prevents the one-item capture from popping open again in item context.
23:32 jnthn ruoso: aye, we already have a category of "things that you'll just have to deal with as per-implementation"
23:33 ruoso jnthn, hmmm...
23:33 kst joined #perl6
23:33 JDlugosz "bvalue should not appear in the spec"  I quit agree.  But the promises made or not made about order of evaluation, side effects, and optimization need to be carfully considered so "something like bvalues" will be a valid choice.  Without naming it explicitly, that is.
23:33 ruoso jnthn, if you implement an object that behaves like the bvalue, every implementation should act accordingly
23:33 skids maybe a separate Synopsis for heisen-thingies is in order, could take the junction detail out of crowded S02
23:34 ruoso jnthn, there's nothing special in the bvalue
23:34 ruoso except that we might optimize it away in a lot of places
23:34 ruoso but that will require an object that knows how to behave in the "optimized scenario"
23:34 wayland76 skids: I think there's some junction stuff in S32
23:34 wayland76 And I agree they belong there
23:35 wayland76 Oh, wait, maybe it's in the S29 stuff that I didn't move to S32
23:35 ruoso I mean... I don't see anything that stops you from writing a Associative object that implements the bvalue concept
23:35 jnthn ruoso: Sure, me either.
23:35 ruoso independent of the runtime
23:35 jnthn ruoso: It's just that the non-bvalue case falls out very easily.
23:35 jnthn (no proxy required)
23:35 ruoso the issue here is how should BIND behave
23:35 jnthn Like any other nameserver.
23:35 jnthn oh, wait...
23:35 ruoso and maybe *that* should be spec
23:36 wayland76 I don't want bind to behave like ldapdns :)
23:37 JDlugosz It just inlines.  In the case where it always takes one path (simple item fetch), the rest of it goes away.
23:37 ruoso jnthn, we might even have a "Bindable" role
23:38 ruoso which implements BIND
23:38 ruoso then if you want your hash to be bindable, you just return a Bindable object at postcircumfix:<{ }>
23:39 * ruoso bbl
23:39 jnthn ruoso: That would work.
23:39 JDlugosz In C++, I've implemented a complex nested data structure using operator[] that returns a delayed action proxy that may be assigned to or converted to the value.  It has to handle chaining subscripts to get to the final use, and then assignment creates all the levels from the beginning.
23:39 sjohnson Q about p6:  Since most systems by default have Perl 5, can anyone predict which default "Perl 6" they'll have in the future?
23:40 JDlugosz Depends on whoever integrates it with the Debian distro.
23:41 wayland76 I'd say the answer is "no".  I'd presume Debian/Redhat would handle it via something like /etc/alternatives
23:41 ruoso JDlugosz, that's precisely how the bvalue works
23:42 ruoso and how Perl 6 autovivification of arrays and hashes work
23:42 ruoso TimToady, what do you think about a Bindable role? (look above)
23:43 JDlugosz In Perl 6, with the operators for [] and {} something you can grab and examine, the idea that it returns a binding is possibly more explicit, not only hidden behind the scenes.
23:43 ruoso it's a gray area
23:43 JDlugosz And someone might want to make his own collections with the standard behavior, so why not let him reuse that class?
23:43 ruoso not really explicit...
23:43 ruoso but not magical
23:43 JDlugosz Also, lvalue returns.
23:44 ruoso JDlugosz, surprisingly... lvalue is easy in Perl 6 today
23:44 JDlugosz The synopses added an example of a "proxy" class example that delays read/write use.  Something like that should certainly be in the standard library.
23:44 ruoso non-lvalue is an issue yet
23:44 ruoso because of the way capture works
23:46 ruoso actually... as it currently stands... all returns have an implicit "is ref"
23:46 ruoso we still don't know how to coerce a capture to the expected semantics of the routine
23:47 ruoso (maybe using a proxy object that limits the access to the original capture)
23:48 * ruoso hides
23:48 sjohnson anyone know a CPAN / std lib way to shuffle an array in Perl 5?
23:50 ruoso sjohnson, List::Util
23:50 * ruoso bbl
23:53 ElectricHeavyLan joined #perl6
23:54 sjohnson ruoso: ty
23:55 pugs_svn r26937 | jdlugosz++ | [s04] put in C<...> tags, fix some <...> that have the C missing, typos, true=>True, etc.  Improve one turn-of-the-phrase as discussed with Larry in July.
23:59 * jnthn -> sleep

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

Perl 6 | Reference Documentation | Rakudo