»ö« | perl6.org/ | nopaste: paste.lisp.org/new/perl6 | evalbot usage: 'perl6: say 3;' or rakudo: / pugs: / std: , or /msg p6eval perl6: ... | irclog: irc.pugscode.org/ | UTF-8 is our friend!
Set by wolfe.freenode.net on 30 October 2009.
jnthn pmichaud: That's...very odd. 00:38
pmichaud: I suspect that's a regression of sorts. 00:39
Dunno how we got it though, no immediate guesses, sorry.
In theory, it just returns a list of the declared variables.
pmichaud Tene: if a class declares a method called 'list', then it's impossible for 'list'(xyz) to continue to find the 'list' function 00:42
unless we change every call of the form 'list'(xyz) into a sequence of find_lex and get_global instructions 00:43
in short, methods were polluting the subroutine namespace
jnthn: do you know if list declarations ever worked in ng at all? 00:44
jnthn That's fixed now that sub names get an & prefixed, no?
pmichaud: I spent some time making them work.
pmichaud jnthn: it's worked around, yes. but methods still shouldn't appear in the namespace.
and nqp-rx doesn't use the & on subs, so it still suffers.
jnthn pmichaud: Oh, indeed. Unless declared our method foo...
But methods are has-scoped by default. 00:45
jnthn Which means only a call to add_method and no installation anywhere else. 00:45
pmichaud: I don't recall seeing that error before.
pmichaud: So I suspect something may have broken between when I worked on list decls and now. 00:46
pmichaud jnthn: okay, was just curious
I may look at it a bit later. Other than that, list assignment appears to be working again.
jnthn pmichaud: I certainly remember wroking on them, anyway. They're working because I put a little effort into it rather than by accident.
pmichaud: Yay, great. :-)
pmichaud and I suspect fixing list declaration assignment won't be difficult.
as you say, it just needs to return a list of the variables
jnthn I thought that's what I had it doing. 00:47
Something must be a bit off-ish somewhere though.
colomon \o/
pmichaud today's set of changes also fixed lots of other bugs, like array initialization and list flattening
ng: my $b = 5; my $a = [$b, $b]; $b = 7; say $a.perl;
p6eval ng 89fb62: sh: ./perl6: No such file or directory␤ 00:48
pmichaud d'oh!
ng: my $b = 5; my $a = [$b, $b]; $b = 7; say $a.perl;
p6eval ng 89fb62: sh: ./perl6: No such file or directory␤
jnthn Time of month^Whour. :-)
pmichaud and several of the .perl's that were broken should be working again.
say (3, (4, 5), 6).perl # just curious 00:49
ng: say (3, (4, 5), 6).perl # just curious
p6eval ng 89fb62: sh: ./perl6: No such file or directory␤
jnthn Nice
pmichaud > say (3, (4,5), 6).perl
(3, 4, 5, 6)
jnthn :-) 00:50
pmichaud ...not sure about that one yet.
jnthn pmichaud: How's the laziness?
pmichaud it still needs a bit of work
jnthn OK.
pmichaud I'm still waiting for some spec clarifications there, also.
jnthn I guess working out the Iterator interface is part of that.
I see we've a Proxy class now too. :-) 00:51
pmichaud that's temporary, it will go away.
when we have WHENCE working again 00:52
jnthn It probably should stay anyway.
So folks can write lvalue subs.
pmichaud that's what WHENCE is for
(at least, that's what TimToady has been saying, iiuc)
jnthn Proxy is spec though, no?
pmichaud very old spec 00:53
jnthn Or you think it may be relic?
OK.
pmichaud yeah, it may be fossil
jnthn OK, let's check before tossing it. :-) 00:53
pmichaud ooc, does Iterator also imply Positional? 00:54
jnthn I don't see why it has to. 00:55
pmichaud I'm thinking of $range.list.[5]
e.g. (1..$end).list.[5] 00:56
jnthn Being able to ask for the next value and if there are any values, and being able to index into something at a certain point, are different operations.
pmichaud well, then what does (1..$end).list return?
is it eager? (I think no)
pmichaud oh, I suppose it could return a List containing a RangeIterator 00:56
jnthn I agree no, in general.
Right. 00:57
Lists can contains parts that aren't yet evaluated.
Or have an evaluated and still-to-evaluate part.
pmichaud okay, wfm
jnthn That's how I've been thinking of lists for a bit, anyway.
pmichaud Lists (in ng) do already have evaluated/still-to-evaluate part
so do Arrays
jnthn OK, cool.
I think that'll work.
I guess in a sense, Iterator is more fundemental than Positional.
Since you can get the nth element by having an iterator that you can work through until you get to element n. 00:58
pmichaud basically, List has RPA $!values and has Int $!gen
jnthn Where $!gen is where we've generated up to?
pmichaud where $!gen indicates the number of elements of $!values that have been evaluated
jnthn OK, wfm.
That scheme does mean you end up with lots of copying of the tail, but that's only expensive if the tail has lots of evaluated stuff in it, which I guess is rather unusual. 00:59
pmichaud ...copying of the tail?
we do?
the current impl doesn't copy the tail
jnthn Suppose you have 1..100
So you start with (I'll use | to indicate $!gen's position) 01:00
| 1..100
then after evaluating an element you want
1 | 2..100
But to get that 1 in place, you had to shuffle the 2..100 down a position into the RPA?
Or have you done something different?
pmichaud yes, it's a splice
and in reality, since Range is immutable 01:01
what happens is that we start with
| 1..100
then when we ask the Range for its first element, it gives us back (1, RangeIterator)
which gets spliced in instead of the Range
jnthn Right
pmichaud and the RangeIterator holds a reference to the original immutable Range
jnthn Oh, sure
pmichaud after that we ask the RangeIterator for elements 01:02
and each time they get spliced in
but that's not a copy
jnthn But you still need to shuffle that RangeIterator along one?
It's not a copy in *that* sense, no. :-)
It's a copy of the pointer to the range iterator to make space to put the poitner to the evaluated value at the low level, I guess.
pmichaud right, it's a pointer copy 01:03
jnthn OK, what I'm saying is, that's cheap if there's just a single range on the end.
pmichaud which should be relatively quick in RPAs
jnthn But more costly if you've loads of unevaluated stuff on the end.
pmichaud checks to see how RPA does splice 01:03
jnthn But I don't think that's a common case, so the scheme is fine...just a possible slow case to keep in mind. :-) 01:03
pmichaud yes, it's a bunch of pointer copies 01:05
jnthn OK
pmichaud basically set_pmc_keyed_int and get_pmc_keyed_int
jnthn OK.
We'll go with that for now, it'll be Good Enough. 01:06
pmichaud that could undoubtedly be optimized if we desired
jnthn Sure
Well, I don't think any scheme is optimal for every situation.
pmichaud and yes, we could go with generated versus non-generated arrays, which avoids splicing, but also might make RPA management a bit trickier 01:07
right now it's nice because I can take any RPA and set it as $!values and we're good to go :-)
including, e.g. :slurpy
jnthn Aye, I agree with the scheme. 01:08
Just wanted to make sure I understood it's strengths/weaknesses the same way as you.
pmichaud well, it'd be pretty quick to switch it out for another if we want 01:12
actually, after thinking about it a bit I'm kind of liking the generated/lazy two list approach 01:13
although, even with the two list approach we end up doing splices 01:14
anyway, work for another day 01:15
dinnertime here -- I'll work on something else a bit later (like release announcement or non-release announcement or whatever)
jnthn pmichaud: OK, sleep time here...I'll catch you tomorrow. o/ 01:20
pugs_svn r29576 | lwall++ | [S32/Containers] KeyWeight deletion critierion kept consistent for dbrunton++ 03:39
colomon pmichaud: ping? 04:04
colomon ng: say (^10).perl 04:05
p6eval ng 89fb62: 0..^10␤
colomon For whomever backlogs this: Range.list should be implemented using some sort of iterator, right? Is there a guide or example somewhere in the code of how to go about doing this? 04:09
afk # bedtime
sjohnson OT question: any fans of Clipper / Harbour hanging out in this channel? 04:15
s1n how do i get my paws on ng? 04:37
Su-Shee good morning 07:22
vamped hi Su-Shee 07:28
vamped anyone - how to I execute ng commands in a private window? 07:44
eternaleye vamped: /msg p6eval <engine>: <code> 07:56
It's in the /title
vamped eternaleye: thanks! I swear I've read that title several times, and it's never popped out. 09:04
eternaleye vamped: No problem :)
meneldor hello 11:20
colomon quiet channel last night 11:29
jnthn Maybe everyone went to the krcma. :-)
I was surprised by the lack of backlog this morning, though. 11:30
mathw I was at aikido 11:32
colomon ng: my ($a, $b) = (1, "kj"); say $a; say $b;
p6eval ng 89fb62: Redeclaration of symbol $a at line 1, near " = (1, \"kj"␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (src/stage0/HLL-s0.pir:328)␤
pugs_svn r29577 | rodi++ | Thanks, TimToady++ for the clarification. 11:33
colomon ng: my $a; my $b; ($a, $b) = (1, "kj"); say $a; say $b; 11:46
p6eval ng 89fb62: 1␤kj␤
mathw Executing loop { self.throw(target => $floor); self.get-up; }; 11:55
</delayed>
Eventually self.get-up threw a JellyLegsException 11:58
colomon was that during aikido or after? 12:00
jnthn Ah, I was doing loop { my $drink = request_from_waitress('pivo'); self.drink($drink); }; but after a few it threw a OMGYouHaveToWorkTomorrowException. :-) 12:01
colomon Hmmm... for me it was something like self.song(*) { rock boy & sing $_ }; watch "Chuck"; 12:07
mathw colomon: during 12:08
jnthn: so you probably ache less than I do this morning
colomon is insanely pleased with himself at figuring out which line is generating the my ($a, $b) error.
mathw I should have said $jnthn.ache < $mathw.ache
Although it's not too bad really, it's when they say 'roll all the way down the dojo' 12:09
when I get up at the far end I'm swaying and the room seems to be spinning
It's a glimpse at what clothes go through in the washing machine 12:10
colomon :)
mathw fun though
especially my partner's attempts to look threatening during goshin waza 12:11
it's not so mcuh that he doesn't try, but that he starts laughing immediately
colomon jnthn: is there a way to do "say" from Actions.pm ? 12:12
jnthn Try DEBUG('omg worreva')
mathw CATCH { when LunchTimeException { self.go(@lunch-shops.pick) } }
colomon jnthn: can you send it a variable?
oooo, apparently yes! 12:13
sweet, I'm watching all the variables be declared in core. 12:14
colomon okay, so declare_variable is not getting called twice for $a. 12:14
LaVolta hi all, I've got an error here while building Parrot. 12:24
-licuuc -licudata -lpthread -lm \c
i686-apple-darwin10-g++-4.2.1: c: No such file or directory
make: *** [blib/lib/libparrot.2.0.0.dylib] Error 1
LaVolta i've checked its make file...seems to be caused by the weird '\c' 12:25
the latest version of Parrot, just svn co'ed 12:26
gcc 4.2.1 on Mac OS X 10.6.2 12:27
any ideas?
ah...it's here ICU_SHARED := -lpthread -lm -L/opt/local/lib -licuuc -licudata -lpthread -lm \c 12:28
jnthn LaVolta: Not sure...looks like some config or makefile generation bug. 12:42
LaVolta: You'd probably have more luck on #parrot, fwiw.
colomon: You can concat any string(s) together you like and pass them in. :-) 12:43
colomon jnthn: using ~ ? 12:44
LaVolta jnthn, thanks! I just find someone sharing the same problem after I input some lines on #parrot
jnthn, it's trac.parrot.org/parrot/ticket/890 12:45
jnthn colomon: Indeedy.
colomon \o/
colomon is alternating between sticking DEBUGs in Actions.pm and reading picture books to his boy. 12:46
LaVolta jnthn, last time i got it around by passing icu related stuff in... 12:47
jnthn colomon: Beats reading Actions.pm to your boy. :-) 12:48
colomon jnthn: I dunno, at one point there I was "reading" him Treoir magazine -- flipping through looking for pictures and trying to tell him things about them. "And there was a fiddle player, and a flute player, and a concertina player, and they played music together. And a bunch of old guys listened to them." 12:58
meneldor guys is Rakudo changed since Parrot is v2 ? 12:59
jnthn "And there was a parse node, and someone made an AST node out of it!"
colomon Actually, he's flipping through the magazine on his own now. I think he's disappointed, because the back cover has a large picture of a really cute 5-yo girl with a fiddle, and he'd love to read an entire book about her... 13:01
colomon jnthn: I think I've got it. 13:06
when you say my ($a, $b) = blah
both param_var and declare_variable try to add the symbol. 13:07
jnthn colomon: oh! 13:07
Ah...'cus it's parsing it as a signature first. 13:08
Ugh.
takadonet morning all 13:10
mathw returns, full of food 13:24
jho Is there something like unix_std_crypt (from Crypt::Passwd) for Perl 6? 13:28
rodi jho: nothing in the pugs or rakudo repositories, AFAICT. 13:38
colomon jnthn: was that enough of a clue for you to solve the issue, or do I need to be poking around more in Actions.pm? 13:40
jnthn colomon: I understand the problem. I didn't come up with a Good Solution yet. 13:44
(That is, I understand it thanks to your digging. :-)) 13:45
colomon which was only possible thanks to your handy DEBUG advice. :) 13:45
pugs_svn r29578 | rodi++ | fixed link to S32 13:50
smash_ hello 14:01
takadonet smash_: hello 14:03
PerlJam greets #perl6 14:05
colomon hello! 14:06
meneldor if i have for example $obj1.name = "name1"; $obj2.name = "name2"; @arr = ($obj1,obj2); 14:22
can i take the names
somethink like: say @arr<name>
jnthn @arr = ($obj1,$obj2)>>.name; 14:23
meneldor but i dont know how many objects are stored inside @arr 14:23
jnthn Oh, that's fine 14:24
meneldor: You have an array of objects and you want an array of names, yes?
(just making sure I understand what you want properly... :-))
meneldor yes i want to take the names only 14:24
jnthn my @names = @arr>>.name; 14:25
meneldor if these objects are people i want to know only their names
tnx
let me test it :)
nice ! it works :) 14:27
jnthn ;-)
meneldor there are tons of new operators 14:28
i cannot remember even half of them
colomon meneldor: and then there are the metaoperators... :)
jnthn meneldor: That one you can work out from a rule though. :-)
mathw You'll get used to it quickly enough
They're actually pretty logical
jnthn meneldor: >>postfixop generally should work (though not done yet in Rakudo for the general case)
So @arr>>++ would increment everything in the array 14:29
meneldor wow
jnthn So if you remember >> means "do a postfix operator for the whole array", you know 'em all. :-)
meneldor i see :)
takadonet I think someone is in love with Perl6.... 14:30
colomon assuming you remember that .method is a postfix operator. :)
meneldor im currently learning the OO things
ill show you my rebuilded game example soon for corrections
mathw meneldor: have you met .= yet? 14:34
meneldor no
why? you scare me :) 14:35
moritz_ rakudo: my $x = 'foo'; $x.=uc; say $x 14:36
p6eval rakudo 1d4928: FOO␤
moritz_ .= means "call a method and store the result in the variable"
mathw for contrast
rakudo: my $x = 'foo'; $x.uc; say $x; 14:37
p6eval rakudo 1d4928: foo␤
meneldor ahaaaa :) 14:38
ill show you my game example now 14:41
lisppaste3 meneldor pasted "untitled" at paste.lisp.org/display/93735 14:42
meneldor please tell me if im starting to understand the p6 oo
its main container map which contains players
every player have a castle
every castle has many heroes 14:43
im trying to use Role too
btw you can run the code, it works
ash_ does anyone know who maintains the perl6 vim syntax? i just wanted to report a bug in it 14:59
oh, i found it on github, and someone's already reported the issue, so nevermind 15:01
moritz_ ash_: github.com/petdance/vim-perl/issues
moritz_ too slow
pmichaud good morning, #perl6 15:42
mathw good afternoon pmichaud
takadonet morning pmichaud
ash_ jnthn: could the parameterized role issue be coming from passing the wrong things to set_signature_elem?
morning 15:43
colomon morning!
moritz_ good localtime() 15:44
pmichaud after starting to write the message explaining the release delay, I think I might want to go ahead and issue a release from existing master. Yes, I'm waffling.
jnthn hi pm 15:45
ash_: Kinda - I think we probably need to construct the signature object per version of the role we produce.
ash_: Otherwise it's going to look in the wrong lexical scope for the thunk sub that gives it the T. 15:46
ash_ gist.github.com/283857 is an example i am working from, in the generated pir, i see that is using a block to check the type of the parameter passed to the method (see line #281) which refers to a lexical T, which i think is where the T is getting messed up
jnthn ash_: That said, we may need to do something ever more clever to promote the thunks to actual type constraints.
ash_: checking.
ash_: oh, I see it. 15:47
ash_ line 268 is where it sets the sig for $a in that example
jnthn oh, wait, no 15:48
ash_ which is the param thats constrained by T
jnthn Right. 15:49
Yes, it's something in that area that needs a fix.
pmichaud ash_++ # ash's simple tests and discoveries regarding lists in ng made it *far* easier to get list assignment to work 15:49
ash_++
colomon pmichaud: If we do release master today, can we release ng as master in a week or two?
pmichaud ash_++ # yes, *THAT* much easier
colomon: yes, we can.
I'd still plan to switch ng to master asap
jnthn ash_: I still think it may be possible to fix it in the sub.clone call, fwiw. 15:49
ash_ probably, but that area seems responsible for the problem 15:50
the lexical T is getting changed for whatever reason
jnthn Well, I know why.
ash_ so maybe on the assignment to the lexical T it should clone first?
jnthn It's because we're not cloning somewhere we should be.
Right.
ash_ /shrug not sure
jnthn But we're cloning too little.
pmichaud ...clone?
jnthn pmichaud: Create a closure. 15:51
pmichaud: If a sig uses a type variable, we need to make sure it is looking for the type parameter in the correct lexical scope.
ash_ duplicating T so you don't end up accidentally referring to the wrong instance of it later, whatever is needed for that
pmichaud right, but closures still tend to create/clone themselves automagically here
jnthn pmichaud: Tend to. :-) 15:52
pmichaud: I suspect part of the issue is the interaction between this and the lazy signature building, fwiw.
pmichaud maybe
can I see the source that produced this PIR ? 15:53
ash_ its on the gist
at the bottom
there are 2 files in the gist
pmichaud got it
ash_ i was just isolating the test case from S14-something that caused the problem 15:54
pmichaud where's the code that executes the body of the role? 15:55
ash_ 124
the double :anon part 15:56
seems all roles have that on their body definitions
pmichaud right, that's the body of the role. What *calls* that?
jnthn !select in Role.pir
ingy good morning
jnthn It's a multi candidate.
pmichaud I don't see that call in !select 15:57
jnthn ?
pmichaud oh, is it selector(...) ?
jnthn Yes.
ash_ its inside the role how
jnthn add_variatn adds to that.
No, it's not, it's in src/builtins/Role.pir
RoleHOW's bits are just for constructing an individual variant. 15:58
ash_ ah, oops
jnthn The src/builtins/Role.pir is the object that deals with the role as an "aggregate" and supports keeping track of each variant.
ash_: Aye, there's too many things called Role here. :-)
jnthn ash_: I did ask here on channel about trying to name the collection of possible roles and an individual one differently. 15:59
But didn't see any replies.
jnthn I still think it'd make this stuff easier to understand/discuss if we could do so though. 15:59
ash_ yeah, it sounds like it might help people know what your referring to
jnthn For multi dispatch, we talk about "the multi" meaning the lot of them, and its "candidates" which are the individual options. 16:00
jnthn We kinda need an analog for roles, imho. 16:00
pmichaud "role candidate" 16:00
"parameterized role instance" 16:01
ash_ Trait :P 16:02
pmichaud what does Method.new return? 16:03
pmichaud lines 158-162 look suspicious to me 16:03
jnthn pmichaud: a Method 16:04
pmichaud: Yes, that may be where the issue is too.
pmichaud I think we should be passing a cloned closure to .new, instead of cloning the Method that comes back
still, if Method.clone() works (and remembers to clone its sub), then it probably shouldn't make a difference here. 16:06
pmichaud ....do we still need fixup_cloned_sub ? 16:08
ash_ doing an ack says its used in Mu and Routine still 16:10
I don't know what its for though
jnthn pmichaud: No, I think fixup_cloned_sub can die.
pmichaud ash_: in master branch, we put most of the sub/method properties directly on the underlying Parrot Sub 16:10
ash_: in ng, we have Code objects that are wrappers around the Parrot Sub and hold the additional metainformation 16:11
so, in master branch, we needed a special ability to clone subs and to keep track of the original Parrot Sub
in ng, that may no longer be needed
(and the places it exists still are fossils left over from the copy from master) 16:12
pmichaud $P0 = getprop '$!p6type', do 16:14
what is $!p6type ?
jnthn pmichaud: Reference back to the Perl 6 wrapper. 16:15
pmichaud: So you can go Parrot Sub -> Perl 6 Object.
pmichaud "the" Perl 6 wrapper?
hrm
jnthn ? 16:16
pmichaud okay, I think that's the bug here
as the code exists now, the same Parrot sub gets passed to .new 16:17
jnthn Ah.
That sounds quite feasible.
pmichaud and so lines 52-54 of Code.pir short-circuit the Method object creation
because the Parrot sub already has a $!do property
jnthn Ah.
pmichaud (from the first role instantiation)
jnthn That sounds feasible.
pmichaud++
pmichaud making the change I described above should fix this 16:18
jnthn pmichaud: Fix in src/Perl6/Compiler/Role.pm's add_method method, I think. 16:18
pmichaud: To tweak the AST that calls the Method.new to pass in a clone.
We probably only need to do it for roles, not classes...
pmichaud I'm wondering if Code.new should perhaps always clone the "do" parameter
jnthn Hm
Wonder if that'd cause different issues...maybe not.
Feel free to try it though. 16:19
pmichaud I need to think on it just a bit further
if we do that, we'd probably want to keep a reference around to the "real" Parrot sub
although maybe not. Are there any other properties being held on Parrot subs these days?
jnthn We keep the signature on the Parrot sub at the moment. 16:20
colomon jnthn: just occurred to me that ($a, $b) = blah does work, it's just my ($a, $b) that fails. Does that suggest an easy fix?
\
pmichaud colomon: the problem is with list declarations, I think.
jnthn Just to avoid an extra indirection through the properties.
pmichaud ng: my ($a, $b);
p6eval ng 89fb62: Redeclaration of symbol $a at line 1, near ";"␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (src/stage0/HLL-s0.pir:328)␤
jnthn pmichaud: Yes, it's because the signature handling enters the $a, and then the variable declaration code goes and re-enters it. 16:20
(into .symbol) 16:21
colomon++ found that earlier.
pmichaud yeah, signature handling needs to not enter the $a
*or*
jnthn Not having it do so will cause a different problem. 16:22
pmichaud signature handling needs to enter the variables based on a dynamic var that identifies the scope
jnthn That could work out better.
pmichaud why does signature handling have to enter the variables? I thought we now have P::C::Signature objects that do this for us...? 16:23
jnthn pmichaud: Because we need to know about some of the lexicals during the parse. 16:24
pmichaud: That is, during the parse of the method body.
So they need to go in .symbol
pmichaud yes, but that would be after already building the P:C:Signature
jnthn We could reorganize things a bit - the insertion of the decls that makes happens too late ATM though. 16:25
(e.g. after we parse the body)
I don't mind tweaking that if it's cleaner.
pmichaud okay, as STD sits now I agree that it needs to happen as part of the signature handler. 16:26
and that needs to be following $*IN_DECL
or perhaps $*SCOPE 16:27
kinda icky the way that's structured atm
jnthn pmichaud: In Rakudo, STD or both? 16:30
pmichaud STD
I wonder if it helps if rule multisig { ... } also sets :my $*SCOPE = 'my' 16:31
pmichaud that way a signature knows that its variables are lexically scoped 16:31
(as would be the case for signatures in routine_def and method_def) 16:32
jnthn That's a possibility.
pmichaud anyway, the logic I see is this: 16:33
jnthn pmichaud: We do know the difference when we parse my $a and my (...sig here...) though. We can always just say for the second "oh, don't go re-entering the variables in .symbol".
pmichaud right
but what about our (...sig here...)
jnthn Right, I was thinking about this in conjunction with your suggestion about using $*SCOPE. 16:34
pmichaud here's another possibility, perhaps <multisig> should take care of handling variables for routines
instead of <signature>
jnthn Perhaps, yes.
TMTOWTDI. :-)
pmichaud routine_def and method_def never call <signature> directly -- they always call <multisig> 16:35
variable declarations don't call <multisig>
colomon std: my ($a, $b where { $b % %a == 0 }) = (3. 9);
p6eval std 29578: ===SORRY!===␤Decimal point must be followed by digit at /tmp/mAnsCR5dmP line 1:␤------> my ($a, $b where { $b % %a == 0 }) = (3.⏏ 9);␤Other potential difficulties:␤ Variable %a is not predeclared at /tmp/mAnsCR5dmP line 1:␤------> my ($a, $b
..wher…
colomon std: my ($a, $b where { $b % $a == 0 }) = (3, 9);
pmichaud so, if <multisig> handles the "enter symbols for body" component, <signature> doesn't have to do it
p6eval std 29578: ok 00:01 109m␤
pmichaud we can perhaps have a method on P::C::Signature that enters symbols according to a $scope we pass in as a parameter 16:36
then <signature> is simply responsible for building the P::C::Signature
and the thing that calls <signature> is responsible for saying where to put the declarations 16:38
jnthn pmichaud: I like that.
That feels neat.
Plus multisig can then union all the decls too, if we need to do smart thingies like that. 16:39
pmichaud looking through STD, we also have a lot of places that call <signature> for things other than sub params directly
right
that's definitely nicer
jnthn OK, we can haz a winning stratergy. :-)
ash_ jnthn, i don't think i could of patched this btw, it seems beyond me :P
pmichaud looking at 16:40
wiki.github.com/rakudo/rakudo/ng-ma...res-needed
how shall we divvy up the tasks? 16:41
pmichaud updates the page
jnthn Is that really all we need? :-) 16:42
pmichaud no
we just add things as we go :-)
cheap short-term ticket system :)
jnthn :-) 16:43
pmichaud: I don't mind sorting out "my XYZ $foo"
I can probably work on hashes also. 16:44
I'd rather leave lists and grammars to you. ;-)
pmichaud I was thinking I should do hashes, since it's also affected by slicing
hash assignment is pretty straightforward
jnthn That's fine by me.
It's not like there's a shortage of things I can be doing that aren't on the list, but potentially could be. 16:45
pmichaud updated page (more updates coming)
jnthn Right, I can do those two new ones. 16:46
pmichaud just add yourself to the ones you think you're likely to tackel
*tackle
TimToady wonders if he'll have a brane tooday
pmichaud add any tasks you think need to be prioritized
add me to any tasks you think I really need to look at :-) 16:47
ash_ brianes are useful when you have to think making
pmichaud colomon: ping
ash_ changing computer labs & 16:48
jonasbn pmichaud: are you busy? 16:53
pmichaud jonasbn: not terribly busy, no 16:56
jonasbn: what can I do for you?
jonasbn about the hackathon, you have given me 6 names 16:57
jonasbn do you want me to write format invites for all of the ppl on the list? 16:57
s/format/formal/
pmichaud jonasbn: I actually created a separate list for this but never published it. we can do it there
jonasbn super 16:58
pmichaud might be better to do it separately from the perl6-compiler list
jonasbn yes of course
it is somewhat of topic :)
pmichaud I still need to subscribe people to that other list
jonasbn okay
pmichaud I can send you the email address of the invitees separately, though 16:59
jonasbn that would be nice
jnthn plz use [email@hidden.address] for me, not the jonathan@...
pmichaud anyway, I need lunch here -- immediately after lunch I'll finish up the list, subscribe people to it (incl yourself), and make a list announcement
jonasbn super
then I will write-up all the info I have for now 17:00
pmichaud anyone who wants to subscribe themselves directly: groups.google.com/group/perl6-workshops
jonasbn I have ordered an Act instance for registration, have not heard anything though 17:01
this will provide a Wiki etc.
pmichaud right
that would be excellent
ash_ when is the hackathon? 17:01
jonasbn ash_: 5. & 6. March 2010 in Copenhageb 17:02
Copenhagen
ash_ would be cool to go to one but being in alabama, us, makes that difficult :P 17:03
pmichaud ash_: I'm thinking of putting one together on the US East Coast, also 17:03
(likely eastern PA)
jonasbn pmichaud: are most/all of you guys going to the Dutch Perl Workshop or? 17:04
pmichaud jonasbn: many are. I think we can find out everyone's schedule on the list
jonasbn sounds good
my plan is to have the hackathon saturday and sunday 17:05
pmichaud works well
jonasbn monday will be reserved for the core team
pmichaud excellent
jonasbn you can then invite whoever you want if some of the attendees prove useful
well I have subscribed to the list 17:06
pmichaud excellent. I'm going to do lunch now, will fix up the list in ~75 mins
jonasbn I will post the details there when you send out the announcement of it's existance - then we can take it from there
pmichaud perfect
jonasbn super
jnthn spiffing, chaps. 17:07
jnthn </english_english> :-) 17:07
pmichaud <english dialect="queen's">...</english>
okay, afk, lunch 17:08
jnthn :-)
pmichaud oh, anyone have a mongers group to suggest for the Jan release? 17:09
(I'll check backscroll when I return) 17:10
maybe the nlpw folks?
pmichaud anyone know what this is...? perl6.org.uk/psdw2010/ 17:13
heh 17:15
I think I'll name this release "Minneapolis"
jnthn pmichaud: Heh, curious...
pmichaud: No idea though.
[particle]1 pmichaud: seems like this guy (search.cpan.org/~cosmicnet/) is behind it 17:32
dakkar Lyle! 17:36
he was the main character is a couple of absurdly long half-flame threads on the london.pm list, a couple of years ago 17:37
ash_ so, some people in here use linux a bunch right? just a quick question, i have used it before, but never had this problem. ./configure is failing on an ebuild for me because my C compiler (gcc) can't make executables... 17:41
i think i need to go find the gentoo channel
dakkar ash_: they'll probably be better equipped to help you, yes 17:42
ash_: #gentoo here on freenode
ash_ i just think its funny that you can have a gcc compiler that can't make executables, there is something ironic about that 17:43
dakkar it happens frequently with cross-compilers 17:48
or, of course, if someone wrote a program called 'gcc' which is not what you'd think it were, and put it in the PATH
clintongormley heya all, where is moritz_ these days? i heard a rumour that he was gainfully employed? 18:13
colomon pmichaud: pong # sorry, was out for lunch 18:24
pmichaud colomon: now that list assignment is working, what do you see as the biggest blocker(s) in the test suite? 18:29
colomon hmmm... 18:30
the my ($a, $b) thing, that's why I was poking at that.
Range
there were issues with $_ working in map, grep, etc, but jnthn and I half fixed that, so I don't know how big an issue it is now. 18:31
definitely it's still bugging grep:
ng: (1...10).grep({ say $_; 1; }).perl.say 18:32
p6eval ng 89fb62: Mu()␤Mu()␤Mu()␤Mu()␤Mu()␤Mu()␤Mu()␤Mu()␤Mu()␤Mu()␤[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]␤
colomon but map on the other hand:
ng: (1...10).map({ say $_; $_ * $_; }).perl.say
p6eval ng 89fb62: 1␤2␤3␤4␤5␤6␤7␤8␤9␤10␤(1, 4, 9, 16, 25, 36, 49, 64, 81, 100)␤
ash_ how do you do: my ($a, $b, undef) = &some_function_returns_three_items(); ? 18:33
colomon ash_: isn't it just my ($a, $b) = &some_function_returns_three_items(); ?
ash_ but what if i wanted the 0 and 2 items? can you do that then? my ($a, undef, $b) ? 18:34
colomon pmichaud: I don't remember really bumping any other sort of "universal" test suite issue, it seemed more like a collection of small troubling details. 18:34
colomon ash_: maybe? I'd just naively use my ($a, $dummy, $b) there, though. :) 18:39
ash_ colomon: you can do that in perl 5, i was just curious what the 'right way' in perl 6 is, since undef is gone if i am not mistaken
colomon ash_: right, duh! I dunno, Mu seems odd to use there. Errr... might be that just a $ works as a placeholder? I seem to recall that from sub signatures, and this should be the same as that... 18:41
ash_ ng: my ($a, Mu, $b) = (1, 2, 3); # ? 18:43
p6eval ng 89fb62: Redeclaration of symbol $a at line 1, near " = (1, 2, "␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (src/stage0/HLL-s0.pir:328)␤
ash_ err
well
when that works right i guess 18:44
Tene std: my ($a, $, $b) = 1..3;
p6eval std 29578: ok 00:01 109m␤
PerlJam ng groks that syntax doesn't it? 18:44
ash_ ah, cool
thanks Tene++ 18:45
Tene ng: my ($a, $, $b) = 1..3;
p6eval ng 89fb62: Redeclaration of symbol $a at line 1, near " = 1..3;"␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (src/stage0/HLL-s0.pir:328)␤
Tene ng doesn't get list declarations ATM.
jnthn rakudo: my ($a, $, $b) = 1..3;
p6eval rakudo 1d4928: ( no output )
Tene ng: my ($a, $b);
p6eval ng 89fb62: Redeclaration of symbol $a at line 1, near ";"␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (src/stage0/HLL-s0.pir:328)␤
Tene see?
jnthn Tene: It almost does, just a regression.
ash_ ng: my $a, $b; ($a, $, $b) = 1..3; 18:46
p6eval ng 89fb62: Confused at line 1, near "($a, $, $b"␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (src/stage0/HLL-s0.pir:328)␤
jnthn ng: my $a, my $b; ($a, *, $b) = 1..3;
p6eval ng 89fb62: too few positional arguments: 3 passed, 4 (or more) expected␤current instr.: 'perl6;Code;new' pc 11858 (src/builtins/Positional.pir:169)␤
jnthn hm
colomon pmichaud: Range will be kind of huge for the test suite, I think. Though it is mostly easily worked around with ... -- so it's hard to say what its priority should be. 18:47
I just got that exact same error (3 passed, 4 (or more)) when trying to execute @push[0][*-1] in the test suite. 18:48
ash_ is whatever working? 18:48
Tene ng: my $x = 1,*,5; say $x(3); 18:49
p6eval ng 89fb62: sh: ./perl6: No such file or directory␤
colomon pmichaud: also, I'd be happy to work on getting Range working (though I need to run some errands here and do some $work as well), but I'm not quite sure how to fit it into your new lazy List scheme.
Tene *sigh*
pugs_svn r29579 | colomon++ | [t/spec] Change .. to ..., fudge two tests for ng. 18:56
ash_ ng: my $x = 1,*,5; say $x(3);
p6eval ng 89fb62: invoke() not implemented in class 'List'␤current instr.: '_block14' pc 29 (EVAL_1:0)␤
ash_ is that formatted right Tene? 18:57
doing $x(3) like that?
Tene ash_: I was checking to see if that was making a whatevercode, as that would have explained something else.
But it's not.
ng: my $x = *+5; say $x(5); 18:58
p6eval ng 89fb62: too few positional arguments: 3 passed, 4 (or more) expected␤current instr.: 'perl6;Code;new' pc 11858 (src/builtins/Positional.pir:169)␤
colomon pmichaud: it sounds stupid, but another obstacle is the lack of pi 18:59
pmichaud: and another is that right now, if you specify too many decimal places for a decimal constant, it fails (because it cannot construct a Rat with that precision). 19:00
ng: say 3.141534234245242342342342342342
p6eval ng 89fb62: PAST::Compiler can't compile node of type BigInt␤current instr.: 'perl6;PCT;HLLCompiler;panic' pc 137 (src/PCT/HLLCompiler.pir:101)␤
colomon versus
ng: say 3.14
p6eval ng 89fb62: 3.14␤
dalek kudo/ng: 9c9e283 | (Solomon Foster)++ | t/spectest.data:
Turn on push.t.
19:02
TimToady note, my $x = 1,*,5 is going to be a Useless use of * and 5, since you're assigning to a scalar 19:03
Tene ... heh.
pmichaud I just posted some commits to rakudo master in preparation for a release (from the master branch) -- comments welcomed. 19:09
(especially if anyone can think of anything that should be modified in the announcements)
(github.com/rakudo/rakudo/blob/maste...ce/2010-01 for those who don't want to clone/pull) 19:10
otherwise I'll cut the release shortly.
colomon announcement looks reasonable to me.
vamped ash: I thought the syntax was ($x,*,$y)=1..3; 19:11
Tene pmichaud: decided against releasing ng? 19:13
pmichaud Tene: yes. I started to write an announcement about the delay, and then decided it was better/simpler to just cut another release.
vamped (slow on refresh. you got it.)
pmichaud (from old master)
but by this time next week I plan to have switched rakudo master branch to be ng
Tene nods. 19:15
colomon ng: 10.roots(3).perl.say 19:19
p6eval ng 89fb62: sh: ./perl6: No such file or directory␤
colomon ng: 10.roots(3).perl.say
p6eval ng 89fb62: sh: ./perl6: No such file or directory␤
Tene that's almost bugging me enough to fix it. 19:22
colomon ng: 10.roots(3).perl.say
p6eval ng 9c9e28: (Complex.new(2.15443469003188, 0), Complex.new(-1.07721734505219, 1.86579517234114), Complex.new(-1.07721734494344, -1.86579517240392))␤
colomon ng: roots(4, 2).perl.say 19:24
p6eval ng 9c9e28: (Complex.new(2, 0), Complex.new(-2, -5.82864638634609e-11))␤
colomon ng: roots(4, 2).elems.say
p6eval ng 9c9e28: 2␤
colomon ng: my @l = roots(4,2); say @l.elems 19:25
p6eval ng 9c9e28: ( no output ) 19:25
colomon that's more like it. seems to be an infinite loop on my machine at home?
pmichaud jonasbn: list is now set up, initial message has gone out. 19:47
[email@hidden.address] 19:48
jnthn pmichaud: recieved so, it looks like it's all working :-) 19:49
ash_ gah, now i'll get even more spam from google groups :P 20:19
Salada345 Hi All..can someone help me with a formatting issue? I'm retreving some data from the CMD and it's not grabbing its format 20:50
colomon er, what? Salada345, can you provide some more context? 20:51
ash_ are you in perl 6 by chance? 20:52
Salada345 This is the command i'm using
open(POSHOUT, "|C:\\WINDOWS\\system32\\WindowsPowerShell\\v1.0\\PowerShell.exe @args");
print POSHOUT;
close(POSHOUT);
@arg being some arguements that results in a paragraph with double spacing , tabs etc 20:53
PerlJam Salada345: you're using Perl 5, try #perl or #perlhelp
Salada345: this channel is about and for Perl 6.
Salada345 ok, thank you guys..sorry i didn't know there was much of a difference 20:54
PerlJam no problem.
colomon pmichaud: I think something is still very wrong with the ListIterator. 20:55
If I say my @l = roots(4,2); almost anything I do which accesses the elements of @l hangs ng. 20:56
colomon roots uses map internally to generate the list of roots. 20:57
ng: say (1...10).map({ $^x ** 2 }).perl.say 21:00
p6eval ng 9c9e28: (1, 4, 9, 16, 25, 36, 49, 64, 81, 100)␤1␤
colomon ng: say roots(4,2).WHAT
p6eval ng 9c9e28: List()␤
colomon ng: my @l = roots(4,2); say @l.WHAT
p6eval ng 9c9e28: ( no output ) 21:01
pmichaud ng: say roots(4,2).perl 21:05
p6eval ng 9c9e28: (Complex.new(2, 0), Complex.new(-2, -5.82864638634609e-11))␤
pmichaud I suspect the issue is with returning lists from a function
not with ListIterator itself
colomon The money line in roots is 21:06
(0 ... ($n-1)).map: { $mag.unpolar( ($angle + $^x * 2 * 312689/99532) / $n) };
pmichaud oh, then it might be a problem with whatever map returns
I bet map is returning something that isn't flattening
or it could be with MapIterator (!Mapper)
anyway, I'm not comfortable with the map implementation anyway, it's likely to get another significant revision 21:07
colomon Yeah, it's map: my @l = (0 ... 4).map: { $^x ** 2 }; say @l.WHAT also hangs 21:09
pmichaud in many ways it's also a sentinel problem -- i.e., finding out if a given iterator is finished without actually iterating an element 21:10
colomon BTW, currently gather / take returns an Array. Should it actually be a List? 21:10
pmichaud it should return a List, yes. 21:11
well, gather returns a List
Tene pmichaud: lists refactoring coming along well? 21:15
pmichaud lists, yes, iterators, not so much
Tene Aw.
The gf is going out tonight, so I should be available.
pmichaud okay
any ideas about how to handle the "test if a iterator is finished" issue? 21:16
Tene There's an issue?
pmichaud sure
pmichaud is there a general way to determine that an iterator is finished without having to generate the next element? 21:17
(yes, this is much like the problem of "is there a way to determine that we've reached eof without actually reading from af ile")
*a file
Tene you can always have a buffer item, reading ahead by 1... I suspect there are issues with that. 21:18
colomon Seems like in general you can't know that?
Tene No, there's no general way to do that unless we make one, by giving the generator function a way to signal "this is the last element". 21:19
colomon I mean, for instance, something like gather for 1...1000 { take $_ if $_ % 3 }
Tene Hm. Even that wouldn't be "general", because we couldn't enforce usage.
pmichaud I suspect the generator itself can't always know which element is the last 21:20
colomon Maybe that's not the best example, but it's easy to find examples where the generator doesn't know what element is last when that element is generated.
pmichaud gather for 1...* { last if (0,1).pick(1); take $_; }
colomon exactly. 21:21
Tene So, no, there's no way. Give iterators a buffer element, try to fill it when finished-ness is checked, and look there first when the iterator is kicked. 21:21
pmichaud well, if we're doing buffer element, it might as well be buffer element*s*
that way one can do pushbacks 21:22
Tene Ah, nice, yes.
pmichaud and if we're doing that, then iterators look a lot like List, in that they have generated and non-generated components
which seems horribly recursive somehow 21:23
colomon it's exactly recursive, isn't it?
pmichaud well, somewhat. Actually, iterators look more like Array, since they're mutable.
colomon this is why I got confused last night when I tried to figure out how to implement Range now.
pmichaud well, Range isn't so bad, it's immutable. 21:24
then there's a RangeIterator, which simply keeps a position in the Range and returns the next element from the Range
colomon right, but what had me going was, can a list be built from a RangeIterator? Or is the RangeIterator built from a ListIterator? 21:25
pmichaud a list can contain a RangeIterator 21:26
Tene pmichaud: it's not recursive, just hierarchal. Iterator has-a Array.
colomon maybe that's not the best way of saying it, but thinking about how lists work now is recursive and tangly.
pmichaud Tene: that works.
Tene and array *can* contain an iterator. 21:27
pmichaud ...except then the Array has to contain an Iterator
colomon but doesn't Array has-a List?
pmichaud Array isa List
colomon oh, right.
pmichaud or, perhaps, Array does List
Tene pmichaud: has to?
pmichaud Tene: well, it doesn't *have* to. 21:28
It does if we think that Iterator/Array/List unify somehow
if Iterator hasa Array uses that array simply for buffer/pushback elements, then no.
Tene the only place you'd see iterator's array containing an iterator is if someone pushback'd one. You could restrict the pushback API to only allow single items, if you want to avoid that. 21:29
pmichaud an iterator is a single item :-) 21:30
but yes, I get the idea there.
Tene Thanks.
(I'm in a bit of a hurry. About to leave to pick up a car to replace the one I totaled.)
pmichaud we can discuss it more later, if you're around 21:31
(and if I'm around -- don't know what family activities will look like tonight)
Tene I will be. I definitely plan to work tonight. If you won't be, feel free to leave me a tasklist.
pmichaud well, it's mostly getting the iterator interface nailed down 21:32
Tene nods.
I expect to be back in an hour or two. AFK.
colomon pmichaud: can you sketch out what you're thinking for the iterator interface? 21:35
pmichaud colomon: well, I have to keep revising it as I run across new oddities. Like with map above.
essentially, there should be a .get that retrieves the next element
there should be a way to ask an Iterator "are there more elements?" 21:36
pmichaud ideally, there should be a batch mechanism to efficiently obtain /n/ elements 21:36
pmichaud (for iterators that can do that) 21:36
colomon nods 21:37
pmichaud if List, Array, and Iterator all need a mechanism for "keep track of generated and lazy elements", then it feels weird to be duplicating any code for them 21:38
colomon so what you were just concluding there is for something like gather / take, it can't answer "are there more elements" without actually generating one.
pmichaud I suspect that's true for many iterators, not just those using gather/take 21:39
colomon sure, gather / take is just an easy example. 21:40
on the other hand, is there a reason not to simply have get return a control flag?
my ($next_available, $next) = iter.get
pmichaud get needs to return the value gotten, I suspect.
and as I mentioned earlier, many times .get doesn't know if there's another element available 21:41
(if it's only retrieving one element)
I'm not sure that .get should be responsible for any lookahead semantics 21:42
something driving .get probably ought to do that
colomon no, what I'm suggesting is that .get either returns a value or a flag saying we're done!
pmichaud or throws an exception
colomon it's an ugly interface, but it's the simplest thing that would work.
pmichaud well, the problem with flags tends to be that they then can't appear in whatever your iterating over 21:43
I'd prefer that .get *not* be returning a list
colomon right, that's why I suggested a list.
but obviously that's trouble too, eh? :) 21:44
pmichaud a list is bad
I mean, my ($next_available, $next) = iter.get itself involves an iterator :-|
(list assignment uses iterators) 21:45
colomon right.
I forgot about that.
pmichaud well, actually it uses arrays and shift 21:46
anyway, returning a list from .get feels very wrong
diakopter hah; Powershell from Perl. Funny since Powershell was written specifically to replace Perl. 21:47
pmichaud taking a break here for a bit 21:48
colomon Hmmm... I guess we also need the interface for creating a List from an iterator, right? 21:57
pmichaud that's easy -- it's a List with the iterator 21:58
accessing elements of the list cause it to iterate
colomon (sorry, didn't mean to disturb your break, just get my thoughts down for when you got/get back from it.) 21:59
pmichaud that's really all a "lazy list" is -- it a list where some of the elements need iterating 22:00
colomon sure, I just was wondering what the actual syntax would look like. 22:04
something like List.new(iter) ?
pmichaud or even (iter,)
colomon wouldn't the later be a list containing an iterator, rather than a list generated by an iterator? 22:05
pmichaud those are the same thing
assuming the iterator flattens
colomon ?!
pmichaud in all likelihood, I'd expect it to be $iter.list()
which gets a list from an iterator, same as any other item
colomon oooo, nice and simple.
pmichaud just like Range.list() produces a list that has a RangeIterator in it 22:06
colomon would that be in the Iterator role?
pmichaud it could be.... but .list also fits pretty well in Any/Cool
colomon so that every Iterator type doesn't have to redo the basic logic?
pmichaud in general we've been treating .list as something standard in Any
pmichaud rakudo: say 1.list.perl 22:07
p6eval rakudo 1d4928: [1]␤
pmichaud (rakudo still thinks that lists in item context become arrays)
so no, I don't think that .list would need to be standard on Iterator 22:08
I suspect that except for filehandles, it's pretty rare that we ever see an Iterator directly
pmichaud afk 22:23
clutbcfpfdpd Your machine has been infected by the recent spam attacks - visit www2.freenode.pl/ for a quick and easy solution! 22:28
Your machine has been infected by the recent spam attacks - visit www2.freenode.pl/ for a quick and easy solution! 22:29
colomon I'm figuring that iterators are the sort of detail that might not show up in everyday programming, but will be k
clutbcfpfdpd Your machine has been infected by the recent spam attacks - visit www2.freenode.pl/ for a quick and easy solution!
colomon of all the days not to be an op...
PerlJam (If I had been paying attention a little sooner ...) 22:30
inzdk Your machine has been infected by the recent spam attacks - visit www2.freenode.pl/ for a quick and easy solution! 22:30
Your machine has been infected by the recent spam attacks - visit www2.freenode.pl/ for a quick and easy solution! 22:31
ash__ so, um... spam...
takadonet boot them? 22:31
arnsholt Someone op-enabled should do that, yeah
sjohnson he's already gone
and i'm sure what he meant to say was... Perl 6 news for a quick and easy language!!! 22:32
arnsholt Yeah. Next time we'll get 'em =)
colomon anyway, what I was trying to say was that iterators might not be everyday programming, but it seems to me they may be really handy sometimes for people writing library classes. (Like us, at the moment!) 22:33
s1n_mini how do i get the ng branch out of rakudo? 22:38
PerlJam s1n_mini: do you have a clone of the repo already?
s1n_mini PerlJam: yes
ash__ git checkout -t origin/ng 22:39
s1n_mini ahh, i wasn't formatting that right
i was just doing a git checkout ng
s1n_mini do i have to pull again? 22:39
PerlJam s1n_mini: nope 22:40
s1n_mini thanks :)
ash__ when you git pull it mergers origin/ng into your local ng branch 22:41
and mergers origin/master into your local master 22:42
s1n_mini what does that mean to me? heh
ash__ if someone pushes a change to github, you only have to type pull (if your still in the ng branch) to get the changes 22:43
s1n_mini if they push to origin/master?
ash__ to either
s1n_mini ah, great, it tracks both
ash__ when you did git checkout -t origin/ng it makes a tracking branch
and the default master branch is a tracking branch too
s1n_mini is it just the -t that does that? 22:44
ash__ yeah, -t makes it create a new local branch that tracks, technically you could write it like: git checkout -b ng --track origin/ng 22:45
but -t is a shortcut so you don't have to
write all of that
s1n_mini excellent, thanks, the git errors are less than helpful 22:46
ash__ yeah, they can be confusing 22:46
s1n_mini what's the progress of ng look like? 22:47
colomon ng development is just taking off again. 22:49
definitely still not ready for prime time, but maybe next week... 22:50
TimToady is stocking up on ops for the weekend :) 22:50
s1n_mini does it support proto regexes yet (similar to the ones in ng's perl6 grammar), outside of NQP-rx? 22:51
sjohnson ( ° ー°) 22:52
colomon I don't know.
s1n_mini rebuilding to find out :) 22:55
dduncan is there an IRC channel specific to developing Rakudo or do they just use #perl6 or #parrot ? 23:00
sjohnson the latter is correct 23:01
ash__ rakudo uses this channel
sjohnson rakudo: say "hi dduncan"
ash__ well, #parrot too, some for parrot related issues
p6eval rakudo 1d4928: hi dduncan␤
dduncan I was wondering about release 25 ... 23:02
hgbvswsrfpni Your machine has been infected by the recent spam attacks - visit www2.freenode.pl/ for a quick and easy solution! 23:02
pwhixnupvnk Your machine has been infected by the recent spam attacks - visit www2.freenode.pl/ for a quick and easy solution! 23:02
hgbvswsrfpni Your machine has been infected by the recent spam attacks - visit www2.freenode.pl/ for a quick and easy solution! 23:02
sjohnson there is one way to solve this issue, but it might make it annoying for freenode users... 23:03
dduncan since I hear that as of last week Rakudo didn't build on Parrot 2 due to changes in continuations or something, is Rakudo 25 just going to be the ng branch even if it passes fewer tests than 24?
sjohnson you set a channel mode (+R i believe) that only allows registered users to connect
colomon dduncan: Rakudo master is fixed to build on Parrot 2.
dduncan so the non-ng works on Parrot 2 23:04
colomon yes.
colomon I believe you are correct that the current plan is that there will probably be some test regressions when ng is switched to master... should be in the next couple of weeks. 23:04
dduncan still, my main question is whether the ng branch will come put as 25 or whether that will be put off ...
Tene dduncan: ng works on 2.0.0 also
dduncan: current master is release 25.
dduncan so 26 then I guess 23:05
for ng
colomon Everyone wants 26 to be ng.
Tene dduncan: ng becomes master after the next release.
dduncan thanks, thats all I wanted to know
s1n_mini shouldn't that be in release 27 then?
dduncan 25 is this month's, I believe 23:06
s1n_mini oh, i thought 25 was the most recent, not upcoming
pmichaud 25 is today's release
Tene current master is the release this month, whichever number that is. ng becomes master shortly after the release. :)
dduncan as I thought 23:07
s1n_mini pmichaud: thank you for clearing that up :)
yecfwmyvz Your machine has been infected by the recent spam attacks - visit www2.freenode.pl/ for a quick and easy solution! 23:07
yecfwmyvz Your machine has been infected by the recent spam attacks - visit www2.freenode.pl/ for a quick and easy solution! 23:07
kloeri_ sjohnson: +R is indeed the mode we recommend
yecfwmyvz Your machine has been infected by the recent spam attacks - visit www2.freenode.pl/ for a quick and easy solution!
s1n_mini ehh
dduncan I look forward to 26 ... for my purposes it seems that ng is a better version to use when I want to write reams of Perl 6, as that is closer to the spec 23:08
sjohnson kloeri_: wow, you use weechat too?
kloeri_ feel free to remove +R - I'll try not to interfere anymore as there's several chanops around :)
sjohnson: no, irssi
s1n_mini pmichaud: does ng support proto regexes outside nqprx?
sjohnson im surprised you ever even able to set that mode
kloeri_ sjohnson: I just happen to be in rather a lot of different channels :) 23:09
sjohnson kloeri_: i use weechat
( `ー´)
kloeri_ sjohnson: I'm implicitly +o in all channels which is sometimes very useful in case of spam attacks
sjohnson kloeri_: are you a secret ircop? 23:10
and i just read on freenode it's lowercase r
sjohnson rizon is +R :) 23:10
diakopter ? 23:11
sjohnson i think kloeri_ is one of those freenode angels 23:12
kloeri_ yeah, I'm one of the freenode staffers
it's not a big secret though as it's easily given away by /whois :) 23:13
sjohnson just the staff part
sjohnson i was looking for a IRC Operator line 23:13
diakopter: it was to keep out teh spam bots
diakopter yes, but there are usually plenty of unidentified innocuous users
sjohnson ya it was a double edged sword *sad face* 23:14
lpdvnsxcnbs Your machine has been infected by the recent spam attacks - visit www2.freenode.pl/ for a quick and easy solution! 23:16
kloeri_ diakopter: banning those bots isn't going to do anything besides filling up the ban list 23:17
diakopter kloeri_: have you considered implemented a spam filter for all msgs? sorry if this is an uninformed question. 23:18
kloeri_ we're not going to do any hyperion development this close to migrating to a new ircd 23:19
and seven have better options to limit spam
diakopter seven?
Tene new ircd 23:20
sjohnson .google test
Tene ENOPHENNY 23:21
sjohnson im surprised the bots aren't making us feel inadequate about our penis sizes 23:22
sbp .g test 23:23
rats
sjohnson sbp: ya they have this bot on Rizon in a few of their channels 23:24
Tene: speak of the devil 23:25
Tene oh, right, I was going to harass sbp about that a while ago... 23:26
ghedroshcdu Your machine has been infected by the recent spam attacks - visit www2.freenode.pl/ for a quick and easy solution! 23:29
sjohnson diakopter: the +R mode will still allow them to join, just not talk without warning.. fwiw 23:30
sjohnson if i do that and set the topic to just ask to plz register to combat recent spam, would you let me ? 23:32
diakopter it's not my policy; it's just the #perl6 precedent for years 23:32
vkzxpzhh Your machine has been infected by the recent spam attacks - visit www2.freenode.pl/ for a quick and easy solution! 23:36
flvs Your machine has been infected by the recent spam attacks - visit www2.freenode.pl/ for a quick and easy solution! 23:36
wwacqdchrnfu Your machine has been infected by the recent spam attacks - visit www2.freenode.pl/ for a quick and easy solution! 23:36
cbtpbuh Hi all. It seems we\'re again seeing javascript based flood spam. If you\'re experiencing this, please do not click the links in the messages as they will cause you to repeat the spam. More information is available at www2.freenode.pl. Thanks! 23:37
cbtpbuh Hi all. It seems we\'re again seeing javascript based flood spam. If you\'re experiencing this, please do not click the links in the messages as they will cause you to repeat the spam. More information is available at www2.freenode.pl. Thanks! 23:37
sjohnson »ö« | Spam bot alert: Please register to talk | perl6.org/ | nopaste: paste.lisp.org/new/perl6 | evalbot usage: 'perl6: say 3;' or rakudo: / pugs: / std: , or /msg p6eval perl6: ... | irclog: irc.pugscode.org/ | UTF-8 is our friend! 23:38
sjohnson diakopter: you can take it off if you want :) 23:38
but would be a good temporary fix until the issue is resolved methinks 23:39
»ö« | Spam bot alert: Please register to talk | perl6.org/ | nopaste: paste.lisp.org/new/perl6 | evalbot usage: 'perl6: say 3;' or rakudo: / pugs: / std: , or /msg p6eval perl6: ... | irclog: irc.pugscode.org/ | UTF-8 is our friend! 23:40
sjohnson they even sullied javascripts name dia, they crossed the line! 23:41
s1n_mini sjohnson: what do you mean "register to talk?"
sjohnson »ö« | Spam bot alert: Please register your nick to speak in chan | perl6.org/ | nopaste: paste.lisp.org/new/perl6 | evalbot usage: 'perl6: say 3;' or rakudo: / pugs: / std: , or /msg p6eval perl6: ... | irclog: irc.pugscode.org/ | UTF-8 is our friend! 23:42
s1n_mini sjohnson: ah, that's clear, thanks :) 23:42
sjohnson i think this will effectively stop the problem until it's resolved
diakopter sjohnson: you got it backwards
sjohnson and allow us to think of happier things.. like Camelia
s1n_mini there aren't any bots out there to take care of it yet?
diakopter +r is block unidentified; +R is quiet unidentified 23:43
sjohnson diakopter: oopsies 23:43
»ö« | Temporary spam alert: Please register your nick to speak in chan | perl6.org/ | nopaste: paste.lisp.org/new/perl6 | evalbot usage: 'perl6: say 3;' or rakudo: / pugs: / std: , or /msg p6eval perl6: ... | irclog: irc.pugscode.org/ | UTF-8 is our friend! 23:44
sjohnson there we go 23:44
i won't change it anymore
starting to be worse than the spam bots themselves 23:45
s1n_mini is not registered under this nick, my primary nick is though
sjohnson s1n_mini: i believe your +o status stops that problem 23:45
s1n_mini sjohnson: oh, i hadn't realized i was given +o heh 23:46
sjohnson TimToday has good forsight 23:46
Tene does +v do that too?
sjohnson try 23:46
err
i'm already regged.. :(
that was silly
i know how to test 23:47
sjohnson please +v sjohnson_ 23:47
BinGOs +r is must be registered to join the channel, +R is must be registered to speak in a channel 23:48
sjohnson_ this is the real deal
Tene Okay, we can +v anyone who asks.
s1n_mini lol how do they ask?
Tene You could put "register, or ask someone with +o for voice" in the topic.
s1n_mini pm?
sjohnson can i have my ops back plz
Tene Yes. 23:49
Tene Yes, /msg 23:49
sjohnson »ö« | Temporary spam alert: Please register your nick to speak in chan or /msg an op for +v | perl6.org/ | nopaste: paste.lisp.org/new/perl6 | evalbot usage: 'perl6: say 3;' or rakudo: / pugs: / std: , or /msg p6eval perl6: ... | irclog: irc.pugscode.org/ | UTF-8 is our friend! 23:50
diakopter Tene: the problem with that is that folks who aren't identified can't privmsg 23:51
s1n_mini: try privmsg me
oh drat.
Tene diakopter: that's a per-user option. 23:51
diakopter well, it used to be that way. 23:51
s1n_mini heh 23:52
BinGOs I think you may have been glad of the +R then 23:52
Tene I accept unregistered PMs, but some others don't. I don't remember which mode you set for that.
diakopter oh, oh yeah.
Tene is it mode +i ?
no, that's ident.
sjohnson it's +E Tene
Tene dunno.
BinGOs +i is invisible
Tene sjohnson: is +E to allow or to refuse? 23:53
sjohnson refuse
Tene Ah.
colomon thinks he can talk again here...
Tene So you could list specific names in the topic, for now.
BinGOs freenode.net/using_the_network.shtml 23:54
sjohnson hopefully they just register, as it's easy, painless, and guarantees your nick, helps stop world hunger, and builds freenodes constant userbase 23:55
s1n_mini what about bots that auto register?
sjohnson well, i think that's a bit tougher to do.. but i could be wrong 23:56
so far it's a non-issue
sjohnson diakopter___: wink if you want +v 23:56
diakopter heh
'course, maybe all the spam attacks are freenode admins trying to get channels to +R/+r :) 23:57
(not that I would blame them)
sjohnson haha
herding us like sheep 23:58
sjohnson *BAAAHH!!!* 23:58
s1n_mini or maybe i really am infected with a virus and they're just doing a good deed
s1n_mini clicky clicky
sjohnson i tried going to the link in firefox
didnt resolve to any site
out of sheer curiosity
i was hoping to have my penis enlarged 23:59
s1n_mini i just want the virus off my computer!
diakopter heh
s1n_mini every website i go to knows about that virus and nobody helps me! 23:59