»ö« 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.
00:01 raiph joined
dalek blets: 5f34264 | (Herbert Breunung)++ | docs/index.txt:
formating index
00:13
blets: 508bafd | (Herbert Breunung)++ | docs/appendix- (3 files):
still weeding formating
00:14 eviltwin_b joined, geekosaur left 00:15 eviltwin_b is now known as geekosaur 00:21 spider-mario left 00:22 eviltwin_b joined, geekosaur left, eviltwin_b is now known as geekosaur 00:30 lichtkind left 00:44 JimmyZ_ joined 00:50 tokuhirom joined 00:54 geekosaur left, eviltwin_b joined, eviltwin_b is now known as geekosaur 01:01 eviltwin_b joined, geekosaur left, eviltwin_b is now known as geekosaur
rurban heap-buffer-overflow with /perl6 -e'my @a=splice([], 1);' reading 2 byte left a 64byte buffer 01:05
01:08 geekosaur left, eviltwin_b joined, eviltwin_b is now known as geekosaur
rurban error is in item + offset + elems1 src/pmc/resizablepmcarray.pmc:673 01:08
when shrinking the array 01:09
01:12 raiph left
gfldex rurban: what does perl6 --version for you? 01:24
rurban latest git master 01:25
parrot also
its actually a parrot bug
gfldex i don't got that problem under cygwin 32bit
01:28 wolfman2000 joined 01:30 eviltwin_b joined, geekosaur left 01:31 eviltwin_b is now known as geekosaur 01:32 PacoAir left 01:35 thelazydeveloper left 01:36 Chillance left 01:43 vlixes joined, JimmyZ_ left, araujo joined, araujo left, araujo joined
rurban gfldex: I use a special address checking tool address-sanitizer, like valgrind, just better 01:43
Described here: blogs.perl.org/users/rurban/2012/03...und-2.html 01:44
02:02 whiteknight left 02:10 jaldhar joined 02:13 alvis` joined 02:15 alvis left 02:17 ddima left 02:19 arnsholt_ joined, ddima joined 02:21 tkr joined 02:25 eviltwin_b joined, geekosaur left, eviltwin_b is now known as geekosaur 02:30 ponbiki joined 02:33 eviltwin_b joined, geekosaur left, eviltwin_b is now known as geekosaur 02:38 bluescreen10 left 02:39 eviltwin_b joined, geekosaur left, eviltwin_b is now known as geekosaur 02:40 orafu left, Helios` joined, orafu joined 02:44 kranius joined 02:47 eviltwin_b joined, geekosaur left 02:48 eviltwin_b is now known as geekosaur 02:49 Timbus joined, eviltwin_b joined, geekosaur left, eviltwin_b is now known as geekosaur 02:50 Entonian joined 02:53 eviltwin_b joined, geekosaur left, eviltwin_b is now known as geekosaur 02:57 geekosaur left, geekosaur joined 03:01 fgomez left 03:02 Entonian left 03:05 eviltwin_b joined, geekosaur left, eviltwin_b is now known as geekosaur 03:32 eviltwin_b joined, geekosaur left, eviltwin_b is now known as geekosaur 03:39 eviltwin_b joined, geekosaur left, eviltwin_b is now known as geekosaur 03:44 geekosaur left 03:45 geekosaur joined 03:47 poincare101 left 03:58 cognominal___ joined 04:01 thou joined 04:17 JimmyZ_ joined 04:26 eviltwin_b joined, geekosaur left, eviltwin_b is now known as geekosaur 04:39 geekosaur left 04:41 geekosaur joined 04:46 tokuhirom left 04:47 ponbiki left 04:48 birdwindupbird joined 04:49 eviltwin_b joined, geekosaur left, eviltwin_b is now known as geekosaur 04:55 geekosaur left 04:56 geekosaur joined
moritz o/ 05:14
05:16 sftp left
sorear o/ 05:17
05:25 kaare__ joined 05:34 noam left 05:35 noam joined 05:36 uvtc joined
uvtc How can I match one digit from 1..9, then one or more 0..9 digits after that? I'm trying $s ~~ m/(<[1..9]>\d2..*)/ but it doesn't seem to be working right (for one thing, it's not capturing the first digit). 05:45
And for another, it seems to be matching letters as well. $s looks like jf5b492c3i, and I'm trying to match the 492 in there, but I'm getting 492c3i.
moritz r: 'foo 42' ~~ /<[1..9]>\d/ and say ~$/ 05:46
p6eval rakudo cf40f2: OUTPUT«42␤»
moritz uvtc: ..* matches the same as .+
uvtc: that is, any characters, but at least one
uvtc r: 'jf5b492c3i' ~~ /<[1..9]>\d/; say $0
p6eval rakudo cf40f2: OUTPUT«Any()␤»
moritz if you want it to capture, use parens around it 05:47
uvtc r: 'jf5b492c3i' ~~ /(<[1..9]>\d)/; say $0
p6eval rakudo cf40f2: OUTPUT«=> <49>␤␤»
uvtc moritz, could you show me the regex syntax to get that to match 492?
sorear <[1..9]> \d 2 . .* means a digit from 1-9, then any digit, then a literal '2', then one or more arbitrary characters
moritz uvtc: just append a 2 05:48
uvtc I want to match: a digit from 1 to 9, then any number of digits following that.
Not just if it's 2.
(the digit 2)
r: 'jf5b492c3i' ~~ /(<[1..9]>\d+)/; say $0
moritz so, \d+ or \d*
p6eval rakudo cf40f2: OUTPUT«=> <492>␤␤»
sorear <[1..9]> \d*
uvtc Oh, using the + worked. 05:49
sorear I think you need to learn how to mentally parse regexes
uvtc I do.
:)
But I already mostly know Perl 5 regexes.
sorear [1-9] \d 2 . .* won't do what you want there either :) 05:50
uvtc Ah. I see some confusion. I'd originally tried to get *2* or more (not 1 or more), and I'd tried the usual \d{2,}
sorear I think you may have been trying to use 2..* as a repitition count?
uvtc but rakudo told me, Unsupported use of {N,M} as general quantifier; in Perl 6 please use ** N..M (or ** N..*) at line 14 05:51
TimToady so where's the **
uvtc Sorry about the confusion.
r: 'jf5b492c3i' ~~ /(<[1..9]>\d{2,})/; say $0
p6eval rakudo cf40f2: OUTPUT«===SORRY!===␤Unsupported use of {N,M} as general quantifier; in Perl 6 please use ** N..M (or ** N..*) at line 1, near ")/; say $0"␤»
uvtc r: 'jf5b492c3i' ~~ /(<[1..9]>\d2..*)/; say $0 05:52
p6eval rakudo cf40f2: OUTPUT«=> <492c3i>␤␤»
sorear r: 'jf5b492c3i' ~~ /(<[1..9]>\d**2..*)/; say $0
p6eval rakudo cf40f2: OUTPUT«=> <492>␤␤»
TimToady I repeat, where's your **?
sorear the ** isn't line noise, it actually means something
uvtc Oh, I see. I need the ** first, then the range.
r: 'jf5b492c3i' ~~ /(<[1..9]>\d**2..*)/; say $0
p6eval rakudo cf40f2: OUTPUT«=> <492>␤␤»
TimToady except that won't match 49 05:53
uvtc Right.
I only wanted 3-digit numbers and up.
05:53 eviltwin_b joined, geekosaur left
uvtc Thanks! I suppose I wasn't understanding the error message, and should've asked directly about that first. 05:54
sorear fwiw, I would probably write this as <![0]> \d**3..*
05:54 eviltwin_b is now known as geekosaur
uvtc r: 'jf5b492c3i' ~~ /(<![0]>\d**2..*)/; say $0 05:54
p6eval rakudo cf40f2: OUTPUT«=> <492>␤␤»
sorear to emphasise the idea that nonzero digits and unrestricted digits are of a kind
uvtc Hm. How can that work? ![0] looks to me like, "anything but zero" (for example, letters) 05:55
r: 'jf5b492c3i' ~~ /(<![0]>\d ** 2..*)/; say $0
p6eval rakudo cf40f2: OUTPUT«=> <492>␤␤»
sorear that's -[0]
![0] is a zero width assertion
it doesn't match anything itself 05:56
it only prevents the next item from matching 0...
uvtc [a..z] is all the characters from a to z, right_?
sorear r: 'jf5b492c3i' ~~ /(<-[0]>\d ** 2..*)/; say $0 # for comparison
p6eval rakudo cf40f2: OUTPUT«=> <b492>␤␤»
sorear yes, but we recommend you avoid things like that 05:57
you might get mail from irate Spaniards wondering why your program accepts n and o but not ñ
uvtc Wait -- sorry, typo. I meant <[a..z]>, not [a..z].
sorear <:ll> probably better
uvtc sorear, Right. Not unicodey. 05:58
sorear or <:Lowercase_Letter>
uvtc How can I initialize a hash to look like this: %h = 1 => 0, 2 => 0, 3 => 0, 4 => 0, 5 => 0; ? 06:01
(without typing them all out?)
moritz r: my %h = 1..5 X=> 0; say %h.perl
p6eval rakudo cf40f2: OUTPUT«("1" => 0, "2" => 0, "3" => 0, "4" => 0, "5" => 0).hash␤»
uvtc Thanks, moritz. 06:02
06:07 geekosaur left, eviltwin_b joined, eviltwin_b is now known as geekosaur 06:15 fglock_ joined
sorear o/ fglock_ 06:15
fglock_ sorear: hi! 06:16
sorear random comment
niecza has an informal deprecation policy
if a feature is currently supported in niecza AND documented in the synopses, I will not break it lightly
fglock_ perlito5 has a "* Deprecate" section in the TODO file 06:17
with things that may eventually be deprecated 06:18
I have a perl6 question, I have a set of classes that define an AST, and another set of classes that define a code emitter 06:20
I currently link the classes with each other by sharing the class name with MONKEY_TYPING
I want to get rid of the monkey_typing 06:21
moritz you can stub types before using them 06:22
r: class A { ... }; class B { method x(A $) { } }; class A { }
p6eval rakudo cf40f2: ( no output )
sorear fglock_: niecza does the exact same thing. I suspect it may be optimal in the absense of whole-program compilation 06:25
fglock_ moritz: I understand in your example '$a.emit()' would be written 'B.emit($a)' ?
sorear: because whole-program compilation would reconstruct a different AST for output? 06:28
uvtc I wrote a little string/number crunching program just for some speed tests. It's here gist.github.com/2600314 . But my calls to min and max don't seem to always work right. Could anyone tell me why? 06:29
sorear fglock_: that question does not make sense
uvtc: you're taking the max of a collection of strings. 06:30
uvtc: you should find that it always returns the lexicographically greatest item. 06:31
fglock_ sorear: I don't understand why you said "in the absense of whole-program compilation" - it that because you don't need to traverse the AST in the emitter?
uvtc sorear, Ah. Thanks! How can I tell min that I want to treat @nums as nums?
sorear uvtc: Easiest way is to add a + to line 15 so that the values are stored as numbers
15 push @nums, $0 06:32
for some reason gist thinks there are three blank lines at the top
uvtc push @nums, +$0 ?
sorear yes
uvtc Thanks, sorear!
sorear fglock_: the 'natural' Perl 6 way would be to write emit() as a multi sub. 06:33
06:33 eviltwin_b joined
sorear fglock_: this is what PAST::Compiler does 06:33
06:33 geekosaur left, eviltwin_b is now known as geekosaur
sorear fglock_: but I won't tolerate the speed hit for that unless it can be optimized somehow, and I don't know how to do that without whole-program compilatiomn 06:33
fglock_ sorear: ah, that makes sense! that's how it works in the SBCL implementation too 06:34
'multi emit (AST::Int $node: ) { ... } ' could be compiled to a plain method call (sorry if the syntax is wrong) 06:39
(reading S12) 06:41
sorear fglock_: that's called wishful thinking. It is one of the most consistant features of of the synopses. 06:44
06:44 eviltwin_b joined, geekosaur left 06:45 eviltwin_b is now known as geekosaur
uvtc For anyone interested in performance comparisons (I understand that rakudo still has a lot of optimizations ahead of it), here's that simple script in Perl 6 gist.github.com/2600403 , and here it is in Python gist.github.com/2600409 . 06:45
fglock_ sorear: you mean it "looks like it can be optimized" but it can't?
sorear fglock_: first off, that colon is entirely out of place for a multi method 06:46
and second, yes
06:46 JimmyZ_ left 06:49 sjohnson left
fglock_ "consistent feature" you are referring to "wishful thinking"? 06:50
sorear yes
fglock_ heh - ok 06:51
06:52 uvtc left
fglock_ the reason that is wouldn't work is the lexical scoping? 06:52
it
when the multi is out of scope then the actual method would be called 06:54
moritz but at least you know at compile time which multis are in scope
a piece of information that rakudo uses to good effect 06:55
where it can, it determines the candidate to call at compile time, and sometimes even inlines the call 06:56
fglock_ reading the discussion at code.activestate.com/lists/perl6-language/32268/ 06:57
sorear single dispatch turns into vtable-like calls 06:58
I don't know of any multi dispatch algorithm which scales in O(1) with the candidate count 06:59
niecza has dozens of types of AST nodes
I suppose I should actually test this, rather than just assuming 20 type checks will add a lot of overhead to calling 07:00
07:06 geekosaur left, geekosaur joined 07:16 xinming joined 07:19 xinming_ left
fglock_ sorear: SBCL multi dispatch lookup: www.sbcl.org/sbcl-internals/The-Cac...anism.html 07:19
lexical multis do complicate things a bit 07:20
the method looks like a Bloom filter, I think 07:25
07:33 vlixes left 07:38 GlitchMr joined 07:39 eviltwin_b joined, geekosaur left, eviltwin_b is now known as geekosaur 07:40 SHODAN joined
fglock_ sorear: re candidate count, I understand they create a hash value that represents the candidates; they use this value to exclude the multis that don't match 07:43
dalek Iish: 77f8857 | moritz++ | / (2 files):
[t] test that quoted question marks are OK

