Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2013-08-24

Perl 6 | Reference Documentation | Rakudo

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

All times shown according to UTC.

Time Nick Message
00:00 timotimo i am amazed how much i retained of my driving skills after almost a year of no driving and just one and a half years of driving in total
00:00 TimToady (if p5 had those operators)
00:00 TimToady timotimo: keep thinking that, till you make a mistake :)
00:01 TimToady but really, driving skill consist primarily of knowing when you're sure and when you aren't
00:01 TimToady *skills
00:02 TimToady and it's hard to forget how to know something :)
00:02 timotimo right. i am cultivating a healthy fear of my own car, the road and the other cars
00:02 TimToady that's driving skills, not the mechanical bits of it
00:02 TimToady s/not/not so much/
00:03 timotimo an understandingbof how signs, intersections, lights and other things interact? predicting behavior of other participants? that sort of thing?
00:04 TimToady otoh, you don't realize how much the knowing bits depend on the mechanical bits till you drive on the other side of the road/car/stick
00:05 timotimo i think driving automatic or on the left side of the road would very quickly diminish my abilities to cope
00:06 TimToady knowing how to reduce ambiguity in the other driver's mind is the other end of it
00:06 araujo joined #perl6
00:08 TimToady sometimes committing to a course of action earlier is safer than waiting, if it reduces the consequences of deciding wrong
00:08 TimToady like changing speed now before the other driver has to change lanes
00:12 timotimo i'm very excited to see what different technologies will come up with and around the concept of signaling data directly between cars
00:15 dalek star: d185566 | (Timo Paulssen)++ | docs/announce/2013.08.md:
00:15 dalek star: explain "nodal" a bit.
00:15 dalek star: review: https://github.com/rakudo/star/commit/d185566a5c
00:15 timotimo i think i'll have to do a bit of manual merging for my "nodal" branch before it's good to merge
00:16 timotimo there's some conflicts around the spots where i had merged "rw" and "nodal" into one integer with bit arithmetic
00:19 FROGGS joined #perl6
00:29 dalek perl6-roast-data: 796bb39 | coke++ | / (5 files):
00:29 dalek perl6-roast-data: today (automated commit)
00:29 dalek perl6-roast-data: review: https://github.com/coke/perl6​-roast-data/commit/796bb39428
00:30 timotimo oh wow, rakudo.jvm is falling behind a little?
00:32 timotimo oh well. beditmes. good • #perl6
00:53 rjbs Good bullet?  Did he just threaten us? O_o
00:56 skinkitten joined #perl6
01:00 ssutch joined #perl6
01:02 TimToady skinkitten: welcome, feel free to lurk or chime in
01:03 TimToady most of the eurofolk are in bed now though...
01:03 skinkitten thank you thank you thank you
01:03 TimToady and the USians are all out partying :)
01:03 skinkitten so that leaves....?
01:03 TimToady geezers like me
01:03 * rjbs reads the scrollback and realizes he hasn't put "get learner's permit" into his new todo list.
01:05 TimToady dinner, really really &
01:28 FROGGS_ joined #perl6
01:31 jnap joined #perl6
02:10 ggoebel joined #perl6
02:19 FROGGS joined #perl6
02:20 japhb_ What's the 'nextwith' variant that restarts a proto dispatcher?
02:21 JimmyZ nextsame?
02:21 TimToady nope, that continues down the chain
02:21 TimToady there isn't one, afaik
02:22 TimToady assuming you want to restart on the current proto
02:22 TimToady course, if you know where it is, you can just call it
02:33 TimToady the recently specced samewith recalls the entire chain, but in theory it should find the correct proto if the types are right :)
02:33 Mouq joined #perl6
02:34 TimToady don't really like the name "samewith" though
02:34 JimmyZ I don't like the name keyof :P
02:34 TimToady since "same" already means something very different on the other end
02:35 JimmyZ non-samewith
02:35 JimmyZ ;)
02:35 TimToady yeah, 'of' means from, and the key goes to the object, not from it
02:36 JimmyZ keyof get ket type ...
02:36 JimmyZ better typeofkey?
02:36 TimToady domain/range is more accurate
02:36 TimToady but that doesn't really work either
02:36 JimmyZ ToK
02:37 JimmyZ %h.^type('Key')
02:38 JimmyZ %h.^typeof('Key')
02:38 TimToady keyby, keyas, keyed
02:38 TimToady ktype
02:39 JimmyZ kype :P
02:40 TimToady just 'by' might work
02:40 JimmyZ .by?
02:40 TimToady except people will start passing closures to it :)
02:40 JimmyZ what about value type?
02:41 TimToady don't understand what you're asking
02:41 JimmyZ keyof returns type of hask key
02:41 JimmyZ in typed hash
02:42 TimToady .ix
02:42 JimmyZ TimToady: https://github.com/rakudo/rakudo​/blob/nom/src/core/Hash.pm#L253
02:43 TimToady yes, that's what we're talking about
02:43 TimToady .ix would say what the index is
02:43 TimToady or should I say WHAT it is?
02:44 TimToady we use the term "indexed" for both arrays and hashes
02:44 TimToady so I think .ix would be a better name than .keyof
02:45 JimmyZ or .Tkey ?
02:45 TimToady type would be implied by the name, just as it is with 'of'
02:46 JimmyZ it returns Tkey :-)
02:47 TimToady to be honest, I like Tkey less than keyof :)
02:47 JimmyZ hehe
02:47 JimmyZ naming is always hard
02:47 TimToady yeah
02:48 TimToady especially knowing when to use an existing name, and when to invent something new
02:48 JimmyZ ofkey?
02:49 TimToady anything contain 'of' is going to be confusing
02:49 TimToady *containing
02:50 JimmyZ .get-type('Key'), .get-type('Value')
02:51 JimmyZ .get-typeof-key :)
02:51 JimmyZ .get-type-of-key :)
02:51 TimToady .get is a smell
02:51 TimToady names shouldn't be verbs
02:52 JimmyZ .key
02:52 JimmyZ .keytype
02:52 TimToady except...a key is an individual thing
02:52 TimToady key/value is always a concrete pair
02:53 TimToady the type of the value is 'of', so I think the type of the key should be 'ix'
02:53 TimToady it's the same length, which is the most important thing :)
02:53 JimmyZ what about type of value?
02:53 TimToady .re vs .im
02:53 TimToady that's already 'of'
02:53 JimmyZ of
02:54 jaldhar joined #perl6
02:55 JimmyZ what x means?
02:56 grondilu isn't that the x in index?
02:57 JimmyZ .tk ?
02:57 JimmyZ oh
02:59 JimmyZ so +1 to .ix
03:20 preflex_ joined #perl6
03:23 fridim__ joined #perl6
03:37 dalek roast: ad7a961 | (David Warring)++ | S29-conversions/ord_and_chr.t:
03:37 dalek roast: fudge for niecza
03:37 dalek roast: review: https://github.com/perl6/roast/commit/ad7a96100e
04:05 abnorman joined #perl6
04:43 Mouq joined #perl6
05:29 FROGGS joined #perl6
05:30 moritz \o
05:35 skulls joined #perl6
05:38 Mouq o/
05:44 kaare_ joined #perl6
05:44 diakopter how do I convert my git current working changes to a branch
05:53 JimmyZ diakopter: Did you commit?
05:55 JimmyZ diakopter: if not , git stash and  switch to new branch and git stash pop
06:00 dagurval r: END try fail "a"; say "b";
06:00 camelia rakudo e9e99b: OUTPUT«b␤a␤current instr.: 'throw' pc 379999 (src/gen/CORE.setting.pir:161276) (src/gen/CORE.setting:10132)␤called from Sub 'sink' pc 415581 (src/gen/CORE.setting.pir:174365) (src/gen/CORE.setting:11503)␤called from Sub '' pc 483 (src/gen/perl6.pir:183) (src/gen/main.nqp:…
06:00 dagurval should the end phaser throw like this when the failure is inside a try?
06:07 Mouq rnp: say (16 < * < 66)(5)
06:07 camelia niecza v24-88-g1f87209: OUTPUT«False␤»
06:07 camelia ..pugs: OUTPUT«*** Cannot cast from VBool False to VCode (VCode)␤    at /tmp/u5lEWaAhqz line 1, column 5 - line 2, column 1␤»
06:07 camelia ..rakudo e9e99b: OUTPUT«True␤»
06:08 TimToady dagurval: seems like a bug
06:09 TimToady Mouq: seems like a bug :)
06:10 Mouq Yeah, it is; I've been looking through the bug reports
06:10 TimToady rnp: say { 16 < $_ < 66 }(5)
06:10 camelia rakudo e9e99b, niecza v24-88-g1f87209: OUTPUT«False␤»
06:10 camelia ..pugs: OUTPUT«<SubBlock(<anon>)>␤*** Cannot cast from VBool True to VCode (VCode)␤    at /tmp/K5cGKmmYxM line 1, column 1 - line 2, column 1␤»
06:11 TimToady looks like it's maybe being treated as (16 < *) < 66
06:12 TimToady r: say (16 < * == False)(5)
06:12 camelia rakudo e9e99b: OUTPUT«True␤»
06:12 TimToady yeah, that's exactly what it's doing
06:13 TimToady r: try fail 'a'
06:13 camelia rakudo e9e99b: OUTPUT«a␤current instr.: 'throw' pc 379999 (src/gen/CORE.setting.pir:161276) (src/gen/CORE.setting:10132)␤called from Sub 'sink' pc 415581 (src/gen/CORE.setting.pir:174365) (src/gen/CORE.setting:11503)␤called from Sub 'MAIN' pc 401 (src/gen/perl6.pir:148) (src/gen/main.nq…
06:17 TimToady r: try { fail 'a' }
06:17 camelia rakudo e9e99b: OUTPUT«a␤current instr.: 'throw' pc 379999 (src/gen/CORE.setting.pir:161276) (src/gen/CORE.setting:10132)␤called from Sub 'sink' pc 415581 (src/gen/CORE.setting.pir:174365) (src/gen/CORE.setting:11503)␤called from Sub 'MAIN' pc 401 (src/gen/perl6.pir:148) (src/gen/main.nq…
06:17 TimToady r: try { fail 'a'; 42 }
06:17 camelia rakudo e9e99b: OUTPUT«a␤current instr.: 'throw' pc 379999 (src/gen/CORE.setting.pir:161276) (src/gen/CORE.setting:10132)␤called from Sub 'sink' pc 415581 (src/gen/CORE.setting.pir:174365) (src/gen/CORE.setting:11503)␤called from Sub 'MAIN' pc 401 (src/gen/perl6.pir:148) (src/gen/main.nq…
06:17 TimToady doesn't need the END to misbehave
06:17 TimToady for one, it's probably not propagating the sink incorrectly
06:17 TimToady or wait, it's just doing a return of some sort, and there's no sub
06:17 * TimToady is too tired to think about this one...
06:17 TimToady r: try { die 'a'; 42 }
06:17 camelia rakudo e9e99b:  ( no output )
06:17 TimToady r: END try die 'a'; say 'b'
06:17 camelia rakudo e9e99b: OUTPUT«b␤»
06:17 TimToady it catches die, but not a failure return
06:18 TimToady spec says a try is supposed to also imply 'use fatal' inside, but that's probably NYI
06:18 TimToady in any case, I don't think a try should ever return a failure
06:20 TimToady for now, don't use 'fail' when you mean 'die', I guess
06:20 moritz rakudo currently sinks the return value of the try block outside the block
06:21 TimToady the propagation inward is specced but NYI, yes
06:22 TimToady but whether or not that happens, I suspect it's against the spirit of try to return a failure
06:23 moritz propagation inward is very problematic
06:23 moritz most VMs don't give you a sane way to to propagate extra information inward
06:24 Mouq (fail allows one to say that a sub/etc failed but still return a value?)
06:25 moritz Mouq: fail() returns a Failure, which dies when used as a normal value
06:25 dagurval I am adding IO.path.rmdir and making it fail (as spec), I found this (bug?) when I was making sure my temporary dir were removed in the end of tests (END try $tmpdir.rmdir)
06:26 dagurval I didn't expect that to blow up
06:26 moritz TimToady: how about we abolish sink context, and only return Failure from side-effect free routines?
06:26 moritz you usually don't call them and ignore the result
06:27 moritz and then also abolish the whole reify-lazy-lists-in-sink-context thing, because that doesn't work out in practise
06:27 moritz declare for-loops to be eager
06:27 moritz and be happy
06:27 xenoterracide joined #perl6
06:28 moritz one of the main arguments for Failure is concurrency, but you can only proper micro-level concurrency with side-effect free functions
06:29 moritz and for anything more heavy-weight (like threads, promises) you can just catch the exception
06:37 logie joined #perl6
06:52 pdcawley joined #perl6
06:57 moritz http://moritz.faui2k3.org/tmp/​rakudo-star-2013.08-RC1.tar.gz # another R* release candidate. Please test
07:00 pdcawley moritz: Is this parrot or jvm based?
07:00 moritz pdcawley: parrot
07:01 moritz I don't think panda works on the JVM yet
07:01 pdcawley Ah. I mostly want to be playing with the concurrency stuff.
07:01 pdcawley panda?
07:01 moritz the module installer
07:01 pdcawley ah.
07:01 moritz pdcawley: then just use the compiler release, not star
07:01 pdcawley I can see why that's vaguely essential for an R* release.
07:01 pdcawley And I am using the compiler release.
07:02 moritz ok, great
07:51 FROGGS joined #perl6
07:52 Teratogen joined #perl6
07:52 Teratogen joined #perl6
07:54 rindolf joined #perl6
08:00 hummeleBop joined #perl6
08:00 denis_boyun joined #perl6
08:08 spider-mario joined #perl6
08:11 grondilu joined #perl6
08:17 sidus joined #perl6
08:23 Rotwang joined #perl6
08:24 spider-mario joined #perl6
08:47 dagurval r: sub f { fail X::IO.new(path => "", os-error => "") }; my $c = f; say $c.isa(X::IO); say $c ~~X::IO
08:47 camelia rakudo e9e99b: OUTPUT«False␤False␤»
08:47 dagurval how can I check if a failure is of a given exception type?
08:49 moritz r: r: sub f { fail X::IO.new(path => "", os-error => "") }; say f().perl
08:49 camelia rakudo e9e99b: OUTPUT«Failure.new(exception => X::AdHoc.new(payload => X::IO.new(os-error => "")))␤»
08:49 moritz r: r: sub f { fail X::IO.new(path => "", os-error => "") }; say f().payload ~~ X::IO
08:49 camelia rakudo e9e99b: OUTPUT«X::IO<1483447181>␤  in method <anon> at src/gen/CORE.setting:11500␤  in any  at src/gen/Metamodel.nqp:2671␤  in any find_method_fallback at src/gen/Metamodel.nqp:2659␤  in any find_method at src/gen/Metamodel.nqp:946␤  in block  at /tmp/CdO2oKRU1_:1␤␤»
08:50 moritz r: r: sub f { fail X::IO.new(path => "", os-error => "") }; my $f = f(); $f.defined; say $f.payload ~~ X::IO
08:50 camelia rakudo e9e99b: OUTPUT«X::IO<-796126142>␤  in method <anon> at src/gen/CORE.setting:11500␤  in any  at src/gen/Metamodel.nqp:2671␤  in any find_method_fallback at src/gen/Metamodel.nqp:2659␤  in any find_method at src/gen/Metamodel.nqp:946␤  in block  at /tmp/opXCUWWoXt:1␤␤»
08:51 moritz r: r: sub f { fail X::IO.new(path => "", os-error => "") }; my $f = f(); $f.defined; say $f.exception ~~ X::IO
08:51 camelia rakudo e9e99b: OUTPUT«False␤»
08:51 moritz r: r: sub f { fail X::IO.new(path => "", os-error => "") }; my $f = f(); $f.defined; say $f.exception.perl
08:51 camelia rakudo e9e99b: OUTPUT«X::AdHoc.new(payload => X::IO.new(os-error => ""))␤»
08:51 moritz wat.
08:52 dagurval r: sub f { fail X::IO.new(path => "", os-error => "") }; my $c = f; say $c.isa(X::AdHoc); say $c ~~X::AdHoc
08:52 camelia rakudo e9e99b: OUTPUT«False␤False␤»
08:55 moritz r: r: sub f { fail X::IO.new(path => "", os-error => "") }; my $f = f(); $f.defined; say $f.exception.payload ~~ X::AdHoc
08:55 camelia rakudo e9e99b: OUTPUT«False␤»
08:55 moritz r: r: sub f { fail X::IO.new(path => "", os-error => "") }; my $f = f(); $f.defined; say $f.exception.payload.perl
08:55 camelia rakudo e9e99b: OUTPUT«X::IO.new(os-error => "")␤»
08:55 huf joined #perl6
09:05 moritz r: say X::IO.HOW
09:05 camelia rakudo e9e99b: OUTPUT«Perl6::Metamodel::Par​ametricRoleGroupHOW.new()␤»
09:05 BabsSeed Hey #perl6
09:05 moritz so it's a role
09:05 moritz hi BabsSeed
09:05 moritz I don't think that should interfere with typechecking
09:05 moritz r: say dir('/nosuchdir');
09:05 camelia rakudo e9e99b: OUTPUT«Failed to get the directory contents of '/nosuchdir': readdir failed: No such file or directory␤  in block  at src/gen/CORE.setting:12822␤  in method contents at src/gen/CORE.setting:12818␤  in sub dir at src/gen/CORE.setting:12847␤  in block  at /tmp/1ZKD5RXPSp:1␤…
09:05 BabsSeed I've been away, how is every/(one|thing)/?
09:05 moritz r: say dir('/nosuchdir').defined;
09:05 camelia rakudo e9e99b: OUTPUT«Failed to get the directory contents of '/nosuchdir': readdir failed: No such file or directory␤  in block  at src/gen/CORE.setting:12822␤  in method contents at src/gen/CORE.setting:12818␤  in sub dir at src/gen/CORE.setting:12847␤  in block  at /tmp/YXdmUdwjZ8:1␤…
09:05 moritz BabsSeed: diverse :-)
09:06 BabsSeed r: say "Welcome back BabsSeed";
09:06 camelia rakudo e9e99b: OUTPUT«Welcome back BabsSeed␤»
09:08 BabsSeed If I wrote something 12 months ago in p6, is there any reason it wouldnt work in today's rakudo? Is syntax set in stone or not?
09:10 FROGGS BabsSeed: to about 99.999% yes
09:10 jnthn I wouldn't put quite so many 9s :P
09:10 jnthn Really, though, depends what it was doing.
09:11 jnthn The core syntax has been stable. But there's been various changes around IO stuff, for example.
09:13 BabsSeed I'm planning to write a web/MVC framework on p6, like a lightweight Catalyst
09:13 BabsSeed Wondering if now is a bad time to start :D
09:14 tadzik it's as good time as it always was :)
09:15 BabsSeed I figure it's going to be very important to adoption, having a good framework
09:15 arnsholt slava: Not a problem. I'm mostly around during .eu office hours and early evening
09:20 dalek joined #perl6
09:27 FROGGS joined #perl6
09:34 timotimo fwiw, i thought "good •" would be read as "good point"
09:35 jnthn arnsholt: Still up for Tuesday øl i Oslo? :)
09:35 * jnthn finally got all his info, just in time for the trip... :)
09:35 jnthn hm, lots of backlog to read...
09:37 arnsholt jnthn: Sounds good!
09:38 jnthn r: my @a = 1..100; say @a[* % 5]
09:38 camelia rakudo e9e99b: OUTPUT«1␤»
09:45 BabsSeed not_gerd Going to set Ubuntu back up on my desktop
09:45 BabsSeed It compiles a bit faster than my VPS.
09:51 masak good antenoon, #perl6
09:51 dmol joined #perl6
09:53 jnthn o/ masak
09:56 xinming joined #perl6
09:58 iSlug joined #perl6
10:03 lizmat joined #perl6
10:35 berekuk joined #perl6
11:07 moritz \o *
11:07 FROGGS jnthn: for loading modules :from<NQP> I changed load_modules signature and had to update stage0 for vm/parrot. How do I do that for vm/jvm?
11:08 FROGGS jnthn: I think I can do that manually, I just need to know how... do I need to unpack that .jar's?
11:08 FROGGS or can I cross compile it?
11:10 jnthn FROGGS: There's a make bootstrap-files target in the NQP JVM makefile also...
11:10 denisboyun joined #perl6
11:11 jnthn Shouldn't need to do anything with the JARs, no :)
11:11 jnthn Why does it need the rebootstrap? Breaking change?
11:11 FROGGS jnthn: but for vm/parrot I was unable to build up to stage0, so I had to do that manually
11:11 FROGGS jnthn: yes
11:11 jnthn ...manually?
11:11 FROGGS yes :o)
11:11 jnthn you hacked the PIR o.O
11:11 FROGGS err, yes
11:11 FROGGS sure
11:11 jnthn Yes, that's not the best bet.
11:11 jnthn What was the incompatibility, ooc?
11:12 FROGGS and after it built fine, I called make bootstrap-files
11:12 FROGGS load_module() had 3 params instead of 2
11:13 FROGGS it wasnt too bad, I just had to create a hash and pass it as second arg, when calling load_module
11:13 jnthn I think we can probably find a way to migrate it without such problems
11:13 jnthn I mean, keep the slurpy. If it has 1 arg, check if the first one is nqp::ishash(...)
11:14 FROGGS hmm, but *GLOBALish which gets passed usually contains a hash, no?
11:14 jnthn No, it's a type object
11:14 jnthn That we do .WHO on?
11:14 FROGGS ahh, right
11:14 FROGGS yes
11:14 jnthn So we can disambiguate :)
11:14 FROGGS true
11:15 jnthn You might not even need a rebootstrap this wya.
11:15 jnthn *way
11:15 FROGGS okay, I'll do that and push to a branch again
11:15 jnthn \o/
11:15 jnthn FROGGS++
11:15 FROGGS :o)
11:15 * jnthn continues nudging the MoarVM selfhost further
11:15 FROGGS you mean, we leave the signature this way then?
11:15 FROGGS jnthn**jnthn
11:16 jnthn Well, maybe rename the *@GLOBALish parameter to something more accurate :)
11:16 FROGGS k
11:16 jnthn *@extras or so, then look in it
11:16 berekuk joined #perl6
11:16 jnthn I guess there's 3 combinations you need to care about
11:16 FROGGS k
11:16 jnthn options hash
11:16 jnthn options hash, globalish
11:16 jnthn globalish
11:16 FROGGS right
11:20 * moritz watches YAPC::EU talks on youtube that he missed IRL
11:21 FROGGS linky??
11:21 moritz http://www.youtube.com/user/yapctv?feature=watch
11:22 jnthn Aww, none of mine are there yet :)
11:23 moritz but the day 3 lilghtning session is
11:24 moritz with a highlight around 1h4m
11:27 pdcawley joined #perl6
11:37 zakharyas joined #perl6
11:37 lizmat joined #perl6
11:38 PacoAir joined #perl6
11:45 berekuk joined #perl6
11:48 lizmat joined #perl6
11:57 berekuk joined #perl6
12:23 berekuk joined #perl6
13:12 berekuk joined #perl6
13:34 Rotwang joined #perl6
13:36 SamuraiJack joined #perl6
13:41 BenGoldberg joined #perl6
13:48 JimmyZ_ joined #perl6
13:52 dalek nqp: 11d5fa2 | (Tobias Leich)++ | t/ (2 files):
13:52 dalek nqp: moved sprintf tests into right place
13:52 dalek nqp: review: https://github.com/perl6/nqp/commit/11d5fa2b06
14:00 JimmyZ joined #perl6
14:02 JimmyZ joined #perl6
14:03 JimmyZ joined #perl6
14:04 dalek star: f07c159 | moritz++ | tools/star/release-guide.pod:
14:04 dalek star: note this release in the relase guide
14:04 dalek star: review: https://github.com/rakudo/star/commit/f07c159ba9
14:09 pmurias joined #perl6
14:10 pmichaud good morning, #perl6
14:10 FROGGS pmichaud: o/
14:11 lizmat pmichaud!  good to see you (as it were)!
14:11 jnthn morning, pmichaud o/
14:11 pmurias pmichaud: good morning
14:14 moritz the captcha for updating the Rakudo wikipedia page was "zetaoctet". Fits somehow :-)
14:18 colomon moritz++
14:41 TimToady it's not exactly a syntax change, but the spec just dropped the * from .bless so that we can optimize for the common case
14:43 TimToady and lizmat++ is moving most of the special_variable stuff out of the grammar into error checking, which I guess is 'syntax change' of a benign nature
14:44 TimToady but yeah, the syntax is pretty stable these days
14:44 Psyche^ joined #perl6
14:45 FROGGS and it will stay stable :o) *cough*
14:48 sidus joined #perl6
14:50 moritz as stable as an S-Table
14:54 diakopter *organ*
14:54 dalek nqp: ddc476e | (Tobias Leich)++ | src/vm/ (2 files):
14:54 dalek nqp: give load_module a signature similar to rakudo's
14:54 dalek nqp:
14:54 dalek nqp: So we can use NQP's ModuleLoader like: use QAST:from<NQP>
14:54 dalek nqp: review: https://github.com/perl6/nqp/commit/ddc476e11b
14:54 FROGGS diakopter: you are not thread safe
14:56 diakopter or hatred safe
15:03 FROGGS jnthn: will this modify GLOBALish[0] or is it left untouched? https://gist.github.com/FR​OGGS/395419656d19b40d2ed9
15:04 thou joined #perl6
15:06 pmichaud moritz++ # rakudo star release
15:06 pmichaud I'll work on getting a .msi version out this weekend.
15:08 moritz \o/
15:09 jnthn FROGGS: Um, that setwho line looks suspect...
15:10 rindolf joined #perl6
15:10 jnthn FROGGS: That will modify the Perl 6 GLOBALish in place and make it not have a Stash, but an NQP hash.
15:11 FROGGS jnthn: yeah, I was fearing that...
15:11 jnthn FROGGS: I'd create a fresh, throw-away type object (just use knowhow meta-object or something) and attach the thing FLATTENABLE_HASH gives back to that.
15:12 FROGGS jnthn: but still using setwho, no?
15:12 jnthn Sure, but setwho it on the throwaway thing
15:12 FROGGS yeah, sure
15:12 jnthn And pass that.
15:12 FROGGS k
15:17 teslos joined #perl6
15:17 pdcawley joined #perl6
15:21 * diakopter takes a look at https://github.com/FredrikNoren/ungit
15:21 pmurias how do I convert a parrot STRING* to a pmc? (nqp string)
15:22 pmurias http://jsparse.meteor.com/ # something like that for Perl 6 grammars would be awesome
15:23 arnsholt pmurias: STRING* is the Parrot string primitive type, so there should be a function or macro in parrot/string.h or somesuch
15:24 ingy *morning*
15:25 FROGGS morning ingy
15:31 FROGGS jnthn: updated https://gist.github.com/FR​OGGS/395419656d19b40d2ed9
15:35 pmurias arnsholt: I found the way to do that
15:35 jnthn FROGGS: Not quite :)
15:35 FROGGS meh
15:35 FROGGS *g*
15:35 jnthn my $target := nqp::knowhow().new_type(:name('GLOBALish'));
15:36 FROGGS ahh, okay
15:36 jnthn Otherwise you set the stash of the (global) KnowHOW type :)
15:36 FROGGS ohh
15:36 FROGGS I see
15:42 * pmurias hates the fact the nqp is built with some -Wc++-compact *and* we totally ignore that
15:43 jnthn I suspect that flag is inherited from Parrot's C flags, fwiw
15:43 ajr joined #perl6
15:43 logie joined #perl6
15:46 masak diakopter: the HN comments said that ungit eschews the staging area -- which is a pity, because I grow to like the staging area more day by day.
15:47 dalek rakudo/nom: 466510b | (Tobias Leich)++ | src/Perl6/ModuleLoader.nqp:
15:47 dalek rakudo/nom: wire NQP's module loader to
15:47 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/466510b6a2
15:47 jj__ joined #perl6
15:49 jj__ Hi is anyone herer?
15:49 masak jj__: just us chickens.
15:50 jnthn Wir sind herer und damer... :P
15:51 * masak .oO( we're all here, but some of us are herer than others )
15:51 jnthn oops, scared them away :)
15:51 diakopter masak: I'm not sure I know what the staging area is
15:51 masak diakopter: it's the thing where things end up after 'git add'/'git rm' but before 'git commit'
15:51 diakopter oh
16:01 arnsholt pmurias: What was the right way?
16:02 * arnsholt couldn't find it where he thought it'd be
16:05 dalek nqp: 96bacd7 | (Pawel Murias)++ | / (4 files):
16:05 dalek nqp: Make nqp::getenvhash() return a hash on parrot, document it and test it a little.
16:05 dalek nqp: review: https://github.com/perl6/nqp/commit/96bacd789b
16:05 pmurias arnsholt: https://github.com/perl6/nq​p/commit/96bacd789b#L2R3401
16:06 arnsholt Oh, right
16:07 pmurias I'm not sure how to test we get the right environment variables as they are environment dependent ;)
16:07 dalek rakudo/nom: e7e45be | (Tobias Leich)++ | tools/build/NQP_REVISION:
16:07 dalek rakudo/nom: udpate NQP_REVISION (module loader changes)
16:07 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/e7e45be7bf
16:08 jnthn pmurias: Why make it return a Hash?
16:09 arnsholt Hmm. See if $HOME or $(windows-specific) exists is a good enough start, probably
16:09 * TimToady notes that redhat is an anagram of hatred...
16:09 pmurias does redhat use something else instead of $HOME? ;)
16:09 arnsholt It is, isn't it? It all makes sense to me now...
16:10 FROGGS PHP$ PERL6LIB=lib perl6 --ll-exception -e "use PHP;"
16:10 FROGGS Method 'package_at_key' not found for invocant of class 'OwnedHash'
16:10 FROGGS current instr.: 'statementlist' pc 193 ((file unknown):135) (lib/PHP/Actions.pm:9)
16:10 FROGGS uhhh O.o
16:10 pmurias jnthn: as opposed to Env? so that it behaves the same way as on the JVM
16:10 jnthn pmurias: I said that we'd just treat modifying it as erroneous.
16:10 FROGGS (that PHP thing is just about 30 lines and should be a simple pure Perl6 sample slang)
16:10 jnthn We have to leave some wiggle room in these things, otherwise we'll just be inefficient everywhere...
16:12 masak $ perl6 -e 'use Python;'
16:12 masak NO LOL!
16:12 FROGGS *g*
16:12 FROGGS would be a example candidate too :o)
16:13 FROGGS maybe get it that far that it can parse Python block comments which say: /* put project euler code here */
16:13 jnthn masak: It should detect you're trying to solve a Project Euler problem, and be like NO PROJECT EULER :P
16:13 FROGGS :P
16:16 masak jnthn: sounds fair.
16:18 pmurias jnthn: leaving some wiggle room for performance sensitive things makes sense
16:19 pmurias jnthn: but returning some horrible parrot PMC to make a rarely used operation doesnt
16:23 pmurias jnthn: how is %*ENV populated under rakudo-parrot?
16:25 pmurias ahh, it's #ifdef'ed
16:25 jnthn Differnetly from on JVM, iirc. :)
16:28 pmurias how is moarvm doing?
16:28 jnthn Well, it's closing in on a Moar-hosted NQP being able to "hello world" :)
16:29 jnthn Or did you mean how is it doing env, in which case I dunno yet, but since we have to fake it on JVM... :)
16:32 pmurias when is it expected to replace parrot?
16:33 Ulti have you guys played with the Farabi IDE with Rakudo it's p. cool! https://github.com/azawawi/farabi
16:33 pmurias (as our fast startup vm of choice)
16:34 FROGGS pmurias: when there is something better
16:34 jnthn pmurias: At the point it works better than Parrot. :) I'd be guessing wildly if I tried to estimate that at this point :)
16:34 FROGGS one can say that it might be until x-mas
16:35 FROGGS it will take a while to get everything in place (spectest wise)
16:36 FROGGS but since it is a new-born vm, it might take much longer to implement features that are in parrot since decades
16:36 FROGGS r: use QAST:from<NQP>; say QAST::SVal.new( :value<^-^> ).dump
16:36 camelia rakudo e7e45b: OUTPUT«- QAST::SVal(^-^)␤␤»
16:36 jnthn \o/
16:37 FROGGS *g*
16:37 FROGGS that is cool somehow
16:37 timotimo awesome!
16:37 grondilu nqp on moarvm can say hello world?  I tried and I got Not enough positional arguments; needed 1, got 0
16:37 FROGGS grondilu: not yet as I understand
16:37 jnthn grondilu: It's closing in on... :)
16:37 timotimo can we get a compiler to compile some qast that was built in p6?
16:37 jnthn grondilu: It can now parse and build the QAST for it, but not mroe than that.
16:38 FROGGS timotimo: I am working on a pure Perl 6 slang
16:39 FROGGS timotimo: and maybe one could inject QAST nodes directly? like a macro?
16:42 FROGGS jnthn: do you know what is going on here? https://gist.github.com/FR​OGGS/43005fbb11ec07b7ad73
16:42 FROGGS jnthn: if I let the grammar inherit from NQPCursor it fails differently, but I dont know if it gets further or dies earlier
16:48 skinkitten joined #perl6
16:49 FROGGS jnthn: I guess that rakudo's grammars are not that compatible to nqp's
16:49 jnthn FROGGS: Using the Perl 6 cursor type somewhere that an NQP one was expected...
16:50 jnthn LANG does language switching though, so in theory if it goes through that it should be somewhat OK
16:50 pmurias jnthn: so it's the opposite to nqp-js which can run some of the nqp-jvm old qast tests on pure node.js but can't parse hello world yet ;)
16:54 timotimo my father is hosting a carrera racing event and all i can think about is how uglyband dumbvthe management software is and how i would do it differently (and better of course)
16:54 denisboyun joined #perl6
16:54 timotimo being a programmer takesbthe fun out of some things ;)
16:57 FROGGS true :o)
16:58 timotimo the program looks like the stereopypical vb5 program
16:58 timotimo you know, the type where you trace ip addresses etc
17:00 * jnthn realizes that he probably last wrote VB5/6 around 15 years ago... o.O
17:00 FROGGS after seeing these king of programs I feel kinda sad because there is no time to Rewrite All The Software on your own :/
17:02 timotimo yes
17:03 timotimo the program would strongly benefit from a separate back and front end
17:03 moritz and unit tests for the backend at least
17:03 timotimo a web interface optimised for tablets, for instance would work wonders
17:04 timotimo there is an open source carrera master unit firmware replacement with a software to use it
17:04 timotimo but that program is pure curses and not self-documenting
17:06 timotimo at the very least a software for that needs support for webcams with blob tracking and HUD ;)
17:07 kaare__ joined #perl6
17:08 timotimo and a program for an industrial robot to pick up and reset crashed cats
17:09 timotimo masaks talk can hopefully helpbme develop that. who sponsors the robot? :D
17:11 nyuszika7h joined #perl6
17:26 masak :)
17:38 logie joined #perl6
17:40 timotimo hopingbmore talks will be uploaded today
18:01 FROGGS jnthn: that means that the block in token statementlist has a signature that expects something Any-ish? https://gist.github.com/FR​OGGS/43005fbb11ec07b7ad73
18:13 teslos joined #perl6
18:16 timotimo wow, this person can sing (re: lightning talks day 3)
18:23 masak timotimo: that's pdcawley++ (Piers Cawley).
18:26 diakopter hm, he said he preferred it wouldn't be online
18:28 nwc10 moritz++
18:29 nwc10 moritz: "Some of the not-quite-there features include:" "* threads and concurrency"
18:29 nwc10 soon, soon
18:29 nwc10 :-)
18:30 araujo joined #perl6
18:33 dalek rakudo-star-daily: bde2fc0 | coke++ | log/version.log:
18:33 dalek rakudo-star-daily: today (automated commit)
18:33 dalek rakudo-star-daily: review: https://github.com/coke/rakudo​-star-daily/commit/bde2fc0d59
18:34 * [Coke] grumbles that rakudo-star daily tests are still broken.
18:45 jnthn FROGGS: Yeah, 'cus NQP objects are not ~~ Any
18:45 jnthn FROGGS: I suspect we'll want to do something like JavaHOW does to "pretend", though it'll bee to be set up a bit differently than that.
18:47 timotimo the intelligent scheduler is not in rakudo-jvm yet?
18:49 [Coke] wierd, seems to work fine outside of cron.
18:49 timotimo huh? environment trouble? permission trouble?!
18:49 GlitchMr rn: my %hash is dynamic=a=>1; say %h<a>.VAR.dynamic; say %h<b>.VAR.dynamic;
18:49 camelia rakudo e7e45b: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/UaO2vWKYo2â�¤Variable '%h' is not declaredâ�¤at /tmp/UaO2vWKYo2:1â�¤------> [32mh is dynamic=a=>1; say %h<a>.VAR.dynamic[33mâ��[31m; say %h<b>.VAR.dynamic;[0mâ�¤    expecting any of:â�¤        method argumentsâ�¤Â»â€¦
18:49 camelia ..niecza v24-88-g1f87209: OUTPUT«[31m===[0mSORRY![31m===[0m��Variable %h is not predeclared at /tmp/NX4AL2XJtu line 1:�------> [32mmy %hash is dynamic=a=>1; say [33m�[31m%h<a>.VAR.dynamic; say %h<b>.VAR.dynamic[0m��Variable %h is not predeclared at /tmp/NX4AL2XJtu line 1:�------> …
18:49 Targen joined #perl6
18:49 GlitchMr rn: my %h is dynamic=a=>1; say %h<a>.VAR.dynamic; say %h<b>.VAR.dynamic;
18:50 camelia rakudo e7e45b: OUTPUT«True␤True␤»
18:50 camelia ..niecza v24-88-g1f87209: OUTPUT«Unhandled exception: Unable to resolve method dynamic in type Scalar␤  at /tmp/gD2RjGUB2B line 1 (mainline @ 4) ␤  at /home/p6eval/niecza/lib/CORE.setting line 4579 (ANON @ 3) ␤  at /home/p6eval/niecza/lib/CORE.setting line 4580 (module-CORE @ 576) ␤  at /…
18:50 GlitchMr Should %h<b>.VAR.dynamic be True in that case?
18:51 timotimo o_O
18:52 timotimo i'm surprised "is dynamic=a=>1" is even grammatical
18:52 jnthn timotimo: It's a trait on the var decl, then an assignment :)
18:52 timotimo ah
18:52 timotimo of course
18:52 timotimo the whitespace confused me ;)
18:52 timotimo (or lack thereof, to be more exact)
18:53 jnthn GlitchMr: I think lizmat put it that way deliberately, at least... :)
18:53 GlitchMr rn: say 1.3e0 - 1.2 == 0.1; say (1.3e0 - 1.2).WHICH eq 0.1e0.WHICH
18:53 camelia niecza v24-88-g1f87209: OUTPUT«False␤False␤»
18:53 camelia ..rakudo e7e45b: OUTPUT«False␤True␤»
18:53 GlitchMr rn: say 1.3e0 - 1.2 == 0.1e0; say (1.3e0 - 1.2).WHICH eq 0.1e0.WHICH
18:54 camelia niecza v24-88-g1f87209: OUTPUT«False␤False␤»
18:54 camelia ..rakudo e7e45b: OUTPUT«False␤True␤»
18:54 GlitchMr Why first conditional is False in Rakudo, but second is True.
18:54 GlitchMr I mean, WHICH should be unique for every object (I think).
18:54 GlitchMr And well, these objects aren't even equal.
18:55 [Coke] timotimo: gotta be. which means something changed on feather recently, I suppose, weirder.
18:55 jnthn WHICH isn't unique for every object, it's value identity
18:55 GlitchMr Well, for numbers, yes.
18:56 jnthn rn: say 1.3e0 - 1.2 === 0.1e0;
18:56 camelia rakudo e7e45b, niecza v24-88-g1f87209: OUTPUT«False␤»
18:56 GlitchMr But still, these numbers aren't equal, yet WHICH sees them as equal.
18:56 nwc10 OK, Hahn. Hahn is actually closer to Frankfurt than Kent's International Airport, Manston is to the LPW venue by about 0.1km
18:56 nwc10 but "London Oxford" and "London Lydd" airports are closer to London than Hahn is to Frankfurt
18:57 GlitchMr rn: say 1.3e0 - 1.2 == 0.10000000000000009e0; say (1.3e0 - 1.2).WHICH eq 0.10000000000000009e0.WHICH
18:57 camelia niecza v24-88-g1f87209: OUTPUT«False␤False␤»
18:57 camelia ..rakudo e7e45b: OUTPUT«False␤True␤»
18:57 jnthn GlitchMr: Probably WHICH is stringifying or something like that...
18:57 nwc10 http://goo.gl/maps/ausJ8 http://goo.gl/maps/FBKtR http://goo.gl/maps/ZIJNP http://goo.gl/maps/pV4Th
18:58 jnthn GlitchMr: And then precision gets it
19:00 GlitchMr https://github.com/rakudo/rakudo/commit/​da63d0841bba31dda1b2b518f87e1e24b72c5f15
19:00 GlitchMr I assume it runs Perl 6 code, not Perl 5 code.
19:01 jnthn nwc10: London *Oxford*?! :P
19:01 GlitchMr r: say "" ~~ m:P5/(??{say "World"}/
19:01 camelia rakudo e7e45b: OUTPUT«False␤»
19:01 jnthn GlitchMr: Looks like
19:01 GlitchMr Why it even passes?
19:02 nwc10 jnthn: http://www.oxfordairport.co.uk/
19:02 GlitchMr I mean, I forgot to close paren, but it passes.
19:02 nwc10 "Welcome to London Oxford Airport" - yes, they are having a laugh. Or desparate for trade
19:02 jnthn GlitchMr: Not sure; I guess Perl 5 considers that an error?
19:02 dalek perl6-roast-data: 3886612 | coke++ | / (5 files):
19:02 dalek perl6-roast-data: today (automated commit)
19:02 dalek perl6-roast-data: review: https://github.com/coke/perl6​-roast-data/commit/3886612609
19:02 GlitchMr Yes
19:03 jnthn GlitchMr: May be missing error detection, then it falls back to parsing ( as a literal. Heck knows :)
19:03 jnthn Should certainly go in RT as a bug.
19:03 GlitchMr glitchmr@feather ~> perl -e '"a" =~ /(??{print}/'
19:03 GlitchMr Sequence (?{...}) not terminated or not {}-balanced in regex; marked by <-- HERE in m/(??{ <-- HERE print}/ at -e line 1.
19:04 pmichaud std: say "" ~~ m:P5/(??{say "World"}/   # curious
19:05 camelia std 06636e4: OUTPUT«ok 00:01 51m␤»
19:05 jnthn nwc10: Doesn't look like they fly many places...
19:05 jnthn pmichaud: hah. And we nabbed the STD_P5 regex grammar... :)
19:06 GlitchMr I find that strange, considering grammar has ')', but perhaps Perl 6 grammars are just strange :).
19:06 nwc10 jnthn: true. Most of the small UK airports don't. Or it's costa del sol and charter flights
19:06 [Coke] rakudo.parrot regression: S02-magicals/env.rakudo.parrot 14 - ENV members persist to child processes
19:06 pmichaud GlitchMr: the :P5 syntax is probably undertested in many ways
19:06 GlitchMr Makes sense.
19:07 pmichaud it's not been a high priority item, since most people use p6-syntax regexes... at least so far.
19:08 GlitchMr r: say "a" ~~ m:P5/(??{print}a/ # SIGSEGV
19:08 camelia rakudo e7e45b: OUTPUT«False␤»
19:08 GlitchMr r: say "a" ~~ m:P5/(??{say "world"}a/ # SIGSEGV
19:08 camelia rakudo e7e45b: OUTPUT«False␤»
19:08 GlitchMr glitchmr@feather ~> /usr/bin/perl6 -e 'say "a" ~~ m:P5/(??{print}a/'
19:08 GlitchMr PackFile_unpack: Buffer length 0 is shorter than PACKFILE_HEADER_BYTES 18.
19:08 GlitchMr Huh
19:08 GlitchMr glitchmr@feather ~> /usr/bin/perl6 -e 'say "a" ~~ m:P5/(??{print}a/'
19:08 GlitchMr fish: Job 1, '/usr/bin/perl6 -e 'say "a" ~~ m:P5/(??{print}a/'' terminated by signal SIGSEGV (Address boundary error)
19:09 GlitchMr This is... really random.
19:11 GlitchMr https://github.com/rakudo/rakudo/commit/​aeb92de859461c03ed89a7df35ec73b629a6d49f
19:11 GlitchMr "+ Include file name in parser errors"
19:11 GlitchMr Huh? How could I miss a commit that does that.
19:12 GlitchMr Actually, whatever, it seems it's Changelog for a long range of commits.
19:13 moritz GlitchMr: commit 156de3be59136b3b75f4eb51c7ee1697667a5cfe
19:15 GlitchMr https://github.com/rakudo/rakudo/commit/​a24bf6f4e7c71e61ce89bace6404259b0d840e90
19:15 GlitchMr Unsupported use of %! variable; in Perl 6 please use your time to implement this in Perl6
19:15 GlitchMr I'm not sure if I understand that error.
19:15 GlitchMr "please use your time"
19:16 masak that seems a bit frivolous, yes.
19:16 telex joined #perl6
19:16 FROGGS hehe
19:16 FROGGS I like it
19:16 masak asking a random user to implement something in Perl 6 -- I don't consider that helpful.
19:17 masak remember, most users have no plans to be core implementors.
19:17 [Coke] make it a normal .NYI if needs be.
19:17 masak aye.
19:17 masak at least, we should aim for having enough users such that that's true.
19:17 [Coke] masak, agreed.
19:17 [Coke] with the "no plans"
19:17 nwc10 what's the Rakudo advice to downstream packagers? Install a binary as /usr/bin/perl6 ?
19:18 dalek roast: b4996e5 | coke++ | S12-attributes/recursive.t:
19:18 dalek roast: fudge for pugs
19:18 dalek roast: review: https://github.com/perl6/roast/commit/b4996e5c1e
19:18 moritz nwc10: yes
19:18 GlitchMr nwc10: I think so.
19:19 GlitchMr I mean, even "make" in Rakudo makes "perl6" binary.
19:19 nwc10 OK. Thanks
19:19 GlitchMr And well, definitely packaging "perl" binary would be wrong. "rakudo" would make sense, but Rakudo doesn't do that.
19:20 [Coke] was 50f4549 tested on parrot?
19:20 GlitchMr I think people here are fine with Rakudo being "perl6".
19:20 [Coke] er, spec-tested?
19:20 nwc10 what's the expectation once rakudo-JVM and rakudo-MOAR come onstream? Because it's likely that an OS will have packages for 2 or even 3 variants of Rakudp
19:20 nwc10 er, Rakudo
19:20 GlitchMr "rakudo-jvm", perhaps? Not sure, really.
19:20 GlitchMr (perhaps the use of "perl6" should be reconsidered)
19:21 GlitchMr (but then, people depend on "perl6" being Rakudo, in shebang, for instance)
19:22 GlitchMr But perhaps considering "nodejs" (not "node") being Node.js in Debian, perhaps it wouldn't be that confusing. And well, Perl 6 isn't really used.
19:23 nwc10 possibly you need some way of having /usr/bin/perl6 be "the preferred one" and all having longer unique names
19:24 nwc10 does debian do alternatives for things like "visual editor" ? I forget
19:24 GlitchMr Well, Debian has update-alternatives.
19:24 nwc10 IIRC OS X has things like "perl" and "gcc" able to be switched
19:24 GlitchMr I'm sure it could work that "rakudo" is preferred name, and "perl6" is name of any Perl 6 implementation (decided by something like "update-alternatives").
19:24 nwc10 I think (but I haven't thought about this for long) that that's probably the way to go
19:25 nwc10 as I forsee that quite a few users might want both rakudo-jvm and rakudo-moar available to them on the same machine
19:25 moritz sounds sensible
19:25 GlitchMr Usually "perl6" is Rakudo, but what would stop it from being, let's say, Niecza.
19:26 GlitchMr (other than it being somewhat confusing, because some scripts depend on "perl6" being Rakudo)
19:26 GlitchMr (I think Panda does, but not sure about that)
19:27 FROGGS well, if you install OpenJDK you still get a java executable
19:27 [Coke] I imagine if you needed rakudo, you'd specify with a use.
19:28 GlitchMr "require parrot"?
19:29 GlitchMr Well, by requiring Rakudo, I mean requiring Rakudo Parrot.
19:29 GlitchMr (by use of pir::)
19:29 FROGGS use Backend::Parrot
19:30 GlitchMr use Backend::NQP
19:30 GlitchMr use Backend::JVM
19:30 FROGGS because if there is another parrot-ish perl 6 interpreter taht provides pir...
19:30 GlitchMr That's the idea.
19:30 FROGGS or maybe if it is about pir:: maybe it should be like `use PIR`
19:30 FROGGS :o)
19:30 GlitchMr Interesting.
19:31 GlitchMr Somebody could for example write a Perl 6 program where certain parts are written in Java.
19:31 GlitchMr As the result, JVM is the requirement.
19:32 GlitchMr And it's fine. Just specify you require JVM.
19:33 GlitchMr Also, Backend::JVM could be interesting, because you could for example implement JVM support in other implementations (in similar style to Inline::Java from Perl 5).
19:33 FROGGS right, and you can provide emulated pir:: ops
19:34 GlitchMr That too.
19:34 FROGGS so it is not directly about a backend but more about a feature
19:35 * nwc10 wonders why you'd want emulated pir:: ops in the long term
19:35 nwc10 but my view of the long term might be heretical
19:36 FROGGS nwc10: I have no idea :o)
19:36 GlitchMr Not sure if implementing pir:: would be worth it, but why not allow it?
19:36 GlitchMr However, there are reasons to use JVM methods on non-JVM implementations, for example.
19:36 nwc10 ah. didn't realise you meant that. Yes, I see no reason to disallow emulation
19:37 ssutch joined #perl6
19:37 GlitchMr Perl allows you to write non-portable scripts (for example, you can write script that manipulates Windows registry, but don't be surprised it only works with Windows).
19:38 GlitchMr Similarly, Perl 6 should allow writing scripts that depends on certain features of compiler, like pir::.
19:40 GlitchMr https://github.com/perl6/specs/commit/9​6075285664785eceb1da4c735912bf55f8d24a6
19:40 GlitchMr visitdir() is interesting.
19:41 GlitchMr I would rather expect something like visitdir '..', { }, but that works too.
19:41 jnthn The pir:: support should need a use statement at some point
19:41 jnthn The syntax was chosen so that you could write a module pir { our sub ... { } } etc, though :)
19:42 GlitchMr Well, I think pir would need something like AUTOLOAD, but it sounds right.
19:43 moritz there's a finite amount of pir:: opcodes
19:45 GlitchMr Also, it would be nice to specify minimal version of Parrot.
19:45 GlitchMr Let say Parrot 7.0 adds do_what_i_want method.
19:45 GlitchMr Let's*
19:45 GlitchMr There is no reason to run such code when you have Parrot 6.0.
19:46 jnthn Conveniently, use pir:ver<7.0.0> is already valid Perl 6 :)
19:46 moritz the information is allvailable $*VM or whatever it's called
19:46 GlitchMr And it would be nice if Perl 6 would detect do_what_i_want method after Parrot 7.0 was released (as long it was compiled with Parrot 7.0).
19:46 GlitchMr Without having to add information about it to Perl 6.
19:49 pmurias GlitchMr: re node being nodejs in debian that's extremely annoying
19:50 pmurias GlitchMr: and that's why I used a node installed from source
19:50 GlitchMr And "ack" being "ack-grep" in Debian.
19:50 GlitchMr I know.
19:54 sidus joined #perl6
19:56 johnjohn101 joined #perl6
19:57 johnjohn101 is the jvm version of perl 6 out?
19:58 FROGGS johnjohn101: since one or two months, yes
19:58 FROGGS or longer? I dunno
19:58 johnjohn101 where/how to I try it out?  is it feasible for now?
19:58 GlitchMr It already passes 99% of spectests.
19:58 GlitchMr So it's usable.
19:59 FROGGS http://rakudo.org/downloads/rakudo/
20:00 jnthn The main thing we're missing is a nice batteries-included release (with module installer, debugger, etc.) But the compiler release contains JVM support that works pretty nicely and is quite comprehensive. :)
20:00 nwc10 download the latest Rakudo from there (or get it from git), and see the section of the README starting "Building Rakudo on JVM"
20:01 timotimo i'd love to have a rakudo-as-applet so that i can build cool "try perl6" web app widgets
20:01 nwc10 I'm right in thinking that ConfigureJVM.pl has no --gen-nqp option yet?
20:01 johnjohn101 thanks, i'll have time next weekend. !!!
20:01 jnthn nwc10: It has one now.
20:01 timotimo i was imagining a widget that allows you to edit multiple files, store a couple older revisions and have tests run against your code whenever you hit "ok"
20:01 nwc10 jnthn: oh, OK. TFM hasn't caught up
20:01 jnthn nwc10: I'm sure somebody patched the README about that the other day...
20:02 nwc10 jnthn: OK, maybe it's just my checkout hasn't caught up.
20:02 timotimo well, imagining is the wrong word. implementing would be the better word :P
20:02 jnthn Yeah, it's up to date on https://github.com/rakudo/rakudo
20:03 jnthn timotimo: I think sorear++ has plans for making that happen :)
20:04 nwc10 johnjohn101: by *next* weekend you might do better by cloning https://github.com/rakudo/rakudo and building from that, instead of using a tarball. Progress happens.
20:04 timotimo yes, he does. the plans didn't materialise early enough to coincide with my implementation ;)
20:04 johnjohn101 thanks. i love 3 day weekends
20:07 virtualsue joined #perl6
20:10 slavik joined #perl6
20:13 BenGoldberg joined #perl6
20:17 denis_boyun joined #perl6
20:22 FROGGS nqp: class Foo { method new(:$index) { say($index) } }; Foo.new(2);
20:22 camelia nqp: OUTPUT«2␤»
20:22 FROGGS haha
20:22 FROGGS nqp: class Foo { method new(:$index, :$test) { say($index ~ $test) } }; Foo.new(2, 4);
20:22 camelia nqp: OUTPUT«24␤»
20:23 FROGGS nqp: class Foo { method new(:$index, $test) { say($index ~ $test) } }; Foo.new(2, 4);
20:23 camelia nqp: OUTPUT«42␤»
20:23 FROGGS so, the named just take what is left after the positionals O.o
20:24 arnsholt Pretty normal way of doing things
20:24 nwc10 rn: class Foo { method new(:$index) { say($index) } }; Foo.new(2);
20:24 camelia rakudo cacdd1: OUTPUT«Too many positional parameters passed; got 2 but expected 1␤  in method new at /tmp/d6U4dAqphA:1␤  in block  at /tmp/d6U4dAqphA:1␤␤»
20:24 camelia ..niecza v24-88-g1f87209: OUTPUT«Unhandled exception: Excess arguments to Foo.new, used 1 of 2 positionals␤  at /tmp/NwVyDx7lXr line 0 (Foo.new @ 1) ␤  at /tmp/NwVyDx7lXr line 1 (mainline @ 5) ␤  at /home/p6eval/niecza/lib/CORE.setting line 4579 (ANON @ 3) ␤  at /home/p6eval/niecza/lib/CO…
20:24 arnsholt Common Lisp does that, more or less
20:24 nwc10 jnthn: confused, in that I thought you just said on #moarvm that it wronly works on Rakudo Parrot
20:24 nwc10 or is r: now JVM?
20:25 arnsholt nwc10: Perl 6 is specced not to do it, thankfully. But NQP doesn't always follow the Perl 6 spec, obviously =)
20:25 FROGGS nwc10: nqp, not rakudo
20:25 jnthn nwc10: NQP on Parrot is wrong
20:25 nwc10 nqp: class Foo { method new(:$index) { say($index) } }; Foo.new(2);
20:25 camelia nqp: OUTPUT«2␤»
20:25 nwc10 aha, and that should have failed?
20:25 jnthn Aye.
20:25 FROGGS yes, it is insane
20:26 FROGGS nqp: class Foo { method new(*@a, :$index) { say($index) } }; Foo.new(2, 3, 4);
20:26 camelia nqp: OUTPUT«␤»
20:27 nwc10 nqp-jvm: class Foo { method new(:$index) { say($index) } }; Foo.new(2);
20:27 camelia nqp-jvm: OUTPUT«Wrong number of arguments passed; expected 1..1, but got 2␤  in new␤  in <anon>␤  in <anon>␤  in eval␤  in evalfiles␤  in command_eval␤  in command_line␤  in MAIN␤  in <anon>␤  in <anon>»
20:27 nwc10 so just parrot?
20:27 dmol1 joined #perl6
20:27 FROGGS yes
20:28 FROGGS and since nqp-jvm is right here we can expect that there is no wrong nqp code flying around
20:28 jnthn FROGGS: There was in the Moar cross-comp... :)
20:28 FROGGS jnthn: yeah
20:29 btyler joined #perl6
20:29 FROGGS and it might be possible that a rakudo-jvm spectest fail is due to this...
20:29 [Coke] there are several new rakudo.jvm failures in the past week.
20:29 FROGGS but I dont know how good the odds are on that
20:38 FROGGS [Coke]: I see...
20:47 virtualsue joined #perl6
20:49 FROGGS nqp: nqp::getenvhash()
20:50 camelia nqp:  ( no output )
20:51 FROGGS nqp: my $V5DEBUG := +nqp::atkey(nqp::getenvhash(), 'V5DEBUG');
20:51 camelia nqp: OUTPUT«Null PMC access in get_number()␤current instr.: '' pc 53 ((file unknown):44) (/tmp/VqBaZ4JP6m:1)␤»
20:51 FROGGS nqp: my $V5DEBUG := nqp::atkey(nqp::getenvhash(), 'V5DEBUG');
20:51 camelia nqp:  ( no output )
20:51 FROGGS meh
20:52 jnthn FROGGS: Use normal hash indexing if you want protection from nulls
20:52 FROGGS jnthn: this was working before
20:53 abnorman joined #perl6
20:53 sidus joined #perl6
20:53 FROGGS I just found out was it was... because the backtrace was a bit misleading
20:53 FROGGS but it is good that I can work-around that that easily
20:54 denis_boyun joined #perl6
21:00 bbkr joined #perl6
21:02 [Coke] f
21:03 FROGGS no such symbol &f
21:03 diakopter f indeed
21:03 FROGGS no such symbol &f
21:03 FROGGS err, two terms in a row
21:03 FROGGS O.o
21:05 jnthn no, it's a listop :)
21:05 jnthn r: f indeed
21:05 camelia rakudo cacdd1: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/hEvgPS9TwUâ�¤Undeclared routines:â�¤    f used at line 1â�¤    indeed used at line 1. Did you mean '&index'?â�¤â�¤Â»
21:05 diakopter ha
21:06 diakopter r: e pi
21:06 camelia rakudo cacdd1: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/dDHn_vzH2qâ�¤Two terms in a rowâ�¤at /tmp/dDHn_vzH2q:1â�¤------> [32me [33mâ��[31mpi[0mâ�¤    expecting any of:â�¤        postfixâ�¤        infix stopperâ�¤        infix or meta-infixâ�¤        statement endâ�¤        state…
21:07 FROGGS rakudo-jvm$ ./perl6 -e 'nqp::sprintfdirectives("%s")'
21:07 FROGGS This representation can not unbox to a native str
21:07 FROGGS :o(
21:13 Grrrr joined #perl6
21:16 lizmat joined #perl6
21:17 denis_boyun joined #perl6
21:19 woolfy joined #perl6
21:22 lizmat joined #perl6
21:26 masak r: say "README".IO.e
21:26 camelia rakudo cacdd1: OUTPUT«False␤»
21:30 FROGGS r: say ".".IO.e
21:30 camelia rakudo cacdd1: OUTPUT«True␤»
21:35 xenoterracide joined #perl6
21:45 kst` joined #perl6
21:49 woolfy left #perl6
21:58 denis_boyun joined #perl6
22:02 FROGGS nqp-jvm: nqp::sprintfdirectives("")
22:02 camelia nqp-jvm: OUTPUT«No registered operation handler for 'sprintfdirectives'␤  in compile_op␤  in as_jast␤  in as_jast␤  in <anon>␤  in compile_all_the_stmts␤  in as_jast␤  in as_jast␤  in <anon>␤  in compile_all_the_stmts␤  in as_jast␤  in as_jast␤  in <anon>␤  in compile_all_the_stmts␤  in…
22:08 timotimo compile ALL the stmts!
22:09 FROGGS yeah
22:09 FROGGS would be a nice t-shirt
22:21 dalek v5: 049deb6 | (Tobias Leich)++ | lib/Perl5/Actions.nqp:
22:21 dalek v5: new nqp::getenvhash op doesnt like nonexistant env vars
22:21 dalek v5: review: https://github.com/rakudo-p5/v5/commit/049deb620d
22:21 dalek v5: 4c96ccd | (Tobias Leich)++ | / (2 files):
22:21 dalek v5: update to latest nqp and rakudo
22:21 dalek v5: review: https://github.com/rakudo-p5/v5/commit/4c96ccd11f
22:21 Rotwang joined #perl6
22:43 zakharyas joined #perl6
23:07 eternaleye joined #perl6
23:47 johnjohn101 left #perl6

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

Perl 6 | Reference Documentation | Rakudo