»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'p6: say 3;' or rakudo:, std:, or /msg camelia p6: ... | irclog: irc.perl6.org | UTF-8 is our friend! | feather will shut down permanently on 2015-03-31
Set by jnthn on 28 February 2015.
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
alpha- grondilu run all the xs-ified crap from cpan 00:03
:o)
00:03 fhelmberger left 00:04 mohij left 00:05 lizmat joined
yullha grondilu I think that perl6 want to do too much and makes life less pleasent to experienced unix users 00:05
timotimo you can still shell out and pipe out to other processes 00:06
i don't think it makes things less pleasant
jercos and natively call functions in libraries >.> can't discount that.
yullha let's say that perl 5 was kind of a shell on his own
alpha- how does anything perl do anything against UNIX Philosophy yullha ? 00:07
text pipes in, text pipes out
timotimo jercos: hum?
oh, that was a response to my statement? shelling out?
jercos NativeCall is a major boost in the abilities of perl 6 without making those abilities part of perl 6 00:08
yeah
yullha I don't think that native call functions has ever been easy on unix shells
alpha- yullha your question about creating a gz with perl is pretty silly imo
to create a gz you pipe into gzip
not into perl
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.
timotimo if you're seeing perl as "a kind of shell", you're severely limiting yourself and perl
b2gills yullha: You're also assuming a particular unix variant, so may not be portable from say Linux to BSD. 00:09
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
some tools excell at one some at others
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 metacpan.org/search?q=gzip
dalek kudo-star-daily: a4a8796 | coke++ | log/ (9 files):
today (automated commit)
yullha b2gills some of them are wrappers around the tool
b2gills So 00:13
yullha some of them like RandomAccess cannot be reasonably efficient even if they work
would be better just to not have them
b2gills If you want to be "reasonably efficient" you would be writing in C 00:14
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?!
there is no reason why something shouldn't be good at both working with files and working with functions
it's at best a false dichotomy 00:16
00:19 spider-mario left
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 doc.perl6.org/type/Proc::Async seems to be better than say metacpan.org/pod/IPC::Run or metacpan.org/pod/IPC::Cmd
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: hello.firefox.com/W_FeEmtP_7c
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:21
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
ingy I wan to see how many people can join
b2gills: can you see me too?
b2gills yes 00:23
ingy click it people!
yullha ingy don't see nor hear
not working for me 00:24
b2gills I plugged in a mic, but not working yet, let me see
ingy try to rejoin
I think it's like a permalink video chat
timotimo yep
ingy I hear noise 00:25
but no voices
b2gills I've never used the mic on this headset so it may be broken 00:26
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
I wanted to see if it would go 10 or more 00:29
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:32
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
00:33 tinyblak joined 00:36 yullha left
raydiak was it something I said? 00:38
00:38 adu joined 00:46 laouji joined
TimToady raydiak: let's hope so 00:52
raydiak heh true...didn't want to feed it, but...didn't wanna keep my mouth shut either 00:58
...fingers...whatever... 00:59
01:02 yeahnoob joined
geekosaur considered asking at one point if they had trouble walking and chewing gum at the same time... 01:12
01:12 skids joined
TimToady ah, the address appears to go to France 01:16
probably just a bit too much wine in this case :)
japhb .ask ssutch Still interested in working on github.com/samuraisam/p6-pb ? 01:17
yoleaux japhb: I'll pass your message to ssutch.
01:21 laouji_ joined 01:26 laouji_ left 01:35 bayprogrammer left, bayprogrammer joined 01:36 Possum left 01:50 aborazmeh left 01:51 jack_rabbit joined 02:16 aborazmeh joined, aborazmeh left, aborazmeh joined 02:17 isBEKaml left 02:18 kaare__ left 02:20 kaare__ joined
Mouq There aren't any specific examples given for #78670... can we consider it closable with tests? 02:23
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...l?id=78670
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␤»
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␤␤»
Mouq Ahh, it just seems to be errors the compiler can catch early
I'll add this to the ticket
02:26 pullphinger joined 02:30 telex left 02:32 telex joined 02:52 chenryn joined
TimToady rosettacode.org/wiki/JortSort#Perl_6 02:54
02:55 BenGoldberg left 03:04 aborazmeh left 03:06 muraiki_ joined 03:07 sunnavy joined
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:08
03:08 muraiki left
Mouq m: say [1,2,3].sort.WHAT; #hmm… 03:09
camelia rakudo-moar 070196: OUTPUT«(Parcel)␤»
Mouq m: sub mysort(::T $a) { T($a.sort) }; say mysort([1,2,3]).WHAT 03:14
camelia rakudo-moar 070196: OUTPUT«(Array)␤»
03:17 muraiki_ left 03:18 Psyche^ joined 03:22 Patterner left 03:23 raiph left 03:24 bayprogrammer left
jdv79 JortSort? idgt. 03:27
TimToady doesn't think sort should be returning a Parcel 03:30
03:30 raiph joined
timotimo tadzik: don't we want to throw out IO::Select? 03:31
03:32 noganex joined 03:34 bayprogrammer joined 03:35 noganex_ left
grondilu "you're the first one here" 03:44
oops ^please ignore
03:47 grondilu left
dalek kudo/nom: 63045c3 | TimToady++ | src/ (2 files):
unify add_categorical errors