also fix Pgs method do
07:49
sorear fglock_: that would work better if Perl 6 had final classes :( 07:57
fglock_ sorear: I understand this is runtime dispatch, and the cache can be changed at runtime. Maybe they recompile as-needed, though 08:03
08:05 sergot joined
sergot o/ 08:05
dalek blets: 677dd45 | (Herbert Breunung)++ | docs/appendix-a-index.txt:
still fixing link formating has also advantage of more fine grained bold making
08:10
08:11 adu joined 08:13 tokuhirom joined
fglock_ but yes, final classes are good for compile-time optimization; runtime dispatch on a static-ish vm is painful 08:18
tadzik sjn: re invoices, wizzair claims to have sent an invoice in english, but neither I nor sergot did receive one. I sent an email for them requesting one 08:24
moritz wizzair? is that an airline with wizz-bang features? :-) 08:25
tadzik you mean www.wizz-bang.com.au/ ? :) 08:26
08:27 thou left 08:33 Khisanth left 08:34 Khisanth joined 08:37 eviltwin_b joined, geekosaur left, eviltwin_b is now known as geekosaur 08:54 sergot left
moritz r: say 1 !~ 2 08:55
p6eval rakudo cf40f2: OUTPUT«===SORRY!===␤Unsupported use of !~ to do negated pattern matching; in Perl 6 please use !~~␤at /tmp/jJi2NQrfnQ:1␤»
dalek blets: a9ccd66 | moritz++ | docs/tablet-4-operators.txt:
[op] negated smart match is !~~, not !~
08:57
09:00 eviltwin_b joined, geekosaur left 09:01 eviltwin_b is now known as geekosaur 09:08 sisar left
masak morning, #perl6 09:14
r: say "492" ~~ / (\d\d\d) <?{ $0 >= 100 }> / # this is how I would have written it 09:15
p6eval rakudo cf40f2: OUTPUT«=> <492>␤ 0 => <492>␤␤»
tadzik I don't know what is "it", but I'd probably go for 1\d\d 09:21
masak r: say "492" ~~ / 1\d\d / 09:22
p6eval rakudo cf40f2: OUTPUT«#<failed match>␤»
masak tadzik: then it doesn't match.
tadzik oh, right
masak here, have some coffee :P
tadzik the water's still boiling :)
masak :) 09:23
general question: do you prefer to (a) have two methods, one .is-X-allowed and one .perform-X, and always do one after the other on the caller side, or (b) only have the .perform-X method, and check feasibility by trying and catching an exception? 09:33
tadzik what kind of allowance is this? 09:34
I like exceptions to be reserved for, well, exceptional situations
if it's an exception that sometimes the method is not allowed, then (b). If it just happens sometimes, and is a normal thing then (a) 09:35
masak well, in both scenarios .perform-X will throw an exception if the operation isn't allowed. it never fails silently. 09:36
tadzik understood
masak it's just that, in scenario (a), the expected way to detect illegal operations is to call .is-X-allowed first.
tadzik yeah, you're focusing on the API here, I'm thinking a bit more philosophical :) 09:37
is it really an exceptional situation that something is not allowed, or is it a normal thing you should think about?
masak I'm not sure we're using "exceptional situation" in the same way here.
to me it has nothing to do with "often" or "sometimes".
tadzik agreed 09:38
masak it has to do with whether the caller creates a situation for the callee that was somehow forbidden by contract.
that's why using exceptions for exiting a loop, for example, breaks this rule. because every finite loop ends, so it's not a break of a contract, it's expected. 09:39
09:41 geekosaur left, eviltwin_b joined 09:42 eviltwin_b is now known as geekosaur
masak why does the CHECK complainer output the called subs in alphabetic order, and not in the order the calls appeared in the file? 09:43
moritz example?
ah, I know what you mean
it can list several call locations for each routine 09:44
09:44 eviltwin_b joined, geekosaur left
moritz so you can't get a consistent sorting by call location 09:44
you could sort by first call location though
09:44 eviltwin_b is now known as geekosaur
masak I think I'd prefer that. 09:45
sometimes alphabetic order is helpful, but here it doesn't give any advantage at all.
whereas call location is something I can relate to.
I just was to point out that it feels great to be having Rakudo complaints at this high level. :) jnthn++ 09:46
09:46 eviltwin_b joined, geekosaur left
masak means all the lower levels are basically fine. 09:46
09:46 eviltwin_b is now known as geekosaur
moritz nom + bs = win! 09:47
masak :)
09:50 ab5tract joined
arnsholt_ masak: I think I'd use the is-X-allowed if there was some way for me as the caller to gracefully handle it not being allowed 09:51
If If not, I'd just let the exception percolate up and probably get some kind of "I can't let you do that, Dave" message 09:52
09:52 arnsholt_ is now known as arnsholt
masak arnsholt: oh, that sounds like a good rule-of-thumb. 09:55
it's like, go with triggering the exception if there's no better way to proceed. 09:56
10:06 ab5tract left
masak r: say "ab c" ~~ / ab c / 10:06
p6eval rakudo cf40f2: OUTPUT«#<failed match>␤»
masak r: say "ab c" ~~ mm/ ab c /
p6eval rakudo cf40f2: OUTPUT«===SORRY!===␤Preceding context expects a term, but found infix / instead at line 1, near ""␤»
masak aww
r: say "ab c" ~~ / :s ab c / 10:07
p6eval rakudo cf40f2: OUTPUT«=> <ab c>␤␤»
moritz r: say 'ab c' ~~ ms/ ab c /
p6eval rakudo cf40f2: OUTPUT«#<failed match>␤»
masak oh, it's ms// these days?
moritz that last one should have worked
masak submits rakudobug
moritz mm// is m:m//
masak what does :m mean?
moritz ignore:mark 10:08
masak oh right.
moritz++
r: say 'ab c' ~~ ms/ab c / 10:09
p6eval rakudo cf40f2: OUTPUT«#<failed match>␤»
masak just checking :)
moritz I think I have a fix locally
10:16 thelazydeveloper joined
jnthn afternoon o/ 10:17
tadzik \o
jnthn masak: (output order) surprised it's alphabetic. I shove the things in a hash. 10:18
masak: It's all written in NQP though. Feel free to hack on it.
10:19 spider-mario joined
masak jnthn: nod 10:19
10:20 ab5tract joined 10:21 geekosaur left, eviltwin_b joined 10:22 eviltwin_b is now known as geekosaur
tadzik woooow, wtf 10:24
10:24 eviltwin_b joined, geekosaur left
tadzik github.com/tadzik/panda/blob/maste.../panda#L37 10:24
10:24 eviltwin_b is now known as geekosaur
tadzik this line takes about 3-4 seconds to execute 10:25
removing <> around $string it needs approximately 0 seconds
jnthn What's in $string? 10:26
It's calling into the regex compiler there I guess...
tadzik an arbitraty string, e.g. "kitten"
pulling my $regex = / <$string> /; before the loop doesn't help much 10:27
(and then matching ~~ $regex) 10:28
jnthn Hmm.
It is slow indeed.
10:30 fglock_ left
dalek kudo/nom: 3b028e9 | moritz++ | src/Perl6/Grammar.pm:
fix ms//
10:39
tadzik jnthn: how do you > /dev/null on windows? 10:45
moritz > nul I think 10:46
not sure though
windows has several reserved names, such as 'con' and 'nul' and 'lpt' and so on, which may never be used as file names, and which serve such special purposes 10:47
tadzik I think about something along run-silently() 10:49
jnthn Yes, it's > NUL 10:50
tadzik: <$foo> uses eval, which also seems a bit slower than would be desirable.
tadzik ah, I see 10:51
10:56 whiteknight joined
jnthn tadzik: oooh... 10:57
tadzik: I just worked out why it's ridiculously slow.
tadzik hm? 10:58
jnthn Imagine /<$x>/ where $x contains "kitten"
And we match it against /a kitten/
It tries to match at the start of the string. It goes off and compiles $x into a regex. And evaluates it and...no match
So, it moves to the next character. Compiles $x into a regex *again*. And evaluates it and...no match.
And...yeah, it goes on :) 10:59
tadzik ew
yeah, that could hurt
jnthn wonders what S05 says about the lifetime of <$x> :)
I suspect we should not be recompiling it every single time we backtrack.
tadzik it sort of sucks that MAIN(*@args, :$notests) supports panda --notests install NativeCall, but not panda install --notests NativeCall 11:00
and yet I'm afraid that might be per-spec 11:01
11:02 eviltwin_b joined, geekosaur left, eviltwin_b is now known as geekosaur
tadzik As usual, switches are assumed to be first, and everything after the first non-switch, or any switches after a --, are treated as positionals or go into the slurpy array (even if they look like switches). 11:04
yeah
how would you name a module that treats --arguments as switches even if they come after positionals? 11:09
moritz Getopt::Random :-) 11:10
tadzik Main::Sain :) 11:12
gist.github.com/2601641 cool :) 11:16
jnthn tadzik: S05 seems to give us some allowance to do some caching. Got a patch here that helps, just gonna spectest it. 11:17
tadzik \o/
11:17 NamelessTee joined
masak jnthn: the only reason to recompile $x in <$x> with every backtrack is if $x or one of its subrules contains code that changes $x. 11:19
jnthn: but that seems like a very corner-y case. I'd rather have the speed, and compile <$x> at most once per rule execution :)
jnthn masak: S05 has some langauge on the issue. 11:20
11:21 JimmyZ_ joined
jnthn masak: It's basically "does $x change" and "obey rebinding due to lexicality" and the thing I've implemented would seem to cover those requirements. :) 11:21
dalek nda: 5a4b981 | tadzik++ | bin/panda:
Rip off the REPL and refactor bin/panda a bit
11:24
nda: 83a7058 | tadzik++ | bin/panda:
Avoid regex compilation in 'panda search' to make it usable
nda: 9b5ddfd | tadzik++ | lib/Panda/Ecosystem.pm:
Simplify Panda::Ecosystem, we're not _that_ slow anymore
nda: 1b86a11 | tadzik++ | bin/panda:
Implement --nodeps and --notests, fixes GH-5
kudo: d7f45ff | moritz++ | src/core/Cool.pm:
Cool.eval
11:26
kudo/nom: dbcdb16 | jnthn++ | src/core/Cursor.pm:
In /<$x>/ don't recompile $x every single time we pass it while scanning/backtracking. This implements it exactly as S05 suggests: 'the compiled form is cached with the string'.
jnthn tadzik: Hopefully ^ is a good speedup :) 11:28
tadzik will see, thanks :)
moritz oh noez, somebody has pushed to rakudo/master again :( 11:33
jnthn me 11:34
I :master'd again though
:/
In my defense, I didn't have much coffee yet today... :P
moritz I think we should rename nom to master 11:35
it just happens over and over again
and it occasionally confuses people
in the long run, there's just no benefit not to have master
masak +1 11:39
11:41 geekosaur left
Celelibi hum... What about the "local" variables un perl6 ? 11:41
What about $_ ?
11:41 am0c joined
gfldex r: .say for 1,2,3; 11:42
p6eval rakudo 3b028e: OUTPUT«1␤2␤3␤»
gfldex r: $_.say for 1,2,3;
p6eval rakudo 3b028e: OUTPUT«1␤2␤3␤»
Celelibi yes, that's the simple part.
gfldex still there but you will need is less
JimmyZ_ +1 to have master
because we are using git 11:43
Celelibi but I remember having some troubles with $_ in perl5
moritz well, p5 has messed up some things
Celelibi like map {foo($_, $somestuff)} @list
tadzik Celelibi: what kind of 'local' do you mean? 11:44
moritz for example the scoping of $_ in given and for is different
Celelibi and inside foo sone something like while (<$fd>)
tadzik if it's as in Perl 5's 'local $/', then we use dynamic $*Variables for that now
Celelibi which messed up the value of $_ in the map.
11:44 jaffa4 joined, geekosaur joined
jaffa4 hi 11:44
tadzik hi jaffa4 11:45
Celelibi actually it was more like map {foo($_, $bar); somethingelse($_, $baz) }
@list
masak hi jaffa4
Celelibi the value of $_ on the call to somethingelse was different from the call to foo because a while (<$fd>) changed $_
and I had to declare $_ as "local". 11:46
tadzik: that's the local I talk about.
jaffa4 This example seems to be wrong in rakudo: paste.org/48868 11:47
Sorry This example seems to be wrong in niecza: paste.org/48868
gfldex Celelibi: that bahaviour would be a bug in perl6
Celelibi The thing that simulate in some way the the local variable by just saving the old value and restoring it at the end of the block.
tadzik Celelibi: in Perl 6 'local $FOO = 5' is 'my $*FOO = 5'
moritz jaffa4: you're right. Known bug.
gfldex but since we don't do while (<$fd>) anymore, it doesn't matter much
Celelibi tadzik: what's the star ? 11:48
tadzik I'm wondering how much sense does it make to have a sort of application-level configuration using dynamic variables
jaffa4 So how do I use that?
tadzik Celelibi: it indicates that it's a dynamic variable
e.g. panda would do my $*VERBOSE = True, and then various panda modules will look at it 11:49
Celelibi gfldex: what do we do instead ?
gfldex slurp("yourfile.end") 11:50
Celelibi what if the file is big?
tadzik no
we use lines(), not slurp()
moritz or just for $fd.lines -> $l { say $l }
tadzik slurp() serves a different purpose
moritz and since lists are lazy, this doesn't consume all the memory upfront
Celelibi ok
JimmyZ_ r: say (7, 14, * ... 100); 11:51
p6eval rakudo 3b028e: OUTPUT«Cannot call 'Numeric'; none of these signatures match:␤:(Mu:U \$v, Mu *%_)␤␤ in method Numeric at src/gen/CORE.setting:648␤ in sub infix:<==> at src/gen/CORE.setting:2377␤ in method ACCEPTS at src/gen/CORE.setting:2159␤ in block <anon> at src/gen/CORE.setting:1…
Celelibi lists are always lazy?
gfldex if they use gather/take
Celelibi ok
gfldex most of the stuff in the settings do that
tadzik r: say (7, 14 ... 100);
p6eval rakudo 3b028e: OUTPUT«(timeout)»
tadzik heh
r: say (7, 14 ... * > 100); 11:52
p6eval rakudo 3b028e: OUTPUT«7 14 21 28 35 42 49 56 63 70 77 84 91 98 105␤»
Celelibi what's the "..." in this context?
tadzik series operator
r: say (1, 2, 4 ... * > 1000); 11:53
p6eval rakudo 3b028e: OUTPUT«1 2 4 8 16 32 64 128 256 512 1024␤»
jaffa4 r: say (1,4,10 .. 100) 11:54
p6eval rakudo 3b028e: OUTPUT«1 4 10..100␤»
tadzik :)
jaffa4 r: say (1,4,10 ... 100)
p6eval rakudo 3b028e: OUTPUT«Unable to deduce sequence␤ in method Str at src/gen/CORE.setting:8671␤ in method Stringy at src/gen/CORE.setting:677␤ in method join at src/gen/CORE.setting:1063␤ in method Str at src/gen/CORE.setting:4978␤ in method gist at src/gen/CORE.setting:5272␤ in sub …
JimmyZ_ why outputs 1024?
jaffa4 r: say (1,4,9 ... 100)
p6eval rakudo 3b028e: OUTPUT«Unable to deduce sequence␤ in method Str at src/gen/CORE.setting:8671␤ in method Stringy at src/gen/CORE.setting:677␤ in method join at src/gen/CORE.setting:1063␤ in method Str at src/gen/CORE.setting:4978␤ in method gist at src/gen/CORE.setting:5272␤ in sub …
tadzik JimmyZ_: 1024 satisfies *>1000, so it stops then, but it includes it. Exclusive is also possible 11:55
r: say (1, 2, 4 ...^ * > 1000);
p6eval rakudo 3b028e: OUTPUT«1 2 4 8 16 32 64 128 256 512␤»
JimmyZ_ oh
tadzik ...^, as in ..^ with ranges
r: say (1..^10).list
p6eval rakudo 3b028e: OUTPUT«1 2 3 4 5 6 7 8 9␤»
Celelibi where can I find more about this syntax?
masak S03 11:56
perlcabal.org/syn/S03.html
tadzik perlcabal.org/syn/S03.html#List_infix_precedence
scroll down to infix:<...>
JimmyZ_ I think ...^ is the most what I want
tadzik alpha: say (1, 2, 4 ... 1000).perl 11:57
11:57 eviltwin_b joined, geekosaur left
tadzik no alpha? :( 11:57
Celelibi <tadzik> Celelibi: in Perl 6 'local $FOO = 5' is 'my $*FOO = 5' <-- what's the difference with "temp $FOO = 5"? 11:58
11:58 eviltwin_b is now known as geekosaur
tadzik I'm not sure what temp is 11:58
masak tadzik: no alpha.
Celelibi www.programmersheaven.com/2/Perl6-F...ables#temp
JimmyZ_ r: say (1..100/7)>>*>>7
p6eval rakudo 3b028e: OUTPUT«7 14 21 28 35 42 49 56 63 70 77 84 91 98␤»
tadzik Celelibi: I suppose temp lives only in the current scope, while dynamics are global-ish (example coming) 11:59
r: my $*FOO = 5; sub foo { say $*FOO }; foo; { my $*FOO = 6; foo(); }; foo 12:00
p6eval rakudo 3b028e: OUTPUT«5␤6␤5␤»
jnthn back alter
*later
masak tadzik: 'temp' means "this variable gets its previous value at scope LEAVE time". 12:01
tadzik right
masak in fact, 'temp' should be LHF now that we have LEAVE.
huf how is temp different from redeclaring the variable in the inner scope with my? 12:02
Celelibi ok, temp $x; is just like "my $x = $x" (provided this would be a legal statment)
masak huf: redeclaring in an inner scope creates a new container. 'temp' re-uses the old one. 12:03
Celelibi: 'my $x = $x' is a no-op in Perl 6, and (I think) always illegal in Perl 5.
Celelibi then "temp $x = constantevalue" does not make much sens.
masak it doesn't? I think it does.
huf masak: i see 12:04
masak: where would this matter? 12:05
Celelibi does rakudo actually implements temp variables?
12:05 Chillance joined
huf is this similar to the $foo = [] vs @$foo = () distinction? 12:05
from perl5 i mean
Celelibi are $*FOO variables "our" variables? 12:07
12:07 geekosaur left
Celelibi if not, what's the difference? 12:07
12:08 geekosaur joined
Celelibi And is there a fucking way to make rakudo work faster? 12:09
For evey perl6 -e line I type it takes a second to compile and do stuff before actually running my code.
tadzik: what does actually do "my $*FOO = 6" in your previous example? 12:12
masak huf: no, I don't think so. that distinction is about "actual values" vs their references. this distinction is about "actual values" vs the container they're stored in.
Celelibi does it create a new variable (as I would expect by the "my" keyword)?
tadzik Celelibi: from that moment, up to the end of current lexical scope, the global variable $*FOO has a value of 6
huf masak: hmm. so in what actual case would using temp vs redeclaring with my result in different behavior?
Celelibi Does it just store the old value and restore it at the end of the scope?
(just like "local") 12:13
tadzik somehow
huf or is this just to signal intent to the next programmer (and maybe make it a bit faster)?
masak huf: so, in the 'my' case there are essentially two different variables with the same name. 12:16
Celelibi tadzik: I need to have an actual mental representation of what happen. 12:17
masak huf: in that case, we could have a situation where a routine called from the inner scope sees the outer variable (with the original value).
Celelibi Some languages create several variables with the same name and trying to access it just take the last value.
huf masak: since the compiled routine is actually referencing a container, not the name of the variable?
Celelibi that's the case of O'Caml and its "let".
masak huf: in the case of 'temp', there would only ever be one variable, and the routine called would see the current, temporized value.
huf: hm. maybe. 12:18
tadzik Celelibi: think of a dynamic variable as a global variable. Then redeclaring it locally is like 'temp'
Celelibi masak: what if I take a reference to a $*FOO?
tadzik it changes the value globally, and restores it at the end of scope
huf masak: is this mostly theoretical at the moment, since the implementations arent far enough along to have bumped into this distinction? 12:19
masak huf: all normal lexical lookups are settled at compile-time, and compiled into something like "two scopes up, third door on your right".
huf ah.
masak huf: the implementations are far enough.
the distinction I'm talking about can already be demonstrated.
masak puts together an example
huf so temp is totally cool and i should use it and finally we can localize lexicals? sweet. 12:20
masak r: my $var = 5; sub foo { $var = 42; #`(pretend this is temp) bar; $var = 5; #`(pretend this happens automatically) }; sub bar { say $var }
p6eval rakudo dbcdb1: ( no output )
masak r: my $var = 5; sub foo { $var = 42; #`(pretend this is temp) bar; $var = 5; #`(pretend this happens automatically) }; sub bar { say $var }; foo 12:21
p6eval rakudo dbcdb1: OUTPUT«42␤»
masak that's the 'temp' case.
r: my $var = 5; sub foo { my $var = 42; bar; }; sub bar { say $var }; foo
p6eval rakudo dbcdb1: OUTPUT«5␤»
masak that's the 'my' case.
huf the normal lexical variable lookup
i see. 12:22
masak aye.
huf sweet. thanks for the explanation.
masak all I've been saying so far is that "normal lexical lookup applies" :)
huf ;))))
masak even with 'temp'.
huf right, since there is no second variable in that case.
masak right. 12:23
TimToady sometimes refers to 'temp' and 'let' as "pseudo-declarators". since they don't declare a new thing, they just modify an existing one. 12:24
12:25 lutok joined
Celelibi r: my $*FOO = 5; my $RFOO = \$*FOO; say $$RFOO 12:25
p6eval rakudo dbcdb1: OUTPUT«5␤»
Celelibi why doesn't this work on my computer ?
masak because your computer is broken?
because you installed Rakudo wrong?
because you have a very old version of Rakudo> 12:26
?
flussence maybe your shell's doing something screwy with the \
Celelibi I just apt-get install rakudo
this shouldn't be wrong.
flussence oh, that'd be why
which distro is that?
Celelibi debian 12:27
masak r: my $a; say (\$a).^name
p6eval rakudo dbcdb1: OUTPUT«Capture␤»
Celelibi "This is Rakudo Perl 6, version 2011.07 built on parrot 3.6.0 0"
masak that's old.
b: my $*FOO = 5; my $RFOO = \$*FOO; say $$RFOO
p6eval b 922500: OUTPUT«===SORRY!===␤Non-declarative sigil is missing its name at line 22, near "$$RFOO"␤»
masak right.
Celelibi ok, let's upgrade to sid's version.
flussence that'd also explain why your perl6 -e takes forever 12:28
tadzik sid is not too new either :/
they have 2012.01
Celelibi works still better.
and the sid version take longer to compile... 12:29
it takes 2 seconds!
That's just... unbearable.
flussence 2 seconds every time? that can't be right
tadzik it takes 0.29 here 12:30
2012.01 is pre-bs
Celelibi between 2.6 and 3 seconds yes.
tadzik Celelibi: the startup time has been massively improved over the last few months 12:31
Celelibi ok.
tadzik Celelibi: what's time perl6 -e 1 on 2012.01? 12:32
JimmyZ_ rakudo: my $a = 3; my $b = 4; $a = $a xor $b; $b = $b xor $a; $a = $a xor $b; say $a, ' ', $b; 12:33
p6eval rakudo dbcdb1: OUTPUT«3 4␤»
Celelibi my $*FOO = 5; my $RFOO = \$*FOO; sub p {say $*FOO; say $$RFOO}; p; {my $*FOO = 42; p} 12:34
JimmyZ_ r: my $a = 3; my $b = 4; $a xor= $b; $b xor= $a; $a xor= $b; say $a, ' ', $b;
p6eval rakudo dbcdb1: OUTPUT«4 4␤»
Celelibi r: my $*FOO = 5; my $RFOO = \$*FOO; sub p {say $*FOO; say $$RFOO}; p; {my $*FOO = 42; p}
p6eval rakudo dbcdb1: OUTPUT«5␤5␤42␤5␤»
JimmyZ_ is it a bug?
Celelibi tadzik: quite nothing.
0.013
tadzik hm, 0.1 here
maybe that's too simple :) 12:35
Celelibi tadzik: my bad, I forgot the 6. This was the time for perl 5. ^^
tadzik :)
Celelibi time perl6 -e 1
perl6 -e 1 2,33s user 0,14s system 98% cpu 2,508 total
tadzik yeah, it's 0.1 on my git version
flussence that reminds me, I've got some overdue fixing to do... (tryrakudo@feather3:~$ time perl6 -e 1 -> 0m0.958s) 12:37
Celelibi r: my $x; sub foo {temp $x;} 12:38
p6eval rakudo dbcdb1: OUTPUT«===SORRY!===␤CHECK FAILED:␤Undefined routine '&temp' called (line 1)␤»
masak is there an easier way to say .kv.hash.invert? 12:39
JimmyZ_ rakudo: my $a = 3; $a = $a xor 4; say $a;
p6eval rakudo dbcdb1: OUTPUT«3␤»
JimmyZ_ rakudo: my $a = 3; $a xor= 4; say $a;
p6eval rakudo dbcdb1: OUTPUT«Nil␤»
masak more precisely, why don't we have .invert on Lists?
JimmyZ_ masak: is it a bug?
masak JimmyZ_: "it"?
flussence r: my @list = 'a'..'z'; say {@list Z=> 1..*}.perl 12:40
p6eval rakudo dbcdb1: OUTPUT«Block.new()␤»
flussence argh
masak JimmyZ_: no.
flussence r: my @list = 'a'..'z'; say { (@list Z=> 1..*) }.perl
p6eval rakudo dbcdb1: OUTPUT«Block.new()␤»
flussence r: my @list = 'a'..'z'; say %(@list Z=> 1..*).perl
p6eval rakudo dbcdb1: OUTPUT«("a" => 1, "b" => 2, "c" => 3, "d" => 4, "e" => 5, "f" => 6, "g" => 7, "h" => 8, "i" => 9, "j" => 10, "k" => 11, "l" => 12, "m" => 13, "n" => 14, "o" => 15, "p" => 16, "q" => 17, "r" => 18, "s" => 19, "t" => 20, "u" => 21, "v" => 22, "w" => 23, "x" => 24, "y" => 25…
masak JimmyZ_: precedence. same as 'and' and 'or'.
flussence r: my @list = 'a'..'z'; say @list.kv.hash.invert.perl;
p6eval rakudo dbcdb1: OUTPUT«("a" => "0", "b" => "1", "c" => "2", "d" => "3", "e" => "4", "f" => "5", "g" => "6", "h" => "7", "i" => "8", "j" => "9", "k" => "10", "l" => "11", "m" => "12", "n" => "13", "o" => "14", "p" => "15", "q" => "16", "r" => "17", "s" => "18", "t" => "19", "u" => "20", "…
JimmyZ_ hmm
masak JimmyZ_: don't use the loose-precedence boolean operators when you don't require loose precedence.
flussence oops, off by one
r: my @list = <a b c d e f b d d>; say @list.kv.hash.invert.perl; 12:41
p6eval rakudo dbcdb1: OUTPUT«("a" => "0", "b" => "1", "c" => "2", "d" => "3", "e" => "4", "f" => "5", "b" => "6", "d" => "7", "d" => "8").list␤»
JimmyZ_ rakudo: my $a = 3; my $b = 4; $a = $a xor $b; $b = $b xor $a; $a = $a xor $b; say $a, ' ', $b;
masak I'm advocating an .invert on Lists
p6eval rakudo dbcdb1: OUTPUT«3 4␤»
flussence r: my @list = <a b c d e f b d d>; say %(@list Z=> 0..*).perl;
p6eval rakudo dbcdb1: OUTPUT«("a" => 0, "b" => 6, "c" => 2, "d" => 8, "e" => 4, "f" => 5).hash␤»
flussence well that didn't work...
masak :)
Celelibi hum... for perl 5 "local" was also creating a new variable with the same name and the same visibility but with a lifetime limited to the block. 12:42
masak also, I'd like a sub form of .invert
Celelibi And not just storing the value and restoring it back later.
flussence Celelibi: it's a bit hard to store/revert there, since they can have tied variables 12:43
12:43 eviltwin_b joined, geekosaur left 12:44 eviltwin_b is now known as geekosaur
masak moritz: somehow we're back to the ugly, noisy stacktraces with lots of eager/gimme/reify in them :/ 12:49
12:51 geekosaur left, eviltwin_b joined, eviltwin_b is now known as geekosaur 12:54 sergot joined 12:55 zhutingting joined 12:59 tokuhirom left
masak writes 'return so all', and shivers happily 13:00
13:06 adu left 13:08 fgomez joined 13:13 poincare101 joined 13:14 eviltwin_b joined, geekosaur left, eviltwin_b is now known as geekosaur 13:16 lutok left 13:21 fgomez left, fgomez joined
moritz masak: are we? example? 13:29
r: for 1..10 { die 'foo' }
p6eval rakudo dbcdb1: OUTPUT«foo␤ in block <anon> at /tmp/9Am3mG992v:1␤␤»
13:29 eviltwin_b joined, geekosaur left
moritz no eager/gimme/reify 13:29
13:29 eviltwin_b is now known as geekosaur
masak I'm getting it all the time in the script I'm writing. 13:32
I'll try and golf it.
13:33 isBEKaml joined
masak r: for ^1 { for ^1 { die "foo" } } 13:34
p6eval rakudo dbcdb1: OUTPUT«foo␤ in block <anon> at /tmp/JNHtXyA2qd:1␤ in method reify at src/gen/CORE.setting:4783␤ in method reify at src/gen/CORE.setting:4678␤ in method reify at src/gen/CORE.setting:4678␤ in method gimme at src/gen/CORE.setting:5065␤ in method eager at src/gen/CORE.…
masak moritz: two nested for loops. 13:35
moritz curious.
masak seems it can handle the one, but not two or more :)
and my script has two or more.
moritz I'll see if I can awesomify it
isBEKaml so... matrix operations always bomb? :)
moritz masak++ # actually using my code
masak moritz++ # making things incrementally better 13:36
moritz isBEKaml: no, you can matrix-operate with a single loop and multiple variables :-)
jnthn Also it's a bug in error reporting, not in nested loops. :)
moritz right, not dying also helps :-) 13:37
masak sometimes not dying isn't an option.
isBEKaml O.o(topic of all things philosophical suddenly takes form in #perl6!) 13:38
13:40 isBEKaml left
moritz jnthn: in Grammar.pm, can I access subroutines from Perl6::Actions? 13:40
13:40 isBEKaml joined, am0c left
moritz jnthn: in particular I think I need make_simple_code_object to evaluate the <arglist> of a use statement at compile time 13:40
jnthn moritz: Technically, if they're our-scoped, yes. BUT it feels...odd.
moritz: Ah... World feels a righter place. 13:41
(And make_simple_code_object arguably belongs in World anyway.)
moritz jnthn: should I rename it to create_simple_code_object? 13:45
jnthn: most world stuff seems to start with create_ instead of make_ 13:46
jnthn +1
I bet a bunch of $*W calls it does become self. too
moritz 3
jnthn Sounds about right. 13:47
13:49 geekosaur left 13:50 geekosaur joined 13:52 geekosaur left, eviltwin_b joined 13:53 eviltwin_b is now known as geekosaur, birdwind1pbird joined
tadzik hehe. My browser suggests daringfireball.net/projects/markdown/syntax#img when I tye in 'mark'. I should probably learn this syntax once and well 13:54
masak r: my %h1 = 1..4; my %h2 = 5..8; my %h = %h1, %h2; say %h.^name 13:59
p6eval rakudo dbcdb1: OUTPUT«Hash␤»
masak r: constant %h1 = 1..4; constant %h2 = 5..8; constant %h = %h1, %h2; say %h.^name 14:00
p6eval rakudo dbcdb1: OUTPUT«Parcel␤»
masak I just got bitten by this. I expected Hash in the second case, too.
tadzik r: my %h1 = 1..4; my %h2 = 5..8; my %h = %h1, %h2; say %h.perl
p6eval rakudo dbcdb1: OUTPUT«("1" => 2, "3" => 4, "5" => 6, "7" => 8).hash␤»
masak is my expectation wrong here? if so, why? what is it we enable by making %h a Parcel in the constant case?
jnthn masak: Remember that constants don't do the right kinda thing with % and @ just yet.
masak oh, so it's a NYI thing? 14:01
I'd like to note for the record that I expect the above two to both give Hash.
jnthn masak: Yeah. All my attempts to build a model that satisfies all the things people expect "constant" to do have failed. :/
masak jnthn: I can understand if it's tricky.
but here's what I expect: I expect it to work like 'my' :) 14:02
I'm interested to hear what other expectations that clashes with.
jnthn masak: Well, one view is "constants are really just binding the RHS under a name into the package"
masak r: constant %h1 = 1..4; constant %h2 = 5..8; constant %h = (%h1, %h2).hash; say %h.perl
p6eval rakudo dbcdb1: OUTPUT«("1" => 2, "3" => 4, "5" => 6, "7" => 8).hash␤»
masak r: constant %h1 = 1..4; constant %h2 = 5..8; constant %h = (%h1, %h2).hash; say %h.^name
p6eval rakudo dbcdb1: OUTPUT«Hash␤»
masak there's a workaround for now.
jnthn masak: Do %h1.^name to understand the issue :) 14:03
masak: Anyway, if they are just bindings then we never actually made a hash in the above example.
masak r: constant %h1 = 1..4; say %h1.^name
p6eval rakudo dbcdb1: OUTPUT«Range␤»
masak right, yes.
I expect that one to say Hash as well. 14:04
jnthn masak: TimToady seems to what that we have them be more container-ish.
masak: The upshot of JFDI on that one is that Hash is mutable...
masak yeah. we're running into unresolved container/mutability issues.
jnthn Right.
masak it's pretty clear that the spec is inconsistent there somewhere. 14:05
jnthn So basically, whichever way I change it out of the options I have in front of me seems to make things better in one way and worse in another. :)
I can try and do something like "we force it to be an EnumMap" or "we force it to be a List", I guess. 14:06
Anyway, I agree the current state is wrong.
moritz it's even RONG! :-) 14:08
jnthn Really 'orribly Not Good? :)
14:08 spider-mario left 14:17 birdwind1pbird left, eviltwin_b joined, geekosaur left, eviltwin_b is now known as geekosaur 14:19 noam left 14:20 noam joined
masak I'm having similar pains now, when assigning lists calculated with nested maps to an array. 14:21
when I do it with 'my', the array assignment flattens the lists, and everything works smoothly.
when I do it with 'constant', things don't flatten, and turn into unexpectednesses down the line.
14:25 lichtkind joined
lichtkind moritz: we gotta do something with faq.perl6.org/ 14:27
masak do what? 14:31
flussence it does look a little... rough 14:45
14:46 geekosaur left 14:47 geekosaur joined
masak there isn't enough padding in places, agreed. 14:47
lichtkind masak: i mean mostly the conent
wirs question i will soon better explain better in tablets
masak and the code bits could do with their own background color. (grey, preferably) 14:48
lichtkind and when i have a better FAQ i maybe should redirect there
masak lichtkind: well, this FAQ was created for very specific purposes. just make sure those purposes are not lost.
lichtkind masak: dont worry i incorporate it first 14:51
14:54 eviltwin_b joined, geekosaur left
isBEKaml lichtkind: I saw cowens coming around to tablets. Is he active here? I vaguely recall him working on revaming perldocs on the p5 doc list. 14:54
masak so, you're objecting against this FAQ being here, because your material explains things better, after you've incorporated this FAQ into your material?
isBEKaml masak: I think lichtkind means that content is a little sparse on perl6 faq. 14:55
14:55 allbery_b joined, allbery_b is now known as geekosaur
masak agreed. 14:58
14:58 eviltwin_b left
lichtkind isBEKaml: i didnt known this he just mad some small patches which were fine so far 15:02
isBEKaml: and the content is partiall random and partially doesnt belong there rather into docs 15:03
15:03 lutok joined
isBEKaml lichtkind: I was just pleasantly surprised to see him contributing to tablet docs. He had been incredibly helpful on perl beginners list and probably understands more perl than I can ever hope to. :) 15:04
lichtkind isBEKaml: good to know 15:05
15:06 eviltwin_b joined, geekosaur left, eviltwin_b is now known as geekosaur 15:11 penguin_ joined 15:12 penguin_ left, geekosaur left 15:13 geekosaur joined 15:17 eviltwin_b joined, geekosaur left, eviltwin_b is now known as geekosaur
lichtkind isBEKaml: but you dont have interest to contribute? 15:24
15:24 fglock_ joined
isBEKaml lichtkind: I'll be around. :) 15:24
lichtkind: Though TBQH, tablets wiki finally seems a lot better than the shitty perl.org's wiki formatting. 15:26
15:26 noam left 15:27 noam joined 15:28 noam left, noam joined, sisar joined
sisar tadzik: i'm sorry, but i'm not yet ready to hack on Panda yet. I need a bit more improvement of my P6-fu... that said, i'll surely get back to panda later. 15:30
masak let us know if we can assist with the P6-fu bit. 15:31
sisar masak: sure
masak: so i'm back to your June 2011 posts. On strangelyconsistent.org/blog/june-2...-connect-4 , variable "$current_player" is not predeclared, line 36. 15:32
masak oops 15:34
masak looks
indeed.
probably worked earlier due to a bug in b.
should work just by moving the declaration of $current_player to somewhere above 'sub input_move'. 15:35
sisar masak: yeah, i got that :)
masak I'll also make sure to fix it in the post. thanks for noticing.
sisar masak: no problem. while you are at it, you might also fix the hangamn code which I reported earlier as missing a ".IO" or something similar... 15:37
masak oh, yes. 15:38
sisar masak, neverming. You've already fixed it ! 15:39
*mind
JimmyZ_ r: 1, 1, 2, 3, 5 ... * > 30 15:40
p6eval rakudo dbcdb1: ( no output )
masak oh, good. 15:42
sisar masak, earlier "True" and "False" were called "Bool::True" and "Bool::False" ? 15:43
masak still are.
sisar ohk
masak they exist both under the package name Bool, and imported into your current namespace.
that holds true for user-defined enumerations, as well. 15:44
sisar ah, i see.
masak r: enum A <b c d e>; say A::c; say d
p6eval rakudo dbcdb1: OUTPUT«c␤d␤»
masak but yes, they've also recently changed so that .gist prefers the short form.
lichtkind isBEKaml: tablets are not wiki based any more 15:45
[Coke] Celelibi: I am Coke, and I condone your anti pepsi rhetoric. 15:47
15:47 geekosaur left
sisar masa: "June is Coming". Can we expect another streak of 30 perl6-tutorials-spiced-with-games ? 15:47
masak; ^
masak heh :)
15:48 geekosaur joined
masak well, I meant to spend a little bit of time each day in June 2012 cleaning up the material I wrote last year, supplying it with things that in retrospect turned out to be missing, etc. 15:48
preparing things for publishing.
15:48 Psyche^ joined
masak but... now I've allocated two vacation weeks in the beginning of June, and I don't expect to be bringing the laptop on vacation. so, it'll have to be some other month. maybe July :) 15:49
sisar oh, yeah sure, adding things to them might also be good. Just carry the same style: building things from ground up, assuming no previous knowledge. 15:51
[Coke] PerlJam++ # made a mental note to follow up on a scrollback comment, scrollforward slightly, he's already got it covered.
sisar I;m fine with July too
masak++
15:52 Patterner left, Psyche^ is now known as Patterner, geekosaur left, eviltwin_b joined
masak sisar: I'm happy to hear you're working through the posts. your feedback on them is valuable. 15:52
sisar :)
15:52 eviltwin_b is now known as geekosaur
masak sisar: the amount of stuff added in the last few posts is disproportionate. which is part of the reason why I want to go back and edit things. 15:53
sisar yeah, I agree. Things are not causal in the last posts. Like you talk of things you have not introduced yet. Revisiting them is a good idea. 15:54
15:54 noam left, noam joined
sisar masak: i did not have much problem with them though. 15:54
for example, on strangelyconsistent.org/blog/june-24-2011-types, you mention subroutine signatures, though you have not mentioned them before. 15:55
masak well, I'm talking mostly about the 27..30 posts. 15:56
[Coke] moritz: does nom+bs rhyme with zombies? 15:57
sisar ah, well. When you are polishing them, if you want a student's perspective, you know where to find me :)
masak \o/ 16:00
sisar .oO (inside everyone, there is a critic ;-) 16:01
moritz lichtkind: when questions are frequently asked, I answer them on faq.perl6.org. Contributions from others are very welcome too 16:02
masak & 16:06
moritz [Coke]: yes, if the "+" is silent :-)
16:07 geekosaur left, allbery_b joined, allbery_b is now known as geekosaur
dalek kudo/use-arglist: ff4843a | moritz++ | src/Perl6/Grammar.pm:
preparations for use with arglist
16:08
kudo/use-arglist: 3b5d78c | moritz++ | src/Perl6/ (3 files):
move make_simple_code_object to World, rename it to start with create_
moritz phenny: "arglist"?
phenny moritz: "malice" (de to en, translate.google.com)
jnthn :D 16:09
[Coke] HA!
arnsholt Oooh, use with arglist 16:10
moritz++
moritz arnsholt: only preparations so far
jnthn moritz: You know there's a make_thunk too? :) 16:11
16:11 eviltwin_b joined, geekosaur left, eviltwin_b is now known as geekosaur
moritz jnthn: no. I just stole the code from the 'constant' handler 16:11
jnthn: I guess make_thunk should be in World too? 16:12
16:16 isBEKaml left
sisar masa: "for example, on strangelycon...." <---- scratch that comment, i was wrong. 16:17
*masak
sisar afk
jnthn moritz: Yes, it's better if they're in the same place. 16:21
(More predictable.)
16:22 JimmyZ_ left 16:23 JimmyZ_ joined, JimmyZ_ left, JimmyZ_ joined
jnthn afk 16:27
16:32 zhutingting left
Celelibi <sisar> .oO (inside everyone, there is a critic ;-) <-- even inside your sistar ? That's awkward. 16:33
:)
16:33 birdwindupbird left
sisar :) 16:33
16:37 Timbus left 16:38 Timbus joined 16:40 Guest55778 left
moritz TIL that SGML was a simplification of GML 16:40
or standardization
considering that sgml isn't quite great, I shudder to think how GML must have been 16:43
JimmyZ_ postgresql uses sgml for documentation 16:44
moritz well, HTML (versions 1 to 4) is SGML, so that's not too surprising 16:45
JimmyZ_ hehe 16:46
16:52 sftp joined 16:54 JimmyZ_ left 16:56 xenu joined, xenu is now known as Guest44043 16:57 PacoAir joined
moritz en.wikipedia.org/wiki/Standard_Gene...r_features 16:57
16:58 geekosaur left 16:59 geekosaur joined 17:01 sergot left, GlitchMr left 17:02 sergot joined 17:13 tokuhirom joined
dalek kudo/use-arglist: ba1f23a | moritz++ | src/Perl6/ (3 files):
move make_thunk to World, as create_thunk
17:21
sorear good * #perl6 17:22
moritz good * sorear
17:24 eviltwin_b joined, geekosaur left, isBEKaml joined, eviltwin_b is now known as geekosaur
dalek rlito: 2f51501 | (Flavio S. Glock)++ | / (2 files):
Perlito5 - command line option -v message
17:35
fglock_ o/ 17:36
sorear o/ 17:45
17:47 eviltwin_b joined, geekosaur left, eviltwin_b is now known as geekosaur 17:52 geekosaur left
lichtkind continue is gone? 17:53
17:53 geekosaur joined
lichtkind how to i go to next when clause .nextsame? 17:53
moritz proceed iirc
17:58 geekosaur left, eviltwin_b joined 17:59 eviltwin_b is now known as geekosaur 18:02 eviltwin_b joined, geekosaur left 18:03 eviltwin_b is now known as geekosaur 18:06 brrt joined
lichtkind thank you 18:07
18:08 geekosaur left, eviltwin_b joined 18:09 eviltwin_b is now known as geekosaur 18:11 au joined 18:12 eviltwin_b joined, geekosaur left
lichtkind moritz: break is also asay? 18:12
ahhh i mena away
18:12 eviltwin_b is now known as geekosaur 18:18 mucker joined 18:19 mucker left
moritz hm, the thunk that should evaluate the arglist is a Code object, but invoking it gives me "Method 'postcircumfix:<( )>' not found for invocant of class 'Bool'" 18:20
18:21 geekosaur left, eviltwin_b joined, eviltwin_b is now known as geekosaur
lichtkind moritz: i ask becasue i didnt found it but just want to get sure 18:23
didnt found in synopses 18:24
moritz succeed I think 18:27
18:27 birdwindupbird joined
moritz I mean, 'break' is now called 'succeed' 18:27
lichtkind moritz: thats how i read it too, i just want to be sure when recrafting this area 18:29
tadzik 'evening 18:31
18:31 ggoebel left 18:32 ggoebel joined
jaffa4 How woild you repeated matching in niecza? 18:33
lichtkind hai tadzik
18:37 kaare__ is now known as kaare_ 18:46 NamelessTee left 18:54 geekosaur left, eviltwin_b joined, eviltwin_b is now known as geekosaur
dalek blets: 4fb608a | (Herbert Breunung)++ | README.md:
reform how to help section
18:57
blets: 6219e26 | (Herbert Breunung)++ | README.md:
new formating rules
blets: fcd1f99 | (Herbert Breunung)++ | docs/tablet-4-operators.txt:
Merge branch 'master' of github.com:perl6/tablets
blets: 28b45aa | (Herbert Breunung)++ | docs/ (4 files):
update jump command and massive ongoong link format fix
18:59 NamelessTee joined 19:02 eviltwin_b joined, geekosaur left, eviltwin_b is now known as geekosaur 19:06 geekosaur left 19:07 geekosaur joined
dalek rlito: 2d338cf | (Flavio S. Glock)++ | / (8 files):
Perlito5 - javascript: add sprintf(), printf()
19:18
19:20 wamba joined 19:22 eviltwin_b joined, geekosaur left, eviltwin_b is now known as geekosaur 19:28 autark joined 19:35 geekosaur left, eviltwin_b joined, eviltwin_b is now known as geekosaur 19:45 brrt left 19:47 kaare_ left 20:02 jaffa4 left 20:04 adu joined 20:18 adu left 20:21 eviltwin_b joined, geekosaur left, eviltwin_b is now known as geekosaur 20:30 geekosaur left, geekosaur joined 20:32 tokuhirom left 20:37 wamba left 20:41 wolfman2000 left
dalek blets: 0eb0ce1 | gerdr++ | docs/tablet-2-basic-syntax.txt:
minor correction UTF-8 <-> Unicode
20:53
blets: 2df5fcf | (Tomasz Konojacki)++ | docs/tablet-2-basic-syntax.txt:
Merge pull request #5 from gerdr/patch-1

