Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2012-07-23

Perl 6 | Reference Documentation | Rakudo

| Channels | #perl6 index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

Time Nick Message
00:08 gfldex moritz, japhb: i had my own shot at search for doc using some fancy html5 stuff: https://github.com/gfldex/perl6-doc
00:08 gfldex you may want to nick some ideas
00:10 lichtkind gfldex: i will steal all your good docs !!!
00:10 gfldex but but but i did not do any doc stuff!
00:11 gfldex but if i did you could search for them in a fancy html5 way :)
00:11 gfldex and i learned a relyable way to crash firefox :D
00:12 gfldex var worker = new Worker; console.log(worker);
00:12 lichtkind gfldex: is that some special ff functionality?
00:12 lichtkind gfldex: hwat you mean search in html 5 way?
00:13 lichtkind sinc etablets are mostly html now i could use that
00:14 gfldex lichtkind: https://developer.mozilla.org/en/Using_web_workers
00:14 gfldex does that mean i could crash your fancy tablet? :->
00:16 lichtkind gfldex: its just a webpage
00:17 gfldex if your OS is a brower crashing that browser (see Chrome OS) becomes fairly annoying
00:17 lichtkind i see thanks
00:17 lichtkind gfldex: i switched to mint
00:17 lichtkind and use only ff and opera
00:22 lichtkind gfldex:  i check you project later or you maybe can write a blog post when you have results
00:23 gfldex i love to make propaganda, will do that tomorrow
00:48 lichtkind gfldex: good and good night
00:58 am0c joined #perl6
01:40 woosley joined #perl6
02:00 am0c joined #perl6
02:07 cognominal__ joined #perl6
02:08 plutoid joined #perl6
02:15 orafu joined #perl6
02:28 jaldhar joined #perl6
02:36 dalek roast: e008bab | coke++ | S03-operators/short-circuit.t:
02:36 dalek roast: pugs fudge
02:36 dalek roast: review: https://github.com/perl6/roast/commit/e008bab48f
02:37 Psyche^ joined #perl6
02:39 dayangkun joined #perl6
02:41 tokuhiro_ joined #perl6
03:04 crab2313 joined #perl6
03:16 sudokode joined #perl6
04:13 crab2313 joined #perl6
04:23 plutoid joined #perl6
04:25 daniel-s joined #perl6
04:46 moritz \o
04:50 daniel-s__ joined #perl6
04:55 kaare_ joined #perl6
05:02 diakopter o/\
05:02 moritz gfldex: I've given you commit access to perl6/doc/, I'm too lazy to maintain forks :-)
05:03 moritz flussence: will look at your search stuff soon
05:10 moritz sorry, meant gfldex again
05:10 moritz sorry, meant gfldex againä
05:10 * moritz not quite awake
05:14 moritz gfldex: btw it's OK to depend on JSON::Tiny in htmlify
05:22 moritz r: module A { our sub f { } }; say &A::f.package
05:22 p6eval rakudo 3ac8c7: OUTPUT«A()␤»
05:33 crab2313 joined #perl6
05:41 birdwindupbird joined #perl6
05:47 kaleem joined #perl6
05:57 nodmonkey joined #perl6
06:00 adu joined #perl6
06:01 raiph joined #perl6
06:03 moritz fwiw the test summary from the toqast spectest still doesn't fit on a single screen page here
06:04 moritz so I'm a bit surprised people are already module-smoking with it
06:05 tadzik the smoke results aren't too bad
06:05 tadzik http://tjs.azalayah.net/index.html
06:09 moritz that's the really surprising part :-)
06:09 benabik Perhaps it means we've only scratched the surface of the true power of perl 6?  :-D
06:11 wtw joined #perl6
06:17 zhutingting joined #perl6
06:18 DarthGandalf joined #perl6
06:27 kresike joined #perl6
06:27 kresike good morning all you happy perl6 people
06:27 tadzik hey hey kresike
06:28 kresike hello tadzik o/
06:30 * tadzik commutees
06:35 dbr joined #perl6
06:36 GlitchMr joined #perl6
06:50 Ex joined #perl6
06:55 cognominal joined #perl6
07:00 snearch joined #perl6
07:14 SamuraiJack joined #perl6
07:20 dalek doc: bc2f16f | raiph++ | lib/Complex.pod:
07:20 dalek doc: fix typos
07:20 dalek doc: review: https://github.com/perl6/doc/commit/bc2f16faf7
07:23 dalek doc: 530ae1a | raiph++ | lib/Cool.pod:
07:23 dalek doc: typos
07:23 dalek doc: review: https://github.com/perl6/doc/commit/530ae1a56f
07:26 pjcj joined #perl6
07:27 raiph joined #perl6
07:32 dalek doc: ff444c5 | raiph++ | lib/Duration.pod:
07:32 dalek doc: grammaros
07:32 dalek doc: review: https://github.com/perl6/doc/commit/ff444c5752
07:33 dalek joined #perl6
07:35 plobsing joined #perl6
07:36 nodmonkey joined #perl6
07:38 dalek doc: 6a5c446 | raiph++ | lib/EnumMap.pod:
07:38 dalek doc: typos
07:38 dalek doc: review: https://github.com/perl6/doc/commit/6a5c4469c1
07:40 dalek doc: d6d28f0 | raiph++ | lib/Exception.pod:
07:40 dalek doc: typo
07:40 dalek doc: review: https://github.com/perl6/doc/commit/d6d28f0382
07:42 drbean joined #perl6
07:51 cosimo_ joined #perl6
07:52 dalek doc: ed534a5 | raiph++ | lib/Hash.pod:
07:52 dalek doc: typos (did "literal string keys" <> fix work?)
07:52 dalek doc: review: https://github.com/perl6/doc/commit/ed534a594f
07:55 drbean joined #perl6
07:56 daxim joined #perl6
07:58 drbean joined #perl6
07:59 larks joined #perl6
08:06 jnthn morning o/
08:06 zhutingting joined #perl6
08:07 am0c morning!
08:08 jnthn hi am0c! :)
08:08 am0c hi jnthn! o/
08:16 dalek doc: 9ad3bd4 | raiph++ | lib/IO.pod:
08:16 dalek doc: typos, grammaros, more consistent filetest list.
08:16 dalek doc: review: https://github.com/perl6/doc/commit/9ad3bd4018
08:19 moritz \o
08:19 moritz raiph++ # doc editing
08:32 jnthn moritz: I'm curious to see the test output you get, to check it against mine.
08:33 jnthn moritz: It's more than one page here also. But a lot of test files have just one or a small number of tests failing.
08:40 masak morning! o/
08:40 * masak .oO( man, I wake up after jnthn... what's the world coming to? ) :P
08:51 arnsholt jnthn: Mind if I change the void * pointers in the rf of REGISTER_DYNAMIC_REPR to the correct function pointer types?
08:52 arnsholt I'm trying to squash as many warnings as possible =)
08:52 fhelmberger joined #perl6
08:55 jnthn arnsholt: Should be fine.
09:07 bbkr joined #perl6
09:13 arnsholt Cool
09:14 arnsholt I'll typedef the types, so it should simplify the types of the wrap_object/create_stable pointers in the REPRs as well
09:20 moritz jnthn: the beginning isn't in my scroll buffer anymore, rest is at http://perlpunks.de/paste/show/500d1738.5257.1dc
09:24 crab2313 joined #perl6
09:24 jnthn Oddness... t/spec/S32-io/IO-Socket-INET.t and t/spec/integration/error-reporting.rakudo pass here.
09:27 dakkar joined #perl6
09:31 * masak .oO( t/spec/S32-io/IO-Socket-INET.t *passing*? yeah, something must be wrong then )
09:33 jnthn masak: Huh? It's tended to be a reliable pass on Windows for ages. :)
09:35 moritz jnthn: I have occasional failures in that test file on that machine, so nothing to worry about yet
09:35 masak yeah, I was on a slight hyperbola.
09:35 jnthn You're ALWAYS on a slight hyperbola!
09:36 moritz jnthn: http://perlpunks.de/paste/show/500d1b1c.18ac.2d8
09:37 jnthn oh...it's line numbers.
09:37 jnthn Ah...yeah, I'm not passing annotations on down to POST yet, no wonder... :)
09:37 masak jnthn: I'm unsure whether to take that as a scathing insult or a heartfelt compliment :P
09:37 masak since I'm on a hyperbola anyway, I'll do both.
09:37 moritz jnthn: and those tests still pass on your machine?
09:38 * masak asymptotically approaches some infinities
09:38 jnthn moritz: Oh, it doesn't pass here.
09:38 jnthn moritz: It doesn't *run* here 'cus it is marked as #icu
09:39 moritz jnthn: ah
09:39 jnthn moritz: I really meant "it's not in my list of failing tests"...from the name it didn't seem likely to be a #icu one. :)
09:39 jnthn masak: It was a crappy attempt at an autopun akshually :P
09:40 masak oh!
09:40 masak :)
09:40 * mathw approves at jnthn blog mentioning bubble contexts
09:41 mathw masak++ is Zeno's hacker
09:42 Guest61847 joined #perl6
09:42 Guest61847 hi
09:42 masak hi, Guest61847.
09:43 masak mathw: url?
09:43 moritz mathw: which blog?
09:44 moritz oh, http://blog.edument.se/2012/07/23/insights-from-dddx-2012-part-2/
09:44 moritz twitter to the rescue
09:44 masak oh! haven't read that one yet.
09:45 Guest61847 just a fast question how do I extract matches in perl6 (ie perl5's m/(whatever)/ that goes in $n)
09:45 * masak .oO( it's in a different bubble context to this channel ) :)
09:45 hoelzro Guest61847: try $/
09:45 masak r: my $x = "foo"; $x ~~ /(fo)/; say $0
09:45 p6eval rakudo 3ac8c7: OUTPUT«q[fo]␤␤»
09:45 masak Guest61847: like that.
09:45 hoelzro it's the "last match" variable
09:46 hoelzro oh, I didn't realize that $N were still around
09:46 jnthn Yes, but they start at 0 like every other array index in Perl 6. :)
09:46 masak hoelzro: it's just an alias for $/[N]
09:47 mattp_ joined #perl6
09:48 moritz so you can say $/[*-1] for the last submatch
09:49 Guest61847 thanks :D
09:50 masak and if you have nested parentheses, the matches will end up nested in $/
09:50 mathw r: my $x = "foo"; my $m = $x ~~ /(fo)/; say $m.WHAT; say $m[0];
09:50 p6eval rakudo 3ac8c7: OUTPUT«Match()␤q[fo]␤␤»
09:51 mathw ooh
09:51 masak r: my $x = "abcdef"; $x ~~ /ab(c(de)f)/; say $/[0]; say $/[0][0]
09:51 p6eval rakudo 3ac8c7: OUTPUT«q[cdef]␤ 0 => q[de]␤␤q[de]␤␤»
09:51 masak r: my $x = "abcdef"; $x ~~ /ab(c(de)f)/; say ~$/[0]; say ~$/[0][0]
09:51 p6eval rakudo 3ac8c7: OUTPUT«cdef␤de␤»
09:51 mathw r: my $x = "foo"; my $m = $x ~~ /(fo)/; say $m.WHAT; say ~$m[0];
09:51 p6eval rakudo 3ac8c7: OUTPUT«Match()␤fo␤»
09:52 mathw Guest61847: and you can save the Match object in another variable if you want to keep it around.
09:52 zhutingting left #perl6
10:03 moritz woah, http://perl6maven.com/introduction-to-perl6/ looks quite impressive
10:06 jnthn wow!
10:07 BinGOs but is is finished *duck*
10:08 jnthn maybe not, but it still looks useful *goose*
10:08 BinGOs >:)
10:08 GlitchMr http://perl6maven.com/authors
10:08 masak *swan*
10:08 GlitchMr wait... why I am in authors?
10:09 BinGOs Show me on the doll where Perl6 touched you.
10:09 GlitchMr And why this list is not sorted case insensitive
10:09 masak GlitchMr: maybe you contributed three dots somewhere or other.
10:09 tadzik I am there too, and looks like it's because the site links to my code: http://perl6maven.com/a/tadzik
10:09 tadzik http://perl6maven.com/projects
10:10 GlitchMr Is it based on GitHub nick?
10:10 masak looks like.
10:10 GlitchMr Also, I think I made two modules, but whatever
10:11 mathw even I'm there, presumably because I wrote form
10:11 tadzik we're famous!
10:11 mathw must add something to that again soon, but I'm in Perl 5 mode at the moment
10:12 mathw hard enough to remember to put the parens around if conditions as it is
10:12 tadzik I'm more in Perl 5 mode these days too, but context switching isn't that bad :)
10:12 flussence just make them all postfix :)
10:12 GlitchMr Also, heh, I'm one of those guys which have uppercase characters in names
10:12 mathw had a weird bug last week, turned out to be caused by me putting hyphens in an identifier. It's not like I know any other languages that allow you to do that, but Perl 6 has baked itself so much into my head
10:12 moritz these days I usually remember to use the $ sigil in p5 when accessing elements of a hash, and then try to write $h<foo>;
10:12 tadzik http://perl6maven.com/introduction-to-perl6/perl6-proto -- this probably needs to be reviewed
10:13 mathw moritz: I've been trying to use pointies too
10:13 masak context-switching gets easier the more one does it.
10:13 GlitchMr I have it other way. In Perl 6, I usually type $hash<abc> when I want %hash<abc> :P
10:13 mathw masak: true. Also true in music.
10:13 masak and in a way it's useful to stumble on the differences between Perl 5 and Perl 6. it informs one's use of both. :)
10:13 masak GlitchMr: why you store your hash in a scalar... oh.
10:13 mathw yeah but then I get annoyed that I can't write "if $magic-fairies-count > 4"
10:14 masak is there a source filter yet that allows dashes in Perl 5 code? :P
10:14 mathw "if ($magic_fairies_count > 4)" clunky
10:15 GlitchMr Well, there is always ${'magic-fairies-count'} hack, but
10:15 GlitchMr 1) It's a hack
10:15 GlitchMr 2) It doesn't work under "use strict"
10:16 moritz I slowly realize that I want a statically typed sister language to Perl 6
10:16 moritz one that allows me to use roles and grammars and meta ops
10:17 moritz but with much more type safety than perl 6 is designed to provide
10:17 moritz and maybe less type dwimmery (no list methods in Any etc.)
10:18 gfldex i'm building rakudo under cygwin and got a strange error message
10:18 gfldex 0 [main] pbc_to_exe 3176 child_info_fork::abort: address space needed by 'os.dll' (0x160000) is already occupied
10:18 gfldex Can't spawn child process
10:19 gfldex any guesses what that could mean?
10:20 * moritz hilights rurban who knows a lot about cygwin
10:22 seldon joined #perl6
10:26 not_gerd joined #perl6
10:26 not_gerd hello, #perl6
10:27 not_gerd gfldex: welcome to the joys of Cygwin's fork emulation
10:27 not_gerd you need to rebase your DLLs
10:29 mucker joined #perl6
10:30 mathw moritz: I might like such a language, but then I think actually why nhot just learn haskell
10:32 moritz mathw: I'd like that too, but somehow I'm having trouble with it every time I try
10:33 moritz mathw: I mean, it sounds all logical what the books write, and then they say that I don't need to understands monads early on to write some programs, just use them like *this*, and then I try with a similar example and get a type error
10:34 moritz so I never got over the hump where you can actually start do solve problems (even simple problems) with haskell
10:34 moritz and thus my motivation slowly fades away
10:35 moritz and my daughter carries "Real World Haskell" to another corner of the room, and I forget about it
10:40 moritz on a related note, on feeling stupid: http://jcs.biologists.org/content/121/11/1771.full
10:43 seldon Haskell is too pure to be useful, in my opinion. There are problems it can solve very elegantly, but there are also problems that cannot be solved in Haskell by people who value their sanity. Big tasks tend to include both types.
10:43 seldon Give me grubby languages that look less pretty but have everything I need.
10:44 masak "too pure to be useful" could be said to be the core issue of LISP, as well. no doubt users of actual Lisps will disagree, though.
10:44 mathw The practicality of Haskell seems to go up a lot if you grok monads and applicative functors.
10:44 mathw masak: lisp is pure syntactically, not semantically
10:45 seldon LISP compromises in the right places.
10:45 moritz one approach I take quite often is to build some functions which internally use mutable stable, but from the outside are pure
10:46 moritz is there a nice encapsulation for that in Haskell?
10:46 mathw there are a handful of libraries which do that
10:46 mathw unsafePerformIO :: IO a -> a
10:46 mathw lets you do more or less anything you want
10:46 mathw however
10:46 moritz however.
10:46 moritz I meant, a proper solution
10:46 mathw 'unsafe' isn't put in trivially
10:46 mathw the proper way is to use the IO monad
10:47 moritz mathw: the if I use the IO monad, my function looks differently from the outside, no?
10:47 mathw yes
10:47 moritz s/the/but/
10:47 moritz but I don't want that. I only want to use the mutable state *INTERNALLY*
10:47 mathw you can't
10:47 moritz like, a hash table that never leaks to the outside
10:48 mathw introducing mutable state also introduces a dependency on ordering
10:48 mathw pure Haskell code does not have a dependency on ordering
10:48 seldon init on first use kind of thing?
10:48 moritz seldon: more like "count the number of times each character is used in a string"
10:48 moritz how'd you do it in perl?
10:49 masak mathw: I think I could make a case for Lisp being quite pure semantically... it has *seven* primitives with which you can define a full metacircular interpreter in half a page of code.
10:49 moritz sub c(Str $x) { my %chars; %chars{$_}++ for $x.comb; return %chars.pairs }
10:49 moritz that's a pure function
10:49 moritz but it relies pretty heavily on *internal* mutable state
10:49 mathw length $ filter (==c)
10:49 mathw oh each character
10:49 mathw hmm
10:50 mathw have to think about that one a little longer
10:50 moritz and that's a pattern I'm very much use to
10:50 moritz and I don't see a good reason why such a function should have a monad in its signature
10:54 mathw okay here's one way to do it
10:54 mathw foldr (\l m -> insertWith (\n _ -> n + 1) l 1 m) (Data.Map.empty :: Map Char Int)
10:55 mathw that's actually the same kind of thing going on, just with pure data structures
10:55 mathw it returns a Data.Map of characters to character counts
10:55 mathw Haskell requires you to think quite differently, I think that's where most people have serious trouble with it
10:56 mathw Drives me up the wall sometimes, I'll admit
10:58 moritz mathw: so the answer is "you just have to find a different solution to your problem"?
10:59 mathw yes
10:59 moritz and, forgive me the heretic question, is the code efficient?
10:59 mathw that's the answer to most Haskell questions
11:00 moritz it looks like it just creates a new copy of the map for each character
11:00 mathw it does
11:00 mathw theoretically anyway
11:00 seldon That's usual in FP. I'd be surprised if it weren't optimised away.
11:00 mathw in reality, the Map library is very smart and each 'copy' is just the same Map with a few nodes shifted around
11:01 mathw and yes, the compiler's designed to optimise that sort of thing as much as it can
11:01 mathw I'd be surprised if it was all that much worse than a mutable perl-style hash
11:02 mathw it might even be faster
11:02 moritz that woud surprise me
11:03 moritz perl 5's hashes are... quite fast
11:03 mathw yeah that's why I said 'might'
11:03 mathw let's find out!
11:03 seldon You'd not actually need a hash for this, mind you.
11:04 not_gerd stackoverflow came up with toList $ fromListWith (+) [(c, 1) | c <- input]
11:04 mathw neat
11:04 mathw that probably boils down to the same code I wrote
11:05 mathw apart from the toList, that would give you a slightly different kind of answer
11:05 mathw but it's just returning a list of pairs instead of the Map
11:08 moritz https://gist.github.com/3163118
11:08 moritz I don't mind the exact output format
11:11 snearch joined #perl6
11:11 mathw okay
11:12 mathw I'm having a slight delay while CPAN has a hissy fit (new system, my Perl environment isn't really right yet)
11:13 mathw should've installed cpanminus already I know
11:15 flussence r: ([..] <a z>).roll(256).classify(*.ord).map({ $^c.key.chr => +$^c.value }).hash.perl.say
11:15 p6eval rakudo 3ac8c7: OUTPUT«("e" => 15, "i" => 12, "v" => 12, "z" => 11, "g" => 6, "c" => 10, "x" => 8, "n" => 9, "h" => 10, "l" => 14, "q" => 9, "o" => 10, "r" => 10, "f" => 14, "p" => 13, "t" => 7, "u" => 10, "a" => 10, "b" => 6, "j" => 9, "w" => 8, "y" => 11, "m" => 11, "d" => 8, "k" => 5,…
11:20 sergot joined #perl6
11:20 sergot hi o/
11:20 masak sergocie! \o/
11:21 seldon moritz: That's 20 runs, do I read that correctly?
11:23 moritz seldon: yes
11:23 seldon That's pretty slow.
11:23 moritz and it's the contents of rakudo's README, repeated 100 times
11:24 moritz so, 400k characters
11:24 seldon Yeah, but I get 5000 runs in the same time doing the same thing in C++.
11:25 arnsholt jnthn: Two questions. 1) Will box_funcs->get_str always return the same STRING * for our current Str type(s)? And 2) Parrot_str_to_encoded_cstring always return the same char *, given a STRING * and an encoding?
11:27 seldon http://codepad.org/hXZ9PYK0 <-- code for reference. Requires -std=c++11, tested with gcc 4.7 and -O3
11:29 seldon It's much worse with a hashtable, but still 350 reps in the same time.
11:31 sergot joined #perl6
11:33 Gesh joined #perl6
11:34 mathw okay my original way ploughs straight through the default stack size limits
11:34 mathw but the variant not_gerd found on stack overflow behaves itself
11:35 mathw although I just realised that it's probably doing the read-run-print cycle in 0.42 seconds because it's only actually counting the characters once
11:36 mathw yes, changing it to only try once is precisely the same speed
11:37 mathw I'm not actually sure how to persuade it to re-evaluate
11:37 mathw the compiler's probably taking one look at the function call and saying "I know the answer to that, I did it just now"
11:38 jnthn arnsholt: What do you mean by "the same"?
11:38 seldon Can I see the code? I may have an idea.
11:38 jnthn arnsholt: Same chunk of memory, or same vaue?
11:38 jnthn *value
11:40 * mathw should do some work really
11:41 arnsholt Good point. Same pointer, is what I'm after
11:41 jnthn arnsholt: I think 1 is certainly a "yes" though in so far as Str is immutable, so the underlying STRING* will not change.
11:41 jnthn arnsholt: 2 - I think it makes a new char* per call.
11:41 seldon mathw: https://xkcd.com/303/
11:41 arnsholt Right. That's a bit annoying
11:42 arnsholt While killing warnings in the dyncall ops I've discovered that the CStruct and CArray write barrier functions don't actually handle the string case
11:45 JimmyZ joined #perl6
11:48 spider-mario joined #perl6
11:48 mathw seldon: yeah I know, but work is Perl today
11:48 seldon Oh. Carry on, then.
11:49 kresike bye all
11:50 snearch_ joined #perl6
11:52 mathw it's okay, I just landed a new feature, and will reward myself with lunch.
12:00 gaber_ joined #perl6
12:06 gfldex i solved my cygwin problem
12:06 masak \o/
12:06 gfldex cygwin comes with a script called rebaseall that wants to be run
12:09 zb joined #perl6
12:10 daxim joined #perl6
12:10 birdwindupbird joined #perl6
12:10 erkan joined #perl6
12:10 pyrimidine joined #perl6
12:10 sorear joined #perl6
12:10 shachaf joined #perl6
12:10 lumi_ joined #perl6
12:10 Exodist joined #perl6
12:10 c1sung joined #perl6
12:10 baest joined #perl6
12:10 pnu joined #perl6
12:16 spider-mario_ joined #perl6
12:17 xinming joined #perl6
12:20 JimmyZ_ joined #perl6
12:21 gfldex r: https://gist.github.com/3163332
12:21 p6eval rakudo 3ac8c7: OUTPUT«===SORRY!===␤invoke() not implemented in class 'Capture'␤»
12:21 gfldex i can haz line numbor?
12:21 gfldex n: https://gist.github.com/3163332
12:21 p6eval niecza v19-13-g442e075: OUTPUT«[31m===[0mSORRY![31m===[0m��Action method fakesignature not yet implemented at /tmp/iXUHzC0mJ6 line 1:�------> [32mmulti a(&callback:(:$before, *@params[33m�[31m)) {[0m��Action method sigterm not yet implemented at /tmp/iXUHzC0mJ6 line 1:�------> …
12:21 gfldex std: https://gist.github.com/3163332
12:22 p6eval std 3b49ac8: OUTPUT«Use of uninitialized value in string eq at STD.pm line 65720.�Use of uninitialized value in string eq at STD.pm line 65721.�Use of uninitialized value in string eq at STD.pm line 65720.�Use of uninitialized value in string eq at STD.pm line 65721.�[31m===[0mSORRY!…
12:22 gfldex i feel a bit guilty now :)
12:22 birdwindupbird joined #perl6
12:22 erkan joined #perl6
12:22 pyrimidine joined #perl6
12:22 sorear joined #perl6
12:22 shachaf joined #perl6
12:22 lumi_ joined #perl6
12:22 Exodist joined #perl6
12:22 c1sung joined #perl6
12:22 baest joined #perl6
12:22 pnu joined #perl6
12:23 jnthn gfldex: The Rakudo error looks like you managed to explode the compiler.
12:25 gfldex r: https://gist.github.com/3163332
12:25 p6eval rakudo 3ac8c7: OUTPUT«===SORRY!===␤invoke() not implemented in class 'Capture'␤»
12:25 spider-mario_ joined #perl6
12:25 gfldex well, that typo was not the problem then
12:25 moritz seldon: ah, while the hash tables are fast in perl 5, the loops are slow-ish compared to C/C++
12:26 seldon *that* slow-ish?
12:27 hoelzro masak++
12:28 hoelzro # for being brave enough to talk about Perl 6 on #ruby
12:29 tadzik {_
12:29 tadzik :)
12:30 moritz seldon: yes
12:30 seldon Huh.
12:30 moritz seldon: there's a reason it's considered a valid optimization to rewrite tight loops in C
12:31 masak hoelzro: it's going rather well :)
12:32 masak those are nice people.
12:33 GlitchMr eval: say ([1, 2] => [3, 4]){[1, 2]}
12:33 buubot_backup GlitchMr: ERROR: syntax error at (eval 20) line 1, near "){"
12:34 GlitchMr perl6: ([1, 2] => [3, 4]){[1, 2]}
12:34 p6eval rakudo 3ac8c7:  ( no output )
12:34 p6eval ..niecza v19-13-g442e075: OUTPUT«Unhandled exception: Cannot use hash access on an object of type Pair␤  at <unknown> line 0 (ExitRunloop @ 0) ␤  at /home/p6eval/niecza/lib/CORE.setting line 354 (Any.at_key @ 9) ␤  at <unknown> line 0 (ExitRunloop @ 0) ␤  at /tmp/mEn43wyYvy line 1 (mainli…
12:34 GlitchMr perl6: say ([1, 2] => [3, 4]){[1, 2]}
12:34 p6eval niecza v19-13-g442e075: OUTPUT«Unhandled exception: Cannot use hash access on an object of type Pair␤  at <unknown> line 0 (ExitRunloop @ 0) ␤  at /home/p6eval/niecza/lib/CORE.setting line 354 (Any.at_key @ 9) ␤  at <unknown> line 0 (ExitRunloop @ 0) ␤  at /tmp/JxUNT3cFj2 line 1 (mainli…
12:34 p6eval ..rakudo 3ac8c7: OUTPUT«3 4␤»
12:34 hoelzro masak: they tease a little bit, but they're not too bad, no =)
12:36 gfldex r: sub a(&callback:(@params)) {}
12:36 p6eval rakudo 3ac8c7: OUTPUT«===SORRY!===␤invoke() not implemented in class 'Capture'␤»
12:36 gfldex golfed :)
12:36 gfldex std: sub a(&callback:(@params)) {}
12:36 p6eval std 3b49ac8: OUTPUT«Use of uninitialized value in string eq at STD.pm line 65720.â�¤Use of uninitialized value in string eq at STD.pm line 65721.â�¤Potential difficulties:â�¤  callback:(@params):: is declared but not used at /tmp/BbSft47vkA line 1:â�¤------> [32msub a(&callback:(@params)) {}[…
12:37 gfldex the @param is optional too
12:40 GlitchMr perl6: my $pair = [1, 2] => [3, 4], [1] => [3]; say $pair{[1, 2], [1]};
12:40 p6eval niecza v19-13-g442e075: OUTPUT«Unhandled exception: Cannot use hash access on an object of type Pair␤  at <unknown> line 0 (ExitRunloop @ 0) ␤  at /home/p6eval/niecza/lib/CORE.setting line 354 (Any.at_key @ 9) ␤  at <unknown> line 0 (ExitRunloop @ 0) ␤  at /tmp/sON_TykwY2 line 1 (mainli…
12:40 p6eval ..rakudo 3ac8c7: OUTPUT«3 4 Mu()␤»
12:40 GlitchMr perl6: my $pair = [1, 2] => [3, 4], [1] => [3]; say $pair<1 2>;
12:40 p6eval niecza v19-13-g442e075: OUTPUT«Unhandled exception: Cannot use hash access on an object of type Pair␤  at <unknown> line 0 (ExitRunloop @ 0) ␤  at /home/p6eval/niecza/lib/CORE.setting line 354 (Any.at_key @ 9) ␤  at <unknown> line 0 (ExitRunloop @ 0) ␤  at /tmp/Ocu5qDN6J8 line 1 (mainli…
12:40 p6eval ..rakudo 3ac8c7: OUTPUT«Mu() Mu()␤»
12:41 moritz note that hash keying only makese sense for value types
12:41 GlitchMr r: my $pair = [1, 2] => [3, 4], [1] => [3]; say $pair{'1 2'};
12:41 p6eval rakudo 3ac8c7: OUTPUT«3 4␤»
12:41 GlitchMr r: my $pair = [1, 2] => [3, 4], [1] => [3]; say $pair{'1 23'};
12:41 p6eval rakudo 3ac8c7: OUTPUT«Mu()␤»
12:41 GlitchMr ok...
12:41 moritz and pair doesn't necessarily stringify
12:43 gfldex closure paramters seam to be skipped by rakudo in the spec test. Is that intentional?
12:44 moritz gfldex: can you be more specific please?
12:44 gfldex https://github.com/perl6/roast/blob/master/S06-signature/closure-parameters.t#L6-L73
12:44 gfldex says #?rakudo skip
12:45 moritz gfldex: that syntax is NYI
12:45 gfldex that makes me a little sad
12:45 moritz then implement it :-)
12:46 gfldex i'm afraid that's beyond my capabilities
12:47 GlitchMr perl6: print atan2 1
12:48 p6eval rakudo 3ac8c7: OUTPUT«0.785398163397448»
12:48 p6eval ..niecza v19-13-g442e075: OUTPUT«0.78539816339744828»
12:49 gfldex p6: role BeforeCallback {}; sub cb1 does BeforeCallback {};
12:49 p6eval rakudo 3ac8c7: OUTPUT«===SORRY!===␤Cannot call 'trait_mod:<does>'; none of these signatures match:␤:(Mu:U $doee, Mu:U $role)␤␤»
12:49 p6eval ..niecza v19-13-g442e075: OUTPUT«[31m===[0mSORRY![31m===[0mâ�¤â�¤Unhandled trait does for this context at /tmp/H4mZYRa8RC line 1:â�¤------> [32mallback {}; sub cb1 does BeforeCallback [33mâ��[31m{};[0mâ�¤â�¤Potential difficulties:â�¤  &cb1 is declared but not used at /tmp/H4mZYRa8RC line 1:â�¤---…
12:49 gfldex std: role BeforeCallback {}; sub cb1 does BeforeCallback {};
12:49 p6eval std 3b49ac8: OUTPUT«ok 00:00 40m␤»
12:49 gfldex is std right in this case?
12:50 moritz gfldex: it's correct syntactically
12:50 moritz gfldex: and that's the only thing that std checks
12:50 moritz gfldex: but, a role isn't a trait
12:50 GlitchMr perl6: 40.chars
12:50 p6eval rakudo 3ac8c7, niecza v19-13-g442e075:  ( no output )
12:50 GlitchMr Just wondering, why .chars is in Cool?
12:50 timotimo perl6: say 40.chars
12:50 p6eval rakudo 3ac8c7, niecza v19-13-g442e075: OUTPUT«2␤»
12:51 not_gerd left #perl6
12:51 timotimo well, it operates on strings, and anything in Cool can be treated as a string in some sensible manner
12:51 GlitchMr Actually, does any string coercing method make sense for anything else
12:51 GlitchMr 20.sprintf is useless
12:51 PacoAir joined #perl6
12:51 moritz r: say 12345.split(3).perl
12:51 p6eval rakudo 3ac8c7: OUTPUT«("12", "45").list␤»
12:52 moritz r: say <a b c d e>.split('c').perl
12:52 p6eval rakudo 3ac8c7: OUTPUT«("a b ", " d e").list␤»
12:52 moritz depends on your definition of "sense"
12:52 GlitchMr But I guess that 2e300.uc has some sense
12:52 timotimo oh my, list.split could cause some confusion all right
12:53 timotimo r: say 2e30.uc
12:53 p6eval rakudo 3ac8c7: OUTPUT«2E+30␤»
12:53 timotimo r: say 0xff.uc
12:53 p6eval rakudo 3ac8c7: OUTPUT«255␤»
12:53 GlitchMr also you can split list... what?
12:53 GlitchMr WHAT?
12:53 timotimo no, you can't, it coerces into a string before that
12:53 GlitchMr I know it coerces, but still
12:53 tadzik it behaves like a Perl 5 scalar will do
12:53 masak garbage in, garbage out.
12:54 tadzik if you use string-ish functions, it becomes a string first
12:54 GlitchMr I mean, length %ENV in Perl 5 gives 5...
12:54 GlitchMr Probably to mark that this is Perl 5 or something
12:54 tadzik eval length %ENV
12:54 buubot_backup tadzik: 5
12:55 GlitchMr But probably it's some garbage
12:55 moritz eval scalar %ENV
12:55 buubot_backup moritz: 12/16
12:55 moritz now you know what's 5 characters long
12:55 moritz perldoc perldata # if you want to know what those mean
12:55 jnthn It's very typical of Perl to have operations that have consistent semantics, coercing the operands if needed, rather than using types to overload multiple meanings on one operator.
12:56 GlitchMr Except in Perl 6 'abc' ~~ 'a.c' won't do what I mean... =~ in Perl 5 is fine
12:56 jnthn (And thus operator overloading is more about saying how a given type provides a semantic rather than giving alternative semantics for different types, as is typical in some other languages.)
12:57 moritz GlitchMr: but it does what I mean
12:57 GlitchMr Just something else
12:57 jnthn Smart-matching has very consistent semantics.
12:57 GlitchMr I know that in this case it's eq
12:57 moritz GlitchMr: because I say rx/a.c/ if I mean a regex
12:57 jnthn given LHS { RHS.ACCEPTS(LHS) } # or so
12:58 moritz "or so" is the interesting part
12:58 GlitchMr But what if I've string and I want to check if it matches regex
12:58 GlitchMr eval?
12:58 gfldex r: say 'abc' ~~ /a.c/;
12:58 p6eval rakudo 3ac8c7: OUTPUT«q[abc]␤␤»
12:58 moritz rx/ <?{ $str }> / iirc
12:59 moritz I need it surprsingly seldom
13:00 GlitchMr perl6: my $regex = 'abc'; say 'abc' ~~ / <?{ $regex }> /
13:00 p6eval rakudo 3ac8c7: OUTPUT«q[]␤␤»
13:00 p6eval ..niecza v19-13-g442e075: OUTPUT«#<match from(0) to(0) text() pos([].list) named({}.hash)>␤»
13:01 jnthn perl6: my $regex = 'abc'; say 'abc' ~~ / <$regex> /
13:01 p6eval niecza v19-13-g442e075: OUTPUT«#<match from(0) to(3) text(abc) pos([].list) named({}.hash)>␤»
13:01 p6eval ..rakudo 3ac8c7: OUTPUT«q[abc]␤␤»
13:01 moritz oh
13:01 moritz :-)
13:01 moritz perl6: my $regex = 'a.c'; say 'abc' ~~ / <$regex> /
13:01 p6eval niecza v19-13-g442e075: OUTPUT«#<match from(0) to(3) text(abc) pos([].list) named({}.hash)>␤»
13:01 p6eval ..rakudo 3ac8c7: OUTPUT«q[abc]␤␤»
13:09 bluescreen10 joined #perl6
13:10 daniel-s__ joined #perl6
13:11 preflex_ joined #perl6
13:13 felher Hm. Whats the difference between 'nqp::unbox_someting' and 'nqp::p6decont'. I thought maybe 'decont' stands for 'decontainerize'. But isn't it the same as unbox, then?
13:14 jnthn No
13:14 jnthn unbox is object => native type
13:14 jnthn decontainerize means "remove the scalar container"
13:14 moritz think of a "container" like a reference or a pointer
13:19 felher What do i get, if i decont an object? it seems like i can still bind and assign it to whatever i want.
13:20 moritz you get the object :-)
13:20 moritz what you had before might have been the object inside a container
13:20 moritz my $x = 3; # $x is a container holding an Int of value 3
13:21 moritz my $x := 3; # $x directly is the Int of value 3, you can't assign to it anymore
13:21 moritz decont(my $x = 3) gives you the 3 without the container
13:21 jnthn r: my $x; $x = 3;
13:21 p6eval rakudo 3ac8c7:  ( no output )
13:21 jnthn r: my $x; nqp::p6decont($x) = 3;
13:21 p6eval rakudo 3ac8c7: OUTPUT«Cannot assign to a non-container␤  in block <anon> at /tmp/n349vGrcXJ:1␤␤»
13:21 moritz jnthn++
13:22 moritz r: my $x := 3; $x = 5
13:22 p6eval rakudo 3ac8c7: OUTPUT«Cannot assign to a non-container␤  in block <anon> at /tmp/AvdNUEh140:1␤␤»
13:22 jnthn Also that. :)
13:22 moritz r: my $x = 3; $x = 5; # modifies the container, not the 3
13:22 p6eval rakudo 3ac8c7:  ( no output )
13:22 jnthn Basically, "my $x" allocates a scalar container. Assignment puts stuff into the container.
13:22 jnthn These containers "evaporate" in most operations.
13:23 jnthn But you can get at it.
13:23 jnthn r: my $x = 3; say $x.WHAT; say $x.VAR.WHAT;
13:23 p6eval rakudo 3ac8c7: OUTPUT«Int()␤Scalar()␤»
13:23 jnthn r: my $x = 3; say $x.WHAT; say $x.VAR.name
13:23 p6eval rakudo 3ac8c7: OUTPUT«Int()␤$x␤»
13:23 felher Ah okay. I think i got it now. Thanks :)
13:24 felher jnthn++, moritz++
13:27 felher So unbox_i will return an native int and not a container with a native int in it?
13:28 felher Ah, seems like perl6 containers can only hold perl6 values. :)
13:28 moritz Int can box an int
13:29 moritz and Str can box a str
13:29 moritz but, an Int can also hold bigints that don't fit into int
13:30 moritz so there are basically two differences: boxing is stricter typed than containering, and the boxing class can do much more than the containers we discussed earlier
13:31 moritz also note that nqp::p6box_i is actually a shorthand for nqp::box_i($arg, Int)
13:31 moritz you could box an int into other types too
13:31 skids joined #perl6
13:35 felher Ah. And if i have a subroutine sub s($x) { ... } and i call it with s(nqp::unbox_i(3)), it automatically gets boxed into an Int and then assigned to $x?
13:37 moritz yes
13:37 felher great :)
13:37 felher So my last question is: is this known to segfault?
13:37 felher r: my $x := nqp::unbox_i(3); $x = 4
13:37 p6eval rakudo 3ac8c7: OUTPUT«(signal SEGV)»
13:38 kaleem joined #perl6
13:38 ggoebel joined #perl6
13:38 moritz no
13:39 moritz but it's not a bug either
13:39 pnu joined #perl6
13:39 moritz if you use := and nqp:: ops, you'd better know what you're doing :-)
13:40 timotimo r: my $x := 3; $x = 4; say $x;
13:40 p6eval rakudo 3ac8c7: OUTPUT«Cannot assign to a non-container␤  in block <anon> at /tmp/OxQGhb_nq9:1␤␤»
13:40 timotimo mhm, mhm.
13:40 felher Yeah :) But why don't i get the message that timotimo got? <- this is not a critic. Just a i-want-to-understand-type-of-question.
13:41 felher * criticism
13:41 moritz felher: because 3 is an Int here, and nqp::unbox_i(3) is an int
13:41 moritz well, 3 is a literal that can act polymorphically both as an int and Int
13:41 moritz and it only acts as an int when we know at compile time that it's better that way
13:42 timotimo felher: you spelt your name wnorg!
13:43 felher timotimo: yeah, it is an erorr.
13:43 felher moritz: k, thanks :)
13:43 felher or mistkae
13:44 timotimo moritz: do you know any good examples where binding and compile-time binding (:= and ::= respectively iirc) are useful?
13:44 timotimo misskate, is that when you bring inline skates to a frozen lake?
13:45 felher :D
13:46 timotimo at first i thought "it's kind of like having constant values", but that's not true, since you can a) bind mutable data structures and b) bind other containers, like my $y ::= $x
13:46 moritz miss kate lives next, I think
13:46 moritz *next door
13:47 moritz timotimo: ::= is read-only binding like in signatures, iirc
13:47 timotimo i do recall, that it's the same mechanism that's used when a parameter of a function or method is declared "is rw" or when i return-rw
13:47 timotimo binding containers, that is
13:48 moritz timotimo: and := is very useful if you want to put something else than an Array into a @-sigiled var
13:48 moritz my @a := (1, 2, 3); # not an Array
13:48 timotimo r: my @a := (1, 2, 3); my @b := [1, 2, 3]; say @a.perl, " ", @b.perl
13:48 p6eval rakudo 3ac8c7: OUTPUT«(1, 2, 3) Array.new(1, 2, 3)␤»
13:48 timotimo r: my @a := (1, 2, 3); my @b := [1, 2, 3]; say @a[0].perl, " ", @b[0].perl
13:48 p6eval rakudo 3ac8c7: OUTPUT«1 1␤»
13:49 timotimo r: my @a = (1, 2, 3); my @b = [1, 2, 3]; say @a[0].perl, " ", @b[0].perl
13:49 p6eval rakudo 3ac8c7: OUTPUT«1 [1, 2, 3]␤»
13:49 timotimo that's cute
13:49 moritz timotimo: and many things in the setting need to preserve the containerness of an object. So my $temp := something(); # now $temp is only a container if something() returned a container
13:51 timotimo what's an example of a non-container that something() could return? like nqp::unbox_i(3) in felhers example above?
13:51 timotimo hm, wouldn't return nqp::unbox_i(3) create a container implicitly?
13:51 rurban gfldex:  address space needed by 'os.dll' (0x160000) is already occupied => An image base of 0x160000 is completely invalid for user dll's
13:51 MayDaniel joined #perl6
13:52 moritz timotimo: 3
13:52 moritz timotimo: a simple Int value
13:52 moritz timotimo: or a string
13:52 rurban I have to check the linker flags. Normally this may not happen.
13:52 gfldex rurban: thanks, i solved that riddle by running rebaseall
13:52 rurban if os.dll is handled by rebaseall it's good.
13:52 timotimo moritz: ah, so a non-container would be an "immutable value" in my intuition?
13:53 jnthn t: my $x := nqp::unbox_i(3); $x = 4 # curious
13:53 p6eval toqast : OUTPUT«Cannot assign to a non-container␤␤»
13:54 jnthn Well, there's one segfault toqast avoids us :)
13:54 moritz timotimo: yes, but it could be any user-supplied object too
13:56 cognominal_ joined #perl6
13:58 thou joined #perl6
14:05 timotimo moritz: i'm not sure i understand. what would the user-supplied object have to look like to be a container/non-container type value?
14:05 timotimo is it just a class in the hierarchy that i'd have to derive froms
14:11 moritz for the purpose of n6p::p6decont, it would have to derive from Scalar or Proxy
14:11 moritz to be a container ojbect
14:12 thou masak: hi! the july 21 blog post (too dark in here) has the wrong link for the 2nd commit; it should be: https://github.com/masak/crypt/commit/bc2bb141e7ea50a526db00736814d6d39c6f0d4e
14:13 * moritz gives thou++ the title "reviewer of July"
14:14 thou :-)
14:18 nodmonkey joined #perl6
14:19 snearch joined #perl6
14:19 [Coke] thou++
14:20 [Coke] seen ingy?
14:20 aloha ingy was last seen in #parrot 20 hours 7 mins ago joining the channel.
14:20 [Coke] phenny: tell ingy I'm keeping pugs warm for him.
14:20 phenny [Coke]: I'll pass that on when ingy is around.
14:21 [Coke] p: say 20612/2 - 9206 # tests needed to get to 50% of niecza
14:21 p6eval pugs: OUTPUT«1100␤»
14:21 masak thou: thanks, will fix.
14:21 tadzik hihi. When pugs will be half niecza, it could be nicknamed "nic"
14:21 masak seems I have an insufficiently accurate process for adding those links...
14:21 thou yw
14:22 masak thou: could you find some bugs in the game, as well? there's a prize ;)
14:22 timotimo tadzik: i'd call it "niet"
14:23 tadzik hehe. But, contrary to popular belief, there's no "t" sound in the pronouncation of niecza :)
14:23 masak tadzik: says you :P
14:23 tadzik says me :)
14:24 tadzik that reminds me of the reason why X is the unknown in maths
14:24 masak you should heed the true experts in slavic-language phonology... :P
14:24 mathw if I have a string which is known to be a substring of another string how can I get a string which contains the extra bits which the superstring has that the substring doesn't?
14:24 tadzik "Because there's no ‘sz’ in Spanish"
14:24 [Coke] in p5: $oldstring =~ s/$substr//;
14:24 masak tadzik: I don't get it...
14:25 tadzik masak: let me find a link for you
14:25 tadzik that reminds me of the reason why X is the unknown in maths
14:25 tadzik erm
14:25 masak mathw: $str.subst($substr, '')
14:25 tadzik masak: https://www.ted.com/talks/lang/pl/terry_moore_why_is_x_the_unknown.html
14:25 [Coke] rakudo: my $a="schoolbus"; $a ~~ s/hool//; say $a;
14:25 p6eval rakudo 3ac8c7: OUTPUT«scbus␤»
14:26 tadzik 6 minute long video
14:26 masak tadzik: thanks. will watch after my $work shift :)
14:26 masak [Coke]: yes, but that destroys the old string...
14:26 masak r: my $a = 'schoolbus'; say $a.subst('hool', '')
14:26 p6eval rakudo 3ac8c7: OUTPUT«scbus␤»
14:26 [Coke] masak: so?
14:26 masak ...and my way is shorter :P
14:26 tadzik LEAVE NO SCHOOLBUS BEHIND
14:27 masak [Coke]: so? well, it's just that I tend towards mutating old variables when I can.
14:27 masak er, there should be an avoiding* in there.
14:27 masak thou: fixed. thou++
14:27 adu joined #perl6
14:28 [Coke] hey, should the default replacement string be "" ?
14:30 masak you mean make the second arument optional?
14:30 masak I don't believe that use case is common enough to merit that.
14:30 masak and .subst(/regex/) somehow doesn't read so well.
14:31 flussence r: say 'abc'.subst(/b/ => 'd')
14:31 p6eval rakudo 3ac8c7: OUTPUT«Cannot call 'subst'; none of these signatures match:␤:(Str , $matcher, $replacement, :ii(:samecase($samecase)), :ss(:samespace($samespace)), :SET_CALLER_DOLLAR_SLASH(:$SET_CALLER_DOLLAR_SLASH), *%options)␤:(Cool , $matcher, $replacement, *%adverbs)␤␤  in method sub…
14:31 flussence that looks like it should work :(
14:31 flussence r: say 'abc'.subst(/b/, 'd')
14:31 p6eval rakudo 3ac8c7: OUTPUT«adc␤»
14:31 flussence r: say 'abc'.subst('b' => 'd')
14:31 p6eval rakudo 3ac8c7: OUTPUT«Cannot call 'subst'; none of these signatures match:␤:(Str , $matcher, $replacement, :ii(:samecase($samecase)), :ss(:samespace($samespace)), :SET_CALLER_DOLLAR_SLASH(:$SET_CALLER_DOLLAR_SLASH), *%options)␤:(Cool , $matcher, $replacement, *%adverbs)␤␤  in method sub…
14:31 masak flussence: you could easily define a multi sub or method to make it work in your code.
14:32 flussence yeah, I know... it just feels odd that .trans works that way but subst doesn't :)
14:32 flussence r: say 'abc'.trans('b' => 'd')
14:32 p6eval rakudo 3ac8c7: OUTPUT«adc␤»
14:34 PerlJam flussence: I think it would be odd for it to work.
14:35 PerlJam There's already enough conflation between tr/// and s/// and letting Pairs work for .subst would just add a little more IMHO
14:35 masak it would be a rather breaking change.
14:37 PerlJam (It's a "different things should look different" issue in my head)
15:11 tokuhiro_ joined #perl6
15:16 tokuhiro_ joined #perl6
15:18 pmichaud good morning, #perl6
15:20 masak pmichaud! \o/
15:20 TimToady o/
15:21 * TimToady is home again, is improving on the metapneumovirus, but now has pinkeye...
15:22 moritz TimToady: welcome back, and get better soon
15:22 * moritz has hand-foot-mouth desease
15:23 jnthn hi pmichaud, TimToady
15:23 timotimo i thought that was for cows and pigs?
15:23 moritz timotimo: there's a human version, mostly affecting children
15:24 jnthn TimToady, moritz: Ugh...sounds un-fun...get well soon.
15:24 moritz timotimo: and that's spreading in all daycare facilities $here
15:24 * timotimo reads up on it
15:24 moritz jnthn: thanks
15:24 TimToady or people newly in contact with children
15:24 moritz correct
15:24 masak TimToady! \o/
15:24 masak tadzik: heh, nice TED talk. :)
15:25 moritz well, I had half a day with shivers and fever, but that's long over. Now ands and feet are itching, but that's managable
15:25 moritz *hands
15:25 * masak sometimes suffers from foot-in-mouth disease, but the symptoms are quite different...
15:25 TimToady masak: about the only backlogging I've kept up on is your blog :)
15:26 masak TimToady: wow, cool.
15:26 pmichaud wb, TimToady.  Hope you feel better soon!
15:32 moritz pmichaud: what's your ETA for a star release?
15:33 pmichaud moritz: Wednesday?
15:33 pmichaud does it need to be sooner than that?
15:33 moritz pmichaud: no, just asking
15:33 pmichaud okay, Wednesday.  :)
15:34 jnthn .oO( And Maybe Some Installer ;-) )
15:35 pmichaud oh, yes, I was including the installer in that estimate :)
15:35 jnthn :D
15:36 moritz installer... as in, windows?
15:36 jnthn Yes.
15:36 jnthn (Thus the MSI pun ;-))
15:37 pmichaud I'm planning to have a .msi of the July release, and also to (perhaps) start an automated build system for it.
15:37 TimToady masak: my main question is why you don't use colon method form for all the "physical" calls like .connect(<hall cave>, 'down');
15:37 TimToady I tend to think .connect: <hall cave>, 'down'; looks a bit cleaner
15:38 TimToady especially if the final arg is a closure
15:39 TimToady then you can leave off the );
15:40 pmichaud \o/ yapc::na 2013 will be in Austin, TX \o/
15:40 PerlJam pm: yep, I'm already making my attendance plans :)
15:42 timotimo ); is such a sad smiley
15:42 timotimo maybe it should be ;) instead
15:42 timotimo can i modify the perl6 grammar to make that happen?
15:43 TimToady "All things are possible, but not all things are expedient." --the Apostle Paul
15:43 pmichaud ...what's the story with http://act.yapc.eu/ye2012/talks/tag/perl6, ooc?   Did we all write insanely horrible talk proposals?
15:45 timotimo "CJK UNIFIED IDEOGRAPH-8776", what does that even mean? :|
15:45 moritz pmichaud: I have no idea.
15:45 TimToady butterfly
15:46 moritz http://blogs.perl.org/users/moritz/2012/07/no-accepted-perl-6-talks-at-yapceu-2012.html
15:46 tokuhiro_ joined #perl6
15:46 timotimo oooh, that's cute and relevant to perl6
15:46 moritz corion has commented at the bottom
15:46 fgomez joined #perl6
15:47 moritz so it seems that the current list of talks was indeed supposed to be final-ish, and they are now re-investigating
15:47 fgomez joined #perl6
15:49 jnthn The difference in accepted talk count this year (56) is rather different from last year (143).
15:49 pmichaud actually, it's just 51.
15:49 pmichaud at least by my count
15:49 * jnthn had been assuming it was just delays in getting stuff accepted/rejected since the talk count still seemed low
15:50 moritz well, me too, until I read that blog post
15:50 jnthn Yeah. Oddness.
15:51 pmichaud yeah, yapcna had 90 talks this year.
15:51 TimToady maybe we can have a Perl 6 track in the linen cupboard
15:52 pmichaud I was thinking we might start our own p6 track :-)
15:52 moritz it would be nice if we didn't have to go guerilla :-)
15:53 jnthn pmichaud: Hmm. Austin means "really hot in summer", I guess? :)
15:54 pmichaud jnthn: it depends.  and it's normally a fairly dry heat
15:54 pmichaud so "hot" but not "horrible", at least in my experience.
15:54 jnthn Ah, that's not so bad then :)
15:55 pmichaud and june-ish is often not too bad; things normally start to get worse in the july/august-ish timeframe
15:57 pmichaud indeed, right now the temperature in Austin is 87degF  (30degC)
15:58 pmichaud (that's just weird, imo; I would've never guessed a temp in the mid-80s.)
15:59 jnthn Nor would I, but that's 'cus I think in degC :)
16:00 pmichaud "low 30s" then :)
16:01 pmichaud yapc::eu seems to have a total of 52 talks listed (24 @ 20mins, 28 @ 40mins), and three of the 40 minute talks are Lightning Talk sessions.
16:01 pmichaud oddness.  Oh well, we'll see if they work something out.
16:03 [Coke] looks like there's one perl6 talk accepted.
16:03 pmichaud lightning talk, Coke?
16:03 [Coke] http://act.yapc.eu/ye2012/talks/tag/perl6 (aye
16:04 moritz but it's not really about Perl 6 :-)
16:09 cognominal joined #perl6
16:16 dalek rakudo/toqast: 1599e25 | jnthn++ | src/Perl6/Actions.pm:
16:16 dalek rakudo/toqast: Fix indirect hyper dispatch.
16:16 dalek rakudo/toqast: review: https://github.com/rakudo/rakudo/commit/1599e25a3b
16:16 dalek rakudo/toqast: 79e502e | jnthn++ | src/core/Buf.pm:
16:16 dalek rakudo/toqast: Make subbuf set up the resulting Buf properly.
16:16 dalek rakudo/toqast: review: https://github.com/rakudo/rakudo/commit/79e502ebd9
16:17 zby_home_ joined #perl6
16:19 vmspb joined #perl6
16:21 nodmonkey joined #perl6
16:27 masak TimToady: Larry gets the colon. I will change it thus and I have a feeling I will like it more. thanks for the suggestion.
16:29 huf well, at least someone gets it... clearly not long since the colon was a teenager.
16:30 masak moritz: clearly we need to find an autopun written in Perl 6 :)
16:30 mjflick joined #perl6
16:31 tadzik r: my @a = "hip" xx 2; say ~(@a, @a.WHAT.perl), "!"
16:31 p6eval rakudo 3ac8c7: OUTPUT«hip hip Array!␤»
16:31 masak :D
16:31 masak r: my @a = "hip" xx 2; say ~(@a, @a.^name), "!"
16:31 p6eval rakudo 3ac8c7: OUTPUT«hip hip Array!␤»
16:31 tadzik golf'd!
16:32 masak r: my @a = "hip" xx 2, "@a.^name()!"; say @a
16:32 tadzik r: my @a = "hip" xx 2; say (@a, @a.^name), "!"
16:32 p6eval rakudo 3ac8c7: OUTPUT«hip hip Array!␤»
16:32 p6eval rakudo 3ac8c7: OUTPUT«hip hip Array!␤»
16:32 * masak wins
16:32 tadzik hm
16:32 masak well, that one clearly puts the mention *in* the use... :)
16:32 tadzik hehehe
16:33 masak r: say my @a = "hip" xx 2, "@a.^name()!"
16:33 p6eval rakudo 3ac8c7: OUTPUT«hip hip Array!␤»
16:33 huf there are no depths down to which you'll not sink, eh? :))))
16:33 masak that's us.
16:34 masak depthwise limitless.
16:34 Pleiades` joined #perl6
16:35 tadzik r: say my@a="hip"xx 2,"@a.^name()!"
16:35 p6eval rakudo 3ac8c7: OUTPUT«hip hip Array!␤»
16:35 jnthn r: say .keys, .^name, .values given { "don't make a " => " of it" }
16:35 p6eval rakudo 3ac8c7: OUTPUT«don't make a Hash of it␤»
16:36 masak ¬∃depth:¬we_will_sink(depth)
16:36 masak jnthn: :P
16:36 huf :)
16:37 [Coke] r: say my@a="hip"xx 2,@a.^name~"!"
16:37 p6eval rakudo 3ac8c7: OUTPUT«hip hip Array!␤»
16:37 [Coke] (which saves a space even if you ignore whitespace diffs)
16:37 pmichaud r:  my $o = 'an option';   say (+$o).WHAT, " is not $o";
16:37 p6eval rakudo 3ac8c7: OUTPUT«Failure() is not an option␤»
16:37 masak r: sub marine($color) { say "we all live in a $color &marine.^name() &marine.name()" }; marine "yellow"
16:37 p6eval rakudo 3ac8c7: OUTPUT«we all live in a yellow Sub marine␤»
16:38 masak well,
16:38 masak r: sub marine($color) { say "we all live in a $color &marine.^name()&marine.name()" }; marine "yellow"
16:38 p6eval rakudo 3ac8c7: OUTPUT«we all live in a yellow Submarine␤»
16:38 TimToady .oO(it's hard to write an auto pun in a language without an auto declarator...)
16:39 masak r: sub auto($thing) { say "I declare unto thee, $thing: you're a car!" }; auto "dog"
16:39 p6eval rakudo 3ac8c7: OUTPUT«I declare unto thee, dog: you're a car!␤»
16:39 masak probably the silliest thing I've done all day.
16:41 TimToady I've had a car that was a dog, but never had a dog that was a car.
16:41 jnthn .^name ~ .decode('utf-8') given Buf.new(102,121,32,116,104,101,32,118,97,109,112,105,114,101,32,115,108,97,121,101,114) # sorry :)
16:41 jnthn r: .^name ~ .decode('utf-8') given Buf.new(102,121,32,116,104,101,32,118,97,109,112,105,114,101,32,115,108,97,121,101,114) # sorry :)
16:41 p6eval rakudo 3ac8c7:  ( no output )
16:41 jnthn r: say  .^name ~ .decode('utf-8') given Buf.new(102,121,32,116,104,101,32,118,97,109,112,105,114,101,32,115,108,97,121,101,114) # sorry :)
16:41 p6eval rakudo 3ac8c7: OUTPUT«Buffy the vampire slayer␤»
16:41 jnthn \o/
16:42 [Coke] jnthn: you're like some kind of coding Angel.
16:43 masak TimToady: did you ever put a dog in your car that was a dog? :) and then go, "yo... dog" :P
16:43 TimToady perl6: 'golfed'.say
16:43 p6eval rakudo 3ac8c7, niecza v19-13-g442e075: OUTPUT«golfed␤»
16:43 masak dang, there's no unicode codepoint for something golf-related...
16:44 [Coke] .u club
16:44 phenny U+2663 BLACK CLUB SUIT (♣)
16:44 timotimo .u seal
16:44 [Coke] .u iron
16:44 phenny U+2E8B CJK RADICAL SEAL (⺋)
16:44 phenny [Coke]: Sorry, no results for 'iron'.
16:45 diakopter .u 26F3
16:45 phenny U+26F3 (No name found)
16:45 TimToady .u 26F3
16:45 phenny U+26F3 (No name found)
16:45 timotimo i'm a mean person: ♣⺋
16:45 TimToady .u ⛳
16:45 phenny U+26F3 (No name found)
16:45 diakopter .u FLAG IN HOLE
16:45 phenny diakopter: Sorry, no results for 'FLAG IN HOLE'.
16:45 masak timotimo: :P
16:46 diakopter well, unicode 6.1 has flag in hole
16:47 TimToady according to http://www.fileformat.info/info/unicode/char/26f3/index.htm, 5.2
16:48 pmichaud http://www.fileformat.info/info/unicode/char/26f3/index.htm
16:48 pmichaud oh, TimToady++ beat me to it
16:48 * masak declares a vim macro to convert the .method() form to .method: form, and gets a bit freaked out seeing it edit his file quickly and correctly
16:49 daxim ‭ ��  U+1F6A9 TRIANGULAR FLAG ON POST
16:49 TimToady .u SNOWMAN WITHOUT SNOW
16:49 phenny TimToady: Sorry, no results for 'SNOWMAN WITHOUT SNOW'.
16:49 benabik .u SAD GIRL IN SNOW
16:49 phenny benabik: Sorry, no results for 'SAD GIRL IN SNOW'.
16:50 kaleem joined #perl6
16:53 diakopter I think it's in 6.1 also. I wasn't saying it first appeared in 6.1. that just happened to be the database I searched.
16:54 diakopter (for "golf")
16:57 GlitchMr .u CAMEL
16:57 phenny GlitchMr: Sorry, no results for 'CAMEL'.
16:57 masak .u GIMEL
16:57 phenny U+2137 GIMEL SYMBOL (ℷ)
16:57 masak .u MELON
16:57 phenny U+2F60 KANGXI RADICAL MELON (⽠)
16:58 TimToady .u ⚻
16:58 phenny U+26BB QUINCUNX (⚻)
16:58 GlitchMr ,u EVERYTHING
16:58 GlitchMr .u EVERYTHING
16:58 masak you can't have everything.
16:58 phenny GlitchMr: Sorry, no results for 'EVERYTHING'.
16:58 masak (where would you put it?)
16:58 GlitchMr In <title>?
16:59 GlitchMr As infix operator?
16:59 masak you're not entitled to do that.
16:59 daxim
16:59 benabik .u ALL
16:59 flussence put it in itself!
16:59 phenny U+2200 FOR ALL (∀)
16:59 benabik That's kinda like everything.
16:59 masak .u EXISTS
16:59 phenny U+2203 THERE EXISTS (∃)
16:59 masak and that's kinda like (at least) one thing.
16:59 GlitchMr perl6: say **
17:00 p6eval niecza v19-13-g442e075: OUTPUT«Unhandled exception: Unable to resolve method postcircumfix:<( )> in type Any␤  at /tmp/FhFIvb3fP6 line 1 (mainline @ 3) ␤  at /home/p6eval/niecza/lib/CORE.setting line 3918 (ANON @ 3) ␤  at /home/p6eval/niecza/lib/CORE.setting line 3919 (module-CORE @ 562…
17:00 p6eval ..rakudo 3ac8c7: OUTPUT«===SORRY!===␤HyperWhatever (**) not yet implemented. Sorry. ␤at /tmp/VLdV_YUc52:1␤»
17:01 dalek rakudo/toqast: ddc68b3 | jnthn++ | src/Perl6/Actions.pm:
17:01 dalek rakudo/toqast: Fix final three S05 test failures.
17:01 dalek rakudo/toqast: review: https://github.com/rakudo/rakudo/commit/ddc68b393b
17:02 [Coke] jnthn: ooh, how close are you to mergeback now?
17:02 jnthn tadzik: ^ may (or may not) fix URI.
17:02 jnthn [Coke]: Think it can land by next weekend.
17:02 masak \o/
17:02 jnthn [Coke]: Still some spectest failures to clean up; module space also had a couple of issues.
17:04 * [Coke] rereads http://6guts.wordpress.com/2012/07/20/the-rakudo-move-to-qast-progressing-nicely/ so he doesn't have to ask jnthn what the hell he's working on again. ;)
17:05 TimToady 有無問.  <- Hamlet, golfed.
17:05 masak *lol*
17:05 * masak could read that right off and feels proud
17:06 daxim :S
17:06 [Coke] pasted it into google translate, got a nice answer. clicked on "translate from japanese" and got a geekier one.
17:07 masak phenny: "有無問"?
17:07 phenny masak: "Whether to ask" (zh-CN to en, translate.google.com)
17:07 masak phenny: jp en "有無問"?
17:07 phenny masak: "Whether to ask" (zh-CN to en, translate.google.com)
17:08 masak phenny: ja en "有無問"?
17:08 phenny masak: "Question whether or not" (ja to en, translate.google.com)
17:08 masak \o/
17:08 jnthn r: my $x = 0; repeat until $x >= 10 { $x++ }; say $x
17:08 p6eval rakudo 3ac8c7: OUTPUT«10␤»
17:08 jnthn r: my $x = 0; repeat until $x >= 10 -> $foo { say $foo; $x++ }; say $x
17:08 p6eval rakudo 3ac8c7: OUTPUT«Mu()␤False␤False␤False␤False␤False␤False␤False␤False␤False␤10␤»
17:08 [Coke] masak: gt said "existence question" for ja-en.
17:09 masak weird.
17:09 masak we must've gotten different Googleputer servers.
17:09 * masak .oO( Google's ultimate overlordhood is already here, it's just unevenly distributed... )
17:10 smash joined #perl6
17:10 jnthn r: my $x = 0; repeat { $x++ } while $x < 10; say $x
17:10 p6eval rakudo 3ac8c7: OUTPUT«10␤»
17:10 jnthn t: my $x = 0; repeat { $x++ } while $x < 10; say $x
17:10 p6eval toqast : OUTPUT«11␤»
17:10 jnthn Well. Oops. :)
17:10 smash hello everyone
17:10 [Coke] jnthn: >< close enough.
17:11 masak good news: toqast is coming along. bad news: it can't count worth a damn. :P
17:11 timotimo jnthn: amazing. how do you get that to be wrong? :D
17:11 jnthn So, who implemented repeat_while and repeat_until compilation... :P
17:11 masak >.>
17:11 jnthn :D
17:11 masak I... I didn't think it would go into *production*...!
17:12 masak you mean it wasn't all just an exercise!?
17:12 diakopter does phenny search NamesList.txt also
17:12 [Coke] niecza is failing one test. rakudo is failing 3.
17:12 daxim http://www.millionbook.net/wg/s/shashibiya/hmlt/003.htm   # grep for 生存
17:12 jnthn masak: Curiously, the tests for it in t/qast/qast.t pass... :)
17:13 masak huh.
17:13 masak that's what I've been saying all along, I'm innocent! :P
17:13 masak it's reality that's wrong.
17:14 pmichaud I frequently find that reality is wrong.
17:14 jnthn It may be that the tests are wrong ;)
17:15 jnthn Oh, it's also possible to write a test that doesn't expose the bug.
17:15 Chillance joined #perl6
17:15 jnthn Is repeat_until not just until with a goto past the condition check on the first loop entry?
17:15 masak no, I don't think so.
17:16 masak the first iteration always runs.
17:16 jnthn Right, which is why you do a goto past the check for the first time.
17:16 jnthn goto start_it_anyway
17:16 jnthn loop_label:
17:17 jnthn if blah goto loop_is_over_with_now_bai
17:17 jnthn start_it_anyway:
17:17 pmichaud ...is that how PAST implemented it?
17:17 jnthn pmichaud: Hm, good question
17:17 pmichaud I would simply think it's
17:17 pmichaud loop_label:
17:17 pmichaud do whatever
17:17 pmichaud unless $cond goto loop_label
17:17 pmichaud with no initial "goto"
17:17 sorear good * #perl6
17:18 jnthn I know PAST factors all types of loops into one code generation path, which is what I'm gonna do here.
17:18 pmichaud and yes, PAST does the goto.
17:18 pmichaud (just looked)
17:19 pmichaud unless bodyfirst goto bodyfirst_done
17:19 pmichaud ops.'push_pirop'('goto', redolabel)
17:19 pmichaud bodyfirst_done:
17:19 jnthn pmichaud: No, it does the goto approach
17:19 jnthn I'm gonna do that for now.
17:23 arnsholt jnthn: Regarding the write-barrier problem I mentioned earlier, I think I see two possible solutions:
17:23 arnsholt 1) Always invalidate a string member in a struct or array when it's been passed into C. Runtime cost.
17:24 arnsholt 2) Cache STRING objects as well as PMC objects in the REPRs. Memory cost.
17:24 arnsholt Any thoughts on which is better?
17:24 jnthn Caching stuff in...the REPR?
17:24 jnthn As in the object itself?
17:25 arnsholt Yeah, not the REPR as such, but the object body
17:25 jnthn ah, OK
17:25 arnsholt Bad choice of words =)
17:25 jnthn I think 1 sounds simpler?
17:25 tadzik jnthn: will recheck
17:25 arnsholt Yeah, 1 is dead simple
17:26 jnthn arnsholt: I'm fine with doing the simple, working thing for the time being.
17:26 pmichaud +1 to simple
17:26 arnsholt Cool. I'll do that then
17:26 arnsholt In fact, it's so simple that it's what I sketched as a placeholder while thinking
17:34 dalek nqp/toqast: 66dae41 | jnthn++ | src/QAST/Operations.nqp:
17:34 dalek nqp/toqast: Unify repeat_ style loop code-gen with while/until code-gen, unbusting it and giving it control exceptiony goodness along the way.
17:34 dalek nqp/toqast: review: https://github.com/perl6/nqp/commit/66dae41b3e
17:37 mucker joined #perl6
17:39 Tene joined #perl6
17:39 Tene joined #perl6
17:43 Ex joined #perl6
17:48 thelazydeveloper joined #perl6
17:48 Chillance joined #perl6
17:55 cognominal joined #perl6
18:00 cognominal joined #perl6
18:05 dalek nqp/toqast: 3c9b25f | jnthn++ | src/QAST/Operations.nqp:
18:05 dalek nqp/toqast: Oops, diddle the correct register for the repeat with -> case.
18:05 dalek nqp/toqast: review: https://github.com/perl6/nqp/commit/3c9b25fd57
18:08 bluescreen10 joined #perl6
18:16 dalek nqp: ba3362e | (Arne Skjærholt)++ | src/6model/reprs/CArray.c:
18:16 dalek nqp: Remove warnings from CArray.c
18:16 dalek nqp: review: https://github.com/perl6/nqp/commit/ba3362efb8
18:16 dalek nqp: 05b3d54 | (Arne Skjærholt)++ | src/6model/reprs/CStr.c:
18:16 dalek nqp: Remove warnings from CStr.c
18:16 arnsholt Ooops. ETOOMANYCOMMITS
18:16 dalek joined #perl6
18:16 moritz many commits are good :-)
18:16 benabik arnsholt++
18:16 benabik arnsholt++
18:17 jnthn arnsholt++
18:17 arnsholt I've discovered that making lots of commits without testing and fixing any bugs with rebasing is a productive workflow for NQP hacking
18:17 dalek rakudo/toqast: c0731e2 | jnthn++ | src/Perl6/Grammar.pm:
18:17 dalek rakudo/toqast: We're not in a block at the start of the program, so need a %*HANDLERS declared in compunit as well as blockoid. Fixes the one failing test in exceptions/misc.t.
18:17 dalek rakudo/toqast: review: https://github.com/rakudo/rakudo/commit/c0731e2ade
18:18 arnsholt Saves a fair number of NQP/Rakudo/Zavolaj compile-test cycles
18:19 TimToady hmm, a bubble context is precisely how I evolved p4 into p5
18:20 moritz but you didn't have a cool name for it back then :-)
18:20 benabik arnsholt: That's a pretty effective git workflow in general.  :-D
18:20 moritz I do that with setting hacking a lot, because compiling it takes so long
18:21 arnsholt Yeah, that makes sense
18:21 masak TimToady: could you say a bit more about that? that sounds fascinating.
18:22 arnsholt For my NQP hacking, I do check that the changes compile before committing, but that's because I know how to recompile just what I want and not all of NQP every time =)
18:22 TimToady there were intermediate forms (only seen at NetLabs, Inc) where both the p4 and p5 runloops thought they were running the show
18:22 masak ah, so asset capture.
18:22 TimToady with a translation scaffolding that let each runloop lie to the other one
18:22 benabik rebase -i is useful for that.   If you name a commit "fixup! <old commit>" and use --autosquash (or rebase.autosquash), it'll automatically reorder the commits and apply the bug fixes.
18:23 masak http://www.martinfowler.com/bliki/StranglerApplication.html
18:23 tadzik jnthn: nope, URI still fails
18:23 tadzik but something is better, 51 modules ok, 55 not ok (106 total)
18:24 tadzik it was 49 yesterday, I think
18:24 TimToady yes, p5 successful strangled p4 :)
18:24 masak :)
18:24 moritz benabik oh, I didn't know about autosquash
18:25 arnsholt benabik: Yeah, I use --interactive for my rebasing. But fixup! sounds nifty as well. Useful for braino-type fixes
18:25 benabik arnsholt: I tend to use it for most bug fixes.  Makes my commits look perfect the first time around.  :-D
18:25 benabik moritz: Following the git ML for years has taught me a few things.
18:26 jnthn tadzik: If you have time, please see if you can get it down to a small test case.
18:26 arnsholt Yeah, that's perhaps the awesomest part. I never make mistakes (that are seen by the outside world) =D
18:26 * moritz wants gitmonks to go along with perlmonks
18:28 flussence and chipmonks, lest the hardware-hacking crowd feels left out
18:28 benabik flussence++
18:28 cognominal joined #perl6
18:28 masak heh :)
18:29 moritz t: say and die 42
18:29 p6eval toqast : OUTPUT«42␤␤»
18:29 benabik huh.  That seems backwards.
18:30 moritz t: say and die 42; say "alive";
18:30 p6eval toqast : OUTPUT«42␤␤»
18:30 moritz r: say and die 42; say "alive";
18:30 p6eval rakudo 3ac8c7: OUTPUT«===SORRY!===␤CHECK FAILED:␤Undefined routine '&and' called (line 1)␤»
18:30 * benabik facepalm
18:30 moritz that's what the test wants
18:30 moritz so, it's actually a parsing bug
18:31 moritz t/spec/S03-operators/precedence.t
18:31 jnthn It's not
18:31 moritz the last one
18:31 jnthn It's that t doesn't complain about the "and" routine being undeclared yet
18:31 moritz oh
18:31 jnthn I haven't put back CHECK time missing routine detection.
18:31 flussence r: $*OUT.say: 1; $*ERR.say: 2;
18:31 p6eval rakudo 3ac8c7: OUTPUT«1␤2␤»
18:31 tadzik jnthn: I'll try
18:31 jnthn It compiles to an and(...) call, but die is the argument to it.
18:31 jnthn So it does first.
18:32 jnthn dinner, bbs :)
18:32 moritz ok
18:32 jnthn (gonna try and put the optimizer back together this evening, I think)
18:32 tadzik jnthn: fun fact: it fails ONE test :)
18:32 tadzik should be easy to find
18:33 moritz better than the old "URI just dies with a weird error message on loading" :-)
18:33 jnthn Tests where I've no clue at all what's going on that I'd love somebody else to look into: S02-types/version.t, S32-str/sprintf.t, S12-methods/method-vs-sub.t
18:34 tadzik not ok 47 - validating parser rejected bad URI
18:34 moritz jnthn: S02-types/version.t passes here
18:35 jnthn oddness
18:35 jnthn really dinner &
18:35 tadzik haha
18:35 tadzik Contextual %*HANDLERS not found
18:36 tadzik I guess I just need to git pull now
18:37 moritz jnthn: sprintf tests look like they should be fudged on rakudo...
18:38 moritz $ perl t/harness  --fudge t/spec/S32-str/sprintf.t
18:38 moritz t/spec/S32-str/sprintf.rakudo .. ok
18:38 felher joined #perl6
18:39 moritz jnthn: maybe your t/spec/ is stuck or so?
18:41 moritz tree.t misses two setting patches from nom
18:48 [Coke] when p6eval is run,is it under "nice" ?
18:48 [Coke] (on feather-main)
18:51 [Coke] ugh. maxed out at 95% CPU, 82% memory. ;)
18:51 [Coke] (building rakudo, looks like)
18:55 supernovus joined #perl6
18:56 TimToady "One of the beautiful things about science is that it allows us to bumble along, getting it wrong time after time, and feel perfectly fine as long as we learn something each time."
18:56 TimToady we forgot to yell "Stand back!" twelve years ago...
18:58 PerlJam 20 years from now it won't make much difference probably.
18:58 supernovus Using zavolaj/NativeCall, is there a way to import C library constants into the Perl 6 namespace?
18:58 PerlJam (unless there's still widespread perception that Perl 6 "isn't here" or "isn't real" or whatever)
18:59 TimToady supernovus: anything is possible with BEGIN, assuming your compiler doesn't actively prevent it
19:00 PerlJam supernovus: something that parses C header files and outputs some appropriate Perl 6 code would be a Nice-To-Have
19:00 TimToady I dunno whether rakudo supports importing constants yet
19:01 TimToady you'd think it wouldn't be hard, since it already has to import types, which parse the same
19:02 TimToady perl6: module MyPi { constant mypi is export = 3 }; import MyPi; say mypi
19:02 p6eval niecza v19-13-g442e075: OUTPUT«[31m===[0mSORRY![31m===[0m��Action method statement_control:import not yet implemented at /tmp/pVDgdZJSWv line 1:�------> [32mnstant mypi is export = 3 }; import MyPi[33m�[31m; say mypi[0m��Unhandled exception: Unable to resolve method statement_le…
19:02 p6eval ..rakudo 3ac8c7: OUTPUT«===SORRY!===␤CHECK FAILED:␤Undefined routine '&mypi' called (line 1)␤»
19:02 TimToady apparently not
19:04 * masak submits rakudobug
19:04 * masak submits nieczaissue
19:05 [Coke] npr: say "aa" ~~ /'a'/
19:05 p6eval rakudo 3ac8c7: OUTPUT«q[a]␤␤»
19:05 p6eval ..pugs: OUTPUT«Error eval perl5: "if (!$INC{'Pugs/Runtime/Match/HsBridge.pm'}) {␤    unshift @INC, '/home/p6eval/.cabal/share/Pugs-6.2.13.20120203/blib6/pugs/perl5/lib';␤    eval q[require 'Pugs/Runtime/Match/HsBridge.pm'] or die $@;␤}␤'Pugs::Runtime::Match::HsBridge'␤"␤*** Can't locate P…
19:05 p6eval ..niecza v19-13-g442e075: OUTPUT«#<match from(0) to(1) text(a) pos([].list) named({}.hash)>␤»
19:05 [Coke] hurm. that is unfortunate for pugs.
19:10 moritz t: class A { our method b() { return self } }; say &A::b(A.new)
19:10 p6eval toqast : OUTPUT«A.new()␤»
19:12 jnthn moritz: My spectests are up to date, so it can't be that.
19:13 jnthn moritz: Wonder if it's Windows specific. Also, I should check it it builds on master.
19:13 jnthn s/builds/passes/
19:13 jnthn s/master/nom/
19:13 moritz :-)
19:14 * masak .oO( reading #perl6 is like coming home from IKEA. you have to put together the sentences from small pieces )
19:16 moritz we could write a bot for it
19:16 masak IKEAbot
19:16 jnthn At least the sentences aren't missing a screw :P
19:17 moritz how does 'is export' is supposed to work?
19:17 jnthn moritz: The issue is that constant declarations don't apply traits yet.
19:17 moritz is there some kind of container on which it acts?
19:17 moritz jnthn: but what would they apply to/on?
19:19 jnthn moritz: Well, export is easy since it just need to install the value somewhere.
19:19 TimToady a constant is just a very small type :)
19:19 jnthn moritz: It'd just get passed the value itself as the trait subject.
19:20 jnthn Or I think that was the answer last time I asked... :)
19:22 TimToady perl6: subset mypi of Int where 3; say 3 ~~ mypi;   # :)
19:22 p6eval rakudo 3ac8c7, niecza v19-13-g442e075: OUTPUT«True␤»
19:23 TimToady r: module MyPi { subset mypi of Int is export where 3; }; import MyPi; say 3 ~~ mypi;
19:23 p6eval rakudo 3ac8c7: OUTPUT«True␤»
19:24 TimToady not so very different from that
19:26 ironcamel joined #perl6
19:26 moritz it's not clear to me how trait handler is supposed to learn about the name under which to export
19:26 masak chromatic++ # http://www.modernperlbooks.com/mt/2012/07/the-lost-secret-of-mug-driven-evolution.html
19:26 moritz will that be passed as an extra paramter to the trait?
19:27 jnthn moritz: Oh. Hmm.
19:27 * masak wants a t-shirt with "Embrace the tautology" on it
19:27 jnthn moritz: Yes, that's a problem.
19:32 TimToady how does a subset know its name?
19:32 supernovus Where does zavolaj look for libraries (i.e. is there a way to change it's "search path")
19:33 moritz TimToady: from the type object
19:33 mtk joined #perl6
19:33 jnthn TimToady: 'cus it's a type, so you can do .^name on it.
19:33 moritz masak: when is your birthday? :-)
19:34 TimToady to the compiler, constants are types that are eventually optimizable to values, I think
19:34 birdwindupbird joined #perl6
19:34 TimToady immediately turning the name into a value is a premature optimization
19:35 masak moritz: what, you want to print me a t-shirt ;)
19:35 flussence supernovus: it's the system lib search path. `man ld.so` might be a good place to start
19:35 masak moritz: ...? ;)
19:35 supernovus flussence: thanks, I'll install the wrapper libs into /usr/local which should allow zavolaj to find them.
19:35 vmspb joined #perl6
19:36 jnthn TimToady: Guess it's doable...first time I've ever heard this suggestion though. ;-)
19:36 jnthn TimToady: How do they work out type wise?
19:36 jnthn TimToady: What does their .WHAT evaluate to?
19:52 cognominal joined #perl6
19:57 masak maybe 'import' should also be under "Module management" in http://perl6.org/compilers/features , what do you think?
19:59 jnthn Maybe
20:00 jnthn Seems use, need and require are
20:00 jnthn Does Rakudo still have yellow for use?
20:01 moritz rakudo does 'use' roughly as well as specced
20:02 moritz except for the breakdown in primitives that S11 or so mandates
20:04 snearch joined #perl6
20:10 TimToady jnthn: presumably defers to the 'of' type, same as the value itself would return
20:13 dalek features: 5aca171 | moritz++ | features.json:
20:13 dalek features: rakudo implements "use"
20:13 dalek features: review: https://github.com/perl6/features/commit/5aca171923
20:13 moritz but then  constant a is export = 3;  would export Int, not a
20:15 TimToady how do you avoid exporting Sub when you export a sub?
20:15 jnthn There's a multi candidate for Routine.
20:15 jnthn You can call .name on it
20:16 jnthn .WHAT is *very* low level. That's not changing. It always refer to a type object.
20:16 jnthn I guess we can set up a type that lies about its type object.
20:16 jnthn I'm not sure it's a good idea though. :)
20:16 masak r: multi h($s, $, $t, 1) { "$s$t" }; multi h($s, $h, $t, $n) { h $s, $t, $h, $n-1; "$s$t"; h $h, $s, $t, $n-1 }; say h "a", "b", "c", 5
20:16 p6eval rakudo 3ac8c7: OUTPUT«ac␤»
20:16 masak hm.
20:17 masak r: multi h($s, $, $t, 1) { "$s$t" }; multi h($s, $h, $t, $n) { (h $s, $t, $h, $n-1), "$s$t", h $h, $s, $t, $n-1 }; say h "a", "b", "c", 5
20:17 p6eval rakudo 3ac8c7: OUTPUT«ac ab cb ac ba bc ac ab cb ca ba cb ac ab cb ac ba bc ac ba cb ca ba bc ac ab cb ac ba bc ac␤»
20:17 masak simple Hanoi solver :)
20:17 jnthn whoa
20:18 jnthn That's...short.
20:18 masak yeah.
20:18 cognominal_ joined #perl6
20:18 masak well, it's just base case and inductive case, really. so there's not much complexity to implement.
20:19 masak I built it to generate a quick walk-through paste for myself to paste into the adventure game :)
20:19 masak so dreary to solve the Hanoi game by hand... :)
20:21 masak I'm in the slightly amusing position that I "have to" make the Hanoi game work to the point of opening the connection to the next room in order to do today's blogging task :P
20:22 cognominal__ joined #perl6
20:26 dalek rakudo/toqast: 81a7ade | jnthn++ | src/Perl6/ (2 files):
20:26 dalek rakudo/toqast: Start to bring back the optimizer. This re-enables the analysis (and thus catching of undeclared routines), but disables all the optimizations but private method call; they will be brought back and tested one by one.
20:26 dalek rakudo/toqast: review: https://github.com/rakudo/rakudo/commit/81a7ade931
20:30 dalek Heuristic branch merge: pushed 20 commits to nqp/dyncall-callbacks by arnsholt
20:33 dalek zavolaj/callbacks: 46d9cce | (Arne Skjærholt)++ | / (3 files):
20:33 dalek zavolaj/callbacks: Functionality and tests for callbacks.
20:33 dalek zavolaj/callbacks: review: https://github.com/jnthn/zavolaj/commit/46d9cce0be
20:36 * TimToady wonders how far from running both runloops stackless...
20:36 TimToady *we are
20:36 TimToady .oO(.oO(bubble contexts))
20:37 jnthn ;-)
20:37 spaceships joined #perl6
20:41 * moritz wonders if silicon valley is in bubble context
20:41 moritz and if they simply can call wantbubble() to find out :-)
20:41 masak wow, what does .oO(.oO(...)) even *mean*? :)
20:42 masak there's an xkcd strip like this, by the way.
20:42 masak http://xkcd.com/248/
20:43 sirrobert heh
20:44 masak xkcd++ # making the world awesome to think in
20:45 dalek rakudo/toqast: d1aef7e | jnthn++ | src/Perl6/Op (2 files):
20:45 dalek rakudo/toqast: Restore proto inlining optimization.
20:45 dalek rakudo/toqast: review: https://github.com/rakudo/rakudo/commit/d1aef7eddd
20:52 arnsholt How do I get a floating point literal to be forced to a num?
20:54 TimToady e0
20:54 arnsholt Of course! Thanks
20:58 cognominal joined #perl6
21:03 mjflick joined #perl6
21:05 dalek std: d5bea92 | larry++ | STD.pm6:
21:05 dalek std: a bit of undef proofing
21:05 dalek std: review: https://github.com/perl6/std/commit/d5bea921eb
21:27 dalek rakudo/toqast: 678541a | jnthn++ | src/Perl6/Op (2 files):
21:27 dalek rakudo/toqast: Update compile time resolution of multis; this busts the setting if turned on, sadly...needs some more analysis.
21:27 dalek rakudo/toqast: review: https://github.com/rakudo/rakudo/commit/678541a0a4
21:27 dalek rakudo/toqast: 740312f | jnthn++ | src/Perl6/Optimizer.pm:
21:27 dalek rakudo/toqast: Start fixing up immediate block inlining.
21:27 dalek rakudo/toqast: review: https://github.com/rakudo/rakudo/commit/740312fd1f
21:27 dalek rakudo/toqast: bc246a5 | jnthn++ | src/ (2 files):
21:27 dalek rakudo/toqast: pir => nqp and void fix.
21:27 dalek rakudo/toqast: review: https://github.com/rakudo/rakudo/commit/bc246a5ff3
21:27 dalek rakudo/toqast: fae30cb | jnthn++ | src/Perl6/Optimizer.pm:
21:27 dalek rakudo/toqast: Re-enable inlining of immediate blocks optimization.
21:27 dalek rakudo/toqast: review: https://github.com/rakudo/rakudo/commit/fae30cbf89
21:27 tadzik 'evening
21:27 jnthn hi tadzik
21:28 jnthn OK, that's enough optimizer hacking today. To do is figuring out the issue with compile time multi dispatch resolution, and then I need to re-do the routine inlining stuff.
21:29 jnthn Happily, it gets nicer and rather less restricted once I can do that :)
21:29 * tadzik rebuilds and resmokes
21:29 jnthn tadzik: Mostly a few small gains here and there.
21:29 tadzik which may get interrupted by a sudden sleep
21:29 jnthn :)
21:31 tadzik oh, probably before I even build :)
21:32 tadzik but I see you're onto optimizations already :)
21:33 Chillance joined #perl6
21:34 jnthn tadzik: Well, getting the optimizer updated for QAST really.
21:34 jnthn Once I get everything working again, then it'll be time for optimizing stuff some more :)
21:35 tadzik I can't wait :]
21:35 masak lue: I just realized that 2012-07-29 is "verb synonyms". so you have until then to make another pull request, if you're still interested in helping. :) after that I'll get to it myself.
21:36 masak oh, and 2012-07-28 is movement synonyms.
21:36 dalek panda: b475cb2 | tadzik++ | / (38 files):
21:36 dalek panda: First shot at offline bootstraping; seems to work
21:36 dalek panda: review: https://github.com/tadzik/panda/commit/b475cb267a
21:36 dalek panda: 22a494d | tadzik++ | b (2 files):
21:36 dalek panda: Ensure that DESTDIR is respected
21:36 dalek panda: review: https://github.com/tadzik/panda/commit/22a494ddf1
21:36 dalek panda: 9f3691d | tadzik++ | projects.json.bootstrap:
21:36 dalek panda: Oops, forgot the most important part
21:36 dalek panda: review: https://github.com/tadzik/panda/commit/9f3691d32f
21:36 dalek panda: 0de8b12 | tadzik++ | bin/panda:
21:36 dalek panda: Fix installing into the default location
21:36 dalek panda: review: https://github.com/tadzik/panda/commit/0de8b1253d
21:37 tadzik moritz: I've merged panda/offline-bootstrap, if you notice any negative side-effects please shout at me :)
21:43 masak lol! I blog'd! \o/ http://strangelyconsistent.org/blog/july-23-2012-being-blocked-by-the-fire
21:43 timotimo haha, how did that happen?
21:44 masak I'm as surprised as you are!
21:45 masak I'll say this. one month of once-a-day-blogging is fine. two months... no. not unless someone paid me.
21:46 masak :)
21:47 crab2313 joined #perl6
21:48 Bucciarati joined #perl6
21:55 BooK joined #perl6
21:55 daniel-s__ joined #perl6
22:09 awwaiid joined #perl6
22:16 lue hello world o/
22:17 lue masak: now that I see you planned to do it, I'd be more interested in seeing how you would do it (as I've already made my way public)
22:17 masak up to you.
22:17 masak I plan to do it like I did it last year.
22:18 masak except maybe I'll put the movement synonyms into the Adventure::Engine itself -- following Postel's law a bit.
22:19 jnthn .oO( Going Postel )
22:19 * jnthn looks up Postel's law :)
22:20 lue That would be a good spot (if only to serve as a convenient reminder to include that when extracting and splitting Adventure::Engine)
22:20 * lue too
22:20 jnthn oh, I knew that, just didn't know the name.
22:20 masak Postel was some Internet pioneer or other.
22:20 masak I actually don't know what to think of his law.
22:21 jnthn It's always bothered me a bit form a security perspective.
22:21 masak HTML parsers in browsers are an excellent example of following it. and that was both a roaring success and a slightly worrying evolution.
22:23 supernovus Well, it's far from complete, but here's a quick working example of my latest perl 6 project -- http://huri.net/files/perl6-curl.txt -- when finished, it will have a nicer Perl 6 API, and we'll have a way of accessing https URLs from within Perl 6 itself.
22:23 masak ooh
22:24 masak bikeshedding suggestion: how about s/perform/transfer/ ? more specific.
22:26 lue masak++ another good blog post
22:26 masak \o/
22:27 lue .oO(I've been trying to find the crypt for a month now, it's about time I find some water!)
22:27 masak :P
22:27 supernovus masak: at the moment, I am implementing the curllib API as a 1-to-1 mapping of its C names to Perl 6 names. Then I'll make an easier to use API on top of that.
22:27 jnthn supernovus: Are you doing it using NativeCall?
22:28 supernovus jnthn: yes
22:28 jnthn supernovus: Nice \o/
22:28 masak supernovus: oh, that's a good reason.
22:28 jnthn supernovus: Is the code somewhere yet?
22:28 supernovus The "callbacks" branch of NativeCall will be very useful, so hopefully it gets merged back into master soon :-)
22:29 supernovus jnthn: not yet, I just started on it, it's currently very, very limited.
22:29 jnthn OK
22:29 jnthn Does Curl do HTTPS, ooc?
22:31 lue according to its man page, yes. (as well as the ol' gopher protocol)
22:32 cognominal joined #perl6
22:36 supernovus cURL does a whole whackload of protocols. It supports https via a choice of openssl, gnutls and nss.
22:37 masak curl is teh awesome.
22:38 jnthn wow
22:38 sorear wasn't someone here from #sandiego.pm earlier trying to bind curl to perl6?
22:38 supernovus when the user friendly API is done, it'll look more like: my $c = WWW::Curl; my $response = $c->verbose->get($some_url);
22:38 supernovus err with . instead of -> stupid Perl 5 API docs
22:39 sorear ah yes, majrmovies
22:39 sorear who logged out half an hour ago
22:39 sorear so! we have two people independantly writing cURL bindings.  I am thinking this is LTA.
22:40 masak supernovus: oh, I was going to propose a fluent interface like that.
22:40 masak sorear: indeed.
22:40 masak supernovus: I task you with contacting this person and figuring out a way to collaborate.
22:40 * masak waves his magic community wand to make it so
22:41 supernovus I should do that, maybe they have a way of not having to write a custom C library to provide extra functionality.
22:42 Coleoid joined #perl6
22:44 diakopter wasn't someone including a C compiler into NativeCall or something?
22:52 skids joined #perl6
22:56 masak good night, #perl6
22:57 felher o/ masak
23:00 supernovus Hmm, I may have a way of avoiding the need for a custom library to query the various constants. A quick script and I can port all of the desired constants from the C header files into a generated Perl 6 module.
23:00 supernovus good night masak!
23:27 jnthn 'night. #perl6
23:27 crab2313 joined #perl6
23:29 felher 'night, jnthn
23:34 tokuhiro_ joined #perl6

| Channels | #perl6 index | Today | | Search | Google Search | Plain-Text | summary

Perl 6 | Reference Documentation | Rakudo