»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg p6eval perl6: ... | irclog: irc.perl6.org/ | UTF-8 is our friend!
Set by sorear on 4 February 2011.
sorear phenny: tell jnthn I want to add roles to niecza as my next large project. How much of RakudoRoles will survive nom? 00:28
phenny sorear: I'll pass that on when jnthn is around.
TheMartianGeek Hi, everyone. 01:56
I thought of something I'd like to see in Perl 6 a couple weeks ago, but I forgot what it was...
lue hello world! o/ 03:11
sorear TheMartianGeek: welcome back 03:54
lue: hi
dalek ecza: 22f649c | sorear++ | / (7 files):
mergeback
04:07
ecza: 1f6f287 | sorear++ | lib/CORE.setting:
Add reduced, CURSOR to Match
ecza: dbc6072 | sorear++ | / (3 files):
Grammar.parse sets $/
sorear rakudo: "abc" ~~ /b/; say +$/ 04:50
p6eval rakudo 4bf132: OUTPUT«0␤»
sorear rakudo: "ab123c" ~~ /\d+/; say +$/
p6eval rakudo 4bf132: OUTPUT«123␤»
dalek ecza: 7a13f8e | sorear++ | / (2 files):
Add Cool.subst
05:08
ecza: 11b6343 | sorear++ | / (5 files):
Implement ClassHOW.can
sorear How is $*PROGRAM_NAME determined? 05:13
TimToady argv[0] 05:21
sorear TimToady: iow, it's only meaningful for interpreters that can be used with unix shebang functionality? 05:23
TimToady well, you still get argv[0] even in C programs, what's missing is an executable name that's different from program name 05:32
sorear mono run/Niecza.exe foo.pl # does $*PROGRAM_NAME have a meaningful value?
mono run/Niecza.exe -c foo.pl ; mono obj/MAIN.exe # does $*PROGRAM_NAME have a meaningful value?
TimToady well, given you'd better record foo.pl for error messages, I'd say it should 05:34
foo.pl is what the programmer thinks the program name is 05:35
sorear oh, that's easy enough then
just use the mainline's $?FILE
(except niecza currently always uses absolute paths in $?FILE)
TimToady Unix doesn't generally supply the abs path in argv[0] 05:36
sorear hence "except" 05:37
but it's close enough for now
TimToady nodnod
TimToady protip: do not microwave your casadia with a twist-tie under it, or your casadia will end up dominated by the unmistakable flavor of a shorted circuit that is boiling off its magic PCB smoke... 05:57
whatever tar-like adhesive they use in those things to hole the wire inside the paper really doesn't like it when the wire starts sparking in the microwave 05:59
*hold
actually, I think this was the kind with plastic, not paper 06:00
TimToady you'd think you could remove the twist-tie part of it and eat the rest, but no, whatever it outgassed made the whole thing completely noxious 06:03
TheMartianGeek Sounds...lovely... 06:04
dalek ecza: ec30f29 | sorear++ | / (2 files):
Implement ::> cut operator
06:15
ecza: fdfdee7 | sorear++ | / (3 files):
Add .redo .next .last .goto methods to Label
ecza: fffa4cd | sorear++ | / (2 files):
Fix labelling of for-loops
sorear rakudo: for 1,2,3 -> $a, $b { say "$a|$b" } 06:19
p6eval rakudo 4bf132: OUTPUT«1|2␤Not enough positional parameters passed; got 1 but expected 2␤ in <anon> at line 2:/tmp/ptOimqu0gF␤ in main program body at line 1␤»
masak weekend! \o/ 07:20
masak goals for today: (1) release Yapsi. (2) blog about somthing. 07:22
sorear masak: \o/ 07:51
masak sorear: a colleague of mine tried out Niecza. he says that startup time for him is consistently on the order of one minute, and not just the first time he runs it.
is that normal?
sorear masak: normal for 3.x under Windows 07:54
masak: there was a bug which completly broke the recompilation checker then, so the setting kept getting rebuilt 07:55
masak this seems to be Mono, though.
don't know which version.
sorear masak: if he's got v4, try having him use the -v option to see if the recompilecheck is working
masak I will relay this. thanks.
sorear must sleep 07:56
masak 'night. dream of bug-free software. 07:58
tadzik morning #perl6 08:06
tadzik phenny: tell sorear looks like it works, after git pull, make clean and git clean -fdx. Works fine now 08:10
phenny tadzik: I'll pass that on when sorear is around.
tadzik phenny: thanks
masak morning, tadzik 08:22
tadzik hey masak 08:23
masak rakudo: .say for <A B> X~ <C D> 08:28
p6eval rakudo 4bf132: OUTPUT«AC␤AD␤BC␤BD␤»
masak rakudo: .say for [X~] <A B>, <C D>
p6eval rakudo 4bf132: OUTPUT«ABCD␤»
masak rakudo: .say for [X~] [<A B>], [<C D>]
p6eval rakudo 4bf132: OUTPUT«AC AD BC BD␤»
masak rakudo: my @a = [<A B>], [<C D>], [<E F>]; .say for [X~] @a 08:29
p6eval rakudo 4bf132: OUTPUT«ACE ACF ADE ADF BCE BCF BDE BDF␤»
masak rakudo: .say for [X~] [<hen man>], [<n k>], [<ing ell>] 08:33
p6eval rakudo 4bf132: OUTPUT«henning hennell henking henkell manning mannell manking mankell␤»
tadzik :) 08:37
masak this is in reference to itre.cis.upenn.edu/~myl/languagelog...00795.html 08:41
masak .STORE 08:45
moritz good morning. 08:49
tadzik good morning moritz
miso2217_ rakudo: if 'eggs, milk, sugar and flour' ~~ m/:s (\w+) **\, 'and' (\w+)/ { say 'list: ', $/[0].join(' | '); say 'end: ', $/[1]; } else { say 'no match' } 09:32
p6eval rakudo 4bf132: OUTPUT«list: sugar␤end: flour␤»
miso2217_ rakudo: if 'eggs, milk, sugar and flour' ~~ m/:s (\w+) ** \, 'and' (\w+)/ { say 'list: ', $/[0].join(' | '); say 'end: ', $/[1]; } else { say 'no match' }
p6eval rakudo 4bf132: OUTPUT«list: eggs | milk | sugar␤end: flour␤»
miso2217_ Using Perl 6 page 95 gives this: 09:34
miso2217_ rakudo: if 'eggs, milk, sugar and flour' ~~ m/:s (\w+) ** \,'and' (\w+)/ { say 'list: ', $/[0].join(' | '); say 'end: ', $/[1]; } else { say 'no match' } 09:34
p6eval rakudo 4bf132: OUTPUT«no match␤»
colomon miso2217: the important bit in that last one is missing the space between the \, and 'and'? 10:23
rakudo: if 'eggs, milk, sugar and flour' ~~ m/:s (\w+) ** \ ,'and' (\w+)/ { say 'list: ', $/[0].join(' | '); say 'end: ', $/[1]; } else { say 'no match' } 10:31
p6eval rakudo 4bf132: OUTPUT«===SORRY!===␤Missing block at line 22, near "(\\w+) ** \\"␤»
colomon rakudo: if 'eggs, milk, sugar and flour' ~~ m/:s (\w+) ** \, 'and' (\w+)/ { say 'list: ', $/[0].join(' | '); say 'end: ', $/[1]; } else { say 'no match' }
p6eval rakudo 4bf132: OUTPUT«list: eggs | milk | sugar␤end: flour␤»
masak rakudo: if 'eggs, milk, sugar and flour' ~~ m/:s (\w+) ** (\, 'and'?)/ { say $0.join(' | '); say $1.join(' | ') } 10:36
p6eval rakudo 4bf132: OUTPUT«eggs | milk | sugar␤␤»
masak rakudo: if 'eggs, milk, sugar and flour' ~~ m/:s (\w+) ** (\, | 'and')/ { say $0.join(' | '); say $1.join(' | ') }
p6eval rakudo 4bf132: OUTPUT«eggs | milk | sugar | flour␤␤»
masak hm. why aren't my separators captured in $1 above? 10:37
jnthn masak: This looks familiar... 10:38
phenny jnthn: 00:28Z <sorear> tell jnthn I want to add roles to niecza as my next large project. How much of RakudoRoles will survive nom?
jnthn masak: I think ti's a bug.
phenny: tell sorear probably just about nothing
phenny jnthn: I'll pass that on when sorear is around.
masak jnthn: do you think it's a reported bug? :) 10:39
jnthn masak: Not sure. I mostly recall working around it in the Perl 6 grammar somewhere at some point.
masak submits rakudobug
Justin TV.
er, I mean. Justin Case.
jnthn ... 10:41
miso2217_ colomon: yes I think it's a bug in the book page 95, it's minor, but worth a correction. I can do it in the book if needed.
jnthn You don't fancy some RT exploration? ;)
moritz miso2217_: want to fix it? do you have a github account? 10:42
masak rakudo: if 'eggs, milk, sugar and flour' ~~ m/:s (\w+) ** [(\, | 'and')]/ { say $0.join(' | '); say $1.join(' | ') }
p6eval rakudo 4bf132: OUTPUT«eggs | milk | sugar | flour␤␤»
miso2217_ the important point is the **\, and ** \, difference
masak rakudo: if 'eggs, milk, sugar and flour' ~~ m/:s (\w+) ** [((\, | 'and'))]/ { say $0.join(' | '); say $1.join(' | ') }
p6eval rakudo 4bf132: OUTPUT«eggs | milk | sugar | flour␤␤»
moritz stackoverflow.com/questions/5604128...arse-mimes
masak "what is that mime trying to say?" -- "here, have this Perl 6 module" 10:43
SCNR 10:44
miso2217_ moritz: I can, I comented the coment 53 you made on the book (about if (1){} ), I don't know if this is enough to commit changes?
moritz miso2217_: the problem about the 'if' stuff is that it should go into a chapter that's not yet written 10:45
about statements and such
masak is it in a TODO list somewhere? 10:46
moritz miso2217_: you have commit access to the book now, feel free to fix the regex thing 10:46
miso2217_ Yes I know, I was talking just about the ** \,'and' (without space between the \, and the 'and' problem on page 95
moritz: thx. I'll fix it 10:47
moritz masak: dunno
tadzik looks like there's a market for Email::MIME for Perl 6 11:57
pmurias hi 13:24
masak hi pmurias 13:30
masak this is the first bug in quite some time that I can't describe with a one-liner. perhaps someone can help minimize or explore it? 14:46
first off, gist.github.com/908829/e9bad177e78...d4ac3400a6 (which I posted a few days ago) works nicely, and outputs 36 lines of the desired output.
but I wasn't happy with the sub at lines 11..15.
so I rewrote it as gist.github.com/908829/3af6c425a27...87009bfdaf -- much nicer
and it should be identical in function... but... 14:47
the correct 36 solutions are still output, but now they're on the same line with spaces between them.
it looks like things do when a list or array has been stringified with prefix:<~> 14:48
so maybe I'm getting a double layer of lists somewhere.
I'd be happy if someone could shed some light on this. 14:49
(for those who want to actually run the code, the 'ng-compat' branch of GGE is needed.) 14:50
sorear good * #perl6 15:03
phenny sorear: 08:10Z <tadzik> tell sorear looks like it works, after git pull, make clean and git clean -fdx. Works fine now
sorear: 10:38Z <jnthn> tell sorear probably just about nothing
pmurias sorear: hi 15:05
sorear niecza: if 'eggs, milk, sugar and flour' ~~ m/:s (\w+) ** (\, | 'and')/ { say $0.join(' | '); say $1.join(' | ') } 15:06
p6eval niecza v4-47-gfffa4cd: OUTPUT«eggs | milk | sugar␤, | , ␤»
sorear interesting, looks like ** doesn't handle :s yet properly 15:07
jnthn: ping 15:09
pmurias sorear: i should use let and letvar for registers in nam? 15:14
sorear yes 15:16
masak oh -- gist.github.com/908829/648dd197e56...b647a2cc84 fixes my issue above. I don't understand why a .list call is necessary there, and I suspect it's a bug that it is. 15:21
masak further clues/insights are still very much welcome. 15:23
moritz .list is usually necessary if the iterators somehow get mixed up otherwise 15:26
colomon I have to admit to never being able to figure out ahead of time when [ ]s and .lists will be needed. 15:34
moritz [ ] is quite easy - when you want a single item 15:35
TimToady rakudo still doesn't quite believe in lol, so occasionally over-lols a parcel on your behalf, I suspect 15:40
sorear jnthn: ping 15:44
jnthn sorear: pong
sorear jnthn: I wish to understand roles in a 6model-like framework. 15:57
jnthn sorear: Me too :)
sorear: The stuff in NQP is my best guess so far but is only part of the answer and has issues.
If you're looking for a well thought out model to copy, then I don't have one. 15:58
I've done 3 or so implementations or roles so far. Each one has bene less wrong than the previous one, but all have not been quite right yet.
Most of the issues now related to the generic-y stuff and reifying generic type parameters. 15:59
A big mistake in Rakudo's current model is that it doesn't treat $?CLASS as generic.
The NQP one at least fixes that part.
But it makes no attempt on the full parametric role case and probably makes at least one simplification too many. 16:00
Generally though, I think it's best to see every role declaration as really declaring a "role factory" 16:01
I differentiate that at the meta-object level.
jnthn So one meta-object for the parametric role factory will produce meta-objects for concrete instantiations of the role. 16:02
I'm quite happy with that part of the design.
TimToady and instantiations are more or less anonymous then...
though perhaps are named from within the class with MyRole::
jnthn $?ROLE at least.
TimToady well, that's from within the role 16:03
jnthn In general though, role Foo { role Bar { } } and Foo::Bar is kinda non-sneical...
TimToady in the class, you have to say which one
sorear Yes genericy stuff is a large part of where I get confused
jnthn *non-sensical
TimToady I mean naming roles more for distinguishing which method to call 16:04
jnthn Ah, that case.
Yeah, that's tricky also.
sorear jnthn: I think that makes sense. Foo::Bar is using Foo.WHO, which is shared between all instantiations
TimToady that seems to point to a concrete role somehow, at least in the abstract :)
jnthn sorear: well, I worry more over role Foo[::T] { class Bar is T { } } 16:05
sorear jnthn: role Foo { say "Hello world"; say "Hello $?CLASS" } # ?
jnthn: I think that's a compile time error. class statements run at BEGIN time and T isn't available then 16:06
jnthn sorear: I was pondering just forbidding nesting other packages within roles entirely, but maybe we can be more fine-grained too.
TimToady well, or it forces Bar to be generic as well
jnthn sorear: Role bodies run once per time you instantiate the role. 16:07
Roles bodies are more like subroutines, as opposed to class bodies which are like immediate blocks.
TimToady: That sounds...tricky...
TimToady: One important difference between roles and classes is that classes are always concrete. 16:08
TimToady just sayin' the error might be "We haven't figgered out how to implement that yet"
jnthn Big +1 to doing something conservative like that, yes.
TimToady might have to be "my class" at minimum
I just find it irritating in other langauges where the designers and implementors blame the poor programmer for wanting to do something that just isn't understood well enough yet 16:10
sorear niecza memoizes 'but'. will this be an issue?
TimToady it's intended to be memoizable 16:11
jnthn sees no problems with memoizing it
TimToady otherwise we get bazillions of identical anon classes floating around 16:11
sorear seems to me like Role[$arg] is just .assuming 16:12
TimToady I guess the question is how we determine identity though
sorear TimToady: the current approximation niecza uses is "$a ~~ Str && $b ~~ Str ?? $a eq $b !! False"
TimToady thinks about the difficulty of comparing sigs
sorear which is good enough to prevent a bazillion instantiations of STD::balanced 16:13
TimToady but at least the role sigs should be bound before such a comparison is necessary
the whole 'but' thing is intended to be at least as robust as Ruby's mixins 16:14
and the hope has been that all the generic stuff is orthogonal to that mixin/composition business 16:15
jnthn Rakudo has figuring out what to mix in and doing the actual mixing in of it separated out. 16:16
TimToady wonders how much longer the upgrade on appflux will take...
moritz what upgrade? 16:17
jnthn walk &
TimToady there were broadcast messages about a reboot after upgrade
and aptitude is running... 16:18
TimToady considering it's been up 383 days, I'd say it's overdue for a reboot 16:18
just for security issues, if nothing else 16:19
moritz 09:19:52 up 189 days, 22:11, 6 users, load average: 0.00, 0.00, 0.00 16:20
sorear moritz: host02
moritz oh
TimToady it only effects four of us though
sorear moritz: the one TimToady, diakopter, and I are IRCing from
TimToady *aff
sorear who's on fourth?
$.foo = $(self.foo); $.foo(1,2,3) = $(self.foo(1,2,3)); @.foo = @(self.foo); # Correct? 16:21
TimToady Whence is on fourth.
moritz p6eval is on 4th 16:21
TimToady Actually, if 4th is home plate, it would be Tomorrow, I believe. 16:22
funny, baseball is 0-based, since home plate is both 0th and 4th 16:23
diakopter TimToady: oh, graham is updating kernel/debian version 16:24
masak my @bases[4:map(*%4)];
masak submits the over-lol explanation as a rakudobug 16:25
sorear TimToady: $.foo = $(self.foo); $.foo(1,2,3) = $(self.foo(1,2,3)); @.foo = @(self.foo); # Correct? 16:26
TimToady I believe so, and I think that's what rakudo does 16:27
sorear TimToady: $!foo = $(self!foo); $!foo(1,2,3) = $(self!foo(1,2,3)); @!foo = @(self!foo); # I hold this true, jnthn does not.
"it's too elegant to be wrong" 16:28
TimToady well, I can argue it both ways, but I'd only do it your way if those sub calls are optimizable away nearly all the time 16:29
the ! calls are really subs, not methods, in my mind, and the ! attrs are intended to be as fast as possible, if not faster 16:30
sorear diakopter: do you know why there are about 150 tcp connections on host04 now?
diakopter no idea 16:31
netstat -anp |less shows much fewer than that
did you mean host02? 16:32
TimToady the $! and @! forms are intended to act as much like variables as possible; we only really need to pessimize them into an extra call when the user forces us to
it's as close as we let the user get to the repr stuff without actually calling explicit repr introspection 16:33
sorear diakopter: oh, yes I did
TimToady so, while it may be beautiful to analogize between . and !, they're really at different abstraction levels 16:34
sorear TimToady: are $!foo and @!foo references to the same slot?
TimToady I can call that one either way, depending on who we decide to confuse 16:35
TimToady I'm inclined to force them into one slot 16:36
since that's what people will expect from $. semantics
but we don't have to force it the same way that $. does 16:37
this is one of those places where we're going to need all the speed we can get
so we can't really afford turtles all the way down here 16:38
does this make some sense to you? 16:39
sorear yes 16:41
TimToady basically, slot names have no sigils or twigils, which fits better with other languages' OO too
and . vs ! is really picking virtual vs concrete slot semantics, is all 16:42
sorear So anything that changes the behavior of $! belongs in the REPR, not the HOW? 16:46
Does that make $!foo() = $(self!foo) != $!foo ?
TimToady yes, that's what I mean about the user pessimizing it to require a call 16:50
sorear TimToady: is there implicitly a method !foo so that $!foo() will work? 16:50
(after has $!foo) 16:51
TimToady I think it can probably be autogenerated when the call is seen
sorear nodnod
--
What is the operational interpretation of $.x := y (or, self.x.item := $y)
?
TimToady or perhaps 'trusts' does it
same as any other variable, it just happens to be in an object instead of a lexpad, and doesn't work on native types 16:52
oh wait, you said . not ! 16:53
ENEVERENOUGHCAFFEINE 16:54
diakopter wants 'always' and 'never' somewhere in Perl 6
TimToady we have a special declaration for 'rw', maybe we need a specialer declaration for 'rebindable' 16:56
if we need more repr info from the method call that isn't available by default
sorear TimToady: how do you think $object.method() := $rhs can be implemented? 16:57
TimToady doesn't know, and doesn't care if it's NYI because TimToady doesn't know 16:58
masak 'is rb'
TimToady I almost typed that, but felt it wrested the meaning of 'r' 16:59
and probably needs better dehuffmanization in any case
it just feels like allowing rebinding is one of those things that could slow down ordinary OO significantly, so ought to be handled with declarative pessimizatoin 17:00
*ion
sorear I get the feeling TimToady and I think about 'rebinding' in entirely different ways 17:02
TimToady thinks of it as little more than replacing a pointer, and wanders off to debind more of his house siding :) 17:04
masak std: my @seasons[4:map(*%4)]; 17:05
p6eval std 4608239: OUTPUT«ok 00:01 122m␤»
masak niecza: my @seasons[4:map(*%4)]; @seasons[-4..7] = 'a' .. 'l';
p6eval niecza v4-47-gfffa4cd: OUTPUT«===SORRY!===␤␤You can't adverb that at /tmp/_KN5e7uDRk line 1:␤------> my @seasons[4:map(*%4)⏏]; @seasons[-4..7] = 'a' .. 'l';␤␤Traits, postconstraints, and shapes on variable declarators NYI at /tmp/_KN5e7uDRk line 1:␤------> 17:06
..my @seasons[4…
masak thought so
shouldn't be too hard to implement.
maybe tomorrow on the plane I'll give it a shot.
jnthn sees attributes as variables that are stored in an object, rather than a lexpad or package. 17:11
@foo and $foo don't go in the same slot, and I'm rather unhappy with the notion that @!foo and $!foo would. 17:12
masak +1 17:13
jnthn $!foo() to me is just like $foo() - that is, find a thingy, and call it.
If we want to do cute stuff, it can go in method space.
In a strangely consistent way, even $.foo() is two operations - find a method foo to call and then invoke it. 17:14
pmurias sorear: $foo.foo() := was implemented in smop/mildew by returning a special object that supported .BIND 17:19
sorear hi 17:40
diakopter ahoy
tadzik hey
birdwindupbird Can one tell me how to install p6 module? 18:01
moritz birdwindupbird: see github.com/tadzik/Pies/ for an installier 18:02
tadzik oh, testers^Wusers :) 18:10
birdwindupbird tadzik: t/panda/fetcher.t .... fatal: failed to open '/home/kuku/.panda/src/Pies/t//objects': No such file or directory 18:14
tadzik why, thanks for support 18:17
I have to do something about this. The test pass, the above fatal is from eval_dies_ok(), but everyone thinks it's a bug 18:18
phenny: tell birdwindupbird if you look closely, you notice that the tests pass. The above message is just a side effect of checking the behaviour of a doomed to fail situation, and is completely ok 18:19
phenny tadzik: I'll pass that on when birdwindupbird is around.
tadzik maybe I should diag() in tests about that
lue hello world! o/ 18:21
masak lue! \o/
tadzik hello lue! 18:28
sorear TimToady: \o/ 19:24
TimToady wonders why he brought up irssi when he ought to have been getting lunch... 19:25
masak .u invisible times 19:34
phenny U+2062 INVISIBLE TIMES (⁢)
masak bad Unicode Consortium! 19:35
sorear why bad? 19:38
masak it's a highly personal opinion, of course. but I don't believe that is a character at all. 19:39
in 'ab', 'a' and 'b' are multiplied not because there's an invisible character between them, but because they are juxtaposed.
pmurias shouldn't all the invisible characters look the same?
sorear Has anyone here tried to use niecza with mono 2.4? 19:40
masak pmurias: yes, but that's not a problem. lots of distinct characters in Unicode can look the same.
pmurias: greek pi and math pi, for example.
pmurias masak: maybe INVISIBLE TIMES was imported into unicode from some strange character encoding 19:43
lue blag toast (some might consider it important): rdstar.wordpress.com/2011/04/09/su...de-public/ 19:45
lue My guess is INVISIBLE TIMES is there for lazy math parsers. 19:45
tadzik lue: nice!
moritz Mathematica treats TTIAR as a multiplication 19:47
tadzik lue: tests are failing 19:48
wklej.org/id/509442/
lue what is TTIAR?
TimToady moritz: mathematical language is well known to be parsable only by geniuses 19:49
moritz lue: Two Terms In A Row
TimToady lue: two terms in a row
moritz TimToady: mathematicians are so unbeliably lazy regarding the scope of their symbols 19:50
TimToady isn't everything just the scope of the current paper? 19:50
moritz ... except when it isn't 19:51
TimToady well, maybe not i, j, k..
lue tadzik: I know, that's why I finally decided to give SUPERNOVA to the world. Dealing with grammars/actions alone is !fun. Did you hear grammars are the Offical Archenemy of Me™?
moritz and variables are reused for different purposes
lue Everything's in the scope of the current paper, there are just a lot of things people have agreed upon. (I could, theoretically, use ^ to denote imaginary numbers instead of i, but I wouldn't be well-liked.) 19:52
masak I'm reading TAoCP II right now. Knuth writes very well, but I found myself being slightly bothered that he sometimes introduces new symbols/operators in his formulas right after the formulas themselves. 19:56
it's in the same sentence, even. but I'm getting to like one-pass parsing, and the style throws me off a bit. :) 19:57
TimToady people laugh about redefining π, but then mathematicians redefine i all the time... 19:58
masak TimToady: re-reading the 'User-defined array indexing' section of S09, I realized that the first things I'd want to do would be to write a pragma to disable .[] indexing on arrays with user-defined indexes. the risk of accidentally doing .[] on such an array (and introducing a logical bug) would be too great. at least for me. 19:59
moritz also consider that $[ was deprecated in p5 20:00
TimToady mainly because it was a global
masak moritz: I can sort of see the connection, but please spell it out. :) 20:01
moritz masak: $[ held the first index of all arrays
masak moritz: I know what it is. and I see the connection to user-defined indices.
moritz: but how does it factor into disablind .[] access on .{} arrays? 20:02
moritz sorry, have to run, bbl.
masak is it an argument for or against, or neither?
TimToady he's just trying to confuse you, which would be redundant. :)
masak :D 20:03
if I weren't confused, would I submit so many bug reports? 20:06
lue I once read about making π = 2π, or creating a three-pronged version of pi (which looked suspiciously like one way to write lowecase (archaic) sampi ϡ) 20:07
sbp superpi 20:08
TimToady I dunno, σ kinda looks like an unwinding circle 20:10
lue masak: wouldn't a confused person try using programs in unintended ways (to get unconfused, of course), thereby finding bugs?
(or a roll of tape σ). 20:11
moritz masak: I meant that the deprecation was another piece of evidence for the danger of user-defined array indexing 20:12
masak moritz: well, I thought we already addressed that danger by pushing the user-defined indexing off to .{} 20:14
moritz: but maybe you're saying that's not enough? that's what I'm saying.
lue afk for a while 20:18
sorear masak: I replied to Hakan 20:22
masak great.
he's a vital driver for my set of questions and bug reports lately. I'm basically going through a backlog of things he's sent me and taking action on them. :) 20:29
pmurias who's Hakan? 20:38
masak a long-time user of Perl 5 with a definite interest in Perl 6. whom I have the pleasure to know. 20:42
his preferred means of communication is email, or he would be here on #perl6, I guess. 20:43
sorear masak: is he also playing with Rakudo? 20:49
masak yes, mostly. 20:50
he's currently going through the synopses and testing things. 20:51
pmurias masak: he mails you privatly? or on the mailing list? 20:55
masak the former.
tadzik every new user is an event :) 20:59
lue: I know more about the bug now 21:04
lue: wklej.org/id/509518/ will give you some more info, the ambient content isn't parsed. Anyway, where did you get those .listvars method? 21:05
oic 21:06
lue: okay I tracked it down. There is no @sample[3], so @sample[3].listvars crashes. If you comment that out, you are just with one failing test 21:10
masak lue: from Grammar.pm6, line 12: proto token block { {*} } # maybe {*} would be better? 21:15
lue: that comment, is it out-of-date?
lue: anyway, the code looks promising. 21:16
masak 'night, #perl6 21:34
moritz \o
sorear TimToady: after func() := $rhs; how does := know which pointer to replace? 22:04
jnthn wonders whether we're better off with binding being very primitive and fast, but more restricted in its use, or with := boiling down to a !BIND call on the LHS that we maybe can optimize away in some cases... 22:07
takadonet hey all 22:08
tadzik hey 22:09
I just thought a nice GSoC idea would be to make use of Parrot's tree-optimizer. Guess it's too late now
sorear jnthn: I vote for primitive and restricted, because being a method call is quite wrong 22:14
jnthn sorear: I'd vote the same way. 22:15
sorear jnthn: after my $x := $y; $x := 2 and $y := 2 should not be the same
nqp: my $x := 1; my $y := $x; $x := 2; say($y)
p6eval nqp: OUTPUT«1␤»
sorear rakudo: my $x := 1; my $y := $x; $x := 2; say($y)
p6eval rakudo 4bf132: OUTPUT«2␤»
jnthn goes with nqp here 22:16
You too?
sorear yes
jnthn wonders why binding in Rakudo ended up being compiled differently to in NQP...
Maybe I'll make it do the same as NQP in the nom branch and see what happens :) 22:18
sorear alpha: my $x := 1; my $y := $x; $x := 2; say($y) 23:06
p6eval alpha : OUTPUT«1␤»
sorear mildew: my $x := 1; my $y := $x; $x := 2; say($y)
p6eval mildew: OUTPUT«sh: /home/mildew/perl5/perlbrew/bin/perl: not found␤»
takadonet NO!!!!! : Record separator must be a single character 23:22
damn u Parrot
takadonet shakes his fist 23:25
jnthn takadonet: Which record separator? 23:27
takadonet jnthn: "\n>"
for these fasta file format : en.wikipedia.org/wiki/FASTA_format
planning in reading one record at a time and then see if I can parse one whole record 23:28
want a lazy grammar/action
takadonet it can still work but it will be strange 23:30
takadonet night all 23:34