»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'p6: say 3;' or rakudo:, std:, or /msg camelia p6: ... | irclog: irc.perl6.org | UTF-8 is our friend! | feather will shut down permanently on 2015-03-31 Set by jnthn on 28 February 2015. |
|||
grondilu | yullha: do you have an example of something you would do in Perl5 and could not do in Perl6? | 00:01 | |
timotimo | grondilu: it seems like they're suggesting the opposite; that perl6 can do too much | ||
alpha- | grondilu run all the xs-ified crap from cpan | 00:03 | |
:o) | |||
00:03
fhelmberger left
00:04
mohij left
00:05
lizmat joined
|
|||
yullha | grondilu I think that perl6 want to do too much and makes life less pleasent to experienced unix users | 00:05 | |
timotimo | you can still shell out and pipe out to other processes | 00:06 | |
i don't think it makes things less pleasant | |||
jercos | and natively call functions in libraries >.> can't discount that. | ||
yullha | let's say that perl 5 was kind of a shell on his own | ||
alpha- | how does anything perl do anything against UNIX Philosophy yullha ? | 00:07 | |
text pipes in, text pipes out | |||
timotimo | jercos: hum? | ||
oh, that was a response to my statement? shelling out? | |||
jercos | NativeCall is a major boost in the abilities of perl 6 without making those abilities part of perl 6 | 00:08 | |
yeah | |||
yullha | I don't think that native call functions has ever been easy on unix shells | ||
alpha- | yullha your question about creating a gz with perl is pretty silly imo | ||
to create a gz you pipe into gzip | |||
not into perl | |||
jercos | so not only can you do anything end-user unixy, like shelling out, you can also do things C-unixy, like call libraries without needing a specific binding. | ||
timotimo | if you're seeing perl as "a kind of shell", you're severely limiting yourself and perl | ||
b2gills | yullha: You're also assuming a particular unix variant, so may not be portable from say Linux to BSD. | 00:09 | |
timotimo | yeah, mac os more likely than BSD in general | 00:10 | |
yullha | well in unix working with function and working with files has always been two separated things | ||
some tools excell at one some at others | |||
how can you be good at both when they are so different concepts? | 00:12 | ||
b2gills | and anyway if I was going to write something other than a one-off tool, I would look for a module metacpan.org/search?q=gzip | ||
dalek | kudo-star-daily: a4a8796 | coke++ | log/ (9 files): today (automated commit) |
||
yullha | b2gills some of them are wrappers around the tool | ||
b2gills | So | 00:13 | |
yullha | some of them like RandomAccess cannot be reasonably efficient even if they work | ||
would be better just to not have them | |||
b2gills | If you want to be "reasonably efficient" you would be writing in C | 00:14 | |
Anyway Perl 6 has better process interop natively than Perl 5 | 00:15 | ||
timotimo | how can you excell at both integer and floating point arithmetic?! | ||
there is no reason why something shouldn't be good at both working with files and working with functions | |||
it's at best a false dichotomy | 00:16 | ||
00:19
spider-mario left
|
|||
yullha | I see files as the rivers which carry information and unix tools are the pipes; functions instead are a bit like the molecule which the pipes are made | 00:19 | |
b2gills | doc.perl6.org/type/Proc::Async seems to be better than say metacpan.org/pod/IPC::Run or metacpan.org/pod/IPC::Cmd | ||
yullha | depends at which level you put your language you may be good at one or the other | 00:20 | |
ingy | could a few people help me out and click this link: hello.firefox.com/W_FeEmtP_7c | ||
b2gills | If you're looking at it as little more than Awk + Sed + Bash, then Perl 5 may be a better fit for you | 00:21 | |
yullha | it's also much faster than awk + sed + bash | 00:22 | |
b2gills | ingy: I don't have a camera or mic; but I can hear you | ||
ingy | I wan to see how many people can join | ||
b2gills: can you see me too? | |||
b2gills | yes | 00:23 | |
ingy | click it people! | ||
yullha | ingy don't see nor hear | ||
not working for me | 00:24 | ||
b2gills | I plugged in a mic, but not working yet, let me see | ||
ingy | try to rejoin | ||
I think it's like a permalink video chat | |||
timotimo | yep | ||
ingy | I hear noise | 00:25 | |
but no voices | |||
b2gills | I've never used the mic on this headset so it may be broken | 00:26 | |
avuserow | it's telling me that there are already two people in that conversation and doesn't show anything... | 00:28 | |
ingy | avuserow: hmm. I thought I'd done 3 before | ||
I wanted to see if it would go 10 or more | 00:29 | ||
raydiak | yullha you are of course welcome to use a less-featureful, less-portable, less-extensible tool if that fits better into your interpretation of the right way to do things...you are correct: that thing you are talking about whatever and whyever it is...it is not Perl 6, which has a greater range of expression along more axii than any other programming language I've encountered...that's part of our own philosophy | 00:32 | |
that being said, part of doing that means letting people use it in unixy ways, and we do try very hard to allow that and make it practical :) | 00:33 | ||
00:33
tinyblak joined
00:36
yullha left
|
|||
raydiak | was it something I said? | 00:38 | |
00:38
adu joined
00:46
laouji joined
|
|||
TimToady | raydiak: let's hope so | 00:52 | |
raydiak | heh true...didn't want to feed it, but...didn't wanna keep my mouth shut either | 00:58 | |
...fingers...whatever... | 00:59 | ||
01:02
yeahnoob joined
|
|||
geekosaur considered asking at one point if they had trouble walking and chewing gum at the same time... | 01:12 | ||
01:12
skids joined
|
|||
TimToady | ah, the address appears to go to France | 01:16 | |
probably just a bit too much wine in this case :) | |||
japhb | .ask ssutch Still interested in working on github.com/samuraisam/p6-pb ? | 01:17 | |
yoleaux | japhb: I'll pass your message to ssutch. | ||
01:21
laouji_ joined
01:26
laouji_ left
01:35
bayprogrammer left,
bayprogrammer joined
01:36
Possum left
01:50
aborazmeh left
01:51
jack_rabbit joined
02:16
aborazmeh joined,
aborazmeh left,
aborazmeh joined
02:17
isBEKaml left
02:18
kaare__ left
02:20
kaare__ joined
|
|||
Mouq | There aren't any specific examples given for #78670... can we consider it closable with tests? | 02:23 | |
synopsebot | Link: rt.perl.org/rt3//Public/Bug/Displa...l?id=78670 | ||
Mouq | m: multi foo(Int $x, Str $b) {}; my $a = "bcd"; foo $a | 02:24 | |
camelia | rakudo-moar 070196: OUTPUT«5===SORRY!5=== Error while compiling /tmp/sguTFCxzauCalling 'foo' will never work with argument types (Mu) Expected any of:  :(Int $x, Str $b)at /tmp/sguTFCxzau:1------> 3 foo(Int $x, Str $b) {}; my $a = "bcd"; 7⏏5foo $a» | ||
Mouq | m: multi foo(Int $x, Str $b) {}; my $a = "bcd"; foo $a, "bar" | 02:25 | |
camelia | rakudo-moar 070196: OUTPUT«Cannot call 'foo'; none of these signatures match::(Int $x, Str $b) in sub foo at /tmp/S66ShGWzau:1 in block <unit> at /tmp/S66ShGWzau:1» | ||
Mouq | Ahh, it just seems to be errors the compiler can catch early | ||
I'll add this to the ticket | |||
02:26
pullphinger joined
02:30
telex left
02:32
telex joined
02:52
chenryn joined
|
|||
TimToady | rosettacode.org/wiki/JortSort#Perl_6 | 02:54 | |
02:55
BenGoldberg left
03:04
aborazmeh left
03:06
muraiki_ joined
03:07
sunnavy joined
|
|||
skids | TimToady: It is unclear to me from the description, but maybe the intent is that the original array is supposed to be sorted as a side-effect. | 03:08 | |
03:08
muraiki left
|
|||
Mouq | m: say [1,2,3].sort.WHAT; #hmm… | 03:09 | |
camelia | rakudo-moar 070196: OUTPUT«(Parcel)» | ||
Mouq | m: sub mysort(::T $a) { T($a.sort) }; say mysort([1,2,3]).WHAT | 03:14 | |
camelia | rakudo-moar 070196: OUTPUT«(Array)» | ||
03:17
muraiki_ left
03:18
Psyche^ joined
03:22
Patterner left
03:23
raiph left
03:24
bayprogrammer left
|
|||
jdv79 | JortSort? idgt. | 03:27 | |
TimToady doesn't think sort should be returning a Parcel | 03:30 | ||
03:30
raiph joined
|
|||
timotimo | tadzik: don't we want to throw out IO::Select? | 03:31 | |
03:32
noganex joined
03:34
bayprogrammer joined
03:35
noganex_ left
|
|||
grondilu | "you're the first one here" | 03:44 | |
oops ^please ignore | |||
03:47
grondilu left
|
|||
dalek | kudo/nom: 63045c3 | TimToady++ | src/ (2 files): unify add_categorical errors As a side effect, spaces will no longer be tolerated in operators. Even if we decided to allow this someday, this is conservative. |
03:54 | |
ast: be5fa53 | TimToady++ | S06-operator-overloading/sub.t: check new add_categorical errors |
03:55 | ||
04:00
laouji left,
laouji joined
04:04
Sqirrel left,
ugexe left,
laouji left
04:09
laouji joined
|
|||
jdv79 | doc.perl6.org/routine/parse - is that correct? | 04:12 | |
timotimo | what do you suspect to be wrong? | 04:17 | |
having two candidates on that page? | 04:18 | ||
it seems strange that they have different documentation texts | 04:19 | ||
04:21
anaeem1 joined
04:23
ugexe joined
|
|||
jdv79 | yeah, i don't see two candidates in the code ^H | 04:27 | |
04:32
jack_rabbit left
04:41
tmch left
04:42
petercommand joined
|
|||
Mouq | Erm. The other one is here: doc.perl6.org/language/grammars | 04:44 | |
04:45
raiph left
|
|||
jdv79 | is that a mess or is that cool? i'm a little unsure with how these docs work. | 04:48 | |
adu | hi | 04:51 | |
04:55
jack_rabbit joined
|
|||
TimToady | m: sub infix:<+ ->($a,$b) { $a + $b }; say 21 + - 21 | 04:57 | |
camelia | rakudo-moar 63045c: OUTPUT«5===SORRY!5=== Error while compiling /tmp/SoSPhYJ0VJToo many symbols provided for categorical of type infix; needs only 1at /tmp/SoSPhYJ0VJ:1------> 3sub infix:<+ ->7⏏5($a,$b) { $a + $b }; say 21 + - 21» | ||
04:59
laouji_ joined
05:03
laouji_ left
05:04
diana_olhovik left
05:10
diana_olhovik_ joined
|
|||
dalek | kudo/nom: 897bef3 | Mouq++ | src/ (2 files): Make dupprefix a typed error |
05:28 | |
ast: afcf797 | Mouq++ | S03-operators/misc.t: Add tests for RTs #73198 and #76436 |
05:29 | ||
synopsebot | Link: rt.perl.org/rt3//Public/Bug/Displa...l?id=73198 | ||
dalek | kudo/nom: ffa13ff | Mouq++ | src/core/Exception.pm: Fix typo in exception message |
05:31 | |
05:36
jack_rabbit left
05:41
Aaron`J left
05:59
[Sno] left
06:20
diana_olhovik_ left
|
|||
dalek | kudo/nom: a99a572 | Mouq++ | src/core/metaops.pm: Fix RT #123178 |
06:32 | |
synopsebot | Link: rt.perl.org/rt3//Public/Bug/Displa...?id=123178 | ||
06:35
mr-fooba_ joined
06:36
bjz joined
06:37
mr-foobar left
06:43
bjz left
06:45
infernal joined
|
|||
dalek | ast: 3545b6a | Mouq++ | S03-metaops/hyper.t: Add test for RT #123178 |
06:48 | |
synopsebot | Link: rt.perl.org/rt3//Public/Bug/Displa...?id=123178 | ||
06:55
wicope joined
06:57
Rounin joined,
diana_olhovik_ joined
06:58
[Sno] joined
07:00
skids left
|
|||
dalek | ast: e75f03b | Mouq++ | S32-array/splice.t: Add test for RT #116897 |
07:03 | |
synopsebot | Link: rt.perl.org/rt3//Public/Bug/Displa...?id=116897 | ||
07:07
aborazmeh joined,
aborazmeh left,
aborazmeh joined
07:15
rindolf joined
|
|||
[Tux] | m: $*OUT.nl = Str | 07:23 | |
camelia | rakudo-moar a99a57: OUTPUT«Cannot unbox a type object in block at src/gen/m-CORE.setting:16933 in block <unit> at /tmp/pK2BEhyEj3:1» | ||
[Tux] | interesting | ||
07:23
esaym153 left,
mr-fooba_ left
|
|||
[Tux] | even more interesting: | 07:26 | |
m: $*OUT.nl = "" | |||
camelia | rakudo-moar a99a57: OUTPUT«Invalid string index: max 4294967295, got 4294967295 in block at src/gen/m-CORE.setting:16933 in block <unit> at /tmp/bbah0AsX5r:1» | ||
[Tux] | oepsie | ||
make a ticket? | |||
07:27
adu left
|
|||
TimToady | sure | 07:28 | |
m: subset checked-int32 of int32 where * ~~ int32.Range; my checked-int32 $x = 2_000_000_000; say $x | |||
camelia | rakudo-moar a99a57: OUTPUT«Type check failed in assignment to '$x'; expected 'checked-int32' but got 'Int' in block <unit> at /tmp/J2VbwAltCy:1» | ||
TimToady | m: subset checked-int32 of int32 where * ~~ int32.Range; my checked-int32 $x = nqp::unbox_i(2_000_000_000); say $x | ||
camelia | rakudo-moar a99a57: OUTPUT«Type check failed in assignment to '$x'; expected 'checked-int32' but got 'Int' in block <unit> at /tmp/DhbKqli54N:1» | ||
TimToady | m: subset checked-int32 of int32 where int32.Range; my checked-int32 $x; say $x | 07:30 | |
camelia | rakudo-moar a99a57: OUTPUT«(checked-int32)» | ||
07:30
esaym153 joined
|
|||
TimToady | m: subset checked-int32 of int32 where int32.Range; my checked-int32 $x = 0; say $x | 07:30 | |
camelia | rakudo-moar a99a57: OUTPUT«Type check failed in assignment to '$x'; expected 'checked-int32' but got 'Int' in block <unit> at /tmp/P51rLwjdlY:1» | ||
07:30
bjz joined
|
|||
TimToady | seems like that could work a little better | 07:30 | |
in particular it'd be nice if our literals could be allomorphic to native types | 07:31 | ||
m: subset checked-int32 of int32 where int32.Range; my checked-int32 $x = 0.int8; say $x | 07:32 | ||
camelia | rakudo-moar a99a57: OUTPUT«No such method 'int8' for invocant of type 'Int' in block <unit> at /tmp/1wI5NBTIfl:1» | ||
07:39
yeahnoob left
|
|||
[Tux] | m: $*OUT="";"Hello".say | 07:40 | |
camelia | rakudo-moar a99a57: OUTPUT«Too many positionals passed; expected 1 argument but got 2 in method print at src/gen/m-CORE.setting:1186 in sub say at src/gen/m-CORE.setting:17983 in method say at src/gen/m-CORE.setting:1185 in block <unit> at /tmp/OADTYlF8Vf:1» | ||
[Tux] | shouldn't it be guarded against? | 07:41 | |
07:43
alini left
07:47
aborazmeh left
07:52
_mg_ joined
|
|||
[Tux] | please compare these two: | 07:53 | |
m: .say for (1, "", Str, "a").map(~*) | |||
camelia | rakudo-moar a99a57: OUTPUT«1use of uninitialized value of type Str in string context in block <unit> at /tmp/6uSh0Uwm3v:1a» | ||
[Tux] | m: .say for (1, "", Str, "a").map(*//"") | ||
camelia | rakudo-moar a99a57: OUTPUT«1(Str)a» | ||
[Tux] | in the first I hoped ~* to stringify Str to "" | 07:54 | |
in the second I expect "" instead of "(Str)" | |||
Mouq | m: .say for (1, "", Str, "a").map({$_//""}) | 07:55 | |
camelia | rakudo-moar a99a57: OUTPUT«1a» | ||
Mouq | * and // don't curry :P | ||
I fear * has become yet-another-list-to-memorize | 07:57 | ||
Mostly, it does what you want | 07:58 | ||
But when it doesn't, the fact that it didn't is usually rarely obvious | |||
s/usually// | |||
[Tux] | .o( so much to remember ...) | ||
should I RT the fact that one can assign a string to $*OUT? | 07:59 | ||
moritz | I don't think so | ||
dynamic variables aren't typed, afaict | |||
so GIGO applies | 08:00 | ||
[Tux] | ok | ||
08:00
fhelmberger joined
|
|||
TimToady | and we don't want to prevent assigning a differently typed object that happens to duck type the IO ops | 08:00 | |
[Tux] | good reason | ||
tadzik | timotimo: it's absolutely useless these days, perhaps we should :) | 08:02 | |
08:04
fhelmberger left
08:05
prime- left
08:07
larion left
|
|||
TimToady | I supsect *//"" not working is just a bug | 08:07 | |
[Tux] | shall I ticket it? You can always reject it later | ||
TimToady | it seems pretty obvious what it should do | 08:08 | |
it's not like we've stolen the meaning of * for something else with // | |||
08:08
Humbedooh left
|
|||
TimToady | so yeah, I think it's just NYI/bug | 08:09 | |
08:09
prime joined
08:13
zakharyas joined
08:14
kjs_ joined,
Humbedooh joined,
Sqirrel joined
|
|||
nwc10 | www.raspberrypi.org/launch-day-what...e-website/ -- It would have been really nice to have put our extremely secret test setup with HipHop Virtual Machine into production, but that’s not yet well enough tested for primetime although a seven-fold performance increase on page rendering certainly would be nice. | 08:18 | |
xiaomiao | nwc10: that's ... kinda ... horribly sad | 08:21 | |
10 req/s is roughly what you get with very bad php and no optimization or caching at all | |||
... on a puny old server | |||
nwc10 | that's not 10 req/s for static content | 08:22 | |
xiaomiao | yes | 08:23 | |
uhm | |||
if you don't have horribly crufty crap php ... my baseline is currently about 50 req/s per cpu as lower limit | 08:24 | ||
so a 50Eur/mo server would handle about 400 req/s worst case | |||
if one were to use proper caching this would end up as "we've saturated the network connection" anyway | 08:25 | ||
08:28
Kristien joined,
kjs_ left
08:29
rurban joined,
darutoko joined
08:36
laouji_ joined
08:40
Humbedooh left
08:41
laouji_ left
|
|||
Kristien | hi | 08:41 | |
abraxxa | xiaomiao: where do you have those performance numbers from? | 08:43 | |
xiaomiao | abraxxa: experience | 08:44 | |
abraxxa | i'm happy if my Catalyst app gets 10/sec | ||
xiaomiao | last time I was involved in tuning the s*&$ out of a bad drupal pile of stupid we ended up at >1500req/s mostly-cached | 08:45 | |
08:45
yeahnoob joined,
Kristien left
|
|||
abraxxa | that's without any caching | 08:46 | |
xiaomiao | flask, uncached: Requests per second: 3071.21 [#/sec] (mean) | ||
abraxxa | as my apps aren't dynamic webpages but webapps caching doesn't make sense because the data is changing all the time | ||
xiaomiao | on a crappy old (quadcore) desktop that has less than half the horsepower of any server I want to use | ||
moritz | and it really, really depends on the application | 08:49 | |
xiaomiao | for a page with lots of templates and DB access - 91msec according to firefox, which means 10 req/s *per cpu*, so about 100req/s per server, uncached | ||
moritz | and the underlying database | ||
xiaomiao | mediawiki, 1.6sec with all tricks to speed it up applied - 0.6 req/s per CPU | 08:50 | |
moritz | and then you install semantic mediawiki, and it becomes even slower :( | 08:51 | |
08:51
kaleem joined
|
|||
xiaomiao | well, that is SMW | 08:51 | |
doing up to 40k DB queries per page view | |||
moritz | eeks | ||
xiaomiao | thus making it slower to have the database on a dedicated machine as ethernet latency dominates query time | 08:52 | |
90 CPU-seconds to render that page :D | |||
08:54
rindolf left
08:57
Ven joined
08:58
alini joined
09:02
Humbedooh joined,
Ven left
09:06
Kristien joined,
Ven joined
|
|||
Kristien | what to do | 09:08 | |
moritz | Kristien: strive for world domination! | 09:11 | |
Kristien | that'd mean using Perl! | 09:12 | |
sounds good :) | |||
09:14
brrt joined,
fhelmberger joined
|
|||
dalek | c: c68a8fd | moritz++ | lib/Type/Cool.pod: Any: many of those methods also exists in sub form |
09:15 | |
c: 624920c | moritz++ | lib/Type/Cool.pod: Cool: subroutine forms |
|||
c: 30f8f0a | moritz++ | lib/Type/Cool.pod: log10; examples |
|||
Ven | ETOOHUBRIS | ||
09:17
virtualsue joined
09:19
espadrine left
|
|||
Kristien | Rust is cool. | 09:22 | |
09:23
larion joined
09:24
Kristien left
09:25
laouji left,
dakkar joined,
laouji joined
|
|||
brrt | no, rust is a complex oxidation product of iron | 09:25 | |
not necessarily cool | 09:26 | ||
although it might be sometimes | |||
jnthn | o/ | ||
raydiak | \o | 09:27 | |
brrt | \o | ||
09:27
Akagi201 left
09:30
kjs_ joined
09:31
yeahnoob left
09:37
Akagi201 joined
09:41
Akagi201 left
|
|||
jnthn | Ooh: video.fosdem.org/2015/devroom-perl/ | 09:42 | |
Ven | amazing! (fosdem people)++ | 09:43 | |
Ven cuts his starcraft video to watch an even more futuristic one *g* | |||
09:48
espadrine joined
|
|||
Ven | "this is what we call type inference" i'm sorry - what? | 09:53 | |
09:55
FROGGS joined,
donaldh joined
09:56
laouji left
|
|||
Ven | m: subset Foo of Str where *.chars > 0; sub foo(Str){}; sub bar(){foo(5);} | 09:56 | |
camelia | rakudo-moar a99a57: OUTPUT«5===SORRY!5=== Error while compiling /tmp/RM05gmA80HCalling 'foo' will never work with argument types (int) Expected: :(Str $)at /tmp/RM05gmA80H:1------> 3 *.chars > 0; sub foo(Str){}; sub bar(){7⏏5foo(5);}» | ||
Ven | m: subset Foo of Str where *.chars > 0; sub foo(Foo){}; sub bar(){foo(5);} | ||
camelia | ( no output ) | ||
Ven | *could it* be made to work? like, sure it can't assess the "where", but the subsetee might be | 09:57 | |
FROGGS | o/ | 09:59 | |
Ven | \o FROGGS | ||
jnthn | Ven: Quite possibly could | ||
Ven: The hard part is that *.chars isn't known to be pure, though... | 10:00 | ||
Ven | jnthn: why is that a problem? I'm just asking if it's possible to get a preliminary check on the Str part | ||
and check "where" at run-time | |||
jnthn | Ven: Oh... | 10:01 | |
Ven: Yes | |||
I thought you meant checking the whole constraint at compile time :) | |||
Ven | I mean, I'd love to see that, but I havn't yet to see a good solution for that that doesn't involve dependent types or at least phantom ones... | 10:02 | |
.oO( but it's perl6, you never know I guess ) |
|||
raydiak | good night #perl6 | ||
Ven | gn raydiak ! | ||
jnthn | 'night, raydiak | 10:04 | |
10:04
infernal left
10:05
laouji joined
10:06
virtualsue left
10:08
sqirrel_ joined
10:11
rindolf joined
|
|||
nwc10 | jnthn: do you know which commits in MoarVM/NQP or Rakudo relate to these new spectests? github.com/perl6/roast/commit/11c7...652d588a03 | 10:11 | |
jnthn | nwc10: github.com/MoarVM/MoarVM/commit/86...0dc88ba141 | 10:12 | |
10:14
esaym153 left
10:15
esaym153 joined
|
|||
Ven notices that, sadly, the 5.22 video has missing sound | 10:17 | ||
nwc10 | Lee has just also noted that on #london.pm | ||
buy rjbs beer, and maybe he can dub a new sountrack | |||
donaldh | FROGGS: I got NativeCall working on ARM raspberry pi, but only by hacking dyncall to use ARM calling conventions instead of ARMHF. | 10:18 | |
nwc10 | (but, important, probably not "buy and *ship* rjbs beer", if I understand Pennsylvania licensing) | ||
donaldh: is that an upstream bug? | |||
jnthn | From what I saw yesterday, it's a "we hardcode something we shunt in Moar" bug | 10:19 | |
nwc10 | ah OK. That might be easier to fix :-/ | ||
jnthn | donaldh: Please can you gist me the diff that gets it working? | ||
donaldh | FROGGS: It turns out that dcMode silently ignores unrecognised DC_CALL_ constants that are not compatible with the platform selected dyncall code. | ||
Yes, it's a bug in dyncall. | 10:20 | ||
jnthn | Oh, dyncall bug? :( | ||
Darn. | |||
donaldh | So far as I can tell, armhf backend in dyncall is broken. | ||
FROGGS | donaldh: that means we have to either probe for that, or look for the right flags for arm | ||
jnthn | Grrr. I'd thought it was just that we were telling dyncall to use the wrong convention. | ||
FROGGS | donaldh: which calling convention did work in the end? | ||
jnthn: well, I think we are | 10:21 | ||
jnthn: we are telling that it should use DC_CALL_C_X86_CDECL on arm, which is wrong | |||
donaldh | And unfortunately the dyncall code is hardcoded to select ARMHF based on gcc builtin #defines | 10:22 | |
FROGGS | donaldh: so you hacked dyncall in the end? | 10:23 | |
donaldh: can you gist the diff of dyncall and moarvm? | |||
donaldh | gist.github.com/donaldh/ebfb4351736ce9252409 | 10:25 | |
10:26
infernal joined
10:28
Ven left
|
|||
donaldh | FROGGS: as a separate issue, dcMode silently fails when passed a mode that is not compatible with the compiled in backend for the desired architectre | 10:29 | |
FROGGS: also, the docs say it is necessary to call dcReset after dcMode but I haven't checked if it makes any difference | 10:30 | ||
10:30
alini left
10:31
infernal left
|
|||
donaldh | every dyncall backend supports DC_CALL_C_DEFAULT and uses the appropriate default calling convention for the architecture | 10:31 | |
10:32
rindolf left
|
|||
FROGGS | ahh, interesting | 10:32 | |
donaldh | Also DC_CALL_C_X86_CDECL is not actually implemented on x64 and is silently ignored :-) | ||
FROGGS | hehe | 10:33 | |
jnthn | From get_calling_convention it seems our default is to pass DC_CALL_C_DEFAULT | 10:34 | |
donaldh | if you were to call DCint dcGetError ( DCCallVM * vm ); after calling dcMode, you'd get DC_ERROR_UNSUPPORTED_MODE | 10:36 | |
Have a look at github.com/MoarVM/dyncall/blob/mas..._x64.c#L67 to see what actually works on X64 | 10:37 | ||
FROGGS | donaldh: I guess we could put a probe (into build/probe.pm) that compiles a test lib with a function with enough params, and pick the one calling convention that works | ||
then we can put that into the generated config.c, and use that as a default in NativeCall | 10:38 | ||
donaldh | FROGGS: yes, but dyncall doesn't support choosing a better backend. Preprocessor macros choose a single backend which has limited modes. | ||
Sure, we could reverse engineer which preprocessor macros to override, but that's not maintainable. | 10:39 | ||
nwc10 | if this is a significant bug, why are we the first project to hit it? | 10:40 | |
donaldh | Or just patch dyncall to not select broken backends. | ||
Well I hit it because I tried to call mmap/6 on raspberry pi. Bug manifests for args > 4 | |||
So it's not a significant bug. It only affects an unusual platform. | 10:41 | ||
nwc10 | I don't know the differences in the calling conventions (well enough) (because really I only know the OABI) but I assume that it's what happens after you've used up r0 to r3 | 10:42 | |
10:42
xinming left
|
|||
nwc10 | an "unusual" platform of over 5 million devices. | 10:42 | |
donaldh | Unusual for dyncall ;-) | 10:43 | |
nwc10 | but also, how many functions people try to dyncall have 5+ arguments? | ||
arnsholt | We had a visitor at some point that said that libffi is better than libdyncall | ||
donaldh | nwc10: have a look at github.com/MoarVM/dyncall/blob/mas...rm_armhf.S and github.com/MoarVM/dyncall/blob/mas...rm_armhf.c to make your eyes bleed | ||
arnsholt | Wasn't clear to me how and why, though | ||
(Also, IIRC jnthn had trouble getting libffi working on Windows) | |||
nwc10 | I remember that too | 10:44 | |
libffi seems to support a couple of the Unixes that dyncall doesn't (or didnt yet) | |||
donaldh | nwc10: armhf calling conventions is new to Raspberry PI 2. AFAIK hardfloat was not supported on PI 1 | ||
nwc10 | IIRC AIX and HP/UX are a bit fun | ||
aaaaaaaah | |||
that's not 5 million :-) | |||
but hangon | 10:45 | ||
2 is intended to be 99.99% (or better) compatible | |||
the default distro for the Pi (1 and 2) is a rebuild of Debian's armhf, but for minimum spec ARMv6, not ARMv7 | |||
10:45
infernal joined
10:46
rindolf joined
10:47
smls joined
|
|||
smls | m: say | 10:47 | |
camelia | rakudo-moar a99a57: OUTPUT«5===SORRY!5===No valid term seen where one is requiredat /tmp/dg63mxWSAg:1------> 3say7⏏5<EOL> expecting any of: argument listOther potential difficulties: Unsupported use of bare 'say'; in Perl 6 please use .say…» | ||
smls | this error message used to be more awesome. | ||
10:48
xinming joined
|
|||
nwc10 | donaldh: yes, for starters I don't understand all the uncontional flds instructions | 10:50 | |
dalek | pan style="color: #395be5">perl6-examples: 398c217 | paultcochrane++ | categories/99-problems/P06-ajscogo.pl: [99-problems] add example from ajscogo The code here is a slightly modified version of that mentioned in PR #14 |
10:51 | |
pan style="color: #395be5">perl6-examples: 010600a | paultcochrane++ | categories/99-problems/P06-ajscogo.pl: [99-problems] .elems unnecessary when performing math ops on an array |
|||
pan style="color: #395be5">perl6-examples: fb44624 | paultcochrane++ | categories/99-problems/P06-ajscogo.pl: [99-problems] use .end instead of computing its value |
|||
pan style="color: #395be5">perl6-examples: 6344083 | paultcochrane++ | categories/99-problems/P06-ajscogo.pl: [99-problems] simplify single-element list check |
|||
El_Che | perl devroom talks are coming in: video.fosdem.org/2015/devroom-perl/ | 10:52 | |
a few without audio though :( | |||
10:55
kjs_ left
10:56
telex left
10:57
rindolf left,
rindolf joined
10:58
alini joined,
telex joined,
kjs_ joined
10:59
virtualsue joined
11:03
sqirrel_ left
11:05
kjs_ left
11:06
laouji left
11:09
_mg_ left
11:12
oetiker left
11:13
kjs_ joined
|
|||
FROGGS | El_Che: well, I had heared (and seen) that the mic had low batteries at afternoon | 11:35 | |
11:39
brrt left
11:42
infernal left
11:48
aborazmeh joined,
aborazmeh left,
aborazmeh joined
|
|||
DrForr_ | Yeah, we tried to keep track and as I recall we had two units, but that probably didn't get the priority it should have. | 11:49 | |
smls | Hm, why does p6doc's htmlify say "Initializing ...===SORRY!===Missing or wrong version of dependency 'src/gen/m-CORE.setting'" | 11:51 | |
11:51
kjs_ left
|
|||
smls | my perl6 works fine for REPL and command-line use | 11:52 | |
tadzik | sounds like you didn't update p6doc after updating rakudo | ||
modules need to be recompiled after you do | |||
smls | how do i find out which module needs to be updated? | 11:54 | |
11:54
kjs_ joined
|
|||
moritz | locate '*.moarvm' # :( | 11:54 | |
smls: normally I just do a perl6-m rebootstrap.pl in panda | |||
smls | ok, I'll try that | ||
11:54
infernal joined
|
|||
tadzik | if you use rakudobrew, updating rakudo automatically updates modules too | 11:55 | |
smls | I do use rakudobrew, not sure what went wrong | 11:56 | |
tadzik | huh | ||
moritz | if there are local precompiled modules, that won't help you | ||
git clean -xdf # sledge hammer solution for that one | 11:57 | ||
smls | Oh, it looks like "rakudobrew build moar" rebuilds Moar but then fails to rebuild installed modules because it somehow managed to cause merge conflicts in ~/.rakudobrew/moar-HEAD/panda/ext/ | 12:02 | |
tadzik | ahh | ||
yeah :( | |||
panda did that recently | |||
git-- | |||
12:02
cognominal left
|
|||
tadzik | we moved from submodules to subtrees (?) and it confused git greatly | 12:03 | |
rakudobrew should probably cry about it louder | |||
12:03
[particle] joined
12:05
[particle]1 left
12:08
infernal left
12:09
[particle]1 joined,
[particle] left,
infernal joined
12:14
laouji joined
|
|||
FROGGS | rjbs: your talk only has partial audio :o( video.fosdem.org/2015/devroom-perl/ | 12:15 | |
12:15
infernal left
12:18
laouji left
12:19
infernal joined,
kjs_ left
12:21
kjs_ joined
12:22
kjs_ left
12:24
oetiker joined
12:27
infernal left
12:28
infernal joined
12:29
sqirrel_ joined
12:32
infernal left
12:34
spider-mario joined
12:36
infernal joined
12:41
infernal left,
oetiker left
12:42
aborazmeh left
12:43
Ven joined
12:45
anaeem1__ joined
12:46
oetiker joined
|
|||
Ulti | FROGGS I was just about to link that :) | 12:48 | |
12:49
anaeem1 left,
anaeem1__ left
12:51
infernal joined,
oetiker left
12:52
oetiker joined
12:53
Possum joined,
rindolf left
|
|||
rjbs | FROGGS: :'( - maybe I should re-record it! :-) | 12:56 | |
FROGGS | rjbs: you have to... I missed your talk at the FOSDEM :o( | ||
nwc10 | rjbs: irclog.perlgeek.de/perl6/2015-03-04#i_10220612 | 12:57 | |
rjbs | FROGGS: I'll give it again in YAPC::NA and probably OSCON. | ||
nwc10: Oh, hold out for beer? Wise... | |||
El_Che | rjbs: your fosdem talk is online: video.fosdem.org/2015/devroom-perl/...o_come.mp4 | 13:02 | |
I meant "FROGGS, rjbs' talk is online" :) | 13:03 | ||
13:09
FROGGS left
|
|||
rjbs | El_Che: The thing is that apparently it's missing a ton of audio. | 13:11 | |
El_Che | yours as well? | 13:12 | |
damn | |||
timotimo | hm, it looks like modules_ecosystem_perl6.mp4modules_ecosystem_perl6.mp4 is missing a bit from the beginning | 13:21 | |
13:25
sqirrel_ left
|
|||
DrForr_ | All I can say for my part is I remember keeping half an eye on the mic levels from the camera which were picking up off the wireless mic. | 13:27 | |
13:29
kaare__ is now known as kaare_
13:31
pullphinger left
13:34
laouji joined
13:36
anaeem1 joined,
anaeem1 left
13:37
cognominal joined
13:39
anaeem1_ joined
13:40
chenryn left
13:41
viyyozio joined
13:42
kjs_ joined
13:48
_mg_ joined
13:54
anaeem1_ left,
raiph joined
13:55
anaeem1 joined
13:56
_mg_ left
|
|||
dalek | Heuristic branch merge: pushed 27 commits to rakudo/newio by lizmat | 13:57 | |
13:57
rindolf joined
|
|||
viyyozio | where is the open function implemented in the source? | 14:07 | |
timotimo | src/core/io_operators.pm has it | 14:08 | |
but it just delegates to IO::Handle's open method | |||
[Coke] grumbles again that ack2 -a is a failure, not a warning. | 14:09 | ||
timotimo | which you find in src/IO/Handle.pm i believe | ||
lizmat | which is different in the newio branch | ||
viyyozio | which is the futurable io branch? newio or master ? | 14:10 | |
14:10
anaeem1 left
|
|||
lizmat | newio | 14:10 | |
viyyozio | thanks | ||
14:10
anaeem1 joined
|
|||
timotimo | our "master" branch is actually called nom (for hysterical raisins) | 14:11 | |
nine_ | jnthn: checking out MoarVM master and doing make && make install should be enough to get your fix? | 14:15 | |
14:15
anaeem1 left
|
|||
jnthn | nine_: I also bumped MOAR_REVISION and NQP_REVISION | 14:16 | |
nine_: But yeah, you can do what you suggested also | |||
nine_: But everyone grabbing latest should now have the hopeful fix. | 14:17 | ||
nine_ | jnthn: then I'm sorry to report that I still geht the error in Inline::Per5 :( | ||
jnthn | :( | ||
viyyozio | what is the role of npq::open and IO::Handle.new ? is npq opening the file and IO::Handle wrapping the abstraction? | ||
lizmat | viyyozio: it's a mess that I'm trying to clean up in the newio branch | 14:18 | |
nqp::open returns a stream (PIO object) | 14:19 | ||
that is wrapped in IO::handle | |||
in the newio branch, it's actually wrapped in the PIO role | |||
14:19
brrt joined
|
|||
jnthn | The thing nqp::open hands back is the VM-level IO handle | 14:19 | |
nine_: Strange. I'm not really seeing other places in there it could go wrong... | 14:21 | ||
14:22
brrt left
|
|||
jnthn | nine_: I wonder if gist.github.com/jnthn/ef0af70a206b38f9d9e6 might help... | 14:23 | |
[Coke] | geekosaur++ # macports help. | 14:24 | |
[Coke] will try to get nqp working with subports tonight. | |||
14:28
muraiki joined
|
|||
[Coke] is kind of bummed that we have to depend on perl5 to ship perl6. | 14:29 | ||
(but not enough to rewrite our entire config system!) | |||
TimToady | what, siblings should hate each other? | ||
timotimo | at some point the younger sibling ought to leave the cozy nest that the older sibling has made for them | 14:30 | |
lizmat | [Coke]: this was discussed at length at the APW 2014 | 14:31 | |
I think writing our tool chain in nqp was considered a way forward | |||
nwc10 jnthn might recall better | |||
14:32
Sysaxed joined
|
|||
timotimo | yeah, because we can ship a stage0 nqp and a bootstrapped static moar binary to run the config system to build moar | 14:32 | |
and from then on we have a proper moar and a stage0 nqp (that the nqp repo ships with anyway) and config nqp with that | |||
jnthn | Yeah, though I think we also felt it wasn't a priority in the near term overall :) | ||
timotimo | and then we can config rakudo with the properly built nqp | ||
jnthn | But yes, the stage0 NQP we already ship is good enough to do a lot ;) | 14:33 | |
donaldh | some of it has already been ported to nqp. e.g. gen-cat.nqp | ||
jnthn | Aye | ||
14:33
skids joined
|
|||
Sysaxed | oh, so there are some perl6 talks up but no Larry yet? | 14:34 | |
timotimo | ohai donaldh :) | ||
Sysaxed | I mean fosdem videos | ||
DrForr_ | No keynotes up at all yet. | ||
Sysaxed | :( | 14:35 | |
donaldh | hi o/ | ||
nwc10 | I don't remember any specific discussions at APW2014 about it, but that might just mean that I don't remember any new insights | 14:37 | |
but also, it's not something needed to get to Christmas | |||
and thirdly, my experiments with building fakecutables suggests that we need a better plan on how to share build toolchain between NQP and Rakudo | 14:38 | ||
lizmat was about to change all $int = $int + 1 to $int++ | |||
14:38
kaleem left
|
|||
lizmat | but did some benchmarks and found $int++ is about 10 times slower than $int = $int + 1 | 14:39 | |
timotimo | lizmat: see what i quoted by jnthn just now in #moarvm | ||
TimToady | lizmat: what about ++$int? | ||
nwc10 | lizmat++ # benchmarking first before changing code | ||
a wise head | |||
lizmat | TimToady: about 5x as slow | 14:40 | |
14:41
anaeem1_ joined,
rindolf left
|
|||
TimToady | after all, ++$int is a more correct translation of $i = $i + 1 in any case | 14:41 | |
unless you rely on $i++ optimizing to ++$i in sink context | 14:42 | ||
[Coke] | moar s17 tests seem to fail under high load. | 14:45 | |
jnthn | Aye, though please don't create performance memes around differences that are likely to vanish in the near future :) | ||
[Coke] | S17-procasync/basic.t, S17-procasync/print.t, S17-supply/watch_path.t | ||
lizmat | jnthn: so you're saying I should do it nonetheless, to put the pressure on ? :-) | ||
TimToady | quick, merge newio | ||
jnthn | lizmat: haha :) | ||
lizmat | .oO( pressure nudge received :-) |
14:46 | |
jnthn | lizmat: Not really, just wanted to make sure those reading backlog don't remember "avoid ++, it's slow" as a performance guideline :) | 14:47 | |
nine_ will never ever use ++ again, cause it's obviously slower than my $j = $i + 1; $i = $j; | 14:48 | ||
or so I heard | |||
jnthn | ('cus by the time of the 2015.03 release I suspect the two will be about the same) | ||
14:48
adu joined
|
|||
lizmat | and after that $int++ should be faster cause it will jit to a single machine op or so? | 14:49 | |
.oO( one can dream ) |
|||
colomon | nine_: what you really need to do is $i = $i +& 1 ?? $i + 1 !! $i +| 1 | 14:51 | |
;) | |||
jnthn | lizmat: I suspect the code that makes that happen will also turn $i = $i + 1 into the single machine op too. | ||
donaldh | hmm, nqp test 86-pipes.t is testing each backend for the behaviour they have, not for the behaviour they should have. | 14:55 | |
14:57
rmgk left
14:58
rmgk joined
|
|||
dalek | ast/newio: 89b30a8 | TimToady++ | S17-procasync/basic.t: conjecture that test is no longer flapping |
14:59 | |
roast/newio: b76efe4 | usev6++ | S12-class/basic.t: | |||
roast/newio: Unfudge test for RT #67784 | |||
14:59
dalek left
|
|||
synopsebot | Link: rt.perl.org/rt3//Public/Bug/Displa...l?id=67784 | 14:59 | |
lizmat | sorry dalek | ||
15:00
dalek joined
|
|||
dalek | p: 4602aa5 | donaldh++ | / (2 files): Update openpipe to inherit parent's STDERR on JVM. This fixes RT #104794. Also updated test eliminate JVM special case. |
15:00 | |
15:00
dalek left
|
|||
synopsebot | Link: rt.perl.org/rt3//Public/Bug/Displa...?id=104794 | 15:00 | |
jnthn | donaldh++ | ||
15:00
dalek joined,
ChanServ sets mode: +v dalek
|
|||
donaldh | I left the parrot special case test, and it's presumably still broken on parrot. | 15:01 | |
15:03
rindolf joined
15:04
infernal left
15:05
raiph left
15:10
Rounin left
|
|||
nine_ | jnthn: I lost the ability to debug this :/ I cannot find a version of rakudo/nqp/moar that provokes the bug anymore with Inline::Perl5. I will try your fixes at home where Inline::Python fails | 15:13 | |
jnthn | nine_: OK, thanks. | ||
15:18
dustinm` left,
Kristien joined
15:21
rindolf left
15:22
anaeem1_ left
15:23
anaeem1 joined
15:24
anaeem1 left
15:25
anaeem1 joined
15:26
dustinm` joined
|
|||
dalek | c: a0a9f45 | smls++ | lib/Language/5to6.pod: 5to6: Refactor array/hash subscripting related info |
15:27 | |
15:31
Kristien left
|
|||
dalek | c: c70ef8a | smls++ | lib/Language/5to6.pod: fix link |
15:32 | |
15:35
Kristien joined
15:39
Kristien left
15:42
viyyozio left
|
|||
dalek | kudo/newio: 2dda3b9 | lizmat++ | src/core/IO.pm: Better handle broken symlinks in dir() |
15:46 | |
kudo/newio: 81f2091 | lizmat++ | src/core/IOU.pm: Get IOU.gist in line with IO::Pathy.gist |
|||
15:48
anaeem1 left
|
|||
jnthn | IOU...so pun :P | 15:48 | |
15:49
anaeem1 joined
|
|||
smls doesn't really like non-obvious abbreviations in built-in identifiers, even when cute | 15:50 | ||
dalek | kudo/newio: 7f1dd72 | lizmat++ | src/core/IO.pm: Make dir(:Str) handle broken symlinks |
||
jnthn isn't sure how visible that type actually is :) | |||
lizmat | not really, if you just use .IO | ||
it's mostly to prevent many methods form having to check attributes over and over again by putting .IO objects in separate classes | 15:51 | ||
which will all .gist and .perl to .IO | |||
*from | |||
smls | If people don't need to write it out often, what would be the harm in giving it a longer name? | 15:52 | |
So people don't get confused when they *do* see it. | |||
lizmat | something like IO::DoesNotExist ? | 15:53 | |
15:53
anaeem1 left
|
|||
smls | If I had first seen "IOU" out of context (say in an error message), I wouldn't even have associated it with "IO". | 15:54 | |
15:54
rindolf joined
|
|||
smls | IO::Unknown ? | 15:54 | |
lizmat | it's not unknown | ||
jnthn | And it may exist :) | ||
lizmat | it's known to not exist | ||
jnthn | Oh | ||
lizmat | like "foo".IO.open(:w) and the file doesn't exist | 15:55 | |
15:55
laouji left
|
|||
jnthn | IO::Nonexistent :) | 15:55 | |
15:55
laouji joined
|
|||
smls | IO::NonExisting | 15:55 | |
jnthn's is better | |||
jnthn | And yeah, the name made me guess wrongly what it's for | 15:56 | |
15:56
laouji left
|
|||
jnthn | I read it as "I owe you" and thought it was soemthing that could, if needed, give you an IO object :P | 15:56 | |
lizmat | well, it does that too | 15:57 | |
and if it can find one, it will return that | |||
.IO basically maps to IOU.new() | |||
jnthn | Oh...but...that doesn't mean it doesn't exist? | ||
donaldh | undefined | ||
jnthn | "a-file-that-exists".IO should really not map to IO::Nonexistent :) | ||
lizmat | if it can't find it, it will return you an actual IOU object | 15:58 | |
and it doesn't | |||
jnthn | And if it can find it? | ||
lizmat | "existsing_file".IO maps to IO>>File | ||
IO::File | |||
jnthn | Ah | ||
lizmat | "existing_dir".IO maps to IO::Dir | 15:59 | |
jnthn | OK, so it does mean not existing at the time we asked the question | ||
smls | why can't the IO constructor do this itself? | ||
timotimo | what do DBM modules have to do? | ||
lizmat | smls: because it lives in Cool, and Cool doesn't know about IO | 16:00 | |
smls | but it knows about | 16:01 | |
but it knows about IOU? | |||
lizmat | yeah | 16:02 | |
smls | because IO is a role? | ||
16:04
anaeem1_ joined
|
|||
lizmat | well, yeah, but only for smartmatching, really | 16:04 | |
16:07
anaeem1_ left,
anaeem1 joined
|
|||
smls gets the feeling that this part of newio is more of a product of circumstantial constraints, rather than the kind of elegant design that "seems obvious" once you see it... :( | 16:08 | ||
Not blaming lizmat for that; maybe ther *is* no really elegant solution... | |||
nine_ | Really, IO is _hard_ | ||
smls | s/elegant/elegant and at the same time practical/ | 16:10 | |
16:10
laouji joined,
rurban left
16:11
anaeem1 left
|
|||
jnthn | Separating different things out by type is fairly consistent Perl 6 approach to things | 16:14 | |
And coercions are allowed to produce an appropriate subtype | |||
So .IO producing an appropriate thing that does the IO role feels fairly natural to me. | 16:15 | ||
16:15
laouji left
16:16
larion left
|
|||
smls | But having a generic type (IO) delegate construction/coercion to the constructor/corercer of a specific type (IOU) which may in turn create instances of what are essentially its "sibling types" (IO::File), seems strange | 16:17 | |
lizmat | smls: suggestions for improvement are welcome | 16:18 | |
smls | I leave that to you smart people :P | ||
jnthn | I suspect this may get cleaner if we get .TypeNameHere coercion stuff working better | 16:19 | |
16:19
adu left
|
|||
b2gills | TimToady: I think that perhaps the reduction that should be suggested for JortSort is [!after] ( possibly in addition to [<=] and [le] ) | 16:22 | |
PerlJam | smls: smart people make strange things :) | 16:24 | |
16:30
mr-foobar joined
|
|||
nine_ | m: multi foo(Int $foo where * > 0) { say "> 0"; nextsame; }; multi foo(Int $foo where * < 10) { say "< 10"; nextsame; }; multi foo($foo) { say "generic"; }; foo(1); | 16:31 | |
camelia | rakudo-moar a99a57: OUTPUT«(timeout)> 0< 10< 10< 10< 10< 10< 10< 10< 10< 10< 10< 10< 10< 10< 10< 10< 10< 10< 10< 10< 10< 10< 10< 10< 10< 10< 10< 10< 10< 10< 10< 10< 10< 10< 10< 1…» | ||
nine_ | ^^^ bug? | ||
16:33
zakharyas left
|
|||
smls | jnthn: Is ".TypeNameHere" supposed to be special syntax, rather than a method call? | 16:33 | |
jnthn | smls: I've not really got a clear answer on that :( | 16:34 | |
TimToady has mentioned some kind of fallback mechanism there, but it's not clear to me if that should be done by compiling it differently, or as some more dynamic failover. | 16:35 | ||
smls | A while ago TimToady said that custom classes should implement `invoke` to get that functionality, but all the built-in ones doe it by having a method in Any | ||
jnthn | Yeah, but question is how we come to do that invoke | ||
smls | ...and whether the built-in ones should make use of that mechanism, for consistency (and possibly easier documentation) | 16:36 | |
Also, I wonder if syntax highlighters should highlight the "Int" in "$number.Int" like a routine or like a typename. | 16:37 | ||
16:39
diana_olhovik_ left
|
|||
dalek | kudo/newio: 0999eb3 | lizmat++ | src/core/ (7 files): Delegate .IO object creation to a helper sub Instead of abusing IOU.new for that. |
16:39 | |
b2gills | coerce has been previously discussed on #perl6 : irclog.perlgeek.de/perl6/2015-01-23#i_9992284 with talk about `multi COERCE ...` starting at irclog.perlgeek.de/perl6/2015-01-23#i_9992547 | 16:44 | |
smls | .tell moritz re preceding backlog: Should we document coercers special-y in p6doc? I.e. on the type pages of the types they coerce *to*, rather than on Any's type page? | ||
yoleaux | smls: I'll pass your message to moritz. | ||
TimToady | b2gills: I thought about [!after], but decided clarity was better served by [<=> | 16:45 | |
er [<=] | |||
b2gills | jnthn: how well would Rakudo on Moar handle dozens to several hundred `multi sub COERCE (...){...}` ? | ||
TimToady | the current design allows Int($x) to mean something different from ($x).Int, which is currently construed as a feature | 16:47 | |
hoelzro | b2gills: I've also implemented COERCE in a branch | ||
16:47
kjs_ left
|
|||
jnthn | b2gills: Depends how many of them you ever actually call | 16:47 | |
b2gills | hoelzro: I didn't find it when looking through the archives. ( but then I didn't spend that long looking either ) | 16:48 | |
TimToady | the current design also doesn't require importing a bunch of multis | ||
jnthn | TimToady: Is $x.TypeName considered syntactic in some sense? | ||
hoelzro | b2gills: I mentioned it a few times, but it was probably later | ||
TimToady | we've considered that in the past, and could still decide that if we wanted to | ||
hoelzro | I'm sure you'd come across it if you just looked for COERCE + my name | 16:49 | |
jnthn | TimToady: I'm mostly considering how it interacts with other fallback mechanisms, and our ability to continue quickly answering "no, that method doesn't exist" | ||
TimToady | currently you can do $x."$sometype" | ||
jnthn | Yeah, that would umambiguously mean method call if we make $x.SomeType syntactic. | 16:50 | |
TimToady | $sometype() also works under 'invoke' | ||
jnthn | Right | ||
I'm still ever so slighlty bothered about the invoke approach. | 16:51 | ||
Because if you end up writing a type you want to be invokable, you find it doing odd things on coercion | |||
TimToady | I guess the question is whether a mutual fallback can 1) prevent mutual recursion and 2) be implemented efficiently | ||
jnthn | And if you write an invoke for coercions you find out your object is invokable | ||
And you might want both :) | 16:52 | ||
smls | jnthn: gotta remember to only define the coercion-invoke for the type object (:U) | ||
jnthn | Which is of course possible with a multi... | ||
TimToady | well, but this invoke is only on :U | ||
16:52
[Sno] left
|
|||
jnthn | smls: Yes, I know you *can* distinguish them, I'm saying for such a common thing is it friendly to make people need to :) | 16:52 | |
hoelzro .oO( of coerce? ) | |||
TimToady | how many people define invokables? I suppose we could call the coercion something other than .invoke | 16:53 | |
jnthn | It's not that common | ||
16:54
smls left
|
|||
TimToady | method INCOMING | 16:54 | |
jnthn | multi method coerce(Str $s) { ... } # not too bad | ||
But yeah, the fallback thing gets...odd. | 16:55 | ||
16:55
Ven left
|
|||
jnthn | If we try and do it in both directions, I mean. | 16:55 | |
b2gills | I think Perl 6 should allow coercing from two objects that don't know anything about each other ( so allow coercions outside of the objects ) | ||
jnthn | So we probably have to pick one as primary and one as fallback-based | ||
TimToady | b2gills: that means multi-stage coercion, which is probably evil | 16:56 | |
b2gills | not if it is a single large multi sub | ||
TimToady | jnthn: well, either way that means monkey patching | ||
b2gills | s/large/large set of/ | ||
TimToady | b2gills: why not just write your own routine then? | 16:57 | |
does it really want to use the coercion syntax? <shrugs> | |||
b2gills | I like that almost no part of Perl 6 is any more special than any other part | 16:58 | |
PerlJam | b2gills: "single large set of multi subs" does *not* sound like a good thing | ||
jnthn | TimToady: I see the method approach as "I know how to turn myself into X", which is probably useful for core types, and the Foo(...) approach as "I want to specify how a thingy can turn into me" | ||
16:59
alini left
|
|||
TimToady | we could in either case install a backup in a global coerce, rather than falling back to the other end | 16:59 | |
but the primary would not need the large multi | |||
jnthn | TimToady: The only time you'd need monkey patching would be if you wanted to specify a coercion neither side thought of, I guess... | ||
And yea, a gobal COERCE fallback could handle that. | |||
TimToady | which is b2gills's arguemnt | 17:00 | |
jnthn | *nod* | ||
TimToady | which I half buy :) | ||
I'm okay with that approach if 1) we don't lose coercions through visibility, and 2) it can be efficient | |||
b2gills | actually its hoelzro's argument from January | 17:01 | |
TimToady | but it sounds kinda megamorphic | ||
lizmat | jnthn: IO::NonExistent or IO::Nonexistent ? | ||
TimToady | nod, hoelzro++ | ||
jnthn | lizmat: nonexistent is one word, afaik... | ||
TimToady | IO::NotThere | ||
jnthn | TimToady: Yes, it is megamorphic, which is why I'm comfortable with it as a fallback but reluctant to have it as primary. | 17:02 | |
b2gills | IO::Bogus (joke) | ||
jnthn | IO::Noes | ||
skids | IOOOPS :-) | ||
lizmat | non-existent is in my dictionary, nonexistent is not | ||
TimToady | IO::ThereItWas-GoneCompletely | ||
lizmat | very funny | ||
17:03
adu joined
|
|||
TimToady is nonplussed | 17:03 | ||
lizmat decides to stick to IOU | |||
at least until I have a better idea | |||
TimToady | EIEIO | ||
geekosaur | IO::Here-Today-Gone-TomIOrow | ||
TimToady | Existence Is Existential IO | ||
PerlJam | IOU sounds like a Promise to me :) | 17:04 | |
jnthn | .oO( IO::RaceCondition /o\ ) |
||
TimToady | me2 | ||
jnthn | I like IO::NotThere or IO::Nonexistent best so far. | ||
PerlJam | aye, me too | ||
TimToady | IO::NotThereLastIChecked | ||
jnthn | TimToady: Precise, but long. :) | ||
PerlJam | IO::WAT | ||
b2gills | one thing I don't like about file-systems is that it is full of race conditions | 17:05 | |
17:05
raiph joined
|
|||
donaldh | IO::DontKnow | 17:05 | |
TimToady | IO::ProllyNot | ||
donaldh | IO::Heisenberg | ||
TimToady | IO::Defiled | ||
jnthn | b2gills: Do you have a file I can read to learn about that? Oh...wait... | 17:06 | |
TimToady | introspection is a filesystem smell | ||
b2gills | I did but I unmounted that partition | ||
donaldh | IO::Schrodinger | ||
TimToady | cat that file! | ||
tail -f shoulda been called 'dog' | 17:07 | ||
do we have a :a open that guarantees seek on systems that can do that? | |||
lizmat | hope that nqp::open does that, as the :a is passed on there | 17:08 | |
b2gills | .oO( perhaps Edlin should have been called mouse ) |
||
TimToady | cf rosettacode.org/wiki/Append_a_recor..._text_file | ||
lizmat | my $mode := ($rw || $w) ?? 'w' !! ($a ?? 'wa' !! 'r' ); | ||
I assume nqp::open knows what to do with "wa", jnthn ? | 17:09 | ||
TimToady | we need a :wah option | ||
donaldh | we suuport :r :w :wa | ||
PerlJam | as long as we can have more than one :wah | ||
geekosaur | :wat | ||
TimToady | text mode? | ||
lizmat checks the oxygen supply | |||
TimToady | no we should use that for binary :) | ||
donaldh | unfort we don't support :rw which would be nice for mmap | 17:11 | |
dalek | kudo/newio: 3871ffe | lizmat++ | src/core/IO (2 files): Make it IO::Huh At least until the bikeshedding stops |
||
donaldh | :) | ||
PerlJam | lizmat++ | ||
jnthn | lizmat: I...hope so :) | 17:13 | |
lizmat: On moar it knows about r, w, and wa | 17:15 | ||
17:15
laouji joined
17:19
kjs_ joined
|
|||
dalek | ast/newio: 03118e6 | lizmat++ | S02-types/WHICH.t: IOU is now IO::Huh |
17:19 | |
b2gills | another problem with file-systems is that they may have two files that have the same name "resum\x00E9", "resum\x0065\x0301" because they don't actually know anything about Unicode see: en.wikipedia.org/wiki/Unicode_equi...ifferences | ||
17:20
laouji left
|
|||
b2gills | which means there may have to be some compatibly code written if Rakudo is ported to such a system, especially after NFG | 17:21 | |
TimToady | probably need to distinguish buf filenames from str | 17:24 | |
17:25
_mg_ joined
|
|||
moritz | \o | 17:27 | |
yoleaux | 16:44Z <smls> moritz: re preceding backlog: Should we document coercers special-y in p6doc? I.e. on the type pages of the types they coerce *to*, rather than on Any's type page? | ||
nwc10 | o/ | ||
moritz | .tell smls ideally on both, and ideally automatically inserted in one place | ||
yoleaux | moritz: I'll pass your message to smls. | ||
dalek | p: 54d3cf5 | donaldh++ | src/vm/jvm/QAST/Compiler.nqp: Don't run CallFrame.leave twice when phasers throw - on JVM Fixes RT #121935 |
17:28 | |
synopsebot | Link: rt.perl.org/rt3//Public/Bug/Displa...?id=121935 | ||
dalek | kudo/nom: 316da1c | TimToady++ | src/Perl6/Grammar.nqp: better guess at missing vs malformed arg |
17:29 | |
ast: 44954ad | TimToady++ | S03-operators/set.t: missing arg message updates |
|||
kudo/newio: 4a23ce1 | lizmat++ | / (5 files): Final changes for IOU -> IO::Huh change |
17:32 | ||
17:32
diana_olhovik joined
|
|||
moritz | IO::Huh? | 17:33 | |
moritz didn't backlog | |||
lizmat got fed up with hilarious bikeshedding | |||
moritz | very understandable | 17:34 | |
timotimo | i'm glad lizmat has the last laugh on this one :) | ||
... for now | |||
b2gills | I'm fairly sure that some obscure file-system that Rakudo gets ported to is going to ultimately have the last laugh | 17:35 | |
dalek | c: 7e1e631 | moritz++ | lib/Type/Cool.pod: Cool: lines, roots |
||
c: 1de8ac1 | moritz++ | lib/Type/Cool.pod: Cool.truncate |
|||
c: 765be8f | moritz++ | lib/Type/Cool.pod: Cool.comb |
|||
kudo/nom: 86242c8 | lizmat++ | src/core/IO (2 files): Move IOU to IO::Huh to make life easier |
17:36 | ||
kudo/nom: 30df1a3 | lizmat++ | tools/build/ (2 files): Make life easier again |
|||
17:36
Kristien joined
17:37
kjs_ left
17:38
donaldh left
17:39
virtualsue left
17:40
mohij joined
|
|||
dalek | kudo/newio: 316da1c | TimToady++ | src/Perl6/Grammar.nqp: better guess at missing vs malformed arg |
17:40 | |
kudo/newio: 86242c8 | lizmat++ | src/core/IO (2 files): Move IOU to IO::Huh to make life easier |
|||
kudo/newio: 30df1a3 | lizmat++ | tools/build/ (2 files): Make life easier again |
|||
kudo/newio: f048675 | lizmat++ | src/Perl6/Grammar.nqp: Merge branch 'nom' into newio |
|||
b2gills | I think that IO::Huh is a name that most programmers wouldn't use (directly), which is a good thing in this circumstance, as it helps prevent them from hard-coding the wrong thing. | ||
TimToady | .oO(had unfortunate happenstance) |
17:42 | |
17:43
telex left
17:44
telex joined
17:45
espadrine left
|
|||
jnthn | .oO( here's ur heisenfile ) |
17:47 | |
lizmat++ # actually getting stuff done :) | |||
Kristien | hi | 17:49 | |
mohij | o/ | 17:51 | |
17:54
dakkar left
|
|||
skids | Now we just need a backronym for Huh. :-) | 17:56 | |
17:59
alini joined
|
|||
PerlJam | I thought we just got 2 of them? | 18:01 | |
timotimo | can we do var args? | 18:04 | |
in nativecall, i mean | |||
18:05
raiph left
18:06
brrt joined
|
|||
timotimo | i know dyncall can handle it | 18:06 | |
18:10
raiph joined
18:12
[Sno] joined
18:15
rurban joined
|
|||
TimToady | .oO(handle underplays hurt) |
18:16 | |
.oO(hurt underlays handle) |
|||
.oO(happy until hacked) |
18:17 | ||
TimToady should stop perseverating... | |||
mohij | TimToady: Do you have any other ideas what I could do? To solve my backtracking problem? I'm ok with this being impossible, but I'd like to know so I can stop bugging. ;-) | 18:25 | |
jnthn | timotimo: Not sure we implemented that | 18:26 | |
18:26
virtualsue joined
|
|||
timotimo | well, i have a use case for it now :) | 18:26 | |
[Coke] | m: package Perl5:Perl6::Java:C# ovid analogy | ||
camelia | rakudo-moar 30df1a: OUTPUT«5===SORRY!5=== Error while compiling /tmp/CwYHKntyySUnable to parse package definitionat /tmp/CwYHKntyyS:1------> 3package Perl5:Perl6:7⏏5:Java:C# ovid analogy expecting any of: colon pair» | ||
18:29
gfldex joined
18:31
brrt left
18:32
Rounin joined,
Kristien left
18:34
virtualsue left
18:35
virtualsue joined
|
|||
jdv79 | moritz: doc.perl6.org/routine/parse - is that cool or not? i'm a little unsure with how these docs work. | 18:36 | |
18:37
_mg_ left
|
|||
jnthn | That looks a little funky to me... | 18:38 | |
18:42
virtualsue_ joined,
spider-mario left
|
|||
jdv79 | i thought i'd try my hand at helping with docs and that's the first major wt.. thing i tripped on. | 18:43 | |
18:44
virtualsue left,
virtualsue_ is now known as virtualsue
|
|||
jdv79 | i'm a little confused about the overall org of the docs too. but i'm about to head out to lunch. | 18:45 | |
timotimo | well, we can set the call convention and dyncall knows DC_CALL_C_ELLIPSIS and DC_CALL_C_ELLIPSIS_VARARGS | 18:47 | |
18:49
fhelmberger left
18:51
raiph left
18:56
pierrot left
19:00
pullphinger joined
19:02
alini left
|
|||
pyrimidine | lizmat++ # IO::Huh and not bikeshedding :) | 19:07 | |
19:10
virtualsue left
19:11
FROGGS joined
19:13
Kristien joined
19:16
spider-mario joined
19:17
rindolf left
19:21
virtualsue joined
19:23
larion joined
|
|||
moritz | jdv79: there seems to be duplicate docs for Grammar, one in lib/Type/Grammar.pm, one in lib/Language/grammars.pod | 19:31 | |
jdv79: IMHO the former is the proper location | |||
jdv79: unifying the docs would be very welcome | |||
jdv79: I've created github.com/perl6/doc/issues/58 for that | 19:35 | ||
19:44
_mg_ joined
|
|||
nwc10 | jnthn: we seem to be missing some more basic tests for sized ints. In that, this is on PPC: | 19:49 | |
FROGGS | tadzik: github.com/tadzik/perl6-MPD/pull/1 | ||
nwc10 | $ ./perl6-m -Ilib -e 'my int $i = 3; say $i' | ||
3 | |||
$ ./perl6-m -Ilib -e 'my int16 $i = 3; say $i' | |||
0 | |||
nwc10 can't find a spectest failing because of *that* | |||
the spectest that fails is for a bound alias to it | |||
timotimo | i don't think we do sized ints ... at all yet? | ||
tadzik | FROGGS: thanks :) | 19:50 | |
timotimo | except for CStruct members | ||
nwc10 | timotimo: you're so last week :-) | ||
github.com/perl6/roast/commit/11c7...652d588a03 | |||
timotimo | oh | 19:51 | |
neato | |||
nwc10 | m: my int16 $i = 3; my $a; $a := $i; ++$a; say $i | ||
camelia | rakudo-moar 30df1a: OUTPUT«4» | ||
nwc10 | that's the test | ||
on PPC, $i is read as 0 | |||
the "have" output is 1, not 4 | 19:52 | ||
and it is explained by the read from $i being 0 | |||
what this suggests is that the write is to the first 2 bytes of the 8 byte union | |||
but the read is either the last 2 bytes | |||
er, wait | |||
it would be a write of 64 bits | |||
and a read of 16 | 19:53 | ||
but I have only proven this correct, not tested it. Sort of. :-) | |||
FROGGS | ahh, but yeah, would explain it perfectly | ||
nwc10 | it's my working hypothesis. I'm just too knackered to investigate | 19:54 | |
skids | timotimo: the most workingest sized ints currently are members of bufs. | 19:55 | |
TimToady | b2gills: since the task is now explicitly one of satire, I've upgraded the task to specifically disrecomment [!after] :) | 19:57 | |
*mend | |||
skids | m: buf32.new(-2)[0].say # wonder what that says on PPC | 19:58 | |
camelia | rakudo-moar 30df1a: OUTPUT«4294967294» | ||
nwc10 | 4294967294 | 19:59 | |
TimToady | rosettacode.org/wiki/JortSort#Perl_6 if you're following along at home | ||
skids | m: my int16 $i = 0x1234; my $a; $a := $i; ++$a; say $i.base(16) # or that | ||
camelia | rakudo-moar 30df1a: OUTPUT«1235» | ||
TimToady | m: my int16 $i = 0x1234; my $a; $a := $i; ++$a; say $i.base(16,40) # moar precision | 20:00 | |
camelia | rakudo-moar 30df1a: OUTPUT«1235.0000000000000000000000000000000000000000» | ||
20:01
Klaudioh is now known as Ziemniak
|
|||
nwc10 | jnthn: this code: $ ./perl6-m -Ilib -e 'my int16 $i = 3; say $i' | 20:06 | |
0 | |||
dalek | pan style="color: #395be5">perl6-examples: ba845d4 | paultcochrane++ | htmlify.pl: Extract source code reference pod into own routine |
||
perl6-examples: 106af96 | paultcochrane++ | htmlify.pl: | |||
perl6-examples: Extract title info if we have pod in the file | |||
20:06
dalek left
|
|||
b2gills | I generally prefer to provide some insight into how the code works when posting Perl 6 code to places where non-Perl people congregate | 20:06 | |
20:07
dalek joined,
ChanServ sets mode: +v dalek
|
|||
nwc10 | jnthn: that code doesn't write the value of $i using MVM_nativeref_write_reg_or_lex_i | 20:07 | |
b2gills | but in that instance, maybe it's better to let onlookers try to figure it out themselves | ||
nwc10 | jnthn: I have fprintf()s in it, and it's not hit. The subsequent ++ on the aliased version *does* use it | 20:08 | |
also, this variation doesn't write using MVM_nativeref_write_reg_or_lex_i | 20:10 | ||
$ ./perl6-m -Ilib -e 'my int16 $i; $i = 3; say $i' | |||
0 | |||
20:10
pullphinger left
|
|||
nwc10 | it's only ++ and -- | 20:10 | |
20:10
espadrine joined
|
|||
nwc10 | so, that's the immediate cause of the spectest failure on big endian | 20:11 | |
but I don't know why the codegen doesn't go through the right place | |||
[ptc]: are you being cruel to dalek? :-) | |||
skids | poor dalek. Blame yoleaux for eating all the botsnacks. | 20:12 | |
20:14
kjs_ joined
20:15
darutoko left
20:21
_mg_ left
|
|||
jnthn | nwc10: Sized native lexicals didn't get much love in general yet, to be honest, so I'm not so surprised they're like Swiss cheese... | 20:23 | |
20:24
swarring joined,
swarring left,
dwarring joined
|
|||
jnthn | nwc10: Note that the assignment doesn't go through native refs whenever we can avoid it | 20:25 | |
[ptc] | nwc10: bwahahaha! | ||
jnthn | nwc10: 'cus creating a ref only to immediately deref it would be kinda sub-optimial | ||
nwc10: So it seems it's the immediate store case that's actually busted. | |||
nwc10 | jnthn: OK. | ||
anyway, I think I've debugged it to the point where I don't know how to procede futher, but do know how to replicate the problem on a L.E. system. | 20:28 | ||
dalek | rl6-roast-data: 4d8579a | coke++ | / (9 files): today (automated commit) |
||
PerlJam | m: class C { proto submethod BUILD(|) {*}; multi submethod BUILD($x) { } } | ||
camelia | rakudo-moar 30df1a: OUTPUT«===SORRY!===Package 'C' already has a Method 'BUILD' (did you mean to declare a multi-method?)» | ||
PerlJam | So ... at the very least that message is LTA | 20:29 | |
20:30
muraiki left
|
|||
PerlJam | (I don't have a real use-case, I was just playing around and noticed this) | 20:30 | |
dalek | ast: c978a87 | coke++ | test_summary: avoid unnecessary differences in output |
20:33 | |
TimToady pictures a Swiss cheese with more holes than cheese... | 20:37 | ||
geekosaur has seen a few | 20:38 | ||
Kristien | I don't like Swiss cheese so I always cut out the holes. | 20:39 | |
TimToady | Kristien++ | ||
b2gills | TimToady: I was toying with adding notes about [<=] [le] and [before], but it messed up the joke | 20:50 | |
m: say [!after] 1,'2',3.0,4e0,5+0i # this too | 20:51 | ||
camelia | rakudo-moar 30df1a: OUTPUT«True» | ||
b2gills | m: say [!after] <a b c c d> | 20:52 | |
camelia | rakudo-moar 30df1a: OUTPUT«True» | ||
Kristien | my wonderful commit messages lately: gist.github.com/rightfold/38196a8463b91b0ebec8 | 20:53 | |
20:54
laouji joined
|
|||
TimToady | .oO(more, but not much more...) |
20:54 | |
Kristien | I have a Z shell function 'gmp' so that 'gmp more' does 'git add -A && git commit -m more && git push'. The rest is just <kbd>arrow up, return</kbd> reflex :D | 20:55 | |
TimToady | the typical REXX programmer, on the other hand, cannot be compelled to write less than three paragraphs each time... | 20:56 | |
20:56
diana_olhovik left
20:58
laouji left
|
|||
timotimo | Kristien: you're going against the lovely tradition of spelling "more" "(More)" | 21:00 | |
:S | |||
Kristien | Moar | ||
21:02
bjz left
21:03
abraxxa left
|
|||
Kristien | WTB PL/Perl 6 | 21:04 | |
TimToady | sounds like a Sixth Generation Language | 21:06 | |
dalek | pan style="color: #395be5">perl6-examples: 8a792c8 | paultcochrane++ | bin/run-examples.pl: Update documentation to new command line args |
||
pan style="color: #395be5">perl6-examples: 6c751b7 | paultcochrane++ | categories/interpreters/brainfuck.p6: Brainfuck example now takes a default program |
|||
pan style="color: #395be5">perl6-examples: 4027977 | paultcochrane++ | bin/run-examples.pl: Add hailstone-sequence to list of memory hogs |
|||
timotimo just changed the description and URL shown at the top of github.com/perl6/specs | 21:08 | ||
Kristien | design.perl6.org/ should have a larger line height | 21:10 | |
21:10
gfldex left
|
|||
Kristien | like 18px (pretty readable) or 22.6524758px (ideal) | 21:11 | |
timotimo | do you know where you can submit a patch for that? :) | ||
i'm not good at html and/or css :( | |||
Kristien | no! | ||
timotimo | well, neither do i | 21:13 | |
Kristien | github.com/perl6/perl6.org perhaps | 21:14 | |
no | |||
some pod to html transformer | |||
b2gills | m: my %a = :a,:b; my %b = :c,:d; sub swap ( Mu \a is rw, Mu \b is rw ){ (a,b)=(b,a) }; swap %a, %b; say %a; say %b # too bad this doesn't work | 21:15 | |
camelia | rakudo-moar 30df1a: OUTPUT«a => True, b => True, c => True, d => True» | ||
timotimo | mu/util/update-design.perl6.org.sh | ||
this updates things | |||
Kristien | github.com/perl6/mu then? | ||
timotimo | docs/feather/syn_index.html | 21:16 | |
21:16
colomon left
|
|||
timotimo | yes, in the mu repository | 21:16 | |
Kristien | ok let's see | ||
fork this shit! | |||
timotimo | :) | 21:17 | |
thank you | |||
i'd also appreciate a little hint at the bottom of the syn index that points the to-be contributor at the location of this very html file and where exactly things are pulled from | |||
21:18
rurban left
21:19
Rounin left,
muraiki joined
|
|||
timotimo | Repository Of All Spec Tests, is this now the official backronym for "roast"? | 21:19 | |
Kristien | I created a PR | 21:20 | |
21:20
Sysaxed left
|
|||
timotimo | for perl6/mu? i don't see it :( | 21:20 | |
Kristien | github.com/rightfold/mu/pull/1 | ||
wait | |||
what | |||
I created a PR in the fork | |||
nice UI github good job | 21:21 | ||
timotimo | :D | ||
i've done this mitsake before, too | |||
Kristien | ok now it's good | ||
timotimo | how does it look with the synopsis documents themselves? | 21:22 | |
21:23
donaldh joined
|
|||
Kristien | incredible | 21:24 | |
timotimo | %) | ||
21:25
mohij left
|
|||
PerlJam | That's a pretty specific line height. | 21:25 | |
Kristien | it's the font size times the golden ratio | ||
timotimo | i'll put the change into the live .css file to check it out | 21:26 | |
Kristien | good luck | ||
79797 is a nice commit ID | 21:27 | ||
dalek | : e9ddbf6 | rightfold++ | docs/perl.css: Increase line height for better readability |
||
: 79797f5 | rightfold++ | docs/perl.css: Merge pull request #1 from rightfold/rightfold-css-patch Increase line height for better readability |
|||
: 3ddc5fb | moritz++ | docs/perl.css: Merge pull request #8 from rightfold/master Increase line height for better readability |
|||
21:27
kjs_ left
|
|||
timotimo | oh | 21:27 | |
design.perl6.org/ - already live | 21:28 | ||
21:28
raiph joined
|
|||
nine_ | jnthn: your second patch seems to help, indeed! gist.githubusercontent.com/jnthn/e...tfile1.txt | 21:29 | |
timotimo | good news! | 21:30 | |
21:33
colomon joined
|
|||
timotimo | hmm, the questions were extremely quiet in pm's talk | 21:34 | |
21:35
colomon left
|
|||
jnthn | Or maybe Pm is just so loud comparatively :P | 21:36 | |
nine_ | jnthn: and to my MoarVM beginner eyes it actually makes sense. We need to keep track of these objects during the whole callback, not only during the setup. I guess there's a few opportunities for GC to kick in before the objects are referenced by other rooted objects. | ||
jnthn | nine_: Yeah, my tired brain last night thought that them being the args to the thing invoked would cause them to be marked | ||
21:36
colomon joined
|
|||
jnthn | nine_: But it never actually works like that. :) | 21:36 | |
21:37
Hor|zon left
|
|||
timotimo | i actually had to turn my output device up to 150% to even understand the talk | 21:38 | |
the recording was quite quiet | |||
nine_ | jnthn: I should have asked. Your first patch did not make that much sense. Now it's quite clear. But as I said, I haven't seen much MoarVM code yet, so me not understanding does not say all that much :/ | 21:41 | |
jnthn | timotimo: Yeah, mine was quiet too...I turned my speakers up loud to see if it had recorded my voice OK, then forgot I'd done so, and blasted my ears with metal later on in the day... :) | 21:42 | |
ggoebel111111114 | was just listening to pmichaud's talk and looking at design.per6.org... noticed that the column header (specification) has under it synopsis, synopsis, synopsis... | 21:45 | |
moritz | huh, looks fine here | 21:46 | |
ggoebel111111114 | wondering if pmichaud was alone in expressing his opinion that synopses ne specification | ||
moritz | ah, I see what you mean. No, just not patched yet | 21:47 | |
jnthn | ggoebel111111114: No, there's quite a bit of agreement | ||
nine_: Pushed the fix. | 21:48 | ||
nine_: Thanks for trying it out :) | |||
dalek | p: 4892ff1 | donaldh++ | src/vm/jvm/runtime/org/perl6/nqp/runtime/IndyBootstrap.java: Guard two remaining invokee lookups on JVM. I had these ready to commit but FROGGS++ beat me to one of them. Fixes the NPE in RT #120254. |
21:49 | |
synopsebot | Link: rt.perl.org/rt3//Public/Bug/Displa...?id=120254 | ||
nine_ | jnthn: thanks for fixing :) This one's been haunting me for two months. | 21:51 | |
Kristien | > You are now a member of Perl 6! | 21:53 | |
woo | |||
21:54
dpuu joined
21:55
dolmen joined
|
|||
hoelzro | \o/ | 21:56 | |
FROGGS | jnthn: my problem seems to be that the staticCode.sc of the <unit-outer> context is null | 21:58 | |
dpuu | trying to understand compositional grammars and action classes: if I have a top level grammar, < grammar G3 { rule TOP { ^ <G1::leaf> <G2::leaf> $ } } > then an action class with < method leaf($/) { ... } > will be called both G1::leaf and G2::leaf. Is it possible to specify what action classes to use for each subgrammar? | ||
donaldh | r: my $a ($b, $c); $b = 42; say $b | 22:00 | |
camelia | rakudo-moar 30df1a: OUTPUT«5===SORRY!5=== Error while compiling /tmp/tmpfilePost-constraints on variables not yet implemented. Sorry. at /tmp/tmpfile:1------> 3my $a ($b, $c)7⏏5; $b = 42; say $b expecting any of: constraint» | ||
22:01
virtualsue_ joined
22:03
J-L joined,
virtualsue left,
virtualsue_ is now known as virtualsue,
skids left
22:04
pullphinger joined
|
|||
jdv79 | moritz: cool. i'll look into it later. | 22:06 | |
J-L | Hi! I have a quick Perl 6 question: If I'm have an object, is there a method I can call that will return me a list of methods I can call? (Sort of like the .methods call in Ruby.) | ||
yoleaux | 2 Mar 2015 23:31Z <raydiak> J-L: you'll have to learn more about these various parts by reading docs and trying things out, but assuming cygwin does indeed provide termios, it is my understanding that you can use the cygwin dll by just including it with your script (maybe both 32 and 64 bit dlls) and calling it...everything else you can get from the installer is just if you want posix userland things like bash | ||
PerlJam | m: Str.^methods.say | 22:09 | |
camelia | rakudo-moar 30df1a: OUTPUT«BUILD Int Num chomp chop pred succ match ords samecase samespace trim-leading trim-trailing trim encode wordcase trans indent codes path unival univals WHY WHICH Bool Str Stringy DUMP ACCEPTS Numeric gist perl comb subst-mutate subst lines split words» | ||
PerlJam | J-L: like that. | ||
22:09
adu left
|
|||
PerlJam | J-L: note that ^methods will give you actual method objects that just happen to stringify to the method name. | 22:09 | |
J-L | Excellent, PerlJam! Thank you. (I tried .methods(), but I didn't realize the caret in "^methods" was needed. | 22:11 | |
22:13
colomon left
|
|||
J-L | Is there any documentation that talks about "^" methods? I tried looking up "^methods" in google, but google seems to ignore the "^". | 22:13 | |
dalek | kudo/nom: a341816 | lizmat++ | src/core/Array.pm: Remove stray unneeded/unused parameter Seems to be a copy-pasto from 2011 |
22:14 | |
timotimo | lizmat: oh, huh, that could have impacted performance negatively in the past | 22:15 | |
in much of the past | |||
lizmat | yeah, | ||
I'm checking all of the "is copy" cases, since coercing and not having to do an assign on an "is copy" var, is faster | |||
FROGGS | jnthn: when I run the URI code on jvm (without precomp) then staticCode.sc is null... what triggers setting staticCode.sc in case we *do* precomp? | 22:17 | |
PerlJam | J-L: S12:2350 | 22:19 | |
synopsebot | Link: design.perl6.org/S12.html#line_2350 | ||
Mouq | J-L: It's fairly incomplete, but also doc.perl6.org/language/mop | ||
Actually that doc page is pretty good | 22:23 | ||
jnthn | FROGGS: unit-outer is a bit of a special case, iirc, but most blocks get that set in HLL::World when we add the code object to the SC, or during deserialization. | ||
lizmat | jnthn: does a "is copy" on a slurpy hash make sense? | 22:25 | |
sub a(*%h is copy) {} | |||
feels superfluous, as the slurpy already creates a container, no? | 22:26 | ||
22:29
atweiden joined
|
|||
jnthn | lizmat: Yeah, feels odd to me | 22:29 | |
J-L | Ah, thanks, Mouq and PerlJam. Now I see that @a.^methods is the same as @a.HOW.methods(@a) . (Not sure why I have to write @a twice, though.) | 22:31 | |
jnthn | To allow for prototype-y OO as well as class-y OO | ||
22:33
adu joined
22:34
colomon joined
|
|||
FROGGS | jnthn: and the <unit-outer> is not meant to make it into the .jar, right? | 22:35 | |
22:35
Hor|zon joined
|
|||
FROGGS | jnthn: only up to <unit>... that's what happens here at least | 22:35 | |
jnthn | FROGGS: Yes | 22:36 | |
FROGGS: We actually set unit-outer on unit dynamically as part of loading the setting | 22:37 | ||
22:40
Hor|zon left
|
|||
Mouq | J-L: Think about it this way, @a.HOW gets the MetaObject. The MetaObject knows about lots of different objects, not just @a. So when you want to use the MetaObject to get information about @a, you have to include @a in the calls to it | 22:43 | |
J-L: Usually though, we just want the information about that object, so the .^ notation bypasses having to write the object twice | 22:45 | ||
dalek | p: 0c4096e | donaldh++ | src/vm/jvm/runtime/org/perl6/nqp/runtime/Ops.java: Guard against null object in getobjsc on JVM. This fixes the NPE in RT #123002. |
22:46 | |
synopsebot | Link: rt.perl.org/rt3//Public/Bug/Displa...?id=123002 | ||
dalek | kudo/nom: 6cf53b8 | lizmat++ | src/core/ (4 files): Use coercion instead of "is copy" |
||
kudo/nom: ba45b84 | lizmat++ | src/core/ (3 files): Remove superfluous "is copy" traits |
|||
kudo/nom: a3bdb02 | lizmat++ | src/core/Temporal.pm: Use coercion, but we still need "is copy" anyway |
|||
lizmat | and with that, I'm going to get some sleep& | ||
jnthn | o/ lizmat | 22:48 | |
Kristien | found this gem today: i.stack.imgur.com/WCbQ4.png | 22:53 | |
I don't know where I got it from. | |||
22:57
wicope left
22:59
mr-foobar left
23:00
mr-foobar joined
|
|||
dalek | kudo-star-daily: 59df817 | coke++ | log/ (9 files): today (automated commit) |
23:05 | |
23:07
cognominal left
23:08
cognominal joined
|
|||
J-L | How do you append strings in Perl 6? | 23:09 | |
23:09
BenGoldberg joined
|
|||
J-L | You append with ~, correct? | 23:09 | |
23:09
pullphinger left
|
|||
japhb | J-L: That's concatenate, if that's what you mean. | 23:10 | |
J-L | Yes, sorry. | ||
japhb | Prefix ~ does stringify, FWIW | 23:11 | |
(Concatenate being infix ~) | |||
J-L | I'm trying this but I get an error: sub appender(Str string1, Str string2) { string1 ~= string2; string1.say } | ||
japhb | Arguments are not writable by default. | 23:12 | |
J-L | The error is: ===SORRY!=== Error while compiling <unknown file> Missing block. | ||
japhb | You need 'is rw' or 'is copy', depending on whether you want it to be locally modified, or modified in the caller. | ||
Also, you have no sigils. | |||
J-L | Oh, wow... I forgot the sigils. | 23:13 | |
japhb | m: sub appender(Str $string1 is rw, Str $string2) { $string1 ~= $string2 }; my ($s1, $s2) = < a b >; appender($s1, $s2); say $s1; | ||
camelia | rakudo-moar a3bdb0: OUTPUT«ab» | 23:14 | |
japhb | J-L: ^^ | ||
J-L | Excellent. Thanks, japhb. I just learned about "is rw" and "is copy". Makes sense now. And I can't believe I forgot the sigils, seeing that I've been programming Perl 5 for years. | 23:16 | |
I actually like the "is copy" and "is rw" (and that the default is neither). It makes sense to me, even through I've never seen anything like it before in any other programming language. | 23:17 | ||
23:19
virtualsue_ joined
23:20
atweiden left
|
|||
J-L | Do any of you know about NativeCall and how to use it? I've been looking at simple examples on how to use it, and some I can run, and others don't work. | 23:20 | |
23:21
virtualsue left,
virtualsue_ is now known as virtualsue
23:22
virtualsue left
23:23
kaare_ left
|
|||
J-L | Here's a NativeCall example from github.com/tony-o/perl6-win32-time...rmance.pm6 : use NativeCall; sub GetTickCount() returns Int is native('KERNEL32') is export { * }; GetTickCount().say(); # doesn't seem to work, just says: Null PMC access in get_string() | 23:27 | |
23:27
kaare_ joined
23:28
eternaleye left
23:31
telex left,
eternaleye joined
23:32
telex joined
|
|||
Kristien | Time to sleep. Goodbye friends! | 23:33 | |
23:33
Kristien left
|
|||
raydiak | J-L: are you using the Parrot backend? | 23:35 | |
retupmoca | J-L: can you 'perl6 --version' ? | 23:36 | |
yoleaux | 3 Mar 2015 19:39Z <raydiak> retupmoca: github.com/retupmoca/P6-XML-Canonical/pull/1 | ||
retupmoca | raydiak++ # ws fix | ||
jnthn | I tired it out on the Rakudo on Moar I have here and it worked out fine | 23:37 | |
raydiak | spent most tuits yesterday catching Inline::Lua's README up, so took some time to fix a few failures in the ecosystem smoke report too :) | 23:38 | |
jnthn | dalek y u no report my commit... | 23:39 | |
dalek | kudo/nom: 07cea90 | jnthn++ | src/Perl6/Optimizer.nqp: Be smarter optimizing native return value decont. This improves the code generated for ++ and -- on natives, and should thus make them more appealing to the inliner. |
23:40 | |
jnthn | ah, just slow | ||
japhb | timotimo: It looks like the index at t.h8.lv/p6bench/ is out of date. What generates it? | 23:42 | |
23:43
donaldh left
|
|||
jnthn gets some rest & | 23:46 | ||
J-L | Wait... apparently my NativeCall example up above works when I try to run it in its own file (and not in the interpreter). | 23:47 | |
raydiak and retupmoca: 'perl6 --version' gives me: This is perl6 version 2014.01 built on parrot 5.9.0 revision 0 | 23:48 | ||
raydiak | the parrot backend is no longer supported...I'd highly recommend the most recent moar available to you | 23:49 | |
J-L | raydiak and retupmoca: I installed Moar a few days ago, but I don't know how to make Perl 6 use it instead of Parrot. NativeCall didn't work before I installed Moar, but once I installed it (or thought I installed it), NativeCall started working. | 23:50 | |
raydiak | J-L: uninstall the old one before installing the new one | ||
J-L | raydiak: By uninstalling the old one, do you mean uninstall Parrot, or all of Perl 6? How do I uninstall just Parrot? | 23:51 | |
raydiak | just uninstall all of rakudo, and then reinstall with moar | ||
23:53
cognominal left
|
|||
J-L | raydiak: But is rakudo-star-2014.12.1-moar.msi all that I need to install? I thought that just installed the back-end, and nothing else. Won't I need to install other things, like the Perl6 compiler itself? | 23:53 | |
japhb | J-L: rakudo-star includes the backend(s), nqp (the middle layer), rakudo (the compiler), and a bunch of useful modules. | 23:54 | |
It's a "distribution", more batteries-included style. | |||
J-L | japhb and raydiak: So am I right in assuming that rakudo-star-2014.12.1-moar.msi contains all that rakudo-star-2014.03.msi has (except Parrot)? I see that rakudo-star-2014.12.1-moar.msi is only 7MB as compared to 16MB for rakudo-star-2014.03.msi . | 23:56 | |
It makes me think that rakudo-star-2014.12.1-moar.msi doesn't have as much as rakudo-star-2014.03.msi . | 23:57 | ||
timotimo | japhb: nothing guarantees it; i built it with ls and vim and search&replace ... | 23:58 | |
23:58
laouji joined
|