»ö« 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.
00:03 pdcawley left 00:10 xinming left 00:16 raiph joined
Ben_Goldberg rn: ((map { $_ }, ^Inf) but role {})[0].print 00:19
camelia niecza v24-88-g1f87209: OUTPUT«0»
..rakudo aab3d7: OUTPUT«This type does not support elems␤ in method REIFY at src/gen/CORE.setting:7492␤ in method reify at src/gen/CORE.setting:6718␤ in method gimme at src/gen/CORE.setting:7138␤ in method exists at src/gen/CORE.setting:7126␤ in method at_pos at src/gen/CORE.setting:…
Ben_Goldberg rn: ((^Inf) but role {})[0].print 00:20
camelia niecza v24-88-g1f87209: OUTPUT«0»
..rakudo aab3d7: OUTPUT«No such method 'BUILD' for invocant of type 'Range+{<anon>}'␤ in method reify at src/gen/CORE.setting:6581␤ in method reify at src/gen/CORE.setting:6705␤ in method gimme at src/gen/CORE.setting:7138␤ in method exists at src/gen/CORE.setting:7126␤ in method at_…
Ben_Goldberg rn: (^Inf).BUILD 00:22
camelia niecza v24-88-g1f87209: OUTPUT«Unhandled exception: Unable to resolve method BUILD in type Range␤ at /tmp/exY_i8Kn4Z line 1 (mainline @ 3) ␤ at /home/p6eval/niecza/lib/CORE.setting line 4579 (ANON @ 3) ␤ at /home/p6eval/niecza/lib/CORE.setting line 4580 (module-CORE @ 576) ␤ at /hom…
..rakudo aab3d7: OUTPUT«Not enough positional parameters passed; got 1 but expected 5␤ in submethod BUILD at src/gen/CORE.setting:6476␤ in block at /tmp/bznIq3s7Ez:1␤␤»
Ben_Goldberg rn: (^Inf but role {}).BUILD
camelia rakudo aab3d7: OUTPUT«No such method 'BUILD' for invocant of type 'Range+{<anon>}'␤ in block at /tmp/SoyKi2NooD:1␤␤»
..niecza v24-88-g1f87209: OUTPUT«Unhandled exception: Unable to resolve method BUILD in type Range+ANON␤ at /tmp/BDvaIqqfSa 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…
diakopter anyone know where in Frankfurt the symposium will be 00:27
00:29 pdcawley joined 00:32 pdcawley left 00:55 berekuk left
[Coke] colomon, sorear: what's the plan for niecza in re: spec tests? 01:09
colomon [Coke]: I'm not sure there is a plan. 01:10
I'd like to fix things up when I get the chance.
But I feel that working on Rakudo JVM is higher priority at the moment.
And I'm not even finding time to do that.
colomon may be excessively vacationing this summer. 01:11
[Coke] would you be averse to fudging things that are currently failing if we added issues for them?
or do you want to just leave it? 01:12
(I am offerring to do the fudging here.) 01:13
01:36 xenoterracide left, FROGGS_ joined 01:40 FROGGS left
dalek ast: d6c9458 | coke++ | / (7 files):
refudge for pugs
01:45
01:54 go|dfish joined, xenoterracide joined 01:55 colomon left 01:56 EvanTeitelman joined
dalek ast: b41523a | coke++ | S32-list/squish.t:
small fudge for rakudo.jvm
02:06
02:09 PacoAir joined 02:12 PacoAir left, FROGGS_ left 02:36 raiph left 02:57 raiph joined 03:01 colomon joined 03:19 colomon left 03:27 preflex_ joined, ChanServ sets mode: +v preflex_, preflex left, mauke left, mauke joined, preflex_ is now known as preflex 03:48 grondilu joined 03:59 EvanTeitelman left 04:03 xenoterracide left 04:08 xenoterracide joined
grondilu check this out: rosettacode.org/wiki/Longest_increa...nce#Perl_6 04:24
mauke heh. is that the equivalent of $l[$i] = [ @{$l[$j]} ] in perl5? 04:27
grondilu yep but th perl5 version is actually the translation from Perl6 04:30
I don't understand why I could not have written @l[$i] = @l[$j].clone, but maybe I misunderstand what .clone means? 04:32
sorear clone is evil; it's always either deeper or shallower than the user expects 04:37
grondilu ok 04:44
04:46 Ben_Goldberg left
moritz \o 04:48
sorear o/
grondilu maybe I can write @l[$i] = @l[$j].Array It's not shorter, but it looks cleaner. 04:52
and it works (just checked) 04:53
05:06 Urchin[emacs] left 05:19 Urchin[emacs] joined
dalek kudo/nom: 63a865a | moritz++ | ConfigureJVM.pl:
[configure] fix help text
05:20
05:30 raiph left
timotimo grondilu: i suspect .item would have helped, too 05:55
05:57 SamuraiJack__ joined
grondilu timotimo: nope, item does not work actually 06:04
06:10 |ChErOkY| left
timotimo strange 06:20
oh it's because you're accessing the same list on both sides, eh? hm. 06:22
06:23 araujo left 06:24 araujo joined 06:36 kaare_ joined 06:51 raiph joined 06:56 lizmat joined
lizmat is catching up on backlog 07:22
yoleaux 17 Aug 2013 06:42Z <FROGGS> lizmat: please read irclog.perlgeek.de/perl6/2013-08-17#i_7462070
lizmat FROGGS: I'm not sure how that can have broken the build, as I have spectested it and it came out ok ? 07:24
.oO( Heisenbug? )
timotimo may very well be one :( 07:26
the only thing i can think of is you changed the Makefile*.in files, in which case you could only see the bug if you had run Configure.pl 07:27
lizmat that patch most definitley did not change .in files
it's been a while since I did that
moritz lizmat: afaik the patch broke the build only on jvm 07:28
lizmat aha!
moritz (while compiling the setting, iirc)
lizmat ok, that makes some sort of sense then
but then it's a .JVM problem :-)
there *is* someting spooky about that code, as I have tried to abstract the code that lives in 7 places into an internal method 07:29
and with that, it just simply did not work
guess I'll rework it to using an internal method, and have jnthn++ and others figure out why it doesn't work 07:30
07:31 Urchin[emacs] left
masak good morning, #perl6 07:32
moritz lizmat: that's what branches are good for :-) 07:33
good morning masak
masak: t3? 07:34
masak moritz: $work deadline. 07:35
moritz: maybe, um, Friday.
moritz has high hopes 07:36
masak :)
thanks for caring. it warms. 07:37
moritz
.oO( we thank you for you're patients )
07:38 locsmif left
lizmat .tell jnthn trying to fix "is default" trait mod with $what.^mro.first( { !nqp::p6bool(.HOW.is_mixin($_)) } ), does not work :-( 07:39
yoleaux lizmat: I'll pass your message to jnthn.
sorear o/ masak 07:42
masak sorear! \o/ 07:43
sorear: I'm progressing in my category theory madn^Wknowledge.
sorear: mostly by explaining stuff to jnthn.
moritz we have sore(ar)ly missed you at YAPC::EU
masak sorear: most recently: products are terminal objects in a (specially-made) category of spans.
07:44 FROGGS_ joined 07:45 FROGGS_ is now known as FROGGS
FROGGS o/ 07:45
masak FROGGS! \o/
FROGGS :D
sorear mmm, universal properties 07:47
masak indeed!
07:47 thou left
masak learning about products and coproducts is like waking up and realizing that all your life, people have been telling you exactly two things, but they sounded like 1024 things because the words were slightly different. 07:48
lizmat r: my %h is dynamic=a=>1; say %h<a>.VAR.dynamic # I guess this should be 1 07:50
camelia rakudo 63a865: OUTPUT«0␤»
lizmat r: my %h is dynamic=a=>1; say %h.VAR.dynamic # as is this 07:51
camelia rakudo 63a865: OUTPUT«No such method 'dynamic' for invocant of type 'Hash'␤ in block at /tmp/RvNxncwyrH:1␤␤»
lizmat huh?
masak jnthn (and others): www.cis.upenn.edu/~stevez/papers/LZ06b.pdf -- "A Language-based Approach to Unifying Events and Threads" 07:52
lizmat ah, that was part of the patch that FROGGS reverted :-(
FROGGS lizmat: yeah :o( 07:53
lizmat: did you know what went wrong?
lizmat well, on parakudo it works fine 07:54
spectest and all
FROGGS right, but something on the jvm breaks the build
lizmat yes, something: what was the error message? 07:55
FROGGS an UnwindException 07:56
FROGGS is searching for a gist
lizmat: I only can provide this right now: irclog.perlgeek.de/perl6/2013-08-16#i_7459060 07:59
lizmat ok, thanks1 08:00
masak nice article about a bootstrapping compiler: blog.rzimmerman.me/how-kal-compiles-itself/ 08:01
looks quite a lot like nqp.
08:08 pernatiy joined
FROGGS nqp: say( nqp::objprimspec( nqp::knowhow().new_type(:name("TestBigInt"),:repr("P6bigint")) ) ) # jnthn, should this return 0 ? 08:34
camelia nqp: OUTPUT«1␤»
masak what does nqp::objprimspec do? 08:36
08:42 dmol joined
FROGGS 0 = non-native/obj/PMC, 1 = int, 2 = num, 3 = str 08:44
masak well, I guess then it comes down to whether P6bigint pretends (enough) to be an int, or whether the fact that it's actually not takes precendence. 08:50
08:52 spider-mario joined 09:04 Rotwang joined
FROGGS how can I check that something is a 6model object? in nqp? 09:05
lizmat hmmm… it seems that in src/core/terms, line 19: %ENV{$key} = nqp::p6box_s(nqp::atkey($env, nqp::unbox_s($key))); 09:08
is *not* using the at_key method provided in the role at line 31
jnthn: any idea what could be going on there ? 09:09
I assume that that is what was breaking the build on the JVM
and was causing the method approach I had not to work on parakudo
09:12 rindolf joined 09:23 SamuraiJack__ left 09:27 raiph left
GlitchMr std: (1 + 2) / (3 / 4)) 09:29
camelia std c2215f0: OUTPUT«===SORRY!===␤Unexpected closing bracket at /tmp/t9qqZVS9UV line 1:␤------> (1 + 2) / (3 / 4)⏏)␤Parse failed␤FAILED 00:00 43m␤»
GlitchMr std: class Test { for ^5 { .say } } 09:31
camelia std c2215f0: OUTPUT«ok 00:00 43m␤»
masak I'm confused. twitter.com/YoshuaDavis/status/367...00/photo/1 09:32
I don't think that's an autopun... o.O
...but I'm not sure... 09:33
jnthn ain't sure either 09:47
yoleaux 07:39Z <lizmat> jnthn: trying to fix "is default" trait mod with $what.^mro.first( { !nqp::p6bool(.HOW.is_mixin($_)) } ), does not work :-(
jnthn FROGGS: Yes, P6bigint does not inline as a native int 09:48
09:49 kaare_ left 09:58 iSlug joined 10:07 crab2313 joined 10:11 crab2313 left, xinming joined
lizmat jnthn: in src/core/tems, the local %ENV is bound to %*ENV with "nqp::bindkey(nqp::who(PROCESS), '%ENV', %ENV);" 10:16
could you think of any reason why that would fail ? 10:17
10:17 berekuk joined
lizmat I've basically conflated the role of %ENV into "my %ENV does role {", as apparently the Hash.at_key was being called instead of the role's 10:18
I've verified that the hash is filled correctly, and that the role's "at_key" is used, but now %*ENV is empty 10:19
jnthn lizmat: Hmm... 10:20
lizmat: Dunno how well that'd work out on JVM... 10:21
lizmat the filling of the hash is the only part that is currently VM dependent
jnthn wonders how that trait_mod looks 10:23
Before it just used the does operator, no?
lizmat before it said "my %ENV" and then later "%ENV does role {...}
jnthn Right, looking at the code that seems correct.
lizmat but then, the at_key of the role was *not* used 10:24
jnthn We populate it cheaply, then attach the extra magic for the future.
lizmat it would use the Hash.at_key
jnthn Was not used when? In the initial population?
lizmat yup
jnthn Right, that looks deliberate and good to me.
lizmat ok
lizmat reverts local commit 10:25
jnthn No point creating all those Proxy objects on the initial population
lizmat ok, but then I get "cannot assign to read only value: error on line 19: %ENV{$key} = nqp::p6box_s(nqp::atkey($env, nqp::unbox_s($key))); 10:26
*that* is the top of the stack
so I don't know where it is going wrong in "at_key" or CLONE_ELEMENT 10:27
10:28 berekuk left
jnthn CLONE_ELEMENT is that thing I'm about to make redundant by adding the scalarfromdesc op, I guess? 10:28
lizmat yes
jnthn is working on the op now 10:32
lizmat jnthn++ 10:34
jnthn r: my %h; say %h<a> + 1 10:35
camelia rakudo 63a865: OUTPUT«use of uninitialized value of type Any in numeric context in block at /tmp/_aNlwoZ0at:1␤␤1␤»
lizmat jnthn: also make sure that "dynamic" flag is cloned
jnthn lizmat: That flag is in the descriptor, iirc? 10:36
10:36 berekuk joined
jnthn lizmat: We're not cloning, just attaching. 10:36
lizmat r: my %h is dynamic=a=>1; say %h<a>.VAR.dynamic # to handle this
camelia rakudo 63a865: OUTPUT«0␤»
jnthn (to a new container)
lizmat yes, it's in the descriptor
jnthn ok, then it'll be fine
btw, I noticed the patch also added a .descriptor; that object wasn't designed to leak out into Perl 6 space. 10:38
10:38 grondilu left
lizmat that was only to make CLONE_ELEMENT work 10:39
jnthn ok, good
lizmat I'll unleak it :-)
jnthn It already was when FROGGS's reverted the patch 10:40
lizmat indeed
10:41 leont joined
leont How do I do mkpath in perl6? It seems rmdir is documented but its opposite not 10:42
lizmat fwiw, mkdir exists 10:43
10:46 jaffa4 joined
jaffa4 hi 10:46
what is the scope of label in Perl6?
lizmat apart from it being NYI, afaik, it's supposed to be lexotic? 10:47
jaffa4 NYI? 10:48
it is possible to reference it from an outer scope ?
GlitchMr I've a problem. I tried everything, but I cannot use IPv6 in Perl 6. 10:49
getaddrinfo failed: ipv6.google.com: Success
jaffa4 everything? It looks like a big word too me....
GlitchMr $ perl6 -e 'my $sock = IO::Socket::INET.new(host => "ipv6.google.com", port => 80); $sock.send("GET /lol HTTP/1.1\r\n\r\n"); say $sock.recv'
lizmat Not Yet Implemented
GlitchMr This doesn't work. I also tried using IPv6 address, instead of host. 10:50
But it doesn't work too.
jaffa4 $/.CURSOR,,,, where is it defined? 10:54
11:01 donaldh joined, grondilu joined
dalek p: 9706494 | jnthn++ | src/vm/jvm/runtime/org/perl6/nqp/runtime/CompilationUnit.java:
Avoid UnwindException reports in load failures.

This prevents the real error from being obscured when e.g. a failure occurs during setting loading.
11:03
lizmat jnthn++ for allowing people to find out what I broke :-)
11:03 berekuk left
jnthn It's allowing me to find out what I'm breaking too :) 11:04
donaldh hi o/
jaffa4 break dance
jnthn oh, duh, I did something retartet
jaffa4 jnthn: how would you add a label to the symbol table? 11:05
jnthn jaffa4: The .CURSOR method is defined in the NQPMatch or Match objects, i suspect
o/ donaldh
jaffa4: $*W.install_lexical_symbol is the usual way to put something there 11:06
donaldh is it okay for rakudo to share NQP_REVISION between jvm and parrot ?
11:06 berekuk joined
jnthn donaldh: I think so 11:06
11:07 rindolf left
jnthn donaldh: If we find it's causing too many bumps we can undo it 11:07
donaldh: uh, split it
donaldh: But as JVM stabalizes as a backend, I suspect it won't be an issue.
donaldh imagines the confusion of two different NQP_REVISIONs
jnthn Yeah, I think that'd be icky too :)
donaldh okay, bumping NQP_REVISION to, well, about now.
:)
11:08 berekuk left 11:11 sarah1981 joined
sarah1981 hi 11:11
11:11 sarah1981 left
lizmat catches up on some sleep again& 11:19
dalek kudo/scalar-from-desc: 7f1cd51 | jnthn++ | src/vm/jvm/runtime/org/perl6/rakudo/RakOps.java:
Ensure gcx.Nil gets initialized.
11:21
kudo/scalar-from-desc: 1964396 | jnthn++ | src/vm/jvm/runtime/org/perl6/rakudo/RakudoContainerSpec.java:
Correct Nil handling.
11:21 kaare_ joined
masak hello from a train! :) 11:22
jnthn Is it running late?
:P
masak not yet.
mathw hello from my house! 11:25
masak r: for <masak train mathw house> -> $user, $location { say "$user says hello from a $location!" } 11:26
camelia rakudo 63a865: OUTPUT«masak says hello from a train!␤mathw says hello from a house!␤»
jaffa4 r: 11:37
masak: where are you going?
11:41 jeff_s2 joined, jeff_s1 left
masak jaffa4: sometimes $work sends me to different cities to teach. 11:41
jaffa4 masak: what do you teach? 11:42
FROGGS jnthn: is a bigint inlineable? github.com/perl6/nqp/blob/master/s...int.c#L145 11:43
masak jaffa4: software development.
jaffa4: this week, I'll be teaching the general stuff (software architecture) and then the more specific stuff (Python). 11:44
FROGGS *lol*
:P
(that is an insider)
jnthn FROGGS: Yes 11:45
FROGGS hmmm, then I am missing a piece of my puzzle
donaldh hmm. Long test cycle for --gen-nqp on JVM, regression testing all the gen/with parrot/jvm prefix/noprefix combinations 11:46
FROGGS jnthn: if it is inlineable, and objprimspec and isint tell it is an int, how can I know it is not a native int already?
jnthn objprimspec thinks it's an int? 11:47
FROGGS it returns one
masak jaffa4: to answer your earlier question: yes, you can reference labels from an outer scope. but you can't jump into a scope that require parameters, because those parameters would not be present and That Would Be Bad. 11:48
though as I think about it, I think even that restriction is a bit too narrow.
FROGGS jnthn: so, I remember that you said that I change nqp.ops to this again: $1 = ss.boxed_primitive == STORAGE_SPEC_BP_INT ? 1 : 0; 11:49
err, wrong paste
masak because, for example, a closure is not really part of the control flow of its OUTER. so if you goto'd it and it exited, where would you end up?
FROGGS jnthn: to this: $1 = ss.inlineable ? ss.boxed_primitive : STORAGE_SPEC_BP_NONE;
jnthn: but since it is inlineable the result is still 1 11:50
jaffa4 I managed to add the labels to the grammar along with the message they are not implemented
jnthn oh, wait...maybe it claims to be an int since you can nqp::unbox_i on it... 11:51
FROGGS jaffa4: and the spectests stil pass?
jnthn: yeah
jaffa4 they have not passed all before thay
FROGGS jnthn: but in nqp::sprintf I actually need to know whether to unbox or not, and I dont know how to get that information 11:52
jaffa4: I mean, are there any regressions due to your patch?
jaffa4 How would I know that?
masak jaffa4: 'make test'
FROGGS and you compare the result
masak jaffa4: if the spectests all pass, the next step would be sending a patch (to RT) or a pull request (to github's rakudo/rakudo)
jaffa4 then I have to make it twice before and after 11:53
FROGGS yes
masak jaffa4: most of us pull/build/make test daily. since we're in the habit, we only need to make test once, afterwards :) 11:55
jaffa4 what tests do you perform? full scale? 11:56
masak jaffa4: 'make test' runs the spectest suite. if that didn't answer your question, please rephrase. 11:58
jaffa4 you mean coretest 11:59
test : coretest <<<<<
fulltest: coretest stresstest <<<<
masak no, I mean github.com/perl6/roast
also known as 'the spectest suite'. 12:00
the fact that it's called 'roast' is because TimToady found it annoying that the 'spec/' and 'spectest/' directories clashed when tab-completing.
jaffa4 I think when I use nmake fulltest it uses roast 12:01
masak I think so too. 12:02
jaffa4 this takes a while 12:05
masak yes. 12:06
on the other hand, we don't have many regressions. 12:07
jaffa4 that is how I do myself with some of my software 12:09
Are the tests stored anywhere? 12:11
FROGGS nmake spectest <---
in t\spec
jaffa4 the test results
FROGGS no, these are just displayed 12:12
but you can set a tap harness environment variable to capture it
though it will be overwritten by next run
I usually just copy&paste the test summary to a new file, before applying a patch and after 12:13
jnthn: and in order to supply an argument handler I'd need to know if the variable I got is a 6model obj 12:14
jnthn: and I dont know how to do that either :o) 12:15
(my knowless is great)
12:15 colomon joined
colomon [Coke]: fudge ==> issues sounds good to me 12:23
12:35 bearman joined
jnthn FROGGS: What's the actual thing you're trying to work out? 12:35
FROGGS jnthn: getting t/jvm/06-sprintf.t to work under nqp@parrot 12:36
JimmyZ
.oO(It works on MoarVM, but not on parrot)
12:37
jnthn It probably works anywhere where everything is a 6model object :P 12:39
JimmyZ :P
12:41 birdwindupbird joined
jnthn FROGGS: Can you show me the code that fails? 12:42
FROGGS sure, need to recompile though 12:49
jnthn np; busying myself with some hash/array stuff 12:50
FROGGS dev/nqp$ nqp -e 'my $kh := nqp::knowhow().new_type(:name("TestBigInt"), :repr("P6bigint")); my $i := nqp::pow_I(nqp::box_i(33, $kh), nqp::box_i(21, $kh), $kh, $kh); nqp::say(nqp::sprintf("<%d>", [$i]));' 12:51
get_integer() not implemented in class 'TestBigInt'
current instr.: 'intify' pc 50329 (src/stage2/gen/NQPHLL.pir:19453) (src/stage2/gen/NQPHLL.nqp:2130)
jnthn: ^^
jnthn Does pow_I actually take two bigints? 12:52
FROGGS you can ask questions :P 12:53
I'd think so # QAST::Operations.add_core_pirop_mapping('pow_I', 'nqp_bigint_pow', 'PPPPP', :inlinable(1)); 12:54
and in bigint_ops it calls get_bigint on the args 12:56
jnthn hm, core setting agrees in its usage too
Oh, but it's somewhere in nqp::sprintf that it explodes?
FROGGS jnthn: yes, I believe it explodes when calling nqp::box_i on it (which is there because it thinks it is a native int) 13:00
13:01 pmurias joined 13:23 colomon left
dalek kudo/scalar-from-desc: 4d160b3 | jnthn++ | src/vm/jvm/ (2 files):
Add nqp::p6scalarfromdesc op on JVM backend.
13:34
kudo/scalar-from-desc: d3bd8df | jnthn++ | src/Perl6/ (2 files):
Tease apart scalar init and default value.
kudo/scalar-from-desc: 2d6e418 | jnthn++ | src/core/ (2 files):
Start switching over to nqp::p6scalarfromdesc.
13:34 ivanoff joined 13:43 stevan_ joined
FROGGS jnthn: do you think you have time later to have a look at the from_nqp branches later? 13:43
13:47 BenGoldberg joined
FROGGS the problem was that nqp does stuff that rakudo should do: github.com/perl6/nqp/commit/ab98aa...e15a#L2L89 13:48
but I was/am unable to fix it
13:48 telex joined
BenGoldberg rn: (^Inf but role {})[0].print 13:50
camelia niecza v24-88-g1f87209: OUTPUT«0»
..rakudo 63a865: OUTPUT«No such method 'BUILD' for invocant of type 'Range+{<anon>}'␤ in method reify at src/gen/CORE.setting:6581␤ in method reify at src/gen/CORE.setting:6705␤ in method gimme at src/gen/CORE.setting:7138␤ in method exists at src/gen/CORE.setting:7126␤ in method at_…
masak I'm almost tempted to report that one as a rakudobug. 13:51
jnthn Weird error.
masak submits rakudobug
FROGGS rn: (^3 but role {})[0].print 13:52
camelia niecza v24-88-g1f87209: OUTPUT«0»
..rakudo 63a865: OUTPUT«No such method 'BUILD' for invocant of type 'Range+{<anon>}'␤ in method reify at src/gen/CORE.setting:6581␤ in method reify at src/gen/CORE.setting:6705␤ in method gimme at src/gen/CORE.setting:7138␤ in method exists at src/gen/CORE.setting:7126␤ in method at_…
masak Niecza's result looks perfectly reasonable to me.
13:52 ajr joined 13:53 ajr is now known as ajr_, fridim__ left
FROGGS r: say (^3 but role {}).^methods # it even says it has a method BUILD 13:53
camelia rakudo 63a865: OUTPUT«new flat infinite iterator list bounds reify at_pos roll pick of ACCEPTS perl Numeric <anon> <anon> <anon> <anon> BUILD elems infinite item fmt Int Num chrs Numeric Str␤»
TimToady it's a submethod, so cannot be used by a subclass
jnthn ah, yes. 13:54
FROGGS yeah, seen that too right now
TimToady guessing the generic BUILD method then can't handle the difference
dalek kudo/scalar-from-desc: 1c86f71 | jnthn++ | src/Perl6/Actions.nqp:
Fix a thinko to blame for most regressions.
13:55
masak still, an error seems a bit harsh.
13:55 EvanTeitelman joined
TimToady maybe some types need to supply a method rather than a submethod BUILD, if they are fiddly to derive from 13:56
masak r: say (1..1 but role {})[0] 13:57
camelia rakudo 63a865: OUTPUT«===SORRY!=== Error while compiling /tmp/MEMHJML4vP␤Operators '..' and 'but' are non-associative and require parenthesis␤at /tmp/MEMHJML4vP:1␤------> say (1..1 ⏏but role {})[0]␤ expecting any of:␤ postfix␤ infix …
TimToady though in this case, it seems as though it's a missing Mu.BUILD
BenGoldberg Here's a similar problem:
rn: my @a := gather { .take for ^Inf } but role { method infinite() { True } }; say @a[^10];
masak r: say ((1..1) but role {})[0]
camelia niecza v24-88-g1f87209: OUTPUT«0 1 2 3 4 5 6 7 8 9␤»
..rakudo 63a865: OUTPUT«This type does not support elems␤ in method REIFY at src/gen/CORE.setting:7492␤ in method reify at src/gen/CORE.setting:6718␤ in method gimme at src/gen/CORE.setting:7138␤ in method exists at src/gen/CORE.setting:7126␤ in method at_pos at src/gen/CORE.setting:…
rakudo 63a865: OUTPUT«1␤»
masak o.O
r: print ((1..1) but role {})[0] 13:58
camelia rakudo 63a865: OUTPUT«1»
TimToady or the submethod is blocking inheritance of the generic Mu.BUILD
masak why does *that* work?
BenGoldberg r: Mu.^methods.say 13:59
camelia rakudo 63a865: OUTPUT«ACCEPTS WHERE WHICH take WHY Bool so not defined new CREATE bless BUILDALL BUILD_LEAST_DERIVED Numeric Real Str Stringy item say print gist perl DUMP DUMP-PIECES DUMP-OBJECT-ATTRS isa does can clone Capture Method+{<anon>}.new() dispatch:<::> Method+{<anon>}.new() …
masak r: print ((0..^3) but role {})[0]
camelia rakudo 63a865: OUTPUT«No such method 'BUILD' for invocant of type 'Range+{<anon>}'␤ in method reify at src/gen/CORE.setting:6581␤ in method reify at src/gen/CORE.setting:6705␤ in method gimme at src/gen/CORE.setting:7138␤ in method exists at src/gen/CORE.setting:7126␤ in method at_…
masak r: print ((0..3) but role {})[0] 14:00
camelia rakudo 63a865: OUTPUT«No such method 'BUILD' for invocant of type 'Range+{<anon>}'␤ in method reify at src/gen/CORE.setting:6581␤ in method reify at src/gen/CORE.setting:6705␤ in method gimme at src/gen/CORE.setting:7138␤ in method exists at src/gen/CORE.setting:7126␤ in method at_…
masak r: print ((3..3) but role {})[0]
camelia rakudo 63a865: OUTPUT«3»
masak ah.
needs to have different endpoints.
r: print ((3..0) but role {})[0]
jnthn I guess it's on creation of the next iterator 14:01
camelia rakudo 63a865: ( no output )
jnthn Which makes sense given BUILD is complained about.
masak needs to have start smaller than end, even.
jnthn: aye.
TimToady r: say ((0..3) but role { submethod BUILD(|c) { Mu.BUILD(c) } })[0,1]
camelia rakudo 63a865: OUTPUT«No such method 'BUILD' for invocant of type 'Mu'␤ in submethod BUILD at /tmp/CX8cckAm6b:1␤ in method BUILD_LEAST_DERIVED at src/gen/CORE.setting:915␤ in sub infix:<but> at src/gen/CORE.setting:14967␤ in sub infix:<but> at src/gen/CORE.setting:14962␤ in block …
TimToady r: say ((0..3) but role { submethod BUILD(|c) { self.Mu::BUILD(c) } })[0,1] 14:02
camelia rakudo 63a865: OUTPUT«No such method 'BUILD' for invocant of type 'Mu'␤ in any find_method_qualified at src/gen/Metamodel.nqp:956␤ in method dispatch:<::> at src/gen/CORE.setting:1135␤ in submethod BUILD at /tmp/Do71SurzaD:1␤ in method BUILD_LEAST_DERIVED at src/gen/CORE.setting:915…
TimToady hmm
oh, it said BUILD_LEAST_DERIVED, not BUILD 14:03
BenGoldberg r: (gather {} but role {})[0]
camelia rakudo 63a865: OUTPUT«This type does not support elems␤ in method REIFY at src/gen/CORE.setting:7492␤ in method reify at src/gen/CORE.setting:6718␤ in method gimme at src/gen/CORE.setting:7138␤ in method exists at src/gen/CORE.setting:7126␤ in method at_pos at src/gen/CORE.setting:…
BenGoldberg A range produces one type of error, and a gather a different type of error? 14:04
TimToady so how *does* rakudo handle missing BUILD submethods, anyway?
masak .oO( badly ) 14:05
BenGoldberg n: (gather {} but role {})[0]
camelia niecza v24-88-g1f87209: ( no output )
TimToady S12:667 seems to indicate there should be a Mu.BUILD
synopsebot Link: perlcabal.org/syn/S12.html#line_667
14:06 crab2313 joined, domidumont joined
TimToady not to mention S12:866 14:07
synopsebot Link: perlcabal.org/syn/S12.html#line_866
jnthn TimToady: Calling a BUILD that actually does introspection etc. turned out to be incredibly slow. BUILDALL actually executes a class-compose-time assembled "plan" for how to do the object construction. Thus the lack of "need" for a Mu.BUILD. 14:08
TimToady ok, but the plan in this case seems...lacking... 14:09
jnthn TimToady: Thanks to all the named arg passing around, it's rather hard to get object construction to perform decently...
14:09 crab2313 left
jnthn TimToady: I think that the range "make a next iterator" code is cheating and doing a .BUILD call directly on a .CREATE'd object... 14:10
Which I guess is an OK cheat, expect it's also marked as a submethod
TimToady so maybe it should be a normal method? 14:11
or would that break differently? :)
jnthn That would seem to fix this particular issue, yes.
I can't immediately think of anything else it'd break
TimToady well, it'd be nice to have a better story than Ruby on derivation from built-in types :) 14:12
14:12 stevan_ left
TimToady but one also wants speed 14:12
jnthn The real pain I find with trying to get object construction to perform is that new gets a named slurply, which it then flattens to pass to bless, which in turn creates a new named slurpy
14:12 colomon joined
jnthn You can't just re-use the capture because bless wants one extra arg, * 14:13
TimToady right
jnthn For the thingy to bless.
TimToady maybe default bless doesn't take an arg, and we add a bless_this or some such 14:14
and default bless can do its own create
names negotiable, of course
jnthn What role does bless actually fill today? 14:15
Here's how it looks in Rakudo:
method bless(Mu \candidate, *@autovivs, *%attrinit) {
# If we were passed *, then need to create a candidate.
my $cand := nqp::istype(candidate, Whatever) ??
nqp::create(self) !!
candidate;
$cand.BUILDALL(@autovivs, %attrinit);
}
TimToady well, we don't want people putting nqp::create into their constructors, at least 14:16
jnthn Just allowing for a candidate created with a different representation to be passed in?
Sure, though I guess the .CREATE macro-ish thing maps down to it. 14:17
But yeah, a normal new shouldn't have to call that, I don't think. 14:18
TimToady rename BUILDALL to bless, then let them call either Type.bless or Type.create.bless, and dispatch on :D ?
jnthn Could work 14:19
TimToady and .create by default assuming *
ruoso jnthn: where can I find the docs for the mangling of the java method names?
TimToady but you could create the candidate any other way, as long as you pass a $cand.bless that bless can handle 14:20
jnthn ruoso: For the method signatures? It's the same syntax JVM method descriptors use
ruoso ah... cool 14:21
TimToady otoh, $type.create.bless assumes you can pass the type through the candidate, which might be problematic for some kinds of candidate?
thinking about why .HOW requires the object as well as the metaobject 14:22
jnthn To allow prototype OO
TimToady just wondering if Type.create.bless can always work
can a candidate dispatch to its .bless without properly knowing its original Type, I guess I'm asking myself 14:24
seems like not, but it's still too early in the morning
also, it'd be nice if the BUILD plan could just inline whether to do the create or not, and maybe the create/no-create distinction more declarative 14:25
s/maybe/make/
well, shower & 14:26
like, a CREATE phaser if you want to override the default, say, which would be known at composition time 14:27
assuming most classes don't want to have it both ways
afk really &
.oO(afkr)
14:28
afkr &
masak .oO( afkr really )
TimToady afkrr & 14:29
BenGoldberg Is this the same bug as the other one?
n: (gather {} but role {})[0]
camelia niecza v24-88-g1f87209: ( no output )
BenGoldberg rn: (gather {} but role {})[0]
camelia niecza v24-88-g1f87209: ( no output )
..rakudo 63a865: OUTPUT«This type does not support elems␤ in method REIFY at src/gen/CORE.setting:7492␤ in method reify at src/gen/CORE.setting:6718␤ in method gimme at src/gen/CORE.setting:7138␤ in method exists at src/gen/CORE.setting:7126␤ in method at_pos at src/gen/CORE.setting:…
14:33 Rotwang left 14:35 colomon left, bearman left 14:36 domidumont left, bearman joined, domidumont joined
leont Does rakudo do any sort of stat caching? 14:38
masak Python considering strings to be sequences (and the programmer errors that causes) does not sell me on the idea of strings as sequences :)
14:38 benabik left 14:39 Psyche^_ joined
jnthn leont: Don't believe Rakudo itself does; guess it's possible the underlying VM may... 14:40
14:42 Psyche^ left 14:43 SamuraiJack__ joined
ruoso wonders if there is a handy tool to generate the descriptor string from a java method declaration syntax... 14:43
14:43 benabik joined 14:44 colomon joined
jnthn ruoso: Well, you can write an NQP program like this: 14:46
my %h := nqp::jvmbootinterop().getInterop('java.lang.String');
for %h { say($_.key); }
If you just want a listing of all the things you can call on a given class
dalek kudo/scalar-from-desc: db2330c | jnthn++ | src/vm/parrot/ (2 files):
Parrot implementation of nqp::p6scalarfromdesc.
14:48
jnthn .tell lizmat scalar-from-desc branch is ready for triage :)
yoleaux jnthn: I'll pass your message to lizmat.
masak if someone++ is willing to code-review jaffa4's rt.perl.org/rt3/Ticket/Attachment/...bels.patch , I'm willing to apply and push it. 14:51
jaffa4: oh, one thing: why is the "Illegal redeclaration" thing commented out? 14:52
14:52 ivanoff left
jaffa4 the code did not compile 14:52
masak heh.
jaffa4 need to start small 14:53
with such a complex environment
masak also, what's the harm of parsing labels without panicking about them not being implemented? we just can't use them for anything yet.
jaffa4: I generally don't like to commit commented-out code -- or, at the very least, not without a comment explaining why the code is commented out.
jaffa4 it panicks 14:54
jnthn Indentation looks a little off too
Also, there's a <.nyi(...)> or so that is a better way to die
masak yes, but do we really need an error at all? 14:55
I mean labels can be parsed, and that's it -- we implement them.
jnthn masak: Well, but you can't do anything with 'em yet... :)
jaffa4 it iis clearer than giving back some error message
it is called stepwise development 14:56
masak jnthn: I know that.
jnthn: but you can write programs with them in that compile.
jnthn: it'd be a kind of documentation. "we intend to 'last' to this label when it's possible"
tadzik tabfail :) 14:57
jaffa4 what is tabfail?
masak tadzik: sorry, what? 14:58
tadzik or mybe not
nv
*nevermind
masak no, don't think so.
jnthn masak: OK, fine, we can just parse 'em for now then :)
jaffa4 I cannot make as big as steps as you jnthn 14:59
jnthn jaffa4: I'm not worried about step size, just making sure the small steps are on the right path.
jaffa4 and is it not? 15:00
[Coke] wonders if jnthn++ & lizmat++'s discussion in backscroll about %*ENV will fix his issue about shell()ing out on the jvm.
FROGGS jaffa4: btw, it wouldn't panic if Perl6::Actions method statement had an elsif $<statement> { make $<statement>.ast }
jaffa4 ???? 15:01
jnthn jaffa4: Well, I prefer not to commit commented out code in general, and I agree with masak that it's best to parse them and not die...it's things like goto that should fail with "no, not yet implemented"
masak jaffa4: fix this: (1) remove the commented-out code. (2) remove the panic. resubmit the patch. then I can apply. 15:02
15:02 birdwindupbird left
jaffa4 it wont work then 15:02
I tried that 15:03
masak no, not "uncomment". "remove"
remove the lines.
jaffa4 if panic is removed, the code does not run properly
I tested it
jnthn How did it fail?
jaffa4 it did not execute the statement belonging to it 15:04
there was no error
I used JVM
FROGGS jaffa4: I suggested a fix 15:05
jaffa4 pastebin.com/mEcynhW5 15:06
QAst is not generated correctly 15:07
FROGGS: where exactly? what line? 15:10
FROGGS <FROGGS> jaffa4: btw, it wouldn't panic if Perl6::Actions method statement had an elsif $<statement> { make $<statement>.ast }
ten minutes ago
jnthn FROGGS: Huh, the error was in the parse code, htough? 15:11
dalek kudo/scalar-from-desc: 1b69661 | jnthn++ | src/core/Variable.pm:
Missing decont; gets is_default.t passing.
jaffa4 FROGGS: which line should | modify?
FROGGS jnthn: I thought it panics when he removes the .panic 15:12
jaffa4 no, it does not panic 15:13
FROGGS jaffa4: I'd add it right before the line starting with: elsif $<statement_control>
jaffa4: because when you match another statement-rule inside statement, you have to do something with it when building the ast 15:14
jaffa4 you mean after <label> <statement> , there should be {make $<statement>.ast } 15:16
15:16 skids joined
FROGGS jaffa4: no, the <label> ... is in Perl6::Grammar, the other part needs to go in Perl6::Actions 15:17
dalek kudo/nom: 8203477 | (Tobias Leich)++ | src/Perl6/World.nqp:
protect the substr (for varnames shorter than 2 chars)
15:18
jaffa4 FROGGS: ok I try that 15:22
FROGGS: should it be $past := $<statement>.ast instread of make $<statement>.ast? 15:24
FROGGS jaffa4: right 15:25
dalek kudo/scalar-from-desc: 0fae92b | jnthn++ | src/ (2 files):
Clean up variable traits.

