»ö« | perl6-projects.org/ | nopaste: paste.lisp.org/new/perl6 | evalbot usage: 'perl6: say 3;' or rakudo: / pugs: / std: | irclog: irc.pugscode.org/ | UTF-8 is our friend!
Set by sjohnson on 21 August 2009.
00:01 rafl left 00:02 rafl joined 00:06 nbrown_ left
carlin having spent quite a while checking and rewording what is only a few lines of changes I think I might just take a deep breath and commit it 00:16
jnthn :-) 00:17
Tene do it!
jnthn (attention to detail)++
Tene join us!
jnthn carlin++
Tene just commit! no review!
s1n "one of us, one of us"
Tene Confidence gets the ladies!
jnthn I CAN IMPLEMENT PERL 6. 00:18
jnthn sits waiting for the ladies to run in through teh door.
Tene The "poly" in "polyglotbot" is there for a reason.
My gf and I chatted with a cute girl about parrot and lolcode in the airport yesterday. 00:19
Didn't get her number, though. :(
carlin What about her integer? 00:20
or string?
00:33 beggars joined 00:34 beggars left 00:40 arthur-_ left 00:43 user_8580 joined 00:44 dukeleto left 00:54 user_8580 left
jnthn TimToady: Glad that was a fossil. There is also some stuff on traits in S06 that looks a bit dated. 00:55
cognominal jnthn, that the Perl 6 version of "battery included" : everything, including the KitchenSink
TimToady it's in there so we can call people liars when they claim that Perl 6 includes everything but the kitchen sink. 00:56
00:56 nihiliad joined
jnthn Amusingly enough, it's a role done by things that can act as a sink. 00:56
cognominal so the name
jnthn I think it falls under the same category as use MONKEY_TYPING. It's just too tempting not to call it that. :-) 00:57
cognominal TimToady, is there a way to hide predefined type like Rat and Cat so that the examples that use these name for user defined classes (or roles, I don't remember) do not conflict? 00:59
TimToady sure, declare them 'my class Rat' etc
all predefineds are in an outer lexical scope 01:00
cognominal ok, thx
TimToady the CORE setting is supposed to be officially outside of the user's code, lexically speaking
not sure rakudo does it that way yet though 01:01
pmichaud it doesn't yet.
it will.
TimToady STD does, however
cognominal so one does not need the "my"?
TimToady well, shouldn't generally, unless the outer scope and the current scope share the same pacakge 01:02
cognominal on the other hand, if I want to know if I shadow any name?
TimToady what language gives you that?
seems like an anti-feature :)
cognominal I am thinking out loud, I don't pretend it makes any sense :) 01:03
TimToady works for me
ruoso cognominal, a command-line switch could activate this kind of warnigns... 01:04
"definition of class Cat in foo.pm:40 masks outer Cat definition"
but that should probably only be done for type names
TimToady well, you could just declare declarator:<fresh> to be the opposite of augment 01:05
of course, "fresh" in French doesn't mean unique, as in "I need a fresh shirt" (or so I'm told by my wife) 01:06
01:07 Whiteknight left
cognominal nope, it has the same meanings than in english : recent, new, not altered 01:09
ruoso in some latin-based languages it might mean cold
wayland76 It can do that in English, too
TimToady in fact, that fresh is arguably the normal meaning of "my", so maybe a declarator like "patented" :) 01:10
cognominal in french too, but a re"fresh"ing cold not an agressive one.
wayland76 Although I have the impression that it means "the sort of cold that gets your blood flowing, and brings a flush to your cheeks"
cognominal wayland76, indeed
too bad, that andidote rx, an excellent french dictionnary does not have ethymology 01:11
etymology! 01:12
jnthn "fresh" is actually used in academic computer science.
See some of the work by Andy Pitts
www.cl.cam.ac.uk/~amp12/papers/index.html
(Who also happens to be an excellent lecturer...)
It is used in the area of variable bindings too. 01:13
Anyways, I need sleep
night all
TimToady night
s1n +<= really? doesn't seem very dwimmy 01:14
TimToady you can write [+<]= to make it clearer
cognominal I am still trying to figure if signatures and multimethods gives Perl 6 everything useful that pattern matching gives to haskell
s1n oh yeah cause that's much clearer lol
TimToady is hurt, and sticks out his lower lip, trembling... 01:15
carlin [+<]= looks like some sort of smiley 01:16
TimToady cognominal: I suspect Haskell will always be able to express more abstraction more abstractly than Perl 6, in an abstract sort of way
however, we're certainly aiming at providing all the power of, say, Erlang in that regard
we aren't aiming for Prolog, quite, insofar as signatures don't do unification, at least not by default 01:18
cognominal There is a trend, scala is doing pattern matching too. 01:19
TimToady well, signatures is sort of the obvious way to do it in Perl 6
01:20 SmokeMachine joined
TimToady and binding is just another name for pattern matching 01:20
ruoso in fact, a Web framework that uses multi signatures to match requested url was already envisioned
cognominal I have yet to appreciate all the powers of signatures, caputrues, parcels and multidimensional stuff in Perl 6
TimToady metoo :) 01:21
ruoso rakudo: my $a = Multi.new; $a.push(sub (1) { say 1 }); $a.push(sub (2) { say 2 }); $a.(1); $a.(2) 01:22
TimToady ENOSERVER
ruoso oosp
just because my local rakudo is b0rk3ff
01:22 b_jonas left
ruoso does that work in rakudo already? 01:23
carlin ruoso: I get: 01:24
1
2
ruoso so it works ;)
cool
we only need "reduce with varying-arity" for the web framework to be ready
TimToady, what's the current spec status for "reduce with varying-arity"? 01:25
TimToady what, you think I have the spec memorized? :) 01:26
ruoso TimToady, heh... actually that was something to be spec'ed
there was some pondering if it would be supported at all
TimToady well, I think it's more important to spec partial binding, and then reduce and for would both fall out of it 01:27
ruoso indeed... is there a plan for partial binding already?
I remember some roles were added to S07 in that sense 01:28
PushBackIterator iirc
01:30 sri_kraih left
sjohnson how TimToady long time no see 01:36
howdy*
01:37 wayland76 left 01:39 [particle] joined 01:40 [1]jaffa8 joined 01:42 gabiruh joined 01:43 kolibrie left, kolibrie joined
sjohnson rakudo: use constant BUTTER => 'milk'; say BUTTER.WHAT; 01:44
looks like i broketed it 01:46
s1n sjohnson: it's been dead for a while 01:47
sjohnson s1n: k 01:52
01:53 nErVe joined 01:55 jrtayloriv left 01:56 jaffa8 left, [1]jaffa8 is now known as jaffa8 01:59 jrtayloriv joined 02:01 nErVe left 02:17 reqamst left 02:22 wayland76 joined 02:44 nbrown_ joined 02:55 alester left 02:59 ihrd joined 03:02 nbrown left 03:03 mepplock joined 03:05 Limbic_Region left, mepplock left, SmokeMachine left 03:06 [1]jaffa8 joined, SmokeMachine joined 03:09 jaffa8 left, [1]jaffa8 is now known as jaffa8 03:12 molaf joined 03:16 SmokeMachine left 03:17 SmokeMachine joined 03:18 meppl left 03:20 donaldh left, donaldh joined 03:33 nihiliad left 03:37 frew__ joined 03:38 molaf left 03:40 frew left 03:42 wayland76 left 03:56 patrickas left 03:58 synth left 04:00 wayland76 joined 04:04 tak11 left 04:30 zloyrusskiy joined, jauaor joined 05:08 hercynium left 05:09 yves left, yves joined 05:11 hercynium joined, wayland76 left 05:16 justatheory left 05:40 orafu left, orafu joined 05:59 hercynium left 06:00 eMaX joined, dukeleto joined 06:10 kyle_l5l joined 06:18 sri_kraih joined 06:23 Su-Shee joined
Su-Shee good morning :) 06:23
moritz_ oh hai 06:24
06:25 guest_007 left 06:31 targetsmart joined 06:36 targetsmart left, targetsmart joined 06:48 wayland76 joined 06:49 rfordinal joined 07:04 cxreg left, cxreg joined
dukeleto 'ello 07:05
moritz_ good day dukeleto
dukeleto moritz_: what are you hacking on today? 07:06
moritz_ dukeleto: not much perl 6 related, I fear 07:08
and if I do, it will be an article for a German it magazine
wayland76 I managed to beat xorg into submission (thanks to #xorg and E17), and now have multiple monitors :)
Su-Shee moritz_: another ix one?
moritz_ Su-Shee: "Sonderheft Programmieren" (heise) 07:09
Su-Shee moritz_: didn't they just had one? 07:10
moritz_ Su-Shee: it seems so, but it's a different one ;-) 07:11
Su-Shee gets confused. :)
moritz_ Su-Shee: if Alexander Neumann promises to publish and pay us it's fine by me if they release two of them ;-)
Su-Shee moritz_: they can published one monthly if I had a saying. readers are really missing more programming stuff. 07:12
moritz_ anyway, it's mostly a copy of the first article of the previous series (about design and state of Perl 6) plus a few updates and enhancements 07:14
Su-Shee moritz_: go, write a book. I'll buy it. 07:16
moritz_ Su-Shee: no, you'll get the editor's issue for free ;-)
Su-Shee moritz_: contrary to popular believes, you usally don't get 10 or 20 issues to pass around :) 07:17
moritz_ Su-Shee: I know; but if you're the editor you'll get one anyway ;-)
Su-Shee ah. now I get it. I'm really slow today. :) 07:19
07:20 donaldh left
Su-Shee moritz_: don't you want to go to O'Reilly, for example? 07:20
07:20 donaldh joined
Matt-W Morning 07:20
ihrd Morning for you, but Evening for me :) Hi 07:21
Matt-W Wouldn't mind skipping today to be honest 07:22
would like it to be the evening now
carlin wants it to be morning again
Matt-W I've got the energy now
I might not have it later but it's aikido testing tonight so I need it! 07:23
moritz_ Su-Shee: I'm not sure if I really have enough energy for doing it really professionally 07:24
Su-Shee moritz_: you're writing anyway. consider it a range of a little more extensive blog postings. 07:25
moritz_ Su-Shee: you mean like chromatic is doing it these days? 07:32
Matt-W moritz_: That obfu is very scary
moritz_ Matt-W: thanks 07:33
Su-Shee moritz_: he's a good writer. 07:34
carlin how do I generate a random number? 07:42
moritz_ with rand or pick 07:43
carlin Ah, pick what was what I was looking for, thanks :) 07:44
07:47 maerzhase joined 07:50 finanalyst joined 08:07 mzedeler joined 08:10 ihrd left 08:13 riffraff joined 08:14 al left
Matt-W moritz_: I'm not sure I intended a compliment :P 08:15
moritz_ is glad to see that targetsmart found his way into #perl6
Matt-W: I know. I took it as such nonetheless :-)
cotto What kind of interesting problems are best solved by mutual recursion? 08:27
08:31 reqamst joined
mzedeler When I was working on my posting regarding Range objects, I found a number of obvious tests that should be added as well as some clarifications to the spec. What to do to get commit access to pugs repository? 08:32
moritz_ mzedeler: you just did the most important step: asking here :-)
mzedeler :-)
08:32 rfordinal left
moritz_ mzedeler: next step: tell me your email address (by private message if you fear spam) and desired nickname 08:33
mzedeler [email@hidden.address] and nick "mike" or "mzedeler" if "mike" has already been taken. 08:34
Or maybe just "mzedeler".
moritz_ mzedeler: you should have mail by now 08:36
mzedeler Yap. Great. Thanks!
moritz_ mzedeler: it's a custom to add yourself to AUTHORS as a first commit (and to test your commit bit) 08:37
mzedeler Ok. I'll do that. 08:38
Matt-W mzedeler: See, it was easy 08:40
08:40 Matt-W sets mode: +o moritz_
Matt-W Oh and another person who begins with m 08:40
Just what we need
mzedeler :-)
Matt-W mzedeler: Expect a lot of tab completion mistakes
mzedeler When do one use tab completion on author handles? 08:41
Matt-W IRC nicks
mzedeler You are way ahead of me :-)
08:41 agentzh left
mzedeler Thank you for the help. Now I'll add some more tests and things to the spec. As I have understood, spec changes are automatically posted at perl6-language, right? 08:43
moritz_ mzedeler: right 08:45
mzedeler: if you add tests to file that rakudo runs, please make sure they still pass after your additions... 08:46
mzedeler: if they don't pass, mark them with #?rakudo todo 'reason' or #?rakudo skip 'reason'
mzedeler Yes. I'll probably be back here when I have something to commit.
moritz_ see t/spec/README for more information 08:47
mzedeler Yes. I've taken a look at it already. 08:48
Thanks for the help.
I'll be off now.
08:48 b_jonas joined 08:49 mzedeler left
jauaor wonders if '.$' is a good symbol name for 'self' 08:57
b_jonas isn't self called $_ these days? 08:58
jauaor mm.. 08:59
08:59 ejs joined
b_jonas or let's say it the other way, perl6 doesn't have a self that's scoped for every function only (like in C++ or smalltalk etc), but you can localize $_ anywhere and that's used as the implicit self in .methods 09:00
moritz_ b_jonas: no 09:02
$_ and self are not related at all 09:03
self is scoped to the method
.foo calls $_.foo
but $.foo calls $( self.foo )
so there's a shortcut for both
b_jonas S12- says there's a self
I see 09:04
strange
I was just hoping then 09:05
09:05 Chillance joined
moritz_ aliasing $_ and self interacts badly 09:06
consider a method that contains a for-loop
for @foo { $_ here is no the invocant }
09:07 ejs left
moritz_ so you can't use method calls easily within that for-loop 09:07
at least not on $_
09:09 ejs joined 09:10 JarJarBinks joined 09:13 donaldh left 09:15 iblechbot joined 09:18 donaldh joined
jnthn morning, #perl6 09:20
moritz_ oh hai jnthn 09:21
09:24 mikehh left
jnthn Rakudo day it is. 09:26
09:35 rgrau joined, rgrau is now known as kidd`
wayland76 3 1/2 cheers :) 09:37
09:52 rfordinal joined 10:05 M_o_C joined 10:09 kyle_l5l left 10:22 jaffa8 left, jaffa8 joined 10:29 ruoso left 10:33 nbrown_ left 10:40 guest_007 joined 10:56 bpetering joined
bpetering phenny: tell masak i'd like a word (preferably 'y0') when you're around. :) 11:00
phenny bpetering: I'll pass that on when masak is around.
11:01 bpetering left
wayland76 Would a "yo-yo" from me do? 11:07
11:15 M_o_C left
Su-Shee can i have perl 6 please now? I'm getting confused constantly mixing both perls. 11:18
moritz_ Su-Shee: sure. rakudo.org/how-to-get-rakudo 11:19
Su-Shee :))
11:20 donaldh left
Su-Shee already installed this month release. excitement done. :) 11:20
11:20 donaldh joined
moritz_ isntalling is not enough. Writing programs is the key! 11:24
b_jonas I've already installed this month's release of perl 5
the stable release that is
Su-Shee moritz_: that's what I'm acutally doing right now. a little comparison to show in "contemporary perl 5" "perl 5 with moose" and "perl 6" and this really makes my brain hurt. 11:25
-in 11:26
11:26 SmokeMachine left
moritz_ knows that feeling very well 11:29
Su-Shee I want to show the niceness of perl6 to convince everyone to switch for the rewrite. 11:31
11:32 roberto___ joined, roberto___ left 11:37 soson joined
s1n moritz_: wow, rakudo printed that obfu _really_slowly_ 11:40
carlin it gives it a nice effect 11:41
b_jonas Su-Shee: tell us when you publish it please 11:47
Su-Shee b_jonas: it's office-code. I was thinking about it yesterday and decided not to chose something from the core business logic (which I can't publish of course) but something more "meta". 11:50
11:50 targetsmart left
b_jonas oh, I see 11:53
pity
Su-Shee no, that's why I try for something less important so I can blog it :) 11:55
11:56 lasse joined, lasse left 11:58 soson left 12:00 kidd` left 12:01 eMaX left 12:03 meppl joined 12:07 payload left 12:08 missingthepoint joined 12:09 M_o_C joined 12:11 szabgab joined 12:14 takadonet joined
takadonet morning all 12:14
missingthepoint morning takadonet :) 12:16
12:17 mikehh joined, eMaX joined 12:20 abra joined 12:22 ruoso joined
takadonet wow.... really quiet today 12:24
moritz_ yes, jnthn is coding today, not spreading bullsh*t as usually :-) /me runs quickly 12:25
takadonet good
moritz_ and masak is missing!
jnthn is discovering that embedding Perl 5 from Parrot = segfault :-/ 12:29
moritz_ I think that parrot internals are pretty scary 12:30
and so are perl 5 internals
if you mix them... oh my
ruoso jnthn, you might want to take a look in the original smop p5 integreation written by pmurias 12:32
it uses Coro::State to be able to recurse smop -> p5 -> smop -> p5
jnthn, take a look at re-smop/p5/src/*.c 12:33
jnthn oh ouch, I think I know why it was exploding
(We weren't actually doing the PERL_SYS_INIT3. damm.)
carlin night all 12:34
12:34 carlin left
moritz_ good night carlin_ 12:34
12:34 moritz_ sets mode: +o ruoso
jnthn ruoso: Thanks. I'm just getting something very lightweight going now, will look at doing Bigger And Better things in the future though. :-) 12:34
12:39 masak joined
jnthn masakatlast \o/ 12:39
masak sorry about the delay. 12:40
phenny masak: 24 Aug 23:41Z <s1n> tell masak did you forget to commit some stuff in Web.pm? i just pulled the tests and either i am testing wrong or they are failing; for example, it can't find Web::Happle
masak: 11:00Z <bpetering> tell masak i'd like a word (preferably 'y0') when you're around. :)
masak s1n++ # testing Web.pm in various ways
missingthepoint: y0
Matt-W o/ masak 12:41
masak phenny: tell missingthepoint that I have a few new ideas I'd like to discuss too. :) oh, and the merge, whenever you have time.
phenny masak: I'll pass that on when missingthepoint is around.
12:41 synth joined
ruoso was considering implementing an off-the-hook reduce implementation that would be able to handle varying-arity 12:42
12:43 molaf joined
masak ruoso: sounds intriguing. 12:44
ruoso aimming at the multi-reduce-based web action dispatch
rakudo: my $a = sub (1,2,3) {...}; say $a.arity 12:46
moritz_ ENOEVALBOT
masak still none? :/
ruoso with a broken local rakudo
jaffa8 hi 12:47
I tried gobby
It is not ok on Windows 7
moritz_ masak: there's nothing I can do about it, bloonix_ has access to the administrative console but he's not reachable atm
ruoso how do I configure rakudo to use a non-installed parrot? 12:48
jnthn ruoso: Rakudo requires installed Parrot.
masak moritz_: I understand. it's not the whole world, but this place does feel a little emptier without evalbot.
moritz_ masak: I agree.
jnthn ruoso: If you configure and do --gen-parrot it'll build one for you under the Rakudo directory though. 12:49
moritz_ builds and installs
ruoso jnthn, that is recent, isn't it? it used to work here without an installed parrot
jnthn ruoso: Right.
Fairly recent-ish.
ruoso jnthn, any particular reason for requiring the installation?
moritz_ it can't be made to work with reasonable effort on both teh build tree and from installed parrot 12:50
jnthn What moritz_ said.
ruoso: We won the ability to be able to "make install" Rakudo.
ruoso hmm... I see.. 12:51
jnthn ruoso: Having been developing against the new way of doing things, I've not really ofund it gets in the way.
ruoso hates installing things in /usr/local...
jnthn ruoso: Then do what I said 12:52
moritz_ ruoso: you can install in ~/rakudo/parrot_install/
that's what perl Configure --gen-parrot does
ruoso hmm... I see..
12:53 maerzhase left
ruoso hmm.. I've installed it in /usr/local anyway... but now I'm getting "couldn't find file 'PCT/HLLCompiler.pbc'" 12:53
moritz_ ruoso: did you run 'make install-dev'? 12:54
jnthn ruoso: make install-dev
moritz_ that's needed... and documented in README
ruoso ah
ruoso --
jnthn Heh. So I think my Perl 5 embedding attempt is vaguely win...apart from "print" doesn't work. ;-)
moritz_ ruoso: you don't have to feel bad, nobody actually reads the readme
ruoso heh 12:55
jnthn ...but say does...wow. :-) 12:56
ruoso jnthn, you need to enable autoflush in stdout by default
jnthn ruoso: Ah
ruoso otherwise p5 buffering will make things very unpredictable 12:57
jnthn looks up how to do that
well well 12:58
ruoso Is "failure to find a suitable candidate" a defined exception type?
jnthn C:\Consulting\rakudo>perl6 > eval('use v5.10.0; say "hello from perl 5.10";', :lang<perl5>) hello from perl 5.10
gah
C:\Consulting\rakudo>perl6
> eval('use v5.10.0; say "hello from perl 5.10";', :lang<perl5>)
hello from perl 5.10
ruoso s/defined/spec'ed/
jnthn ruoso: Heh, is any of the exception heirarchy spec'd?
moritz_ jnthn: $| = 1
no, nothing yet 12:59
jnthn moritz_: ah, I guess I can just eval that when I create the itnerpreter
jnthn was thinking there was another C way to do it
ruoso jnthn, #p5p probably knows that 13:00
jnthn, but in rakudo, is there a specific way to catch that exception? 13:02
without catching other exceptions?
jnthn ruoso: No
ruoso is there a way to test if the bind is possible?
moritz_ also note that this approach is not going to work
jnthn moritz_: Approach? 13:03
moritz_ because even after a successful call the sub itself can throw the same error internally
ruoso moritz_, point taken
moritz_ jnthn: ruoso's approach at doing var-arg reduce
jnthn Ah, yeah.
Hmm
ruoso so I guess I need to test before calling
jnthn Yeah
ruoso how do I test?
jnthn I didn't yet get us the ability to do $capture ~~ $signature, which would be a way I guess. 13:04
ruoso right... but I'd be happy with a method call already
jnthn ruoso: It's non-spec but I think there is one
ruoso that'd be fine... 13:05
it's a proof-of-concept anyway
jnthn ruoso: Call find_possible_candidates on the multi
Pass the args.
It'll give you an array back.
jaffa8 When will you add :g modifier? 13:06
jnthn If there's nothing in it, then you know there's no candidates that can work.
jaffa8 to regular expressions?
moritz_ jaffa8: that needs adverb parsing, which will take some time
ruoso Attributes of type 'MMD_Cache *' cannot be subclassed from a high-level PMC.
in Main (<unknown>:1)
jnthn ...huh?
jaffa8 How much is that?
jnthn What'd you do to get that?
ruoso my $a = Multi.new; $a.push(sub (1,2,3) { }); $a.push(sub (1,2) { }); say $a.find_possible_candidates(1,2); 13:07
moritz_ jaffa8: December or January, presumbly
masak jnthn: is it possible to introspect the traits added to an attribute?
13:07 gbacon left
jaffa8 is g implemented? 13:07
jnthn masak: A well behaved trait should mix a role into an attribute.
moritz_ $str.subst($regex, $closure, :g) is implemented
jnthn masak: That sets a property.
masak jnthn: ah, ok. 13:08
jaffa8 Is that the old substitute?
jnthn masak: But it's up to the trait to leave such a "paper trail".
masak ok.
jnthn ruoso: I'm not quite sure why that's exploding, or where it's trying to subclass Perl6MultiSub.
jaffa8 Is the only problem that grammar is not defined?
ruoso maybe because I'm calling Multi.new()
jnthn ruoso: Hadn't quite seen that issue coming though... :-S
ruoso ? 13:09
jnthn ruoso: Yeah
ruoso: I'm guessing in there.
I'd need to get a backtrace and see exactly when we get taht error.
I am slightly surprised.
moritz_: Thanks for the tip. Now this works:
> eval('print "hello from perl 5\n";', :lang<perl5>)
hello from perl 5 13:10
13:10 zloyrusskiy left
jnthn needs to get the code onto github now. 13:11
moritz_ wow, jnthn++
jnthn moritz_: Yeah, not bad for < half a day's hacking.
ruoso jnthn, do you want me to rakudobug it?
jnthn And no prior Perl 5 embedding experience.
ruoso: You can, I'd like to look into what's going on.
perl5embed++ # good doc.
masak wow, jnthn++! 13:13
can you get data out of Perl 5 too?
jaffa8 Am I correct? 13:14
Is it possible to call Perl5 from Perl 6?
ruoso with this latest bug the 'varying-arity-multi-reduce-based-web-action-dispatch-framework' will have to wait a bit more 13:15
jnthn, #68774 fwiw 13:16
13:16 kidd_ joined
jnthn masak: Not yet. 13:16
masak: Just eval so far.
masak: And doesn't return stuff yet.
masak: Patience. :-)
;-)
jaffa8 masak, jnthn, whoever,Is it possible to call Perl5 from Perl 6?
masak jaffa8: apparently. jnthn just demoed it. 13:17
jnthn jaffa8: Today I've just started the work to make this possible in Rakudo.
masak jnthn: I'll sit tight. I'm impressed already.
13:17 gbacon joined
jnthn I'm creating a github repo now and scribbling a README. 13:17
jaffa8 jaffa8, Does it call the real Perl 5 interpreter?
jnthn jaffa8: Yes.
jaffa8 I guess there is no cross-communication of variables. 13:18
jnthn jaffa8: Embeds.
jaffa8: ATM, no.
jaffa8 Is it going to be?
jnthn jaffa8: At some level, I'd expect so. 13:19
jaffa8 I guess passing and returning parameters should be possible. 13:20
jnthn jaffa8: I hope we'll reach that point, yes. 13:21
b_jonas the hardest parts of things like this are: 1. connecting the garbage collectors if you allow arbitary references from data in one interpreter to the other and back, and 2. connecting the two schedulers if at least one interpreter uses threads
jnthn b_jonas: *nod*
b_jonas if you don't care about those, than calling one language from the other is easy
sometimes you can avoid the second by running the two in separate processes but that makes the first impossible, eg. this is how mathematica works and how J used to work 13:22
moritz_ speaking of threads... in one blog post I mentioned that threads were not on the rakudo * roadmap - somebody asked why, and I pointed him to the parrot ticket that's block... 13:23
(segfaults on interpreter cloning)
b_jonas this is why my J evalbot can run multiple J statements at once and listen to irc: each J interpreter session is ran in a fork
moritz_ he submitted a partial patch for that already, and last I looked he was working on the rest
blogging WIN :-)
masak impressive. 13:26
moritz_ (Chris Darroch)++
masak andother blogging winner is this guy: lastofthecarelessmen.blogspot.com/2...ystem.html -- look at how he just keeps on churning until he figures things out by himself: lastofthecarelessmen.blogspot.com/2...efile.html 13:31
we may not have everything documented properly yet, but it seems that people can cargo-cult and get things pretty right. :)
moritz_ is that a #perl6 inhabitant? 13:32
I've followed that blog with some interest
these blogspot blogs often reveal so little information about the blogger that it's hard to associate them with people I know 13:33
13:33 KyleHa joined, Front_slash joined
diakopter moritz_: lastofthecarelessmen.blogspot.com/2...n-irc.html 13:35
moritz_ diakopter: thank 13:36
s
diakopter irclog.perlgeek.de/search.pl?channe...ast&q=
13:37 alester joined
KyleHa penance++ 13:38
13:41 pmurias joined
pmurias hi 13:41
ruoso: what would the polymorphic eval op do? 13:43
ruoso pmurias, hi... it would take the continuation previously set in the interpreter with a "goto" and call "eval" on it
pmurias why not just goto into the continuation? 13:46
ruoso hm? 13:47
pmurias, what do you mean? 13:48
pmurias will we have the polymorphic eval as the main runloop?
ruoso p5 runops will be the main runloop
13:49 iblechbot left
masak apparently I'm supposed to transmit this to #perl6: lastofthecarelessmen.blogspot.com/2...shing.html 13:54
pmurias ruoso: are there any docs on adding a custom opcode besides the mention in perlguts? 13:55
masak this guy is as secretive as _why :)
moritz_ well, I respect that
ruoso pmurias, nothingmuch should be a very good teatcher ;) 13:56
moritz_ it's just that I think we could be even *more* helpful talking directly
but it's his/her choice, of course
pmurias anonymity-- 13:57
jaffa8 that blog is about nothing
IS there anything else?
jnthn anonimity is just fine. 13:58
jaffa8: There's loads of itneresting posts... lastofthecarelessmen.blogspot.com/
aww github ist schiesse. 13:59
arnsholt Shouldn't it be schiesst, or somesuch? 14:00
moritz_ scheisse, actually
jnthn ah, sorry
arnsholt There's that too. I thought jnthn might be going for "shot" 14:01
jnthn ;-)
jnthn wouldn't know enough German to know how.
Su-Shee jnthn: you may vary it with "garbage" (Muell) or "junk" (Schrott)
pmurias ruoso: should we use the custom opcode mechanism or add a new opcode?
jnthn Su-Shee: Yay! :-)
ruoso pmurias, I think we can ad a new opcode in the core 14:02
pmurias and how do we use it from p5 code? 14:04
ruoso pmurias, do we need to use it from p5 code?
14:05 jaldhar_ joined
pmurias ruoso: how are we going to use the opcode then? 14:07
b_jonas what's wrong with just using an XS function or a custom written C function with the pp stuff handwritten?
ruoso when a SMOP object receives a method call in p5, it will call the SMOP "goto"
b_jonas why would one ever need an opcode?
14:08 finanalyst left
jaffa8 I think I know why rakudo ia slow 14:09
I guess it is because it uses a recursive descent parser. 14:10
ruoso pmurias, the SMOP "goto" implementation would save the current state and set the PolymorphicEval as the op...
masak jaffa8: actually, it uses one top-down and one bottom-up parser, and they take turns.
b_jonas (yeah, I know, an opcode can get extra parameters from its optree node like constants or pointers to other nodes, whereas an xs func can only get perl data as arguments)
jaffa8 masak: they take turns?
14:11 zloyrusskiy joined
jaffa8 Ok, I guess bottom-op parser is used for operators and operands. 14:11
and top-down for the rest.
ruoso pmurias, then when SMOP code "goto" back to p5 code, it will restore the previous state, removing the PolymorphicEval op from the optree
jaffa8 Correct me if you are wrong and tell me if I am right. 14:12
ruoso jaffa8, it's quite more complex than that
masak jaffa8: as far as I know that's right.
ruoso jaffa8, you can also look at the STD grammar
moritz_ jaffa8: look at src/parser/grammar{-oper}.pg and look out for 'is optable' 14:13
14:14 ejs left 14:15 ejs joined
ruoso b_jonas, the point of using an opcode is to keep the p5 runops mostly the same, keeping as much backward compatibility as possible 14:15
pmurias, but as b_jonas said, the opcode may receive parameters from the optree, so we don't need to add another variable for the p5 interpreter 14:16
14:16 _jaldhar left
ruoso when "goto" is called, it can store the current continuation and the polymorphic eval op in the optree, so the polymorphic eval knows what to eval 14:17
jnthn On github, after you've done the initial push to remote for a new repo, is it normal for it to take a while to show up on the site?
jnthn isn't sure if he did something wrong or what...
takadonet yes sometime it takes a while 14:18
jnthn ah, ok
ruoso jnthn, for the first push, that might be true, yes...
moritz_ what takadonet said
jnthn OK, good.
Maybe I didn't mess up then. :-)
jnthn followed the destructions.
takadonet one time was a hour or so
Su-Shee jnthn: my first was about 6 hours because something was broken in the meantime. 14:19
jnthn ah, done
github.com/jnthn/blizkost/tree/master
pmichaud good morning, #perl6
jnthn pmichaud: morning
takadonet pmichaud: morning
PerlJam Hello Pm.
14:20 mzedeler joined
missingthepoint Hi Pm :) 14:20
phenny missingthepoint: 12:41Z <masak> tell missingthepoint that I have a few new ideas I'd like to discuss too. :) oh, and the merge, whenever you have time.
masak morning, pm. 14:21
jnthn If anybody wants to try Blizkost on another platform and fix the build there (I suspect linking may be a fail off Windows), that'd be awesome. I'm giving out commit bits quite freely. 14:22
moritz_ might do so after getting home and having a nice BBQ (if the weather holds...)
masak wow, _why is gone, but audreyt is back, and she's spreading warmth and love through IRC, Twitter, CPAN and use.perl.org. 14:25
14:25 Patterner left, Psyche^ joined, Psyche^ is now known as Patterner 14:26 rfordinal left
takadonet masak: who was _why? 14:27
moritz_ a high profile ruby hacker
jaffa8 audrey is back
What does it mean?
masak takadonet: an influential pseudonymic Ruby hacker.
PerlJam "was"?
_why isn't dead to my knowledge :) 14:28
masak PerlJam: his persona imploded last week.
in a very real sense, _why is no more.
jaffa8 masak, Audrey is back, what does it mean?
moritz_ aye.
masak jaffa8: it means she's back.
jaffa8 Will pugs be continued?
masak jaffa8: maybe.
moritz_ we don't know
PerlJam masak: I'll believe that _why is no more much the same that I believe that audrey is no longer intersted in perl6 :)
obra_ Audrey Tang and _why are NOT the same person. I have 100% seen them in the same place.
moritz_ obra_: I don't think anybody suggested that :-) 14:29
masak PerlJam: I'm not sure what to make of that information. but thanks, I guess.
jaffa8 moritz_, what is that you know? 14:30
about this?
b_jonas by the way, what's the whole point of this "bytecode" thingy in ruby 1.9 ?
moritz_ jaffa8: I know what I read on IRC and on her blog.
b_jonas I like ruby 1.9 for other things, like better strings and stuff, but I don't understand the changed internals, like this "bytecode" and the new threads implementation 14:31
PerlJam masak: think of it as eternal-optimism. Or ... I'm James Kirk, and the non-existence of either Audrey or _why is the Kobayashi Maru :) 14:32
masak PerlJam: :)
jaffa8 moritz_, where is her blog? 14:34
obra_ moritz_: I'm very storry. Audrey's latest blog post suckered me into troll-hugger-baiting
moritz_ jaffa8: pugs.blogs.com/audrey/
Su-Shee what is "troll-hugger-baiting"?! 14:35
jaffa8 Is it another branch of individual self-expression?
obra_ Su-Shee: have a look at audrey's latest blog post 14:36
Su-Shee ah. got it I think.
masak hugs obra_ 14:39
obra_ smiles.
masak obra_: and I like your hair, too. 14:40
obra_ So. LTNS, folks. How's Perl6 been lately. I've talked to patrick, but not anyone from one of the other implementations
thanks!
masak I'm not a compiler implementor, but I'll say this about the module ecosystem: it's quickly approaching a tipping point of some kind. 14:41
it'll be good when someone eventually sits down and writes a piece of software to manage it.
obra_ I've been talking to a few folks about such a thing. 14:42
moritz_ obra_: mildew+smop seem to progress steadily - pmurias and ruoso can tell you more, I guess
obra_ amustly, what it would take to bootstrap on the existing CPAN
moritz_ STD.pm does well, too
obra_ there are VERY FEW pieces that need implementation.
masak sounds promising.
ruoso hi obra_
obra_ basically, Module::Install/Build/Whateveryoucallit and CPAN::Client. and then a tiny addition to pause
hey ruoso
ruoso obra_, we're currently working on injecting SMOP inside the perlguts 14:43
obra_ perl5guts?
takadonet thinks he is watching history in the making....
obra_ ruoso: are there test pass charts fro mildew+smop?
ruoso obra_, yeah
moritz_ obra_: I've been writing a mail about the "tiny addition to pause"
obra_ ruoso: link me? 14:44
moritz_ obra_: www.nntp.perl.org/group/perl.module...67299.html
ruoso obra_, it's not focusing on the spec tests yet... we work in conceptual features first
obra_, for instance... mildew "return" works as spec
obra_ ruoso: understood.
mzedeler obra_: did you talk to Troels Liebe regarding a new packaging system?
ruoso because smop+mildew already implement failures and controlexceptions
obra_ mzedeler: no. but I believe pretty strongly that we do not want a new packaging system.
ruoso obra_, www.perlfoundation.org/perl6/index.cgi?smopp5 14:45
obra_ moritz_: oh good. andk is talking to you. that's the right answer for PAUSE :)
ruoso that reminds me it's linking to the wrong repository
obra_ ruoso++ 14:46
smopp5++
ruoso now it points to the correct repository
14:47 kidd_ left
ruoso obra_, note the "side-effect benefits" section 14:48
obra_ nods
pmichaud jnthn: ping 14:49
14:49 nihiliad joined, meteorjay joined
jnthn pmichaud: pong 14:50
pmichaud jnthn: got a few moments? 14:51
jnthn pmichaud: sure
I'm Rakudo-ing all day.
pmichaud The current blocker to doing builtin operators in the setting is the need to generate the Whatever/WhateverCode forms of the operator.
Su-Shee rakudo shimasu should actually work. :)
jnthn Ah, the extra multi-overlaods? 14:52
pmichaud yes.
what's the likely best way to have those get generated? (more)
does it suffice to push an appropriately-constructed Sub onto the Perl6MultiSub object?
jnthn Yeah, needs to have a Perl 6 Signature. 14:53
And that'd do it.
pmichaud okay.
jnthn Is there a fixed set of operators we do this for?
pmichaud well, we should be doing it for user-defineds as well
jnthn Yeah
pmichaud which is why I mentioned last week that we may want to refactor the whole meta-operator handling bits
jnthn Wait
masak Rakudo Day! \o/
moritz_ shouldn't it be a syntactic translation?
jnthn Isn't it just for numeric operators/
?
pmichaud moritz_: WhateverCode forms aren't syntactic 14:54
jnthn I thought it wasn't for all of them...
moritz_ pmichaud: ifyousayso
pmichaud it might not be for all of them
jnthn pmichaud: OK, how does a user say if they want the whatever forms generating or not?
pmichaud perhaps they don't auto-generate, then. 14:55
jnthn Trait perhaps?
Yeah
I'm not completely sure they should...
We could easily provide a trait to do it though.
TimToady they don't generate unless you write a signature that matches Whatever or WhateverCode
pmichaud okay, that's helpful 14:56
jnthn TimToady: That's not really "generate" though, that's specifying them, no?
TimToady yes, spec
pmichaud right -- he's saying they aren't generated
TimToady no coffee yet :/
pmichaud okay, I can handle that then.
TimToady however, to the extent that multis are lexical, we can know whether there's a Whatever and inline it
so it's effectively syntactic, given an optimizer 14:57
jnthn OK, we're talking here about forms like * + 42, right?
TimToady yes
infix:<+> is a multi, hence the candidate list is known at compile time 14:58
jnthn Right.
pmichaud but we wouldn't be able to inline something like my $whatever = *; say $whatever + 42;
TimToady so we can just turn that into { $^a + 42 }
correct, but it should still work
pmichaud okay
just verifying that it's not strictly syntactic
the syntax form is an optimization 14:59
TimToady it may well be that *.foo is purely syntactic
pmichaud it may have to be, in order for us to get *.foo.bar to work properly
TimToady or mostly
yes
jnthn pmichaud: OK, so essentially we want a way to have the :(Whatever, Any), :(Any, Whatever) and :(Whatever, Whatever) variatns generated for certain ops? 15:00
pmichaud jnthn: yes. I can handle that part -- it's just a modification to the existing gen_whatever code
also, there's no :(Whatever, Whatever) form.
moritz_ why not? 15:01
pmichaud because it can be handled by the other two
moritz_ ok
jnthn pmichaud: no
pmichaud: It's an ambig dispatch.
pmichaud jnthn: one of the other two needs an "is default"
jnthn pmichaud: Ah, OK, you can do it that way.
TimToady you need WhateverCode too 15:02
pmichaud yes, we have those also.
jnthn pmichaud: There's more than one way to do it.
pmichaud jnthn: indeed. :-)
jnthn pmichaud: We could pick a trait name like "is whatevered"
15:03 kidd_ joined
jnthn pmichaud: And then write a trait handler (in Perl 6 probably) that adds the multi variants. 15:03
pmichaud jnthn: I think it's pretty clear that we need to create them explicitly. It's not that big a deal.
jnthn Or we could just fix up the sciprt, as you say.
pmichaud S02 says that the numeric operators handle Whatever; what about the string operators?
moritz_ would find it useful if all scalar operators handled it 15:04
PerlJam moritz_: useful for obfu? ;) 15:05
jnthn PerlJam: Heh, I thought exactly the same ;-)
15:05 Front_slash left
moritz_ PerlJam: I've already written almost-production code that used things like @stuff.sort: ~*; 15:06
TimToady * eq 'foo' is a perfectly normal matcher
we need a way to write a generic default for prefix:<op>, infix:<op>, etc 15:09
where the op itself is a 1st class parameter
PerlJam Just use Whatevers ;) 15:10
15:11 Woody2143 left
missingthepoint “First they ignore you, then they laugh at you, ..." 15:11
Perl 6, prepare to be fought. 15:12
And remember what the next step is. :)
TimToady could we just replace that step with ??? please?
masak :)
missingthepoint Even better.
masak 'fraid we can't. 15:13
pmichaud I fear it's really !!!
masak but people are already fighting us.
Su-Shee indeed they do.
TimToady those are just our friends, mostly :)
masak but now we have the ultimate weapon. hugs.
moritz_ WhateverHugs?
missingthepoint asdgasd++
masak TimToady: also true. those are people who care, actually.
pmichaud ? Haskell Ultimate Golfing System ?
masak pmichaud: :) 15:14
moritz_ pmichaud: don't think in acronyms :-)
masak pmichaud: have you read audreyt's post?
pmichaud masak: yes, skimmed it
masak ah, so you're feigning incomprehension. good :)
15:14 rfordinal joined
pmichaud no, I'm just randomly pulling ideas into the conversation 15:14
I hear there's precedent. It even gets hugs from audreyt, if done properly :) 15:15
pmichaud looks in a mirror and yells "TROLL!!!!"
masak whoa.
Su-Shee well, I don't like the perl 6 bashing, it's getting nasty sometimes. 15:16
pmichaud: and now snow whites mother-in-law hugs you?
masak I don't get opinions like these, for example: twitter.com/PolarLava/status/3457641478 15:17
I even replied to that one: twitter.com/carlmasak/status/3472531348
pmichaud Su-Shee: I'm not much for the perl 6 or parrot bashing either, but for a long time the bashers probably had a case.
Su-Shee masak: people ignore the releases and consider p6 vaporware because "it's not there yet"
masak maybe a hug would have been better in that case. 15:18
Su-Shee: then, how can you please them at all?
moritz_ masak: you can still hug him/her
masak moritz_: something like "hello, the #perl6 channel thought I should give you a hug. here you go" ? :) 15:19
Su-Shee masak: I have no idea. I'm pasting the rakudo download like crazy and it's really fool proof but still..
pmichaud "Free hugs for nonbelievers!"
PerlJam viral hugging?
pmichaud sounds like the title of a good blog post :)
moritz_ masak: something like "I hug you even if you troll Perl 6, you seem to need it direly" (although it sounds almost religious)
15:20 donaldh left
masak moritz_: I don't feel I can send something like that 3 days later... 15:20
15:20 donaldh joined
masak moritz_: I'll do it with the next one. :) 15:20
moritz_ masak: got a point there
Su-Shee pmichaud: I think all this very competetive looking bashing around harms perl as a whole. 15:21
15:21 simcop2387 left
Su-Shee if I were a Ruby developer I would point my finger at us "look, they even don't like their own projects, ma!" ;) 15:22
masak right. when outsiders look at something, they like to generalise and see a unity of thought which does not exist.
Su-Shee masak: I was really surprised as well. I naively thought, everybody is waiting for Perl6. 15:23
mikehh rakudo (9d9d416) builds on parrot r40785 - make test / make spectest (up to r28062) PASS - Ubuntu 9.04 amd64 (g++) 15:24
pmichaud I need to figure out how to better follow twitter feeds -- I had no idea these conversations were occurring :-) 15:25
masak pmichaud: I have real-time searches for 'perl6', 'rakudo' and 'Perl 6'. 15:26
pmichaud what's a "real-time search" (as opposed to an ordinary twitter search)?
masak pmichaud: when something new arrives, a little star turns blue on my screen. 15:27
pmichaud hmmm
I see that I can do RSS feeds for the searches
that probably works for me
ooc, what program is the little blue star attached to? ;-) 15:29
15:29 simcop2387 joined
Su-Shee <- home. food. couch. 15:30
M_o_C Su-Shee: Judging from that particular tweet they _are_ waiting, that's probably what causes them to start trollling in the first place ;)
Su-Shee M_o_C: I've seen stuff on IRC... nasty. :) 15:31
15:31 Su-Shee left, jhorwitz joined
M_o_C phenny: tell Su-Shee: Well, I don't know about those conversations, hence the "Judging from [...]" 15:32
phenny M_o_C: I'll pass that on when Su-Shee is around.
15:32 cdarroch joined 15:46 Chillance left 15:47 Chillance joined 15:55 PZt joined, donaldh left 15:58 seeken left, mzedeler left
jnthn thinks he's worked out how to fix another masakticket :-) 16:01
masak gotta close 'em all.
16:02 xalbo joined
jnthn Currently, sprintf in Rakudo if you have missing parameters will die. 16:02
That's probably wrong (a ticket says as much.)
But what should it do? Just return a Failure, yes?
(Ticket is rt.perl.org/rt3/Ticket/Display.html?id=62316 ) 16:03
(no, that isn't the one I jsut fixed :-))
masak returning an unthrown exception sounds about right. 16:04
not enough params to sprintf is a pretty serious logical error, but in the general case it cannot be caught at parse time. 16:05
jnthn *nod* 16:06
Ok, will do that...if my Rakudo build hasn't just broken... 16:07
oh what the fu..
xalbo If an unthrown exception is returned by a function called in void context, does it get thrown, or just dropped on the floor?
ruoso jnthn, is there some method/sub that can be called to build the MMD_Cache? 16:08
jnthn ?
ruoso: if you add new candidates it throws it away
masak xalbo: my guess would be 'dropped'. if you're not interested in the return value, you're probably not interested in the exception either.
jnthn ruoso: it's not built at any point 16:09
it's built over time as calls happen.
Depending on cachability.
ruoso hmm... interesting that it happens only when calling find_possible_candidates
jnthn ...happens?
ruoso the error
jnthn oh
ruoso when calling the multi directly works 16:10
16:10 Su-Shee joined
jnthn That's curious. 16:10
Su-Shee back.
phenny Su-Shee: 15:32Z <M_o_C> tell Su-Shee Well, I don't know about those conversations, hence the "Judging from [...]"
16:10 payload joined
jnthn I didn't get to look into the error just yet. 16:10
ruoso > my $a = Multi.new; $a.push(sub (1,2,3) { 1 }); $a.push(sub (1,2) { 2 }); say $a(1,2); say $a(1,2,3); say $a.find_possible_candidates(1,2);
lambdabot <no location info>: parse error on input `='
ruoso 2
1
Attributes of type 'MMD_Cache *' cannot be subclassed from a high-level PMC.
in Main (<unknown>:1)
16:11 ejs left
jnthn Heh, curious... 16:11
It'd expect the calls to want to cache too.
oh no, wait
16:11 rhr left
jnthn They won't because they are uncachable. 16:11
If you change sub (1,2,3) to sub ($a, $b, $c) you'll probably see it earlier. 16:12
16:13 kidd_ left
ruoso hmm 16:13
16:13 kidd_ joined
ruoso jnthn, nope... same behavior 16:14
jnthn ruoso: I'd invesigate a bit, but I just pulled latest Parrot and now my Rakudo built appears screwed. 16:15
ruoso alright... thanks anyway... I was just trying to see If I could work-around it...
> my $a = Multi.new; $a.push(sub ($a, $b, $c) { 1 }); $a.push(sub ($c, $d) { 2 }); say $a.candidates().map: { ~$_ }
lambdabot <no location info>: parse error on input `='
ruoso Null PMC access in find_method() 16:16
16:16 jauaor left
jnthn ruoso: .push is kinda suspect anyway 16:18
I hacked it in there, but it's not tested or maintained. 16:19
ruoso ah... right...
jnthn (can't spectest it as it's not spec, plus nothing else relies on the interface...) 16:20
ruoso wonders if we could consider that @$multi returns the list of candidates 16:22
16:23 Chillance_ joined
ruoso rakudo doesn't support custom implementation for .() yet... 16:24
moritz_ it does, a bit
ruoso how?
jnthn Yes, it does. 16:25
We're passing spectests for that.
ruoso implementing postcircumfix:<( )> is a parse error...
jnthn class Foo { method postcircumfix:<( )>($arg1, $arg2) { ... } }
moritz_ ruoso: method postcircumfix:<( )>(...) { ... }
ruoso hmm it isn't
it was something else then
jnthn, wasn't $arg1 supposed to be the capture sent to the invocation? 16:26
jnthn ruoso: If you want to take the capture, write method postcircumfix:<( )>(|$capt) { ... }
(but not yet in Rakudo) 16:27
ruoso jnthn, I mean... the spec says otherwise
the first argument is the capture...
because it's a capture inside the capture for the postcircumfix:<( )> call
16:28 jrtayloriv left
jnthn Oh? 16:28
That's kinda...weird.
16:28 jrtayloriv joined
jnthn I don't really understand why it would be like that. 16:28
ruoso because the invocation of postcircumfix:<( )> is a call on itself 16:29
and needs a proper capture
while the invocation that is being dispatched has a different capture
$a(1: 2,3) => inner capture (1,2,3) 16:30
$a.postcircumfix:<( )>( (1: 2,3) ) => outer capture ( $a, (1: 2,3) )
jnthn Hmm, maybe.
I guess you could still unpack the first argument somehow. 16:31
ruoso right... but it's kinda hacky, isn't it?
jnthn I dunno, for me it was the most natural implementation... 16:32
But I guess that may be a different architectures thing.
ruoso I probably hit it because the capture is the most fundamental data structure in SMOP
so this kind of hack seems very unnatural 16:33
jnthn Yeah.
It'd not be so much pain to change it in Rakudo.
ruoso cool... and it would make the implementation of custom invocations clearer
because a custom invocation is usually a meta-thing 16:34
16:35 rhr joined
pmurias xalbo,masak: i think the exception will be thrown 16:35
16:35 Front_slash joined
masak that's a possibiliy too :) 16:36
pmurias as perl6 doesn't silently ignore exceptions
xalbo I would sort of hope so. If I'm not looking at the return value, I'm calling for side effects and assuming it'll work. If it doesn't work, I'll experience mysterious pain later.
masak pmurias: well, as long as it plays well with multithreading...
xalbo (I'm thinking of all the people who fail to check the return values of perl5's open/close/print) 16:37
16:37 Chillance_ left
jnthn Oh good, my build is not so broken after lots of make realclean and clearing up some other bits. 16:37
moritz_ xalbo: that's why I'm glad that autodie is now in core (p5)
[particle] xalbo: that's what au... moritz++ 16:38
16:40 Chillance left
ruoso jnthn, I'm just breaking some rakudo passes then ;) 16:41
16:42 synthetic_ joined
jnthn ruoso: Where in the spec is this noted, by the way? 16:42
ruoso I've changed the TypeCast test to align with the spec
S13
Type Casting
moritz_ ruoso: if you break a test, please fudge it
ruoso feels a bit dumb... never fudged a test 16:43
moritz_ t/spec/README explains it
and in rakudo you can check if it worked by running 'make t/spec/SXX-section/file.t' 16:44
ruoso moritz_, right
ruoso just fudged it 16:46
t/spec/S13-overloading/typecasting-long.t fwiw 16:47
moritz_ just found it, thanks
having neither pugs_svn bot nor evalbot really sucks.
16:52 justatheory joined 16:57 masak left
ruoso .oO( in the end my work-around in the work-around failed as well... so I guess I'll just wait for the ticket to be solved... ;) 17:03
17:19 guest_007 left 17:23 jaldhar_ left 17:25 arthur-_ joined, riffraff left 17:36 edpratomo joined 17:38 iblechbot joined 17:41 dbrock joined 17:44 Front_slash left, rdice joined
TimToady exceptions are never dropped; see S04:1075 17:46
frettled Is there an exception to the rule? :D 17:47
TimToady there was, but we dropped it :P
frettled :) 17:48
17:55 rhr left 17:57 mikehh_ joined
colomon ping masak 18:00
18:00 TBY joined 18:01 TBY left, abra left 18:13 mikehh left 18:27 M_o_C left 18:30 bubaflub joined, bubaflub left, bubaflub joined, M_o_C joined
jaffa8 Are the context working? 18:35
colomon "the context"?
TimToady context vars don't work yet in rakudo 18:36
rakudo still interprets the * twigil as global rather than context
18:36 frederico joined
pmichaud that's very high on the list of things to fix 18:37
dalek kudo: 8968778 | jonathan++ | src/builtins/control.pir:
Unbreak eval of foreign HLLs.
kudo: ab99068 | jonathan++ | build/PARROT_REVISION:
Bump Parrot revision to get fix in attribute binding code-gen, plus .orig fix from pmichaud++.
18:39 synthetic_ left 18:48 adam-pwgsc joined
jnthn dies_ok(sub {my $x = sprintf('%n', 1234)}, '%n dies (Perl 5 compatibility)'); 18:49
If wrong number of arguments is just a Failure, not a die, surely invalid format would match and also be a Failure?
jaffa8 TimToady,I see 18:50
jnthn (the spectest wnats this to explode atm)
18:51 rhr joined
jaffa8 Are macros working? 18:52
b_jonas there should be an equivalent of %n in pack and unpack templates 19:00
like @ or . but saving the position instead of loading it 19:01
jnthn heh, I've no idea how analogous pack and unpack templates are to sprintf formats, and what %n does anyway. :-) 19:04
jaffa8: no
pmichaud jnthn: (re #parrotsketch) looks like pcc rewriting won't land until late September. Does that impact your planning?
jnthn jaffa8: They're probably not going to for a while, I suspect, since in some senses they're quite hard.
pmichaud: Given I'm vacationing September, no. 19:05
pmichaud okay, so it's okay if I back off the pressure a bit?
jnthn pmichaud: I get back right at the start of Oct. I'll miss it if it's not there then.
pmichaud: If you think you've applied enough that it actually will land late September...
I can handle it not landing until then, but much later is potentially going to cause me pain. 19:06
Or at least be non-ideal.
pmichaud same here.
jnthn And probably annoy me.
pmichaud I'll bring it up during tomorrow's design meeting.
b_jonas jnthn: %n wants an lvalue integer argument and saves the current offset in the printed/scanned/packed/unpacked string/buffer (counted from the start of the *printf/*scanf call) to that integer
PerlJam predicts it'll *actually* land in Oct.
b_jonas it also gives an easy way to test how much of a scanf conversion has succeeded if you preset the integer to -1, because scanf stops on a misformatted input, and then it does not execute later %n templates. 19:07
pmichaud PerlJam: a couple of weeks delay into October we can probably handle. Delaying past the October 2009 release will be a major headache. 19:08
19:08 bubaflub left
pmichaud this task has gone from being "a priority to 1.0" to "not until after the 1.6 release". That's not exactly pleasant. 19:08
jnthn Right.
19:09 eMaX left
pmichaud even in May allison++ was saying that this was "my #1 priority for the 1.4 release". 19:09
I grant that priorities and real life changes, and I'm not an angel about meeting targets either.
19:09 eMaX joined
pmichaud but this is a huge blocker for us. 19:10
PerlJam What is blizkost? 19:11
jnthn github.com/jnthn/blizkost/tree/master
19:11 ispy_1 joined
yath sounds like blitzkrieg 19:12
pmichaud maybe it needs a mention on perl6-projects.org ?
and rakudo.org ?
19:12 arthur-- joined 19:13 arthur-_ left
jnthn yath: Quite different - see URL for explanation of the name. 19:13
yath jnthn: just kidding :)
jnthn yath: ;-)
PerlJam If it's a path to perl5 that perl6 can use, yeah, a mention elsewhere might do it good.
jnthn pmichaud: Maybe.
I will mention it in my blog post tonight too.
pmichaud we probably need a rakudo faq somewhere 19:14
speaking of which, looks like rakudo.org is b0rken for updates
(PerlJam noted this yesterday)
jnthn pmichaud: Yes, I noticed that too. :-( 19:15
At first nobody else could re-produce so I assumed it was just me.
Then PerlJam and I think also moritz_ noticed it.
pmichaud I can't even log in.
jnthn yes, I think logging in is what shafts it, somehow. :-/
PerlJam alester maintains that, yes? 19:16
jnthn Who has access to debug that thing?
pmichaud yes.
PerlJam is alester the only one?
pmichaud only alester, afaik.
jnthn Just alester?
ah
PerlJam (We've got a *low* truck number then)
jnthn Webmasters get hit by trucks, not busses?
;-)
pmichaud agreed. I've said repeatedly I'd like to open that up a bit, but so far alester hasn't been too keen or responsive on that front
jnthn :-(
pmichaud I've been wondering if we need to move to another platform/site or something. 19:17
I don't know if diakopter++'s offer to host things for us is still open. And of course I could host it on my servers, but I don't have a good web management framework installed by default 19:18
jnthn I don't mind Drupal at all, and I'm grateful that alester++ put in time to set this up, but something where only one person is able to fix bugs worries me. 19:20
Or able to do changes etc.
It's too much pressure on one person, and too much potential for delays.
moritz_ pmichaud: hosting on feather2 would be no problem 19:21
PerlJam @seen alester
lambdabot alester is in #perl6. I don't know when alester last spoke.
moritz_ p6p is hosted there
PerlJam lambdabot: what good are you?
moritz_ and Juerd and I have root access, we can easily hand out more
(feather2 has less users than feather1 and is intended to be a bit more secure. It runs Debian stable) 19:22
PerlJam feather2++
alester My concern about opening up is creating accounts/permissions that don't get used. 19:23
phenny alester: 22 Aug 10:02Z <moritz_> tell alester when I log in to rakudo.org I only see blank pages - any ideas?
Juerd In fact, if anyone would like to do full admin of feather, PLEASE talk to me.
adam-pwgsc Who, if anyone knows, is writing the Learning Perl6 book?
PerlJam alester: that seems like an odd concern.
adam-pwgsc: if anyone, it would be brian d foy and Randal Schwartz 19:24
Juerd PerlJam: It's a valid concern. Abandoned accounts are useless for the community, but still a security liability.
PerlJam: I'm impressed that feather has still not had any major abuse incident. 19:25
alester Unused accounts are technical debt.
Juerd I've had much worse on systems with much fewer dormants accounts.
Feather has existed for 4 years now 19:26
There are probably accounts that have not been used for the same period.
jnthn Juerd: Don't tempt fate. ;-)
dalek kudo: 9efc9fe | pmichaud++ | build/PARROT_REVISION:
Bump PARROT_REVISION to take advantage of Class.isa_pmc improvements.
Juerd jnthn: I'm tempting fate by letting feather go completely un-administered.
PerlJam alester: okay ... give me an account and a reason to use it and I will do so. (but I hope the reason is not "fix rakudo.org problems" :)
Juerd jnthn: I'm (passively) looking for someone to take over system maintenance. (except hardware)
alester No, it's the other way around, PerlJam.
If you have a reason to do something, then let me know. 19:27
moritz_ Juerd: I can act as a backup administrator, and I already take care of feather2
PerlJam alester: I know. But the only reason I have right now is "fix rakudo.org"
Juerd moritz_: The problem is chronic/structural
alester I'm certain the problem is servery, not Drupaly.
jnthn alester: How many people can investigate and fix that? 19:28
PerlJam alester: What makes you so certain?
Juerd moritz_: Software isn't updated, new users aren't given access, documentation is lacking or outdated, some services have stopped working.
moritz_: And there's no account of who does/maintains what on feather.
s/account/accounting/
moritz_ Juerd: I know 19:29
Juerd If we didn't have 6-hourly backups, I'd be frightened.
s/6/12/ iirc. Could up that to 6.
Maybe I should. 19:30
alester gut feel
diakopter unused accounts can be called a liability iff there's a password expiration policy.
alester Jumpin' Jesus there are a lot of armchair quarterbacks.
diakopter otherwise they're just as unprotected from bruteforcing as used accounts 19:31
alester Logging into rakudo.org causes a segfault in the server log. :-(
TimToady alester: well, if you keep trying to establish the running game when you need to start passing, you gotta expect that. :P
diakopter punts
alester If anyone wants to take over as quarterback, let me know and I'll repoint the DNS 19:32
diakopter false start; surprise of the blitz lost. 19:33
alester Anyone? Anyone putting up their hands to run the rakudo.org install? 19:34
pmichaud blank pages in php are often symptoms of fatal errors during script initialization
moritz_ what kind of system (OS) is it?
alester moritz_: I'm not asing for help in diagnosis.
pmichaud in this case, since it appears to be related to logins, I suspect there's a problem with PHP session support
moritz_ alester: I know. But there are system I'm confident with, and others I'm not. 19:35
alester I will fix it when I can.
moritz_: What does your confidence have to do with anything?
If I say it's running on an Unconfident System, will that cause something to happen?
TimToady alester: do you need a hug?
alester I always need hugs.
diakopter ghc is better than hugs... 19:36
alester They are the charge of my batteries.
moritz_ alester: if it's something I'm good with I can try to help in a number of ways.
alester moritz_: But I don't want the help.
I can fix it, and will do so when I have time later today.
Powered by love: www.flickr.com/photos/juliancash/37...663915357/
moritz_ sorry, I interpreted "< alester> If anyone wants to take over as quarterback, let me know and I'll repoint the DNS" as such
diakopter fumble on the snap; recovered for a loss of 40 yards 19:37
moritz_ even if the help consists of migrating the system to a new location.
alester no, I'm asaying if someone else wants to run the system somewhere else, get it set up and I will repoint DNS
TimToady hugs alester very, very hard
Juerd diakopter: Every user account is a security liability, because it can be abused. But when that's for an active productive user, it is probably *worth the risk*. 19:38
moritz_ alester: I'd do that, if I can get a dump of the old system (database, config) and it's something I can work with
Juerd diakopter: For dormant users, you're taking the risk without getting anything in return.
moritz_ alester: but if it is for example a database I've never touched I won't do it
PerlJam moritz_: have you ever used drupal?
moritz_ alester: which is why I asked what kind of system it is.
Juerd diakopter: It's a matter of balance, not of absolute security.
moritz_ PerlJam: no
19:38 masak joined
masak colomon: pong 19:38
pmichaud moritz_: it's drupal behind the system
Juerd diakopter: If you have 80% entirely unused accounts, as I suspect feather may have, you could reduce your brute forcing risk by 80% by disabling them. Can't do that with active accounts :D 19:39
alester It's running Drupal and I'm sure there's some dumb problem with the PHP package and I will fix it tonight.
PerlJam Juerd: sure you can! See BOFH :)
pmichaud I'm not married to the idea of using drupal -- if there's something we'd prefer to be using instead, that's very fine with me
colomon masak: I was wondering if Configure.pm should be included with proto. Or a proto project.
diakopter CentOS 19:40
alester If that's not OK and you would prefer to redo the entire site, then more power to you. Sounds like baby/bathwater to me.
masak colomon: it is included with proto.
moritz_ if anybody wants to run such a system on feather2, please give a shout and I'll shout back with a root password.
19:41 Su-Shee left
moritz_ for now my tuits are short; maybe next week I'll get around to something 19:41
alester And here's my frustration
PerlJam moritz_: what if the shout is more like "AAAAAIiiiighghhhhhh"? :)
masak colomon: proto is about to go through a redesign, after which Configure.pm won't end up in every project, but will end up in a central lib/ along with other compiled modules.
alester The False Importance of "OMG IT DOESN'T WORK RIGHT NOW LET'S REDO IT OVER HERE"
colomon masak: Ah. Then you're already on top of it. masak++
pmichaud alester: I don't think that's at all what we're saying.
alester When the answer is 19:42
moritz_ alester: I'm not at all for redoing it *IFF* we find a way to increase our bus number
masak colomon: not so much on top of it as dreading tackling it :)
alester and mind you, this isn't just because it's my system that fell over :-)
pmichaud the part we want to redo is the fact that there's only one point of contact for addressing failure
alester When the answer to "the system is down" is "let's redo it", that's baby/bathwater
TimToady alester: yes, the original discussion was about your bus number
pmichaud even though we have a number of people who indicate willingness to help with the existing system, that appears to be "not an option"
alester pmichaud: Yes, I'm not wanting to give root to people on my box. 19:43
pmichaud if the existing system constrains us to a bus number of one, then we likely need a new system
19:43 eMaX left
alester There are two issues here. 19:43
Admin of the software, which is the problem, and user privs in Rakduo.
I don't disagree with increasing bus number.
and moving rakudo.org from huggy.petdance.com to feather-or-whatever makes sense. 19:44
but
I would not say "Oh and while we're at it let's just convert it to This Other Thing"
because 1) it's extra work, and 2) it DEcreases the chances of actually moving it.
moritz_ agreed.
pmichaud if converting to This Other Thing makes it easier to increase our bus number or decrease our maintenance load, then it's worth considering
I'm not saying that This Other Thing automatically solves that problem. But we shouldn't ignore it either. 19:45
alester It would be pretty easy to pick up the DB and drop it onto another box running Drupal.
I'm wary of seeing this as a Mug Throwing.
PerlJam alester: what version of drupal is rakudo.org using?
alester PerlJam: A broken one apparently. :-)
PerlJam heh
alester I don't know 19:46
and right now I really can't look at it.
Juerd alester: Note that feather0 is a Xen host, available for new virtual servers if required
alester it's pretty recent.
Juerd: That's fine, I'm not interested in doing the moving.
I don't have the time.
Juerd alester: So don't let the maintenancelessness of feather1 stop you :D
alester: Sounds familiar
alester My actions here will be "fix rakudo.org tonight"
I cannot do anything else at this point. 19:47
pmichaud alester: I agree with your choice of actions at this point
alester: I totally understand you might not want to allow root privs on your box (I'd be wary also), and what you're saying makes very reasonable sense
alester adn I certainly am not saying Drupal Is Best. 19:48
but I knew it had to be better as a CMS than MT
TimToady
.oO(MegaTokyo?)
pmichaud alester: if you're not able to fix rakudo.org until this evening, I'm appreciative of whatever effort you can make (and the ones you've made thus far) 19:49
alester pmichaud: OK,ok, my ass is kissed. :-)
I just have two mech tests that have been kicking me for days that I STILL haven't fixed.
pmichaud yes, I've been there myself many times :)
I'm looking more for longer-term solutions than "we have to fix this right now or else the world comes to a halt omgwtf" 19:50
yath hm, does sub foo { bar } always need to be terminated with a ; in perl6?
pmichaud a few days of rakudo.org issues is _not_ going to kill us at this tage of the game
*stage
moritz_ yath: it can also be terminated by a newline
pmichaud yath: only if followed by something on the same line
jnthn yath: not if the } is the last thing on the line
yath ah, okay, thanks
jnthn
.oO( too slow )
19:51
pmichaud one question, three different answers that are in fact the same :)
TimToady yath: and if } is the last thing on the line, it *never* needs semi
diakopter excepting perhaps whitespace, if you count that as a thing?
yath TimToady: semi?
ah
semicolon ;)
TimToady doesn't need a semi truck either
M_o_C Drupal is some sort of collaborative blogging and content managing system, at least what I understood from the docs. So it's probably more suitable than MovableType, which always appeared to be more single-user to me and more as a blog than CMS... 19:52
TimToady
.oO(wondering what a semi-bus would be now)
pmichaud diakopter: I'm not in a mode where I can see that nothing between the branches :)
yath is there a specific reason for that? as in: can there be modifiers after a sub-block?
pmichaud yath: it's because blocks can be terms in expressions
moritz_ KyleHa: btw feel free to steal/work on/resolve tickets assigned to me. Currently I act as a placholder for "this ticket needs a test to be closeable", but these days I feel like I'm falling behind
yath pmichaud: mhm, but that wasn't different in perl5, was it?
pmichaud so there has to be something (newline or semi) that definitively terminates the statement 19:53
TimToady it's a consistent rule that doesn't need to know which blocks are built-in and which are user-defined
perl5 required ; on some block, and not others
jnthn moritz_: Aye, I'm assigning to you as a way of tagging them as much as anything. :-)
KyleHa moritz: I figured that was the case, but thanks for making it explicit.
yath TimToady: hm, where does it require a ;?
jnthn Though moritz++ is great at writing tests too. :-)
TimToady eval {...} 19:54
yath ah
yep, hm.
KyleHa I may be less active for a while; I've been given a lot to do at work.
masak I've been thinking about whether some omitted semicolons should be considered 'bad style' under idiomatic Perl 6, however.
yath though i'd like to write eval { foo } die "foo" if ($@); ;)
masak I often like to see a semicolon after `my $foo = { ... }`, for example.
moritz_ jnthn: yes, that's still fine; I just don't have the responsiveness anymore that I had back in the days[tm]
Juerd yath: Why not eval { foo } or die "foo";? 19:55
TimToady well, the last line in a multi-line block should have a semi, even though not required
Juerd That's what I do all the time in Perl 5. Just write your eval so that when it succeeds, it returns a true value.
yath Juerd: that was just an example for the missing semicolon. we miss you in #perl on ircnet, btw :)
Juerd If all other attempts fail, eval { foo; 1 } or die "foo";
yath: Thanks.
pmichaud note that p6 eval requires a string argument :-) 19:56
Juerd s/eval/try/ :D
yath hu? how would that look like?
masak rakudo: say "here yet?"
moritz_ no.
masak :/
moritz_ maybe I should move the bots to feather3
Juerd pmichaud: Hm... eval { block }.perl? ;)
moritz_: As long as they're not evalbots.
pmichaud eval "foo"; die "foo" if ($@);
Juerd moritz_: For evalbots there's feather3
moritz_ Juerd: where should evalbots go?
TimToady pmichaud: what are those parens for? 19:57
yath pmichaud: but there's something equivalent to eval BLOCK?
moritz_ that's why I wrote feather3 ;-)
Juerd moritz_: Separated because they're dangerous
You wrote 3. Hm, I read 2. Never mind!
Sorry :)
pmichaud TimToady: pillness or something like that .
moritz_ np
TimToady yath: try { ... }
Juerd moritz_: Great plan!
pmichaud TimToady: One could ask what that $@ is for, also :)
yath TimToady: ah. makes sense :)
TimToady I figgered it was p5 still
alester ok, I have to go heads-down on this bug 20:00
20:00 alester left 20:01 molaf left
yath na, und was is mit der erststimme? 20:02
oops
M_o_C I hate how google semi-ignores specialchars in search queries and will display mixed search results...
moritz_ Juerd: how safe is it reboot a virtual feather{2,3} after a kernel upgrade? do they usually come up clean again? 20:04
Juerd Yes
moritz_ thanks
Juerd And if not, I haz console 20:05
moritz_ right; I'll notify you if there is any problem.
diakopter "heads down".... always makes me think "thumbs up!" 20:07
colomon "We give this movie two heads down." 20:09
20:12 nihiliad left 20:14 solarion left, nihiliad joined, ispy_1 left 20:17 molaf joined 20:21 edpratomo left
dalek kudo: 8b525f1 | jonathan++ | src/classes/Str.pir:
Catch exceptions in sprintf that come from Parrot, and just return a Failure.
20:26
sjohnson what is the Perl 6 way to find out if a string contains anything? still if length($string) {} ? 20:28
moritz_ length() is forbidden.
$string.chars works
sjohnson err, chars i mean
is that the smart way to do it? 20:29
TimToady eq '' still works fine
sjohnson i use it in PHP, p5 all the time, testing if there is length($string) or strlen($string) in PHP
hmm, ne '' i'd probably use in this case
20:30 pugs_svn joined, pugs_svn left, pugs_svn joined, pugs_svn left, pugs_svn joined
M_o_C :o 20:30
20:30 pugs_svn left
moritz_ in bleadperl length(undef) doesn't warn, and gives you undef instead 20:30
sjohnson deosnt' return 0? 20:31
p5 seems to return 0 if you do that
$VAR1 = 0;
moritz_ sjohnson: yes, and warns if you enable warnings 20:32
sjohnson o ic 20:34
20:35 pugs_svn joined, pugs_svn left, pugs_svn joined, pugs_svn left, pugs_svn joined
pugs_svn r28065 | pmichaud++ | [t/spec]: Update plan in typecasting-long.t . 20:35
r28066 | jnthn++ | [t/spec] Test for binding to an attribute.
r28067 | jnthn++ | [t/spec] Re-fudge sprintf test (win 2, lose 1 but I'm dubious it's right...we probably should fail, not die like the test wants.
sjohnson rakudo: my $insensitive_flag = 1; my $animal = 'COW'; my $query = 'o'; if $insensitive_flag { say $animal ~~ m/$query/i; } else { say $animal ~~ m/$query/; } 20:36
moritz_ p6eval still isn't up again 20:37
I've put pugs_svn on feather3
sjohnson hmm, are any up that i could try? 20:38
moritz_ you can install rakudo ;-)
on your machine
anyway, interpolation of variables into regexes is NYI
sjohnson haha i had a feeling that was going to come :)
ok, my question is this, since you have looked at the query
masak sjohnson: Rakudo still doen't do variable interpolation of variables.
sjohnson the way i did it there looks very juvenile 20:39
moritz_ you should do that anyway (installing rakudo)
sjohnson i will
moritz_ oh, and modifiers don't go at the end anymore
jnthn yay, pugs_svn is back
moritz_ either at the front (which is NYI), m:i/.../
or inside
m/ :i ... /
20:39 nihiliad left
moritz_ (which Rakudo implements ATM) 20:39
sjohnson moritz_: , what would be the smarter, less cludgy way, of doing this: 20:40
my $insensitive_flag = 'i'; my $animal = 'COW'; my $query = 'o'; say $animal ~~ m/$query/$insensitive_flag;
pmichaud I'm not sure there's a way to do it (more)
but if there is, it'd be
sjohnson i run into this a lot
moritz_ in a perfect Perl 6 you could write m:i(?$insensitive_flag)/.../
pmichaud say $animal ~~ m:i($insen.... what moritz++ wrote
moritz_ :i is just an attribute, and can take a boolean variable as value
s/variable/value/ 20:41
TimToady but might eval at compile time
pmichaud there's been some discussion in the past that flags like :i and :ratchet would need to be compile-time evaluated, though.
sjohnson as long as it doesn't involve me having to write out a if / else statement, and two statements that look near identical
( `ー´)
boorean would be nice 20:42
pmichaud you could do
my $query = ':i o'; m/<$query>/
sjohnson then i don't have to store 'i' in a $flag
pmichaud (also nyi in rakudo, fwiw) 20:44
sjohnson i'm optimistic about the future
TimToady i'm pessimistic about the past
sjohnson does (?$flag) return a 1 / 0 if it's true or not?
pmichaud it returns true or false
+?$flag would return 1 / 0 20:45
sjohnson that's a big deal
20:47 maerzhase1 joined
jnthn TimToady: Is trying to access the state of a type object an exception or just a fail? 20:51
jnthn leans towards exception on this one 20:52
It's a fairly big problem if you're trying...
20:53 molaf left 20:54 pugs_svn left, pugs_svn joined 20:58 hercynium joined
jaffa8 TimToady,your past looks bright to me. 20:59
sjohnson haha, he's got a bright past behind him
masak better than having a bright past ahead of oneself. 21:00
missingthepoint better both. :) 21:01
masak that would be the case for a time traveller stuck in an excellent time loop, for example. 21:03
reqamst rakudo: -« (1,2) 21:04
masak reqamst: evalbot has gone the way of _why. 21:05
reqamst who or what is _why?
masak nevermind. evalbot is not here right now. :)
reqamst hmm... hyper operators are currently implemented or my just have problems with utf8?
jnthn reqamst: Oly for infixe. 21:06
masak reqamst: (_why was a prodigious hacker in the Ruby community. he disappeared last week)
jnthn only, infixes
moritz_ reqamst: note the UTF-8 on the command line causes trouble
so perl6 -e '(1,2)»+«(3, 4)' # FAIL
in a file it works fine
jnthn masak: If the tests pass, I mighta just got rid of one more bunch of null PMC accesses. :-) 21:07
reqamst moritz_: oh, thanks
sjohnson moritz_: doing (undef eq '') in p5 producing a warning, too
so is it still any better than doing chars(undef) in p6?
or more importantly, chceking if any string is empty
21:09 zloyrusskiy left
masak jnthn: don't worry, I have more bugs coming up. :) 21:10
jnthn: take a look at this one, for example. gist.github.com/175034
though I suspect it's really for pmichaud.
moritz_ \# is forbbiden, but the error message is LTA 21:11
21:11 ruoso left
masak waitwait, \# is forbidden? why? 21:12
jnthn
.oO( LTA is a re-ordering of TLA )
masak LTA is also an excellent TLA.
moritz_ because... forgot the reason. It's in the commit message that modififed S05 accordingly
some parsing ambiguty
masak dives into S05
moritz_ you have to write '#' now
or maybe it was a commit against STD.pm 21:13
masak S05:603: An unescaped C<#> now always introduces a comment. 21:14
that's all I've found so far.
moritz_ $ cat foo.pl 21:15
\# /
that was / \# /, but irssi ated it
$ ./tryfile foo.pl
masak :)
moritz_ ===SORRY!===
No unspace allowed in regex (for literal please quote with single quotes) at foo.pl line 1:
------> / \⏏# /
masak wow, this feels so primitive... :)
is that an STD.pm LTA error message? 21:16
I wasn't doing an unspace, I was backwhacking my #!
21:16 Infinoid_ is now known as Infinoid
diakopter maybe some double-escaping is occuring 21:17
masak anyway, 21:18
masak submits rakudobug
21:22 orafu left, orafu joined 21:23 iblechbot left
masak ok, next one. 21:26
this surprised me a twinge: gist.github.com/175042 21:27
but maybe I've misunderestimated something.
moritz_ so basically you attempted a rebless? 21:28
masak aye.
was that bad?
moritz_ yes. Bad masak and all ;-)
21:28 jhorwitz left
masak now that's an awesome error message: "bad masak at line 2". :D 21:29
moritz_ I don't see how that should work with incompatible storage of class A and B
masak moritz_: no, neither do I. but I though, well, that's what bless does. rebless things.
Perl 5 can do it.
moritz_ yes 21:30
perl 5 is... different ;-)
masak the spec doesn't say that this has changed. hence Perl 6 can do it. :)
21:30 frederico left
masak dang, I love logic. 21:30
moritz_ especially aobut objects
speaking of "surprised me a twinge"
dpkg -l libglib2.0-0
ii libglib2.0-0 2.16.6-2 The GLib library of C routines 21:31
a 2.0-0 in version 2.16.6-2?
that's unexpected.
21:31 tak11 joined
missingthepoint masak: here's a choice. something cool, or something really cool? :) 21:31
masak missingthepoint: tough choice. :) 21:32
missingthepoint: is there a downside to the really cool, or is it better in all respects?
missingthepoint masak: there's a "but" attached to the latter...
masak g'ah, I knew it! 21:33
without knowing the details, I'd go with 'something cool', then.
play it safe.
missingthepoint masak, you make me sad. :*( 21:34
you didn't even know the "but".
moritz_ you didn't even tell the "but". 21:35
masak missingthepoint: I thought this was a game, and you were deliberately withholding information...
missingthepoint: sorry, I'm following instructions as best I understand them. :)
missingthepoint would you like to know the "but"? :)
masak of course!
is it even understandable without knowing the choice?
missingthepoint it just means you wait a little longer for Text::CSV tests. That's all. :)
masak ah, that's the but. 21:36
well, I'm busy as hell, so waiting is no big problem.
now that I know the 'but', I'm really curious to know what it's buying me. :P 21:37
missingthepoint well... "really cool" then? :)
masak am I deciding now? that's all the information I get? :)
oh awright, I'll go with *really cool*. 21:38
missingthepoint \o/
masak and, apparently, that was the right choice. 21:39
missingthepoint :D
masak missingthepoint: looking forward to the really cool. :)
you've never disappointed me before, so... 21:40
missingthepoint I'll be back When It's Done. :D
masak ok. :)
I'm probably heading to sleep soon.
it's late on this side of the planet. 21:41
moritz_ aye
good idea akshually
good night
masak moritz_: o/ 21:42
missingthepoint Night Mr. Masak. You've made me happy, and I can't even tell you _why. :)
masak that's good enough for me.
missingthepoint: good luck with whatever.
21:42 Limbic_Region joined
masak peace out, #perl6. you're all awesome. 21:43
21:43 masak left, missingthepoint left 21:45 Whiteknight joined 21:50 takadonet left 21:54 b_jonas left
jnthn awww...failed one test. :-/ 21:55
moritz_ I take that as a compliment ;-) 21:56
21:56 hercynium_ joined
moritz_ actually I heard that quite a few times now from you, jnthn 21:57
all tests but one or a few pass
jnthn Yeah
moritz_ I take that as a good indication of test coverage
jnthn Sometimes they point to real failings.
However this current one that just failed I'm looking at thinking, hmm.
We have this:
class Foo { our $.bar = 23; our $.yada is rw = 13;
moritz_ (having something like Devel::Cover for Rakudo would be really awesome, though)
jnthn }
And also this 21:58
class Quux is Foo { has $.bar = 17; };
And then this:
moritz_ urm.
jnthn lives_ok {$test5 = Quux.bar}, 'class attribute still accessible via class name';
Surely though, the .bar method that it calls there *has* to be the accessor?
Which can't work on the type object? 21:59
moritz_ I agree
we'd need more magic on type objects to get that working the way the test wants it
which isn't specced
jnthn Since an accessor method is just a method and subject to normal dispatch rules, which is that methods in the subclass win (unless they explicitly defer, or are multis so are allowed to have no matches...but either of those I think is not really desired accessor behavior)
Right, I think it was not spec. 22:00
s/was/is/
And I can't imagine a sane obvious spec change that would make this pass, off hand.
moritz_ the test writer probably thought that 'our $.bar' introduces a 'multi method bar(::$?CLASS $self where { ! $self.defined }:) { }
jnthn Other than accessors check the definedness of the invocant.
moritz_ right 22:01
jnthn Yeah
moritz_ but that seems a bit off
so just revert the meaning of the test
jnthn That's not spec though, and feels a little too magical.
moritz_ with a nice omment explaining
jnthn dies_ok {$test5 = Quux.bar}, 'class attribute hidden by accessor in subclass; we do not magically ignore it'; 22:03
nice enough?
ah, class attribute *accessor* maybe
moritz_ +1 22:04
22:05 hercynium left
moritz_ reallybednow 22:05
jnthn night! 22:06
22:06 KyleHa left
pugs_svn r28068 | jnthn++ | [t/spec] Correct a test that seemed to think there was more to accessor methods than plain old inheritance semantics - nothing is spec'd to suggest this, and we only accidentally passed it before in Rakudo. 22:06
22:14 rfordinal left, rfordinal joined
pugs_svn r28069 | jnthn++ | [t/spec] Unfudge a test Rakudo now passes, and tweak its explanation a little. 22:14
dalek kudo: bd51ce2 | jonathan++ | src/pmc/p6opaque.pmc:
Detect attempts to access attributes of a type object and throw an exception, rather than letting them be Null PMC Accesses.
22:16
22:17 pmurias left 22:18 hercynium_ left 22:21 jaffa8 left 22:23 rfordinal left, veritos joined 22:29 veritos left 22:31 nbrown joined 22:38 ruoso joined 22:45 kborer joined
sjohnson question: Perl 6 way to do a case insensitive "eq" ? 22:47
ie, keyword, not ~~ matching
*puppy dog eyes* 22:48
22:48 buubot left, buubot joined
kborer does anyone know where to find transcripts or videos of the last two State of the Onion addresses? 22:51
TimToady sjohnson: lc $x eq lc $y 22:54
er, that won't work 22:55
sjohnson such would work, but what if i have about 15 of those type of lines, ie, a case statement, and it gets a bit ugly looking
TimToady P5-Think
$x.lc eq $y.lc
sjohnson iq = insensitive eQual :)
TimToady well, you can *write* the when exprs in lower case then
and just do given $x.lc
Limbic_Region kborer - the last State Of The Onion really wasn't (I am slightly miffed at Larry for that) but you should be able to get his OSCON vid online 22:56
TimToady Limbic_Region: well, when the choice between agonizing a couple weeks over what is mostly an entertainment event, vs getting two more weeks of work done on STD and just talking about that, it gets to be an obvious decision 22:58
22:59 tak11 left
Limbic_Region TimToady - I am not REALLY miffed - I was just getting your attention since kborer's question seemed to go un-noticed 22:59
Limbic_Region could have kicked you instead
;-)
23:01 acajou joined
TimToady I'm slightly miffed you're not slightly miffed. :P 23:01
23:02 maerzhase1 left
Juerd sjohnson: Consider how incredibly ugly the language would be if every kind of string comparison or matchng had its own case-insensitive variant. 23:03
sjohnson: With regexes we can't really get away with not having that, but see the mess that PHP has with all the *i* or *case* functions.
eregi, eregi_replace, mb_eregi, mb_eregi_replace, str_ireplace, stristr, stripos, strripos, strcasecmp, spliti... 23:05
sjohnson i agree with that 23:06
Limbic_Region Juerd - do you own dvorak.nl ?
Juerd Perhaps Perl 6 *could* have a syntactically more generic approach, but it would still be silly because you can already do the same thing with lc...
Limbic_Region: Yes, aoeu.nl too
Limbic_Region Juerd - did the tutorial change? I mentioned it the other day but then the API seemed different 23:07
Juerd API?
It has an API? :D
Limbic_Region well, maybe I am misremembering. It came up yesterday in #perl and I pimped it hard for you ;-)
Juerd Yay 23:08
23:08 kborer_ joined
Juerd But it doesn't have an API. It's just a big bunch of perlishish javascript 23:08
(So you can download individual lessons and practice offline!)
I changed the entire typing trainer a year ago. Not sure when exactly. 23:09
Limbic_Region yeah - the typing trainer is what I meant
and it must have been a year since I played with it
Juerd The lessons are still the same though
Limbic_Region I got pretty proficient at the home row but laziness kicked in
Juerd Aw 23:10
Limbic_Region anyhow - we should turn #perl6 back over to its regularly scheduled programming
Juerd It takes most people between 5 and 10 hours to learn to touch type the entire alphabet.
Programming is scheduled now?
TimToady one of the times I won the IOCC was with a dvorak keyboard remapper 23:13
"most well-rounded in confusion" was the description, I believe :)
23:16 M_o_C left
Juerd Hah 23:18
23:20 kborer left 23:21 kborer joined 23:26 payload left 23:29 kidd_ left, rdice left 23:30 carlin joined 23:36 kborer_ left
pugs_svn r28070 | lwall++ | [STD] disallow alphanums as delimiters 23:43
TimToady if we're really gonna support Rat, then 1.00 .. 2.00 :by(0.01) should really default to Rat arithmatic 23:46
23:46 nihiliad joined, justatheory left
TimToady which implies normal decimal literals should default to Rat, not Num 23:46
jnthn use.perl.org/~JonathanWorthington/journal/39530
(Rakudo day report)
TimToady at least up to some precision or other
jnthn TimToady: Hmm. That could be...surpsing. 23:47
*surprising.
TimToady what, that the values are exact :)
?
jnthn That 4.5 doesn't give you floating point by default. 23:48
TimToady there are two worries
one, there won't be an appropriate Rat version to coerce to Num where needed
two, that the coercion will be slower, and not cacheable
we could have a pragma that sets the threshold 23:49
so anything up to N digits gets Ratified
and setting to 0 means 4.5 would be Num
but something to be said for defaulting to doing money exactly 23:50
23:50 tak11 joined
TimToady I don't want to force people to write 45/10 all over the place 23:51
but for efficiency we probably need a way for the initial dispatch to cache the coercion of a literal so it doesn't have to keep redoing it 23:52
similar possibilities arise for various string encodings of "foo" 23:53
which probably wants to be a utf8 buf somehow, and autocoerce to Str as needed
or something like that 23:54
literals in general are polymorphic in this funny way
jnthn Hmm
Yeah
ruoso .oO( native currency notation... )
jnthn yeah but we already use $ ;-) 23:55
TimToady anyway, just thinking out loud
not intending to make you lay awake tonight worrying :)
ruoso jnthn, we can always use €
23:56 zamolxes joined
jnthn TimToady: Heh, it's actually been hotter than I can really cope with for sleeping here this last week or so. 23:56
Or at least, it is until 3am or so.
ruoso multi prefix:<€>($val) { return $val with currency semantics }
TimToady I think the generic currency marker would be much more appropriate there 23:57
¤
ruoso is there one?
hm... fantastic
23:58 wayland76 left
TimToady I'm *not* going to make people type that... 23:58
ruoso it's even easy to type in my compose xmodmap setup
23:58 wayland76 joined
ruoso compose, x, o 23:58
use Currency; 23:59
TimToady use rat :digits(0);