»ö« 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:43
araujo joined,
FOSScookie joined
00:45
kst joined
01:00
jeffreykegler joined
01:06
hypolin joined,
hypolin left
01:10
denis_boyun left
01:12
mavcunha left
01:13
jnap joined
01:18
jnap left
01:21
[Sno] left,
FOSScookie left
01:49
skids left
01:51
yeltzooo left
01:52
jnap joined
01:54
exodist_ left
01:58
Exodist joined
02:01
skids joined
02:04
grondilu left
02:11
yeltzooo joined
02:13
dayangkun joined
02:15
robinsmidsrod left
02:16
robinsmidsrod joined
02:17
flussence left
02:18
kurahaupo_mobile left
02:27
jnap left
02:44
ilbot3 left,
robinsmidsrod left,
robinsmidsrod joined
02:46
ilbot3 joined
02:56
smls left
03:00
robinsmidsrod left,
robinsmidsrod joined
03:30
robinsmidsrod left,
robinsmidsrod joined
03:52
robinsmidsrod left,
robinsmidsrod joined
03:56
lue left
03:57
robinsmidsrod left,
robinsmidsrod joined
|
|||
colomon | huh | 03:58 | |
diakopter | ? | 03:59 | |
03:59
BenGoldberg left
|
|||
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«===SORRY!=== Error while compiling /tmp/tmpfileType 'Vec3' is not declaredat /tmp/tmpfile:1------> x:<+=>(Array:D $a, Array:D $b --> Vec3:D⏏) { for 0..2 -> $i { $a[$i] += …» | ||
colomon | r: multi sub infix:<+=>(Array:D $a, Array:D $b --> Array:D) { for 0..2 -> $i { $a[$i] += $b[$i]; }; $a; }; | ||
camelia | ( no output ) | ||
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…» | ||
..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…» | |||
..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» | |||
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 …» | ||
colomon | overthinking this | 04:03 | |
p: my Array $v = Array.new(1, 2, 3); my Array $a = $v; $a[2] = 42; say :$a.perl; say :$v.perl; | |||
camelia | rakudo-parrot c2982d: OUTPUT«"a" => [1, 2, 42]"v" => [1, 2, 42]» | ||
colomon | diakopter: understand my huh now? Or am I completely missing something important? | 04:04 | |
04:05
grep0r left
04:06
kaleem joined
04:08
lue joined,
grep0r joined
|
|||
colomon | I mean, I'm guessing it's copying the containers rather than the values. Though.... | 04:08 | |
p: my Array $v = Array.new(1, 2, 3); my Array $a = $v; $a.push(42); say :$a.perl; say :$v.perl; | |||
camelia | rakudo-parrot c2982d: OUTPUT«"a" => [1, 2, 3, 42]"v" => [1, 2, 3, 42]» | ||
colomon | ah, no. | 04:09 | |
copying the array like that just copies the array object. | |||
raydiak | when using $, you get item semantics, not array semantics...so $a = $v puts ref in $v into $a | ||
(dunno if I'm using the right wording there, though) | 04:10 | ||
s/array/list/ | |||
colomon | I think this may be a serious flaw in japhb_'s Vec3 is Array scheme | ||
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? | ||
it does what you expectif you put it in @ and treat it as if you're expecting an array instead | 04:14 | ||
eg I wouldn't expect $obj1 = $obj2 to clone | |||
colomon | hmm | 04:15 | |
raydiak | but I would expect @coords1 = @coords2 to do so, and it does | ||
04:16
grep0r left
|
|||
colomon | I'm mucking about with japhb_'s Vec3 class. github.com/japhb/Math--ThreeD | 04:16 | |
lue | Since when did = act like := ? (Or do I just need to review containers?) | ||
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:17 | |
*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. | ||
raydiak | what other things are unexpected besides what we just discussed? | 04:20 | |
04:20
grep0r joined
|
|||
raydiak | not trolling, seriously interested | 04:20 | |
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 | |||
colomon | raydiak: a Complex works pretty much exactly like any other number or string value in p6 | 04:24 | |
they're immutable, so when it looks like you're modifying the Complex object, you're actually creating a new one. | |||
raydiak | ah, I see | ||
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)» | ||
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:28 | |
colomon | I'm not sure I buy that argument anymore. | 04:29 | |
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 :) | ||
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. | ||
afk # bed | 04:32 | ||
04:46
SamuraiJack joined
|
|||
diakopter | colomon: don't ask me about containers vs values, because I apparently have a mental block against comprehending those in this language | 04:48 | |
raydiak | me too...I almost kinda wonder if the boxing/unboxing is a little *too* transparent and dwimmy in some way | 04:52 | |
04:54
varna joined
|
|||
diakopter | but that's the thing | 04:55 | |
containerizing is on top of boxing | |||
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 | ||
I just want to know when there is an array or list with Scalars in each slot for each value | 04:58 | ||
and if so, how to make an array that doesn't have that baloney | |||
raydiak | if I read it right, that's part of the definition of an Array | ||
diakopter | if I want scalarrefs wrapping every lvalue, ... well that is just crazy | 04:59 | |
04:59
krunen joined
|
|||
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 | ||
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) | ||
diakopter | I missed that discussion [the whole thing] | ||
well there is CArray, I thought | |||
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
|
|||
diakopter | but I'm talking about just normal 10,000-item arrays of Doge or whatever | 05:02 | |
05:02
Tene left
|
|||
diakopter | do I really want 10,000 extra 96-byte Scalars allocated to wrap every slot | 05:03 | |
05:03
djanatyn left
|
|||
skids | Well, it depends on the size of the element. | 05:04 | |
05:04
flussence left
|
|||
diakopter | Doge | 05:04 | |
pointers | |||
05:04
flussence joined
|
|||
diakopter | P6Opaque repr | 05:04 | |
05:04
jeffreykegler left,
Tene joined,
Tene left,
Tene joined,
japhb_ is now known as japhb
05:05
djanatyn joined
|
|||
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. | ||
diakopter looks how big the p6scalar repr is in moar | 05:06 | ||
05:08
jeffreykegler joined
|
|||
japhb | colomon, raydiak: I thought of a couple more details in the Array v. attributes discussion: | 05:09 | |
1) rw attributes are containerized as well | 05:10 | ||
2) array subscript is a multi sub, so currently inlinable; attribute public access is a method call, so (IIUC) not currently inlineable | 05:11 | ||
diakopter | japhb: what is a container and why does rakudo use them | 05:12 | |
skids should see how many of the workarounds in gist.github.com/skids/2771728 are still needed. | |||
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 | |
Perhaps just getting .clone right is a better option there. | |||
diakopter: I think of a Perl 6 Scalar container as being a smarter version of a perl5 RV. | 05:14 | ||
but of course there are other types of container. :-) | |||
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:16 | |
japhb | diakopter: see github.com/samuraisam/p6-pb/blob/m...or.pm#L104 and following for a limited use case, but there's definitely more details in the BOOTSTRAP | 05:17 | |
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:18 | ||
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:19 | ||
diakopter | japhb: a rakudo scalar is 7 pointers, two uint16 and one uint32 | 05:20 | |
japhb | ouchie. | ||
diakopter | well, and a 32-bit pad on x64 | ||
er. | |||
on non-x64 | |||
japhb | Why the pad? | ||
diakopter | b/c p6opaque is mimicing how a c compiler is laying out objects | 05:21 | |
slots I mean | |||
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. | ||
If they're laid out in the wrong order, then ... why? | |||
skids | Alignment really does not matter anymore to modern CPUs FWIW. | 05:22 | |
diakopter | see MVMCollectable and MVMObject in 6model.h | ||
it's not about alignment for the cpu, it's about alignment for a struct inside a struct | |||
inside a struct | |||
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. | ||
skids: Alignment vis-a-vis cache lines does. | 05:23 | ||
skids | yeah, that does. | ||
japhb | See the ruby optimization to make the basic object type *larger*, but always on one cache line. | ||
diakopter | japhb: first it has a uint32 owner thread id | ||
then 16 flag bits | 05:24 | ||
then 16 bits indicating object size | |||
japhb | Well, that's fine then, that leaves everything on natural alignment. | ||
diakopter | then a pointer to the forwarder object during gc marking [jnthn mentioned the other day we possibly can get rid of that] | ||
then a pointer to the serialization context of the object | |||
then a pointer to the stable | |||
then the 32 bit pad on 32-bit | 05:25 | ||
then a replaced pointer for when a p6opaque gets swapped out | |||
for another type I think | |||
"If we get mixed into, we may change size." | 05:26 | ||
skids | runtime mixins? | ||
diakopter | then "of" - type of the rakudo scalar value | ||
japhb | I still don't see the point of the pad. Padding an entire pointer size makes no sense, unless I'm missing something. | ||
diakopter | (pointer) | ||
it might be so the MVMCollectable header is the same size everwhere? :S I dunno | 05:27 | ||
then an int64 "rw" - indicating whether it's writable | |||
er wait | |||
oops, was describing the container descriptor. | |||
back up before "of" | |||
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 | ||
then a pointer to the value, which is another p6 object | |||
then a pointer to its WHENCE | |||
property | |||
notably, these containers cannot hold native values | 05:29 | ||
so if it's to hold a int or num, it needs another boxed p6object | |||
I'm curious how many of these things are allocated when compiling the setting. | 05:31 | ||
well, i guess that's mostly nqp code | 05:32 | ||
so nm | |||
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:35 | |
diakopter | they're bump allocated on 32-bit alignment I think | 05:36 | |
in the nursery | |||
so it would save exactly that amount | |||
05:37
werebutt joined,
werebutt left
|
|||
diakopter | in moar, anyway | 05:37 | |
but anyway, I don't think it could be reduced | |||
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:38 | |
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 | |
:-) | |||
skids | Yeah, but there are plenty of higher levels to optimize at. | 05:41 | |
japhb | Optimize all the levels! | ||
05:41
kaleem left
|
|||
japhb | Still, I understand your point. | 05:42 | |
skids | Well, before even optimizing around any native types, actually getting their behavior functional and fully specced would seem more important. | 05:43 | |
Because nobody is going to write code using native types given their beta behavior. | |||
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 | |
I wasn't even talking about native types there. | |||
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:46 | |
diakopter is keenly aware that jnthn could be highly offended by the last 100 messages here | 05:47 | ||
"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:48 | ||
(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 | ||
) | |||
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 | ||
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. | ||
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 | ||
skids | The key question there is will ephemeral box/unbox/containerization become optimizable so that no actual structures are created. | ||
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 | ||
skids | fair enough :-) | ||
diakopter | raydiak: what do you mean by defining other operations | 05:57 | |
05:58
varna left,
Alina-malina left
|
|||
raydiak | diakopter: vector operations which make use of other vector operations | 05:59 | |
05:59
Alina-malina joined
|
|||
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:00 | |
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. | ||
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
|
|||
diakopter | skids: jnthn doesn't do breakfast ;) | 06:04 | |
raydiak: okay, hm | |||
skids up too late | |||
diakopter | japhb: raydiak: but one would think that compositions of optimally-optimizable things are also optimally optimizable | ||
06:09
Woodi left,
jeffreykegler left
06:17
araujo left
|
|||
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:19 | |
06:20
zacts joined
|
|||
zacts | does perl6 allow for one-liners? | 06:20 | |
06:20
darutoko joined
|
|||
diakopter | zacts: yeah, some | 06:20 | |
06:21
REPLeffect joined
|
|||
diakopter | zacts: what kinds of one-liners do you have in mind | 06:22 | |
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:33 | |
06:47
kaleem joined
|
|||
moritz | good morning | 06:47 | |
raydiak | morning | 06:48 | |
06:52
FROGGS left
06:55
krunen left
06:57
krunen joined
07:05
FROGGS[mobile] left
|
|||
japhb | morning, moritz | 07:12 | |
07:35
FROGGS joined
|
|||
moritz | \*/ | 07:54 | |
07:56
rrrrr left
|
|||
FROGGS | morning | 07:56 | |
08:10
zakharyas joined
08:16
dmol left
08:23
btyler left
08:29
dayangkun left
08:36
pecastro_ left
08:37
pdcawley joined
08:42
labster left,
labster joined,
mavcunha joined,
SHODAN left,
SHODAN joined
08:43
perigrin left,
perigrin joined,
timotimo left,
arnsholt_ joined,
timotimo joined,
arnsholt left
08:51
mavcunha left
08:55
mavcunha joined,
sqirrel joined
08:59
mavcunha left
|
|||
dalek | ast: 01da548 | (Tobias Leich)++ | S03-operators/assign.t: bump plan |
09:09 | |
timotimo | o/ | 09:12 | |
dalek | kudo/nom: cb25619 | (Tobias Leich)++ | src/core/Parameter.pm: show "Any" in Parameter.gist This seems to be wanted. |
||
masak | antenoon', #perl6 | 09:13 | |
FROGGS | o/ | ||
diakopter | / o | ||
FROGGS | o _ | 09:14 | |
^--- greeting in #vb | |||
diakopter | heh | ||
dalek | kudo/nom: 6aa1949 | (Tobias Leich)++ | src/Perl6/Grammar.nqp: allow definition of custom postcircumfixes |
09:21 | |
09:24
[Sno] left
09:26
dakkar joined
09:31
salv0 left
09:32
salv0 joined,
djanatyn left
09:33
djanatyn joined
09:34
djanatyn left,
prammer left,
djanatyn joined,
prammer joined
09:36
denis_boyun joined
09:37
tipdbmp left
09:38
tipdbmp joined
09:45
krunen left
09:47
krunen joined
09:48
pecastro joined
09:58
crab2313 joined
10:01
varna joined
|
|||
moritz | FROGGS++ | 10:09 | |
10:11
telex left
10:21
[Sno] joined,
sqirrel left
|
|||
FROGGS | moritz: it is not perfect though about handling terminators and whitespace | 10:25 | |
moritz | FROGGS: "not perfect" is much better than "not" :-) | 10:26 | |
FROGGS | true | ||
though I think I need help to fix the remaining issues, but this needs to wait to after $work | 10:27 | ||
10:33
telex joined
10:34
telex left
10:41
crab2313 left
10:45
bonsaikitten left
10:46
bonsaikitten joined
10:55
dmol joined
11:02
telex joined
11:06
darutoko left
11:07
darutoko joined
11:21
colomon left
11:23
colomon joined
11:27
daniel-s_ joined
11:32
daniel-s_ left
11:33
daniel-s_ joined
|
|||
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:39 | |
11:42
djanatyn left,
djanatyn joined
11:43
djanatyn left
|
|||
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 | |
11:43
djanatyn joined
|
|||
hoelzro | it knows MoarVM is the hot new thing | 11:43 | |
and it's stalling for time! | |||
11:44
tipdbmp left
11:50
djanatyn left,
djanatyn joined
11:56
daniel-s_ left,
daniel-s_ joined
|
|||
dalek | kudo/nom: acf7bd2 | (Tobias Leich)++ | src/Perl6/Actions.nqp: strip "return" if the thing to return is the last |
12:02 | |
FROGGS | colomon: I'd be eager to know if this makes a visible change --^ | ||
12:05
rindolf joined
|
|||
colomon | FROGGS: smoking... | 12:07 | |
12:09
atroxaper joined
|
|||
FROGGS | colomon++ | 12:09 | |
12:09
kaleem left
|
|||
tadzik | FROGGS++ | 12:10 | |
12:15
dayangkun joined
|
|||
colomon | 85.9 | 12:16 | |
FROGGS | hmmm | 12:17 | |
I will strip more later, maybe it helps a bit | 12:18 | ||
12:21
bjz left,
bjz joined
|
|||
moritz | do those variants actually produce different ASTs? | 12:25 | |
I somehow thought that NQP optimized out th emost common case | |||
12:26
kaleem joined
12:27
prevost joined
|
|||
FROGGS | r: my $time = nqp::time_n(); for ^100000 { sub { return 42 }() }; say nqp::time_n() - $time | 12:33 | |
camelia | rakudo-parrot acf7bd: OUTPUT«2.99864196777344» | 12:34 | |
..rakudo-moar acf7bd: OUTPUT«1.78675055503845» | |||
..rakudo-jvm acf7bd: OUTPUT«1.5709998607635498» | |||
FROGGS | r: my $time = nqp::time_n(); for ^100000 { sub { 42 }() }; say nqp::time_n() - $time | ||
camelia | rakudo-parrot acf7bd: OUTPUT«1.36541604995728» | ||
..rakudo-moar acf7bd: OUTPUT«1.24346971511841» | |||
..rakudo-jvm acf7bd: OUTPUT«1.9659998416900635» | |||
12:34
kaleem left
|
|||
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» | ||
..rakudo-moar acf7bd: OUTPUT«1.86698055267334» | |||
..rakudo-jvm acf7bd: OUTPUT«1.553999900817871» | |||
12:34
kaleem joined
|
|||
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» | ||
..rakudo-jvm acf7bd: OUTPUT«0.2350001335144043» | |||
..rakudo-parrot acf7bd: OUTPUT«1.3962881565094» | |||
colomon | ??? | 12:35 | |
12:35
krunen left
|
|||
colomon does not understand JVM's times in there. | 12:35 | ||
FROGGS | except the jvm weirdness one can see what happens :o) | ||
tadzik | I think what moritz meant is that in nqp it doesn't make a difference, while in perl6 it does | ||
jlaire | one does not simply understand JVM | ||
FROGGS | tadzik: point taken | ||
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)» | ||
..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.…» | |||
..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 …» | |||
tadzik | uhh | ||
no ranges in nqp, prolly | |||
moritz | aye | 12:37 | |
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» | ||
..nqp-moarvm: OUTPUT«0.102521419525146» | |||
..nqp-parrot: OUTPUT«0.237454891204834» | |||
tadzik | nqp: my $time := nqp::time_n(); my $i := 0; while $i < 100000 { sub () { return 42 }(); $i++ }; say(nqp::time_n() - $time) | ||
camelia | nqp-jvm: OUTPUT«0.15599989891052246» | ||
..nqp-moarvm: OUTPUT«0.153414964675903» | |||
..nqp-parrot: OUTPUT«0.361402034759521» | |||
tadzik | there's a difference alright | ||
moritz | ok | ||
I was wrong | |||
tadzik | nqp: my $time := nqp::time_n(); my $i := 0; while $i < 5000000 { sub () { return 42 }(); $i++ }; say(nqp::time_n() - $time) | ||
camelia | nqp-parrot: OUTPUT«(timeout)» | ||
12:38
dayangkun left
|
|||
camelia | ..nqp-moarvm: OUTPUT«6.62866878509521» | 12:38 | |
..nqp-jvm: OUTPUT«1.0499999523162842» | |||
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 | ||
on my box | |||
on parrot | |||
camelia | nqp-parrot: OUTPUT«7.51664805412292» | ||
..nqp-jvm: OUTPUT«0.7329998016357422» | |||
..nqp-moarvm: OUTPUT«3.79196381568909» | |||
tadzik | yeah, a win nonetheless | ||
FROGGS | when all meaningless returns are stripped, I guess we win one or two seconds | 12:40 | |
tadzik | [Like] | ||
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
arnsholt_ is now known as arnsholt
|
|||
tadzik | arnsholt: unsure. timotimo's benchmarks showed, that it doesn't make that much of a difference in itself | 12:41 | |
arnsholt | Ah, right | ||
tadzik | in practice, it seemed to :) | ||
but I still left the caching in there | 12:42 | ||
arnsholt | I just remember that it was slow and now it's faster =D | ||
tadzik | it seems like a fair thing to do :P | ||
did you see the fluently running asteroids? | |||
well "fluently" | |||
moritz | so, who's going to write an optimizer pass that optimizes out returns | ||
tadzik | and buggy :P | ||
arnsholt | No, I didn't. Linky? | ||
12:43
dmol left,
dmol joined
|
|||
tadzik | github.com/tadzik/p6steroids | 12:44 | |
there's something that prevents you from losing the game | |||
except when it makes you lose for no reason | |||
I've no idea why this happens | |||
arnsholt | *giggle* | 12:47 | |
That's a funny failure mode =D | |||
I'll give it a spin tonight | 12:48 | ||
Don't think I have SDL headers on my work machine =) | |||
tadzik | ok, fixed it :) | ||
12:52
tipdbmp joined
|
|||
moritz | 397 iterations in 10.3544800281525 seconds, giving 38.340891954073 fps, sort of | 12:52 | |
12:58
tipdbmp left
|
|||
tadzik | it's rigged to not go over ~50 fps | 12:58 | |
you can try to force it to run faster changing github.com/tadzik/p6steroids/blob/...pper.c#L33 | |||
once every 16ms means sort-of-60fps | 12:59 | ||
but I should roll out some frame dropping mechanism | |||
13:01
tipdbmp joined
13:03
dmol left,
SamuraiJack left
13:06
darutoko left
13:07
smls joined
13:08
skids left
13:11
djanatyn left
13:12
djanatyn joined
|
|||
hoelzro | github.com/github/linguist/pull/90...t-33302017 | 13:12 | |
what does that mean? | |||
13:14
djanatyn left
13:15
djanatyn joined
|
|||
timotimo | i haven't a clue | 13:15 | |
13:18
sqirrel joined
13:27
rindolf left
|
|||
smls | perl6: say "aaa \n bbb \x2028 ccc".perl; | 13:32 | |
camelia | niecza v24-109-g48a8de3: OUTPUT«"aaa \n bbb \x[2028] ccc"» | ||
..rakudo-parrot acf7bd, rakudo-jvm acf7bd, rakudo-moar acf7bd: OUTPUT«"aaa \n bbb ccc"» | |||
smls | in my terminal, I the only output I see is "aa \n bb | 13:33 | |
(without closing quote) | |||
Shouldn't rakudo's .perl deparse the \x2028 like niecza does? | 13:34 | ||
moritz | the basically only spec for .perl is that it and eval reound-trips | 13:35 | |
smls | PS: this is used at rosettacode.org/wiki/Strip_whitespa...ail#Perl_6 | ||
wanted to add an "output" listing to that page, so people understand what .perl does in that example | 13:36 | ||
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» | ||
smls | but if the output looks broken in the terminal, I better don't showcase it... ;) | ||
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» | ||
moritz | p6: say "aaa \n bbb \x2028 ccc".encode | ||
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…» | ||
..rakudo-moar acf7bd: OUTPUT«Buf:0x<61 61 61 20 0a 20 62 62 62 20 -1e -80 -58 20 63 63 63>» | |||
..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>» | |||
moritz | rakudo-moar produces negative numbers | 13:40 | |
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? | ||
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:51 | |
moritz | smls: yes | 13:52 | |
though that's non-trivial | 13:53 | ||
13:57
FOAD left
14:00
dmol joined
14:03
rindolf joined
14:25
jnap joined
14:28
cognominal left,
cognominal joined
14:34
kbaker joined
14:37
varna left
14:38
kaare__ left
14:40
skids joined
14:43
cognominal left,
bluescreen10 joined,
cognominal joined
14:44
ajr joined
14:45
ajr is now known as Guest93182
|
|||
diakopter | jlaire: lol | 14:46 | |
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«28 9» | ||
lizmat | seems wrong to me: would have expected 8 9 8 9 | ||
am I wrong? | |||
moritz | that's the tricky "should the $ force it to be an item?" question on which we've been back and forth | 14:48 | |
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 98 9» | ||
14:49
Guest93182 is now known as ajr_
|
|||
dalek | kudo-star-daily: ac708a3 | coke++ | log/ (5 files): today (automated commit) |
14:50 | |
moritz | wait, whey 2 in lizmat's first example? | ||
lizmat | number of elements in parcel | 14:51 | |
moritz | ah, I thought there was an offby1 error, but there isn't | ||
IMHO it would be more consistent to say 2 both times | |||
14:51
FOAD joined
|
|||
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" ? | ||
lizmat | r: my @a=^10; sub a ($x) { @a[$x] }; my $p = (8,9); say a($p); say @a[$p] # not bound | ||
camelia | rakudo-parrot acf7bd, rakudo-jvm acf7bd, rakudo-moar acf7bd: OUTPUT«22» | ||
moritz | there could be another solution | 14:53 | |
lizmat | [Coke]: how about real and user+sys ? | ||
moritz | forbid binding of non-item values to $ variables | ||
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«===SORRY!=== Error while compiling /tmp/tmpfileCannot use bind operator with this left-hand sideat /tmp/tmpfile:1------> my (\x); x := 4⏏; # wonders if asking "why" would …» | ||
[Coke] | at that point, probably easier to track them all independantly and shove them in the CSV. | ||
lizmat | [Coke]: fair enough :-) | ||
[Coke] will do that, then; have a R, U, S for each of the two major steps. | |||
moritz | ++[Coke] | 14:55 | |
[Coke] will get that working this week. | |||
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 | ||
thus my innovative suggestion of forbidding it :-) | 14:56 | ||
lizmat | I wonder how much this would break core settings | ||
from a language point of view, we need simple rules | |||
skids | moritz++ it does sort of violate the sigil contract | 14:57 | |
moritz | it would break quite a bit | ||
lizmat | the current rules about slicing are a bit vague :-( | ||
moritz | mlenz@mlenz-workstation:~/p6/rakudo$ git grep '\$.*:=' src/core/|wc -l | ||
670 | |||
lizmat | :-( | 14:58 | |
moritz | many of those could be switched to sigilless form | ||
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 | ||
lizmat | I mean, the $ forms could be old code | ||
or at least, old thinking :-) | |||
moritz | well, it used to be that foreign (non-p6) values couldn't be assigned to variables, just bound | 15:00 | |
15:00
rindolf left
15:01
btyler joined,
skids left
|
|||
[Coke] | btw, thanks to everyone for making #perl6 a nice project to work on. | 15:11 | |
15:12
kaleem left
|
|||
lizmat | I totally agree with that :-) | 15:14 | |
15:21
grondilu joined
|
|||
jnthn | evening, #perl6 | 15:28 | |
Oslo...it has some snow :) | |||
15:30
daniel-s_ left
|
|||
FROGGS | hi jnthn | 15:33 | |
jnthn | o/ | 15:34 | |
lizmat | jnthn o/ | 15:36 | |
jnthn | Whoa, lot of backlog... | ||
15:36
spider-mario joined
|
|||
jnthn has been busy with teaching git all day... | 15:36 | ||
diakopter | but what were you teaching the git | 15:37 | |
jnthn | :P | 15:38 | |
I had a very lovely group to teach today...not gits at all :P | |||
arnsholt | So you taught them how to git. Very good! =D | 15:40 | |
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:42 | |
15:44
treehug88 joined
15:45
sqirrel left
|
|||
arnsholt | Simple is a very qualitative metric though, and there's simplicity on several axes | 15:47 | |
15:47
dayangkun joined
|
|||
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. | ||
who/whom didn't, so it's dead. less/fewer doesn't really, so it's probably also dying. :) | 15:48 | ||
15:49
mavcunha joined
15:59
tipdbmp left,
tipdbmp joined
16:02
thou joined
|
|||
tadzik | heh. "Dear Jonathan Test" | 16:16 | |
thank you, Red Hat Training, that's very kind :) | |||
timotimo | :3 | 16:17 | |
16:17
dmol left,
zakharyas left
16:20
[Sno] left
16:25
kaleem joined,
kaleem left
16:29
stevan__ joined
16:31
atroxaper left
16:32
stevan_ left
|
|||
masak | eveninä, #perl6 | 16:35 | |
evenin'* | |||
jnthn | o/ | ||
16:37
treehug88 left
16:38
treehug88 joined
16:42
pdurbin left,
ajr_ left
16:43
ajr joined,
ajr is now known as Guest52982,
Guest52982 is now known as ajr_
16:51
sqirrel joined
16:57
krunen joined
17:03
denis_boyun left
17:06
dmol joined
|
|||
tadzik | funny thing: | 17:14 | |
r-m: my $t = nqp::time_n; for ^10000 { so any(False, True, False) }; say nqp::time_n() - $t | |||
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 | ||
camelia | rakudo-moar acf7bd: OUTPUT«0.110731601715088» | ||
tadzik | am I missing something (constant folding?), or is so-any very slow? | ||
17:15
FROGGS left
|
|||
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 | |
well, the or and so operators should be pure, no? | |||
17:19
[Sno] joined
|
|||
tadzik | should | 17:19 | |
17:19
jnap left
|
|||
tadzik | I'm curious, cos when I changed so-any to or-or, it yielded a _big_ speedup in asteroids | 17:20 | |
it was a hotpath, but still | |||
17:20
BenGoldberg joined,
jnap joined
|
|||
tadzik | from --target=ast it doesn't seem like it's getting constant-folded | 17:21 | |
it is calling infix-or twice | |||
timotimo | yeah, that's the wrong target :) | 17:24 | |
you need to pass --target=optimize | |||
tadzik | oh! | ||
still no folding | 17:25 | ||
timotimo | ah well. | ||
junctions are hella slow | |||
17:27
locsmif joined
17:29
pecastro left
|
|||
moritz | 'or' isn't pure | 17:29 | |
it's thunky | |||
so evaluating it can call the thunks, which are impure (potentially) | 17:30 | ||
17:30
pdcawley left,
treehug88 left
|
|||
arnsholt | tadzik: I heart you just a bit for doing this SDL stuff, BTW | 17:31 | |
tadzik | :) | ||
moritz: what about or on things that are values, like Bools? | 17:32 | ||
so: things that are not callable, or something | |||
arnsholt: btw, do callbacks work on jvm at this point? | 17:33 | ||
17:33
SamuraiJack joined
|
|||
arnsholt | Nope, NYI | 17:34 | |
tadzik | I wonder how faster will asteroids get | ||
timotimo | r-m: my $t = nqp::time_n; for ^10000 { so (False | True | False) }; say nqp::time_n() - $t | ||
camelia | rakudo-moar acf7bd: OUTPUT«10.1571633815765» | ||
timotimo | wha .... what? | ||
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... | ||
timotimo | oh, of course not, there's no operation in there %) | ||
r-m: my $t = nqp::time_n; for ^10000 { so (False | True | False) == True }; say nqp::time_n() - $t | |||
moritz | tadzik: I don't know if we have the infrastructure to un-thunk things that don't need to be thunk | ||
camelia | rakudo-moar acf7bd: OUTPUT«(timeout)» | ||
timotimo | r-m: my $t = nqp::time_n; for ^10000 { so ((False | True | False) == True) }; say nqp::time_n() - $t | ||
camelia | rakudo-moar acf7bd: OUTPUT«(timeout)» | ||
timotimo | ... huh. | 17:36 | |
tadzik | timotimo: are you sure evalbot is running on sufficiently high --optimize? | ||
moritz | tadzik: I know we have some (primitive) logic for default values for parameters/attributes and such, but no idea how well it generalizes | ||
timotimo | r-m: my $t = nqp::time_n; for ^10000 { if ((False | True | False) == True) { True } else { False }; say nqp::time_n() - $t | ||
camelia | rakudo-moar acf7bd: OUTPUT«===SORRY!=== Error while compiling /tmp/IWEYqcS0AJUnable to parse expression in block; couldn't find final '}' at /tmp/IWEYqcS0AJ:1------> else { False }; say nqp::time_n() - $t⏏<EOL> expecting any of…» | ||
tadzik | moritz: hm | ||
timotimo | r-m: my $t = nqp::time_n; for ^10000 { if ((False | True | False) == True) { True } else { False } }; say nqp::time_n() - $t | ||
camelia | rakudo-moar acf7bd: OUTPUT«(timeout)» | ||
timotimo | :( | ||
moritz | evalbot runs on the default optimization level, whatever that is | 17:37 | |
17:37
pdcawley joined
|
|||
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 | |
219 ms for an animation frame is unsatisfactory whatever magic I come up with | |||
I guess I'll have to make that lower then :) | |||
timotimo | garbage collector? | ||
tadzik | oh! | 17:39 | |
of course | |||
it explains why it happens even though no crazy thing is happening | |||
jdv79 | how do you guys keep up this pace of late? its cool. | ||
timotimo | i'd very much like it if we could get an iterative garbage collector or what they are called | ||
jdv79 | jnthn: thanks for the blog post | 17:40 | |
tadzik | maybe if I predeclared all variables.... ;P | ||
timotimo | jdv79: it's mostly jnthn motivating us with his progress :) | ||
at least that's what it is for me | 17:41 | ||
tadzik | so, jvm has concurrent gc, maybe that'd help at some point | ||
jnthn | timotimo: You probably mean incremental :) | 17:42 | |
timotimo | exactly | ||
(well, our GC is exact already) | |||
(no, wait! that's precise!) | |||
grondilu | tadzik: would you consider adding some screenshots? | 17:43 | |
tadzik | grondilu: I took some, but it's really nothing too look at :) | 17:44 | |
17:44
dakkar left
|
|||
tadzik | grondilu: but sure, this imgur.com/F2eWaWT runs at mostly 60 fps on my machine | 17:44 | |
17:47
denis_boyun joined
|
|||
arnsholt | tadzik: Is there anything other than callbacks you need to try your Asteroids game on JVM, BTW? | 17:48 | |
tadzik | arnsholt: I don't think so. It's not even using C structs | 17:49 | |
arnsholt | Cool | ||
In that case I might try to add callbacks to the JVM version first | |||
tadzik | \o/ | ||
that'd be awesome | |||
17:50
rurban1 joined
|
|||
tadzik | if making them argument-free at first will make it easier, I can workaround that | 17:50 | |
arnsholt | Don't think it'll matter much | 17:52 | |
17:52
SamuraiJack left
|
|||
arnsholt | That's useful to know though. I'll keep you posted | 17:52 | |
timotimo | i like the sound of that :) | 17:54 | |
17:55
rindolf joined
17:57
FROGGS joined
|
|||
FROGGS | jdv79: it is easy, ten people share a single nick :o) | 18:00 | |
tadzik | . o O ( it's my turn to be jnthn! ) | 18:01 | |
timotimo | :D | ||
FROGGS | but seriously, progress motivates, which gives progress and so on | ||
18:01
pdcawley left
|
|||
FROGGS | and it is awesome to work for a project that has awesome designers (and hackers) | 18:01 | |
18:03
alexghacker joined
|
|||
timotimo | especially motivating is suddenly having a more performance VM to toy with | 18:05 | |
performant* | |||
jnthn | arnsholt: I know I've said it before, but my word is hellfire lacking in eating places... :) | 18:07 | |
18:07
tgt joined
|
|||
jnthn thinks he'll head downtown to find something more interesting than the hotel restaurant... | 18:07 | ||
timotimo | oh wow | 18:08 | |
hellfire refers to a place? | |||
jnthn | timotimo: Helsfyr :P | ||
timotimo | i was very confused to find your word lacking in eating places | ||
gotta prepare some food now | |||
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 | ||
It's only benefit is close to teaching | |||
TimToady: Yeah, that's where I'm gonna head. | |||
Was kinda hoping to do a small stroll instead of metro...but there's mostly sushi and a badly rated pub... | |||
jnthn goes nom hunting... | 18:10 | ||
& | |||
18:15
ajr_ left
18:17
SamuraiJack joined
18:18
telex left
18:20
telex joined
18:21
beastd joined
18:31
SamuraiJack left,
treehug88 joined
18:36
sqirrel left
18:37
telex left
18:40
krunen left,
telex joined
|
|||
arnsholt | jnthn: Yeah, it's a bit out of the way | 18:41 | |
Gimme a prod next time you're in town and I can give you some pointers to food | |||
18:41
krunen joined
|
|||
tadzik | can confirm | 18:44 | |
18:47
pecastro joined
18:48
tgt left,
tgt joined
18:51
araujo joined,
araujo left
|
|||
nwc10 | is there an easy way to run the spectest in parallel? | 18:56 | |
I can't spot it in the docs | |||
aha, something like this? | 18:58 | ||
perl t/harness --fudge --moar --keep-exit-code --jobs=24 --tests-from-file=t/spectest.data | |||
mmm, things fail. | |||
arnsholt | TEST_JOBS=n works if you have a reasonably recent version too, IIRC | 18:59 | |
18:59
ajr joined,
ajr is now known as ajr_
|
|||
nwc10 | aha yes, in the environment | 19:00 | |
19:03
FROGGS[mobile] joined
19:04
tgt left
19:13
Rotwang joined
19:17
sqirrel joined
19:19
tgt joined
19:35
sqirrel left,
V_S_C joined
|
|||
V_S_C | In the PERL6/nqp repository | 19:35 | |
in the src\vm\parrot\ops folder | 19:36 | ||
19:36
tgt left
|
|||
V_S_C | in the nqp.ops file | 19:37 | |
19:37
tgt joined
|
|||
V_S_C | the gethostname function is used | 19:37 | |
FROGGS | V_S_C: is that a new song? | ||
V_S_C | thats available from unistd | 19:38 | |
but on windows MSVC the file needs winsock2.h | |||
19:38
[Sno] left,
djanatyn left
19:39
[Sno] joined
|
|||
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
|
|||
V_S_C | but it kept breaking on x86 | 19:40 | |
FROGGS | ahh, yeah, that might be it | ||
V_S_C | As I wanted ICU, its how I happened to start trying to build Rakudo for myself | ||
19:41
djanatyn left
19:42
djanatyn joined
|
|||
V_S_C | nmake just completed on my system, so I immediately reported | 19:43 | |
19:43
djanatyn left
|
|||
V_S_C | I'll continue with the x86 build & hopefully have +ve news soon | 19:44 | |
19:44
V_S_C left
19:45
djanatyn joined
|
|||
FROGGS | cool | 19:45 | |
19:50
Tene left
19:51
djanatyn left
19:53
djanatyn joined
19:56
Tene joined,
Tene left,
Tene joined
19:57
jeffreykegler joined
20:02
jeffreykegler left
|
|||
jnthn back | 20:11 | ||
arnsholt: I went to Greenland, and found some Indian place by there. :) | 20:12 | ||
arnsholt | Just by the exit to the subway station? | 20:13 | |
jnthn | No, a 5ish minute walk | 20:16 | |
moritz | the Oslo metro goes to Greenland? | ||
arnsholt | Not the one I might have suggested, then | ||
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... | ||
arnsholt | There are two just by the metro, actually | 20:17 | |
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 | ||
I was going for easy :) | |||
nwc10 | good Indian? Anything curious on the menu? | 20:19 | |
arnsholt | I assumed =) | ||
Oh, actually there's a bus that goes directly from Helsfyr there | 20:20 | ||
Stops just across the street from the restaurant, even | |||
jnthn | oh... | ||
nwc10: Nothing special on the menu. Food was fine...nothing crazy good, but certainly not bad either. | |||
nwc10: I said "madras" and it was reasonably hot. :) | 20:21 | ||
masak | TIL Alexander Kielland is one of the "four greats" in Norwegian literature. | 20:22 | |
arnsholt | Yep | ||
masak | I'm not sure we have "greats" in Swedish literature :> | 20:23 | |
only "kinda good, I guess" ones | |||
arnsholt | IIRC the term was invented to sell a collection of those four authors' books | ||
masak | ah. | ||
jnthn | masak: Surely Sweden has "lagoms"? :P | 20:24 | |
masak | that's it, of course. | ||
arnsholt | You have Strindberg, he's pretty great | 20:25 | |
sjn remembers the "Strindberg and Helium" cartoon | 20:26 | ||
classic | |||
masak ddg-s, and lols | 20:28 | ||
"miseryyyy-y-y-y" | 20:31 | ||
sjn cracks up every time he sees those cartoons :) | |||
20:32
tgt left
20:39
kurahaupo joined
20:49
grondilu left
21:00
havenwood joined
21:02
dayangkun left
21:07
jnap left
21:17
dayangkun joined
21:22
V_S_C joined
21:27
rylinaux left,
bluescreen10 left
21:29
bluescreen10 joined
|
|||
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! | ||
V_S_C: can you prrovide pull requests for the affected repositories? | |||
dalek | kudo/nom: cb1c86f | jonathan++ | tools/build/ (2 files): Generalize create-moar-runner. Means we'll be able to use it to create a perl6-debug one also. |
21:31 | |
kudo/nom: c884dc1 | jonathan++ | / (3 files): Add perl6-debug into MoarVM build. |
|||
colomon | jnthn=+ | 21:32 | |
jnthn++ | |||
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 | ||
its 3am | |||
jnthn | It almost looks like it's about to work on Moar, then explodes when trying to sync a file handle... | 21:35 | |
Will do it for JVM also | 21:36 | ||
And Parrot | |||
Though maybe not tonight :) | |||
21:36
rylinaux joined,
jnap joined
21:37
V_S_C left
|
|||
FROGGS | V_S_C: sure :o) | 21:37 | |
jnthn++ | 21:38 | ||
21:41
djanatyn left
21:42
djanatyn joined
21:45
smls left
|
|||
jnthn | yay, fixed the sync thing and have a working perl6-debug on Moar. | 21:45 | |
That's kinda cool | 21:46 | ||
nwc10 | yay! | ||
colomon | \o/ | 21:48 | |
dalek | rl6-roast-data: 07099d7 | coke++ | / (6 files): today (automated commit) |
21:51 | |
masak | jnthn++ | 21:52 | |
jnthn | Guess I'll use that in my thingy talk :) | ||
[Coke]: Any diagnostics on the build failure? | 21:53 | ||
FROGGS | gnight #perl6 | ||
timotimo | gnite FROGGS :) | ||
corecatcher | nn FROGGS | ||
21:53
FROGGS left
|
|||
jnthn | 'night FROGGS[mobile] | 21:54 | |
21:54
FROGGS[mobile] left
|
|||
[Coke] | feather.perl6.nl/~coke/LAST_OUTPUT , search for moar - looks like a pull on a github repo failed. | 22:01 | |
I do not yet have the 3rd party moar repos setup with a local caching git repo copy. | 22:02 | ||
I can try to re-work today's commit. let me start moar's build again. | |||
this run seems to have no issue with github. re-running. | 22:03 | ||
I'll just force push the fix later. | |||
(eh. or regular push.) | |||
jnthn | [Coke]: ah, ok | ||
[Coke]: Then not too worrying :) | 22:04 | ||
[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:06
rindolf left
|
|||
[Coke] | ~~ | 22:07 | |
22:07
virtualsue joined,
LordVorp left
|
|||
raydiak | good afternoon #perl6 | 22:16 | |
22:17
daniel-s_ joined,
rindolf joined
22:19
locsmif left
22:27
kbaker left
22:29
kaare__ joined
22:30
daniel-s_ left
|
|||
colomon | \o | 22:34 | |
22:36
eternaleye left
|
|||
dalek | rl6-roast-data: 5b95fa6 | coke++ | / (2 files): Re-run moar. (previous run hit a temporary snag talking to github) |
22:36 | |
22:37
eternaleye joined
|
|||
[Coke] | jnthn: ^^ | 22:38 | |
passes 2 more tests than yesterday. | |||
jnthn | [Coke]++ # thanks! | ||
"every little helps" :) | |||
22:41
bluescreen10 left
|
|||
colomon | seems panda doesn't run on moar yet? :) | 22:42 | |
jnthn | colomon: No, though I did remove the JSON::Tiny not working blocker, so I guess we're onto the next one now... :) | 22:46 | |
22:49
spider-mario left
22:50
kurahaupo left
22:51
Rotwang left
23:05
geekosaur left
|
|||
jnthn | 'night, #perl6 | 23:22 | |
23:23
baest_ left,
baest joined,
dalek left
23:24
dalek joined,
ChanServ sets mode: +v dalek
23:26
rindolf left,
treehug88 left
23:27
berekuk joined
23:30
frankbutt joined,
frankbutt left
23:33
rylinaux left
23:35
ajr_ left
23:40
xinming_ joined,
rylinaux joined
23:41
treehug88 joined
23:43
xinming left
23:44
krunen left
23:45
FOAD_ joined,
obra_ joined
23:47
colomon_ joined
23:48
rylinaux left,
FOAD left,
obra left,
rylinaux_ joined,
FOAD_ is now known as FOAD,
colomon left
23:49
colomon_ is now known as colomon
23:51
rylinaux_ is now known as rylinaux
23:52
obra_ is now known as obra
23:53
FOAD left,
FOAD joined
|
|||
raydiak | what's the difference between returning with an explicit return vs just implying return of the last value in the block? | 23:53 | |
23:54
mavcunha left
23:55
krunen joined
23:56
berekuk left
23:58
beastd left
|