»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg camelia perl6: ... | irclog: irc.perl6.org | UTF-8 is our friend! Set by sorear on 25 June 2013. |
|||
00:03
Hor|zon left
00:08
xenoterracide left
|
|||
timotimo | gtodd: it's not terribly much content, so you will likely not feel so bad after an archive binge :) | 00:16 | |
00:16
_slade_ joined
|
|||
gtodd | timotimo: I felt a bit peckish so a read S99 :-) | 00:17 | |
a read of S99 was my dessert | 00:18 | ||
00:24
nbrown_ joined
00:29
nbrown_ left
|
|||
timotimo | :) | 00:29 | |
dalek | osystem: bbf2d36 | tony-o++ | META.list: DB::ORM::Quicky Quick prototyping ORM, nothing cool or special to see here. (Def not for production or to replace DBIx) |
00:32 | |
00:32
xenoterracide joined
00:45
xenoterracide left
00:50
slavik left
00:52
xenoterracide joined
01:02
slavik joined
01:03
xenoterracide left,
xenoterracide joined
01:06
cosimo left
01:07
cosimo joined
01:09
kurahaupo joined,
kbaker joined
01:10
kurahaupo is now known as kurahaupp,
kurahaupp is now known as kurahaupo
01:11
xenoterracide left
01:12
fhelmberger joined
01:13
Mso150 joined
|
|||
dalek | rl6-roast-data: a81ba73 | coke++ | bin/rakudo.moar (2 files): Track today's change that made JIT the default |
01:14 | |
01:14
kurahaupo left,
kurahaupo joined,
kurahaupo left
01:16
kurahaupo joined,
fhelmberger left
01:18
bjz_ left
01:23
xenoterracide joined
01:24
skarn joined
01:25
nbrown_ joined
01:28
kbaker left,
avuserow joined
01:29
kbaker joined,
xenoterracide left,
nbrown_ left
01:32
kurahaupo left
|
|||
BenGoldberg | tony-o, I initially read DB::ORM::Quicky as DB::ORM::Quircky :) | 01:32 | |
01:33
kurahaupo joined
|
|||
tony-o | :-) | 01:33 | |
I'm not real inventive with names | |||
01:35
nbrown_ joined
01:36
Mso150 left
01:37
Mso150 joined
01:44
Mso150_a joined,
Mso150 left
01:49
Mso150_a left
01:54
FROGGS_ joined
01:56
Sqirrel left
01:58
FROGGS left,
nbrown_ left
01:59
Hor|zon joined
02:04
Hor|zon left
02:05
noganex joined
02:08
noganex_ left
02:10
Sqirrel joined
02:36
kurahaupo left
02:57
kurahaupo joined
03:03
kurahaupo left
03:11
kbaker left
03:19
robins left
03:21
kurahaupo joined,
robinsmidsrod joined
03:38
robinsmidsrod left,
robinsmidsrod joined
03:44
BenGoldberg left
|
|||
masak | morning, #perl6! | 03:48 | |
m: say (<jet plane> (^) <network lag>) (^) <plane network> | 03:55 | ||
tony-o | sup masak | ||
camelia | rakudo-moar d60a8f: OUTPUT«set(jet, lag)» | ||
masak | m: say <jet plane> (^) <network lag> (^) <plane network> | ||
camelia | rakudo-moar d60a8f: OUTPUT«Too many positionals passed; expected 2 arguments but got 3 in sub infix:<(^)> at src/gen/m-CORE.setting:17981 in block <unit> at /tmp/Dmz0L7vPBz:1» | ||
masak | surely I should be able to do the latter too? | 03:56 | |
(a) because if nothing else, infix:<(^)> should left-associate | |||
(b) because maybe it even chains? I dunno. | |||
masak submits rakudobug | |||
tony-o | what is that even doing | 03:58 | |
m: <jet plane> (^) <network lag> | |||
camelia | ( no output ) | ||
tony-o | m: say <jet plane> (^) <network lag> | ||
camelia | rakudo-moar d60a8f: OUTPUT«set(jet, plane, network, lag)» | ||
tony-o | is that a union? | 03:59 | |
masak | tony-o: symmetric difference. | 04:00 | |
tony-o: "in one set or the other, but not in both" | |||
tony-o: think XOR for sets. | |||
04:00
Hor|zon joined
|
|||
tony-o | interesting | 04:04 | |
04:05
Hor|zon left
|
|||
masak | tony-o: commons.wikimedia.org/wiki/File:Venn0110.svg | 04:14 | |
tony-o | i got it from the xor :-) | 04:16 | |
that is a cool image tho | |||
well, the ones further down the page | |||
pmichaud | see my response to RT #12282 :) | 04:18 | |
er, #122882 | |||
synopsebot | Link: rt.perl.org/rt3//Public/Bug/Displa...?id=122882 | ||
pmichaud | mainly, infix:<(^)> should list associate | 04:19 | |
imo, <jet plane> (^) <network lag> (^) <plane network> should result in <jet lag> | |||
more to the point, <a network> (^) <b network> (^) <a network> should result in <b> and not <b network>, which is hard to do if (^) is left-assoc | 04:21 | ||
masak | pmichaud: I agree. that rhymes with infix:<^^> semantics, too. | 04:22 | |
pmichaud | exactly. | ||
masak | pmichaud++ | ||
pmichaud | anyway, the problem is the way infix:<(^)> is implemented in src/core/set_operators.pm | 04:23 | |
masak | p6: say 1 ** Inf # [RT #85750] | ||
synopsebot | Link: rt.perl.org/rt3//Public/Bug/Displa...l?id=85750 | ||
camelia | niecza: OUTPUT«Cannot open assembly './run/Niecza.exe': No such file or directory.» | ||
..rakudo-jvm d60a8f: OUTPUT«Can't call method "syswrite" on an undefined value at /home/p6eval/jvm-rakudo/eval-client.pl line 32.» | |||
..rakudo-{parrot,moar} d60a8f: OUTPUT«1» | |||
masak | the RT ticket says there are tests expecting this to be 1, but it's NaN on some systems. | ||
I was curious to find out what IEEE 754 stands on the matter. | 04:24 | ||
haven't found out yet. | |||
my *expectations* of these regions of arithmetic, of the concepts 1/Inf/NaN, and of IEEE 754, though, tell me that either 1 or NaN are acceptable answers, but I don't know which. I'm pretty sure IEEE 754 has an opinion, and unless there's a really good reason to deviate, we shouldn't. | 04:25 | ||
it's easy to argue for either: | |||
(it should be 1) -- because 1 ** $anything is 1 | 04:26 | ||
(it should be NaN) -- because there's an inherent conflict between 1 ** $anything being 1 and $at_least_1 ** Inf being Inf, and so rather than resolve that, the sysstem has to give NaN. | 04:27 | ||
this could be more formally argued using limits, but my hand-wavy argument shows the way, approximately. | |||
04:27
kurahaupo left
|
|||
tony-o | lol | 04:28 | |
TimToady now in Mountain View, CA :) | 04:30 | ||
04:31
sorear joined
|
|||
pmichaud | TimToady: o/ | 04:36 | |
pmichaud is looking forward to hackathoning again after a long absence | 04:37 | ||
04:46
xenoterracide joined
05:00
xenoterracide left
05:12
fhelmberger joined
05:17
fhelmberger left
05:20
notfix is now known as xfix
05:35
ecocode joined
|
|||
masak | fwiw, Python (both 2 and 3) has 1 ** Inf as 1. gist.github.com/masak/675fbe68a6474a94b722 | 05:36 | |
it doesn't have a reified symbol for Inf, hence the workaround with 1e3000. | 05:37 | ||
05:37
anaeem1_ joined
|
|||
masak | steve.hollasch.net/cgindex/coding/ieeefloat.html lists a number of "Special operations", which is something like I was looking for. pow(1, Inf) -- or anything involving pow -- is notably absent. | 05:38 | |
ditto users.tkk.fi/jhi/infnan.html | |||
05:51
chipotle left,
chipotle joined
05:56
chipotle left
05:57
kurahaupo_ joined,
ClarusCogitatio left
06:00
ClarusCogitatio joined
06:01
Hor|zon joined
|
|||
masak | lichtkind: thank you for hypothetical sofa and sandwich! blogs.perl.org/users/lichtkind/2014...unity.html | 06:02 | |
lichtkind: the feeling is reciprocated. :) though I don't have a sofa -- should really get one. | 06:03 | ||
06:04
bartolin joined
|
|||
masak | I think lichtkind++'s post can be summarized as "community is a special type of acquaintance akin to friendship" | 06:04 | |
I'm not sure that fully covers/explains the concept of "community"... but I like the way it partially defines/explains it. | 06:05 | ||
bartolin | masak: S03-operators/arith.t mentions mathworld.wolfram.com/Indeterminate.html, as I understand it this argues in favour of 1 ** Inf == NaN | ||
06:06
Hor|zon left
06:07
gfldex joined
|
|||
masak | bartolin: sure, I'm already concinced that *math* makes the argument for 1 ** Inf == NaN. | 06:09 | |
but IEEE 754 deviates from math in some places where it finds doing so convenient in a computing environment. | 06:10 | ||
for example, 0 ** 0 | 06:11 | ||
m: say 0 ** 0 | |||
camelia | rakudo-moar d60a8f: OUTPUT«1» | ||
masak | m: Inf ** 0 | ||
camelia | ( no output ) | ||
masak | m: say Inf ** 0 | ||
camelia | rakudo-moar d60a8f: OUTPUT«1» | ||
FROGGS_ | timotimo: I don't think I can make it any faster than I did... my sample code took 14s with CAPHASH and now takes 17s | ||
06:11
FROGGS_ left
|
|||
bartolin | ok, just wanted to note the link | 06:11 | |
masak | bartolin: yes -- thank you. | ||
bartolin: adding to ticket. | |||
06:16
SamuraiJack_ joined,
sorear left
06:17
sorear joined
06:18
vike joined
06:19
darutoko joined
06:21
Akagi201 joined
06:22
ghostlines joined
06:27
ghostlines left
06:28
gfldex left
06:35
vike left,
Akagi201 left,
Akagi201 joined
06:39
vike joined
|
|||
jnthn | morning, #perl6 | 06:42 | |
06:43
Mso150_a joined
|
|||
nwc10 | good UGT, jnthn | 06:44 | |
(+0100)++ ? | |||
jnthn | Well, +0200 from UTC given it's still daylight savings, I think :) | 06:46 | |
nwc10 | oh gosh, fail | ||
agree, "this week" (and next week) | |||
dalek | ast: c9f80da | usev6++ | S02-literals/radix.t: Change test for RT #107756 |
06:47 | |
synopsebot | Link: rt.perl.org/rt3//Public/Bug/Displa...?id=107756 | ||
06:53
zakharyas joined
|
|||
dalek | o: 1b5efbe | raydiak++ | bin/ufo: Leave .pm(6) in compiled module names, like panda |
06:53 | |
o: ac25072 | moritz++ | bin/ufo: Merge pull request #19 from raydiak/master Leave .pm(6) in compiled module names, like panda |
|||
07:00
JimmyZ joined
|
|||
bartolin | a general question to tests and tickets: there are some tickets which complain about LTA error messages. given the error handling is improved: should we have tests which check for the specific (improved) error message (or parts of it)? | 07:08 | |
07:10
FROGGS joined
|
|||
FROGGS | bartolin: you'd check for typed arrays using throws_like | 07:12 | |
07:12
zakharyas left,
FROGGS left,
FROGGS joined
07:13
kjs_ joined
|
|||
FROGGS | bartolin: where you create the very same exception object, and compare its properties | 07:13 | |
07:13
ghostlines joined
|
|||
bartolin | FROGGS: well, but the error message (which end users see) could be LTA nevertheless (and thats what some of the tickets complain about) | 07:13 | |
FROGGS: yes, I've learned that already (checking for typed exceptions) ;-) | 07:14 | ||
FROGGS | bartolin: how can that happen when we know about the message pattern of that exception type? | ||
bartolin | FROGGS: oh, I misread your answer, sorry | 07:15 | |
FROGGS: basically, you said "Yes, check for typed exceptions _and_ error messages"? | |||
FROGGS | no | 07:16 | |
07:16
[Sno] left
|
|||
FROGGS | bartolin: the ex type has a message pattern... when we got the correct exception type we know the pattern is correct and so will be the displayed message | 07:17 | |
JimmyZ | speaking of parametricity, what is parametricity? I google it and all about it is math in english | ||
bartolin | FROGGS: but what if someone changes the message pattern (but keeps the ex type)? | 07:18 | |
07:19
xfix is now known as notfix
|
|||
FROGGS | bartolin: the he/she either improved the message or he/she needs to get slapped :o) | 07:19 | |
07:19
MilkmanDan left
07:20
MilkmanDan joined
|
|||
bartolin | FROGGS: ;-) | 07:20 | |
FROGGS | the reason we have exception types other X::AdHoc was to be able to not check the message directly, which is messy | 07:21 | |
JimmyZ | nerver mind, I find it in www.fpcomplete.com/school/starting...pe-classes | 07:22 | |
bartolin | FROGGS: I tend to agree that it should be enough to test for the correct exception type. | 07:23 | |
FROGGS: so said tickets (complaining about LTA error messages) could be closed once there are a) an appropriate typed exception and b) an adequate error message and c) a test for the correct exception type? | 07:27 | ||
07:29
kjs_ left
|
|||
FROGGS | bartolin: yes, exactly :o) | 07:29 | |
bartolin | FROGGS: fine, thanks for explaining! | ||
FROGGS | pleasure :o) | ||
masak | JimmyZ: see also en.wikipedia.org/wiki/Hindley%E2%8...m#Polytype which I think comes down to the same concept. | 07:31 | |
JimmyZ: I tend to see it as "type with an unbound type variable", that is, for something like `a -> a -> a`, you still have to specify what `a` is at some point before it's fully concrete. but keeping it general allows you to abstract over types and maps of types. | 07:32 | ||
kind of like a "type family", I guess. | |||
07:33
virtualsue joined
|
|||
masak | (a concept I don't think is established, but it sounds nice) | 07:33 | |
JimmyZ | Does it solve type match problems? | 07:34 | |
JimmyZ doesn't know what problems is jnthn++ said | 07:35 | ||
07:35
kjs_ joined
|
|||
masak | JimmyZ: `map` has type `[a] -> (a -> b) -> [b]`. this translates as "If you give me a bunch of a-type things, and a way to transform an a-type thing into a b-type thing, then I can give you a bunch of b-type things". | 07:40 | |
JimmyZ: it's great because it works no matter what you decide `a` and `b` need to be. | |||
JimmyZ: I don't see where jnthn spoke of parametricity-related problems, sorry. | 07:42 | ||
jnthn doesn't either... :) | |||
Not sure I drank enough coffee to be smart enough to talk about parametricity yet today... :) | 07:43 | ||
JimmyZ | masak: irclog.perlgeek.de/perl6/2014-10-01#i_9441560 :P | 07:45 | |
masak: thanks, much easy to understand now | 07:46 | ||
jnthn gets latest builds of everything | 07:49 | ||
30s NQP build, 60s Rakudo build. :) | |||
07:51
JimmyZ_ joined
07:53
leont joined,
chipotle joined
07:55
JimmyZ left,
JimmyZ_ is now known as JimmyZ,
bjz joined
07:58
chipotle left
08:00
odc left,
bjz left
08:01
odc joined
|
|||
masak | JimmyZ: glad my ramblings were of some help. | 08:01 | |
08:02
Hor|zon joined
08:04
kjs_ left,
zakharyas joined
08:07
_slade_ left,
Hor|zon left
08:09
jack_rabbit left,
jack_rabbit joined
|
|||
dalek | kudo/nom: 178eec7 | usev6++ | src/core/Exception.pm: Extend error message of X::Numeric::Confused |
08:09 | |
kudo/nom: f6d011d | lizmat++ | src/core/Exception.pm: Merge pull request #315 from usev6/nom Extend error message of X::Numeric::Confused |
|||
kudo/nom: 3f59306 | (Elizabeth Mattijsen)++ | src/core/set_operators.pm: Fix for #122882 |
08:11 | ||
synopsebot | Link: rt.perl.org/rt3//Public/Bug/Displa...?id=122882 | ||
lizmat | $ 6 'say <a network> (^) <b network> (^) <a network>' | 08:12 | |
set(b) | |||
08:12
Hor|zon joined,
zakharyas left
|
|||
lizmat | #122882 can be marked as TEST NEEDED :-) | 08:13 | |
synopsebot | Link: rt.perl.org/rt3//Public/Bug/Displa...?id=122882 | ||
08:15
kurahaupo_ left
08:18
zakharyas joined
08:19
kurahaupo_ joined
08:23
ecocode left
08:24
ecocode joined
08:25
jack_rabbit left,
jack_rabbit joined
08:26
jack_rabbit left,
jack_rabbit joined
08:27
zakharyas left
08:28
ecocode left
|
|||
lizmat | timotimo++ timotimo++ timo++ for 2.5 week of Perl6 weekly :-) | 08:29 | |
08:30
dakkar joined
08:33
jack_rabbit left
08:37
Mso150_a left
08:39
kjs_ joined
|
|||
nine | FROGGS: but the whole point of tests is to detect if something got inadvertently broken. To slap someone for making an error message worse you have to know that it's changed in the first place. | 08:40 | |
FROGGS | nine: true, but still, checking error message texts that that interpolate variable and/or type names and other stuff is error prone | 08:41 | |
what I wanted to say is that we have to trust our devs when someone changes a error message template of a types exception | 08:42 | ||
sjn reads timotimo's p6weekly post | |||
nine | FROGGS: so it's a consideration between risking false positives in tests here and there and missing an actual user visible bug in your product. | 08:43 | |
FROGGS | yes | 08:44 | |
08:48
[Sno] joined
|
|||
jnthn reads the p6weekly to see what he might have missed in the last weeks :) | 08:50 | ||
timotimo++ for writing it :) | 08:52 | ||
08:57
zakharyas joined,
zakharyas1 joined
08:58
zakharyas left
09:09
pecastro_ joined
09:11
pecastro left
09:13
fhelmberger joined
09:18
fhelmberger left
09:21
kurahaupo_ left
09:22
ibo2perl6 joined
|
|||
ibo2perl6 | hi #perl6 | 09:23 | |
m: say bag (^12).roll(49_000) | |||
camelia | rakudo-moar d60a8f: OUTPUT«bag(2(4037), 7(4045), 1(4070), 11(4100), 4(4112), 9(4038), 5(4137), 10(4107), 3(4108), 0(4134), 8(4090), 6(4022))» | 09:24 | |
ibo2perl6 | m: say bag (^12).roll(50_000) | ||
camelia | rakudo-moar d60a8f: OUTPUT«bag(0(4136), 11(4186), 6(4137), 8(4171), 3(4225), 1(4195), 10(4107), 2(4174), 4(4097), 9(4145), 5(4164), 7(4263))» | ||
ibo2perl6 | m: say bag (^12).roll(60_000) | ||
camelia | rakudo-moar d60a8f: OUTPUT«(timeout)» | 09:25 | |
ibo2perl6 | locally I get an error: arg flag is empty in slurpy positional | ||
09:25
Hor|zon left
|
|||
ibo2perl6 | m: say bag (^12).roll(50_000) | 09:25 | |
camelia | rakudo-moar d60a8f: OUTPUT«bag(4(4146), 3(4289), 1(4214), 9(4087), 2(4131), 6(4143), 5(4198), 7(4191), 8(4145), 0(4097), 10(4169), 11(4190))» | 09:26 | |
09:26
Hor|zon joined
|
|||
jnthn | ibo2perl6: What version are you running? I know I fixed a bug in large bag construction a week or so ago... | 09:27 | |
ibo2perl6 | This is perl6 version 2014.09 built on MoarVM version 2014.09 | ||
09:28
fhelmberger joined
|
|||
ibo2perl6 | jnthn: oh great you must have fixes it jbthn++ | 09:28 | |
masak | yes, one week old rakudo is way too old ;) | 09:30 | |
ibo2perl6 | jnthn: Can I unite 2 bags? | 09:31 | |
jnthn | rt.perl.org/Ticket/Display.html?id=122810 was the ticket... | 09:33 | |
ibo2perl6: Unite as in union? | 09:34 | ||
ibo2perl6 | Jnthn: Yes. somehing like $bigBag = $b1 + $b2 | 09:36 | |
jnthn | Good news all: I think I found the hard-to-find inlining + GC bug. Turns out it was a bad interaction involving all of GC, inlining, type logging, AND continuations... | 09:37 | |
ibo2perl6: Try the union operator; think you can write the Unicode union char, or the ASCII version (|) | 09:38 | ||
ibo2perl6 | m: bag (^12).roll(50) ∪ bag (^12).roll(50) | 09:40 | |
camelia | ( no output ) | ||
ibo2perl6 | m: say bag (^12).roll(50) ∪ bag (^12).roll(50) | ||
camelia | rakudo-moar 3f5930: OUTPUT«bag(bag(4(6), 5(6), 6(4), 3(7), 11(10), 2(5), 9(3), 10(7), 8(6), 0(4), 1(4), 7(4)))» | ||
jnthn | .u ∪ | 09:41 | |
yoleaux | U+222A UNION [Sm] (∪) | ||
jnthn | Hm, why's my font make it look odd :) | ||
09:44
yeahnoob joined
09:45
yeahnoob left,
yeahnoob joined
|
|||
jnthn | hah, with TEST_JOBS=10 on this box and the startup time improvements, I often get "make test" reporting 1s now :) | 09:50 | |
yeahnoob | Yesterday I try to compile perl6-bench on my 1G RAM Ubuntu server, and it make the server down. Hehe:) | 09:51 | |
github.com/japhb/perl6-bench | |||
FROGGS | jnthn: we still have the deal to get stage parse down to 20s on my box this year :o) | ||
jnthn | FROGGS: Well, how far off are we? | ||
On my box we're in the 26s-27s range... :) | 09:52 | ||
FROGGS | jnthn: 34s | ||
jnthn | darn | ||
FROGGS | err, 14s away | ||
or off* | |||
jnthn | OK, so twice as much as we need to win on mine. | ||
I'm 8s or so on my box off entire CORE.setting build (all stages) being within 30s. :) | 09:53 | ||
FROGGS | wow :o) | 09:55 | |
timotimo | do you know of the linux distro that ships the kernel as source code plus a tcc that compiles it on boot? | 09:56 | |
since tcc is so tiny that it mostly fits into the cpu cache, it's still surprisingly fast to come up | |||
or so i'm told | |||
09:57
Akagi201 left,
Akagi201 joined
09:58
vendethiel left
10:08
elimik joined
10:09
kurahaupo_ joined
|
|||
dalek | p: 5107793 | jnthn++ | tools/build/MOAR_REVISION: Get MoarVM with a couple of SEGV fixes. |
10:11 | |
kudo/nom: 230233b | jnthn++ | tools/build/NQP_REVISION: Bump to get latest MoarVM, with SEGV fixes. |
10:13 | ||
ast: 54b2715 | jnthn++ | S12-attributes/clone.t: Add a test for type object clone not crashing. |
|||
10:15
Hor|zon left
|
|||
ibo2perl6 | m: <1 2 3>.Bag ∪ <1 2 2>.Bag | 10:16 | |
camelia | ( no output ) | ||
ibo2perl6 | m: say <1 2 3>.Bag ∪ <1 2 2>.Bag | ||
camelia | rakudo-moar 3f5930: OUTPUT«bag(1, 2(2), 3)» | ||
ibo2perl6 | i was expecting bag(1(2), 2(3), 3) | ||
jnthn | Uh...I think I would do... | ||
jnthn hasn't been paying a lot of attention to the set/bag bits, alas... | 10:17 | ||
s/would do/would too/ | 10:18 | ||
10:18
denis_boyun_ joined
|
|||
jnthn | lizmat: If you're about, you might have an opinion on the bag thing above... :) | 10:18 | |
masak | jnthn, ibo2perl6: nope. | 10:19 | |
you're using the *set* union operator ;) | |||
m: <1 2 3>.Bag ⊎ <1 2 2>.Bag | |||
camelia | ( no output ) | ||
masak | m: say <1 2 3>.Bag ⊎ <1 2 2>.Bag | ||
camelia | rakudo-moar 3f5930: OUTPUT«bag(1(2), 2(3), 3)» | ||
jnthn | masak: Ohhh... | 10:20 | |
masak: What's the ASCII form of that one? :) | |||
masak | in Perl 6, the *operator* determines the coercion, not the operands. | ||
ibo2perl6 | masak: oh cool! where is that documented? | ||
jnthn | masak: Well, that kinda makes sense except...if it's set union, why do we get a bag result, not a set result? | ||
ibo2perl6: Turns out it's listed on doc.perl6.org/language/Sets_Bags_and_Mixes | 10:21 | ||
masak | jnthn: infix:<(+)>, it seems. | 10:22 | |
jnthn: because returning a set would be lossy compared to returning two set-union'd bags? | 10:23 | ||
jnthn: ...I honestly don't know. | |||
nine | ibo2perl6: that operators determine types instead of operands has been fundamental in Perl pretty much forever. | ||
jnthn | masak: OK. It's just that things that paradigm-coerce also tend to return a type matching the paradigm used :) | ||
10:25
FROGGS left,
FROGGS joined
|
|||
masak | jnthn: yes, agreed. | 10:25 | |
m: say (<1 2 3>.Bag ∪ <1 2 2>.Bag).Set | 10:26 | ||
camelia | rakudo-moar 3f5930: OUTPUT«set(1, 2, 3)» | ||
10:26
Sqirrel left
|
|||
masak | the more I think about it, the more I *would* expect Set-union to return a Set. | 10:26 | |
what's the use case for "no, I want a Bag, but I want to perform Set-union of the two Bag operands"? | 10:27 | ||
in order to get more clarity in the matter, I hereby declare myself to belong to the political camp which considers infix:<∪>(Bag, Bag) to wrongly return Bag today, rather than Set. | 10:28 | ||
jnthn | masak: It would certainly ahve made me less confused :) | ||
masak joins "Occupy ∪" | |||
jnthn | :P | 10:29 | |
10:32
JimmyZ left
10:33
Hor|zon joined
|
|||
lizmat | well, if that's the way you want it, we can make it that way... | 10:39 | |
10:39
psch joined
|
|||
lizmat | fwiw, I mostly just ported colomon's set work on niecza to rakudo | 10:39 | |
psch | hi #perl6 | 10:40 | |
Callables and binding of $/ has me stumped: gist.github.com/peschwa/ca9e9451d9da19f29c73 | |||
i'd expect $call() to give me the $0 from the $/ in the surrounding scope, but it seems to be the one from the declaring scope? | |||
er, scope surrounding the declaration is probably a clearer formulation | 10:41 | ||
i notice i forgot adding output... | |||
jnthn | $0 is $/[$0] | ||
Which compiles into something like getlex('$/')[0] | 10:42 | ||
$/ may be dynamically *visible*, but it is lexically resolved. | |||
masak | lizmat: I don't know if that's the way I want it, though. | ||
lizmat: maybe there is something incredibly clever or useful about the way it's currently set up. | |||
jnthn | lizmat: Probably warrants discussion with colomon, TimToady, etc. before jumping in and changing it. | 10:43 | |
lizmat | fwiw, shown like that, it doesn't make sense to me either | ||
masak | lizmat: I just ask that my reason for making it consistent in the way other operators work be weighed against the awesome use case I can't spot right now ;) | ||
jnthn | masak: It is possible there isn't such a use-case and the way it is now is an accident. :) | 10:45 | |
But yeah, I'm quite open to being shown such a case too :) | |||
masak | I bet colomon'd know. or TimToady. | 10:47 | |
psch | jnthn: ok, so my expectation wasn't quite correct. use-case here is the closure tests for .trans, e.g. '[36][38][43]'.trans(/\[(\d+)\]/ => {chr($0)}) | ||
github.com/peschwa/rakudo/blob/imp...r.pm#L1111 (and around there) is what i have | |||
might well be that i *still* don't quite understand how exactly LSM works... :) | 10:48 | ||
colomon | Hmmm? The way union on Bags works now is no accident. | 10:49 | |
and I've recently used it in a conceptual sense | |||
psch | my question probably would be "how do i get the closure to get the outer $/ instead of lexical $/?", with a side of "...unless there's a better way i don't see" | ||
lizmat | masak: looking at the implementation, it should give what we all think it should :-( | 10:50 | |
jnthn | psch: I think .subst does it by updating the caller's $/ | ||
lizmat | m: say <1 2 3>.Bag ∪ <1 2 2>.Bag # wrong | ||
camelia | rakudo-moar 3f5930: OUTPUT«bag(1, 2(2), 3)» | ||
lizmat | m: say <1 2 3>.Bag (+) <1 2 2>.Bag # right | 10:51 | |
camelia | rakudo-moar 3f5930: OUTPUT«bag(1(2), 2(3), 3)» | ||
jnthn | m: say <1 2 3>.Bag (|) <1 2 2>.Bag | ||
camelia | rakudo-moar 3f5930: OUTPUT«bag(1, 2(2), 3)» | ||
psch | jnthn: ok, thanks. | ||
lizmat | ah, ok... jnthn thanks | ||
jnthn | lizmat: Just to make sure we're understanding it the same, it's ∪ that has (|) as it's ASCII version... | ||
lizmat | yup | 10:52 | |
jnthn | lizmat: And (+) is the bag union | ||
lizmat | see that now :-) | ||
jnthn | colomon: My question really is, if (|) is set union and (+) is bag union, why does (|) on two bags return a bag, not a set? | ||
lizmat | yeah, that feels weird | ||
colomon | It's the names for the operators which are strange, not what they do. | 10:53 | |
"set union" returns the maximum quantity of each key in its input. | |||
"bag union" returns the sum of the quantities of each key in its input | |||
10:54
bjz joined
|
|||
colomon | both operations make perfectly good sense on Bags and returning Bags | 10:54 | |
jnthn | m: say <1 2 3>.Bag ∪ <1 2 2 1 2 2>.Bag | ||
camelia | rakudo-moar 3f5930: OUTPUT«bag(1(2), 2(4), 3)» | ||
jnthn | Aha | ||
OK, now I understand what's going on | |||
lizmat | colomon: shouldn't that be 2(5) ? | ||
colomon | It would probably make more sense to call "bag union" "bag sum" | 10:55 | |
lizmat: no, because it's taking the max quantity, not the sum of the quantities | |||
lizmat | aha.. ok | ||
jnthn | m: say <1 2 3>.Bag (|) <1 2 2 1 2 2>.Bag | ||
camelia | rakudo-moar 3f5930: OUTPUT«bag(1(2), 2(4), 3)» | ||
jnthn | m: say <1 2 3>.Bag (+) <1 2 2 1 2 2>.Bag | ||
camelia | rakudo-moar 3f5930: OUTPUT«bag(1(3), 2(5), 3)» | ||
colomon | just like when you take the union of two sets, you don't get a Bag if there are duplicate members | ||
10:55
chipotle joined
|
|||
jnthn | colomon: OK, I can see how you might usefully want both of those. | 10:55 | |
And yeah, the names I/we used for them were confusing matters. | 10:57 | ||
colomon++ | |||
colomon | note that the texas names accurately convey what is going on: (&) is minimum quantity, (|) is maximum quantity, (+) is sum of quantities | ||
TimToady++ # I'm just remembering. ;) | |||
jnthn tries to remember this for next time he's looking at such a problem. | 10:58 | ||
I suspect I still lean to doing a few things with hashes etc. that I could use bags for and get a much more elegant result... | |||
colomon | jnthn that's probably not a bad instinct, I think using Hashes directly is still significantly more efficient. | 10:59 | |
jnthn | colomon: At the moment perhaps. | 11:00 | |
colomon wrote if "datakit" ∈ @translators in some $work code yesterday, and it made him very happy | |||
masak | \o/ | ||
jnthn | colomon: That's more a consequence of Hash having had a lot more optimization time | ||
masak | colomon: though if that's in a hot path... :) | ||
colomon | jnthn: sure. | ||
11:00
chipotle left
|
|||
colomon | masak: that happens once in the program execution. | 11:01 | |
lizmat | FWIW, sets/bags/mixes would benefit from fast typed hashes in the core | ||
masak | colomon: ah :) | ||
colomon | and the script itself isn't one I need to run very often, so if it's a bit slower than it has to be, that's fine. :) | ||
lizmat | I couldn't use typed hashes, as they don't currently work in the core :-( | ||
jnthn | lizmat: Yeah, that's partly why I spent a chunk of my plane ride yesterday reading papers and pondering how to push parametricity down into the 6model level | 11:02 | |
colomon | jnthn++ | 11:03 | |
lizmat | S02:3622 states that "$a = Parcel.new('a');" is the same as $a = (< a >,) | ||
synopsebot | Link: perlcabal.org/syn/S02.html#line_3622 | ||
jnthn | lizmat: The way we do typed hashes (and arrays) right now has multiple issues, and are mostly a case of "build them out of what we have now" rather than "this is how they want to be" | ||
lizmat | yeah, I got that... and that also goes for sets / bags / mixes :-) | 11:04 | |
m: say Parcel.new("a") | |||
camelia | rakudo-moar 3f5930: OUTPUT«Default constructor for 'Parcel' only takes named arguments in method new at src/gen/m-CORE.setting:923 in block <unit> at /tmp/RhkUgOje7n:1» | ||
lizmat | I've been bitten by Parcel.new not working before | ||
is that a NYI, or is there a deeper reason this doesn't work ? | |||
jnthn | m: say Array.new(1,2,3) | 11:05 | |
camelia | rakudo-moar 3f5930: OUTPUT«1 2 3» | ||
jnthn | It's certainly surprising to me that Parcel doesn't behave like that. | ||
colomon | masak: that's the great thing about many of the ways I use Perl for $work -- speed isn't that important because it's things that get run only occasionally in my build process. So converting to p6 today doesn't really have any drawbacks. (Mind you, this particular script was brand new.) | ||
jnthn | Needs writing very carefully, mind. | ||
lizmat | Parcel just doesn't have its own method 'new' | ||
jnthn | Since it should not enforce any context | ||
So must be done with vmargarray or whatever it's called | 11:06 | ||
lizmat | yeah, I thought so... :-) | ||
let me try that and see what breaks | |||
jnthn | And remember to shift off the invocant before wrapping it in a Parcel ;) | ||
11:10
bartolin left
|
|||
lizmat | 11:13 | ||
11:19
anaeem1_ left
11:25
notfix is now known as xfix
11:29
ghostlines left
|
|||
dalek | kudo/nom: 9814e86 | (Elizabeth Mattijsen)++ | src/core/Parcel.pm: Make Parcel.new('a') work as specced |
11:29 | |
11:31
ghostlines joined
11:36
darutoko- joined
|
|||
dalek | ast: 8f1def5 | (Elizabeth Mattijsen)++ | S02-literals/radix.t: Fix test wrt to type of exception |
11:38 | |
ast: c7afefb | (Elizabeth Mattijsen)++ | S12-attributes/clone.t: Merge branch 'master' of github.com/perl6/roast |
|||
ast: 4bc5f70 | (Elizabeth Mattijsen)++ | S02-types/parcel.t: Add some Parcel.new tests |
|||
11:40
darutoko left,
darutoko joined
11:41
darutoko- left
11:46
Hor|zon left
|
|||
masak | timotimo: typo spotting: s/lazyness/laziness/ in p6weekly.wordpress.com/2014/09/08/2...mizations/ | 11:52 | |
timotimo++ for p6weekly | |||
also, overcorrection in "Until The Big List Refactor has happened, the performance of lists, list iteration, lazy lists and so on are going to be suboptimal" -- s/are/is/, as "the performance" is singular. | 11:56 | ||
12:00
ghostlines left
12:02
ghostlines joined
12:03
bartolin joined
12:05
JimmyZ joined
12:06
dakkar left
|
|||
grondilu | Stage parse : 566.323 | 12:07 | |
^usually around 200 | |||
jnthn | grondilu: Helpful if you can specify backend... | 12:09 | |
grondilu | MoarVM, today's update | 12:10 | |
it may be due to an excess of swap, though. I'm closing browser windows right now. | |||
jnthn | Yeah, I suspect so...my builds of Moar today have all had very normal times | 12:11 | |
60s for the full build, a bit under 40s of it on setting, and 26s or so parse.... | |||
lizmat | mine as well | ||
jnthn | uh, builds of Rakudo on Moar | ||
12:11
dakkar joined
|
|||
grondilu | not related: any hope of supporting 32bit JIT soon? | 12:12 | |
FROGGS | hmmm, my guess is that it won't be soon, since it might make more sense to improve it on x64 first | 12:19 | |
and port it at the "end" | 12:20 | ||
12:20
pepl left
12:23
pepl joined
|
|||
moritz | my guess is that it won't be seen, because nobody's working on it (afaict) | 12:31 | |
FROGGS | maybe brrt pops in and replies :o) | 12:34 | |
jnthn | s/seen/soon/? :) | 12:36 | |
But yeah, it's some work, I imagine | 12:37 | ||
Since less registers so will need to spill more to the stack, different calling conventions, everything that deal with 64-bit integers probably has to change... | 12:38 | ||
FROGGS | hmmm, so it might not be a goal at all? | 12:41 | |
yeahnoob | I thought, the 32bit System&CPU will be only available in the Embedded environments, in several years later. | 12:48 | |
grondilu tries to find a name for a subset of Real where * != 0. Suggestions? | |||
grondilu would find NonZeroReal quite lame | 12:49 | ||
jnthn | Real-yNotZero | 12:50 | |
moritz | grondilu: Real-but-not-Naught | ||
grondilu | I can't use "Real!" as subset name, can I? | ||
moritz | nope | ||
dalek | kudo-star-daily: ec06b0d | coke++ | log/MoarVM-version.log: today (automated commit) |
12:51 | |
lizmat | .oO( UnNaughty ) |
||
[Coke] | looks like java was updated on host08 (moritz++) will try a java run again later today. | ||
grondilu considers Rea1 | 12:52 | ||
[Coke] | f | ||
ruoso | RealButTrue | 12:54 | |
FROGGS | [Coke]: can you ping me with your results afterwards? | ||
[Coke] | ooh, I'm in time, I'll re-enable jvm for today. | 12:55 | |
grondilu | m: say so -1 | ||
camelia | rakudo-moar 9814e8: OUTPUT«True» | ||
grondilu | ruoso: ^ | 12:56 | |
grondilu considers DReal (for "Divisible Real") | |||
ruoso | well, 0 is divisible | 12:57 | |
grondilu | ? | ||
ruoso | you can't divide by it | ||
but you can divide it | |||
grondilu | oh yeah | ||
IReal or InvReal, then I guess | 12:58 | ||
too bad "Inversible" begins with the same two letters as "Integer" | 12:59 | ||
ruoso | I didn't understand what you tried to say before, why isn't RealButTrue appropriate? | ||
grondilu | because negative Real are still true | ||
oh wait | |||
ruoso | Right, but you said != 0 | ||
grondilu | right, my bad | ||
"But" looks too much like role composition, though. | 13:00 | ||
But I can go for TReal for "True Real" | |||
ruoso | I'm not sure the reference to role composition is wrong | 13:01 | |
it is a value that is a Real and is True | |||
I always thought of the mathematical number sets as roles | 13:02 | ||
grondilu | the problem is that it would suggest it is actually implemented with a role composition, which it won't. It'll be a subset. | 13:03 | |
ruoso | You can always call it RomanReal... since the romans didn't have 0 :) | ||
tadzik | :D | ||
that's awesome | |||
13:03
Hor|zon joined
|
|||
grondilu considers just "Roman" | 13:04 | ||
grondilu remembers Romans did not have real numbers | |||
I think I'll go with TReal | 13:05 | ||
(or maybe TrueReal) | |||
JimmyZ | NonZeroReal | 13:06 | |
or NoZeroReal ... | |||
NotZeroReal? | 13:07 | ||
grondilu | it's just too long for my taste | 13:08 | |
masak | RealNZ | ||
JimmyZ | NZReal | ||
masak | ReNZal | 13:09 | |
grondilu | on the other hand I'm not supposed to write it often, so maybe NonZeroReal is fine. | ||
ruoso | new zealand has a different number system? | ||
ruoso stops trolling now... | |||
masak | ruoso: they use a maoreal number system. | ||
JimmyZ | I think NonZeroReal is easy to understand for others too | ||
grondilu | JimmyZ: yeah, that's also a point. | ||
masak | NonZeroReals form a group under multiplication. | 13:10 | |
moritz | grondilu: some physicists use "finite" for "non-zero" (because the inverse is finite) | ||
13:13
kurahaupo_ left
13:19
clkao is now known as clkao_
13:20
clkao_ is now known as clkao
13:23
guru joined
13:24
guru is now known as Guest30500,
Guest30500 is now known as ajr_
|
|||
lizmat | m: my $y = 42; sub a { state $x := $y }; say a # would expect 42 ? | 13:24 | |
camelia | rakudo-moar 9814e8: OUTPUT«(Mu)» | ||
13:25
kbaker joined
|
|||
lizmat | m: my $y = 42; sub a { state $x = $y }; say a # not binding works as expected | 13:25 | |
camelia | rakudo-moar 9814e8: OUTPUT«42» | ||
woolfy | oO(looking forward to Austrian Perl Workshop, nice people, hackathon with lots of Perl6-people) | ||
lizmat | maybe the binding case should be disallowed? What does it mean to bind the variable only once ? | ||
jnthn | lizmat: We implement state as "keep the containers around from invocation to invocation" | 13:27 | |
FROGGS | woolfy: I read that as: "nice people and Perl6-people" :P | ||
jnthn | lizmat: So yeah, if you go re-binding the container...well...surprise... | ||
lizmat | but it is silent right now, so maybe it should blow up ? | 13:28 | |
jnthn | I dunno. Maybe it's useful for something... :) | ||
pmichaud | FROGGS: Perl6 people are nice people at another level :) | ||
good morning, #perl6 | |||
woolfy | FROGGS: you read that right, you un-nice Perl-6-ish bastard of a German Frosch! :-( Oh, wait, it does not mean that at all, rather the oppositie. | ||
\o/ pmichaud | 13:29 | ||
FROGGS | hi pmichaud :o) | ||
woolfy: *g* | |||
woolfy | FROGGS: I will give you a hug to make you remember how nice you are! | ||
FROGGS | woolfy: I was about offering that, hehe | 13:30 | |
jnthn | hi pmichaud :) | 13:31 | |
psch | t/spec/S05-transliteration/trans.rakudo.moar (Wstat: 0 Tests: 60 Failed: 0) TODO passed: 28, 31-34, 36-40, 45-46 | ||
pmichaud | jnthn: o/ | ||
psch | \o/ | ||
lizmat | m: my $y = 42; sub a { once my $x := $y; ++$x }; say a; say $y # make state visible outside ??? | ||
camelia | rakudo-moar 9814e8: OUTPUT«4343» | ||
jnthn | pmichaud: Glad you'll be making it to the hackathon. \o/ | ||
FROGGS | psch++ # was that you? | ||
psch | ...except that i had to adjust #46 for that | ||
pmichaud | jnthn: me too! | ||
psch | FROGGS: i'm fiddling with it, yeah | ||
FROGGS | psch++ # again :o) | ||
pmichaud | unless others have better suggestions, I'm thinking I'll focus on S07 at the hackathon | ||
FROGGS | pmichaud: TimToady is also musing about that as far as I understand | 13:32 | |
lizmat | m: my $y = 42; sub a { once my $x := $y; ++$x }; sub b { once my $x := $y; --$x }; say a; say $y; say b; say $y # jnthn: sharing state between blocks ? | ||
camelia | rakudo-moar 9814e8: OUTPUT«43434242» | ||
pmichaud | FROGGS: yes, which means the hackathon might be a good place for us to _finally_ resolve a lot of stuff there :) | 13:33 | |
S07 has been hurting for.... well, since well before Rakudo Star :) | |||
FROGGS | pmichaud: yes, exactly :o) | ||
jnthn | pmichaud: I think a lot of us will focus on that at the hackathon. ;) | ||
dalek | ast: a9bfb14 | (Pepe Schwarz)++ | S05-transliteration/trans.t: Correct a test. |
||
psch | ^^^ that's the test that didn't make sense before, in my understanding | ||
lizmat | jnthn pmichaud: it would be my goal to have clarity on what will be in 6.0 and what not | 13:35 | |
pmichaud | lizmat: +1 | ||
FROGGS | ohh yes | ||
and write it down and assign (concrete) tasks | 13:36 | ||
lizmat | FROGGS: indeed | ||
maybe not assign but at least identify | |||
masak | pmichaud! \o/ | ||
woolfy | oooww, lizmat made her secret goal for the APW-hackthon public now... | 13:37 | |
lizmat | or maybe assign in the way of "project manager" rather than developer | ||
jnthn | woolfy: It was a secret? :) | ||
masak | lizmat: +1 | 13:38 | |
13:38
FROGGS[mobile] joined
|
|||
masak | not being able to be there in person, my plan is to astral-project to APW and the hackathon, and then haunt you in the form of a poltergeist. | 13:38 | |
er, I mean, I plan to pay a lot of attention to IRC while it happens. | 13:39 | ||
lizmat | .oO( don't knock it! ) |
||
colomon | \o/ | ||
lizmat | .oO( we should stay clear of the light ) |
||
woolfy | jnthn: not to me... | 13:40 | |
colomon will be following masak's example. | 13:41 | ||
masak | poltertwins! | 13:42 | |
geekosaur | polterguests | 13:43 | |
13:43
FROGGS left
|
|||
lizmat | and we may want to call it the 'Salzburg Consensus' :-) | 13:44 | |
13:46
FROGGS joined
|
|||
lizmat | jnthn (or anybody else): ideas of allowing "state $a := $b" as a way of sharing state between scopes ? | 13:47 | |
jnthn | lizmat: I...hmmm.. | 13:48 | |
lizmat | I guess the thing to be sharing with could be a parameter | ||
jnthn | lizmat: Trouble is, it creates variables at first-entry-of-a-closure-clone. | ||
masak | clearly Salzburg itself must at some point have been the consensus between two previous cities, Säureburg und Baseburg. | ||
jnthn | lizmat: And stashes them away. | 13:49 | |
lizmat: And then re-instates them for each follow-up entry to the scope | |||
lizmat | ah, a subtle difference between 'once my $a' and 'state $a', right ? | 13:50 | |
once would only execute once ever, whereas state would be done for each new closure ? | |||
dalek | ast: afdcba5 | pmichaud++ | S03-operators/set.t: Add test for RT #122882 - symmetric difference with 3+ args. |
||
synopsebot | Link: rt.perl.org/rt3//Public/Bug/Displa...?id=122882 | ||
pmichaud | feels good to close an RT ticket :) | 13:52 | |
jnthn | lizmat: once also has state semantics. | ||
lizmat: 'cus it's done using a state var, iirc? | |||
And was once called START...and I know I impl'd that with a state var... | |||
13:52
ajr_ left
|
|||
lizmat | ah, ok :-) | 13:53 | |
jnthn | But "once my $a" doesn't say anything about $a staying around... | ||
[Coke] | [A | ||
lizmat | ah, yes, good point :-) | ||
.oO( duh! ) |
|||
jnthn | The problem with trying to come up with a model other than what Moar/JVM do now, is that you need to hook scope exit and write back any re-bound changes... | 13:54 | |
13:54
ajr joined,
ajr is now known as Guest62709,
Guest62709 is now known as ajr_
|
|||
lizmat | well, all of this was because of a question of Father Chrysostomos (a very productive p5p contributor) on p6l | 13:55 | |
13:55
molaf joined
|
|||
jnthn | OK. Well, I'll leave it at, I'm happy enough with the current semantics, so unless TimToady++ feels they have to chnage, then I'm not inclined to do much about the status quo. | 13:56 | |
(Where by "the current semantics" I mean, what Moar does, and I'm about certain what we do on JVM. I don't actually know how things are on Parrot.) | 13:57 | ||
lizmat | eh, but the current semantics silently do the wrong thing, no ? | ||
jnthn | lizmat: Depends how you define the semantics of state. | 13:58 | |
lizmat: Note that if you go binding a temp or let var you are in equal trouble. | 13:59 | ||
moritz wouldn't mind compile-time disallowing rebinding temp/let/state vars | |||
jnthn | 'cus those are certainly about value, not container | ||
lizmat | moritz +1 | ||
jnthn | I took state to be wanting the same semantics | ||
Yeah, I could go with a conservative approach of "just disallow it" | |||
lizmat | I'll answer FC | 14:00 | |
14:04
SamuraiJack_ left
|
|||
pmichaud | I'm afk for a while again | 14:04 | |
14:06
kaare_ joined
14:11
molaf left
|
|||
psch | t/spec/S17-procasync/print.rakudo.moar (Wstat: 0 Tests: 16 Failed: 0) TODO passed: 12-14 | 14:11 | |
that surprised me? is trans somehow involved or are those 3 all flapping? | 14:12 | ||
wait, the test file says the one after those flaps...? | |||
dalek | ast: 8cfc793 | (Elizabeth Mattijsen)++ | S03-operators/set.t: Fix test count |
||
jnthn | psch: Flappin,g I think... | ||
lizmat | yeah, flipflapping :-) | ||
14:12
Possum left
|
|||
moritz | once I even got a test failure from that file | 14:13 | |
psch | github.com/rakudo/rakudo/pull/317 | ||
14:13
Possum joined
|
|||
psch | i still feel i haven't treated LSM quite as i should, but the tests say it's ok | 14:14 | |
that might mean there's not enough tests :) | |||
14:16
FROGGS left
14:30
FROGGS joined
14:42
kurahaupo_ joined
14:59
chipotle joined
15:00
xfix is now known as possiblynotfix
15:03
chipotle left
|
|||
lizmat | cycling& | 15:03 | |
15:09
mls joined
15:23
molaf joined
15:24
ajr_ left,
guru joined
15:25
guru is now known as Guest30849,
Guest30849 is now known as ajr_
|
|||
masak | lol! | 15:31 | |
I blogged! o.O | |||
strangelyconsistent.org/blog/macros...long-break | |||
FROGGS | O.o | ||
masak | I just want to add that I feel really good about this. | 15:32 | |
a special "thank you" goes out to Ven++, who did not make an appearance in the blog post, but who has influenced and inspired my thinking a lot recently, and with whom I expect to have similarly stimulating discussions in the future. | 15:33 | ||
pmichaud | masak++ | 15:37 | |
15:40
ghostlines left
|
|||
PerlJam | pmichaud! | 15:41 | |
o/ | |||
15:44
Hor|zon left
|
|||
PerlJam rereads 2012 advent day 23 to refresh his p6-macros model | 15:45 | ||
15:46
Hor|zon joined
|
|||
[Coke] | ok, jvm run today (on oracle jvm) -seems- faster. | 15:48 | |
15:48
denis_boyun_ left
|
|||
[Coke] | moritz++ | 15:49 | |
15:51
zakharyas1 left
|
|||
PerlJam | [Coke]: Improvement perceived is improvement achieved? :) | 15:52 | |
15:52
Hor|zon left
|
|||
jnthn | masak: Nice post | 15:52 | |
15:53
pepl left
|
|||
masak | thx | 15:53 | |
jnthn didn't blog in aaaages either :) | 15:55 | ||
15:59
fhelmberger left
|
|||
PerlJam | masak++ a very nice post indeed. | 16:01 | |
16:02
yeahnoob left,
darutoko- joined
|
|||
JimmyZ | masak++ | 16:03 | |
16:04
possiblynotfix is now known as xfix,
darutoko left
16:08
JimmyZ_ joined
16:10
JimmyZ left,
JimmyZ_ is now known as JimmyZ
16:11
erkan left,
beastd joined,
fhelmberger joined,
JimmyZ left
|
|||
grondilu | m: (my %).pairs == 0; # should this really warn?? | 16:11 | |
camelia | rakudo-moar 9814e8: OUTPUT«(timeout)» | ||
16:12
erkan joined,
erkan left,
erkan joined
|
|||
grondilu got "use of uninitialized value of type Nil in numeric context" | 16:13 | ||
timotimo | well, (my %) is the hashes type object, no? | 16:14 | |
16:15
fhelmberger left
|
|||
FROGGS | m: (my %).pairs.elems == 0; # this should not warn | 16:16 | |
camelia | rakudo-moar 9814e8: OUTPUT«(timeout)» | ||
moritz | masak++ # macro post | 16:17 | |
16:17
darutoko joined
|
|||
moritz | masak: I don't know if I've expressed the thought before here, but I nevere expected rw access to a QAST tree; rather high-level wrapper objects around QAST + World | 16:18 | |
16:18
Hor|zon joined
|
|||
moritz | masak: and having read large (and written small) parts of Actions.nqp, I don't know if that's feasible at all | 16:19 | |
masak: hence, I'm excited about your upcoming posts :-) | 16:20 | ||
16:20
darutoko- left
16:23
Hor|zon left
16:25
sivoais joined
16:27
darutoko- joined
16:29
elimik left
16:30
darutoko left
16:31
darutoko- left,
darutoko joined
|
|||
timotimo | are we too late to get projects idea in for perl's participation in gnome's outreach program for women? | 16:41 | |
it seems like at the moment the project ideas are 1) working on dancer, 2) working on metacpan | 16:42 | ||
16:44
laben joined
|
|||
laben | hi perl6 :) | 16:44 | |
[Coke] | We could abolutely come up with some perl 6 stuff | ||
timotimo | hi laben | ||
[Coke] | laben: hio | ||
timotimo | [Coke]: i don't know the details of that program, but i expect we'll be expected to provide mentoring like in the GSoC | 16:45 | |
laben | i bring good news! after rebuilding from latest git, i cannot reproduce the segfault anymore | ||
timotimo | hooray | 16:46 | |
is this related to the inlining segfault jnthn has fixed today? | |||
laben | i honestly hope it's that and not a heisenbug | ||
16:47
molaf left
|
|||
colomon is trying to decide if it's worth cleaning off his desk to make a spot for the ancient PowerPC iMac from the basement. | 16:47 | ||
timotimo | i feel you; heisenbugs are nasty to track down | ||
laben | btw i updated ufo too since i saw a commit there and that helped fix another thing that bugged me, so today is a good day for my use of perl6 :) | 16:48 | |
jnthn | laben: Well, did the segfault go away before if you set MVM_INLINE_DISABLE? Or did you not try that? | ||
uh, MVM_SPESH_INLINE_DISABLE... | |||
If it did, there's a very good chance my fix did it. :) | |||
16:48
erkan left
|
|||
jnthn | (Since I fixed the only inlining-related segv I'm aware of us having.) | 16:49 | |
laben | jnthn: i did try that but did not work, but according to my logs i tried MVM_INLINE_DISABLE, not MVM_SPESH_INLINE_DISABLE | ||
timotimo | oh, then it might be something else | ||
laben | i only saw that error when i went to see the code | ||
16:49
pepl joined
|
|||
laben | MVM_INLINE_DISABLE desn't exist | 16:49 | |
doesn't* | 16:50 | ||
timotimo | that's right | ||
laben | it would be better to document those environment vars... | ||
jnthn | Somebody did... | 16:51 | |
Recently, though | |||
laben | where? | ||
timotimo | in the man page draft | ||
it'd be called moar.pod i believe | |||
moritz | it's in docs/moar.pod | ||
jnthn | moritz++ | ||
japhb | .oO( Autosuggest for typoed MVM_* envvars ) |
||
jnthn | we should maybe make moar --help include 'em... | 16:52 | |
japhb | That's definitely a good idea | ||
grondilu | m: say so (my %).keys.map({rand}).all == 1; | ||
japhb | masak++ # Excellent macro blog post | 16:53 | |
camelia | rakudo-moar 9814e8: OUTPUT«(timeout)» | ||
grondilu | m: say ().all == 1; | ||
camelia | rakudo-moar 9814e8: OUTPUT«(timeout)» | ||
timotimo | i believe in micro evolution, but i think macro evolution is just a hoax | ||
m: say "hi" | 16:54 | ||
camelia | rakudo-moar 9814e8: OUTPUT«(timeout)» | ||
laben | oh, indeed they are there, maybe render it into a simple format and install it with a make target | ||
is there some pod->man modules ready? | 16:55 | ||
timotimo | that's why moritz decided to write it as a .pod, pod2man exists and is apparently pretty good | ||
16:55
PZt left
|
|||
laben | ofc, it's there in the core lib, let me try it | 16:57 | |
16:58
pmurias joined
|
|||
pmurias | masak: do we have a list of macro 'use cases'? | 17:00 | |
yoleaux | 28 Sep 2014 04:17Z <jnthn> pmurias: I'm fine with 4c5981159e being put in master | ||
17:01
chipotle joined
17:04
dakkar left
17:06
chipotle left
17:09
vendethiel joined
|
|||
vendethiel | thanks masak++ :). Also always up for a chat! | 17:09 | |
17:09
pecastro_ left
|
|||
timotimo | m: use cases; | 17:10 | |
vendethiel | (and btw, if you want to steal more from common lisp, I've got plenty of ideas. Restarts, pandoric macros and other codewalkers) | ||
camelia | rakudo-moar 9814e8: OUTPUT«(timeout)» | ||
vendethiel | timotimo: there are no use cases for a timeout, it seems. | ||
17:11
pecastro joined
|
|||
vendethiel | .oO( does that mean we get to throw away that turing-completeness thingie? ) |
17:11 | |
moritz | laben: iirc rakudo's Makefile already uses pod2man | ||
flussence | whee, that bash thing hasn't been fixed properly... | 17:12 | |
moritz | though maybe only when the parrot backend is used | ||
flussence | «foo='() { echo not patched; }' bash -c foo» is today's test... | ||
vendethiel | Re-reading the syn another time, I realize I'm starting to "know" Perl 6. | 17:13 | |
boi, is it a long list of things to learn | |||
pmurias | what I mean is do we have exxamples of stuff we would like macros to be used for | ||
vendethiel | pmurias: I can give you aplenty | ||
colomon just found doc.perl6.org invaluable. <whoever did that>++ | |||
vendethiel | or plenty. Can't english, sorry | ||
laben | sorry, need to afk for some time, see you later | 17:14 | |
pmurias | vendethiel: I would love to see some | ||
vendethiel | pmurias: So, an obvious one is generating methods for some class, with more-or-less specific checks. Think an ORM | 17:15 | |
17:16
_slade_ joined
|
|||
pmurias | isn't that something that can be done with the metamodel? | 17:16 | |
vendethiel | You *can* hack the metamodel to do that, yes | ||
that's a pretty slow solution though | |||
and you *can't* count on static optimizations, for obvious reasons | |||
pmurias | the slow part is generating signatures for those methods? | 17:17 | |
vendethiel | you can't "see" them beforehand. How do you inline something that's added at runtime? | ||
17:17
ajr_ left
|
|||
pmurias | we can use the metamodel at compile time (BEGIN) | 17:17 | |
jnthn | japhb: envvars are now also in the usage :) | 17:18 | |
17:18
gfldex joined
|
|||
vendethiel | pmurias: hardly so if you want dynamic method bodies | 17:19 | |
17:19
kjs_ left
|
|||
vendethiel | especially considering the lexpads | 17:19 | |
jnthn | vendethiel: We never inline methods at compile time at present anyway; it's all left to the dynamic optimizer | 17:20 | |
vendethiel | alright, great then. | ||
even the EVAL'd ones? | |||
17:20
slavik left,
guru joined,
guru is now known as ajr_
|
|||
jnthn | vendethiel: We can inline across compilation units | 17:20 | |
The inliner doesn't care much. It only cares if they're blocks from different programming languages. | |||
vendethiel | good thing :) | 17:21 | |
jnthn | But if it's all Perl 6 code, no problem. | ||
17:21
laben left
|
|||
vendethiel | I guess, for an ORM, you could create every single part of the class through the MOP; add a fallback for the getter/setters with a lot of introspection, etc | 17:22 | |
basically what the ruby guys are doing. Looks a lot like macros, only it's slow | |||
(and failprone because of the complexity) | |||
vendethiel eat& | |||
jnthn | Macros could be more efficient and certainly more elegant here | ||
My point was just that you can build up classes at BEGIN time and not have to miss out on optimizations. | 17:23 | ||
ruoso | can the jit see through different meta-classes? | 17:24 | |
17:24
ajr_ left
|
|||
ruoso | if so, you could just implement a different meta-class and it would be jit'd, so using macros become a premature optimization | 17:25 | |
17:25
guru joined,
guru is now known as Guest24387
17:26
Guest24387 is now known as ajr_
|
|||
jnthn | ruoso: In terms of its specializations, it mostly cares about types rather than the particular meta-class implementing that type. | 17:27 | |
ruoso: Since meta-objects are just, well, objects, I've seen cases where it inlined bits of meta-objects. | |||
ruoso | right, at which point you get the same benefit than doing with a macro would add | 17:28 | |
pmurias | I'm not sure just generating a much of accessors with macros will be more elegant than with the metamodel | 17:30 | |
jnthn | pmurias: For simple accessors, likely not. For more elaborate things, macros could come off better. | 17:31 | |
pmurias | and optimizing something like my $flag = 0; $class.add_method($class, $accessor, sub {...; if $flag {...}; ... }) seems in the realm of possibility | 17:32 | |
17:33
ssutch joined,
slavik joined
|
|||
pmurias | generating tight numeric crunching code seems one marco use case | 17:34 | |
s/numeric/number | |||
jnthn | *nod* | 17:35 | |
yay, my big pan of chili is ready... | |||
nom & | |||
ruoso | I guess I have been too bruned by C++ templates in the past few years, and I just want to make sure that we're not doing the same mistake :) | 17:36 | |
17:36
b2gills joined
17:37
psch left
|
|||
pmurias | ruoso: are we in risk of that? | 17:40 | |
ruoso | I think if people start using macros as a way to write generic code instead of using the meta-model, yes | 17:41 | |
17:42
erkan joined
17:43
_slade_ left
|
|||
vendethiel | ruoso: you shouldn't even need to resort to the meta-model, really :) | 17:43 | |
the "main" feature of templates lies in our [::T] | |||
(most of the time, that is. Obviously, people went far too far in c++ with parsing libraries or other stupid nonsense. Some of these abuses are useful, like enable_if, a lot of others aren't) | 17:44 | ||
leont | vendethiel: having gone far too far, I can see your point ;-) | 17:45 | |
vendethiel | and; yeah; with EVAL you don't really "need" macros. Or even with a "less evil eval" (or "less eval evil"), as the MOP we have or the "define_instance_method" and stuff in Ruby | 17:46 | |
17:47
daxim_ left
|
|||
vendethiel | leont: to be honest, that's the only C++ I'm writing: abusing templates and stuff :P | 17:47 | |
when you see that people implemented lambda with them (before c++11 supported it) - even if they were quirky - you realize how far can people go. | 17:48 | ||
leont | Yeah. They work great until you make a minor mistake and they blow up with three pages of errorsx85 | ||
vendethiel | leont: to be fair, gcc and clang did a lot of work there in the last few years, and concepts will help as well. | ||
pmurias | the MOP is not evil in the sense EVAL is, it doesn't do any code as strings manipulation | 17:49 | |
vendethiel | pmurias: just like the other ruby equivalents I talked about! | ||
leont | Yeah, concepts would help a lot | ||
ruoso | I believe most of the c++ template usage is solved with Roles in Perl 6 | 17:50 | |
(the sane ones) | |||
pmurias | vendethiel: are the ruby equivalents inelegant? | ||
ruoso | and the crazier ones are solved with MOP | ||
vendethiel | pmurias: kind of. Easy to be abused, that's for sure | ||
m: role A[int]{...}; role A[5]{ subset Type of Str; }; role A[6]{ subset Type of Int; }; constant a = 5; say A[a]::Type.refinee.new | 17:51 | ||
Dependently typed Perl6 ? | |||
camelia | rakudo-moar 9814e8: OUTPUT«(timeout)» | ||
vendethiel | Dependently timed Perl6. | ||
17:51
Ven joined
|
|||
ruoso | The usage of macros that I think does make sense is as an easy way to introduce a new syntax without having to get too much into grammas specialization | 17:51 | |
pmurias | vendethiel: a lot of the speed issues with them can be solved by doing the magic at BEGIN time and a good compiler | ||
ruoso | for instance, the feed operator is kind of a macro | 17:52 | |
vendethiel | can I not expose the subset inside the class? The our fails :( | 17:53 | |
pmurias: c2?SufficientlySmartCompiler | |||
pmurias: so, that's one use-case. Another use-cases of macros are of course the to-maybe-exist "is parsed", that'd for example allow timotimo++'s ADT.p6 module to have a rather nice syntax | 17:54 | ||
(and in general, not have to quote everything) | |||
pmurias | vendethiel: just inlining closures with known outer values doesn't seem like something outside the realm of possiblity | ||
vendethiel | pmurias: this one doesn't :-) | 17:55 | |
pmurias: github.com/rails/rails/blob/08754f...ger.rb#L14 | |||
lizmat | jnthn++ for an excellent reply to FC | ||
vendethiel | rails has just everything like that :-) | ||
lizmat: link maybe :)? | |||
lizmat | not sure where p6l is being archived | ||
vendethiel | pmurias: also, ruby can get you really far with instance_eval that allows you to change the self's value for some time. | 17:56 | |
pmurias: a great example of that is squeel: github.com/activerecord-hackery/squeel/ A nice and cute DSL! | |||
pmurias | I have to leave now, but I'll look into that soon (and brush on my ruby) | 17:57 | |
lizmat | vendethiel: I guess it will wind up here at one point: www.nntp.perl.org/group/perl.perl6.language/ | 17:58 | |
pmurias | the macro use I'm most looking forward too is making ok(expr() eq "foo") make an equaly good error message as is(expr(), "foo") | ||
17:58
darutoko- joined
|
|||
pmurias | got to leave& | 17:58 | |
17:58
pmurias left
|
|||
lizmat | vendethiel: www.nntp.perl.org/group/perl.perl6....36016.html | 17:59 | |
vendethiel | .tell pmurias stuff in ruby does that too :-). It's really amazing | ||
yoleaux | vendethiel: I'll pass your message to pmurias. | ||
vendethiel | lizmat: thanks. That's the p5pumpking, right? | 18:00 | |
lizmat | no, rjbs is the pumpking | ||
FC is a very prolific committer | |||
vendethiel | fair enough -- my bad | 18:01 | |
18:01
darutoko left
|
|||
tony-o | lol | 18:01 | |
lizmat | oddly enough, jnthn's reply is not there yet | ||
18:02
SamuraiJack_ joined,
darutoko- left
|
|||
bartolin | There is an old ticket (RT #111046) which states that building Rakudo Star fails in a directory with a space in the name. I reproduced this with a recent version (from git) on a linux box. Looks like there are a lot of places where the space in the path causes problems. Do you think it's worth the trouble to fix this or is the answer "please build in a directory which doesn't contain spaces"? | 18:04 | |
synopsebot | Link: rt.perl.org/rt3//Public/Bug/Displa...?id=111046 | ||
ruoso | bartolin, it requires a deep review of the build system to make sure that all file references are made with the proper quotes | ||
18:05
Mso150_a joined
18:07
darutoko joined
|
|||
bartolin | ruoso: that's my impression to. Just trying to get it building I already had to modify nine different pieces of code (e.g. system calls from perl scripts or Makefiles from 3rdparty libraries) | 18:07 | |
18:08
treehug88 joined
18:11
laben joined
|
|||
[Coke] | bartolin: yes, it's worth fixing. | 18:11 | |
but it's a PITA, so no one has bothered yet. | |||
basically: every command we exec should "" its args. | |||
one of the rakudo.jvm tests hung, had to kill it. | 18:12 | ||
bartolin | I'm afraid the biggest problem is "make". | 18:13 | |
[Coke] | easy to wrap args in make. :) | ||
laben | sorry, i'm back | 18:14 | |
[Coke] | we're sorry too? ;) | ||
18:15
laben left
|
|||
jnthn | o.O | 18:15 | |
18:15
laben joined
|
|||
bartolin | hmm, I think I have to do some reading wrt make ;-) | 18:15 | |
laben | welp, seems like i have some net problems | 18:16 | |
so, it was easy to build the man page | 18:17 | ||
jnthn agrees with [Coke]++; spaces in paths are worth fixing, but a pain enough nobody did yet... | |||
masak | pmurias: not a centralized list, no. | 18:18 | |
pmurias: that sounds like a nice goal, though. | |||
ruoso didn't want to imply it was not worth fixing the file acces, fwiw | |||
masak | ruoso! \o/ | ||
vendethiel | \o/ | 18:19 | |
18:19
Hor|zon joined
|
|||
ruoso | i am trying to come out of the cave I've been in the past three years :) | 18:19 | |
masak | ruoso: long time, no see! | 18:20 | |
vendethiel | come check us out, we're doing pretty great :-) | 18:21 | |
we're nearly webscale now. | |||
(we just need some more sharding, I guess) | |||
18:22
[Sno] left
|
|||
ruoso | I've also been mostly working in build automation, not really writing apps | 18:22 | |
vendethiel | bartolin: just punish people with spaces in their folder names :P | 18:24 | |
18:24
Hor|zon left
|
|||
laben | mmh, where was the page with the test results of perl6 modules? cannot find it on perl6.org | 18:25 | |
bartolin | thanks for the feedback! I'll have a look for some LHF first (like quoting file names for system calls) | 18:30 | |
18:33
Ven left
18:37
ajr_ left
|
|||
FROGGS | laben: I think it should be here: host08.perl6.com:8080/report | 18:37 | |
18:38
chipotle joined
|
|||
laben | FROGGS: many thanks | 18:41 | |
18:42
kbaker left
|
|||
laben | mmh weird, TestML does not build here, what's going on? | 18:42 | |
tony-o | xxwhat is that? | 18:43 | |
laben | Too late for semicolon form of class definition | 18:47 | |
at lib/TestML/Document.pm:13 | |||
from github.com/ingydotnet/testml-pm6 | 18:48 | ||
FROGGS | that's the correct version: github.com/perl6-community-modules.../TestML.pm | ||
18:48
Hor|zon joined
|
|||
laben | bleh github search function sucks cobols | 18:50 | |
didn't find that one | |||
bartolin | jnthn: looks like you also fixed the segfault with moar from RT #122842, thanks! (btw, should I have reported that segfault as an issue at github instead?) | 18:52 | |
synopsebot | Link: rt.perl.org/rt3//Public/Bug/Displa...?id=122842 | ||
18:54
Hor|zon left
|
|||
jnthn | bartolin: That doesn't surprise me. | 18:55 | |
18:55
brrt joined
|
|||
jnthn | bartolin: The bug typically showed up if you ended up with a GC happening while an optimized list reify frame was held in a continuation (meaning inside a gather block somewhere) | 18:56 | |
18:57
Ven joined
|
|||
jnthn | bartolin: Which takes enough stars to align that it only went wrong now and then, but happens often enough that it was likely to trip a few things up | 18:58 | |
laben | FROGGS: thanks again, you saved me several headaches | 18:59 | |
FROGGS | :o) | ||
18:59
guru joined,
guru is now known as Guest54141
19:00
Guest54141 is now known as ajr_
19:03
Hor|zon joined,
Mso150_a_u joined
|
|||
raydiak | has anyone started/seen/heard of a p6 module for parsing and manipulating math equations/expressions? | 19:03 | |
19:03
Mso150_a left
|
|||
laben | for latex? | 19:04 | |
raydiak | no, just for math in general | 19:05 | |
laben | i see nothing of that in modules.perl6.org | ||
raydiak | yeah I didn't either, but it seemed really likely that someone would have started it already, so just figured I'd ask | 19:06 | |
moritz | raydiak: I've written a p5 module for that | ||
it turned out to be not very useful for me, but somebody else made a graphing/plotting websites where it's in heavy use | 19:07 | ||
raydiak | moritz: what's it called? maybe I'll at least steal some ideas if the code is easy for me to follow | ||
moritz | raydiak: Math::Expression::Evaluator | 19:08 | |
19:08
darutoko left
|
|||
raydiak | nice, thanks moritz++; reading | 19:09 | |
19:10
Hor|zon left
|
|||
laben | moritz: interesting, what was the use case you had for writing it? | 19:10 | |
moritz | laben: none, really :-) | 19:11 | |
laben: I was actually writing a turing complete interpreter | |||
laben: with a bit of nice syntax, function calls, lexical scopes and all that | |||
laben: just because I always wanted to do that | 19:12 | ||
laben: and the math part was the only thing that I though might be worth polishing and publishing | |||
laben | moritz: then the only thing that remains to be done is making a ACME::Turing::Machine package :P | 19:13 | |
19:14
rindolf joined,
sqirrel joined
|
|||
moritz wonders if the code still lives on that old desktop machine, or in a backup | 19:19 | ||
19:22
FROGGS[mobile] left
|
|||
timotimo | what'd i miss? | 19:24 | |
tony-o | mortiz is turing complete | 19:26 | |
timotimo | mhm, that'll be a good step towards our rise to absolute power | ||
19:26
SamuraiJack_ left
19:27
ghostlines joined
19:29
Mso150_a_u_v joined
|
|||
moritz is also bullshit complete | 19:29 | ||
19:30
Mso150_a_u left
19:31
spider-mario joined
|
|||
[Coke] | nope. rakudo.jvm is still very slow. | 19:32 | |
testing box only made it to S04 so far; it's nearly done by now. | 19:33 | ||
I will have to keep it disabled until I figure this out. | |||
laben makes a note for himself: always remember to reinstall modules after updating moarvm/nqp/rakudo | 19:36 | ||
vendethiel | oh, I think I noticed a typo in S03 | ||
19:36
Hor|zon joined
|
|||
lizmat | vendethiel: ?? | 19:36 | |
vendethiel | lizmat: I'm trying to pull out my reference :-) | ||
noted stuff on my phone | |||
laben | Missing or wrong version of dependency 'src/gen/m-BOOTSTRAP.nqp' | 19:37 | |
what could be causing this during a panda-build? | |||
tony-o | did you just rebuild perl6+moar ? | 19:38 | |
[Coke] | have you rebuilt anything else recently? | ||
laben | i did, but i thought i already rebuilt everything just not this module | 19:39 | |
oh well, let's re-rebuild everything | 19:40 | ||
19:41
Hor|zon left
|
|||
[Coke] | did you panda rebootstrap after the build? | 19:42 | |
laben | i'm trying to package everything up, so i try to avoid that | 19:44 | |
but we will know soon enough | |||
gosh dammit, i forgot Inline::Perl5 requires LibraryMake too, and forgot to rebuild that | 19:49 | ||
all is well now | |||
PerlJam | laben: rakudobrew is your friend | 19:51 | |
dalek | kudo/nom: 5870906 | (Elizabeth Mattijsen)++ | src/core/ (13 files): Second part of making IO up to spec with S16 | S32/IO synopsis updates. This was mostly about making IO::Path smarter: keeping the $*SPEC/$*CWD settings at creation time for later usage. And making sure all IO::Path methods map to the correct $!SPEC.samemethod (or composite). |
19:52 | |
ast: d9596f7 | (Elizabeth Mattijsen)++ | S32-io/io-path (4 files): Test adaptations for new S16|S32/IO changes |
19:53 | ||
lizmat | *phew* that's finally off my plate (for now) | 19:54 | |
I hope the ecosystem fallout will be minimal | |||
19:57
jack_rabbit joined
20:03
Mso150 joined
20:04
ecocode joined
20:05
Mso150_a_u_v left,
erkan left,
sqirrel left
20:07
lizmat left,
[Sno] joined
20:10
rmgk_ joined,
rmgk left,
rmgk_ is now known as rmgk
20:11
laben left,
fhelmberger joined
20:12
lizmat joined
20:16
fhelmberger left,
chipotle left
20:20
ivanshmakov left
20:22
spider-mario left,
laben joined
20:24
Mso150 left
|
|||
grondilu | weird error I can't reproduce: | 20:25 | |
Type check failed in binding $x; expected 'Real' but got 'Rat' | |||
isn't Rat acceptable as a return value for Real? | |||
m: sub f(--> Real) { 1/3 }; say f() | |||
camelia | rakudo-moar 9814e8: OUTPUT«0.333333» | 20:26 | |
grondilu | also, no line indication whatsoever and I didn't even have a $x variable in my code. | ||
20:27
ivanshmakov joined
|
|||
jnthn | m: say Rat ~~ Real | 20:29 | |
camelia | rakudo-moar 9814e8: OUTPUT«True» | ||
jnthn | m: my Real $x; $x := 1/3; | ||
camelia | ( no output ) | ||
jnthn | grondilu: It'd be a binding failing I'd imagine...but yeah, odd... | 20:30 | |
grondilu | no quite related to perl6, but I suffered performance issues today. I suspected too much use of the swap space. Tried to close applications, switched to console mode (killed X). Looked up memory usage with htop and it quite more meomory used than I would expect. When I sort processes by memory usage I don't find anything that uses that much. Maybe it is unfreed memory. Any idea how I could clean it? | 20:35 | |
lizmat makes it an early night | 20:36 | ||
grondilu | I guess I should ask that to #debian | ||
geekosaur | sadly figuring out memory usage is really difficult on modern operating systems | 20:39 | |
top etc. don't tell the whole story, because the whole story is extremely complex | 20:40 | ||
and can't really be represented in a 2D interface | |||
it's a complex tree with loops and shared nodes all over the place | |||
grondilu | geekosaur: is it true as well for CPU use? | 20:41 | |
because I've just checked and there's no way swap usage is the issue. | 20:42 | ||
geekosaur | not as much, on most general purpose computers. NUMA architectures can cause CPU scheduling to be vaguely similar though | 20:43 | |
as for CPU use, one thing that won't generally show (or at least not with any granularity) is interrupt processing | |||
show in top, that is | 20:44 | ||
20:44
brrt left
|
|||
raydiak | grondilu: have you already accounted for buffers/cache? | 20:48 | |
grondilu | raydiak: not sure what you mean. | 20:49 | |
raydiak | grondilu: run free -h | ||
and look at the difference in the used/free columns between the first and second line | |||
geekosaur | note that that is perhaps the most unreliable aspect of memory management; file buffers can and will be evicted at need, but other buffers actually represent program code and evicting them will generally cause thrashing | 20:50 | |
grondilu | -/+ buffers/cache: 317M 679M | ||
317M is used, 679M is free | 20:51 | ||
I have no idea what this is, though. | |||
raydiak | basically linux automatically "uses" pretty much all available ram for buffering and caching, until a process needs it, so you need to know when you're looking at "used" or "free" mem, if it is counting those or not | ||
the second line in the free output shows how much is actually available if all the buffers and caches were out of the way | 20:52 | ||
grondilu | 679M seems large enough to run the small [+] rand xx 100_000 benchmark I often use. | 20:53 | |
geekosaur | you migth do better using something like vmstat, or iostat if something is I/O bound (that is, the system is waiting on disk activity... but in that case if it's affecting general performance then you are thrashing and it hsould be pretty visible in vmstat) | 20:54 | |
20:55
xfix is now known as notfix
|
|||
jnthn | FROGGS: If you're happy it's tested enough, then rt.perl.org/Ticket/Display.html?id=63896 is closable now. It's the third oldest ticket in the queue. :) | 20:58 | |
20:58
kaare_ left
20:59
ggherdov left
|
|||
FROGGS | jnthn: thanks for the pointer :o) | 20:59 | |
20:59
Ven left
21:00
chipotle joined
|
|||
vendethiel | Isn't `foo $bar: 1` kinda ambiguous with `foo $bar.baz: 1`? | 21:01 | |
At least -- incosistent. | |||
FROGGS | vendethiel: what is `foo $bar: 1`? | ||
vendethiel | FROGGS $bar.foo(1) | ||
FROGGS | really? | 21:02 | |
damn | |||
21:02
ggherdov joined
|
|||
vendethiel | think 'so. | 21:02 | |
std: foo $bar: 1; | 21:03 | ||
std: foo $bar.baz: 1; | |||
camelia | std fc92e1e: OUTPUT«===SORRY!===Variable $bar is not predeclared at /tmp/9QpHyFh9RG line 1:------> foo ⏏$bar: 1;Check failedFAILED 00:01 142m» | ||
std fc92e1e: OUTPUT«===SORRY!===Variable $bar is not predeclared at /tmp/sCTokJeX3R line 1:------> foo ⏏$bar.baz: 1;Undeclared routine: 'foo' used at line 1Check failedFAILED 00:01 140m» | |||
vendethiel | std: my $bar; foo $bar: 1; | ||
camelia | std fc92e1e: OUTPUT«ok 00:01 143m» | ||
vendethiel | std: my $bar; foo $bar.baz: 1; | ||
camelia | std fc92e1e: OUTPUT«===SORRY!===Undeclared routine: 'foo' used at line 1Check failedFAILED 00:01 141m» | ||
vendethiel | std: my $bar; sub foo {}; foo $bar.baz: 1; | ||
camelia | std fc92e1e: OUTPUT«ok 00:01 142m» | ||
vendethiel | FROGGS: ^ this proves my point even further | ||
github.com/perl6/specs/pull/69 :o) some eyeballs please | 21:04 | ||
21:05
japhb joined
21:11
bartolin left
|
|||
gtodd | m: say 1,1,{ $^a + 1, $^b * 2 }...* | 21:15 | |
camelia | rakudo-moar 587090: OUTPUT«1 1 2 2 3 4 4 8 5 16 6 32 7 64 8 128 9 256 10 512 11 1024 12 2048 13 4096 14 8192 15 16384 16 32768 17 65536 18 131072 19 262144 20 524288 21 1048576 22 2097152 23 4194304 24 8388608 25 16777216 26 33554432 27 67108864 28 134217728 29 268435456 30 53687091…» | ||
gtodd | vendethiel: ? | ||
dalek | ast: 08ef117 | jnthn++ | S02-types/declare.t: Correct a bogus Complex constraint test. Didn't actually try it on Niecza, but pretty certain it will pass now too, so unfudged it for both Rakudo and Niecza. |
21:16 | |
21:23
grondilu left
|
|||
b2gills | m: '.'.IO.dir | 21:25 | |
camelia | rakudo-moar 587090: OUTPUT«No such method 'curupdir' for invocant of type 'IO::Spec::Unix' in method dir at src/gen/m-CORE.setting:15543 in block <unit> at /tmp/JSXK0QUUH0:1» | ||
21:28
Hor|zon joined
|
|||
jnthn | lizmat: ^^ looks like IO refactor fallout, at a guess... | 21:28 | |
timotimo | oh, the end limit test will be applied to the whole parcel itself, huh? | 21:31 | |
21:31
Alula joined
21:33
Hor|zon left,
grondilu joined
|
|||
dalek | kudo/nom: 0242728 | jnthn++ | src/vm/moar/Perl6/Ops.nqp: Remove outdated comment. |
21:35 | |
21:36
rindolf left,
virtualsue left
21:39
_slade_ joined
21:40
virtualsue joined
|
|||
b2gills | CompUnitRepo::Local::File.candidates probably shouldn't be using $*SPEC.rootdir as a separator. ( on Win32 .rootdir should be "\\\\.\\" or "C:\\" or Mu | 21:42 | |
21:44
ecocode left
21:45
ecocode joined,
kjs_ joined
21:49
ecocode left
21:52
ghostlines left
21:57
pmurias joined
|
|||
pmurias | vendethiel: how is something like that implemented in ruby? | 21:57 | |
yoleaux | 17:59Z <vendethiel> pmurias: stuff in ruby does that too :-). It's really amazing | ||
21:59
virtualsue left
22:01
treehug88 left
22:03
Guest27730 left
22:04
bowtie joined
22:05
bowtie is now known as Guest80734
22:06
Hor|zon joined
22:12
Hor|zon left
22:13
kjs_ left
22:27
kjs_ joined
22:34
davido__ left
22:35
davido__ joined
22:39
beastd left
22:42
laben left
22:53
davido__ left
|
|||
b2gills | m: my @a; @a[0][0] = False; @a[0;0] = True; say so @a[0;0] | 22:53 | |
camelia | rakudo-moar 024272: OUTPUT«True» | ||
b2gills | m: my @a; @a[0;0] = True; say so @a[0;0] | ||
camelia | rakudo-moar 024272: OUTPUT«False» | ||
22:54
davido__ joined
22:57
raiph joined
|
|||
grondilu | got it again: | 22:58 | |
===SORRY!=== | |||
Type check failed in binding $x; expected 'Real' but got 'Rat' | |||
22:58
kjs_ left
23:00
davido__ left
|
|||
grondilu | seems reliable this time | 23:01 | |
23:01
davido__ joined
|
|||
grondilu tries to strip the problematic code to bare minimal | 23:02 | ||
so weird. | 23:06 | ||
this work: | |||
use Clifford; sub random { [+] e(*)[^8] Z* (rand.round(.1) xx *) }; .say for random() xx 2; | |||
but this does not: | 23:07 | ||
use Clifford; sub random { [+] e(*)[^8] Z* (rand.round(.1) xx *) }; .say for random() xx 3 | |||
; | |||
though I guess I should get rid of the randomness before making any conclusion | |||
yes that depends of the value so it's module-specific. | 23:09 | ||
23:20
wk left
|
|||
grondilu | ok, got it. I was breaching a constraint: | 23:21 | |
subset TReal of Real where * != 0; class A { has TReal %.h{Int} }; my A $a .= new: :h(3 => pi); say A.new: :h(map {; .key => .value * 0 }, $a.h.pairs); | |||
shorter: | 23:22 | ||
23:22
PZt joined
|
|||
grondilu | m: subset TReal of Real where * != 0; class A { has TReal %.h }; say A.new: :h(foo => 0);' | 23:22 | |
camelia | rakudo-moar 024272: OUTPUT«===SORRY!=== Error while compiling /tmp/FddQ8MfY_BUnable to parse expression in single quotes; couldn't find final "'" at /tmp/FddQ8MfY_B:1------> s TReal %.h }; say A.new: :h(foo => 0);'⏏<EOL> expectin…» | ||
grondilu | ahh sorry | ||
m: subset TReal of Real where * != 0; class A { has TReal %.h }; say A.new: :h(foo => 0); | |||
camelia | rakudo-moar 024272: OUTPUT«Type check failed in binding $x; expected 'Real' but got 'Int' in method STORE_AT_KEY at src/gen/m-CORE.setting:10304 in method STORE at src/gen/m-CORE.setting:10111 in block at src/gen/m-CORE.setting:958 in method BUILDALL at src/gen/m-CO…» | ||
grondilu | correct error message should mention the subset 'TReal' and not 'Real' | 23:23 | |
23:29
raiph left
23:34
cosimo left,
cosimo joined
|
|||
grondilu got a segmentation fault trying to rebootstrap pand | 23:35 | ||
*panda | |||
23:40
pmurias left
23:46
b2gills is now known as info
23:48
info is now known as b2gills
23:54
avuserow left
|