Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2015-03-04

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:01 grondilu yullha: do you have an example of something you would do in Perl5 and could not do in Perl6?
00:01 timotimo grondilu: it seems like they're suggesting the opposite; that perl6 can do too much
00:03 alpha- grondilu run all the xs-ified crap from cpan
00:03 alpha- :o)
00:05 lizmat joined #perl6
00:05 yullha grondilu I think that perl6 want to do too much and makes life less pleasent to experienced unix users
00:06 timotimo you can still shell out and pipe out to other processes
00:06 timotimo i don't think it makes things less pleasant
00:06 jercos and natively call functions in libraries >.> can't discount that.
00:06 yullha let's say that perl 5 was kind of a shell on his own
00:07 alpha- how does anything perl do anything against UNIX Philosophy yullha ?
00:07 alpha- text pipes in, text pipes out
00:07 timotimo jercos: hum?
00:07 timotimo oh, that was a response to my statement? shelling out?
00:08 jercos NativeCall is a major boost in the abilities of perl 6 without making those abilities part of perl 6
00:08 jercos yeah
00:08 yullha I don't think that native call functions has ever been easy on unix shells
00:08 alpha- yullha your question about creating a gz with perl is pretty silly imo
00:08 alpha- to create a gz you pipe into gzip
00:08 alpha- not into perl
00:08 timotimo if you're seeing perl as "a kind of shell", you're severely limiting yourself and perl
00:08 jercos so not only can you do anything end-user unixy, like shelling out, you can also do things C-unixy, like call libraries without needing a specific binding.
00:09 b2gills yullha: You're also assuming a particular unix variant, so may not be portable from say Linux to BSD.
00:10 timotimo yeah, mac os more likely than BSD in general
00:10 yullha well in unix working with function and working with files has always been two separated things
00:10 yullha some tools excell at one some at others
00:11 yullha how can you be good at both when they are so different concepts?
00:12 b2gills and anyway if I was going to write something other than a one-off tool, I would look for a module https://metacpan.org/search?q=gzip
00:12 dalek rakudo-star-daily: a4a8796 | coke++ | log/ (9 files):
00:12 dalek rakudo-star-daily: today (automated commit)
00:12 dalek rakudo-star-daily: review: https://github.com/coke/rakudo-star-daily/commit/a4a87968c9
00:12 yullha b2gills some of them are wrappers around the tool
00:13 b2gills So
00:13 yullha some of them like RandomAccess cannot be reasonably efficient even if they work
00:13 yullha would be better just to not have them
00:14 b2gills If you want to be "reasonably efficient" you would be writing in C
00:15 b2gills Anyway Perl 6 has better process interop natively than Perl 5
00:15 timotimo how can you excell at both integer and floating point arithmetic?!
00:15 timotimo there is no reason why something shouldn't be good at both working with files and working with functions
00:16 timotimo it's at best a false dichotomy
00:19 yullha I see files as the rivers which carry information and unix tools are the pipes; functions instead are a bit like the molecule which the pipes are made
00:19 b2gills http://doc.perl6.org/type/Proc::Async seems to be better than say https://metacpan.org/pod/IPC::Run or https://metacpan.org/pod/IPC::Cmd
00:20 yullha depends at which level you put your language you may be good at one or the other
00:20 ingy could a few people help me out and click this link: https://hello.firefox.com/W_FeEmtP_7c
00:21 b2gills If you're looking at it as little more than Awk + Sed + Bash, then Perl 5 may be a better fit for you
00:22 yullha it's also much faster than awk + sed + bash
00:22 b2gills ingy: I don't have a camera or mic; but I can hear you
00:22 ingy I wan to see how many people can join
00:22 ingy b2gills: can you see me too?
00:23 b2gills yes
00:23 ingy click it people!
00:23 yullha ingy don't see nor hear
00:24 yullha not working for me
00:24 b2gills I plugged in a mic, but not working yet,  let me see
00:24 ingy try to rejoin
00:24 ingy I think it's like a permalink video chat
00:24 timotimo yep
00:25 ingy I hear noise
00:25 ingy but no voices
00:26 b2gills I've never used the mic on this headset so it may be broken
00:28 avuserow it's telling me that there are already two people in that conversation and doesn't show anything...
00:28 ingy avuserow: hmm. I thought I'd done 3 before
00:29 ingy I wanted to see if it would go 10 or more
00:32 raydiak yullha you are of course welcome to use a less-featureful, less-portable, less-extensible tool if that fits better into your interpretation of the right way to do things...you are correct: that thing you are talking about whatever and whyever it is...it is not Perl 6, which has a greater range of expression along more axii than any other programming language I've encountered...that's part of our own philosophy
00:33 raydiak that being said, part of doing that means letting people use it in unixy ways, and we do try very hard to allow that and make it practical :)
00:33 tinyblak joined #perl6
00:38 raydiak was it something I said?
00:38 adu joined #perl6
00:46 laouji joined #perl6
00:52 TimToady raydiak: let's hope so
00:58 raydiak heh true...didn't want to feed it, but...didn't wanna keep my mouth shut either
00:59 raydiak ...fingers...whatever...
01:02 yeahnoob joined #perl6
01:11 * geekosaur considered asking at one point if they had trouble walking and chewing gum at the same time...
01:12 skids joined #perl6
01:16 TimToady ah, the address appears to go to France
01:16 TimToady probably just a bit too much wine in this case :)
01:17 japhb .ask ssutch Still interested in working on https://github.com/samuraisam/p6-pb ?
01:17 yoleaux japhb: I'll pass your message to ssutch.
01:21 laouji_ joined #perl6
01:35 bayprogrammer joined #perl6
01:51 jack_rabbit joined #perl6
02:15 aborazmeh joined #perl6
02:15 aborazmeh joined #perl6
02:20 kaare__ joined #perl6
02:23 Mouq There aren't any specific examples given for #78670... can we consider it closable with tests?
02:23 synopsebot Link: https://rt.perl.org/rt3//Public/Bug/Display.html?id=78670
02:24 Mouq m: multi foo(Int $x, Str $b) {}; my $a = "bcd"; foo $a
02:24 camelia rakudo-moar 070196: OUTPUT«5===SORRY!5=== Error while compiling /tmp/sguTFCxzau␤Calling 'foo' will never work with argument types (Mu)␤    Expected any of: ␤    :(Int $x, Str $b)␤at /tmp/sguTFCxzau:1␤------> 3 foo(Int $x, Str $b) {}; my $a = "bcd"; 7⏏5foo $a␤»
02:25 Mouq m: multi foo(Int $x, Str $b) {}; my $a = "bcd"; foo $a, "bar"
02:25 camelia rakudo-moar 070196: OUTPUT«Cannot call 'foo'; none of these signatures match:␤:(Int $x, Str $b)␤  in sub foo at /tmp/S66ShGWzau:1␤  in block <unit> at /tmp/S66ShGWzau:1␤␤»
02:25 Mouq Ahh, it just seems to be errors the compiler can catch early
02:25 Mouq I'll add this to the ticket
02:26 pullphinger joined #perl6
02:32 telex joined #perl6
02:52 chenryn joined #perl6
02:54 TimToady http://rosettacode.org/wiki/JortSort#Perl_6
03:06 muraiki_ joined #perl6
03:07 sunnavy joined #perl6
03:08 skids TimToady: It is unclear to me from the description, but maybe the intent is that the original array is supposed to be sorted as a side-effect.
03:09 Mouq m: say [1,2,3].sort.WHAT; #hmm…
03:09 camelia rakudo-moar 070196: OUTPUT«(Parcel)␤»
03:14 Mouq m: sub mysort(::T $a) { T($a.sort) }; say mysort([1,2,3]).WHAT
03:14 camelia rakudo-moar 070196: OUTPUT«(Array)␤»
03:18 Psyche^ joined #perl6
03:27 jdv79 JortSort?  idgt.
03:30 * TimToady doesn't think sort should be returning a Parcel
03:30 raiph joined #perl6
03:31 timotimo tadzik: don't we want to throw out IO::Select?
03:32 noganex joined #perl6
03:34 bayprogrammer joined #perl6
03:44 grondilu "you're the first one here"
03:44 grondilu oops ^please ignore
03:47 grondilu left #perl6
03:54 dalek rakudo/nom: 63045c3 | TimToady++ | src/ (2 files):
03:54 dalek rakudo/nom: unify add_categorical errors
03:54 dalek rakudo/nom:
03:54 dalek rakudo/nom: As a side effect, spaces will no longer be tolerated in operators.
03:54 dalek rakudo/nom: Even if we decided to allow this someday, this is conservative.
03:54 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/63045c3c4e
03:55 dalek roast: be5fa53 | TimToady++ | S06-operator-overloading/sub.t:
03:55 dalek roast: check new add_categorical errors
03:55 dalek roast: review: https://github.com/perl6/roast/commit/be5fa531a7
04:00 laouji joined #perl6
04:09 laouji joined #perl6
04:12 jdv79 http://doc.perl6.org/routine/parse - is that correct?
04:17 timotimo what do you suspect to be wrong?
04:18 timotimo having two candidates on that page?
04:19 timotimo it seems strange that they have different documentation texts
04:21 anaeem1 joined #perl6
04:23 ugexe joined #perl6
04:27 jdv79 yeah, i don't see two candidates in the code 
04:42 petercommand joined #perl6
04:44 Mouq Erm. The other one is here: http://doc.perl6.org/language/grammars
04:48 jdv79 is that a mess or is that cool?  i'm a little unsure with how these docs work.
04:51 adu hi
04:55 jack_rabbit joined #perl6
04:57 TimToady m: sub infix:<+  ->($a,$b) { $a + $b }; say 21 +  - 21
04:57 camelia rakudo-moar 63045c: OUTPUT«5===SORRY!5=== Error while compiling /tmp/SoSPhYJ0VJ␤Too many symbols provided for categorical of type infix; needs only 1␤at /tmp/SoSPhYJ0VJ:1␤------> 3sub infix:<+  ->7⏏5($a,$b) { $a + $b }; say 21 +  - 21␤»
04:59 laouji_ joined #perl6
05:10 diana_olhovik_ joined #perl6
05:28 dalek rakudo/nom: 897bef3 | Mouq++ | src/ (2 files):
05:28 dalek rakudo/nom: Make dupprefix a typed error
05:28 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/897bef3f7c
05:29 dalek roast: afcf797 | Mouq++ | S03-operators/misc.t:
05:29 dalek roast: Add tests for RTs #73198 and #76436
05:29 dalek roast: review: https://github.com/perl6/roast/commit/afcf79755f
05:29 synopsebot Link: https://rt.perl.org/rt3//Public/Bug/Display.html?id=73198
05:31 dalek rakudo/nom: ffa13ff | Mouq++ | src/core/Exception.pm:
05:31 dalek rakudo/nom: Fix typo in exception message
05:31 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/ffa13ff249
05:41 Aaron`J left #perl6
06:32 dalek rakudo/nom: a99a572 | Mouq++ | src/core/metaops.pm:
06:32 dalek rakudo/nom: Fix RT #123178
06:32 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/a99a5729da
06:32 synopsebot Link: https://rt.perl.org/rt3//Public/Bug/Display.html?id=123178
06:35 mr-fooba_ joined #perl6
06:36 bjz joined #perl6
06:45 infernal joined #perl6
06:48 dalek roast: 3545b6a | Mouq++ | S03-metaops/hyper.t:
06:48 dalek roast: Add test for RT #123178
06:48 dalek roast: review: https://github.com/perl6/roast/commit/3545b6ae6c
06:48 synopsebot Link: https://rt.perl.org/rt3//Public/Bug/Display.html?id=123178
06:55 wicope joined #perl6
06:57 Rounin joined #perl6
06:57 diana_olhovik_ joined #perl6
06:58 [Sno] joined #perl6
07:03 dalek roast: e75f03b | Mouq++ | S32-array/splice.t:
07:03 dalek roast: Add test for RT #116897
07:03 synopsebot Link: https://rt.perl.org/rt3//Public/Bug/Display.html?id=116897
07:03 dalek roast: review: https://github.com/perl6/roast/commit/e75f03bf2d
07:07 aborazmeh joined #perl6
07:07 aborazmeh joined #perl6
07:15 rindolf joined #perl6
07:23 [Tux] m: $*OUT.nl = Str
07:23 camelia rakudo-moar a99a57: OUTPUT«Cannot unbox a type object␤  in block  at src/gen/m-CORE.setting:16933␤  in block <unit> at /tmp/pK2BEhyEj3:1␤␤»
07:23 [Tux] interesting
07:26 [Tux] even more interesting:
07:26 [Tux] m: $*OUT.nl = ""
07:26 camelia rakudo-moar a99a57: OUTPUT«Invalid string index: max 4294967295, got 4294967295␤  in block  at src/gen/m-CORE.setting:16933␤  in block <unit> at /tmp/bbah0AsX5r:1␤␤»
07:26 [Tux] oepsie
07:26 [Tux] make a ticket?
07:28 TimToady sure
07:28 TimToady m: subset checked-int32 of int32 where * ~~ int32.Range; my checked-int32 $x = 2_000_000_000; say $x
07:28 camelia rakudo-moar a99a57: OUTPUT«Type check failed in assignment to '$x'; expected 'checked-int32' but got 'Int'␤  in block <unit> at /tmp/J2VbwAltCy:1␤␤»
07:28 TimToady m: subset checked-int32 of int32 where * ~~ int32.Range; my checked-int32 $x = nqp::unbox_i(2_000_000_000); say $x
07:28 camelia rakudo-moar a99a57: OUTPUT«Type check failed in assignment to '$x'; expected 'checked-int32' but got 'Int'␤  in block <unit> at /tmp/DhbKqli54N:1␤␤»
07:30 TimToady m: subset checked-int32 of int32 where int32.Range; my checked-int32 $x; say $x
07:30 camelia rakudo-moar a99a57: OUTPUT«(checked-int32)␤»
07:30 esaym153 joined #perl6
07:30 TimToady m: subset checked-int32 of int32 where int32.Range; my checked-int32 $x = 0; say $x
07:30 camelia rakudo-moar a99a57: OUTPUT«Type check failed in assignment to '$x'; expected 'checked-int32' but got 'Int'␤  in block <unit> at /tmp/P51rLwjdlY:1␤␤»
07:30 bjz joined #perl6
07:30 TimToady seems like that could work a little better
07:31 TimToady in particular it'd be nice if our literals could be allomorphic to native types
07:32 TimToady m: subset checked-int32 of int32 where int32.Range; my checked-int32 $x = 0.int8; say $x
07:32 camelia rakudo-moar a99a57: OUTPUT«No such method 'int8' for invocant of type 'Int'␤  in block <unit> at /tmp/1wI5NBTIfl:1␤␤»
07:40 [Tux] m: $*OUT="";"Hello".say
07:40 camelia rakudo-moar a99a57: OUTPUT«Too many positionals passed; expected 1 argument but got 2␤  in method print at src/gen/m-CORE.setting:1186␤  in sub say at src/gen/m-CORE.setting:17983␤  in method say at src/gen/m-CORE.setting:1185␤  in block <unit> at /tmp/OADTYlF8Vf:1␤␤»
07:41 [Tux] shouldn't it be guarded against?
07:52 _mg_ joined #perl6
07:53 [Tux] please compare these two:
07:53 [Tux] m: .say for (1, "", Str, "a").map(~*)
07:53 camelia rakudo-moar a99a57: OUTPUT«1␤␤use of uninitialized value of type Str in string context  in block <unit> at /tmp/6uSh0Uwm3v:1␤␤␤a␤»
07:53 [Tux] m: .say for (1, "", Str, "a").map(*//"")
07:53 camelia rakudo-moar a99a57: OUTPUT«1␤␤(Str)␤a␤»
07:54 [Tux] in the first I hoped ~* to stringify Str to ""
07:54 [Tux] in the second I expect "" instead of "(Str)"
07:55 Mouq m: .say for (1, "", Str, "a").map({$_//""})
07:55 camelia rakudo-moar a99a57: OUTPUT«1␤␤␤a␤»
07:55 Mouq * and // don't curry :P
07:57 Mouq I fear * has become yet-another-list-to-memorize
07:58 Mouq Mostly, it does what you want
07:58 Mouq But when it doesn't, the fact that it didn't is usually rarely obvious
07:58 Mouq s/usually//
07:58 [Tux] .o( so much to remember ...)
07:59 [Tux] should I RT the fact that one can assign a string to $*OUT?
07:59 moritz I don't think so
07:59 moritz dynamic variables aren't typed, afaict
08:00 moritz so GIGO applies
08:00 [Tux] ok
08:00 fhelmberger joined #perl6
08:00 TimToady and we don't want to prevent assigning a differently typed object that happens to duck type the IO ops
08:00 [Tux] good reason
08:02 tadzik timotimo: it's absolutely useless these days, perhaps we should :)
08:07 TimToady I supsect *//"" not working is just a bug
08:07 [Tux] shall I ticket it? You can always reject it later
08:08 TimToady it seems pretty obvious what it should do
08:08 TimToady it's not like we've stolen the meaning of * for something else with //
08:09 TimToady so yeah, I think it's just NYI/bug
08:09 prime joined #perl6
08:13 zakharyas joined #perl6
08:14 kjs_ joined #perl6
08:14 Humbedooh joined #perl6
08:14 Sqirrel joined #perl6
08:18 nwc10 http://www.raspberrypi.org/launch-day-what-happened-to-the-website/ -- It would have been really nice to have put our extremely secret test setup with HipHop Virtual Machine into production, but that’s not yet well enough tested for primetime although a seven-fold performance increase on page rendering certainly would be nice.
08:21 xiaomiao nwc10: that's ... kinda ... horribly sad
08:21 xiaomiao 10 req/s is roughly what you get with very bad php and no optimization or caching at all
08:21 xiaomiao ... on a puny old server
08:22 nwc10 that's not 10 req/s for static content
08:23 xiaomiao yes
08:23 xiaomiao uhm
08:24 xiaomiao if you don't have horribly crufty crap php ... my baseline is currently about 50 req/s per cpu as lower limit
08:24 xiaomiao so a 50Eur/mo server would handle about 400 req/s worst case
08:25 xiaomiao if one were to use proper caching this would end up as "we've saturated the network connection" anyway
08:28 Kristien joined #perl6
08:29 rurban joined #perl6
08:29 darutoko joined #perl6
08:36 laouji_ joined #perl6
08:41 Kristien hi
08:43 abraxxa xiaomiao: where do you have those performance numbers from?
08:44 xiaomiao abraxxa: experience
08:44 abraxxa i'm happy if my Catalyst app gets 10/sec
08:45 xiaomiao last time I was involved in tuning the s*&$ out of a bad drupal pile of stupid we ended up at >1500req/s mostly-cached
08:45 yeahnoob joined #perl6
08:46 abraxxa that's without any caching
08:46 xiaomiao flask, uncached: Requests per second:    3071.21 [#/sec] (mean)
08:46 abraxxa as my apps aren't dynamic webpages but webapps caching doesn't make sense because the data is changing all the time
08:46 xiaomiao on a crappy old (quadcore) desktop that has less than half the horsepower of any server I want to use
08:49 moritz and it really, really depends on the application
08:49 xiaomiao for a page with lots of templates and DB access - 91msec according to firefox, which means 10 req/s *per cpu*, so about 100req/s per server, uncached
08:49 moritz and the underlying database
08:50 xiaomiao mediawiki, 1.6sec with all tricks to speed it up applied - 0.6 req/s per CPU
08:51 moritz and then you install semantic mediawiki, and it becomes even slower :(
08:51 kaleem joined #perl6
08:51 xiaomiao well, that is SMW
08:51 xiaomiao doing up to 40k DB queries per page view
08:51 moritz eeks
08:52 xiaomiao thus making it slower to have the database on a dedicated machine as ethernet latency dominates query time
08:52 xiaomiao 90 CPU-seconds to render that page :D
08:57 Ven joined #perl6
08:58 alini joined #perl6
09:02 Humbedooh joined #perl6
09:06 Kristien joined #perl6
09:06 Ven joined #perl6
09:08 Kristien what to do
09:11 moritz Kristien: strive for world domination!
09:12 Kristien that'd mean using Perl!
09:12 Kristien sounds good :)
09:14 brrt joined #perl6
09:14 fhelmberger joined #perl6
09:15 dalek doc: c68a8fd | moritz++ | lib/Type/Cool.pod:
09:15 dalek doc: Any: many of those methods also exists in sub form
09:15 dalek doc: review: https://github.com/perl6/doc/commit/c68a8fd080
09:15 dalek doc: 624920c | moritz++ | lib/Type/Cool.pod:
09:15 dalek doc: Cool: subroutine forms
09:15 dalek doc: review: https://github.com/perl6/doc/commit/624920c7e1
09:15 dalek doc: 30f8f0a | moritz++ | lib/Type/Cool.pod:
09:15 dalek doc: log10; examples
09:15 dalek doc: review: https://github.com/perl6/doc/commit/30f8f0ae5d
09:15 Ven ETOOHUBRIS
09:17 virtualsue joined #perl6
09:22 Kristien Rust is cool.
09:23 larion joined #perl6
09:25 dakkar joined #perl6
09:25 laouji joined #perl6
09:25 brrt no, rust is a complex oxidation product of iron
09:26 brrt not necessarily cool
09:26 brrt although it might be sometimes
09:26 jnthn o/
09:27 raydiak \o
09:27 brrt \o
09:30 kjs_ joined #perl6
09:37 Akagi201 joined #perl6
09:42 jnthn Ooh: http://video.fosdem.org/2015/devroom-perl/
09:43 Ven amazing! (fosdem people)++
09:43 * Ven cuts his starcraft video to watch an even more futuristic one *g*
09:48 espadrine joined #perl6
09:53 Ven "this is what we call type inference" i'm sorry - what?
09:55 FROGGS joined #perl6
09:55 donaldh joined #perl6
09:56 Ven m: subset Foo of Str where *.chars > 0; sub foo(Str){}; sub bar(){foo(5);}
09:56 camelia rakudo-moar a99a57: OUTPUT«5===SORRY!5=== Error while compiling /tmp/RM05gmA80H␤Calling 'foo' will never work with argument types (int)␤    Expected: :(Str $)␤at /tmp/RM05gmA80H:1␤------> 3 *.chars > 0; sub foo(Str){}; sub bar(){7⏏5foo(5);}␤»
09:56 Ven m: subset Foo of Str where *.chars > 0; sub foo(Foo){}; sub bar(){foo(5);}
09:56 camelia rakudo-moar a99a57: ( no output )
09:57 Ven *could it* be made to work? like, sure it can't assess the "where", but the subsetee might be
09:59 FROGGS o/
09:59 Ven \o FROGGS
09:59 jnthn Ven: Quite possibly could
10:00 jnthn Ven: The hard part is that *.chars isn't known to be pure, though...
10:00 Ven jnthn: why is that a problem? I'm just asking if it's possible to get a preliminary check on the Str part
10:00 Ven and check "where" at run-time
10:01 jnthn Ven: Oh...
10:01 jnthn Ven: Yes
10:01 jnthn I thought you meant checking the whole constraint at compile time :)
10:02 Ven I mean, I'd love to see that, but I havn't yet to see a good solution for that that doesn't involve dependent types or at least phantom ones...
10:02 Ven .oO( but it's perl6, you never know I guess )
10:02 raydiak good night #perl6
10:02 Ven gn raydiak !
10:04 jnthn 'night, raydiak
10:05 laouji joined #perl6
10:08 sqirrel_ joined #perl6
10:11 rindolf joined #perl6
10:11 nwc10 jnthn: do you know which commits in MoarVM/NQP or Rakudo relate to these new spectests? https://github.com/perl6/roast/commit/11c7d2280e73dab624f1bbb3313a81652d588a03
10:12 jnthn nwc10: https://github.com/MoarVM/MoarVM/commit/86d0c68e2eadc3ef6d0a7720264b900dc88ba141
10:15 esaym153 joined #perl6
10:17 * Ven notices that, sadly, the 5.22 video has missing sound
10:17 nwc10 Lee has just also noted that on #london.pm
10:17 nwc10 buy rjbs beer, and maybe he can dub a new sountrack
10:18 donaldh FROGGS: I got NativeCall working on ARM raspberry pi, but only by hacking dyncall to use ARM calling conventions instead of ARMHF.
10:18 nwc10 (but, important, probably not "buy and *ship* rjbs beer", if I understand Pennsylvania licensing)
10:18 nwc10 donaldh: is that an upstream bug?
10:19 jnthn From what I saw yesterday, it's a "we hardcode something we shunt in Moar" bug
10:19 nwc10 ah OK. That might be easier to fix :-/
10:19 jnthn donaldh: Please can you gist me the diff that gets it working?
10:19 donaldh FROGGS: It turns out that dcMode silently ignores unrecognised DC_CALL_ constants that are not compatible with the platform selected dyncall code.
10:20 donaldh Yes, it's a bug in dyncall.
10:20 jnthn Oh, dyncall bug? :(
10:20 jnthn Darn.
10:20 donaldh So far as I can tell, armhf backend in dyncall is broken.
10:20 FROGGS donaldh: that means we have to either probe for that, or look for the right flags for arm
10:20 jnthn Grrr. I'd thought it was just that we were telling dyncall to use the wrong convention.
10:20 FROGGS donaldh: which calling convention did work in the end?
10:21 FROGGS jnthn: well, I think we are
10:21 FROGGS jnthn: we are telling that it should use DC_CALL_C_X86_CDECL on arm, which is wrong
10:22 donaldh And unfortunately the dyncall code is hardcoded to select ARMHF based on gcc builtin #defines
10:23 FROGGS donaldh: so you hacked dyncall in the end?
10:23 FROGGS donaldh: can you gist the diff of dyncall and moarvm?
10:25 donaldh https://gist.github.com/donaldh/ebfb4351736ce9252409
10:26 infernal joined #perl6
10:29 donaldh FROGGS: as a separate issue, dcMode silently fails when passed a mode that is not compatible with the compiled in backend for the desired architectre
10:30 donaldh FROGGS: also, the docs say it is necessary to call dcReset after dcMode but I haven't checked if it makes any difference
10:31 donaldh every dyncall backend supports DC_CALL_C_DEFAULT and uses the appropriate default calling convention for the architecture
10:32 FROGGS ahh, interesting
10:32 donaldh Also DC_CALL_C_X86_CDECL is not actually implemented on x64 and is silently ignored :-)
10:33 FROGGS hehe
10:34 jnthn From get_calling_convention it seems our default is to pass DC_CALL_C_DEFAULT
10:36 donaldh if you were to call DCint dcGetError ( DCCallVM * vm ); after calling dcMode, you'd get DC_ERROR_UNSUPPORTED_MODE
10:37 donaldh Have a look at https://github.com/MoarVM/dyncall/blob/master/dyncall/dyncall_callvm_x64.c#L67 to see what actually works on X64
10:37 FROGGS donaldh: I guess we could put a probe (into build/probe.pm) that compiles a test lib with a function with enough params, and pick the one calling convention that works
10:38 FROGGS then we can put that into the generated config.c, and use that as a default in NativeCall
10:38 donaldh FROGGS: yes, but dyncall doesn't support choosing a better backend. Preprocessor macros choose a single backend which has limited modes.
10:39 donaldh Sure, we could reverse engineer which preprocessor macros to override, but that's not maintainable.
10:40 nwc10 if this is a significant bug, why are we the first project to hit it?
10:40 donaldh Or just patch dyncall to not select broken backends.
10:40 donaldh Well I hit it because I tried to call mmap/6 on raspberry pi. Bug manifests for args > 4
10:41 donaldh So it's not a significant bug. It only affects an unusual platform.
10:42 nwc10 I don't know the differences in the calling conventions (well enough) (because really I only know the OABI) but I assume that it's what happens after you've used up r0 to r3
10:42 nwc10 an "unusual" platform of over 5 million devices.
10:43 donaldh Unusual for dyncall ;-)
10:43 nwc10 but also, how many functions people try to dyncall have 5+ arguments?
10:43 arnsholt We had a visitor at some point that said that libffi is better than libdyncall
10:43 donaldh nwc10: have a look at https://github.com/MoarVM/dyncall/blob/master/dyncall/dyncall_call_arm32_arm_armhf.S  and https://github.com/MoarVM/dyncall/blob/master/dyncall/dyncall_callvm_arm32_arm_armhf.c to make your eyes bleed
10:43 arnsholt Wasn't clear to me how and why, though
10:43 arnsholt (Also, IIRC jnthn had trouble getting libffi working on Windows)
10:44 nwc10 I remember that too
10:44 nwc10 libffi seems to support a couple of the Unixes that dyncall doesn't (or didnt yet)
10:44 donaldh nwc10: armhf calling conventions is new to Raspberry PI 2. AFAIK hardfloat was not supported on PI 1
10:44 nwc10 IIRC AIX and HP/UX are a bit fun
10:44 nwc10 aaaaaaaah
10:44 nwc10 that's not 5 million :-)
10:45 nwc10 but hangon
10:45 nwc10 2 is intended to be 99.99% (or better) compatible
10:45 nwc10 the default distro for the Pi (1 and 2) is a rebuild of Debian's armhf, but for minimum spec ARMv6, not ARMv7
10:45 infernal joined #perl6
10:46 rindolf joined #perl6
10:47 smls joined #perl6
10:47 smls m: say
10:47 camelia rakudo-moar a99a57: OUTPUT«5===SORRY!5===␤No valid term seen where one is required␤at /tmp/dg63mxWSAg:1␤------> 3say7⏏5<EOL>␤    expecting any of:␤        argument list␤Other potential difficulties:␤    Unsupported use of bare 'say'; in Perl 6 please use .say…»
10:47 smls this error message used to be more awesome.
10:48 xinming joined #perl6
10:50 nwc10 donaldh: yes, for starters I don't understand all the uncontional flds instructions
10:51 dalek perl6-examples: 398c217 | paultcochrane++ | categories/99-problems/P06-ajscogo.pl:
10:51 dalek perl6-examples: [99-problems] add example from ajscogo
10:51 dalek perl6-examples:
10:51 dalek perl6-examples: The code here is a slightly modified version of that mentioned in PR #14
10:51 dalek perl6-examples: review: https://github.com/perl6/perl6-examples/commit/398c217cbc
10:51 dalek perl6-examples: 010600a | paultcochrane++ | categories/99-problems/P06-ajscogo.pl:
10:51 dalek perl6-examples: [99-problems] .elems unnecessary when performing math ops on an array
10:51 dalek perl6-examples: review: https://github.com/perl6/perl6-examples/commit/010600a898
10:51 dalek perl6-examples: fb44624 | paultcochrane++ | categories/99-problems/P06-ajscogo.pl:
10:51 dalek perl6-examples: [99-problems] use .end instead of computing its value
10:51 dalek perl6-examples: review: https://github.com/perl6/perl6-examples/commit/fb44624474
10:51 dalek perl6-examples: 6344083 | paultcochrane++ | categories/99-problems/P06-ajscogo.pl:
10:51 dalek perl6-examples: [99-problems] simplify single-element list check
10:51 dalek perl6-examples: review: https://github.com/perl6/perl6-examples/commit/63440837fc
10:52 El_Che perl devroom talks are coming in: http://video.fosdem.org/2015/devroom-perl/
10:52 El_Che a few without audio though :(
10:57 rindolf joined #perl6
10:58 alini joined #perl6
10:58 telex joined #perl6
10:58 kjs_ joined #perl6
10:59 virtualsue joined #perl6
11:13 kjs_ joined #perl6
11:35 FROGGS El_Che: well, I had heared (and seen) that the mic had low batteries at afternoon
11:48 aborazmeh joined #perl6
11:48 aborazmeh joined #perl6
11:49 DrForr_ Yeah, we tried to keep track and as I recall we had two units, but that probably didn't get the priority it should have.
11:51 smls Hm, why does p6doc's htmlify say "Initializing ...␤===SORRY!===␤Missing or wrong version of dependency 'src/gen/m-CORE.setting'"
11:52 smls my perl6 works fine for REPL and command-line use
11:52 tadzik sounds like you didn't update p6doc after updating rakudo
11:52 tadzik modules need to be recompiled after you do
11:54 smls how do i find out which module needs to be updated?
11:54 kjs_ joined #perl6
11:54 moritz locate '*.moarvm' # :(
11:54 moritz smls: normally I just do a  perl6-m rebootstrap.pl in panda
11:54 smls ok, I'll try that
11:54 infernal joined #perl6
11:55 tadzik if you use rakudobrew, updating rakudo automatically updates modules too
11:56 smls I do use rakudobrew, not sure what went wrong
11:56 tadzik huh
11:56 moritz if there are local precompiled modules, that won't help you
11:57 moritz git clean -xdf # sledge hammer solution for that one
12:02 smls Oh, it looks like "rakudobrew build moar" rebuilds Moar but then fails to rebuild installed modules because it somehow managed to cause merge conflicts in ~/.rakudobrew/moar-HEAD/panda/ext/
12:02 tadzik ahh
12:02 tadzik yeah :(
12:02 tadzik panda did that recently
12:02 tadzik git--
12:03 tadzik we moved from submodules to subtrees (?) and it confused git greatly
12:03 tadzik rakudobrew should probably cry about it louder
12:03 [particle] joined #perl6
12:09 [particle]1 joined #perl6
12:09 infernal joined #perl6
12:14 laouji joined #perl6
12:15 FROGGS rjbs: your talk only has partial audio :o( http://video.fosdem.org/2015/devroom-perl/
12:19 infernal joined #perl6
12:21 kjs_ joined #perl6
12:24 oetiker joined #perl6
12:28 infernal joined #perl6
12:29 sqirrel_ joined #perl6
12:34 spider-mario joined #perl6
12:36 infernal joined #perl6
12:43 Ven joined #perl6
12:45 anaeem1__ joined #perl6
12:46 oetiker joined #perl6
12:48 Ulti FROGGS I was just about to link that :)
12:51 infernal joined #perl6
12:52 oetiker joined #perl6
12:53 Possum joined #perl6
12:56 rjbs FROGGS: :'( - maybe I should re-record it! :-)
12:56 FROGGS rjbs: you have to... I missed your talk at the FOSDEM :o(
12:57 nwc10 rjbs: http://irclog.perlgeek.de/perl6/2015-03-04#i_10220612
12:57 rjbs FROGGS: I'll give it again in YAPC::NA and probably OSCON.
12:57 rjbs nwc10: Oh, hold out for beer?  Wise...
13:02 El_Che rjbs: your fosdem talk is online: http://video.fosdem.org/2015/devroom-perl/perl5_22_things_to_come.mp4
13:03 El_Che I meant "FROGGS, rjbs' talk is online" :)
13:11 rjbs El_Che: The thing is that apparently it's missing a ton of audio.
13:12 El_Che yours as well?
13:12 El_Che damn
13:21 timotimo hm, it looks like modules_ecosystem_perl6.mp4modules_ecosystem_perl6.mp4 is missing a bit from the beginning
13:27 DrForr_ All I can say for my part is I remember keeping half an eye on the mic levels from the camera which were picking up off the wireless mic.
13:34 laouji joined #perl6
13:36 anaeem1 joined #perl6
13:37 cognominal joined #perl6
13:39 anaeem1_ joined #perl6
13:41 viyyozio joined #perl6
13:42 kjs_ joined #perl6
13:48 _mg_ joined #perl6
13:54 raiph joined #perl6
13:55 anaeem1 joined #perl6
13:57 dalek Heuristic branch merge: pushed 27 commits to rakudo/newio by lizmat
13:57 rindolf joined #perl6
14:07 viyyozio where is the open function implemented in the source?
14:08 timotimo src/core/io_operators.pm has it
14:08 timotimo but it just delegates to IO::Handle's open method
14:09 * [Coke] grumbles again that ack2 -a is a failure, not a warning.
14:09 timotimo which you find in src/IO/Handle.pm i believe
14:09 lizmat which is different in the newio branch
14:10 viyyozio which is the futurable io branch? newio or master ?
14:10 lizmat newio
14:10 viyyozio thanks
14:10 anaeem1 joined #perl6
14:11 timotimo our "master" branch is actually called nom (for hysterical raisins)
14:15 nine_ jnthn: checking out MoarVM master and doing make && make install should be enough to get your fix?
14:16 jnthn nine_: I also bumped MOAR_REVISION and NQP_REVISION
14:16 jnthn nine_: But yeah, you can do what you suggested also
14:17 jnthn nine_: But everyone grabbing latest should now have the hopeful fix.
14:17 nine_ jnthn: then I'm sorry to report that I still geht the error in Inline::Per5 :(
14:17 jnthn :(
14:17 viyyozio what is the role of npq::open and IO::Handle.new ? is npq opening the file and IO::Handle wrapping the abstraction?
14:18 lizmat viyyozio: it's a mess that I'm trying to clean up in the newio branch
14:19 lizmat nqp::open returns a stream (PIO object)
14:19 lizmat that is wrapped in IO::handle
14:19 lizmat in the newio branch, it's actually wrapped in the PIO role
14:19 brrt joined #perl6
14:19 jnthn The thing nqp::open hands back is the VM-level IO handle
14:21 jnthn nine_: Strange. I'm not really seeing other places in there it could go wrong...
14:23 jnthn nine_: I wonder if https://gist.github.com/jnthn/ef0af70a206b38f9d9e6 might help...
14:24 [Coke] geekosaur++ # macports help.
14:24 * [Coke] will try to get nqp working with subports tonight.
14:28 muraiki joined #perl6
14:29 * [Coke] is kind of bummed that we have to depend on perl5 to ship perl6.
14:29 [Coke] (but not enough to rewrite our entire config system!)
14:29 TimToady what, siblings should hate each other?
14:30 timotimo at some point the younger sibling ought to leave the cozy nest that the older sibling has made for them
14:31 lizmat [Coke]: this was discussed at length at the APW 2014
14:31 lizmat I think writing our tool chain in nqp was considered a way forward
14:31 lizmat nwc10 jnthn  might recall better
14:32 Sysaxed joined #perl6
14:32 timotimo yeah, because we can ship a stage0 nqp and a bootstrapped static moar binary to run the config system to build moar
14:32 timotimo and from then on we have a proper moar and a stage0 nqp (that the nqp repo ships with anyway) and config nqp with that
14:32 jnthn Yeah, though I think we also felt it wasn't a priority in the near term overall :)
14:32 timotimo and then we can config rakudo with the properly built nqp
14:33 jnthn But yes, the stage0 NQP we already ship is good enough to do a lot ;)
14:33 donaldh some of it has already been ported to nqp. e.g. gen-cat.nqp
14:33 jnthn Aye
14:33 skids joined #perl6
14:34 Sysaxed oh, so there are some perl6 talks up but no Larry yet?
14:34 timotimo ohai donaldh :)
14:34 Sysaxed I mean fosdem videos
14:34 DrForr_ No keynotes up at all yet.
14:35 Sysaxed :(
14:35 donaldh hi o/
14:37 nwc10 I don't remember any specific discussions at APW2014 about it, but that might just mean that I don't remember any new insights
14:37 nwc10 but also, it's not something needed to get to Christmas
14:38 nwc10 and thirdly, my experiments with building fakecutables suggests that we need a better plan on how to share build toolchain between NQP and Rakudo
14:38 * lizmat was about to change all $int = $int + 1 to $int++
14:39 lizmat but did some benchmarks and found $int++ is about 10 times slower than $int = $int + 1
14:39 timotimo lizmat: see what i quoted by jnthn just now in #moarvm
14:39 TimToady lizmat: what about ++$int?
14:39 nwc10 lizmat++ # benchmarking first before changing code
14:39 nwc10 a wise head
14:40 lizmat TimToady: about 5x as slow
14:41 anaeem1_ joined #perl6
14:41 TimToady after all, ++$int is a more correct translation of $i = $i + 1 in any case
14:42 TimToady unless you rely on $i++ optimizing to ++$i in sink context
14:45 [Coke] moar s17 tests seem to fail under high load.
14:45 jnthn Aye, though please don't create performance memes around differences that are likely to vanish in the near future :)
14:45 [Coke] S17-procasync/basic.t, S17-procasync/print.t, S17-supply/watch_path.t
14:45 lizmat jnthn: so you're saying I should do it nonetheless, to put the pressure on ?  :-)
14:45 TimToady quick, merge newio
14:45 jnthn lizmat: haha :)
14:46 lizmat .oO( pressure nudge received :-)
14:47 jnthn lizmat: Not really, just wanted to make sure those reading backlog don't remember "avoid ++, it's slow" as a performance guideline :)
14:48 * nine_ will never ever use ++ again, cause it's obviously slower than my $j = $i + 1; $i = $j;
14:48 nine_ or so I heard
14:48 jnthn ('cus by the time of the 2015.03 release I suspect the two will be about the same)
14:48 adu joined #perl6
14:49 lizmat and after that $int++ should be faster cause it will jit to a single machine op or so?
14:49 lizmat .oO( one can dream )
14:51 colomon nine_: what you really need to do is $i = $i +& 1 ?? $i + 1 !! $i +| 1
14:51 colomon ;)
14:51 jnthn lizmat: I suspect the code that makes that happen will also turn $i = $i + 1 into the single machine op too.
14:55 donaldh hmm, nqp test 86-pipes.t is testing each backend for the behaviour they have, not for the behaviour they should have.
14:58 rmgk joined #perl6
14:59 dalek roast/newio: 89b30a8 | TimToady++ | S17-procasync/basic.t:
14:59 dalek roast/newio: conjecture that test is no longer flapping
14:59 dalek roast/newio: review: https://github.com/perl6/roast/commit/89b30a8dc7
14:59 dalek roast/newio: b76efe4 | usev6++ | S12-class/basic.t:
14:59 dalek roast/newio: Unfudge test for RT #67784
14:59 synopsebot Link: https://rt.perl.org/rt3//Public/Bug/Display.html?id=67784
14:59 lizmat sorry dalek
15:00 dalek joined #perl6
15:00 dalek nqp: 4602aa5 | donaldh++ | / (2 files):
15:00 dalek nqp: Update openpipe to inherit parent's STDERR on JVM.
15:00 dalek nqp:
15:00 dalek nqp: This fixes RT #104794. Also updated test eliminate JVM special case.
15:00 dalek nqp: review: https://github.com/perl6/nqp/commit/4602aa52cb
15:00 synopsebot Link: https://rt.perl.org/rt3//Public/Bug/Display.html?id=104794
15:00 jnthn donaldh++
15:00 dalek joined #perl6
15:01 donaldh I left the parrot special case test, and it's presumably still broken on parrot.
15:03 rindolf joined #perl6
15:13 nine_ jnthn: I lost the ability to debug this :/ I cannot find a version of rakudo/nqp/moar that provokes the bug anymore with Inline::Perl5. I will try your fixes at home where Inline::Python fails
15:13 jnthn nine_: OK, thanks.
15:18 Kristien joined #perl6
15:23 anaeem1 joined #perl6
15:25 anaeem1 joined #perl6
15:26 dustinm` joined #perl6
15:27 dalek doc: a0a9f45 | smls++ | lib/Language/5to6.pod:
15:27 dalek doc: 5to6: Refactor array/hash subscripting related info
15:27 dalek doc: review: https://github.com/perl6/doc/commit/a0a9f45d21
15:32 dalek doc: c70ef8a | smls++ | lib/Language/5to6.pod:
15:32 dalek doc: fix link
15:32 dalek doc: review: https://github.com/perl6/doc/commit/c70ef8a1a3
15:35 Kristien joined #perl6
15:46 dalek rakudo/newio: 2dda3b9 | lizmat++ | src/core/IO.pm:
15:46 dalek rakudo/newio: Better handle broken symlinks in dir()
15:46 dalek rakudo/newio: review: https://github.com/rakudo/rakudo/commit/2dda3b976a
15:46 dalek rakudo/newio: 81f2091 | lizmat++ | src/core/IOU.pm:
15:46 dalek rakudo/newio: Get IOU.gist in line with IO::Pathy.gist
15:46 dalek rakudo/newio: review: https://github.com/rakudo/rakudo/commit/81f209101f
15:48 jnthn IOU...so pun :P
15:49 anaeem1 joined #perl6
15:50 * smls doesn't really like non-obvious abbreviations in built-in identifiers, even when cute
15:50 dalek rakudo/newio: 7f1dd72 | lizmat++ | src/core/IO.pm:
15:50 dalek rakudo/newio: Make dir(:Str) handle broken symlinks
15:50 dalek rakudo/newio: review: https://github.com/rakudo/rakudo/commit/7f1dd72f94
15:50 * jnthn isn't sure how visible that type actually is :)
15:50 lizmat not really, if you just use .IO
15:51 lizmat it's mostly to prevent many methods form having to check attributes over and over again by putting .IO objects in separate classes
15:51 lizmat which will all .gist and .perl to .IO
15:51 lizmat *from
15:52 smls If people don't need to write it out often, what would be the harm in giving it a longer name?
15:52 smls So people don't get confused when they *do* see it.
15:53 lizmat something like IO::DoesNotExist ?
15:54 smls If I had first seen "IOU" out of context (say in an error message), I wouldn't even have associated it with "IO".
15:54 rindolf joined #perl6
15:54 smls IO::Unknown ?
15:54 lizmat it's not unknown
15:54 jnthn And it may exist :)
15:54 lizmat it's known to not exist
15:54 jnthn Oh
15:55 lizmat like "foo".IO.open(:w) and the file doesn't exist
15:55 jnthn IO::Nonexistent :)
15:55 laouji joined #perl6
15:55 smls IO::NonExisting
15:55 smls jnthn's is better
15:56 jnthn And yeah, the name made me guess wrongly what it's for
15:56 jnthn I read it as "I owe you" and thought it was soemthing that could, if needed, give you an IO object :P
15:57 lizmat well, it does that too
15:57 lizmat and if it can find one, it will return that
15:57 lizmat .IO basically maps to IOU.new()
15:57 jnthn Oh...but...that doesn't mean it doesn't exist?
15:57 donaldh undefined
15:57 jnthn "a-file-that-exists".IO should really not map to IO::Nonexistent :)
15:58 lizmat if it can't find it, it will return you an actual IOU object
15:58 lizmat and it doesn't
15:58 jnthn And if it can find it?
15:58 lizmat "existsing_file".IO maps to IO>>File
15:58 lizmat IO::File
15:58 jnthn Ah
15:59 lizmat "existing_dir".IO maps to IO::Dir
15:59 jnthn OK, so it does mean not existing at the time we asked the question
15:59 smls why can't the IO constructor do this itself?
15:59 timotimo what do DBM modules have to do?
16:00 lizmat smls: because it lives in Cool, and Cool doesn't know about IO
16:01 smls but it knows about
16:01 smls but it knows about IOU?
16:02 lizmat yeah
16:02 smls because IO is a role?
16:04 anaeem1_ joined #perl6
16:04 lizmat well, yeah, but only for smartmatching, really
16:07 anaeem1 joined #perl6
16:08 * smls gets the feeling that this part of newio is more of a product of circumstantial constraints, rather than the kind of elegant design that "seems obvious" once you see it... :(
16:08 smls Not blaming lizmat for that; maybe ther *is* no really elegant solution...
16:08 nine_ Really, IO is _hard_
16:10 smls s/elegant/elegant and at the same time practical/
16:10 laouji joined #perl6
16:14 jnthn Separating different things out by type is fairly consistent Perl 6 approach to things
16:14 jnthn And coercions are allowed to produce an appropriate subtype
16:15 jnthn So .IO producing an appropriate thing that does the IO role feels fairly natural to me.
16:17 smls But having a generic type (IO) delegate construction/coercion to the constructor/corercer of a specific type (IOU) which may in turn create instances of what are essentially its "sibling types" (IO::File), seems strange
16:18 lizmat smls: suggestions for improvement are welcome
16:18 smls I leave that to you smart people :P
16:19 jnthn I suspect this may get cleaner if we get .TypeNameHere coercion stuff working better
16:22 b2gills TimToady: I think that perhaps the reduction that should be suggested for JortSort is [!after] ( possibly in addition to [<=] and [le] )
16:24 PerlJam smls: smart people make strange things  :)
16:30 mr-foobar joined #perl6
16:31 nine_ m: multi foo(Int $foo where * > 0) { say "> 0"; nextsame; }; multi foo(Int $foo where * < 10) { say "< 10"; nextsame; }; multi foo($foo) { say "generic"; }; foo(1);
16:31 camelia rakudo-moar a99a57: OUTPUT«(timeout)> 0␤< 10␤< 10␤< 10␤< 10␤< 10␤< 10␤< 10␤< 10␤< 10␤< 10␤< 10␤< 10␤< 10␤< 10␤< 10␤< 10␤< 10␤< 10␤< 10␤< 10␤< 10␤< 10␤< 10␤< 10␤< 10␤< 10␤< 10␤< 10␤< 10␤< 10␤< 10␤< 10␤< 10␤< 10␤< 1…»
16:31 nine_ ^^^ bug?
16:33 smls jnthn: Is ".TypeNameHere" supposed to be special syntax, rather than a method call?
16:34 jnthn smls: I've not really got a clear answer on that :(
16:35 jnthn TimToady has mentioned some kind of fallback mechanism there, but it's not clear to me if that should be done by compiling it differently, or as some more dynamic failover.
16:35 smls A while ago TimToady said that custom classes should implement `invoke` to get that functionality, but all the built-in ones doe it by having a method in Any
16:35 jnthn Yeah, but question is how we come to do that invoke
16:36 smls ...and whether the built-in ones should make use of that mechanism, for consistency (and possibly easier documentation)
16:37 smls Also, I wonder if syntax highlighters should highlight the "Int" in "$number.Int" like a routine or like a typename.
16:39 dalek rakudo/newio: 0999eb3 | lizmat++ | src/core/ (7 files):
16:39 dalek rakudo/newio: Delegate .IO object creation to a helper sub
16:39 dalek rakudo/newio:
16:39 dalek rakudo/newio: Instead of abusing IOU.new for that.
16:39 dalek rakudo/newio: review: https://github.com/rakudo/rakudo/commit/0999eb3c0c
16:44 b2gills coerce has been previously discussed on #perl6 : http://irclog.perlgeek.de/perl6/2015-01-23#i_9992284 with talk about `multi COERCE ...` starting at http://irclog.perlgeek.de/perl6/2015-01-23#i_9992547
16:44 smls .tell moritz re preceding backlog: Should we document coercers special-y in p6doc? I.e. on the type pages of the types they coerce *to*, rather than on Any's type page?
16:44 yoleaux smls: I'll pass your message to moritz.
16:45 TimToady b2gills: I thought about [!after], but decided clarity was better served by [<=>
16:45 TimToady er [<=]
16:45 b2gills jnthn: how well would Rakudo on Moar handle dozens to several hundred `multi sub COERCE (...){...}` ?
16:47 TimToady the current design allows Int($x) to mean something different from ($x).Int, which is currently construed as a feature
16:47 hoelzro b2gills: I've also implemented COERCE in a branch
16:47 jnthn b2gills: Depends how many of them you ever actually call
16:48 b2gills hoelzro: I didn't find it when looking through the archives. ( but then I didn't spend that long looking either )
16:48 TimToady the current design also doesn't require importing a bunch of multis
16:48 jnthn TimToady: Is $x.TypeName considered syntactic in some sense?
16:48 hoelzro b2gills: I mentioned it a few times, but it was probably later
16:48 TimToady we've considered that in the past, and could still decide that if we wanted to
16:49 hoelzro I'm sure you'd come across it if you just looked for COERCE + my name
16:49 jnthn TimToady: I'm mostly considering how it interacts with other fallback mechanisms, and our ability to continue quickly answering "no, that method doesn't exist"
16:49 TimToady currently you can do $x."$sometype"
16:50 jnthn Yeah, that would umambiguously mean method call if we make $x.SomeType syntactic.
16:50 TimToady $sometype() also works under 'invoke'
16:50 jnthn Right
16:51 jnthn I'm still ever so slighlty bothered about the invoke approach.
16:51 jnthn Because if you end up writing a type you want to be invokable, you find it doing odd things on coercion
16:51 TimToady I guess the question is whether a mutual fallback can 1) prevent mutual recursion and 2) be implemented efficiently
16:51 jnthn And if you write an invoke for coercions you find out your object is invokable
16:52 jnthn And you might want both :)
16:52 smls jnthn: gotta remember to only define the coercion-invoke for the type object (:U)
16:52 jnthn Which is of course possible with a multi...
16:52 TimToady well, but this invoke is only on :U
16:52 jnthn smls: Yes, I know you *can* distinguish them, I'm saying for such a common thing is it friendly to make people need to :)
16:52 * hoelzro .oO( of coerce? )
16:53 TimToady how many people define invokables?  I suppose we could call the coercion something other than .invoke
16:53 jnthn It's not that common
16:54 TimToady method INCOMING
16:54 jnthn multi method coerce(Str $s) { ... }  # not too bad
16:55 jnthn But yeah, the fallback thing gets...odd.
16:55 jnthn If we try and do it in both directions, I mean.
16:55 b2gills I think Perl 6 should allow coercing from two objects that don't know anything about each other ( so allow coercions outside of the objects )
16:55 jnthn So we probably have to pick one as primary and one as fallback-based
16:56 TimToady b2gills: that means multi-stage coercion, which is probably evil
16:56 b2gills not if it is a single large multi sub
16:56 TimToady jnthn: well, either way that means monkey patching
16:56 b2gills s/large/large set of/
16:57 TimToady b2gills: why not just write your own routine then?
16:57 TimToady does it really want to use the coercion syntax?  <shrugs>
16:58 b2gills I like that almost no part of Perl 6 is any more special than any other part
16:58 PerlJam b2gills: "single large set of multi subs" does *not* sound like a good thing
16:58 jnthn TimToady: I see the method approach as "I know how to turn myself into X", which is probably useful for core types, and the Foo(...) approach as "I want to specify how a thingy can turn into me"
16:59 TimToady we could in either case install a backup in a global coerce, rather than falling back to the other end
16:59 TimToady but the primary would not need the large multi
16:59 jnthn TimToady: The only time you'd need monkey patching would be if you wanted to specify a coercion neither side thought of, I guess...
16:59 jnthn And yea, a gobal COERCE fallback could handle that.
17:00 TimToady which is b2gills's arguemnt
17:00 jnthn *nod*
17:00 TimToady which I half buy :)
17:00 TimToady I'm okay with that approach if 1) we don't lose coercions through visibility, and 2) it can be efficient
17:01 b2gills actually its  hoelzro's argument from January
17:01 TimToady but it sounds kinda megamorphic
17:01 lizmat jnthn: IO::NonExistent or IO::Nonexistent ?
17:01 TimToady nod, hoelzro++
17:01 jnthn lizmat: nonexistent is one word, afaik...
17:01 TimToady IO::NotThere
17:02 jnthn TimToady: Yes, it is megamorphic, which is why I'm comfortable with it as a fallback but reluctant to have it as primary.
17:02 b2gills IO::Bogus (joke)
17:02 jnthn IO::Noes
17:02 skids IOOOPS :-)
17:02 lizmat non-existent is in my dictionary, nonexistent is not
17:02 TimToady IO::ThereItWas-GoneCompletely
17:02 lizmat very funny
17:03 adu joined #perl6
17:03 * TimToady is nonplussed
17:03 * lizmat decides to stick to IOU
17:03 lizmat at least until I have a better idea
17:03 TimToady EIEIO
17:03 geekosaur IO::Here-Today-Gone-TomIOrow
17:03 TimToady Existence Is Existential IO
17:04 PerlJam IOU sounds like a Promise to me :)
17:04 jnthn .oO( IO::RaceCondition /o\ )
17:04 TimToady me2
17:04 jnthn I like IO::NotThere or IO::Nonexistent best so far.
17:04 PerlJam aye, me too
17:04 TimToady IO::NotThereLastIChecked
17:04 jnthn TimToady: Precise, but long. :)
17:04 PerlJam IO::WAT
17:05 b2gills one thing I don't like about file-systems is that it is full of race conditions
17:05 raiph joined #perl6
17:05 donaldh IO::DontKnow
17:05 TimToady IO::ProllyNot
17:05 donaldh IO::Heisenberg
17:05 TimToady IO::Defiled
17:06 jnthn b2gills: Do you have a file I can read to learn about that? Oh...wait...
17:06 TimToady introspection is a filesystem smell
17:06 b2gills I did but I unmounted that partition
17:06 donaldh IO::Schrodinger
17:06 TimToady cat that file!
17:07 TimToady tail -f shoulda been called 'dog'
17:07 TimToady do we have a :a open that guarantees seek on systems that can do that?
17:08 lizmat hope that nqp::open does that, as the :a is passed on there
17:08 b2gills .oO( perhaps Edlin should have been called mouse )
17:08 TimToady cf http://rosettacode.org/wiki/Append_a_record_to_the_end_of_a_text_file
17:08 lizmat my $mode := ($rw || $w) ?? 'w' !! ($a ?? 'wa' !! 'r' );
17:09 lizmat I assume nqp::open knows what to do with "wa", jnthn ?
17:09 TimToady we need a :wah option
17:09 donaldh we suuport :r :w :wa
17:09 PerlJam as long as we can have more than one :wah
17:09 geekosaur :wat
17:09 TimToady text mode?
17:09 * lizmat checks the oxygen supply
17:09 TimToady no we should use that for binary :)
17:11 donaldh unfort we don't support :rw which would be nice for mmap
17:11 dalek rakudo/newio: 3871ffe | lizmat++ | src/core/IO (2 files):
17:11 dalek rakudo/newio: Make it IO::Huh
17:11 dalek rakudo/newio:
17:11 dalek rakudo/newio: At least until the bikeshedding stops
17:11 dalek rakudo/newio: review: https://github.com/rakudo/rakudo/commit/3871ffe7b5
17:11 donaldh :)
17:11 PerlJam lizmat++
17:13 jnthn lizmat: I...hope so :)
17:14 jnthn lizmat: On moar it knows about r, w, and wa
17:15 laouji joined #perl6
17:19 kjs_ joined #perl6
17:19 dalek roast/newio: 03118e6 | lizmat++ | S02-types/WHICH.t:
17:19 dalek roast/newio: IOU is now IO::Huh
17:19 dalek roast/newio: review: https://github.com/perl6/roast/commit/03118e6d60
17:19 b2gills another problem with file-systems is that they may have two files that have the same name "resum\x00E9", "resum\x0065\x0301" because they don't actually know anything about Unicode see: https://en.wikipedia.org/wiki/Unicode_equivalence#Errors_due_to_normalization_differences
17:21 b2gills which means there may have to be some compatibly code written if Rakudo is ported to such a system, especially after NFG
17:24 TimToady probably need to distinguish buf filenames from str
17:25 _mg_ joined #perl6
17:27 moritz \o
17:27 yoleaux 16:44Z <smls> moritz: re preceding backlog: Should we document coercers special-y in p6doc? I.e. on the type pages of the types they coerce *to*, rather than on Any's type page?
17:27 nwc10 o/
17:27 moritz .tell smls ideally on both, and ideally automatically inserted in one place
17:27 yoleaux moritz: I'll pass your message to smls.
17:28 dalek nqp: 54d3cf5 | donaldh++ | src/vm/jvm/QAST/Compiler.nqp:
17:28 dalek nqp: Don't run CallFrame.leave twice when phasers throw - on JVM
17:28 dalek nqp:
17:28 dalek nqp: Fixes RT #121935
17:28 dalek nqp: review: https://github.com/perl6/nqp/commit/54d3cf5d14
17:28 synopsebot Link: https://rt.perl.org/rt3//Public/Bug/Display.html?id=121935
17:29 dalek rakudo/nom: 316da1c | TimToady++ | src/Perl6/Grammar.nqp:
17:29 dalek rakudo/nom: better guess at missing vs malformed arg
17:29 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/316da1c430
17:29 dalek roast: 44954ad | TimToady++ | S03-operators/set.t:
17:29 dalek roast: missing arg message updates
17:29 dalek roast: review: https://github.com/perl6/roast/commit/44954ada25
17:32 dalek rakudo/newio: 4a23ce1 | lizmat++ | / (5 files):
17:32 dalek rakudo/newio: Final changes for IOU -> IO::Huh change
17:32 dalek rakudo/newio: review: https://github.com/rakudo/rakudo/commit/4a23ce1867
17:32 diana_olhovik joined #perl6
17:33 moritz IO::Huh?
17:33 * moritz didn't backlog
17:33 * lizmat got fed up with hilarious bikeshedding
17:34 moritz very understandable
17:34 timotimo i'm glad lizmat has the last laugh on this one :)
17:34 timotimo ... for now
17:35 b2gills I'm fairly sure that some obscure file-system that Rakudo gets ported to is going to ultimately have the last laugh
17:35 dalek doc: 7e1e631 | moritz++ | lib/Type/Cool.pod:
17:35 dalek doc: Cool: lines, roots
17:35 dalek doc: review: https://github.com/perl6/doc/commit/7e1e631e66
17:35 dalek doc: 1de8ac1 | moritz++ | lib/Type/Cool.pod:
17:35 dalek doc: Cool.truncate
17:35 dalek doc: review: https://github.com/perl6/doc/commit/1de8ac1c93
17:35 dalek doc: 765be8f | moritz++ | lib/Type/Cool.pod:
17:35 dalek doc: Cool.comb
17:35 dalek doc: review: https://github.com/perl6/doc/commit/765be8f823
17:36 dalek rakudo/nom: 86242c8 | lizmat++ | src/core/IO (2 files):
17:36 dalek rakudo/nom: Move IOU to IO::Huh to make life easier
17:36 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/86242c8b53
17:36 dalek rakudo/nom: 30df1a3 | lizmat++ | tools/build/ (2 files):
17:36 dalek rakudo/nom: Make life easier again
17:36 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/30df1a3f0a
17:36 Kristien joined #perl6
17:40 mohij joined #perl6
17:40 dalek rakudo/newio: 316da1c | TimToady++ | src/Perl6/Grammar.nqp:
17:40 dalek rakudo/newio: better guess at missing vs malformed arg
17:40 dalek rakudo/newio: review: https://github.com/rakudo/rakudo/commit/316da1c430
17:40 dalek rakudo/newio: 86242c8 | lizmat++ | src/core/IO (2 files):
17:40 dalek rakudo/newio: Move IOU to IO::Huh to make life easier
17:40 dalek rakudo/newio: review: https://github.com/rakudo/rakudo/commit/86242c8b53
17:40 dalek rakudo/newio: 30df1a3 | lizmat++ | tools/build/ (2 files):
17:40 dalek rakudo/newio: Make life easier again
17:40 dalek rakudo/newio: review: https://github.com/rakudo/rakudo/commit/30df1a3f0a
17:40 dalek rakudo/newio: f048675 | lizmat++ | src/Perl6/Grammar.nqp:
17:40 dalek rakudo/newio: Merge branch 'nom' into newio
17:40 dalek rakudo/newio: review: https://github.com/rakudo/rakudo/commit/f048675a0f
17:41 b2gills I think that IO::Huh is a name that most programmers wouldn't use (directly), which is a good thing in this circumstance, as it helps prevent them from hard-coding the wrong thing.
17:42 TimToady .oO(had unfortunate happenstance)
17:44 telex joined #perl6
17:47 jnthn .oO( here's ur heisenfile )
17:47 jnthn lizmat++ # actually getting stuff done :)
17:49 Kristien hi
17:51 mohij o/
17:56 skids Now we just need a backronym for Huh.  :-)
17:59 alini joined #perl6
18:01 PerlJam I thought we just got 2 of them?
18:04 timotimo can we do var args?
18:04 timotimo in nativecall, i mean
18:06 brrt joined #perl6
18:06 timotimo i know dyncall can handle it
18:10 raiph joined #perl6
18:12 [Sno] joined #perl6
18:15 rurban joined #perl6
18:16 TimToady .oO(handle underplays hurt)
18:16 TimToady .oO(hurt underlays handle)
18:17 TimToady .oO(happy until hacked)
18:17 * TimToady should stop perseverating...
18:25 mohij TimToady: Do you have any other ideas what I could do? To solve my backtracking problem? I'm ok with this being impossible, but I'd like to know so I can stop bugging. ;-)
18:26 jnthn timotimo: Not sure we implemented that
18:26 virtualsue joined #perl6
18:26 timotimo well, i have a use case for it now :)
18:26 [Coke] m: package Perl5:Perl6::Java:C# ovid analogy
18:26 camelia rakudo-moar 30df1a: OUTPUT«5===SORRY!5=== Error while compiling /tmp/CwYHKntyyS␤Unable to parse package definition␤at /tmp/CwYHKntyyS:1␤------> 3package Perl5:Perl6:7⏏5:Java:C# ovid analogy␤    expecting any of:␤        colon pair␤»
18:29 gfldex joined #perl6
18:32 Rounin joined #perl6
18:35 virtualsue joined #perl6
18:36 jdv79 moritz: http://doc.perl6.org/routine/parse - is that cool or not?  i'm a little unsure with how these docs work.
18:38 jnthn That looks a little funky to me...
18:42 virtualsue_ joined #perl6
18:43 jdv79 i thought i'd try my hand at helping with docs and that's the first major wt.. thing i tripped on.
18:45 jdv79 i'm a little confused about the overall org of the docs too.  but i'm about to head out to lunch.
18:47 timotimo well, we can set the call convention and dyncall knows DC_CALL_C_ELLIPSIS and DC_CALL_C_ELLIPSIS_VARARGS
19:00 pullphinger joined #perl6
19:07 pyrimidine lizmat++ # IO::Huh and not bikeshedding :)
19:11 FROGGS joined #perl6
19:12 Kristien joined #perl6
19:16 spider-mario joined #perl6
19:21 virtualsue joined #perl6
19:23 larion joined #perl6
19:31 moritz jdv79: there seems to be duplicate docs for Grammar, one in lib/Type/Grammar.pm, one in lib/Language/grammars.pod
19:31 moritz jdv79: IMHO the former is the proper location
19:31 moritz jdv79: unifying the docs would be very welcome
19:35 moritz jdv79: I've created https://github.com/perl6/doc/issues/58 for that
19:44 _mg_ joined #perl6
19:49 nwc10 jnthn: we seem to be missing some more basic tests for sized ints. In that, this is on PPC:
19:49 FROGGS tadzik: https://github.com/tadzik/perl6-MPD/pull/1
19:49 nwc10 $ ./perl6-m -Ilib -e 'my int $i = 3; say $i'
19:49 nwc10 3
19:49 nwc10 $ ./perl6-m -Ilib -e 'my int16  $i = 3; say $i'
19:49 nwc10 0
19:49 * nwc10 can't find a spectest failing because of *that*
19:49 nwc10 the spectest that fails is for a bound alias to it
19:49 timotimo i don't think we do sized ints ... at all yet?
19:50 tadzik FROGGS: thanks :)
19:50 timotimo except for CStruct members
19:50 nwc10 timotimo: you're so last week :-)
19:50 nwc10 https://github.com/perl6/roast/commit/11c7d2280e73dab624f1bbb3313a81652d588a03
19:51 timotimo oh
19:51 timotimo neato
19:51 nwc10 m: my int16 $i = 3; my $a; $a := $i; ++$a; say $i
19:51 camelia rakudo-moar 30df1a: OUTPUT«4␤»
19:51 nwc10 that's the test
19:51 nwc10 on PPC, $i is read as 0
19:52 nwc10 the "have" output is 1, not 4
19:52 nwc10 and it is explained by the read from $i being 0
19:52 nwc10 what this suggests is that the write is to the first 2 bytes of the 8 byte union
19:52 nwc10 but the read is either the last 2 bytes
19:52 nwc10 er, wait
19:52 nwc10 it would be a write of 64 bits
19:53 nwc10 and a read of 16
19:53 nwc10 but I have only proven this correct, not tested it. Sort of. :-)
19:53 FROGGS ahh, but yeah, would explain it perfectly
19:53 nwc10 it's my working hypothesis. I'm just too knackered to investigate
19:55 skids timotimo: the most workingest sized ints currently are members of bufs.
19:57 TimToady b2gills: since the task is now explicitly one of satire, I've upgraded the task to specifically disrecomment [!after]  :)
19:57 TimToady *mend
19:58 skids m: buf32.new(-2)[0].say # wonder what that says on PPC
19:58 camelia rakudo-moar 30df1a: OUTPUT«4294967294␤»
19:59 nwc10 4294967294
19:59 TimToady http://rosettacode.org/wiki/JortSort#Perl_6 if you're following along at home
19:59 skids m: my int16 $i = 0x1234; my $a; $a := $i; ++$a; say $i.base(16) # or that
19:59 camelia rakudo-moar 30df1a: OUTPUT«1235␤»
20:00 TimToady m: my int16 $i = 0x1234; my $a; $a := $i; ++$a; say $i.base(16,40)  # moar precision
20:00 camelia rakudo-moar 30df1a: OUTPUT«1235.0000000000000000000000000000000000000000␤»
20:06 nwc10 jnthn: this code: $ ./perl6-m -Ilib -e 'my int16  $i = 3; say $i'
20:06 nwc10 0
20:06 dalek perl6-examples: ba845d4 | paultcochrane++ | htmlify.pl:
20:06 dalek perl6-examples: Extract source code reference pod into own routine
20:06 dalek perl6-examples: review: https://github.com/perl6/perl6-examples/commit/ba845d4845
20:06 dalek perl6-examples: 106af96 | paultcochrane++ | htmlify.pl:
20:06 dalek perl6-examples: Extract title info if we have pod in the file
20:06 b2gills I generally prefer to provide some insight into how the code works when posting Perl 6 code to places where non-Perl people congregate
20:07 dalek joined #perl6
20:07 nwc10 jnthn: that code doesn't write the value of $i using  MVM_nativeref_write_reg_or_lex_i
20:07 b2gills but in that instance, maybe it's better to let onlookers try to figure it out themselves
20:08 nwc10 jnthn: I have fprintf()s in it, and it's not hit. The subsequent ++ on the aliased version *does* use it
20:10 nwc10 also, this variation doesn't write using MVM_nativeref_write_reg_or_lex_i
20:10 nwc10 $ ./perl6-m -Ilib -e 'my int16  $i; $i = 3; say $i'
20:10 nwc10 0
20:10 nwc10 it's only ++ and --
20:10 espadrine joined #perl6
20:11 nwc10 so, that's the immediate cause of the spectest failure on big endian
20:11 nwc10 but I don't know why the codegen doesn't go through the right place
20:11 nwc10 [ptc]: are you being cruel to dalek? :-)
20:12 skids poor dalek.  Blame yoleaux for eating all the botsnacks.
20:14 kjs_ joined #perl6
20:23 jnthn nwc10: Sized native lexicals didn't get much love in general yet, to be honest, so I'm not so surprised they're like Swiss cheese...
20:24 swarring joined #perl6
20:24 dwarring joined #perl6
20:24 jnthn nwc10: Note that the assignment doesn't go through native refs whenever we can avoid it
20:25 [ptc] nwc10: bwahahaha!
20:25 jnthn nwc10: 'cus creating a ref only to immediately deref it would be kinda sub-optimial
20:25 jnthn nwc10: So it seems it's the immediate store case that's actually busted.
20:25 nwc10 jnthn: OK.
20:28 nwc10 anyway, I think I've debugged it to the point where I don't know how to procede futher, but do know how to replicate the problem on a L.E. system.
20:28 dalek perl6-roast-data: 4d8579a | coke++ | / (9 files):
20:28 dalek perl6-roast-data: today (automated commit)
20:28 dalek perl6-roast-data: review: https://github.com/coke/perl6-roast-data/commit/4d8579a892
20:28 PerlJam m: class C { proto submethod BUILD(|) {*}; multi submethod BUILD($x) { } }
20:28 camelia rakudo-moar 30df1a: OUTPUT«===SORRY!===␤Package 'C' already has a Method 'BUILD' (did you mean to declare a multi-method?)␤»
20:29 PerlJam So ... at the very least that message is LTA
20:30 PerlJam (I don't have a real use-case, I was just playing around and noticed this)
20:33 dalek roast: c978a87 | coke++ | test_summary:
20:33 dalek roast: avoid unnecessary differences in output
20:33 dalek roast: review: https://github.com/perl6/roast/commit/c978a8734e
20:37 * TimToady pictures a Swiss cheese with more holes than cheese...
20:38 * geekosaur has seen a few
20:39 Kristien I don't like Swiss cheese so I always cut out the holes.
20:39 TimToady Kristien++
20:50 b2gills TimToady: I was toying with adding notes about [<=] [le] and [before], but it messed up the joke
20:51 b2gills m: say [!after] 1,'2',3.0,4e0,5+0i # this too
20:51 camelia rakudo-moar 30df1a: OUTPUT«True␤»
20:52 b2gills m: say [!after] <a b c c d>
20:52 camelia rakudo-moar 30df1a: OUTPUT«True␤»
20:53 Kristien my wonderful commit messages lately: https://gist.github.com/rightfold/38196a8463b91b0ebec8
20:54 laouji joined #perl6
20:54 TimToady .oO(more, but not much more...)
20:55 Kristien I have a Z shell function 'gmp' so that 'gmp more' does 'git add -A && git commit -m more && git push'. The rest is just <kbd>arrow up, return</kbd> reflex :D
20:56 TimToady the typical REXX programmer, on the other hand, cannot be compelled to write less than three paragraphs each time...
21:00 timotimo Kristien: you're going against the lovely tradition of spelling "more" "(More)"
21:00 timotimo :S
21:00 Kristien Moar
21:04 Kristien WTB PL/Perl 6
21:06 TimToady sounds like a Sixth Generation Language
21:06 dalek perl6-examples: 8a792c8 | paultcochrane++ | bin/run-examples.pl:
21:06 dalek perl6-examples: Update documentation to new command line args
21:06 dalek perl6-examples: review: https://github.com/perl6/perl6-examples/commit/8a792c850b
21:06 dalek perl6-examples: 6c751b7 | paultcochrane++ | categories/interpreters/brainfuck.p6:
21:06 dalek perl6-examples: Brainfuck example now takes a default program
21:06 dalek perl6-examples: review: https://github.com/perl6/perl6-examples/commit/6c751b7b26
21:06 dalek perl6-examples: 4027977 | paultcochrane++ | bin/run-examples.pl:
21:06 dalek perl6-examples: Add hailstone-sequence to list of memory hogs
21:06 dalek perl6-examples: review: https://github.com/perl6/perl6-examples/commit/4027977037
21:08 * timotimo just changed the description and URL shown at the top of https://github.com/perl6/specs
21:10 Kristien http://design.perl6.org/ should have a larger line height
21:11 Kristien like 18px (pretty readable) or 22.6524758px (ideal)
21:11 timotimo do you know where you can submit a patch for that? :)
21:11 timotimo i'm not good at html and/or css :(
21:11 Kristien no!
21:13 timotimo well, neither do i
21:14 Kristien https://github.com/perl6/perl6.org perhaps
21:14 Kristien no
21:14 Kristien some pod to html transformer
21:15 b2gills m: my %a = :a,:b; my %b = :c,:d; sub swap ( Mu \a is rw, Mu \b is rw ){ (a,b)=(b,a) }; swap %a, %b; say %a; say %b # too bad this doesn't work
21:15 camelia rakudo-moar 30df1a: OUTPUT«a => True, b => True, c => True, d => True␤␤»
21:15 timotimo mu/util/update-design.perl6.org.sh
21:15 timotimo this updates things
21:15 Kristien https://github.com/perl6/mu then?
21:15 timotimo docs/feather/syn_index.html
21:16 timotimo yes, in the mu repository
21:16 Kristien ok let's see
21:16 Kristien fork this shit!
21:17 timotimo :)
21:17 timotimo thank you
21:17 timotimo i'd also appreciate a little hint at the bottom of the syn index that points the to-be contributor at the location of this very html file and where exactly things are pulled from
21:19 muraiki joined #perl6
21:19 timotimo Repository Of All Spec Tests, is this now the official backronym for "roast"?
21:20 Kristien I created a PR
21:20 timotimo for perl6/mu? i don't see it :(
21:20 Kristien https://github.com/rightfold/mu/pull/1
21:20 Kristien wait
21:20 Kristien what
21:20 Kristien I created a PR in the fork
21:21 Kristien nice UI github good job
21:21 timotimo :D
21:21 timotimo i've done this mitsake before, too
21:21 Kristien ok now it's good
21:22 timotimo how does it look with the synopsis documents themselves?
21:23 donaldh joined #perl6
21:24 Kristien incredible
21:24 timotimo %)
21:25 PerlJam That's a pretty specific line height.
21:25 Kristien it's the font size times the golden ratio
21:26 timotimo i'll put the change into the live .css file to check it out
21:26 Kristien good luck
21:27 Kristien 79797 is a nice commit ID
21:27 dalek mu: e9ddbf6 | rightfold++ | docs/perl.css:
21:27 dalek mu: Increase line height for better readability
21:27 dalek mu: review: https://github.com/perl6/mu/commit/e9ddbf6c0d
21:27 dalek mu: 79797f5 | rightfold++ | docs/perl.css:
21:27 dalek mu: Merge pull request #1 from rightfold/rightfold-css-patch
21:27 dalek mu:
21:27 dalek mu: Increase line height for better readability
21:27 dalek mu: review: https://github.com/perl6/mu/commit/79797f502d
21:27 dalek mu: 3ddc5fb | moritz++ | docs/perl.css:
21:27 dalek mu: Merge pull request #8 from rightfold/master
21:27 dalek mu:
21:27 dalek mu: Increase line height for better readability
21:27 dalek mu: review: https://github.com/perl6/mu/commit/3ddc5fb398
21:27 timotimo oh
21:28 timotimo http://design.perl6.org/ - already live
21:28 raiph joined #perl6
21:29 nine_ jnthn: your second patch seems to help, indeed! https://gist.githubusercontent.com/jnthn/ef0af70a206b38f9d9e6/raw/84f84507fdcf6b783d3245c895fea5b426354950/gistfile1.txt
21:30 timotimo good news!
21:33 colomon joined #perl6
21:34 timotimo hmm, the questions were extremely quiet in pm's talk
21:36 jnthn Or maybe Pm is just so loud comparatively :P
21:36 nine_ jnthn: and to my MoarVM beginner eyes it actually makes sense. We need to keep track of these objects during the whole callback, not only during the setup. I guess there's a few opportunities for GC to kick in before the objects are referenced by other rooted objects.
21:36 jnthn nine_: Yeah, my tired brain last night thought that them being the args to the thing invoked would cause them to be marked
21:36 colomon joined #perl6
21:36 jnthn nine_: But it never actually works like that. :)
21:38 timotimo i actually had to turn my output device up to 150% to even understand the talk
21:38 timotimo the recording was quite quiet
21:41 nine_ jnthn: I should have asked. Your first patch did not make that much sense. Now it's quite clear. But as I said, I haven't seen much MoarVM code yet, so me not understanding does not say all that much :/
21:42 jnthn timotimo: Yeah, mine was quiet too...I turned my speakers up loud to see if it had recorded my voice OK, then forgot I'd done so, and blasted my ears with metal later on in the day... :)
21:45 ggoebel111111114 was just listening to pmichaud's talk and looking at design.per6.org... noticed that the column header (specification) has under it synopsis, synopsis, synopsis...
21:46 moritz huh, looks fine here
21:46 ggoebel111111114 wondering if pmichaud was alone in expressing his opinion that synopses ne specification
21:47 moritz ah, I see what you mean. No, just not patched yet
21:47 jnthn ggoebel111111114: No, there's quite a bit of agreement
21:48 jnthn nine_: Pushed the fix.
21:48 jnthn nine_: Thanks for trying it out :)
21:49 dalek nqp: 4892ff1 | donaldh++ | src/vm/jvm/runtime/org/perl6/nqp/runtime/IndyBootstrap.java:
21:49 dalek nqp: Guard two remaining invokee lookups on JVM.
21:49 dalek nqp:
21:49 dalek nqp: I had these ready to commit but FROGGS++ beat me to one of them.
21:49 dalek nqp: Fixes the NPE in RT #120254.
21:49 synopsebot Link: https://rt.perl.org/rt3//Public/Bug/Display.html?id=120254
21:49 dalek nqp: review: https://github.com/perl6/nqp/commit/4892ff1f18
21:51 nine_ jnthn: thanks for fixing :) This one's been haunting me for two months.
21:53 Kristien > You are now a member of Perl 6!
21:53 Kristien woo
21:54 dpuu joined #perl6
21:55 dolmen joined #perl6
21:56 hoelzro \o/
21:58 FROGGS jnthn: my problem seems to be that the staticCode.sc of the <unit-outer> context is null
21:58 dpuu trying to understand compositional grammars and action classes: if I have a top level grammar, < grammar G3 { rule TOP { ^ <G1::leaf> <G2::leaf> $ } } > then an action class with < method leaf($/) { ... } > will be called both G1::leaf and G2::leaf. Is it possible to specify what action classes to use for each subgrammar?
22:00 donaldh r: my $a ($b, $c); $b = 42; say $b
22:00 camelia rakudo-moar 30df1a: OUTPUT«5===SORRY!5=== Error while compiling /tmp/tmpfile␤Post-constraints on variables not yet implemented. Sorry. ␤at /tmp/tmpfile:1␤------> 3my $a ($b, $c)7⏏5; $b = 42; say $b␤    expecting any of:␤        constraint␤»
22:01 virtualsue_ joined #perl6
22:03 J-L joined #perl6
22:04 pullphinger joined #perl6
22:06 jdv79 moritz: cool.  i'll look into it later.
22:06 J-L Hi!  I have a quick Perl 6 question:  If I'm have an object, is there a method I can call that will return me a list of methods I can call?  (Sort of like the .methods call in Ruby.)
22:06 yoleaux 2 Mar 2015 23:31Z <raydiak> J-L: you'll have to learn more about these various parts by reading docs and trying things out, but assuming cygwin does indeed provide termios, it is my understanding that you can use the cygwin dll by just including it with your script (maybe both 32 and 64 bit dlls) and calling it...everything else you can get from the installer is just if you want posix userland things like bash
22:09 PerlJam m: Str.^methods.say
22:09 camelia rakudo-moar 30df1a: OUTPUT«BUILD Int Num chomp chop pred succ match ords samecase samespace trim-leading trim-trailing trim encode wordcase trans indent codes path unival univals WHY WHICH Bool Str Stringy DUMP ACCEPTS Numeric gist perl comb subst-mutate subst lines split words␤»
22:09 PerlJam J-L: like that.
22:09 PerlJam J-L: note that ^methods will give you actual method objects that just happen to stringify to the method name.
22:11 J-L Excellent, PerlJam!  Thank you.  (I tried .methods(), but I didn't realize the caret in "^methods" was needed.
22:13 J-L Is there any documentation that talks about "^" methods?  I tried looking up "^methods" in google, but google seems to ignore the "^".
22:14 dalek rakudo/nom: a341816 | lizmat++ | src/core/Array.pm:
22:14 dalek rakudo/nom: Remove stray unneeded/unused parameter
22:14 dalek rakudo/nom:
22:14 dalek rakudo/nom: Seems to be a copy-pasto from 2011
22:14 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/a3418162fe
22:15 timotimo lizmat: oh, huh, that could have impacted performance negatively in the past
22:15 timotimo in much of the past
22:15 lizmat yeah,
22:15 lizmat I'm checking all of the "is copy" cases, since coercing and not having to do an assign on an "is copy" var, is faster
22:17 FROGGS jnthn: when I run the URI code on jvm (without precomp) then staticCode.sc is null... what triggers setting staticCode.sc in case we *do* precomp?
22:19 PerlJam J-L: S12:2350
22:19 synopsebot Link: http://design.perl6.org/S12.html#line_2350
22:19 Mouq J-L: It's fairly incomplete, but also http://doc.perl6.org/language/mop
22:23 Mouq Actually that doc page is pretty good
22:23 jnthn FROGGS: unit-outer is a bit of a special case, iirc, but most blocks get that set in HLL::World when we add the code object to the SC, or during deserialization.
22:25 lizmat jnthn: does a "is copy" on a slurpy hash make sense?
22:25 lizmat sub a(*%h is copy) {}
22:26 lizmat feels superfluous, as the slurpy already creates a container, no?
22:29 atweiden joined #perl6
22:29 jnthn lizmat: Yeah, feels odd to me
22:31 J-L Ah, thanks, Mouq and PerlJam.  Now I see that @a.^methods is the same as @a.HOW.methods(@a) .  (Not sure why I have to write @a twice, though.)
22:31 jnthn To allow for prototype-y OO as well as class-y OO
22:33 adu joined #perl6
22:34 colomon joined #perl6
22:35 FROGGS jnthn: and the <unit-outer> is not meant to make it into the .jar, right?
22:35 Hor|zon joined #perl6
22:35 FROGGS jnthn: only up to <unit>... that's what happens here at least
22:36 jnthn FROGGS: Yes
22:37 jnthn FROGGS: We actually set unit-outer on unit dynamically as part of loading the setting
22:43 Mouq J-L: Think about it this way, @a.HOW gets the MetaObject. The MetaObject knows about lots of different objects, not just @a. So when you want to use the MetaObject to get information about @a, you have to include @a in the calls to it
22:45 Mouq J-L: Usually though, we just want the information about that object, so the .^ notation bypasses having to write the object twice
22:45 dalek nqp: 0c4096e | donaldh++ | src/vm/jvm/runtime/org/perl6/nqp/runtime/Ops.java:
22:45 dalek nqp: Guard against null object in getobjsc on JVM.
22:45 dalek nqp:
22:45 dalek nqp: This fixes the NPE in RT #123002.
22:45 dalek nqp: review: https://github.com/perl6/nqp/commit/0c4096e1e7
22:45 synopsebot Link: https://rt.perl.org/rt3//Public/Bug/Display.html?id=123002
22:46 dalek rakudo/nom: 6cf53b8 | lizmat++ | src/core/ (4 files):
22:46 dalek rakudo/nom: Use coercion instead of "is copy"
22:46 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/6cf53b84aa
22:46 dalek rakudo/nom: ba45b84 | lizmat++ | src/core/ (3 files):
22:46 dalek rakudo/nom: Remove superfluous "is copy" traits
22:46 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/ba45b84699
22:46 dalek rakudo/nom: a3bdb02 | lizmat++ | src/core/Temporal.pm:
22:46 dalek rakudo/nom: Use coercion, but we still need "is copy" anyway
22:46 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/a3bdb02037
22:46 lizmat and with that, I'm going to get some sleep&
22:48 jnthn o/ lizmat
22:53 Kristien found this gem today: http://i.stack.imgur.com/WCbQ4.png
22:53 Kristien I don't know where I got it from.
23:00 mr-foobar joined #perl6
23:05 dalek rakudo-star-daily: 59df817 | coke++ | log/ (9 files):
23:05 dalek rakudo-star-daily: today (automated commit)
23:05 dalek rakudo-star-daily: review: https://github.com/coke/rakudo-star-daily/commit/59df817b09
23:07 cognominal joined #perl6
23:09 J-L How do you append strings in Perl 6?
23:09 BenGoldberg joined #perl6
23:09 J-L You append with ~, correct?
23:10 japhb J-L: That's concatenate, if that's what you mean.
23:10 J-L Yes, sorry.
23:11 japhb Prefix ~ does stringify, FWIW
23:11 japhb (Concatenate being infix ~)
23:11 J-L I'm trying this but I get an error:  sub appender(Str string1, Str string2) { string1 ~= string2; string1.say }
23:12 japhb Arguments are not writable by default.
23:12 J-L The error is:  ===SORRY!=== Error while compiling <unknown file>  Missing block.
23:12 japhb You need 'is rw' or 'is copy', depending on whether you want it to be locally modified, or modified in the caller.
23:12 japhb Also, you have no sigils.
23:13 J-L Oh, wow... I forgot the sigils.
23:13 japhb m: sub appender(Str $string1 is rw, Str $string2) { $string1 ~= $string2 }; my ($s1, $s2) = < a b >; appender($s1, $s2); say $s1;
23:13 camelia rakudo-moar a3bdb0: OUTPUT«ab␤»
23:14 japhb J-L: ^^
23:16 J-L Excellent.  Thanks, japhb.  I just learned about "is rw" and "is copy".  Makes sense now.  And I can't believe I forgot the sigils, seeing that I've been programming Perl 5 for years.
23:17 J-L I actually like the "is copy" and "is rw" (and that the default is neither).  It makes sense to me, even through I've never seen anything like it before in any other programming language.
23:19 virtualsue_ joined #perl6
23:20 J-L Do any of you know about NativeCall and how to use it?  I've been looking at simple examples on how to use it, and some I can run, and others don't work.
23:27 J-L Here's a NativeCall example from https://github.com/tony-o/perl6-win32-time/blob/master/lib/Win32/Performance.pm6 :  use NativeCall; sub GetTickCount() returns Int is native('KERNEL32') is export { * };  GetTickCount().say();  # doesn't seem to work, just says:  Null PMC access in get_string()
23:27 kaare_ joined #perl6
23:31 eternaleye joined #perl6
23:32 telex joined #perl6
23:33 Kristien Time to sleep. Goodbye friends!
23:35 raydiak J-L: are you using the Parrot backend?
23:36 retupmoca J-L: can you 'perl6 --version' ?
23:36 yoleaux 3 Mar 2015 19:39Z <raydiak> retupmoca: https://github.com/retupmoca/P6-XML-Canonical/pull/1
23:36 retupmoca raydiak++ # ws fix
23:37 jnthn I tired it out on the Rakudo on Moar I have here and it worked out fine
23:38 raydiak spent most tuits yesterday catching Inline::Lua's README up, so took some time to fix a few failures in the ecosystem smoke report too :)
23:39 jnthn dalek y u no report my commit...
23:40 dalek rakudo/nom: 07cea90 | jnthn++ | src/Perl6/Optimizer.nqp:
23:40 dalek rakudo/nom: Be smarter optimizing native return value decont.
23:40 dalek rakudo/nom:
23:40 dalek rakudo/nom: This improves the code generated for ++ and -- on natives, and should
23:40 dalek rakudo/nom: thus make them more appealing to the inliner.
23:40 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/07cea906a5
23:40 jnthn ah, just slow
23:42 japhb timotimo: It looks like the index at http://t.h8.lv/p6bench/ is out of date.  What generates it?
23:46 * jnthn gets some rest &
23:47 J-L Wait... apparently my NativeCall example up above works when I try to run it in its own file (and not in the interpreter).
23:48 J-L raydiak and retupmoca:  'perl6 --version' gives me:  This is perl6 version 2014.01 built on parrot 5.9.0 revision 0
23:49 raydiak the parrot backend is no longer supported...I'd highly recommend the most recent moar available to you
23:50 J-L raydiak and retupmoca:  I installed Moar a few days ago, but I don't know how to make Perl 6 use it instead of Parrot.  NativeCall didn't work before I installed Moar, but once I installed it (or thought I installed it), NativeCall started working.
23:50 raydiak J-L: uninstall the old one before installing the new one
23:51 J-L raydiak:  By uninstalling the old one, do you mean uninstall Parrot, or all of Perl 6?  How do I uninstall just Parrot?
23:51 raydiak just uninstall all of rakudo, and then reinstall with moar
23:53 J-L raydiak:  But is rakudo-star-2014.12.1-moar.msi all that I need to install?  I thought that just installed the back-end, and nothing else.  Won't I need to install other things, like the Perl6 compiler itself?
23:54 japhb J-L: rakudo-star includes the backend(s), nqp (the middle layer), rakudo (the compiler), and a bunch of useful modules.
23:54 japhb It's a "distribution", more batteries-included style.
23:56 J-L japhb and raydiak:  So am I right in assuming that rakudo-star-2014.12.1-moar.msi contains all that rakudo-star-2014.03.msi has (except Parrot)?  I see that rakudo-star-2014.12.1-moar.msi is only 7MB as compared to 16MB for rakudo-star-2014.03.msi .
23:57 J-L It makes me think that rakudo-star-2014.12.1-moar.msi doesn't have as much as rakudo-star-2014.03.msi .
23:58 timotimo japhb: nothing guarantees it; i built it with ls and vim and search&replace ...
23:58 laouji joined #perl6

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

Perl 6 | Reference Documentation | Rakudo