pugscode.org/ planetsix.perl.org/ | nopaste: sial.org/pbot/perl6 | evalbot: perl6: say 3; (or rakudo:, pugs:, elf:, etc) | irclog: irc.pugscode.org/
Set by mncharity on 5 January 2009.
00:00 [particle] left 00:01 [particle]1 left
pugs_svn r24921 | lwall++ | [STD] allow $x\i 00:02
r24921 | lwall++ | [STD] guess at two terms in a row for syntax error where infix was expected
r24921 | lwall++ | [STD] postfix:<i> now parses at Methodcall precedence to avoid surprises on .i
00:07 Eevee joined
TimToady std: my $t = 5; $t\i 00:09
p6eval std 24921: OUTPUT«############# PARSE FAILED #############␤Syntax error at /tmp/5TEfGr9Ke6 line 1:␤------> my $t = 5; $t\i␤ expecting any of:␤ POST␤ infix or meta-infix␤ infix stopper␤ postfix␤ postfix_prefix_meta_operator␤ standard stopper␤
..statement modifier loop␤ terminator␤ wh...
TimToady STD not rebuilt yet, apparently... 00:10
I'm leaning towards saying that $t.i must always be the method call, and use $t\i form to force postfix on any alphabetic postfix 00:12
and then Any can declare method i { self\i } 00:14
this will avoid surprise if the user defines their own method i
ruoso what is $x\i? 00:15
jnthn TimToady: ($t.i always is a method call) yes, please. 00:16
ruoso (the simple idea that $t.i could be something else freaks me out) 00:17
00:17 pmurias left
Eevee is there any chance of pack/unpack being human-friendlier in p6? and is there any support in rakudo right now for parsing binary files? 00:17
TimToady p6 will treat pack templates more like assembly code that is expected to be the result of some other function 00:20
ruoso: currently 42.i is 42i 00:21
ruoso hmm
TimToady but I've decided it's probably a bad idea
the problem is with $x.i 00:22
you can't just say $xi
($x)i works
but we've already specced that $x\i should work
ruoso I see...
TimToady and if that works, I can force $x.i to be the method call 00:23
jnthn Gets my vote.
TimToady and we can supply a default i method that still does complex
ruoso not on Any
just on Number
jnthn And probably Int.
ruoso please
Eevee sounds good to me 00:24
ruoso isn't Int a Number
TimToady why? It'll just fail if self\i doesn't work
jnthn ruoso: OH NO DON'T START THAT ONE AGAIN
ruoso again?
jnthn ruoso: some_int_here ~~ Num
However in type hierarchy I don't thin Int isa Num
TimToady but ~~ is does, not isa
jnthn ruoso: I'm sure there's been more than one thread on this topic on p6l. 00:25
ruoso jnthn, sorry... missed those
and I'd expect Number to be a role, actually
TimToady so putting method i into role Num is probably okay
jnthn *sigh* Yeah, a spec'd type hierarchy would be nice.
TimToady whistles
jnthn TimToady: Am I missing it in the synopses, or do we anywhere explicitly specify the "a role puns a class if used as one" thing? 00:26
Example
my $x is Array[:of(Int)]
Roles are parametric but not classes, thus Array must be a role.
_but_ roles aren't meant to be directly instantiable, right? Or? 00:27
I'm about at the point in Rakudo where I rather need an answer on this kinda stuff.
ruoso so do I, actually 00:28
TimToady S12:2070 mentions punned roles in passing
some roles have enough information to pun, and some don't, I assume
jnthn Hmm. 00:29
OK, that is probably workable.
TimToady a matter of defaults, I presume
ruoso I'd be happy with the idea that all built-in types represent just an API
jnthn TimToady: I'll clarify it to my liking in S14 and you can give it the appropriate amount of hate. :-)
TimToady Array and Hash presumably default to :of(Object) or some such 00:30
ruoso the problem is how Array.new could work
jnthn The thingy that's installed in the namespace for a role can intercpet a method lookup, I guess. 00:31
TimToady you can't call a method on a role, so obviously you're asking for a pun
jnthn And hand back (or generate if it's the first time) the punned class.
Or rather, an instnce of it.
TimToady a form of autoviv
jnthn That's workable for me.
I just want to spec to explicitly say it. Oh hey, I signed up to do S14... :-) 00:32
Seriously though, those answers pretty much clear up a lot of my questions.
00:32 DemoFreak left
ruoso hmm... 00:33
jnthn The whole "roles are something you can instantiate" thing stops looking so.
But that doesn't mean we need to *encourage* people to pun.
erm, *can't* instantiate 00:34
00:34 alc joined
TimToady they're like bare quarks; they create their own reality if you try to do it 00:34
ruoso just a sanity check 00:35
jnthn ...sanity?!
;-)
ruoso are we ok with "built-in types are just interfaces" ?
pugs_svn r24922 | lwall++ | [STD] default $x.i to be method call, not postop; use ($x)i or $x\i now 00:36
TimToady interfaces with default implementations
jnthn Which means, er, roles?
TimToady yes, here's how you perform Hamlet by default, but you can tweak it... :) 00:37
jnthn nods
ruoso you realize that this is making 4.WHAT more and more undetermined 00:38
TimToady 'course, now someone will say that [1,2,3].WHAT should be saying Array[:of(Object)]
jnthn TimToady: Why?
ruoso because if Int and Num are just roles, 4 might be RandomInternalThingyThatHappensToImplementNumAndInt 00:39
Eevee you know, there should probably be an S00 that serves as a glossary/index
jnthn ruoso: Ah. Hmm. :-)
TimToady so 4 is really an Int{ :value(4) } kind of protoobject
jnthn ruoso: I suspect the punned class should take on the name of the role.
ruoso which one? 00:40
if we impose that
we're making them classes
jnthn We gotta have a class at _some_ point.
We're not at all.
ruoso but that might be implementation specific
TimToady Eevee: go for it :)
Eevee haha, walked right into that
jnthn role Array[:$of] { ... } 00:41
ruoso I think my point is relaxing the spec in that sense
allowing more implementation-specific stuff
TimToady role Array[:$of = Object] {...}
jnthn Array.new # Puns a class that does Array and has the short-name Array
TimToady: Yes, I was thinking that and didn't write it. :-)
00:42 hercynium left, pcbuetow joined
jnthn ruoso: If someone wants a more custom implementation than the methods in the Array role and Any provide between them, they can write their own class MyArray does Array { ... } 00:42
Or role MyArray[:$of = Object] does Array[$of] { ... } 00:43
If they wanna keep it all parametric.
TimToady does Array[:$of] to keep it named 00:44
ruoso I'm ok with that part
TimToady or you can "class Array is also {...}" but then you're modifying the punned class, not the original role
ruoso my question is about .WHAT
TimToady roles are immutable
jnthn TimToady: Erm, it's passing it as a parameter there, it's not a sig!
Oh! 00:45
Duh
TimToady :$of declares a named only parameter
jnthn Named parameter. :-)
Yes, yes.
TimToady mind, maybe we want it positional
jnthn This is what beer does.
TimToady so people can say Array[Object]
jnthn TimToady: Perhaps we do.
TimToady and can still say :of(Object) if they like 00:46
jnthn TimToady: My main reason for wanting to go positional, is that we don't do multi-dispatch on named paramters...
TimToady ah
jnthn And I don't want to give you the idea of proto roles.
TimToady Array[Hash[Array[Hash[Object]]]]
I can buy it, I think 00:47
jnthn That's fine. Folks can still write my Hash of Array of Hash @a;
Eevee who updates existing synopses? e.g. I don't see infix \ in S03
Limbic_Region is that anyone with a pugs commit bit?
ruoso yes
Limbic_Region Eevee - got a commit bit? 00:48
Eevee I may
jnthn ruoso: On WHAT, I don't see an issue with returning a proto-object for the punned class.
Eevee aha, I do
jnthn And when it comes to what we want it to stringify to, saying "it's the short name" doesn't to me seem like a huge issue. 00:49
Multiple proto-obojects *already* stringify to the same thingy anyway.
ruoso jnthn, right... that means [1,2,3].WHAT === Array migth fail
jnthn Hmm. Yes.
Since in the namespace, Array is a role. 00:50
ruoso cool... that's my point
jnthn Is that a problem?
Or rather, do you see that as a problem?
ruoso pmichaud had a problem with it, iirc
some people expect .WHAT to be a way to test type identity
jnthn I'd happily break their expectations. 00:51
TimToady only .WHICH provides identity
jnthn [1,2,3].WHAT ~~ Array
00:51 |jedai| left
jnthn Is 1 char less. 00:51
;-)
(And would work.)
ruoso well... that was my point at all times this issue came out
TimToady the purpose of WHAT is to give a glib answer to "What is it?" 00:52
WHO gives the long answer, iirc
00:52 |jedai| joined
ruoso well, I'm glad to hear that... 00:52
jnthn TimToady: Well, it gives back the proto object, which is also a way to make another one of the same thingy. It's the stringification that I guess gives the "what is it" kinda answer. 00:53
$x.WHAT.new # another instance of whatever type $x is
Though I'm not sure how that plays out if you've mixed into $x 00:54
ruoso that's precisely my corner-point
jnthn As in, should that give you a new instance of what $x originally was, or the current "class" of $x...
TimToady I guess it's just stringification that shortens WHO
ruoso as SMOP stands today... the current $x
jnthn ruoso: Ah. Rakudo does the opposite. 00:55
It doesn't matter to me a great deal which answer we pick though.
On my side, it's a trivial change, I think.
TimToady mixins create new classes
jnthn TimToady: Aye.
I'm leaning towards what SMOP does rather than what Rakudo does.
TimToady so $x.WHAT represents $x's new class
jnthn OK. I'll fix Rakudo up on that one. :-)
jnthn is really happy to be getting all these questions answered. 00:56
TimToady is happy to get a refresher in his own spec :)
ruoso I'm still unsure on how to make Object.Str return "Object" 00:57
TimToady note proto stringifies to Array() these days, according to S12
jnthn Oh?
I missed that commit
Rationalie?
TimToady I'm trying to remember
jnthn *Rationale
[particle]2 to show it's undef-like nature
iirc 00:58
TimToady that were it
00:58 [particle]2 is now known as [particle]
jnthn That's a very xen answer. :-) 00:58
TimToady aye
eep, gotta go play the drums at church 00:59
jnthn I can certainly say on the Rakudo side that built-ins will become roles *after* we get a Perl 6 prelude.
00:59 pbuetow left
jnthn doesn't fancy hand-PIRing parametric roles 00:59
TimToady: Have fun. Thanks for the input! :)
ruoso indeed...
TimToady afk & # gotta beat it... 01:00
jnthn <rimshot>
[particle] <eyeroll>
dh_ sick
jnthn Ooh, 2am. 01:02
jnthn -> sleep
01:10 iblechbot left 01:12 hercynium joined 01:22 eternaleye joined 01:25 |jedai| left, |jedai| joined 01:35 eternaleye left 01:41 hercynium_ joined 01:44 hercynium_ left 01:54 [particle]1 joined, [particle]2 joined, LimbicRegion joined 01:55 [particle]2 left 01:58 [1]Limbic_Region joined 02:00 [particle] left, wknight8111 left 02:03 [particle]3 left, LimbicRegion left 02:08 Exodist left, Helios left 02:12 Limbic_Region left, [1]Limbic_Region is now known as Limbic_Region 02:24 Helios joined 02:36 aindilis left, aindilis joined, unobe joined 02:42 gravity left, eternaleye joined 02:49 justatheory left 02:56 hercynium left
pmichaud std: my %h; %h{"key"} = "value"; say %h\{"key"}; 03:01
p6eval std 24922: OUTPUT«00:07 87m␤»
03:09 kisu_ left 03:14 kisu joined 03:19 hercynium joined 03:23 sail0r joined, Eevee left 03:27 sail0r left 03:28 cognominal left 03:29 sail0r joined 03:35 cognominal joined 03:37 chrisdolan joined
chrisdolan Very roughly, how feasible is it to implement actions.pm for a PCT-based language in Rakudo instead of NQP today? 03:40
pmichaud chrisdolan: Rakudo doesn't have good binding operators yet. 03:43
other than that, not too difficult. 03:44
also, Perl 6 changed such that $/ can't be a parameter. I'm not sure how to deal with that one yet.
std: sub foo($/) { ... } 03:45
p6eval std 24922: OUTPUT«############# PARSE FAILED #############␤Unable to parse multisig; couldn't find final ')' at /tmp/8kaGZiX71c line 1:␤------> sub foo($/) { ... }␤ expecting any of:␤ param_sep␤ parameter␤ post_constraint␤ trait␤ twigil␤ whitespace␤00:05
..83m␤»
chrisdolan By binding, you mean the "make" command, or something else?
pmichaud :=
chrisdolan Oh
03:54 meppl joined 03:57 Limbic_Region left 03:58 Eevee joined 04:04 samlh joined
pugs_svn r24923 | lwall++ | [STD] allow $/ and $! as parameter names 04:12
04:14 [particle] joined, |jedai| left 04:15 |jedai| joined 04:18 pasteling left, meppl left, Helios left, alc left, wolverian left, Patterner left, AzureStone left, japhb left, xuser left, lisppaste3 left, cotto left, zostay left, nnunley left, szbalint left, hcchien left, eternaleye left, pcbuetow left, Grrrr left, sepheebear left, mdxi left, elmex left, mj41 left, charsbar_ left, ryanc left, ilbot2 left, revdiablo left, allbery_b left, StephenPollei left 04:19 eternaleye joined, pcbuetow joined, Grrrr joined, sepheebear joined, mdxi joined, elmex joined, mj41 joined, charsbar_ joined, ryanc joined, revdiablo joined, allbery_b joined, ilbot2 joined, StephenPollei joined, meppl joined, Helios joined, alc joined, wolverian joined, Patterner joined, AzureStone joined, japhb joined, xuser joined, lisppaste3 joined, cotto joined, pasteling joined, zostay joined, szbalint joined, nnunley joined, hcchien joined 04:23 mdxi left, Grrrr left, pcbuetow left, ilbot2 left, ryanc left, StephenPollei left, eternaleye left, sepheebear left, revdiablo left, allbery_b left, mj41 left, elmex left, charsbar_ left 04:25 pasteling left, szbalint left, cotto left, japhb left, Patterner left, alc left, xuser left, hcchien left, nnunley left, Helios left, wolverian left, zostay left, lisppaste3 left, meppl left, AzureStone left, eternaleye joined, pcbuetow joined, Grrrr joined, sepheebear joined, mdxi joined, elmex joined, mj41 joined, charsbar_ joined, ryanc joined, revdiablo joined, allbery_b joined, ilbot2 joined, StephenPollei joined 04:26 meppl joined, Helios joined, alc joined, wolverian joined, Patterner joined, AzureStone joined, japhb joined, xuser joined, lisppaste3 joined, cotto joined, pasteling joined, zostay joined, szbalint joined, nnunley joined, hcchien joined, sail0r left 04:27 cspencer joined 04:30 alester_ joined 04:32 [particle]1 left
diakopter std: sub foo($/) { ... } 04:44
p6eval std 24923: OUTPUT«00:05 83m␤» 04:45
diakopter std: sub foo($!) { $/ } 04:55
p6eval std 24923: OUTPUT«00:05 84m␤»
04:55 cspencer left 04:56 cspencer joined
pmichaud std: sub foo($_) { ... } 04:59
p6eval std 24923: OUTPUT«00:05 83m␤»
pmichaud TimToady++ # allowing $/ and $! as parameter names 05:00
rakudo_svn r35615 | pmichaud++ | [rakudo]: Fix degenerate space before postfix ops. (RT #60148)
05:02 Patterner left, jhorwitz left 05:05 alc left 05:14 |jedai| left 05:15 cspencer left
diakopter rakudo: say "is if a function" if(1); 05:15
p6eval rakudo 35614: OUTPUT«is if a function␤»
05:15 |jedai| joined
diakopter rakudo: say "is if a function" if (1); 05:16
p6eval rakudo 35615: OUTPUT«is if a function␤»
diakopter rakudo: say "is if a function" if.(1); 05:17
p6eval rakudo 35615: OUTPUT«is if a function␤»
diakopter rakudo: say "is if a function" if .(1);
p6eval rakudo 35615: OUTPUT«is if a function␤»
diakopter o_O
pmichaud: I assume there are rakudobugs already for the above? 05:19
pmichaud yes.
although why "if as a function" is so important to people kinda boggles my mind.
TimToady std: say "is if a function" if(1); 05:20
p6eval std 24923: OUTPUT«00:06 86m␤»
TimToady oops
pmichaud :-)
did it backtrack to the modifier form?
TimToady not looking for a term when expecting an infix, and modifier if apparently doesn't reject () form 05:21
diakopter std: say "is if a function" if .(1); 05:22
p6eval std 24923: OUTPUT«00:06 83m␤» 05:23
diakopter std: say "is if a function" if.(1);
p6eval std 24923: OUTPUT«00:06 86m␤»
diakopter std: say "is if a function" if\ .(1);
p6eval std 24923: OUTPUT«00:06 86m␤» 05:24
pugs_svn r24924 | lwall++ | [STD] add <nofun> to statement modifiers 05:33
TimToady that'll fix your wagon...
diakopter pmichaud: perhaps it feels significant because it's a backward incompatibility 05:36
std: say "is if a function" if\ .(1); 05:37
p6eval std 24924: RESULT«(null pattern for prefix_circumfix_meta_operator:*) at Cursor.pm line 462.␤############# PARSE FAILED #############␤Syntax error (two terms in a row?) at /tmp/E93mtQYhWL line 1:␤------> ( ( do { say "is if a function" if\ .(1);␤ expecting nofun␤00:06 49m␤» 05:38
diakopter std: say "is if a function" if .(1); 05:40
p6eval std 24924: OUTPUT«00:03 33m␤» 05:41
diakopter std: .();
p6eval std 24924: OUTPUT«00:02 32m␤»
diakopter rakudo: .();
p6eval rakudo 35615: RESULT«[undef]»
diakopter std: \ .(); 05:45
p6eval std 24924: OUTPUT«00:02 32m␤»
05:48 chrisdolan left
TimToady std: say "is if a function" if(1); 05:56
p6eval std 24924: OUTPUT«############# PARSE FAILED #############␤Syntax error (two terms in a row?) at /tmp/EXHinKVKR3 line 1:␤------> say "is if a function" if(1);␤ expecting nofun␤00:07 86m␤»
06:03 mberends left 06:07 Psyche^ joined, Psyche^ is now known as Patterner
pugs_svn r24925 | putter++ | [elf_h] Improved name mangling. Still crufty. 06:07
r24925 | putter++ | [elfparse] Started sketching in category handling. Also tweaked README, removed some dead code, and added Makefile targets.
06:12 alc joined, pmurias joined 06:18 pmurias left 06:27 |jedai| left, |jedai| joined 06:33 jimmy_ joined 07:08 [particle] left 07:20 stephenlb left 07:21 pcbuetow left 07:22 masak joined 07:23 ChrisDavaz joined 07:41 spx2_ joined 07:42 spx2 left
pugs_svn r24926 | lwall++ | [STD] alignment with S03 on associativity noted by mtnviewmark++ 07:42
r24926 | lwall++ | [STD] added various missing functions and types
r24926 | lwall++ | [t/spec] remove my() function calls :)
07:42 alester_ left 07:43 ejs joined
masak rakudo: sub my($a) { say "OH MY" }; my $b; my($b) 07:45
lambdabot masak: You have 1 new message. '/msg lambdabot @messages' to read it.
p6eval rakudo 35615: RESULT«undef»
masak @massage
lambdabot azawawi said 5d 11h 20m 49s ago: use.perl.org/~azawawi/journal/38255
masak lambdabot: yes, I've read that message. twice. I've also asked you to clear it.
lambdabot: have I misunderstood your mode of operation somehow? if so, please let me know. 07:46
@clear
lambdabot Messages cleared.
moritz_ masak: yesterday I also got a 7 days old message from lambdabot 07:48
masak moritz_: wonder what causes it. 07:49
TimToady perhaps you're trapped in a monad
masak isn't everybody? 07:50
how else would we be able to do side effects, I mean?
moritz_ i'm not, but I want to get out anyway ;-) 07:51
masak that's deep.
pugs_svn r24927 | masak++ | [u4x] added special exo-proglang terms to list 07:53
TimToady @tell pmurias it's likely that I just broke mildew with the associativity changes 07:54
lambdabot Consider it noted.
08:02 jimmy_ left
masak mtnviewmark++ # the email on ops 08:04
08:04 iblechbot joined
moritz_ www.perlfoundation.org/perl6/index....code_ideas 08:05
feel free to add any Perl 6 or Parrot ideas there 08:06
08:08 mberends joined 08:10 DemoFreak joined
masak moritz_: are the parenthesized names meant to signify proposed, or possible mentor? I'm thinking whether I should add myself to the 'Documentation' item. 08:14
(as a possible mentor, because I see myself being heavily involved in u4x) 08:15
08:16 _jedai_ joined 08:19 |jedai| left
mberends masak: hi! took up your volunteer appeal for November, and can so far report the following: the Perl 5 prove in Debian has no -e or nocolor, but does support --perl instead. are you willing to change that in Makefile? 08:21
masak mberends: aye, sure! patches welcome.
mberends: since I sighed and moaned yesterday, my particular issues then have been solved (I fixed them). but volunteers are still very welcome for many things. 08:22
mberends: we still have an outstanding grammar matching issue in the tests and in the application itself.
I know what to do about it, I just haven't done it.
mberends ok, and is this the address for patches, or git push instead? 08:23
masak mberends: git push is only possible if you have access to the november-wiki repo. 08:24
(which I'm perfectly willing to give you, but it'll take a while, since viklund sits on the admin controls)
(maybe a day or so)
you can always clone the repo at github. 08:25
or just send patches by email.
remember to add yourself to the AUTHORS file. :)
mberends will do later, must start teaching soon. M$. 08:26
masak gotcha. 08:27
08:32 vixey joined
moritz_ masak: initially I meant proposal, but feel free to yourself to it 08:38
masak oki 08:39
08:40 ludan joined
Matt-W Good morning 08:41
moritz_ good mourning ;-) 08:42
masak goad mooring. 08:43
Matt-W Another day of work 08:44
moritz_ but TCIF! 08:45
Matt-W Hitting Visual C++ with a hammer and wishing for a nuclear missile
TCIF? 08:46
moritz_ Thank Christ It's Friday 08:47
masak Matt-W: I'm not sure there's any context where one should actually, truly wish for a nuclear missile. unless perhaps in museums, disarmed.
moritz_: I know about Thank God It's Wednesday, but I'd never heard about TCIF :) 08:49
moritz_ masak: it comes up every Friday on the Perlmonks chatterbox 08:50
masak oh.
I'm not a Perlmonk regular, I'm afraid.
Matt-W masak: I'm speaking of metaphorical hammers and metaphorical nuclear missiles - something that will get rid of Visual C++, anyway
masak Matt-W: OIC. I thought for a moment you were really tired of your work.
Matt-W Real nuclear missiles keep me awake at night.
Probably the worst thing the human race has ever done 08:51
No no not *that* tired
maybe if they stop me coming to #perl6...
08:51 _jedai_ left 08:54 |jedai| joined 08:59 vixey left 09:05 vixey joined 09:06 ChrisDavaz left 09:22 jimmy_ joined, wolverian left, wolverian joined 09:24 schmalbe joined 09:25 jferrero joined 09:30 alc left 09:40 namenlos joined 09:49 tmaesaka joined 10:05 braceta joined 10:27 _jedai_ joined, pdcawley left, |jedai| left 10:30 pmurias joined 10:35 agentzh left, tmaesaka left 10:36 agentzh joined 10:38 jimmy_ left 11:07 ashizawa joined 11:11 |jedai| joined 11:13 _jedai_ left 11:29 nnunley left 11:30 |jedai| left, ruoso left, |jedai| joined
pugs_svn r24928 | jnthn++ | [t/spec] Some fudging changes (mostly removal) and corrections to a roles test, so we can add it to the spectests. One test I'm not quite sure what to do with - left it fudged for now. 11:38
11:39 xinming_ joined 11:47 pmurias left
rakudo_svn r35622 | jonathan++ | [rakudo] Implement .does method (Any delegates to the metaclass, and we have the implementation there). 11:50
r35623 | jonathan++ | [rakudo] infix:<but> needs to be aware of ObjectRef, otherwise we end up affecting the original object.
r35624 | jonathan++ | [rakudo] Oops, should have checked updated makefile in a couple of commits ago.
r35625 | jonathan++ | [rakudo] Add the (now substantially passing) S12-role/basic.t to the spectests. It tests .does in the non-parametric case as well as covering the infix:<but> with ObjectRef bug recently fixed.
11:51 xinming left
pugs_svn r24929 | jnthn++ | [t/spec] Unfudge some .does parameterized roles tests for Rakudo now that we have at least some implementation of that. 11:57
12:00 pjcj joined
Matt-W jnthn: you've been busy 12:01
jnthn Matt-W: Just .does, a bug fix and some spectest review. :-) 12:03
Matt-W Looks good to me!
More tests that work is always good
12:11 schmalbe left
jnthn looks at some dispatch-y stuff for a bit as a break from parametric roles 12:11
12:17 plu left 12:32 ruoso joined 12:38 schmalbe joined
ruoso are we already preparing stuff for GSOC2009 for Perl 6? 12:46
moritz_ ruoso: I'm collecting ideas 12:47
and we should start advertising early
ruoso I'd like to add a proposal of a project
which is to hunt down all SMOP leaks
moritz_ oh, fun
ruoso: just add it to the wiki page 12:48
ruoso where?
ruoso has a short memory
moritz_ ruoso: www.perlfoundation.org/perl6/index....code_ideas
jnthn: t/spec/S12-methods/instance.t fails for me 12:59
as well as S12-methods/syntax.t 13:00
jnthn That's odd...
moritz_ (or maybe I should tell pmichaud, how changed the parser recently)
jnthn Hmm. But I did svn up today and didn't see those ones. :-| 13:01
13:01 ruoso left
jnthn I've got some really nasty local diffs at the moment, so can't check much right now... 13:01
13:02 ruoso joined
moritz_ it barfs on $obj.method\ () 13:02
which sure looks related to what pmichaud did
jnthn Ah, phew. :-) 13:04
13:04 kane_ joined
jnthn Crap, I has to do parrot guts. :-| 13:04
13:12 ruoso left 13:17 ruoso joined 13:21 lisppaste3 left 13:26 lisppaste3 joined
pmichaud weird -- I did a 'make spectest' after implementing \ () and didn't get any failures. 13:27
jnthn pmichaud: I'm currently trying to sort out the "subclassing Sub" mess. 13:31
So we can rebless_subclass things.
Which means Parrot guts. :-| 13:32
pmichaud jnthn: good luck. :-)
13:36 jferrero left, |jedai| left, |jedai| joined 13:43 masak left
jnthn pmichaud: I'd need less luck if people bothered to follow the "have a PARROT_INTERP parameter" rule... 13:49
13:50 ashizawa left
pmichaud is that a rule? ;-) 13:50
jnthn Not if your name is leo. 13:51
</harsh>
13:54 araujo left
jnthn Gah. Now I've made PGE explode. :-| 13:54
Matt-W Oh dear 13:59
rakudo_svn r35629 | pmichaud++ | [rakudo]: spectest-progress.csv update: 285 files, 6263 passing, 0 failing 14:00
14:00 cai joined, namenlos left
jnthn OK, PGE lives. :-) 14:01
14:05 namenlos joined
Matt-W Hurrah! 14:11
I know, I'm not being very helpful, I'm just trying to provide some moral support 14:12
jnthn Muchly needed when dealing with Parrot guts. 14:16
Matt-W I've not looked inside Parrot. I daren't. 14:19
Quite enough to deal with the PIR code that makes Rakudo go
jnthn Well, progress...that makes us through the sanity tests again. 14:21
Matt-W Generally a good state to be in 14:22
jnthn And Test.pm isn't epic breakage.
14:25 unobe left 14:27 Lorn joined
ruoso I just realized the capture issue wasn't solved yet 14:34
for those who don't remember, the issue is:
"what should a capture return when coerced to a context it doesn't provide a value for?"
Matt-W undef? 14:35
ruoso Matt-W, that doesn't DWIM
Matt-W Well if there's no value... 14:36
I'm obviously missing lots of subtleties here :)
ruoso "return 1"
that contains a single positional argument
the spec says a capture in item context returns the invocan
there's no invocant there
but that applies to every other context
Matt-W If there are times when there is no invocant, a capture in item context can never be guarenteed to return the invocant 14:37
Problem 14:39
14:40 jhorwitz joined 14:47 schmalbe left
ruoso yes... but in order to DWIM, there needs to be exceptions... 14:48
jhorwitz, hi... I'm writing the SMOP report atm... I think it's the longest ever...
jhorwitz your previous ones were long....this one's gonna be a book. :)
14:50 _jedai_ joined, |jedai| left 14:51 alexn_org joined 14:56 jan_ left
jnthn Oooh...I forgot about lunch, with all the debugging. 14:59
jnthn is a tad hungry now...bbiab 15:00
15:08 agentzh left 15:16 [particle] joined 15:17 hercynium left
ruoso you know... I'm a little worried that the grant took a path so diverse from the planned that we only reach the end when SMOP+Mildew releases 1.0 15:21
jhorwitz, ^ 15:22
because I planned to implement the prelude in a first-stage language 15:23
but now we're implementing full Perl 6
jhorwitz yeah, i mentioned that several months ago, but the benefits (at the time) outweighed the diversion.
ruoso well the benefits now still outweight the diversion, I think... 15:24
jhorwitz right -- and we can always tweak the timeline or deliverables to match reality. maybe we should talk about that... 15:25
15:27 cspencer joined 15:31 athenot left 15:33 Exodist joined, ruoso left 15:34 ruoso joined 15:35 alester left
ruoso *sigh* my uplink is closing my connections 15:35
15:35 alester joined
pmichaud (smop grant) fwiw, as an interested observer, I'm very impressed by what is being accomplished by the grant. Even if the path has diverted from what is planned, I think it's clear that TPF and the Perl community are getting something very valuable from it. 15:36
ruoso jhorwitz, if we take a look at the original plan
we had 1) s1p
this is now mildew, which is not a first-stage language... but instead a full Perl 6 implementation
pmichaud so, I'd be very supportive of recognizing that the plan changed (for the better).
ruoso 2) the built-in types
that is where we are right now
but as it's not based on a first-stage language, it's way more complicated
3) AST Types 15:37
I think that is already implemented by mildew, and we even are a back-end for STD instead of KP6 which is, IMHO, a very important aspect
so, the only thing missing from the original plan is the built-in types... but considering we're already doing it in full Perl 6, it means that when the built-in types are ready, we almost have a full Perl 6 implemnetation
(missing the grammar engine)
in fact, if we take a look at the "deliverables" of the grant proposal
"SMOP has already a planned ROADMAP, in which it is very clear where its effort starts to intersect with KP6. The aim of this grant proposal is to take SMOP to the point where it can be effectivelly used as a KP6 backend, as it's marked in point "0.4.4" of the ROADMAP."
We're currently effectively used as a STD backend 15:38
which looks prettier than as a KP6 backend
jhorwitz indeed
pmichaud: your sentiments are widely shared. 15:39
15:40 _jedai_ left 15:41 |jedai| joined 15:43 alexn_org left
PerlJam ruoso: so just say, "oops, I did too much" :-) 15:43
jhorwitz ruoso: even with the different path you ended up taking, the results are impressive and as pmichaud said, very valuable to the community. i wouldn't worry about any issues with the grant. :)
pmichaud jhorwitz said what I was trying to say 15:44
i.e., I don't think anyone will have issues with the grant.
or its deliverables.
jhorwitz esp. when the grant manager has no issues. ;-)
ruoso ;) 15:48
15:50 riffraff joined, |jedai| left
ruoso jhorwitz, does that mean I can consider the grant as finished? 15:50
15:51 |jedai| joined
jhorwitz ruoso: i need to take a look at the propsal again and talk w/ ambs. it's a lot to grok. :) 15:52
but you're saying that the only missing thing right now is built-in types? 15:53
and that won't be there til 1.0?
15:53 ejs left, ruoso_ joined 15:54 ruoso left
ruoso_ jhorwitz, well... the problem is nat it's not "only" the built-in types 15:54
15:54 ruoso_ is now known as ruoso
ruoso because it's now a "full typesystem bootstrap" 15:55
not just the first-stage
and that's way more complicated than writing the built-in types in a simplified language 15:56
15:57 jan_ joined
jhorwitz right 15:57
ruoso for instance...
I started with ClassHOW
but ClassHOW requires "return" 15:58
then I wrote "Return"
then Return requires "is export"
then "is export" requires Multi
then I started Multi
and Multi got its own requirement
if it was a first-stage language, I'd use compiler hacks to make ClassHOW work 15:59
but it's being compiled as full-featured Perl 6 16:00
TimToady btw, I probably broke mildew last night with STD associativity changes
jhorwitz oh, well that changes EVERYTHING. ;-)
ruoso I saw it in the backlog... still haven't time to test it...
TimToady in particular, some things changed from left to list associative
which may tend to propagate through as api changes from ($a,$b) to (*@args) 16:02
ruoso TimToady, in the meanwhile, have you thought about the capture issue?
TimToady been thinking about it off and on all along 16:03
my problem is that the current design seems to want to do contradictory things with item context
and I'm not sure we have enough item contexts to carry it off :)
ruoso for now SMOP only implements the DWIM for no invocant but positionals
there are still all the other combinations
TimToady and I'm wondering how best to break out some of the item functionality 16:04
maybe a type-based coercion
so there are slots that say, if you want this type, this is the value 16:05
ruoso that looks.... complicated...
TimToady then Str and Int can be set separately
and Object could be current result object
but it's still a bit blurry
16:05 cspencer left
ruoso TimToady, remember that Capture is a very "delicate" object 16:05
TimToady yes, I know it 16:06
ruoso SMOP still has a native capture
TimToady but when circumstances are forcing us to do indelicate things with it, I'm not sure what's gonna break
ruoso which is, at this moment, used for all method invocations
TimToady, surprisingly, mildew didn't broke at all 16:07
TimToady huh
quick, ship it 16:08
ruoso mildew isn't that fragile at all
;)
s/at all/after all/
I think you might have preserved the basic VAST structure
TimToady not really, list assoc comes out a completely different structure than binary ops 16:12
ruoso ah... that's probably because there isn't much of list implementeed
foo(1,2,3) is handled specially, because it's a capture 16:13
mildew: my sub foo($a, $b, $c) { $OUT.print($a.FETCH, $b.FETCH, $c.FETCH) }; foo(1,2,3);
p6eval mildew: OUTPUT«123»
ruoso (the FETCH there is because of a bug in $OUT) 16:14
TimToady, that is why I was considering it would be interesting if STD had capture in itself 16:15
specially because named arguments become a compiler hack
TimToady it occurs to me that changing things to list associative might complicate mmd 16:17
a param of (Foo *@args) doesn't give as much to work with as (Foo $a, Foo $b) 16:18
16:18 mberends left
ruoso TimToady, I don't get it... how that changes foo(1,2,3)? 16:19
(or am I simply missing the poitn?
s/poitn/point/)
TimToady $a ~ $b ~ $c is now essentially infix:<~>($a,$b,$c)
ruoso hmm... 16:20
ok...
16:20 hercynium joined
ruoso that indeed makes operator overloading very much complicated 16:20
16:21 cai left
ruoso except if we assume it works like lisp 16:22
sub infix:<~> (Foo $a, Foo $b, *@rest)
then inside it decides to call infix:<~>($ab, |@rest) 16:23
it becomes a basic rule that every infix operator needs to take the *@tail
and re-invoke with the |@tail 16:24
pmichaud (every list-associative infix operator...)
ruoso then we also need a infix:<~> (Foo $a)
TimToady another possibility, mmd just knows that infix implies at least two *@args of the given type
ruoso that catches the last
TimToady, actually...
TimToady hmm 16:25
ruoso if in the end we have a infix:<~>(Foo $a)
TimToady [~]
pmichaud define infix:<~> in terms of [~]? scary. :-) 16:26
ruoso I start to like that...
if you want to override ~
you just need to
infix:<~>(Foo $a, *@rest)
convert $a to some type handled by other variant 16:27
and re-call it
then if you have 16:28
1 ~ 2 ~ Foo.new ~ 3
it will be called at some point
so that override would be 16:29
sub infix:<~>(Foo $a, *@rest) { return [~] $a.my_conversion, @rest } 16:30
pmichaud interestingly, that means that the concatenations tend to occur right-to-left, though.
ruoso does it? 16:31
16:31 |jedai| left
pmichaud if I have [~] 'a', Foo.new, 'b', 'c' 16:31
TimToady yes, type determination on the way down, concat on teh way up
ruoso right right
got it
is that bad?
16:31 |jedai| joined
TimToady p5 has to go to pains to optimize binary concat to avoid multiple allocations 16:32
ruoso the interesting is that you might even provide some shortcuts
pmichaud it someone goes against the notion whereby we've thought of concatenation as primarily left-associative. Whether that's bad or not... I don't know.
ruoso sub infix:<~>(Str $a, Str $b, Str $c)...
pmichaud *it somewhat
TimToady I think it actually turns $a . $b . $c into a join('',$a,$b,$c), effectively 16:33
ruoso TimToady, I think you meant $a ~ $b ~ $c
TimToady I was speaking p5
ruoso ah... right
the only problem is that at some point we decided that the type in slurpy arguments is just a promess 16:35
16:35 vixey left
ruoso to avoid eagerly evaluating input in signature matching 16:35
16:35 schmalbe joined
ruoso so, in order to be mmd-aware, the signature always need to list the parameters explicitly 16:36
16:36 stephenlb joined
TimToady makes me think we want +@args to go with *@args 16:36
ruoso +@args?
TimToady at least on Foo arg
*one
ruoso right 16:37
TimToady but it's kind silly if the code is always going to be shifting $a off anyway
ruoso TimToady, :(Foo +@args) could ensure the first argument is of the given type 16:38
TimToady that was what I was thinking
ruoso but it doesn't apply to list-infix
because indeed, you'll be shifting it anyway 16:39
anyway... I like the idea of stealing yet another concept from functional programming 16:40
16:40 |jedai| left
ruoso leaving for a meeting & 16:40
16:40 ruoso left, |jedai| joined 16:44 riffraff left 16:46 vixey joined
rakudo_svn r35633 | pmichaud++ | [rakudo]: Require arguments to &foo to be callable. 16:50
16:52 justatheory joined 16:55 pdcawley joined 16:58 rindolf joined
rindolf Hi all. 16:58
jnthn hi 17:01
rindolf jnthn: what's up? 17:03
jnthn Not so much. Just busy Rakudo hacking. :-) 17:04
17:04 ludan left
rindolf jnthn: OK. 17:05
jnthn: are line numbers implemented yet?
jnthn rindolf: The Parrot changes needed for them pretty much are.
pmichaud PGE changes are next for that.
jnthn rindolf: However, still waiting on some PGE refactors.
pmichaud then PCT changes.
jnthn pmichaud: How's the timescale looking on thoes? I guess after the next relesae now? 17:06
pmichaud with some minor speed penalty I might be able to do the PCT changes first.
jnthn: definitely after next release. I have to get infrastructure issues resolved -- and that really needs to happen before Jan 26.
since infrastructure issues also include "how does one build Rakudo...", that's a bit of an imposing deadline.
jnthn Yes. 17:07
pmichaud (and we really can't do anything official until after Jan 20)
jnthn Ah, *crap*.
Just when I think I've fixed all the spectests up...
17:08 eternaleye left 17:09 eric256 joined
eric256 finaly got his home office setup ;) 17:09
pmichaud home offices are nice. :-) 17:11
jnthn Indeed. :-)
pmichaud I really like my office -- custom-designed my desk and everything. :-) 17:12
eric256 yea right now i've got our first kitchen table as my desk, but the plan is to find/make the perfect desk later
trying to figure out how to incorporate my HO trains with my desk ;) 17:13
pmichaud eric256: we made my desk out of kitchen cabinets :-)
(okay, they were desk cabinet pieces from a kitchen cabinet company)
eric256 pmichaud++ cool
jnthn doesn't have anything so special as that, but he does have a view out of the window. :-) 17:14
eric256 we will eventualy make our own kitchen cabinets and everything. wife and i love wood working, and shes an artist so it makes things interesting
17:14 pdcawley left
pmichaud yes, my desk was a birthday gift from my wife (who loves me _very_ much :-) 17:14
17:15 pdcawley joined
pmichaud (yes, it's mutual.) 17:15
eric256 hehe. my wife does all the crafty stuff, but i found a modular system designed for workshops i want to get her to adapt for the kitchen.
fully rearrangable kitchen would be pretty cool
pmichaud I should take pictures and write an article about my office setup. :-) 17:16
eric256 its been about 5 years since i had my own desk at home so i'm pretty excited, and i don't just get a desk i get a whole room lol
17:17 On is now known as On_home, On_home is now known as On_home_and_afk 17:20 silug left
jnthn
.oO(plz plz let this spectest run come back clean)
17:21
17:24 rindolf left
eric256 gits November to take a peak 17:24
did you still need help with the errors on it masak?
17:28 [particle]1 joined 17:29 araujo joined
rakudo_svn r35634 | bernhard++ | [codingstd] trailing_space.t 17:30
jnthn If anyone's not gainfully employed, may last ci to Rakudo (be sure to updated your Parrot too) made a bunch of todo's tests pass (ones that check retrun value of .WHAT to see we get Sub, Method, etc instead of just Block). 17:37
pmichaud: Is there an easy way to get regex subs a loadinit? I'm guessing not... 17:39
eric256 is there anyway to t get the "too few arguments passed" error to mention the medhot/function being called? 17:40
rakudo_svn r35637 | jonathan++ | [rakudo] Re-bless Parrot subs into Block, (Perl6)Sub or Method, so .WHAT answers correctly on them.
jnthn eric256: Maybe - that message comes from within Parrot guts.
17:40 Lorn left
eric256 okay i'll grep for it 17:40
since we don't have line numbers that would help 17:41
jnthn Yes.
eric256 starts a donation fund for line numbers ;)
jnthn eric256: Half the work for them has been done already, at least. :-)
eric256 yea!
jnthn Shouldn't be too long to 'em now. :-)
17:46 [particle] left
pmichaud jnthn: regexes are likely to get a loadinit as part of PGE stuff anyway. 17:55
but since a regex currently returns a PAST::Block already.... perhaps .loadinit already works?
jnthn pmichaud: Ooh, actually I didn't try it, just thought it probably wouldn't work. Hmm.
:-)
pmichaud want me to try?
jnthn Go for it!
pmichaud since I'm familiar with the regex code.
(and I can easily fix PGE if an easy fix is all that is needed) 17:56
okay, working.
jnthn The whole reason I did this pile of "fun" is that I can bless submethod into Submethod.
pmichaud that would be really nice, so that we can get smart matches correct.
jnthn So I don't need a nasty hack that I have to replace later.
pmichaud svn ups, rebuilds, prays.
jnthn Since doing submethod is on my Hague task list.
pmichaud: Be sure to get latest Parrot. 17:57
pmichaud I always do.
jnthn :-)
meppl good night
pmichaud I probably do realclean; rebuild at least a half-dozen times per day.
fortunately that doesn't take long on my machine.
pmichaud snickers loudly at Vonage's "come back to us, we'll give you two free months" offer 17:58
jnthn pmichaud: Did you have a test-case the other day on NCI stuff where the invocant was not deref'd and it woulda been good if it were?
Or something like that?
pmichaud I don't have a test case, but much of the NCI stuff has that issue. 17:59
jnthn remembers *some* discussion on something like this
Was it just the invocant at issue?
pmichaud no, the arguments also.
jnthn Or the params too?
Ah.
pmichaud I don't think we can _quite_ do anything about that yet, because some of the builtins still need the objectref.
jnthn Ah.
pmichaud although I suppose we could prioritize those builtins, or give them signatures. 18:00
jnthn Or I could test if I'm calling an NCI... ;-)
rakudo_svn r35638 | jonathan++ | [rakudo] Parse submethods and bless them into the Submethod class (also added here). Don't do the correct dispatch on them yet.
pmichaud oh, that also.
Andy: when I'm asked to approve a comment on rakudo.org, why does the link come up with "theworkinggeek.com"?
jnthn I'm just about to try a refactor so that $foo.bar(...) actually does $foo.^dispatch('bar', ...) 18:01
18:01 meppl left
pmichaud jnthn: seems reasonable. 18:01
jnthn We are a step closer to the HOW API then. 18:02
However, we then have to walk the parents ourself.
Which'd hit performance a little. But we can also make ourselves a little cache. :-) 18:03
(But not in the first cut.)
alester I don't know.
pmichaud we can't do a "find_method" to let parrot walk the parents for us?
jnthn No because it won't ignore submethods.
alester pmichaud: They all run off the same MT.
pmichaud alester: okay. What's the prognosis for switching rakudo.org to drupal or something else? 18:04
alester Do you not like the MT?
Will there be people taking advantage of an update?
jnthn I for one will.
pmichaud not really -- at least from what I've seen the MT is primarily aimed for blog-type posting and not information-type ones.
we really need www.rakudo.org to be more of a "here's what rakudo is, how to get it, where to find it, faq, etc." type of resource 18:05
(that is, if www.rakudo.org is to be the main rakudo site)
yes, I suspect we have a number of people who would help quickly populate a new site with content -- especially if there's a way for us to hand out some "commit bits" for it. 18:06
18:08 bsdperl left, aindilis` joined, bsdperl joined 18:09 bsdperl left
pmichaud alester: if this is all something you'd rather not commit your resources to, we can find alternate venues. I'm not pushing one way or another (yet), but we are getting to a point where we'll want to make some decisions relatively soon. 18:09
alester I'd love to commit resources to it.
I want to make sure that there's going to be users for it, and I'm not setting up another blog in a different kitchen. 18:10
But from what you say, it sounds like there will be.
pmichaud oh yes, I think I can guarantee that.
alester I'm just doing standard project request pushback. :-)
pmichaud Rakudo really needs a site of its own. doing it on rakudo.org is the logical place for it.
the other logical places are perl.org or another domain such as rakudoperl.org, but perl.org isn't always convenient and since rakudo.org is already established (and the simplest name) it seems like the best immediate choice. 18:11
jnthn Agree.
pmichaud we're also not committed to drupal as an option -- it's only come up because you've mentioned it and a few of us have seen it in use for parrot.org. 18:12
jnthn rakudo.org is the place I've tended to point people at so far.
pmichaud we just know that MT isn't quite working for us, at least in its current incarnation.
so if there are other options besides drupal, we can entertain those as well.
jnthn pmichaud: How far are we off supporting s/a/b/ substitution syntax? 18:19
(As in, does it have a dependency on LTM or protoregexen?) 18:20
("don't know, you look" is a fine answer too :-))
pmichaud jnthn: I hadn't really thought about it much.
I figure that .subst is a reasonable substitute for now. 18:21
Or, in other words: s{ s/a/b/ }{ .subst(/a/, 'b') }
jnthn That works now? 18:22
OK.
Basically on my Hague grant I put that I'd finish up handles
pmichaud rakudo: say 'hello'.subst( /l/, 'x');
p6eval rakudo 35638: OUTPUT«hexlo␤»
jnthn Including the fun that is has $.fur handles (s/^furget_/get_/);
18:22 aindilis left
pmichaud rakudo: say 'hello'.subst( /l/, 'x', :global); 18:22
p6eval rakudo 35638: OUTPUT«hexxo␤»
pmichaud rakudo: say 'hello'.subst( /l/, { .ord }, :global);
p6eval rakudo 35638: OUTPUT«he108108o␤»
jnthn OK, so we certainly have the functionality, it's "just" a matter of syntax. 18:23
pmichaud not completely
we don't have s[pattern] = foo();
jnthn Ah, true. 18:24
pmichaud that might not matter for handles, though.
jnthn No, mabye not.
*maybe
pmichaud so yes, at this point it's _mostly_ a matter of syntax.
18:24 Lorn joined
pmichaud also the .subst method needs some refactoring -- its option handling isn't quite right. 18:25
jnthn rakudo: say 'hello'.subst(/will nee match/, 42)
p6eval rakudo 35638: OUTPUT«hello␤»
pmichaud I'd prefer to see it written in terms of .match
jnthn rakudo: my $x = 'hello'; say $x.subst(/will nee match/, 42); say $x;
p6eval rakudo 35638: OUTPUT«hello␤hello␤»
jnthn rakudo: my $x = 'hello'; say $x.subst(/l/, 42); say $x;
p6eval rakudo 35638: OUTPUT«he42lo␤hello␤» 18:26
jnthn rakudo: my $x = 'hello'; say $x.subst(/l/, 42).Bool; say $x;
pmichaud masak has beaten you to the easy ones, I bet. :-)
p6eval rakudo 35638: OUTPUT«Method 'Bool' not found for invocant of class 'String'␤current instr.: '_block14' pc 107 (EVAL_16:51)␤»
jnthn :-P
18:26 mncharity joined
jnthn pmichaud: I was wondering if there is a way to know, when doing a subst, if we did match. 18:26
As well as a way to get the result.
Oh, check $/ mabye?
pmichaud yes, that probably works. 18:27
jnthn rakudo: my $x = 'hello'; say $x.subst(/l/, 42).Bool; say $x; say $/;
p6eval rakudo 35638: OUTPUT«Method 'Bool' not found for invocant of class 'String'␤current instr.: '_block14' pc 107 (EVAL_17:51)␤»
jnthn rakudo: my $x = 'hello'; say $x.subst(/l/, 42); say $x; say $/;
p6eval rakudo 35638: OUTPUT«he42lo␤hello␤l␤»
jnthn rakudo: my $x = 'hello'; say $x.subst(/neeee/, 42); say $x; say $/;
p6eval rakudo 35638: OUTPUT«hello␤hello␤Use of uninitialized value␤␤»
jnthn woo
ftw
alester pmichaud: I'm all for the Drupalization 18:28
pmichaud alester: when would you be able to make it happen?
alester it will also be a good test-bed for theworkinggeek which I'm going to dump tons of content into aswell.
pmichaud: When do you want it to happen?
pmichaud good question.
alester no need to bust my ass for no reason.
it's lunch time here
let's discuss later. 18:29
pmichaud yes, let's. I'm thinking early next week.
alester I would LOVE
pmichaud (for when it would happen)
jnthn We could just bust your ass for the fun of it. ;-)
alester to have it ready for Frozen Perl
pmichaud I want it ready long before then. :-)
alester because one of the things that I want to talk about in my keynote is that the Only Thing That Matters is getting Rakudo out.
pmichaud I look forward to seeing that talk :-)
alester The other Only Thing That Matters is keeping Perl 5 going. 18:30
you gonna be there, Patrick?
pmichaud yes.
alester Oh right
I am signed up for one of your talks.
ok
lunch time;.
smoochies everyone.
18:30 alester is now known as AndyAway
pmichaud let's discuss drupal timing later, yes. 18:30
jnthn pmichaud: I wouldn't object to having it before my first workshop of the year. :-) 18:31
As in, would rather like to have it by... :-)
pmichaud jnthn: when's that? 18:34
jnthn 31st 18:35
(Jan)
18:35 Casan joined
pmichaud yes, that's along the time scale I'm considering. 18:35
I'm actually thinking that we may declare next week the "everything breaks" week. 18:36
mncharity TimToady: I note cd src/perl6/; make seems to have gotten slower. ./tryfile STD.pm just took 4:30. My fuzzy impression is that's a small integer factor or perhaps 10x slowdown. A 5 minute edit-test cycle on STD.pm changes seems problematic.
But I've not double checked it, and I had an OS upgrade, so perhaps I'm just confused. 18:37
jnthn pmichaud: Sheesh, you tell me that after I've spent this week carefully not breaking everything putting in parametric roles and refactoring dispatch. :-P
pmichaud oh, I meant breaks in terms of infrastructure, not code :-)
jnthn ;-)
OK, how epic fail is this dispatcher going to be... 18:38
TimToady mncharity: what you're noticing is that bare make didn't used to do tryfile STD.pm 18:39
18:39 |jedai| left
TimToady it does now to force rebuilding of baseline lexers 18:39
18:39 |jedai| joined
mncharity pugscode.org/ planetsix.perl.org/ | nopaste: sial.org/pbot/perl6 | evalbot: perl6: say 3; (or rakudo:, pugs:, elf:, etc) | irclog: irc.pugscode.org/ | ~340 days 'til Xmas 18:40
TimToady but tryfile STD.pm still runs about the same speed as it did, at least on my machine 18:40
mncharity ah, ok. thanks. 18:42
eric256 rakudo doesn't automaticaly use a .pm even if its newer than the .pir? is there going to be like a "compile needed modules" type option? or re-compile on demand? 18:45
pmichaud eric256: we haven't addressed those issues yet.
mncharity TimToady: would it be plausible to add a make fast target which doesn't do lex/STD/termish?
pmichaud "recompile on demand" somewhat assumes write permission to the needed files. That doesn't always exist. 18:46
or, put another way, "recompile on demand" is really "use the .pm file"
there are also a number of issues surrounding selecting which .pm file to use, if there are multiple versions of the same module. 18:47
so, let's just say it's a thorny issue that hasn't been a top priority as yet :-) 18:48
18:49 Psyche^ joined, tux300181 left, tux300181 joined
eric256 lol okay 18:50
18:50 Patterner left, Psyche^ is now known as Patterner
eric256 just through me off with november i did make, then modified a .pm and nothing happened. lol 18:50
is there a command line option for compiling modules? or do i just follow the syntax used in the make file? 18:51
pmichaud jnthn: what's the purpose of $block<block_class_type>[1] := $type;
?
eric256 pictures local user cache for compilation with write-ability) but thats definitly not at the top of the list
jnthn pmichaud: We set the block type to Block initially. 18:52
pmichaud jnthn: where does that happen? and why [1] ?
jnthn pmichaud: But later we may discover it actually wants to be Sub or Method or etc.
pmichaud oh, I see
it's the node.
jnthn Right.
I didn't want to have to go digging or making assumptions about the structure of the block.
So I set it as a <foo> 18:53
pmichaud I definitely agree there.
it's fine -- just didn't understand it at first.
jnthn If you can see a nice way not to set it wrong in the first place, I'm happy to do that. But I didn't think of one.
pmichaud maybe we should put _node as a marker for things that are references to PAST::* nodes
i.e., <block_class_type_node>
I'll think about it some. 18:54
it's fine as is for now though, now that I understand it.
oh dear. Looks like getting regexes to be Regex might now be a one line change. :-D 18:55
jnthn :-D
pmichaud++
eric256 any idea what "too few arguments passed (0) - 2 params expected" would mean if the line throwing it is a call to match a grammar?
jnthn Yes.
pmichaud how are you matching the grammar?
jnthn That you're not supposed to do it like that. :-)
pmichaud prepares the buzzer.... 18:56
eric256 github.com/eric256/november/blob/56...Grammar.pm that grammar
$c_str ~~ URI::Grammar::TOP;
pmichaud BZZZZT!
PerlJam eric256: you want some // and some <> in there
jnthn /<URI::Grammar::TOP>/
pmichaud actually, it's likely to become URI::Grammar.parse($c_str) later today.
PerlJam does the spec mandate that .parse() always starts at TOP ? 18:57
pmichaud if defined, otherwise the first declared rule.
or something like that.
(.parse will currently implement that it uses .TOP, because that's easiest for now.)
jnthn Ouch! You don't get much info on where the bug is, when you manage to make NQP crash inside PAST::Compiler... 18:58
eric256 okay 18:59
fixed that error, its my first look at the November code at all...off i go to the next
took 30 minutes just to find the peice of code ;( lol 19:00
19:02 aindilis` left
pmichaud jnthn: improving NQP stuff is on my ever-growing list of things to work on :0| 19:03
jnthn pmichaud: Found it.
pmichaud: $past.name() := "foo"; # duh!
Dies in PAST::Compiler with "rtype not set" 19:04
pmichaud then the error message said exactly what was wrong. :-)
just didn't say where.
jnthn :-P
pmichaud annotations should help that.
oh wait, that's me. Another item on my ever-growing list of things to work on :-|
PerlJam pm: find more delegates 19:07
19:09 braceta left
pmichaud PerlJam: want to work on NQP? ;-) 19:14
19:14 pbuetow joined
pmichaud oooh, time to put in my deprecation notice. 19:14
PerlJam pm: I *want* to work on lots of things ... therein lies the problem.
(NQP fall firmly within my areas of interest) 19:15
s/fall/falls/
19:15 |jedai| left 19:16 cognominal left, |jedai| joined 19:19 cognominal joined 19:34 riffraff joined
pugs_svn r24930 | putter++ | [STD] Added make fast target - like make all, but doesn't ./tryfile STD.pm . 19:35
19:35 Exodist left 19:36 _jedai_ joined 19:38 |jedai| left 19:41 aindilis joined
pugs_svn r24931 | putter++ | [elfparse] Set make target known_working_STD (to r24775), as elfparse isn't quite working with the current STD.pm. 19:43
mncharity ah well, more regression debugging another time. 19:46
19:47 mncharity left 19:49 [particle] joined 19:51 silug joined 20:01 _jedai_ left 20:02 |jedai| joined
eric256 okay. i have a failed match. but $/ ~~ Failure returns 0 and $/<path><chunk> gives me "Method 'postcircumfix:{ }' not found for invocant of class 'Failure'" since it said the invocant is Failure i thought ~~ would work... 20:05
20:07 [particle]1 left 20:11 athenot joined 20:16 AndyAway is now known as alester 20:19 ruoso joined 20:30 Lorn left
jnthn OK, that's Rakudo's dispatcher refactored, more HOW API compliance and should be submethods working too. Think that'll do me for the day. Time to go cook dinner. :-) 20:32
Matt-W jnthn: enjoy your dinner. I think you've earned it 20:34
eek 20:37
parrot no build!
20:38 nnunley joined
jnthn Sadly, the submethods.t tests all rely on lexicals being visible in classes that were declared outside of 'em. :-| 20:38
Matt-W: Oh? Where is fail?
Matt-W Invoking Parrot to generate runtime/parrot/include/config.fpmc --cross your fingers
./miniparrot config_lib.pasm > runtime/parrot/include/config.fpmc
/bin/sh: line 1: 5123 Segmentation fault ./miniparrot config_lib.pasm > runtime/parrot/include/config.fpmc 20:39
make: *** [runtime/parrot/include/config.fpmc] Error 139
I had just done svn up; make realclean; Configure.pl; make perl6
rakudo_svn r35645 | jonathan++ | [rakudo] Refactor dispatch. This now calls .HOW.dispatch, where we have a custom dispatcher, which will be filled out with more functionality in the future. Contains support for submethods, which appears to work (need to find/enable/write some spectests). 20:40
jnthn Ouch. 20:46
miniparrot segfaulting is...very bad. 20:47
:-|
Matt-W: What platform?
pugs_svn r24932 | putter++ | elfblue now works with current STD.pm.
r24932 | putter++ | [elf_h] Handle emit of infix ops with >2 arguments, in support of elfblue.
r24932 | putter++ | [STD_red] Defer require()ing readline until a repl is (rarely) requested, simplifying non-debian install.
r24932 | putter++ | [elfparse] Drop nodes.pm (created by nodes_create.pl) from source control, to avoid a make gotcha.
Matt-W jnthn: x86_64 linux 20:50
jnthn Ah. 20:51
Matt-W: Asking about it in #parrot
Matt-W Should I drop in there as well?
jnthn If you like - it's probably more of an on-topic channel for Parrot than this one, or there's more people who are clueful. 20:52
Matt-W Is it on freenode?
jnthn no 20:53
Wherever irc.perl.org goes. :-)
However
trac.parrot.org/parrot/ticket/179
Also
21:53 <@chromatic> jonathan, Allison ran into that yesterday.
21:53 <@chromatic> Something in scheduler initialization.
Seems x86 64 specific. :-(
Matt-W Fantastic, not just me then
jnthn No, not at all.
Matt-W I guess I'll just have to wait until it's fixed then 20:54
Thanks for following that up
jnthn np 20:57
20:59 perl7 joined 21:00 ejs joined 21:02 ruoso left 21:03 masak joined 21:05 Lorn joined, spx2_ left 21:06 spx2 joined
masak makes a mental note to put .i into Num in S29 21:12
21:17 km2 joined
masak can I type an array parameter to a sub or method? 21:20
something like sub foo(Array[Str] strings) { ... } 21:22
er, @strings
21:23 brunoV joined
PerlJam masak: what is that to mean? Like "Array of Str"? or something else? 21:25
masak PerlJam: yes... I don't know if I got the syntax right. 21:26
PerlJam Because it sounds like you're looking for sub foo (Str @array) { ... }
masak PerlJam: oh, right. yes.
ok, followup question:
what happens when I send an untyped array, consisting solely of Str objects, to &foo? 21:27
jnthn masak: My dinner is ready, but catch me on that a little later. :-) 21:31
masak jnthn: oki. if I'm awake by then.
jnthn: dobru chut. 21:32
pugs_svn r24933 | putter++ | [STD_red] The dump1 code for lisp was failing (ruby string encoding error) on the elf_h source's recently added string '$¢'. Fixed. elfish/on_sbcl's CL elf can again compile a P5 elf (though it remains not-quite correct). 21:35
21:38 pina joined
pina erm what is the output for perl -e"print qq^;@)\!\^^^qq^Y/[D:?\xa^" 21:38
21:38 thepler joined, On_Office joined
PerlJam masak: at a guess, I'd say that it would work unless you sent it an array that had an element that did not provide a Str representation. 21:38
21:38 spx2_ joined
masak PerlJam: ok. 21:39
so there are no compile-time vs run-time types involved or anything?
pina is there anything wrong with that oneline
onliner
one liner 21:40
21:40 Lorn left 21:41 |jedai| left
On_Office hmmmm 21:41
you need to do:
/mode #perl6 +t
21:42 |jedai| joined
pina what? 21:42
On_Office I mean an op needs to do it.
Otherwise some kids may abuse it. topicsfloods or just topicsheadaches 21:43
pina oh ok
thought you were referring to my question:) 21:44
On_Office :)
But most kids are probably on #php so i guess there is no need to worry :)
no, i am still learning perl6, to see how or in what may i can get involved and maybe help. Many things to learn. 21:45
masak pina: you should perhaps ask on a non-Perl6-specific channel
pina oh ok
masak On_Office: check out November! :) 21:46
PerlJam pina: try #perl or #perlhelp
pina k
On_Office #perlhelp is empty
21:47 schmalbe left
masak #perlhelp at irc.perl.org, perhaps? 21:47
21:47 riffraff left
On_Office 2009? or 2019? :) 21:47
masak On_Office: github.com/viklund/november
2009. 21:48
today.
On_Office Anything before 2012 is ok, then..
thanks
yes, i wrote about this one in slashdot.org something about versioning change to git.
masak On_Office: not sure I follow. which versioning change? 21:49
On_Office will look for the article, 21:50
masak much appreciated.
oh! you probably mean Perl 5.
On_Office: we're a bit futuristic here, so some of us have been using git longer than that. :) 21:51
On_Office ops, yes my mistake: developers.slashdot.org/article.pl?...p;from=rss
masak On_Office: no problem. :)
On_Office must admit complete ignorance, he is here to learn. 21:52
masak On_Office: that's a good state of mind to start with. :)
On_Office: do you have Parrot yet?
On_Office not yet 21:53
masak On_Office: when you do, you'll be able to compile Rakudo and play the ASCII board game I wrote.
it might be a nice way to get motivated and get started. 21:54
21:54 spx2 left
PerlJam What's a good project to do with November? Is there some feature it really needs? 21:54
21:54 Whiteknight joined
On_Office ASCII board game. Sounds interesting! Right now, I am dependent on dreamhost (like to do testing online). Maybe I can ask them to add parrot. 21:55
PerlJam On_Office: you don't have a desktop machine?
On_Office can help with this: security (42 years of expirience in breaking anything-YES ANYTHING), and testing with his CMS project which has nearly 7000 [sleeping] users. 21:56
21:57 ejs left
On_Office Yes, I have but we moved to a new appartment so knoiw life is a mess, 2 offices and 2 appartments with laptops and harddisks moving around, and no time to install ubentu yet. 21:58
PerlJam parrot runs on windows
On_Office Sounds like a crime.
PerlJam On_Office: If I'm stuck on windows for whatever reason, i'd like to have ready access to perl. Running parrot on windows means I can even get perl6 if I want to. 21:59
On_Office Is it better then Perl5 on windows? 22:00
PerlJam perl6 isn't finished yet. 22:01
So, it depends on how you define "better"
jnthn masak: I'm back.
On_Office Security.
Stability too.
masak jnthn: cool. same question again, then. 22:02
On_Office: we're not quite there yet. but Perl 6 is already good in some ways.
On_Office Will install nix and try the real thing, within 2 weeks. What % is done so far? 22:03
masak On_Office: with buildings and bridges, that is easy to answer. 22:04
jnthn masak: OK.
masak with the first ever implementation of a language spec, not so easy.
jnthn So on arrays
masak yes. 22:05
On_Office Asked one of the admins on DreamHost to add Parrot this is answer: "Pieces of eight, pieces of eight, squawkkk." lol
22:05 pmurias joined, Blasi left
PerlJam masak: you should read "Dreaming in Code" 22:05
jnthn So my current understanding is that it'll be like
22:05 |jedai| left
masak PerlJam: I am. 22:05
jnthn role Array[$of = Object] { ... }
Array here is the implementation type.
my $x is Array;
masak uh huh. 22:06
jnthn Or rather my @a is Array; too :-)
PerlJam masak: oh. Read the last few pages where Scott gets back to the comparison of bridges to software development.
:-)
masak PerlJam: haven't gotten that far yet. :)
jnthn You could pass a parameter.
my $x is Array[Int];
22:06 |jedai| joined
jnthn This is the same as 22:06
argh
my @x is Array[Int]; # I meant
my Int @x; 22:07
masak same as 'argh'? :)
jnthn :-P
so if you write
masak when you're about to die, you don't write 'argh' on the wall...
jnthn sub foo(Int @x) { ... }
On_Office It would be interesting to get dreamhost to test it, they are both large and Perl based.
jnthn You're asking for an array whose elements are Int.
PerlJam masak: the punch line is that the bridge he was talking about earlier is still being "built" a quarter of a century after it started and because of circumstance, even though some of it is built, no one can say what % is complete.
masak PerlJam: 'xactly. 22:08
jnthn If you write sub foo(Array of Int @x) { ... }
pmichaud rt.perl.org gets another -1 vote from me :-(
PerlJam so, it's not as easy to give a % for bridges or buildings or software.
jnthn You're wanting something that is an Array whose elements are Arrays of Int.
masak jnthn: ok, but that is not my question. I'd forgotten the syntax.
jnthn Yes, I'm getting there. Just wanted to get those bits clear. 22:09
:-)
masak goodie.
jnthn So as I understand it, what you're asking is what happens in:
masak I'm in a hurry, I'm running on battery :)
jnthn my @x = 1,2,3,4;
sub foo(Int @a) { ... }
foo(@x)
masak yes.
jnthn Since @x wasn't declared as an array of Int.
masak right.
jnthn I would *expect* this to suceed.
rakudo_svn r35651 | pmichaud++ | [rakudo]: Change Grammar.ACCEPTS to Grammar.parse. 22:10
22:10 [particle]1 joined
PerlJam jnthn: would you also expect my @x = <1 2 foo bar 3 4>; foo(@x); to succeed? 22:10
masak jnthn: how? scanning the array?
jnthn However, obviously what is passed doesn't (as far as it's declared) do Array[Int]
So yes, we'd need to actually scan the array in that case.
masak jnthn: what if it's infinite? :) 22:11
masak grins evilly
jnthn You're screwed.
?
;-)
PerlJam maybe it could fail lazily? :)
masak haha
jnthn lol
masak: The bigger point in all this though, is that parameterized roles will want a way of suceeding a smartmatch (e.g. a type-check against them) non-nominally. 22:12
As in, not just by the delcared name/type parameters.
pmichaud (non-nominally == "without eating them all"? ;-)
jnthn We need a generic way to do that really, I don't fancy having our built-in types as some special case.
masak pmichaud: :D 22:13
22:13 pina left
jnthn So I'm pondering a "will typecheck { ... }" trait at the moment. But, need to ponder it a bit more. 22:13
Anyway, I plan to put such musings into an S14, mark them REVIEW or CONJECTURAL or something and see what folks think. :-)
masak sounds good. 22:14
ok, heading home now.
see you all tomorrow.
22:14 masak left
jnthn have a good evening/night 22:14
pmichaud: In the case of a lazy list, that was a rather insightful comment ;-) 22:16
pmichaud jnthn: I meant it that way :-)
(as in, I intended both meanings :-) 22:17
jnthn lol
win
jnthn is still behind on his hague grant
But a lot less behind than I was at the start of the week.
pmichaud your not as far behind as I am :-|
*you're
jnthn You have the disadvantage of (a) having had a lot of other stuff that really needed sorting out and (b) having a really hard set of tasks. 22:18
Matt-W You have both done so much really impressive work
pmichaud and also some somewhat unexpected schedule changes, such as repository moves.
yeah, I don't fault myself too much for being behind on the grant, but it does mean the $$$ comes later. 22:19
(as in "shows up later")
jnthn Yes.
Hindsight is also 20/20.
PerlJam Matt-W: here's how it typically happens ... "I'm so behind" <2 days later> "okay, I finally got caught up and have finished my work and done these 4 other things that were slated for the future" ;-) 22:20
Matt-W PerlJam: I can live with that
22:26 [particle] left 22:27 vixey left
pugs_svn r24934 | hinrik++ | [util/perl6.vim] Made a few non-crucial things optional, which speeds things up considerably 22:33
22:36 Casan left 22:42 |jedai| left, Limbic_Region joined 22:43 |jedai| joined 22:45 braceta joined 22:53 jhorwitz left 22:55 iblechbot_ joined 23:00 pmurias left 23:05 perl7 left 23:08 iblechbot left 23:10 ryanc left 23:11 |jedai| left, |jedai| joined 23:19 ruoso joined
ruoso Hello! 23:23
diakopter ruoso: hi 23:28
ruoso hi diakopter... any luck in building smop in windows? 23:29
diakopter I haven't yet tried the Dec 16 pugs cabal package... hackage.haskell.org/cgi-bin/hackage...ckage/Pugs 23:30
but otherwise I don't want to try to build pugs on windows with ghc 6.10.1
ruoso diakopter, but I think you should try building smop anywya
diakopter pugs from svn.pugscode.org
ruoso I think the direct dependency on pugs was dropped
23:30 pdcawley left
diakopter oh 23:30
:) 23:31
diakopter looks for build instructions 23:32
Limbic_Region smop on windows proper or are you interested on cygwin?
and if I could be pointed to some checkout and build instructions
diakopter non-cygwin
Limbic_Region I would be happy to try Win32/MinGW and Win32/Cygwin
ruoso I think it will be a fire-proof for scons, actually
(which means you need python and scons installed on windows... 23:33
but the code is mostly portable... 23:34
diakopter scons 1.2.0>
?
ruoso 1.0.0 here 23:35
1.2.0 should work
diakopter python 2.6.1? 23:36
ruoso 2.5.2
diakopter <sigh> just uninstalled it
ruoso 2.6.1 should work, I think 23:37
the only thing I'm aware to be possibly unportable is the use of pthread_rwlock 23:41
diakopter tries to figure out how to get scons in the %PATH%
oh, I see. C:\Python25\Scripts\ 23:42
23:43 wknight8111 joined 23:45 Whiteknight left
diakopter tries to cabal install utf8-string 23:45
ruoso (I think simplifying the build instructions might be a strong reason for porting m0ld to p5) 23:46
diakopter tries to install cabal-install 23:52
wolverian thanks to the bootstrap script, it's pretty easy. 23:53
pugs_svn r24935 | lwall++ | [Cursor.pmc] expand tabs 23:54
diakopter wolverian: not if you don't have an sh! ;) 23:55
23:55 alester left
diakopter but yes it's even still pretty easy. 23:56
wolverian I suppose. :)
ruoso diakopter, don't you have the new powershell? 23:57
ruoso hides
diakopter heh
During interactive linking, GHCi couldn't find the following symbol: SHGetFolderPathA@20
while installing Cabal-1.6.0.1 23:58
ruoso hmmm... that doesn't sound too good...
wolverian www.nabble.com/Problem-installing-C...07151.html perhaps? 23:59
diakopter oh, that's better
ghc --make Setup instead of runghc...