»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg camelia perl6: ... | irclog: irc.perl6.org | UTF-8 is our friend!
Set by sorear on 25 June 2013.
TimToady so, I guess everyone in the Americas is out partying tonight... 03:32
rjbs Out in my parts, they're all looking miserably out their windows. 03:34
daxim paste.scsys.co.uk/304593 Ambiguous call problem 05:55
am I doing something wrong?
raydiak daxim: I don't think return type is considered in any way for multi dispatch, only params...so it can't tell which one you want to call 06:13
lue yeah, only the signatures count. Besides, I don't think there exists a very sane way to use return types in MMD anyway. 06:15
daxim this means I have to make a different name for each type 06:16
next problem: paste.scsys.co.uk/304605 expected 'Array[Int]' but got 'Array' 06:21
raydiak not sure, but I think something about typed arrays is not done yet...getting rid of [Int] will probably fix it 06:26
daxim that's not a fix, but papering over a shortcoming (if typed arrays are really not done yet) 06:27
lue daxim: return [4,5,6]; says nothing about the type of Array, despite how obvious it is to you :)
daxim okay, does that mean I have to help out the system in determining that? 06:28
if yes, how? I already tried [Int(4), …]
lue r: my @a is Array[Int] = 1,2,3; say @a.perl; say @a.WHAT; 06:29
camelia rakudo-moar 0d2b68: OUTPUT«use of uninitialized value of type Any in string context␤Unhandled exception: No exception handler located for warn␤ at <unknown>:1 (/home/p6eval/rakudo-inst-2/languages/perl6/runtime/CORE.setting.moarvm:print_exception:4294967295)␤ from src/gen/m…»
..rakudo-jvm 0d2b68: OUTPUT«use of uninitialized value of type Any in string context␤Unhandled exception: use of uninitialized value of type Any in string context␤ in warn (gen/jvm/CORE.setting:677)␤ in warn (gen/jvm/CORE.setting:673)␤ in Str (gen/jvm/CORE.setting:1023)␤ …»
..rakudo-parrot 0d2b68: OUTPUT«use of uninitialized value of type Any in string context in any throw at src/Perl6/World.nqp:2442␤␤use of uninitialized value of type Any in string context␤===SORRY!=== Error while compiling /tmp/tmpfile␤Can't use unknown trait…»
Timbus dispatch based on return type. oh boy 06:30
lue daxim: anything more complex with arrays and such, such as shaping or typing, is barely implemented if at all at the moment :( It's easiest to just go with Array instead of Array[Int] right now
daxim a meta observation: how come that always the first thing I try does not work? next year, surely, will be the year of desktop linux^W^Wperl6 06:32
lue daxim: depends on what type of stuff you're doing. :) S09 is one of the really weak spots at the moment. 06:33
FROGGS jnthn: I have a curiosity, and I'm sure you won't like it 07:35
FROGGS jnthn: when trying to run panda's bootstrap.pl using perl6-m, it hangs in Perl6::ModuleLoader when trying to compile Panda::Ecosystem 07:36
jnthn: however, when I add DEBUG() statements, it does not hang, but complains (correctly) about "When pre-compiling a module[...]" 07:37
which scares me a bit
b^_^d /win 12 07:58
jnthn r: my Int @a = 1,2,3; sub foo(Int @x) { say 'ok' }; foo(@a) 09:30
camelia rakudo-parrot 0d2b68, rakudo-jvm 0d2b68, rakudo-moar 0d2b68: OUTPUT«ok␤»
jnthn r: sub foo(Int @x) { say 'ok' }; foo(Array[Int].new(1,2,3)) 09:31
camelia rakudo-parrot 0d2b68, rakudo-jvm 0d2b68, rakudo-moar 0d2b68: OUTPUT«ok␤»
jnthn daxim: ^^ is the right way. They are *nominally* typed. 09:32
daxim: Using a feature wrongly and then saying it doesn't work is kinda silly. 09:33
FROGGS jnthn: do you see my msg from two hours ago? 09:34
moritz that said, there are lots of corners where typed arrays don't behave well 09:35
jnthn moritz: There are, and I'm sure for newcomers it can be a surprise that typed arrays are nominally typed... 09:36
But folks saying "oh, they're not implemented yet" in response to a program that, even if we implemented all of S09, would still be incorrect, is unhelpful. 09:37
jnthn FROGGS: Yeah, but I ain't gonna be able to look into it today 09:38
FROGGS jnthn: you are not supposed to look into that 09:38
FROGGS you should just say "wth" :o) 09:38
jnthn FROGGS: wth!!??!!! 09:39
moritz jnthn: agreed
FROGGS :o) 09:40
jnthn FROGGS: Sadly, I've no even any guesses on that.
FROGGS: Unless it's some odd exception-y thing
But I kinda hope not. :) 09:41
FROGGS I will debug it further today and will keep you updated once I know more
jnthn k 09:42
jnthn digs into writing the code so he can make the slides so he can give the talk...
FROGGS so he will be famous \o/ 09:43
ohh, wait...
jnthn heh 09:49
grondilu rn: say (1 + *)(2); 10:40
camelia rakudo-parrot 0d2b68, rakudo-jvm 0d2b68, rakudo-moar 0d2b68, niecza v24-109-g48a8de3: OUTPUT«3␤»
grondilu rn: say .(2) for (1, 2) X+ * 10:41
camelia niecza v24-109-g48a8de3: OUTPUT«3 4␤»
..rakudo-moar 0d2b68: OUTPUT«Cannot call 'Numeric'; none of these signatures match:␤:(Mu:U \v: *%_)␤ in method Numeric at src/gen/m-CORE.setting:1010␤ in sub infix:<+> at src/gen/m-CORE.setting:3996␤ in sub infix:<+> at src/gen/m-CORE.setting:3994␤ in block at src/gen/m…»
..rakudo-jvm 0d2b68: OUTPUT«Cannot call 'Numeric'; none of these signatures match:␤:(Mu:U \v: *%_)␤ in any at gen/jvm/BOOTSTRAP.nqp:1212␤ in any at gen/jvm/BOOTSTRAP.nqp:1202␤ in method Numeric at gen/jvm/CORE.setting:1010␤ in sub infix:<+> at gen/jvm/CORE.setting:3996…»
..rakudo-parrot 0d2b68: OUTPUT«Cannot call 'Numeric'; none of these signatures match:␤:(Mu:U \v: *%_)␤ in any at gen/parrot/BOOTSTRAP.nqp:1219␤ in any at gen/parrot/BOOTSTRAP.nqp:1210␤ in method Numeric at gen/parrot/CORE.setting:1013␤ in sub infix:<+> at gen/parrot/CO…»
grondilu rn: say .WHAT given 1 + 1/Inf 10:47
camelia rakudo-parrot 0d2b68, rakudo-jvm 0d2b68, rakudo-moar 0d2b68: OUTPUT«(Num)␤»
..niecza v24-109-g48a8de3: OUTPUT«Num()␤»
grondilu would have been happy with a Rat 10:52
grondilu std: my $x = 2; $x [R/]= 1; say $x; 11:06
camelia std 09dda5b: OUTPUT«ok 00:01 125m␤»
grondilu rn: my $x = 2; $x [R/]= 1; say $x; 11:07
camelia niecza v24-109-g48a8de3: OUTPUT«0.5␤»
..rakudo-parrot 0d2b68, rakudo-jvm 0d2b68, rakudo-moar 0d2b68: OUTPUT«===SORRY!=== Error while compiling /tmp/tmpfile␤Preceding context expects a term, but found infix = instead␤at /tmp/tmpfile:1␤------> my $x = 2; $x [R/]=⏏ 1; say $x;␤»
timotimo grondilu: rats have integers as their nom and denom, how are they supposed to store an inf in one of these? :( 12:05
FROGGS: can you use gdb?
maybe my gdb python scripts will be of a bit of assistance? 12:06
FROGGS timotimo: I think Int is specced to be able to store Inf as well 12:07
timotimo: I can use gdb, yes
but I am not sure for what I'd need gdb right now :o)
timotimo if i build a frame filter that shows the current file and line of the interpreter in the backtrace 12:08
would that help?
FROGGS I try that perhaps this evening, when I know where I will start looking 12:10
corecatcher slaps timotimo 12:30
grondilu timotimo: I meant that */Inf could return 0.Rat instead of 0.Num 12:35
rn: say .WHAT given 1/Inf
camelia rakudo-parrot 0d2b68, rakudo-jvm 0d2b68, rakudo-moar 0d2b68: OUTPUT«(Num)␤»
..niecza v24-109-g48a8de3: OUTPUT«Num()␤»
timotimo oh. huh. 12:37
corecatcher: "you must log in with services to message this user" 12:40
timotimo corecatcher: check your status window, i sent you an irc invite 12:48
Ven omfg spider-mario est un perl6-eur :o 13:23
spider-mario pourquoi cette surprise ? 13:24
Ven je sais pas, ca me fait juste rire de voir des pseudo d'il y a longtemps
mais oui tant mieux :) 13:25
Util r: my $a = 3; say ++$a; 13:33
camelia rakudo-parrot 0d2b68, rakudo-jvm 0d2b68, rakudo-moar 0d2b68: OUTPUT«4␤»
Util r: my int $a = 3; say ++$a; 13:34
camelia rakudo-moar 0d2b68: OUTPUT«No such method 'STORE' for invocant of type 'Int'␤ in sub prefix:<++> at src/gen/m-CORE.setting:4344␤ in sub prefix:<++> at src/gen/m-CORE.setting:1758␤ in block at /tmp/tmpfile:1␤␤»
..rakudo-parrot 0d2b68: OUTPUT«Cannot modify an immutable value␤ in sub prefix:<++> at gen/parrot/CORE.setting:4348␤ in sub prefix:<++> at gen/parrot/CORE.setting:1762␤ in block at /tmp/tmpfile:1␤␤»
..rakudo-jvm 0d2b68: OUTPUT«Cannot modify an immutable value␤ in sub prefix:<++> at gen/jvm/CORE.setting:4344␤ in sub prefix:<++> at gen/jvm/CORE.setting:1758␤ in block at /tmp/tmpfile:1␤␤»
Util ???
r: my int $a is rw = 3; say ++$a; 13:35
camelia rakudo-parrot 0d2b68, rakudo-jvm 0d2b68, rakudo-moar 0d2b68: OUTPUT«===SORRY!=== Error while compiling /tmp/tmpfile␤Can't use unknown trait 'is rw' in a variable declaration.␤at /tmp/tmpfile:1␤------> my int $a is rw ⏏= 3; say ++$a;␤ …»
timotimo Util: known deficiency :( 13:40
jnthn $a + 1
or $a = $a + 1
timotimo += 1 will work, too 13:42
it will also work inside expressions
r: my int $a = 1; say ($a += 1) * ($a += 1)
camelia rakudo-moar 0d2b68: OUTPUT«No such method 'STORE' for invocant of type 'Int'␤ in block at src/gen/m-CORE.setting:16455␤ in block at /tmp/tmpfile:1␤␤»
..rakudo-jvm 0d2b68: OUTPUT«Cannot modify an immutable value␤ in block at gen/jvm/CORE.setting:16458␤ in block at /tmp/tmpfile:1␤␤»
..rakudo-parrot 0d2b68: OUTPUT«Cannot modify an immutable value␤ in block at gen/parrot/CORE.setting:16705␤ in block at /tmp/tmpfile:1␤␤»
timotimo oh 13:43
r: my int $a = 1; say ($a = $a + 1) * ($a = $a + 1)
camelia rakudo-parrot 0d2b68, rakudo-jvm 0d2b68, rakudo-moar 0d2b68: OUTPUT«6␤»
timotimo hm, so it's pre-increment always
that makes sense
jnthn The issue is simply that we need a way to refer to natives container-style, *but* that we can also inline away in the common cases (like ++), otherwise we'll end up with $a++ being a load slower than $a = $a + 1... 13:44
...so it's one of those annoying "harder than it looks" problems. 13:46
FROGGS to its defense it would be easy to fix this wrongish 13:48
Util timotimo, jnthn, FROGGS: Thanks! 14:06
[Coke] moritz: planeteria.org/perl6/ has been updated. Give it a few hours to refresh, i guess. 14:12
timotimo thank you, [Coke] 14:17
you can also remove Konrad Borowski from the subscriptions, as that just 404s nowadays :( 14:18
[Coke] timotimo: removed. again, may take some time for the UI to reflect. 14:36
timotimo sure 14:37
thank you
TimToady FROGGS: not only would it be easy to fix wrongish, but C and JVM have very different ideas of what is "wrongish" 14:43
Gosling once told me that he intentionally designed the JVM to make it impossible to implement C on it
mathw I can see why he'd take that approach 14:45
Although I take issue with the word 'impossible'. Maybe impossible to implement C in a way that runs at a decent speed... 14:46
mathw But getting away from a variety of C-ish things is a primary driver in my choice of programming languages these days. So long, C++... 14:47
tadzik I think the pointer arithmetic itself may be quit impossible
as in: take a pointer to this struct and call whatever's 4 bytes further 14:48
mathw tadzik: nonsense, you can simulate a memory layout for all your variables in a byte array 14:48
tadzik oh, heh
I guess
timotimo time for ASM.jar 14:49
oh, wait, that already exists
mathw Not very practical I'll grant you, but it's *possible*
tadzik well, if you get creative enough, you can write an x86 emulator and then a compiler for it :)
mathw s/creative/masochistic/
tadzik and then turtles all the way down
mathw surely it'd be easier to write an ARM emulator 14:49
and then just use GCC
mathw (yes you could use GCC with your x86 emulator, but ARM's instruction set is smaller) 14:51
timotimo mips!
jnthn
.oO( many instructions per second? )
14:53
mathw A friend of mine's developing a microarchitecture in his spare time, I could use that 14:54
...well, maybe after it's Turing-complete, not sure it is yet 14:55
timotimo doesn't take much :))
[Coke] anyone working on rakudo-turing ?
jnthn mathw: Well, x86 showed that if you design...well...enough, you can end up with a single instruction being Turing-complete :P 14:56
mathw jnthn: for some value of 'well', sure... 14:57
timotimo gist.github.com/timo/544d3d75bd92932e635d - current status of my moarvm heap analyzer 15:36
tadzik goo.gl/JN71PV stables :) 15:40
tadzik timotimo++ # awesome stuff 15:40
[Coke] timotimo++ 15:57
hoelzro timotimo++ # nice! 16:19
hoelzro is back
FROGGS wb hoelzro
hoelzro .tell btyler I did a little work on using ufo with different backends; let me know if you encounter any surprises
yoleaux hoelzro: I'll pass your message to btyler.
hoelzro thanks yoleaux! 16:20
btyler hoelzro: no surprises, your ufo fork was just what I was looking for. the vm autodetection is a nice touch :) 16:36
yoleaux 16:19Z <hoelzro> btyler: I did a little work on using ufo with different backends; let me know if you encounter any surprises
hoelzro btyler: glad you could make use of it =) 16:36
FROGGS is there a PR for masak/ufo ?
hoelzro FROGGS: yes 16:40
FROGGS hoelzro++ 16:41
timotimo except for "analyze the gen2, too" and "diff between two statistics", what else should i try to put into the heap analyzer? 16:45
TimToady tell me which pointer I should've freed earlier to release a bunch of memory? 16:48
TimToady I guess what would really be interesting to know (and hard to calculate) is how long we held onto each pointer after the last time any of its dependents was accessed 16:50
TimToady and things like how often we hang onto an entire list when we'll never visit the head again 16:52
FROGGS ha! 16:59
I know what's wrong with panda 17:00
NOTHING!
FROGGS dir() is supposed to return absolute paths, and it does not 17:00
FROGGS so panda descends into its own lib and tries to install itself when it should build/install ext/File__Find/lib 17:01
timotimo i'm progressively getting sicker :\ 17:03
FROGGS :/
timotimo i shall drive home and wrap myself up in blankets 17:04
but first i shall acquire some tea 17:05
FROGGS and perhaps buy some drugs 17:05
timotimo i have some left at home 17:06
i have some with me right now! \o/
FROGGS \o/ 17:06
take all the things! /o/
dalek nda/moar-support: 53b1d41 | (Tobias Leich)++ | lib/Panda/Fetcher.pm:
fix "my" stupidness
17:08
btyler FROGGS: I'm still seeing a hang on building lib/Panda/Ecosystem.pm on the panda moar-support branch, like you mentioned the other day. is that a different problem? 17:16
FROGGS btyler: it is a different problem but I am sure it will vanish
(at least it will be hidden)
==> Successfully installed File::Find \o/ 17:18
that is its local checkout, but still
FROGGS - $elem := $.SPEC.catfile($!path, $elem) if self.is-relative && self ne '.'; 17:19
+ $elem := $.SPEC.catfile($!path, $elem) if self ne '.';
that is the patch btw in rakduo/src/core/IO.pm
commute & 17:20
timotimo TimToady: what you wished for with regards to the pointers sounds pretty hard from my point of view; i don't exactly have a ways to follow moving objects around 17:47
BenGoldberg gps tracking! ;) 17:48
timotimo well, one could introduce an extra field to MVMObject that is just a counter that the allocator counts up every time it allocates any object 17:50
that way you'd have a global identifier
arnsholt O hai! o/ 18:06
timotimo hey arnsholt! 18:08
how's life?
sjn arnsholt: heya 18:10
arnsholt Life's good. Teaching, thesis writing 18:13
Trying to get callbacks working on JVM
timotimo time to start with diffing the histograms
sjn arnsholt: sent you mail about dconway in Oslo \o/
arnsholt I think I'm mostly there, but JNA keeps yelling at me for some reason
sjn: Cheers!
timotimo d'oh :(
arnsholt Yeah, 'tis a bit annoying 18:15
timotimo finally signs up for GPW2014
i ought to do something 6y there 18:23
hoelzro think I found a mokudo bug 18:38
r: printf '%s - %s'
camelia rakudo-parrot 0d2b68, rakudo-jvm 0d2b68, rakudo-moar 0d2b68: OUTPUT«Too many directives: found 2, but no arguments after the format string␤␤»
hoelzro hmm 18:39
it infinite loops on my machine
timotimo REPL? 18:42
raydiak morning #perl6 18:45
timotimo hey raydiak
raydiak hiya timotimo 18:46
FROGGS ==> Successfully installed panda
timotimo \o/
FROGGS :o)
raydiak w/moar?
timotimo that's the implication
raydiak hooray :)
a question came to mind last night: what happens if you inherit from multiple classes with different reprs? 18:47
timotimo i can't imagine how that would be supported 18:48
raydiak r: class Foo is Array is Str {}; say Foo.new.REPR 18:49
camelia rakudo-parrot 0d2b68, rakudo-jvm 0d2b68, rakudo-moar 0d2b68: OUTPUT«P6opaque␤»
hoelzro timotimo: yes
FROGGS++
raydiak erm, well...what uses a repr other than p6opaque? 18:50
timotimo nothing, afaict
oh 18:51
well CStruct if you do NativeCall
raydiak thought I remembered reading about several different reprs somewhere, but can't recall...perhaps I'm imagining issues which don't exist
eg P6Hash, etc 18:52
timotimo no, that would be VMArray and VMHash
timotimo they are wrapped by a P6opaque if you're in perl6 and exposed directly if you're in nqp 18:52
FROGGS m: say nqp::list.REPR.name
camelia rakudo-moar 0d2b68: OUTPUT«Cannot find method 'name': no method cache and no .^find_method␤ in block at /tmp/fmi6JwoAqv:1␤␤»
raydiak can you create a class which can act as (for example) an array or a string? I guess that'd just be an array with an overloaded .Str method? 18:59
timotimo not necessarily
you may want to just have an attribute that is box_target
raydiak what is box_target? 19:00
timotimo it tells P6opaque where to put native strings/ints/doubles
timotimo you just have to write "has int $foo is box_target;" i think 19:01
raydiak oh neat
dalek kudo/nom: 1ce379e | (Tobias Leich)++ | src/core/IO.pm:
fix result of dir()

