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