This avoids trying to parse type name stringification!
15:28
jnthn .tell lizmat Think scalar-from-desc is good to merge now; will let you give it a look/spectest also 15:29
yoleaux jnthn: I'll pass your message to lizmat.
jaffa4 ok, it compiles labels now and executes statements in the same line properly 15:34
FROGGS cool 15:37
15:42 thou joined
jaffa4 it confused me that there are actions in grammar and in actions as well 15:45
FROGGS jaffa4: that is because something really has to happen when parsing code, other (most) stuff can wait until later 15:47
dalek kudo/scalar-from-desc: 2f1efb8 | jnthn++ | src/core/Array.pm:
Fix some missing type-checking in typed arrays.
jnthn What happens in the grammar is not so much actions doing AST construction, but more symbol registration, etc. 15:48
jaffa4 in yacc ,they were called actions I think 15:49
masak in Perl 6 they are called "code". 15:51
jaffa4 Perl6::Actions implies someone knew the same terminology 15:52
15:52 ajr_ left, ajr joined 15:53 ajr is now known as Guest88304
masak jaffa4: quite likely. yacc tends to be on the radar of language implementors. 15:55
16:02 colomon left 16:03 crab2313 joined 16:15 Guest____ joined 16:18 rindolf joined 16:24 Guest____ left 16:25 Guest1337 joined
ruoso may have a prototype for the handling of blocked threads... 16:27
Guest1337 Hi! Just wanted to ask what do you guys think about this lafo.ssw.uni-linz.ac.at/papers/2013...hemAll.pdf . Is it of any relevance to the Rakudo on JVM?
lizmat just checked jnthn's scalar-from-desc branch and found 7 TODO's now passing! 16:28
yoleaux 14:48Z <jnthn> lizmat: scalar-from-desc branch is ready for triage :)
15:29Z <jnthn> lizmat: Think scalar-from-desc is good to merge now; will let you give it a look/spectest also
dalek kudo/scalar-from-desc: 65d5fcd | (Elizabeth Mattijsen)++ | src/core/ (2 files):
Remove dead code
kudo/nom: 7f1cd51 | jnthn++ | src/vm/jvm/runtime/org/perl6/rakudo/RakOps.java:
Ensure gcx.Nil gets initialized.
16:29
rakudo/nom: 1964396 | jnthn++ | src/vm/jvm/runtime/org/perl6/rakudo/RakudoContainerSpec.java:
rakudo/nom: Correct Nil handling.
16:29 dalek left 16:30 dalek joined, ChanServ sets mode: +v dalek
jnthn Guest1337: yes :) 16:30
Guest1337: Well, interesting for Rakudo on whatever anyway... :)
lizmat I think we just stopped dalek from seeing some pushes 16:32
actually, from reporting some pushes here 16:33
jnthn lizmat: It just flooded, left and rejoined :) 16:34
lizmat: YOu merged the branch, I take it?
lizmat ye
s
jnthn yay
Simpler code AND more passing todos :)
And should be faster to boot
lizmat well, yes :-) 16:35
but I think there is something still missing: 16:36
$ perl6 -e 'my %h is dynamic=a=>1; say %h<a>.VAR.dynamic'
0
I would think that would need to be 1
jnthn Hmm...I'd have expected it to be also.
16:37 rindolf left
lizmat db2330cfcb7a212d1faf94e88ea1d50dc8a0d417 doesn't say anything about dynamic 16:37
jnthn > my %h is dynamic; say %h<a>.VAR.dynamic
1
16:38 rindolf joined
lizmat on parakudo ? 16:38
jnthn yeah
lizmat I think I can fix it
huh?
jnthn Note I didn't assign anything
Yes, I know what's wrong
STORE_AT_KEY is wrong
16:38 mauke left
jnthn Note it does the $x is copy trick, when it should be doing \x and then assigning it to a container created with the new op 16:39
lizmat so replacing it by \x should do the trick?
ok, will do 16:40
dalek : 8e29495 | (Tobias Leich)++ | / (2 files):
added curr_test and next_test
16:42
16:43 rindolf left 16:44 rindolf joined 16:48 crab2313 left, crab2313 joined 16:49 PacoAir joined
lizmat jnthn: my tentative change: 16:50
method STORE_AT_KEY(\key, Mu $x) is rw {
my \v := nqp::p6scalarfromdesc($!descriptor);
nqp::findmethod(EnumMap, 'STORE_AT_KEY')(self, key, v = $x);
is that sane ?
jnthn lizmat: yes, though writing \x in the signature and then v = x is even cheaper 16:51
lizmat ok, but then I get "Odd number of elements found where hash expected"
seems the v is a hash
jaffa4 I made one regression test
lizmat ?
jaffa4 one subtest of sleep falied
FROGGS jaffa4: what test file? 16:52
jaffa4 HOw can I know that? 16:53
t\spec\S29-context\sleep.t
jnthn lizmat: oh...
lizmat: Yeah, OK, you probably need the $x after all then
lizmat and a $v then 16:54
jnthn um, you're binding so that should make no difference?
FROGGS jaffa4: which test failed? github.com/perl6/roast/blob/master...xt/sleep.t
jaffa4: I dont see a connection to labels...
lizmat jnthn: hmmm… true
jaffa4 it means the test is not stable on itself I guess
FROGGS jaffa4: are you testing inside a virtual machine? 16:55
jaffa4 in jvm
FROGGS jaffa4: no, I mean are you using virtualbox or vmware player?
16:55 dmol left
jaffa4 no 16:56
16:56 dmol1 joined
lizmat jnthn: oddly enough, making it bind to $v works 16:57
FROGGS jaffa4: does it fail when you re-run that single test file?
ruoso hmm... i think the nqp jvm interop fails to call methods on a private class that implements a public interface
FROGGS brb, dinner
jaffa4 FROGGS: no 16:58
ruoso is there a lower-level nqp op to call a java method without trying to resolve it first? 17:00
17:02 bearman left 17:03 Guest1337 left, fridim__ joined
ruoso hmm.. I guess I would need to add a directInstanceMethodCall to BootJavaInterop 17:10
japhb o/ 17:17
Good *, everyone! 17:18
jnthn o/ japhb
japhb jnthn! How goes it?
lizmat japhb: /o 17:20
FROGGS jaffa4: then it is unrelated, go ahead
japhb Hey lizmat!
jaffa4 FROGGS: I added a new path
jnthn japhb: Not bad, thanks :) 17:28
japhb: How's things for you?
17:29 BenGoldberg left
japhb So I'm considering the merits of implementing Google protocol buffers for Perl 6. This would require easily packing and unpacking binary buffers in and out of hierarchical structures (preferably, typed objects). Plus I'd need to be doing a lot of socket IO to actually make use of them for RPCs -- double points if I can do multiple RPCs concurrently (triple for asynchronously as well). Is rakudo-jvm up for all that? 17:30
jnthn, Doing pretty good, actually. Kids back in school, new home actually in our name, work going decently well. Can't complain (too much). :-) 17:31
jnthn japhb: tadzik++ did, I think, get the JVM socket stuff in place. I did a big cleanup of Bufs recently also, so those now work better (on JVM too). No asynchronous socket IO just yet, but there are threads so you can do multiple things concurrently... :) 17:33
japhb Oooh, I'll take it. :-) 17:35
17:36 celesta joined
nwc10 japhb: he's a bit to modest. There's a heck of a lot more than threads: jnthn.net/papers/2013-yapceu-conc.pdf 17:36
celesta ahoi #perl6
dalek ast: a30383c | (Elizabeth Mattijsen)++ | S (3 files):
Unfudge/correct now passing tests
lizmat Q: sanity check: 'my KeyBag %h" and "my %h of KeyBag" are equivalent: they indicate a hash of KeyBags, right? 17:39
jnthn Should be
shop &
japhb nwc10: Yeah, saw that, was highly impressed -- it's why I thought the time might be right. But IIRC the slides were unclear on the state of socket IO, and without proper Buf handing it would have been a non-starter, so ....
Oh, which reminds me:
jnthn++ # THANK YOU FOR THE EASY CONCURRENCY.
lizmat jnthn++ # seconded! 17:49
celesta r: my @foo = "one", "two"; say "found" if "one" ~~ @foo 17:50
camelia rakudo 3e7b2a: ( no output )
celesta i hoped smart match would find "one" in the list
moritz r: my @foo = "one", "two"; say "found" if "one" ~~ any(@foo) 17:51
camelia rakudo 3e7b2a: OUTPUT«found␤»
moritz celesta: don't hope; be explict in what you ask for.
celesta alright :) thank you
jaffa4 otherwise, is it all?
celesta moritz++ 17:52
lizmat r: my @foo = "one", "one"; say "all one" if "one" ~~ all(@foo)
camelia rakudo 3e7b2a: OUTPUT«all one␤»
jaffa4 my @foo = "one"; say "found" if "one" ~~ @foo
r: my @foo = "one"; say "found" if "one" ~~ @foo 17:53
camelia rakudo 3e7b2a: OUTPUT«found␤»
moritz jaffa4: S03 has the smartmatch table
17:56 crab2313 left 17:58 rindolf left
donaldh github.com/rakudo/rakudo/pull/193 18:02
dalek kudo/nom: 47d2d7e | (Elizabeth Mattijsen)++ | src/core/Hash.pm:
Make sure my %h is dynamic=a=>1; say %h<a>.VAR.dynamic works
18:03
timotimo caught up with backscroll 18:04
18:06 crab2313 joined
moritz tests donaldh++'s pull request 18:07
jnthn moritz++ 18:08
And donaldh++ for the pr
This will make it easier for folks to get a Rakudo JVM up and running :)
donaldh Hopefully it helps towards a JVM * too 18:09
18:09 spider-mario left
timotimo once nativecall is on jvm, it will be an amazing time for p6 18:14
18:15 spider-mario joined, Guest88304 left
timotimo and i think cruft-free JVM interop 18:17
moritz somehow I'm feeling dumb 18:18
$ which javac
/home/moritz/tmp/jdk1.7.0_25/bin/javac
$ /home/moritz/tmp/jdk1.7.0_25/bin/javac
bash: /home/moritz/tmp/jdk1.7.0_25/bin/javac: No such file or directory
dalek ast: 29ae9f5 | (Elizabeth Mattijsen)++ | S02-types/keybag.t:
Fudge questionable KeyBag tests for now
18:19
moritz and 'ls' says it exists
lizmat moritz: permissions ?
moritz: symlinks ? 18:20
timotimo could be a broken link
geekosaur use ldd on it? sometimes that actually means the executable "interpreter" is missing (meaning, it's for the wrong linux version)
moritz ordinary files, permissions look OK 18:21
$ ldd /home/moritz/tmp/jdk1.7.0_25/bin/javac not a dynamic executable
geekosaur hm
dalek kudo/nom: 9ecd996 | (Elizabeth Mattijsen)++ | src/core/ (2 files):
Allow .VAR.dynamic introspection on Hash / Array
geekosaur what does `file` say about it? 18:22
moritz /home/moritz/tmp/jdk1.7.0_25/bin/javac: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.9, not stripped
geekosaur which contradicts ldd, which makes me think again it's a missing ELF interpreter
timotimo 32 vs 64 bit? 18:23
moritz it's a 64 bit system 18:24
... and the oracle website said "Linux x64" 18:25
unless I managed to click the wrong link
timotimo well it doesvsay 32 18:27
moritz ok, seems that was the real problem 18:32
masak r: say "bash: $*PROGRAM_NAME: No such file or directory" # the first thing I thought when backlogging over moritz' troubles
camelia rakudo 47d2d7: OUTPUT«bash: /tmp/V9zzcSaRoB: No such file or directory␤»
moritz thanks everybody for the help
timotimo scalar-from-desc is not really ready to be merged? 18:34
lizmat r: my $h is default(42)= Hash[Int].new; say $h<a>.VAR.default # would expect 42
camelia rakudo 47d2d7: OUTPUT«(Any)␤»
jnthn lizmat: That's never gonna work
lizmat: You've confusing the levels
*you're
Here, $h is a scalar that defaults to 42, which just had a hash assigned into it 18:35
r: my $h is default(42)= Hash[Int].new; $h = Nil; say $h;
camelia rakudo 47d2d7: OUTPUT«42␤»
masak japhb: I'm interested in hacking protocol buffers too. if you get started at it, I might help.
18:36 crab2313 left
lizmat jnthn++ for the sanity check 18:36
18:36 crab2313 joined 18:37 ssutch joined
masak celesta: "one" ~~ @foo works fine in Perl 5 -- but only because Perl 5 stole Perl 6's semantic before it settled into its current, nicer form. 18:37
celesta masak: thank you 18:38
masak semantics*
celesta: the rule-of-thumb is this: infix:<~~> asks the right-hand side what type it is and how it looks inside, and that governs how the match is done. 18:39
r: say <foo bar baz> ~~ { foo => 1, bar => 2, baz => "mwhaha" }
camelia rakudo 47d2d7: OUTPUT«True␤»
masak r: (1, 2, 3) ~~ <1 2 3> 18:40
camelia rakudo 47d2d7: ( no output )
masak r: say (1, 2, 3) ~~ <1 2 3>
camelia rakudo 47d2d7: OUTPUT«False␤»
masak r: say <1 2 3> ~~ (1, 2, 3)
camelia rakudo 47d2d7: OUTPUT«False␤»
masak hrm :)
japhb masak, Oooh, very good. Right now I'm trying to get a good rakudo-jvm build on this low-RAM machine, so I can actually get started. :-)
masak r: say [1, 2, 3] ~~ [1, 2, 3]
camelia rakudo 47d2d7: OUTPUT«True␤»
masak r: say [1, 2, 3] ~~ [1, *, 3]
camelia rakudo 47d2d7: OUTPUT«True␤»
masak r: say [1, 2, 3] ~~ [1, *] 18:41
camelia rakudo 47d2d7: OUTPUT«True␤»
masak r: say [1, 2, 3] ~~ [*]
camelia rakudo 47d2d7: OUTPUT«False␤»
celesta masak: thanks for explaining
lue r: say [1, 2, 3] ~~ [**]
camelia rakudo 47d2d7: OUTPUT«False␤»
dalek kudo/nom: 3d59402 | (Donald Hunter)++ | / (3 files):
Resurrected --gen-nqp for JVM.
18:44
kudo/nom: 9d38802 | (Donald Hunter)++ | ConfigureJVM.pl:
Always realpath-ify
kudo/nom: 66a73a9 | (Donald Hunter)++ | ConfigureJVM.pl:
Check for mandatory options
timotimo yays :) 18:45
moritz donaldh++ # that was your pull request, though rebased over lizmat++'s latest commits
masak rebase++
moritz++ # rebase
timotimo masak++ # moritz # rebase 18:46
donaldh moritz++
FROGGS free hugs \o/ 18:47
japhb After that I see a few major things to do next: * Parse the protocol buffer definitions. * Create a PB parser from the parsed definition. * Implement pack/unpack from binary buffers into a hierarchy of message nodes. * Implement a network client working against existing PB RPC servers. * Implement a PB RPC server. * Do it all with concurrency. * Do it all with asynchrony too.
18:47 domidumont left
donaldh r: for <masak moritz rebase> -> $x { say "${x}++" } 18:47
camelia rakudo 47d2d7: OUTPUT«===SORRY!=== Error while compiling /tmp/ZXvkiYCLjk␤Unsupported use of ${x}; in Perl 6 please use {$x}␤at /tmp/ZXvkiYCLjk:1␤------> <masak moritz rebase> -> $x { say "${x}⏏++" }␤»
masak japhb: cool.
japhb: github early, github often. I'll try to keep up, and help when I have the tuits. 18:48
donaldh r: for <masak moritz rebase> -> $x { say "{$x}++" }
camelia rakudo 47d2d7: OUTPUT«masak++␤moritz++␤rebase++␤»
masak donaldh: was '${x}' p5 damage? :)
TimToady: maybe there should be a STD warning for that one? :) 18:49
donaldh yes, if you mean Did I have that expectation from p5 ?
japhb masak, You probably won't have too hard a time keeping up. My time is freeing up slowly, but it's still relatively limited right now.
donaldh Also from other scripting langs
celesta about grammars, is it ever necessary to create action methods for proto rules? 18:50
donaldh masak: the message was pretty helpful. Maybe already covered.
masak donaldh: oh! yes. 18:51
timotimo hm, somebody already built a protocol buffers grammar a month or so ago
masak "read the error message. read the error message." # I should do this :/
japhb: likewise.
celesta: it's never necessary to create action methods. if you create them, they get called, even for proto rules. 18:52
celesta masak++: thank you
japhb timotimo, ah, where is that? I was away during that time frame. 18:53
lizmat is .VAR already working on jakudo ?
timotimo it was ssutch
github.com/samuraisam/p6-pb 18:54
ssutch++
ssutch wat?
masak ssutch++ :)
ssutch ah, it's not finished sadly
too much work-work
the grammar and some actions work
masak do unit tests cover what works so far? 18:55
ssutch and the grammer can handle all official spec files
timotimo good enough to me :]
japhb ssutch, where is it? I don't see a repo for it in your github account ...
timotimo i linked to it above ^
ssutch japhb: github.com/samuraisam/p6-pb
japhb DOH
Sigh
timotimo :)
japhb ETOOMANYWINDOWS
timotimo japhb: you were going to try to integrate my changes into perl6-bench; what stopped you? not enough time or did i screw something up? :) 18:56
japhb timotimo, Oh, just ran out of time last weekend trying to build rakudo-jvm so I could actually be sure my merges *worked*. Trying again this weekend. 18:57
timotimo jvm::runtime.jars value not available from nqp/install/nqp --show-config. - what might i have done wrong?
just ping me if you have any questions, i can't tell if i'll be available, though
japhb (Builds like a charm at $work when I fix the configure tests ... hmmm, need to send that patch ... but that's a much bigger machine than I have at home.) 18:58
timotimo, roger that.
ssutch, thank you, I'll be reading that with great interest. :-)
dalek kudo/nom: e35e1fd | (Marton Papp)++ | src/Perl6/ (2 files):
added labels

removed comments and panic
added recognizing labels
ssutch cool 18:59
masak jaffa4++
18:59 SamuraiJack__ left
FROGGS we just need to make them work now :o) 18:59
ssutch ignore PB::Model::Generator… i was in the process of trying to gen packages at runtime
18:59 colomon joined
FROGGS and I#d like to be the first one who makes use of it 18:59
jaffa4++
japhb ssutch, ah, gotcha 19:00
lizmat could we first try to handle all cases where the goto/next/last can be resolved at compile time ?
timotimo gaaah. install/nqp doesn't support --show-config and ./nqp can't be run from outside the installation path
what could i have done wrong? 19:01
FROGGS timotimo: maybe install/bin/nqp ?
moritz timotimo: mixing up install-jvm/bin/nqp vs install-jvm/nqp vs install/bin/nqp
? 19:02
timotimo ah indeed
install/bin/nqp must be new?
dalek ast: b337aa4 | (Elizabeth Mattijsen)++ | S02-names/is_dynamic.t:
Add tests for .VAR.dynamic introspection
19:03 berekuk joined
FROGGS timotimo: yeah, recognized it an hour ago 19:03
arnsholt Heh, perl6-language gets some seriously weird email
timotimo you mean "reorganized"? 19:04
dalek kudo/nom: ce2453d | (Elizabeth Mattijsen)++ | t/spectest.data:
Make sure the spectest runs the .VAR.dynamic introspection tests
FROGGS timotimo: no 19:05
:o)
masak arnsholt: jnthn and I went to DDDx this year. there was a guy there who had a few war stories from the oil drilling industry.
arnsholt: one thing he said was that they had tried units analysis as part of their software, but the users revolted against that. 19:06
arnsholt What's DDDx?
masak arnsholt: turns out users have excellent reasons for wanting to compare values that "don't typecheck" from a units perspective.
arnsholt: a yearly meeting for people doing DDD -- Domain-Driven Design. 19:07
arnsholt Ah, cool
masak arnsholt: DDD focuses on putting domain thinking directly into the software.
and into the vocab being used to develop and talk about the software.
timotimo yeah, sometimes you have a relation that doesn't make much sense, but you could always make up a crazy type 19:10
like the "rule of thumb" for drivers that determines how far you travel before you come to a halt is based on dividing the speed on your speedometer by a fixed number and reinterpreting it as meters
masak conceptually it feels a bit like C's "pointer to void" freedom. sometimes that's needed.
timotimo reinterpret_cast :)
masak I think units should definitely be explored in Perl 6. 19:12
19:12 crab2313 left
masak (but I think it should be explored as a module) 19:12
timotimo yes.
perl6 is sufficiently flexible that that doesn't need to go into the core
if you have it in a module, you'll even get "gradual uniting" 19:13
lizmat
.oO(funny how the PLATO system always comes back to haunt you :-)
19:15
timotimo is that a pun or are did you have some experience with PLATO in the past? 19:16
19:16 donaldh left 19:17 cognominal left
masak timotimo: the latter. 19:21
lizmat timotimo: it was the system on which I really did my first software development
from late 1977 to 1983ish
timotimo was it terrible?
well, it seems like you stuck to software development 19:22
so it must have been survivable
lizmat yes, I did
it was great compared to the FORTRAN I did on punched cards before that
on PLATO I could type in my program on a termain, press SHIFT-STOP and it ran
*terminal 19:23
FROGGS shift-stop to run it?
timotimo that's a step forward i agree
lizmat SHIFT-STOP, yes
timotimo yeah, shift shifts it from stop to go :)
FROGGS that is like pressing the start button to shut down a windows pc -.-
lizmat it was the untrappeble exception for non-system developers
you also had to press SHIFT-STOP to login 19:24
timotimo FROGGS: except having to right-click it to stop it d)
:)
lizmat the reason was that some jokers had created fake login screens to capture login/password combinations
timotimo wow, phishers go way back 19:25
lizmat by using SHIFT-STOP to login, you were sure you weren't in a fake login screen
FROGGS wow, indeed
timotimo that's the same reason windows pcs sometimes require you to hit ctrl-alt-del to login
lizmat of course, this all became moot when you could intercept keys in the smart terminals using 8080 assembly code
timotimo yowch :)
lizmat so 8080 assembly code was outlawed for non-system developers as well :-( 19:26
which killed my slot machine :-(
timotimo oh ... oh no ...
lizmat as that was using 8080 assembly to rotate the wheels
timotimo i think i turned on my computer but it got a different ip or something 19:27
can't seem to reach it :o
how am i supposed to benchmark stuff? my laptop would immediately go up to 90 degrees and clock down >_> 19:28
lizmat I think ribasushi had some ideas about that at the YAPC::EU
if I remember correctly: make sure the CPU is locked in the lowest performance mode 19:29
timotimo is 2a02:8071:2909:7b00:5604:a6ff:fe93:d1a6 unreachable for you, too?
lizmat so that it doesn't have to start cooling / clocking down 19:30
wrt to clocking down, after starting my 3rd box of tissues since I got back from Kiev, I think I'll clock down a bit myself& 19:31
FROGGS lizmat: get well soon 19:32
timotimo well, in this case i'll just implement the optimisation first, then see later in what cases it's not optimal to do the transformation 19:34
hm. do it in nqp first or in rakudo? that's the question 19:36
rakudo it is. 19:37
moritz timotimo: I can't ping6 that address either
timotimo annoying :(
19:46 araujo left 19:47 araujo joined
timotimo turns rows of &infix:<~> into join('', ...) 19:52
jnthn wait isn't infix:<~> meant to be list infix? 19:55
timotimo yes, at one point
last time i tried it seemed like LoL slurpies were blocking us or something
in any case, i wasn't able to tame the prototypes for any other case
oh that's the one with the cool shoe shine? 19:59
that's an amusing mischan right there 20:00
20:00 jeffreykegler joined, jeffreykegler left 20:01 jeffreykegler joined
timotimo yay, null pointer exception when dumping a qast node \o/ 20:01
20:01 colomon left
celesta perl is so much fun :) 20:01
timotimo i put the value directly into the SVal node, which is of course wrong, because it belongs into the :value slot 20:02
masak celesta: it has been theorized that the purpose of the entire universe is fun. :) 20:03
20:05 TimK1 joined
ruoso really lost trying to understand why an object returned from a native jvm call is not able to call other methods 20:10
timotimo japhb: i don't know if you noticed, but we were able to trace the crash when using the shell command inside a loop
it's caused if you use anything with "but" inside a loop
diakopter ruoso: have to cast it to something?
ruoso the specific case here is of $reentrantLock.newCondition() 20:11
which returns a $condition object, but I cannot call the actual method in it 20:12
diakopter did you try casting the returned object to the condition class?
ruoso Well, Condition is an interface
diakopter *interface 20:13
ruoso and the specific class is private
and I am on perl-land... not Java
diakopter ohhh
*that* kind of native method
20:13 kaare_ left 20:14 Rotwang joined
diakopter dunno. put it in a Condition scalar? 20:14
ruoso I can't, because Condition is not defined at compile time 20:15
diakopter eww
jnthn Don't think that'd help anyway 20:16
I wonder if it just doesn't somehow quite handle an interface return type...
ruoso that's my guess... 20:19
timotimo jnthn: are you going to go ahead with the bless simplification?
ruoso but I am failing to understand where in the code it chooses how to represent the return type 20:20
jnthn timotimo: hehe. The interop code took me a little figuring and I think I forgot it again... :)
uh, ruoso ^^^
timotimo: Will let TimToady++ ponder it some more first. :)
timotimo if it gets object creation faster on all backends, i'd be for it ;) 20:21
20:26 raiph joined
raiph queue.acm.org/detail.cfm?id=2513575 # ACM article: "The Balancing Act of Choosing Nonblocking Features" 20:27
20:33 dalek left 20:34 donaldh joined, dalek joined, ChanServ sets mode: +v dalek
raiph "Prior to Java 5 (2004) and C11/C++11, these languages could not be reliably used ... to fully express the required memory ordering" of a CAS 20:37
20:37 jeffreykegler left
timotimo github.com/timo/rakudo/tree/tilde_to_strjoin i'd be glad if somebody could time some string interpolations with this version vs current nom, but i'll probably go to bed soon, so it can wait until tomorrow 20:39
i just don't have reliable hardware to run it on 20:40
japhb timotimo, Oooh, interesting about the "but" inside a loop. 20:44
Is it now solved? Or just identified?
leont managed to make his first perl6 module pass all of its tests :-)
masak \o/
leont: does it have a positive number of tests? :P 20:45
timotimo just identified
we don't know yet why it happens
donaldh Are modifications to %*ENV normally visible to shell "…" processes?
japhb If I'm getting a no such file or directory on 'install-jvm/bin/nqp' while building rakudo-jvm, what do I need to do to my tree to correct it? Do I need to nuke rakudo/nqp/ and let it pull again? 20:46
donaldh I'm guessing this doesn't happen on JVM because the JVM says the environment is immutable.
japhb: are you trying latest ? 20:47
japhb donaldh, the environment of the current process, or the environment handed to children? I would think the latter would be a non-starter.
donaldh try using --gen-nqp
japhb I just did a pull of nom, and then started using the usual build process.
Ah, OK, will try that.
leont masak: Yes, though I still have to port the documentation from pod5 to pod6 20:48
donaldh It will reuse the nqp checkout but the install layout has changed, so I guess it will clean and rebuild nqp
japhb: I can arrange to use the contents of $*ENV on JVM but it won't happen automatically, which I guess does happen on parrot. 20:50
japhb donaldh, OK, so instead of '( cd nqp && perl ConfigureJVM.pl --prefix=../install-jvm && make install ) || exit; perl ConfigureJVM.pl && make || exit' I should instead do 'perl ConfigureJVM.pl --gen-nqp && make' ? Do I need to move the --prefix line on to the top level Configure as well?
ruoso ah... wait... I think I stumbled upon something interesting.. when using the trick jnthn showed me to describe all methods of a class, I realized that for that class the method I was calling was not listed as a short version, but only in the mangled version 20:51
donaldh japhb: yes we committed --gen-nqp support to rakudo today. the default prefix is rakudo/install-jvm
ruoso is the name "await" special in some way?
japhb Woot!
donaldh japhb: --gen-nqp does the right thing
japhb Thanks, donaldh
donaldh so perl ConfigureJVM.pl --gen-nqp is all you need.
jnthn ruoso: It's just a sub 20:53
ruoso for some reason .getInterop is not listing the "await" method on the condition interface 20:54
donaldh jnthn: How do I look up %*ENV from Ops.java 20:55
timotimo r: my @v; @v[10] := Nil; say @v; 20:56
ruoso now I am getting a more reasonable error: Unhandled exception: java.lang.IncompatibleClassChangeError: Found interface java.util.concurrent.locks.Condition, but class was expected
camelia rakudo ce2453: OUTPUT«(Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any)␤»
timotimo r: my @v; @v[10] := Nil; say @v; say +@v;
camelia rakudo ce2453: OUTPUT«(Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any)␤11␤»
20:56 raiph left
jnthn ruoso: oh...different await... :) 20:57
donaldh: There's an nqp::getenvhash op; think we miss something to update it though... 20:58
donaldh jnthn: JVM env is immutable afaik
ruoso now the problem is that it is taking the type it received instead of the actual type of the object 20:59
so it is trying to invoke a method in an interface
donaldh jnthn: I see, changes to %*ENV modify the underlying hash returned by Ops.getenvhash 21:07
21:08 BenGoldberg joined
donaldh jnthn: Is it okay to keep a reference to that hash in Ops.java 21:08
timotimo r: 1 cmp 1
camelia rakudo ce2453: ( no output )
timotimo r: say 1 cmp 1
camelia rakudo ce2453: OUTPUT«Same␤»
jnthn donaldh: Well, hang it off GlobalContext rather than putting it in a static
21:09 cooper joined
masak "I'll just make a small change that I *know will work* without running the tests." # <-- this never works 21:13
jnthn What have you broke now? :P
21:14 panchiniak_ joined 21:16 panchiniak_ left
masak exercise instructions. 21:19
(for $dayjob) 21:20
timotimo that's why you have some file watcher do it in the background :)
so the effort to not test is bigger than the effort to test
BenGoldberg How much time passes between rakudo being updated, and camelia the irc bot getting the new version of rakudo? 21:22
FROGGS BenGoldberg: I think camelia rebuilds every hour, starting 10 past 21:23
timotimo hm, i thought it was twice per hour 21:24
BenGoldberg rn: (gather {take 2} but role {})[0].print 21:25
camelia niecza v24-88-g1f87209: OUTPUT«2»
..rakudo ce2453: OUTPUT«This type does not support elems␤ in method REIFY at src/gen/CORE.setting:7494␤ in method reify at src/gen/CORE.setting:6720␤ in method gimme at src/gen/CORE.setting:7140␤ in method exists at src/gen/CORE.setting:7128␤ in method at_pos at src/gen/CORE.setting:…
masak timotimo: troo. file watchers are awesome.
donaldh jnthn: Can the env SixModelObject get added to an existing GlobalContext hash or does it need to be a new member?
masak timotimo: strangelyconsistent.org/blog/helpfu...d-on-crack
timotimo masak: and it's so easy to do with the inotify console tools
masak funnily enough, the py2-py3 compatibility layer is called "six": pythonhosted.org/six/ 21:26
timotimo yeah, because 2 * 3 = 6 :)
pmurias masak: tote is only a description not actuall code? 21:28
jnthn donaldh: I'd just add another field to GlobalContext for it.
ruoso I am starting to think that this problem is harder than it might look. I think the interop is trying to pre-evaluate the st for the return type of a method beforehand, which breaks down when the return type is an interface
it was supposed to use the concrete type of the object to dispatch the method 21:29
but the st is pre-cached with the inteface type
which is not legal to perform the actual invocation
donaldh jnthn: okay. do we care about initialisation races? i.e. this will not be set until Ops.getenvhash gets called.
jnthn ruoso: Maybe worth leaving a message for sorear++ to see if he has some thoughts, since he did most of the interop stuff so far.
masak pmurias: no, it's actual code. 21:30
jnthn donaldh: It seems rather unlikely to happen
masak pmurias: but it never was more than a script -- I never fleshed it out into a program.
donaldh notes it down as the next most likely thing to happen now.
pmurias masak: it's hasn't been released?
jnthn :P
ruoso tell sorear please see irclog.perlgeek.de/perl6/2013-08-18#i_7467343 21:31
ruoso bot command fail
jnthn .tell, I think
ruoso .tell sorear please see irclog.perlgeek.de/perl6/2013-08-18#i_7467343
yoleaux ruoso: I'll pass your message to sorear.
masak pmurias: only as a gist somewhere. 21:32
pmurias: and the gist was called "some kind of mini-tote" or something.
sorear hi 21:33
yoleaux 21:31Z <ruoso> sorear: please see irclog.perlgeek.de/perl6/2013-08-18#i_7467343
pmurias sorear: hi
sorear ruoso! long time no see!
pmurias masak: the big problem with something like tote for nqp-js is that running all the tests takes a long while
masak: and compiling isn't exactly instant also 21:34
masak pmurias: "running all the tests takes a long time" was my problem too.
pmurias: I ended up manually narrowing down the test suite to what I was working at.
ruoso sorear: indeed... i have been too deep into $dayjob... trying to get back to activity...
masak this was back in 2009 when Rakudo was even slower.
sorear ruoso: how does it break down? 21:35
timotimo now we can start running tests in parallel ;))
sorear you should be able to use interface-shaped wrappers just like class-shaped ones
ruoso sorear: since the method has an interface as return type, it assumes that the concrete type of the returned object is the interface...
which is not legal for actual method calling
sorear oh, I know what might be the problem... I think the wrapper generation is using invokevirtual when it should be using invokeinterface for interface wrappers 21:36
ruoso: it's deliberate that we don't ask the returned object what its concrete type is
ruoso oh, I wasn't aware that there was a specific API for call as the interface 21:37
pmurias masak: so what are you using now instead of tote? 21:38
ruoso sorear: so it should be just a matter of changing createAdaptorMethod to use one or the other
sorear ruoso: i think so, yeah
ruoso ok... now I just need to find out a way to distinguish a class from an interface 21:39
masak pmurias: nothing, right now. :/ 21:40
pmurias: I just run my tests manually.
would like to get back to something tote-like, though.
thing is, I haven't had a big tested project for a while.
21:42 TimK1 left
timotimo now has "inotifywait" 21:42
but it takes 5 seconds to tell me if it's wrong or right ... with just one single test case 21:43
sorear ruoso: I think there's an isInterface method on j.l.Class or so 21:44
timotimo r: given Same { when Decreasing { say "ah" }; when Same { say "oh" }; when Increasing { say "wow!" } } 21:45
camelia rakudo ce2453: OUTPUT«===SORRY!=== Error while compiling /tmp/yrwP4aEnBP␤Missing block␤at /tmp/yrwP4aEnBP:1␤------> iven Same { when Decreasing { say "ah" }⏏; when Same { say "oh" }; when Increasin␤ expecting any of:␤ postfix␤ statem…
timotimo why is that a missing block?
regression?
jnthn I think you meant Decrease and Increase 21:46
timotimo oh?
FROGGS yeah
timotimo seems so 21:47
LTA error, imo
sorear std: given Same { when Decreasing { say "ah" }; when Same { say "oh" }; when Increasing { say "wow!" } }
camelia std c2215f0: OUTPUT«===SORRY!===␤Function 'Decreasing' needs parens to avoid gobbling block at /tmp/Kar1FMmtTV line 1:␤------> given Same { when Decreasing⏏ { say "ah" }; when Same { say "oh" }; w␤Missing block (apparently gobbled by 'Decreasing') at…
jnthn Guess we didn't nab that from STD yet :) 21:48
sorear ruoso: (dayjob stuff) same here pretty much for the last couple weeks 21:49
timotimo i think a unix command for "run for 10 seconds at most, kill if necessary"
because ^c now kills my inotifywait, too :( 21:51
sorear help ulimit 22:00
timotimo oooh! 22:01
of course.
22:02 spider-mario left
geekosaur mm, that's cpu time, not wall clock time 22:03
timotimo well, rakudo's all cpu time ...
22:04 aindilis` left
timotimo i shall go to bed now and feast on some dreams 22:05
good night!
22:07 donaldh left 22:09 jaffa4 left 22:10 leont left 22:11 donaldh joined
celesta good night #perl6 22:12
22:12 celesta left
masak 'night, celesta 22:17
...and timo
japhb Can someone with a 64-bit JVM please try to do a rakudo-jvm build with the following patch? gist.github.com/japhb/a23966e0921558396ba6 22:19
22:20 PacoAir left, Rotwang left
japhb That diff made the build work for me on a 32-bit, 2 GB RAM linux laptop (which means it was competing for RAM with desktop, xchat, etc.) 22:21
sorear japhb: ooc, how long did it take? 22:23
japhb I want to know if it will work exactly as is on 64-bit JVMs, or if the numbers have to be increased to account for larger pointers -- and if so, whether the increase can be small enough that the 64-bit values can be used as-is for 32-bit.
sorear pointers aren't larger on small 64-bit
JVMs, I beleeeive -X:+UseCompressedOops is enabled by default 22:24
donaldh japhb: I can't look today but could tomorrow
masak 'night, #perl6
japhb sorear, I didn't time it end-to-end; building the setting took a bit under 6.5 minutes
donaldh japhb: my guess is that as the setting grows, that number will grow too. 22:25
japhb sorear, "small 64-bit"? You mean, the 64-bit JVM will act like it has a 32-bit memory space if possible? Wild.
sorear oh, apparently not 22:26
japhb donaldh, sure, but at least there will be an explicit number that we can point people to, and know it will work for 2 GB RAM setups out of the box.
22:27 Mouq joined
japhb And as we optimize rakudo and NQP, it may end up needing *less* space. 22:27
sorear japhb: with -XX:+UseCompressedOops enabled, the VM allocates the heap as a contiguous span of up to 32 Gb and then represents pointers as indexes into the heap, multiplying by 8 22:28
apparently this is not the default, so ignore me
I thought it was
japhb Interesting idea though.
[Coke] donaldh: known issue on rakudo-jvm that shell doesn't propagate env changes (failing spec test for it) 22:29
donaldh [Coke]: thx. currently fixing that, hopefully. 22:30
[Coke] thinks the nqp opcode mentioned will help, though.
donaldh: ah, excellent.
last time I tried, the ENV I was iterating over was the original one, not the changed one. 22:31
donaldh++ if you can get that working.
donaldh [Coke]: it's needed for panda, so I thought I'd tackle it.
22:32 pmurias left
jnthn Need sleep; 'night 22:37
sorear gn jnthn 22:44
22:46 donaldh left 22:47 FROGGS left, dmol1 left 22:51 donaldh joined 22:53 xinming left 22:55 donaldh left, xinming joined 23:08 pdurbin joined 23:13 benabik left 23:14 benabik joined 23:15 slavik left 23:26 colomon joined 23:30 berekuk left 23:32 berekuk joined 23:47 berekuk left 23:52 colomon left 23:55 alexghacker joined