This confuddled panda so much, that it tried to installed itself rather then the requested module.
19:03
FROGGS er, s/installed/install/ 19:04
-.-
raydiak FROGGS++ 19:06
colomon FROGGS++ # panda on moar 19:11
FROGGS well, it says that it installed itself correctly, but this seems to be a lie 19:12
btyler yeah, it misses the executable, at least for me
FROGGS there is only the site/lib/panda/state, nothing else 19:13
FROGGS hmpf, panda installs to panda/.work/<mumble>/home/froggs/dev/panda/... 19:18
timotimo heh, oops :) 19:19
hoelzro this code:
.say for @modules>>.name.chars;
is functionally equivalent to .name.chars.say for @modules, right?
timotimo no
it calls .chars on the result of @modules.map: *.name
so it calls .chars on the list, not the individual items 19:20
hoelzro ooooooooooohhhhhhhh
that explains this obscenely large value
thanks timotimo
timotimo and also that you only get one value :)
hoelzro so @modules>>.name>>.chars, then? 19:21
timotimo yeah
TimToady timotimo: I wasn't seriously suggesting you do that; it was just wishing for a pony 19:27
timotimo maybe someone will at some point 19:28
or someone will offer me a big sum of money :)
TimToady hopes timotimo++ isn't coming down what whatever TimToady has, which has so far lasted 18 days... 19:31
timotimo probably not. scratchy throat, runny nose, achey head
seems like a regular old flu
with unfortunate timing
arnsholt Right, at least now I know *why* JNA is complaining 19:33
Next step, how to implement it without codegenning ALL THE THINGS... 19:34
arnsholt Right, I think I can make this work. But that'll be tomorrow methinks 19:50
tadzik FROGGS++ (wizard) 19:51
FROGGS *g*
arnsholt tadzik: With a bit of luck I'll have callbacks working tomorrow or during the weekend. Your asteroids game/SDL stuff still potentially a user for it? =) 19:52
timotimo \o/
arnsholt: can i do anything to help you get a quick start with nativecall on moarvm?
tadzik arnsholt: 'fcourse! What's more, I'm in Oslo next week :) 19:53
hoelzro alright, #perl6 folk! I updated my "Rakudo * modules on Mokudo" gist, now with more accurate results! gist.github.com/anonymous/8982533 19:54
TimToady hoelzro++ 19:55
hoelzro \o/ 19:55
arnsholt timotimo: You can start implementing stuff, if you want to
hoelzro I also prettified the summary
and I included the script I wrote to generate the results
timotimo arnsholt: that seems like a daunting thing to ask of me :P 19:56
hoelzro a good next step would probably be to go through everything on modules.perl6.org
arnsholt timotimo: It's mostly a question of de-Parrotifying the Parrot version, so in one way less complicated than the JVM bits
timotimo hmm 19:57
arnsholt But I think following the path I've taken on JVM should be sound for the Moar version as well
timotimo what file(s) would you point me at in order to get a good overview?
arnsholt The ops, in src/vm/parrot/ops/nqp_dyncall.ops, and the NativeCall REPRs (CArray, CPointer, CStr, CStruct, NativeCall) 19:58
timotimo ISTR not_gerd doing a lot of work on c structure support 19:59
arnsholt Yeah, he did a lot
timotimo i don't really know where that is/went and i haven't seen him online in a long time
arnsholt But he started changing lots of the internal structures, so I'm not sure how much of that stuff fits into the expectations of NativeCall as it is today
arnsholt There are two ops that are needed to implement most of the things: nqp::buildnativecall and nqp::nativecall 20:00
tadzik yeah, not_gerd mysteriously disappeared :(
I hope he's alright 20:01
arnsholt So if you set up those two ops in NQP/Moar, and start building the int/num/string stuff, we're well on our way
timotimo probably swallowed up by finishing his university stuff?
tadzik I'd love to see stuff on JVM, because parallel GC
arnsholt After that, we can start moving the REPRs over and plugging them into the ops
FROGGS omfg /o\ 20:02
tadzik Seeing Parrot taking 200ms to render a frame because GC demotivated me a bit :)
arnsholt Hehe, I can see how that'll happen, yeah
timotimo i should build buildnativecall and nativecall and *then* build the reprs?
that seems backwards to me right now
arnsholt Yeah
FROGGS the million dollar question: what (the hell!) is wrong here? github.com/tadzik/panda/blob/moar-...der.pm#L88
arnsholt int/num/string arguments don't need custom reprs
Which means that you can ignore the REPRs while you get the basic infrastructure working 20:03
timotimo ah, ok
i suppose the test suite will give me a bunch of simple things to try out at first?
arnsholt That functionality is exercised by the first three test files in NativeCall 20:04
Yeah
01-argless.t, 02-simple-args.t and 03-simple-returns.t
Then there's one each for arrays, structs, pointers, and callbacks, and 07-writebarrier.t (which is a terrible name) which tests a third op which can ignore for now 20:05
tadzik: When're you in Oslo next week, BTW? 20:06
FROGGS Compiling lib/Panda.pm to mbc 20:07
===SORRY!===
STable conflict detected during deserialization.
ó.ò
arnsholt timotimo: Oh, and on Moar you don't have to do any codegeneration =)
timotimo oh!
that sounds helpful :) 20:08
arnsholt There's computing struct layouts OTOH, but that can pretty much be stolen outright from Parrot =)
timotimo FROGGS: that error seems to pop up *every*where nowadays :\
FROGGS timotimo: yeah, I was able to work around it in v5 though
arnsholt Codegen is required on JVM since we're a bit further away from raw bytes there
timotimo right 20:09
FROGGS r: "abc" ~ "def" or say(42) 20:11
btyler FROGGS: I hit that when I tried to manually install panda using ufo :(
camelia rakudo-jvm 1ce379: OUTPUT«(timeout)»
( no output )
timotimo j: say "hi"
FROGGS btyler: yeah, now you don't even need ufo for that :P
camelia rakudo-jvm 1ce379: OUTPUT«hi␤»
FROGGS r: shell "abc" ~ "def" or say(42) 20:11
camelia rakudo-jvm 1ce379: OUTPUT«42␤»
..rakudo-parrot 1ce379, rakudo-moar 1ce379: OUTPUT«shell is disallowed in restricted setting␤ in sub restricted at src/RESTRICTED.setting:2␤ in sub shell at src/RESTRICTED.setting:7␤ in block at /tmp/tmpfile:1␤␤»
btyler FROGGS: progress! now we can get our errors automatically :)
FROGGS r: shell "ls" or say(42)
camelia ( no output )
..rakudo-parrot 1ce379, rakudo-moar 1ce379: OUTPUT«shell is disallowed in restricted setting␤ in sub restricted at src/RESTRICTED.setting:2␤ in sub shell at src/RESTRICTED.setting:7␤ in block at /tmp/tmpfile:1␤␤»
dalek nda/moar-support: 3793174 | (Tobias Leich)++ | lib/Panda/Fetcher.pm:
properly clean up the path

