Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2014-01-27

Perl 6 | Reference Documentation | Rakudo

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

All times shown according to UTC.

Time Nick Message
00:43 araujo joined #perl6
00:43 FOSScookie joined #perl6
00:45 kst joined #perl6
01:00 jeffreykegler joined #perl6
01:06 hypolin joined #perl6
01:13 jnap joined #perl6
01:21 FOSScookie left #perl6
01:52 jnap joined #perl6
01:58 Exodist joined #perl6
02:01 skids joined #perl6
02:11 yeltzooo joined #perl6
02:13 dayangkun joined #perl6
02:16 robinsmidsrod joined #perl6
02:18 kurahaupo_mobile left #perl6
02:46 ilbot3 joined #perl6
02:46 Topic for #perl6 is now »ö« Welcome to Perl 6! | http://perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:,  niecza:, std:, or /msg camelia perl6: ... | irclog: http://irc.perl6.org | UTF-8 is our friend!
03:00 robinsmidsrod joined #perl6
03:30 robinsmidsrod joined #perl6
03:52 robinsmidsrod joined #perl6
03:57 robinsmidsrod joined #perl6
03:58 colomon huh
03:59 diakopter ?
04:00 colomon r: multi sub infix:<+=>(Array:D $a, Array:D $b --> Vec3:D) { for 0..2 -> $i { $a[$i] += $b[$i]; }; $a; };
04:00 camelia rakudo-parrot c2982d, rakudo-jvm c2982d, rakudo-moar c2982d: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/tmpfile�Type 'Vec3' is not declared�at /tmp/tmpfile:1�------> [32mx:<+=>(Array:D $a, Array:D $b --> Vec3:D[33m�[31m) { for 0..2 -> $i { $a[$i] += …»
04:00 colomon r: multi sub infix:<+=>(Array:D $a, Array:D $b --> Array:D) { for 0..2 -> $i { $a[$i] += $b[$i]; }; $a; };
04:00 camelia rakudo-parrot c2982d, rakudo-jvm c2982d, rakudo-moar c2982d: ( no output )
04:01 colomon r: multi sub infix:<+=>(Array:D $a, Array:D $b --> Array:D) { for 0..2 -> $i { $a[$i] += $b[$i]; }; $a; }; my Array $v = Array.new(1, 2, 3); my Array $a = $v; $a += $v; say :$a.perl; say :$v.perl;
04:01 camelia rakudo-jvm c2982d: OUTPUT«Cannot call 'infix:<+=>'; none of these signatures match:␤:(Array:D $a, Array:D $b --> Array)␤  in any  at gen/jvm/BOOTSTRAP.nqp:1212␤  in any  at gen/jvm/BOOTSTRAP.nqp:1202␤  in sub infix:<+=> at /tmp/tmpfile:1␤  in sub infix:<+=> at /tmp/tmpfile…»
04:01 camelia ..rakudo-parrot c2982d: OUTPUT«Cannot call 'infix:<+=>'; none of these signatures match:␤:(Array:D $a, Array:D $b --> Array)␤  in any  at gen/parrot/BOOTSTRAP.nqp:1219␤  in any  at gen/parrot/BOOTSTRAP.nqp:1210␤  in sub infix:<+=> at /tmp/tmpfile:1␤  in sub infix:<+=> at /tm…»
04:01 camelia ..rakudo-moar c2982d: OUTPUT«Cannot call 'infix:<+=>'; none of these signatures match:␤:(Array:D $a, Array:D $b --> Array)␤  in sub infix:<+=> at /tmp/tmpfile:1␤  in sub infix:<+=> at /tmp/tmpfile:1␤  in sub infix:<+=> at /tmp/tmpfile:1␤  in block  at /tmp/tmpfile:1␤␤»
04:02 colomon p: multi sub infix:<+=>(Array:D $a, Array:D $b --> Array:D) { for 0..2 -> $i { $a[$i] += $b[$i]; }; $a; }; my Array $v = Array.new(1, 2, 3); my Array $a = $v; $a += $v; say :$a.perl; say :$v.perl;
04:02 camelia rakudo-parrot c2982d: OUTPUT«Cannot call 'infix:<+=>'; none of these signatures match:␤:(Array:D $a, Array:D $b --> Array)␤  in any  at gen/parrot/BOOTSTRAP.nqp:1219␤  in any  at gen/parrot/BOOTSTRAP.nqp:1210␤  in sub infix:<+=> at /tmp/WC1nEwRjQj:1␤  in sub infix:<+=> at …»
04:03 colomon overthinking this
04:03 colomon p: my Array $v = Array.new(1, 2, 3); my Array $a = $v; $a[2] = 42; say :$a.perl; say :$v.perl;
04:03 camelia rakudo-parrot c2982d: OUTPUT«"a" => [1, 2, 42]␤"v" => [1, 2, 42]␤»
04:04 colomon diakopter: understand my huh now?  Or am I completely missing something important?
04:06 kaleem joined #perl6
04:08 lue joined #perl6
04:08 grep0r joined #perl6
04:08 colomon I mean, I'm guessing it's copying the containers rather than the values.  Though....
04:08 colomon p: my Array $v = Array.new(1, 2, 3); my Array $a = $v; $a.push(42); say :$a.perl; say :$v.perl;
04:08 camelia rakudo-parrot c2982d: OUTPUT«"a" => [1, 2, 3, 42]␤"v" => [1, 2, 3, 42]␤»
04:09 colomon ah, no.
04:09 colomon copying the array like that just copies the array object.
04:09 raydiak when using $, you get item semantics, not array semantics...so $a = $v puts ref in $v into $a
04:10 raydiak (dunno if I'm using the right wording there, though)
04:10 raydiak s/array/list/
04:10 colomon I think this may be a serious flaw in japhb_'s Vec3 is Array scheme
04:13 colomon or a serious flaw in my notion of how Vec3 should be used.
04:13 raydiak if you're putting it into a $ var, you'd expect it to act more as an object than an array, wouldn't you?
04:14 raydiak it does what you expectif you put it in @ and treat it as if you're expecting an array instead
04:14 raydiak eg I wouldn't expect $obj1 = $obj2 to clone
04:15 colomon hmm
04:15 raydiak but I would expect @coords1 = @coords2 to do so, and it does
04:16 colomon I'm mucking about with japhb_'s Vec3 class.  https://github.com/japhb/Math--ThreeD
04:16 lue Since when did = act like := ? (Or do I just need to review containers?)
04:17 raydiak the only hiccup there is "my @vec = Vec3.new" won't work unless you don't care about the result being an Array instead of Vec3, you have to use := if you assign to an @ var
04:18 raydiak *shrug* been that way since before I wrote the advent post about array-based objects
04:18 colomon and yeah… the issue here is that he's defining Vec3 as mutable in the name of efficiency.  I hadn't really thought about that before, but these tests indicate there are a lot of gotchas with my naive understanding of how such Vec3s should work.
04:20 raydiak what other things are unexpected besides what we just discussed?
04:20 grep0r joined #perl6
04:20 raydiak not trolling, seriously interested
04:23 colomon … actually, that's the only gotcha I can recall at the moment (I badly need to go to bed) but that's a pretty huge one.  Certainly my instinct is that a Vec3 should work pretty much like a Complex with three nums instead of two.  But in fact there is no resemblance there at all.
04:23 * raydiak needs to re-read about Complex
04:24 colomon raydiak: a Complex works pretty much exactly like any other number or string value in p6
04:24 colomon they're immutable, so when it looks like you're modifying the Complex object, you're actually creating a new one.
04:24 raydiak ah, I see
04:25 colomon p: my $a = 1 + 2i; my $b = $a; $a += .5i; say :$a.perl; say :$b.perl
04:25 camelia rakudo-parrot c2982d: OUTPUT«"a" => Complex.new(1, 2.5)␤"b" => Complex.new(1, 2)␤»
04:28 raydiak I suspect some sort of trickery could cause that to work as you'd like, but as performance is one of the main goals of the lib, we definitely want to be able to copy by ref and mutate in place
04:29 colomon I'm not sure I buy that argument anymore.
04:30 colomon I would hope that Rakudo evolves so that Complex is actually very efficient.
04:30 raydiak I have wondered how much these things apply in the umpteen layers of translators and optimizers between a p6 script and the hardware :)
04:31 raydiak sometimes the way a change impacts Pray performance seems very odd and counter-intuitive to me
04:31 colomon and if there have been laments that doing math work in Haskell is needlessly slow because everything is immutable, I missed them.
04:32 colomon afk # bed
04:46 SamuraiJack joined #perl6
04:48 diakopter colomon: don't ask me about containers vs values, because I apparently have a mental block against comprehending those in this language
04:52 raydiak me too...I almost kinda wonder if the boxing/unboxing is a little *too* transparent and dwimmy in some way
04:54 varna joined #perl6
04:55 diakopter but that's the thing
04:55 diakopter containerizing is on top of boxing
04:56 raydiak oh, that's right. been thinking about native nums too much lately, I guess
04:56 diakopter er, at least, I wouldn't understand it if there was a nqp::decont and nqp::unbox that were identical
04:58 diakopter I just want to know when there is an array or list with Scalars in each slot for each value
04:58 diakopter and if so, how to make an array that doesn't have that baloney
04:58 raydiak if I read it right, that's part of the definition of an Array
04:59 diakopter if I want scalarrefs wrapping every lvalue, ... well that is just crazy
04:59 krunen joined #perl6
04:59 diakopter I haven't understood the benefit of doing that, yet
04:59 raydiak TimToady suggested is Parcel while the is Array argument was going on yesterday
05:00 raydiak not sure if anyone noticed
05:00 skids Wouldn't an array in a CStruct be that?  The spec says it has to be stored C-like in memory. (probably NYI)
05:00 diakopter I missed that discussion [the whole thing]
05:00 diakopter well there is CArray, I thought
05:01 skids Probably, I can't keep up with what's spec and what is experimental in Zavolaj.
05:01 diakopter you can't store p6 objects in a CArray, that much I know
05:02 flussence joined #perl6
05:02 diakopter but I'm talking about just normal 10,000-item arrays of Doge or whatever
05:03 diakopter do I really want 10,000 extra 96-byte Scalars allocated to wrap every slot
05:04 skids Well, it depends on the size of the element.
05:04 diakopter Doge
05:04 diakopter pointers
05:04 flussence joined #perl6
05:04 diakopter P6Opaque repr
05:04 Tene joined #perl6
05:04 Tene joined #perl6
05:05 djanatyn joined #perl6
05:05 japhb 96 bytes (12 64-bit pointers/values) seems a tad excessive for a Scalar.
05:05 skids The immutability bias also affects code that works with large disposable strings.
05:06 * diakopter looks how big the p6scalar repr is in moar
05:08 jeffreykegler joined #perl6
05:09 japhb colomon, raydiak: I thought of a couple more details in the Array v. attributes discussion:
05:10 japhb 1) rw attributes are containerized as well
05:11 japhb 2) array subscript is a multi sub, so currently inlinable; attribute public access is a method call, so (IIUC) not currently inlineable
05:12 diakopter japhb: what is a container and why does rakudo use them
05:12 * skids should see how many of the workarounds in https://gist.github.com/skids/2771728 are still needed.
05:13 japhb 3) You definitely want to be able to easily operate on vectors/matricies as referenced items, but yes, in Perl 6 binding can do that, so I could do a sigil change and allow copy semantics.  However, it's easy for people to accidentally copy when they didn't mean to.  So that becomes a "does the API make it easy to do what you mean" thing.
05:13 japhb Perhaps just getting .clone right is a better option there.
05:14 japhb diakopter: I think of a Perl 6 Scalar container as being a smarter version of a perl5 RV.
05:14 japhb but of course there are other types of container.  :-)
05:16 raydiak japhb: what about writing the core functionality as a lib of inlinable subs or syntactic macros (something with near-zero runtime overhead) which just takes 3 positional args for a vec, which can be wrapped with a class based on any structure (is Array or otherwise), or just used directly
05:17 japhb diakopter: see https://github.com/samuraisam/p6-pb/blob/master/lib/PB/Model/Generator.pm#L104 and following for a limited use case, but there's definitely more details in the BOOTSTRAP
05:18 japhb raydiak: easily converting between 3 elements and 1 vector makes sense, but I think you usually want the 1 vector way of thinking of it, when you're not in the depths of something like the cross operator.
05:19 japhb raydiak: I think the key thing there is that you definitely want a Quaternion and a Matrix to be single units unless you're writing the ops for them.
05:20 diakopter japhb: a rakudo scalar is 7 pointers, two uint16 and one uint32
05:20 japhb ouchie.
05:20 diakopter well, and a 32-bit pad on x64
05:20 diakopter er.
05:20 diakopter on non-x64
05:20 japhb Why the pad?
05:21 diakopter b/c p6opaque is mimicing how a c compiler is laying out objects
05:21 diakopter slots I mean
05:21 japhb Assuming the uint32 comes before the uint16's, they'll all be naturally aligned, and the total will also be a power-of-two.
05:21 japhb If they're laid out in the wrong order, then ... why?
05:22 skids Alignment really does not matter anymore to modern CPUs FWIW.
05:22 diakopter see MVMCollectable and MVMObject in 6model.h
05:22 diakopter it's not about alignment for the cpu, it's about alignment for a struct inside a struct
05:22 diakopter inside a struct
05:22 japhb 64 bytes (512 bits) is either 1 or 2 cache lines, rather neatly.  If you have padding, you cross cache lines on a number of arches.
05:23 japhb skids: Alignment vis-a-vis cache lines does.
05:23 skids yeah, that does.
05:23 japhb See the ruby optimization to make the basic object type *larger*, but always on one cache line.
05:23 diakopter japhb: first it has a uint32 owner thread id
05:24 diakopter then 16 flag bits
05:24 diakopter then 16 bits indicating object size
05:24 japhb Well, that's fine then, that leaves everything on natural alignment.
05:24 diakopter then a pointer to the forwarder object during gc marking [jnthn mentioned the other day we possibly can get rid of that]
05:24 diakopter then a pointer to the serialization context of the object
05:24 diakopter then a pointer to the stable
05:25 diakopter then the 32 bit pad on 32-bit
05:25 diakopter then a replaced pointer for when a p6opaque gets swapped out
05:25 diakopter for another type I think
05:26 diakopter "If we get mixed into, we may change size."
05:26 skids runtime mixins?
05:26 diakopter then "of" - type of the rakudo scalar value
05:26 japhb I still don't see the point of the pad.  Padding an entire pointer size makes no sense, unless I'm missing something.
05:26 diakopter (pointer)
05:27 diakopter it might be so the MVMCollectable header is the same size everwhere? :S I dunno
05:27 diakopter then an int64 "rw" - indicating whether it's writable
05:27 diakopter er wait
05:27 diakopter oops, was describing the container descriptor.
05:27 diakopter back up before "of"
05:28 diakopter next we have the pointer to the descriptor - which seems a way to factor out a bunch of things that are common across many containers
05:28 diakopter then a pointer to the value, which is another p6 object
05:28 diakopter then a pointer to its WHENCE
05:28 diakopter property
05:29 diakopter notably, these containers cannot hold native values
05:29 diakopter so if it's to hold a int or num, it needs another boxed p6object
05:31 diakopter I'm curious how many of these things are allocated when compiling the setting.
05:32 diakopter well, i guess that's mostly nqp code
05:32 diakopter so nm
05:35 japhb Some of these definitely feel "too big", but I dunno how much savings there really would be unless it could be shrunk from 8 pointer sizes to 4.
05:36 diakopter they're bump allocated on 32-bit alignment I think
05:36 diakopter in the nursery
05:36 diakopter so it would save exactly that amount
05:37 werebutt joined #perl6
05:37 werebutt left #perl6
05:37 diakopter in moar, anyway
05:37 diakopter but anyway, I don't think it could be reduced
05:38 skids I used to worry about these things.  Then I came to the realization that any improvements would be very gradual and they would be the very last things to be optimized.
05:40 japhb skids: Well, we are finally in the optimization phase (mind you, the beginnings of, but might as well start thinking about it)
05:40 japhb :-)
05:41 skids Yeah, but there are plenty of higher levels to optimize at.
05:41 japhb Optimize all the levels!
05:42 japhb Still, I understand your point.
05:43 skids Well, before even optimizing around any native types, actually getting their behavior functional and fully specced would seem more important.
05:43 skids Because nobody is going to write code using native types given their beta behavior.
05:44 japhb But some of the optimizations will require thinking about them at all levels.  For example, something that involves shifting entries from one structure to another requires changes in the NQP code and maybe even the Rakudo code, but also all the way down in the VM layer.
05:44 japhb I wasn't even talking about native types there.
05:46 raydiak japhb: I agree that we don't want to force users to have to pass vectors and matrices one element at a time; that's what the thin wrapper(s) would be for...I guess it just seemed like a good idea to separate concerns if there's no runtime cost, and would simplify the generator script too
05:47 * diakopter is keenly aware that jnthn could be highly offended by the last 100 messages here
05:48 diakopter "ARGH we just haven't gotten to optimizing those portions yet; they shouldn't complain so much; don't they know that I would've optimized this area by now if it was time for it yet?"
05:50 diakopter (the personal offense taken by someone who assumes that we see that the only person who could've ever optimized and could ever optimize to that extent is him, and therefore assumes that we are second guessing his decisions about prioritizing work
05:50 diakopter )
05:50 raydiak japhb: also then we could define operations which use other operations, without any extra (un-)boxing/containerization, type checking, dispatching, other call overhead etc
05:53 raydiak japhb: not arguing, I intend to yield to your good judgement for now, just wanted to get your complete thoughts :)
05:53 skids I think jnthn++ is quite used to having to prioritize including the "politics" of it, and probably will just be happy that more people are reading the deep code.
05:55 japhb skids: I would think so, yes.
05:55 diakopter designers who have already thought through everything 100 steps beyond everyone else sometimes find it difficult to remain patient when others stumble blindly through redesigning and reconsidering things they have already considered, rejected, or planned to take care of
05:55 skids The key question there is will ephemeral box/unbox/containerization become optimizable so that no actual structures are created.
05:55 japhb raydiak: No worries.  Try it!
05:56 diakopter I think the mental model of their default nonoptimized operation should at least be comprehensible first
05:56 skids fair enough :-)
05:57 diakopter raydiak: what do you mean by defining other operations
05:59 raydiak diakopter: vector operations which make use of other vector operations
05:59 Alina-malina joined #perl6
06:00 skids diakopter: Hopefully jnthn++ backlogs after breakfast+coffee.  I find that can be the deciding factor in how I take "meddling" in the stuff I've already thought through.
06:02 raydiak diakopter: eg method normalize { $vec.scale: 1/$vec.length } # yes I know, divide by 0
06:02 japhb diakopter: A good example of what raydiak is talking about would be reflect and refract.
06:02 diakopter also, language designers [including the implementers] should not be affronted by continued obtuseness from me.. I guess the tabula rasa perspective can seem very devil's advocatey at length
06:03 [Sno] joined #perl6
06:04 diakopter skids: jnthn doesn't do breakfast ;)
06:04 diakopter raydiak: okay, hm
06:04 * skids up too late
06:04 diakopter japhb: raydiak: but one would think that compositions of optimally-optimizable things are also optimally optimizable
06:09 jeffreykegler left #perl6
06:19 raydiak diakopter: that's basically one of my points...writing the math part itself internally as macros or inlinable subs gives more optimal compound operations, even if we provide non-inlinable api features like is rw in the public interface
06:20 zacts joined #perl6
06:20 zacts does perl6 allow for one-liners?
06:20 darutoko joined #perl6
06:20 diakopter zacts: yeah, some
06:21 REPLeffect joined #perl6
06:22 diakopter zacts: what kinds of one-liners do you have in mind
06:33 raydiak though to be honest, compound ops were an afterthought...I was thinking more about how to separate the number-crunching from the "is Array" vs "has Array" vs "has ($.x,$.y,$.z)" representation debate without adding overhead or growing the simple generator into an ill-conceived monstrosity
06:47 kaleem joined #perl6
06:47 moritz good morning
06:48 raydiak morning
06:57 krunen joined #perl6
07:12 japhb morning, moritz
07:35 FROGGS joined #perl6
07:54 moritz \*/
07:56 FROGGS morning
08:10 zakharyas joined #perl6
08:37 pdcawley joined #perl6
08:42 labster joined #perl6
08:42 mavcunha joined #perl6
08:42 SHODAN joined #perl6
08:43 perigrin joined #perl6
08:43 arnsholt_ joined #perl6
08:43 timotimo joined #perl6
08:55 mavcunha joined #perl6
08:55 sqirrel joined #perl6
09:09 dalek roast: 01da548 | (Tobias Leich)++ | S03-operators/assign.t:
09:09 dalek roast: bump plan
09:09 dalek roast: review: https://github.com/perl6/roast/commit/01da548119
09:12 timotimo o/
09:12 dalek rakudo/nom: cb25619 | (Tobias Leich)++ | src/core/Parameter.pm:
09:12 dalek rakudo/nom: show "Any" in Parameter.gist
09:12 dalek rakudo/nom:
09:12 dalek rakudo/nom: This seems to be wanted.
09:12 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/cb25619357
09:13 masak antenoon', #perl6
09:13 FROGGS o/
09:13 diakopter / o
09:14 FROGGS o _
09:14 FROGGS ^--- greeting in #vb
09:14 diakopter heh
09:21 dalek rakudo/nom: 6aa1949 | (Tobias Leich)++ | src/Perl6/Grammar.nqp:
09:21 dalek rakudo/nom: allow definition of custom postcircumfixes
09:21 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/6aa19499c9
09:26 dakkar joined #perl6
09:32 salv0 joined #perl6
09:33 djanatyn joined #perl6
09:34 djanatyn joined #perl6
09:34 prammer joined #perl6
09:36 denis_boyun joined #perl6
09:38 tipdbmp joined #perl6
09:47 krunen joined #perl6
09:48 pecastro joined #perl6
09:58 crab2313 joined #perl6
10:01 varna joined #perl6
10:09 moritz FROGGS++
10:21 [Sno] joined #perl6
10:24 FROGGS moritz: it is not perfect though about handling terminators and whitespace
10:26 moritz FROGGS: "not perfect" is much better than "not" :-)
10:26 FROGGS true
10:27 FROGGS though I think I need help to fix the remaining issues, but this needs to wait to after $work
10:33 telex joined #perl6
10:46 bonsaikitten joined #perl6
10:55 dmol joined #perl6
11:02 telex joined #perl6
11:07 darutoko joined #perl6
11:23 colomon joined #perl6
11:27 daniel-s_ joined #perl6
11:33 daniel-s_ joined #perl6
11:39 colomon jnthn: BTW, smoker runs seem to indicate that Rakudo Parrot is taking a second or two longer in stage parse than it did a week ago.
11:42 djanatyn joined #perl6
11:43 colomon 86.2 today, 86.3 yesterday, 85.9 on the 25th, 85.5 on the 24th, 84.9 on the 23th, 84.7 on the 22nd, 85.1 on the 21st….
11:43 djanatyn joined #perl6
11:43 hoelzro it knows MoarVM is the hot new thing
11:43 hoelzro and it's stalling for time!
11:50 djanatyn joined #perl6
11:56 daniel-s_ joined #perl6
12:02 dalek rakudo/nom: acf7bd2 | (Tobias Leich)++ | src/Perl6/Actions.nqp:
12:02 dalek rakudo/nom: strip "return" if the thing to return is the last
12:02 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/acf7bd251b
12:02 FROGGS colomon: I'd be eager to know if this makes a visible change --^
12:05 rindolf joined #perl6
12:07 colomon FROGGS: smoking...
12:08 atroxaper joined #perl6
12:09 FROGGS colomon++
12:10 tadzik FROGGS++
12:15 dayangkun joined #perl6
12:16 colomon 85.9
12:17 FROGGS hmmm
12:18 FROGGS I will strip more later, maybe it helps a bit
12:21 bjz joined #perl6
12:25 moritz do those variants actually produce different ASTs?
12:25 moritz I somehow thought that NQP optimized out th emost common case
12:26 kaleem joined #perl6
12:27 prevost joined #perl6
12:33 FROGGS r: my $time = nqp::time_n(); for ^100000 { sub { return 42 }() };  say nqp::time_n() - $time
12:34 camelia rakudo-parrot acf7bd: OUTPUT«2.99864196777344␤»
12:34 camelia ..rakudo-moar acf7bd: OUTPUT«1.78675055503845␤»
12:34 camelia ..rakudo-jvm acf7bd: OUTPUT«1.5709998607635498␤»
12:34 FROGGS r: my $time = nqp::time_n(); for ^100000 { sub { 42 }() };  say nqp::time_n() - $time
12:34 camelia rakudo-parrot acf7bd: OUTPUT«1.36541604995728␤»
12:34 camelia ..rakudo-moar acf7bd: OUTPUT«1.24346971511841␤»
12:34 camelia ..rakudo-jvm acf7bd: OUTPUT«1.9659998416900635␤»
12:34 FROGGS r: my $time = nqp::time_n(); for ^100000 { sub { return 42 }() };  say nqp::time_n() - $time
12:34 camelia rakudo-parrot acf7bd: OUTPUT«2.76536798477173␤»
12:34 camelia ..rakudo-moar acf7bd: OUTPUT«1.86698055267334␤»
12:34 camelia ..rakudo-jvm acf7bd: OUTPUT«1.553999900817871␤»
12:34 kaleem joined #perl6
12:34 FROGGS r: my $time = nqp::time_n(); for ^100000 { sub { 42 }() };  say nqp::time_n() - $time
12:34 camelia rakudo-moar acf7bd: OUTPUT«1.28492331504822␤»
12:34 camelia ..rakudo-jvm acf7bd: OUTPUT«0.2350001335144043␤»
12:34 camelia ..rakudo-parrot acf7bd: OUTPUT«1.3962881565094␤»
12:35 colomon ???
12:35 * colomon does not understand JVM's times in there.
12:35 FROGGS except the jvm weirdness one can see what happens :o)
12:35 tadzik I think what moritz meant is that in nqp it doesn't make a difference, while in perl6 it does
12:35 jlaire one does not simply understand JVM
12:35 FROGGS tadzik: point taken
12:36 tadzik nqp: my $time := nqp::time_n(); for 0..100000 { sub { 42 }() }; say(nqp::time_n() - $time)
12:36 camelia nqp-parrot: OUTPUT«Missing block at line 2, near "..100000 {"␤current instr.: 'panic' pc 15952 (gen/parrot/stage2/NQPHLL.pir:5947) (gen/parrot/stage2/NQPHLL.nqp:425)␤»
12:36 camelia ..nqp-jvm: OUTPUT«Missing block at line 2, near "..100000 {"␤  in panic (gen/jvm/stage2/NQPHLL.nqp:378)␤  in pblock (gen/jvm/stage2/NQP.nqp)␤  in xblock (gen/jvm/stage2/NQP.nqp)␤  in statement_control:sym<for> (gen/jvm/stage2/NQP.nqp)␤  in !protoregex (gen/jvm/stage2/QRegex.…»
12:36 camelia ..nqp-moarvm: OUTPUT«Missing block at line 2, near "..100000 {"␤   at gen/moar/stage2/NQPHLL.nqp:369  (/home/p6eval/rakudo-inst-2/languages/nqp/lib/NQPHLL.moarvm:panic:120)␤ from <unknown>:1  (/home/p6eval/rakudo-inst-2/languages/nqp/lib/nqp.moarvm:pblock:222)␤ from <unknown>:1 …»
12:36 tadzik uhh
12:36 tadzik no ranges in nqp, prolly
12:37 moritz aye
12:38 tadzik nqp: my $time := nqp::time_n(); my $i := 0; while $i < 100000 { sub () { 42 }(); $i++ }; say(nqp::time_n() - $time)
12:38 camelia nqp-jvm: OUTPUT«0.11999988555908203␤»
12:38 camelia ..nqp-moarvm: OUTPUT«0.102521419525146␤»
12:38 camelia ..nqp-parrot: OUTPUT«0.237454891204834␤»
12:38 tadzik nqp: my $time := nqp::time_n(); my $i := 0; while $i < 100000 { sub () { return 42 }(); $i++ }; say(nqp::time_n() - $time)
12:38 camelia nqp-jvm: OUTPUT«0.15599989891052246␤»
12:38 camelia ..nqp-moarvm: OUTPUT«0.153414964675903␤»
12:38 camelia ..nqp-parrot: OUTPUT«0.361402034759521␤»
12:38 tadzik there's a difference alright
12:38 moritz ok
12:38 moritz I was wrong
12:38 tadzik nqp: my $time := nqp::time_n(); my $i := 0; while $i < 5000000 { sub () { return 42 }(); $i++ }; say(nqp::time_n() - $time)
12:38 camelia nqp-parrot: OUTPUT«(timeout)»
12:38 camelia ..nqp-moarvm: OUTPUT«6.62866878509521␤»
12:38 camelia ..nqp-jvm: OUTPUT«1.0499999523162842␤»
12:38 tadzik nqp: my $time := nqp::time_n(); my $i := 0; while $i < 5000000 { sub () { 42 }(); $i++ }; say(nqp::time_n() - $time)
12:39 FROGGS with return it is like 60% slower on nqp, and 100% slower on rakudo
12:39 FROGGS on my box
12:39 FROGGS on parrot
12:39 camelia nqp-parrot: OUTPUT«7.51664805412292␤»
12:39 camelia ..nqp-jvm: OUTPUT«0.7329998016357422␤»
12:39 camelia ..nqp-moarvm: OUTPUT«3.79196381568909␤»
12:39 tadzik yeah, a win nonetheless
12:40 FROGGS when all meaningless returns are stripped, I guess we win one or two seconds
12:40 tadzik [Like]
12:41 arnsholt_ Wasn't the biggest part of the Zavolaj speed-up removing a needless return?
12:41 tadzik I'd still like something like that in the Perl 6 Optimizer
12:41 tadzik arnsholt: unsure. timotimo's benchmarks showed, that it doesn't make that much of a difference in itself
12:41 arnsholt Ah, right
12:41 tadzik in practice, it seemed to :)
12:42 tadzik but I still left the caching in there
12:42 arnsholt I just remember that it was slow and now it's faster =D
12:42 tadzik it seems like a fair thing to do :P
12:42 tadzik did you see the fluently running asteroids?
12:42 tadzik well "fluently"
12:42 moritz so, who's going to write an optimizer pass that optimizes out returns
12:42 tadzik and buggy :P
12:42 arnsholt No, I didn't. Linky?
12:43 dmol joined #perl6
12:44 tadzik https://github.com/tadzik/p6steroids
12:44 tadzik there's something that prevents you from losing the game
12:44 tadzik except when it makes you lose for no reason
12:44 tadzik I've no idea why this happens
12:47 arnsholt *giggle*
12:47 arnsholt That's a funny failure mode =D
12:48 arnsholt I'll give it a spin tonight
12:48 arnsholt Don't think I have SDL headers on my work machine =)
12:48 tadzik ok, fixed it :)
12:52 tipdbmp joined #perl6
12:52 moritz 397 iterations in 10.3544800281525 seconds, giving 38.340891954073 fps, sort of
12:58 tadzik it's rigged to not go over ~50 fps
12:58 tadzik you can try to force it to run faster changing https://github.com/tadzik/p6steroids/blob/master/sdlwrapper.c#L33
12:59 tadzik once every 16ms means sort-of-60fps
12:59 tadzik but I should roll out some frame dropping mechanism
13:01 tipdbmp joined #perl6
13:07 smls joined #perl6
13:12 djanatyn joined #perl6
13:12 hoelzro https://github.com/github/linguist/pull/900#issuecomment-33302017
13:12 hoelzro what does that mean?
13:14 djanatyn joined #perl6
13:15 timotimo i haven't a clue
13:18 sqirrel joined #perl6
13:32 smls perl6: say "aaa \n bbb \x2028 ccc".perl;
13:32 camelia niecza v24-109-g48a8de3: OUTPUT«"aaa \n bbb \x[2028] ccc"␤»
13:32 camelia ..rakudo-parrot acf7bd, rakudo-jvm acf7bd, rakudo-moar acf7bd: OUTPUT«"aaa \n bbb 
 ccc"␤»
