Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2015-12-29

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 tth joined #perl6
00:12 yeahnoob joined #perl6
00:14 autarch how can I handle a C library which added a certain function that I want to access if it's there, but not blow up if it's not
00:14 autarch ah, looks like it's a runtime error, that's good
00:20 jcallen joined #perl6
00:21 vendethiel joined #perl6
00:23 jcallen I'm trying to build rakudo through a package manager (meaning that `make install` *must not* touch /usr, but rather $(DESTDIR)/usr, etc.), and seeing an issue with tools/build/install-core-dist.pl trying to write to /usr/share/perl6/repo.lock (and failing because of the sandbox).  Has anyone else been able to try to fix this? (I'm looking to try and create a patch, but the code involved is a bit convoluted)
00:25 huf joined #perl6
00:25 stmuk jcallen: I believe others had the same or similar problems in the last day or so
00:25 Psyche^ joined #perl6
00:25 stmuk jcallen: probably worth checking http://irclog.perlgeek.de/perl6/2015-12-28
00:26 Arrowhead joined #perl6
00:26 rvchangue joined #perl6
00:27 yeahnoob joined #perl6
00:32 flussence rakudo git already has... three different fixes for this. probably should put them into a 2015.12.1
00:33 jcallen ...why can't I find a link to rakudo git...
00:33 flussence https://github.com/rakudo/rakudo
00:34 jcallen that was too obvious (except that I don't assume that github is the canonical place to find sources...)
00:36 orbus style question - what's the preferred method for module functions to communicate errors?  return false?  throw exceptions?  whatever the author feels like (like in perl5)?
00:37 geck jcallen: what distor are you packaging for?
00:37 orbus I'm writing a new module
00:37 timotimo what perlbrew invocation do you use to get a rakudo 2015.12 with perl 6.c?
00:37 jcallen geck: Gentoo
00:37 flussence orbus: fail() if it should be recoverable, die() if not
00:37 orbus hrmm
00:37 orbus okay, will go take a look at those
00:37 orbus I know die
00:37 flussence jcallen: https://gitlab.com/flussence/perl6-overlay already has rakudo ebuilds
00:37 orbus haven't looked at fail
00:37 geck I've been pondering building a rakudo software collection for RH distros
00:38 lsm joined #perl6
00:38 orbus yum/dnf repository would save people some time for sure
00:38 jcallen flussence: that's an overlay; I'm working on repo/gentoo.git :D
00:38 flussence oh, feel free to steal them then :)
00:39 orbus or really now that the spec is stable, lobby to get rakudo into distros
00:39 flussence (at least two of those workarounds were *because* I was trying to get it to build on gentoo, so the hard work's done for you :)
00:39 orbus but I have no idea how that works :)
00:40 geck orbus:easier to just put out a package
00:40 geck I mean, earliest it could get in is rh/centos 8
00:40 geck as far as the enterprise distros go
00:41 jcallen should we be using the system libffi or the included 3rdparty/dyncall?
00:43 geck http://pkgs.fedoraproject.org/cgit/rakudo-star.git/ -> probably wouldn't take very long using that as a starting point
00:43 flussence I've been building things with both for a long time, spectest stuff has been fine, the only real issue is bundled libtommath because upstream hasn't taken patches for that yet
00:43 flussence (it compiles fine, but you get weird errors in printf stuff)
00:45 rindolf joined #perl6
00:45 mojca I can confirm flussence's observation about printf and libtommath; the problem is that MoarVM should not install the libraries at standard places
00:45 jcallen flussence: I'm referring to libffi/dyncall specifically as there is a choice between them :)
00:45 flussence ohhh... I've never noticed...
00:46 awwaiid I want to add another 'multi sub EVAL' for :lang<Python> support. When I put it in the REPL or a main .pl6 file it works fine; when I put it in lib/Inline/Python.pm6 (above the class Inline::Python) it does not. Any pointers?
00:47 flussence ergh, yeah there's a bunch of stuff leaking into /usr/include here. I better fix that...
00:47 awwaiid the failure is that I get the "No compiler available for language 'Python'" exception, as if I hadn't created the multi sub EVAL at all
00:50 sammers hello, is there a way to do multiple assignment from an array? Something like my $foo, $bar = [1, 2];
00:51 TimToady m: my ($foo,$bar) = [1,2]; say $foo; say $bar
00:51 camelia rakudo-moar 64a61a: OUTPUT«1␤2␤»
00:52 cygx joined #perl6
00:52 cygx awwaiid: your EVAL should look like this: multi EVAL(Cool $code, Str() :$lang! where 'python') is export { ... }
00:52 sammers ok, that is perfect
00:52 sammers thanks, and congrats on the release... having lots of fun.
00:53 awwaiid cygx: I just tried the 'is export' and it works! I guess the code in rakudo implicitly does that somehow
00:53 cygx awwaiid: the core is an outer lexical scope surrounding your program, thus no need to export
00:54 awwaiid cygx: the core?
00:54 cygx awwaiid: Rakudo's core setting, ie the stuff in rakudo/src/core
00:54 awwaiid cygx: oh. this file is src/core/control.pm . I see
00:54 awwaiid cygx: cool, thanks!
01:00 bpmedley joined #perl6
01:02 orbus geck: presumably should try for both - custom repo for centos 6/7 and try to get it included in 8
01:02 TimToady though why we call something on the outside "core" is anyone's guess :)
01:02 TimToady it's more like "cladding"
01:02 orbus geck: although even then the custom repo is worthwhile because stuff in centos swiftly drifts out of date
01:03 awwaiid TimToady: is it like OCaml's "prelude" -- more or less a standard-lib?
01:03 dududuedu joined #perl6
01:03 awwaiid oh wait, you were refering to outer lexical scope. nevermind.
01:04 orbus alright... my module basically works but I'm too tired/lazy to write tests or upload to github
01:04 orbus maybe later
01:04 TimToady but we don't call it a prelude specifically because it is not in front, but around
01:04 lichtkind joined #perl6
01:05 orbus first, food
01:05 awwaiid TimToady: like being wrapped in a nice warm blanket on a cold day
01:05 TimToady or vice versa
01:08 flussence circumlude?
01:08 dalek tablets: cbdf706 | (Herbert Breunung)++ | docs/appendix-b-grouped.txt:
01:08 dalek tablets: added tau constant
01:08 dalek tablets: review: https://github.com/perl6/tablets/commit/cbdf706421
01:09 lichtkind are ther eutf verions of u nad i constants too?
01:17 timotimo what is u?
01:19 Arrowhead joined #perl6
01:19 lichtkind sorry I ment i and e
01:20 lichtkind was distracted smacking troll that claimed larry dont even knew chomsky
01:21 TimToady well, I never met him
01:21 lichtkind :)
01:21 cygx_ joined #perl6
01:21 timotimo that one dood on twitter who's been annoying, negative, uninformed and unhelpful is now claiming false advertisements because he can't apt-get or perlbrew install 6.0.0
01:21 TimToady but by the time I was in grad school at UCB, the professors there had already found counterexamples to all but one of his "transformational" rules
01:22 lichtkind yes but its just stupid to claim you had to be forced to introduce oo into perl 6
01:22 TimToady haters gonna hate
01:22 lichtkind yes we wanted fresh ones :)
01:25 lichtkind at least koleda go its own main line news item, which means it was even in the top level news feed here in germany
01:25 flussence I don't even bother engaging with 'em any more. If they want to hellban themselves into maintenance programming, that's their loss :)
01:26 lichtkind well its the discussion section under my article , i try to keep there at least informed answers
01:27 lichtkind have a wonderful night
01:27 lichtkind its past a am here
01:27 lichtkind o/
01:27 lichtkind 2am i mean
01:29 adhoc joined #perl6
01:32 shicheng joined #perl6
01:34 dalek rakudo-star-daily: ad07e14 | coke++ | log/ (8 files):
01:34 dalek rakudo-star-daily: today (automated commit)
01:34 dalek rakudo-star-daily: review: https://github.com/coke/rakudo-star-daily/commit/ad07e14d84
01:35 kj_ joined #perl6
01:39 shicheng_ joined #perl6
01:43 kmj Hi all. This is my first bit learning perl6. I have a quick question. Is it expected that if I call a method on an object that within double quotes, that the method does not get called unless it is called with parentheses. For instance:
01:43 kmj y $file = "main.p6";   8 say "$file.IO.Str $file.IO.s";
01:43 kmj versus
01:43 kmj myy $file = "main.p6";
01:44 kmj say "$file.IO.Str() $file.IO.s()";
01:44 jdv79 yes
01:44 BenGoldberg joined #perl6
01:44 kmj Ok, thanks
01:45 TimToady yes, the only expression-like thing that can interpolate without trailing brackets of some sort is a bare $foo variable
01:46 TimToady well, unless you count {$file.IO.Str} as an expression-like thing
01:46 timotimo TimToady: and putting an extra % in front :P
01:46 TimToady but in a sense that has trailing brackets too :)
01:46 timotimo m: my %foo = hi => "wat"; say "%%foo"
01:46 camelia rakudo-moar 64a61a: OUTPUT«%%foo␤»
01:46 timotimo m: my %foo = hi => "wat"; say "%%%foo"
01:46 camelia rakudo-moar 64a61a: OUTPUT«%%%foo␤»
01:46 timotimo ... huh
01:46 timotimo m: say "%%%foo"
01:46 camelia rakudo-moar 64a61a: OUTPUT«5===SORRY!5=== Error while compiling /tmp/Z9zW0XPEhO␤Variable '%foo' is not declared␤at /tmp/Z9zW0XPEhO:1␤------> 3say "%%7⏏5%foo"␤»
01:46 timotimo well ... :P
01:46 BenGoldberg joined #perl6
01:49 shicheng joined #perl6
01:51 kmj Thank you. BTW, congrats releasing perl6. I know there's a lot of work to do, but this is a really neat milestone.
01:52 timotimo thanks for the encouragement :)
01:53 TimToady lovers gonna love :)
01:54 Hotkeys I'm trying to match 3 consecutive letters but I think I'm doing something wrong http://i.imgur.com/Sggr2NQ.png
01:54 Hotkeys am I doing inline code in regex wrong
01:55 BenGoldberg joined #perl6
01:56 timotimo m: "hijklmn" ~~ / (.) ** 3 <{ say $0[0]; say $0[1]; say $0[2] }> /
01:56 camelia rakudo-moar 64a61a: OUTPUT«「h」␤「i」␤「j」␤「i」␤「j」␤「k」␤「j」␤「k」␤「l」␤「k」␤「l」␤「m」␤「l」␤「m」␤「n」␤»
01:56 timotimo m: "hijklmn" ~~ / (.) ** 3 <{ say $0[0]; say $0[1]; say $0[2]; say "" }> /
01:56 camelia rakudo-moar 64a61a: OUTPUT«「h」␤「i」␤「j」␤␤「i」␤「j」␤「k」␤␤「j」␤「k」␤「l」␤␤「k」␤「l」␤「m」␤␤「l」␤「m」␤「n」␤␤»
01:56 timotimo m: "hijklmn" ~~ / (.) ** 3 <{ say $0[0].succ; say $0[1]; say $0[2].pred; say "" }> /
01:56 camelia rakudo-moar 64a61a: OUTPUT«Method 'succ' not found for invocant of class 'Match'␤  in block <unit> at /tmp/GpjGxS0gIA line 1␤␤»
01:56 timotimo m: "hijklmn" ~~ / (.) ** 3 <{ say $0[0].Str.succ; say $0[1]; say $0[2].Str.pred; say "" }> /
01:56 camelia rakudo-moar 64a61a: OUTPUT«i␤「i」␤i␤␤j␤「j」␤j␤␤k␤「k」␤k␤␤l␤「l」␤l␤␤m␤「m」␤m␤␤»
01:56 timotimo m: "hijklmn" ~~ / (.) ** 3 <{ say $0[0].Str.succ; say $0[1].Str; say $0[2].Str.pred; say "" }> /
01:56 camelia rakudo-moar 64a61a: OUTPUT«i␤i␤i␤␤j␤j␤j␤␤k␤k␤k␤␤l␤l␤l␤␤m␤m␤m␤␤»
01:56 timotimo m: "hijklmn" ~~ / (.) ** 3 <{ $0[0].Str.succ eq $0[1] eq $0[2].Str.pred }> /
01:56 camelia rakudo-moar 64a61a: ( no output )
01:56 timotimo m: say "hijklmn" ~~ / (.) ** 3 <{ $0[0].Str.succ eq $0[1] eq $0[2].Str.pred }> /
01:56 camelia rakudo-moar 64a61a: OUTPUT«Nil␤»
01:56 dalek doc: e5ebc53 | coke++ | / (3 files):
01:56 dalek doc: Add categorized search results.
01:56 dalek doc:
01:56 dalek doc: Closes #273
01:56 dalek doc: review: https://github.com/perl6/doc/commit/e5ebc538f9
01:57 timotimo m: "hijklmn" ~~ / (.) ** 3 <{ say $0[0].Str.succ eq $0[1] eq $0[2].Str.pred }> /
01:57 camelia rakudo-moar 64a61a: OUTPUT«True␤True␤True␤True␤True␤»
01:57 timotimo m: say "hijklmn" ~~ / (.) ** 3 <{ $0[0].Str.succ eq $0[1] eq $0[2].Str.pred }> /
01:57 camelia rakudo-moar 64a61a: OUTPUT«Nil␤»
01:57 timotimo m: say "hijklmn" ~~ / (.) ** 3 /
01:57 camelia rakudo-moar 64a61a: OUTPUT«「hij」␤ 0 => 「h」␤ 0 => 「i」␤ 0 => 「j」␤»
01:57 BenGoldberg joined #perl6
01:57 timotimo oh
01:57 timotimo m: say "hijklmn" ~~ / (.) ** 3 <?{ $0[0].Str.succ eq $0[1] eq $0[2].Str.pred }> /
01:57 camelia rakudo-moar 64a61a: OUTPUT«「hij」␤ 0 => 「h」␤ 0 => 「i」␤ 0 => 「j」␤»
01:57 timotimo that's the thing i was missing
01:58 timotimo i think the result of <{ }> gets interpolated as a regex language thingie
01:58 timotimo m: say "hijTrueklmn" ~~ / (.) ** 3 <?{ $0[0].Str.succ eq $0[1] eq $0[2].Str.pred }> /
01:58 camelia rakudo-moar 64a61a: OUTPUT«「hij」␤ 0 => 「h」␤ 0 => 「i」␤ 0 => 「j」␤»
01:58 timotimo m: say "hikFalselmn" ~~ / (.) ** 3 <?{ $0[0].Str.succ eq $0[1] eq $0[2].Str.pred }> /
01:58 camelia rakudo-moar 64a61a: OUTPUT«「lmn」␤ 0 => 「l」␤ 0 => 「m」␤ 0 => 「n」␤»
01:58 timotimo eh, derp
01:58 timotimo m: say "hikFalselmn" ~~ / (.) ** 3 <{ $0[0].Str.succ eq $0[1] eq $0[2].Str.pred }> /
01:58 camelia rakudo-moar 64a61a: OUTPUT«「hikFalse」␤ 0 => 「h」␤ 0 => 「i」␤ 0 => 「k」␤»
01:58 timotimo m: say "hijTrueklmn" ~~ / (.) ** 3 <{ $0[0].Str.succ eq $0[1] eq $0[2].Str.pred }> /
01:58 camelia rakudo-moar 64a61a: OUTPUT«「hijTrue」␤ 0 => 「h」␤ 0 => 「i」␤ 0 => 「j」␤»
01:58 timotimo ^- could be ... useful? :P
01:59 [Coke] ENODALEK?
01:59 Hotkeys oh
01:59 Hotkeys why <?
02:00 Hotkeys on the code block
02:01 shicheng Greetings! Just heard the new Perl 6 release :)
02:01 TimToady we just heard about it 3 days ago ourselves :)
02:02 timotimo Hotkeys: turns it from something similar to <$foo> (interpolates regex) to something similar to <?$foo>
02:02 timotimo is <?foo> actually a sensible explanation for this?
02:02 [Coke] I tell you, we were all kind of surprised.
02:02 halto joined #perl6
02:02 shicheng Besides more neat syntax, does anyone has a sense about what kind of purpose that the new release could serve?
02:03 Hotkeys So basically it lets the regex match the truthiness of the code rather than just evaluate the code itself? @ timotimo
02:03 mst shicheng: perl6.c is a final "backcompat changes are considered bugs" release of the lnaguage
02:03 mst shicheng: that difference in policy is important
02:03 [Coke] wendy wrote up a nice article on "why use perl6"... but I don't remember where it went.
02:03 mst like, hugely important
02:05 shicheng Code: I would be very interested to read that article
02:05 shicheng Sorry.. [Coke]
02:05 [Coke] ah, found it: https://wendyga.wordpress.com/2015/12/25/why-would-you-want-to-use-perl-6-some-answers/
02:06 mst of course my answer is basically
02:06 timotimo Hotkeys: the return value is the important distinction
02:06 shicheng mst: so does this mean it has a totally new design (which breaks backcompagt
02:06 mst 1) because perl5 OO with Moo/Moose is so much better than python/ruby/ES6 I can't use them without getting annoyed
02:06 shicheng backcompat
02:07 mst but perl6 is if anything even better
02:07 timotimo if you have a <{ ... }> in your thing and it returns something like "...", it'll be interpolated so that it matches three characters
02:07 mst 2) becauee grammars are amazing
02:07 mst shicheng: perl6 and perl5 are different languages
02:07 timotimo whereas <?{ ... }> will pass or fail the match at that point (but still let it backtrack and try again) if the return value isn't True
02:07 mst shicheng: perl6 has Inline::Perl5 that allows native use of perl5 code in perl6
02:07 mst shicheng: perl5 has Inline::Perl6 that allows native use of perl6 code in perl5
02:07 Hotkeys timotimo: alright, thanks!
02:07 mst shicheng: so "backcompat is totally broken but all your stuff should still totally work together"
02:08 shicheng mst: I see, I will keep this in mind
02:08 mst shicheng: i.e. you can run both in the same process, so the fact they're different languages in the same family actually isn't a disaster
02:08 * [Coke] wonders how to check on the build progress on docs.perl6.org
02:08 mst shicheng: I rather like this as an approach tbh
02:08 timotimo https://www.reddit.com/r/haskell/comments/3yl7ep/what_are_haskellers_opinioncritiques_of_perl6/
02:08 shicheng I am excited to see this classic lang got a new totally release, was too afraid of grammar difficulty to study it
02:09 mst shicheng: think of perl5 and perl6 as like lisps
02:09 mst shicheng: except with excellent bidirectional interop
02:09 shicheng with same spirit
02:10 shicheng On official website it says "It is going to serve for next hundred years."
02:10 shicheng What does that mean? I am curious ;)
02:10 mst shicheng: note I'm mostly a perl5 hacker, but perl6 grammars are likely to drive me to use Inline::Perl6 anyway
02:10 mst and I'm proud to be part of a community that cares about the bidi interop thing
02:11 xpen joined #perl6
02:12 leont Having written two non-trivial grammars (TAP and YAML), I agree with the grammars are awesome sentiment (YAML itself however…)
02:13 gfldex shicheng: Perl 6 is ready for the next 100 years because the grammer of the language is extensible and the language as a whole is planned to be extended by the user
02:16 jdv79 that's assuming people still code 100 years from now
02:17 lustlife joined #perl6
02:17 shicheng_ joined #perl6
02:20 TimToady it doesn't have to be people doing the coding...
02:20 shicheng_ haha I like this extensible idea
02:21 flussence hm, looks like I can't build moar with --lua=/usr/bin/lua on gentoo, 'cause those bundled dyn* deps aren't available as packages...
02:23 lsm joined #perl6
02:28 shicheng joined #perl6
02:28 TEttinger isn't dynasm a luajit thing?
02:29 flussence well I've already got that installed too, but nothing remotely looks applicable there either
02:30 timotimo gah!
02:30 timotimo it was monday and i totally forgot to work on the weekly :S
02:30 flussence if you hadn't said anything nobody would've noticed :D
02:32 [Coke] docs.perl6.org doesn't seem to be rebuilding; it did seem to have a build yesterday, though.
02:32 mst timotimo: you were busy doing other awesome things
02:32 mst timotimo: I can't stop it annoying you, but I can say that your productivity overall is such that I'd defend the omission ;)
02:34 timotimo i watched congress livestream and played disgaea 5 :P
02:34 timotimo also, i washed some laundry and napped
02:35 timotimo *sigh*, i kind of miss the advent calendar already
02:35 BenGoldberg joined #perl6
02:35 yqt joined #perl6
02:37 flussence well we've got the next 11.5 months free to write one that isn't outright painful to use...
02:37 mst not it, but I totally hope I'll help make it easier to deploy ;)
02:38 mst (this is me not promising anything, but saying toolchain stuff here so far has been fun so I'll hopefully keep getting sucked in ;)
02:38 mspo timotimo: you can always keep blogging
02:38 timotimo i'm surprised & glad you're enjoying working on our toolchain
02:38 timotimo mspo: yeah, i'll just blog something very interesting and also fun every day ... because i've already been so good at delivering the weekly on mondays ...
02:39 timotimo i didn't even work on the perl foundation perl6 wiki one bit today either
02:40 timotimo anyway. now is bedtime.
02:40 timotimo good night!
02:40 flussence o/
02:40 * flussence gives this dumb hacky moar header cleanup fix another shot
02:40 mst timotimo: I am the right sort of masochist to enjoy this, it appears. and long may it continue to seem so to me, since that way I'll keep doing useful things ;)
02:41 mst flussence: remember the mantra: "this is systems. you appear to be trying to be clever. stop." - so dumb+hacky may be the right thing
02:41 mst flussence: also, if you can reduce it to a perl -pi -e or similar, include the hacky script in the commit message for its application, then people can see exactly what you did and tweak it later if required
02:43 flussence long story short: moar bundles libs. moar provides an off switch, but the makefile force-installs the header files for them anyway. my hack right now is to just rm -rf those bits from $DESTDIR before it gets plonked into /usr
02:45 flussence ...which works *great* up until trying to build rakudo, because it needs some of those headers. whoops.
02:45 flussence surprised nqp and its sanity tests don't mind, though
02:46 cygx flussence: nqp doesn't require extension ops
02:46 mst flussence: yeah, I figured it'd be like that
02:47 mst first, however, I need to hit rakudobrew with a shovel until I can write tests
02:47 mst also I totally had another thing to write between christmas and new year
02:47 mst going to try and spend time on both but
02:51 flussence .oO( geez, I was a normal user last week... how'd I end up doing all this?! )
02:51 mst flussence: I hadn't even done anything until two days ago and then you broke something and I was bored :P
02:51 mst flussence: welcome to the perl community. this is why I'm here.
02:53 molaf_ joined #perl6
02:55 mst flussence: https://www.youtube.com/watch?v=BaeXXA5UyYg is my life since realising that :)
02:57 flussence uh oh... the first bit of that video description sounds familiar :)
02:58 Su-Shee_ joined #perl6
02:58 mst having given the SoTV to sawyer, I got to do a community talk that's basically "why I'm here and you should be too"
02:58 mst it made my happy :)
03:00 spock joined #perl6
03:00 Guest75873 hello
03:00 [Coke] hello, spock.
03:02 Ben_Goldberg joined #perl6
03:03 [Coke] does git checkout origin/master do a pull?
03:03 mst no
03:03 colomon [Coke]: as opposed to what?
03:03 flussence nope, it just gives you a detached head pointed to wherever that was last time you fetch/pulled
03:03 mst it'll hceckout whatever your current mirror of origin has
03:03 colomon oh, right, what flussence said
03:03 colomon flussence++ said
03:04 [Coke] I wonder what https://github.com/perl6/doc/blob/master/util/update-and-sync#L10 is trying to do here.
03:04 [Coke] ah, there's a git fetch in the script earlier. so that might work.
03:04 flussence looks like it's trying to do `git pull master`-but-without-merge-nightmares :)
03:05 [Coke] urrrk. I cherry picked a 2 day old commit...
03:06 dalek doc: 827e8cb | coke++ | bin/p6doc-index:
03:06 dalek doc: remove some trailing whitespace
03:06 dalek doc: review: https://github.com/perl6/doc/commit/827e8cb7d4
03:06 [Coke] so it got very confused.
03:10 cooper joined #perl6
03:14 noganex_ joined #perl6
03:15 pdcawley joined #perl6
03:20 Arrowhead joined #perl6
03:24 autarch It looks like all of the pages besides the index pages are 404'ing on the doc site
03:24 autarch hmm, except under /route
03:24 autarch /routine
03:26 awwaiid autarch: you beat me to report it by 2 mins!
03:26 autarch I win the big prize!
03:26 awwaiid you get to keep both halves
03:26 autarch PM me for the address to send money to
03:28 [Coke] autarch: I'm trying to build the site. It's possible the build process has gone wonky.
03:28 autarch maybe best to restore from backup for now? if such a thing is possible
03:28 [Coke] I think the process is also not happy if it takes more than 5 minutes.
03:31 Hotkeys did docs.perl6.org disappear
03:31 Hotkeys I can't access any of the pages
03:31 Hotkeys except the main pages
03:31 gfldex Hotkeys: yes, there is a cronjob so it might resurface in a bit
03:31 awwaiid taking 5to6-nutshell.pod and s/Perl 5/Ruby/g is amusing.
03:31 Hotkeys ah
03:31 [Coke] it would super awesome if the build process didn't take more than 6 minutes and counting. :|
03:32 gfldex the last time i tried to htmlify.p6 on my not so fast linux box, it took 90min
03:33 jdv79 any ideas on what the hot spots are?
03:33 [Coke] no, because it chokes the profiler.
03:33 gfldex anything really. It's not doing any concurrency
03:34 gfldex and it takes the $=pod content and transforms that into some intermediate format
03:34 gfldex i made my own pod2html (that does a lot less) and it takes 1m3s to generate the html
03:35 Hotkeys even with the long build times, does it need to remove all the docs mid-build?
03:35 Hotkeys or is it a "it doesn't need to" situation
03:35 gfldex it should not do that
03:36 gfldex and it didn't do that in the past, so there might actually be something very wrong, like a partial build that didn't fail loudly
03:37 Hotkeys ah, fun
03:38 [Coke] as I said, I was trying to force a build, since it was not building.
03:38 gfldex Use of the 'unpack' method is experimental; please 'use experimental :pack'
03:38 gfldex that's what it says locally
03:39 gfldex i'm on it, testing locally again (what takes time)
03:39 dalek doc: bd8f5a5 | coke++ | README.md:
03:39 dalek doc: perl 6, not perl6.
03:39 dalek doc: review: https://github.com/perl6/doc/commit/bd8f5a5206
03:40 [Coke] ok, a fresh build is now running, hopefully with nothing left of my attempt.
03:41 [Coke] I think the version of rakudo on the server is slightly older.
03:41 [Coke] version on the server is 2015.11-722-g1088291
03:41 [Coke] so unpack is probably fine there.
03:42 dalek doc: c9e8656 | (Wenzel P. P. Peppmeyer)++ | htmlify.p6:
03:42 dalek doc: unpack is now experimental
03:42 dalek doc: review: https://github.com/perl6/doc/commit/c9e8656c9e
03:42 dalek doc: 2600f80 | (Wenzel P. P. Peppmeyer)++ | htmlify.p6:
03:42 dalek doc: Merge pull request #287 from gfldex/master
03:42 dalek doc:
03:42 dalek doc: unpack is now experimental
03:42 dalek doc: review: https://github.com/perl6/doc/commit/2600f801f5
03:42 [Coke] instead of using 30% cpu, it's now using 100%, that's an improvement...
03:42 [Coke] dammit.
03:42 [Coke] that is going to break the next run. didn't we already add that and remove it once?
03:42 [Coke] or not apply it because we didn't have a fresh enough rakudo on the server?
03:44 gfldex we will see how it goes i guess
03:45 joydo joined #perl6
03:45 [Coke] in case I get hit by a bus, this cronjob is running under the docs.* user on hack
03:48 itaipu joined #perl6
03:50 [Coke] I don't have pygmentize on the box I test docs stuff on; wonder if that slows the build down.
03:51 gfldex it does
03:52 gfldex and it does so single threaded, what is a shame
03:54 [Coke] site is back
03:54 [Coke] ... this build is no where near done, but there was a last copy.
03:54 autarch is it ok to commit typo fixes in doc to master directly?
03:56 [Coke] sure?
03:56 dalek doc: dc77e5a | (Dave Rolsky)++ | doc/Language/nativecall.pod:
03:56 dalek doc: Fix typo (explicited is not a word)
03:56 dalek doc: review: https://github.com/perl6/doc/commit/dc77e5a888
03:57 [Coke] m: say "Coke--" # breaking docs.perl6.org
03:57 camelia rakudo-moar 64a61a: OUTPUT«Coke--␤»
04:00 [Coke] wow, even the profile output from autarch's pod to html's basic.t is choking my copy of chrome.
04:00 * [Coke] wonders if he has to try to another upgrade there.
04:00 autarch [Coke]: yep, had the same problem
04:00 autarch I really think the profiler output needs some rethinking - JSON is not a great format for huge amounts of data since you can't really parse it from a stream
04:01 autarch although even with a format that doesn't require "read everything and parse it all at once" I wonder how perl6 would handle huge amounts of data
04:02 [Coke] is it json that is parsed and turned into code, or is it interpreted as raw JS?
04:02 [Coke] it's been a while since I poked.
04:02 [Coke] json.parse... yah, that'd do it.
04:02 autarch but what I mean is that you have to parse the whole data structure before you can do anything with it
04:03 autarch as opposed to something where you could build up your internal representation as you stream in data
04:03 [Coke] autarch: one possible thing that might help is making something that's a data structure, not just a bunch of keys/objects. (keep the size of the giant object down)
04:03 autarch that said, none of that matters for the web browser
04:04 kaare_ joined #perl6
04:04 autarch I kind of doubt there's any way to make something where the profiler lives in JS only for large programs - my profile of htmlify.p6 --sparse=20 was 83MB
04:04 autarch nytprof handles huge files that reasonably well, in my experience
04:04 [Coke] TimToady: 6.41% of the time in this basic.t test file is in sink-all
04:07 [Coke] autarch: does it surprise you that basic.t created 34K+ Scalars?
04:08 autarch [Coke]: heh, yes, it sure does!
04:09 autarch I didn't think the code I wrote was particularly egregious - it's not super optimized but I don't think it's doing anything crazy awful
04:10 [Coke] hurm. I am using the INSTALLED versions of the lib in the test. one sec.
04:11 autarch [Coke]: I just ran a profile and I see the same results as you
04:11 autarch it all seems to be happening in m-CORE.setting
04:13 [Coke] I imagine if we could cut back the allocations, that'd kill some GC that's going on...
04:13 autarch which I now realize is just a concatenation of all the core code
04:14 [Coke] OOC, why did you make the attributes Cool and not Str?
04:14 Arrowhead joined #perl6
04:17 autarch [Coke]: oh, you're asking me
04:17 * autarch tries to remember ...
04:17 autarch ah, because I thought people might end up passing things like match objects or something along those lines
04:18 autarch maybe it should be Stringy?
04:18 autarch honestly, I'm just guessing at a lot of things ;)
04:18 [Coke] I would start with the simplest thing that passes tests, and Str seems simpler.
04:19 [Coke] You can define the methods that take them as coercing to str, so they can pass anything with a .Str method.
04:19 autarch ah, yes, that's what I want to do
04:19 autarch how do I do that?
04:20 autarch ah, found http://doc.perl6.org/language/functions#Coercion_Types
04:22 [Coke] m: class barf { method ew(Str(Any) $x) { say $x, $x.WHAT}}; barf.ew(3)
04:22 camelia rakudo-moar 64a61a: OUTPUT«3(Str)␤»
04:22 colomon FROGGS, nine, ugexe: I’m trying to get ABC working again with latest rakudo.
04:22 colomon It’s crashing at https://github.com/rakudo/rakudo/blob/nom/src/core/CompUnit/Repository/Installation.pm#L41
04:22 colomon (well, at the code that line generates)
04:23 colomon The problem is calling Installation.files without a name parameter.
04:23 colomon That causes a crash at https://github.com/rakudo/rakudo/blob/nom/src/core/CompUnit/Repository/Installation.pm#L207
04:23 colomon because you cannot call nqp::sha1 on Any
04:24 colomon (error message is Cannot unbox a type object)
04:24 azwieg103 joined #perl6
04:24 colomon maybe this is getting triggered because of something I’m doing wrong, but I don’t see how the code at line 41 can ever work
04:25 llfourn joined #perl6
04:30 furn joined #perl6
04:33 [Coke] that docs build is still running.
04:34 [Coke] if the site craps out again after I go to sleep, su - to docs.perl6.org, cd $HOME/doc, and run util/sync as a stopgap.
04:34 [Coke] (and maybe disable the cron job until we figure out the breakage). with that latest commit, I imagine the issue will be that the site stops updating.
04:36 [Coke] autarch: I don't see anything useful to tell you. (the cool vs. str isn't going to be a performance win, I don't think)
04:36 autarch nope, makes no differerence, AFAICT
04:45 dalek rakudo/nom: 16c5fc7 | TimToady++ | src/Perl6/Actions.nqp:
04:45 dalek rakudo/nom: indirect meta calls also need to want args
04:45 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/16c5fc7ab4
04:49 nash joined #perl6
04:54 vendethiel joined #perl6
04:57 TimToady m: my @a = -1, 2, -3; say [+] (.abs + .abs for @a)
04:57 camelia rakudo-moar 16c5fc: OUTPUT«12␤»
04:57 TimToady all better
04:57 TimToady not that anyone actually filed a bug for it...
05:06 zwu joined #perl6
05:08 AlexDaniel I am fixing some typos in S99 and… “self cloakng code”? That should have been “Self-clocking code”, right? Unless somebody came up with an idea of “self-cloaking code”, honestly I wouldn't be suprised.
05:09 Dee22 joined #perl6
05:09 hlsg left #perl6
05:13 [Coke] looks like the doc build finally finished. we now have categorized search results.
05:14 labster coke++
05:14 [Coke] AlexDaniel: it looks like it doesn't have a defintion, yes? just kill it
05:14 [Coke] *definition
05:15 [Coke] looks like the css is cached by default. refresh away.
05:15 labster I just unbroke File::Find::Duplicates after the GLR changes.  I guess I'm a little late to the party.
05:15 [Coke] I have no problem if someone updates the css to make that prettier.
05:16 AlexDaniel [Coke]: categorized search results! Nice!
05:17 AlexDaniel [Coke]: nah, I'll just fix it. Maybe some day someone will write a description. “Or if you are not sure what the missing term means, just add a header for the term.”
05:18 [Coke] fix it why?
05:18 [Coke] if there's no definition, there's no reason for it to be there.
05:18 [Coke] just rip it out and we can forget about it. :)
05:19 AlexDaniel well, self-clocking code is mentioned in several places
05:19 [Coke] it was added as part of a huge commit that was doing something else...
05:19 AlexDaniel so I'd love to see a definition
05:19 [Coke] ok.
05:26 Cabanossi joined #perl6
05:27 yurivish What does it mean when an array's .perl representation prints as $[1 2 3]? I'm trying to zip two of these together and they're being treated as single elements. I guess it's somehow a "scalar containing an array", but what do I do to turn it back into a regular one?
05:28 skids yurvish: put an @ or | in front depening on what you are doing.
05:28 yurivish This has come up in using JSON::Tiny; I'm trying to process some results I got from an http request. Right now I'm assigning two json arrays to two @array variables, which turn out to be "scalars containing arrays" instead
05:29 yurivish skids: thanks! I can paste some code here to show you what I'm doing.. What's the best way?
05:29 skids gist.github.org probably
05:31 yurivish https://gist.github.com/yurivish/4a70b891f6ffc17bb0ba
05:31 yurivish the $json.perl line prints an array starting with $[
05:32 skids yurivish: that would mean it's a Scalar containing an Array which would be normal.
05:32 skids It is the Z line you are expecting to work differently?
05:33 yurivish Yeah – I'm expecting @competions to be an array, @scores to be an array, and the Z line to return a list of pairs ((completions1 scores1) (completions2 scores2) ...).
05:33 yurivish but it seems to return ((completions scores)) or something similar
05:34 skids do @completeions and @scores have $[?
05:35 yurivish skids: Oddly, they have [[ and ]]. Hadn't noticed that before.
05:36 skids yurivish: that would mean they are arrays of arrays and you may need to either de-index or flatten.
05:37 skids Also normally, Z will return a ist of lists so the resulting array will be an array of the tuples.
05:37 skids m: perl6 -e 'my @d = [1,2,3]; @d.perl.say; my @e = @d Z @d; @e.perl.say
05:37 camelia rakudo-moar 16c5fc: OUTPUT«5===SORRY!5=== Error while compiling /tmp/W03TEs86Hu␤Two terms in a row␤at /tmp/W03TEs86Hu:1␤------> 3perl6 -e7⏏5 'my @d = [1,2,3]; @d.perl.say; my @e = ␤    expecting any of:␤        infix␤        infix stopper␤        postfix␤  …»
05:37 skids m: my @d = [1,2,3]; @d.perl.say; my @e = @d Z @d; @e.perl.say
05:37 camelia rakudo-moar 16c5fc: OUTPUT«[1, 2, 3]␤[(1, 1), (2, 2), (3, 3)]␤»
05:38 skids But you can destroy the inner lists with flat.
05:38 skids m: my @d = [1,2,3]; @d.perl.say; my @e = flat @d Z @d; @e.perl.say
05:38 camelia rakudo-moar 16c5fc: OUTPUT«[1, 2, 3]␤[1, 1, 2, 2, 3, 3]␤»
05:38 yurivish okay, I'm now trying to figure out where the second layer's coming from...
05:40 yurivish Aha, so $json is a Scalar containing an Array. The second element of $json is itself an Array. When I grab it and print it via say $json[1].perl, it prints as a scalar containing an array.
05:40 dalek specs: 94357cc | (Aleks-Daniel Jakimenko-Aleksejev)++ | S99-glossary.pod:
05:40 dalek specs: Typos, markup corrections, trailing whitespace
05:40 dalek specs: review: https://github.com/perl6/specs/commit/94357ccfeb
05:40 yurivish When I printed $json.perl, it only showed a $ around the outer array and not any of those inside the json
05:41 yurivish Apparently indexing into any scalar containing an array has that behavior
05:42 skids Right the inside of an array is autmoatically scalarized so the $'s do not show.
05:42 yurivish so when it goes to convert that to an array (or whatever it's doing) to assign to an @variable, I'm guessing it's wrapping it in another layer?
05:42 skids No it's just you ca't see the $'s
05:43 skids m: my $d = [1,2,[3,4]]; $d.perl.say;
05:43 camelia rakudo-moar 16c5fc: OUTPUT«$[1, 2, [3, 4]]␤»
05:44 yurivish m: my $s = $[1, [2, 3]]; $s[1].perl.say; my @a = $s[1]; @a.perl.say
05:44 camelia rakudo-moar 16c5fc: OUTPUT«$[2, 3]␤[[2, 3],]␤»
05:45 yurivish What do you mean when you say that you can't see the $'s?
05:45 skids m: my $d = [1,2,[3,4]]; $d.perl.say; $d[2].perl.say; # This
05:45 camelia rakudo-moar 16c5fc: OUTPUT«$[1, 2, [3, 4]]␤$[3, 4]␤»
05:46 skids m: my $d = (1,2,(3,4)); $d.perl.say; $d[2].perl.say; # Only Arrays do it, not lists
05:46 camelia rakudo-moar 16c5fc: OUTPUT«$(1, 2, (3, 4))␤(3, 4)␤»
05:46 yurivish Right, I got that. But why is it that my @a doesn't print with a $ prefix on the inner array?
05:46 skids It is assumed behavior, just one of the things you have to learn.
05:47 skids (Compared to the other ways of doing it, it was a less anoying wart)
05:47 yurivish okay. might be one of those things a bit over my head for the moment. Just started playing with perl 6 a few days ago and haven't programmed in any Perl before. Thank you for helping me!
05:48 yurivish Is the best way to not get the "nesting" to flatten the array afterwards, or is there a way to avoid it in the first place?
05:48 skids Actally it was over the head of everyone until after several attempts to work out the wrinkles in the least incosistent way :-)
05:48 skids Well in this case you are working with a module so using flat when you assign is probably good.
05:53 labster "Type Bool does not support associative indexing."  Well, that's a new one.
05:53 skids Actually in this case I think you need | not flat.
05:55 skids m: True{4}
05:55 camelia rakudo-moar 16c5fc: OUTPUT«Type Bool does not support associative indexing.␤  in block <unit> at /tmp/xIj5BHPm8y line 1␤␤Actually thrown at:␤  in block <unit> at /tmp/xIj5BHPm8y line 1␤␤»
05:55 yurivish so I fixed it by using := assignments everywhere to peel off the outer wrapping. No idea if this is terrible, but it seems to work?
05:56 skids That will mean you are directly accessing the returned array, so if you utate it, it will change.  If that's OK it should be fine.
05:56 yurivish I couldn't quite grasp how "flat" was the thing I wanted since what I have is a JSON structure of the form [..., [1, 2, 3], ..., { 'thing': [4, 5, 6], ...}]
05:57 yurivish and I want to zip [1, 2, 3] with [4, 5, 5]
05:57 yurivish and the json data comes wrapped in a $[..., [1, 2, 3], ...] when I get it from from-json
05:57 yurivish wrapped as*
05:58 skids It's because $s[1] is behaving like $s[0..1] woud just with one element.
05:58 skids The $ protects from flattening.
05:58 yurivish I see
05:58 skids If it was in an @0sigiled variable it would not be protected.
05:59 skids @-sigiled, that is (I hate this keyboard)
05:59 yurivish m: flat($[1, [2, 3]]).perl.say;
05:59 camelia rakudo-moar 16c5fc: OUTPUT«($[1, [2, 3]],).Seq␤»
06:00 skids m: (| $[1, [2, 3]]).perl.say;
06:00 camelia rakudo-moar 16c5fc: OUTPUT«slip(1, $[2, 3])␤»
06:00 yurivish !
06:00 skids that slip is an object that will interpolate into surrounding lists
06:01 skids So:
06:01 skids m: (1, | $[1, [2, 3]], 4).perl.say;
06:01 camelia rakudo-moar 16c5fc: OUTPUT«(1, 1, $[2, 3], 4)␤»
06:01 nash joined #perl6
06:02 skids Basically | breaks one $ thing, and flat breaks multiple (),(),()
06:03 yurivish got it.
06:05 skids (and then you have to remember that inside [] there are invisible $'s)
06:05 labster m: my $v = rx/foo/; say("foobar" ~~ $v); say("foobar" ~~ /foo/) #anyone know why these are different?
06:05 camelia rakudo-moar 16c5fc: OUTPUT«True␤「foo」␤»
06:06 skids /foo/ is like m/foo/
06:07 sumdumgoi joined #perl6
06:07 yurivish what happens to simpler values, like strings, inside of a $[]? They seem to be able to be taken out via an indexing operation just fine
06:07 skids Though... hmm.
06:07 skids Scalars containing scalars automatically collapse.
06:07 * sumdumgoi submitted his first perl6 bug :)
06:08 labster sumdumgoi++
06:08 sumdumgoi :)
06:08 skids m: say("foobar" ~~ rx/foo/); say("foobar" ~~ /foo/)
06:08 camelia rakudo-moar 16c5fc: OUTPUT«「foo」␤「foo」␤»
06:09 skids m: my $v := rx/foo/; say("foobar" ~~ $v); say("foobar" ~~ /foo/)
06:09 camelia rakudo-moar 16c5fc: OUTPUT«True␤「foo」␤»
06:09 skids That is weird.
06:10 labster It's witchcraft.
06:10 skids We'll have to get a wizard ruling on that.
06:10 labster Anyone in here wearing a WIZZARD hat?
06:11 mempko joined #perl6
06:11 * sumdumgoi puts on robe and... nope, can't find wizard hat! :P
06:12 skids m: my $v = rx/foo/; say("foobar" ~~ $v); $/.say; say("foobar" ~~ /foo/); $/.say
06:12 camelia rakudo-moar 16c5fc: OUTPUT«True␤「foo」␤「foo」␤「foo」␤»
06:13 labster sumdumgoi: here, 🎩 will have to do
06:13 * sumdumgoi dons magician's hat 🎩
06:14 labster skids: this is what is currently breaking Lingua::Number, but I have no idea when the regression happened because I let my module bitrot a while.
06:14 skids star: m: my $v = rx/foo/; say("foobar" ~~ $v); $/.say; say("foobar" ~~ /foo/); $/.say
06:14 camelia star-m 2015.09: OUTPUT«「foo」␤「foo」␤「foo」␤「foo」␤»
06:14 skids Well, since September
06:14 labster Ah, not *that* bad.
06:15 Arrowhead joined #perl6
06:15 yurivish hang on, somehow @completions and @scores are still Arrays, even though they now Zip... But they zip to an array of lists, rather than a list of pairs as I was expecting o_o
06:15 labster .oO (Watch me pull a 🐇 out of my 🎩! )
06:16 skids You were wanting the Z to produce Pair objects?
06:16 yurivish I thought it did when it operated on lists?
06:16 yurivish oh, I guess that makes no sense in the general case
06:16 yurivish sure, never mind
06:16 skids Yeah, use pairup
06:17 skids m: my @d = [1,2,3]; @d.perl.say; my @e = (flat @d Z @d).pairup; @e.perl.say
06:17 camelia rakudo-moar 16c5fc: OUTPUT«[1, 2, 3]␤[1 => 1, 2 => 2, 3 => 3]␤»
06:23 yurivish skids: thanks, it's working now and I understand some new things :)
06:23 skids yurivish: np
06:36 xpen joined #perl6
06:40 xpen_ joined #perl6
06:48 xpen joined #perl6
06:51 pdcawley joined #perl6
06:56 CIAvash joined #perl6
07:04 crux joined #perl6
07:04 kivutar joined #perl6
07:06 xpen_ joined #perl6
07:08 cbk__ joined #perl6
07:09 Arrowhead joined #perl6
07:17 ChoHag If I put this: 'BEGIN { say "start" }; class Foo { ... }; class Bar is Foo { method baz { ... }}' in a module file and then use or -M it, it complains that Foo is only stubbed _before_ running the BEGIN phaser.
07:17 ChoHag In-line is fine though:
07:17 ChoHag m: BEGIN { say "start" }; class Foo { ... }; class Bar is Foo { method baz { ... }}
07:17 camelia rakudo-moar 16c5fc: OUTPUT«start␤5===SORRY!5=== Error while compiling /tmp/gPaBiV6Vpq␤'Bar' cannot inherit from 'Foo' because 'Foo' isn't composed yet (maybe it is stubbed)␤at /tmp/gPaBiV6Vpq:1␤»
07:17 ChoHag It also complains after the BEGIN phaser is executed.
07:19 ellybelly joined #perl6
07:49 nine .tell webstrand yes, RAKUDO_PREFIX was introduced after 2015.12
07:49 yoleaux nine: I'll pass your message to webstrand.
07:55 itaipu joined #perl6
07:55 nash joined #perl6
07:56 orbus oh great #perl6, I seek your wisdom once more
07:56 orbus if I'm writing a module
07:56 orbus and I have custom exceptions in it
07:56 orbus is there any way to export them so they show up in the X:: namespace like the docs suggest they should?
07:57 orbus I tried naming them like X::MyModule::MyException
07:57 orbus but they then come out in the main program as MyModule::X::MyModule::MyException
07:57 orbus which makes sense but was not the desired effect
07:58 orbus or is the X:: namespace really just for the built-in exceptions and I should just put custom ones in my module namespace?
07:59 labster The X:: namespace is definitely the right place to put your own exceptions.
07:59 orbus okay
07:59 orbus that's what I thought
07:59 orbus now... how to do it
07:59 orbus I thought I was doing it right until I tried to catch one in the main program
07:59 labster use Module::Name;
07:59 TimToady did you put 'is export' on them?
07:59 orbus yup
08:00 orbus that was the first thing I tried
08:00 labster what error did you get, orbus?
08:02 TimToady m: module Mine { class X::Foo is export { method bar() { say "HERE" } } }; import Mine; say X::Foo.bar
08:02 camelia rakudo-moar 16c5fc: OUTPUT«HERE␤True␤»
08:02 TimToady seems to work here...
08:02 BenGoldberg joined #perl6
08:02 orbus hang on a second
08:02 orbus something else is amiss
08:03 TimToady m: module Mine { my class X::Foo is export { method bar() { say "HERE" } } }; import Mine; say X::Foo.bar
08:03 camelia rakudo-moar 16c5fc: OUTPUT«HERE␤True␤»
08:04 orbus shouldn't it be my class X::Foo is Exception is export?
08:04 orbus I apparently have some other bug in my code I need to iron out first btw
08:04 TimToady well, I was just testing the exporting
08:05 orbus will have to come back to deal with the exceptions
08:05 orbus well
08:05 orbus let me try another script I had that was acting up
08:05 TimToady m: module Mine { my class X::Foo is Exception is export { method bar() { say "HERE" } } }; import Mine; say X::Foo.new.bar
08:05 camelia rakudo-moar 16c5fc: OUTPUT«HERE␤True␤»
08:05 orbus basically when I tried to call a CATCH block
08:05 TimToady m: module Mine { my class X::Foo is Exception is export { method bar() { say "HERE" } } }; import Mine; say X::Foo.new(payload => "stuff").message
08:05 camelia rakudo-moar 16c5fc: OUTPUT«Method 'message' not found for invocant of class 'Mine::X::Foo'␤  in block <unit> at /tmp/q1Pnlg65yh line 1␤␤»
08:06 TimToady hmm
08:06 orbus like CATCH { when X::Foo {.resume} }
08:06 orbus it was acting like it didn't know what X::Foo was
08:06 TimToady m: module Mine { my class X::Foo is X::AdHoc is export { method bar() { say "HERE" } } }; import Mine; say X::Foo.new(payload => "stuff").message
08:06 camelia rakudo-moar 16c5fc: OUTPUT«stuff␤»
08:06 TimToady it really is an exception there
08:08 TimToady m: module Mine { my class X::Foo is X::AdHoc is export { method bar() { say "HERE" } } }; import Mine; say X::Foo.new(payload => "stuff") ~~ X::Foo
08:08 camelia rakudo-moar 16c5fc: OUTPUT«True␤»
08:08 TimToady it smartmatches, so it oughta work inside CATCH too
08:10 [Tux] csv-ip5xs        50000    18.315    18.204
08:10 [Tux] test             50000    23.493    23.381
08:10 [Tux] test-t           50000    15.071    14.959
08:10 [Tux] csv-parser       50000    52.364    52.252
08:10 TimToady m: module Mine { my class X::Foo is X::AdHoc is export { method bar() { say "HERE" } } }; import Mine; die X::Foo.new(payload => "stuff"); CATCH { when X::Foo { say "Caught X::Foo" } }
08:10 camelia rakudo-moar 16c5fc: OUTPUT«Caught X::Foo␤»
08:10 [Tux] not good, I'll run it another time, just to be sure
08:10 orbus oh huh
08:10 orbus now it's failing to actually die properly
08:10 orbus whaaaaaa....
08:11 darutoko joined #perl6
08:11 [Tux] same, still over 15 :(
08:13 orbus now I'm seeing something even weirder
08:13 orbus have to come up with a test case
08:14 RabidGravy joined #perl6
08:15 TimToady [Tux]: I don't see anything that would have caused that since 24 hours ago
08:16 * [Tux] just being the messenger :/
08:17 [Tux] I'll try again this afternoon. I also see no probable cause in higher resource usage by other programs on this box
08:18 orbus m: module Mine { my class X::Foo is Exception is export {} }; import Mine;  sub blah {say 'x'; die X::Foo; say 'y'}; blah; CATCH{ when X::Foo { say 'caught' } };
08:18 camelia rakudo-moar 16c5fc: OUTPUT«x␤Died with undefined Mine::X::Foo␤  in sub blah at /tmp/g8HwCZeCtJ line 1␤  in block <unit> at /tmp/g8HwCZeCtJ line 1␤␤»
08:18 orbus okay, so it doesn't seem to like that for sure
08:20 orbus oh wait, I didn't do new there
08:20 orbus m: module Mine { my class X::Foo is Exception is export {} }; import Mine;  sub blah {say 'x'; die X::Foo.new; say 'y'}; blah; CATCH{ when X::Foo { say 'caught' } };
08:20 camelia rakudo-moar 16c5fc: OUTPUT«x␤caught␤»
08:20 orbus okay, so that works - at least here
08:20 orbus so maybe I"m doing something wrong in my other code
08:20 orbus saw something else weird though
08:21 orbus m: module Mine { my class X::Foo is Exception is export {} }; import Mine;  sub blah {say 'x'; die X::Foo.new; say 'y'}; blah; CATCH{ when X::Foo { .resume } };
08:21 camelia rakudo-moar 16c5fc: OUTPUT«x␤y␤»
08:22 orbus is that by design?  that it should resume from *within* the function call it died inside?
08:22 orbus maybe I didn't read the docs close enough
08:23 orbus that seems both potentially useful and terribly dangerous
08:23 TimToady yes, and only that is why only resumable exceptions are, er, resumable
08:24 TimToady in general we call those "warnings" though
08:24 nine colomon: you still up?
08:24 TimToady it's usually a bad plan to try to resume an exception where the code throwing the exception isn't expecting to be resumed
08:24 orbus right
08:25 orbus well I'm just extending the base Exception class
08:25 orbus how would I specify I don't *want* my custom exception to be resumable?
08:25 orbus at least not inside my code
08:25 orbus if they want to pick up the pieces and continue after the catch block, that's fine
08:25 nine .tell colomon you're totally right, that .files call can never work. OTOH all you're missing out on is an error message, telling you that the script could not be found.
08:25 yoleaux nine: I'll pass your message to colomon.
08:26 TimToady I'm not sure how an exception gets a resume continuation in the first place, but presumably you could override the resume method to prevent it
08:27 TimToady but given it's after midnight here, I'm gonna hit the hay
08:27 orbus yeah, here too
08:28 orbus m: module Mine { my class X::Foo is Exception is export {sub resume {};} }; import Mine;  sub blah {say 'x'; die X::Foo.new; say 'y'}; blah; CATCH{ when X::Foo { .resume } };
08:28 camelia rakudo-moar 16c5fc: OUTPUT«x␤y␤»
08:28 orbus that wasn't enough btw
08:28 orbus but actually it's 2am here
08:28 orbus time for sleep
08:28 telex joined #perl6
08:29 labster Ah, the mythical UTC-6.5 time zone exists
08:29 labster Good night orbus, TimToady
08:29 orbus I rounded
08:29 orbus it's 2:30
08:30 orbus night!
08:31 Ox0dea joined #perl6
08:32 Ox0dea m: say [1,2,3]>>.WHO
08:32 camelia rakudo-moar 16c5fc: OUTPUT«Array␤»
08:32 Ox0dea Is that right?
08:32 Ox0dea m: say [1.WHO, 2.WHO]
08:32 camelia rakudo-moar 16c5fc: OUTPUT«[Int Int]␤»
08:32 nine .tell colomon so the more important question is, why can it not find its script?
08:32 yoleaux nine: I'll pass your message to colomon.
08:36 _nadim good morning all.
08:37 mort96 Good morning
08:38 _nadim I require a module and ask for one symbole to be imported but that fails. if I use the module all is fine.
08:38 _nadim I tried to go through GLOBAL::Module::sub_symbole, didn't work either.
08:40 RabidGravy _nadim, you're going to have to give more detail as it *does* work
08:40 masak good morning, #perl6
08:40 RabidGravy good morning BTW
08:43 cpage joined #perl6
08:43 CIAvash _nadim: https://rt.perl.org/Public/Bug/Display.html?id=126658 ?
08:44 _nadim RabidGravy: and good morning to you (a second special one :) )
08:45 _nadim CIAvash: that's it.
08:45 _nadim RabidGravy: it does work as I use the module and call the exported sub and it does what it sshould ;)
08:46 _nadim masak: morning
08:46 _nadim is there a way around this bug? through a symbole table or such?
08:54 rickbike joined #perl6
08:55 mkz joined #perl6
08:58 RabidGravy _nadim, try "need" rather than "require" as it appears to work in circumstances that require doesn't
09:03 cpage joined #perl6
09:05 domidumont joined #perl6
09:05 * masak .oO( if that fails, try "request", "obligate", "enjoin", "entail" or "crave" ) :P
09:05 cpage joined #perl6
09:07 RabidGravy :)
09:07 patrickz joined #perl6
09:07 RabidGravy I'm still not completely clear on the difference between "require" and "need"
09:08 nine .tell mst I think we're gonna have to be smarter about identifying usable precomp files anyway. Right now, we have to precomp all modules again after installing any module. And precomp files created by panda are invalidated as soon as you install a vendor module package
09:08 yoleaux nine: I'll pass your message to mst.
09:08 Actualeyes joined #perl6
09:08 nine RabidGravy: need is compile time, require is runtime
09:09 RabidGravy ah, that would explain it, I thought need was runtime for some reason
09:09 andreoss joined #perl6
09:09 RabidGravy so need is like use but doesn't do import
09:10 andreoss m: my @x = ^10; ( |@=|@x ).perl.say
09:10 camelia rakudo-moar 16c5fc: OUTPUT«slip()␤»
09:10 andreoss m: my @x = ^10; ( |(@=(|@x)) ).perl.say
09:10 camelia rakudo-moar 16c5fc: OUTPUT«slip(0, 1, 2, 3, 4, 5, 6, 7, 8, 9)␤»
09:10 nine need = BEGIN require; use = BEGIN { require; import }
09:10 domidumont joined #perl6
09:10 andreoss what would be a precedence here?
09:10 RabidGravy nine, got it
09:11 andreoss m: my @x = 1 xx 2 ** 16; my @y; @y.push(|@x); say @y.elems
09:11 camelia rakudo-moar 16c5fc: OUTPUT«Too many arguments in flattening array.␤  in block <unit> at /tmp/hS0hZfGqQO line 1␤␤»
09:11 andreoss m: my @x = 1 xx 2 ** 16; my @y; @y.push($=|@x); say @y.elems
09:11 camelia rakudo-moar 16c5fc: OUTPUT«65536␤»
09:11 andreoss why?
09:12 RabidGravy bit early for existential anguish I'm afraid
09:14 cognominal joined #perl6
09:14 firstdayonthejob joined #perl6
09:14 andreoss m: my @x = ^10; ( |(@=|@x) ).perl.say
09:14 camelia rakudo-moar 16c5fc: OUTPUT«slip(0, 1, 2, 3, 4, 5, 6, 7, 8, 9)␤»
09:15 andreoss m: my @x = ^10; ( |($=|@x) ).perl.say
09:15 camelia rakudo-moar 16c5fc: OUTPUT«slip(0, 1, 2, 3, 4, 5, 6, 7, 8, 9)␤»
09:15 andreoss m: my @x = 1 xx 2 ** 16; my @y; @y.push(@=|@x); say @y.elems
09:15 camelia rakudo-moar 16c5fc: OUTPUT«1␤»
09:15 andreoss m: my @x = 1 xx 2 ** 16; my @y; @y.push(|@=|@x); say @y.elems
09:15 camelia rakudo-moar 16c5fc: OUTPUT«0␤»
09:17 andreoss $ and @ are a bit counter-intuitive here
09:19 andreoss why with extra-wrapping the amount of arguments is not checked?
09:20 vividsnow joined #perl6
09:21 * masak looks at that and is lost
09:22 Begi joined #perl6
09:22 nine @y.push($=|@x) means @y.push(@x.Slip.item); That means that the .push method gets only a single argument and uses the iterator API to get at the items.
09:23 RabidGravy I was lost the moment I woke up
09:23 nine @y.push(|@x) really means @y.push(1, 1, 1, 1, ...) thus hitting the arguments count limit
09:24 andreoss nine: on what side the unwrapping happens?
09:25 cibs joined #perl6
09:25 lnrdo joined #perl6
09:25 andreoss m: my @x = 1 xx 2 ** 16; my @y; @y.push(@x.Slip); say @y.elems
09:25 camelia rakudo-moar 16c5fc: OUTPUT«65536␤»
09:26 masak TimToady: [backlogging] I hadn't grokked http://irclog.perlgeek.de/perl6/2015-12-22#i_11759900 at all before!
09:26 masak TimToady: and if I haven't understood an intended use of an operator, chances are other Perl 6 users have missed it too. :)
09:27 masak TimToady: is there anywhere on RC that this logic programming use of `andthen` is demonstrated?
09:27 masak TimToady: or, if not, could a compelling example be put together? :)
09:28 nine andreoss: run it with --target=ast to see the difference in detail :)
09:28 pierre-vigier joined #perl6
09:29 andreoss okay
09:29 masak nine: "hitting the arguments count limit"? as in, if you do too many arguments to .push, the arguments are silently dropped?
09:30 masak I agree 2 ** 64 arguments are a bit over the top, but...
09:30 nine m: my @x = 1 xx 2 ** 16; my @y; @y.push(|@x); say @y.elems
09:30 camelia rakudo-moar 16c5fc: OUTPUT«Too many arguments in flattening array.␤  in block <unit> at /tmp/vb8i4OTqdV line 1␤␤»
09:30 nine As in error message :)
09:30 masak ach.
09:31 RabidGravy can't it suggest "append" there as well ;-)
09:31 ShimmerFairy The error message should be "Congratulations, you've hit the secret limit on number of arguments (2**16)! Consider better coding practices."    :P
09:31 RabidGravy :)
09:32 masak I once hit another limit where I had too many lexicals in a block.
09:32 masak yes, it was generated code.
09:34 RabidGravy I do wonder, considering that about 2/3 of all the m: things are to do with listy things, whether that part of the language is perhaps too rich ;-)
09:35 masak it could be argued that Perl is largely to do with listy things.
09:35 Ox0dea s/Perl/programming/
09:40 spider-mario joined #perl6
09:44 _mg_ joined #perl6
09:49 _nadim nine:  so need (vs require) is compile time, which means that it doesn't help if I have it in a try block. I need to load a module only if it is installed.
09:52 RabidGravy _nadim, are you in a position to do "require Foo <&whatever>" ?
09:53 RabidGravy it just needs to be a list of symbol names so you can make that however you want
09:55 virtualsue joined #perl6
09:55 _nadim RabidGravy: yes but ther's a bug, as reported earlier, that breaks that
09:55 RabidGravy did you try it?
09:57 _nadim Yes
09:58 nine _nadim: what bug?
09:59 _nadim a bug report here https://rt.perl.org/Public/Bug/Display.html?id=126658
10:01 _nadim Here is one more "fun". I don't know if this is the expected behavior but I find it strange. http://nopaste.linux-dev.org/?911147
10:02 _nadim I don't get why I get the error "too few positionals passed. There is jsut one element,  A Pair.
10:04 Arrowhead joined #perl6
10:05 timotimo is it about the last line?
10:06 timotimo my $s = [ hash => { f => [<a b c>], s => <a b c> } ]; say ($s.list Z 0 .. *).perl
10:06 timotimo m: my $s = [ hash => { f => [<a b c>], s => <a b c> } ]; say ($s.list Z 0 .. *).perl
10:06 camelia rakudo-moar 16c5fc: OUTPUT«((:hash({:f($["a", "b", "c"]), :s($("a", "b", "c"))}), 0),).Seq␤»
10:07 timotimo m: my $s = [ hash => { f => [<a b c>], s => <a b c> } ]; for ($s.list Z 0 .. *) -> ($k, $v) { say $k; say $v }
10:07 camelia rakudo-moar 16c5fc: OUTPUT«Too few positionals passed; expected 2 arguments but got 1 in sub-signature␤  in block <unit> at /tmp/iaEpa8JteM line 1␤␤»
10:07 timotimo m: my $s = [ hash => { f => [<a b c>], s => <a b c> } ]; for ($s.list Z 0 .. *) -> $k, $v { say $k; say $v }
10:07 camelia rakudo-moar 16c5fc: OUTPUT«Too few positionals passed; expected 2 arguments but got 1␤  in block <unit> at /tmp/ZMGrkohMqt line 1␤␤»
10:07 timotimo m: my $s = [ hash => { f => [<a b c>], s => <a b c> } ]; for ($s.list Z 0 .. *) -> $_ { say $_.perl }
10:07 camelia rakudo-moar 16c5fc: OUTPUT«$(:hash({:f($["a", "b", "c"]), :s($("a", "b", "c"))}), 0)␤»
10:08 timotimo m: my $s = [ hash => { f => [<a b c>], s => <a b c> } ]; for ($s.list Z 0 .. *) -> $_ { say $_[0].perl; say $_[1].perl }
10:08 camelia rakudo-moar 16c5fc: OUTPUT«:hash({:f($["a", "b", "c"]), :s($("a", "b", "c"))})␤0␤»
10:08 _nadim timotimo: yes last line, both constructs do the same thing, one works, one breaks
10:08 timotimo m: my $s = [ hash => { f => [<a b c>], s => <a b c> } ]; for ($s.list Z 0 .. *) -> $_ ($k, $v) { sak $k.perl }
10:08 camelia rakudo-moar 16c5fc: OUTPUT«5===SORRY!5=== Error while compiling /tmp/cxHi0mlRnj␤Undeclared routine:␤    sak used at line 1. Did you mean 'say'?␤␤»
10:08 Begi joined #perl6
10:08 timotimo m: my $s = [ hash => { f => [<a b c>], s => <a b c> } ]; for ($s.list Z 0 .. *) -> $_ ($k, $v) { say $k.perl }
10:08 camelia rakudo-moar 16c5fc: OUTPUT«Too few positionals passed; expected 2 arguments but got 1 in sub-signature of parameter $_␤  in block <unit> at /tmp/a3p3wTwsbV line 1␤␤»
10:08 timotimo that doesn't seem to unpack right, yeah
10:08 timotimo btw, did you know about .kv?
10:09 timotimo m: my $s = [ hash => { f => [<a b c>], s => <a b c> } ]; for $s.kv -> ($k, $v) { say "$k.perl() $v.perl()" }
10:09 camelia rakudo-moar 16c5fc: OUTPUT«Too few positionals passed; expected 2 arguments but got 0 in sub-signature␤  in block <unit> at /tmp/ncyV_rZ2e9 line 1␤␤»
10:09 timotimo huh, that's ... something
10:09 timotimo m: my $s = [ hash => { f => [<a b c>], s => <a b c> } ]; for $s.kv -> $_ { .perl.say }
10:09 camelia rakudo-moar 16c5fc: OUTPUT«0␤:hash({:f($["a", "b", "c"]), :s($("a", "b", "c"))})␤»
10:09 nine _nadim: how would this work anyway to load the module only if it installed but at the same time depending on exported subs? Your code would not compile without the module anyway?
10:10 _nadim nine: right but, as I asked before, I can try to find the symbole I need in some symbole table.
10:11 timotimo m: my $s = [ hash => { f => [<a b c>], s => <a b c> } ]; for $s.kv -> [$k, $v] { "$k.perl() $v.perl()".say }
10:11 camelia rakudo-moar 16c5fc: OUTPUT«Type check failed in binding <anon>; expected Positional but got Int␤  in block <unit> at /tmp/STj87aHdMQ line 1␤␤»
10:11 nine _nadim: sounds like very much effort. I wonder what it's for?
10:11 timotimo tbh, i don't know what's going on there
10:11 RabidGravy _nadim, if they're not our scope than they're not in anywhere you can find, and if they are our you don't need to import them
10:12 _nadim nine: I want to use a module if it is installed and handle the error if it is not.
10:13 _nadim I thought something  like my @table = GLOBAL::Text::Table::Simple::lol2table(@columns,@rows);
10:13 _nadim RabidGravy: the sub is exported by the module I want to load
10:13 RabidGravy yes
10:15 shicheng joined #perl6
10:16 nine _nadim: that much I already got. I'm wondering about the specifics. Which module is it you want to use?
10:17 _nadim the module is Text::Table::Simple but I don't see why would be module specific.
10:18 _nadim if I use the module, all is fine but it is in a test and I am not forcing people to install a zillion modules.
10:18 _nadim Not that we have a zillion modules :)
10:19 _nadim timotimo:  I have a work around but it is ass ugly. shall I report this?
10:19 espadrine joined #perl6
10:20 _nadim timotimo: I am "happy" that it didn't only make _me_ crazy ;)
10:23 nine m: my $a = [:foo]; ($a.list Z 0 .. *).map: -> ($x, :$foo) { say "$x: $foo" }
10:23 camelia rakudo-moar 16c5fc: OUTPUT«0: True␤»
10:23 nine _nadim: ^^^ the signature binding wants to bind the Pair to a named argument, not a positional
10:23 RabidGravy in the general case one would do something like "try require Foo <&sub-from-foo>;   if ::('&sub-from-foo') -> &func { func() }"
10:24 RabidGravy though in my test here the try seems to interfere with that working
10:25 RabidGravy anyway things to do
10:26 _nadim nine: OK, then I need to make the workaround the right solution
10:26 _nadim RabidGravy: as I said, it is not working
10:26 _nadim I'll try what you wrote anyway
10:27 st_iron joined #perl6
10:27 st_iron hi
10:27 pdcawley joined #perl6
10:27 st_iron p6: say 'hello all'
10:27 camelia rakudo-moar 16c5fc: OUTPUT«hello all␤»
10:27 st_iron ;)
10:28 nine _nadim: use Test; BEGIN { my $result = try require DateTime::Formats; if $result === Any { done-testing; exit; } }; import DateTime::Format; strftime;
10:28 nine RabidGravy: ^^^
10:30 pierre-vigier joined #perl6
10:30 dalek perl6-examples: 2e23b15 | paultcochrane++ | lib/Pod/Htmlify.pm6:
10:30 dalek perl6-examples: Allow EVAL until we can serialise better
10:30 dalek perl6-examples: review: https://github.com/perl6/perl6-examples/commit/2e23b15b5f
10:30 dalek perl6-examples: f191cfb | paultcochrane++ | Makefile:
10:30 dalek perl6-examples: Add informative output for Makefile targets
10:31 dalek joined #perl6
10:32 _nadim nine: is that the way require should always be used?
10:36 nine m: use Test; BEGIN { require DateTime::Formats; CATCH { when X::CompUnit::UnsatisfiedDependency { done-testing; exit; }; }; }; import DateTime::Format; strftime;
10:36 camelia rakudo-moar 16c5fc: OUTPUT«1..0␤»
10:36 nine _nadim: this ^^^ would be a bit cleaner even
10:37 stmuk the perl6 versioning does seem to be causing a lot of confusion
10:37 _nadim nine: perfect.
10:37 _nadim BTW is there a way, during the tests, to hide some installed module?
10:38 nine _nadim: yes. You can put your own CompUnit::Repository implementation into $*REPO and only forward allowed modules to $.next-repo.need
10:39 nine _nadim: if this becomes a common request, someone will surely write some CompUnit::Repository::Blacklist or ::Whitelist module :)
10:40 amoe joined #perl6
10:40 _nadim better get on it then, we want people to write bette tests, that is more important, IMO, than advanced language features :)
10:40 amoe how can I install panda systemwide under /usr/local, instead of in my home directory?
10:41 _nadim amoe: just curious, why would you do that?
10:43 dalek doc: 2f9adf8 | (Steve Mynott)++ | doc/Language/control.pod:
10:43 dalek doc: remove a a
10:43 dalek doc: review: https://github.com/perl6/doc/commit/2f9adf83e9
10:43 amoe _nadim: you can call it habit, I don't like changing my $PATH.  I normally install every program to /usr/local.  really just personal pref
10:47 dalek perl6-examples: e4ab8ad | paultcochrane++ | Makefile:
10:47 dalek perl6-examples: Don't test dependencies when installing them
10:47 dalek perl6-examples:
10:47 dalek perl6-examples: This should speed up testing of the perl6-examples code on Travis.
10:47 dalek perl6-examples: review: https://github.com/perl6/perl6-examples/commit/e4ab8ad256
10:47 timotimo just don't make the mistake of using rakudobrew and symlinking its bin/ to your /bin or so :)
10:49 timotimo https://twitter.com/shadowcat_mdk/status/681779386618654720  -  Hey Perl folks, is there new DevOps tools for Perl5? How does Perl6 work for SysAdmins? http://bit.ly/flossuk2016  FLOSSUK DevOps cfp 30/12/15
10:49 timotimo that's a really tight CFP deadline right there
10:50 ChoHag Wtf is a "DevOps tool"?
10:50 ChoHag A tool for performing development and maintaining operations? Like bash?
10:53 timotimo depends what level of sophistication and targetedness you set as a minimum for being called a tool
10:53 timotimo you could just as well say "what, you mean a computer?"
10:53 timotimo of course it refers to a computer and not a chair, or a plate, or a mug, or a spoon
10:53 stmuk devops just means "traditional UNIX sysadmin who programs a bit as well"
10:54 ChoHag Traditional unix sysadmins did program a bit though.
10:54 timotimo right, "infrastructure as code/declarations"
10:54 timotimo that's the "new" thing here
10:54 stmuk maybe what is less traditional might be the sysadmin talking to other people in the company and being friendly ;)
10:55 timotimo rather than having a bunch of one-off scripts, you'd have a framework that'd make re-use and scaling trivial or at least much simpler
10:55 ChoHag The good sysadmins, again, knew there were layers above 7 and how to utilise them.
10:55 ChoHag timotimo: That's a nice idea. I wonder when it'll happen.
10:55 timotimo :)
10:56 stmuk devop tool probably means something like puppet, cfengine etc
10:56 ChoHag Probably, sadly.
10:56 ChoHag I find them more of a hindrance myself, but the manglement folk like them.
10:57 stmuk if you are admining 1000s of systems you do need automation
10:57 timotimo well, bash scripts already let you do automation
10:57 virtualsue devops includes people like me, who wrote all sorts of infrastructure tools but never was a unix SA
10:57 stmuk until the guy who wrote the bash scripts leaves and noone else wants to touch them
10:58 ChoHag Puppet, cfengine, salt, chef and ansible are all different ways of ruining a good idea.
10:58 ChoHag Did I miss any? Is there Yet Another "let's do puppet *right* this time"?
10:58 stmuk I'd rather have an imperfect tool than none at all
10:59 RabidGravy I'm sure if you really tried the list would be inexhaustible ;-)
10:59 shicheng joined #perl6
11:00 nine m: BEGIN { CompUnit::RepositoryRegistry.use-repository(class :: does CompUnit::Repository { method id() {"blacklist"}; method need(CompUnit::DependencySpecification $spec, CompUnit::PrecompilationRepository $precomp?) { return self.next-repo.need($spec) if self.next-repo and $spec.short-name ne "Test"; X::CompUnit::UnsatisfiedDependency.new(:specification($spec)).throw; }; method loaded() { [] }; method path-spec {""} }.new(:next-repo($*REPO))) }; use NativeCall; u
11:00 camelia rakudo-moar 16c5fc: OUTPUT«Use of uninitialized value $patharg of type Any in string context␤Any of .^name, .perl, .gist, or .say can stringify undefined things, if needed.  in any load_module at src/Perl6/World.nqp line 975␤===SORRY!===␤Missing or wrong version of dependency …»
11:00 nine _nadim: proof of concept ^^^
11:00 amoe just like build systems, they are all equally bad in their own way...
11:00 nine hm...that works locally. Is camelia up to date?
11:00 timotimo ChoHag: there's rexxify
11:00 ChoHag There would be.
11:01 timotimo nine: it cut off after "use NativeCall; us"
11:01 nine m: BEGIN { CompUnit::RepositoryRegistry.use-repository(class :: does CompUnit::Repository { method id() {"blacklist"}; method need(CompUnit::DependencySpecification $spec, CompUnit::PrecompilationRepository $precomp?) { return self.next-repo.need($spec) if self.next-repo and $spec.short-name ne "Test"; X::CompUnit::UnsatisfiedDependency.new(:specification($spec)).throw; }; method loaded() { [] }; method path-spec {""} }.new(:next-repo($*REPO))) }; use Test
11:01 camelia rakudo-moar 16c5fc: OUTPUT«===SORRY!===␤Could not find Test in:␤    <anon|65580640><140419885836968>␤    /home/camelia/.perl6/2015.12-37-g16c5fc7␤    /home/camelia/rakudo-m-inst-1/share/perl6/site␤    /home/camelia/rakudo-m-inst-1/share/perl6/vendor␤    /home/camelia/rak…»
11:01 nine Ah
11:01 ChoHag How can I deal with a circular list of module dependencies other than by putting them all in the same file?
11:02 ChoHag eg. does perl 6 have _text_ level file inclusion?
11:02 nowan joined #perl6
11:02 ChoHag Or does creating empty classes in the big file and augmenting them with details in their own file still have problems I don't remember the details of?
11:04 nine ChoHag: why not just put them in a single file if they are that much interdependant?
11:04 ChoHag Because I'm getting tired of scrolling up and down so much and getting lost.
11:04 nine ChoHag: I use :vsplit for that in vim
11:05 ChoHag I use :vsplit for it in evil emacs, but it's still a PITA.
11:05 RabidGravy nine, yeah I came by the catch (releasing the implicit block was shagging up the import with try) before I went to the backlog :)
11:05 ChoHag Plus having separate classes in separate files is "Right".
11:05 RabidGravy it really, really depends on the scope of their usage
11:06 vendethiel joined #perl6
11:06 regreg joined #perl6
11:06 _nadim nine: great with a proof of concept, that means I won't have to do it and bother everyone with questions :)
11:06 ChoHag If I wasn't running in the source directory and had a discrete build phase I'd be able to just cat them together and be done with it. It's solely to try and maintain some semblence of Good Development Practices.
11:06 void1 joined #perl6
11:07 nowan joined #perl6
11:15 cognominal joined #perl6
11:17 joydo I have a question,the efficiency of recursive computing about perl6,somebody can tell me?
11:18 RabidGravy probably best to just ask the question
11:18 timotimo yes, please ask the question itself
11:18 timotimo rather than asking if you can ask
11:20 RabidGravy I think it might come down to sacrificing some goats to work out why this gdbm binding is segfaulting when I try to store a value
11:20 joydo The Fibonacci function? c deal with this question some more faster than perl6
11:20 perlwhirl joined #perl6
11:22 kid51 joined #perl6
11:22 perlwhirl /SET term_force_colors ON
11:22 perlwhirl /SET autocreate_own_query OFF
11:22 perlwhirl /SET autocreate_query_level DCCMSGS
11:22 perlwhirl /SET use_status_window OFF
11:22 perlwhirl /SET use_msgs_window ON
11:23 timotimo joydo: perl 6 is often quite slower than C
11:23 RabidGravy "it's not the speed it's the notational convenience"
11:24 timotimo that's to be expected, though. C is our target for performance "after optimizations have been done", which is what the next year will be about
11:24 RabidGravy m: say 1, 1, *+* ...^ * >= 100;
11:24 camelia rakudo-moar 16c5fc: OUTPUT«(1 1 2 3 5 8 13 21 34 55 89)␤»
11:25 RabidGravy not too shabby though, and if you were to take out the load and compile time it would be better
11:26 timotimo RabidGravy: on my system the parse time is only 0.1 seconds
11:27 perlwhirl
11:27 perlwhirl
11:27 perlwhirl
11:27 perlwhirl
11:27 pierre-vigier joined #perl6
11:27 timotimo perlwhirl: do you have a problem with your irc client?
11:27 timotimo gee, thanks
11:28 joshua__ joined #perl6
11:28 timotimo anyway, time perl6 --stagestats -e 'say (1, 1, *+* ... *)[100_000]'  -  this takes 3.5s to print about three terminal pages full of digits
11:28 timotimo damn, i didn't notice joydo left
11:28 Skarsnik joined #perl6
11:28 RabidGravy yeah and a lot of that would be in "say"
11:29 rindolf joined #perl6
11:29 RabidGravy anyway, must off out to the shops as the seasonal confinement has left us devoid of various sundries
11:30 timotimo not really in "say", but in the stringification of the number
11:31 timotimo though that part probably runs directly in libtommath and then gets "cheaply" turned into a string by moar as well
11:31 joshua__ joined #perl6
11:39 joydo joined #perl6
11:40 Grauwolf joined #perl6
11:40 Arrowhead joined #perl6
11:42 vendethiel AlexDaniel: does YAPH count as self-cloaking code? :P
11:42 ChoHag How do you 'close' a role?
11:43 ChoHag Because apparently I did, but I want to (see if I can) augment it but I'm not allowed to because it's closed.
11:44 pierre-vigier joined #perl6
11:47 timotimo it may be just me, but saying "perl 6 is dog shit" seems kind of harsh
11:47 lizmat ChoHag: because you generally just create a new role and mix that in ?
11:47 timotimo i don't think you can augment roles
11:47 lizmat m: role A { }; use MONKEY-TYPING; augment role A { method foo { "foo" } }; say A.foo
11:47 camelia rakudo-moar 16c5fc: OUTPUT«5===SORRY!5=== Error while compiling /tmp/b5Nt1EhBqd␤Cannot augment A because it is closed␤at /tmp/b5Nt1EhBqd:1␤------> 3A { }; use MONKEY-TYPING; augment role A7⏏5 { method foo { "foo" } }; say A.foo␤    expecting any of:␤        gener…»
11:48 El_Che timotimo: it depends. Is it from a fancy poodle? (aka context) :)
11:48 Arrowhead m: sub takeFunc(&func (Str $str, Int $int)) { &func("String", 42) }; takeFunc(sub (Str $str, Int $int) { say "$str $int" });
11:48 camelia rakudo-moar 16c5fc: OUTPUT«Too few positionals passed; expected 2 arguments but got 0 in sub-signature of parameter &func␤  in sub takeFunc at /tmp/XDB9JpolD2 line 1␤  in block <unit> at /tmp/XDB9JpolD2 line 1␤␤»
11:50 colomon nine: awake now.
11:50 yoleaux 08:25Z <nine> colomon: you're totally right, that .files call can never work. OTOH all you're missing out on is an error message, telling you that the script could not be found.
11:50 yoleaux 08:32Z <nine> colomon: so the more important question is, why can it not find its script?
11:50 Arrowhead How can I define takeFunc to only allow specific signatures? sub takeFunc(&func) already works but doesn't prescribe the signature.
11:50 timotimo oh damn
11:50 timotimo there'll be a lightning talk about perl 6 at the 32c3, but it's on day 4 and the day 4 of lightning talks is said to be cancelled
11:51 colomon nine: obviously CompUnit::Repo tried to install the script, else that shim would not have been generated, right?
11:51 nine Arrowhead: subsignatures: p5_wrap_p6_callable(Perl5Interpreter, long, OpaquePointer, &call (long, OpaquePointer, OpaquePointer --> OpaquePointer), &free_p6_object (long))
11:52 timotimo anyway, the talk seems to only have a single slide without "real" content
11:52 nine Arrowhead: the space after &func is mandatory
11:52 timotimo so ... no idea how it's going to go
11:52 nine colomon: yes, that's the mystery. If CompUnit::Repository::Installation installed that script, it ought to have installed the source file, too.
11:54 Arrowhead m: sub takeFunc(&func (Str, Int)) { &func("String", 42) }; takeFunc(sub (Str $str, Int $int) { say "$str $int" });
11:54 camelia rakudo-moar 16c5fc: OUTPUT«Too few positionals passed; expected 2 arguments but got 0 in sub-signature of parameter &func␤  in sub takeFunc at /tmp/59BsN1_TCt line 1␤  in block <unit> at /tmp/59BsN1_TCt line 1␤␤»
11:54 Arrowhead nine: I still don't see it.
11:54 _nadim hmm, use module -> ok, require module ; import module -> could not find module to import symboles from. error at compile time!
11:57 perlawhirl joined #perl6
11:58 halto joined #perl6
11:58 nine _nadim: BEGIN require module;
11:59 sammers joined #perl6
12:00 colomon nine: if you want to try what I’m doing locally, just try panda install ABC and then look for the abc2ly script.
12:00 _nadim what if the module name is not known at compile time?
12:01 nine _nadim: then you simply cannot use the module's symbols at compile time. And that includes importing subs. Because...how could it??
12:02 kaare_ joined #perl6
12:02 _nadim I require the module, then I want to call some sub it defines, all at run time
12:02 ShimmerFairy Trying to use Grammar::Tracer -> P6M Merging GLOBAL symbols failed: duplicate definition of symbol grammar
12:03 _nadim nine:  it seems that import is a compile time directive too, right?
12:03 darutoko joined #perl6
12:05 Begi joined #perl6
12:05 Skarsnik Hello
12:05 Skarsnik nine, did you fix I:5?
12:05 uruwi Hi
12:06 PotatoGim joined #perl6
12:06 _nadim Skarsnik: morning
12:06 ChoHag How's perl 6 at parsing and displaying the pod?
12:06 ChoHag Because I think I'd like to document my code before I move on to the next stage.
12:06 Skarsnik It work
12:07 uruwi Mind if I digress for a message?
12:07 Skarsnik But I am not sure if there is something that render WHY stuff in a neat way
12:07 _nadim ChoHag:  perl6 --doc  your module
12:08 nine _nadim: then don't import but use a fully qualified name to access the sub
12:09 uruwi https://gitter.im/bluebear94/cy00/qanda
12:10 Skarsnik why that look like slack/Discord x)
12:10 lizmat m: say DateTime.new('2008-12-31T23:59:60Z').later(:day)
12:10 camelia rakudo-moar 16c5fc: OUTPUT«2009-01-02T00:00:00Z␤»
12:11 lizmat that feels incorrect
12:11 ChoHag Did 2008 include a leap second?
12:11 ShimmerFairy lizmat: agreed :)
12:12 lizmat yes
12:12 Skarsnik m: say DateTime.new('2008-12-31T23:59:60Z')
12:12 camelia rakudo-moar 16c5fc: OUTPUT«2008-12-31T23:59:60Z␤»
12:12 Skarsnik m: say DateTime.new('2008-12-31T23:59:60Z').later(:second)
12:12 camelia rakudo-moar 16c5fc: OUTPUT«2009-01-01T00:00:00Z␤»
12:12 joshua__ joined #perl6
12:13 virtualsue joined #perl6
12:14 _nadim nine: I require Text::Table::Simple ; Text::Table::Simple::lol2table(...)  says it can not find the symbole. how does one fully qualify a sub?
12:16 zengargoylew joined #perl6
12:16 autogen what's lol2table?
12:16 ChoHag Then I'd say it doesn't just feel incorrect. It is.
12:17 nine colomon: the module definitely installs fine including the script in resources/. .files should find it
12:18 _nadim autogen: takes a few arrays and makes an ASCII drawn table out of it. otherwise it is a multi sub
12:18 autogen oh awesome, thanks :-)
12:18 _nadim :)
12:19 psomu joined #perl6
12:19 ChoHag Unfortunately "one day later" from both 23:59:59 and 23:59:60 should give the same answer, and "one day previously" doesn't give both.
12:20 nine _nadim: I think it needs to be our scoped for you to access it that way
12:20 ChoHag Also "the (beginning instant of) last second of the day" and "23:59:59" (or 23:59:60 with leap seconds) mean different things.
12:20 nine m: module Foo { sub foo() { say "foo!" }; }; Foo::foo;
12:20 camelia rakudo-moar 16c5fc: OUTPUT«Could not find symbol '&foo'␤  in block <unit> at /tmp/hHBGtD6pnl line 1␤␤Actually thrown at:␤  in block <unit> at /tmp/hHBGtD6pnl line 1␤␤»
12:20 nine m: module Foo { our sub foo() { say "foo!" }; }; Foo::foo;
12:20 camelia rakudo-moar 16c5fc: OUTPUT«foo!␤»
12:20 dalek rakudo/nom: 0e89a7a | lizmat++ | src/core/DateTime.pm:
12:20 dalek rakudo/nom: Make DateTime.later about 5x faster
12:20 dalek rakudo/nom:
12:20 dalek rakudo/nom: Also fix issue when moving from a leap-second by anything other
12:20 dalek rakudo/nom: than seconds: it should not wrap to the next min/hour/day.
12:20 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/0e89a7a307
12:20 ChoHag And there's no nice round solution to this to give developers the warm fuzzies.
12:21 _nadim nine: what does import do at compile time that can't be done at run time? use module works fine.
12:21 ChoHag I'd quite like to see the DateTime code, but I'm afraid of having it stick to me...
12:22 nine _nadim: maybe you can access the module's EXPORT scope somehow
12:23 ShimmerFairy nine: any clue what "P6M Merging GLOBAL symbols failed: duplicate definition of symbol grammar" could be caused by? Because I've no clue (trying to run SUPERNOVA with Grammar::Tracer enabled)
12:23 dalek roast: 5e60103 | lizmat++ | S32-temporal/DateTime.t:
12:23 dalek roast: Fix faulty test and some spelling errors
12:23 dalek roast:
12:23 dalek roast: Moving from a leap-second by anything but seconds, should clip,
12:23 dalek roast: not rollover to the next minute/hour/day
12:23 dalek roast: review: https://github.com/perl6/roast/commit/5e60103de6
12:24 _nadim require module <&sub> is broken but I think I'll just catch that and display it till it works. this turns out to be a day job finding how to get a symbole at run time :)
12:24 lizmat this hopefully concludes scratching the DateTime/Date itch I've been having
12:24 PlugMyDuck joined #perl6
12:24 _nadim autogen: you may like this one, it has text table generation  http://www.tablesgenerator.com/
12:25 Skarsnik nine, it's the IV type that come from perl.h in I:5 that vary?
12:25 nine Skarsnik: yes, haven't fixed that yet
12:25 nine ShimmerFairy: no idea, no
12:26 leont joined #perl6
12:28 ShimmerFairy nine: Oh god, apparently it's because I have a file named Grammar.pm6 in SUPERNOVA (as in, lib/Grammar.pm6). Apparently Grammar::Tracer makes something break? Lovely.
12:28 Skarsnik nine, maybe you can cheat with size_t (since it's the type used when you when to index pointer)
12:29 ShimmerFairy nine: so apparently  use Grammar::Parsefail (locally, since I still haven't fixed its META6.json); use Grammar; is fine, but throw in Grammar::Tracer, and boom.
12:29 nine colomon: I know whats wrong.
12:29 Skarsnik m: use NativeCall; say nativesizeof(size_t), "k", nativesizeof(int64)
12:29 camelia rakudo-moar 16c5fc: OUTPUT«===SORRY!===␤Missing or wrong version of dependency '/home/camelia/rakudo-m-inst-1/share/perl6/sources/CD91000E04960E50F55974191CB59F05BF6F449F' (from '/home/camelia/rakudo-m-inst-1/share/perl6/sources/ABE4BD5AACEE8AC49C80D6766675BEFA95BE99AF')␤»
12:30 nine colomon: ABC brings lots of modules, just none of them is called "ABC". So we don't install the short lookup file for the name "ABC" and don't find the right dist.
12:30 Skarsnik erf
12:30 ShimmerFairy and only from within lib/Grammar.pm6; using ::Tracer next to a 'use Grammar' works, it's just inside the file. But Grammar::Parsefail doesn't trigger the same behavior. What the fuck? O_o
12:30 loren joined #perl6
12:31 Skarsnik nine stop breaking camelia x)
12:32 joydon joined #perl6
12:32 [ptc] m: 'say $*IN.t && $*OUT.t'
12:32 camelia rakudo-moar 0e89a7: OUTPUT«WARNINGS for /tmp/qGuegRj0lT:␤Useless use of constant string "say $*IN.t && $*OUT.t" in sink context (line 1)␤»
12:32 [ptc] m: say $*IN.t && $*OUT.t
12:32 camelia rakudo-moar 0e89a7: OUTPUT«False␤»
12:32 lizmat m: { loop (my int $i = 0; $i < 10; $i++) { say $i } }()   # golfed #127069
12:32 camelia rakudo-moar 0e89a7: OUTPUT«No lexical found with name '$i'␤  in block <unit> at /tmp/Srx2T3Cfj4 line 1␤␤»
12:32 [ptc] m: say $*IN
12:32 camelia rakudo-moar 0e89a7: OUTPUT«IO::Handle<<STDIN>>(opened, at octet 0)␤»
12:32 [ptc] m: say $*IN.t
12:32 camelia rakudo-moar 0e89a7: OUTPUT«False␤»
12:32 [ptc] m: say $*OUT.t
12:32 camelia rakudo-moar 0e89a7: OUTPUT«False␤»
12:32 pierre-vigier joined #perl6
12:33 lizmat m: { loop (my Int $i = 0; $i < 10; $i++) { say $i } }()   # golfed #127069
12:33 camelia rakudo-moar 0e89a7: OUTPUT«Cannot call infix:«<»(Any, Int); none of these signatures match:␤    ($?)␤    (\a, \b)␤    (Real \a, Real \b)␤    (Int:D \a, Int:D \b)␤    (int $a, int $b)␤    (Num:D \a, Num:D \b --> Bool)␤    (num $a, num $b --> Bool)␤    (Rational:D \a…»
12:33 lizmat m: {oop (my Int $i = 0; $i < 10; $i++) { say $i }   # ok without the scope
12:33 camelia rakudo-moar 0e89a7: OUTPUT«5===SORRY!5=== Error while compiling /tmp/Az_pujolPf␤Unexpected block in infix position (missing statement control word before the expression?)␤at /tmp/Az_pujolPf:1␤------> 3{oop (my Int $i = 0; $i < 10; $i++)7⏏5 { say $i }   # ok without th…»
12:33 lizmat m: loop (my Int $i = 0; $i < 10; $i++) { say $i }   # ok without the scope
12:33 camelia rakudo-moar 0e89a7: OUTPUT«0␤1␤2␤3␤4␤5␤6␤7␤8␤9␤»
12:33 leont Does an IO object cache the stat buffer?
12:34 cakes joined #perl6
12:34 Skarsnik it's the "new" stuff that make loop return a value that make this buggy x)
12:34 lizmat leont: no, not afaik
12:35 leont Having some kind of stat buffer concept would be nice (from a performance POV)
12:35 ellybelly joined #perl6
12:35 nine Skarsnik: size_t's definition is actually rather close to Perl 5's IV. IV is defined as at least the size of a pointer while size_t has to have at least the size of a pointer to be usefull for object sizes (except on segmented architectures)
12:36 Skarsnik hm long is like int32 on my debian32 bits
12:36 Skarsnik it should work?
12:36 Skarsnik but I:p5 still fail
12:36 ShimmerFairy So in addition to still facing a show-stopping unknown bug introduced in the CURI branch way back, I can't even use Grammar::Tracer to diagnose the problem (in a multi token where it breaks, it seems, so it's hard to do without the tracer). Just wonderful.
12:36 leont Skarsnik: Got a paste of the fail?
12:37 lizmat leont: remembering from when I was working on the newio branch, it would need nqp support
12:37 Skarsnik leont, basicly it segfault and gdb is not useful. it's kinda of time out after leaving gdb
12:38 colomon nine: huh
12:40 _mg_ joined #perl6
12:40 colomon nine: I mean, that’s right, ABC is set up as a namespace, not a class of its own
12:40 dalek rakudo/nom: 9a346ce | (Stefan Seifert)++ | src/core/CompUnit/Repository/Installation.pm:
12:40 dalek rakudo/nom: Fix installed wrapper scripts not finding the dist (and thus script)
12:40 dalek rakudo/nom:
12:40 dalek rakudo/nom: Dists like ABC don't contain a module with the same name. We only
12:40 dalek rakudo/nom: installed quick lookup files in short/ for installed modules, not the
12:40 dalek rakudo/nom: dist's name itself. Fix by explicitly install a lookup file for the
12:40 dalek rakudo/nom: dist's name itself.
12:40 dalek rakudo/nom:
12:40 dalek rakudo/nom: Thanks to colomon++ for reporting!
12:40 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/9a346ce0c8
12:40 nine colomon: there ^^^ fixed it :)
12:40 colomon \o/
12:41 Skarsnik Let's make people angry and let's patch nc x)
12:42 nine ShimmerFairy: what module is Grammar?
12:42 dalek perl6-examples: d932ecc | paultcochrane++ | util/update-and-sync:
12:42 dalek perl6-examples: Use up-to-date Rakudo and panda when building examples pages
12:42 dalek perl6-examples: review: https://github.com/perl6/perl6-examples/commit/d932ecc705
12:42 dalek perl6-examples: 4751f1c | paultcochrane++ | categories/interpreters/lisp.pl:
12:42 dalek perl6-examples: Purge trailing whitespace
12:43 ShimmerFairy nine: I don't use modules in those files, mainly because it's been easier for me to have the SUPERNOVA files in just a flat lib/ directory, similar to how they'll eventually be in core rakudo.
12:43 dalek joined #perl6
12:43 Skarsnik Grammar::Tracer?
12:43 timotimo lizmat: wow, 5x faster for .later? nice!
12:43 nine ShimmerFairy: or what is SUPERNOVA even?
12:44 ShimmerFairy nine: https://github.com/ShimmerFairy/SUPERNOVA
12:45 ShimmerFairy nine: pretty much, I've never been too sure on the distinction between what 'use' uses for names and what it means to have 'unit module' or whatever inside the file; in this case, I've elected to fully qualify class names inside the files, instead of using unit module, back when I started work on it.
12:45 colomon nine: brilliant, that works!
12:45 ellybelly Hi all, I am thinking of writing a module, but someone else has written a similar one. How should I go about naming mine? For example, there is already WebService::Soundcloud, but I want to make a different Soundcloud module and submit it to the modules list.
12:45 timotimo ShimmerFairy: huh? but whether or not you use "unit" is only about the curly braces
12:46 llfourn ShimmerFairy: are you planning on making SUPERNOVA installable via panda?
12:46 ShimmerFairy timotimo: not 'unit' specifically, but the idea of wrapping the file's contents in a 'module'
12:46 timotimo oh
12:46 timotimo i see
12:47 nine ellybelly: have you considered cooperating with the author of the other Soundcloud module?
12:47 ShimmerFairy llfourn: not at the moment, the plan is for it to be assimilated into rakudo when it's time to do so (developing out-of-core is a lot faster than in-core) :)
12:47 nine *fetch stage failed for Grammar::Parsefail: Unable to handle source 'https://github.com/ShimmerFairy/grammar-parsefail/')
12:48 ShimmerFairy nine: yeah, that's something I've neglected to fix so far, in part because I swear it working before, and in part because dying on https:// seems silly. I'll go fix it now though.
12:48 llfourn ShimmerFairy: fair enough :)
12:48 ellybelly Thanks nine, I I wanted to do it in a different programming style, but also as a learning exercise.
12:49 |Tux| joined #perl6
12:49 nine ellybelly: trust me, you'll learn just as much by working on an existing code base :) And maybe the author of the other module actually likes your ideas for the interface and likes to adopt them?
12:49 pierre-vigier joined #perl6
12:51 ellybelly Thanks nine, that is good advice. For situations where someone is determined to create a similar module, what would be the standard convention?
12:53 Skarsnik is there a test to see if something warn in Test?
12:53 timotimo nothing pre-make, i think. but you can use CONTROL to catch warnings
12:53 daxim perl6, my FatRat $foo = 5/7
12:54 daxim perl6: my FatRat $foo = 5/7
12:54 Arrowhead joined #perl6
12:54 camelia rakudo-moar 9a346c: OUTPUT«Type check failed in assignment to $foo; expected FatRat but got Rat␤  in block <unit> at /tmp/tmpfile line 1␤␤»
12:54 camelia ..rakudo-jvm 6c0f93: OUTPUT«Type check failed in assignment to $foo; expected FatRat but got Rat␤  in block <unit> at /tmp/tmpfile:1␤␤»
12:54 daxim this is surprising to me
12:54 pierre-vigier joined #perl6
12:55 colomon m: my FatRat $foo = (5/7).FatRat
12:55 camelia rakudo-moar 9a346c: ( no output )
12:55 colomon m: my FatRat $foo = (5/7).FatRat; dd $foo
12:55 camelia rakudo-moar 9a346c: OUTPUT«FatRat $foo = FatRat.new(5, 7)␤»
12:55 dalek perl6-examples: 38360db | paultcochrane++ | t/004-website.t:
12:55 dalek perl6-examples: Don't syntax highlight in website tests
12:55 dalek perl6-examples: review: https://github.com/perl6/perl6-examples/commit/38360db181
12:57 nine ellybelly: find something that distiguishes your module from the other and put that into the name. It should be some lasting difference, not something like Simple or Tiny (because it won't stay either).
12:58 nine ellybelly: otherwise, use the same name but make sure your :auth is different. But in any case _always_ try to talk with the other author. And if in doubt, ask here.
13:00 ellybelly thanks nine, I will most likely try to work with the other author thanks to your feedback. But also I appreciate your feedback.
13:01 Skarsnik hm
13:01 ellybelly maybe too many "feedbacks" there...
13:01 Skarsnik should foo is native returns Bool can be considered an error?
13:01 Skarsnik It probably always work
13:08 pierre-vigier joined #perl6
13:12 dalek perl6-examples: ec8ec86 | paultcochrane++ | t/004-website.t:
13:12 dalek perl6-examples: Turn off highlighting in later website test
13:12 dalek perl6-examples:
13:12 dalek perl6-examples: This one I missed from earlier and only Travis is telling me that there's a
13:12 dalek perl6-examples: problem here.
13:12 dalek perl6-examples: review: https://github.com/perl6/perl6-examples/commit/ec8ec861c6
13:14 lnrdo joined #perl6
13:17 pierre-vigier joined #perl6
13:19 [ptc] m: my Instant $i = now; my $dt = $i.to-posix; say :$dt.perl
13:19 camelia rakudo-moar 9a346c: OUTPUT«:dt($(<1278679142158/881>, 0))␤»
13:20 [ptc] why does a False value appear as Bool::False when there is a tty and as 0 when there isn't a tty?
13:21 colomon joined #perl6
13:21 [ptc] another way to put the question is: the code "my Instant $i = now; my $dt = $i.to-posix; say :$dt.perl" gives :dt($(<1278679142158/881>, Bool::False))  when run from an interactive prompt
13:22 dalek perl6-examples: 664b498 | paultcochrane++ | t/categories/cookbook/09directories.t:
13:22 dalek perl6-examples: Handle boolean output with and without tty in filetime test
13:22 dalek perl6-examples: review: https://github.com/perl6/perl6-examples/commit/664b498bd6
13:24 muraiki joined #perl6
13:25 colomon joined #perl6
13:30 cosimo timotimo: is that you working on iperl6kernel?
13:31 pierre-vigier joined #perl6
13:39 uruwi joined #perl6
13:42 Begi joined #perl6
13:43 cosimo timotimo: if so, can you give me a quick status update on it? I setup my dev machine with jupyter and I'd like to help make progress
13:43 cosimo it's a super cool thing to work on
13:45 flussence [ptc]: I can't reproduce that bug on 2015.12-9-g1bdb784b49e1
13:45 flussence perl6 -e outputs the same with/without |cat on the end
13:45 nine ShimmerFairy: how can I reproduce your failure?
13:45 uruwi_ joined #perl6
13:45 uruwi_ a
13:46 ShimmerFairy nine: uncommenting the use of Grammar::Tracer in Grammar.pm6 and running perl6 test.p6 should do it, if using SUPERNOVA to test it out.
13:47 ShimmerFairy nine: just using a file called 'Grammar.pm6' that has 'use Grammar::Tracer' in it works too.
13:48 ShimmerFairy nine: or any file, it turns out.  perl6 -e 'use Name-of-file-with-Tracer-use'
13:48 ShimmerFairy er, perl6 -I. -e '...'
13:52 _nadim Any idea what "cannot stringify self" is supposed to mean on a line where there is no reference to self?
13:53 llfourn _nadim: show us the line?
13:53 [ptc] flussence: thanks for looking.  The issue is reproducible in camelia:
13:53 llfourn it's probably a LTA error?
13:54 [ptc] m: my Instant $i = now; my $dt = $i.to-posix; say :$dt.perl
13:54 camelia rakudo-moar 9a346c: OUTPUT«:dt($(<10705506083325/7376>, 0))␤»
13:54 * [ptc] tries with |cat
13:55 [ptc] flussence: I get the same output with | cat on my machine.  I don't think this is reproducing the issue correctly though, since on Travis with a bleeding edge rakudo, the issue still appears
13:56 [ptc] \o/ the perl6-examples tests are passing again!  And the website builds again!
13:57 Skarsnik nice
13:58 frew joined #perl6
13:59 llfourn m: role Foo { has $.b is required }; class Bar {}; say Bar.new does Foo # how do I initialize $.b?
13:59 camelia rakudo-moar 9a346c: OUTPUT«Invalid BUILDALLPLAN␤  in block <unit> at /tmp/yZpmec0zOu line 1␤␤»
13:59 _nadim llfourn: I give you three lines ([NL] for newline. the error message points ar the curly bracket line.  for @.filters -> $filteri [NL] { [NL] $filter($s, DDT_SUB_ELEMENTS, ($!current_depth, $glyph, @renderings), (@sub_elements,)) ;
13:59 Skarsnik hm, how I test if a type is numeric? (like Int, int, int32, num, ...) int ~~ Numeric fail
14:00 rjbs joined #perl6
14:01 zostay joined #perl6
14:01 simcop2387 joined #perl6
14:01 llfourn _nadim: I can't see any stringification there :\
14:01 perigrin joined #perl6
14:02 _nadim neither can I. worked a few minutes ago, I'll back and see
14:03 geekosaur joined #perl6
14:03 pdcawley joined #perl6
14:04 llfourn m: role Foo { }; say Foo.new # so you can create instances of roles now?
14:04 camelia rakudo-moar 9a346c: OUTPUT«Foo.new␤»
14:04 pmurias joined #perl6
14:05 uruwi joined #perl6
14:05 Skarsnik Yes
14:05 Skarsnik it's weird x)
14:05 nine llfourn: autopunning is the word
14:06 llfourn nine: I guess it's a p6 made up word?
14:06 nine llfourn: yes
14:06 llfourn sweet
14:06 nine or role punning
14:06 llfourn do you know of any use cases for this?
14:06 masak "punning" is a far wider CS concept than just p6.
14:07 llfourn I see
14:07 lustlife joined #perl6
14:07 masak there's a Wikipedia article about it
14:07 * llfourn looks at wikipedia
14:07 ChoHag How do you include the same sections (NAME, AUTHOR, VERSION, etc.) in multiple pods?
14:07 masak https://en.wikipedia.org/wiki/Type_punning
14:07 Skarsnik What do you think of https://gist.github.com/Skarsnik/4579e451ab1b6b364305 before I put this in NativeCall (it check the sanity of native routine declaration)
14:07 Arrowhead joined #perl6
14:08 pierre-vigier joined #perl6
14:08 ShimmerFairy ChoHag: the P<> directive is supposed to let you include snippets of pod code from another source (P for "Placement link", IIRC)
14:12 perigrin joined #perl6
14:19 FloydATC joined #perl6
14:20 * llfourn returns from wikipedia
14:21 llfourn I either am lost or this article seems to mean type punning = type casting with assumptions about memory representation
14:21 smls joined #perl6
14:22 llfourn I guess the link in concept is that you are turing something into another thing
14:23 smls Didn't we have a  glob()  function at some point?
14:23 smls Is there a replacement?
14:23 llfourn but the link is somewhat tenuous between 'autopunning' and 'type punning'
14:23 llfourn (in my mind)
14:23 _nadim llfourn: I found it. the sub was declared as sub($s ($a, $b), ($x)), there is a comma missing after the first argument, the error is reported three lines below that.
14:25 llfourn _nadim: so you fixed your problem? is ($s,($a,$b),($x)) meant to be doing list unpacking?
14:27 FloydATC Hi, I want to test p6 without breaking p5. I've installed as per http://perl6.org/downloads/ as non-root but what's the recommended way to set up my working environment from here? Using shebang ~/.rakudobrew/blablabla/perl6 would work but seems stupid
14:28 nine FloydATC: I have this in my ~/.bashrc: export PATH=$PATH:/home/nine/install/rakudo/install/bin:/home/nine/install/rakudo/install/share/perl6/site/bin
14:28 perigrin joined #perl6
14:28 llfourn how can p6 break p5?
14:28 nine llfourn: it can't
14:28 Begi joined #perl6
14:28 xpen joined #perl6
14:29 FloydATC No idea, I'm touching p6 for the first time.
14:29 _nadim llfourn: yes I do list unpacking, but I can't see how $s($a, $b) works.
14:29 _nadim llfourn: Arff yes I see
14:29 llfourn FloydATC: I'm not sure what you meant but rakudo gets installed as perl6 not perl :)
14:29 _nadim named argument of a Pair
14:30 * llfourn doesn't see what _nadim sees
14:30 FloydATC what about modules, won't p6 modules affect p5 ones?
14:30 _nadim hmm, well self s not even in the list!
14:30 llfourn FloydATC: not at all :)
14:30 llfourn FloydATC: rakudobrew will install a totally isolated environment
14:31 FloydATC so it's basically safe to do a root install of p6 and not have to worry about personal path settings etc?
14:31 llfourn FloydATC: do you need to install as root?
14:31 _nadim llfourn:  :name($a, $b), thought  $name($a, $b) is equivalent if $name ~~ 'name'
14:31 RabidGravy joined #perl6
14:32 llfourn FloydATC: just install under your user if you can
14:32 FloydATC Not sure but here's what I'm thinking; for years I've just put #!/usr/bin/perl in my scripts because perl is always there
14:32 _nadim FloydATC: you're the second person that asks that oday. I can't understand how pwople want to polute their evironment because they don't want to pollute their $PATH!
14:32 gfldex /usr/share/perl6/ <-- that's there perl6 goes
14:32 gfldex /usr/share/perl5/ <-- that's where perl5 goes
14:33 _nadim FloydATC: IMO, let RakudoBrew install where it wants and take the second to edit your .bashrc
14:33 llfourn FloydATC: there is 0 chance that anything bad can happen from using rakudobrew -- it will just get installed under $HOME/.rakudobrew
14:33 perlpilot FloydATC: I usually use  #!/usr/bin/env perl6  FWIW
14:34 perlpilot FloydATC: (once it's in my PATH like it should be :)
14:34 smls FloydATC: I use  #!/usr/bin/env perl  for Perl 5 scripts and  #!/usr/bin/env perl6  for PErl 6 scripts - this way it doesn't matter where they are installed, as long as $PATH is set up accordingly.
14:34 orbus .tell TimToady I did some more checking last night.  It's not documented in the class docs on doc.perl6.org, but the base Exception class does indeed have .resume .  If there's a way to prevent people calling it on custom exceptions in modules, I haven't figured it out yet.
14:34 yoleaux orbus: I'll pass your message to TimToady.
14:34 pierre-vigier joined #perl6
14:35 FloydATC perlpilot: Aha, that's the kind of neat trick I was hoping for
14:35 FloydATC because that way the script will work even if p6 is relocated later
14:35 smls FloydATC: But yes, it should be possible to install Perl 6 in /usr, because there are already distro packages which to that.. :)
14:35 perlpilot FloydATC: as long as your PATH is set appropriately.
14:35 FloydATC yup I understand
14:36 orbus you just probably shouldn't unless you integrate it into your system's package manager :p
14:36 orbus that's what /opt and /usr/local are for
14:36 perlpilot FloydATC: btw, you should probably do the same thing for Perl 5 programs as well.  (See smls)
14:38 torax left #perl6
14:39 Skarsnik wow make test is fast today lol
14:40 webstrand joined #perl6
14:40 Skarsnik hm something interesting could be to have all NC lib used by tests compiled at the first test x)
14:41 RabidGravy llfourn, this is assuming one doesn't do something strange with where one installs or links rakudobrew of course
14:41 ChoHag llfourn: Somebody lost their /bin the other day using rakudobrew.
14:41 ChoHag I'd say 0 chance is a tad optimistic.
14:42 RabidGravy to be fair the had gone somewhat off piste as regards the instructions
14:42 * llfourn stands corrected
14:42 RabidGravy but you geeks always know best ;-)
14:42 ChoHag As a rule of thumb, when a developer tells you there's no chance of failure, assume failure is likely.
14:42 perlpilot When there's humans involved, there's always a chance of something screwy happening :)
14:42 ChoHag Unless you're a sysadmin, in which case assume failure is inevitable.
14:43 ChoHag And not predicated on anything.
14:43 perlpilot ChoHag: but ... failure is not an option!
14:43 gfldex snapshot all the things!
14:43 perlpilot ;)
14:43 RabidGravy always ask a DBA as they'll always find an excuse for not doing anything
14:44 RabidGravy and still blame you when it goes wrong
14:45 |Tux| csv-ip5xs        50000    17.539    17.431
14:45 |Tux| test             50000    23.072    22.964
14:45 |Tux| test-t           50000    14.424    14.316
14:45 |Tux| csv-parser       50000    51.591    51.483
14:45 ChoHag I find the network teams to be the best at deflecting blame.
14:46 RabidGravy yeah, especially "network security" if you've ever worked at that kind of organisation
14:46 lnrdo joined #perl6
14:47 ChoHag I've been 'fortunate' enough to work with a various incarnations of a 'security team'.
14:47 perlpilot left #perl6
14:47 perlpilot joined #perl6
14:47 ChoHag How are perl 6 modules doing version numbers?
14:47 _nadim Am I the only one that feels that 'say' is slow? it may be just a feeling but it seems that even when there are no computations just using say takes time.
14:48 nine _nadim: it's probably not even 'say', but stringification that takes time.
14:49 ChoHag 1000 iterations of say "" and print "" took exactly the same amount of time.
14:49 ChoHag FSVO exactly
14:49 uruwi Try say "" vs print "\n"
14:49 RabidGravy ChoHag, I'm going with vN.N.N and haven't got to v0.1.0 with any yet ;-)
14:50 llfourn _nadim: the challenge is to name something that isn't slow atm
14:51 llfourn I just read the rakudobrew doom story, but not exactly clear why it would rm /bin/* if ran as root
14:51 Skarsnik I love done-testing
14:51 Skarsnik plan is nice when you have < 20 tests
14:51 RabidGravy actually I was thinking that some mathematical operations are surprising fast, just this morning.  It's just doing anything with the results isn't so fast.
14:51 Begi2 joined #perl6
14:51 ChoHag llfourn: It contains something like 'unlink $prefix, $_ for <something>' where the combination of symlinks, and <something> caused /bin to be emptied.
14:52 Skarsnik panda was removing stuff when doing perl bootstrap.pl --prefix=/stuff
14:52 Skarsnik like it cleared /opt/bin and /opt/lib when given opt
14:53 ChoHag It shouldn't really remove anything at all.
14:53 llfourn ChoHag: hmm I would have thought that it would always be in .rakudobrew but I guess that got lost somehow :\
14:53 Skarsnik it removed what was not panda and some perl6 stuff
14:53 ChoHag Lift the old installation non-destructively into an out-of-the-way location and inform the user it's ready to be removed as desired.
14:54 Skarsnik ChoHag, I think the --prefix was for module prefix or something like that x)
14:54 ChoHag Basically the age-old story of making the incorrect assumption that the code will work.
14:54 ChoHag I'd like to say retold in a new way, but I can't.
14:55 RabidGravy well, no-one has actually properly kicked the tires on any of this stuff until the last few days
14:55 Skarsnik hm
14:55 ChoHag Indeed. And that makes that assumption even more dangerous.
14:55 Skarsnik How I can Test something at compile time? x)
14:55 ChoHag Code never works. Processes always go wrong. Always fail safe.
14:56 RabidGravy preaching to the choir mate, I worked at a bank for some five years before this one :-\
14:57 llfourn Skarsnik: BEGIN { } ?
14:57 Skarsnik I am not sure it will work x)
14:58 ChoHag *sigh*
14:58 ChoHag But the choir is too small.
14:58 sunnavy joined #perl6
14:58 Skarsnik nop begin is not the answer
14:58 llfourn m: use Test; plan 1;  BEGIN { ok True };
14:58 camelia rakudo-moar 9a346c: OUTPUT«ok 1 - ␤1..1␤»
14:59 pierre-vigier joined #perl6
14:59 Skarsnik I try to test if a trait will die, but it happend at compile time
14:59 Skarsnik Like: dies-ok{ sub test(Int $a) is native('fake') {*};} #this should die
15:00 llfourn Skarsnik: there's eval-dies-ok :)
15:00 Skarsnik Oh right I can use that
15:01 webstrand So I've managed to package panda using the command `RAKUDO_PREFIX="$pkgdir/usr/share/perl6/" ./bootstrap.pl` and patching bootstrap.pl to use --notests. Everything seems to work, is there anything I'm missing?
15:01 yoleaux 07:49Z <nine> webstrand: yes, RAKUDO_PREFIX was introduced after 2015.12
15:01 nine webstrand: \o/ if it work, it works :)
15:01 llfourn webstrand: sounds good to me
15:02 mort96 joined #perl6
15:02 Skarsnik --notests sounds buggy x)
15:03 RabidGravy webstrand, may be worth pitching your results back to tadzik though
15:03 webstrand Unfortunately, with RAKUDO_PREFIX, panda dies because Tests is missing.
15:03 BuildTheRobots joined #perl6
15:03 SmokeMachine___ joined #perl6
15:04 Skarsnik and nowww time to run all the NC test and /tableflip
15:04 petercommand joined #perl6
15:05 flussence webstrand: you could try symlinking the real install location's perl6/site/ into $RAKUDO_PREFIX/vendor and see if that helps
15:05 corbyhaas joined #perl6
15:05 _wiz_ where's the best place to ask about Math::Pari build problems?
15:06 perlpilot _wiz_: probably #perl as I don't think there's a P6 version of Math::Pari yet.
15:07 RabidGravy that even used to be a bugger to build like twenty years ago
15:08 Skarsnik Test summary should display the test that failed...
15:08 perlpilot _wiz_: If you're really trying to get at PGP::Crypt though, look for an RPM or DEB or whatever for that as there's usually one out there without Math::Pari
15:08 zemmihates joined #perl6
15:08 autarch [Coke]: I profiled Pod::TreeWalker t/basic.t - it allocated 13k scalars, mostly in core code - so whatever that code does is at least part of the problem
15:08 RabidGravy wasn't it by that crazy clever russian maths guy
15:09 autarch I mean that TreeWalker is doing something to cause bad behavior, not just Pod::To::HTML
15:09 webstrand flussence: I'm not really sure how perl6 uses vendor or site. But though it claims the directory /waur/perl6-panda/pkg/panda/usr/share/perl6/vendor is in the search path, it still can't find Test.
15:09 Skarsnik damn, no NC developper around?
15:10 webstrand Well, I cant find a Test~ anything either, so I'm not sure what perl is looking for.
15:11 flussence it's looking for Test.pm, which would've been mangled into one of the sha1 filenames in /usr/share/perl6/
15:12 _wiz_ perlpilot: thanks, I'll try that.
15:12 RabidGravy is there an %INC equivalent? we can test this for avoidance of doubt
15:12 Su-Shee can I use rakudobrew without appending it to my bashrc? I just want to toy around with the recent perl6.
15:12 nine webstrand: Test is part of the CORE dist in the /usr/share/perl6 repository
15:12 Skarsnik Su-Shee, yes
15:13 Su-Shee (btw - ALL install guides point to different perl 6 versions, really annoying. you can't copy paste any of them)
15:13 Skarsnik you can manually call rakudobrew
15:13 Su-Shee Skarsnik: ok.
15:13 Skarsnik it's just rakudobrew will put perl6 bin and co in its directory
15:13 nine webstrand: please note that share/perl6 share/perl6/site and share/perl6/vendor are all different repositories
15:14 Skarsnik m: use NativeCall;
15:14 camelia rakudo-moar 9a346c: ( no output )
15:14 asht joined #perl6
15:14 mspo it's also pretty easy to just build rakudo star in the normal way
15:14 mspo with a --prefix
15:14 webstrand nine: Thanks, symlinking share/perl6 $prefix/share/perl6/vendor works
15:15 Skarsnik m: use NativeCall; say CArray[Int].^name; #How I get the Int type?
15:15 camelia rakudo-moar 9a346c: OUTPUT«===SORRY!===␤CArray may only contain native integers and numbers, strings, C Structs or C Pointers␤»
15:15 Arrowhead joined #perl6
15:15 Skarsnik m: use NativeCall; say CArray[int].^name; #How I get the Int type?
15:15 camelia rakudo-moar 9a346c: OUTPUT«NativeCall::Types::CArray[int]␤»
15:15 Su-Shee I already have like 439850395 rakudos and pugs and moars and all.. ;)
15:15 nine webstrand: that sounds like a horrible workaround though :/
15:15 Skarsnik Oh there is already a check for the content of CARRAy, fun
15:15 asht I just built rakudo star on ubuntu and all went well. tested a few simple scripts. How does one actually "compile" and build executable ?
15:16 nine webstrand: maybe setting PERL6LIB='inst#/usr/share/perl6' works, too? Would be a much nicer solution.
15:16 awwaiid Reading S12 a bit, I see that you can do "has $x" instead of "has $!x" and it works the same. I guess the reason I see the ! so much is it being more obviouse that it is an instance var?
15:16 webstrand nine: Is there any documentation on how perl6 searches for modules? You mentioned name mangling
15:16 nine webstrand: or RAKUDOLIB instead of PERL6LIB, als panda's bootstrap.pl may overwrite PERL6LIB
15:17 Skarsnik m: use NativeCall; say CArray[int].of;
15:17 camelia rakudo-moar 9a346c: OUTPUT«(int)␤»
15:17 nine webstrand: https://gist.github.com/jnthn/47a42b2e86e7e552b2e2
15:19 loren as i know perl6 search modules is a little slowly ...
15:19 nine loren: why do you think that?
15:20 perlpilot ... compared against Perl 5 (maybe?)
15:20 mspo asht: it should have produced a perl6 script that will handle it
15:20 Su-Shee is "build-panda" here a typo?
15:20 Su-Shee http://rakudo.org/how-to-get-rakudo/ <---
15:21 Tonik joined #perl6
15:21 perlpilot Su-Shee: nope
15:22 asht mspo: my test file was names test6.p6, where will i find the "perl6 scrpt that will handle it"? there is no new file in the current directory.
15:23 RabidGravy needs to be disambiguated from buiild $something
15:23 webstrand nine: RAKUDOLIB seems to partially reverse the effect of RAKUDO_PREFIX, however patching bootstrap to include /usr/share/perl6 works perfectly.
15:23 kjs_ joined #perl6
15:23 muraiki awwaiid: $! in an object makes the field private
15:25 khw joined #perl6
15:25 skids joined #perl6
15:26 FloydATC For any installed module, what is the p6 equivalent of "perldoc That::Module"?
15:26 Su-Shee perlpilot: why is it build moar but build-panda?
15:26 Su-Shee perlpilot: also, why does "build panda" work then?
15:27 Su-Shee hm and why don't I have a perl6 binary in my ~/.rakudobrew/moar-nom/install/share/perl6/site/bin now..
15:27 mst Su-Shee: 'build foo' is 'build rakudo with backend foo'
15:27 yoleaux 09:08Z <nine> mst: I think we're gonna have to be smarter about identifying usable precomp files anyway. Right now, we have to precomp all modules again after installing any module. And precomp files created by panda are invalidated as soon as you install a vendor module package
15:28 FloydATC Su-Shee: I found both panda and perl6 in .rakudobrew/bin/
15:28 mst nine, yeah, I already proposed a solution for that - basically re-dry-run just the resolutions
15:28 RabidGravy muraiki, that's the wrong way round the '.' twigil gives it an accessor, thus making it "public"
15:28 Su-Shee well, I did not.
15:28 Su-Shee ok, throwing this away.
15:28 RabidGravy m: class F { has $f; }; my $t = F.new; say $t.f
15:28 camelia rakudo-moar 9a346c: OUTPUT«Method 'f' not found for invocant of class 'F'␤  in block <unit> at /tmp/59FJuIffkt line 1␤␤»
15:28 Su-Shee I have a panda but no perl6.
15:28 mst Su-Shee: the approach for using rakudobrew is
15:28 FloydATC <- new as well
15:28 mst Su-Shee: (1) add rakudobrew/bin to PATH (2) run 'rakudobrew build moar'
15:28 Su-Shee mst: I know what it is, I'm installing like somebody who has never used anything like it. ;)
15:29 mst Su-Shee: if you skip step 1 it will NOT WORK
15:29 muraiki m: class F { has $.f; }; my $t = F.new; say $t.f
15:29 camelia rakudo-moar 9a346c: OUTPUT«(Any)␤»
15:29 mst Su-Shee: if you follow the README.md it works fine
15:29 muraiki m: class F { has $.f; sub lol { $!f = "lol" } }; my $t = F.new; F.lol; say $t.f
15:29 camelia rakudo-moar 9a346c: OUTPUT«5===SORRY!5=== Error while compiling /tmp/oO44DEmgHJ␤Variable $!f used where no 'self' is available␤at /tmp/oO44DEmgHJ:1␤------> 3class F { has $.f; sub lol { $!f7⏏5 = "lol" } }; my $t = F.new; F.lol; say ␤»
15:30 muraiki bah
15:30 muraiki m: class F { has $.f; method lol { $!f = "lol" } }; my $t = F.new; F.lol; say $t.f
15:30 camelia rakudo-moar 9a346c: OUTPUT«Cannot look up attributes in a type object␤  in method lol at /tmp/N1BCHFbqTk line 1␤  in block <unit> at /tmp/N1BCHFbqTk line 1␤␤»
15:30 Ox0dea left #perl6
15:30 mst Su-Shee: there's no point dry-running "what stupid things could users do", I already know those won't work, I did that myself
15:30 Arrowhead joined #perl6
15:30 muraiki m: class F { has $.f; method lol { $!f = "lol" } }; my $t = F.new; $t.lol; say $t.f
15:30 camelia rakudo-moar 9a346c: OUTPUT«lol␤»
15:30 muraiki finally. heh
15:30 mst if you can find a bug from following the README, that's interesting
15:30 RabidGravy :)
15:31 mst but "rakduobrew doesn't work very well, if at all, unless you follow the documentation" is annoying but not new info :D
15:31 Su-Shee mst: well I did find that all docs are diverging. and that's what the website points to. not to the README.md.
15:31 mst which website points where?
15:32 dalek doc: 232d57a | lizmat++ | doc/Language/faq.pod:
15:32 dalek doc: Recycle pmichaud++'s answer on perl6-user as a faq
15:32 dalek doc: review: https://github.com/perl6/doc/commit/232d57abcc
15:32 tiogilito joined #perl6
15:33 mst Su-Shee: aha, http://rakudo.org/how-to-get-rakudo/ ?
15:33 Su-Shee mst: perl6.org contains the README.md part but points to the rakudo.org install. I'll talk to Zoffix.
15:34 Su-Shee mst: yes, which also contains old version numbers.
15:34 Su-Shee mst: so you better not copy paste it.
15:34 mst Su-Shee: other than the version numbers, the insutrctions look like they'd work
15:34 Su-Shee mst: forget I said something. I'll make it work.
15:35 dalek doc: 2e7ab45 | (Carl Masak)++ | doc/Language/faq.pod:
15:35 dalek doc: fix small typo
15:35 dalek doc: review: https://github.com/perl6/doc/commit/2e7ab4579e
15:35 Skarsnik how do I know when a type is not 'build'?. I perform some check on a the type of param in a trait but I get error when accessing the type in case of : class A { sub p(A $a) is native }
15:36 shadowpaste "mst" at 217.168.150.38 pasted "this is from rakudo.org" (5 lines) at http://fpaste.scsys.co.uk/503614
15:36 mst Su-Shee: ^^ if that series of commands doesn't work, I want to know
15:36 lizmat masak++  # good catch
15:36 pierre-vigier joined #perl6
15:37 webstrand joined #perl6
15:37 Ulti FloydATC for docs there isn't a good command line solution I dont think, http://docs.perl6.org/ is all the official reference documentation though
15:37 yoleaux 28 Dec 2015 10:33Z <moritz_> Ulti: re http://irclog.perlgeek.de/perl6/2015-12-26#i_11782724 please ping in 2016 about that, currently not at home
15:38 Su-Shee mst: that's the line which adds to the bashrc, not the README.md line which just adds to the path. you'd have to say for new people which one to use preferably. also, see above, I asked beforehand if rakudobrew works without adding it permanently to the bashrc. it's very confusing if you don't know perlbrew already.
15:38 CoconutCrab dmesg
15:39 _mg_ joined #perl6
15:39 CoconutCrab ops, sorry, wrong window
15:39 mst Su-Shee: the README.md version proposes adding rakudobrew init - to .bashrc
15:39 mst Su-Shee: so, both add to .bashrc
15:39 RabidGravy is the author of "RPi" i.e "cspencer" in the house? I forgot what your nick was
15:39 Su-Shee mst: *sigh* forget I said something.
15:40 Ulti RabidGravy yeah I wasn't sure if that was someone on here or not
15:40 acrussell joined #perl6
15:40 masak is it really `rakudobrew build moar` and then `rakudobrew build-panda` (with a hyphen)?
15:40 masak whyyyyy
15:40 mst yes
15:40 mst yes it is
15:40 Ulti because reasons
15:40 masak gnnnrk
15:40 llfourn yup
15:40 mst because 'rakudobrew build' should've been called 'rakudobrew build-rakudo'
15:40 llfourn it used to be build panada though I think
15:40 geekosaur arguably should be build-perl6
15:40 RabidGravy Ulti it was I just can't remember who
15:40 Ulti probably not great reasons
15:40 * masak wants to afflict someone with severe consistency
15:40 geekosaur or that
15:41 tadzik hysterical reasons :)
15:41 yoleaux 28 Dec 2015 23:29Z <AlexDaniel> tadzik: yeah, great! Travis status is a bit weird, why does it attempt to run it on 2015.09? Anyway, that means that https://github.com/tadzik/Bailador/issues/43 could be closed after the tests are added
15:41 skyl4rk joined #perl6
15:41 Ulti tadzik heh
15:41 Ulti we cant break back compat!
15:41 tadzik it's already called rakudobrew, so 'build-rakudo' is quite redundant
15:41 Ulti ever
15:41 Su-Shee masak: well. I asked that 10 minutes ago.
15:41 tadzik build-panda was an addition, and it also works as 'build panda' since everyone accidentally writes it that way
15:42 mst yes, but apparently he wasn't reading, so I answered it again
15:42 masak Su-Shee: sorry, my backlogging sucks these days :/
15:42 mst all good
15:42 Su-Shee tadzik: then why not just write build panda everywhere? because I typed build panda as well and it just worked :(
15:42 masak <Su-Shee> perlpilot: why is it build moar but build-panda?
15:42 tadzik I don't mind removing the build-panda form
15:42 masak found it :)
15:42 tadzik also
15:42 tadzik well
15:43 masak tadzik: I'm fine as long as it works both with and without the hyphen ;)
15:43 RabidGravy THINK OF THE CHILDREN!
15:43 llfourn should be fine unless someone invents a pandaVM that runs rakudo
15:43 masak tadzik: that, or only one of the ways works.
15:43 tadzik I caught myself trying to explain it like "it's obvious if you look at how it's implemented!" but that's just a stupid excuse :)
15:43 webstrand joined #perl6
15:43 Ulti just 'build' defaulting to the current tagged release and building panda too would be good
15:43 masak tadzik: :D
15:43 tadzik masak: so you're fine either way?
15:43 masak tadzik: no, no
15:43 tadzik oh
15:43 tadzik well, both forms work now
15:43 tadzik so you're happy :)
15:43 masak tadzik: should be "all four forms work now" for me to be happy
15:44 tadzik oh
15:44 perlpilot tadzik: I want "rakudobrew dwim" to do all the things in just the right way that makes me happy  ;-)
15:44 Ulti surely the panda vm would be called bamboo
15:44 Su-Shee well it looks like a typo when you actually read the docs. so you start question of it.
15:44 tadzik perlpilot: that's actually brilliant
15:44 tadzik Ulti: bamboo already exists :)
15:44 Ulti because pandas run on bamboo
15:44 masak tadzik: `build-moar`, `build moar`, `build-panda`, `build panda`
15:44 mst perlpilot: yes, I've already been thinking about that
15:44 Ulti oh well we can target it then :D
15:44 tadzik it's a dependency bundler: github.com/sergot/bamboo
15:44 RabidGravy document the one that least confuses, allow both, solved
15:44 mst that's a better name than I had for it
15:44 masak RabidGravy: right
15:44 masak RabidGravy: I think space is less confuzzling than hyphen
15:44 tadzik so, tl;dr: change the documentation to remove the hyphen
15:44 masak aye
15:45 masak ++tadzik
15:45 perlpilot +1
15:45 muraiki rakudobrew build—panda
15:45 masak tadzik: what perlpilot said, but s/dwim/christmas/
15:45 Ulti tadzik++ you'll need the karma once you're done too
15:45 * mst thinks we need a rakudo-build ala perl-build
15:45 masak tadzik: or s/dwim/xmas/
15:46 perlpilot masak: oh! yes, like that.
15:46 masak tadzik: or both :)
15:46 RabidGravy masak, "rakudobrew dwim"?  cooooool
15:46 masak RabidGravy: no, "dwim" is like so one minute ago! :P
15:46 * smls thinks "cocoon" could be a decent name for some Perl 6 package-management related tool
15:47 Arrowhead joined #perl6
15:47 FloydATC Another newbie question: Where in the world does panda install modules when executed as non-root? I installed one but I can't find it anywhere
15:47 tadzik it's fixed
15:47 Su-Shee I'm happy without all the puns as long as I get an easy consistent foolproof install thing. for all I care it can be named klauspeter.
15:47 tadzik Su-Shee: challenge accepted
15:47 Su-Shee tadzik: did you fix it on both perl6.org and rakudo.org?
15:48 RubiO joined #perl6
15:48 tadzik Su-Shee: neither, I fixed readme and --help :)
15:48 aenaxi joined #perl6
15:48 Su-Shee tadzik: ah, in tadzik's org :)
15:48 tadzik I don't think I can fix it on rakudo.org, but I can get perl6.org
15:48 tadzik Su-Shee: pretty much, yes :)
15:48 FloydATC ...since I can't find the equivalent to "perldoc" for modules I thought I'd peek inside but I can't find it... feel like my parents here :-|
15:48 RabidGravy shit, tadzik isn't omnipotent?  I'm aghast ;-)
15:48 tadzik FloydATC: have you tried p6doc?
15:49 Ulti isnt p6doc the synopsis stuff rather than the actual docs?
15:49 RabidGravy no actual docs.perl6.org stuff
15:49 FloydATC Nope, I'm completely new and lost. Just brewed rakudo a few minutes ago
15:49 tadzik RabidGravy: heh, fsvo potent perhaps :D
15:49 RabidGravy :)
15:50 tadzik (I hope that this only sounds largely inappropriate in polish)
15:50 pierre-vigier joined #perl6
15:50 Su-Shee so. off to see the force awakens ;)
15:50 tadzik \o/
15:50 tadzik have fun :)
15:50 andreoss left #perl6
15:50 tadzik and I'll show you my fan theory later
15:51 Su-Shee tadzik: I'm not a fan.
15:51 masak Su-Shee: have the appropriate amount of force
15:51 tadzik doesn't matter!
15:51 FloydATC tadzik: p6doc must be cloned and built completely separately from rakudo, is that right?
15:51 tadzik it's still hilarous
15:51 RabidGravy I know we're targetting 7 yos as well as gnarled geeks but I think you're alright
15:51 tadzik FloydATC: yes, it's a module
15:51 pmurias mst: re rakudo-build, that is what people who want to install rakudo in /usr/local should be using instead of bending rakudobrew
15:51 masak tadzik: is it about Jar-Jar being a jedi? :/
15:51 Su-Shee tadzik: oh god no.. I hate "hilarious" :(
15:51 tadzik masak: no, it's better than that
15:51 FloydATC oh so "panda install p6doc" should work then?
15:51 Su-Shee masak: PLEASE DO NOT SCARE ME
15:51 tadzik masak: have you watched it already?
15:51 tadzik the 7th
15:51 masak Su-Shee: what? that one is obvious if you think about it...
15:52 masak tadzik: nope
15:52 dalek rakudo/nom: 74ab052 | lizmat++ | src/core/DateTime.pm:
15:52 dalek rakudo/nom: Make DateTime.now about 4x faster
15:52 dalek rakudo/nom:
15:52 dalek rakudo/nom: By creating it from posix, rather than from the Instant now.
15:52 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/74ab0526f2
15:52 Su-Shee masak: I don't care if it's obvious, I so dearly hate figures like jar jar and neelix and the like. :(
15:52 TimToady NO SPOILERS!!!!
15:52 yoleaux 14:34Z <orbus> TimToady: I did some more checking last night.  It's not documented in the class docs on doc.perl6.org, but the base Exception class does indeed have .resume .  If there's a way to prevent people calling it on custom exceptions in modules, I haven't figured it out yet.
15:52 tadzik masak: ah, alright. My theory is based on, and contains minor spoilers
15:52 RabidGravy lizmat++ # speed up Chronic wildly
15:52 masak tadzik: no minor spoilers!
15:52 tadzik NO LOL
15:52 tadzik NO PROJECT EULER
15:53 masak NO PROJECT SPOILER
15:53 skids Spoiler -- Jar-Jar sings "oh meesa horney"
15:53 mst pmurias: right, and then rakudobrew can piggyback on that and etc.
15:53 tadzik skids: :D
15:53 RabidGravy no elvis, beatles or the rolling stones
15:53 masak Su-Shee: I agree Neelix has few redeeming qualities.
15:53 RubiO Can anybody help me? I get the error "===SORRY!===\nError encoding ASCII string: could not encode codepoint 234" whenever I try to run an script on MoarVM. I noticed it doesn't happen on JVM. I googled this message but with no luck until now.
15:53 webstrand Is there any reason not to move panda to perl6/vendor since I'm packaging it?
15:54 masak RubiO: seems your script is in some odd encoding.
15:54 masak RubiO: are you on Windows? are you using Notepad? :)
15:54 asht on perl6 command line, what are the valid values for "target"? I can't find much documentation on command line.
15:54 RubiO No, I'm on Fedora 22
15:55 RabidGravy better share the code then as I'm on Fc22 too
15:55 RubiO I'll try to save it again on another encoding
15:55 RubiO Let me see how it goes
15:56 masak asht: --target=mbc on Moar, --target=jar on the JVM
15:56 masak RubiO: should be UTF-8, preferably
15:56 mst webstrand: what would that ential?
15:56 * perlpilot catches back up ...
15:56 webstrand mst: mv $prefix/site $prefix/vendor
15:56 perlpilot so "rakudobrew build panda" is what rakudo.org should say, yes?
15:57 asht masak: Thanks,  masak.
15:57 RabidGravy I think "parse" "ast" and some other things are valid targests but only useful for deep debugging
15:57 FloydATC Even more confused now. I installed "HTTP::Server" using panda but can't find it anywhere. My test script is okay with "use HTTP::Server" but p6doc says it can't find "HTTP::Server".
15:57 molaf joined #perl6
15:57 mst webstrand: oh. right. if you're supplying a version via OS packages it should be going into vendor, yeah
16:02 llfourn FloydATC: I'm not sure that p6doc works with modules...
16:02 RabidGravy FloydATC, I don't think p6doc has caught up with the way the modules are stored
16:02 * llfourn has never used p6doc
16:03 FloydATC ok, makes sense
16:03 Ulti asht: you can also --target=parse and --target=ast which are some of the compiler steps before producing anything executable, only really useful for slang/compiler debugging
16:03 FloydATC So, how are the modules stored? Because I've tried locating them and can't
16:04 llfourn FloydATC: somewhere in .rakudobrew if you're using it
16:04 FloydATC I am, but 'find' comes up with nothing that matches so I'm a little confused
16:05 Ulti try grep for the class name
16:05 FloydATC In fact..  s/a little//;
16:06 FloydATC Well, for HTTP::Server I tried to grep for Server.pm and got nothing
16:06 Ulti grep for Server
16:06 Ulti the .pm wouldnt be in the source
16:07 FloydATC I find nothing relevant and HTTP comes up empty
16:07 ShimmerFairy try ~/.perl6
16:08 llfourn hmm so like FloydATC is right i can't find em either as .pm files
16:08 perlpilot yeah, but good luck finding something resembling the name "Server.pm"
16:08 llfourn I can find precomp files
16:08 FloydATC Nothing in ~ at all, in fact I changed to root, did 'updatedb' and then locate, still only finding perl5 stuff
16:08 llfourn so panada doesn't keep the .om around anymore?
16:08 llfourn s/om/pm/
16:09 awwaiid perlpilot: it's rakudobew build-panda last I knew
16:09 RabidGravy it hashes the .pm file too
16:09 llfourn ahh that makes sense
16:09 perlpilot awwaiid: aye, but "rakudobrew build panda" also works and seems to be less confusing
16:09 llfourn I mean that explains what I'm seeing not that I understand why
16:10 RabidGravy so "find <wherever> | xargs grep -l HTTP::Server" should find it
16:11 zakharyas joined #perl6
16:11 llfourn hmm so #inst compunit repo stores files as hashes
16:11 Skarsnik hm, How I get the 'value' of a Parameter?
16:11 RubiO masak, RabidGravy, I reduced the problem to this: I can have non-ascii chars on token names on a grammar, but I got that error if I try to refer to the declared token using <>.
16:12 RubiO For instance, this passes OK on "perl6 -c": grammar { token TOP { <numero>+ } token número {<< \d+ >>} }
16:12 RubiO But this does not: grammar { token TOP { <número>+ } token número {<< \d+ >>} }
16:12 Ulti Skarsnik a command line one? @*ARGS
16:13 Skarsnik nop the Parameter type
16:13 Skarsnik http://doc.perl6.org/type/Parameter
16:13 Skarsnik but come to thing of it, it's probably not "doable"
16:13 Ulti do you mean specifically from within a function getting the params of that function
16:14 RabidGravy RubiO, I was going to ask you to distl it down but you did,  unless someone chimes in I'd suggest that may be worth an RT
16:14 RabidGravy m: grammar { token TOP { <número>+ } token número {<< \d+ >>}
16:14 camelia rakudo-moar 74ab05: OUTPUT«===SORRY!===␤Error encoding ASCII string: could not encode codepoint 250␤»
16:14 perlpilot RubiO: also, you said you don't get that error on JVM?
16:14 chansen_ lizmat: If you really want to make DateTime faster, only store absolute count of elapsed unit since epoch and lazily compute the broken down components. Current implementation makes the same mistakes as the Perl5 implementation of DateTime.pm
16:14 RubiO Here's a better example. This runs OK: perl6 -c -e 'grammar { token TOP { <numero>+ }; token número {<< \d+ >>} }'
16:15 RubiO This does not: perl6 -c -e 'grammar { token TOP { <número>+ }; token número {<< \d+ >>} }'
16:15 RabidGravy I'm curious now
16:16 RubiO perlpilot, yes. This runs OK: perl6-j -c -e 'grammar { token TOP { <número>+ }; token número {<< \d+ >>} }'
16:16 RabidGravy m: sub número() { say "ahay" }; número()
16:16 camelia rakudo-moar 74ab05: OUTPUT«ahay␤»
16:16 lizmat chansen_: is there a Perl5 implementation without those mistakes ?
16:16 RabidGravy okay, so it's "just" in there
16:17 RubiO Strangely enough, yes.
16:17 Skarsnik Ulti, I am validating the signature of a routine and I want to valid too the evenvual parameters of a callable if one is given
16:17 RubiO And I'm sure it ran before. It must have been introduced in some recent update
16:18 chansen_ lizmat: Time::Moment, but most of it's implementation is in C/XS
16:18 perlpilot that would normally make me think that it's really an NQP problem leaking through, but I'm not so sure
16:18 RabidGravy RubiO++ # top weirdness of the day :)
16:20 Arrowhead joined #perl6
16:20 [ptc] 17:20 -!- Arrowhead [~schuller@535500D8.cm-6-6a.dynamic.ziggo.nl] has joined #perl6
16:20 [ptc] whoops, sorry
16:20 RabidGravy perlpilot, but you'd share my assessment it's a bug right? ;-)
16:21 RubiO m: grammar { token TOP { <número>+ }; token número {<< \d+ >>} }
16:21 camelia rakudo-moar 74ab05: OUTPUT«===SORRY!===␤Error encoding ASCII string: could not encode codepoint 250␤»
16:21 perlpilot RabidGravy: indeed :)
16:23 RabidGravy RubiO, on the grounds no-one is going to fix it right here could you file a bug at https://rt.perl.org/  (against Perl 6 natch) or email the address I can't remember
16:23 vendethiel joined #perl6
16:24 llfourn rakudobug@perl.org #my best frnd
16:24 RubiO RabidGravy: ok
16:24 RabidGravy rakudobug@perl.org?
16:24 llfourn yes
16:24 perlpilot rakudobug@perl.org !
16:24 perlpilot :)
16:25 RabidGravy sorry brane is a bit laggy
16:25 chansen_ lizmat: you can also look at Go's implementation, C# and C++ boost
16:26 masak tadzik: thinking about it, maybe `rakudobrew install` is the least punny, most self-explanatory subcommand
16:27 masak tadzik: you can always claim it's short for "install all" :P
16:27 perlpilot "rakudobrew install all the things now please"
16:27 RabidGravy but top bug, nonetheless.  It's a worry when actual real bugs are more exciting than misunderstandings
16:28 pmurias RabidGravy: --target=ast is awesome for the implementers
16:28 pmurias AFAIR niecza didn't have proper ast dumping support and it was a major barrier for getting involved with it's development
16:28 RabidGravy yeah, even I've used it it but not convinced of it's more general utility ;-)
16:29 Arrowhead joined #perl6
16:30 xpen joined #perl6
16:30 hoelzro o/ #perl6
16:30 pmurias hoelzro: hi
16:31 hoelzro o/ pmurias
16:33 xinming joined #perl6
16:34 smls So... Have any press outlets picked up on the Perl 6 release yet?
16:34 smls (Not counting hackernews / sdlashdot / perl blogs)
16:35 gfldex smls: heise.de did
16:35 hankache joined #perl6
16:37 hankache .tell supernovus can kindly check the PR on https://github.com/supernovus/template6 It adds "use MONKEY-SEE-NO-EVAL" in order for EVAL to work
16:37 yoleaux hankache: I'll pass your message to supernovus.
16:39 TimToady smls: infoworld did a piece
16:39 hankache hello *
16:39 hankache TimToady link?
16:40 smls this one? http://www.infoworld.com/article/3017418/application-development/developers-can-unwrap-perl-6-on-christmas.html
16:41 Skarsnik damn void method have two params when using signature.param on them?
16:42 simcop2387 joined #perl6
16:42 RubiO #127075 open for encoding error when a non-ascii token is referenced back in a grammar.
16:42 dalek perl6-examples: cfc205a | paultcochrane++ | categories/euler/prob288-shlomif.p6:
16:42 dalek perl6-examples: Add verbose cmd line option to problem 288
16:42 dalek perl6-examples:
16:42 dalek perl6-examples: This reduces the amount of output to check in the tests.
16:42 dalek perl6-examples: review: https://github.com/perl6/perl6-examples/commit/cfc205abf4
16:42 dalek perl6-examples: 4970aba | paultcochrane++ | t/categories/euler.t:
16:42 dalek perl6-examples: [euler] add tests for problems 288, 329 and 539
16:42 dalek perl6-examples: review: https://github.com/perl6/perl6-examples/commit/4970aba83e
16:42 simcop2387 joined #perl6
16:43 timotimo cosimo: for jupyter/iperl6kernel you best ask arnsholt
16:43 dalek perl6-examples: f3a6365 | paultcochrane++ | .gitignore:
16:43 dalek perl6-examples: Ignore the .precomp dir
16:43 dalek perl6-examples: review: https://github.com/perl6/perl6-examples/commit/f3a63651ec
16:43 [ptc] stmuk: what are *.un~ files?  Just noticed them in perl6-examples .gitignore
16:44 chansen_ lizmat: if you want more input or work on this together, let me know
16:44 lizmat chansen_: I think there's room for such an implementation in module space
16:45 lizmat chansen_: I think the current Perl 6 implementation is now at a nice place wrt to speed, ease of use and API
16:45 hankache anyone working on the windows MSI?
16:45 chansen_ lizmat: IMHO, core DateTime should be fast and correct
16:45 lizmat chansen_: dates and times are two different things
16:46 lizmat chansen_: agree with you on the correct part: and afaik, it's now correct except for "now" being one second off when inside a leap second
16:46 lizmat but that is an underlying OS issue, really, I'm afraid
16:47 lizmat chansen_: at former $work, I used to have to deal with dates a lot
16:47 lizmat if you know the range in which you want to accept dates, things can be speeded up by again some order of magnitude
16:48 lizmat but DateTime/Date/Dateish need to be more general, so no go for that  :-)
16:50 pmurias hoelzro: I'll be applying for a hague grant to work on rakudo-js: github.com/pmurias/grant_proposal/blob/master/draft.pod
16:50 hoelzro awesome! pmurias++
16:50 pmurias hoelzro: if you have time I would love to see feedback
16:50 hoelzro sure, I'll take a look
16:51 ShimmerFairy .tell nine according to bisection, ac7b2a5a8381d5f255906437d1980c9c3b77e2a5 is the rakudo commit that breaks SUPERNOVA for me (without trying Grammar::Tracer). And I can't tell why.
16:51 yoleaux ShimmerFairy: I'll pass your message to nine.
16:51 chansen_ lizmat: I'm not talking about leap-seconds, DateTime.pm in p5 and p6 pretends to observe leap-seconds and is probably the only one that does in a "standard" library which is just silly IMHO!
16:52 perlpilot pmurias: nice
16:52 chansen_ lizmat: You cannot obtain current time from OS using time() or gettimeofday() and observe leapseconds
16:52 pdcawley joined #perl6
16:53 mohij joined #perl6
16:53 chansen_ You need to query NTP to obtain whether or not leap second is in effect
16:54 cdg joined #perl6
16:54 chansen_ .. or GPS or a Atomic clock
16:54 RabidGravy pmurias, as some of my DJ friends say "full support" :)
16:55 ChoHag There's nothing silly about being correct.
16:56 ChoHag If leap seconds exist, software which deals with times should consider them.
16:56 chansen_ lizmat: Learn from others, don't learn from p5 DateTime!
16:56 simcop2387 joined #perl6
16:57 cosimo timotimo: ok
16:57 lizmat chansen_: well, I'm afraid your suggestion comes quite a few years too late  :-(
16:57 lizmat chansen_: but as always, patches welcome
16:57 perlpilot chansen_: you could offer a "better" implementation.  If it's truly better, it could find its way into core.
16:57 RabidGravy I'm torn.  Only a canonical time source can no about leap seconds
16:58 RabidGravy know even
16:58 ChoHag I know about leap seconds, and there's nothing canonical about me.
16:58 lizmat chansen_: personally, I'm just about done with Dateish/Date/DateTime
16:58 autarch FWIW, I agree with chansen_ about leap seconds - totally not worth it
16:58 perlpilot RabidGravy: a priori, yes, but after the fact, anything can "know" about leap seconds.  :)
16:58 RabidGravy ChoHag, but you're special :)
16:59 japhb Also, how leap seconds are handled isn't standardized even by those who care.  Several cloud providers "smear" leap seconds, for example.
16:59 perlpilot autarch: do you also agree with his assessment of DateTime?  :)
16:59 lizmat well, everybody: leap second support is engrained in 6.c now, so not going to go away
16:59 chansen_ perlpilot: which assessment?
16:59 autarch perlpilot: somewhat - there are things that DateTime does really well
16:59 ChoHag Since perl 6 isn't an OS or even its kernel, leap seconds only need to be counted, not lived.
16:59 lizmat you don;'t want to know how many tests we have for that  :-)
17:00 perlpilot chansen_: the "mistakes" you mentioned.
17:00 pierre-vigier joined #perl6
17:00 autarch I do want to see p6 have full support for time zones as Olson zones with rules, not as offsets
17:00 japhb Ditto that ....
17:00 ChoHag What you don't want is some developer deciding that they absolutely must handle leap seconds, finding out that DateTime doesn't, and rolling their own.
17:00 autarch I will say that supporting time zones _and_ leap seconds makes life incredibly hard
17:01 autarch and of the two, tz support is far more practically useful
17:01 japhb autarch: Why so?
17:01 ChoHag Well perl's all about making the impossible merely hard.
17:01 japhb Are there any leap seconds near rule boundaries?
17:01 autarch japhb: when constructing an object from the local time, it's really hard to figure out if it's valid
17:02 japhb Oh, hmm.
17:02 chansen_ perlpilot: As I said, look at GO, C#, C++ boost, ObjC NSDate, If you want papers (I have booksmarks, let me know=
17:02 chansen_ .. GDateTime
17:02 autarch to clarify - if you specify "second = 60" then validating that requires you to know the offset from UTC, which is tricky to figure out before validating the values
17:02 TimToady translate to atomic and back, and see if it matches?
17:03 dalek rakudo/nom: 461e635 | lizmat++ | src/core/Date (3 files):
17:03 dalek rakudo/nom: Make &formatter a Dateish attribute
17:03 dalek rakudo/nom:
17:03 dalek rakudo/nom: This effectively adds :formatter parameter to Date as well.  Because?
17:03 dalek rakudo/nom: Well, why not, it would make things consistent and further simplify
17:03 dalek rakudo/nom: Date/DateTime
17:03 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/461e635f0d
17:03 perlpilot or ... forego validation  ;>
17:03 autarch if I were to do it all over again I'd probably look for a C library that does most of this and link against that or something
17:03 japhb autarch: Ah, I can see the chicken-and-egg problem, yes.
17:03 chansen_ perlpilot: I did my research when I implemented Time::Moment in C/XS
17:04 lizmat autarch: well, the Date/DateTime modules predate NativeCall... they were one of the first to be implemented, I think
17:04 autarch http://blog.urth.org/2010/11/26/cpan-api-review-datetime-and-datetimeduration/ - my review of DateTime
17:04 * leont agrees with Olson zones being way more useful than offsets
17:04 japhb chansen_: Note that "no one else in the language dev community decided to try" is not in itself an argument that necessarily sways the Perl community ....
17:04 TimToady yeah, we're funny that way
17:04 ChoHag Actually doing shit?
17:04 ChoHag Who *does* that?
17:05 leont In fact, I'd say offsets are so often used wrong that they can be harmful
17:05 RabidGravy ornery mofos thelot of 'em
17:05 TimToady now, let's keep it butterfly friendly, kids
17:05 autarch yeah, offsets are basically just wrong
17:06 RabidGravy TimToady, I was ;-)
17:06 chansen_ japhb: I'm not sure I follow, care to elaborate?
17:06 autarch offsets fall under "making hard things harder, and wrong things easy"
17:06 ChoHag Do butterflies not swear?
17:06 chansen_ autarch: I agree
17:06 ChoHag autarch: That's basically programmin in a nutshell.
17:06 cdg joined #perl6
17:07 chansen_ autarch: But Time::Moment is a true implementation of ISO 8601
17:07 TimToady not when there might be larvae reading the logs
17:07 RabidGravy a kind of rooting question, how often are leap seconds issued?
17:07 perlpilot whenever needed
17:07 perlpilot but no more than 2 times per year
17:07 leont Once every ±3 years on average, I think
17:07 ChoHag Languages should stop people doing stupid things when hammers can no longer hurt thumbs.
17:07 TimToady it depends on how hard the asteroid hits and at what angle
17:07 RabidGravy right
17:08 chansen_ heh
17:08 TimToady speaking of hammers
17:08 japhb chansen_: Meaning: we might get things wrong (and we have), but lots of other languages not doing something never stopped us from *trying* to get something right before.  :-)
17:08 autarch the rest of the core p6 DateTime stuff looks fine, but I think it'd be good to rip out the timezone bits and replace them with something Olson-ish
17:08 Skarsnik "Let's add this to NC, it should only take an hour"... 4 hours later
17:09 japhb autarch: Sadly, we need both, in order to interop with the ISO standard.
17:09 autarch I wish there were an Olson C lib
17:09 japhb ... but I will heavily second *that*
17:09 ChoHag 400%? I'm still in the foundation stages 3 years later on something I was sure would take about 4 months. 6 tops.
17:09 autarch japhb: given the _current offset_ in seconds or formatting as "+07:00" is totally ok - calling that a _time zone_ is not
17:09 TimToady quick, write a C backend for Perl 6, and we can write the C lib for them
17:09 RabidGravy a lot of worry and sweat over a ~ 1/100000000 inaccuracy this then
17:09 autarch TimToady: back in 5 minutes
17:09 japhb autarch: Ah, then we 100% agree
17:10 autarch done - finished early
17:10 chansen_ I definitely agree with autarch, I have received countless of emails asking how to use Time::Moment with time zones.
17:10 TimToady :D
17:10 autarch it's at imaginarygithub.com
17:10 perlpilot RabidGravy: well ... we want P6 to be used for highly accurate things at some point  :)
17:10 TimToady actually, you just have to unroll MoarVM, since it's in C
17:11 autarch in all seriousness, parsing the Olson files in Perl 6 should not be too hard other than the fact that there's basically zero documentation of the internal format other than some of the grottiest C code I've ever looked at ;)
17:11 pierre-vigier joined #perl6
17:11 ChoHag Perl programmers are no strangers to grotty-looking source code.
17:11 TimToady we speak Unicode, so how hard could Olson be?
17:11 japhb autarch: I would think your Perl 5 code qualifies in that regard as well ....
17:11 ChoHag TimToady: Thems sounds like famous last words.
17:12 RabidGravy I like second accuracy, I run a radio station that annoys the DJs by starting and ending their shows bang on the second they're supposed to, but what?
17:12 autarch japhb: I don't parse the binary files - just the text source - but that was a terrible idea
17:12 chansen_ autarch: how about two implementations, one that uses the tzfile(5) provided by many OS and one that uses Olsen raw data?
17:12 autarch _do not do what I did_
17:12 hoelzro pmurias: looks good to me!
17:12 autarch chansen_: I think it might be easier to just package up the Olson binary data as a Perl 6 distro for OS's that don't include it
17:12 SwellJoe joined #perl6
17:12 autarch that's basically what zefram did
17:13 dalek doc: cae275b | skids++ | doc/Language/ (2 files):
17:13 dalek doc: Link up (hopefully, contingent on markup working) wantarray sections
17:13 dalek doc:
17:13 dalek doc: Also, provide examples for alternatives to wantarray
17:13 dalek doc: review: https://github.com/perl6/doc/commit/cae275ba57
17:13 autarch TimToady: here's you docs ;) https://github.com/eggert/tz/blob/master/zic.c
17:13 flussence the timezome-data package I've got installed provides /usr/sbin/zdump, which prints everything in a nice one-line-per-thing text format
17:14 autarch the key bits start at https://github.com/eggert/tz/blob/master/zic.c#L1592
17:14 japhb autarch: Psssh, I've seen *way* grottier C code.  :-)
17:15 autarch japhb: great, explain to me what the heck that does then!
17:15 japhb Though the formatting rules are ... weird.
17:15 flussence so if anyone's thinking of writing a zonefile parser, test it against that reference implementation :)
17:15 chansen_ autarch: That would also work
17:15 japhb autarch: I just remembered, I have something else to do ...
17:15 autarch flussence: yes, that's how I generate test for DateTime::TimeZone
17:15 * japhb hums innocently
17:16 lizmat autarch: for adding Olson timezone support, you only need to augment method new() with a candidate that takes Str:D $timezone instead of Int
17:16 autarch https://github.com/autarch/DateTime-TimeZone/blob/master/tools/tests_from_zdump - parsing zdump
17:16 pierre-vigier joined #perl6
17:16 leont Who the hell assumes the compiler has 5 registers available?
17:16 autarch lizmat: well, then the internals need to do something with that, and the timezone method should not return what it returns now
17:16 leont That's just, dumb
17:17 RabidGravy I think I'm going to have to "upgrade" to some serious beer to follow this
17:17 lizmat autarch: call BUILD the same was as the current main new, and we should be in business
17:17 chansen_ leont: 5 registers, which compiler?
17:17 leont No, 8 even!
17:17 leont That code autarch just linked
17:17 RabidGravy leont, I'm sure there are microcontrollers that do
17:18 leont I'm sure there are, it's just but this isn't code for microcontrollers
17:18 japhb I like the bit where the comments go into great detail about the age of the big bang ... and then round to the nearest power of two.
17:18 autarch lizmat: it's a little more involved than that - you can't just turn an Olson tz into a number and then use that internally
17:18 leont (grammar!, sigh)
17:18 timotimo oh hey japhb
17:19 japhb oh hey timotimo
17:19 lizmat autarch: you can for a given YYYMMDDHHMMSS ?
17:19 ChoHag How do we specify and use class/module versions?
17:19 timotimo i feel i'm a bit reluctant to go ahead and run benchmarks with current rakudo and older rakudos because of the "tests require different code at different releases" :|
17:19 timotimo oh, and i still ought to write that weekly
17:19 autarch lizmat: yes, but things like .later and .earlier need to pass the zone name around so that you get the right local time
17:19 RabidGravy speaking of which I'm going to completely rip off the C code from Device::SMBus in a minute
17:19 timotimo i could get started on that after grocery shopping
17:19 ChoHag I recall a lot of arguments on this in perl 5. Did 6 solve the problem or do we now have n+1 standards?
17:19 autarch also, how do you handle non-existent local times, 25 hour days where there are two of the same hour, etc.
17:19 RabidGravy get beer it will help
17:20 leont Time is difficult :-(
17:20 japhb timotimo: We should fix (if needed) any tests for Perl 6 6.c and NQP 2015.12, and anything too old for that is ... too old.
17:20 nine ChoHag: we do have a Version class and version literals.
17:20 yoleaux 16:51Z <ShimmerFairy> nine: according to bisection, ac7b2a5a8381d5f255906437d1980c9c3b77e2a5 is the rakudo commit that breaks SUPERNOVA for me (without trying Grammar::Tracer). And I can't tell why.
17:20 japhb I find myself less interested in the deep past recently.
17:20 RabidGravy but we couldn't do without it
17:20 ChoHag I saw that.
17:20 nine ShimmerFairy: that...does not make any sense
17:21 ChoHag No idea how to correctly use it. For whatever value of 'correct'.
17:21 lizmat m: my Int $a = 3600 but role { method Str { "Europe/Amsterdam" } }; say $a, $a + 0   # adding timezone info
17:21 camelia rakudo-moar 461e63: OUTPUT«Europe/Amsterdam3600␤»
17:21 lizmat autarch: ^^^
17:21 perlpilot leont: I think time is fine ... it's just the human gyrations with time that are difficult.
17:21 leont What is time without human gyrations?
17:21 RabidGravy lizmat++ :)
17:21 perlpilot leont: simple!
17:22 RabidGravy leont, leave peoples gyrations outta this
17:22 * leont throws relativity at perlpilot
17:22 japhb perlpilot: Do you consider "general relativity" one of those human gyrations?
17:22 ChoHag Should DateTime handle time dilation?
17:22 * perlpilot catches the relativity and juggles it with classical mechanics
17:23 RabidGravy it would be so much simpler if everything happened all at once
17:23 timotimo japhb: if anything past 2015.12 is "too old", i can hardly get a good performance comparison against older versions :)
17:23 * flussence goes to check up on What Would Postgres Do?™ in this situation
17:23 ChoHag RabidGravy: It does.
17:23 japhb timotimo: Well, you can, just not a *complete* one.  Older compilers will handle fewer and fewer of the tests.
17:23 ChoHag With the right definition of "once".
17:24 timotimo fair enough
17:24 TimToady Perl 6 is designed to track atomic time.  It doesn't really care *whose* atomic time it's tracking. :)
17:24 timotimo i suppose i'll just go do a run or two
17:24 RabidGravy that's alright then. time is hitler
17:24 TimToady we're done here :)
17:24 japhb timotimo: You just won't be able to use the single summary number for overall performance comparison, unless we change the way it is calculated when tests are missing.
17:24 FloydATC I thought time was money
17:24 chansen_ lizmat: there are two sides, the instant and the local date. When computing the offset from a local date there is potential result of ambiguous/non-existant time while computing the offset from instant is unambiguous.
17:24 ChoHag Did a discussion on time just get Godwinned?
17:25 ChoHag Impressive.
17:25 perlpilot "Every Perl 6 compiler ships with a Cesium 133 atom to calibrate it's DateTime implementation"
17:25 ChoHag Must have been going on for a ... long time then.
17:25 perlpilot s/it's/its/
17:25 RabidGravy :)
17:25 flussence hm, pg's built in idea of a "time zone" is 4 digits too...
17:25 timotimo perlpilot: isn't a single atom a bit too sparse to get atomic time pings?
17:26 RabidGravy perlpilot, the export regs might be trickt but hey. I've been pestered by boeings lawyers for less.
17:26 japhb ChoHag: I suddenly have the urge to find some tie-in that would make the Godwin application actually relevant.
17:26 ChoHag timotimo: The idea is to get the cumulative effects of all the perl 6 users.
17:26 perlpilot ChoHag: that's also how we track them  ;)
17:27 dalek doc: 2c77d0f | lizmat++ | doc/Type/Date (3 files):
17:27 dalek doc: Document Date's :formatter named parameter
17:27 dalek doc:
17:27 dalek doc: Just like DateTime's, now that it lives in the Dateish role.
17:27 dalek doc: review: https://github.com/perl6/doc/commit/2c77d0f318
17:27 japhb .oO( Even the Perl 6 users in space? ... Oh dang, was I not supposed to talk about those? )
17:27 mst japhb: SPAAAAAAAAAAAAAAAAAAAAACE
17:28 autarch lizmat: that might work, but I'd have to think about it
17:28 japhb mst: "It's called that, because there's so much of it."
17:28 perlpilot japhb: "Perl 6 was so revolutionary, we had to kick some people off the planet" ?
17:28 japhb perlpilot: :-D
17:29 autarch lizmat: there are a lot of gotchas once you start handling time zones properly
17:29 lizmat well, I'm done with Dateish/Date/DateTime now
17:29 ChoHag Isn't time/date handling more gotcha than not?
17:29 lizmat scratched my itch
17:29 japhb mst: That, BTW, was pretty much the defining line in one of my all time favorite movie reviews, ranting about spaceships constantly colliding with each other.
17:29 autarch the other alternative is to have the core class not do anything with time zones at all, just treat everything as a floating time and leave this up to someone else to implement in the future
17:30 perlpilot lizmat++
17:30 mst japhb: hah, yeah
17:30 autarch ChoHag: pretty much
17:30 perlpilot lizmat: it's good to move on before getting sucked into the mire.
17:30 ChoHag autarch: The problem with that is, they will.
17:30 mst novels where that obviously can't even happen are nice
17:31 autarch ChoHag: I meant someone like me or chansen_
17:31 autarch not "every person should implement their own version"
17:32 RubiO joined #perl6
17:33 perlpilot autarch: that's something I was going to suggest 30 minutes ago, but then I thought about the fallout from people trying to use DateTime without realizing that timezones are separate.
17:33 RabidGravy autarch, you old stick in the mud ;-)
17:33 autarch perlpilot: again, as it stands now it's mostly going to encourage very broken code around anything tz-related, so having _no_ support might be better in the short term
17:33 ChoHag I know, but there's a difference between what's meant and what happens, and some unfortunate sucker has to deal with the latter.
17:34 lnrdo joined #perl6
17:34 * leont agrees with autarch
17:34 flussence postgres' timezone handling seems less than useful: it accepts named zones for input, converts everything to utc, and drops the tz in storage
17:34 TimToady joined #perl6
17:34 autarch one of the things I realized after many years of working on DateTime was that having separate Date, DateTime (sans TZ) and DateTime::WithTZ classes would probably have been a better design
17:34 autarch there's a _huge_ amount of stuff that people want to do that does not require TZ support at all
17:35 perlpilot autarch: if only that unevenly distributed future could be concentrated a little bit for date/time handling ...
17:35 flussence autarch: well, that's what pg's docs say it does, but see above :)
17:35 autarch yeah, Pg's support is really lame
17:36 autarch if you need _real_ TZ handling you have to store a UTC timestamp and a separate zone name
17:36 flussence it is, but at the same time it's the best I've seen in any db :(
17:36 lizmat autarch: yes, a completely separate date handler would be handy
17:36 autarch lizmat: well, that already exists, right?
17:36 lizmat but I guess that'll have to live in module space
17:37 lizmat you mean Date?
17:37 autarch yes
17:37 RabidGravy which is a good thing
17:37 lizmat well, I don''t think using year/month/day internally for a date, is a good thing
17:38 lizmat you probably only want to use a day value (e.g. since epoch) internally
17:38 autarch I'd recommend Rata Die, actually
17:38 lizmat and only make the y/m/d happen when needed
17:38 autarch but that's really an implementation detail
17:40 lizmat intriguing
17:40 autarch I mean, as far as internals, it's almost certainly better to use "days since X + seconds since start of day" - but what really matters right now is the public API
17:40 lizmat but in my experience, at $work, one only needs to support dates of a certain range
17:40 autarch someone could rewrite the internals of the existing classes very easily
17:40 autarch lizmat: Rata Die makes it easy to convert to other calendars too
17:41 chansen_ We need Date (without time in zone of interest, not anchored on the global timeline), DateTime (date with time in zone of interest, not anchored on the global timeline), DateTime (with zone, anchored in the global timeline), DateTime (with offset, anchored on the global timeline).
17:41 autarch chansen_: I think the last two are the same thing - you can have a zone that has a fixed offset for all UTC times
17:42 RabidGravy I think that can happen in module space fpr people who need it
17:42 dalek roast: 4f2efb6 | lizmat++ | S32-temporal/Date.t:
17:42 dalek roast: Add basic Date.new(:formatter) tests
17:42 dalek roast: review: https://github.com/perl6/roast/commit/4f2efb651e
17:42 chansen_ autarch: questionable, they can be comparable but not more
17:42 autarch I mean that they could use essentially the same implementation internally
17:42 * lizmat is looking forward to a module space implementation
17:42 chansen_ autarch: sure
17:43 RabidGravy I'm with lizmat
17:43 autarch well, none of that addresses the issue with what's in core right now
17:43 autarch I really do think it's likely to cause problems
17:43 lizmat autarch: specifically because ?
17:43 autarch and it's not an API that an external module that did Olson time zones could match all that easily
17:44 autarch lizmat: because people will try to use it to deal with time zones and it won't quite do things right but they won't know that
17:44 RabidGravy isn't that solved by documentation?
17:44 autarch they'll do something like DateTime.new( ..., :timezone( determine-local-offset() ).later( :6months ) and that _will_ give a wrong answer in many many places
17:44 chansen_ It's simple, we could do this the right way (which would solve all temporal issues) or we could leave it as is, which just would confuse developers/users
17:45 leont Yeah, what autarch says
17:45 autarch RabidGravy: what would the docs say? "this sort of works, as long as you don't use certain features together, so be careful"
17:45 chansen_ autarch++
17:45 leont Reminds me of a forum I frequent, where I have to set my time-offset twice per year, because it doesn't handle DST
17:45 autarch here's another alternative - we create a global lobbying group aimed at abolishing DST worldwide - problem solved
17:46 chansen_ hehe
17:46 autarch at least for future times
17:46 chansen_ autarch: It's clear that we have spent to many hours with temporal data ;o)
17:46 RabidGravy they can't even manage it for Scotland, I think that plan is stuffed
17:47 autarch yeah, it's the worst
17:47 stmuk_ and everyone use Greenwich time :P
17:47 chansen_ stmuk_: GMT, say what?
17:47 RabidGravy stmuk_, I can buy into that ;-)
17:47 chansen_ GMT doesn't exist any more!
17:47 zhmylove joined #perl6
17:48 autarch Hail Britannia
17:48 RabidGravy you tell that to the people of greenwich!
17:48 lizmat autarch: I just checked the implementation of DateTime.later
17:48 stmuk_ or Greenwich Meantime Time ;)
17:48 mst swatch beat time!
17:49 stmuk_ http://www.oldbrewerygreenwich.com/
17:49 lizmat autarch: with minor adjustment, it should handle Olson timezones correctly if such a candidate would come to exist
17:49 RabidGravy I've actually got a bottle of Meantime London Porter in the kitchen
17:49 lizmat autarch: specifically, it should need to call .new, instead of the nqp::create.BUILD shortcut
17:49 autarch lizmat: sort of - I think you'd need to really start treating the timezone as an object, not as a number
17:50 pierre-vigier joined #perl6
17:50 lizmat autarch: everything in Perl 6 is an object
17:50 chansen_ lizmat: why can't we, you, me and autarch together implement Temporal data as it should be done?
17:50 autarch lizmat: heh, yes, I know that
17:50 lizmat m: my Int $a = 3600 but role { method Str { "Europe/Amsterdam" } }; say $a, $a + 0   # adding timezone info
17:50 camelia rakudo-moar 461e63: OUTPUT«Europe/Amsterdam3600␤»
17:50 chansen_ lizmat: Let's make Perl6 stand out even more!
17:51 chansen_ lizmat: Java SE 8 got it right, lets Perl6 get it right!
17:51 psy_ joined #perl6
17:51 lizmat well, again, as I said, you would only need to augment DateTime with another .new candidate
17:52 lizmat so let's try to do this module space first
17:52 autarch except for what we just said about having separate classes with and without time zones
17:52 lizmat .oO( hoping autarch will take the leas on that)
17:52 lizmat *lead
17:52 autarch lizmat: I'll let you know where to ship the tuits
17:52 RabidGravy to be honest, it's right an enormous investment in time and effort was employed to get unicode right it would be nice to get time right too
17:52 dalek rakudo/nom: 532c11a | (Sylvain Colinet)++ | / (4 files):
17:52 dalek rakudo/nom: NC: Add code to test the sanity of routine that receive the is native trait
17:52 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/532c11abbc
17:52 dalek rakudo/nom: 75e33f3 | lizmat++ | / (4 files):
17:52 dalek rakudo/nom: Merge pull request #661 from Skarsnik/nom
17:52 dalek rakudo/nom:
17:52 dalek rakudo/nom: NC: Add code to test the sanity of routine that receive the is native trait
17:52 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/75e33f3d34
17:55 * autarch goes afk for a bit to read and enjoy his week off from work ;)
17:55 chansen_ RabidGravy++
17:55 TimToady autarch++ for perspective :)
17:56 chansen_ definitely!
17:58 itcharlie joined #perl6
17:58 itcharlie Is there an msi windows installer for rakudo ?
18:00 lizmat itcharlie: currently the latest one is from 2015.09 I believe, maybe 2015.10
18:01 lizmat itcharlie: we're waiting for tuits to become available to the people who can do this
18:01 xinming joined #perl6
18:02 RabidGravy I don't even have a windows computer available right now, but is it diffcult?
18:02 itaipu joined #perl6
18:02 lizmat RabidGravy: I have *no* idea
18:02 RabidGravy I guess you would need two windows computers in order to test it
18:03 stmuk_ RabidGravy: it's not too hard
18:04 stmuk_ you basically need visual studio, git and perl on windows
18:06 uruwi Can install perl, and already have the Windows version of git.
18:07 uruwi Do the free versions of VS work?
18:07 stmuk_ yes .. but I couldn't get the very latest VS to work when I tried it a few months back
18:08 stmuk_ whereas VS2010 worked straight off
18:09 stmuk_ this may be fixed I think others use VS2013 and probably later versions. my problems where with VS2015
18:10 addison joined #perl6
18:12 hoelzro is there a way to access a calling module's %?RESOURCES? for example, if A calls a sub in B, can B::sub do something to get at A's %?RESOURCES? I tried CALLER::<%?RESOURCES>, but no dice =/
18:13 RabidGravy I keep meaning to dig some stuff out and try it with openwatcom
18:14 pierre-vigier joined #perl6
18:14 dalek doc: 9454b1d | skids++ | doc/Language/control.pod:
18:14 dalek doc: More massaging to unbreak links.
18:14 dalek doc: review: https://github.com/perl6/doc/commit/9454b1d9bd
18:14 RabidGravy hoelzro, doesn't the compile time thing preclude that? but hackatista action could me made
18:15 hoelzro RabidGravy: probably =/
18:15 hoelzro I could always have the caller just pass in $?RESOURCES by hand
18:15 Arrowhead joined #perl6
18:17 asht joined #perl6
18:17 asht rakudobrew build java Missing serialize function for REPR ContextRef
18:18 asht any one has any ideas why this will happen? I am using JDK 8.66
18:18 asht on Ubuntu
18:19 lizmat asht: alas, 6.c didn't happen for rakudo on the JVM yet
18:20 lizmat https://rt.perl.org/Ticket/Display.html?id=127058
18:20 asht np, i didn't relaize that.
18:20 timotimo hm. i'm not so happy that "returning an Int is not fine", Skarsnik
18:20 RabidGravy "please feel free to step up to help make it work"
18:21 _nadim joined #perl6
18:22 hankache joined #perl6
18:24 ZoffixW joined #perl6
18:25 FloydATC When using .recv(:bin) to fetch binary data from an IO::Socket, can I collect it safely in a Str or must I use a Buf?
18:25 ZoffixW Su-Shee, mst talk to Zoffix about what? RE: http://irclog.perlgeek.de/perl6/2015-12-29#i_11797322
18:25 yoleaux 28 Dec 2015 21:58Z <masak> ZoffixW: re http://irclog.perlgeek.de/perl6/2015-12-22#i_11758406 -- the IEEE 754 standard disagrees.
18:26 ZoffixW masak, cool. Glad it's not a bug
18:26 pierre-vigier joined #perl6
18:27 mst ZoffixW: probably "making sure that all sources of documentation give the same usage for rakudobrew"
18:27 lizmat FloydATC: the .recv returns a Buf, which you can't put into a Str without telling which encoding the binary data is
18:28 ZoffixW mst, I didn't realize I was made responsible for that ^_^
18:29 FloydATC Right, so if I don't know the encoding (yet) then I must use Buf. That's what I figured. Is there any practical difference between the two in terms of memory efficiency?
18:29 mst generally if I poke you about it, it gets fixed
18:29 mst so well volunteered
18:29 * ZoffixW doesn't remember ever being poked for anything
18:30 lizmat FloydATC: not really, afaik
18:31 FloydATC Having my first ever stab at p6 today and it's even stranger than I expected
18:31 ZoffixW mst, TBH, I've no idea what "perl6.org contains the README.md part but points to the rakudo.org install" means :)
18:31 ZoffixW README.md part of what?
18:31 Skarsnik timotimo, in practice it's buggy
18:32 mst ZoffixW: references rakudobrew's README.md but then it also points at the rakudo.org page which has its own copy of the same info
18:32 ZoffixW I'm really not the best person to fix it, as I don't know much about the install process and neither have access to rakudo.org or rakudobrew repos :)
18:32 Skarsnik timotimo, https://gist.github.com/Skarsnik/d4e9b31b2859114ac643
18:32 dalek doc/rb-nutshell: d55ec68 | (Brock Wilcox)++ | doc/Language/rb-nutshell.pod:
18:32 dalek doc/rb-nutshell: Initial rb-nutshell, WIP
18:32 dalek doc/rb-nutshell: review: https://github.com/perl6/doc/commit/d55ec68017
18:34 ZoffixW What we /should/ do is clear out those comments on Rakudo install page :) Even if you look past the 'wtf' comments, I see parrot install instructions mentioned and what not; those likely are to confuse people
18:34 RabidGravy FloydATC, it's not that weird if you think of something like an HTTP response where you don't know the encoding of the body until you have actually parsed the headers (which are assumed to be in something like ASCII)
18:34 protium joined #perl6
18:35 dalek tablets: a785470 | (Herbert Breunung)++ | docs/appendix-a-index.txt:
18:35 dalek tablets: add tau constant to A
18:35 dalek tablets: review: https://github.com/perl6/tablets/commit/a785470ad4
18:35 RabidGravy see for instance what LWP::Simple or HTTP::UserAgent does with the response bodies
18:35 Skarsnik h:u does whatever x)
18:36 anthk_ hello, yesterday I tould you about reading a file with a buffer. The problem is a have a type problem somewhere
18:36 anthk_ my $buf = $fh.read($fh.IO.s);
18:36 anthk_ loop (my $i = 0; $i < $fh.IO.s; $i++) {
18:36 anthk_ @memory[0x200 + $i] = $buf.elems[$i];
18:37 anthk_ }
18:37 FloydATC RabidGravy: No I mean the language syntax itself doesn't feel like Perl at all. Some parts almost feel like Java really.
18:38 RabidGravy anthk_, Buf.elems is just the integer number of items
18:38 awwaiid I started to write a ruby-nutshell doc, and I found s/Perl 5/Ruby/ in the introductory text to profoundly illustrate the tone of the existing docs. See first 3 paragraphs of https://github.com/perl6/doc/pull/288/files
18:38 anthk_ if I iterate over $buf.elems[] with say, the index is out of range, even if the condition to read the last byte is from size of the buffer :S
18:38 anthk_ RabidGravy: oh :|
18:38 RabidGravy you want  @memory[0x200 + $i] = $buf[$i]
18:38 FloydATC Using tilde for concatenation and dot for derefence is like having to crawl all over
18:39 FloydATC having to learn to crawl all over
18:39 hankache where does panda install the modules?
18:39 anthk_ thanks :D
18:40 ZoffixW hankache, ~/.perl6/ I think
18:40 leont You get used to it pretty soon though
18:40 ZoffixW m: say $*REPO # hankache
18:40 camelia rakudo-moar 75e33f: OUTPUT«inst#/home/camelia/.perl6/2015.12-43-g75e33f3␤»
18:40 hankache thanks ZoffixW
18:41 RabidGravy anthk_,  @memory[0x200 + $_] = $buf[$_] for ^$buf.elems;  without the loop moght be more idiomatic
18:41 moyamo joined #perl6
18:41 moyamo Hi is there a way to make perl6 regexps non-greedy
18:41 TimToady awwaiid: the third paragraph makes no sense wrt Ruby, since it's aimed at a more sisterly language :)
18:41 brrt joined #perl6
18:41 anthk_ RabidGravy:  awesome :O
18:42 brrt good *
18:42 hankache ZoffixW it contains only the precomp folder
18:43 dalek perl6-roast-data: 5251f3c | coke++ | / (7 files):
18:43 dalek perl6-roast-data: today (automated commit)
18:43 dalek perl6-roast-data: review: https://github.com/coke/perl6-roast-data/commit/5251f3c28e
18:43 ZoffixW hankache, isn't that the installed modules?
18:43 RabidGravy moyamo, almost cerainly but help us to help you with a shoty snippet that doesn't do what upu want
18:44 brrt RabidGravy; you can use strawberry perl since recently
18:44 RabidGravy short snippet
18:44 brrt on windows, to build MoarVM etc
18:44 anthk_ btw I have the .base (method?) two in order to print the opcodes in binary. Could be posible to print the leading zeros?
18:44 anthk_ 00001100 instead of 1100
18:44 hankache ZoffixW indeed
18:44 RabidGravy anthk_, sprintf?
18:45 RabidGravy anything is possible, just some things are easier
18:45 ZoffixW m: say ((1, 2), <a b>).flatmap(&uc).join('|')
18:45 camelia rakudo-moar 75e33f: OUTPUT«1 2|A B␤»
18:45 pdcawley joined #perl6
18:45 ZoffixW Is this the right or wrong result? I'm confused by nine's comments on https://rt.perl.org/Ticket/Display.html?id=127036 is there a bug or should the ticket be rejected?
18:45 moyamo /".*"/ matches ___"string" code "string"___ code instead of ___"string"___ code "string" code
18:46 Begi joined #perl6
18:46 ZoffixW FWIW, the example in docs shows different result: http://docs.perl6.org/routine/flatmap#class_List
18:48 RabidGravy moyamo, there are several choices
18:50 skids moyamo: Using ? on quantifiers still works to make rx atoms non-greedy
18:50 RabidGravy /".*?"/ may work for you or something like /"<-["]>*"/  (which is match everything but a '"'
18:50 anthk_ ok, .fmt("%08b")
18:50 nine hankache: panda installs by default to CompUnit::RepositoryRegistry.repository-for-name('site')
18:51 RabidGravy yeah, thats good too
18:51 nine hankache: that's inst#/home/nine/rakudo/install/share/perl6/site here
18:51 ellybelly joined #perl6
18:51 ellybelly_ joined #perl6
18:51 moyamo skids: Thanks RabidGravy: For the second one what if instead of quotes it was a multi-character deleminter
18:51 nine m: say $*REPO.repo-chain
18:51 camelia rakudo-moar 75e33f: OUTPUT«(inst#/home/camelia/.perl6/2015.12-43-g75e33f3 inst#/home/camelia/rakudo-m-inst-2/share/perl6/site inst#/home/camelia/rakudo-m-inst-2/share/perl6/vendor inst#/home/camelia/rakudo-m-inst-2/share/perl6 CompUnit::Repository::AbsolutePath.new(next-repo => Comp…»
18:52 nine ZoffixW: ^^^
18:52 nine hankache: ^^^
18:52 ZoffixW cool
18:52 pierrot_ joined #perl6
18:52 hankache thanks nine
18:53 RabidGravy moyamo, the stuff inside the [ ] is a user defined charactter class you can put anything in there
18:53 moyamo RabidGravy: But it only matches one character
18:54 moyamo RabidGravy: What if there was litrally double quotes e.g. '' instead of " as a delimeter
18:54 skids moyamo: <!before X> and <!after X> can be useful for that
18:54 RabidGravy then you'd have to make your regular expression more complicated
18:55 moyamo RabidGravy: .*? Seems to work though :)
18:56 skids m: say "aabbaa" ~~ m/aa [ <!before aa> . ]* aa/
18:56 camelia rakudo-moar 75e33f: OUTPUT«「aabbaa」␤»
18:56 RabidGravy if http://doc.perl6.org/language/regexes doesn't explain enough please let us know
18:56 _wiz_ left #perl6
18:57 timotimo Skarsnik: damn. all right!
18:58 timotimo Skarsnik: i thought these things are returned in registers anyway and a 64bit register is 64bit wide anyway and would be truncated/extended as needed by the C compiler at "return time"
18:58 timotimo BBIAB
18:58 moyamo RabidGravy: I don't see it mentioning ? to make * non-greedy. That would be useful to note :-)
19:00 rjbs joined #perl6
19:00 hankache ughhhh @*INC
19:00 RabidGravy no
19:01 Skarsnik timotimo, well maybe one day someone will figure the internal of NC/C stuff, but for now I decided : "it could lead to an error = forbid it"
19:01 pierre-vigier joined #perl6
19:04 Skarsnik I am waiting for RabidGravy to complain that I broke his NC module x)
19:05 araujo what is the equivalent for NULL in the NativeCall?
19:05 Skarsnik Str/Any
19:05 RabidGravy Skarsnik, what did you do>
19:05 kmel joined #perl6
19:05 nine hankache: you utter strange noises there
19:05 RabidGravy it's not modules it's like seven modules
19:06 Skarsnik I add check on routine parameter type
19:06 nine araujo: Pointer
19:06 Skarsnik like not allow Int
19:06 RabidGravy oh that's fine
19:06 RabidGravy :)
19:07 pierre-vigier joined #perl6
19:07 smls m:  class A { has $.a };  multi sub infix:<cmp>(A $a, A $b) { $a.a cmp $b.a };  my @a = A.new(a=>42), A.new(a=>5);  say @a.sort
19:07 camelia rakudo-moar 75e33f: OUTPUT«(A.new(a => 42) A.new(a => 5))␤»
19:07 smls Hmm
19:07 Skarsnik I am pretty sure there is some weird case I did not test x)
19:07 kmel joined #perl6
19:07 smls Is there some magic uppercase method that a class can implemenbt to participate in .sort?
19:08 araujo nine, ok, let's see
19:08 ZoffixW What you guys think of this? http://sdtimes.com/christmas-perl-arrives/
19:09 ZoffixW jberger linked me to it asking what release post they should link to... and reading the post, they seem to be incredibly confused about what Perl 6 is and the "final" "official" "release of Perl 6"
19:10 perlpilot ZoffixW: aye, confused.
19:10 nine m: class A { has $.a };  multi sub infix:<cmp>(A $a, A $b) { $a.a <=> $b.a };  my @a = A.new(a=>42), A.new(a=>5);  say @a.sort
19:10 camelia rakudo-moar 75e33f: OUTPUT«(A.new(a => 42) A.new(a => 5))␤»
19:11 ZoffixW perlpilot, BTW you have a PR to fix indexing issue of your module: https://github.com/perlpilot/p6-Test-Class/pull/1
19:11 flussence ZoffixW: I don't think we should bother trying to correct every misinformed word-count-driven blog out there :)
19:11 ZoffixW flussence, I'm with you on that :P
19:12 V_S_C joined #perl6
19:12 mojca joined #perl6
19:12 hankache joined #perl6
19:12 flussence if they can't even be bothered spending 3 minutes to ask if what they're writing is correct... why should we?
19:12 ZoffixW Almost sounds like a crawler robot wrote it by scrounging various news websites.
19:12 mojca does moarvm with jit work on 32-bit platforms at all?
19:12 perlpilot oops ... thanks
19:13 perlpilot Perl has made me lazy with trailing commas
19:13 ZoffixW :)
19:13 hankache what is CURLI?
19:13 FloydATC This is the blogosphere, where the primary income is from rabid commenters pointing out their mistakes
19:13 mojca on i386 one gets src/jit/emit_x64.dasc:266:86: warning: shift count >= width of type
19:13 perlpilot hankache: Comp::Unit::Repo::Local::Installation I think
19:13 nine mojca: no jit on 32 bit
19:14 ZoffixW Oh really?
19:14 mojca shouldn't this be disabled automatically then?
19:14 ZoffixW Does it mean my perl6 will be even faster on a 64-bit box?
19:14 flussence mojca: it is...
19:14 mojca See https://trac.macports.org/ticket/50169
19:14 FloydATC *scratches head* how do I get the peer address for an IO::Socket::INET now?
19:15 mojca for some reason it ended up being compiled on user's machine
19:15 hankache perlpilot thanks, I just read it in a blog post, was just wandering what it is
19:15 hankache wondering**
19:15 awwaiid TimToady: I think that Ruby is the next-most-sisterly language, and I'm hoping to illustrate that the tone of the document isn't quite right for coexistence. I'll submit a patch to the 5to6 doc (even the name of the doc implies upgrading) to smooth it out a bit more.
19:15 V_S_C I just tried building rakudo from source
19:15 nine hankache: CURLI was CompUnitRepo::Local::Installation, curli was the name of a branch in which we completely refactored the whole module management part. The successor of CURLI is CompUnit::Repository::Installation
19:15 flussence mojca: possibly nobody's tested it on amd64+OSX before
19:15 asie joined #perl6
19:15 lnrdo joined #perl6
19:16 Arrowhead joined #perl6
19:16 leont Sounds unlikely
19:16 nine lizmat++ is using OS X on a 64 bit machine
19:16 mojca flussence: how do you mean amd64+OS X? I'm not sure what processor the user has though, but it could be 32-bit
19:17 V_S_C and perl Cofigure.pl fails with unknown OS 'msys'
19:17 V_S_C *Configure
19:17 ZoffixW V_S_C, what OS are you on?
19:17 leont msys is what git on windows uses
19:18 V_S_C Windows x64
19:18 perlpilot awwaiid: agreed about Ruby  (maybe kind of a cousin than sister though)
19:18 V_S_C perl is available as I have git installed
19:18 mojca what's the role of D_DARWIN_USE_64_BIT_INODE=1 ?
19:18 leont It's mingw related, but I forgot the details
19:19 hankache nine perlpilot i am trying to understand what this blogpost is about https://shimmeryfairy.wordpress.com/2015/12/29/the-supernova-has-been-delayed-such-a-shame/
19:19 mojca libuv unconditionally sets "if DARWIN libuv_la_CFLAGS += -D_DARWIN_USE_64_BIT_INODE=1"
19:19 ZoffixW mojca, does seem like it's a 32-bit box. In the moarvm build log I see: DEBUG: OS darwin/10.8.0 (Mac OS X 10.6) arch i386
19:19 flussence iirc building on windows has to be either completely native, or completely cygwin
19:21 mst you can't build it on cygwin at all, libuv fills its diaper far too early on
19:21 V_S_C I am using the VS2015 x64 native tools command prompt
19:21 perlpilot hankache: maybe ask ShimmerFairy.  She's "here".
19:22 * flussence retracts answer in favour of mst's, I'm only repeating what I've absorbed from hours of staring at makefiles and configure scripts lately :)
19:23 V_S_C only configure.pl requires perl that came with git
19:23 dalek tablets: 35de945 | (Herbert Breunung)++ | docs/appendix- (2 files):
19:23 dalek tablets: add set ops to A and link to B
19:23 dalek tablets: review: https://github.com/perl6/tablets/commit/35de945425
19:23 flussence "perl that came with git" sounds... really really wrong.
19:23 leont git depends on perl, so git on windows ships with a perl 5.8.something
19:23 flussence don't you have Strawberry Perl or similar installed?
19:23 flussence oh
19:24 flussence yeah, 5.8 ain't gonna work at all here
19:24 TimToady there's nothing says we have to treat Ruby exactly like Perl 5 though, or vice versa; making them read identically would come down to a foolish consistency in my estimation
19:24 ZoffixW V_S_C, what does perl -v tell you? Which version?
19:24 nine hankache: you shouldn't have pointed out that blog post. Now I lost all motivation I've ever had for fixing the issues pointed out there.
19:24 moyamo Anyone want to play code golf?
19:25 ChoHag Where does panda look for modules?
19:25 ZoffixW moyamo, sure! :)
19:25 ZoffixW m: $*REPO.repo-chain
19:25 camelia rakudo-moar 75e33f: ( no output )
19:25 ZoffixW m: $*REPO.repo-chain.say
19:25 camelia rakudo-moar 75e33f: OUTPUT«(inst#/home/camelia/.perl6/2015.12-43-g75e33f3 inst#/home/camelia/rakudo-m-inst-2/share/perl6/site inst#/home/camelia/rakudo-m-inst-2/share/perl6/vendor inst#/home/camelia/rakudo-m-inst-2/share/perl6 CompUnit::Repository::AbsolutePath.new(next-repo => Comp…»
19:25 leont (maybe they upgraded, they had patches to make perl5 work with msys that they didn't send upstream and that were difficult to backport to modern perls)
19:25 ZoffixW ChoHag, I believe in there^
19:25 V_S_C This is perl 5, version 22, subversion 0 (v5.22.0) built for x86_64-msys-thread-multi
19:25 nine ChoHag: do you mean installed modules or available modules?
19:25 lucasb joined #perl6
19:25 ZoffixW m: (* * * ** *)[2, 3, 4]
19:25 camelia rakudo-moar 75e33f: ( no output )
19:26 ZoffixW m: (* * * ** *)[2, 3, 4].say
19:26 camelia rakudo-moar 75e33f: ( no output )
19:26 ZoffixW >_<
19:26 ZoffixW m: say (* * * ** *)[2, 3, 4]
19:26 camelia rakudo-moar 75e33f: OUTPUT«WhateverCode.new␤»
19:26 hankache nine i saw the link on the front page of perl6.org :(
19:26 mojca in Configure.pl I see "if ($Config{archname} =~ m/^x86_64|^amd64|^darwin(-thread)?(-multi)?-2level/) { ... then enable jit"
19:26 ZoffixW gawddammit
19:26 mojca how can this work on i*86-darwin?
19:26 ZoffixW Ah, I did it wrong.
19:26 ZoffixW m: (* * * ** *)(2, 3, 4).say # moyamo here's my golf :)
19:26 camelia rakudo-moar 75e33f: OUTPUT«162␤»
19:27 ZoffixW V_S_C, then your perl 5 is new enough to run Configure.pl. Not sure what the issue is.
19:27 cygx joined #perl6
19:28 kittenlips joined #perl6
19:28 kittenlips hi there
19:28 moyamo ZoffixW: I meant on a specific problem.
19:28 ChoHag Where in github
19:29 moyamo ZoffixW: Haha
19:29 nine ShimmerFairy: FWIW I remember quite well using "git merge" for merging curli. I'm sure about that, because merge is really the only way to merge a branch in git. rebase won't do it. So you displaying your ignorance of git really reflects more on you than anyone else.
19:29 kittenlips I was testing hyperoperators on Rakudo+MoarVM 2015.12 and have question are hyperoperators automatically multithreaded/parallelized?
19:29 nine kittenlips: not yet
19:29 kittenlips I thought I read that they were
19:29 masak kittenlips: on paper, yes.
19:30 itcharlie joined #perl6
19:30 V_S_C @ZoffixW, It happens when updating submodules for MoaRVM
19:30 masak kittenlips: the potential is all there.
19:30 moyamo I'm new to perl and I wrote this code: http://sebsauvage.net/paste/?255af5070d48c9a6#pjdakf4E/cagToxj9e8ZtKJ+2o2hHtuzR2ig92Ctxv0= . I was hoping someone could make it shorter or better :), for learning purposes.
19:30 kittenlips Oh ok, yes I tested it e.g. my int @matrix[50;40;30]; @matrix >>+=>> 1; and saw that MoarVM only was executing a single thread
19:30 V_S_C Configuring native build environment............. fail
19:30 hankache nine please don't lose your motivation ;( I feel bad now asking about it.
19:30 awwaiid TimToady: Yeah true. I'm taking all the top stuff out of the Ruby-Nutshell doc, I only left it in temporarily as food for thought.
19:31 cygx V_S_C: I think moar's Configure.pl takes some values from the Perl it's run with
19:31 hankache kittenlips i think it is planned for the future
19:31 cygx you can overwrite those manually
19:31 El_Che gfldex: I am reading to open the repo of StrictNamedArguments (adding travis support now)
19:31 Skarsnik hm, I have a git/github question. I PR a fork into my fork of DBI and later PR it back on DBI, does it keep the original author/fork?
19:32 leont cygx: it does? Why do we even need perl if we're not even doing our own config detection?
19:32 El_Che gfldex: just the README need some more info
19:32 kittenlips This automatic multithreading/parallelization of such operations will be a HUGE thing in data analysis, I think it is a killer feature of Perl 6
19:32 El_Che kittenlips++
19:32 ZoffixW kittenlips, basically the Perl 6 language spec defines them as threadable and now that it's frozen, they definitely will be, but that's not yet finished in the Rakudo compiler
19:32 nine hankache: no worry. I can hardly fault you for ShimmerFairy's talent for pushing away help.
19:32 ZoffixW m: sleep 1 for ^4 .race: :1batch; say now - INIT now
19:32 camelia rakudo-moar 75e33f: OUTPUT«1.00945432␤»
19:33 Skarsnik nine, you should write a small tibit for package maintainer about precomp file and such, reading the whole gist it's quite discouraging
19:33 ZoffixW kittenlips, ^ that works though. 4 sleeps in 1 second
19:33 cygx leont: *shrugs* it's a grown system
19:33 cygx leont: before the jit came along, it even supported cross builds
19:33 kittenlips ZoffixW: is ^ for the range operator?
19:33 kittenlips sorry I'm still trying to learn the language, it's much deeper than Perl 5
19:34 ZoffixW kittenlips, yes, ^4 is same as 0 .. 3, which is same as 0, 1, 2, 3
19:34 ChoHag Or, you could document precompilation quite thoroughly.
19:34 kittenlips ZoffixW: and you are saying ^ is parallelized?
19:34 cygx V_S_C: you probably need to set --os=win32 --toolchain=msvc
19:34 ChoHag Once the sky-is-falling release bugs are out of the way, which seems to be largely the case, perl 6 and its ecosystem needs lots and lots of documentation.
19:34 awwaiid kittenlips: naw, it is the .race that does the parallel bit
19:34 ZoffixW kittenlips, no, it's the .race/.hyper methods that return a HyperSeq
19:35 skids m: my &def = List.^find_method("sort").signature.params[1].default; &def().perl.say; &def().WHICH.say; &infix:<cmp>.WHICH.say
19:35 camelia rakudo-moar 75e33f: OUTPUT«sub infix:<cmp> (Mu $, Mu $) { #`(Sub+{<anon|63494960>}+{Precedence}|54011696) ... }␤Sub+{<anon|63494960>}+{Precedence}|54011696␤Sub+{<anon|63494960>}+{Precedence}|54011696␤»
19:35 ZoffixW kittenlips, sleep 1 for (0..4).race( batch => 1);  # in a more Perl 5-eyes-friendly form
19:35 cygx V_S_C: if you're automatically building moar via rakudo's build script, wrap that in --moar-option="..."
19:35 ZoffixW kittenlips, err 0..3 :)
19:35 kittenlips ZoffixW: could you explain "^ that works though. 4 sleeps in 1 second" as example?
19:35 skids m: my &def = List.^find_method("sort").signature.params[1].default; &def().perl.say; &def().WHICH.say; &infix:<cmp>.WHICH.say; class A { }; multi sub infix:<cmp>(A $, A $) { Order.pick };
19:35 camelia rakudo-moar 75e33f: OUTPUT«sub infix:<cmp> (Mu $, Mu $) { #`(Sub+{<anon|63494960>}+{Precedence}|53258896) ... }␤Sub+{<anon|63494960>}+{Precedence}|53258896␤Sub+{<anon|63494960>}+{Precedence}|53268656␤»
19:36 ZoffixW kittenlips, oh. the "^" in the sentence is me pointing up at the example evaluated by the bot :)
19:36 skids smls: see my last two camelias, something is up there.
19:36 kittenlips ZoffixW: oh! sorry I missed that in the IRC list
19:36 Skarsnik skids, method has 2 extra parameters, one at the begining and one at the end
19:37 Skarsnik but it's probably not your issue x)
19:38 skids Skarsnik: ?
19:38 smls I guess it makes sense for sort to use the 'cmp' from its own lexical scope
19:38 llfourn joined #perl6
19:38 smls Rather than the one from user scope
19:39 skids I dunno,
19:39 smls still, would have been nice if there were some way to make custom types work with the built-in ordering/sorting functionality
19:39 nine smls: sort does have a :&by argument
19:40 nine smls: if you really want to avoid that, you can still override your class' .Stringy method, because cmp compares on .Stringy
19:40 skids Yeah, but the point is making a type behave like base types in your lexical scope.
19:41 timotimo nine: i think leg compares by .Stringy
19:41 skids I'd say there's an argument to be made  for sort taking its default cmp from its caller's scope.
19:41 nine timotimo: src/core/Order.pm:12
19:41 timotimo and cmp is "magical"?
19:42 * skids wonders whether that is touched on in roast at all.
19:42 smls skids: Or provide an upperclass method to implement ordering for your type (like AT-KEY and friends for implementing subscripting)
19:42 timotimo ah, .Stringy is the fallback for "not numeric"
19:42 cygx timotimo: where magical means do the right thing for numbers, otherwise fall back to...
19:42 cygx what you said ;)
19:45 skids sidenote -- introspection rocks, didn't have to debug to see what was up.
19:45 yurivish just thought I'd mention that I ran into this exact problem (http://irclog.perlgeek.de/perl6/2015-12-15#i_11719526) today, in case it happens to influence a design decision to change the behavior down the line :-)
19:45 yurivish where you can't say { *.method ~~ regex } as an argument to grep
19:45 ChoHag joined #perl6
19:46 * ZoffixW has something to pitch in on the topic:
19:46 ZoffixW m: say ^4.grep: /2/
19:46 camelia rakudo-moar 75e33f: OUTPUT«Potential difficulties:␤    Precedence of ^ is looser than method call; please parenthesize␤    at /tmp/K5Odq80mS6:1␤    ------> 3say ^47⏏5.grep: /2/␤^0␤»
19:46 ZoffixW m: say ^4 .grep: /2/
19:46 camelia rakudo-moar 75e33f: OUTPUT«(2)␤»
19:46 ZoffixW m: say ^4 .grep: !/2/
19:46 camelia rakudo-moar 75e33f: OUTPUT«Cannot use Bool as Matcher with '.grep'.  Did you mean to use $_ inside a block?␤  in block <unit> at /tmp/cqDMR2iMrN line 1␤␤Actually thrown at:␤  in block <unit> at /tmp/cqDMR2iMrN line 1␤␤»
19:47 ZoffixW ^ that requires "not matches" to be written much more verbously than "matches"
19:47 V_S_C cygx probing whether your compiler thinks that it is gcc  Can't compile simple gcc probe, so something is badly wrong at build/probe.pm line 92.
19:47 nine Skarsnik: your commit 532c11abbcc8409a03d4a585296149f94c219e08 broke Inline::Perl5: Too many positionals passed; expected 2 arguments but got 3
19:47 ZoffixW Unless I just don't know a way :D
19:47 Skarsnik oh great :(
19:47 Skarsnik what line trigger it?
19:48 nine Skarsnik: seems to break on sub p5_str_to_sv(Perl5Interpreter, long, Blob)
19:48 cygx V_S_C: are you manually building moarvm, or implicitly via rakudo?
19:48 Skarsnik wait Blob work?
19:49 perlpilot ZoffixW: you've just got to use {}  (which may be onerous, I dunno)
19:49 perlpilot (its' a good habit to get into anyway IMHO)
19:49 skids smls: OT, more thoughts on binary structured matching/unpack here: https://gist.github.com/skids/cfb129509b0849f50deb
19:49 ZoffixW m: say ^4 .grep: { !/2/ }
19:49 camelia rakudo-moar 75e33f: OUTPUT«(0 1 3)␤»
19:50 ZoffixW k, I see why the error happens now. perlpilot++
19:50 Skarsnik This code is not fun to debug since it happend at compile time x)
19:50 yurivish The documentation for prefix ! says "Coerces the argument to Bool by calling the Bool method on it, and returns the negation of the result. Note that this collapses Junctions." How is it that matching on !/2/ works?
19:51 cygx yurivish: boolifying a regex matches it against $_
19:51 yurivish oh, wow
19:51 V_S_C cygx I am following http://rakudo.org/how-to-get-rakudo/
19:52 V_S_C As msi is older I am building from source
19:54 nine Skarsnik: It dies on $param.type.^can('gist') on a Blob parameter
19:54 cygx V_S_C: with or without rakudobrew? I've only ever build rakudo manually on windows
19:55 Skarsnik but you can gist on Blob x)
19:55 Skarsnik I just tried
19:55 V_S_C rakudobrew just didn't work
19:56 lichtkind joined #perl6
19:56 nine Skarsnik: it's not the gist it's the ^can that fails
19:57 V_S_C Last time I built manually, I used to try with multiple "PERL5"s for 1 of them to work
19:57 nine m: Blob.^can('gist')
19:57 camelia rakudo-moar 75e33f: OUTPUT«Too many positionals passed; expected 2 arguments but got 3␤  in block <unit> at /tmp/kJvWC2RVcy line 1␤␤»
19:57 nine m: Blob.HOW.can(Blob, 'gist'); # is the same as ^can
19:57 camelia rakudo-moar 75e33f: OUTPUT«Too many positionals passed; expected 2 arguments but got 3␤  in block <unit> at /tmp/lqbTaCnxVX line 1␤␤»
19:57 nine m: Blob.HOW.can('gist')
19:57 camelia rakudo-moar 75e33f: ( no output )
19:57 Skarsnik m: Blob.^can('Str')
19:57 camelia rakudo-moar 75e33f: OUTPUT«Too many positionals passed; expected 2 arguments but got 3␤  in block <unit> at /tmp/n5ZeO0D1QN line 1␤␤»
19:57 Skarsnik m: Blob.HOW.can('Str')
19:57 camelia rakudo-moar 75e33f: ( no output )
19:57 cygx V_S_C: so you have a rakudo checkout?
19:57 cygx try this: perl Configure.pl --gen-moar --gen-nqp --backends=moar --prefix="C:/path/where/it/should/be/installed" --moar-option="--os=win32 --toolchain=msvc --compiler=cl --cc=cl --make=nmake"
19:58 cygx it's probably a bit more superstitious than it needs to be
19:58 nine m: class Foo {}; role Bar {}; say Foo.^can('sink'); say Bar.^can('sink');
19:58 camelia rakudo-moar 75e33f: OUTPUT«(sink)␤Too many positionals passed; expected 2 arguments but got 3␤  in block <unit> at /tmp/QH7TRNYleY line 1␤␤»
19:58 Skarsnik nine, well a quick fix is to add | 'Blob' aside 'Buf'
19:58 V_S_C Now after newer windows release git installer settled the default perl for me
19:59 smls skids: That sounds really interesting, though I think I'd have to see some examples to properly understand it... :)
20:00 smls In any case, I agree now that a more structured OO approach is preferable to my initial free-form grammar approach for most use-cases.
20:00 nine Skarsnik: confirmed
20:00 Skarsnik I am not even sure how this test work
20:00 Skarsnik but it's a bad fix x)
20:01 Skarsnik I just did not know to know if a type is totaly 'defined'
20:01 El_Che I want to push a module to the ecosystem. What's the best practice for doc? Readme.md? perl5 pod in the file? something else?
20:01 Skarsnik so I assume a class will receive a gist or Str at some point
20:01 Skarsnik I went for the mi6 way
20:01 dalek rakudo/nom: 477830a | (Stefan Seifert)++ | lib/NativeCall.pm6:
20:01 dalek rakudo/nom: Unbust NativeCall signatures containing Blob arguments
20:01 dalek rakudo/nom:
20:01 dalek rakudo/nom: Seems like ^can doesn't work on Roles:
20:01 dalek rakudo/nom: m: Blob.^can('gist')
20:01 dalek rakudo/nom: OUTPUT«Too many positionals passed; expected 2 arguments but got 3
20:01 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/477830a20e
20:02 ZoffixW El_Che, I use README.md for now, just so GitHub displays it when users visit the repo. And I figure I can convert it to something else programmatically if I'll ever have to
20:02 Skarsnik I put the pod in the main module and generate the .md from it
20:02 moyamo left #perl6
20:02 ZoffixW Skarsnik, with what?
20:02 ZoffixW Skarsnik, and is it Perl 6 pod?
20:02 Skarsnik mi6 build-readme xD
20:03 skids smls: Yeah, maybe I should figure out how to show some example use cases, but hard to avoid making any assertions about what the actual "template" contents would look like and still come up with something that looks solidish.
20:03 ZoffixW Skarsnik, what sort of pod is it?
20:03 El_Che thx
20:04 ZoffixW panda install Task::Star is failing now on Linenoise with some weird error: https://gist.github.com/zoffixznet/5abadb1d8d4bcccffc56
20:05 hankache i was trying to redo kittenlips example
20:05 hankache my int @matrix[50;40;30]; map(-> $x { $x + 1},@matrix).race();
20:05 Skarsnik ZoffixW, the pod is in https://github.com/Skarsnik/perl6-gumbo/blob/master/lib/Gumbo.pm6 then I use mi6 that call perl6 --doc=Markdown I think
20:05 hankache but it seems it is not multithreaded. What am idoing wrong?
20:06 timotimo nine: could be that you need to pun the role to make a proper .^can call?
20:07 hankache hiya timotimo
20:07 timotimo heyo hankache
20:07 El_Che the travis integration is nice
20:07 timotimo pffbt. what do i actually put into the weekly
20:07 timotimo everything forever?
20:07 ZoffixW El_Che, stmuk++ added it :)
20:07 El_Che stmuk_++
20:08 Skarsnik The issue with mi6, make test regenerate the .md and the META
20:09 Skarsnik Because it assume git user info = author in the META
20:09 itcharlie joined #perl6
20:10 ZoffixW It's a bit of a miss the homepage of perl6.org doesn't have any indication that we've just released.
20:11 hankache timotimo put the title as: Perl6...∞
20:11 * ZoffixW scrounges something up as hopes it'll be passable
20:11 smls m: my int @m[10;20];  $_ = ++$ for @m;  @m.race.map({ say $_ })
20:11 camelia rakudo-moar 477830: OUTPUT«1␤2␤3␤4␤5␤6␤7␤8␤9␤10␤11␤12␤13␤14␤15␤16␤17␤18␤19␤20␤21␤22␤23␤24␤25␤26␤27␤28␤29␤30␤31␤32␤33␤34␤35␤36␤37␤38␤39␤40␤41␤42␤43␤44␤45␤46␤47␤48␤49␤50␤51␤52␤53␤…»
20:12 hankache that is supposed to be the infinity symbol ^^
20:12 ZoffixW it is :)
20:12 Skarsnik timotimo, is there a way to know if a type is 'complete' at "compile time". I use ^can(gist) because I assume for complete type it exist at https://github.com/rakudo/rakudo/blob/nom/lib/NativeCall.pm6#L210
20:12 timotimo you can probably check its HOW against CurriedRoleHOW or what it's called?
20:14 hankache smls thnaks
20:14 hankache thanks**
20:15 kittenlips joined #perl6
20:15 timotimo it'd probably be more correct to check its primitives or what they are called
20:15 hankache ZoffixW while you're at it the Advent Calendar box is a bit out of sync
20:15 timotimo archetypes*
20:15 Skarsnik I am not really searching if how is set on it. it just if I have class B {}; class A { sub foo(B) is native} The rest of the code work because B is 'defined' intierly (this code is executed when is native is see) but in case of class A { sub foo(A) is native} perl 6 does not have the full definition of A
20:16 ZoffixW hankache, dammit :P now that you've noticed it I'll just *have* to fix it ^_^
20:16 timotimo oh
20:16 skids smls: it looks like a case could be built from RT#125049 up to getting all such stuff to take their default comparitors from calling scope, assuming rt gets resolved in favor of that.  (Fudged tests for it are in S03-sequence/nonnumeric.t)
20:17 Skarsnik and for the weekly post. I don't know, lot of change in precomp/build system to accomod distrib?
20:17 hankache ZoffixW hehe
20:17 timotimo all i can say is: look in the files in src/Perl6/Metamodel
20:17 lizmat .tell autarch thinking more about Olson, I think wrapping .later and adjusting the timezone with .in-timezone, should be enough
20:17 yoleaux lizmat: I'll pass your message to autarch.
20:18 dalek ecosystem: 240ef02 | (Claudio Ramirez)++ | META.list:
20:18 dalek ecosystem: Add StrictNamedArguments
20:18 dalek ecosystem: review: https://github.com/perl6/ecosystem/commit/240ef02dfc
20:18 dalek ecosystem: 344bc49 | nxadm++ | META.list:
20:18 dalek ecosystem: Merge pull request #106 from nxadm/master
20:18 dalek ecosystem:
20:18 dalek ecosystem: Add StrictNamedArguments
20:18 dalek ecosystem: review: https://github.com/perl6/ecosystem/commit/344bc492bc
20:18 smls skids: Interesting. But how would similar *custom* routines get defaults from caller scope? Not making the built-ins too "magical/different" is one of Perl 6's intentional changes compared to Perl 5, isn't it?
20:19 hankache how can you *check* the effect of multithreading ?
20:19 flussence run with ulimit -u 1?
20:20 hankache say you have apiece of code with race() and a copy of it without, how can you *see* if it's using 2 cores or it's faster?
20:20 hankache flussense can you give me an example please
20:21 * hankache is just learning about parallelism
20:21 smls hanche: Putting a «sleep rand/100» inside the map should at least show you if they're being processed sequentially or not
20:21 skids smls: I think it's as simple as sub thingy( :&by = ::CALLER::cmp ) or whatever that is  after removing all my mistakes :-)
20:21 ChoHag I have 'has Bool $.noisy = True;' followed by a pair of #= lines to document that variable, perl6 --doc heads that documentation up with 'class Mu $_'.
20:21 smls *hankache
20:21 ChoHag Is that because the --doc parser is really simple or have I written the documentation incorrectly?
20:22 Skarsnik both?
20:22 Skarsnik I mean the first
20:22 RabidGravy doc parser is really simple
20:23 ChoHag So when the doc parser is improved, that docomment will be headed correctly?
20:23 Skarsnik Probably ^^
20:23 ChoHag Right.
20:24 hoelzro ZoffixW: I'll fix it when I get home
20:25 * hoelzro wonders if he should make his automatic sanity check run *before* he goes to work as well as after
20:25 dalek doc: 2de6cf2 | (Claudio Ramirez)++ | /:
20:25 dalek doc: Merge branch 'master' of github.com:perl6/doc
20:25 dalek doc: review: https://github.com/perl6/doc/commit/2de6cf2247
20:25 dalek doc: 74fd84f | (Claudio Ramirez)++ | / (36 files):
20:25 dalek doc: Merge branch 'master' of github.com:nxadm/doc
20:25 dalek doc: review: https://github.com/perl6/doc/commit/74fd84fb59
20:25 dalek doc: 37bb2e7 | (Claudio Ramirez)++ | / (12 files):
20:25 dalek doc: Merge branch 'master' of github.com:perl6/doc
20:25 dalek doc: review: https://github.com/perl6/doc/commit/37bb2e77f2
20:25 dalek doc: 4ec0a98 | (Claudio Ramirez)++ | doc/Language/modules.pod:
20:25 dalek doc: Correct URL (previously 404)
20:25 dalek doc: review: https://github.com/perl6/doc/commit/4ec0a98040
20:25 dalek doc: cffdc72 | (Claudio Ramirez)++ | / (30 files):
20:25 dalek doc: Merge branch 'master' of github.com:perl6/doc
20:25 dalek doc: review: https://github.com/perl6/doc/commit/cffdc720d1
20:25 dalek doc: f72c7ee | (Claudio Ramirez)++ | /:
20:25 dalek doc: Merge branch 'master' of github.com:nxadm/doc
20:25 dalek doc: review: https://github.com/perl6/doc/commit/f72c7eea30
20:25 dalek doc: 4884eb7 | nxadm++ | doc/Language/modules.pod:
20:25 dalek doc: Merge pull request #289 from nxadm/master
20:25 dalek doc:
20:25 dalek doc: Fix 404 URL ecosystem module import
20:25 dalek doc: review: https://github.com/perl6/doc/commit/4884eb7700
20:25 nine timotimo: how can one bun a role manually?
20:26 Skarsnik nine, you have success with passing Blob/Buf to NC?
20:26 dalek perl6.org: b4d56b1 | (Zoffix Znet)++ | source/index.html:
20:26 dalek perl6.org: Add a visible release announcement message to homepage
20:26 dalek perl6.org: review: https://github.com/perl6/perl6.org/commit/b4d56b1e1e
20:27 timotimo oof
20:27 * ZoffixW giggles
20:27 timotimo well, since punning is the same as mixing it into a class, why not try it like class Bar does MyRole { }? or perhaps use the MOP way if that doesn't work
20:28 timotimo ZoffixW: thanks for the website commit
20:28 mwmarkland joined #perl6
20:29 virtualsue joined #perl6
20:30 hankache smls and race() will /ME is constantly hitting [F5] to see what ZoffixW did
20:30 dotness joined #perl6
20:30 * hankache is constantly hitting [F5] to see what ZoffixW did
20:30 hankache smls will race() use 2 cores or it can use more?
20:31 * ZoffixW spots a nav bug on browsers between 768-991px wide :P
20:31 ZoffixW hankache, I didn't fix the advent box yet.
20:31 * ZoffixW is multitasking
20:31 smls hankache: I think it uses the current default scheduler
20:31 smls m: say $*SCHEDULER
20:31 camelia rakudo-moar 477830: OUTPUT«ThreadPoolScheduler.new(initial_threads => 0, max_threads => 16, uncaught_handler => Callable)␤»
20:32 smls Not sure though
20:33 hankache ZoffizW can you change the color of the announcement box to the safe color as the header?
20:33 hankache same color**
20:33 El_Che hankache: why?
20:33 nine Skarsnik: yes, looks good
20:34 El_Che hankache: it jumps out in an other colour, that"s the idea
20:34 El_Che I would make the text context more bombastic though
20:35 hankache El_Che i am no color expert but it feels weird jumping from green to blue
20:35 hankache smls thanks
20:36 dalek perl6.org: ea15a58 | (Zoffix Znet)++ | source/ (3 files):
20:36 dalek perl6.org: Fix box alignment on home page
20:36 dalek perl6.org: review: https://github.com/perl6/perl6.org/commit/ea15a588d5
20:36 [Coke] http://sdtimes.com/christmas-perl-arrives/ - that article seems confused.
20:36 ZoffixW Yup
20:36 smls hankache: When running   perl6 -e '(1..1_000_000).race.map({ is-prime $_ })'   my system monitor shows 100% of all my CPU cores.
20:36 smls * 100% usage
20:37 timotimo The process has paralleled the development of the Rakudo virtual machine, an all-purpose engine for running interpreted languages, known as the Moar virtual machine.   -  was this sentence generated with a markov chain generator?
20:37 timotimo hankache: .race can use as many cores as you want
20:37 hankache smls same here
20:38 hankache timotimo thanks
20:38 ZoffixW m: sleep 1 for ^4 .race: :1batch; say now - INIT now # 4 cores
20:38 camelia rakudo-moar 477830: OUTPUT«1.0106884␤»
20:39 smls hankache: Looks like it can be fine-tuned like this:    (1..1_000_000).race(batch => 20000, degree => 2).map({ is-prime $_ });
20:39 timotimo "With the release of Rakudo, however, this is the first time developers can build with Perl 6, and then validate their code with the compiler." ?????
20:39 llfourn joined #perl6
20:39 TEttinger joined #perl6
20:39 masak timotimo: the first time! except for Pugs, in 2005.
20:39 kittenlips p6: my Int @matrix[5;10;15];
20:39 camelia rakudo-moar 477830: ( no output )
20:40 kittenlips rakudo: my Int @matrix[5;10;15]; @matrix >>+=>> 1;
20:40 camelia rakudo-moar 477830: OUTPUT«Cannot call HYPER(Block, NQPMu, Int, Int, Any); none of these signatures match:␤    (&op, \left, \right, :$dwim-left, :$dwim-right)␤    (&op, Associative:D \left, Associative:D \right, :$dwim-left, :$dwim-right)␤    (&op, Associative:D \left, \right,…»
20:40 ZoffixW timotimo, rofl :) those were my same remarks: http://irclog.perlgeek.de/mojo/2015-12-29#i_11799060
20:40 kittenlips why does the above work if you defined the @matrix with int but not Int?
20:40 ZoffixW hankache, you mean like this? http://i.imgur.com/roWR136.png
20:41 timotimo ZoffixW: yeah, also calling the advent blog "the release blog" is a bit strange
20:42 timotimo and linking to the poetic 24th as the release announcement instead of the more ordinary release announcement of the next day
20:42 nine timotimo: Blob.^can hits Mu's can method. That's why it complains about the argument count.
20:42 nine Skarsnik: ^^^
20:42 timotimo ah, that's interesting. why would it hit a method on Mu, rather than on a meta object?
20:42 timotimo is a null getting hllized into a Mu or something?
20:42 timotimo seems strange to me
20:43 dalek tablets: 3051f17 | (Herbert Breunung)++ | docs/appendix- (2 files):
20:43 dalek tablets: added bag ops to A
20:43 dalek tablets: review: https://github.com/perl6/tablets/commit/3051f170ce
20:43 dalek tablets: 1619216 | (Herbert Breunung)++ | docs/appendix-a-index.txt:
20:43 dalek tablets: while set ops table is now in A and linked
20:43 dalek tablets: review: https://github.com/perl6/tablets/commit/1619216cb4
20:43 markusmayr joined #perl6
20:44 timotimo ZoffixW: damn it, the 6 gets wrapped to the next line on my screen
20:44 timotimo like, all text except the "6!" is on its own line, and then a line with only "6!"
20:44 hankache ZoffixW. no worries leave the color as is
20:44 nine timotimo: because the role does not get punned and ParametricRoleGroupHOW does not do MROBasedMethodDispatch which is the only MOP class that overrides can
20:45 * timotimo always types Perl 6, i.e. with a non-breaking space
20:45 * ZoffixW doesn't know how to type a non-breaking space like that :)
20:45 ChoHag How do you have text which looks like a pod directive not direct anything?
20:45 ZoffixW .u
20:45 yoleaux U+202F NARROW NO-BREAK SPACE [Zs] ( )
20:45 timotimo ZoffixW: in that case just use the html entity?
20:46 ChoHag timotimo: That's not web 3.0 enough.
20:47 hankache ZoffixW++
20:47 dalek perl6.org: ecf6a3b | (Zoffix Znet)++ | source/index.html:
20:47 dalek perl6.org: Fix unwanted announcement line wrap
20:47 dalek perl6.org: review: https://github.com/perl6/perl6.org/commit/ecf6a3be7e
20:47 kittenlips ?
20:47 ZoffixW night all \o  time to relocate and then play Warframe :)
20:47 ZoffixW kittenlips, sup?
20:48 Skarsnik have fun :)
20:48 hankache night ZoffixW
20:48 kittenlips sorry
20:48 ZoffixW heh :)
20:48 ZoffixW \o
20:48 kittenlips rakudo: my Int @matrix[5;10;15]; @matrix >>+=>> 1;
20:48 camelia rakudo-moar 477830: OUTPUT«Cannot call HYPER(Block, NQPMu, Int, Int, Any); none of these signatures match:␤    (&op, \left, \right, :$dwim-left, :$dwim-right)␤    (&op, Associative:D \left, Associative:D \right, :$dwim-left, :$dwim-right)␤    (&op, Associative:D \left, \right,…»
20:48 cdg joined #perl6
20:48 kittenlips ^ why does this work if you define @matrix as int by not Int?
20:48 kittenlips hyper doesn't like Int
20:48 timotimo nine: oh, i see. interesting, definitely
20:51 markusmayr rakudo: "Hello World".split(" ", :all).perl.say
20:51 camelia rakudo-moar 477830: OUTPUT«("Hello", "World")␤»
20:51 markusmayr I just tried rakudo; shouldn't this give me ("Hello", " ", "World") ?
20:52 flussence m: "Hello World".split(/" "/, :all).perl.say # checking something...
20:52 camelia rakudo-moar 477830: OUTPUT«("Hello", "World")␤»
20:52 Skarsnik m: "Hello  World".split(" ", :all).perl.say
20:52 camelia rakudo-moar 477830: OUTPUT«("Hello", "", "World")␤»
20:52 jast m: "Hello World".split(" ", :w).perl.say
20:53 camelia rakudo-moar 477830: OUTPUT«("Hello", "World")␤»
20:53 kittenlips markusmayr: what does the :all adverb do
20:53 Skarsnik m: "Hello  World".split(" ").perl.say
20:53 flussence that doesn't seem quite right, no
20:53 camelia rakudo-moar 477830: OUTPUT«("Hello", "", "World")␤»
20:53 jast err
20:53 Skarsnik all does not work them
20:53 jast m: "Hello World".split(" ", :v).perl.say
20:53 camelia rakudo-moar 477830: OUTPUT«("Hello", " ", "World")␤»
20:53 jast yeah, that's the one
20:53 orbus joined #perl6
20:53 flussence jast++, nice catch
20:53 itcharlie1 joined #perl6
20:54 jast it just so happened I had the docs open for split ;)
20:54 RabidGravy :)
20:54 Skarsnik what does all do?
20:54 jast :all is not documented there
20:54 flussence gets swallowed by *%_
20:54 timotimo i think :all was deprecated
20:54 RabidGravy isn't :all just a no-op for consistency for something else?
20:54 timotimo in favor of :k, :v, ...
20:54 timotimo i don't think so
20:55 hankache hot do you get the time it took for an expression to finish?
20:55 vendethiel joined #perl6
20:55 markusmayr Ah, I misread the documentation. Cool.split mentions :all, so I thought it would be the same for Str.split
20:55 timotimo m: sub test() { for ^1000000 { }; say now - ENTER now; }; test; test; test;
20:55 camelia rakudo-moar 477830: OUTPUT«0.253073␤0.2354314␤0.23894736␤»
20:55 Skarsnik my $t = now: foo(); say now - $t;
20:56 timotimo Skarsnik: or see my example for "how to do this without a variable" :)
20:56 jast set phasers to profile!
20:56 Skarsnik Oh interesting x=
20:56 RabidGravy pew! pew!
20:56 Skarsnik damn, I should look at your qt profiler, I always forget x)
20:56 Skarsnik the current html output is quite useless x)
20:56 timotimo tadzik's qt profiler*
20:57 timotimo quite?
20:57 timotimo that's a bit harsh, no?
20:57 Skarsnik oh it was tadzik?
20:57 hankache timotimo thanks
20:57 Skarsnik well it's very slow/crashy
20:57 flussence well it's useless if the browser can't render it...
20:58 espadrine joined #perl6
20:58 timotimo right. the output gets gigantic easily
20:58 jast hmm, I'm having a grammar parse input and even the action for the first conceivably matched token doesn't ever get called, instead I get the CPU spinning. is there anything I can use to figure out where it's stuck, or do I have to strip it back down into a simpler grammar?
20:58 flussence s[it][it or the browser]
20:58 timotimo mostly because of the call graph being unlimited depth
20:59 timotimo jast: we have a Grammar::Tracer module in the ecosystem
20:59 timotimo that's very nice
20:59 timotimo otherwise you can put { say "here: 1" } into your regexes as well
21:00 perlpilot using say like that is a very effective technique :)
21:00 jast good idea
21:00 masak note that that may screw up LTM, though
21:00 masak since any code ends the declarative prefix
21:00 perlpilot yeah, that's the major down side
21:01 jast and that module is even pre-installed by Task::Star apparently
21:01 perlpilot I wish there was a way to have the compiler inject {say "enter $regex"} and the equivalent exit in all of the regex for a grammar (without messing up LTM)
21:02 flussence m: https://gist.github.com/flussence/1f4b23284cc39160d312
21:02 camelia rakudo-moar 477830: OUTPUT«1..4␤ok 1 - okay␤ok 2 - okay2␤not ok 3 - broken␤␤# Failed test 'broken'␤# at /tmp/kMmyHrPu8H line 15␤not ok 4 - broken2␤␤# Failed test 'broken2'␤# at /tmp/kMmyHrPu8H line 15␤# Looks like you failed 2 tests of 4␤»
21:02 flussence ^LTM's already screwed up :)
21:02 timotimo perlpilot: i think grammar tracer does it kind of like that
21:02 masak perlpilot: that's basically what Grammar::T... what timotimo said.
21:02 tadzik oh
21:03 tadzik well, the Qt profiler is not as featurefull as the html one
21:03 tadzik but it doesn't crash your browser on a big program, so there's that :)
21:03 perlpilot I guess I want something in between Grammar::Tracer and manual insertion of say statements.   Maybe I'll write one ... one day .... maybe  :)
21:03 tadzik and to be the devil's advocate, Qt's JSON parser still can't handle CORE.setting profile iirc
21:03 jast well, the tracer (actually called Grammar::Debugger now) pointed me right at the problem.
21:04 perlpilot jast: cool.  What was it?
21:04 timotimo tadzik: yes. blergh. shitty thing with its totally random size limit
21:04 lnrdo joined #perl6
21:04 flussence to be fair, it's hard for them to find testcases for gigabyte-long JSON objects :)
21:05 jast perlpilot: I had a [ foo || bar || ws? ]* type thing at TOP and after the first successful match all of the options save for ws? failed for reasons yet unknown, so endless loop
21:07 timotimo flussence: doesn't have to be a gigabyte, iirc
21:07 timotimo tadzik: do you remember what exact size it cuts off at?
21:07 tadzik nope :(
21:07 tadzik mojca: yes, probably better here :)
21:07 flussence the last successful core profile I did came out to about 890MB...
21:07 Skarsnik did you submit a repport to Qt?
21:07 tadzik your error message is quite weird indeed
21:08 mojca what exactly should be the first line of panda?
21:08 tadzik mojca: it looks a bit like it
21:08 tadzik ...like it's from perl 5
21:08 mojca I replaced it with "#!/opt/local/bin/perl6"
21:08 tadzik what
21:08 tadzik ffs
21:08 tadzik what's wrong with /usr/bin/env pelr6?
21:08 tadzik no env on mac?
21:08 mojca I would like to make sure that exactly the "right" version of perl6 is used
21:09 tadzik how do you define "right"?
21:09 Skarsnik I though panda was a script shell/whatever that call the a pl6 x)
21:10 hankache what is the difference between ENTER and INIT?
21:10 Skarsnik ENTER is when entering the block?
21:10 hankache what do you call them by the way?
21:10 Skarsnik INIT is at BEGIN ?
21:10 flussence m: for ^5 { ENTER say 'e'; INIT say 'i'; }
21:10 camelia rakudo-moar 477830: OUTPUT«i␤e␤e␤e␤e␤e␤»
21:10 timotimo Skarsnik: no, INIT is at run time, but ASAP
21:10 timotimo BEGIN is at compile time, ASAP
21:10 mojca tadzik, it works properly if I use env; I don't know why it doesn't work if I specify /opt/local/bin/perl6
21:10 flussence m: say 'start'; for ^5 { say 'loop'; ENTER say 'e'; INIT say 'i'; }; say 'end';
21:10 camelia rakudo-moar 477830: OUTPUT«i␤start␤e␤loop␤e␤loop␤e␤loop␤e␤loop␤e␤loop␤end␤»
21:11 timotimo CHECK is at compile time, but ALAP, i think?
21:11 Skarsnik m: say "foo"; for ^5 { ENTER say 'e'; INIT say 'i'; }
21:11 camelia rakudo-moar 477830: OUTPUT«i␤foo␤e␤e␤e␤e␤e␤»
21:11 Skarsnik fun
21:11 timotimo m: INIT say "init"; CHECK say "check"; BEGIN say "begin";
21:11 camelia rakudo-moar 477830: OUTPUT«begin␤check␤init␤»
21:11 tadzik mojca: does a hello world work if you do specify it as such?
21:11 mojca but even after fixing that problem I'm left with "Found no writable directory into which panda could be installed"
21:11 mojca so I would like to know how to fix that
21:12 tadzik ah
21:12 flussence oh ffs
21:12 flussence everyone's hitting the curli bug
21:12 tadzik well, panda should at least be able to install itself in $HOME, if your perl6 install directory is not writable
21:12 geraud joined #perl6
21:13 itcharlie joined #perl6
21:13 timotimo tadzik: did you see the problem where rakudobrew deleted the contents of /bin ? :D
21:13 timotimo or /usr/bin or so
21:13 tadzik ermagherd
21:13 tadzik no :o
21:13 mojca tadzik, no, hello world doesn't work
21:13 Skarsnik lol
21:13 jast someone symlinked rakudobrew into /usr/bin
21:13 mojca basically /opt/local/bin/perl6 doesn't seem to work, but I'm not sure why not
21:13 tadzik mojca: then it sounds like your /opt/local/bin/perl6 is actually invalid
21:13 jast and ran everything as root :)
21:13 tadzik fak
21:14 flussence I think we really ought to do a 2015.12.1 rakudo just for the sake of getting rid of the "can't mkdir"
21:14 timotimo http://perl6.org/specification/  -  should this excerpt from Synopsis 1 be replaced by something else? or should that part of Syn 1 be reworded now that the release has happened? TimToady?
21:14 timotimo flussence: yeah ...
21:14 tadzik I think it speaks badly about Rakudo's installation process that people are trying to use rakudobrew as a tool to have a system-wide perl 6 installation
21:14 tadzik (or about our documentation)
21:14 mojca who can help me with /opt/local/bin/perl6 then?
21:14 pierre-vigier joined #perl6
21:14 Skarsnik proabably the doc
21:14 tadzik I hope we can :)
21:14 timotimo before the star release, a little rakudo bugfix release would be nice
21:14 mojca it works if I call it directly, but not in shebang or whatever that is called
21:14 flussence tadzik: I haven't touched rakudobrew *ever* :D
21:14 tadzik mojca: what does 'file /opt/..." say?
21:15 tadzik flussence: sounds like it saved you some potential trouble :P
21:15 mojca it's #!/bin/sh
21:15 tadzik mojca: is it executable?
21:15 flussence (in fact, I'm doing as much work as I can to make sure nobody ever does...)
21:15 mojca with exec /opt/local/bin/moar  --execname="$0" --libpath="/opt/local/share/nqp/lib" --libpath="/opt/local/share/perl6/lib" --libpath="/opt/local/share/perl6/runtime" /opt/local/share/perl6/runtime/perl6.moarvm "$@"
21:15 Skarsnik On my dedicated server I have a system wide perl6 installed with Configure.pl
21:15 tadzik kredit to team :)
21:15 mojca POSIX shell script, ASCII text executable
21:15 mojca it's 755
21:15 Skarsnik I think what is not clear with that is you have to NOT put --prefix to bootstrap.pl to install Panda
21:15 tadzik how did you install it there, btw?
21:16 tadzik our entire toolchain is built around the idea of keeping things in your $HOME
21:16 mojca how did I install rakudo or panda?
21:16 spider-mario joined #perl6
21:16 tadzik seems like it backfired and we never checked how it actually works outside
21:16 tadzik mojca: both
21:16 mojca me and [Coke] cooked up a package
21:17 tadzik well, if hello world doesn't work then it seems to me like te package is broken somewhere
21:17 mojca so MoarVM, nqp, rakudo were built with the package manager
21:17 mojca this works: /opt/local/bin/perl6 hello.pl
21:18 mojca just "#!/opt/local/bin/perl6" doesn't and I would suspect it's because of the contents of that script
21:18 mojca I made a package for Panda as well, but the package for panda still misbehaves because I don't know how to install it
21:18 mojca I don't want it in $HOME
21:19 Skarsnik I think panda try to find where perl6 is located and put itself there?
21:19 mojca but I would like to convince panda to install modules somewhere under $HOME/.perl6 or something similar, like cpan puts modules under $HOME/.cpan
21:19 RabidGravy mojca, the perl6 script is a wrapper in Perl 5
21:20 RabidGravy well it is here
21:21 mojca is it theoretically possible that it would work as "#!/opt/local/bin/perl6"?
21:21 Skarsnik Not wanting to bash curli stuff, but it really look it never really get tested on a "real world" use case ~~
21:21 jast if I recreate a similar situation with my rakudobrew-based installed (#!/a/comparable/script), it works
21:21 nine mojca: have you tried panda --prefix $HOME/.perl6/2015.12-41-g461e635 (or whatever is current for you)?
21:21 flussence Skarsnik: hard to test it on a real world use case when there weren't any real world users...
21:21 mojca is --prefix meant for destination of modules or for location of panda itself?
21:22 RabidGravy oh wait that's the rakudobrew shim, the default one is just sh
21:22 jast I tried with both the shim and the shell script, so it's theoretically possible for it to work
21:23 mojca wait ... perl6 actually *TALKS*????
21:23 nine Skarsnik: well it did work in all the real world use cases that I knew of. Once you're at that point, you have to merge to give it a wider audience.
21:23 nine mojca: --prefix=/path/to/modules    Place to put modules, executable scripts, etc.
21:23 mojca ouch, I misunderstood it then
21:23 mojca I need to fix that then
21:23 Skarsnik what --prefix does on bootstrap.pl ?
21:24 dalek rakudo/from-loop: 386905f | TimToady++ | src/Perl6/ (2 files):
21:24 dalek rakudo/from-loop: reimplement value loops using Seq.from-loop
21:24 dalek rakudo/from-loop:
21:24 dalek rakudo/from-loop: This fixes the infinite loop on 'loop', as well as allowing repeat loops
21:24 dalek rakudo/from-loop: to return values too.  This patch also removes the FAKE_MACRO hack, and
21:24 dalek rakudo/from-loop: gets us closer to how jnthn++ wanted it to work originally.  (It does
21:24 dalek rakudo/from-loop: not yet fix the outer bug of #127069, but likely makes it easier to fix.)
21:24 dalek rakudo/from-loop: review: https://github.com/rakudo/rakudo/commit/386905f6f6
21:24 dalek rakudo/from-loop: e651629 | TimToady++ | / (8 files):
21:24 dalek rakudo/from-loop: Merge branch 'nom' into from-loop
21:24 dalek rakudo/from-loop: review: https://github.com/rakudo/rakudo/commit/e6516291f1
21:24 mojca I thought --prefix was for location of panda itself
21:24 mojca and I noticed it didn't work
21:24 hankache good night everyone
21:24 hankache see you tomorrow
21:24 TimToady o/
21:25 nine mojca: panda itself is a dist that is installed by panda.
21:25 dalek doc/rb-nutshell: 84aa6a0 | (Brock Wilcox)++ | doc/Language/rb-nutshell.pod:
21:25 dalek doc/rb-nutshell: Document basic object orientation
21:25 dalek doc/rb-nutshell: review: https://github.com/perl6/doc/commit/84aa6a04b3
21:25 pierre-v_ joined #perl6
21:25 timotimo "rb"?
21:25 timotimo o/ TimToady
21:25 nine mojca: --prefix was obviously not enough during creation of the panda package, but it should be enough once panda's installed
21:26 Rotwang Hi, it appears that NativeCall doesn't try to resolve library path, so by default you need to provide library with a full path?
21:26 jdv79 not bad craft beer bars in amsterdam.  im a little surprised.
21:26 Skarsnik How I mark a bug ia duplicate of another on RT?
21:26 mojca I'll try to reinstall with a different --prefix
21:26 Skarsnik Rotwang, no http://doc.perl6.org/language/nativecall#Library_Paths_and_Names
21:27 flussence Rotwang: if it isn't in the standard LD_LIBRARY_PATH, you'll have to give it a full one, yes
21:27 mojca but then one more thing, what should I do with the state file
21:27 Skarsnik Ah yes, I should maybe add that it search in the system linker path (or something like that)
21:27 mojca it contains lots of weird temporary paths that get deleted
21:28 nine mojca: actually, panda even tries to be smart about picking installation locations and it should fall back to $HOME/.perl6 if the site repo is not writable. Obviously this does not yet work as intended. Could be less work to actually fix that bug than to work around it.
21:28 mojca after the installation is complete
21:28 CQ joined #perl6
21:28 nine masak: I'd be happy to see panda's state file replaced by a proper API in Perl 6 and have already begun work on the latter.
21:28 mojca falling back to $HOME/.perl would help
21:29 Skarsnik for me panda should do this: root run it -> default system prefix; user -> $HOME
21:29 mojca if you think that this could be implemented soon, I'll rather wait than try to reinvent the wheel
21:29 tadzik it can be arranged
21:29 tadzik but I'm pretty sure it does in fact fallback to $HOME/.perl6
21:30 tadzik if everything else goes t hell
21:30 nine tadzik: there's certainly code for that. It may just be some stupid bug preventing it. Or maybe it does work after all and nobody has tried it yet ;)
21:31 flussence tadzik: worked for me. I installed rakudo to system dirs, bootstrap.pl and panda install Linenoise both Just Worked
21:31 flussence (as unprivileged user, that is)
21:31 mojca I get http://pastebin.com/63uMVwhB
21:31 tadzik nine: the latter is quite possible :)
21:31 Skarsnik gah RT does not have a marked as duplicate or something?
21:31 timotimo Skarsnik: you can merge tickets
21:32 mojca I need to add that I didn't install the state file though because I have no clue where it belongs and what to do with temporary path that gets removed
21:33 mojca can someone explain what the error is trying to tell me?
21:34 Rotwang flussence: Skarsnik: thanks for the info, although there is no "standard" LD_LIBRARY_PATH (by default it is empty) and the library resolution on linux is relatively coplicated (ld cache and so on)
21:34 mojca why are all filenames "encrypted"?
21:34 mojca from the error log it's almost impossible to tell which file is throwing the error
21:35 timotimo agreed
21:35 mojca also, when panda is done bootstrapping, it tells me "==> Please make sure that inst#/opt/local/var/macports/build/_path_to_perl_lang_panda/panda/work/.home/.perl6/2015.12/bin is in your PATH"
21:35 timotimo however, the paths still give you a file you can read
21:35 timotimo for the source
21:35 Arrowhead using NativeCall, is there a way to call through a C function pointer?
21:35 mojca which is nonsense because that temporary build dir will eventually get removed
21:35 _nadim joined #perl6
21:36 mojca tomotimo: yes, but it's useless for anyone trying to decrypt what my logs say without having access to my machine
21:36 timotimo Arrowhead: i've wished for this in the past, but we don't have support for this IIUC
21:37 Skarsnik Not sure to understand why to you mean call through a C function pointer? You mean you get a function pointer and want to call it?
21:38 Arrowhead timotimo: That's a shame. I'm doing OpenGL stuff and I can successfullly call things that are in the GL shared lib. But I understand that more modern functions are only available as pointers. Even when using GLEW it looks like the shared lib only has pointers, not actual functions.
21:38 Arrowhead Skarsnik: exactly
21:38 llfourn joined #perl6
21:39 Skarsnik Oh right, hm, sound tricky to do
21:40 Arrowhead Ultimately the functionality must be there, the question is: how to expose it.
21:40 brrt Arrowhead, maybe you can use csymbol?
21:41 Skarsnik I never really looked at how functor work
21:41 Arrowhead brrt: you mean symbol('foo') unfortunately no, that assumes foo is a function.
21:41 RabidGravy A work around would be to make some additional C code that does the dispatching
21:41 mojca nine: if talking about falling back to $HOME/.perl6 for panda: is there any ticket I could follow (I probably won't be on IRC like I was yesterday when you fixed the problem when that will be discussed)
21:42 skids mojca: it's not that the filenames are encrypted it's that rakudo doesn't necessarily use files to identify compunits.  Theoretically it will allow installing multiple versions of the same "file" in case one app needs a newer version that another app cannot use, or other such things.
21:42 Skarsnik RabidGravy, probably yes
21:42 timotimo Arrowhead: in any case, you can use Inline::C to compile little stubs for you that call the function pointer ...
21:42 timotimo just treating the function pointer as OpaquePointer and build one C function for every different argument signature
21:42 Arrowhead ah, is that there too in perl6 land. I'll have a look.
21:42 timotimo sounds terrible. and it is. ... ... sorry :(
21:42 brrt Arrowhead: http://doc.perl6.org/language/nativecall#Exported_variables
21:42 brrt is what i mean
21:43 Skarsnik It does not sound that bad to add? like creating a special Callable?
21:43 timotimo yeah, should be easy. you go ahead! :)
21:44 Rotwang it may be a silly question, but where are the sources of NativeCall? I guess it is no longer Zavolaj
21:44 Arrowhead brrt: that's for reading/writing variables for which you know the name. I want to call the C code.
21:44 Arrowhead Rotwang: in rakudo
21:44 Skarsnik NC is in Rakudo/NQP/Moar
21:44 RabidGravy It can already marshal Callables to function pointers so I wonder if the reverse could be done
21:45 niceperl joined #perl6
21:45 firstdayonthejob joined #perl6
21:45 Skarsnik C wise how that work with using dlopen and doing it?
21:45 Rotwang Arrowhead: Skarsnik: thanks
21:46 Skarsnik but if you have issue with your libpath you can ask x)
21:46 RabidGravy well if you already have a function pointer in hand then you don't need to load it from a dll surely
21:47 brrt oh wow...
21:47 timotimo RabidGravy: well, that's not really the same thing, as it has to create a piece of code that can be used as a target for function pointers to invoke
21:48 Skarsnik yes RabidGravy but are in the case of we don't link the lib at compile time. so it's dlopened and I don't remember how function work in this case in C
21:49 RabidGravy timotimo, sure
21:49 keix joined #perl6
21:49 timotimo well. it could certainly be super crazy easy to make. maybe not. who knows.
21:50 jdv79 RabidGravy: amsterdam beats london in my book for craft beer bars i think.
21:50 yurivish_ joined #perl6
21:50 RabidGravy jdv79, very possibly but hey
21:51 Skarsnik timotimo, I am pretty sure it's passing around the sub signature to C (Moar) and its pointer and call it
21:51 jdv79 hey!
21:54 timotimo Skarsnik: you can have a look at MoarVM to see how "nativecallbuild" and "nativecallinvoke" are implemented
21:54 autarch lizmat: it's a little more complicated than just wrapper later - with Olson time zones there are things like non-existent local times as well as local times that are ambiguous (yeah have hour 2 twice in a row)
21:54 yoleaux 20:17Z <lizmat> autarch: thinking more about Olson, I think wrapping .later and adjusting the timezone with .in-timezone, should be enough
21:54 CQ left #perl6
21:55 lizmat autarch: the non-existant local times are no issue
21:55 Skarsnik timotimo, I will have a quick look tomorrow
21:55 autarch lizmat: why?
21:55 timotimo cool.
21:55 lizmat because you can never move into them
21:55 lizmat .later is already technically correct
21:55 lizmat only the timezone of the resulting object isn't
21:56 perlpilot lizmat: users can't create localtimes that don't exist?
21:56 lizmat I'm saying you can't move into them using .later
21:56 autarch lizmat: we may be talking past each other
21:56 perlpilot oh
21:56 lizmat if you specify a non-existing time on creation, it should die
21:57 autarch lizmat: right, that's somewhat of an API change, and it constantly surprises users of p5 DateTime
21:57 autarch this is one of the reasons I proposed have a DateTime class without timezones and another one with them
21:57 autarch a lot of people don't actually need _any_ tz handling whatsoever and would be better off with a class that doesn't ever make them think about this
21:58 lizmat but with the current implementation, you can't go wrong with the timezone, it's basically just a view on the actual underlying atomic clock time
21:58 lizmat if you don't specify a :timezone with DateTime, you don't have to think about it
21:59 lizmat moving from non-DST to DST with anything other than seconds, will DTRT
21:59 perlpilot In the past, I've wanted offsets from UTC without necessarily caring about timezones, but I don't know how common/useful that is
21:59 lizmat atm, you can have offset you want  :-)
22:00 lizmat and there are actually tests for them
22:00 autarch perlpilot: it's not uncommon - it's easy to support along with Olson zones
22:01 autarch lizmat: what you think is DTRT is not necessarily what others will think is DTRT - have you read p5 DateTime's docs? they go into a lot of the different cases that should be considered
22:01 lizmat ok, will do so before getting back to this  :-)
22:02 perlpilot lizmat++
22:07 nine mojca: frankly I find it very tedious to try and fix those issues. I cannot reproduce them and have no idea how all this OS X packaging stuff works and where ridiculous paths like inst#/opt/local/var/macports/build/_path_to_perl_lang_panda/panda/work/.home/.perl6/2015.12/bin come from.
22:07 autarch lizmat: you might also find http://www.houseabsolute.com/presentations/a-date-with-perl/#1 interesting
22:08 nine mojca: do you think, you can do a little digging into panda's source code yourself? The error message comes from lib/Panda/App.pm and the interesting code starts in line 11. It should be fairly self explanatory.
22:08 Skarsnik btw Mac os X vm work with VirtualBox
22:09 nine Skarsnik: maybe, but I'm certainly not gonna buy OS X to debug other people's systems.
22:09 Skarsnik Well you need patched a version of os X ~~
22:09 nine If people want to use a non-free system, they cannot expect me to go that far.
22:09 RabidGravy are there any of the developers who use os X ?
22:10 vendethiel lizmat does, afaik
22:10 perlpilot autarch: slide 19 has a typo  "inclues"  (though, that should be a word!)
22:10 autarch includes?
22:10 lizmat yes, I do, but i have given up on macports: it always gave me more pain than gain
22:10 perlpilot aye
22:10 RabidGravy it is in french isn't it?
22:11 Skarsnik and virtualbox still does not see intel vx tech, so I can't boot any 64 bit vm, :(
22:12 diakopter I have 64-bit VMs in virtualbox, I thought
22:12 jast with a windows host that tends to happen if its own hypervisor (hyper-v) gets in the way, maybe something similar on osx?
22:12 Skarsnik Yes, but my virtual box version get lost sometime
22:13 Skarsnik I am on win7 and I don't have hyper-v
22:13 jast right, hyper-v is included starting with win8
22:13 Skarsnik it's a weird bug that does not always happened
22:14 jast I didn't ever have these types of issues with win7, but apparently I just had better luck :/
22:14 Skarsnik I have this since the 4.x version of it
22:16 kittenlips_ joined #perl6
22:24 colomon joined #perl6
22:25 timotimo maybe we should have called it "Sixperl" instead of "Perl 6"
22:26 ELBeavers left #perl6
22:26 ELBeavers joined #perl6
22:26 jdv79 i might use six as a suffix if markov doesnt give up cpan6:(
22:27 lizmat jdv79: do I understand from this you're not trying to integrate with CPAN / PAUSE / MetaCPAN anymore ?
22:28 kittenlips joined #perl6
22:28 jdv79 no.  same as usual.  trying to use as much of existing as poss. just want a ns.
22:29 jdv79 cpan6 or cpansix is cpan mostly but might lift off it later.  that kinda thing.
22:30 ZoffixWin joined #perl6
22:31 lizmat I will most likely see markov next week at the Amsterdam PM meeting
22:31 kittenlips hi, question about syntax highlighting, are there syntax highlighting tools that actually load and understand the full grammar for a language to produce very informative highlighting to really aid in comprehension of code?
22:31 lizmat jdv79: I'll talk with him about it...
22:31 jdv79 ah.  we exchanged emails once and he was a maybe.  i need to reply.
22:32 ZoffixWin nine, BTW, good job with the whole pre-compilation stuff. Before it, perl6's startup stuff was driving me nuts and now performance doesn't even come to mind when I write my stuff :) I'm glad we didn't have that slowness when we released, or I imagine lots of people would be complaining about it ^__^
22:33 jdv79 that would be cool though.  so far ill only be in amsterdam til the 2nd.  when is thus pm meeting?  should i go?
22:34 jdv79 its not a big deal though:)
22:34 kittenlips I've always found syntax highlighters for Perl such as those in Padre or what we see in online resources such as in Github to be either plain wrong or just really lacking
22:34 lizmat the Amsterdam PM meetings are on the first Tue of the month, so on the 5th this time
22:35 jdv79 hmm...
22:36 flussence kittenlips: the highlighter in pygments is top notch. It was written specifically *for* Github even, then they threw the entire thing away for the sake of NIH/avoiding python-cooties...
22:36 ZoffixWin kittenlips, yeah, it's a tough language to highlight due to contexts and stuff. MadCapJake++ wrote a nice plugin for Atom with superb highlighting (https://github.com/MadcapJake/language-perl6fe)
22:37 ZoffixWin kittenlips, I heard there's something for vim too
22:37 Skarsnik vim highlight is slow for me
22:37 kittenlips flussence: the pygments highlighter is what is being used on the Perl 6 site no?
22:38 flussence yep
22:38 Skarsnik like I thought I was using some 80 internetspeed editing a 100 lines file via ssh x)
22:38 ZoffixWin Is it?
22:38 ZoffixWin Oh on docs
22:38 ZoffixWin I think the examples on homepages were made with Text::VimColour
22:39 llfourn joined #perl6
22:39 flussence vim-perl works fine too, the version bundled with vim is ancient though
22:40 Skarsnik it's maybe a dumb question, but why the doc for class are not in the class itself using WHY stuff of pod? because pod parser is bad, or it was too slow?
22:40 kittenlips By no means to criticize as I know it's likely a difficult task, but even on Perl 6 docs the highlighting could go further
22:41 timotimo it's definitely a task ...
22:41 kittenlips For example variables within strings should be highlighted with the same color as the variable outside and different than regular string characters
22:42 perlpilot Skarsnik: too slow
22:42 Skarsnik maybe with precomp it's not true?
22:43 q0tw4 joined #perl6
22:43 kittenlips that's why my question about are there syntax highlighters that can just import the grammar for a language and understand it so that it automatically creates the correct highlighting patterns without any user configuration
22:44 perlpilot kittenlips: "I want my identifiers to be green"  "I want mine to be red!"   (there will always be "user configuration")
22:45 ZoffixWin Skarsnik, I think it's because the docs are meant for any Perl 6 implementation, not just Rakudo. Another issue I can see the separation solves: you can give commit access to a much greater number of people to docs alone, than to docs + implementation.
22:45 Skarsnik kdevelop color each variable with a dif color for example
22:45 kittenlips perlpilot: well not the colors, but that the highlighter knows that here is an identifier <- let user decide color
22:45 Begi2 joined #perl6
22:45 kittenlips So that user doesn't have to configuration how the syntax highlighter understands the syntax, the grammar should tell the highlighter that without any user configuration
22:45 Skarsnik ZoffixWin, I think it make keeping the doc up to date harder ~~
22:46 ZoffixWin Skarsnik, maybe. But, to play the devil's advocate, do you want some l33t h4x0r spend their time writing docs or writing code, and leaving someone with less skill to read the completed code and write the docs? :)
22:47 ZoffixWin Dunno, I have a strong bias against spaghetti Pod + code, :)
22:48 yqt joined #perl6
22:48 Skarsnik maybe someone should write something to compare class metod with the doc to see if some are missing x)
22:49 ZoffixWin :D
22:49 shicheng joined #perl6
22:50 zakharyas joined #perl6
22:51 shicheng_ joined #perl6
22:52 flussence eventually all of docs/specs/roast will coagulate into one big Literate Programming thing...
22:53 lnrdo joined #perl6
22:53 kittenlips at least from what I understand Perl 6 will be much easier write syntax highlighting grammars for than Perl 5 was because Perl 5 is difficult to parse
22:54 timotimo well, yeah ... until you start putting in Slangs :D
22:54 Skarsnik well perl6 is parsable by.. perl 6
22:54 kittenlips But this one-pass parsing right? Better than multi pass?
22:54 Skarsnik I was baffled that trait are compile time code already x)
22:54 timotimo yeah, that's right
22:55 timotimo though if you build a slang, you can parse whatever way you like
22:55 ZoffixWin m: sub term:<(╯°□°)╯︵┻━┻> { say "or this" }; (╯°□°)╯︵┻━┻; (╯°□°)╯︵┻━┻;
22:55 camelia rakudo-moar 477830: OUTPUT«or this␤or this␤»
22:55 timotimo for example by handing the code to a REST API on the web :P
22:55 Skarsnik hm
22:56 yurivish_ joined #perl6
22:56 Skarsnik Discord has a /tableflip command, it's the best invention ever x)
22:57 kittenlips remember this on Perl Monks? http://www.perlmonks.org/?node_id=663393 "Perl Cannot Be Parsed: A Formal Proof"
22:57 Skarsnik Well Discord web client
22:57 dalek rakudo-star-daily: e7083e6 | coke++ | log/ (7 files):
22:57 dalek rakudo-star-daily: today (automated commit)
22:57 dalek rakudo-star-daily: review: https://github.com/coke/rakudo-star-daily/commit/e7083e6cb3
22:57 kittenlips Perl 6 I believe is parseable...
22:59 Skarsnik why everything fail in https://github.com/coke/rakudo-star-daily/blob/master/log/MoarVM-test-modules.log
23:00 ZoffixWin m: sub term:<🙈> {say "Where's"}; sub postfix:<🙊> ($) {say "your"}; sub postfix:<🚾> ($) {say "highlighting"}; sub postfix:<〠> ($) {say "now"}; 🙈🙊🚾〠;
23:00 camelia rakudo-moar 477830: OUTPUT«Where's␤your␤highlighting␤now␤»
23:00 ZoffixWin ehehe. I love Perl 6 :P
23:01 Juerd If Perl cannot be parsed, and Perl 6 can be parsed, then Perl 6 is not Perl? I'm confused.
23:01 Skarsnik Does someone try to build a perl5 interpreter with Perl 6? x)
23:01 flussence no, it just means your definition of "parsed" is wrong
23:02 flussence (or "cannot")
23:02 kittenlips Juerd: sorry Perl 5 cannot be parsed without actually running the program as well
23:02 flussence (or "be"... ah, forget it)
23:03 shicheng joined #perl6
23:04 kittenlips Juerd: the Perl Monks article is about Perl 5 that it is impossible to statically parse.  I believe Perl 6 can be statically parsed?
23:04 ZoffixWin Can it?
23:04 cpage_ joined #perl6
23:04 ZoffixWin Perl 6's magicness looks way more advanced than Perl 5's :o
23:05 kittenlips Can Perl 6 code be parsed without actually running the code?
23:05 Skarsnik seems unlikly x)
23:05 kittenlips hehe
23:05 lizmat think BEGIN blocks ?
23:06 lizmat think 'use something' that changes the slang
23:06 RabidGravy well in the sense that you can get an abstract syntax tree then yes
23:06 kittenlips lizmat++ yes because bluring the lines between compilation and runtime
23:06 ZoffixWin kittenlips, based on how I understand that monger's argument, my examples of custom operators above show an even more extreme example. How would such a parser know that, say /((((/egahgs/ is actually an operator that I defined in some other package?
23:07 ZoffixWin m: sub infix:</((((/egahgs/> ($a, $b) { say "$a $b" }; 'Just' /((((/egahgs/ 'testing'
23:07 camelia rakudo-moar 477830: OUTPUT«Just testing␤»
23:07 timotimo Skarsnik: you don't know about "v5"?
23:08 Skarsnik I am not sure I want to know
23:08 ZoffixWin :D
23:08 kittenlips ZoffixWin: yes I think you are right
23:08 Skarsnik m: use v5; my $a = "hello"; print $a =~ /ll/;
23:08 camelia rakudo-moar 477830: OUTPUT«===SORRY!===␤Could not find Perl5 in:␤    /home/camelia/.perl6/2015.12-44-g477830a␤    /home/camelia/rakudo-m-inst-2/share/perl6/site␤    /home/camelia/rakudo-m-inst-2/share/perl6/vendor␤    /home/camelia/rakudo-m-inst-2/share/perl6␤    CompUni…»
23:10 kittenlips to everyone sorry about going on and on about syntax highlighting etc.
23:10 cygx joined #perl6
23:10 flussence nothing wrong with genuine curiosity :)
23:10 kittenlips Just Perl (5 and 6) are languages that of any language need as good syntax highlighting as possible
23:11 cygx v5 has suffered a severe case of bitrot
23:11 kittenlips It's extremely dense code with many symbols and operators and having very detailed highlighting really helps with code comprehension
23:11 * ZoffixWin glances at mst, who doesn't use any highlights and loves it :)
23:11 cygx I made it 'work' (with some issues related to the GLR), but precomp broke it again
23:12 cygx I'm still planning to get back to it, eventually
23:12 ZoffixWin Not just loves it, but argues it makes reading the code better.
23:12 flussence p6 does a lot better than just syntax highlighting, try it with the Fira Code font sometime :)
23:13 kittenlips Personally in all my years programming Perl 5 I used NEdit as I found out of the box it had the best and most detailed syntax highlighting
23:13 virtualsue i love syntax highlighting
23:13 kittenlips I believe NEdit's syntax highlighting engine uses regex that's how it could be so good
23:13 timotimo "detailed" syntax highlighting? sounds like it highlights individual parts of letters differently, too :P
23:14 kittenlips yes, it actually individually highlighted within regexs EXACTLY how it should be
23:14 flussence timotimo: that's also called "misconfigured Cleartype" :D
23:14 virtualsue i just generally take it as i get it, and don't care about the details
23:14 Skarsnik I use a different ide/editor for the language I work with x)
23:14 kittenlips virtualsue: hehe
23:14 kittenlips Skarsnik: me too
23:14 kittenlips with Perl 5 -> NEdit
23:15 RabidGravy yeah, I only find it really really useful because sometime I can't tell the difference between quote characters
23:15 Skarsnik C => kdevelop, C++ QtCreator, Perl 6 => kate
23:15 shicheng joined #perl6
23:16 lizmat good night, #perl6!
23:16 kittenlips I find with Perl 5 my brain needed good syntax highlighting in order to comprehend code easily
23:16 kittenlips With Java and Python it doesn't matter
23:16 flussence too much syntax highlighting can be a terrible thing: php.vim has an option to sub-highlight heredocs that use delimiters like "HTML" and "SQL"...
23:16 RabidGravy if the rest of the file is read after a quoted string, I typed the wrong quote character
23:16 Skarsnik Lol
23:16 RabidGravy red
23:17 ZoffixWin this is the best editor: https://github.com/codeinthedark/editor/pull/1
23:17 ZoffixWin ^_^
23:17 ZoffixWin *cue heavy metal music while coding*
23:17 colomon joined #perl6
23:18 kittenlips LOL
23:18 kittenlips Bang! Bang!
23:18 Skarsnik I need that!
23:18 flussence (and once upon a time, some idiot sitting in my chair thought it was a really neat idea and turned all those php.vim options on then proceeded to *make use of* them...)
23:18 ZoffixWin Oh man, it even exists for Atom :) https://atom.io/packages/activate-power-mode
23:18 kittenlips I tried to install Atom from source, my God it just never works I HATE node.js
23:19 ZoffixWin It's what I use for Perl 6 'cause Sublime Text 2 has bad P6 highligher :(
23:19 kittenlips The servers I have at work are not latest Linux distros, only CentOS 6.7 and Atom will not build from source anything but newer Linuxes
23:19 kittenlips And they don't tell you that
23:20 deniska I need the activate power mode in my terminal
23:21 Skarsnik rakudo build need power mode
23:21 deniska That way pretty much every program I use can be power moded
23:21 deniska irssi power mode :)
23:21 kittenlips Let me rephrase, I don't hate node.js but I just couldn't get everything to compile it doesn't tell you you need fairly new glibc versions
23:22 RabidGravy I've installed it on ancient versions of SLES before
23:22 RabidGravy for my sins
23:22 cygx https://github.com/rakudo/rakudo/pull/662 # RFC: make v5 pluggable
23:23 kittenlips why does power mode remind me of Street Fighter?
23:24 kittenlips Hadouken!!!! Alllyouken!!  https://www.youtube.com/watch?v=pHJKS3r_YUg
23:25 flussence cygx: er, why not make use of the multiple-versioned-same-named module support we already have?
23:25 mojca tadzik, I found this reference: http://www.in-ulm.de/~mascheck/various/shebang/#interpreter-script claiming that nesting shebang scripts might be problematic (while working on newer linux)
23:26 mojca but it's my fault anyway, so it's me the one who has to address the problem
23:27 cygx flussence: it's not about the version specifically, and I don't think it's a good idea to disambiguate sematically distinc modules solely by authority
23:28 kid51 joined #perl6
23:28 cygx flussence: a module could implement Perl5 via a proper slang, or just do some quote parsing and hand off the actual processing to Inline::Perl5, or something completely different
23:29 virtualsue joined #perl6
23:29 virtualsue i really need to sort out my wifi
23:30 dj_goku m: my $buf = Buf.new('0'); $buf.unpack('*');
23:30 camelia rakudo-moar 477830: OUTPUT«This type cannot unbox to a native integer␤  in any  at gen/moar/m-Metamodel.nqp line 1718␤  in block <unit> at /tmp/c9Y4S9pE4x line 1␤␤»
23:30 RabidGravy mojca, the thing is "perl6" with rakudo is always a script of some sort as it's something like "moar perl6.moarvm $@" with some other arguments
23:30 dj_goku m: my $buf = Buf.new(0); $buf.unpack('*');
23:30 camelia rakudo-moar 477830: OUTPUT«Use of the 'unpack' method is experimental; please 'use experimental :pack'␤  in block <unit> at /tmp/xWDLWY5G4L line 1␤␤»
23:31 dj_goku m: use experimental :pack;
23:31 camelia rakudo-moar 477830: ( no output )
23:31 flussence m: EVAL "}error{";
23:31 camelia rakudo-moar 477830: OUTPUT«5===SORRY!5=== Error while compiling /tmp/ccrPy_cPLN␤Unable to parse expression in double quotes; couldn't find final '"' ␤at /tmp/ccrPy_cPLN:1␤------> 3EVAL "}error{";7⏏5<EOL>␤    expecting any of:␤        double quotes␤        term␤»
23:31 dj_goku m: use experimental :pack; my $buf = Buf.new(0); $buf.unpack('*');
23:31 camelia rakudo-moar 477830: ( no output )
23:31 flussence in the repl, the filename there is odd.
23:31 ugexe m: my @x; @x>><foo>; # is this the correct error message?
23:31 camelia rakudo-moar 477830: OUTPUT«This type does not support elems␤  in block <unit> at /tmp/zgtOgODOps line 1␤␤»
23:32 ZoffixWin m: use MONKEY-SEE-NO-EVAL; EVAL <}error{>;
23:32 camelia rakudo-moar 477830: OUTPUT«5===SORRY!5=== Error while compiling /home/camelia/EVAL_0␤Unexpected closing bracket␤at /home/camelia/EVAL_0:1␤------> 3<BOL>7⏏5}error{␤»
23:32 kittenlips BTW all I wrote in Quora a recent answer to "When is Perl 6 coming out" as the previous answers were very old, hopefully my answer is accurate enough I basically paraphrased from the annoucements
23:32 dj_goku m: use experimental :pack; my $buf = Buf.new(0); say $buf.unpack('*');
23:32 camelia rakudo-moar 477830: OUTPUT«Nil␤»
23:32 kittenlips https://www.quora.com/When-is-Perl-6-coming-out
23:32 flussence oh wait, it doesn't happen with that string:
23:33 flussence m: EVAL "}"
23:33 camelia rakudo-moar 477830: OUTPUT«5===SORRY!5=== Error while compiling /home/camelia/EVAL_0␤Unexpected closing bracket␤at /home/camelia/EVAL_0:1␤------> 3<BOL>7⏏5}␤»
23:33 kittenlips Lot's of people get Quora feeds to hopefully it gives Perl 6 additional visibility
23:33 dj_goku m: use experimental :pack; my $buf = Buf.new(0x0a); say $buf.unpack('*');
23:33 camelia rakudo-moar 477830: OUTPUT«Nil␤»
23:33 dj_goku m: use experimental :pack; my $buf = Buf.new(0x0a); say $buf.unpack('H*');
23:33 camelia rakudo-moar 477830: OUTPUT«0a␤»
23:33 ZoffixWin kittenlips++
23:34 Skarsnik quora?
23:34