Before it was kind of a no-op, since the methods are not called when written this way in a regex.
20:14
nda/moar-support: 20bd234 | (Tobias Leich)++ | lib/Panda/Builder.pm:
call shell() with cmd only, and fail() on its result
FROGGS btyler: do you have any clue what causes the STable conflict?
btyler FROGGS: not in the slightest. I got about as far as finding where that error is thrown in Moar src (src/6model/serialization.c 2059), and my eyes glazed over a bit 20:15
FROGGS yeah, I am more wondering what in panda makes it pop up 20:16
hoelzro [commentary on my Perl 6 style would also be welcome =)] 20:18
tadzik arnsholt: tuesday-friday 20:20
tadzik FROGGS: well, it's creating directories so it can copy stuff inside them later. I guess... 20:21
oh, #88...
well, isn't it self-explanatory? :) 20:22
FROGGS tadzik: it is, but also fails 20:31
tadzik how so?
FROGGS it does not fail with the parens though, due to some weirdness
segomos did async stop working with jvm? 20:32
timotimo it's now called "start" 20:37
... er, is that correct?
segomos ahh that is working, thank you 20:41
PerlJam segomos: see jnthn.net/papers/2013-npw-conc.pdf 20:42
segomos thanks, familiar with these from nodejs, this way of doing it looks far more intuitive. haven't screwed around with it since the word was 'async' 20:49
this doc is p good
thanks jnthn
and perljam
hoelzro so Mokudo gives me "Malformed UTF-8" when trying to decode the URI-encoded version of 'ǂ' 20:50
I take it MoarVM is missing some Unicode information?
timotimo hm. i wonder what exactly it's trying to do 20:52
what does the uri-encoded version look like? %1234?
hoelzro %c7%82 20:52
well, %C7%82 20:53
also, I get a fun error when loading URI from blib/lib/URI.moarvm versus lib/URI.pm
FROGGS r: say 'ǂ'
timotimo huh, interesting.
camelia rakudo-parrot 1ce379, rakudo-jvm 1ce379, rakudo-moar 1ce379: OUTPUT«ǂ␤»
FROGGS r: say "\c[C7,82]" 20:54
camelia rakudo-parrot 1ce379, rakudo-jvm 1ce379, rakudo-moar 1ce379: OUTPUT«===SORRY!=== Error while compiling /tmp/tmpfile␤Unrecognized character name C7␤at /tmp/tmpfile:1␤------> say "\c[C7⏏,82]"␤»
FROGGS r: say "\x[C7,82]"
camelia rakudo-parrot 1ce379, rakudo-jvm 1ce379, rakudo-moar 1ce379: OUTPUT«Ç␤»
TimToady r: say Buf.new(0xC7,0x82).decode("UTF-8") 20:55
camelia rakudo-parrot 1ce379, rakudo-jvm 1ce379, rakudo-moar 1ce379: OUTPUT«ǂ␤»
FROGGS hoelzro: what is the funny error btw?
the STable thing is not funny btw :P 20:56
hoelzro FROGGS: it's in the gist I posted earlier 20:58
gist.github.com/anonymous/8982533 20:59
URI.txt
FROGGS this I guess: gist.github.com/anonymous/8982533#...ri-txt-L25 21:00
hoelzro yes 21:01
FROGGS r: my %default_port = ( ftp => 21 ); say %default_port{'ftp'}.Int // Int; 21:02
camelia rakudo-parrot 1ce379, rakudo-jvm 1ce379, rakudo-moar 1ce379: OUTPUT«21␤»
FROGGS r: my %default_port = ( ftp => 21 ); say %default_port{'hurz'}.Int // Int;
camelia rakudo-parrot 1ce379, rakudo-jvm 1ce379, rakudo-moar 1ce379: OUTPUT«No such method 'Int' for invocant of type 'Any'␤ in block at /tmp/tmpfile:1␤␤»
hoelzro offending line in URI (the malformed UTF-8 issue): @rc.=map(*.encode('latin-1').decode('UTF-8')) 21:03
anyone know why the encode to latin-1?
TimToady because otherwise it's a string, not a buffer 21:04
FROGGS r: package P { my %dp = ( ftp => 21 ); our sub sp(Str $scheme) { %dp{$scheme}.Int // Int } }; P.sp('hurz') # <--- jnthn
camelia rakudo-parrot 1ce379, rakudo-jvm 1ce379: OUTPUT«No such method 'sp' for invocant of type 'P'␤ in block at /tmp/tmpfile:1␤␤»
..rakudo-moar 1ce379: OUTPUT«Cannot invoke null object␤ in block at /tmp/tmpfile:1␤␤»
FROGGS ohh, wait
timotimo should it have been :: instead? 21:05
or did you want to import P?
timotimo and now: hilbert curves! 21:05
hoelzro ah ha
TimToady: why Latin-1, though? 21:06
TimToady to get all eight bits through, presumably--it's just an alias for iso-8859-1
it just changes the interpretation of the high bits from latin-1 to utf-8 without actually changing the bits 21:07
FROGGS r: package P { my %dp = ( ftp => 21 ); our sub sp(Str $scheme) { %dp{$scheme}.Int // Int } }; say P::sp('ftp') # I dunno why URI fails 21:09
camelia rakudo-parrot 1ce379, rakudo-jvm 1ce379, rakudo-moar 1ce379: OUTPUT«21␤»
dalek q: 12e4f15 | (Prog Rammer)++ | answers.md:
time -> type fix
21:37
q: 0a89f7c | (Prog Rammer)++ | answers.md:
creates -> created
q: cd82896 | (Brent Laabs)++ | answers.md:
Merge pull request #2 from prammer1/minor-fixes

Minor fixes (look good to me)
dalek nda/moar-support: a1ab2f6 | (Tobias Leich)++ | lib/Panda/Fetcher.pm:
use IO::Spec.catpath to make windows happy
21:47
timotimo gist.github.com/timo/544d3d75bd92932e635d <- moarvm heap analyzer now with a proper diff at the bottom 21:48
timotimo (except the diff ought to be in the other direction, but that was easy to fix just now) 21:49
updated with diff in the right direction 21:54
FROGGS tadzik: ping 21:55
timotimo ← now ready to receive praise
benabik timotimo++ 21:56
timotimo thanks :)
FROGGS timotimo: what do all these numbers mean? :o) 21:57
some of them must be counts and the size in bytes
timotimo that's right 21:58
FROGGS sizes of objects/stables:
24 [ 1 24
32 [========================= 15497 495.904
timotimo if there's two columns, the right one is for size in bytes, the left for count
24 * 1 = 24 :)
FROGGS I see
timotimo++ then :o)
timotimo i think i shall push this now. 21:59
FROGGS File::Find's tests are not where windows friendly :/ 22:02
hoelzro timotimo: holy crap, that's awesome work 22:12
timotimo thanks :3
raydiak whoa, nice; timotimo++ 22:29
hoelzro r: "\x[C7,82]".encode('latin-1') 22:32
camelia ( no output )
hoelzro r: say "\x[C7,82]".encode('latin-1')
camelia rakudo-moar 1ce379: OUTPUT«Buf:0x<c7 3f>␤»
..rakudo-parrot 1ce379, rakudo-jvm 1ce379: OUTPUT«Buf:0x<c7 82>␤»
timotimo oh well :o
hoelzro that's what's breaking mokudo + URI
(well, aside from the blib loading)
hoelzro is it ok to add a failing list to NQP, or should I fudge it somehow? 22:50
I'm wondering how clean we want to keep things
jnthn hoelzro: I prefer we keep it clean 22:54
hoelzro ok 22:55
jnthn I think we support todo
hoelzro I guess that just means I should try to fix it =)
timotimo votes in favor :P
jnthn srsly? Moar's latin-1 decoded is bust? :/ 22:57
*decoder 22:58
hoelzro yeah =/
I'm digging in now
jnthn I had it open 'cus I was about to teach it about decode streams 22:59
We should probably fix it before I do that :)
uh... 23:02
hoelzro ?
timotimo expects a "how was this supposed to work at all?!" :) 23:03
jnthn git log src/strings/latin1.c
...
fix latin1 so it's right-er. again, no idea how to test it.
hoelzro right-er is what I usually do with Moar =P
jnthn Moar betterer... 23:05
It appears to have a hard-coded binary search. I wonder if that was coded by hand. 23:09
hoelzro heh, I just got there in the source myself 23:10
something about map(*.encode('latin-1').decode('utf-8')) still feels off to me 23:13
I get %c7%82, so I create "\x[c7,82]"
I feel like URI should be building a Buf here at the beginning
because "\x[c7,82]" has two codepoints: 0xC7 and 0x82, right? 23:15
hoelzro so it's no wonder that 0x82 gets squashed down to '?' 23:15
jnthn r: "\x[c7,82]".say 23:18
camelia rakudo-parrot 1ce379, rakudo-jvm 1ce379, rakudo-moar 1ce379: OUTPUT«Ç␤»
jnthn r: "\x[c7,82]".chars 23:18
camelia ( no output )
jnthn r: "\x[c7,82]".chars.say
camelia rakudo-parrot 1ce379, rakudo-jvm 1ce379, rakudo-moar 1ce379: OUTPUT«2␤»
jnthn .u 0x82 23:19
yoleaux No characters found
timotimo okay, i think it's time for me to go hug my hot water bottle and try for some sleep 23:20
timotimo o/ 23:20
hoelzro timotimo: feel better!
jnthn timotimo: Hope you feel well again soon! 23:21
timotimo i'll give it my best, thanks :)
.o( i also hope TimToady will feel well again soon! ) 23:22
www.google.org/flutrends/de/#DE-BW ← this seems to match my current status
ah well.
hoelzro ok, I fixed URI instead of MoarVM 23:49
because I'm not well-versed enough to know if this is actually a problem with MoarVM itself 23:50