Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2009-08-17

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:09 Whiteknight joined #perl6
00:41 dduncan joined #perl6
00:45 dduncan so, I just git-pulled the latest Rakudo and "perl Configure.pl --gen-parrot" fails with "Unable to locate parrot_config"
00:45 dduncan this didn't happen with the rakudo-2009-07 on CPAN
00:46 dduncan is this an error or do I have to do something different with the Rakudo from source control versus from the distro?
00:46 dduncan I didn't get the impression I had to do anything different
00:47 dduncan the Rakudo from git has as its latest change: bump build/PARROT_REVISION to r40598
00:47 dduncan the problem might be in Parrot
00:51 mikehh dduncan: did you do a make realclean?
00:51 dduncan when I say "git-pull", what I mean is "fresh clone into an empty directory"
00:52 dduncan it wasn't pulled over the 2009-07
00:52 dduncan just what Rakudo's README says to do
00:54 dduncan mikehh, so no make realclean
00:54 mikehh ok - I know there have been changes in the configuration and parrot had problems prior to 40598 - I just built with parrot r50603 but I used a different configuration procedure
00:57 mikehh I build using an installed parrot rather than parrot in rakudo
00:58 dduncan I'll try just building the Parrot that Rakudo downloaded directly and see if that part works
00:58 mikehh sorry parrot r40603
01:00 mikehh I actually build parrot separately then sudo make install-dev for parrot then in the rakudo directory
01:00 dduncan well I see one potential problem
01:01 dduncan my working path has spaces in it, and the makefile may not be smart enough to deal with that
01:01 dduncan at least 'make realclean' in the parrot dir has an error suggesting it wasn't space savvy
01:02 mikehh i do make realclean, git pull, perl Configure.pl --parrot-config=/usr/local/bin/parrot_config, make, make test, make spectest
01:02 dduncan okay
01:04 mikehh AFAIK if you use --gen-parrot it installs and builds parrot in a rakudo sub directory
01:05 dduncan I know
01:06 dduncan so I just cleaned that parrot subdir of the rakudo dir and will try building Parrot directly as if it were a normal Parrot checkout ... which it is
01:07 dduncan if that fails, I'll svn-up and try again
01:07 mikehh I think that should work
01:08 dduncan since Parrot's just in feature freeze now, so sayeth #parrot status, probably nothing should break Rakudo
01:08 dduncan so the "last known good" number is less important
01:08 mikehh :-}
01:10 mikehh well I built and tested on parrot r40603 and r40604 is just in a branch
01:11 mikehh but that was on Ubuntu 9.04 amd64 so I don't know if that will apply to you
01:17 dduncan I'm using Mac OS X 10.5.7 currently
01:18 alester joined #perl6
01:25 dduncan mikehh, so I have confirmed that at least at r40598, Parrot's Makefile generator is broken, and doesn't escape spaces in the path
01:30 dduncan I am reporting to the Parrot group, will file an RT there if one doesn't exist
01:30 dduncan er, trac
02:10 takadonet1 joined #perl6
02:10 takadonet1 hmmm
02:12 takadonet1 left #perl6
02:24 sri_kraih_ joined #perl6
02:51 frew joined #perl6
02:56 tak11 joined #perl6
03:20 sri_kraih joined #perl6
03:25 carlin joined #perl6
03:45 dduncan fyi, on #parrot - dalek: TT #930 created by duncand++: build fails when sandbox path contains whitespace
03:45 dduncan which is probably the cause of the issue I mentioned here
03:46 dduncan I'll note that when I tried the older Rakudo 2009-07, it was in a different dir without whitespace
04:03 zloyrusskiy joined #perl6
04:22 frew joined #perl6
04:39 s1n hmm, what's triggering this: http://pastebin.com/d29fdd7c7
04:50 s1n i'm going to try wiping out my clone and try again, i suspect there is something wrong with it
04:56 alester joined #perl6
05:02 s1n nope, still a problem
05:03 s1n can't tell from the error message what went wrong
05:03 s1n huh
05:04 s1n if i do a "../rakudo/perl6 -e 'use v6'" i get the same error
05:04 abra joined #perl6
05:05 s1n i suspect this is a parrot bug? if i switch out of the rakudo dir to execute perl6, it barfs
05:06 lee_ joined #perl6
05:06 lee_ joined #perl6
05:07 zetta joined #perl6
05:17 dduncan left #perl6
05:41 orafu joined #perl6
05:42 carlin s1n: I'm getting that too. I have a perl6 symlink in /usr/bin which was working until I pulled the latest version from git last night
06:03 jrtayloriv joined #perl6
06:08 jrtayloriv joined #perl6
06:25 rfordinal joined #perl6
06:27 szabgab joined #perl6
06:28 moritz_ s1n: if you install rakudo, does it work from other dirs?
06:28 moritz_ or you, carlin?
06:31 xinming joined #perl6
06:36 xinming joined #perl6
06:36 zloyrusskiy joined #perl6
06:37 kyle_l5l joined #perl6
06:46 carlin Testing it now, I just ran make again and it seems to be working fine
07:00 japhb joined #perl6
07:03 rfordinal joined #perl6
07:12 carlin moritz_: built it with make, ./perl6 in the rakudo directory works, outside the directory it gives a Null PMC access
07:12 moritz_ carlin: but did you 'make install'?
07:12 carlin after using 'make install' it runs from any directory
07:13 moritz_ ok
07:13 moritz_ that's my experience too
07:13 carlin so, expected behaviour?
07:13 moritz_ don't know if it's expected or not
07:13 moritz_ we'll have to ask pmichaud++
07:31 baest joined #perl6
08:01 moritz_ ELISHEVA mentioned on perlmonks that there is no mention of the Rakudo * release announcment on novemeber-wiki.org - maybe somebody[tm] should change that
08:05 Matt-W Good morning
08:05 moritz_ oh hai Matt-W
08:08 Matt-W Guten Tag, moritz_.
08:16 Matt-W If Twitter is anything to go by, masak seems to like the new S26
08:16 Matt-W Have you read it yet moritz?
08:16 moritz_ Matt-W: no, I started, but didn't finish yet
08:17 moritz_ I noticed one oddity
08:17 moritz_ POD defines an identifier differently from the rest of Perl 6
08:17 moritz_ that sucks.
08:17 moritz_ apart from that, all seems (more or less :-) sane
08:18 Matt-W Hmm I didn't notice that
08:18 Matt-W That could be a problem
08:18 Matt-W It would be nice if they could be the same
08:18 * Matt-W notices he's acquired a snail again
08:19 moritz_ I do plan to reply to p6l with my findings once I made my way through it
08:19 Matt-W yay
08:20 Matt-W I haven't had time to think on it deeply enough to make a decent comment to the list
08:20 Matt-W And I doubt I'll manage that this week, I'm busy all the time :(
08:20 Matt-W Aikido today, singing lesson tomorrow, gaming on wednesday, aikido on thursday and a wedding on friday!
08:21 Matt-W So I'll just have to hope someone says what I would have said
08:21 Matt-W Which is currently limited to some mumbling about #= and rules
08:33 tak11 joined #perl6
08:37 payload left #perl6
08:42 jrtayloriv joined #perl6
08:44 dakkar joined #perl6
08:44 masak joined #perl6
08:45 mberends good morning masak
08:45 masak good late morning, mberends
08:46 masak mberends: so, new S26, eh? :)
08:46 mberends exciting!
08:47 masak I haven't read the new synopsis yet, but I liked the executive summary.
08:48 moritz_ masak: o/
08:48 moritz_ masak: I noticed that the only SVG specific part of SVG.pm is the name and the documentation
08:48 moritz_ masak: it seems to be general XML serialization module
08:48 masak moritz_: it is.
08:48 masak I never got to the specific parts. :)
08:49 masak still have some plans, though.
08:49 moritz_ but you planned to do it?
08:49 masak aye.
08:49 moritz_ I might contribute some patches...
08:49 moritz_ I have two specifics in mind
08:49 masak great.
08:49 moritz_ the first is to add a xmlns attribute to the svg root element, automagically
08:50 masak for my own plans, I'm blocking on understanding DTDs in general, and SVG's in particular.
08:50 moritz_ without it firefox won't render it as svg
08:50 masak moritz_: sounds good.
08:50 moritz_ it just shows the dom tree
08:50 moritz_ the second is, the SVG spec recommends that line lenghts should not exceed 255 characters
08:50 masak ah.
08:50 moritz_ so I'd put in a few newlines here and there
08:51 masak good.
08:51 masak sounds more realistic than indenting properly.
08:51 moritz_ context variables would make indenting really easy
08:52 masak well, not with a maximum line length.
08:52 moritz_ heh
08:52 moritz_ even then one could still limit the indention to a fixed maximum
08:53 masak by the way, why aren't people as spooked by context variables as they are by global variables?
08:53 moritz_ and call all else "bad style"
08:53 moritz_ because they are not global
08:53 masak they seem pretty global to me.
08:53 moritz_ they are basically "globals done right"
08:53 moritz_ the behave naturally in case of threads
08:54 moritz_ can't be clobbered by destructors (because the are passed along the call chain)
08:55 masak well, carry on then. :)
08:55 moritz_ and when declared in a sub they don't mess with reentrance
08:55 moritz_ because they are cleaned up after exit
08:55 moritz_ (assuming that I did understand them correctly, which I don't take for granted :/ )
09:04 * masak will now mark up his Druid class with the new, improved S26 markup
09:04 masak s/class/classes/
09:04 moritz_ S26 is a monster. I like it.
09:04 masak yah, ich auch.
09:05 mberends Where is the new S26? Perlcabal and Pugs appear to be old.
09:05 masak mberends: it's not yet committed.
09:05 moritz_ I'm currently at 38%, and so far I only have two small nicts
09:06 moritz_ mberends: it lives as an attachment on p6l
09:06 masak however, it's attached to a p6l post by TheDamian.
09:06 mberends aha, thanx
09:07 moritz_ masak: regarding SVG/XML, I think it would be worthwile to preserve the current pure XML thing in a module of its own, and bolt on the SVG specifics in SVG.pm or XML::SVG or os
09:07 moritz_ s/ «os$ /so/
09:08 masak moritz_: aye.
09:08 masak that has been in the back of my mind, too.
09:09 moritz_ though 'XML' might be too general a name - maybe XML::Writer?
09:09 masak yes.
09:09 masak another SVG-specific tweak that I'd like would be to special-case 'style' attributes, so that their values can be either strings or lists of pairs.
09:10 moritz_ that would be nice
09:11 moritz_ (though excessive use of 'style' attributes might be a sign of under-using CSS - at least in some cases)
09:12 masak I must confess to never having used CSS with my SVG.
09:12 * moritz_ laughs while reading 1) Retreat to remote Himalayan monastery n 2) Learn the hidden mysteries of space and time n ??? n 3) Prophet!
09:12 masak that was in the previous generation of S26 too. :)
09:13 moritz_ masak: I only used it in my hand written CSS so far, not in generated SVG
09:14 moritz_ masak: but for SVG::Plot it seems sensible to just emit certain things (like axis, ticks etc.) with names and/or id's and let the user style it if he wants something more fancy
09:15 masak moritz_: I feel I've missed something big here. SVG::Plot?
09:15 * masak needs to backlog
09:15 moritz_ masak: the thing that I wanted to blog about yesterday, but couldn't, because my SVN server is broken...
09:15 masak ah.
09:15 masak have you blogged about it since then?
09:15 moritz_ no, it's still borked :(
09:16 masak :/
09:18 moritz_ http://moritz.faui2k3.org/tmp/svg-adventure.html exclusive preview with only slightly broken markup
09:25 eiro joined #perl6
09:26 eiro joined #perl6
09:26 carlin a5dfe96 works, 006ae4d throws a Null PMC if you try to run perl6 outside the rakudo directory
09:27 carlin so the ins2 merge caused it
09:27 moritz_ that's not surprising at all
09:28 eiro joined #perl6
09:29 masak moritz_++ # amazing post
09:31 masak as for a general graphing module, I still would like to see someone (psst! lurkers!) go on a quest with writing a Perl 6 port of http://scruffy.rubyforge.org/
09:40 jrtayloriv joined #perl6
09:41 jnthn Morning, folks
09:42 masak lolitsjonathan
09:44 frettled masak: okay, enough sugar for you today.
09:44 eiro joined #perl6
09:44 frettled good … *checks time* noonishtime.
09:45 tak11 left #perl6
09:47 masak frettled: my sugar intake so far today is limited to one banana. I think I'm just naturally perky. :)
09:47 frettled masak: that is entirely possible :D
09:47 jrtayloriv left #perl6
09:51 jnthn carlin: I think you need to make install now to run Rakudo outside of its build directory.
09:51 jnthn We likely want a better error message when this is not done.
09:51 masak hm, https://sites.google.com/site/perl6hackaton/para-la-proxima/ejemplos
09:51 masak we should contact these guys and tell them it's "get" nowadays.
09:53 * masak tweets them
09:54 jnthn https://sites.google.com/site/perl6hackaton/instalacion-de-perl-6/rakudo-desde-el-codigo maybe wants also an update noting make install.
09:55 masak aye. but they seem to be running ./perl6
09:55 masak so that's not as urgent.
09:55 masak besides, they link to the updated instructions.
09:56 jnthn Ah, yes, true.
09:56 mikehh_ joined #perl6
10:02 masak what should I do if I want to load a module lazily, on the first mention of its module name in code?
10:07 jnthn I'm not sure how you'd do that too easily in Perl 6, given that type names the module exports will affect the parse...
10:08 jnthn And there's no way of knowing that without some amount of loading of the module.
10:09 masak ok.
10:10 masak I have a use case, but maybe there's a better solution than lazy loading of modules.
10:10 masak in Rack, Rack::Handler is a sort of supervisor module for all the different Handlers, one for each type of webserver.
10:10 masak generally, you'll be using only one in an application.
10:10 frederico joined #perl6
10:11 masak but Rack::Handler loads each of the known modules lazily, so once one is mentioned, it's loaded.
10:12 jnthn Ah, and Rack::Handler determines which one you actually want?
10:12 jnthn Note that require still exists.
10:13 masak jnthn: well, Ruby has an 'autoload' kernel method for exactly this.
10:13 * masak reads up on 'require'
10:16 jnthn masak: Also consider combination of eval + use
10:16 masak hm, seems to me 'require' wouldn't help reduce the number of loaded modules in my case.
10:16 masak jnthn: yes, I'm considering that. but I haven't thought of a solution that works as well as 'autoload' does yet.
10:16 jnthn Where what you eval uses the module and evaluates to, say, the proto-object of the thingy your're interested in.
10:17 masak I thought about overriding postfix:<::> for Web::Handler.
10:18 masak don't know whether that works yet.
10:19 masak hm, or would that be infix:<::> ?
10:19 masak hm, :: probably isn't an operator at all, now that I think about it.
10:24 jnthn No, not an operator.
10:24 jnthn NetCraft^W STD confirms it.
10:25 jnthn see e.g. token morename
10:30 masak right.
10:30 * moritz_ read that as mo-rename and was confused
10:30 * jnthn works on wrapping up his Hague Grant.
10:31 moritz_ masak: scruffy looks nice.
10:32 masak moritz_: yes, and I think it'd be a fun project for some motivated soul.
10:33 * moritz_ should learn ruby at some point
10:34 Matt-W hmm
10:35 Matt-W does the code which is getting the handler for a specific web server need to know it's a handler for a specific web server? can it just be given something typed as a role or a base class and rely on polymorphism?
10:35 masak Matt-W: interesting suggestion.
10:36 Matt-W well it's just what you do in C++ really :)
10:36 Matt-W just, you know, easier
10:36 masak :)
10:36 masak Matt-W: I think what you just suggested might work. thank you.
10:36 Matt-W and you wouldn't have to load any modules for any web servers you weren't using if the global thingy knew how to decide which one was correct
10:37 Matt-W and if you really really wanted to you could pass the class back
10:37 Matt-W but that's probably not going to get you anything
10:37 Matt-W I assume you can downcast to the more specific type if you ever do know what it actually is and need to access specific functionality (if you can't, our OO has a huge hole in it)
10:38 masak Matt-W: actually, the Rack::Handler name space doesn't seem to be an inheritance hierarchy.
10:38 masak but that doesn't mean I can't make the Web::Handler name space into one.
10:39 Matt-W Indeed
10:39 Matt-W Or they could just all do an appropriate role
10:40 Matt-W just as long as you've got some way to provide the common interface
10:40 masak aye.
10:40 Matt-W never quite sure which is best yet
10:40 Matt-W it's a role in the sense that it does webserverhandlerthings
10:41 Matt-W but it's a subclass in the sense that you can (and are) substituting a child for a parent and the calling code doesn't know or care
10:41 masak right.
10:41 * Matt-W goes back to thinking about how to persuade work to switch to git
10:41 jnthn I guess another question is, could the behavior sanely be composed elsewhere?
10:41 Matt-W jnthn: how are you supposed to answer that in advance??
10:42 Matt-W someone's bound to want to do it later
10:42 jnthn In that case, roles make composing behavior much easier. :-)
10:43 Matt-W yes
10:44 Matt-W but maybe you want more of an inherity structure
10:44 Matt-W I think we'll be debating roles vs inheritance for years
10:44 masak and for good reasons.
10:44 Matt-W but then vast bits of OOP are still debated
10:44 Matt-W so this is not at all surprising, and generally very healthy
10:44 Matt-W I usually go with 'don't do it like Java' so roles :)
10:45 moritz_ scruffy is only 2557 lines of code
10:45 Matt-W although there's also the matter of parent's data members...
10:45 Matt-W roles are a much looser coupling
10:45 Matt-W and code reuse sort of flows in different directions
10:46 jnthn Matt-W: Remember that a role can be punned and inherited from too.
10:46 Matt-W yes
10:46 Matt-W it's almost too many options
10:46 masak moritz_: are you thinking about doing it? for a while, I almost had missingthepoint embark upon the project.
10:46 Matt-W but I'm sure I'd miss them later if they weren't there
10:47 moritz_ masak: not convinced yet
10:47 moritz_ I also thought about putting  missingthepoint  on it :-)
10:47 masak yes, let's. :)
10:57 jnthn Ouch
10:57 jnthn Latest Rakudo along with its recommended Parrot seems to segfault during the build. :-/
10:57 Matt-W !
10:57 moritz_ jnthn: ouch.
10:58 moritz_ jnthn: do the dynops install correctly under windows?
10:58 * jnthn realcleans everything and removes his Parrot build and install  directories, and tries again...
10:58 jnthn moritz_: Good question.
10:58 pmurias joined #perl6
11:02 jnthn moritz_: The new rand is in math_ops, right?
11:02 jnthn It includes the .dll, so looks right.
11:04 jnthn moritz_: Ah, it is crashing when loading that though.
11:08 jnthn Oddly, it's actually loading the library fine.
11:09 jnthn In terms of actually finding it.
11:09 jnthn It's somewhere inside the library's init that it fails.
11:31 carlin_ joined #perl6
11:31 ZuLuuuuuu joined #perl6
11:41 szabgab joined #perl6
11:47 zamolxes joined #perl6
11:55 meppl joined #perl6
12:08 KyleHa joined #perl6
12:10 carlin__ joined #perl6
12:10 masak it's too quiet here. let's dig up some bugs.
12:10 masak rakudo: sub foo($required, :$optional) {}; foo
12:10 p6eval rakudo 0d4fe0: OUTPUT«too few arguments passed (0) - 4 params expected␤in sub foo (/tmp/XS7w5NHznE:1)␤called from Main (/tmp/XS7w5NHznE:2)␤»
12:10 masak note the '4'.
12:11 masak I'd have accepted 'between 1 and 2 params expected'.
12:11 KyleHa Good morning #perl6
12:11 masak or possibly '1..2 params expected'.
12:11 jnthn masak: Already ticketed.
12:11 masak KyleHa: morning!
12:11 masak jnthn: oh, good.
12:12 jnthn It's because Parrot mis-counts...
12:12 jnthn For example, a named param makes two entries in Parrot's signature object.
12:12 masak yes, I understand.
12:12 masak still wrong.
12:12 jnthn Yes, I know.
12:12 jnthn But the fix hinges on whether Parrot Calling improves or whether I abandon in and we go our own way.
12:13 masak right.
12:13 masak next one:
12:13 masak rakudo: IO.WHAT.say
12:13 p6eval rakudo 0d4fe0:  ( no output )
12:14 masak I'd expect this to print "IO()" or something.
12:15 * masak submits rakudobug
12:15 masak next one:
12:15 masak rakudo: say %(<a b c>.kv)["a"]
12:15 p6eval rakudo 0d4fe0: OUTPUT«Method 'postcircumfix:[ ]' not found for invocant of class ''␤»
12:15 masak o_O
12:15 * masak submits rakudobug
12:16 moritz_ it seems that %(...) is generally a bit dysfunctional
12:17 KyleHa rakudo: IO.WHAT.perl.say
12:17 p6eval rakudo 0d4fe0: OUTPUT«IO␤»
12:18 synth joined #perl6
12:18 jnthn masak: Hmm? Is that trying to index positionally into a hash?
12:19 moritz_ yes
12:19 jnthn Well that ain't going to work.
12:19 moritz_ but shouldn't it be ... of class 'Hash'?
12:20 jnthn Yeah, that'd make a better error message.
12:21 carlin_ joined #perl6
12:22 KyleHa I tried to introspect $! the other day, and it bit me.
12:24 jnthn Good news - I've written an (awful) Parrot patch that deals with the segfaults.
12:24 jnthn Appears it did a realloc, and then still used the memory at the old pointer later on.
12:24 Matt-W doh
12:24 jnthn Which is a no-no, since realloc is free to move the whole block.
12:24 Matt-W naughty parrot
12:24 jnthn Indeed.
12:24 Matt-W very very naughty parrot
12:24 Matt-W someone here tried to pull something like that the other week
12:25 masak oh, of course! 'postcircumfix:[ ]' wouldn't work on a Hash, true.
12:25 Matt-W worked fine in dev testing...
12:25 jnthn commenting out the more "optimal" code path makes the problem go away.
12:25 Matt-W jnthn: I was intrigued by a bug report email that came through earlier
12:25 Matt-W you said Callable &x means Callable[Callable], so a routine returning a Callable - would that then extend to if I said Str &x?
12:26 jnthn Matt-W: That means you want a routine that declares itself as returning a Str.
12:26 Matt-W excellent
12:26 KyleHa jnthn++ # pounding pointer problems
12:27 Matt-W It's a nice parallel with Str @a being an array with Strs in it
12:27 jnthn Matt-W: and yes, you can multi-dispatch on these too, and they nest.
12:27 Matt-W yay!!
12:27 Matt-W is there anyway to specify that you want a routine which takes particular parameters?
12:27 jnthn Yes, all of these type things really are "what you can expect to get out of it".
12:28 jnthn In Perl 6? Yes, various. In Rakudo right now, not yet.
12:28 Matt-W Good
12:28 Matt-W as long as we'll be able to do it at some point
12:28 jnthn I think you can specify a signature that you'd like the code to match, but that works at the level of a constraint I think, rather than a type param.
12:28 Matt-W I anticipate using a fair amount of higher-order coding with Perl 6, so I'll be needing to say 'I need something which can take two ints and give me back a str'
12:28 moritz_ Matt-W: it's    sub foo(&bar:(Int, Str --> Mumble), $other_args) { ... }
12:28 Matt-W woo
12:29 Matt-W it's even a nice syntax
12:29 jnthn moritz_: Is that in S06?
12:29 moritz_ (I wrote tests for it, but never actively used that, so I might misremember a bit, but it's along these lines)
12:29 moritz_ jnthn: let me look up a reference for you...
12:30 moritz_ S06:1291
12:30 jnthn moritz_: Cool, thanks.
12:30 moritz_ also S03:209
12:31 moritz_ and S02:1714
12:32 Matt-W he only asked about S06...
12:32 Matt-W comprehensive service from moritz_ Inc Synopsis Lookup Service
12:33 moritz_ powered by ack, the best thing since sliced regexes :-)
12:33 moritz_ ack '&\w+:\(' did quite nicely - 6 hits, no false positives
12:34 jnthn That only means the synopses have insufficient unhappy smileys.
12:35 masak jnthn: a bit like civilization not having enough nukes. http://www.informationisbeautiful.net/2009/how-i-learnt-to-stop-worrying-and-love-the-bomb/
12:37 jnthn What is the fallout of a :(?
12:42 Matt-W masak: it's totally flawed, of course
12:42 * moritz_ gently humms "so long mom, I'm off to drop the bomb"
12:42 moritz_ Matt-W: the comments say as much
12:42 Matt-W jnthn: usually, a depressing realisation that you just don't have enough tuits to fix it
12:42 Matt-W moritz_: good. They didn't when I read it, but it was very new then.
12:47 szabgab joined #perl6
12:52 pugs_svn r28011 | jnthn++ | [t/spec] Add new tests for applying traits to roles and classes.
12:56 xomas_ joined #perl6
13:05 frettled Someone suggested (by impliciation) that since PHP has a mapping-like type where keys by default are returned in insert order, Perl 6's hashes should have that too.
13:06 frettled I'm writing down a brief explanation that essentially states that hashes would normally use a hashing algorithm, which is more efficient for updates, deletes etc, little impact on insert, and so on …
13:07 moritz_ the times when I wished such behaviour were very rare
13:07 frettled … but I also thought it'd be cool if I could sort of create a subclass of hash that adds a list type where hash keys are in insert order.
13:07 masak frettled: I thought the same when I saw that comment.
13:07 frettled In other words: «no, hashes won't do this for you, but if you must, here's how»
13:08 frettled masak: great Scandinavians think alike ;)
13:08 moritz_ my %h is OrderedHash;
13:08 masak \o/
13:08 frettled (I think you lost that turd)
13:09 * frettled has no clue who should really have op or not, and goes by vague recollection of who has had op :)
13:09 masak I sometimes have it, but I log out when I go home, so...
13:09 * frettled uses screen, for fun and profit.
13:09 * masak tries to implement OrderedHash in a one-liner, and fails
13:09 * Matt-W finds it a useful aid to laziness
13:10 masak I should probably override postcircumfix:<{ }> with something, and that something will return an lvalue, no?
13:10 masak but then what happens?
13:10 moritz_ masak: then the NYI crew screams
13:11 masak moritz_: nono, "then what happens in idealized Perl 6.0.0?"
13:11 moritz_ frettled: we give ops to those who talk often, talks sense and seem to be nice/credible/whatever
13:11 masak .oO( there goes my op bit... )
13:11 frettled haha
13:11 frettled moritz_: :)
13:11 moritz_ ok, pick two :-)
13:12 masak phew.
13:12 frettled masak talks often and seems whatever.
13:12 masak indeed.
13:12 moritz_ right
13:13 frettled moritz_: the OrderedHash hint helped a bit (in finding Differences.html#Offering_Hash_and_List_semantics), but I have an example-generator-FAIL in my head, I think.
13:14 moritz_ jnthn++ # nice trait tests
13:14 frettled The awesome way of doing it would have been something like this (pseudo code)
13:14 moritz_ frettled: uhm, that assumed that somebody writes a class OrderedHash first :-)
13:14 frettled class OrderedHash is Hash {
13:15 frettled has @.list;
13:15 masak frettled: I'd do 'does Associative'.
13:15 masak not 'is Hash'
13:15 frettled that's why it's pseudo
13:15 moritz_ masak: if it inherts Hash behaviour, why not?
13:15 masak because it's wrong? :)
13:15 moritz_ what's wrong with it?
13:15 frettled method insert (key, val) {
13:15 frettled push(@.list,key.id);
13:16 frettled }
13:16 frettled
13:16 frettled }
13:16 takadonet joined #perl6
13:16 takadonet morning all
13:16 masak frettled: yes, that's as far as I got, too.
13:16 masak frettled: don't forget your sigils.
13:16 masak takadonet: o/
13:16 frettled masak: I skipped them in the interest of pseudo code :D
13:16 * frettled should've skipped them from the start)
13:16 masak :P
13:16 takadonet masak: How are you?
13:16 * moritz_ would rather have a second hash %!order, which stores increasing numbers
13:17 moritz_ so that .keys, .values etc. require O(n log(n)), and inserts/deletes O(1)
13:17 frettled moritz_: like in %!order<$key.id> = $listindex?  ($listindex increases for each new item or whatever)
13:17 masak takadonet: for a Monday, quite all right, thanks.
13:18 masak takadonet: and you?
13:18 moritz_ while if you use a list, deletes require O(n) (because you have to scan the list)
13:18 frettled yup
13:18 moritz_ of course you can use a hash *and* a list
13:18 frettled actually, delets are worse than O(n), because you first have to scan the list to find the element, and then delete, which also adds complexity.
13:18 moritz_ in some clever way
13:18 moritz_ deleting is also O(n)
13:19 moritz_ and O(n) + O(n) = O(n)
13:19 takadonet masak: Got in late for work (does not really matter since it's flex time) and forgot to bring my bioperl6 project to work. Finally got a fasta parser working with action class that returns a Sequence object
13:19 masak ah, complexity analysts.
13:19 masak takadonet: cool!
13:19 frettled moritz_: good point.
13:19 takadonet masak: Had more success this weekend then I ever had before
13:20 xomas_ joined #perl6
13:20 masak nice to hear things are progressing.
13:20 * moritz_ held a tutorial in "theoretical computer science I" (computability, complexity, automatons)
13:20 moritz_ it's just something that doesn't let you go once you know aobut it
13:21 moritz_ at least if you do some programming
13:21 frettled moritz_: but scanning the list could of course be performed as a binary search rather than a linear search, since we know it's sorted.
13:21 frettled (in a way)
13:21 moritz_ frettled: it's sorted by insertion order, not alphabetically
13:21 frettled …unless we delete by a different sorting order.
13:21 jaldhar joined #perl6
13:21 moritz_ right.
13:22 frettled yep, «alphabetically» is one of those.
13:22 Matt-W aaah complexity measurements
13:22 Matt-W always fun
13:22 frettled and it's a wonderful time saver for the program
13:23 Matt-W I remember trying to explain to somebody once that O(1) doesn't necessarily mean it's fast, just that it's very predictable
13:23 frettled sometimes, it's like flipping the incredible «improve performance switch».
13:23 moritz_ many day-to-day programming taks are quite easy to estimate (at least worst case)
13:24 frettled Matt-W: mm.  «constant time» isn't necessarily cool.  A nice example is that the time it takes for light to travel 100 million light years is O(1), but it will still take 100 million years.
13:24 moritz_ but it doesn't feel that long to you :-)
13:25 Lorn joined #perl6
13:25 frettled hee-hee
13:26 moritz_ it feels like O(1/sqrt(1-(v/c)**2)) or so
13:26 Matt-W if you're moving with the light, it doesn't feel like any time at all
13:26 Matt-W the problem is stopping...
13:29 ruoso joined #perl6
13:30 SmokeMachine joined #perl6
13:33 frettled I'd say that accelerating is a problem, too.
13:34 moritz_ right, because you never reach c
13:36 frettled and if you're at c, accelerating is also quite hard.  :D
13:37 unitxt_ joined #perl6
13:37 frettled There, commented on the comment.
13:38 moritz_ masak: to get back to your initial question, implementation types need more specs
13:39 mikehh rakudo (5637208) builds on parrot r40606 - make test/make spectest (up to 28011) PASS - Ubuntu 9.04 amd64 (g++)
13:39 frew joined #perl6
13:39 masak moritz_: please elaborate.
13:39 moritz_ masak: it's clear that %foo<bar> = $baz is realized by lvalue methods, for example...
13:40 moritz_ but for example how do you override %foo = %bar?
13:40 moritz_ by overloading infix:<=>? or is there a .STORE method on the container that = calls?
13:40 mkelly32 ditto on the full spectest pass on exherbo amd64
13:40 moritz_ there was a (mostly warnocked) thread on p6l about that, started by KyleHa++
13:40 mkelly32 not true on fbsd, though
13:42 mkelly32 current fbsd failure: http://test.pioto.org/rakudo/smoke/rakudo-smoke-domusporta-2009-08-17T00:00:00.log
13:42 frettled moritz_: aha, so if I search the p6l archives, I might find a message to respond to :)
13:42 moritz_ frettled: it was this summer
13:43 * masak likes that Wikipedia has an article named "Perl 6 rules"
13:43 frettled \o/
13:43 moritz_ frettled: http://www.nntp.perl.org/group/perl.perl6.language/2009/07/msg32109.html
13:44 frettled aha, the subject didn't grab my attention when searching.
13:44 bpetering masak: heh, wikipedia++ :)
13:45 masak mkelly32: I'm getting similar results here on my Darwin machine.
13:45 masak both the 'Perl 6' and 'Rakudo Perl' articles read very well.
13:46 masak the Hanoi example in the former could use some slight simplification, though.
13:46 masak I'll change it.
13:46 bpetering did you have anything to do with that? ;)
13:46 mkelly32 hrm. well. i ought to formalize my smoking a bit more
13:46 Matt-W last time I checked, the main Perl entry had some very old information about Perl 6
13:46 masak bpetering: no, nothing actually.
13:46 Matt-W I tweaked it a bit, but didn't do a proper job
13:46 mkelly32 to better than just that log file and a cheap cron job.
13:49 moritz_ mkelly32: that would be great. Something like parrot's TapTinder generalized for Rakudo
13:50 bpetering hmm, vmware has perl hooks...
13:50 * bpetering wonders if this dual-core could be put to smoking use...
13:51 mkelly32 moritz_: well, not quite that general -- i was thinking more a simple web page, also listing machine type & version, and a simple PASS/FAIL. basically... cpantesters
13:51 moritz_ mkelly32: well, I think it would be a waste to ignore the existing infrastructure and invent something from scratch
13:51 KyleHa joined #perl6
13:51 moritz_ (but YMMV, of course)
13:52 molaf joined #perl6
13:52 mkelly32 well, that would require me to know more than nothing about databases, for one...
13:52 mkelly32 (well, i know very little)
13:53 KyleHa Databases know a lot about me.
13:54 frettled Yes, but they're not very good at telling.
13:54 moritz_ and you're not evenin sovjet russia :-)
13:55 szabgab joined #perl6
13:58 frettled *nntp-subscribe*
13:59 cognominal I don't understand where Damina has posted the last version of his S26 synopsis :(
13:59 moritz_ cognominal: it's an attachment to his p6l post
14:01 cognominal so, I should choose a forum that shows such attachment :(
14:01 takadonet Has anyone else try to build and run the newest version of rakudo?  I try to run the executable and getting the follow error message: 'Invalid charset number '8' specified'
14:02 Front_slash joined #perl6
14:03 moritz_ takadonet: it works fine here, as long as I only use the installed version when being outside the rakudo build directory
14:03 frettled moritz_: I've read the discussion thread regarding infix:<=> et al, and I can only agree with your statements.
14:04 cognominal I can't believe google groups does not show attachments :(
14:05 takadonet moritz_: Funny that it only works in the installed directory now and no where else.
14:06 moritz_ takadonet: fsvo "funny"
14:06 takadonet moritz_: fsvo?
14:06 masak KyleHa: your question on p6l is... surreal.
14:07 moritz_ "for some value of"
14:07 KyleHa masak: I've been assuming that I've misunderstood something fundamental.
14:07 moritz_ cognominal: http://moritz.faui2k3.org/tmp/S26-documentation.pod
14:08 KyleHa Eventually I figured I better ask.
14:08 moritz_ masak: I found the question quite reasonable
14:08 cognominal moritz_, thx you so much
14:08 masak moritz_: then I probably misunderstood it.
14:08 * masak goes to re-read it
14:09 moritz_ masak: maybe I missed some surrealism about it :-)
14:09 masak I think I'm confused about 'some other machine ... that machine ...'
14:09 masak so there are two machines involved, yes?
14:10 masak and only the second of those two is being used, twice?
14:10 masak (at least from the information in the question)
14:10 braceta joined #perl6
14:10 moritz_ are we talking about the same post?
14:10 masak KyleHa's post a couple of minutes ago.
14:10 masak in the S26 thread.
14:11 KyleHa The way I read the S26 description, the documentation has 'live' code in it.  That is, the reader must execute stuff to do its job.
14:11 masak the question reads "Does this mean I can run code on some other machine when someone on that machine reads my documentation?"
14:11 KyleHa If that's the case, I can put code in my "documentation" that the reader will execute.
14:12 moritz_ then we are not talking about the same question :-)
14:12 moritz_ but I asked myself the same thing
14:12 moritz_ basically you can execute arbitrary code to render the pod
14:12 moritz_ we'll need *very* good sandboxing.
14:12 masak KyleHa: ah! now I understand your question.
14:12 KyleHa So, imagine you want to read the docs for my module, and the "reader" starts sending a truckload of spam...
14:13 masak yes, that's scary.
14:13 KyleHa Right.  I'd rather not have documentation that executes than have to build the perfect sandbox.
14:13 masak agreed.
14:14 masak documentation should be seen and not heard.
14:14 KyleHa Yes, exactly.
14:14 alester joined #perl6
14:16 KyleHa Rakudo release this week needs a name.
14:16 nihiliad joined #perl6
14:19 frettled KyleHa: I appear to have understood your question as intended, yay me.  :D
14:19 frettled KyleHa++
14:19 KyleHa Two out of three ain't bad.
14:20 KyleHa frettled++ # parsing my overbrevity
14:20 frettled Besides, if you want documentation that executes stuff, use MS Word.
14:20 masak "If it worked for MS Word..."
14:21 frettled «…and for PDF…»
14:22 bpetering KyleHa: or underprolixity?
14:22 masak does the new S26 specify what happens if a declarator block finds no declarator to attach to?
14:22 moritz_ I don't think so
14:22 masak I've read the section on declarator blocks, but I didn't find such wording.
14:23 masak also, what if there are two declarators on one line?
14:23 KyleHa bpetering++ # expanding my vocabulary
14:23 KyleHa I just didn't want to waste a lot of words on a question whose answer was probably 'no'.
14:23 frettled BTW, in case people thought I was joking: you can embed Flash and JavaScript in PDF files.
14:24 masak o_O
14:24 frettled We should start lobbying for embedded Perl 6.
14:25 mkelly32 frettled: i know. and think that's the source of at least half of the security bugs in acroread...
14:27 frettled mkelly32: mm, especially considering that Adobe is slower at releasing security patchese for Acrobat and Adobe Reader than for the free Flash player plugin.
14:28 Matt-W yes you can, and it's an abomination
14:28 KyleHa Matt-W: Your reply didn't go to the list.
14:30 Matt-W I realised that just as I pressed send
14:30 Matt-W I'm on a mixture of lists that have reply-to and lists that don't
14:30 Matt-W and remembering which is which drives me nuts
14:30 Matt-W I should check more carefully
14:30 unitxt joined #perl6
14:30 unitxt left #perl6
14:30 frettled With GMail, I just hit «Reply to all» and edit if it's wrong, and similarly with Gnus.
14:31 Matt-W yeah I just keep hitting reply
14:31 Matt-W it's probably because I don't post to p6l very oftne, so I forget
14:31 frettled In general, I think that forced Reply-To set to the list is a Bad Thing.
14:32 Matt-W what I'd like is gmail to have nice mailing list tools
14:32 Matt-W so it can say 'reply to list'
14:32 frettled It makes it easy to accidentally make public responses that were intended to be private.
14:32 frettled Matt-W: yeah, that would be nice.
14:32 frettled Matt-W: and maybe a user preference for default behaviour of the Reply link.
14:33 frettled a) Respect Reply-To header.  b) Always reply to the address in the From header.  c) If a mailing list, always reply to the list.  (and maybe a few other choices)
14:34 braceta left #perl6
14:37 SmokeMachine joined #perl6
14:38 PerlJam good morning #perl6
14:38 masak PerlJam: o/
14:38 bpetering it's a pleasure reading stuff by TheDamian...
14:38 bpetering morning PerlJam
14:39 bpetering I appreciate his sense of humou?r.
14:42 PerlJam masak: what's up?
14:43 masak PerlJam: S26 is out, and I'm re-writing Druid to be cutting-edge wrt it, that's what's up! :)
14:43 PerlJam cool!
14:43 PerlJam Does any software grok the new S26 yet?  :)
14:43 PerlJam (besides STD)
14:44 masak PerlJam: I'm tempted to add #=[...] parsing to Rakudo.
14:44 Psyche^ joined #perl6
14:45 [particle] masak: you have nothing to fear but fear itself
14:46 masak [particle]: thanks for the encouragement.
14:46 PerlJam yeah, but *parsing* is the easy part :)
14:47 masak yes, but it's a big step up from not parsing.
14:50 masak oh! another pertinent S26 question: if declarator blocks are the only ones that attach to nearby declarators, then are the METHOD, SUBROUTINE, CLASS, etc keywords really of much use?
14:51 frettled masak the destroyer strikes again
14:51 * masak leans on his sledgehammer
14:51 jnthn masak: Useful if you want to write a spec or proposed interface for something that doesn't exist yet.
14:51 jnthn Of course, you could write stub code to do that...
14:53 PerlJam seen pmichaud
14:54 PerlJam Is there a bot here that will respond to something like that?
14:54 PerlJam @seen pmichaud
14:54 lambdabot pmichaud is in #perl6. I last heard pmichaud speak 3d 17h 59m ago.
14:54 jnthn @seen pmichaud
14:54 lambdabot pmichaud is in #perl6. I last heard pmichaud speak 3d 17h 59m 3s ago.
14:54 PerlJam ah.
14:54 jnthn ohnoeswhereispmichaud
14:55 hercynium joined #perl6
14:55 frettled hopefully enjoying the pleasant aftereffects of a good weekend
14:56 frettled ISTR that he mentioned something about being off for the weekend and returning on Tuesday/Wednesday?
14:56 masak all is fair if you predeclare.
14:56 PerlJam frettled: yeah, I seem to vaguely recall something like that too now that you mention it.
14:56 frettled masak: how iterative of you
14:57 masak jnthn: your point is well taken. but that makes it sound even more like I'd want to use #= and #=[...] for everything attach-y.
14:57 masak jnthn: and since I have multi-line Pod comments in Druid, that means I _have_ to implement #=[...] parsing. :)
15:04 unitxt joined #perl6
15:08 masak rakudo: say "OH " #=(pod comment), "HAI"
15:08 p6eval rakudo 0d4fe0: OUTPUT«OH ␤»
15:08 masak this now says "OH HAI" on my machine. :) pushing.
15:08 gbacon joined #perl6
15:08 gdickie joined #perl6
15:09 jnthn Nice.
15:09 jnthn Run spectest? ;-)
15:09 masak erm.
15:09 masak I'll get right on it.
15:10 * jnthn pushes his changes now quickly too, so he can blame any fails on masak's patch instead of his own ;-)
15:10 moritz_ masak-- # thinking about committing without testing first
15:10 masak s/committing/pushing/
15:10 masak but yes, masak--
15:10 moritz_ right
15:10 * moritz_ is sometimes still in svn land
15:10 moritz_ svn--
15:11 moritz_ moritz-- # giving lots of negative karma today
15:11 masak karma--
15:11 masak meta--
15:11 moritz_ meta++ # likes it
15:12 masak @karma meta
15:12 lambdabot meta has a karma of 0
15:12 masak @karma karma
15:12 lambdabot karma has a karma of -2
15:12 dalek rakudo: 45c6dd3 | masak++ | src/parser/grammar.pg:
15:12 dalek rakudo: [src/parser/grammar.pg] now parses #=[...]
15:12 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/45c6dd35250d2689f27b6aed2e9368066398358f
15:12 masak I'm running the spectests! :-O
15:12 masak so far, so good.
15:23 PerlJam $employee++ adding "use strict; use warnings;" everywhere they are not.
15:23 PerlJam $employee-- for filling the disk with warnings.
15:23 zloyrusskiy joined #perl6
15:36 jnthn Rakudo day tomorrow or Wed.
15:37 masak \o/ in either case
15:38 jnthn I've got a few to catch up on.
15:40 jnthn OK, now @otherjob are done for a bit...how did my spectest run end up...
15:41 masak ah -- seems the spectest results are invariant under my latest patch.
15:41 jnthn masak: Can I peek at your results?
15:41 masak is it enough if I nopaste the summary?
15:42 jnthn yes
15:42 masak http://gist.github.com/169182
15:43 jnthn Thanks.
15:43 moritz_ these are disturbing, because they appear only on some platforms
15:43 moritz_ my last spectest was clean.
15:44 moritz_ maybe something ICU related?
15:44 masak I know one of them is due to no-ICU + a try block.
15:44 eMaX_ joined #perl6
15:44 masak I submitted an RT ticket about it.
15:45 jnthn I get a vareity of randoms too
15:45 jnthn But I seem to have really broken things as well.
15:46 KyleHa I get the failures masak does and t/spec/S32-io/IO-Socket-INET.t too
15:46 masak KyleHa: that one comes and goes, I think.
15:46 masak g'ah, software is hard!
15:47 szabgab joined #perl6
15:47 moritz_ let's go shopping!
15:47 masak barbiememe++
15:50 nihiliad joined #perl6
15:54 cdarroch joined #perl6
16:00 mkelly32 so, i guess i can't do a match like m:i/Foo/ with rakudo yet, can i?
16:01 jnthn It doesn't support adverbs out front like that, no
16:01 jnthn I think maybe you can write 'em inside the regex though.
16:01 masak mkelly32: you can do m/:i Foo/
16:03 mkelly32 hrm. ok. looks like :a isn't implemented yet, though? (or, i'm not understanding it properly)
16:04 moritz_ it's not, afaict
16:04 mkelly32 it looks possibly interesting. is there some unaccent() or something, too?
16:06 szabgab joined #perl6
16:06 moritz_ no
16:07 moritz_ ah well, you can achieve that with the 'sameaccent' function
16:07 moritz_ which is NYI in rakudo
16:13 rfordinal joined #perl6
16:24 pugs_svn r28012 | lwall++ | [t/spec/S04] change ?: to ??!!
16:28 molaf joined #perl6
16:32 helper joined #perl6
16:35 * jnthn thinks he's fixed the Enum.pick regression. o/
16:36 PerlJam wow, there was an old ternary hanging around after all this time?  amazing.
16:36 TimToady no, was new
16:36 TimToady svn blame if you care :)
16:36 PerlJam ah, it was hanging around in someone's brain then  :)
16:36 moritz_ that was by ben morrrow. Let's forgive him, he's new to Perl 6 ;-)
16:37 TimToady okay, if you insist
16:37 moritz_ I didn't svn blame, I just remembered who changes that file
16:37 moritz_ it was more a 'brain blame' ;-)
16:38 TimToady nthn
16:38 KyleHa moritz_: You should put that on CPAN.
16:38 pmurias ruoso: hi
16:38 ruoso hi pmurias
16:39 moritz_ KyleHa: it's non-free and not politically correct ;-)
16:39 KyleHa Heh.
16:39 TimToady jnthn: you said: One of the annoyances of implementing callwith and nextwith is that in the case of them being used to defer to another method, they need to find and pass on the invocant.
16:40 TimToady that's why at the dispatcher level, there are no methods, just subs, and the invocant is always the first argument
16:40 jnthn TimToady: Indeed.
16:40 TimToady I realize parrot has a different view of reality yet though
16:41 jnthn Parrot does consider the invocant as the first argument, that's not so much the issue.
16:41 jnthn The issue is knowing whether or not to go and find that.
16:41 jnthn consider nextwith(1,2,3) in a wrapped sub and nextwith(1,2,3) inside a method.
16:41 jnthn For the first, you need to know not to bother finding another argument. For the second, you do.
16:41 TimToady ah, I see
16:42 jnthn The pain isn't in obtaining the invocant to pass one (though yes, I badly stated the problem).
16:42 jnthn It's knowing whether we need to.
16:42 jnthn Sorry for not being more clear.
16:42 TimToady but you need the arguments anyway for nextsame, so it's a matter of knowing whether to throw N away or N-1
16:42 TimToady nodnod
16:42 TimToady thanks
16:43 jnthn Oh, I agree, it's not hard to get at the args. Just knowing what to throw away. :-)
16:43 helper hey need help! having squid but i need to do redirect http for bad site i try this example : http://pastebin.com/m1786c187 for ex. redirect google to yahoo but in yahoo search when i use google search it redirect back to yahoo something loop occur! how i can fix this thx =)
16:43 TimToady helper: I doubt we have any squid experts here, since this is #perl6
16:43 PerlJam helper: This is a channel for and about Perl 6, try #perl or #perlhelp
16:44 helper thx
16:44 jnthn TimToady: I did hear something along the lines of Parrot maybe trying to move away from invocant as the first arg, but I'm hoping that idea has been dropped.
16:45 * jnthn should check at #ps tomorrow about that
16:45 PerlJam join #parrotsketch tomorrow and query the parrotcabal
16:45 TimToady allison seems to think parrot can have it both ways, but I'm not so sure
16:47 jnthn Hmm.
16:47 jnthn I'll be curious to hear how.
16:47 PerlJam How would the invocant be passed if not as the first arg?
16:47 jnthn PerlJam: Out of band I guess.
16:47 moritz_ in a register?
16:47 TimToady well, in other languages the invocant is often much more magical
16:48 moritz_ there are infinitely many ugly ways of doing it ;-)
16:48 TimToady and doesn't need to participate in binding for a typeless language
16:48 TimToady but faking a contiguious arg list is going to be harder than faking a separate invocant, I expect
16:48 jnthn Aye.
16:49 jnthn Ah well, will discuss with allison++ what she's thinking before jumping to any conclusions.
16:49 TimToady just my impressions from phone call several weeks ago
16:49 TimToady could be offbase
16:50 jnthn Rakudo is going to need to make a call soon on how to proceed with signature binding, though.
16:51 * jnthn would much prefer to build on top of what Parrot provides than work around it.
16:51 TimToady jnthn's preferences++
16:53 helper left #perl6
16:55 jnthn TimToady: One other issue I'd like to push onto your mental stack...
16:55 jnthn ...is how the dispatcher knows what methods on a role should *not* result in it being punned and the method called on the pun.
16:55 jnthn I'm thinking things like .perl, .ACCEPTS, etc.
16:56 jnthn At the moment I just have a do-not-pun list.
16:56 jnthn Which will do fine for now, I guess, so I'm not blocking on an answer.
16:57 jnthn It's just one of those things that I've done, but it doesn't feel quite right (the "no list of things to remember" rule...)
16:57 TimToady .ACCEPTS potentally has the :U vs :D distinction, but in general it might be some marker on the invocant.  "is ref" maybe?
16:58 jnthn I don't think :U / :D helps us here.
16:58 TimToady but "is ref" seems to imply "don't assume any semantics"
16:58 jnthn role Foo { method bar { "lol" } }; say Foo.bar; say Foo.perl;
16:58 PerlJam What's :U /:D ?
16:58 TimToady method perl ($self is ref:)
16:58 moritz_ PerlJam: undefined/defined, presumably
16:59 szabgab joined #perl6
16:59 jnthn In this case I'm making both calls on the role-object, but expect the first to pun and the second to not.
16:59 TimToady See S12/Abstract vs Concrete types
17:00 TimToady the first one doesn't declare the $self as "is ref"
17:00 TimToady maybe
17:00 jnthn So we make a distinction based upon if the invocant is makred is ref?
17:00 jnthn I'm struggling to work that through my brain
17:01 jnthn (From a, why does this make sense perspective, not an implementation one.)
17:01 TimToady dunno, it's more like some methods are coercing their invocant
17:01 pmurias ruoso: what things do we need to add an RI to in smopp5?
17:02 jnthn Hmm. That's a curious way of looking at it.
17:02 TimToady it's kinda like autoviv, and "is ref" suppresses any autovivificaiton
17:02 ruoso pmurias, supposedly it should be able to behave like a Perl 6 object
17:02 kidd` joined #perl6
17:02 TimToady but maybe we just need a new ref-like property for punning
17:02 jnthn I'd not really been seeing it as a signature-bind-time decision.
17:02 jnthn But more as a dispatch time decision.
17:03 M_o_C joined #perl6
17:03 TimToady I was just thinking that the invocant was the proper place to hang that info
17:03 pmurias ruoso: so what do we need to add an RI to? SV*, interpreter
17:03 jnthn But your suggestion makes more sense to me now I see where you're coming from.
17:03 TimToady not that binding enforces it
17:03 justatheory joined #perl6
17:03 jnthn Well, it's a coercion on the level of an "as" in some senses?
17:04 jnthn That is, instead of just bidning what we were passed, we do some work on it (in the case of a role, pun it) and bind the result.
17:05 TimToady it's like the default is that we allow an invocant to be no more abstract than a class, and a role is even more abstract than usual
17:05 jnthn I was thinking more in terms of coercion than what's allowed here, but I guess we could easily cater for both.
17:05 pmurias ruoso: you have noticed that the smop files are included in the build process?
17:05 jnthn Or the default if you don't specify what you want is the coercion?
17:06 jnthn And you use :U, :D and :P or something (Punnable, but mostly for the smiley win).
17:06 jnthn ...if you want to say "I only accept these things and give them to me as is".
17:07 TimToady it's like the role says: you may not dispatch on me directly without this extra magic
17:07 ruoso pmurias, we need to add RI to every p5 value that might be available to SMOP
17:07 jnthn Right.
17:08 jnthn I think there's something in this.
17:08 jnthn It's a rather different solution to the kind I was expecting, but I like it.
17:08 TimToady whatever looks simplest
17:08 TimToady I suspect the solution you come up with will be fairly universal in semantics
17:09 TimToady and if we need :P or "is foo" we can do that
17:09 TimToady well, :P is backwards, since punnable is the default
17:09 jnthn Yeah, I know.
17:09 jnthn It just goes well with :D ;-)
17:09 TimToady it does indeed :)
17:11 jnthn Pun-free.
17:12 TimToady but decorating the type name may be the wrong place; it probably makes more sense on the invocant container
17:13 jnthn method perl($self:D:) { } # woo colon fest
17:14 TimToady illegal anyway, since :D attaches to the type name, not the container
17:14 TimToady :D and friends are essentially subset types
17:14 jnthn I was doing on your "decorating the type name may be the wrong place..." :-)
17:14 jnthn *going
17:15 yath joined #perl6
17:18 pancake joined #perl6
17:19 yath joined #perl6
17:19 pancake does perl6 supports things like if (..) bla? (without brackets if only one action depends on the conditional?)
17:19 szabgab joined #perl6
17:19 pancake and without using post conditionals
17:19 PerlJam pancake: no
17:19 TimToady no
17:20 yath_ joined #perl6
17:20 TimToady but the parens are optional because the braces aren't :)
17:20 pancake is there a reason for this?
17:20 PerlJam pancake: but you don't have to put parens around your conditional if that makes you feel better  :)
17:20 dalek rakudo: b60cef0 | jnthn++ | build/PARROT_REVISION:
17:20 dalek rakudo: Bump up Parrot revision we require to one that doesn't segfault the build on various platforms.
17:20 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/b60cef03f12f93628b1cb320ad4aa75b9c43d52e
17:20 dalek rakudo: 17c4b9d | jnthn++ | src/ (2 files):
17:20 dalek rakudo: Make .HOW on a role give back the metaclass, rather than pun the role and give back the metaclass of the punned class. Correcting this also required fixing something that relied on the old broken behavior.
17:20 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/17c4b9d73f59dbde3062c8517f200cd05ac3d8a1
17:20 dalek rakudo: d77baf0 | jnthn++ | t/spectest.data:
17:20 dalek rakudo: Add S14-traits/package.t to the spectests.
17:20 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/d77baf0caaf59b0632bfa1ba0098086b588d9c09
17:20 dalek rakudo: 2f177d4 | jnthn++ | :
17:20 dalek rakudo: Merge branch 'master' of git@github.com:rakudo/rakudo
17:20 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/2f177d4c066b6e55e32fe5c4bfc198069c6f1af1
17:20 TimToady the braces are much more meaningful insofar as the are always closures in p6
17:21 TimToady the parens are basically meaningless
17:21 TimToady so it's better to keep the braces and throw away the parens
17:21 pancake but looks tedious to write them if only one action is given
17:21 TimToady two extra characters.  if it were BEGIN...END you'd have a better argument :)
17:21 pancake if $foo { ... } else die "argh\n" # for example
17:22 TimToady missing semicolon
17:22 * pancake missed the semicolon
17:22 pancake :P
17:22 TimToady but that's another reason
17:22 TimToady the closing brace will supply that missing semi for you
17:22 TimToady if it's at the end of the line
17:22 TimToady so now it's down to 1 extra character in general
17:22 zamolxes joined #perl6
17:23 TimToady and if it's *not* at the end of the line, you really need the extra braces for clarity in any case
17:23 TimToady much easier to see matched braces then scan for a little semicolon
17:23 pugs_svn r28013 | jnthn++ | [t/spec] Unfudge some tests that Rakudo had regressed on.
17:23 TimToady and Perl 6 is not about repeat the mistakes of C, in any case :P
17:23 pancake yep, but brackets are necessary for this kind of constructions, and i dont see any reason to keep them, well its a personal taste
17:23 TimToady *repeating
17:24 TimToady it's just a bad habit from C. :P
17:24 pancake i like such constructions O:)
17:24 TimToady yes, well, it's an addiction, but there are programs to help :)
17:24 pancake many other langs permit this too
17:24 pancake haha
17:25 PerlJam pancake: have you heard about the water bed theory of language design?   :)
17:26 TimToady many other languages are not trying to do what Perl 6 is trying to do :)
17:26 dalek rakudo: 06d27c0 | jnthn++ | src/pmc/p6opaque.pmc:
17:26 dalek rakudo: Re-work the decision process for punning. Un-regresses Enum.pick.
17:26 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/06d27c0ac3c027884da36dab5ecbb04b0c20f991
17:26 pancake PerlJam: nope, any url?
17:27 pancake wikipedia helps in this case
17:28 pancake ok. i get it :)
17:29 TimToady it's one of those places where we make a small imposition on the user and get a lot of benefit out of it in various other places
17:30 TimToady similarly, we never allow two terms in a row, but this makes it easy to detect many kinds of syntax errors
17:30 [particle]1 joined #perl6
17:30 moritz_ except when we do, of course ;-)
17:30 TimToady we require whitespace in certain spots to distinguish infixes from postfixes, and builtin declarators from functions
17:31 moritz_ for @list { block } # here @list and { block } are two terms in a row, no?
17:31 TimToady in a sense, though actually it's treating that as a terminator for the expr
17:32 TimToady since the statement controls are special syntax
17:32 TimToady could make the same argument for "use Foo <a b c>"
17:32 moritz_ you can always talk it the way you prefer it ;-)
17:33 pancake yeah takes sense
17:33 TimToady the main point is that you shouldn't add a juxtaposition operator unless you have some other way of "clocking" the parse
17:33 PerlJam TimToady: and that's why map now requires the comma?
17:33 TimToady the authors of awk regretted using juxtaposition for concatenation
17:33 TimToady map used to be a special form, so it could get away with it
17:34 TimToady now the first arg is just a normal argument
17:34 TimToady and the parser has no idea it's special, because it isn't
17:35 PerlJam (fewer special cases)++ anyway
17:35 TimToady we've tried to remove all these special special cases, and replace them with general special cases :)
17:35 TimToady like {} is always a closure
17:35 PerlJam #`{ except when it isn't :-)  }
17:35 TimToady (at least in the abstract)
17:36 TimToady q{indeed}
17:37 pancake :)
17:37 PerlJam Perl 6 does a *really* good job of managing the programmers' expectations.
17:37 TimToady though I tend to encourage people to use q[indeed] for such nowadays for that reason
17:38 TimToady "these aren't the special cases you're looking for"
17:39 TimToady the reason we've been playing with STD for the last year or so is to figure out whether we actually have enough "special sauce" in the grammar to tell the user where they went wrong in a helpful way
17:39 xinming joined #perl6
17:39 hah joined #perl6
17:40 TimToady it's really a failure of design if we have to give up and say "Syntax error"
17:40 moritz_ std: +++
17:40 PerlJam would that other langauges has such a standard
17:40 p6eval std 28013: OUTPUT«[31m===[0mSORRY![31m===[0m␤Preceding operator expects term, but found infix + instead at /tmp/8O1nK0KbKn line 1 (EOF):␤------> [32m+++[33m⏏[31m<EOL>[0m␤    expecting any of:␤ noun␤   prefix or meta-prefix␤      standard stopper␤ term␤   terminator␤       whitespace␤FAILED
17:40 p6eval ..00:03 40m␤»
17:41 TimToady we don't always get it quite right, of course :)
17:41 jaldhar joined #perl6
17:41 moritz_ why does it complain after the third +, not the second?
17:42 moritz_ does it parse that as two prefix, prefix:<++> and prefix:<+>?
17:42 TimToady it's sort of 50/50 whether it puts the eject symbol before or after the error
17:46 TimToady it got to that error message by a process of failing to parse + as a valid term
17:47 TimToady that particular error message is a very defaultish method, so it's often inaccurate
17:48 TimToady the misplaced ⏏ is because it parses <infixish> to see if it should say that message, or default to "Confused"
17:48 TimToady so we should probably put infixish in a lookahead
17:56 dalek grok: 81b3238 | (Hinrik Örn Sigurðsson)++ |  (2 files):
17:56 dalek grok: Use \Q on the substring we're trying to match
17:56 dalek grok: review: http://github.com/hinrik/grok/commit/81b323850906a6dddba5b9f63acf6bef60568592
17:56 dalek grok: 403ad45 | (Hinrik Örn Sigurðsson)++ |  (2 files):
17:56 dalek grok: Added (simplified) parsing of some u4x terms
17:56 dalek grok: review: http://github.com/hinrik/grok/commit/403ad45394a7223ee03e7509ae4ce0f36cb80327
18:06 pmurias ruoso: one way we could run p5 code before we load Coro would be to load it in a special "first use of p5" continuation
18:07 rfordinal left #perl6
18:14 jan__ joined #perl6
18:14 pugs_svn r28014 | moritz++ | [t/spec] unconfuse Pod
18:16 colomon Just got done reading the backlog for today.  Where is the new S26 people are talking about?   It doesn't seem to have hit the Pugs repo or perlcabal.org...
18:18 hercynium joined #perl6
18:19 moritz_ colomon: it's an attachment on the p6l mailing list, there's also a copy on http://moritz.faui2k3.org/tmp/S26-documentation.pod
18:19 jnthn colomon: Attached to Damian's post on p6l
18:19 colomon moritz_++ jnthn++  Thanks!
18:24 mikehh make spectest FAIL - 3 files - t/spec/S12-enums/thorough.rakudo - Failed test:  2
18:25 mikehh t/spec/S32-hash/keys_values.rakudo & t/spec/S32-num/polar.t syntax errors
18:26 mikehh Syntax error at line 13, near "=> 2, c =>" in the first and Statement not terminated properly at line 14, near "{\n   my ($" in the second
18:27 moritz_ mikehh: svn up
18:27 mikehh was at 28013
18:27 mikehh will try again
18:34 moritz_ jnthn: t/spec/S12-enums/thorough.t test 2 seems to be a regression
18:35 jnthn moritz_: Gah.
18:35 moritz_ the others were mostly POD confusions
18:36 moritz_ commented out pod
18:36 moritz_ that masak++'s pod patch made explode
18:39 mikehh ok just 1 failure t/spec/S12-enums/thorough.t test 2
18:43 jnthn I may just fudge that one.
18:43 PacoLinux joined #perl6
18:43 jnthn Winning back 4 tests for un-regressing Enum.pick was probably a bigger overall win.
18:44 japhb joined #perl6
18:44 masak joined #perl6
18:49 jnthn lolitsmasak
18:49 jnthn \o/
18:49 masak ...with a weak neighbournet wifi connection. buyer beware.
18:49 moritz_ oh hai masak
18:49 tak11 joined #perl6
18:50 masak oh hai.
18:51 masak I've been swimming, and going to and from the swimming hall in pretty decent rain. so I won the 'How Wet Can You Get?' contest today.
18:53 wolverian I read that 'dwimming'
18:54 * moritz_ has been riding home by bike in pouring rain
18:54 * wolverian had an interesting image of masak there
18:54 PerlJam wolverian: He's probably been dwimming too :)
18:54 * jnthn wishes it would rain here. Heavily. With a big thunderstorm.
18:54 masak depends on who it is that means.
18:54 jnthn Then it might be a tad less muggy...
18:55 wolverian PerlJam: I wish I would do what I mean to more often...
18:55 * jnthn tests his patches for completing is hidden and trait_mod:<hides>
18:55 jnthn omgiforgottoeat
18:55 PerlJam jnthn: We've been months here with very little rain (we were going on 50 days without *any* rain but then it rained for approximately 5 minutes)
18:56 jnthn Yeahwell, I'm British and used to rain all day every day. ;-)
19:02 jferrero joined #perl6
19:03 jnthn rakudo: die "E_OUT_OF_BEER"; CATCH { say "going to store, bbs" }
19:03 p6eval rakudo 0d4fe0: OUTPUT«going to store, bbs␤E_OUT_OF_BEER␤in Main (/tmp/QGHTSTx4Ha:1)␤»
19:07 masak so the CATCH block re-throws the exception?
19:07 moritz_ yes. It should not.
19:08 masak ah.
19:12 * szbalint rides the terrain in a train
19:13 * masak is bitchin' in a kitchen
19:21 szabgab joined #perl6
19:25 ruoso pmurias, I even think we can, as nothingmuch said, canibalize save_perl and use it directly
19:30 masak moritz_: oh, so my Pod patch did cause explosions? sorry about that. :/
19:31 moritz_ ah well, deleting a few # characters didn't hurt all too bad ;-)
19:31 masak still, a bit sloppy of me to miss them...
19:32 jnthn At least your explosions are increasingly spec conformance. ;-)
19:32 jnthn Unlike mine today.
19:32 moritz_ well, it's not yet committed.
19:34 * masak looks at moritz_' commit
19:34 [particle] joined #perl6
19:34 masak ah, that would be what breaks. of course.
19:35 frettled I'm a bit disappointed with myself, I haven't broken anything yet.  :)
19:35 * jnthn cooks and makes spectest again
19:35 masak frettled: try harder! :)
19:35 frettled jnthn: following a recipe only in the second case?  :D
19:35 frettled masak: that's not valid java syntax ... oh.
19:35 moritz_ frettled: first submit many good patches, and get a commit bit
19:35 moritz_ frettled: then it's easier to sneak in breakages
19:35 frettled good point.
19:36 frettled and first first I need to find the time to learn enough to know what to patch and how :D
19:36 tak11 joined #perl6
19:36 * frettled is working on that, slooowly.
19:36 frettled 2010 will probably be a good year.
19:36 masak frettled: if you don't break enough things, we'll be building up an excess of forgiveness. and forgiveness tends to grow stale with time, at which point one has to throw it away unused.
19:38 frettled good point.
19:40 masak anyone here know Japanese? I wanted to make some nice green tea, but the instructions on the bag are in Japanese only.
19:44 * jnthn wonders how big his forgiveness stash is
19:44 tann joined #perl6
19:44 masak jnthn: maybe that's what happens when communities scale up! people bottom out on their forgivness stashes!
19:45 tann howdy, perl6ers?
19:45 tlb joined #perl6
19:45 masak greetings, tann?
19:45 tann how do you make that '*masak is getting a tea' ? :)
19:46 frettled masak: which kind of Japanese tea?
19:46 moritz_ masak: is the PIONEER file in the proto repo up to date?
19:46 masak moritz_: I think so. why?
19:46 masak frettled: I'm pretty sure it's green tea.
19:46 frettled masak: sencha or ...?
19:46 moritz_ masak: I'm about to pioneer SVG::Template to be protoable
19:47 moritz_ erm, SVG::Plot
19:47 frettled masak: http://en.wikipedia.org/wiki/Sencha
19:47 frettled common for most green teas that I know about: boiling water is wrong.
19:47 masak frettled: I haven't opened that bag yet. but on the outside, it says 煎茶.
19:48 masak frettled: says 70 - 90 degrees centigrade.
19:48 jferrero joined #perl6
19:48 masak frettled: a few other figures are in latin script too.
19:49 frettled masak: that's sencha, yes.  Follow the instructions in the WP article :D
19:49 masak :)
19:49 masak frettled++ # pragmatic
19:50 masak 1 minute. ah, so the '60' in step three is probably number of seconds to steep.
19:50 moritz_ masak: ok, svg-plot is ready for proto - will you add it, or should I send a patch? (feels kinda silly for three lines)
19:50 masak moritz_: you have commit rights to proto.
19:51 masak moritz_: but I can add it, if you want.
19:52 moritz_ oh, I do?
19:52 moritz_ then I can push myself, I guess ;-)
19:52 frettled masak: if you don't have a water heater with temperature control, you can fudge the temperature by pretending that e.g. mixing 25% water @ 20 C and 75% water @ 100 C will be 320/4 ≃ 80 C
19:52 masak moritz_: I happen to know you do, because I've added all project owners as collaborators to proto. seemed more practical that way. :)
19:53 masak frettled: I'll do that. sounds fun.
19:53 masak and shouldn't be very far off from the truth either.
19:53 moritz_ masak: ah, ok. It  would be very practical if github showed me a list of all projects I have commit access to ;-)
19:53 frettled masak: just remember to prepare the water temperature before involving the tea leaves :D
19:53 masak frettled: I'll keep that in mind. :)
19:53 frettled masak: yep, that's what I do at work.
19:54 masak moritz_: agreed. perhaps something to ask about in #github?
19:54 moritz_ aye
19:55 moritz_ pushed.
19:56 masak moritz_++
19:56 moritz_ masak++ # making PIONEERing *very* easy
19:56 masak that's the idea. :)
19:56 moritz_ I had to add one single line to my repo.
19:56 moritz_ (and even that was mostly optional, because of my weird dependencies ;-)
19:57 * masak goes to check on moritz_' project
19:57 moritz_ the module does not depend on SVG.pm, it merely generates data structures for SVG.pm to consume
19:58 moritz_ only the examples use SVG.pm
19:58 moritz_ so I declared a dependency on it, just to be nice
19:59 Aisling joined #perl6
20:03 * masak gets distracted by tea-making
20:08 masak moritz_: you forgot a colon in projects.list...
20:08 masak moritz_: ...but I forgive you. :) fixed.
20:10 * masak sips his sencha
20:15 masak moritz_: nice code.
20:16 moritz_ masak: thank you.
20:16 masak waitwait, Rakudo already does !private methods?
20:16 * masak didn't know
20:17 moritz_ I just don't know how to test such a module :(
20:17 masak and I'm increasingly confused about the difference between submethod, my method and method !private...
20:17 frettled masak: if you live near a "Le Palais des Thés", I can heartily recommend that you purchase your tea there.  If you like citrus flavour, my favourite is "Wu Long 7 agrumes", which also makes an excellent iced tea.
20:17 moritz_ masak: 'my method' is the outdated idiom for 'method !private', afaict
20:18 moritz_ masak: and submethods are not private
20:18 PerlJam submethods are protected ;)
20:18 moritz_ not in the C++ sense
20:18 masak frettled: I have seen no "Le Palais des Thés" in the vicinity, unfortunately; nor anywhere else as far as I can remember.
20:19 PerlJam no, not in the C++ sense, but they fit the ecological niche that C++ was aiming at but missed.
20:19 masak moritz_: you're saying 'my method' is no longer permissible?
20:19 moritz_ std: class A { my method foo { } }
20:19 p6eval std 28014: OUTPUT«ok 00:02 37m␤»
20:19 moritz_ masak: not sure, but it might not do what you expect
20:19 masak seems we still have three forms.
20:20 moritz_ because 'my' confines to the lexical scope
20:20 moritz_ 'method !foo' doesn't
20:20 moritz_ just to the class, not to the lexical scope
20:20 moritz_ which can be different when 'augment'/'is also' is present
20:20 frettled masak: there is at least one somewhere in Sweden
20:20 masak oh!
20:20 masak frettled: I'm not going out to look. it's raining, and I just got inside! :)
20:21 masak besides, Sweden is HUGE.
20:21 masak I might wander for a week and still not find it.
20:22 frettled masak: hee-hee
20:23 frettled masak: GIYF
20:25 masak &
20:30 takadonet left #perl6
20:31 * jnthn back
20:37 frettled \o
20:40 masak frettled: GINMF in this case, it seems.
20:41 breinbaas joined #perl6
20:41 frettled masak: http://www.palaisdesthes.com/en/
20:43 wido joined #perl6
20:45 masak frettled: no, I don't see one in Sweden on their list of 19 stores. 13 in France, 2 in Belgium, 1 in Ireland, 2 in Norway and 1 in Japan. and that's it.
20:45 * masak is really glad he didn't go outside to look now
20:46 jnthn Meh, Norway ain't so far. ;-)
20:46 masak good point.
20:47 frettled masak: and you have crash space at my place if you want.
20:47 masak \o/
20:47 jnthn masak: Google says you can walk in only 4 days six hours.
20:47 frettled jnthn++
20:48 masak jnthn: maybe if I didn't stop to eat or sleep.
20:48 masak I have to check out those walking instructions. "Take a left at Jönköping..."
20:48 frettled hahaha
20:49 jnthn lol there's a place along the way called Fycklingevägen
20:50 masak that's a cute name. wonder what a fyckling might be.
20:51 * jnthn is fyckling with Rakudo.
20:51 jnthn Hmm, it has quite a nice ring to it.
20:52 masak certainly better than 'beavering' :)
20:52 jnthn Dialects. Who'd have em. :-)
20:53 frettled hehe
20:54 frettled *rubs magic lamp, summoning genie* My first wish is that lazy lists work.
20:54 frettled ;)
20:58 * jnthn waits for pmichaud to emerge from the lamp
20:59 dalek rakudo: 15abd0f | jnthn++ | src/pmc/p6opaque.pmc:
20:59 dalek rakudo: Complete implementation of 'is hidden' so it actually influences deferal.
20:59 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/15abd0ff48eb9e9ca884fb4d900e89fb97cba356
20:59 dalek rakudo: d66f569 | jnthn++ | src/pmc/p6opaque.pmc:
20:59 dalek rakudo: Fully implement hides trait modifier's semantics.
20:59 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/d66f5698a208956d20872d4118f846986cbd6c1d
20:59 frettled Perhaps stating the wish before the genie appears isn't so clever.
21:00 hercynium joined #perl6
21:01 masak someone should write a guide to safe lamp-rubbing and genie utilization.
21:01 moritz_ rakudo: 1 ?? a => b !! 3
21:01 p6eval rakudo 0d4fe0: OUTPUT«Could not find non-existent sub b␤»
21:02 masak no barewords in Perl 6...
21:02 masak um, well, except for that hash key. :/
21:02 * moritz_ had a different parse error for a simar thing
21:02 moritz_ Ternary error at offset 1279, found '='
21:02 moritz_ in Main (src/gen_setting.pm:3390)
21:03 pugs_svn r28015 | jnthn++ | [t/spec] Some tests for trait_mod:<hides> and is hidden.@
21:03 jnthn Oops, extra bonus character in commit message.
21:04 * masak thinks @ works very well as a bonus character
21:05 dalek rakudo: 55c5fa1 | jnthn++ | src/pmc/p6opaque.pmc:
21:05 dalek rakudo: Corrections to the last patch, which broke a couple of spectests.
21:05 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/55c5fa18bb36b06cf3cef0d3c329e2c7313645d0
21:06 moritz_ http://moritz.faui2k3.org/tmp/out.svg the first bar and the and the text 'the' is clickable
21:06 moritz_ generated by Perl 6, of course ;-)
21:07 masak moritz_++
21:07 masak moritz_: p'haps right-alight the Y axis labels?
21:07 masak s/alight/align/
21:08 moritz_ masak: perhaps ;-)
21:08 moritz_ I need to read more of the SVG specs first, I fear
21:09 masak moritz_: http://www.w3.org/TR/SVG11/text.html#TextAlignmentProperties
21:09 pugs_svn r28016 | fglock++ | mp6 update
21:11 frettled moritz_: the clickability seems slightly flawed in Firefox 3.5.2 on Ubuntu, the cursor flicks between text marker and hand.
21:11 frettled Hmm, clicking once seemed to resolve the problem.
21:12 frettled Perhaps Firefox isn't good at SVG yet.  I mean, it has just barely made the step up from disastrous.
21:12 moritz_ frettled: it seems to mostly work on ff 3.0
21:12 frettled moritz_: ah, well, 3.5.x has been nothing but grief for me under MacOS X, so why not place this in the same blame bin :)
21:13 moritz_ frettled: but I know that svg support in most browser is somewhere between abysimal and bad
21:13 frettled Opera is fairly decent.
21:14 frettled Whenever I wanted to look at an SVG, back when Firefox would attempt to use infinity CPU and whatnot in order to _not_ display the SVG it was asked to, I used Opera as a work-around.
21:15 moritz_ inkscape is incredibly useful when debugging SVG
21:16 frettled newfangled stuff!
21:16 moritz_ because it shows drawings outside the canvas
21:16 masak Inkscape++
21:16 moritz_ indeed
21:16 moritz_ sadly it takes about 25s on my machine to start up
21:17 masak I usually use it in the other direction as well -- I draw something in Inkscape, and then reproduce the same SVG programmatically using Perl.
21:17 pmichaud good evening, #perl6
21:17 phenny pmichaud: 14 Aug 05:53Z <japhb> tell pmichaud I'm thinking of writing the Parrot module install tool in NQP -- or rather, write it in Perl 6 using the subset that NQP will support around the 2.0 time frame or so, with the intent of being able to use NQP to compile it when 2.0 ships.  Do you have an updated list of the features you expect NQP to support around that time?  Is this even reasonable?
21:17 moritz_ sometimes I do that too
21:18 pmichaud phenny tell japhb yes, using NQP for the Parrot module install tool sounds very reasonable
21:18 frettled pmichaud \o/
21:18 pmichaud phenny: tell japhb yes, using NQP for the Parrot module install tool sounds very reasonable
21:18 phenny pmichaud: I'll pass that on when japhb is around.
21:18 frettled where do I rub?
21:19 masak lolitspmichaud
21:20 pmichaud yes, just heading home from my trip to rhode island
21:20 jnthn Oh, nice. :-)
21:20 jnthn Hope it was an enjoyable trip.
21:21 masak frettled: since pmichaud is already here, no more rubbing is necessary. duh.
21:21 masak .oO( maybe I should write that guidebook. )
21:23 japhb pmichaud, cool, thank you.  So is there a feature list for NQP around the Parrot 2.0 time frame?
21:23 phenny japhb: 21:18Z <pmichaud> tell japhb yes, using NQP for the Parrot module install tool sounds very reasonable
21:23 japhb thx, phenny
21:24 masak phenny: you're one of the more decent bots I know.
21:24 masak phenny++
21:25 japhb phenny++ # agreed
21:26 Whiteknight joined #perl6
21:26 frettled pmichaud: is it bad of me to say that lazy lists are very desirable?  :)
21:28 moritz_ ok, now I have this wierd situation that I use text-anchor="end" in two plots, and it works only in one ;-)
21:29 moritz_ oh noes, I know what I did...
21:29 moritz_ not.
21:32 masak clearly, that's a Sherlock Holmes situation.
21:32 japhb Hmmm, I appear to have missed the short window of pmichaud's in-channel time.  Ah well,
21:32 pmichaud frettled: yes, lazy lists are high on my priority list
21:32 japhb phenny: tell pmichaud cool thank you.  So is there a feature list for NQP around the Parrot 2.0 time frame?
21:32 phenny japhb: I'll pass that on when pmichaud is around.
21:33 japhb oh.
21:33 masak :)
21:33 japhb Damn failure to be omniscient.
21:33 pmichaud sorry, I'm at the airport and working on about four things at once
21:33 phenny pmichaud: 21:32Z <japhb> tell pmichaud cool thank you.  So is there a feature list for NQP around the Parrot 2.0 time frame?
21:33 pmichaud NQP always aims to be minimalist in many respects... we don't add features "just to add them"
21:33 frettled pmichaud: we're just happy you're here
21:33 japhb pmichaud, no excuse!  Just grow a couple more arms!
21:33 pmichaud so if there's a feature you need for 2.0, we can see about adding it
21:34 japhb pmichaud, sure ... but ISTR that you had stated there were going to be several more.  I was only going to request the delta between your plans and what I ended up needing.  :-)
21:34 pmichaud that said, I expect NQP to support grammars, regexes, and interpolation by 1.7
21:34 japhb pmichaud, still a binding-only language?
21:34 pmichaud by 1.8 I would hope that NQP supports non-PMC register types.  There's a good chance that will happen by 1.7
21:34 pmichaud yes, I'm planning to keep it binding only, since Parrot doesn't really have good assignment semantics yet
21:35 japhb excellent (to non-PMC registers)
21:35 pmichaud that could be revisited if we need it to be
21:35 masak japhb: it sounds like a cool project.
21:35 pmichaud wait, tomorrow's release is 1.5, yes?
21:35 japhb pmichaud, yes.
21:35 pmichaud then bump my targets up by a minor release
21:35 pmichaud i.e., 1.6 and 1.7
21:35 japhb masak, a little birdie tells me you have a little experience with this.  ;-)
21:36 japhb pmichaud, double the excellence.
21:36 japhb I didn't expect it that soon, and I'm very happy to hear it.
21:36 masak japhb: phaw, I only did the stupidest thing that could possibly work. :) suddenly everyone thinks that I know these things.
21:36 pmichaud if I don't have regexes in the next month or so then I'll be way behind on some of our other targets
21:37 masak japhb: that said, I like to follow the progress of those who try new, similar things.
21:37 japhb masak, ... and in the process, you probably discovered the lower bounds of complexity.  That's very useful information.
21:37 pmichaud afk, dinner... I may be back around in an hour or so
21:37 moritz_ thanks to masak++ my charts are now even prettier
21:38 masak japhb: ask moritz_. he made his Perl 6 project proto-compliant today. the lower bound of complexity for him was one extra line of information in his repo.
21:38 japhb masak, I have been imagining proto as a prototype of a subset of the Parrot install toolchain.
21:38 japhb masak, that's pretty low.  :-)
21:38 moritz_ the text-anchor and dominant-baseline attributes rock.
21:39 masak moritz_: they do indeed.
21:39 masak japhb: let me know how that goes. the sooner we can replace proto with something real, the better.
21:39 masak japhb: and I must say that writing an application in NQP sounds... intriguing.
21:40 japhb masak, will do.  It will probably have to wait until August is over; immovable $work deadlines.
21:40 masak gotcha.
21:41 masak just be sure to Release Early after that.
21:41 japhb masak, I will probably just do it on github or gitorious from step 0.
21:42 japhb It will eventually have to move into the parrot repo ... but SVN sucks too much.
21:42 japhb I can't even bring myself to git-svn anymore.
21:42 masak yes, funny how that works. SVN didn't suck nearly as much in 2007.
21:43 moritz_ it did, we just didn't know it ;-)
21:43 masak now that I've learnt git, SVN sucks more than I ever thought it could.
21:44 masak moritz_: it's a bit like the point of my yet-unpublished Druid refactoring blog post: looking back, my code was unforgivably tangled before the refactoring. but that's the point of a refactor, to make things neater.
21:44 japhb masak, oh heck, when I first started using it, it was a godsend ... "What, you mean I can stop using CVS just so I can be Windows-compatible?!?   YEE-HAW!"  But I was on SVK as soon as it came out, because I had been spoiled early by p4, and SVN just wasn't as nice as that.
21:45 japhb But SVK ate my repos a couple times, and that was the end of that.
21:45 masak I'm too young to have used CVS for my own projects, and SVK never sucked me in enough for me to learn all the strange new subcommands.
21:46 japhb SVK could have been Good Enough for a while, if it had been rock solid.
21:47 * masak quivers to think what Linus would have had to say about SVK
21:47 moritz_ .oO( cover your ears )
21:48 * japhb applies serious chocolate to the "concentrating on brain-melting billing software" task
21:50 * moritz_ recommends closing IRC for concentrating on brain-melting stuff
21:52 japhb I'm addicted to the occasional message in my direction.  It's like a slot machine.  You may be feeding quarters to the machine all day, but when you get the cherries, your endorphins flow like you never lost.
21:53 moritz_ ;-)
21:53 moritz_ japhb++ # nice description ;-)
21:53 japhb The good thing is that I *can* ignore IRC when I'm not being pinged.  The same can't be said for Perl blog feeds.  ;-)
21:57 szabgab joined #perl6
21:57 moritz_ masak: do you happen to have any code that precomputes lengths of text elements in SVG?
21:58 masak moritz_: that, for me, is the Holy Grail.
21:58 moritz_ masak: or do you have any other approach to the problem of not knowing in advance how much space to allocate for text?
21:58 sjohnson speaking of IRC, has anyone here written their own irssi / weechat perl plugin?
21:58 masak I've run into dozens of situations where I want to do that.
21:59 masak moritz_: the problem can often be circumvented by using <span>...</span> and transparency.
21:59 masak but not always.
21:59 moritz_ care to elaborate?
21:59 masak sjohnson: you mean "perl 6" plugin, surely?
21:59 masak moritz_: well, let's say I want slides that progressively show some text.
22:00 moritz_ that you could solve with clipping, I guess
22:00 sjohnson masak: :)
22:00 masak moritz_: yes, or with <span />, if I want to unhide word-for-word, say.
22:01 masak moritz_: mberends once hinted that Adobe has tables with widths of characters for different fonts and sizes, that can be used to compute the width of text. sadly, that was the day before my NPW talk, so I didn't have time to persue that lead.
22:01 Limbic_Region joined #perl6
22:02 sjohnson you know how most *nix come with Perl 5?  do you think sooner or later, they will include a chosen popular Perl 6 implementation, or multiple?
22:02 masak sjohnson: later.
22:03 moritz_ well, once you have a decent estimate you use textLength to match your expectation with that of the renderer
22:03 sjohnson 'later' eq 'worry about it later?'
22:03 moritz_ but if your guess is too far off, you get ugly strechting artifact
22:04 masak sjohnson: no, between 'sooner or later', I believe they'll include it later.
22:04 masak moritz_: it might be the green tea talking, but this sounds like a nice task for a supervised genetic algorithm. :)
22:06 masak moritz_: more seriously, if you wanted to compute your own tables, you could probably easily make a grid in Inkscape, and then jot down how wide all of the letters, numbers, and common punctuation marks are in some font and size.
22:06 masak or you could try and find those Adobe tables mberends mentioned.
22:07 * moritz_ sighs
22:07 moritz_ that's the price you pay for not talking to the renderer directly, I guess
22:10 moritz_ assembling tables myself for 64k Unicode chars or so would be too much work.
22:16 masak aye.
22:16 moritz_ if I understood awk, maybe this would help me: http://www.math.utah.edu/~beebe/fonts/afm-width-statistics.awk
22:18 masak the basics of awk are simple. a program is made up of lines with '<condition> { <code> }' pairs.
22:20 huf plus function definitions
22:20 huf i always thought awk was the nicest of the sh/awk/sed triumvirate
22:20 masak the lack of a condition (as in the second line in that program) means that the block of code is unconditionally run.
22:21 masak oh, by a long shot.
22:21 masak but that awk program is clearly wanting to be a Perl program. :) it even has a subroutine called 'report()' :)
22:22 * moritz_ discovers Font::TTFMetrics and tries it out
22:27 japhb .oO( Oh Perl 5, why can't you be Perl 6? )
22:28 masak japhb: there's this Perl6:: namespace on CPAN...
22:28 masak japhb: ...and MooseX::Declare...
22:28 Whiteknight joined #perl6
22:29 japhb .oO( "I can't help it dear -- it's not you, it's me.  I've ... been with Perl 6, and now I'll always be thinking about her when we ... program together." )
22:29 masak japhb: ...and Perl 5.10...
22:29 masak I would say Perl 5 does its best to be Perl 6.
22:29 moritz_ well, Font::TTFMetrics seems to work nicely for true type fonts
22:29 japhb masak: ... so ... many ... jokes ....
22:30 moritz_ now I "only" have to press it into some kind of form that allows efficient (!) reading with Perl 6 :/
22:31 masak moritz_: CSV!
22:32 moritz_ masak: you forgot about the "efficient"
22:32 masak moritz_: why the sudden need for efficiency?
22:32 masak moritz_: if that's your goal, I think eval(slurp(...)) is your best bet.
22:33 moritz_ masak: because 65k chars by 681 ttf fonts (on my system) are too much to handle inefficiently
22:33 moritz_ hm, write a  Perl 6 module, compile it to PIR... that might be an option
22:34 masak moritz_: ooh, and a niche market!
22:34 masak Data::To::PIR
22:35 jferrero joined #perl6
22:35 moritz_ anyway, not before a few hours of sleep!
22:35 moritz_ TTFN, and have the appropriate amount of fun
22:35 masak ditto.
22:39 sevvie joined #perl6
22:46 ascent joined #perl6
22:51 s1n moritz_: i wasn't installing, just did a make and wanted to execute it from somewhere
22:52 s1n moritz_: do i have to install rakudo to be able to use it outside of the git repo directory?
22:53 s1n (that would be new to me)
22:53 jnthn s1n: You do now, yes.
22:54 jnthn (Since changes to allow Rakudo to build against and installed Parrot, and also to make it possible to install it itself.)
22:54 * jnthn looks through the pcc changes and is happy to see we appear to be using varargs less.
22:54 s1n jnthn: but i can't execute the perl6 exe outside the repo dir unless i install it?
22:54 s1n that seems a bit.... wrong?
22:54 jnthn s1n: Correct.
22:55 s1n jnthn: is that true even if i use --gen-parrot?
22:55 jnthn I believe so, yes.
22:55 s1n odd, why is that?
22:55 jnthn I don't think make install is too big a deal though.
22:56 s1n no, just a change in how i was doing things
22:56 jnthn I'm not quite sure, it's just The Way Things Are since the installable branch landed.
22:56 jnthn Maybe we can lift the restriction in the future, I don't know.
22:57 s1n i don't see a prefix option to Configure.pl
22:57 s1n only for parrot
22:57 jnthn Hmm. I wonder where it installs to...
22:57 s1n hah
22:57 kent\n joined #perl6
22:58 jnthn s1n: Well, I can answer part of that - things like perl6_ops.[so|dll] will want to go into the Parrot dynext install directory.
22:58 jnthn It's possible it'll just install it alongside Parrot.
22:58 s1n does that tell me that nothing is installed outside the repo/build folder?
22:59 jnthn If you used --gen-parrot, I'd imagine that is the case, yes.
22:59 jnthn AFAIU. :-)
22:59 s1n i might have to fire up sandbox, i don't feel comfortable doing a make install
23:01 s1n DESTDIR=$RPM_BUILD_ROOT??
23:01 s1n i don't see a definition for DESTDIR in the Makefile
23:03 jnthn I just did make install here
23:03 jnthn It put the perl6 binary alongside the installed Parrot one, and other stuff in other Parrot folders.
23:04 s1n parrot_install?
23:04 jnthn Yes.
23:04 jnthn Everything I can see it copied, was copied under there.
23:04 jnthn This was using --gen-parrot.
23:05 jnthn So you can nuke that directory by the looks of it and the install is cleared up.
23:05 * jnthn can't help but point out that a more standard Parrot install on Windows, unlike the one on Linux, doesn't scatter stuff all over the place. ;-)
23:06 s1n well, none of this is standard for linux though
23:07 s1n i normally expect a configure script that lets me specify a prefix to install and miscellany --with-* options that allow the build to _expect_ things to be available
23:08 jnthn Well, I suspect Rakudo's make install will just follow the configuration the Parrot was given.
23:08 jnthn And Parrot does let you set all of those, if you Configure it yourself rather than with --gen-parrot.
23:09 jnthn How much of a case there is for wanting to use a different set of lib/bin/whatever dirs than Parrot does when installing Rakudo, I'm not sure...I'd imagine overrides could be provided in the future htough.
23:11 s1n at some point, both rakudo and parrot probably should shift towards a more typical build system, else distributors may be reluctant to tackle it's quirks (postpone or avoid)
23:21 reqamst joined #perl6
23:21 * s1n feels very uneasy about doing a make install
23:22 reqamst hi
23:22 s1n i'll hold jnthn personally responsible :)
23:23 s1n hah, i was able to really dork it up :) i exported DESTDIR and it really did prepend it
23:23 wayland76 I made Rakudo work with RPM.  Are there outstanding questions?
23:24 s1n wayland76: is that directed at me?
23:24 wayland76 (Well, I teamed up with pmichaud and allison -- team effort)
23:24 wayland76 s1n: Yes
23:24 s1n wayland76: not yet, but i don't use RPMs
23:24 wayland76 We had to modify the install process, so I have at least part of a grip on a few of the bits there
23:24 wayland76 ok.  I'm specifically responsible for adding DESTDIR :)
23:24 s1n wayland76: i do however know enough about building them to be dangerous :/
23:25 wayland76 It's not intended to be the same as the general "prefix" type things you find in a makefile
23:26 s1n wayland76: oh, but by not defining it in the makefile.in or something, that leaves it open for me to do that :)
23:26 wayland76 Exactly
23:26 s1n just in a stange-non-standard way
23:26 s1n and potentially unsafe
23:26 wayland76 But it's *different* to "prefix".
23:27 s1n not really
23:27 wayland76 Allow me to explain the impression I've gotten.
23:27 s1n i pointed mine to /dev/null :)
23:27 wayland76 Say you have a file /usr/bin/perl
23:27 s1n guess what happened to the binaries?
23:27 wayland76 What?
23:28 s1n they went to /dev/null, sheesh :)
23:28 s1n i get it, it's not a real / look-alike since it's all developer friendly still
23:28 wayland76 If you have /usr/bin/perl, then if you use $DESTDIR, they go in $DESTDIR/usr/bin/perl
23:29 wayland76 But in the case of a prefix, you'd have it as $PREFIX/bin/perl
23:29 s1n eh not to my understanding
23:29 wayland76 So changing $PREFIX to /usr/local gets you a sensible result
23:29 wayland76 But changing DESTDIR to a sensible result doesn't :)
23:29 wayland76 s1n: Well, maybe I've got the wrong end of the stick, but that was my understanding
23:30 s1n is $PREFIX some perl5-ism that doesn't correlate to --prefix?
23:30 wayland76 (oops, I meant "Changing DESTDIR to /usr/local doesn't get you a sensible result" -- my bad :) )
23:30 wayland76 s1n: No, I've probably got the wrong end of the stick again
23:31 wayland76 :)
23:31 wayland76 I know about RPM a fair bit, but not a lot about standard build systems :)
23:31 s1n okay, autotools' --prefix is like a sandboxed install dir
23:31 wayland76 Ok.  Now that I think about it, I think DESTDIR is something I nicked from Parrot
23:31 s1n and rpmbuild is just a wrapper around shell scripts, so you could have made it do anything there too
23:32 s1n and parrot seems to rarely do standard things, so that makes sense
23:32 wayland76 Yah, I know RPM :)
23:32 wayland76 Ok, let me ask this -- does autotools require multiple make files?
23:32 wayland76 (ie. if we were compiling Rakudo)
23:33 s1n nothing is really "required"
23:33 wayland76 Ok.  Because pmichaud seemed very keen to avoid multiple make files
23:33 s1n multiple makefiles for what?
23:34 wayland76 But he wanted to do something "standard", but neither of us knew anything about autotools, so we did the quickest thing that would work that pmichaud could live with
23:34 s1n i.e. a Makefile.in for building rpms?
23:35 wayland76 No, in the patch Allison provided, there were separate ones for different directories
23:35 s1n nothing about autotools is "quick", it spews tons of files, lots of little scripts, tons of extra crap, but it works across a wide variety of unixy systems
23:35 s1n oh, that's a bad idea from a maintanence perspective
23:36 wayland76 Yeah, that's what pmichaud didn't like, I think
23:36 wayland76 But instead, we ended up with lots of lines looking like this:
23:36 wayland76 cd $(OPS_DIR) && $(LD) @ld_out@$(OPS)$(LOAD_EXT) $(OPS)$(O) $(LINKARGS)
23:36 wayland76 (ie. with the "cd" at the start)
23:37 s1n it's a trade off
23:37 s1n lots of little files leads to lots of little files that have to be kept up and eventually become a hassle
23:37 wayland76 Anyway, if you know anything about autotools, feel free to interact with pmichaud and provide a patch to use that instead :)
23:39 wayland76 Yeah, but I figured since we were using a templating system, we could do something sensible there :)
23:39 s1n i don't really recommend it unless there's a desire to do something unlike perl5 and more like, say, gnome
23:39 wayland76 recommend what?  Autotools?
23:39 s1n yeah, it's a pita
23:39 s1n but it works across unixy stuff well
23:39 wayland76 ok
23:42 s1n hmm, getting this message:
23:42 s1n Parrot VM: Can't stat /home/s1n/sandbox/rakudo/parrot_install/bin/perl6.pbc, code 2. \nmain: Packfile loading failed
23:43 s1n hmm hold that, i need to look at something
23:44 Chillance joined #perl6
23:44 s1n nevermind, my bad

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

Perl 6 | Reference Documentation | Rakudo