perl6-projects.org/ | nopaste: sial.org/pbot/perl6 | evalbot: 'perl6: say 3;' | irclog: irc.pugscode.org/
Set by mncharity on 25 March 2009.
masak morning, junctioncamels. 06:51
mberends ah, morning, junctionmask. 06:58
lambdabot mberends: You have 1 new message. '/msg lambdabot @messages' to read it.
mberends @massage
lambdabot masak said 3d 10h 6m 6s ago: oh, and for some Pod6 tests, November's Test::InputOutput might be more fitting. use.perl.org/~masak/journal/37976
mberends 3 days ago! mberends-- for poor attendance. 06:59
masak happens to the best of us.
Easter only comes once a year.
mberends: I can haz Lobster in browser! will blog about it today, but if you're curious, it's in the web repo, in bin/run-lobster 07:00
mberends is _very_ curious
masak I copied HTTP::Daemon to the Web repo, like I said I would. happily, no mods were required, but I'm not sure that will keep being true. 07:01
there is quite some overlap between HTTP::Daemon and Web::Re*.
I think the former will hace to yield some autoracy, but I'll have to investigate it more -- specifically, Rack's concept of "middleware". 07:02
mberends it look like we shall hammer out some inter-module co-operation at the Hackathon. 07:03
masak indeed.
mberends: pmichaud wants such a discussion also. 07:04
with a slant towards module database format in Rakudo, methinks.
my goal at present, before I blog, is putting Druid in a similar wrapper. that'd be the first non-trivial app to run on top of Web, and it'd be a good goal for week 4.
for now, I'm cutting as many corners as possible, which means no SVG, and no lintels. :/
just JFDI-ing, and improving from there. 07:05
mberends masak++: excellent plan. you can output text in <pre>output</pre> for now.
masak for the Druid board? aye. 07:06
mberends aye
masak and then just a dumb list of sarsen moves as links.
mberends do you know if there be dragons in recursive regexen? (for grammar Pod). 07:08
masak ah, './proto update all' still feels like such a luxury,,,
mberends: no, 'cus I haven't seen the rakudobug about it...
h0y, html-template is b0rked. 07:09
mberends oyez, here too last coupla days
masak ay, no. it's proto that's b0rked. 07:10
musta been my underscores-to-dashes campaign did it.
mberends underscores_to-dashes also b0rks on regex names :( 07:11
masak oh!
masak thinks he knows what is the problem
rakudo: sub do-build {}; do-build 07:12
p6eval rakudo 5b679a: OUTPUT«Could not find non-existent sub build␤current instr.: '_block14' pc 58 (EVAL_16:39)␤»
masak submits rakudobug
mberends: any reason not to call that sub just 'build'?
mberends nope. 07:13
masak renames, then
rakudo: sub sub-build {}; sub-build 07:14
p6eval rakudo 5b679a: OUTPUT«Malformed routine definition at line 1, near "-build"␤␤current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)␤»
masak all this is against the LTM, as I understand it.
rakudo: sub method-build {}; method-build 07:16
p6eval rakudo 5b679a: OUTPUT«Malformed method definition at line 1, near "-build"␤␤current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)␤»
masak substituting if, given, for, where and else works fine, though.
mberends masak, do you mean LTM has difficulty with '-' a an identifier char? 07:17
*as
masak I mean the LTM as a principle should allow such names.
it shouldn't tokenize on the keywords as it seems to do now.
mberends: back to you. what was the recursive weirdness in Pod gramamrs? 07:18
mberends blocks may contain nested instances of the same type, several turtles down. 07:19
masak an example? 07:23
mberends Pod Parser v2 development concentrates on a full grammar for all of Pod, as STD does it for all of Perl 6. Emitters are just swappable action classes. Initially the v1 test suite looked good for v2 as well, but getting the grammar to parse all the variations is tough. =begin can contain =for can contain =begin etc. 07:27
masak ah. yes. 07:28
mberends stream based parsing is so much easier, and that's what gave that line by line output you noticed earlier. 07:29
masak aha.
yes, I do something like streams in Text::Markup::Wiki::MediaWiki too. 07:30
but I don't get that nice effect.
mberends literal++ is also starting to play with Pod Parser v1 for GSoC, and is worried about speed too. The tree parser has tighter inner loops making it about twice as fast. 07:31
masak I'm getting speed worries in many places right now. 07:31
we need someone who is pathologically crazy about optimization to take an interest in Parrot and Rakudo. 07:32
mberends lying awake thoughts of a stream based parser in C began to tease my neurons - is that disloyal, or a wake up call? 07:33
masak mberends: the only one that makes the rules is yourself. 07:34
and bindings to C are not much explored, at least not by us Perl6ers.
so it'd definitely be interesting.
been thinking similar things for a Druid computer player.
mberends v3 will be in only C then, just to give a performance comparison. 07:35
masak :)
mberends 15k RAM per 1 byte of document was ridiculous.
masak o_O
mberends how's the procrastination going? (re: slides etc) 07:38
masak mberends: I was on a bus for 9 hours yesterday.
took the time to make a mind map of all I want to put in the talk. 07:39
so I feel on track.
mberends :)
masak that said, my plans for the slides are rather... ambitious.
so there's still plenty of chance for crises and last-minute stuff. 07:40
will demo a reasonably ready version for viklund on Tue.
thinking of uploading the slides beforehand to get feedback on them. haven't decided on that yet.
mberends compared to taking over the world, it should be a walk in the park ;) If there's any way I can help, feel free to ask. 07:41
masak thank you.
I think you'll quite naturally become the final reviewer of the stuff. :) 07:42
mberends looks forward to that too
masak mberends: hm, so each request to the web server invokes the script in bin/ anew? 07:43
mberends correct. in a child process. That's why deleting its .pir file can give you a dynamic recompile. 07:44
masak wonders where he'll store the game state in Druid, then
I'll basically have to make a persistence layer.
mberends yes, a layer for the logical design, but either cookies or url parameters for physical storage if little data, or one of those with a key identifier and local storage (file, database) if much data. 07:47
masak fairly little data. needs local storage if I don't trust the clients.
and it's a game, so I don't. 07:48
but one-step-at-a-time.
I've just discovered that Druid::View::Text can only print things, it doesn't stringify them and return them as strings. 07:49
the ironical thing is that I've been touting that as an antipattern for years to my studens, and now I find I've done it myself.
s/studen/student/
mberends heh. Pod Parser v1 was also I/O structured and v2 will be strings throughout. 07:50
masak nice streaming effect, bye bye.
...until we get lazy strings, at least. 07:51
rack and web return a list of strings as a web response. perhaps something to consider, to avoid unnecessary string concatenations? 07:52
mberends don't prematurely optimize
masak well, there's a tension between that one and "don't make interfaces that you know'll be slow". 07:53
but you're right.
mberends it's the current sensation of the ble<[ea]>ding edge. 07:54
mberends afk & # shower 07:56
masak can haz Druid in browser 08:02
\o/
looks like crap, but that's the board alright.
masak fixes crap
yah. better. 08:07
masak hm, I could make good use of Tene_'s Tags module in what I'm writing. 08:20
mberends masak: when you're ready, I can host a DruidServer at autoexec.demon.nl:<yourport> 08:25
masak some ways to go still -- but hey, thanks.
might have something ready till Friday.
I'll bring my LEGO Druid board to NPW, by the way. 08:26
mberends cool!
masak converts the Druid app to Tags 08:30
Tags has an API that's pleasant to write in.
masak @tell Tene_ I believe there's a typo in the post blogs.gurulabs.com/stephen/2009/03/...-proj.html -- I think there must be a comma between ':id<numberlist>' and '{', since both these are terms. 08:35
lambdabot Consider it noted.
Casan I had to lookup premature optimization, and found this interesting tidbit. www.acm.org/ubiquity/views/v7i24_fallacy.html and its enlightening. 08:38
masak Casan: looks very interesting. will read.
I do believe misplaced optimization causes a lot of grief in the world of programming. 08:39
people simply should not do anything of the sort unless they keep a profiler running alongside.
speaking of superstitions, I'm getting a very spooky error from Rakudo. 08:40
Casan the article gets the point through too. premature optimization does not mean you shouldn't optimize. it only means you should really consider your battles. 08:41
masak it says something about positionals, and then gives me a stack trace that claims that a block in Tags was called from Druid::Game's new methos.
s/methos/method/
Casan: that, and measure the results.
Casan: it's extremely hard to know what all the layers will do to the speed of one's code. 08:42
even assembler is non-trivial that way nowadays, with all the funny stuff going on in processors.
Casan yep. I try to balance this by doing what I can to adopt and apply best practices, but it all comes down the how quality is measured by the target user. 08:43
masak aye. 08:44
Casan: so, have you taken Rakudo for a spin yet? :)
Casan masak: yep have followed the development for years, and try and read all I can. 08:45
masak yes, but actually writing a script...?
Casan masak: yeah, but nothing as big as november.
masak ok. what did you write? 08:46
Casan just basic tests and snippets to see how things worked, nothing out of the ordinary. 08:47
masak ah. you're where I was last spring, sounds like.
before I got all crazy and tried to write a wiki engine in Perl 6.
Casan masak: currently I have to follow a course at uni where they teach C#, but it bores me, so I try to see how I can do all the same examples in the books in rakudo.
masak nice. 08:48
we need stuff like that.
consider uploading your results to perl6-examples at github, for everyone's benefit.
Casan I will, even considered writing some mini books about the stuff, but I'm not of big name fame, but maybe I'll just do it anyways :) 08:50
masak Casan: the Perl 6 community is small. to reach fame, you only have to do something that people like. that's all. 08:51
Casan I am currently looking into how C#'s properties concept can be applied in perl6. but I won't get into details here now, as I don't know if others know about how C# does stuff.
masak I bet some people have an inkling. I don't. 08:52
Casan masak: true, if people like what you are doing, they would be inclined to read/use it despite the fairly unknown origin. 08:53
ohh, well, lets just do it.
mjk why pugs is stopped? 08:54
masak mjk: lead developer turned to other things. 08:55
Casan have you heard anything about DBI for perl6 development yet? My last impresssion was that it was halted, and when it will pickup it will be rooted in the parrot as a DBI layer for all HLL's like mod_parrot/mod_perl but I'm curious. 08:56
mjk pugs is coming along nicely, why stop it? 08:57
masak Casan: haven't heard much. there are supposedly some proof-of-concept scripts in Parrot's examples/ dir.
mjk: lead developer turned to other things.
mjk: it's entirely possible for someone else to pick it up.
but nobody has done that.
mberends Casan: nice article about optimization. re: DBI, there is a DBDI being touted as the Next Generation, but no Rakudo implementation yet.
mjk masak: thank you 08:58
masak mjk: you could check out Rakudo. it passes something like 10k tests. 08:58
mberends Casan: do you occasionally write ++var instead of var++ because it is faster?
mberends used to but gave up because it was less readable 08:59
masak I think it's more readable. I don't care about the speed.
it's verb-object, which I'm used to.
mjk masak: When will perl6 be ready or released?
mberends heh 09:00
masak mjk: :)
mjk: ask yourself this instead: what is it that you would like to do, today?
then maybe we can guide you further.
mjk heh
masak just sitting around hoping for Christmas is not something we tend to do here.
Casan mberends: I wouldn't do it for speed, in the bigger picture readability also have an impact on another dimension of speed. but if it was to achieve the completion of a task that needs me doing I would. 09:01
masak mjk: realistic answer: it'll be a while yet. I don't make predictions, but not this Christmas, and possibly not next either. I don't know.
mjk: that said, much can be done in Rakudo today. it's really, really worth checking out. 09:02
mjk masak: :) 09:03
Casan mjk: I view it like a base inventory in a kitchen. when a feature that is to be used quite often is stable I add it and use it consistently. And I try to improve my base inventory continously, but try not to pressure it unstable. 09:05
mberends Casan: the C# properties feature would be a fairly radical language extension, so it's unlikely to be adopted this far down the road. Still, the Rakudo developers surprise us regularly with quick wins. I would not want to reschedule Christmas just for what is basically syntactic sugar though. 09:07
masak syntactic sugar is for modules, once we have macros. 09:08
mberends then properties will come, quite easily 09:09
masak is tracking down a really strange bug 09:10
something to do with exporting, I'll bet.
ah. yes.
Casan mberends: yeah I couldn't find it anywhere in s12, and figured that for now you have to use setters and getters to achieve enhanced encapsulation, or just just . is rw and use the where (trait?) for constraints that would be a typical reason for using the properties concept. 09:11
masak @tell Tene_ your Tags.pm is exporting 'map' !
lambdabot Consider it noted.
mberends Casan: totally agreed. What masak++ said makes sense: you can contribute a properties extension once macros are done :) 09:12
Casan but something I find really interesting now is to compare the perl6 OO model in an UML perspective. 09:13
I haven't found much writing about that anywhere though, and I wonder how much it has been considered in the design fase. 09:14
mberends hmm, interesting, yes. I thought UML was too vague or abstract to impact language design.
Casan mberends: it may be, but still of importance. for larger app design and teaching its invaluable. 09:15
mberends Casan: yes, that's at the high level. 09:16
Casan ohh thats not an absolute, but a feeling I seem to have been conditioned with from uni.
mberends UML avoids or shuns implementation. Pugs, Parrot and Rakudo are doing that hard part, and have different meta object implementations. 09:19
Casan but hey I have no preference per se. I just observe now while running through this CS course where C# and UML is the main teaching, and the outcome is that I become more aware of what would be required of perl6 to be used as an alternative. 09:20
mberends Casan: the discussions in #perl6 about SMOP, Moose, elf and so on would interest you. 09:21
Casan introspection features are good.
mberends: yeah how so? 09:22
masak just need to share this; it's so pretty: gist.github.com/93929 09:22
mberends Casan: you seem interested in how the OO theory becomes implementation, and those are alternative implementations 09:24
masak: thanks for sharing that. Tene++, and yes, manual source layout is best. 09:25
masak :)
Casan mberends: ahh true. yeah been looking into them already, but I wondered if there were something special from the previous talk on #perl6 I should know. but I'll just tag along. 09:26
didn't know about elf though, thanks for the highlight., 09:27
masak I'm intrigued by all three of those.
mberends Casan: your most valuable contribution to this group might be to keep asking how Perl 6 can match or improve on C#, and that might result in some fresh ideas. 09:28
masak I would argue that people can easily maximize their contribution by writing code on Rakudo. doens't have to be much. it's ridiculously easy to find RT-able things that way. 09:29
masak s/doens/doesn/ 09:29
mberends yes, I meant ask by trying to do it and getting help when necessary 09:30
masak um, and by 'writing code on Rakudo', I mean 'writing Perl 6 code that runs on top of Rakudo', not patching Rakudo itself.
mberends: oh, ok. aye.
Casan mberends: sure, from a learners point of view. 09:31
masak: hehe just try to stop me, if not writing code, I would wrong around as a mute.
masak Casan: release early, release often. where's the code? :) 09:32
Casan is a mute
;)
masak ;)
mberends Casan: try porting stuff. I have enough challenge porting Perl 5, you should have plenty of challenge porting .NET examples. 09:33
Casan btw, I tried testing method return type (eg. class myclass { method mymethod () returns Str { my Int $number = 1; return $number; } } my $myclass = myclass.new(); say $myclass.mymethod(); ) but it doesn't croak, and I wonder if its because something is still to be implemented, or if I'm going about this wrong? (I'm using the parrot-1.0.0 and rakudo addon packages) 09:40
mberends Casan: will try it for you soon 09:42
masak: seeing that last gist again, Tene++ needs to replace '{' with ':' to eliminate your '}', and then you have Python! 09:44
masak mberends: I was thinking similar things.
it would indeed be nice to have that.
but it requires macros too.
(and people will generally not be amused.) 09:45
mberends TimToady++ would never admit it was cool :) yes, like you said.
masak also, the colon in that place clashes with the invocant colon. 09:46
and these are subs.
mberends ah well, it was only a fanciful thought
masak I liked it. I had half of that thought before. 09:47
latest Druid now has a dep on Web.pm :) 09:50
mberends rakudo: class myclass { method mymethod () returns Int { my Int $number = 1; return $number; } }; my $myclass = myclass.new(); say $myclass.mymethod(); # worked with Int 09:51
p6eval rakudo 5b679a: OUTPUT«1␤»
mberends rakudo: class myclass { method mymethod () returns Str { my Int $number = 1; return $number; } }; my $myclass = myclass.new(); say $myclass.mymethod(); # not with Str
p6eval rakudo 5b679a: OUTPUT«Type check failed on return value␤current instr.: 'die' pc 17360 (src/builtins/control.pir:222)␤»
masak jnthn++
mberends Casan, you probably needed just a ';' after the class declaration 09:52
masak aye, Perl 6 mandates that.
(when you write one-liners, that is.) 09:53
Casan ohh, never knew about the ; but also maybe something was checked in post the release I have installed on the w32 machine I'm currently using which enables the check. 09:57
masak yes.
if you're running a release, it was.
Casan I really should either switch to my fbsd environment, or find out how to compile the latest rakudo on w32. 09:58
mberends Casan: yes, both :)
Casan wish the former, but must be the latter, as the C# course requires visual studio, and switching all the time makes me crazy. 09:59
mberends most of us are a little crazy here, you'd be in good company 10:00
masak mberends: my $perl6lib = %*ENV<PWD> ~ '/lib'; # having trouble with this line right now. since Druid now deps on Web.pm, PERL6LIB needs to contain the latter as well... 10:01
mberends mono runs most C# in Unix
masak mberends: tricky problem. :/
Casan ;) but great checkin jnthn, now I can get past this chapter with a good feeling.
wayland76 Casan: Use Linux xen as base, and run FreeBSD and W32 on top of it 10:02
wayland76 ducks :) 10:03
mberends masak: hmm, tricky indeed. probably need to split on ':'
Casan mberends: yeah but I think icazas pursuit is pointless, the masses will always see it lacking behind in implementation, and ms would never let it come to par, there will always be something, and with this in mind the general developer or more the company does not have the balls to bet on it in the long haul.
mberends gulps
masak mberends: the problem is how to find Web.pm from Druid. that information is in proto's config.proto.
mberends oh, yes, a deeper problem by far 10:04
Casan wayland76: hehe yeah, thought about that, but.
masak :/
mberends masak: told you so (one /lib to rule 'em all) ;)
masak I need to mull over this. 10:05
wayland76 masak: I think that's legal in holland :)
( s/holland/Nederlands/ :) )
masak wayland76: you're thinking of mills. :P
wayland76 No, I'm thinking of mull :) 10:06
masak we can't introduce a dependency on proto in any way, because that's against proto's philosophy.
this needs to work without proto as well.
wayland76 (not that I use it, or anything, I just can't resist a joke)
masak wayland76: I feel I'm missing something. but that's OK. maybe it's a sign of innocence. 10:07
mberends gets it now.
wayland76 masak: Or cross-cultural miscommunication. In Australia at least, "mull" is a fairly common slang term for marijuana, which I believe is legal in the netherlands 10:08
masak ah. yes.
mberends some Dutch windmills, while protected as national monuments, are not allowed to operate because the noise might disturb the neighbors :/ 10:09
wayland76 But I don't even do coffee or cigarettes, let alone marijuana
Casan masak: I've been giving mod_perl6 vs FastCGI some thought.. have you looked into it to speed up november?
mberends in Amsterdam "coffee shop" is a joint that sells joints
wayland76 mberends: I'll keep that in mind. Somewhat pointless :)
masak Casan: yes.
wayland76 mberends: I didn't know that. I'll keep it in mind if I ever need to make more jokes :) 10:10
masak: Would you care to elaborate? :)
masak wayland76: on mod_perl6? well, the guy who writes it (forgot his nick) contacted us a few months back. 10:12
Casan jhorwitz
masak right.
he sent along a few patches that'd make November run on mod_perl6, and we accepted them, with slight modifications.
haven't heard from him since.
wayland76 ok, cool
I've been a HTML::Mason user (which likes mod_perl) in the past, so I was wondering :) 10:13
Casan he seems to be a lone runner, but good to hear its connected.
but how about fastcgi?
masak we haven't done anything with fastcgi. 10:14
Casan I have only been using mod_perl, but looked into it because matt s trout said why not :) from what I gather, enabling perl6 via fastcgi ought to be easier for the short run, but I wonder if anyone have looked into it. 10:16
masak nope. you're welcome to.
mberends HTTP::Daemon needs only two things to match fastcgi speedwise: native sockets (almost ready) and threads. Sockets will be a tempting Hackathon mini project in Oslo. 10:17
masak mberends: what's blocking sockets at present?
mberends apart from me, dunno :/ 10:18
masak $self.block()
mberends bacek++ says it's good to go
Casan ok, now my want_to list is full, I better leave irc for a while to work on my marketing research report for uni, so I can get into some coding without interruption (wishful thinking).
masak Casan: have the appropriate amoung of fun.
bacek Who call my name? 10:19
masak s/ng/nt/
mberends Casan: ok, see you soon.
masak mberends: see what you did, now you woke bacek. :)
wayland76 bacek: I didn't but you accidentally asked me about HTTP::Daemon the other day, and mberends should be able to give you an update :)
mberends bacek, I just gave your karma a nudge, that's all
bacek masak: it's only 8PM here :)
masak knows that
wayland76 bacek: masak is implying that you're a bear (or something) being woken up, and possibly wanting to eat us all for dinner :) 10:20
well, maybe implying is too strong a word 10:21
masak insinuating.
bacek mberends: I can try to wrap native libfcgi in parrot. Never did it before but it good chance to learn something new :)
wayland76 metaphorising :)
masak bacek: preved medved! :)
mberends o mea culpa
wayland76 bacek: Casan wants to do that too :) 10:22
oh wait, maybe not
bacek wayland76: I'm almost Australian bear now. And Koalas never wake up.
wayland76 no, I think I'm wrong :)
...and nor are they bears :)
well, they do wake up. Didn't you see that one in the bushfire photos? Now you know what it takes to wake one up :) 10:23
bacek masak: Ilia teach you something bad :)
masak bacek: seems so. :)
\o/ preved!
bacek wayland76: I hope that my butt will not be in this kind of fire. 10:24
masak: >_< :)
wayland76 bacek: Sydney should be safe (or safer, anyway)
masak stops juggling Russian memes now 10:25
bacek wayland76: I hope so. But who knows...
Casan wayland76: bacek is better qualified, and our desires should not be mutually exclusive, bacek for the go :) 10:26
wayland76 Like I said, I'm wrong :)
bacek Casan: As I told I never tried to do something with NCI...
wayland76 But only I'm allowed to say so, so thank you :)
Anyway, I'm supposed to be elsewhere 10:27
wayland76 teleports...
mberends bacek: during the Oslo Hackathon coming weekend I plan to rewrite the Rakudo based HTTP::Daemon (a port of the Perl 5 one) to use socket(), listen(), accept() and so on. A previous attempt stalled and crashed in masak's laptop, so it needs more care this time.
Casan vanshes
bacek wayland76: nearest BBQ? :)
masak disappears
wayland76 bacek: Well, no, but in my primitive hunter-gatherer lifestyle at the moment, I need to hunt some yoghurt and kill it before I can eat it 10:28
(or maybe not kill it -- yoghurt contains live culture, which is how you can tell the difference between it and Australia :) ) 10:29
bacek mberends: It's good. I can try to help with it (assuming very different timezones)
mberends bacek: thanks, looking forward to it. Rest assured hacking will be almost 24hr. 10:30
bacek wayland76: be careful! Friend of mine spent couple of days fighting with "living culture" after eating some yoghurts :)
mberends they shouldn't build those dairy plants near hospitals ;) 10:32
bacek returns to sleep (and hacking Parrot guts to help his evil plan to rule the World) 10:33
mberends: To use corpse as compost? :) 10:35
mberends tries not to think too much about the origin of anything he eats
wayland76 Oh, I regularly think "dead chicken" as I'm eating it :) 11:13
mberends Oh, 'live culture' versus Australia hit me only several minutes later :) 11:15
jnthn Vesele velku noc, camelfolk. :-) 11:18
mberends jnthn, good afternoon 11:19
jnthn mberends: hi :-) 11:20
mberends scrollback will show you that typed return values are much appreciated :) 11:21
jnthn Yes, I saw that. 11:22
Now we just need to finish up the cases where they don't quite work yet.
jnthn wonders when someone will find the first practical use for multi-dispatch based on return type
.oO( if they didn't already )
11:23
mberends
.oO( sounds like a want() kinda thing )
mikehh_ If you got somethin' there someone will find a use for it :-}
weather it is practical ..... 11:25
sorry :-}
as for live kulture in the antipodes 11:27
pmurias jnthn: multi-dispatch base on return types is similiar to context 11:29
jnthn: things like read :: Read a => String -> a in haskell would use that when ported over into a dynamic setting 11:30
mikehh_ BTW t/spec/S09-typed-arrays/hashes.t PASSes 11:38
mberends mikehh_: so that's all tests passing again after that, notso? 11:40
mikehh_ I got 2 TODO's passing and so ran the test separately and a SKIP also passes 11:41
that was a couple of hours ago but I had a nap after I started make spectest 11:43
jnthn pmurias: Aye, I can see a relation there.
pmurias: I really like the way that it Just Works in Perl 6 once you implement the more generic case of role-based dispatch.
(I didn't have to do anything special at all to make dispatch on return type work, just made sure stuff did Callable[::T] 11:45
)
pmurias jnthn: dispatch on return type works in rakudo? 11:50
jnthn pmurias: Sure 11:54
pmurias: Just the same mechanism that any other parametric role works.
e.g.
rakudo: role Foo[::T] { }; multi a(Foo of Int $) { say 1 }; multi a(Foo of Str $) {say 2 }; my $x = 42 but Foo[Int]; my $y = 42 but Foo[Str]; a($x); a($y); 11:56
p6eval rakudo 5b679a: OUTPUT«1␤2␤»
jnthn Int &x in a signature is really just Callable[Int] 11:57
(Or Callable of Int)
So it (and typed arrays - Positional[Int] - and typed hashes - Associative[Int]) just all falls out quite neatly. :-) 11:58
pmurias jnthn: i thought you meant something like multi a(--> Int) {1};multi a(--> Str) {"2"} 12:00
jnthn jnthn: Oh, that!
No, that's different. 12:01
And not even required in 6.0.0.
And decidedly non-trivial.
Anyways, the weather here is *gorgeous*. 12:02
So I'm going outside for a while...hopefully for a bit of a walk (got a not-quite right knee... :-() 12:03
Back later.
pmurias have fun ;)
mberends has a completely left knee and a completely right one, fortunately
masak mberends: I think it's reasonable of a Configure script to expect the dependent projects to already be in PERL6LIB. 12:12
mberends masak: yes, if proto has not provided the dependencies, proto+1 should have. 12:14
masak mberends: well, thing is, I feel a need to make Well-Thought-Out Practices for projects without mixing proto into it. 12:15
mberends masak: this landscape may be affected by planning that takes place next weekend.
masak definitely. 12:16
masak I just Want Stuff to Work Now, as usual. :) 12:16
mberends :) :) any WTOP you write will be tabled as exhibits at said meetings :) 12:17
masak mberends: Acronym Finder does not know what WTOP means. me neither. 12:21
I suppose it's not "Worker Trainee Opportunities Program"... 12:22
mberends it may be bold, but Perl 5 plays nicely with Ports, Debian dpkg tools, and OpenSolaris, so maybe Rakudo should aim to be assimilated into those rather than planning Yet Another Package Installer. ... it's Well-Thought-Out Practices!
masak I'm all for making proto obsolete. 12:23
it'll be the prettiest corpse on the block. :)
mberends Web Transitional Object Packager 12:25
masak that sounds Very Painful. 12:26
mberends yeah, the Transitional has me worried too.
masak all those words worry me. 12:27
mberends --worry--
ihrd hi there 12:29
pmichaud: are you there?
masak ihrd: pmichaud usually makes his presence known at the beginning of his day by committing the spectest statistics. so my guess is "no". 12:30
general question: parsing XML in Rakudo today, what's my best shot? 12:32
masak jonalv: OH HAI 12:32
jonalv o/
ihrd masak: ah :( can`t catch him to ask my question abour :pair patch 12:34
Jonathan said pm have reson to do not aplly it
jonalv is planning to use masak++ and Perl6++ to parse data dumps from Eve online today. Perhaps he might even learn some Perl6 in the process.
masak ihrd: you can always @tell via lambdabot. 12:36
@help tell
lambdabot tell <nick> <message>. When <nick> shows activity, tell them <message>.
masak lambdabot: tell
@tell
lambdabot Plugin `tell' failed with: Prelude.head: empty list
masak hm.
ihrd masak: I know, but I used private messages instead 12:37
masak ihrd: oki. 12:38
mberends masak: World Takeover Obscuritization Plan 12:51
mberends cannot do much constructive work today, brain numbed by O'Reilly Active Directory book 12:54
mberends gilimanjaro, which part of NL? I'm in Vught. 14:01
masak can Rakudo's internal rules be used in user-written grammars? 14:11
masak is tired of writing the matching code for real numbers
mberends masak: <ident> <ws> etc work fine, if that's what you mean 14:12
masak I think so, yes. 14:13
mberends and <.ident> <.ws> to (prematurely) optimize 14:13
masak seems to be <dec_number> I want. 14:14
masak rakudo: say 42 ~~ /<number>/ 14:15
p6eval rakudo 5b679a: OUTPUT«Unable to find regex 'number'␤Null PMC access in invoke()␤current instr.: 'parrot;PGE;Grammar;' pc 270 (EVAL_16:116)␤»
masak submits rakudobug
:/
mberends rakudo: my $a="abc123.45def"; $a ~~ / <digit>+ /; say $<digit>[]; 14:17
p6eval rakudo 5b679a: OUTPUT«123␤»
mberends rakudo: my $a="abc123.45def"; $a ~~ / (<digit>|<dot>)+ /; say $0[]; 14:54
p6eval rakudo 5b679a: OUTPUT«123.45␤»
mberends rakudo: my $a="abc123.45def"; $a ~~ / (<digit>|<dot>)+ /; say $0; 14:57
p6eval rakudo 5b679a: OUTPUT«123.45␤»
pmichaud masak: One can get to the internal rules, yes, but they aren't available by default. 15:01
masak: Currently in rakudo it would be / <Perl6::Grammar::number> /
I suspect "officially" it ought to be / <STD::number> / 15:02
pmichaud rakudo: my $a = "abc123.45def"; $a ~~ / <Perl6::Grammar::number> /; say $/ 15:04
p6eval rakudo 5b679a: OUTPUT«123.45␤»
mberends neat 15:05
pmichaud rakudo: my $a = "123 xyz-foo 456"; $a ~~ / <Perl6::Grammar::identifier> /; say $/
p6eval rakudo 5b679a: OUTPUT«xyz-foo␤»
mberends gilimanjaro: is your IRC client unstable? could you try another one? 15:29
masak gilimanjaro: agreed. you're creating a bit of noise just by coming and going. 15:30
masak gilimanjaro: HELLO? :) 15:33
masak rakudo: "foo" ~~ / foo {{ new $P1, "Str"␤assign $P1, "OH HAI\n"␤"print"($P1) }} / 15:34
p6eval rakudo 5b679a: OUTPUT«OH HAI␤»
masak can the above be written any shorter? 15:36
masak rakudo: "foo" ~~ / foo {{ "print"("OH HAI\n") }} / 15:37
p6eval rakudo 5b679a: OUTPUT«OH HAI␤»
masak rakudo: "foo" ~~ / foo {{ "say"("OH HAI") }} / 15:38
p6eval rakudo 5b679a: OUTPUT«OH HAI␤»
masak gilimanjaro: seriously. that's damn annoying.
mberends i'm trying to email him
masak mberends++
gilimanjaro--
mberends gotta keep these dutchies in line :/ 15:39
masak indeed.
mberends @tell gilimanjaro Hallo Gilion, kijk even in je email voor wat IRC tips en trucs! 15:46
lambdabot Consider it noted.
masak jonalv: <-[<]>* 15:47
masak jonalv: (see S05) :) 15:48
masak mberends: I get the rest, but wut does 'even' mean in the above sentence? 15:52
'also'?
mberends no, it is a kind of 'briefly' or 'just' 15:53
masak ah.
pmichaud masak: did you catch my note about using the Perl 6 grammar rules? 15:55
rakudo: my $a = "abc123.45def"; $a ~~ / <Perl6::Grammar::number> /; say $/
p6eval rakudo 5b679a: OUTPUT«123.45␤» 15:56
mberends gilimanjaro, did you fix something? 16:06
mberends gilimanjaro, did you fix something? 16:07
mberends gilimanjaro, check your email! 16:08
mberends gilimanjaro, see irclog.perlgeek.de/perl6/today 16:11
pmichaud anyone remember how to kickban? 16:12
dalek kudo: 679e480 | pmichaud++ | docs/spectest-progress.csv:
spectest-progress.csv update: 359 files, 10298 passing, 5 failing

   S32-hash/reverse.t aborted 5 test(s)