13:33 smls in my terminal, I the only output I see is    "aa \n bb
13:33 smls (without closing quote)
13:34 smls Shouldn't rakudo's .perl deparse the \x2028 like niecza does?
13:35 moritz the basically only spec for .perl is that it and eval reound-trips
13:35 smls PS: this is used at http://rosettacode.org/wiki/Strip_whitespace_from_a_string/Top_and_tail#Perl_6
13:36 smls wanted to add an "output" listing to that page, so people understand what .perl does in that example
13:37 colomon perl6: say "aaa \n bbb \x2028 ccc".perl.EVAL.ords
13:37 camelia rakudo-parrot acf7bd, rakudo-jvm acf7bd, rakudo-moar acf7bd, niecza v24-109-g48a8de3: OUTPUT«97 97 97 32 10 32 98 98 98 32 8232 32 99 99 99␤»
13:37 smls but if the output looks broken in the terminal, I better don't showcase it... ;)
13:39 colomon perl6: say " \n bbb \x2028 ".trim.ords
13:39 camelia rakudo-parrot acf7bd, rakudo-jvm acf7bd, rakudo-moar acf7bd, niecza v24-109-g48a8de3: OUTPUT«98 98 98␤»
13:39 moritz p6: say "aaa \n bbb \x2028 ccc".encode
13:39 camelia niecza v24-109-g48a8de3: OUTPUT«Unhandled exception: No value for parameter '$enc' in 'Str.encode'␤  at /home/p6eval/niecza/lib/CORE.setting line 0 (Str.encode @ 1) ␤  at /tmp/tmpfile line 1 (mainline @ 3) ␤  at /home/p6eval/niecza/lib/CORE.setting line 4595 (ANON @ 3) ␤  at…»
13:39 camelia ..rakudo-moar acf7bd: OUTPUT«Buf:0x<61 61 61 20 0a 20 62 62 62 20 -1e -80 -58 20 63 63 63>␤»
13:39 camelia ..rakudo-parrot acf7bd, rakudo-jvm acf7bd: OUTPUT«Buf:0x<61 61 61 20 0a 20 62 62 62 20 e2 80 a8 20 63 63 63>␤»
13:40 moritz rakudo-moar produces negative numbers
13:47 smls ok, I "fixed" the rosettacode example by simply replacing \x2028 with a different whitespace character that doesn't break in a terminal... :)
13:47 moritz anybody want to submit a bugreport for the moar output above?
13:51 smls moritz: re. eval round-tripping, does that mean we can expect the contents of code blocks/subs to be deparsed in .perl output at some point?
13:52 moritz smls: yes
13:53 moritz though that's non-trivial
14:00 dmol joined #perl6
14:03 rindolf joined #perl6
14:25 jnap joined #perl6
14:28 cognominal joined #perl6
14:34 kbaker joined #perl6
14:40 skids joined #perl6
14:43 bluescreen10 joined #perl6
14:43 cognominal joined #perl6
14:44 ajr joined #perl6
14:46 diakopter jlaire: lol
14:47 lizmat r: my @a=^10; sub a ($x) { @a[$x] }; my $p := (8,9); say a($p); say @a[$p]
14:47 camelia rakudo-parrot acf7bd, rakudo-jvm acf7bd, rakudo-moar acf7bd: OUTPUT«2␤8 9␤»
14:47 lizmat seems wrong to me: would have expected 8 9 8 9
14:47 lizmat am I wrong?
14:48 moritz that's the tricky "should the $ force it to be an item?" question on which we've been back and forth
14:49 moritz r: my @a = ^10; sub a(\x) { @a[x] }; my $p := (8,9); say a($p); say @a[$p]
14:49 camelia rakudo-parrot acf7bd, rakudo-jvm acf7bd, rakudo-moar acf7bd: OUTPUT«8 9␤8 9␤»
14:50 dalek rakudo-star-daily: ac708a3 | coke++ | log/ (5 files):
14:50 dalek rakudo-star-daily: today (automated commit)
14:50 dalek rakudo-star-daily: review: https://github.com/coke/rakudo-star-daily/commit/ac708a35ab
14:50 moritz wait, whey 2 in lizmat's first example?
14:51 lizmat number of elements in parcel
14:51 moritz ah, I thought there was an offby1 error, but there isn't
14:51 moritz IMHO it would be more consistent to say 2 both times
14:51 FOAD joined #perl6
14:52 lizmat even if $p is bound to the parcel?
14:52 [Coke] if I add simplistic timing to the daily spec test runs, would 'real' be ok? (broken out, I think by "everything before we run spec test" and "spec test" ?
14:52 lizmat r: my @a=^10; sub a ($x) { @a[$x] }; my $p = (8,9); say a($p); say @a[$p]  # not bound
14:52 camelia rakudo-parrot acf7bd, rakudo-jvm acf7bd, rakudo-moar acf7bd: OUTPUT«2␤2␤»
14:53 moritz there could be another solution
14:53 lizmat [Coke]: how about real and user+sys ?
14:53 moritz forbid binding of non-item values to $ variables
14:53 skids r: my (\x); x := 4; # wonders if asking "why" would be fruitfully educational or just confusing
14:54 camelia rakudo-parrot acf7bd, rakudo-jvm acf7bd, rakudo-moar acf7bd: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/tmpfile�Cannot use bind operator with this left-hand side�at /tmp/tmpfile:1�------> [32mmy (\x); x := 4[33m�[31m; # wonders if asking "why" would …»
14:54 [Coke] at that point, probably easier to track them all independantly and shove them in the CSV.
14:54 lizmat [Coke]: fair enough  :-)
14:54 * [Coke] will do that, then; have a R, U, S for each of the two major steps.
14:55 moritz ++[Coke]
14:55 * [Coke] will get that working this week.
14:55 moritz lizmat: the problem is: if we force $a := (1, 2) to always behave like an item, we have to introduce *another* layer of indirection
14:56 moritz thus my innovative suggestion of forbidding it :-)
14:56 lizmat I wonder how much this would break core settings
14:56 lizmat from a language point of view, we need simple rules
14:57 skids moritz++ it does sort of violate the sigil contract
14:57 moritz it would break quite a bit
14:57 lizmat the current rules about slicing are a bit vague  :-(
14:57 moritz mlenz@mlenz-workstation:~/p6/rakudo$ git grep '\$.*:=' src/core/|wc -l
14:57 moritz 670
14:58 lizmat :-(
14:58 moritz many of those could be switched to sigilless form
14:59 lizmat this would make sense anyway, right?
14:59 moritz anyway, that was just a random idea from me; I have no idea if it's actually feasible, and a good idea
14:59 lizmat I mean, the $ forms could be old code
14:59 lizmat or at least, old thinking  :-)
15:00 moritz well, it used to be that foreign (non-p6) values couldn't be assigned to variables, just bound
15:01 btyler joined #perl6
15:11 [Coke] btw, thanks to everyone for making #perl6 a nice project to work on.
15:14 lizmat I totally agree with that  :-)
15:21 grondilu joined #perl6
15:28 jnthn evening, #perl6
15:28 jnthn Oslo...it has some snow :)
15:33 FROGGS hi jnthn
15:34 jnthn o/
15:36 lizmat jnthn o/
15:36 jnthn Whoa, lot of backlog...
15:36 spider-mario joined #perl6
15:36 * jnthn has been busy with teaching git all day...
15:37 diakopter but what were you teaching the git
15:38 jnthn :P
15:38 jnthn I had a very lovely group to teach today...not gits at all :P
15:40 arnsholt So you taught them how to git. Very good! =D
15:42 ajr_ 100% agreement with lizmat: "from a language point of view, we need simple rules"; the more consistent the language, the easier it will be to teach, and the more likely to catch on.
15:44 treehug88 joined #perl6
15:47 arnsholt Simple is a very qualitative metric though, and there's simplicity on several axes
15:47 dayangkun joined #perl6
15:47 arnsholt Lisp has very simple syntax, for example (except it's actually fiendishly complex in some Lisps), but quite complex semantics
15:47 jnthn I think the better point of view is that, just as in natural language, inconsistencies must pull their weight.
15:48 jnthn who/whom didn't, so it's dead. less/fewer doesn't really, so it's probably also dying. :)
15:49 mavcunha joined #perl6
15:59 tipdbmp joined #perl6
16:02 thou joined #perl6
16:16 tadzik heh. "Dear Jonathan Test"
16:16 tadzik thank you, Red Hat Training, that's very kind :)
16:17 timotimo :3
16:25 kaleem joined #perl6
16:29 stevan__ joined #perl6
16:35 masak eveninä, #perl6
16:35 masak evenin'*
16:35 jnthn o/
16:38 treehug88 joined #perl6
16:42 pdurbin left #perl6
16:43 ajr joined #perl6
16:51 sqirrel joined #perl6
16:57 krunen joined #perl6
17:06 dmol joined #perl6
17:14 tadzik funny thing:
17:14 tadzik r-m: my $t = nqp::time_n; for ^10000 { so any(False, True, False) }; say nqp::time_n() - $t
17:15 camelia rakudo-moar acf7bd: OUTPUT«9.96943640708923␤»
17:15 tadzik r-m: my $t = nqp::time_n; for ^10000 { so False or True or False }; say nqp::time_n() - $t
17:15 camelia rakudo-moar acf7bd: OUTPUT«0.110731601715088␤»
17:15 tadzik am I missing something (constant folding?), or is so-any very slow?
17:19 timotimo looks like it could be constant folding, aye. look at the generated ast and if it's constant-folded you'll see it
17:19 timotimo well, the or and so operators should be pure, no?
17:19 [Sno] joined #perl6
17:19 tadzik should
17:20 tadzik I'm curious, cos when I changed so-any to or-or, it yielded a _big_ speedup in asteroids
17:20 tadzik it was a hotpath, but still
17:20 BenGoldberg joined #perl6
17:20 jnap joined #perl6
17:21 tadzik from --target=ast it doesn't seem like it's getting constant-folded
17:21 tadzik it is calling infix-or twice
17:24 timotimo yeah, that's the wrong target :)
17:24 timotimo you need to pass --target=optimize
17:24 tadzik oh!
17:25 tadzik still no folding
17:25 timotimo ah well.
17:25 timotimo junctions are hella slow
17:27 locsmif joined #perl6
17:29 moritz 'or' isn't pure
17:29 moritz it's thunky
17:30 moritz so evaluating it can call the thunks, which are impure (potentially)
17:31 arnsholt tadzik: I heart you just a bit for doing this SDL stuff, BTW
17:31 tadzik :)
17:32 tadzik moritz: what about or on things that are values, like Bools?
17:32 tadzik so: things that are not callable, or something
17:33 tadzik arnsholt: btw, do callbacks work on jvm at this point?
17:33 SamuraiJack joined #perl6
17:34 arnsholt Nope, NYI
17:34 tadzik I wonder how faster will asteroids get
17:34 timotimo r-m: my $t = nqp::time_n; for ^10000 { so (False | True | False) }; say nqp::time_n() - $t
17:34 camelia rakudo-moar acf7bd: OUTPUT«10.1571633815765␤»
17:34 timotimo wha .... what?
17:35 timotimo i thought my optimization should kick in and unfold that
17:35 jnthn I wonder if that's hitting one of the odd slow-path things...
17:35 timotimo oh, of course not, there's no operation in there %)
17:35 timotimo r-m: my $t = nqp::time_n; for ^10000 { so (False | True | False) == True }; say nqp::time_n() - $t
17:35 moritz tadzik: I don't know if we have the infrastructure to un-thunk things that don't need to be thunk
17:35 camelia rakudo-moar acf7bd: OUTPUT«(timeout)»
17:35 timotimo r-m: my $t = nqp::time_n; for ^10000 { so ((False | True | False) == True) }; say nqp::time_n() - $t
17:35 camelia rakudo-moar acf7bd: OUTPUT«(timeout)»
17:36 timotimo ... huh.
17:36 tadzik timotimo: are you sure evalbot is running on sufficiently high --optimize?
17:36 moritz tadzik: I know we have some (primitive) logic for default values for parameters/attributes and such, but no idea how well it generalizes
17:36 timotimo r-m: my $t = nqp::time_n; for ^10000 { if ((False | True | False) == True) { True } else { False  }; say nqp::time_n() - $t
17:36 camelia rakudo-moar acf7bd: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/IWEYqcS0AJâ�¤Unable to parse expression in block; couldn't find final '}' â�¤at /tmp/IWEYqcS0AJ:1â�¤------> [32m else { False  }; say nqp::time_n() - $t[33mâ��[31m<EOL>[0mâ�¤    expecting any of…»
17:36 tadzik moritz: hm
17:36 timotimo r-m: my $t = nqp::time_n; for ^10000 { if ((False | True | False) == True) { True } else { False } }; say nqp::time_n() - $t
17:36 camelia rakudo-moar acf7bd: OUTPUT«(timeout)»
17:36 timotimo :(
17:37 moritz evalbot runs on the default optimization level, whatever that is
17:37 pdcawley joined #perl6
17:38 tadzik heh. Asteroids take an average 10 ms to compute a new frame on my machine, but sometimes it may take up to 219 :/
17:38 tadzik 219 ms for an animation frame is unsatisfactory whatever magic I come up with
17:38 tadzik I guess I'll have to make that lower then :)
17:38 timotimo garbage collector?
17:39 tadzik oh!
17:39 tadzik of course
17:39 tadzik it explains why it happens even though no crazy thing is happening
17:39 jdv79 how do you guys keep up this pace of late?  its cool.
17:39 timotimo i'd very much like it if we could get an iterative garbage collector or what they are called
17:40 jdv79 jnthn: thanks for the blog post
17:40 tadzik maybe if I predeclared all variables.... ;P
17:40 timotimo jdv79: it's mostly jnthn motivating us with his progress :)
17:41 timotimo at least that's what it is for me
17:41 tadzik so, jvm has concurrent gc, maybe that'd help at some point
17:42 jnthn timotimo: You probably mean incremental :)
17:42 timotimo exactly
17:42 timotimo (well, our GC is exact already)
17:42 timotimo (no, wait! that's precise!)
17:43 grondilu tadzik: would you consider adding some screenshots?
17:44 tadzik grondilu: I took some, but it's really nothing too look at :)
17:44 tadzik grondilu: but sure, this http://imgur.com/F2eWaWT runs at mostly 60 fps on my machine
17:47 denis_boyun joined #perl6
17:48 arnsholt tadzik: Is there anything other than callbacks you need to try your Asteroids game on JVM, BTW?
17:49 tadzik arnsholt: I don't think so. It's not even using C structs
17:49 arnsholt Cool
17:49 arnsholt In that case I might try to add callbacks to the JVM version first
17:49 tadzik \o/
17:49 tadzik that'd be awesome
17:50 rurban1 joined #perl6
17:50 tadzik if making them argument-free at first will make it easier, I can workaround that
17:52 arnsholt Don't think it'll matter much
17:52 arnsholt That's useful to know though. I'll keep you posted
17:54 timotimo i like the sound of that :)
17:55 rindolf joined #perl6
17:57 FROGGS joined #perl6
18:00 FROGGS jdv79: it is easy, ten people share a single nick :o)
18:01 tadzik . o O ( it's my turn to be jnthn! )
18:01 timotimo :D
18:01 FROGGS but seriously, progress motivates, which gives progress and so on
18:01 FROGGS and it is awesome to work for a project that has awesome designers (and hackers)
18:03 alexghacker joined #perl6
18:05 timotimo especially motivating is suddenly having a more performance VM to toy with
18:05 timotimo performant*
18:07 jnthn arnsholt: I know I've said it before, but my word is hellfire lacking in eating places... :)
18:07 tgt joined #perl6
18:07 * jnthn thinks he'll head downtown to find something more interesting than the hotel restaurant...
18:08 timotimo oh wow
18:08 timotimo hellfire refers to a place?
18:08 jnthn timotimo: Helsfyr :P
18:08 timotimo i was very confused to find your word lacking in eating places
18:08 timotimo gotta prepare some food now
18:09 TimToady there were some pretty good places down near the train station, as I recall
18:09 jnthn It's the concrete jungle bit of Oslo that I'm staying in
18:09 jnthn It's only benefit is close to teaching
18:09 jnthn TimToady: Yeah, that's where I'm gonna head.
18:09 jnthn Was kinda hoping to do a small stroll instead of metro...but there's mostly sushi and a badly rated pub...
18:10 * jnthn goes nom hunting...
18:10 jnthn &
18:17 SamuraiJack joined #perl6
18:20 telex joined #perl6
18:21 beastd joined #perl6
18:31 treehug88 joined #perl6
18:40 telex joined #perl6
18:41 arnsholt jnthn: Yeah, it's a bit out of the way
18:41 arnsholt Gimme a prod next time you're in town and I can give you some pointers to food
18:41 krunen joined #perl6
18:44 tadzik can confirm
18:47 pecastro joined #perl6
18:48 tgt joined #perl6
18:51 araujo joined #perl6
18:51 araujo joined #perl6
18:56 nwc10 is there an easy way to run the spectest in parallel?
18:56 nwc10 I can't spot it in the docs
18:58 nwc10 aha, something like this?
18:58 nwc10 perl t/harness --fudge --moar --keep-exit-code --jobs=24 --tests-from-file=t/spectest.data
18:58 nwc10 mmm, things fail.
18:59 arnsholt TEST_JOBS=n works if you have a reasonably recent version too, IIRC
18:59 ajr joined #perl6
19:00 nwc10 aha yes, in the environment
19:03 FROGGS[mobile] joined #perl6
19:13 Rotwang joined #perl6
19:17 sqirrel joined #perl6
19:19 tgt joined #perl6
19:35 V_S_C joined #perl6
19:35 V_S_C In the PERL6/nqp repository
19:36 V_S_C in the src\vm\parrot\ops folder
19:37 V_S_C in the nqp.ops file
19:37 tgt joined #perl6
19:37 V_S_C the gethostname function is used
19:37 FROGGS V_S_C: is that a new song?
19:38 V_S_C thats available from unistd
19:38 V_S_C but on windows MSVC the file needs winsock2.h
19:39 [Sno] joined #perl6
19:39 FROGGS hmmm, but it compiles on my windows box
19:39 V_S_C FROGGS: I dunno why on x64 toolchain it builds
19:39 djanatyn joined #perl6
19:40 V_S_C but it kept breaking on x86
19:40 FROGGS ahh, yeah, that might be it
19:40 V_S_C As I wanted ICU, its how I happened to start trying to build Rakudo for myself
19:42 djanatyn joined #perl6
19:43 V_S_C nmake just completed on my system, so I immediately reported
19:44 V_S_C I'll continue with the x86 build & hopefully have +ve news soon
19:44 V_S_C left #perl6
19:45 djanatyn joined #perl6
19:45 FROGGS cool
19:53 djanatyn joined #perl6
19:56 Tene joined #perl6
19:56 Tene joined #perl6
19:57 jeffreykegler joined #perl6
20:02 jeffreykegler left #perl6
20:11 * jnthn back
20:12 jnthn arnsholt: I went to Greenland, and found some Indian place by there. :)
20:13 arnsholt Just by the exit to the subway station?
20:16 jnthn No, a 5ish minute walk
20:16 moritz the Oslo metro goes to Greenland?
20:16 arnsholt Not the one I might have suggested, then
20:16 jnthn arnsholt: There seem to be a bunch in that area. I noticed on the way back to the subway station I accidentally walked past one...
20:17 arnsholt There are two just by the metro, actually
20:18 arnsholt There's a very good one by Alexander Kiellands plass, but you have to change to a bus downtown to get to that one
20:18 jnthn ah
20:18 jnthn I was going for easy :)
20:19 nwc10 good Indian? Anything curious on the menu?
20:19 arnsholt I assumed =)
20:20 arnsholt Oh, actually there's a bus that goes directly from Helsfyr there
20:20 arnsholt Stops just across the street from the restaurant, even
20:20 jnthn oh...
20:20 jnthn nwc10: Nothing special on the menu. Food was fine...nothing crazy good, but certainly not bad either.
20:21 jnthn nwc10: I said "madras" and it was reasonably hot. :)
20:22 masak TIL Alexander Kielland is one of the "four greats" in Norwegian literature.
20:22 arnsholt Yep
20:23 masak I'm not sure we have "greats" in Swedish literature :>
20:23 masak only "kinda good, I guess" ones
20:23 arnsholt IIRC the term was invented to sell a collection of those four authors' books
20:23 masak ah.
20:24 jnthn masak: Surely Sweden has "lagoms"? :P
20:24 masak that's it, of course.
20:25 arnsholt You have Strindberg, he's pretty great
20:26 * sjn remembers the "Strindberg and Helium" cartoon
20:26 sjn classic
20:28 * masak ddg-s, and lols
20:31 masak "miseryyyy-y-y-y"
20:31 * sjn cracks up every time he sees those cartoons :)
20:39 kurahaupo joined #perl6
21:00 havenwood joined #perl6
21:17 dayangkun joined #perl6
21:22 V_S_C joined #perl6
21:29 bluescreen10 joined #perl6
21:30 V_S_C FROGGS: Good news: I got windows x86 ICU parrot on MSVC toolchain working, unlike x64 even Panda is working on it.
21:30 FROGGS cool!
21:30 FROGGS V_S_C: can you prrovide pull requests for the affected repositories?
21:31 dalek rakudo/nom: cb1c86f | jonathan++ | tools/build/ (2 files):
21:31 dalek rakudo/nom: Generalize create-moar-runner.
21:31 dalek rakudo/nom:
21:31 dalek rakudo/nom: Means we'll be able to use it to create a perl6-debug one also.
21:31 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/cb1c86f612
21:31 dalek rakudo/nom: c884dc1 | jonathan++ | / (3 files):
21:31 dalek rakudo/nom: Add perl6-debug into MoarVM build.
21:31 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/c884dc10f2
21:32 colomon jnthn=+
21:32 colomon jnthn++
21:33 * colomon isn't sure if he has ever successfully built perl6-debug
21:33 V_S_C okay but may I do that later today
21:33 V_S_C its 3am
21:35 jnthn It almost looks like it's about to work on Moar, then explodes when trying to sync a file handle...
21:36 jnthn Will do it for JVM also
21:36 jnthn And Parrot
21:36 jnthn Though maybe not tonight :)
21:36 rylinaux joined #perl6
21:36 jnap joined #perl6
21:37 FROGGS V_S_C: sure :o)
21:38 FROGGS jnthn++
21:42 djanatyn joined #perl6
21:45 jnthn yay, fixed the sync thing and have a working perl6-debug on Moar.
21:46 jnthn That's kinda cool
21:46 nwc10 yay!
21:48 colomon \o/
21:51 dalek perl6-roast-data: 07099d7 | coke++ | / (6 files):
21:51 dalek perl6-roast-data: today (automated commit)
21:51 dalek perl6-roast-data: review: https://github.com/coke/perl6-roast-data/commit/07099d78df
21:52 masak jnthn++
21:52 jnthn Guess I'll use that in my thingy talk :)
21:53 jnthn [Coke]: Any diagnostics on the build failure?
21:53 FROGGS gnight #perl6
21:53 timotimo gnite FROGGS :)
21:53 corecatcher nn FROGGS
21:54 jnthn 'night FROGGS[mobile]
22:01 [Coke] http://feather.perl6.nl/~coke/LAST_OUTPUT , search for moar - looks like a pull on a github repo failed.
22:02 [Coke] I do not yet have the 3rd party moar repos setup with a local caching git repo copy.
22:02 [Coke] I can try to re-work today's commit. let me start moar's build again.
22:03 [Coke] this run seems to have no issue with github. re-running.
22:03 [Coke] I'll just force push the fix later.
22:03 [Coke] (eh. or regular push.)
22:03 jnthn [Coke]: ah, ok
22:04 jnthn [Coke]: Then not too worrying :)
22:05 [Coke] I wonder what would happen if I did a git clone of a 3rdparty lib into where the submodule was expecting t.
22:05 masak 'night, #perl6
22:07 [Coke] ~~
22:07 virtualsue joined #perl6
22:07 LordVorp left #perl6
22:16 raydiak good afternoon #perl6
22:17 daniel-s_ joined #perl6
22:17 rindolf joined #perl6
22:29 kaare__ joined #perl6
22:34 colomon \o
22:36 dalek perl6-roast-data: 5b95fa6 | coke++ | / (2 files):
22:36 dalek perl6-roast-data: Re-run moar.
22:36 dalek perl6-roast-data:
22:36 dalek perl6-roast-data: (previous run hit a temporary snag talking to github)
22:36 dalek perl6-roast-data: review: https://github.com/coke/perl6-roast-data/commit/5b95fa683c
22:37 eternaleye joined #perl6
22:38 [Coke] jnthn: ^^
22:38 [Coke] passes 2 more tests than yesterday.
22:38 jnthn [Coke]++ # thanks!
22:38 jnthn "every little helps" :)
22:42 colomon seems panda doesn't run on moar yet?  :)
22:46 jnthn colomon: No, though I did remove the JSON::Tiny not working blocker, so I guess we're onto the next one now... :)
22:50 kurahaupo left #perl6
23:22 jnthn 'night, #perl6
23:23 baest joined #perl6
23:24 dalek joined #perl6
23:27 berekuk joined #perl6
23:30 frankbutt joined #perl6
23:30 frankbutt left #perl6
23:40 xinming_ joined #perl6
23:40 rylinaux joined #perl6
23:41 treehug88 joined #perl6
23:45 FOAD_ joined #perl6
23:45 obra_ joined #perl6
23:47 colomon_ joined #perl6
23:48 rylinaux_ joined #perl6
23:53 FOAD joined #perl6
23:53 raydiak what's the difference between returning with an explicit return vs just implying return of the last value in the block?
23:55 krunen joined #perl6

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

Perl 6 | Reference Documentation | Rakudo