minor correction UTF-8 <-> Unicode
lichtkind phew 21:03
dalek blets: 9df26e8 | (Herbert Breunung)++ | docs/appendix- (2 files):
major reformat is finally over
21:06
blets: f749de1 | (Herbert Breunung)++ | docs/tablet-2-basic-syntax.txt:
Merge branch 'master' of github.com:perl6/tablets
blets: fe53478 | (Herbert Breunung)++ | README.md:
added gerdr++ to authors list
21:08
21:08 dorlamm joined 21:16 jferrero joined 21:17 lutok left 21:18 lutok joined
lichtkind can you hear that !!!! i reworted over 1000 links hulk!! 21:19
21:20 raiph joined
sorear lichtkind++ 21:22
21:23 alvis` left
raiph hi all 21:24
lichtkind++
sorear hello raiph
lichtkind thanks 21:25
its alsmost as i have bithday :)
birthday
bit its late :) 21:26
21:26 birdwindupbird left
sergot lichtkind++ 21:31
lichtkind i had yesterday :9 21:32
thanks :)
tadzik yay, happy birthday lichtkind!
21:32 eviltwin_b joined, geekosaur left, eviltwin_b is now known as geekosaur
lichtkind :) 21:32
raiph happy day after b'day lichtkind 21:37
lichtkind thank you 21:38
sergot lichtkind: happy birthday! \o/ 21:39
lichtkind :)
sergot :)
And good night everyone! o/
21:39 Chillance left 21:40 erkan left, Chillance joined 21:43 sergot left, eviltwin_b joined, geekosaur left, eviltwin_b is now known as geekosaur 21:45 spaceships left
lichtkind good night 21:48
sorear night 21:50
21:52 dorlamm left 21:55 adu joined 21:57 eviltwin_b joined, geekosaur left, eviltwin_b is now known as geekosaur 21:58 kaare_ joined 22:00 adu left 22:05 felher joined 22:17 thelazydeveloper left 22:21 thelazydeveloper joined
dalek blets: 20e2c64 | (Herbert Breunung)++ | docs/report.pl:
added shebang to report script
22:26
blets: 1211ee2 | (Herbert Breunung)++ | docs/report.pl:
not counting empty lines
blets: 52a8253 | (Herbert Breunung)++ | docs/appendix-h-links.txt:
update links
22:28 kaare_ left
dalek blets: 3237594 | (Herbert Breunung)++ | docs/ (2 files):
repairing minor format issues
22:55
22:59 lestrrat left 23:00 lestrrat joined 23:07 geekosaur left 23:08 eviltwin_b joined, eviltwin_b is now known as geekosaur, ab5tract left 23:15 geekosaur left 23:17 geekosaur joined 23:18 alvis joined
dalek blets: 6127a13 | (Herbert Breunung)++ | docs/build-html.pl:
dont numerate headings
23:18
23:27 eviltwin_b joined, geekosaur left, eviltwin_b is now known as geekosaur 23:30 eviltwin_b joined, geekosaur left, eviltwin_b is now known as geekosaur 23:33 eviltwin_b joined, geekosaur left, eviltwin_b is now known as geekosaur 23:36 eviltwin_b joined, geekosaur left, eviltwin_b is now known as geekosaur, lichtkind left 23:49 isBEKaml left 23:56 eviltwin_b joined, geekosaur left 23:57 eviltwin_b is now known as geekosaur