»ö« 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! Set by moritz on 25 December 2014. |
|||
timotimo | though i think our lowest level IO thingies have locking on themselves already | 00:00 | |
but you'll want to have locking for bigger blobs of output, too | |||
masak | I'd use .act regardless, just to be on the safe side. | ||
it is the semantics you want here, even if lower levels handle it just fine. | 00:01 | ||
adu | avuserow: how goes the logging? | ||
00:02
tinyblak left
00:03
skids joined
00:04
adu left,
vendethiel joined
|
|||
avuserow | .tell adu been at $dayjob all day so no direct hacking on it, just backlogged and read lizmat++'s suggestion about supplies, so I'm doing a bit of reading about it | 00:05 | |
yoleaux | avuserow: I'll pass your message to adu. | ||
masak | 'night, #perl6 | 00:07 | |
00:08
Kristien left
00:16
jack_rabbit joined,
xiaomiao left
00:20
xiaomiao joined
00:22
jack_rabbit left
00:23
jack_rabbit joined
00:26
BenGoldberg left
00:27
BenGoldberg joined,
adu joined
00:28
kurahaupo1 joined,
davido__ left,
BenGoldberg left
00:29
davido__ joined,
vendethiel left,
BenGoldberg joined
00:30
vendethiel joined,
BenGoldberg left
00:31
BenGoldberg joined
00:32
Alina-malina joined,
Kristien joined
|
|||
Kristien had an idea: gist.github.com/rightfold/fcbc1be0d35b11d38a84 | 00:33 | ||
I want to implement that. | |||
00:34
PZt joined
00:35
jack_rabbit left,
adu left
|
|||
Kristien wonders whether such shenanigans can be implemented in Perl 6 with a custom HOW | 00:39 | ||
00:41
dolmen left
00:42
adu joined
|
|||
timotimo | sub calls to the other thing? | 00:45 | |
so kind of like callsame? | |||
00:48
virtualsue left
|
|||
Kristien | calling x calls the least derived implementation | 00:48 | |
sub() calls the one more derived implementation | |||
I don't know what callsame is. | |||
00:54
vendethiel left
|
|||
ugexe | it redispatches. you could also use .wrap or augment i imagine | 00:54 | |
or .candidates[*-1] maybe | 00:57 | ||
TimToady | m: class B { method f { 'B' } }; class D is B { method f { 'D' } }; say D.*f | 01:10 | |
camelia | rakudo-moar fec233: OUTPUT«D B» | ||
TimToady | or you can use .* like that | ||
Kristien | I want B.f to call D.f for an object of type D | 01:11 | |
and (that object).f to call B.f. | |||
TimToady | how do you avoid infinite regress if you come back to B.f? | 01:13 | |
and why do you want B to implement the virtual dispatch for you? | |||
Kristien | just don't call super in D.f :P | ||
TimToady | I didn't :) | 01:14 | |
I don't understand why you want to visit B.f twice | 01:15 | ||
Kristien | I don't. | ||
TimToady | okay, I misread what you meant | ||
you kinda mean two different things by B.f up there | |||
Kristien | "class B { method f { say 'B'; prevsame; } }; class D is B { method f { say 'D' } }; D.new.f" would print "B\nD" | 01:16 | |
With some annotation on f to annotate that the mro is reversed of course. | |||
I can be an alternative to documenting that overrides must always use nextsame. | 01:20 | ||
01:21
jack_rabbit joined
|
|||
Kristien | well, time to sleep | 01:21 | |
bye! | |||
TimToady | m: class B { method f { 'B' } }; class D is B { method f { 'D' } }; say D.*f.reverse # :) | ||
camelia | rakudo-moar fec233: OUTPUT«B D» | ||
01:21
Kristien left
01:24
echowuhao left
|
|||
TimToady | m: class B { method f { 'B' } }; class D is B { method f { 'D' } }; say .can('f').reverse».($_) given D.new | 01:24 | |
camelia | rakudo-moar fec233: OUTPUT«B D» | ||
01:25
vendethiel joined
|
|||
TimToady | still kinda seems like misuse of inheritance | 01:27 | |
01:32
Sysaxed left
|
|||
skids | FROGGS++ suggestion to do a "my $!" to keep exceptions from falling out of compunits didn't seem to work. But assigning to $! at the end of the module did. Wonder how naughty that is. | 01:33 | |
TimToady | sort of a shame that rosettacode.org/wiki/Write_language...CII#Perl_6 actually requires that 'my $/;' | 01:42 | |
adu | I use figlet for that | 01:46 | |
yoleaux | 00:05Z <avuserow> adu: been at $dayjob all day so no direct hacking on it, just backlogged and read lizmat++'s suggestion about supplies, so I'm doing a bit of reading about it | ||
adu | avuserow: cool | ||
my $dayjob sucked today | |||
yoleaux: tell avuserow cool | 01:47 | ||
adu is not sure if that worked | |||
01:54
gfldex left,
Woody joined
01:56
Woody left
02:00
BenGoldberg left
02:04
BenGoldberg joined
02:12
vendethiel left,
BenGoldberg left
02:13
BenGoldberg joined,
vendethiel joined
|
|||
ugexe | grammar { token TOP { ^ <tell> \s <user> \s <message> } token tell:sym<.tell> { <sym> } token user { <alnum>+ } token message { <after <user>> (.*) } } | 02:19 | |
TimToady | \s+ probably | 02:24 | |
and ; after } if you follow with another statement on the same line | 02:25 | ||
after is amost certainly wrong | |||
ugexe | also <after [<.ws>+ <user>]> | ||
TimToady | *alm | ||
you just don't need it | 02:26 | ||
your TOP rule already guarantees it's after <user> | |||
token message { .* } is about all you need | 02:27 | ||
or \N* if you want to stop on \n | 02:28 | ||
m: $_ = "foo"; s:g [(0)] = $0 xx 2; .say; # known? | 02:32 | ||
camelia | rakudo-moar fec233: OUTPUT«foo» | ||
TimToady | m: my $/; $_ = "foo"; s:g [(0)] = $0 xx 2; .say; # known? | ||
camelia | rakudo-moar fec233: OUTPUT«Potential difficulties: Redeclaration of symbol $/ at /tmp/4d6DTiJY6l:1 ------> my $/⏏; $_ = "foo"; s:g [(0)] = $0 xx 2; .say;foo» | ||
TimToady | m: $_ = "foo"; s:g [(o)] = $0 xx 2; .say; # known? | 02:33 | |
camelia | rakudo-moar fec233: OUTPUT«fo oo o» | ||
TimToady | well, works there | ||
m: given "foo" -> $_ is copy { s:g [(o)] = $0 xx 2; .say } | 02:35 | ||
camelia | rakudo-moar fec233: OUTPUT«fo oo o» | ||
TimToady | m: for "foo" -> $_ is copy { s:g [(o)] = $0 xx 2; .say } | ||
camelia | rakudo-moar fec233: OUTPUT«f» | ||
TimToady | there's the bug | 02:36 | |
masakbot ^^ | |||
m: for "foo" -> $_ is copy { my $/; s:g [(o)] = $0 xx 2; .say } | |||
camelia | rakudo-moar fec233: OUTPUT«fo oo o» | ||
TimToady | and there's the workaround | ||
m: for "foo" -> $_ is copy { s:g [(o)] = OUTER::<$0> xx 2; .say } | 02:37 | ||
camelia | rakudo-moar fec233: OUTPUT«use of uninitialized value of type Any in string context in block <unit> at /tmp/53Sju6_D4U:1use of uninitialized value of type Any in string context in block <unit> at /tmp/53Sju6_D4U:1use of uninitialized value of type Any in string context…» | ||
02:42
grettir left
02:50
echowuhao joined
02:55
vendethiel left
03:04
beastd left
03:07
noganex joined
03:10
noganex_ left
|
|||
avuserow | adu: I usually backlog here :) for future reference, yoleaux works via '.tell user message' | 03:13 | |
03:18
Patterner joined
03:21
Psyche^ left
03:26
vendethiel joined
|
|||
adu | o hi | 03:27 | |
avuserow | o/ | 03:28 | |
adu | I knew I was doing something wrong | ||
03:40
colomon left
03:48
kurahaupo1 left
03:57
sunnavy joined
04:01
colomon joined
04:03
colomon left
|
|||
raydiak | TimToady: #123005 | 04:08 | |
synopsebot | Link: rt.perl.org/rt3//Public/Bug/Displa...?id=123005 | ||
04:14
vendethiel left,
colomon joined
04:16
colomon left
04:17
vendethiel joined
04:27
colomon joined
|
|||
avuserow | m: sub x {say caller}; x | 04:34 | |
camelia | rakudo-moar fec233: OUTPUT«===SORRY!=== Error while compiling /tmp/_pzqm4NxEWUndeclared routine: caller used at line 1» | ||
04:39
vendethiel left
04:44
vendethiel joined
05:05
vendethiel left
05:16
pdcawley left,
jack_rabbit left
05:20
vendethiel joined
|
|||
adu | raydiak: how goes? | 05:29 | |
05:34
xiaomiao left
05:38
xiaomiao joined
05:45
vendethiel left
05:51
vendethiel joined
05:52
BenGoldberg left
|
|||
TimToady | raydiak: thanks | 06:00 | |
dalek | c: d7e1907 | paultcochrane++ | html/css/pygments.css: Add pygments css colour definitions file |
06:21 | |
c: 776d3f4 | paultcochrane++ | template/head.html: Load pygments style definitions IO &close: correct link, explain why close is necessary |
|||
06:21
dalek left
|
|||
moritz | good morning | 06:22 | |
that was the add_pygments_highlighting branch merge | |||
06:22
dalek joined,
ChanServ sets mode: +v dalek
06:29
nic77 left
06:31
mr-foobar left,
fhelmberger joined
06:35
fhelmberger left
06:37
vendethiel left
06:42
adu left
06:48
bartolin joined
06:57
vendethiel joined
06:59
xinming_ left
07:07
dj_goku joined
07:19
sjn__ joined
07:20
diana_olhovik joined
07:28
itz left,
slavik left,
El_Che left,
sjn left,
coyocanid left,
Mr0rris0 joined,
Mr0rris0 left,
Mr0rris0 joined
07:29
Mr0rris0 left,
El_Che joined
07:30
Mr0rris0 joined,
Mr0rris0 left,
coyocanid joined,
Mr0rris0 joined
07:31
Mr0rris0 left
07:32
echowuhao left,
Mr0rris0 joined,
Mr0rris0 is now known as nic778,
nic778 left
07:33
Mr0rris0 joined,
Mr0rris0 left,
Mr0rris0 joined,
Mr0rris0 left
07:35
alini joined,
itz joined,
slavik joined
07:49
dj_goku left,
darutoko joined
07:53
dj_goku joined,
dj_goku left,
dj_goku joined
08:01
rurban joined,
telex left
08:02
telex joined
08:05
prime- left
08:08
prime joined
08:13
dj_goku left
08:17
dj_goku joined,
dj_goku left,
dj_goku joined
08:20
FROGGS_ left
08:25
Ven joined
08:31
rurban left
08:35
xfix joined
08:44
Ven left
|
|||
08:46
espadrine joined
08:49
FROGGS[mobile] joined
|
|||
dalek | p: 2776313 | jnthn++ | tools/build/MOAR_REVISION: Bump to latest MoarVM. |
08:51 | |
kudo/nom: 168ca22 | jnthn++ | src/vm/moar/ops/container.c: Update Rakudo scalar contspec for updated API. |
|||
kudo/nom: b46a4a9 | jnthn++ | src/vm/moar/ops/container.c: Chase MoarVM container API change after bump. |
|||
kudo/nom: 9c2dc10 | jnthn++ | tools/build/NQP_REVISION: Bump to latest NQP, to get updated MoarVM. |
|||
jnthn | (b46a4a9 was a merge commit, turns out the first commit in the native-ref branch was also the one needed for compat with the Moar bump) | 08:52 | |
08:53
Alina-malina left
08:54
Alina-malina joined
|
|||
dalek | kudo/nom: 8862eb3 | TimToady++ | src/core/Rational.pm: omit . on Rat with 0 fractional digits |
08:57 | |
08:59
Ven joined
|
|||
dalek | ast: a25df02 | TimToady++ | S32-num/base.t: tests for .base with digits, .base-repeating |
08:59 | |
TimToady | zzz while recompiling everything and spectesting & | 09:07 | |
FROGGS[mobile] | like in the good old parrot times :p | 09:10 | |
moritz | m: say pi.base(10, 5); | ||
camelia | rakudo-moar fec233: OUTPUT«3.14159» | ||
moritz | m: say (1/7).base-repeating | 09:14 | |
camelia | rakudo-moar fec233: OUTPUT«Too few positionals passed; expected 2 arguments but got 1 in method base-repeating at src/gen/m-CORE.setting:12103 in block <unit> at /tmp/3tmU1_MDCS:1» | ||
moritz | m: say (1/7).base-repeating(10) | ||
camelia | rakudo-moar fec233: OUTPUT«0. 142857» | ||
moritz | m: say (4/7).base-repeating(10) | 09:15 | |
camelia | rakudo-moar fec233: OUTPUT«0. 571428» | ||
moritz | m: say (24/7).base-repeating(10) | ||
camelia | rakudo-moar fec233: OUTPUT«3. 428571» | ||
itz | parrot used to run out of VM on a particularly old system of mine | 09:19 | |
dalek | c: d82788a | moritz++ | lib/Type/Real.pod: document $digits argument to .base stolen from the design docs |
09:20 | |
09:22
gfldex joined,
mikef left
|
|||
TimToady | compiles all three backends, some failing tests but no apparent regressions on moarvm spectest | 09:23 | |
zzz & | |||
moritz | m: printf "%s(%s)", '6.', 3 | 09:25 | |
camelia | rakudo-moar fec233: OUTPUT«===SORRY!=== Error while compiling /tmp/STMjqDTtdGVariable '%s' is not declaredat /tmp/STMjqDTtdG:1------> printf "%s(%s⏏)", '6.', 3 expecting any of: postfix» | ||
moritz | m: printf '%s(%s)', '6.', 3 | ||
camelia | rakudo-moar fec233: OUTPUT«6.(3)» | ||
moritz | .ask TimToady wouldn't it more consistent to return Str (the type object) for .base-repeating that exceeds the precision limit? | 09:30 | |
yoleaux | moritz: I'll pass your message to TimToady. | ||
dalek | c: 998065c | moritz++ | lib/Type/Rational.pod: Document Rational.base-repeating |
||
09:34
_mg_ joined
09:35
_mg_ left
09:38
Ven left
|
|||
dalek | c: 9a69456 | moritz++ | lib/Language/operators.pod: Improve docs for infix =:= |
09:39 | |
ab5tract | .botsnack | 09:41 | |
yoleaux | :D | ||
dalek | c: 7fa0d46 | moritz++ | lib/Language/operators.pod: Examples for eqv operator |
09:47 | |
09:49
FROGGS[mobile] left
|
|||
dalek | c: 7588f2b | moritz++ | lib/Language/operators.pod: infix:<leg>: mnemonic, examples |
09:50 | |
09:51
FROGGS[mobile] joined
09:52
diana_olhovik left
09:53
Ven joined
09:54
Kristien joined
|
|||
Kristien | morning | 09:55 | |
ab5tract | Kristien: good morning :) | 10:00 | |
[ptc] has the feeling that moritz++ is some kind of bot... | 10:04 | ||
m: my %hash = { "a" => 1, "b" => 2, "c" => 3}; say %hash; | |||
camelia | rakudo-moar 8862eb: OUTPUT«a => 1, b => 2, c => 3Saw 1 call to deprecated code during execution.================================================================================%hash = itemized hash called at: /tmp/Hl55Fx2VT1, line 1Deprecated since v2014.7, will be r…» | ||
[ptc] | interesting, that error didn't turn up in my rakudo-moar.... | 10:05 | |
[ptc] goes back to the drawing board | |||
nine_ | moritz: StartSSL certificates are orders of magnitude cheaper then the competition and they are accepted by all browsers nowadays. Have them in production with good experiences. | 10:10 | |
[ptc] | m: my %hash = "a" => 1, "b" => 2, "c" => 3; say %hash; | ||
camelia | rakudo-moar 8862eb: OUTPUT«a => 1, b => 2, c => 3» | ||
[ptc] | m: my %hash = "a" => 1, "b" => 2, "c" => 3; say %hash.gist; | ||
camelia | rakudo-moar 8862eb: OUTPUT«a => 1, b => 2, c => 3» | ||
dalek | kudo-star-daily: afd95e2 | coke++ | log/ (14 files): today (automated commit) |
10:18 | |
itz | I got my last startssl cert for free | ||
dalek | c: 70a983d | moritz++ | type-graph.txt: Add some more types to type-graph.txt |
10:28 | |
itz | m: 'ABC'.ords xx 2 | 10:31 | |
camelia | ( no output ) | ||
10:32
_mg_ joined,
_mg_ left
10:35
davido__ left
|
|||
dalek | kudo/nom: 98de201 | moritz++ | src/core/Temporal.pm: DateTime: Fix/add type constraints, fix format specifier in error message |
10:37 | |
10:37
davido__ joined,
kjs_ joined
|
|||
nine_ | After two decades I'm still struggeling to accept how much one can screw up a language: lwn.net/SubscriberLink/633203/40c7d412a07bc317/ | 10:38 | |
[ptc] | quite right :-) | 10:39 | |
especially 1 + "extrajunk" = 2 | 10:40 | ||
10:40
Rounin joined
|
|||
nine_ | They really want to add strict typing so functions may rely on types of their input parameters just to make it the caller's decision if he really wants to be strict or not... | 10:40 | |
dalek | kudo/nom: 949b809 | moritz++ | src/core/Proc/Async.pm: Give all X::Proc::Async exceptions a common role and make the Proc::Async object that threw it available as an attribute in the common role |
10:43 | |
c: 8fdbbb1 | moritz++ | / (2 files): Document X::Proc::Async also add X::Proc::Async and friends to the type graph |
|||
10:45
espadrine left
10:46
virtualsue joined
10:47
Kristien left
10:53
alini left
|
|||
masak | good noon, #perl6 | 10:56 | |
Ven | o/, masakbot | ||
[ptc] | masak: o/ | ||
dalek | ast: 776cec3 | moritz++ | S03-operators/repeat.t: Fudge failing test (RT #123830) |
10:57 | |
synopsebot | Link: rt.perl.org/rt3//Public/Bug/Displa...?id=123830 | ||
11:01
espadrine joined
11:07
wicope joined
11:11
virtualsue_ joined
11:12
virtualsue left,
virtualsue_ is now known as virtualsue
11:24
alini joined
11:34
alini left
|
|||
lizmat | Mouq: re irclog.perlgeek.de/perl6/2015-02-13#i_10112937 , it will most definitely *not* land before 2015.02 | 11:46 | |
yoleaux | 13 Feb 2015 21:35Z <jnthn> lizmat: Hm, that doesn't quite strike me as correct either. The $!PIO attribute is really a handle...so something along those lines may fit better. I guess we already used IO::Handle...or did that change in newio, or does places with PIO overlap with that anyway? :) | ||
lizmat | Mouq: I have good hopes soon thereafter | ||
.tell jnthn the PIO role is consumed by IO::Handle / IO::Socket / IO::Dup (the class handling $*IN and friends) | 11:47 | ||
yoleaux | lizmat: I'll pass your message to jnthn. | ||
lizmat | .tell jnthn fwiw, as I stated before, I'm fine with PIO, as it is the Perl Io Object | ||
yoleaux | lizmat: I'll pass your message to jnthn. | ||
11:49
kjs_ left
|
|||
dalek | Heuristic branch merge: pushed 132 commits to roast/newio by lizmat | 11:49 | |
11:52
gaussblurinc_ joined
|
|||
dalek | ast: 2c3817c | lizmat++ | S03-operators/repeat.t: Unfudge tests for parrot |
11:56 | |
ecs/newio: 634956a | lizmat++ | S16-io.pod: Oops, fix wrong merge |
12:03 | ||
[ptc] | m: say mkdir "blah" | 12:05 | |
camelia | rakudo-moar 949b80: OUTPUT«mkdir is disallowed in restricted setting in sub restricted at src/RESTRICTED.setting:1 in sub mkdir at src/RESTRICTED.setting:8 in block <unit> at /tmp/uA88Lv3L0m:1» | ||
dalek | kudo/newio: 168ca22 | jnthn++ | src/vm/moar/ops/container.c: Update Rakudo scalar contspec for updated API. |
||
kudo/newio: b46a4a9 | jnthn++ | src/vm/moar/ops/container.c: Chase MoarVM container API change after bump. |
|||
kudo/newio: 9c2dc10 | jnthn++ | tools/build/NQP_REVISION: Bump to latest NQP, to get updated MoarVM. |
|||
kudo/newio: 8862eb3 | TimToady++ | src/core/Rational.pm: omit . on Rat with 0 fractional digits |
|||
kudo/newio: 98de201 | moritz++ | src/core/Temporal.pm: DateTime: Fix/add type constraints, fix format specifier in error message |
|||
kudo/newio: 7418eeb | lizmat++ | / (4 files): Merge branch 'nom' into newio |
|||
lizmat | [ptc]: what are you trying to show ? | ||
[ptc] | lizmat: I was just interested to see what the error message would be like | 12:06 | |
I'm looking at the docs for mkdir and rmdir atm, and they don't seem to do the same as what the spec does | |||
I'm running moarvm, btw | 12:07 | ||
lizmat | which docs are you looking at ? | ||
[ptc] | perl6/specs/S32-setting-library/IO.pod and perl6/doc/lib/Type/IO.pod | ||
in my repl, when I try to mkdir, it returns the name of the directory made, but if I try something like mkdir "/moo", it returns effectively $( ) | 12:08 | ||
the specs say it fails, and I was just playing around to see what a failure would look like on another, more restricted system | 12:09 | ||
also rmdir returns the name of the dir which was deleted (if it existed) and nothing (not even Nil) if it didn't exist | 12:10 | ||
lizmat | on the restricted system, the mkdir sub is just replaced by something that fails | ||
[ptc] | that's ok, I just wanted to see it fail in some way :-) | ||
lizmat | well, the *exact* behaviour of mkdir() and friends is currently a bit in flux | ||
both from a synopsis point of view | |||
and from a backend point of vire | |||
*view | |||
[ptc] | that's good to know, so it might be an idea to hold off documenting things exactly at this stage | 12:11 | |
lizmat | the newio branch of "specs" contains description that matches the doc | ||
for mkdir at least | |||
and the newio implementation also matches that | 12:12 | ||
[ptc] | I had the vague feeling that what I was seeing was backend implementation-specific, and what you've said basically confirms that | ||
ok, thanks for the info :-) | |||
lizmat | yw | 12:13 | |
nine_ | lizmat: as long as it's in flux anyway. With mkdir especially I often want it to succeed if the directory already exists, but sometimes I need to treat that as an error. When the API caters to both use cases I'd consider it highly practical. | 12:16 | |
dalek | ecs: ad449e5 | paultcochrane++ | S32-setting-library/IO.pod: Format code-like string with C< > |
12:17 | |
ecs: 55b6345 | paultcochrane++ | S (5 files): Merge branch 'master' of github.com:perl6/specs |
|||
lizmat | it returns a Failure if failed, you can // it if you want to ignore | ||
dalek | c: 211ed6e | paultcochrane++ | lib/Type/IO.pod: Document IO::print |
12:19 | |
doc: e510017 | paultcochrane++ | lib/Type/IO.pod: | |||
doc: Document IO::say | |||
12:19
dalek left,
dalek joined,
ChanServ sets mode: +v dalek
12:27
coffee` left
12:32
coffee` joined
|
|||
moritz | nine_, lizmat: mkdir-but-succeed-if-exists could be called declaredir | 12:35 | |
lizmat | sub mkdir-but-succeed-if-exists(|c) { mkdir(|c) // True } | ||
sub declaredir(|c) { mkdir(|c) // True } # sorry moritz, should read better :-) | 12:36 | ||
masak | assuredir | ||
moritz | lizmat: mkdir() // True doesn't cover it | 12:37 | |
lizmat | moritz: why ? | ||
moritz | lizmat: what wouldn't fail when permission denied, no? | ||
lizmat | ah, ok | 12:38 | |
moritz | or if it's a file, not a directory | ||
or if the parent dir doesn't exist | |||
or all the other ways that mkdir can go wrong | |||
lizmat | sub declaredir(\path,|c) { mkdir(path,|c) // path.IO.d } | ||
moritz | nope | ||
that return False on error, not the Failure | |||
12:38
diana_olhovik_ joined
|
|||
lizmat | sub declaredir(\path,|c) { path.IO.d // mkdir(path,|c) } | 12:39 | |
12:39
rmgk_ joined,
rmgk left,
rmgk_ is now known as rmgk
|
|||
moritz | now if you change // to || it might work :-) | 12:39 | |
m: say "nosuchdir".IO.d | |||
camelia | rakudo-moar 949b80: OUTPUT«Failed to find 'nosuchdir' while trying to do '.d' in method gist at src/gen/m-CORE.setting:14669 in sub say at src/gen/m-CORE.setting:17426 in block <unit> at /tmp/ewedKfJhTw:1» | ||
moritz | ugh | ||
I thought it'd simply return a False | 12:40 | ||
lizmat | yeah, guess we need to check for .e first | ||
in the newio branch, that would work | |||
I think | |||
lemme check | |||
dalek | kudo/newio: f7642cc | lizmat++ | src/core/Distro.pm: Make sure we check dirs when using Distro.tmpdir |
12:41 | |
lizmat | moritz: well False would mean it exists but is not a dir | 12:43 | |
12:43
coffee` left
|
|||
lizmat | if anything, it should return Bool in that case | 12:43 | |
if it doesn't return a failure | |||
m: say "nosuchdir".IO.d // "huh" | 12:44 | ||
camelia | rakudo-moar 949b80: OUTPUT«huh» | ||
moritz | lizmat: if something doesn't exist, it's not a directory either | ||
lizmat | no, you can't tell | ||
moritz | well yes | ||
12:44
FROGGS[mobile] left
|
|||
moritz | if it doesn't exist, I can tell it's not a directory | 12:44 | |
lizmat | m: say "nosuchdir".IO.d // False | ||
camelia | rakudo-moar 949b80: OUTPUT«False» | ||
moritz | .oO( santa claus isn't a directory ) |
12:45 | |
lizmat | well, if that's what we want to do for the newio branch | ||
I'm fine with that | |||
12:45
virtualsue left,
Ven left
|
|||
lizmat | m: say "nosuchfile".IO.s | 12:46 | |
camelia | rakudo-moar 949b80: OUTPUT«Failed to find 'nosuchfile' while trying to do '.s' in method gist at src/gen/m-CORE.setting:14669 in sub say at src/gen/m-CORE.setting:17426 in block <unit> at /tmp/LVjc8W7yj_:1» | ||
lizmat | m: say "nosuchfile".IO.s // 0 # and for non-boolean cases? | ||
camelia | rakudo-moar 949b80: OUTPUT«0» | ||
lizmat | or -1 ? | ||
12:46
pecastro left
|
|||
dalek | kudo/newio: 168fca7 | lizmat++ | src/core/IO/Pathy.pm: IO::Pathy is only for existing paths |
12:50 | |
kudo/newio: f43f963 | lizmat++ | src/core/IOU.pm: IOU.e should never fail, just return Bool:D |
|||
12:50
FROGGS[mobile] joined
|
|||
lizmat | afk for a few hours | 12:52 | |
12:53
tengignick joined
12:58
diana_olhovik___ joined
12:59
diana_olhovik_ left,
pecastro joined
13:05
tgt joined,
tengignick left
13:06
pecastro left
13:10
Akagi201 joined,
mr-foobar joined
13:14
Kristien joined
|
|||
Kristien | say you'd write in Perl a program that needs some assets compiled | 13:15 | |
would you use a separate build step or would you do it in a BEGIN? | |||
moritz | separate build step | ||
nine_ | .tell lizmat path.IO.d // mkdir(path,|c) is prone to very hard to diagnose race conditions | ||
yoleaux | nine_: I'll pass your message to lizmat. | ||
dalek | c: 36c35e2 | paultcochrane++ | htmlify.p6: Rename $c -> $pod-element in find-definitions() This better represents (I believe) the variable's purpose. |
13:16 | |
13:16
wicope left
|
|||
Kristien | moritz: why? | 13:17 | |
moritz | Kristien: because that's what build steps are for | 13:18 | |
Kristien | OK. | ||
13:19
Ven joined
|
|||
dalek | c: 1139ae9 | paultcochrane++ | htmlify.p6: Rename @c -> @all-pod-elements in find-definitions() |
13:25 | |
moritz | [ptc]++ | 13:30 | |
13:44
dolmen joined
13:53
Ven left,
Ven joined,
Ven left
13:54
Ven joined
14:00
gaussblurinc_ left
|
|||
dalek | c: 622daaa | paultcochrane++ | htmlify.p6: Rename $tg -> $type-graph in htmlify |
14:06 | |
arnsholt | Kristien: Remember that you're not guaranteed that your program will be run in pre-compiled mode. In that case, you'd end up building the assets on every start-up | 14:07 | |
masak | [ptc]++ # clarity? in variable names? well, I never! :P | ||
arnsholt | Which is probably not what you want | ||
Kristien | OK | ||
arnsholt | I mean, it could be what you want, but a priori I'd think a separate step is more appropriate | 14:10 | |
14:12
pmurias joined
|
|||
pmurias | re building assets at BUILD time, shouldn't the be rebuilt when their dependencies change? | 14:12 | |
itz | some odd and inconsistant spec test fails on FreeBSD/Linux | 14:13 | |
arnsholt | pmurias: Probably. Of course, you *could* implement that kind of logic in a BEGIN =) | 14:14 | |
I guess it's just a question of time before someone implements a Make slang =D | 14:15 | ||
itz | ah one is fudged now | ||
pmurias | we don't have a decent way to compile Perl 6 yet, so I'm not sure putting compilation of other stuff into makes much sense | 14:16 | |
s/into/it/ | |||
14:16
zby_home joined
|
|||
[ptc] | masak: sorry! I'll change them into $x, $xx and $xxx :P | 14:17 | |
masak | :P | 14:19 | |
moritz | [Coke]: re irclog.perlgeek.de/perl6/2015-02-11#i_10100787 do you think what's shown now satisfies that? | 14:23 | |
14:24
tgt left,
Akagi201 left
|
|||
dalek | p/js: 020a5af | (Pawel Murias)++ | nqp-js: Do not rm tmp.js in the nqp-js script, it's annoying and potentially dangerous |
14:28 | |
p/js: 6c9e703 | (Pawel Murias)++ | src/vm/js/ (4 files): Pass test 55. Deserialize closures which have no context. Set the code object on deserialized closures. |
|||
14:33
fhelmberger joined
|
|||
pmurias | but once we get rid of Makefile doing asset compilation at BEGIN time makes some sense | 14:35 | |
14:38
fhelmberger left
|
|||
moritz | pmurias: do you know how I can get 'node' installed on debian? the nodejs package just installs a 'nodejs' binary | 14:41 | |
14:45
pmqs joined
|
|||
Ven | moritz: build it. | 14:46 | |
moritz | pmurias: or should I teach Configure.pl to probe for nodejs? or allow specifying the binary | ||
Ven: I'd like to avoid that | |||
Ven | well...:) | ||
moritz | Ven: a different binary name shouldn't be reason to do a custom build | 14:47 | |
Ven | moritz: no, but an outdated version in packages is. | ||
moritz | Ven: but is it? | ||
Ven | moritz: pretty sure it is. type nodejs -v and discover | ||
moritz | 0.10.29 | 14:48 | |
vs. 0.12 as the last stable release | |||
not knowing anything about node, that doesn't sound too terrible | |||
14:49
colomon left,
colomon joined
|
|||
moritz | ok, I've done a symlink into $HOME/bin for now | 14:50 | |
though I'm happy to contribute some code to make the binary name specifyable at Configure.pl time | |||
if that's wanted | |||
Ven | pmurias: so, after nqp-js gets tests 19,24,29-32,34,43-45,49,50,52,54,60-63,67,72-74,77-80,83-87 -- will other tests be missing? | 14:54 | |
admittedly, some of them can't be passed -- are they "just" skipped? | 14:55 | ||
14:57
tgt joined
14:58
Akagi201 joined
|
|||
Ven is now building nqp-js | 15:00 | ||
ab5tract | .ask lizmat i'm curious what your opinion is re: a quanthash-y symmetric difference op: github.com/rakudo/rakudo/pull/362 | 15:05 | |
yoleaux | ab5tract: I'll pass your message to lizmat. | ||
ab5tract | .tell lizmat but even more curious is that infix:<(^+)> seems to break the parser in some really weird way. the operator is unusable when invoked from a file, or when used like (...).Bag (^+) (...).Bag from the repl | 15:06 | |
yoleaux | ab5tract: I'll pass your message to lizmat. | ||
Ven | pmurias: I'm totally new to nqp hacking. Do I get need to re-make && make test everytime I change something? (the answer seems obvious here | ||
pmurias: uglifyjs command seems to be "uglify" here (?) | 15:11 | ||
pmurias | moritz: teaching Configure.pl to probe for nodejs would be great | 15:14 | |
Ven: you need to make everything after you change something | 15:15 | ||
Ven | pmurias: mmmh... I'm a bit lost in the sea, tbh. but yeah, I guessed as much | ||
pmurias | Ven: there is a HACKING file | 15:16 | |
Ven | pmurias: yes, I know, I'm reading it | ||
pmurias | Ven: re "uglify" we might want to detect that | ||
Ven | pmurias: but, i.e., TODO says "list_s", so I tried looking i.e. in Ops.java for a list_s, but none to be found, so I'm guessing I'm looking at the wrong file...:) | 15:17 | |
psch | o/ | ||
pmurias looks | |||
Ven | \o psch | ||
psch | Ven: Compiler.nqp has the core ops, not all of those map to vm-specific code | 15:18 | |
(Compiler.nqp for jvm that is, it's QASTCompilerMAST.nqp for moar) | |||
to clarify, not all are implemented on vm-level | |||
i think that's more correct :) | |||
pmurias | src/vm/jvm/QAST/Compiler.nqp | 15:20 | |
dalek | p/js: 4d5827a | (Pawel Murias)++ | src/vm/js/nqp-runtime/deserialization.js: Remove empty loop. |
15:23 | |
p/js: bf84036 | (Pawel Murias)++ | HACKING: Mention the other place ops are implemented on the jvm. |
|||
15:23
dolmen left
|
|||
Ven | psch: thanks. too bad there doesn't seem to have much comments | 15:23 | |
pmurias | Ven: for implementing list_s it's best to just add a new type to the generic list_* code in src/vm/js/QAST/Compiler.nqp:528 | 15:24 | |
psch | Ven: the add_core_op invocation the file pmurias++ gave above seems commented better than other some other parts the jvm backend to me | 15:25 | |
Ven | pmurias: ah, is it really that simple :P? | 15:29 | |
There's no listing OP <-> test, I'll guess? | |||
pmurias | I don't understand | ||
Ven | pmurias: I reckon there's no tests currently written for nqp::list_s, right? | 15:30 | |
itz | twitter.com/fsfe | ||
:) | |||
pmurias | I have one ready | ||
psch | pmurias: ooc, what's the reason for having "add_op" and "add_simple_op" instead of "add_core_op" as jvm and moar do? | ||
Ven | itz: that's a very nice photo of woolfy++ | 15:31 | |
dalek | p/js: 6820384 | (Pawel Murias)++ | / (2 files): Add list_s test. |
||
pmurias | Ven: as I was just preparing to implement list_s, as it's required for rules | 15:32 | |
Ven | pmurias: fair enough. | ||
15:33
grondilu joined
|
|||
pmurias | just add 59 back to run_tests when you implement nqp::list_s | 15:33 | |
15:33
grondilu left,
grondilu joined
|
|||
pmurias | psch: add_simple_op is just a helper on top of add_op to allow more concise op definitions | 15:34 | |
grondilu | say "foo".trans: @$_ Z=> .[].rotate(13) given "a".."z" | 15:35 | |
m: say "foo".trans: @$_ Z=> .[].rotate(13) given "a".."z" | |||
camelia | rakudo-moar 949b80: OUTPUT«sbb» | ||
grondilu | m: say "sbb".trans: @$_ Z=> .[].rotate(13) given "a".."z" | ||
camelia | rakudo-moar 949b80: OUTPUT«foo» | ||
grondilu thought Range supported .rotate so he could do without .[] | 15:36 | ||
15:36
alini joined
|
|||
pmurias | psch: it's not really clear to me what the difference between "hll" and "core" ops is in the jvm backend | 15:37 | |
15:37
dolmen joined,
paul__ joined,
paul__ left
|
|||
psch | pmurias: hll ops are bound to one specific hll, for starters. e.g. "how do we stringify" differs between python and perl6 | 15:38 | |
15:38
pmqs left
|
|||
psch | pmurias: i don't know if that distinction is consistent throughout NQP though | 15:38 | |
15:38
pmqs joined
|
|||
pmurias | psch: I tend to do things in a test driven manner, when we get to the point where it's neccessary I will add that distinction | 15:39 | |
but I'm not jnthn++ so it's hard for me do anticipate how everything will be done as I haven't implemented nqp 3 times before | 15:40 | ||
15:40
alini left
|
|||
psch | pmurias: no worries, i was just wondering. not having the distinction might just make it different (than nqp-j or nqp-m) to use nqp-js for other languages | 15:41 | |
that's how i understand the difference between add_core_op and add_hll_op at least - ops added with the former exist for every language implemented with NQP, ops added with the latter are bounds to one HLL | 15:42 | ||
which is kinda fun, because NQP is itself a HLL implemented with NQP... | |||
ab5tract | pmurias++ # it's great to see so much progress on nqp-js | ||
pmurias | calling both the NQP language and the QAST backend NQP is confusing | 15:43 | |
psch | QAST is (P++)AST as a parsing structure implemented in NQP | 15:44 | |
NQP is bootstrapping and understand languages that emit QAST | |||
NQP emits QAST | |||
and Münchhausen is happy | 15:45 | ||
in other words, i'm not sure i understand the confusion | |||
pmurias | NQP is a language like Perl 6 | 15:48 | |
but jnthn also calls the whole architecture NQP | 15:49 | ||
psch | in my understanding, NQP is a bootstrapping language and compiler focused on parsing and compilation | 15:50 | |
as such, NQP is a prime target for dogfooding and should bootstrap | |||
eh, that was jumbled. "it's bootstrapping because it should bootstrap" | 15:51 | ||
15:51
colomon left
|
|||
psch | what i mean is that as a language it's made for implementing languages, and thus as a compiler it should bootstrap to prove it's good at what it does | 15:52 | |
Ven | pmurias: what's $@ in run_tests? | ||
15:54
diana_olhovik___ left
|
|||
Ven | pmurias: "NYI is not defined" :P | 15:54 | |
Heap corruption detected: pointer 0x101367fa0 to past fromspace while trying to re-"make" | 15:55 | ||
Okay, what now :( | |||
15:55
colomon joined
|
|||
Ven make cleans | 15:55 | ||
15:57
colomon left
|
|||
Ven | pmurias: okay, works with make clean && make, but I'm a bit afraid I'll have to do that every time | 15:58 | |
pmurias | Ven: $@ in run_tests is used to pass a -v | 15:59 | |
15:59
colomon joined
|
|||
Ven | pmurias: ah, it's basically "every input"? | 15:59 | |
as in, input forwarding | 16:00 | ||
pmurias | command line options forwarding | ||
so we can have src/vm/js/bin/run_tests -v | |||
Ven | alright, gotcha | ||
going to fork, make a branch and PR, then | |||
"what's the smallest contribution I can make?" | |||
I found the answer to that one :). gotta start somewhere, tho | |||
pmurias | just commit | 16:01 | |
Ven: you have a nqp commit bit? | |||
Ven | pmurias: I don't | ||
pmurias | I can pull the PR then | 16:02 | |
Ven | alright, then I'll fork and PR | ||
pmurias: #221 | 16:04 | ||
dalek | p/js: 5ca166f | vendethiel++ | src/vm/js/ (2 files): Add nqp::list_s and nqp::push_s, re-enable test 59 |
16:05 | |
p/js: 2eb3dc1 | (Pawel Murias)++ | src/vm/js/ (2 files): Merge pull request #221 from vendethiel/js-fix59 Add nqp::list_s and nqp::push_s, re-enable test 59 |
|||
Ven | pmurias: I have *no idea* how die_s should be implemented. Throw an exception :|? | 16:06 | |
pmurias | Ven: yes, but we will need to walk the contexts to call the handler *before* calling the exception | 16:08 | |
dalek | p/js: 32535d5 | (Pawel Murias)++ | src/vm/js/ (4 files): Implement nqp::callercode. |
||
Ven | pmurias: it seems nqp-js will really have to ABUSE exceptions a lot | ||
ah, I forgot to update TODO | |||
pmurias | as exceptions are resumable in nqp | ||
I'll update the TODO | |||
dalek | p/js: 8fffdb7 | (Pawel Murias)++ | TODO: Update the TODO. |
16:09 | |
pmurias | Ven: Perl 6 abuses exceptions a lot, it uses them a lot for control flow | ||
Ven | pmurias: why did you name all these functions? | ||
16:10
BenGoldberg joined
|
|||
Ven | pmurias: admittedly, the perl6 VM(s) can optimize for control flow exceptions | 16:10 | |
pmurias | Ven: the ones with _? | ||
Ven | pmurias: yes, but I have my answer now | ||
I didn't read the commit properly | 16:11 | ||
pmurias: be aware, tho, Function.name is nonstandart, AFAIK | |||
I'm not even sure actually. I know it's not standardly-writeable, at least... (IE fails here) | |||
16:12
Ven left
|
|||
pmurias | IE doesn't seem to support it :( | 16:14 | |
we could define our own property | |||
we will need to set up some in browser testing if we want to make sure we are compatible | 16:15 | ||
dalek | line-Perl5: fa2e492 | (Stefan Seifert)++ | / (2 files): Check minimum Perl 5 version for less confusing errors |
16:17 | |
nine_ | Seems like Inline::Perl5 requires 5.18 at least. Older perls don't seem to like calls like 'v6::run("say q{Hello World}");' | 16:18 | |
pmurias | nine_: there is an existing v6 module | 16:19 | |
ugexe | how do you turn off a modifier in a group? like [:i 'http'] but *not* case sensitive | ||
16:19
Kristien left
|
|||
ugexe | er not case insensitive :) | 16:20 | |
psch | m: say "abCd" ~~ m:i/a b [:!i c] d/ | 16:21 | |
camelia | rakudo-moar 949b80: OUTPUT«False» | ||
psch | m: say "abCd" ~~ m:i/a b [ c] d/ | ||
camelia | rakudo-moar 949b80: OUTPUT«「abCd」» | ||
ugexe | ah thanks psch | ||
nine_ | pmurias: you mean v6-perlito? Only the distribution is called v6. The package is v6-perlito. It's where I got the idea for v6-inline | 16:23 | |
pmurias | ok | ||
nine_ | I guess perl's parser in older versions gets confused, leading to messages like "Bareword found where operator expected at (eval 5) line 6, near "v6::call"" | 16:24 | |
16:28
Ven joined
16:31
Ven_ joined
16:32
Ven left
16:34
pierrot_ joined
|
|||
dalek | p/js: 6aa5d8d | moritz++ | tools/lib/NQP/Configure.pm: Build a probe for node/nodejs. Not used yet |
16:34 | |
16:34
pierrot left
16:37
Kristien joined
16:39
pierrot_ left
|
|||
moritz | pmurias: where is node actually called? I'm too dumb to find it in Makefile-JS.in | 16:39 | |
16:39
spider-mario joined
|
|||
dalek | p/js: 4ffd64f | moritz++ | Configure.pl: probe for node(js) in Configure.pl |
16:40 | |
16:45
pierrot joined,
pierrot is now known as Guest51517
|
|||
pmurias | moritz: src/vm/js/HLL/Backend.nqp | 16:47 | |
16:47
alini joined,
Guest51517 left
|
|||
moritz | pmurias: how do I get configure values in there? | 16:48 | |
dalek | line-Perl6: a477ec6 | (Stefan Seifert)++ | / (3 files): Lower perl requirement to 5.18 |
||
pmurias | moritz: not really sure | 16:50 | |
16:50
Gerardo_ joined
|
|||
literal | from S02: "In addition, the double angles allow for comments beginning with #. These comments work exactly like ordinary comments in Perl code." <- Rakudo thinks otherwise and I can't find any spectests for this. Is it still correct? | 16:50 | |
16:52
FROGGS joined
|
|||
nine_ | Can I detect in my BUILd method whether an optional named parameter has been passed in even if it is undefined? | 16:52 | |
pmurias | moritz: we could write a .nqp file at build time with the probed value | ||
moritz: or maybe we could to the probing at runtime? | 16:53 | ||
17:01
gaussblurinc_ joined,
echowuhao joined
|
|||
dalek | line-Perl5: fbff133 | (Stefan Seifert)++ | lib/Inline/Perl5.pm6: Allow for using NULL as external $p5 for perls without multiplicity Inline::Perl6 on a perl without multiplicity passes a NULL pointer as my_perl. Detect this correctly and avoid creating a new perl interpreter. |
17:03 | |
line-Perl6: 8305f7b | (Stefan Seifert)++ | Perl6.xs: Support perl without multiplicity |
|||
nine_ | Done :) | 17:04 | |
pmurias: now supporting perl 5.18 and up with and without multiplicity in Inline::Perl6 | |||
pmurias | nine_: great | 17:08 | |
17:12
Gerardo_ left
17:15
zakharyas joined
17:23
sqirrel__ joined
17:25
gaussblurinc_ left
|
|||
FROGGS | nine_++ | 17:26 | |
17:26
naptastic joined
|
|||
naptastic | Is there a list of modules that will be included in the Perl 6 core distribution anywhere? | 17:26 | |
FROGGS | naptastic: there is only one distribution of that kind atm and is called 'rakudo star' | 17:27 | |
TimToady | we're adopting the linux multiple distribution model | ||
yoleaux | 09:30Z <moritz> TimToady: wouldn't it more consistent to return Str (the type object) for .base-repeating that exceeds the precision limit? | ||
FROGGS | naptastic: this is bundled there currently: github.com/rakudo/star/tree/master/modules | 17:28 | |
moritz | nine_: you can add a *%args and test for %args{$paramtername}:exists | ||
17:28
telex left
|
|||
naptastic | FROGGS, thanks! That's what I was looking for. | 17:28 | |
hoelzro | TimToady: not that I disagree, but do you think that having a multiple distribution model could confuse people? | ||
17:28
adu joined
|
|||
hoelzro | I remember being confused about that when I started with Linux | 17:28 | |
TimToady | sure, but it scales better for success and for evolution of the set of modules | 17:29 | |
unlike with P5 where we had to decide in one spot what should be included | |||
hoelzro | I see | ||
TimToady | we're like the Linux kernel | 17:30 | |
except when we're doing Star, which is like, oh, slackware :) | |||
hoelzro | I see how it's better for people used to the ecosystem, but I feel it could impact adoption | ||
17:30
telex joined
|
|||
hoelzro | good analogy =) | 17:30 | |
masak .oO( except with a less abrasive BDFL ) | |||
naptastic | :D :D :D | 17:31 | |
TimToady | in some ways it's a lot less of a problem, since people don't have to load their linux from 20 floppies anymore | ||
hoelzro | I think the issue is in a year or two, people may ask "which Perl 6 distribution do I use?" | ||
mst | p5's quest to have core be as close as possible to "what you need to bootstrap a cpan client" | ||
flussence | it's fine if we're not perfect, as long as all the bits are in place to allow anyone else to come along and do a better job | ||
TimToady | but we're trying to avoid the "batteries included but some of them are dead batteries" | ||
hoelzro | then again, we kind of have that issue with implementations | 17:32 | |
mst | is, at least in part, intended to enable perl5 distributions | ||
hoelzro | ok, that's a good thing to avoid =) | ||
mst | all things considered "batteries included but some of them are leaking acid everywhere" is a worse fate | ||
TimToady | mst: yes, we were basically aiming for the kernel vs distribution model from nearly the beginning | ||
mst | I mean, FFS, we had *Switch.pm* in core up until 5.13.1 | 17:33 | |
TimToady | for the same reason that P5 now is :) | ||
mst vomits | |||
17:33
adu left
|
|||
El_Che | mst: "leave my leaking batteries alone! my old code is depending on them!" :) | 17:33 | |
naptastic | I've been curious, because (mainly as a thought exercise) I've been thinking of how I would design my library | ||
mst | hoelzro: basically, having had the alternative problem, I'd much prefer to have the "which one do I use" problem | ||
17:33
echowuhao left
|
|||
mst | also, well, so long as apps/modules specify their deps in full | 17:34 | |
flussence | hey, I *liked* Switch.pm (until I used it...) | ||
mst | it shouldn't matter that much | ||
17:34
adu joined
|
|||
hoelzro | mst: looking at P5 in hindsight (esp. with your Switch example), it does make more sense | 17:35 | |
naptastic | (I'm mostly thinking about serialization formats right now... did you know that INI format can be as expressive as JSON?) | ||
hoelzro | I guess the onus is ours to make the choice of which distribution to use clearer for new users | ||
mst | it can, sort of. I prefer JSONY, which ingy and I cooked up as a less-syntax-JSON | ||
flussence | naptastic: yes, but SGML can be as expressive as YAML :) | ||
hoelzro | El_Che: even worse is depending on battery acid dripping on the floor =) | ||
17:36
pierrot_ joined
|
|||
naptastic | Any time someone complains about Perl--ANYTHING about Perl--I remind them that it could be worse. We could be using PHP. | 17:36 | |
TimToady is not sure how much further we can drive a metaphor borrowed from a boa constrictor | |||
naptastic | What we have here, is a Swiss Army Chainsaw. What they have there is the training wheels without the bike. | ||
flussence | they have a decent template engine but lack a language behind it | 17:37 | |
skids | Is there any consistent-semantics claim staked on e.g. $myclass.Int( args-to-coercion ) or is that solidly in each class's purview to decide? | ||
nine_ | moritz: do you think github.com/niner/Inline-Perl5/commit/fbff13313e is acceptable Perl 6? | ||
arnsholt | jnthn: At the 6model level, what's the state of our story for shaped arrays? | ||
skids | Like $obj.Int(Str) won't be expected to mean "coerce to a coercion type" right? (Can't think of a use to that) | ||
hoelzro | skids: I think that a .Type method can take any args/kwargs it wants, as long as it supports a zero-arity call | 17:38 | |
El_Che | hoelzro: well, it depends how you define what a battery is. Sometimes batteries do provide stuff that should be core. In my case, I am thinking on Moo. It's probably the first thing I install. | 17:39 | |
TimToady | coercions should generally not have args, to my mind; they should generally be 1-to-1, or they should be named something else | ||
in particular, if there are multiple values coming in, you have a constructor, not a coercer | 17:40 | ||
or a composer, if you sill | |||
*will | |||
17:41
pierrot_ left
|
|||
skids | Well, the particular use case I had in mind was something to give one-shot use to Sum akin to P5 $d->digest($addend,...). I was thinking maybe $sum.buf8($addends,...) etc. | 17:42 | |
Allowing one-shots for various types. | 17:43 | ||
pmurias | what are the benefits of batteries included distro? It's a bit more convenient as you don't have to install some modules? | ||
TimToady | you don't have to pull in as many modules, yes | ||
and each distribution will be tuned for a certain set of standard activities | 17:44 | ||
so you have the linux(es) for video production, for office use, for (cough) touchscreens, etc | |||
I wouldn't be surprised if there was a linux for model railroading :) | 17:45 | ||
pmurias | I hope we avoid having multiple cpans | ||
Ven_ | nine_: any reason for not using `//` instead of === Any? | 17:46 | |
TimToady | it doesn't matter | ||
Ven_ | ah, I guess Nil is p5's undef? | ||
El_Che | TimToady: it sounds like you have world domination plans :) | ||
TimToady | (mutliple CPANs) | ||
Ven_ | OOh that's the base for the commit -_-. I'm so blind | ||
moritz | pmurias: "batteries included" might lead to less fragmentation | ||
TimToady | if official modules are immutably identified, it doesn't matter where they come from | ||
moritz | pmurias: just look at how many OO modules Perl 5 has that are in common use | ||
mst | that was nothing to do with batteries being included or not | 17:47 | |
TimToady | Ven_: yes, Nil is (supposed to be) the most like undef, except when it's not | ||
mst | that was to do with there being lots of experimentation until one particular experiment (Moose) was good enough to spawn an ecosystem that became dominant | ||
Ven_ | That makes sense. p5 only has "one" undef type? (not Nil Mu Any) | ||
TimToady | batteries included would be like the linux kernel trying to also be a distribution | ||
Ven_ | well, I guess there's the common supertype that I can't name ATM | 17:48 | |
mst | this was an improvement over us trying to build something we didn't know how to build yet | ||
flailing randomly on CPAN for years was a distinct improvement over nothing | |||
TimToady | Nil is still too much like () in list context, but we'd like to fix that if possible | ||
mst | as a way of passing the time until we could steal carefully researched ideas from perl6 ;) | ||
masak | :) | ||
flussence | pmurias: right now we only have one "cpan" for p6, which is github. Some diversity would be a good thing there... | ||
TimToady | well, you should really steal the type system, if you want smartmatching to work right :) | 17:49 | |
17:49
pierrot joined
|
|||
TimToady | I think P5 could usefully steal the various metaoperators though | 17:49 | |
pmurias | flussence: yes | ||
masak | TimToady: it already stole the assignment one :P | 17:50 | |
Ven_ | masak: All =()= of the world, unite! | 17:52 | |
moritz | .uni +ב | ||
ENOUNIBOT | |||
flussence | .u 1F365 | ||
yoleaux | U+1F365 FISH CAKE WITH SWIRL DESIGN [So] (🍥) | ||
masak | o.O | 17:53 | |
moritz | .u +ב | ||
yoleaux | U+002B PLUS SIGN [Sm] (+) | ||
U+05D1 HEBREW LETTER BET [Lo] (ב) | |||
TimToady | .u ユ | 17:54 | |
yoleaux | U+FF95 HALFWIDTH KATAKANA LETTER YU [Lo] (ユ) | ||
naptastic | Stop it. None of this is rendering correctly for me. | ||
TimToady | this is all normal UTF-8 | 17:55 | |
naptastic | I know. That's what makes it so sad. | ||
17:55
rindolf joined
|
|||
Rounin | Just wait until we get started on the hieroglyphs | 17:55 | |
TimToady | what client/terminal are you on | ||
Rounin | I have a soft spot for the squirting penis one | ||
masak | naptastic: you should look into fixing that. | ||
Rounin | (Yes, it exists) | ||
And the "guy fondling a microchip" | |||
naptastic | Hexchat on Gentoo. I probably don't have enough fonts installed. | 17:56 | |
Rounin | Good evening rindolf! | ||
rindolf | Rounin: hi, evening. | ||
masak | easy enough to fix, then. | ||
rindolf | Rounin: what's new? | ||
Rounin | Haha | ||
I'm Rounin! Evening's the time period ;) | |||
TimToady | does it make boxes or does it make mojibake? | ||
if it's boxes, it's probably font | |||
flussence | naptastic: `emerge unifont` will fix that up | ||
Rounin | rindolf: Nothing I think... I'm trolling around the classified ads for new jobs, since I'm bored at work... But it's half-hearted I guess | 17:57 | |
TimToady | if mojibake, it's probably a missing -utf8 sort of switch somewhere | ||
Rounin | rindolf: What's new in your life then? | ||
rindolf | Rounin: well, today our telephone (And ergo - ADSL Internet) connection was down for most of the day. | 17:58 | |
Rounin | :( | ||
masak | rindolf, Rounin: glad to see you both here on #perl6. :D | ||
naptastic | flussence, thanks! As soon as Thunderbird and Firefox are finished, I'll do that. XD | ||
masak | it's Rakudo you're using, yes? | 17:59 | |
TimToady | apparently hexchat doesn't do font substitution very well, so you get mojibake where you should get boxes | ||
at least as of 2013 | |||
17:59
pierrot left
|
|||
Rounin | Thanks masak :) | 17:59 | |
mst | TimToady: I want pluggable operators | ||
TimToady: sadly my "find a horrible hacky way and implement that to embarass competent people into doing it properly" didn't work | 18:00 | ||
Rounin | TimToady: Hm... One would think it used standard GTK+ widgets... But is this on Windows? | ||
Oh, no, Gentoo | |||
Ven_ | mst: can I see your implem. ? | ||
mst | (unlike for keywords ;) | ||
18:00
P1RATEZ joined
|
|||
mst | Ven_: uh. I mean, I never worked out a way. | 18:00 | |
Ven_: Devel::Declare was the keyword one, Devel::CallParser the proper approach in perl5 core | 18:01 | ||
Ven_ | mst: ah, okay. what about keywords :)? | ||
ah, thanks.. | |||
18:01
sqirrel__ left
|
|||
TimToady | well, user-defined operators are just gonna be a pain as soon as you get anywhere near the lexer in P5 | 18:01 | |
18:02
_mg_ joined
|
|||
TimToady | there's a reason we picked an entirely different way to do that, with strict one-pass parsing... | 18:02 | |
18:03
sjn__ is now known as sjn
|
|||
mst | of course. but "that's going to involve crawling horrors" has never stopped me trying before | 18:03 | |
TimToady | have the appropriate amount of fun :P | 18:04 | |
naptastic | hueheuhue | ||
18:04
dolmen left
|
|||
mst | I think the only way to enjoy writing something like Devel::Declare is to have an inappropriate amount of fun | 18:04 | |
once you end up with a file called stolen_chunk_of_toke.c 'appropriate' becomes pretty unreachable ;) | 18:05 | ||
TimToady | s/amount/kind/ :) | ||
rindolf | masak: hi, thanks. | ||
Rounin | As long as you have The One Function, eval(), you can look forward to all sorts of fun | 18:06 | |
mst | TimToady: :D | ||
masak | rindolf: are you on Rakudo? | ||
Rounin: how about you? | |||
18:07
Ven_ left
|
|||
rindolf | masak: no, I'm not using Rakudo. | 18:07 | |
masak | :/ | ||
Rounin | masak: I'm not on any Perl compiler right now... I program in Java, and on weekends I read "A Dance with Dragons" | ||
masak | Rounin: sounds nice :) | 18:08 | |
Rounin | There are worse things, for sure | ||
TimToady | maybe you should sneakily start using rakudo/jvm at work | 18:11 | |
and reimplement all you cohort's mile-long Java programs as one-liners | 18:12 | ||
*cohorts' | |||
Rounin | It has occurred to me ;) | ||
I'm already replacing 12-line methods with 1-2-line ones with regexes in them and such | |||
FROGGS | that does not help if you get paid by loc :/ | ||
masak | FROGGS: quit. | 18:13 | |
Rounin | while(tokenizer.hasNext()) stringBuffer.append(so-and-so) etc. | ||
We have some very old-school code | |||
FROGGS | masak: I don't get paid that way luckily | ||
not sure if that is a thing in Germany anyway | |||
Rounin | I get paid for just sitting there, personally... But man, is that a boring thing to be getting paid for | ||
masak | FROGGS: I think I would just unroll loops all day. | ||
FROGGS | hehe | 18:14 | |
Rounin | Come to think of it, perhaps that was how we got our code | ||
It does look like every loop has been unrolled and every function inlined | |||
And bugs left in 1 out of 200 instances | |||
FROGGS | :o( | ||
Rounin | It's fun refactoring it though :> | 18:15 | |
FROGGS | I am an almost-one-man-army that also has to do the support... so, I fix my bugs quickly | ||
18:15
Ven joined
|
|||
Rounin | Ah, the good old "development/operations/customer support" position | 18:16 | |
FROGGS | right | 18:17 | |
raydiak | moritz: should I be seeing syntax highlighting in the docs? | ||
FROGGS | but hey, it also can be a good thing... I do the design also, which is quite pleasing | ||
18:17
pierrot joined
|
|||
FROGGS | I'd like to have code reviews are a discussion from time to time though | 18:17 | |
or a* | |||
Rounin | We have caught some troublesome issues during code reviews... I've come to like them a lot | 18:19 | |
18:19
pmurias left
|
|||
[ptc] | raydiak: I don't think so yet; the server needs the right version of pygments installed for syntax highlighting to appear on docs.perl6.org | 18:20 | |
18:21
pierrot left
|
|||
raydiak | [ptc]: I see...thanks | 18:23 | |
18:23
pierrot joined
|
|||
[ptc] | raydiak: of course, if you have pygments version 2.0 installed on your machine, after you run htmlify, you should see syntax highlighted docs | 18:23 | |
18:25
gaussblurinc_ joined
18:26
naptastic left,
tgt left
|
|||
raydiak | [ptc]: hadn't tried myself yet, just saw the merge last night, so wanted to make sure someone with the power to fix it was alraedy aware that it's not working yet | 18:27 | |
18:29
pierrot left,
pierrot joined,
gaussblurinc_ left
18:33
pierrot left
|
|||
moritz | raydiak, [ptc] the problem isn't pygments, it's Pod::To::HTML | 18:33 | |
... updated Pod::To::HTML | |||
18:33
fhelmberger joined
|
|||
moritz | the next push should[tm] trigger a build with syntax hilighting | 18:34 | |
18:34
Mouq joined
18:35
echowuhao joined,
pierrot joined
|
|||
raydiak | moritz: thanks! | 18:36 | |
dalek | c: 6f6938b | moritz++ | htmlify.p6: Note requirements for pygmentize in comment |
18:38 | |
18:38
fhelmberger left
|
|||
moritz | my dummy commit to trigger a rebuild :-) | 18:38 | |
18:39
tgt joined,
pierrot left
|
|||
raydiak | heh I figured it was just a clever way to get someone to contrib something :) | 18:40 | |
18:40
pierrot joined
18:45
pierrot left
18:46
pierrot joined,
Ven left
|
|||
nine_ | Ven: I have used // before, but I need to differ between Any (argument not passed) and Perl5Interpreter (NULL pointer passed). | 18:47 | |
moritz | ok, build failed | 18:48 | |
doc.perl6.org/build-log/build-2015-...0+0000.log | |||
guess why it failed | |||
18:48
skids left
|
|||
moritz | I ran it as user 'moritz' before | 18:48 | |
so there was a /tmp/pod_to_pyg.pod there already | 18:49 | ||
and not writable for use doc.perl6.org | |||
18:49
dolmen joined
|
|||
psch | m: class A { method BUILD(Mu :$named) { say $named.perl } }; A.new(); A.new(:named) # nine_ | 18:50 | |
camelia | rakudo-moar 949b80: OUTPUT«MuBool::True» | ||
psch | might help, not sure how exactly your case looks | ||
18:50
pierrot left
|
|||
psch | i'd guess a null pointer would come as Nil, which would give you Mu | 18:50 | |
oh, nevermind, that doesn't help. not passed is still the type | 18:51 | ||
moritz | nine_: use *%args, and check for %args<argument>:exists | ||
dalek | c: 0edfb1a | moritz++ | htmlify.p6: Try to make temp file safer |
18:53 | |
18:55
colomon left,
colomon joined
|
|||
b2gills | m: sub test ( Range:D $r ( :$infinate where 0, *% ) ){ say $r }; test ^5; | 18:58 | |
camelia | rakudo-moar 949b80: OUTPUT«use of uninitialized value of type Any in numeric context in sub test at /tmp/0c2iKN1gRZ:10..^5» | ||
18:59
diana_olhovik_ joined
19:01
brrt joined
19:02
dolmen left
19:03
skids joined
|
|||
dalek | line-Perl5: c93c77c | (Stefan Seifert)++ | lib/Inline/Perl5.pm6: Make init with external $p5 less fragile. Thanks to moritz++ for the suggestion. |
19:04 | |
TimToady | m: say « 42 # a comment 43 » | ||
camelia | rakudo-moar 949b80: OUTPUT«42#acomment43» | ||
TimToady | literal: looks like NYI | ||
lizmat | .botsnack | 19:05 | |
yoleaux | :D | ||
13:15Z <nine_> lizmat: path.IO.d // mkdir(path,|c) is prone to very hard to diagnose race conditions | |||
15:05Z <ab5tract> lizmat: i'm curious what your opinion is re: a quanthash-y symmetric difference op: github.com/rakudo/rakudo/pull/362 | |||
15:06Z <ab5tract> lizmat: but even more curious is that infix:<(^+)> seems to break the parser in some really weird way. the operator is unusable when invoked from a file, or when used like (...).Bag (^+) (...).Bag from the repl | |||
nine_ | moritz: why don't you use File::Temp? | ||
19:05
aborazmeh joined,
aborazmeh left,
aborazmeh joined
|
|||
lizmat | .tell nine_ do you have a suggestion on how to fix that race condition? | 19:05 | |
yoleaux | lizmat: I'll pass your message to nine_. | ||
brrt | lizmat - happen to know a good spec for copy? | 19:06 | |
lizmat | brrt: not sure what you mean | ||
nine_ | lizmat: the only fix I see is call mkdir() and check for EEXISTS | ||
yoleaux | 19:05Z <lizmat> nine_: do you have a suggestion on how to fix that race condition? | ||
brrt | is it ok to open-and-create the second file if opening-and-creating the first file doesn't work | ||
for example | |||
lizmat | nine_: that suffers from the same race condition | ||
nine_ | lizmat: how so? | 19:07 | |
lizmat | nine_: just as likely as something can remove the dir just after the IO.d | ||
it could well remove it after we just created it | |||
with mkdir() | 19:08 | ||
IO.d // mkdir() has the same race as mkdir // IO.d | 19:09 | ||
nine_ | lizmat: true. Though mkdir with EEXISTS check should at least be faster | ||
lizmat | so it is a race condition that is even harder to fix ? :-) | ||
what I'm getting at, is that in a multi-process world, there are no guarantees unless we have a "stop the world" lock | 19:10 | ||
and we don't have that as soon as we have to deal with the outside world | |||
nine_ | I'm trying to construct a use case that depends on correct information about "did we just create that directory even if it may have been deleted already?". Kinda hard | 19:11 | |
lizmat: oh, it may actually fail in the other direction: stackoverflow.com/questions/1586648...-in-python | 19:12 | ||
brrt | i guess what i'm saying is that S16 doesn't really specify the failure conditions of copy | ||
lizmat | brrt: well, I guess we could document that | 19:16 | |
on Moar, it is really determined by MVM_file_copy in src/io/fileops.c | |||
brrt | right, and i'm working on that as we speak | ||
because of the 2gb issue :-) | 19:17 | ||
lizmat | and it seems to open the destination file only when the source file can be opened for reading | ||
brrt | right, and when it can be stat | ||
19:17
pierrot joined
|
|||
lizmat | brrt: wrt the 2GB issue: I have *not* been able to reproduce it | 19:17 | |
brrt | i have | ||
it's libuv dependent | |||
lizmat | libuv version, or underlying OS ? | ||
brrt | but that probably differs between linux / os x | ||
well, yeah :-) | |||
lizmat | I would think it is the underlying OS's implementation of sendfile() | ||
have you checked that on your OS ? | 19:18 | ||
brrt nods | |||
i have not, actually | |||
could do that | |||
lizmat | indeed.. :-) | ||
brrt | but.... | ||
libuv doesn't really consider sendfile one of it's core assets | |||
so to speak | |||
lizmat | so uv_fs_sendfile doesn't just refer to the OS's sendfile ? | 19:19 | |
moritz | nine_: I'm kinda against additional dependencies | ||
doc.perl6.org is now syntax hilighted | 19:20 | ||
[ptc]++ | |||
19:21
pierrot left
|
|||
brrt | i'm pretty sure that it does, unless you're using windows | 19:21 | |
19:21
_mg_ left
19:23
zby_home left
|
|||
[ptc] | moritz: hammer! | 19:23 | |
19:23
nic77 joined
19:24
nic77 left,
pierrot joined
19:25
aborazmeh left,
rindolf left
19:28
_mg_ joined
19:30
skids left
|
|||
lizmat | .tell ab5tract re github.com/rakudo/rakudo/pull/362 , I think colomon / TimToady should shine their light on that | 19:30 | |
yoleaux | lizmat: I'll pass your message to ab5tract. | ||
19:31
tgt left
|
|||
lizmat | .tell ab5tract I have merely implemented what colomon implemented in niecza | 19:31 | |
yoleaux | lizmat: I'll pass your message to ab5tract. | ||
19:31
tgt joined
|
|||
masak | ab5tract: other xor-like operators have a slightly different behavior when chained. | 19:33 | |
(such that order doesn't matter) | |||
19:34
pierrot left
|
|||
Kristien | Can you customise MRO? | 19:35 | |
19:35
kjs_ joined
|
|||
lizmat | m: say Int.^mro | 19:35 | |
camelia | rakudo-moar 949b80: OUTPUT«(Int) (Cool) (Any) (Mu)» | ||
lizmat | it's just a method in the MOP | 19:36 | |
afaik | |||
japhb | Kristien: with a little MOP work, just about any change in the object system is possible. | ||
Sometimes even easy, actually .... | |||
Kristien | cool | 19:37 | |
19:39
tgt left,
espadrine_ joined,
kjs_ left,
P1RATEZ left
19:40
espadrine left,
kjs_ joined
19:41
Possum left
|
|||
dalek | p/longer: 71e9494 | lizmat++ | docs/ops.markdown: Document nqp::lstat |
19:43 | |
p/longer: 2776313 | jnthn++ | tools/build/MOAR_REVISION: Bump to latest MoarVM. |
|||
p/longer: f302b25 | FROGGS++ | / (2 files): Merge branch 'master' of github.com:perl6/nqp into longer |
|||
p/longer: 8ae7b29 | FROGGS++ | src/vm/moar/QAST/QASTOperationsMAST.nqp: fix C_TYPE_* constants for nums which also start at -1 |
|||
Heuristic branch merge: pushed 17 commits to rakudo/longer by FROGGS | 19:44 | ||
volaj/longer: 6dc894e | FROGGS++ | lib/NativeCall.pm6: use new trait "is ctype" |
|||
19:45
pierrot joined
19:47
Possum joined
|
|||
brrt | what's more, sendfile is far from the only way to copy data between buffers | 19:47 | |
on linux | 19:48 | ||
lizmat | true, but it is the only way that doesn't touch userland, no? | 19:49 | |
brrt | we also have tee and splice | 19:50 | |
19:50
pierrot left
|
|||
brrt | splice is the really generic one | 19:50 | |
19:51
pierrot joined
|
|||
brrt | but yeah, sendfile is the correct one | 19:51 | |
brrt afk for now | |||
19:51
brrt left
19:55
pierrot left
19:59
kaare_ left
|
|||
dalek | ast: 93b3e92 | TimToady++ | S02-literals/quoting.t: add << #comment >> tests suggested by literal++ |
20:02 | |
grondilu notices that the 'longer' branches is said to solve the 32bits issues with zavolaj | 20:04 | ||
TimToady | speaking of integer sizes, should NQP provide any support for bit rotations of various integers? | ||
20:06
skids joined
|
|||
FROGGS | grondilu: it solves it, aye | 20:08 | |
grondilu | TimToady: no quite related, but you once suggested something like 'use nativecall <somelibrary>;'. That'd be insanely awesome. Were you joking or is it doable in a reasonable time? | ||
20:09
diana_olhovik_ left
|
|||
FROGGS | I can't imagine how it is supposed to work... unless it also introduces a new keyword as a replacement for 'sub' | 20:09 | |
grondilu | I mean, Perl 6 looking in the C library path, possibly looking for C library headers, just as a C compiler would do. | ||
FROGGS | ahh, no, we do not care about headers at this point | 20:10 | |
grondilu | (or rather a C linker) | ||
hum, I switched to the 'longer' branch in rakudo, MoarVM and nqp, and compilation of rakudo failed :/ | 20:12 | ||
Makefile:397: recipe for target 'blib/Perl6/Metamodel.moarvm' failed | |||
FROGGS | grondilu: you pulled right now? | ||
grondilu | like a minute or two ago | ||
FROGGS | is there an error message? | 20:13 | |
grondilu | yeah, see the Makefile: line above | ||
but I've just pulled again and it seems I was not up-to-date for nqp | |||
FROGGS | yes, well, usually there is something else too | ||
ahh | |||
grondilu tries compiling again | 20:14 | ||
FROGGS | that explains it | ||
because it probably did not find the new constants | |||
lizmat | m: say << /home/$*USER >>.perl # this feels wrong, expected ("/home/liz") | 20:17 | |
camelia | rakudo-moar 949b80: OUTPUT«("/home/", "camelia")» | ||
lizmat | *or camelia :-) | ||
dalek | p/longer: d4ed5bd | FROGGS++ | src/vm/ (2 files): add C type constants for parrot/jvm |
||
lizmat | but is this a rakudobug? | ||
m: say << "/home/$*USER" >>.perl # I guess we need the double quotes ?? | 20:19 | ||
camelia | rakudo-moar 949b80: OUTPUT«"/home/camelia"» | ||
grondilu failed to compile again, suspects he did something wrong when pulling, so * | |||
FROGGS | grondilu: how do you compile? do you run configure? If so, then you have to pass: --gen-moar=longer --gen-nqp=longer | 20:20 | |
grondilu | oh | ||
FROGGS | grondilu: but I expect that I merge the branches by monday or so | ||
grondilu | I did use the same configure options than with nom | ||
do you? I guess I can wait, then. | 20:21 | ||
20:21
darutoko left
|
|||
FROGGS | yeah | 20:21 | |
grondilu switches back to nom | |||
dalek | kudo/newio: 159c38b | lizmat++ | src/core/Distro.pm: Refactor tmpdir using private first-rwx-dir |
20:23 | |
kudo/newio: c92e49e | lizmat++ | src/core/Distro.pm: Implement Distro.homedir, preparing for $*HOME |
|||
20:23
dolmen joined
|
|||
lizmat | off to see a Jupiter Ascending & | 20:24 | |
FROGGS .oO( Mars is bright tonight. ) | |||
20:34
fhelmberger joined
20:35
zakharyas left
20:38
Guest16300 joined
20:39
fhelmberger left
20:42
Guest16300 left,
pierrot_ joined
20:45
adu left
20:46
pierrot_ left
20:48
pierrot_ joined,
asdf12z_ joined
20:51
pierrot_ left
20:58
gaussblurinc_ joined
20:59
pierrot_ joined
21:00
_mg_ left
21:04
pierrot_ left
21:05
pierrot joined
21:06
pierrot is now known as Guest33866,
gaussblurinc_ left
|
|||
Kristien | yes | 21:09 | |
mars has been bright for a week or two now | 21:10 | ||
and venus too | |||
it's very nice | |||
21:10
Guest33866 left
21:12
_mg_ joined
21:15
_mg_ left
21:17
grondilu left
21:22
pierrot_ joined
21:23
kjs_ left
21:29
pierrot_ left
21:44
xfix left
21:53
adu joined
21:57
mvuets joined
21:59
Alina-malina left
22:01
FROGGS[mobile] left
22:04
bjz left
22:05
FROGGS_ joined,
Sqirrel_ joined
22:07
Sqirrel left,
bjz joined
22:08
FROGGS left
22:12
Rounin left
22:17
asdf12z_ left
22:18
echowuhao left
|
|||
masak generated a 12 MB SVG file tonight | 22:18 | ||
for science! | 22:19 | ||
it says something about Rakudo nowadays that it's (a) up to the task, and (b) not unreasonably slow. | 22:20 | ||
Inkscape was brought to its knees, though :P | 22:21 | ||
timotimo | no surprises there, IMO | ||
22:21
asdf12z_ joined
|
|||
timotimo | i really wonder how a graph-like diff of before/after for spesh graphs could look | 22:23 | |
22:24
Spot__ left
22:27
clkao left
|
|||
flussence | I tried getting graphviz to make a SVG diagram of my installed (OS) packages once. It couldn't even *create* the file without running out of memory, let alone trying to view it... | 22:28 | |
22:31
Alina-malina joined
22:33
Mouq left
|
|||
timotimo | yeah, i know that feeling | 22:34 | |
22:35
Spot__ joined
|
|||
raydiak | timotimo: would it work to plot all the paths for both before and after in the same flowchart and highlight the lines and boxes which aren't common to both? (red for before and green for after, or some such) | 22:37 | |
avuserow | m: sub f($x=60 is rw) {$x++; say $x}; f | 22:38 | |
camelia | rakudo-moar 949b80: OUTPUT«===SORRY!=== Error while compiling /tmp/KK124_JoHDMissing blockat /tmp/KK124_JoHD:1------> sub f($x=60 ⏏is rw) {$x++; say $x}; f» | ||
avuserow | std: sub f($x=60 is rw) {$x++; say $x}; f | ||
camelia | std f9b7f55: OUTPUT«===SORRY!===Default expression must come last at /tmp/W6d6MA7gbZ line 1:------> sub f($x=60 ⏏is rw) {$x++; say $x}; fUnable to parse signature at /tmp/W6d6MA7gbZ line 1:------> sub f⏏($x=60 is rw…» | ||
avuserow | m: sub f($x is rw = 60) {$x++; say $x}; f | 22:39 | |
camelia | rakudo-moar 949b80: OUTPUT«===SORRY!=== Error while compiling /tmp/L9ZwKOd6I3Cannot use 'is rw' on an optional parameterat /tmp/L9ZwKOd6I3:1------> » | ||
avuserow | std: sub f($x is rw = 60) {$x++; say $x}; f | 22:40 | |
camelia | std f9b7f55: OUTPUT«ok 00:00 140m» | ||
avuserow | rakudobug? | ||
masak | no, I don't think so. | 22:41 | |
or, hm. | |||
I don't immediately see what the problem is with using 'is rw' on an optional parameter... | 22:42 | ||
sometimes it doesn't bind with the outside, but that's not a show-stopper. | |||
avuserow: please submit it and we can have a discussion of why it should or should not be possible ;) | |||
avuserow | okay. so the first one is a LTA error IMO, should I submit that separately? | 22:43 | |
22:45
pmurias joined
|
|||
dalek | p/js: dd4e123 | (Pawel Murias)++ | TODO: add a callercode portability to IE TODO item |
22:45 | |
p/js: d2e9220 | (Pawel Murias)++ | / (3 files): Make nqp::isinvokable respect nqp::setinvokespec. |
|||
22:45
spider-mario left
22:50
echowuhao joined
22:51
clkao joined,
dj_goku left
|
|||
avuserow | oh, masak. Found this in S06: Since this option forces an argument to be required, it cannot coexist with the ? mark to make an argument optional. (It may, however, be used with = indicating a default, but only if the default expression represents something that is nameable at compile time and that can bind as an lvalue, such as CALLER::<$/> or OUTER::<$_>.) | 22:51 | |
synopsebot | Link: design.perl6.org/S06.html#Since_thi...e_required | ||
22:54
jack_rabbit joined
|
|||
avuserow | I'll be back later to file this bug once I get an idea of what that means. | 22:55 | |
avuserow away & | |||
masak | I don't understand why S06 requires that. | 22:56 | |
it seems to me $x could *either* bind to a passed argument (in which case there's no problem) *or* just be its own detached locally defined variable assigned with the provided default (in which case we're also fine). | 22:57 | ||
I suspect I'm missing something here :) | |||
pmurias | masak: provided default, without a = no default is provided | 22:59 | |
masak: by a detached locally defined variable you suggest that we should create a temporary variable that will be discarded after the sub finishes? | 23:01 | ||
masak | right. | 23:02 | |
23:05
dj_goku joined,
dj_goku left,
dj_goku joined
|
|||
pmurias | I think that's more likely to cause a weird bug than be useful | 23:06 | |
masak | I suspect that's the reason, yes. | ||
but S06 doesn't say that, it just pretends it's impossible :) | |||
pmurias | it just bans that | 23:07 | |
masak | right. | ||
23:10
dolmen left
23:11
aborazmeh joined,
aborazmeh left,
aborazmeh joined,
jack_rabbit left
23:12
vendethiel left
23:15
vendethiel joined
23:16
kjs_ joined
|
|||
raydiak | my vote is with masak++...I've also tried to do that quite intentionally in the past and ended up working around the spurrious-feeling limitation with something a little more awkward and/or slow | 23:16 | |
masak | I'm not sure where I stand, actually. | 23:17 | |
I can't recall wanting 'is rw = $some-default'. | |||
and I can't gauge properly if it would be helpful or just lead to weird bugs. | |||
in some sense, it's "well, you asked for it" -- in another sense, it's "you probably shouldn't want that in the first place". | 23:18 | ||
23:18
dj_goku left
|
|||
masak | and now... | 23:19 | |
*drum roll* | |||
lol! I blogged! strangelyconsistent.org/blog/youre-...-all-alike | |||
Kristien | I'm so puzzled. | ||
masak | (that took way too long -- sorry. everything takes a long time right now.) | ||
23:19
kjs_ left
23:21
ninjazach joined
23:22
dj_goku joined
|
|||
ruoso | on moarvm, does it make a difference for the optimizer and the jit if "for 1..10 -> int $x" instead of "for 1..10 -> $x"? | 23:23 | |
23:24
dj_goku left
23:27
dj_goku joined
23:29
Mouq joined
|
|||
timotimo | masak: there's a loose ")" in there | 23:31 | |
masak | thanks. | 23:32 | |
ruoso | on moarvm, does it make a difference for the optimizer and the jit if "for 1..10 -> int $x" instead of "for 1..10 -> $x"? | ||
ah... sorry for the repost | 23:33 | ||
wrong window for up-arrow-enter | |||
masak | timotimo: fixed, should be up shortly. | ||
timotimo | :) | ||
masak | (fun fact: different Markdown parsers handle parentheses inside of the link syntax differently!) | 23:34 | |
dalek | kudo/nom: 874caf6 | TimToady++ | src/core/ (2 files): implementation of polymod method to play with |
23:35 | |
TimToady | > say 1000000.polymod(60,60,24) | 23:36 | |
40 46 13 11 | |||
11 days, 13 hours, 46 minutes, 40 seconds | |||
ruoso | Oh, now someone can implement somethign to make sense of imperial units :) | 23:37 | |
TimToady | that's...not possible :P | ||
timotimo | masak: is that png file already optipng'd? | 23:38 | |
masak | timotimo: I... don't know what that means. | 23:39 | |
timotimo | did you run the huge png file through optipng or pngcrush to make it more efficient? | ||
masak | ...no. | ||
timotimo | may be worth a try :) | ||
masak | I just exported to png from Inkscape. | ||
masak tries | 23:40 | ||
(apt-get++ for just giving me `optipng` when I ask for it. this is package management in the future, folks.) | 23:41 | ||
23:42
pippo joined
|
|||
pippo | o/ #perl6 | 23:42 | |
Mouq | masak++ # blug | ||
timotimo | optipng -o7 is the maximum, IIRC | 23:43 | |
it may take quite a while to run, though | |||
given the file is so big | |||
masak | timotimo: on default setting, the big file deflated by 13% | 23:44 | |
Mouq | I imagine with the near-tiling of the file, even a little optimization is going to really trim the file | ||
pippo | One question. When we declare "my Int $a" do we declare that on RHS of an assignement we shall have Int or we declare that the RHS will be (if possible) casted to Int? | ||
masak | pippo: the former. | ||
Mouq | pippo: The syntax for the latter is "my Int() $a" but still NYI, I believe | 23:45 | |
or "my Int(Any) $a" if you want to be clearer (take Any, cast to Int) | |||
pippo | masak: Mouq: thank you very much. Lokking for Int() to be implemented :-)) | ||
timotimo | masak: next thing of interest may be: how does lossless webp fare. but this may not be your area of interest at all :) | ||
so maybe i'll try that out myself | 23:46 | ||
.o( and ... actually, i could encode this in daala and see what happens ) | |||
masak | :) | ||
Mouq | m: sub getInt (Int() $a) { say $a.WHAT }; getInt "1234" # Works in parameters, just not variables | 23:47 | |
camelia | rakudo-moar 949b80: OUTPUT«(Int)» | ||
pippo | Mouq: Thanks! | ||
dalek | kudo/nom: 0e61279 | TimToady++ | src/core/ (2 files): polymod yields 1 more result than args unless inf |
23:49 | |
23:52
vendethiel left
|
|||
dalek | kudo/newio: 59ef5f0 | lizmat++ | src/core/Distro.pm: Make sure we check the default dir as well |
23:53 | |
kudo/newio: 6c86e26 | lizmat++ | src/core/Process.pm: Lazily initialize $*HOME |
|||
kudo/newio: 301cf15 | lizmat++ | src/core/io_operators.pm: Make tmpdir/homedir functional |
|||
lizmat | and on that note, good night, #perl6! | 23:54 | |
masak | 'night, lizmat | ||
Kristien | After two hours I finally got my algorithm to work. | 23:55 | |
23:57
skids left
|
|||
Kristien | For calculating the optimal layout of a struct by reordering fields! | 23:58 | |
masak | sounds like it could be exponential in the number of fields. | 23:59 | |
Kristien | well it has two nested loops |