16:29
LylePerl hi 16:35
masak LylePerl: greetings. 16:48
LylePerl Just tried to build the latest Rakudo against the latest Parrot r38087 on Vista but it failed... 16:49
Masak: hello again
masak LylePerl: what failed?
LylePerl mingw32-make: *** [perl6_s1.pbc] Error -1073741819 16:50
Parrot built fine, but Rakudo gave this error 16:51
masak LylePerl: and you did a 'make realclean' before you built both, I suppose?
LylePerl The Parrot version that Rakudo fetches automatically worked fine...
I'll try that... 16:52
masak and you're not trying to make latest-release Rakudo against bleeding Parrot? :) 16:53
LylePerl Would I get bleeding parrot by doing an "svn update"? :/ 16:54
masak I guess you would. 16:55
LylePerl Then I think I am :?
masak you'd want bleeding Rakudo too if you're running bleeding Parrot.
LylePerl Do you get bleeding Rakudo doing a "git pull"?
masak depends on how you got it from the beginning. 16:56
if you want a brand new one, you'd use 'git clone'.
if you already have a git repo, then 'git pull'.
LylePerl I got it with git clone git://github.com/rakudo/rakudo.git 16:57
Then updated with git pull
masak ok.
LylePerl Sorry I'm being a bit dense :(
masak then you have bleeding Rakudo.
not at all. :)
LylePerl I'm not sure if you saw. I'm documenting the things I have to learn into a guide on helping with development.. 16:58
So hopefully when people ask similar questions in the future you'll be able to just point them at my guide...
masak sounds a noble cause. 16:59
and yes, I saw that :)
was away on a trip, but I took the time to backlog when I could.
LylePerl shows dedication :) 17:00
masak more like addiction :P
LylePerl lol 17:01
parrot has rebuilt, just trying rakudo
Nope, same error 17:02
Would that kind of thing get submitted as a bug?
masak definitely.
LylePerl Ok, that'll be the next bit of my guide then :) 17:03
masak :)
send an email to [email@hidden.address] -- but you know that, I suppose.
LylePerl Not through RT? Or does it have the same effect? 17:04
masak it's the only way to submit bugs (that I know of).
LylePerl Do you know how to get the revision number from git? 17:05
Is it just the latest commit hash? 17:12
masak aye. 17:15
jonalv I can haz LaTeX output in rakudo 17:58
masak :)
jonalv++
jonalv thanks masak++
masak "club of mutual appreciation" :P 17:59
jnthn LaTeX...nice. :-) 18:08
The collection of Perl 6 modules keeps on growing. :-)
masak it does.
mberends jonalv: looks interesting, can I use that for Pod to LaTeX conversion?
jnthn has sore feet from his walk 18:09
jonalv LOL
mberends: I have no idea of what you mean
masak: help :)
masak jonalv: Pod is a documentation format for Perl.
jonalv masak made me do it
masak that's true. :)
I'm teaching jonalv Perl 6 at present.
I think he likes it, but he's also a bit shy. :) 18:10
mberends jonalv, I'm trying to understand what kind of 'can haz LaTeX' you're doing.
masak jnthn: did you see my last small project on github? it emulates 'perl6 -ne' and 'perl6 -pe'.
jonalv it might be worth mentioning that I have not written many lines of Perl5 and that I come from Java world...
masak mberends: it's not a module. yet. :)
jnthn masak: Yes :-)
masak jnthn: I have plans to expand it to accept files, too. like this: "perl6p -e '...' file1 file2" 18:11
jnthn I guess it's in part a workaround for a lack of S19 implementation? 18:12
masak aye.
I think [particle]1 will eventually get to that, but I wantz it liek now. 18:13
jonalv masak: you are evil :) 18:14
masak feels he doesn't have jonalv's full support :P
jonalv mberends: I made a script that downloads market data for the game Eve online and compiles it and presents it using LaTeX. Nothing fancy at all... 18:15
masak mberends: but he has big plans for it, he says.
I'm sure before long, we'll be seeing a module or two... 18:16
:P
skids std: my $a = "2"; :10[4, $a];
p6eval std 26187: OUTPUT«ok 00:04 38m␤»
jonalv masak: It depends. Online games has a tendency to eat up all time that could be used for coding you know... :)
masak jonalv: Perl 6 is the ultimate online game. 18:17
(note lack of smiley.)
jonalv masak: noted
masak almost finished his 'Week 4 of Web.pm' blog post
mberends jonalv, just saw eve-central.com for the first time. Looks like something I would be interested in too, except using actual stock markets. 18:21
masak "Predicting the stock market using Perl 6 grammars" by mberends. 18:22
I'd buy that book.
mberends that's be Perl 7 grammars, methinks
masak oh right.
by the way, when will Perl 7 be ready? 18:23
I'd like a very precise estimate, kthx.
mberends the lookahead in Perl 6 is finite by design.
jnthn *groan*
masak mberends++ # bad puns
mberends by Easter? 18:24
masak mberends: let's make it Easter.
skids the reason for the credit crisis is that banks need perl6 to balance their books :-)
So give us TARO money :-)
erm TARP.
You know today WOULD be the appropriate dayto hide an easter egg in rakudo. 18:27
mberends yep, didn't one pop out at you when you parsed a recursive regex? ;) 18:28
masak oh, those are easter eggs? 18:30
skids Hehe. Maybe make $θ evaluate to "Just another perl hacker."
masak and here I thought they were bugs all along...
skids worries that everyone got quiet after easter egg talk... 18:45
jnthn /kick dalek && git push 18:46
;-)
masak suddenly gets skids' visual $0 pun 18:54
mberends is that a theta? 18:56
skids Should be, I pasted off a google search for "theta"
mberends or a \C[COMIC EASTER EGG] 18:57
skids is american, genetically incapable of composing keyboard characters.
masak skids: you should try Emacs. 18:58
mberends has a uk keyboard, logically incapable of Just Working
skids uses emacs actually
masak skids: then you should try LEIM. 18:59
it does that for you.
LEIM真是很好.
skids Yeah, I had xchat displaying something other than boxes with numbers in them before my HD crash, now not so much. 19:01
Settings don't work in the new version. :-( 19:02
Or maybe I don't have a font or something.
I dunno, I get back to it someday.
mberends same problem here, maybe someone at the hackathon can help ;-) 19:04
skids Can someone think of an example of "Object context"? 19:11
masak skids: no, what is it? 19:21
skids Probably just cruft, it's in E02 (or something) I was reading earlier.
masak aha. 19:22
yes, it can't be found in the synopses.
perhaps that one is now known as 'item context' or some such.
pmichaud I suspect 'item context' 19:22
skids IIRC it was a subclass of item context alongside numberical and string and boolean. 19:22
skids well subcontext 19:23
skids rememers to choose words carefully.
Especially when yesterday I was having fun citing how many different ways the word "context" is overloaded. 19:24
pmichaud well, the meaning of "context" depends on its context :-)
skids :-)
masak human language is plastic that way. 19:25
jnthn has the latest Rakudo built on his laptop, but didn't back any clothes yet. Hmm...priorities. 19:27
pmichaud yes, I'm starting to fall behind on my trip preparations as well. 19:28
jnthn Gotta leave the appartment around 5:40am tomorrow. :-| 19:29
pmichaud for me, the trip has reasonable departure, layover, and arrival times. :-) Except possibly for my return trip -- only 90 minutes 19:32
(90 minutes to get through customs and to my next flight) 19:33
jnthn I got a 40 minute connection to make tomorrow.
But, within Schengen zone.
(= no checks to go through anywhere, afaik) 19:34
Still a bit tighter than I'd like, but the flight with a longer connection time meant connection was more of a detour and cost twice as much!
pmichaud I suspect you'll make it just fine. :-) 19:35
skids marvels at the utter brokenness of OpenOffice's SVG export. 19:36
pmichaud uses this as a good time to make a backup of his desktop
skids abrij.org/~bri/p6context_tempurl.png 19:39
pmichaud I don't see 'eager', 'lazy', or 'hyper' in that :-) 19:40
skids Well, I didn't put eager and lazy in there because actually other than S07, which is still draft, I don't think the rest call that a context yet. So it might be avoidable. 19:41
And I didn't see hyper "context" anywhere yet. 19:42
skids eager/lazy are really an adjective on the other contexts e.g. "eager list context" 19:44
rvalue/lvalue are almost as well, but probably not as cleanly 19:45
masak sub/method/class/role/grammar/regex/token/rule can be considered contexts. 19:47
jnthn pmichaud: I suspect so too...otherwise I'd have asked for something else to be booked! 19:48
skids masak: Almost anything "can be considered" a context :-) 19:50
masak skids: I guess. :)
skids It's what we expect people to think of when we say "context" with enough emphasis/focus to not be taken as a plain english word. 19:51
masak says _context_ out loud
skids In which case if it gets too overloaded the effect of doing so is limited.
skids Which is one of the reasons why you cannot make sense of any graphic library these days since everying is either a "screen" or a "frame", except in the other library where it's the opposite. 19:52
mberends :) and viewport, and box, and area. sigh. 19:54
masak overloaded words are everywhere in programming.
"manager". ugh. 19:55
pmichaud "user"
jest rakudo: say "hello"
pmichaud "data"
p6eval rakudo 679e48: OUTPUT«hello␤»
skids oh lest I foget my favorite: "window"
So anyway if I have a point it's that we limit our vocabulary at a significant cost. 19:56
And CS majors need to take some literature classes or something.
And people shouldn't frown on intriducing new words not normally seen in code. 19:57
And aiksaurus should be mandatory in development kits. 19:58
mberends perl goes farther than most languages to acknowledge the similarities to spoken languages, and #perl6 is frequented by linguists of both kinds.
making it rather special 19:59
skids One of the reasons I like perl :-)
mberends rakudo: say chr(0x23cf) 21:15
p6eval rakudo 679e48: OUTPUT«⏏␤»
mberends rakudo: say "\c[EJECT SYMBOL]"
p6eval rakudo 679e48: OUTPUT«⏏␤»
jnthn -> sleep and travelling, see y'all sometime over the next few days, some of you in person. :-) 21:18
mberends jnthn: safe journey, see you soon ☺ 21:20
skids lol @ mutators.t 21:27
" interface tentatively not entirely disapproved of by all(@Larry) " 21:28
mberends " they all sat on the fence " 21:30
mberends " nobody dared offend anyone by speaking out " 21:31
literal ? 21:35
mberends skids: that "not entirely disapproved" interface is never used ifaics. 21:45
skids well, it made it into the Synopsis and hasn't been gutted. I suppose when it starts to get implemented there may be closure (no pun intended) 21:46
mberends Casan: mutators are almost C# properties: xrl.us/gnxp (from pugs/t/spec/S12-attributes/mutators.t) 21:47
mberends skids: the url has nice examples 21:49
mberends needs sleep 21:53
skids rakudo: class A { has $.a is rw }; my $b = 42; my $c = A.new; $c.a := $b; $c.a.say; 21:56
p6eval rakudo 679e48: OUTPUT«rtype not set␤current instr.: 'parrot;PCT;HLLCompiler;panic' pc 146 (src/PCT/HLLCompiler.pir:102)␤» 21:57
skids rakudo: my $b; sub lb is rw () { return $b; }; my $a = 42; lb() = 3; $b.say; lb() := $a; $b.say 22:10
p6eval rakudo 679e48: OUTPUT«rtype not set␤current instr.: 'parrot;PCT;HLLCompiler;panic' pc 146 (src/PCT/HLLCompiler.pir:102)␤»
skids rakudo: my $b; sub lb is rw () { return $b; }; my $a = 42; lb() = 3; $b.say; 22:11
p6eval rakudo 679e48: OUTPUT«3␤»
skids Ah, because it's a compile-time error, OK.
skids wonders if the spec is clear on := and lvalue subs. 22:13
(And whether there's a terminology to distinguish lvalues from lvalues-that-may-be-bound.)
rakudo: my $b; sub lb is rw () { return \$b; }; my $a = 42; lb() = 3; $b.say; lb() := $a; $b.say 22:15
p6eval rakudo 679e48: OUTPUT«rtype not set␤current instr.: 'parrot;PCT;HLLCompiler;panic' pc 146 (src/PCT/HLLCompiler.pir:102)␤»
skids can't blame a guy for trying. 22:15
rakudo: my $a = 1; my $b = 2; $a = \$b; $b = 3; $a.perl.say; 22:30
p6eval rakudo 679e48: OUTPUT«3␤»
skids Are those supposed to autodereference under .perl?
Casan how do I leave a message to mberends using the bot? (do I need to be registered?) 23:12
literal just type: @tell mberends foo bar
wayland76 (with /msg lambdabot in front if you want things a little more private) 23:17
Of course, mberends can retrieve the messages publicly, and then everyone would see what you said :)
Casan @tell mberends regarding p6 mutators, C# properties: afaics the C# properties offer the encapsulation by allowing a private attribute in the class to be given a value from the class using it through $classinstance.attritbute=value; and it will go through a mutator process before the value is stored. the example provided at xrl.us/gnxp is just using the mutator concept also used by java where you have to specify eg a set_Attribute() and there 23:20
lambdabot Consider it noted.
Casan wayland76: should do it only to avoid flooding the channel. nothing private here. :)
literal looks like it got cut off at "set_Attribute() and there"
wayland76 That message got cut off after "and there". You'll need to send another message :)
Well, I've sometimes seen people tell things, and then someone else chimes in and answers their question :) 23:21
Casan heck, I'll send an email instead :)
thanks for the @tell btw. 23:22
skids tries to figure out what Casan's distinction is 23:30
Casan skids: first off, I have no beef with it. It only came up as I have to take a CS class touting C# and to be less bored about it, I try to do the examples/tasks in p6 simultaniously, which also gives me the opportunity to see how C# people will experience p6, etc. 23:44
skids I'm just trying to understand what the difference is, is all.
Casan skids: C# properties allows you to define a method say: public string Attribute { get { return attribute; } set { attribute = value; } } in a class having a private string attribute; 23:48
skids: and then in the caller say $classinstance.Attribute=value; whereafter the public string Attribute property method is used to store in the private attribute of that class. 23:49
skids So the difference is that the get/set routines are syntactically placed near the attribute itself in the definition? 23:50
Casan skids: offers some encapsulation(the setter can limit to a range of values, which we in p6 can do by a where trait on the attribute) and simplified syntax to some, as opposed the standard get/set routines and the method syntax in the caller.
skids Right, but the mutators do not use the method syntax in the caller, as they are lvalue subs. 23:51
they use Obj.Attribute = val.
Casan I haven't yet gotten my head around the lvalue sub concept so I can't tell. 23:52
skids lvalue sub returns something that can be assigned to. So if you had sub x is rw { return $b } and you did x() = 3, $b would be assigned 3. 23:53
(assuming $b was in scope when &x was defined)
Casan ok, I'll just try some code to see what happens and to understand. 23:55
skids Yeah, well, unfortunately it isn't implemented in rakudo yet. 23:56
Wouldn't be surprised if, when it does get implemented, it might get some sugar so the accessors can look traitish in the simple case. 23:57
Casan ohh, heh ok, better let it be for now then. 23:59