As a side effect, spaces will no longer be tolerated in operators. Even if we decided to allow this someday, this is conservative.
03:54
ast: be5fa53 | TimToady++ | S06-operator-overloading/sub.t:
check new add_categorical errors
03:55
04:00 laouji left, laouji joined 04:04 Sqirrel left, ugexe left, laouji left 04:09 laouji joined
jdv79 doc.perl6.org/routine/parse - is that correct? 04:12
timotimo what do you suspect to be wrong? 04:17
having two candidates on that page? 04:18
it seems strange that they have different documentation texts 04:19
04:21 anaeem1 joined 04:23 ugexe joined
jdv79 yeah, i don't see two candidates in the code ^H 04:27
04:32 jack_rabbit left 04:41 tmch left 04:42 petercommand joined
Mouq Erm. The other one is here: doc.perl6.org/language/grammars 04:44
04:45 raiph left
jdv79 is that a mess or is that cool? i'm a little unsure with how these docs work. 04:48
adu hi 04:51
04:55 jack_rabbit joined
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 05:03 laouji_ left 05:04 diana_olhovik left 05:10 diana_olhovik_ joined
dalek kudo/nom: 897bef3 | Mouq++ | src/ (2 files):
Make dupprefix a typed error
05:28
ast: afcf797 | Mouq++ | S03-operators/misc.t:
Add tests for RTs #73198 and #76436
05:29
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...l?id=73198
dalek kudo/nom: ffa13ff | Mouq++ | src/core/Exception.pm:
Fix typo in exception message
05:31
05:36 jack_rabbit left 05:41 Aaron`J left 05:59 [Sno] left 06:20 diana_olhovik_ left
dalek kudo/nom: a99a572 | Mouq++ | src/core/metaops.pm:
Fix RT #123178
06:32
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...?id=123178
06:35 mr-fooba_ joined 06:36 bjz joined 06:37 mr-foobar left 06:43 bjz left 06:45 infernal joined
dalek ast: 3545b6a | Mouq++ | S03-metaops/hyper.t:
Add test for RT #123178
06:48
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...?id=123178
06:55 wicope joined 06:57 Rounin joined, diana_olhovik_ joined 06:58 [Sno] joined 07:00 skids left
dalek ast: e75f03b | Mouq++ | S32-array/splice.t:
Add test for RT #116897
07:03
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...?id=116897
07:07 aborazmeh joined, aborazmeh left, aborazmeh joined 07:15 rindolf joined
[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␤␤»
[Tux] interesting
07:23 esaym153 left, mr-fooba_ left
[Tux] even more interesting: 07:26
m: $*OUT.nl = ""
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␤␤»
[Tux] oepsie
make a ticket?
07:27 adu left
TimToady sure 07:28
m: subset checked-int32 of int32 where * ~~ int32.Range; my checked-int32 $x = 2_000_000_000; say $x
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␤␤»
TimToady m: subset checked-int32 of int32 where * ~~ int32.Range; my checked-int32 $x = nqp::unbox_i(2_000_000_000); say $x
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␤␤»
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
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
TimToady seems like that could work a little better 07:30
in particular it'd be nice if our literals could be allomorphic to native types 07:31
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:39 yeahnoob left
[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␤␤»
[Tux] shouldn't it be guarded against? 07:41
07:43 alini left 07:47 aborazmeh left 07:52 _mg_ joined
[Tux] please compare these two: 07:53
m: .say for (1, "", Str, "a").map(~*)
camelia rakudo-moar a99a57: OUTPUT«1␤␤use of uninitialized value of type Str in string context in block <unit> at /tmp/6uSh0Uwm3v:1␤␤␤a␤»
[Tux] m: .say for (1, "", Str, "a").map(*//"")
camelia rakudo-moar a99a57: OUTPUT«1␤␤(Str)␤a␤»
[Tux] in the first I hoped ~* to stringify Str to "" 07:54
in the second I expect "" instead of "(Str)"
Mouq m: .say for (1, "", Str, "a").map({$_//""}) 07:55
camelia rakudo-moar a99a57: OUTPUT«1␤␤␤a␤»
Mouq * and // don't curry :P
I fear * has become yet-another-list-to-memorize 07:57
Mostly, it does what you want 07:58
But when it doesn't, the fact that it didn't is usually rarely obvious
s/usually//
[Tux] .o( so much to remember ...)
should I RT the fact that one can assign a string to $*OUT? 07:59
moritz I don't think so
dynamic variables aren't typed, afaict
so GIGO applies 08:00
[Tux] ok
08:00 fhelmberger joined
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
tadzik timotimo: it's absolutely useless these days, perhaps we should :) 08:02
08:04 fhelmberger left 08:05 prime- left 08:07 larion left
TimToady I supsect *//"" not working is just a bug 08:07
[Tux] shall I ticket it? You can always reject it later
TimToady it seems pretty obvious what it should do 08:08
it's not like we've stolen the meaning of * for something else with //
08:08 Humbedooh left
TimToady so yeah, I think it's just NYI/bug 08:09
08:09 prime joined 08:13 zakharyas joined 08:14 kjs_ joined, Humbedooh joined, Sqirrel joined
nwc10 www.raspberrypi.org/launch-day-what...e-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:18
xiaomiao nwc10: that's ... kinda ... horribly sad 08:21
10 req/s is roughly what you get with very bad php and no optimization or caching at all
... on a puny old server
nwc10 that's not 10 req/s for static content 08:22
xiaomiao yes 08:23
uhm
if you don't have horribly crufty crap php ... my baseline is currently about 50 req/s per cpu as lower limit 08:24
so a 50Eur/mo server would handle about 400 req/s worst case
if one were to use proper caching this would end up as "we've saturated the network connection" anyway 08:25
08:28 Kristien joined, kjs_ left 08:29 rurban joined, darutoko joined 08:36 laouji_ joined 08:40 Humbedooh left 08:41 laouji_ left
Kristien hi 08:41
abraxxa xiaomiao: where do you have those performance numbers from? 08:43
xiaomiao abraxxa: experience 08:44
abraxxa i'm happy if my Catalyst app gets 10/sec
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
08:45 yeahnoob joined, Kristien left
abraxxa that's without any caching 08:46
xiaomiao flask, uncached: Requests per second: 3071.21 [#/sec] (mean)
abraxxa as my apps aren't dynamic webpages but webapps caching doesn't make sense because the data is changing all the time
xiaomiao on a crappy old (quadcore) desktop that has less than half the horsepower of any server I want to use
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
moritz and the underlying database
xiaomiao mediawiki, 1.6sec with all tricks to speed it up applied - 0.6 req/s per CPU 08:50
moritz and then you install semantic mediawiki, and it becomes even slower :( 08:51
08:51 kaleem joined
xiaomiao well, that is SMW 08:51
doing up to 40k DB queries per page view
moritz eeks
xiaomiao thus making it slower to have the database on a dedicated machine as ethernet latency dominates query time 08:52
90 CPU-seconds to render that page :D
08:54 rindolf left 08:57 Ven joined 08:58 alini joined 09:02 Humbedooh joined, Ven left 09:06 Kristien joined, Ven joined
Kristien what to do 09:08
moritz Kristien: strive for world domination! 09:11
Kristien that'd mean using Perl! 09:12
sounds good :)
09:14 brrt joined, fhelmberger joined
dalek c: c68a8fd | moritz++ | lib/Type/Cool.pod:
Any: many of those methods also exists in sub form
09:15
c: 624920c | moritz++ | lib/Type/Cool.pod:
Cool: subroutine forms
c: 30f8f0a | moritz++ | lib/Type/Cool.pod:
log10; examples
Ven ETOOHUBRIS
09:17 virtualsue joined 09:19 espadrine left
Kristien Rust is cool. 09:22
09:23 larion joined 09:24 Kristien left 09:25 laouji left, dakkar joined, laouji joined
brrt no, rust is a complex oxidation product of iron 09:25
not necessarily cool 09:26
although it might be sometimes
jnthn o/
raydiak \o 09:27
brrt \o
09:27 Akagi201 left 09:30 kjs_ joined 09:31 yeahnoob left 09:37 Akagi201 joined 09:41 Akagi201 left
jnthn Ooh: video.fosdem.org/2015/devroom-perl/ 09:42
Ven amazing! (fosdem people)++ 09:43
Ven cuts his starcraft video to watch an even more futuristic one *g*
09:48 espadrine joined
Ven "this is what we call type inference" i'm sorry - what? 09:53
09:55 FROGGS joined, donaldh joined 09:56 laouji left
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);}␤»
Ven m: subset Foo of Str where *.chars > 0; sub foo(Foo){}; sub bar(){foo(5);}
camelia ( no output )
Ven *could it* be made to work? like, sure it can't assess the "where", but the subsetee might be 09:57
FROGGS o/ 09:59
Ven \o FROGGS
jnthn Ven: Quite possibly could
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
and check "where" at run-time
jnthn Ven: Oh... 10:01
Ven: Yes
I thought you meant checking the whole constraint at compile time :)
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
.oO( but it's perl6, you never know I guess )
raydiak good night #perl6
Ven gn raydiak !
jnthn 'night, raydiak 10:04
10:04 infernal left 10:05 laouji joined 10:06 virtualsue left 10:08 sqirrel_ joined 10:11 rindolf joined
nwc10 jnthn: do you know which commits in MoarVM/NQP or Rakudo relate to these new spectests? github.com/perl6/roast/commit/11c7...652d588a03 10:11
jnthn nwc10: github.com/MoarVM/MoarVM/commit/86...0dc88ba141 10:12
10:14 esaym153 left 10:15 esaym153 joined
Ven notices that, sadly, the 5.22 video has missing sound 10:17
nwc10 Lee has just also noted that on #london.pm
buy rjbs beer, and maybe he can dub a new sountrack
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)
donaldh: is that an upstream bug?
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 :-/
jnthn donaldh: Please can you gist me the diff that gets it working?
donaldh FROGGS: It turns out that dcMode silently ignores unrecognised DC_CALL_ constants that are not compatible with the platform selected dyncall code.
Yes, it's a bug in dyncall. 10:20
jnthn Oh, dyncall bug? :(
Darn.
donaldh So far as I can tell, armhf backend in dyncall is broken.
FROGGS donaldh: that means we have to either probe for that, or look for the right flags for arm
jnthn Grrr. I'd thought it was just that we were telling dyncall to use the wrong convention.
FROGGS donaldh: which calling convention did work in the end?
jnthn: well, I think we are 10:21
jnthn: we are telling that it should use DC_CALL_C_X86_CDECL on arm, which is wrong
donaldh And unfortunately the dyncall code is hardcoded to select ARMHF based on gcc builtin #defines 10:22
FROGGS donaldh: so you hacked dyncall in the end? 10:23
donaldh: can you gist the diff of dyncall and moarvm?
donaldh gist.github.com/donaldh/ebfb4351736ce9252409 10:25
10:26 infernal joined 10:28 Ven left
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:29
FROGGS: also, the docs say it is necessary to call dcReset after dcMode but I haven't checked if it makes any difference 10:30
10:30 alini left 10:31 infernal left
donaldh every dyncall backend supports DC_CALL_C_DEFAULT and uses the appropriate default calling convention for the architecture 10:31
10:32 rindolf left
FROGGS ahh, interesting 10:32
donaldh Also DC_CALL_C_X86_CDECL is not actually implemented on x64 and is silently ignored :-)
FROGGS hehe 10:33
jnthn From get_calling_convention it seems our default is to pass DC_CALL_C_DEFAULT 10:34
donaldh if you were to call DCint dcGetError ( DCCallVM * vm ); after calling dcMode, you'd get DC_ERROR_UNSUPPORTED_MODE 10:36
Have a look at github.com/MoarVM/dyncall/blob/mas..._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
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.
Sure, we could reverse engineer which preprocessor macros to override, but that's not maintainable. 10:39
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.
Well I hit it because I tried to call mmap/6 on raspberry pi. Bug manifests for args > 4
So it's not a significant bug. It only affects an unusual platform. 10:41
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
10:42 xinming left
nwc10 an "unusual" platform of over 5 million devices. 10:42
donaldh Unusual for dyncall ;-) 10:43
nwc10 but also, how many functions people try to dyncall have 5+ arguments?
arnsholt We had a visitor at some point that said that libffi is better than libdyncall
donaldh nwc10: have a look at github.com/MoarVM/dyncall/blob/mas...rm_armhf.S and github.com/MoarVM/dyncall/blob/mas...rm_armhf.c to make your eyes bleed
arnsholt Wasn't clear to me how and why, though
(Also, IIRC jnthn had trouble getting libffi working on Windows)
nwc10 I remember that too 10:44
libffi seems to support a couple of the Unixes that dyncall doesn't (or didnt yet)
donaldh nwc10: armhf calling conventions is new to Raspberry PI 2. AFAIK hardfloat was not supported on PI 1
nwc10 IIRC AIX and HP/UX are a bit fun
aaaaaaaah
that's not 5 million :-)
but hangon 10:45
2 is intended to be 99.99% (or better) compatible
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 10:46 rindolf joined 10:47 smls joined
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…»
smls this error message used to be more awesome.
10:48 xinming joined
nwc10 donaldh: yes, for starters I don't understand all the uncontional flds instructions 10:50
dalek pan style="color: #395be5">perl6-examples: 398c217 | paultcochrane++ | categories/99-problems/P06-ajscogo.pl:
[99-problems] add example from ajscogo

The code here is a slightly modified version of that mentioned in PR #14
10:51
pan style="color: #395be5">perl6-examples: 010600a | paultcochrane++ | categories/99-problems/P06-ajscogo.pl:
[99-problems] .elems unnecessary when performing math ops on an array
pan style="color: #395be5">perl6-examples: fb44624 | paultcochrane++ | categories/99-problems/P06-ajscogo.pl:
[99-problems] use .end instead of computing its value
pan style="color: #395be5">perl6-examples: 6344083 | paultcochrane++ | categories/99-problems/P06-ajscogo.pl:
[99-problems] simplify single-element list check
El_Che perl devroom talks are coming in: video.fosdem.org/2015/devroom-perl/ 10:52
a few without audio though :(
10:55 kjs_ left 10:56 telex left 10:57 rindolf left, rindolf joined 10:58 alini joined, telex joined, kjs_ joined 10:59 virtualsue joined 11:03 sqirrel_ left 11:05 kjs_ left 11:06 laouji left 11:09 _mg_ left 11:12 oetiker left 11:13 kjs_ joined
FROGGS El_Che: well, I had heared (and seen) that the mic had low batteries at afternoon 11:35
11:39 brrt left 11:42 infernal left 11:48 aborazmeh joined, aborazmeh left, aborazmeh joined
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:49
smls Hm, why does p6doc's htmlify say "Initializing ...␤===SORRY!===␤Missing or wrong version of dependency 'src/gen/m-CORE.setting'" 11:51
11:51 kjs_ left
smls my perl6 works fine for REPL and command-line use 11:52
tadzik sounds like you didn't update p6doc after updating rakudo
modules need to be recompiled after you do
smls how do i find out which module needs to be updated? 11:54
11:54 kjs_ joined
moritz locate '*.moarvm' # :( 11:54
smls: normally I just do a perl6-m rebootstrap.pl in panda
smls ok, I'll try that
11:54 infernal joined
tadzik if you use rakudobrew, updating rakudo automatically updates modules too 11:55
smls I do use rakudobrew, not sure what went wrong 11:56
tadzik huh
moritz if there are local precompiled modules, that won't help you
git clean -xdf # sledge hammer solution for that one 11:57
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
yeah :(
panda did that recently
git--
12:02 cognominal left
tadzik we moved from submodules to subtrees (?) and it confused git greatly 12:03
rakudobrew should probably cry about it louder
12:03 [particle] joined 12:05 [particle]1 left 12:08 infernal left 12:09 [particle]1 joined, [particle] left, infernal joined 12:14 laouji joined
FROGGS rjbs: your talk only has partial audio :o( video.fosdem.org/2015/devroom-perl/ 12:15
12:15 infernal left 12:18 laouji left 12:19 infernal joined, kjs_ left 12:21 kjs_ joined 12:22 kjs_ left 12:24 oetiker joined 12:27 infernal left 12:28 infernal joined 12:29 sqirrel_ joined 12:32 infernal left 12:34 spider-mario joined 12:36 infernal joined 12:41 infernal left, oetiker left 12:42 aborazmeh left 12:43 Ven joined 12:45 anaeem1__ joined 12:46 oetiker joined
Ulti FROGGS I was just about to link that :) 12:48
12:49 anaeem1 left, anaeem1__ left 12:51 infernal joined, oetiker left 12:52 oetiker joined 12:53 Possum joined, rindolf left
rjbs FROGGS: :'( - maybe I should re-record it! :-) 12:56
FROGGS rjbs: you have to... I missed your talk at the FOSDEM :o(
nwc10 rjbs: irclog.perlgeek.de/perl6/2015-03-04#i_10220612 12:57
rjbs FROGGS: I'll give it again in YAPC::NA and probably OSCON.
nwc10: Oh, hold out for beer? Wise...
El_Che rjbs: your fosdem talk is online: video.fosdem.org/2015/devroom-perl/...o_come.mp4 13:02
I meant "FROGGS, rjbs' talk is online" :) 13:03
13:09 FROGGS left
rjbs El_Che: The thing is that apparently it's missing a ton of audio. 13:11
El_Che yours as well? 13:12
damn
timotimo hm, it looks like modules_ecosystem_perl6.mp4modules_ecosystem_perl6.mp4 is missing a bit from the beginning 13:21
13:25 sqirrel_ left
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:27
13:29 kaare__ is now known as kaare_ 13:31 pullphinger left 13:34 laouji joined 13:36 anaeem1 joined, anaeem1 left 13:37 cognominal joined 13:39 anaeem1_ joined 13:40 chenryn left 13:41 viyyozio joined 13:42 kjs_ joined 13:48 _mg_ joined 13:54 anaeem1_ left, raiph joined 13:55 anaeem1 joined 13:56 _mg_ left
dalek Heuristic branch merge: pushed 27 commits to rakudo/newio by lizmat 13:57
13:57 rindolf joined
viyyozio where is the open function implemented in the source? 14:07
timotimo src/core/io_operators.pm has it 14:08
but it just delegates to IO::Handle's open method
[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
lizmat which is different in the newio branch
viyyozio which is the futurable io branch? newio or master ? 14:10
14:10 anaeem1 left
lizmat newio 14:10
viyyozio thanks
14:10 anaeem1 joined
timotimo our "master" branch is actually called nom (for hysterical raisins) 14:11
nine_ jnthn: checking out MoarVM master and doing make && make install should be enough to get your fix? 14:15
14:15 anaeem1 left
jnthn nine_: I also bumped MOAR_REVISION and NQP_REVISION 14:16
nine_: But yeah, you can do what you suggested also
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 :(
jnthn :(
viyyozio what is the role of npq::open and IO::Handle.new ? is npq opening the file and IO::Handle wrapping the abstraction?
lizmat viyyozio: it's a mess that I'm trying to clean up in the newio branch 14:18
nqp::open returns a stream (PIO object) 14:19
that is wrapped in IO::handle
in the newio branch, it's actually wrapped in the PIO role
14:19 brrt joined
jnthn The thing nqp::open hands back is the VM-level IO handle 14:19
nine_: Strange. I'm not really seeing other places in there it could go wrong... 14:21
14:22 brrt left
jnthn nine_: I wonder if gist.github.com/jnthn/ef0af70a206b38f9d9e6 might help... 14:23
[Coke] geekosaur++ # macports help. 14:24
[Coke] will try to get nqp working with subports tonight.
14:28 muraiki joined
[Coke] is kind of bummed that we have to depend on perl5 to ship perl6. 14:29
(but not enough to rewrite our entire config system!)
TimToady what, siblings should hate each other?
timotimo at some point the younger sibling ought to leave the cozy nest that the older sibling has made for them 14:30
lizmat [Coke]: this was discussed at length at the APW 2014 14:31
I think writing our tool chain in nqp was considered a way forward
nwc10 jnthn might recall better
14:32 Sysaxed joined
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
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
jnthn Yeah, though I think we also felt it wasn't a priority in the near term overall :)
timotimo and then we can config rakudo with the properly built nqp
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
jnthn Aye
14:33 skids joined
Sysaxed oh, so there are some perl6 talks up but no Larry yet? 14:34
timotimo ohai donaldh :)
Sysaxed I mean fosdem videos
DrForr_ No keynotes up at all yet.
Sysaxed :( 14:35
donaldh hi o/
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
but also, it's not something needed to get to Christmas
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:38 kaleem left
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
TimToady lizmat: what about ++$int?
nwc10 lizmat++ # benchmarking first before changing code
a wise head
lizmat TimToady: about 5x as slow 14:40
14:41 anaeem1_ joined, rindolf left
TimToady after all, ++$int is a more correct translation of $i = $i + 1 in any case 14:41
unless you rely on $i++ optimizing to ++$i in sink context 14:42
[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 :)
[Coke] S17-procasync/basic.t, S17-procasync/print.t, S17-supply/watch_path.t
lizmat jnthn: so you're saying I should do it nonetheless, to put the pressure on ? :-)
TimToady quick, merge newio
jnthn lizmat: haha :)
lizmat
.oO( pressure nudge received :-)
14:46
jnthn lizmat: Not really, just wanted to make sure those reading backlog don't remember "avoid ++, it's slow" as a performance guideline :) 14:47
nine_ will never ever use ++ again, cause it's obviously slower than my $j = $i + 1; $i = $j; 14:48
or so I heard
jnthn ('cus by the time of the 2015.03 release I suspect the two will be about the same)
14:48 adu joined
lizmat and after that $int++ should be faster cause it will jit to a single machine op or so? 14:49
.oO( one can dream )
colomon nine_: what you really need to do is $i = $i +& 1 ?? $i + 1 !! $i +| 1 14:51
;)
jnthn lizmat: I suspect the code that makes that happen will also turn $i = $i + 1 into the single machine op too.
donaldh hmm, nqp test 86-pipes.t is testing each backend for the behaviour they have, not for the behaviour they should have. 14:55
14:57 rmgk left 14:58 rmgk joined
dalek ast/newio: 89b30a8 | TimToady++ | S17-procasync/basic.t:
conjecture that test is no longer flapping
14:59
roast/newio: b76efe4 | usev6++ | S12-class/basic.t:
roast/newio: Unfudge test for RT #67784
14:59 dalek left
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...l?id=67784 14:59
lizmat sorry dalek
15:00 dalek joined
dalek p: 4602aa5 | donaldh++ | / (2 files):
Update openpipe to inherit parent's STDERR on JVM.

This fixes RT #104794. Also updated test eliminate JVM special case.
15:00
15:00 dalek left
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...?id=104794 15:00
jnthn donaldh++
15:00 dalek joined, ChanServ sets mode: +v dalek
donaldh I left the parrot special case test, and it's presumably still broken on parrot. 15:01
15:03 rindolf joined 15:04 infernal left 15:05 raiph left 15:10 Rounin left
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 dustinm` left, Kristien joined 15:21 rindolf left 15:22 anaeem1_ left 15:23 anaeem1 joined 15:24 anaeem1 left 15:25 anaeem1 joined 15:26 dustinm` joined
dalek c: a0a9f45 | smls++ | lib/Language/5to6.pod:
5to6: Refactor array/hash subscripting related info
15:27
15:31 Kristien left
dalek c: c70ef8a | smls++ | lib/Language/5to6.pod:
fix link
15:32
15:35 Kristien joined 15:39 Kristien left 15:42 viyyozio left
dalek kudo/newio: 2dda3b9 | lizmat++ | src/core/IO.pm:
Better handle broken symlinks in dir()
15:46
kudo/newio: 81f2091 | lizmat++ | src/core/IOU.pm:
Get IOU.gist in line with IO::Pathy.gist
15:48 anaeem1 left
jnthn IOU...so pun :P 15:48
15:49 anaeem1 joined
smls doesn't really like non-obvious abbreviations in built-in identifiers, even when cute 15:50
dalek kudo/newio: 7f1dd72 | lizmat++ | src/core/IO.pm:
Make dir(:Str) handle broken symlinks
jnthn isn't sure how visible that type actually is :)
lizmat not really, if you just use .IO
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
which will all .gist and .perl to .IO
*from
smls If people don't need to write it out often, what would be the harm in giving it a longer name? 15:52
So people don't get confused when they *do* see it.
lizmat something like IO::DoesNotExist ? 15:53
15:53 anaeem1 left
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
15:54 rindolf joined
smls IO::Unknown ? 15:54
lizmat it's not unknown
jnthn And it may exist :)
lizmat it's known to not exist
jnthn Oh
lizmat like "foo".IO.open(:w) and the file doesn't exist 15:55
15:55 laouji left
jnthn IO::Nonexistent :) 15:55
15:55 laouji joined
smls IO::NonExisting 15:55
jnthn's is better
jnthn And yeah, the name made me guess wrongly what it's for 15:56
15:56 laouji left
jnthn I read it as "I owe you" and thought it was soemthing that could, if needed, give you an IO object :P 15:56
lizmat well, it does that too 15:57
and if it can find one, it will return that
.IO basically maps to IOU.new()
jnthn Oh...but...that doesn't mean it doesn't exist?
donaldh undefined
jnthn "a-file-that-exists".IO should really not map to IO::Nonexistent :)
lizmat if it can't find it, it will return you an actual IOU object 15:58
and it doesn't
jnthn And if it can find it?
lizmat "existsing_file".IO maps to IO>>File
IO::File
jnthn Ah
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
smls why can't the IO constructor do this itself?
timotimo what do DBM modules have to do?
lizmat smls: because it lives in Cool, and Cool doesn't know about IO 16:00
smls but it knows about 16:01
but it knows about IOU?
lizmat yeah 16:02
smls because IO is a role?
16:04 anaeem1_ joined
lizmat well, yeah, but only for smartmatching, really 16:04
16:07 anaeem1_ left, anaeem1 joined
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
Not blaming lizmat for that; maybe ther *is* no really elegant solution...
nine_ Really, IO is _hard_
smls s/elegant/elegant and at the same time practical/ 16:10
16:10 laouji joined, rurban left 16:11 anaeem1 left
jnthn Separating different things out by type is fairly consistent Perl 6 approach to things 16:14
And coercions are allowed to produce an appropriate subtype
So .IO producing an appropriate thing that does the IO role feels fairly natural to me. 16:15
16:15 laouji left 16:16 larion left
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:17
lizmat smls: suggestions for improvement are welcome 16:18
smls I leave that to you smart people :P
jnthn I suspect this may get cleaner if we get .TypeNameHere coercion stuff working better 16:19
16:19 adu left
b2gills TimToady: I think that perhaps the reduction that should be suggested for JortSort is [!after] ( possibly in addition to [<=] and [le] ) 16:22
PerlJam smls: smart people make strange things :) 16:24
16:30 mr-foobar joined
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…»
nine_ ^^^ bug?
16:33 zakharyas left
smls jnthn: Is ".TypeNameHere" supposed to be special syntax, rather than a method call? 16:33
jnthn smls: I've not really got a clear answer on that :( 16:34
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
jnthn Yeah, but question is how we come to do that invoke
smls ...and whether the built-in ones should make use of that mechanism, for consistency (and possibly easier documentation) 16:36
Also, I wonder if syntax highlighters should highlight the "Int" in "$number.Int" like a routine or like a typename. 16:37
16:39 diana_olhovik_ left
dalek kudo/newio: 0999eb3 | lizmat++ | src/core/ (7 files):
Delegate .IO object creation to a helper sub

Instead of abusing IOU.new for that.
16:39
b2gills coerce has been previously discussed on #perl6 : irclog.perlgeek.de/perl6/2015-01-23#i_9992284 with talk about `multi COERCE ...` starting at 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?
yoleaux smls: I'll pass your message to moritz.
TimToady b2gills: I thought about [!after], but decided clarity was better served by [<=> 16:45
er [<=]
b2gills jnthn: how well would Rakudo on Moar handle dozens to several hundred `multi sub COERCE (...){...}` ?
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 kjs_ left
jnthn b2gills: Depends how many of them you ever actually call 16:47
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
jnthn TimToady: Is $x.TypeName considered syntactic in some sense?
hoelzro b2gills: I mentioned it a few times, but it was probably later
TimToady we've considered that in the past, and could still decide that if we wanted to
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"
TimToady currently you can do $x."$sometype"
jnthn Yeah, that would umambiguously mean method call if we make $x.SomeType syntactic. 16:50
TimToady $sometype() also works under 'invoke'
jnthn Right
I'm still ever so slighlty bothered about the invoke approach. 16:51
Because if you end up writing a type you want to be invokable, you find it doing odd things on coercion
TimToady I guess the question is whether a mutual fallback can 1) prevent mutual recursion and 2) be implemented efficiently
jnthn And if you write an invoke for coercions you find out your object is invokable
And you might want both :) 16:52
smls jnthn: gotta remember to only define the coercion-invoke for the type object (:U)
jnthn Which is of course possible with a multi...
TimToady well, but this invoke is only on :U
16:52 [Sno] left
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? )
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 smls left
TimToady method INCOMING 16:54
jnthn multi method coerce(Str $s) { ... } # not too bad
But yeah, the fallback thing gets...odd. 16:55
16:55 Ven left
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 )
jnthn So we probably have to pick one as primary and one as fallback-based
TimToady b2gills: that means multi-stage coercion, which is probably evil 16:56
b2gills not if it is a single large multi sub
TimToady jnthn: well, either way that means monkey patching
b2gills s/large/large set of/
TimToady b2gills: why not just write your own routine then? 16:57
does it really want to use the coercion syntax? <shrugs>
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
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 alini left
TimToady we could in either case install a backup in a global coerce, rather than falling back to the other end 16:59
but the primary would not need the large multi
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...
And yea, a gobal COERCE fallback could handle that.
TimToady which is b2gills's arguemnt 17:00
jnthn *nod*
TimToady which I half buy :)
I'm okay with that approach if 1) we don't lose coercions through visibility, and 2) it can be efficient
b2gills actually its hoelzro's argument from January 17:01
TimToady but it sounds kinda megamorphic
lizmat jnthn: IO::NonExistent or IO::Nonexistent ?
TimToady nod, hoelzro++
jnthn lizmat: nonexistent is one word, afaik...
TimToady IO::NotThere
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)
jnthn IO::Noes
skids IOOOPS :-)
lizmat non-existent is in my dictionary, nonexistent is not
TimToady IO::ThereItWas-GoneCompletely
lizmat very funny
17:03 adu joined
TimToady is nonplussed 17:03
lizmat decides to stick to IOU
at least until I have a better idea
TimToady EIEIO
geekosaur IO::Here-Today-Gone-TomIOrow
TimToady Existence Is Existential IO
PerlJam IOU sounds like a Promise to me :) 17:04
jnthn
TimToady me2
jnthn I like IO::NotThere or IO::Nonexistent best so far.
PerlJam aye, me too
TimToady IO::NotThereLastIChecked
jnthn TimToady: Precise, but long. :)
PerlJam IO::WAT
b2gills one thing I don't like about file-systems is that it is full of race conditions 17:05
17:05 raiph joined
donaldh IO::DontKnow 17:05
TimToady IO::ProllyNot
donaldh IO::Heisenberg
TimToady IO::Defiled
jnthn b2gills: Do you have a file I can read to learn about that? Oh...wait... 17:06
TimToady introspection is a filesystem smell
b2gills I did but I unmounted that partition
donaldh IO::Schrodinger
TimToady cat that file!
tail -f shoulda been called 'dog' 17:07
do we have a :a open that guarantees seek on systems that can do that?
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 )
TimToady cf rosettacode.org/wiki/Append_a_recor..._text_file
lizmat my $mode := ($rw || $w) ?? 'w' !! ($a ?? 'wa' !! 'r' );
I assume nqp::open knows what to do with "wa", jnthn ? 17:09
TimToady we need a :wah option
donaldh we suuport :r :w :wa
PerlJam as long as we can have more than one :wah
geekosaur :wat
TimToady text mode?
lizmat checks the oxygen supply
TimToady no we should use that for binary :)
donaldh unfort we don't support :rw which would be nice for mmap 17:11
dalek kudo/newio: 3871ffe | lizmat++ | src/core/IO (2 files):
Make it IO::Huh

At least until the bikeshedding stops
donaldh :)
PerlJam lizmat++
jnthn lizmat: I...hope so :) 17:13
lizmat: On moar it knows about r, w, and wa 17:15
17:15 laouji joined 17:19 kjs_ joined
dalek ast/newio: 03118e6 | lizmat++ | S02-types/WHICH.t:
IOU is now IO::Huh
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: en.wikipedia.org/wiki/Unicode_equi...ifferences
17:20 laouji left
b2gills which means there may have to be some compatibly code written if Rakudo is ported to such a system, especially after NFG 17:21
TimToady probably need to distinguish buf filenames from str 17:24
17:25 _mg_ joined
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?
nwc10 o/
moritz .tell smls ideally on both, and ideally automatically inserted in one place
yoleaux moritz: I'll pass your message to smls.
dalek p: 54d3cf5 | donaldh++ | src/vm/jvm/QAST/Compiler.nqp:
Don't run CallFrame.leave twice when phasers throw - on JVM

Fixes RT #121935
17:28
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...?id=121935
dalek kudo/nom: 316da1c | TimToady++ | src/Perl6/Grammar.nqp:
better guess at missing vs malformed arg
17:29
ast: 44954ad | TimToady++ | S03-operators/set.t:
missing arg message updates
kudo/newio: 4a23ce1 | lizmat++ | / (5 files):
Final changes for IOU -> IO::Huh change
17:32
17:32 diana_olhovik joined
moritz IO::Huh? 17:33
moritz didn't backlog
lizmat got fed up with hilarious bikeshedding
moritz very understandable 17:34
timotimo i'm glad lizmat has the last laugh on this one :)
... for now
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 c: 7e1e631 | moritz++ | lib/Type/Cool.pod:
Cool: lines, roots
c: 1de8ac1 | moritz++ | lib/Type/Cool.pod:
Cool.truncate
c: 765be8f | moritz++ | lib/Type/Cool.pod:
Cool.comb
kudo/nom: 86242c8 | lizmat++ | src/core/IO (2 files):
Move IOU to IO::Huh to make life easier
17:36
kudo/nom: 30df1a3 | lizmat++ | tools/build/ (2 files):
Make life easier again
17:36 Kristien joined 17:37 kjs_ left 17:38 donaldh left 17:39 virtualsue left 17:40 mohij joined
dalek kudo/newio: 316da1c | TimToady++ | src/Perl6/Grammar.nqp:
better guess at missing vs malformed arg
17:40
kudo/newio: 86242c8 | lizmat++ | src/core/IO (2 files):
Move IOU to IO::Huh to make life easier
kudo/newio: 30df1a3 | lizmat++ | tools/build/ (2 files):
Make life easier again
kudo/newio: f048675 | lizmat++ | src/Perl6/Grammar.nqp:
Merge branch 'nom' into newio
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.
TimToady
.oO(had unfortunate happenstance)
17:42
17:43 telex left 17:44 telex joined 17:45 espadrine left
jnthn
.oO( here's ur heisenfile )
17:47
lizmat++ # actually getting stuff done :)
Kristien hi 17:49
mohij o/ 17:51
17:54 dakkar left
skids Now we just need a backronym for Huh. :-) 17:56
17:59 alini joined
PerlJam I thought we just got 2 of them? 18:01
timotimo can we do var args? 18:04
in nativecall, i mean
18:05 raiph left 18:06 brrt joined
timotimo i know dyncall can handle it 18:06
18:10 raiph joined 18:12 [Sno] joined 18:15 rurban joined
TimToady
.oO(handle underplays hurt)
18:16
.oO(hurt underlays handle)
.oO(happy until hacked)
18:17
TimToady should stop perseverating...
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:25
jnthn timotimo: Not sure we implemented that 18:26
18:26 virtualsue joined
timotimo well, i have a use case for it now :) 18:26
[Coke] m: package Perl5:Perl6::Java:C# ovid analogy
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 18:31 brrt left 18:32 Rounin joined, Kristien left 18:34 virtualsue left 18:35 virtualsue joined
jdv79 moritz: doc.perl6.org/routine/parse - is that cool or not? i'm a little unsure with how these docs work. 18:36
18:37 _mg_ left
jnthn That looks a little funky to me... 18:38
18:42 virtualsue_ joined, spider-mario left
jdv79 i thought i'd try my hand at helping with docs and that's the first major wt.. thing i tripped on. 18:43
18:44 virtualsue left, virtualsue_ is now known as virtualsue
jdv79 i'm a little confused about the overall org of the docs too. but i'm about to head out to lunch. 18:45
timotimo well, we can set the call convention and dyncall knows DC_CALL_C_ELLIPSIS and DC_CALL_C_ELLIPSIS_VARARGS 18:47
18:49 fhelmberger left 18:51 raiph left 18:56 pierrot left 19:00 pullphinger joined 19:02 alini left
pyrimidine lizmat++ # IO::Huh and not bikeshedding :) 19:07
19:10 virtualsue left 19:11 FROGGS joined 19:13 Kristien joined 19:16 spider-mario joined 19:17 rindolf left 19:21 virtualsue joined 19:23 larion joined
moritz jdv79: there seems to be duplicate docs for Grammar, one in lib/Type/Grammar.pm, one in lib/Language/grammars.pod 19:31
jdv79: IMHO the former is the proper location
jdv79: unifying the docs would be very welcome
jdv79: I've created github.com/perl6/doc/issues/58 for that 19:35
19:44 _mg_ joined
nwc10 jnthn: we seem to be missing some more basic tests for sized ints. In that, this is on PPC: 19:49
FROGGS tadzik: github.com/tadzik/perl6-MPD/pull/1
nwc10 $ ./perl6-m -Ilib -e 'my int $i = 3; say $i'
3
$ ./perl6-m -Ilib -e 'my int16 $i = 3; say $i'
0
nwc10 can't find a spectest failing because of *that*
the spectest that fails is for a bound alias to it
timotimo i don't think we do sized ints ... at all yet?
tadzik FROGGS: thanks :) 19:50
timotimo except for CStruct members
nwc10 timotimo: you're so last week :-)
github.com/perl6/roast/commit/11c7...652d588a03
timotimo oh 19:51
neato
nwc10 m: my int16 $i = 3; my $a; $a := $i; ++$a; say $i
camelia rakudo-moar 30df1a: OUTPUT«4␤»
nwc10 that's the test
on PPC, $i is read as 0
the "have" output is 1, not 4 19:52
and it is explained by the read from $i being 0
what this suggests is that the write is to the first 2 bytes of the 8 byte union
but the read is either the last 2 bytes
er, wait
it would be a write of 64 bits
and a read of 16 19:53
but I have only proven this correct, not tested it. Sort of. :-)
FROGGS ahh, but yeah, would explain it perfectly
nwc10 it's my working hypothesis. I'm just too knackered to investigate 19:54
skids timotimo: the most workingest sized ints currently are members of bufs. 19:55
TimToady b2gills: since the task is now explicitly one of satire, I've upgraded the task to specifically disrecomment [!after] :) 19:57
*mend
skids m: buf32.new(-2)[0].say # wonder what that says on PPC 19:58
camelia rakudo-moar 30df1a: OUTPUT«4294967294␤»
nwc10 4294967294 19:59
TimToady rosettacode.org/wiki/JortSort#Perl_6 if you're following along at home
skids m: my int16 $i = 0x1234; my $a; $a := $i; ++$a; say $i.base(16) # or that
camelia rakudo-moar 30df1a: OUTPUT«1235␤»
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:01 Klaudioh is now known as Ziemniak
nwc10 jnthn: this code: $ ./perl6-m -Ilib -e 'my int16 $i = 3; say $i' 20:06
0
dalek pan style="color: #395be5">perl6-examples: ba845d4 | paultcochrane++ | htmlify.pl:
Extract source code reference pod into own routine
perl6-examples: 106af96 | paultcochrane++ | htmlify.pl:
perl6-examples: Extract title info if we have pod in the file
20:06 dalek left
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:06
20:07 dalek joined, ChanServ sets mode: +v dalek
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
nwc10 jnthn: I have fprintf()s in it, and it's not hit. The subsequent ++ on the aliased version *does* use it 20:08
also, this variation doesn't write using MVM_nativeref_write_reg_or_lex_i 20:10
$ ./perl6-m -Ilib -e 'my int16 $i; $i = 3; say $i'
0
20:10 pullphinger left
nwc10 it's only ++ and -- 20:10
20:10 espadrine joined
nwc10 so, that's the immediate cause of the spectest failure on big endian 20:11
but I don't know why the codegen doesn't go through the right place
[ptc]: are you being cruel to dalek? :-)
skids poor dalek. Blame yoleaux for eating all the botsnacks. 20:12
20:14 kjs_ joined 20:15 darutoko left 20:21 _mg_ left
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:23
20:24 swarring joined, swarring left, dwarring joined
jnthn nwc10: Note that the assignment doesn't go through native refs whenever we can avoid it 20:25
[ptc] nwc10: bwahahaha!
jnthn nwc10: 'cus creating a ref only to immediately deref it would be kinda sub-optimial
nwc10: So it seems it's the immediate store case that's actually busted.
nwc10 jnthn: OK.
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 rl6-roast-data: 4d8579a | coke++ | / (9 files):
today (automated commit)
PerlJam m: class C { proto submethod BUILD(|) {*}; multi submethod BUILD($x) { } }
camelia rakudo-moar 30df1a: OUTPUT«===SORRY!===␤Package 'C' already has a Method 'BUILD' (did you mean to declare a multi-method?)␤»
PerlJam So ... at the very least that message is LTA 20:29
20:30 muraiki left
PerlJam (I don't have a real use-case, I was just playing around and noticed this) 20:30
dalek ast: c978a87 | coke++ | test_summary:
avoid unnecessary differences in output
20:33
TimToady pictures a Swiss cheese with more holes than cheese... 20:37
geekosaur has seen a few 20:38
Kristien I don't like Swiss cheese so I always cut out the holes. 20:39
TimToady Kristien++
b2gills TimToady: I was toying with adding notes about [<=] [le] and [before], but it messed up the joke 20:50
m: say [!after] 1,'2',3.0,4e0,5+0i # this too 20:51
camelia rakudo-moar 30df1a: OUTPUT«True␤»
b2gills m: say [!after] <a b c c d> 20:52
camelia rakudo-moar 30df1a: OUTPUT«True␤»
Kristien my wonderful commit messages lately: gist.github.com/rightfold/38196a8463b91b0ebec8 20:53
20:54 laouji joined
TimToady
.oO(more, but not much more...)
20:54
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:55
TimToady the typical REXX programmer, on the other hand, cannot be compelled to write less than three paragraphs each time... 20:56
20:56 diana_olhovik left 20:58 laouji left
timotimo Kristien: you're going against the lovely tradition of spelling "more" "(More)" 21:00
:S
Kristien Moar
21:02 bjz left 21:03 abraxxa left
Kristien WTB PL/Perl 6 21:04
TimToady sounds like a Sixth Generation Language 21:06
dalek pan style="color: #395be5">perl6-examples: 8a792c8 | paultcochrane++ | bin/run-examples.pl:
Update documentation to new command line args
pan style="color: #395be5">perl6-examples: 6c751b7 | paultcochrane++ | categories/interpreters/brainfuck.p6:
Brainfuck example now takes a default program
pan style="color: #395be5">perl6-examples: 4027977 | paultcochrane++ | bin/run-examples.pl:
Add hailstone-sequence to list of memory hogs
timotimo just changed the description and URL shown at the top of github.com/perl6/specs 21:08
Kristien design.perl6.org/ should have a larger line height 21:10
21:10 gfldex left
Kristien like 18px (pretty readable) or 22.6524758px (ideal) 21:11
timotimo do you know where you can submit a patch for that? :)
i'm not good at html and/or css :(
Kristien no!
timotimo well, neither do i 21:13
Kristien github.com/perl6/perl6.org perhaps 21:14
no
some pod to html transformer
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␤␤»
timotimo mu/util/update-design.perl6.org.sh
this updates things
Kristien github.com/perl6/mu then?
timotimo docs/feather/syn_index.html 21:16
21:16 colomon left
timotimo yes, in the mu repository 21:16
Kristien ok let's see
fork this shit!
timotimo :) 21:17
thank you
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:18 rurban left 21:19 Rounin left, muraiki joined
timotimo Repository Of All Spec Tests, is this now the official backronym for "roast"? 21:19
Kristien I created a PR 21:20
21:20 Sysaxed left
timotimo for perl6/mu? i don't see it :( 21:20
Kristien github.com/rightfold/mu/pull/1
wait
what
I created a PR in the fork
nice UI github good job 21:21
timotimo :D
i've done this mitsake before, too
Kristien ok now it's good
timotimo how does it look with the synopsis documents themselves? 21:22
21:23 donaldh joined
Kristien incredible 21:24
timotimo %)
21:25 mohij left
PerlJam That's a pretty specific line height. 21:25
Kristien it's the font size times the golden ratio
timotimo i'll put the change into the live .css file to check it out 21:26
Kristien good luck
79797 is a nice commit ID 21:27
dalek : e9ddbf6 | rightfold++ | docs/perl.css:
Increase line height for better readability
: 79797f5 | rightfold++ | docs/perl.css:
Merge pull request #1 from rightfold/rightfold-css-patch

Increase line height for better readability
: 3ddc5fb | moritz++ | docs/perl.css:
Merge pull request #8 from rightfold/master

Increase line height for better readability
21:27 kjs_ left
timotimo oh 21:27
design.perl6.org/ - already live 21:28
21:28 raiph joined
nine_ jnthn: your second patch seems to help, indeed! gist.githubusercontent.com/jnthn/e...tfile1.txt 21:29
timotimo good news! 21:30
21:33 colomon joined
timotimo hmm, the questions were extremely quiet in pm's talk 21:34
21:35 colomon left
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.
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
jnthn nine_: But it never actually works like that. :) 21:36
21:37 Hor|zon left
timotimo i actually had to turn my output device up to 150% to even understand the talk 21:38
the recording was quite quiet
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:41
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:42
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:45
moritz huh, looks fine here 21:46
ggoebel111111114 wondering if pmichaud was alone in expressing his opinion that synopses ne specification
moritz ah, I see what you mean. No, just not patched yet 21:47
jnthn ggoebel111111114: No, there's quite a bit of agreement
nine_: Pushed the fix. 21:48
nine_: Thanks for trying it out :)
dalek p: 4892ff1 | donaldh++ | src/vm/jvm/runtime/org/perl6/nqp/runtime/IndyBootstrap.java:
Guard two remaining invokee lookups on JVM.

I had these ready to commit but FROGGS++ beat me to one of them. Fixes the NPE in RT #120254.
21:49
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...?id=120254
nine_ jnthn: thanks for fixing :) This one's been haunting me for two months. 21:51
Kristien > You are now a member of Perl 6! 21:53
woo
21:54 dpuu joined 21:55 dolmen joined
hoelzro \o/ 21:56
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?
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 22:03 J-L joined, virtualsue left, virtualsue_ is now known as virtualsue, skids left 22:04 pullphinger joined
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.)
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
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␤»
PerlJam J-L: like that.
22:09 adu left
PerlJam J-L: note that ^methods will give you actual method objects that just happen to stringify to the method name. 22:09
J-L Excellent, PerlJam! Thank you. (I tried .methods(), but I didn't realize the caret in "^methods" was needed. 22:11
22:13 colomon left
J-L Is there any documentation that talks about "^" methods? I tried looking up "^methods" in google, but google seems to ignore the "^". 22:13
dalek kudo/nom: a341816 | lizmat++ | src/core/Array.pm:
Remove stray unneeded/unused parameter

Seems to be a copy-pasto from 2011
22:14
timotimo lizmat: oh, huh, that could have impacted performance negatively in the past 22:15
in much of the past
lizmat yeah,
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
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:17
PerlJam J-L: S12:2350 22:19
synopsebot Link: design.perl6.org/S12.html#line_2350
Mouq J-L: It's fairly incomplete, but also doc.perl6.org/language/mop
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.
lizmat jnthn: does a "is copy" on a slurpy hash make sense? 22:25
sub a(*%h is copy) {}
feels superfluous, as the slurpy already creates a container, no? 22:26
22:29 atweiden joined
jnthn lizmat: Yeah, feels odd to me 22:29
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 22:34 colomon joined
FROGGS jnthn: and the <unit-outer> is not meant to make it into the .jar, right? 22:35
22:35 Hor|zon joined
FROGGS jnthn: only up to <unit>... that's what happens here at least 22:35
jnthn FROGGS: Yes 22:36
FROGGS: We actually set unit-outer on unit dynamically as part of loading the setting 22:37
22:40 Hor|zon left
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:43
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 p: 0c4096e | donaldh++ | src/vm/jvm/runtime/org/perl6/nqp/runtime/Ops.java:
Guard against null object in getobjsc on JVM.

This fixes the NPE in RT #123002.
22:46
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...?id=123002
dalek kudo/nom: 6cf53b8 | lizmat++ | src/core/ (4 files):
Use coercion instead of "is copy"
kudo/nom: ba45b84 | lizmat++ | src/core/ (3 files):
Remove superfluous "is copy" traits
kudo/nom: a3bdb02 | lizmat++ | src/core/Temporal.pm:
Use coercion, but we still need "is copy" anyway
lizmat and with that, I'm going to get some sleep&
jnthn o/ lizmat 22:48
Kristien found this gem today: i.stack.imgur.com/WCbQ4.png 22:53
I don't know where I got it from.
22:57 wicope left 22:59 mr-foobar left 23:00 mr-foobar joined
dalek kudo-star-daily: 59df817 | coke++ | log/ (9 files):
today (automated commit)
23:05
23:07 cognominal left 23:08 cognominal joined
J-L How do you append strings in Perl 6? 23:09
23:09 BenGoldberg joined
J-L You append with ~, correct? 23:09
23:09 pullphinger left
japhb J-L: That's concatenate, if that's what you mean. 23:10
J-L Yes, sorry.
japhb Prefix ~ does stringify, FWIW 23:11
(Concatenate being infix ~)
J-L I'm trying this but I get an error: sub appender(Str string1, Str string2) { string1 ~= string2; string1.say }
japhb Arguments are not writable by default. 23:12
J-L The error is: ===SORRY!=== Error while compiling <unknown file> Missing block.
japhb You need 'is rw' or 'is copy', depending on whether you want it to be locally modified, or modified in the caller.
Also, you have no sigils.
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;
camelia rakudo-moar a3bdb0: OUTPUT«ab␤» 23:14
japhb J-L: ^^
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:16
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:17
23:19 virtualsue_ joined 23:20 atweiden left
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:20
23:21 virtualsue left, virtualsue_ is now known as virtualsue 23:22 virtualsue left 23:23 kaare_ left
J-L Here's a NativeCall example from github.com/tony-o/perl6-win32-time...rmance.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
23:27 kaare_ joined 23:28 eternaleye left 23:31 telex left, eternaleye joined 23:32 telex joined
Kristien Time to sleep. Goodbye friends! 23:33
23:33 Kristien left
raydiak J-L: are you using the Parrot backend? 23:35
retupmoca J-L: can you 'perl6 --version' ? 23:36
yoleaux 3 Mar 2015 19:39Z <raydiak> retupmoca: github.com/retupmoca/P6-XML-Canonical/pull/1
retupmoca raydiak++ # ws fix
jnthn I tired it out on the Rakudo on Moar I have here and it worked out fine 23:37
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:38
jnthn dalek y u no report my commit... 23:39
dalek kudo/nom: 07cea90 | jnthn++ | src/Perl6/Optimizer.nqp:
Be smarter optimizing native return value decont.

This improves the code generated for ++ and -- on natives, and should thus make them more appealing to the inliner.
23:40
jnthn ah, just slow
japhb timotimo: It looks like the index at t.h8.lv/p6bench/ is out of date. What generates it? 23:42
23:43 donaldh left
jnthn gets some rest & 23:46
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:47
raydiak and retupmoca: 'perl6 --version' gives me: This is perl6 version 2014.01 built on parrot 5.9.0 revision 0 23:48
raydiak the parrot backend is no longer supported...I'd highly recommend the most recent moar available to you 23:49
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
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 cognominal left
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:53
japhb J-L: rakudo-star includes the backend(s), nqp (the middle layer), rakudo (the compiler), and a bunch of useful modules. 23:54
It's a "distribution", more batteries-included style.
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:56
It makes me think that rakudo-star-2014.12.1-moar.msi doesn't have as much as rakudo-star-2014.03.msi . 23:57
timotimo japhb: nothing guarantees it; i built it with ls and vim and search&replace ... 23:58
23:58 laouji joined