»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg camelia perl6: ... | irclog: irc.perl6.org | UTF-8 is our friend! Set by sorear on 25 June 2013. |
|||
00:16
Hor|zon joined
00:20
Hor|zon left
00:24
MikeFair_away is now known as MikeFair
00:47
Exodist left
01:11
Mso150 left
01:23
Mso150 joined
01:35
gtodd left
01:43
MikeFair is now known as MikeFair_away
01:49
FROGGS_ joined
01:52
FROGGS left
02:02
noganex_ joined
02:03
vendethiel- joined
02:04
vendethiel left
02:05
noganex left
02:11
vendethiel joined
02:13
vendethiel- left
02:17
Hor|zon joined
02:21
jepeway_ left,
Hor|zon left
02:27
_slade_ left,
_slade_ joined
02:28
kurahaupo left
02:39
beastd left
02:51
Exodist joined
03:00
noganex joined
03:02
noganex_ left
03:19
pat_js joined
03:25
gtodd joined
03:37
BenGoldberg left
04:18
Hor|zon joined
04:22
Hor|zon left
04:39
rindolf joined
04:44
ggoebel1111110 joined
04:47
ggoebel111119 left
04:59
petercommand joined
05:22
fhelmberger joined
05:26
fhelmberger left
05:40
MikeFair_away left
05:47
rurban joined
05:58
bjz left,
bjz joined
06:03
darutoko joined
06:07
notfix is now known as xfix
06:19
Hor|zon joined
06:24
Hor|zon left
06:27
yeahnoob joined
06:30
yeahnoob left
06:59
SamuraiJack_ joined
|
|||
masak | alohamorning, #perl6 | 07:02 | |
07:02
ribasushi left
|
|||
dalek | ok: 0f87d07 | masak++ | src/regexes.pod: fix quantifier modifier thinko Discovered by 宋文泰 in rt.perl.org/Ticket/Display.html?id=122904 |
07:12 | |
07:13
ribasushi joined
07:17
rurban left,
rurban joined
|
|||
masak | a quick skim of www.cs.cmu.edu/~aldrich/papers/objects-essay.pdf indicates that it'd be of interest to people here. | 07:34 | |
HN discussion: news.ycombinator.com/item?id=8411225 | 07:35 | ||
vendethiel | o/. | 07:38 | |
masak .oO( is that a ping-pong ball? don't crush it! ) | 07:47 | ||
rurban | left a comment at HN | 07:49 | |
defending functional over objects of course | 07:50 | ||
masak | uhm. | 07:51 | |
I really really like functional, but I'm not sure I believe it subsumes OO to the point of making it irrelevant. | 07:52 | ||
in the end it comes down to different focus. | |||
rurban | sure it does. it's not irrelevant because its standard industry practice. worse is better. but is not inevitable. see e.g. CLOS | 07:53 | |
langs without even a lambda or method dispatch on arg types are doomed to have only objects | 07:54 | ||
in potion objects are implemented as functions e.g. even variables are functions | 07:55 | ||
07:58
spider-mario joined
07:59
spider-mario left
08:02
kurahaupo joined
08:04
spider-mario joined
08:10
kurahaupo left
08:20
Hor|zon joined
08:25
Hor|zon left
08:34
psch joined
|
|||
psch | hi #perl6 o/ | 08:35 | |
08:38
jack_rabbit joined
|
|||
lizmat | psch \o | 08:39 | |
jnthn | o/ psch, lizmat | 08:40 | |
lizmat | jnthn \o | ||
psch | jnthn, lizmat \o | 08:41 | |
i found the tests for -e :) | |||
they still fail with my patch :( | |||
08:45
gfldex joined
|
|||
rurban | got strange results for t/spec/S03-junctions/autothreading.t Failed 76/89 subtests but manually all tests pass with parrot and moar | 08:45 | |
lizmat | rurban: on various builds I've seen various stable tests flap when doing spectest | ||
I assume we still have a few heisengremlins in moar / libuv | 08:46 | ||
jnthn | lizmat: afaik, the only ones we have left in moar since the inlining/gc/continuations bug I fixed the other day are S17 ones...lemme know if you're seeing anything other than that. | ||
lizmat | jnthn: will do | 08:47 | |
08:47
jack_rabbit left
|
|||
jnthn | (Because all I have here are S17 flappers, and a small number of repeatable Win32 issues.) | 08:47 | |
lizmat: Did you ever get to the bottom of the io-spec-cygwin.t issue, ooc? | 08:48 | ||
lizmat | eh, I think I did...it went away afaict | 08:49 | |
jnthn pulls stuff and gets a new spectest run | |||
lizmat | fwiw, I'm about to unleash new chdir and indir :-) | 08:50 | |
jnthn | Cool | 08:53 | |
vendethiel | rurban: I strongly believe the only reason java has all these factories is because they didn't have lambdas :-) | 08:54 | |
(also, when people say "dependency injection", I tend to correct by saying "argument passing") | |||
jnthn | It's partly cultural too. | 08:55 | |
Before C# got lambdas, I don't remember it having a huge culture of factory writing. | |||
vendethiel | jnthn: I think c# guys go with the "provider" stuff instead of factories? | 08:56 | |
jnthn | There's something about the Java way of API design that seems to embrace/encourage putting pattern names in class names, and using plenty of them... | ||
vendethiel: Go with all sorts; convention-based DI containers amongst them... | 08:57 | ||
vendethiel | heehhe github.com/EnterpriseQualityCoding...seEdition/ :-) | ||
rurban | well, "dependency injection" is manipulating @ISA, the method dispatch | ||
which forbids compile-time optimization of method dispatch | 08:58 | ||
jnthn | rurban: That isn't what it's meant on any codebase I've worked on. | ||
rurban | i.e. use oo :final forbidden in libs | ||
vendethiel | me neither | ||
jnthn | Typically I see it being used to refer to techniques like constructor injection | 08:59 | |
rurban | interesting. how do you inject deps via argument passing? | ||
jnthn | And then arranging for said DI framework to be in charge of creating the "entry point" (for example, controllers in an MVC app). | 09:00 | |
rurban | Ah, I see. java style | ||
jnthn | Much wider than that. | ||
vendethiel | rurban: you just pass you "db connection" as an argument instead of storing it on the object | ||
rurban | yes, I see. you need that for static languages. | ||
jnthn | vendethiel: Well, more important is that something outside of the object creates it | ||
vendethiel | jnthn: I just mean - DI is argument passing glorified. | 09:01 | |
nine | Dependency injection is just "programming to an interface, not to an implementation" followed through. | ||
jnthn | vendethiel: Operationally, yes. The reasons I tend to spend time talking about it in classes is because, done right, you get looser coupling and much better testability. | 09:02 | |
nine: Yes, it's a concrete way of achieving that. | 09:03 | ||
vendethiel | jnthn: Compared to singleton/globals, sure. Compared to argument passing, no. | ||
If I give you your db connection through an argument or through some instance variable, it's the *same* | |||
actually, the argument one is less coupled, even :-) | |||
jnthn | vendethiel: Again, technically yes, but from an engineering point of view, making a decision once at object construction time when it will likely need to hold over the object's entire lifetime is likely a better design than relying on code interacting with the object to come up with an appropriate argument to pass each time. | 09:05 | |
09:05
FROGGS[mobile] joined
|
|||
vendethiel | jnthn: in an OO world, certainly :-). In a more functional world, you don't even have a choice | 09:05 | |
jnthn: lots of language provide some kind of option to even ease that further, from monadic stuff to implicit arguments (scala and idris/agda-like) | |||
09:06
kurahaupo joined
|
|||
lizmat | jnthn: non S17 flapper: | 09:07 | |
t/spec/S04-phasers/first.t (Wstat: 65280 Tests: 1 Failed: 0) | |||
Non-zero exit status: 255 | |||
Parse errors: Bad plan. You planned 4 tests but ran 1. | |||
Files=922, Tests=33883, 176 wallclock secs ( 9.15 usr 3.47 sys + 1068.72 cusr 158.26 csys = 1239.60 CPU) | |||
runs fine by itself | |||
but fails under make | 09:08 | ||
jnthn | Grr, I hadn't seen that issue for a long time... | ||
lizmat | reliably, so I guess technically, it's not a flapper | ||
jnthn | vendethiel: Agree, there are non-object ways to solve the same issue, but if you have objects to hand, might as well use them to their strengths. :) | 09:09 | |
dalek | kudo/nom: a1da1f5 | (Elizabeth Mattijsen)++ | src/core/IO/Path.pm: Add IO::Path.chdir |
09:10 | |
kudo/nom: de6cb3e | (Elizabeth Mattijsen)++ | src/core/io_operators.pm: Update chdir(), add indir() |
|||
jnthn needs to get himself back into MOP stuff again in prep for working on native arrays, typed array improvements, etc, and figures he'll take on perlcabal.org/syn/S12.html#Custom_Meta-objects :) | 09:14 | ||
09:15
FROGGS_ is now known as FROGGS,
_slade_ left
|
|||
FROGGS | eww, the following borks my terminal on moar: perl6-m -e 'my $fh = open(~$*EXECUTABLE, :w, :p); $fh.print: "say 42"; $fh.close' | 09:15 | |
jnthn | Due to handles being inherited, mebbe? | 09:16 | |
FROGGS | jnthn: the custom metaop sounds highly "interesting" | 09:17 | |
jnthn: I guess so | |||
we probably inherit and therefore close our own stdout | |||
jnthn | FROGGS: I don't think it'll be so hard to do, which is why I'm taking it as a warm-up task ahead of diving into some deeper 6model extensions :) | 09:19 | |
FROGGS | jnthn: if you say so... I'm just scared about all these things :o) | ||
seems like not to study CS does not pay off :o) | |||
09:22
bartolin joined
09:25
Mso150 left
|
|||
dalek | kudo/nom: 7968c69 | (Elizabeth Mattijsen)++ | src/core/io_operators.pm: Bring chdir up to spec |
09:27 | |
kudo/nom: 7dec9a9 | (Elizabeth Mattijsen)++ | src/core/io_operators.pm: Make sure we don't lose failures |
|||
rurban | darwin had the same utf8 issues as the other bsd's. e.g. t/spec/S05-mass/charsets.rakudo.parrot. fixed right now | 09:34 | |
dalek | ast: ada98bc | usev6++ | S14-roles/parameterized-type.t: Add test for RT #112970 |
09:45 | |
synopsebot | Link: rt.perl.org/rt3//Public/Bug/Displa...?id=112970 | ||
09:45
tinyblak joined
|
|||
timotimo | o/ | 09:47 | |
FROGGS | o/ | 09:48 | |
lizmat | $ perl6 -e '$CWD = 42; say $*CWD' | 09:49 | |
42 | |||
this seems an unwanted side effect of no strict | |||
FROGGS timotimo o\ | |||
jnthn | lizmat: Programs start out in GLOBAL, and $*FOO lookup falls back to $GLOBAL::FOO | 09:50 | |
FROGGS | lizmat: at least surprising, aye | ||
lizmat | aha... hmmm.... | 09:51 | |
FROGGS | I tripped over that in v5 too | ||
lizmat | jnthn: even if the var in GLOBAL is not marked as dynamic ? | ||
$ perl6 -e '$CWD = 42; say $CWD.VAR.dynamic' | |||
False | |||
jnthn | lizmat: Yes, dynamic is all about visibility through the lexpad | 09:52 | |
lizmat: But this is about package lookup, and packages are just glorified hashes... | |||
lizmat | hmmm..... yeah, gotcha | ||
09:52
kaare_ joined
|
|||
jnthn | But yeah, it's a curious interaction of a few things that each make sense :) | 09:52 | |
lizmat | maybe auto-defined vars should be in their own package, not visible to dynamic lookup ? | 09:53 | |
jnthn | We could consider re-visiting if "our" scope is the right thing for undeclared variables. | ||
lizmat | :-) | ||
09:53
virtualsue joined
|
|||
jnthn | Or if maybe they should be lexicals in UNIT or so | 09:53 | |
lizmat | wouldn't that break a lot of opts ? | 09:54 | |
jnthn | Not that I can see...are you thinking of anything in particular? | ||
Note that it's the compiler that spots the variable is undeclared and goes off to declare it for us | |||
lizmat | true | ||
or is it? | 09:55 | ||
jnthn | So it doesn't violate the "lexpad keys immutable at runtime" thing. | ||
lizmat | even if we're doing an EVAL inside a no strict block ? | ||
jnthn | Hmm | ||
An EVAL has its own UNIT | 09:56 | ||
lizmat | ah, yup | ||
psch | re lax mode: S19:430 says -e doesn't default to lax mode | ||
synopsebot | Link: perlcabal.org/syn/S19.html#line_430 | ||
jnthn | So it's true, but probably identifies the downfall of the approahc I suggested | ||
FROGGS | I really like to get a backtrace here: | ||
$ perl6-p | |||
> 1 | |||
Null PMC access in get_string() | |||
:/ | |||
psch | FROGGS, timotimo o/ | ||
FROGGS | hi psch | ||
jnthn | FROGGS: Maybe comment out a CATCH somewhere in HLL::Compiler? | ||
FROGGS tries | 09:57 | ||
jnthn | lizmat: (To be clear, if we declare them in UNIT, then an undeclared variable inside of an EVAL evaluated in lax mode would not be visible outside of the EVAL) | ||
(I'm also not sure if that's a bad thing... :) | 09:58 | ||
lizmat | that just sounds about right to me :-) | ||
otherwise we *would* be violating the immutability rule, right ? | |||
09:58
virtualsue left
|
|||
jnthn | lizmat: Yes. Well, the alternative is to leave things as they are today and declare them our-scoped, and get the surprise you just ran into. :) | 09:59 | |
dalek | kudo/nom: 3962ee5 | (Elizabeth Mattijsen)++ | src/core/IO/Path.pm: Make IO::Path.chdir also a class method For the so inclined, it's basically $*CWD.chdir |
||
jnthn | Auto-declaration is generally surprising in some way, as I tend to find out each time I end up writing Python. :) | 10:00 | |
timotimo | hm, do we currently do mixtures of multiple -e correctly in rakudo? | ||
FROGGS | timotimo: there is a PR about that | ||
jnthn | timotimo: No, which I think is why there's a bunch of discussion around it ATM :) | ||
FROGGS | $ perl6-m -e 'say 1' -e 'say 2' | 10:01 | |
1 | |||
psch | i'm still on that | ||
HLL::CommandLine::Parser is getting in my way a bit | |||
timotimo | more importantly, i think -e 'say "init"' -pe 'say "do something"' -e 'say "done"' is nicer than using phasers ... | ||
psch | -e'say 1;' -e'say 2;' e.g. works | ||
10:01
kjs_ joined
|
|||
psch | but -e 'say 1;' -e 'say 2;' doesn't | 10:01 | |
because the space after e does something about how the rest is parsed | 10:02 | ||
timotimo | ah, i remember looking at that! | ||
nine finds it odd that the implementation of a language that takes parsing to whole new levels fails at parsing its command line... | 10:04 | ||
vendethiel | hahaha | 10:06 | |
jnthn | If only we implemented the langauge in itself, then we could use its parsing technology to parse its command line... :P | 10:09 | |
timotimo | we should just concatenate the options with spaces again, then we would be able to parse it in one go! :P | 10:10 | |
10:10
slavik left
10:13
xinming joined
10:15
xinming_ left
|
|||
jnthn | With spaces is a bad idea, but with some other sentinel (NULL) might even be feasible | 10:15 | |
10:15
tinyblak_ joined
|
|||
timotimo | does our parsing work properly with that kind of thing? | 10:15 | |
jnthn | m: say "ab\0c\0de" ~~ / [\w+]+ % \0 / | 10:18 | |
camelia | rakudo-moar 9c807f: OUTPUT«===SORRY!=== Error while compiling /tmp/Ra70SZ9ICOUnrecognized backslash sequence: '\0'at /tmp/Ra70SZ9ICO:1------> say "ab\0c\0de" ~~ / [\w+]+ % \⏏0 / expecting any of: postfix infix…» | ||
jnthn | m: say "ab\0c\0de" ~~ / [\w+]+ % \x0 / | ||
camelia | rakudo-moar 9c807f: OUTPUT«「ab␀c␀de」» | ||
jnthn | m: say "ab\0c\0de" ~~ / [(\w+)]+ % \x0 / | ||
camelia | rakudo-moar 9c807f: OUTPUT«「ab␀c␀de」 0 => 「ab」 0 => 「c」 0 => 「de」» | ||
timotimo | ah. this could actually work. | ||
10:19
tinyblak left
10:20
denis_boyun_ joined
10:21
Hor|zon joined
|
|||
jnthn | Well, maybe. Just saying that if we really are struggling with scaling the current parsing, we might want to look into using the parsing tech we have :) | 10:21 | |
lizmat | fwiw, I would not be in favour of allowing \0 in *code* | 10:22 | |
rurban has some pretty string ideas about that, I think | |||
problem is that code with \0 may hide code after it in some (dumb) situations | |||
because \0 is C's end of string marker | |||
and would thus be an attack vector | 10:23 | ||
10:23
slavik joined
|
|||
timotimo | this may be a good opportunity to make sure we're null-byte-clean | 10:23 | |
10:25
Hor|zon left
|
|||
jnthn | It's mostly an issue if you're passing strings off to C-land | 10:26 | |
timotimo | aye | ||
jnthn | And yeah, there are some interesting attacks around that. But if anything we'd be reducing risk here, not increasing it... :) | 10:27 | |
My favorite attack of that kind was in combination with a badly written UTF8 decoder | |||
timotimo | IIRC, the Nintendo Wii got "pwned" because they were comparing the code's signature with strcpm instead of memcmp and the signature was "the binary" instead of "hexadecimal as ASCII" | ||
jnthn | Such that you could smuggle null bytes into places by giving the thing some invalid UTF8, which caused it to emit nulls as it decoded :) | ||
timotimo | so all you had to do was find a legit game that has a null byte near the beginning of its signature and you could brute force a colliding payload for the same signature | 10:28 | |
jnthn | cute :) | 10:29 | |
Yay. My bag is packed for today's trip up to Stockholm, I've had lunch, and now I've got some free time to code :) | 10:32 | ||
FROGGS | sounds good :o) | 10:33 | |
10:37
tinyblak_ left,
tinyblak joined
|
|||
lizmat | m: say $*CWD.WHAT; say nqp::iscont($*CWD) # seems to work ok | 10:50 | |
camelia | rakudo-moar 3962ee: OUTPUT«(timeout)» | ||
lizmat | :-( | ||
$ 6 'say $*CWD.WHAT; say nqp::iscont($*CWD)' | |||
(IO::Path) | |||
1 | |||
$ 6 'say $*TMPDIR.WHAT; say nqp::iscont($*TMPDIR)' | 10:51 | ||
(IO::Path) | |||
0 | |||
so why is one IO::Path a cont, and the other isn't ? | |||
jnthn: ^^^ any ideas ? | |||
timotimo | "is a cont" vs "is in a cont" | ||
as in: the IO::Path itself isn't "the cont" | 10:52 | ||
lizmat | $ 6 'temp $*TMPDIR' | ||
Can only use 'temp' on a container | |||
$ 6 'temp $*CWD' | |||
(works fine) | |||
FROGGS | I guess TMPDIR gets bound to PROCESS and CWD not? | 10:53 | |
rurban | lizmat: do you really say "string ideas", not strong ideas? | ||
lizmat | rurban: sorry, strong ideas :-) | ||
FROGGS | hehe | ||
rurban | or stringent idea | ||
lizmat | strong has the shortest StrDistance | 10:54 | |
jnthn | lizmat: Probably just because one ends up getting bound into PROCESS or so, while the other is assigned. | 10:55 | |
lizmat: I doubt there's a strong design reason for those two... | |||
lizmat | aha... I see what you mean... | 10:56 | |
timotimo | fwiw | 10:57 | |
timo@schmand ~/p/rakudo (nom)> perl6-m -e 'say $*CWD.VAR.WHAT' | |||
(Scalar) | |||
timo@schmand ~/p/rakudo (nom)> perl6-m -e 'say $*TMPDIR.VAR.WHAT' | |||
(IO::Path) | |||
dalek | ecs: 37874f2 | (Elizabeth Mattijsen)++ | S16-io.pod: Re-introduce tmpdir() and homedir(), update chdir() The original idea behind unifying them into a single chdir() usage, becomes very cumbersome in the implementation. Therefore we're going back to these functions. |
10:58 | |
kudo/nom: d033738 | (Elizabeth Mattijsen)++ | src/core/io_operators.pm: Reintroduce tmpdir(), homedir(), update chdir() |
|||
bartolin | rurban: this morning I tested rakudo on latest parrot from master on freebsd. the two non-ASCII tests from S19-command-line/dash-e.t fail with non-utf8 locale, but run fine otherwise. (same result as on netbsd and linux) | 11:03 | |
dalek | p: b79b20c | (Tobias Leich)++ | src/vm/parrot/QAST/Operations.nqp: remove eof on parrot that breaks on streams This was meant to unify the behaviour on all backends so that we detect EOF already before we attempted to read past it. Sadly this does not work out here and we have to take care about that in rakudo again. |
11:04 | |
kudo/nom: 58cd6f1 | (Tobias Leich)++ | / (2 files): nqp::eoffh on parrot does not detect EOF early This re-introduced code that checks if we are at EOF. Also bump nqp for nqp::eoffh fix. |
11:07 | ||
kudo/nom: 71b9822 | (Tobias Leich)++ | src/Perl6/Grammar.nqp: fix repl on parrot and jvm $?FILES can be NULLish and we have to check instead of strcmping it against something. |
11:11 | ||
lizmat | FROGGS++ | ||
FROGGS | pmichaud: that should fix the REPL | ||
will now run tests (again) and then respond to tickets/mails | 11:13 | ||
lizmat: about eof on parrot... please keep in mind that you have to check .DEFINITE like I did in order not not have additional empty strings at the end of slurped files... | 11:15 | ||
lizmat | is that a parrot only thing ? | 11:16 | |
FROGGS | lizmat: it was a parrot and jvm thing before I hacked nqp::eoffh three weeks ago, then it was not a thing and now it is a parrot thing again :o) | 11:17 | |
lizmat | so, .lines and .slurp would be affected, right ? | ||
(and .words in the future) | |||
11:17
tinyblak_ joined
|
|||
lizmat | or until we have nqp::readcharsfh on parrot, right ? | 11:17 | |
11:18
tinyblak_ left
11:21
tinyblak left
11:23
fhelmberger joined
11:25
bjz left,
bjz joined
11:26
FROGGS[mobile] left,
FROGGS[mobile] joined
|
|||
psch | it occurs to me that we have two kinds of stoppers for cli args. with -e we want to stop at the last one, with -- we want to stop at the first | 11:26 | |
lizmat | m: 42 | ||
camelia | ( no output ) | ||
lizmat | m: $*TMPDIR = 42 | 11:27 | |
camelia | rakudo-moar 3962ee: OUTPUT«Cannot modify an immutable IO::Path in block <unit> at /tmp/etMnEm2meM:1» | ||
lizmat | m: $*TMPDIR; $*TMPDIR = 42' | ||
camelia | rakudo-moar 3962ee: OUTPUT«===SORRY!=== Error while compiling /tmp/zsJPeybRvATwo terms in a rowat /tmp/zsJPeybRvA:1------> $*TMPDIR; $*TMPDIR = 42⏏' expecting any of: postfix infix stopper infix or m…» | ||
lizmat | m: $*TMPDIR; $*TMPDIR = 42 | ||
11:27
fhelmberger left
|
|||
camelia | rakudo-moar 3962ee: OUTPUT«Cannot modify an immutable IO::Path in block <unit> at /tmp/P00tgYuGLq:1» | 11:27 | |
psch | although i think that solves itself with the grammar i'm putting together anyway, as any stopper option is an option first... | 11:28 | |
dalek | kudo/nom: e5884bf | (Elizabeth Mattijsen)++ | src/core/Process.pm: First step in fixing $*TMPDIR |
11:29 | |
lizmat | jnthn timotimo: the $*TMPDIR problem is the lazy evaluation of it | 11:30 | |
once it is initialized, a subsequent attempt to change works | 11:31 | ||
$ 6 '$*TMPDIR; $*TMPDIR=42; say $*TMPDIR.VAR.WHAT' | |||
(Scalar) | |||
jnthn timotimo: maybe some magic in Actions/make_variable_from_parts is needed ? | 11:36 | ||
11:37
vendethiel left
|
|||
jnthn | lizmat: I don't think so...that sounds like a level mixup.. | 11:38 | |
Feels more like we're losing the container somewhere we ought not be | |||
lizmat | testing a fix | 11:39 | |
FROGGS | lizmat: I only saw fallout in .lines... but I'm not sure if that means much | 11:44 | |
dalek | ast: de7eb2d | jnthn++ | S12-meta/ (5 files): Some initial tests for EXPORTHOW. |
11:47 | |
kudo/nom: 2b2bafa | jnthn++ | src/ (2 files): Implement EXPORTHOW::SUPERSEDE. Also detect and complain about invalid directives, and report DECLARE and COMPOSE as NYI so far. Keep existing things working for now; we can start issuing a deprecation warning in the future for a plain use of EXPORTHOW::class, and remove it a bit further into the future. |
11:57 | ||
kudo/nom: 2662e01 | jnthn++ | t/spectest.data: Run S12-meta/exporthow.t. |
|||
11:58
robinsmidsrod left
|
|||
jnthn | train & | 11:59 | |
11:59
Alula left
12:00
robinsmidsrod joined
|
|||
FROGGS[mobile] | jnthn: have a nice time in Stockholm :o) | 12:00 | |
12:03
Alula joined
12:18
cognome joined
12:22
cognome left,
Hor|zon joined,
BenGoldberg joined
12:23
cognome joined
12:27
Hor|zon left
12:33
yeahnoob joined
|
|||
lizmat gives up on the $*TMPDIR container issue | 12:38 | ||
the workaround is simple: just mention it before in your code, and it works | |||
because that *will* initialize and make subsequent accesses work | 12:39 | ||
12:39
bjz left
|
|||
FROGGS | huh | 12:39 | |
t/spec/S17-procasync/print.rakudo.moar (Wstat: 256 Tests: 16 Failed: 1) | |||
Failed test: 15 | |||
TODO passed: 12-14 | |||
was that me? | |||
lizmat | (the reason $*CWD already works, is that it currently is non lazily initialized) | ||
no | |||
that's a flap | |||
12:39
bjz joined
|
|||
FROGGS | ohh, that one too | 12:39 | |
lizmat | yup: all async features have flapping tests :-( | 12:40 | |
FROGGS | :/ | ||
lizmat | meanwhile I'm bisecting parrot breakage | ||
FROGGS | t/spec/S16-filehandles/io.t (Wstat: 139 Tests: 23 Failed: 0) | ||
Non-zero wait status: 139 | |||
Parse errors: Bad plan. You planned 87 tests but ran 23. | |||
this? | |||
lizmat | yup, a segfault | 12:41 | |
FROGGS | lizmat: so you had that already before my commits today? | ||
lizmat | looks like it | 12:42 | |
FROGGS | okay... | ||
I've got not much time right now, but I can help this evening, in case there is still some breakage that needs fixing | 12:43 | ||
12:53
araujo joined,
araujo left,
araujo joined
12:55
guru joined,
guru is now known as ajr_
|
|||
[TuxCM] | where can I find the docs about the difference between Str and Str:D and what it is used for | 12:57 | |
BenGoldberg | Str is a type. | 12:58 | |
:D is a modifier used in a parameter list. | |||
lizmat | it means a defined Str | ||
m: say Str.DEFINITE | |||
camelia | rakudo-moar 2662e0: OUTPUT«False» | ||
BenGoldberg | The :D can be applied to any parameter type, not just Str. | ||
lizmat | m: say "foo".DEFINITE | 12:59 | |
camelia | rakudo-moar 2662e0: OUTPUT«True» | ||
BenGoldberg | It's a way for the person writing the code to not have to worry about what to do if passed an undefined value. | ||
13:00
laben joined
|
|||
laben | hai #perl6 o/ | 13:00 | |
13:00
kaare_ left
|
|||
lizmat | laben BenGoldberg [TuxCM] \o | 13:00 | |
BenGoldberg | o/ | 13:01 | |
:) | |||
laben | today is a good day for updates, just a little thing needs to be fixed | 13:02 | |
lizmat: could you give a look at the build of Inline::Perl5? | |||
13:03
vendethiel joined
|
|||
laben | lizmat: seems like LibraryMake broke, i get this when building I::P5 => No such method 'chdir' for invocant of type Str | 13:03 | |
panda seems to work fine | 13:04 | ||
lizmat | this is probably somewhere a .path that needs to be replaced by a .IO | ||
laben | need to dig a bit deeper in my logs to find the whole error trace | 13:05 | |
lizmat | something is setting $*CWD to a Str, rather than an IO::Path | 13:06 | |
laben | lizmat: can you reproduce it? or is it only me? | 13:08 | |
lizmat | reproduced | ||
dalek | kudo/nom: 205b588 | (Elizabeth Mattijsen)++ | src/core/IO/Spec/Unix.pm: Add naive $*SPEC.extension for basenames |
13:14 | |
kudo/nom: 762d947 | (Elizabeth Mattijsen)++ | src/core/CompUnit.pm: Properly use basename/extension |
|||
13:17
PotatoGim^Home joined
13:19
kjs_ left
13:24
kjs_ joined
13:28
lue left
|
|||
dalek | nda: e3fb048 | (Elizabeth Mattijsen)++ | lib/Panda/Common.pm: Temporary solution to Inline::Perl5 breakage |
13:29 | |
13:30
BenGoldberg left
|
|||
dalek | kudo/nom: 66cd275 | (Elizabeth Mattijsen)++ | src/core/io_operators.pm: Put a canary in chdir() |
13:30 | |
lizmat | laben: could you verify that the above panda update fixes your problem ? | ||
13:31
kjs_ left
|
|||
nine | Why am I trying to figure out how to get syntax highlighted code into a presentation program instead of just using vim for the presentation? | 13:32 | |
laben | lizmat: on it! i've started rebuilding rakudo etc right now | ||
13:33
vendethiel- joined
|
|||
dalek | kudo/nom: f7dc3c3 | (Elizabeth Mattijsen)++ | src/core/io_operators.pm: Fix typo |
13:35 | |
13:35
vendethiel left
|
|||
awwaiid | nine: well, you could also use vim to output html | 13:36 | |
(if your presenter takes html) | |||
timotimo | that's right, with the :hc tool, no? | 13:38 | |
laben | lizmat: everything fine now :-) | 13:39 | |
lizmat | cool! | 13:40 | |
nine | awwaiid: you'd think that after 15 years of using vim one would just assume that there's some feature like that available :) | ||
13:41
lue joined
13:42
FROGGS[mobile] left,
FROGGS[mobile] joined
|
|||
timotimo | nine: if you output to html, you can usually copy&paste the formatted stuff into many gui presentation tools, like google docs presentations for example | 13:43 | |
nine | timotimo: but obviously not into LibreOffice Impress. At least not without a detour through Writer. | 13:45 | |
timotimo | oh :\ | 13:49 | |
13:50
laben left
|
|||
dalek | ecs: d8869f8 | (Elizabeth Mattijsen)++ | S02-bits.pod: Pod would be an IO::Handle, not an IO::Path |
13:53 | |
ecs: a5df488 | (Elizabeth Mattijsen)++ | S16-io.pod: Add indir/tmpdir/homedir to overview |
|||
14:02
denis_boyun___ joined
14:03
denis_boyun_ left
|
|||
dalek | kudo/nom: e418ce8 | (Elizabeth Mattijsen)++ | src/core/io_operators.pm: Correct defaults for tmpdir() and homedir() |
14:04 | |
kudo/nom: c503e01 | (Elizabeth Mattijsen)++ | src/core/Main.pm: Remove bare IO::Spec calls from Main |
|||
14:07
rindolf left
|
|||
dalek | kudo/nom: bb0f9a3 | (Elizabeth Mattijsen)++ | src/core/IO/Handle.pm: Remove bare IO::Spec calles from IO::Handle |
14:10 | |
lizmat | afk for a bit | ||
14:13
Ven_ joined
|
|||
jnthn | FROGGS[mobile]: Thanks. Going for a few days concurrency teaching :) | 14:15 | |
jnthn is enjoying the autumn colors out the train window | |||
FROGGS[mobile] | jnthn: that sounds like fun and fun at the same time :o) | 14:17 | |
14:17
zakharyas joined
|
|||
timotimo | %) | 14:18 | |
14:19
denis_boyun___ left
|
|||
dalek | kudo/nom: a4d933a | jonathan++ | Configure.pl: Find .exe/.bat in prefix on Windows. Means a Configure with --prefix is sufficient; before an explicit --backend was always needed. |
14:19 | |
jnthn | oh, *that's* why things were darn slow...a hung iTunes swallwing a while core... | 14:21 | |
14:22
FROGGS[mobile] left,
anaeem1_ joined,
FROGGS[mobile] joined
14:23
Hor|zon joined
14:27
FROGGS[mobile]2 joined,
Hor|zon left
|
|||
Ven_ | jnthn: why is itunes so godamn terrible, I wonder / | 14:28 | |
14:28
FROGGS[mobile] left
|
|||
jnthn | Ven_: tbh, I don't normally have a big problem with it | 14:29 | |
Ven_: Just now and then it does...stupid things. | |||
Ven_ | jnthn: Really? Everytime I use it, it's awkward and slow. I'm not even talking about the bad UI, but just in itself, it's a big blob of wtf | 14:30 | |
jnthn | I'm often a bit surprised how much memory it wants | ||
grondilu | m: say .elems given my @ = <foo bar> | ||
jnthn | But at least on the hardware I have it's snappy enough not to bother me... | ||
camelia | rakudo-moar 2662e0: OUTPUT«(timeout)» | ||
nine | Ven_: why do people use itunes I wonder | ||
Ven_ | nine: 'cause we have apple phones | 14:31 | |
timotimo | grondilu: the result is 2 on my local box | ||
jnthn | nine: It's the lazy/easy way to shove stuff onto most beloved iPhone :) | ||
Ven_ | eh. this phone is the only one I ever had, and it still works pretty well after 4 years :) | 14:32 | |
14:33
spider-mario left
|
|||
grondilu | m: say .elems given constant @a = <foo bar> | 14:33 | |
camelia | rakudo-moar 2662e0: OUTPUT«2» | ||
14:34
[TuxCM] left
14:35
kaare_ joined
|
|||
grondilu | m: my @a = "a", <b c>; say @a.elems; # here I expect 3 | 14:36 | |
camelia | rakudo-moar 2662e0: OUTPUT«3» | ||
grondilu | m: constant @a = "a", <b c>; say @a.elems; # here I would *also* expect 3 | 14:37 | |
camelia | rakudo-moar 2662e0: OUTPUT«2» | ||
timotimo | oh, i think our constants don't do "proper" list assignment yet | ||
grondilu | ok, good to know. | ||
Ven_ | erm. | 14:39 | |
m: say ("a", <b c>).elems | |||
camelia | rakudo-moar c503e0: OUTPUT«2» | ||
Ven_ | I think TimToady++ changed it not long ago | ||
timotimo | m: constant %foo = "a", "b", "hi", 2, "foo", 3; say %foo.perl; say %foo.elems; | 14:41 | |
camelia | rakudo-moar c503e0: OUTPUT«("a", "b", "hi", 2, "foo", 3)6» | ||
timotimo | that's what i mean. | ||
.o( put that in your pipe and smoke it ) | |||
lizmat | S02:4690 : " integer int Integral int" regarding integer item context | 14:43 | |
synopsebot | Link: perlcabal.org/syn/S02.html#line_4690 | ||
lizmat | feels like a fossil | ||
or is this just a matter of Integral and int() being NYI ? | 14:44 | ||
14:46
[TuxCM] joined
|
|||
jnthn | lizmat: Well, int(...) would be a type coercion if it exists | 14:50 | |
lizmat | but do you think it is a fossil or not? | ||
jnthn | lizmat: tbh, I don't know. | 14:53 | |
lizmat: Worth checking with TimToady | |||
14:56
xfix is now known as notfix
|
|||
dalek | kudo/nom: f9c4d07 | jonathan++ | src/Perl6/Grammar.nqp: Implement EXPORTHOW::DECLARE. |
15:01 | |
15:02
lizmat_ joined,
lizmat left,
lizmat_ is now known as lizmat
|
|||
dalek | ast: c335b12 | jonathan++ | S12-meta/ (3 files): Tests for EXPORTHOW::DECLARE. |
15:02 | |
timotimo | does that mean we can now export a "foobar" in EXPORTHOW::DECLARE and in the code using it have a foobar { ... } that creates a type with our given metaobject? | 15:03 | |
$<sym>=[$declarator] <.end_keyword> <package_def> ← that certainly suggests it | 15:04 | ||
jnthn | Yes | 15:05 | |
See the test | |||
timotimo | token ::($meth_name) { - this is pretty cool, i wasn't aware we can do it just like that | ||
is that available in perl6 as well as nqp? | |||
jnthn | That's how all the grammar additions work... :) | 15:06 | |
Not sure if it works in Perl 6 yet...I probably meant to do it then didn't get around to it, 'cus unlike with NQP I didn't have a pressing need for it :) | |||
15:06
zakharyas left
|
|||
jnthn | Oh...also the NQP way is a bit cheaty :) | 15:07 | |
pmichaud | good morning, #perl6 | 15:08 | |
constants don't understand list assignment | |||
jnthn | Anyway, that's SUPERSEDE and DECLARE done. COMPOSE is the trickier one... :) | ||
o/ pmichaud | |||
pmichaud | at least they don't appear to | ||
well... hrm. | 15:09 | ||
Ven_ | well, they have a special list assignment that doesn't flatten :P | ||
jnthn | pmichaud: The spec hasn't been too concrete about what sigils on constants mean afaik | ||
Ven_: It's called "binding" :P | |||
Trouble is, | |||
15:10
cognome left
|
|||
jnthn | TimToady seems to also want it so we can mention a constant on its RHS and have stuff work out | 15:10 | |
Ven_ | conjecture: .flat.elems might be a bit counterproductive | ||
jnthn | And I *really* dunno how to make that one work out | ||
Ven_ | I mean, for the compiler. it shouldn't need to flatten it | ||
not sure what you mean? | |||
15:10
cognome joined
|
|||
Ven_ | a constant on its RHS? | 15:10 | |
jnthn | constant @foo = 1, @foo; # it wasn't exactly this, but there was *some* sequence that could be defined elegantly that way... | 15:11 | |
I don't actually see how that can be made to work, alas... | |||
We could say that constant @foo = blah; really does blah.list | 15:12 | ||
pmichaud | I'm thinking the problem may be in the parse | ||
jnthn | And constant %foo = blah; really does blah.hash | ||
Ven_ | jnthn: ah, the haskell-like one... | ||
pmichaud | i.e., I'm wondering if constant @ = 1, <b c> is using "item assignment" or "list assignment" | ||
jnthn | pmichaud: Oh, we might parse it at the wrong precedence? That'd also not surprise me... | ||
pmichaud | (and truthfully, I don't like calling this "assignment" -- it's really "initialization") | 15:13 | |
Ven_ | jnthn: maybe make constants immutable only after they've been init? I'm probably talking nonsense here | ||
jnthn | pmichaud: But if so that's only half the problem - and the easy half, at that... | ||
Ven_: Yes, "make immutable" is, uh, rather under-specified. | |||
Ven_ | fair enough. | ||
pmichaud | jnthn: why would it be only half the problem? (not disagreeing, wanting to know) | 15:14 | |
jnthn | What constant REALLY means in Perl 6 is "evalute the RHS at BEGIN time" | ||
pmichaud: If I do | |||
15:14
mr-foobar2 joined
|
|||
jnthn | my @foo = 1,2,3; | 15:14 | |
I know what @foo.WHAT is (Array) | |||
If I do | |||
constant @foo = 1,2,3; | |||
What is @foo.WHAT? | |||
Ven_ | Parcel or Array | ||
pmichaud | not Parcel. | 15:15 | |
jnthn | Well, if it's Parcel that we don't flatten right | ||
And Array is...very mutable :) | |||
Ven_ | "constant @foo = 1, 2, 3;" <- array before ";", parcel after :P | ||
jnthn | I can live with it being Array, and the "assignment" done at BEGIN time. | ||
Ven_: That won't work out, since a Parcel isn't lazy | 15:16 | ||
pmichaud | jnthn: well, which part of Array being mutable are you concerned about? | ||
15:16
SamuraiJack_ left
|
|||
pmichaud | the individual elements, the array, or both? | 15:16 | |
jnthn | pmichaud: I'm not sure. I'm well aware that List is mutable in its own way too. | ||
pmichaud | I mean, we can certainly come up wtih Lists that aren't mutable | ||
jnthn | pmichaud: So maybe I should stpo worrying about it. I just feel a bit odd with the keyword "constant" giving me an immediately mutable data structure. | 15:17 | |
15:17
brrt joined
15:18
mr-foobar2_ joined
|
|||
pmichaud | well, I think I'd prefer constant @foo = .... to at least give @foo the proper contents (if mutable), rather than silently give the incorrect contents | 15:18 | |
jnthn | I think users will expect flattening semantics of constnat @foo = ... to match those of my @foo = ... though. | ||
15:18
mr-foobar2 left
|
|||
Ven_ | I guess so | 15:18 | |
pmichaud | i.e., I'd prefer a bug report saying "constant @foo isn't" to a bug report saying "constant @foo improperly initialized" | ||
jnthn | Which is not the case right now if you aren't very careful what you put on the right hand side. | ||
pmichaud: Yes, good point. | 15:19 | ||
Well, if that's what we want, then it's probably quite fixable. | |||
pmichaud | OTOH, I just proved that the problem isn't just a parsing one | ||
jnthn | "fixable" :) | ||
pmichaud | oh, wait, no I didn't. | ||
hrmmmmm..... | 15:20 | ||
jnthn | I...don't see constant doing much about $*LEFTSIGIL | ||
pmichaud | I'll look into it more sometime. What's the grammar rule that handles the '=' in scope declarations? | ||
*scoped* | |||
jnthn | oh... | ||
pmichaud: initializer | |||
It's a proto iirc | 15:21 | ||
pmichaud | got it | ||
jnthn | Yes, and constant calls that | ||
Thing is | |||
It looks at $*LEFTSIGIL | |||
pmichaud | right | ||
jnthn | and constant calls variable, which sets $*LEFTSIGIL | ||
But we don't declare it in constant itself | 15:22 | ||
pmichaud | oh, because 'constant' isn't a scope declarator | ||
15:23
virtualsue joined
|
|||
jnthn | Right, it's a type declarator | 15:23 | |
pmichaud | looking. | ||
jnthn | my constant foo = ...; # lexically scoped constant | ||
m: constant @foo = 1,2,3; say @foo.perl | |||
camelia | rakudo-moar c503e0: OUTPUT«(timeout)» | ||
pmichaud | so <declarator> ends up calling <type_declarator> | ||
jnthn | m: constant @foo = 1,2,3; say @foo.perl | ||
camelia | rakudo-moar c503e0: OUTPUT«(1, 2, 3)» | ||
jnthn | m: constant $foo = 1,2,3; say $foo.perl | 15:24 | |
camelia | rakudo-moar c503e0: OUTPUT«(timeout)» | ||
pmichaud | uh oh :) | ||
jnthn | m: constant $foo = 1,2,3; say $foo.perl | ||
camelia | rakudo-moar c503e0: OUTPUT«(1, 2, 3)» | ||
jnthn | *sigh* camelia is... | ||
Ven_ | tired | 15:25 | |
jnthn | ...a little slow sometimes these days. | ||
pmichaud | anyway, I think that constant needs to become $*LEFTSIGIL aware | ||
jnthn | Agree | 15:26 | |
pmichaud | it might be that we need a scope_declarator:sym<constant> in addition to type_declarator | ||
token scope_declarator:sym<constant> { <?sym> <scoped('my')> } might do it :-) | 15:27 | ||
jnthn doesn't immediately see why | |||
pmichaud | because "constant @foo = ".... is equivalent to "my constant @foo = ..." | ||
jnthn | Well, the defualt is our, iirc. | ||
pmichaud | i.e., when "constant" is the leading keyword, it's both a scope declarator and a type declarator | ||
okay, "our" then :-) | |||
jnthn | True, though I think term is open to both | 15:28 | |
pmichaud | ?? | ||
jnthn | constant @foo = ...; already parses today | ||
pmichaud | right, but it does so because <declarator> falls through to <type_declarator> | ||
jnthn | and it's the type_declarator that'd need to declare $*LEFTSIGIL, so far as I can see | ||
Yes | 15:29 | ||
Is that a problem? | |||
pmichaud | looking | ||
jnthn | oh, wow | 15:30 | |
token multi_declarator:sym<null> { | |||
:my $*MULTINESS := ''; | |||
<declarator> | |||
} | |||
*that* is how we end up in declarator from term, iiuc | |||
pmichaud | I'm trying to avoid having type_declarator do the $*LEFTSIGIL setting... that feels very wrong. | ||
jnthn | setting, or declaring for other things below it to set? | 15:31 | |
15:31
JimmyZ joined
|
|||
pmichaud | declaring for other things below it to set | 15:31 | |
but perhaps it's okay... still figuring out how these fit together :) | |||
jnthn | Oh... | ||
mr-foobar2_ | queue.acm.org/detail.cfm?id=1039534 ( Extensible Programming for the 21st Century ) | 15:32 | |
jnthn | The only thing I see declaring it is EXPR | ||
and comp_unit | |||
So maybe we don't need to, after all... | |||
Then, why doesn't it already do the right thing... | 15:33 | ||
(As in, it gets the list case right, but not the constant $foo case...) | 15:34 | ||
pmichaud | perhaps I'm wrong about it being an incorrect parse. | ||
it may just be that it's not flattening properly | |||
jnthn | Yes, the latter is certainly a problem | ||
Because it just binds what it gets to the symbol | |||
pmichaud | m: (constant @ = 1, <b c>).perl.say | ||
camelia | rakudo-moar c503e0: OUTPUT«(1, ("b", "c"))» | ||
jnthn | Rather than enforcing any context on it | ||
pmichaud | well, that didn't tell me anything :-( | ||
m: (constant @ = 1, <b c>).WHAT.say | 15:35 | ||
jnthn | Well, contrast it to my | ||
camelia | rakudo-moar c503e0: OUTPUT«(Parcel)» | ||
15:35
yeahnoob left
|
|||
jnthn | m: (my @ = 1, <b c>).perl.say | 15:35 | |
camelia | rakudo-moar c503e0: OUTPUT«Array.new(1, "b", "c")» | ||
15:35
yeahnoob joined
|
|||
pmichaud | but I don't know if I'm getting a Parcel with an anonymous constant, or an anonymous constant that is a Parcel | 15:36 | |
jnthn | Oh... | ||
But a named constant will tell | |||
m: constant @a = 1, <b c>; say @a.WHAT | |||
camelia | rakudo-moar c503e0: OUTPUT«(Parcel)» | ||
jnthn | m: constant @a = 1, <b c>; say @a.perl | 15:37 | |
camelia | rakudo-moar c503e0: OUTPUT«(1, ("b", "c"))» | ||
pmichaud | so, what is it that binds @a to an Array in "my @a" ? | 15:38 | |
or "our @a" | 15:39 | ||
jnthn | For the my case, it's that the lexpad is set up with an Array instance, and configured to clone it per scope. | 15:40 | |
pmichaud | the 'our' case is probably more apropos | ||
jnthn | our is the same plus code is generated to re-bind it | 15:41 | |
But for the case we have here, we really want to create an Array at compile time and call .STORE with the thing the RHS produced | |||
pmichaud | yup. probably a similar issue for constant hashes | ||
jnthn | Right | ||
pmichaud | okay. | ||
anyway, I've convinced myself it's not a parsing issue, so definitely not an easy fix | 15:42 | ||
jnthn | Aye, though I think not a terribly hard one either | ||
pmichaud | agreed | ||
jnthn | The infrastructure for doing stuff at BEGIN time these days is quite decent :) | ||
15:42
Ven_ left
|
|||
pmichaud | sadly, I have to run other errands for a while, and prepare for a soccer match | 15:42 | |
15:43
Alula left
|
|||
jnthn | k...guess my train journey ain't for much longer too. And when I get off I'll want to do dinner :) | 15:43 | |
pmichaud | see you later, or on Thursday :) | ||
(or Friday) | |||
15:43
Alula joined,
brrt left,
anaeem1_ left
|
|||
jnthn | Yeah, I get in on Thursday early afternoon, iirc :) | 15:43 | |
15:44
brrt joined
|
|||
pmichaud | me too, I arrive 13:00 ish | 15:44 | |
lizmat | which is earlier than we will | ||
jnthn | Oh... | ||
pmichaud: Uh, not because you're changing at Frankfurt, by any chance? | |||
15:44
brrt left
|
|||
pmichaud | I'm changing at Frankfurt, yes :) | 15:44 | |
jnthn | Oh | ||
pmichaud | LH1104 FRA to SZG | ||
jnthn | Then we might see each other at the gate for that flight :) | ||
pmichaud | that would be very awesome | 15:45 | |
likely, since I have 4 hrs in FRA | |||
well, depending on how close your connection is | |||
jnthn | Oh, I think I'm wrong... | 15:46 | |
oh no, I misread | |||
pmichaud | APW will be the first perl event I've attended in 12 years where I don't have to prepare a talk :) I'm looking forward to it | ||
jnthn | My flight is the 12:50 one out of FRA | ||
pmichaud | that's mine | ||
LH 1104 departs FRA 12:50 arrives SZG 13:45 | 15:47 | ||
jnthn | It's an SAS codeshare, thus my momentary confusion :) | ||
pmichaud | anyway, I'll look for you at the gate | ||
jnthn | But yeah, exact same times, and says operated by Lufthansa. So it's the same one. | ||
I get in from CPH at 11:45 | |||
pmichaud | I arrive FRA from DFW at 08:50 | ||
jnthn | Though Terminal 3, and we go out of Terminal 1, so I guess I'll have a bit of walking to do. | 15:48 | |
pmichaud | anyway, great to know we're on the same flight -- we can navigate from SZG to hotel together too :) | ||
lizmat | yup, you're in the same hotel :-) | ||
pmichaud | lizmat++ | 15:49 | |
anyway, I'd better get my other tasks done or I will miss a deadline here. | 15:50 | ||
jnthn | Sure. See you somewhere in FRA on Thursday :) | ||
pmichaud | afk | ||
jnthn | lizmat: Are you flying in also, or driving it? | ||
lizmat | driving... with a small detour :-) | ||
jnthn | OK :) | 15:51 | |
jnthn will see if there's a sane public transport option from airport to hotel for him and Pm | |||
If not, I think the airport is close enough to town to taxi it at a sane enough price :) | 15:52 | ||
lizmat | jnthn: the airport is about 5km from the center | 15:57 | |
it is *really* close | |||
(and not too large either, only 1 runway) | |||
15:57
Ven_ joined
|
|||
jnthn | ah, cool | 15:58 | |
gtodd | depending on luggage, weather and the surrounding environment, 5km is pleasant walk. | 16:03 | |
16:04
JimmyZ left
16:12
yeahnoob left
16:13
rurban left
16:16
brrt joined
|
|||
psch | alright, the cli-opts grammar prototype seems to work, maybe i can get it into HLL-space during next week. i'm out of brain for today :) | 16:18 | |
b2gills | m: $*HOME | 16:19 | |
camelia | rakudo-moar f9c4d0: OUTPUT«Unhandled exception: Dynamic variable $*HOME not found at <unknown>:1 (/home/p6eval/rakudo-inst-1/languages/perl6/runtime/CORE.setting.moarvm:throw:4294967295) from src/gen/m-CORE.setting:13680 (/home/p6eval/rakudo-inst-1/languages/perl6/runtime/…» | ||
16:19
dwarring left
|
|||
psch | i will probably ask about ways to improve it as well, because i don't really feel particularly confident with grammars | 16:19 | |
but that's for somewhen next week as well o/ | |||
for now, ttyl #perl6 | |||
jnthn | o/ psch | ||
psch++ # working on getting command line stuff more in shape | 16:20 | ||
16:20
pmichaud left,
PerlJam left
|
|||
timotimo | mhhh. is line a shape? | 16:20 | |
lizmat | hmmm... seems dalek is not getting update info | 16:21 | |
just did: github.com/rakudo/rakudo/commit/0c...45487a2183 | |||
16:22
sergot_ left,
[Coke] left,
dalek left
16:23
dalek joined,
ChanServ sets mode: +v dalek,
[Coke] joined,
psch left
16:24
Hor|zon joined
16:25
pmichaud joined
16:27
njmurphy left,
PerlJam joined
16:28
sergot joined
|
|||
gtodd | do any p6-istas have a REPL history mechanism worked out? | 16:28 | |
16:28
Util joined,
Hor|zon left
|
|||
gtodd | I mean a method for preserving it to a file ... I can arrow up and down through it but was wondering how I could access it as a list in the repl itself ... possible with nqp magic or something? | 16:29 | |
16:32
brrt left
16:43
notfix is now known as xfix
|
|||
carlin | "$*CWD is a Str, not an IO::Path!!!" | 16:44 | |
3 exclaimation points, must be serious | |||
FROGGS[mobile]2 | gtodd: that stuff happens at VM level, so it is not accessible | 16:47 | |
16:49
tadzik joined,
[Sno]_ left
|
|||
FROGGS[mobile]2 | lizmat: what's the hotel name the Perl 6 crew is staying? | 16:50 | |
lizmat | define Perl 6 crew ? | ||
FROGGS[mobile]2 | I dunno... you, wendy, Pm and jnthn? | 16:52 | |
16:52
ajr_ left
|
|||
FROGGS | I'm in hotel Plainbrücke | 16:53 | |
lizmat | act.useperl.at/apw2014/wiki?node=Wh...ys%20where | ||
timotimo is in "hotel guter hirte" | |||
together with vendethiel | |||
lizmat | afaik, nwc10 is thare as well | 16:54 | |
*there | |||
FROGGS | well, we're are at last at the same venue :o) | ||
vendethiel- | yarr | ||
16:54
vendethiel- is now known as vendethiel
16:56
psch joined
|
|||
psch | ...i can't not read the clog, and gtodd's question is intriguing :) | 16:57 | |
gtodd: as it is right now you'd have to patch nqp | 16:58 | ||
timotimo | we'll eventually want something much cleverer than just a little readline-based thingie (or in this case linenoise) | ||
psch | gtodd: more precisely, you'd have to add some check (like and env-var) for a filename and add "write the line of code to that file" in HLL::Compiler::interactive | ||
s:1st/and/an/ | 16:59 | ||
timotimo: i have (very minimalistic) binding for gnu-readline on github (github.com/peschwa/readline-gnu, but "which readline" probably isn't the biggest thing to think about... :) | 17:00 | ||
gtodd | OK I had some amateurish notion that since nqp had "linenoise inside" I could somehow access whatever it was doing biut that it would be at a sort deeper/llower than the repl itsell | ||
psch | in my understand we want subparse for every line and... that's kind of as far as i thought about it :) | 17:01 | |
timotimo | iirc moarvm just offers an "interactive readline" nqp:: op for you | ||
gtodd | :-) | ||
17:02
pat_js left
|
|||
gtodd | so at this point it wouldn't be as easy as "loading a package" that writes to a file ... | 17:02 | |
17:02
pat_js joined
|
|||
psch | gtodd: no. nqp reads the fh for the repl | 17:03 | |
line 70 in nqp/src/HLL/Compiler.nqp | |||
pat_js | are there some deltas (apart from the git logs) for rakudo? I haven't looked at perl 6 for some time now and want to know what the changes are implemented now and what crucial changes to the language have happend. | 17:04 | |
17:05
kjs_ joined
|
|||
gtodd | the easy approach of REPLHelper.pm or repl-trick for "shortcuts" isn't going to work at this point so unless I dig into nqp ... :-) | 17:06 | |
psch | pat_js: as for "what works now", perl6.org/compilers/features is probably most comprehensive | ||
pat_js: wrt "what started working when", that's probably only via git | 17:07 | ||
pat_js: oh, except for timotimo++'s p6weekly.wordpress.com although that only goes back about half a year or so i think | 17:08 | ||
pat_js | psch: thanks, but that's too short, I'm looking for a rundown of the last two years, then i'm looking into the git logs. | 17:09 | |
17:09
Mso150 joined
|
|||
timotimo | pat_js: what's your favourite part of perl6? | 17:11 | |
the last two years is basically all the time i spent with perl6 so far | |||
performance improved in a big way | |||
stage parse for the core setting used to be about 120 seconds on my machine, now it's below 30 | 17:12 | ||
in part thanks to moarvm, in part thanks to targeted optimizations all over the place | |||
we got inlining to work on the AST level for all backends, too | |||
colomon | Threading | 17:13 | |
timotimo | about 2 years ago, there were still loads and loads of tickets marked "nom regression" | ||
colomon | Sets and Bags | ||
timotimo | aye, the JVM and MoarVM backends appeared and got multithreading and asynchronous IO | ||
niecza stopped being moved forward, pugs has been removed from the daily test runs | 17:14 | ||
gtodd | psch: of course running the repl in tmux or in emacs buffer offers a different way to save history ... but you can't really "load" the file ... | 17:15 | |
anyway thanks | |||
timotimo | rlwrap* | ||
i mean: rlwrap is a workable alternative | 17:16 | ||
pat_js | timotimo: not sure, I really liked the full utf8 support and all those operators. method dispatch was pretty nice. the Meta-Programming posibilities had some nice touch to it. | ||
timotimo | our unicode support is still lacking; we'll still have to build NFG before that'll truly rock your socks off | 17:17 | |
but method dispatching, meta programming, the operators ... that's all in good shape; i think it was in good shape before, too | |||
pat_js | thanks a lot, that's some directions. Is the parcel/listy stuff now working? | 17:18 | |
17:18
[Sno] joined
|
|||
psch | it's up next, i think | 17:18 | |
well, the performance part of it | |||
timotimo | there'll still be the Great List Refactor that'll be a pretty huge deal when it comes to performance at least | ||
a portion of that is going to happen during the APW2014 which happens next weekend | |||
psch | right, that reminds me, i should probably add that one use case i discovered when hacking m:g// to the meta ticket | 17:19 | |
timotimo | yay | ||
psch | m: class A { method Str() { "foo" } method List() { (1, 2, 3) } }; for A.new { .say } | 17:20 | |
camelia | rakudo-moar f9c4d0: OUTPUT«===SORRY!=== Error while compiling /tmp/kXO2S_REWTTwo terms in a rowat /tmp/kXO2S_REWT:1------> class A { method Str() { "foo" } ⏏method List() { (1, 2, 3) } }; for A.new expecting any of: pos…» | 17:21 | |
psch | m: class A { method Str() { "foo" }; method List() { (1, 2, 3) } }; for A.new { .say } | ||
camelia | rakudo-moar f9c4d0: OUTPUT«A.new()» | ||
psch shakes fist at TTIAR | |||
17:21
zakharyas joined
|
|||
psch | that case is arguably correct, but 'for m:g/$pat/ { ... }' likely wants .list implicitely... | 17:21 | |
welp, i'll add it to the ticket and let the smart people worry about it :) | 17:22 | ||
17:23
molaf joined,
fhelmberger joined
|
|||
bartolin | I've got a question regarding unicode: on a box with debian stable (7.6) I get spectest failures with rakudo on parrot in S05-mass/charsets.t and S05-mass/properties-general.t (the failures stem from the recently unfudged tests, cmp. github.com/perl6/roast/commit/6065...ff5ce049c) | 17:24 | |
I *think* I understand why those tests fail: debian stable comes with libicu version 4.8 which is used by parrot. libicu 4.8 only has the data from Unicode 6.0 -- but the failing tests check definitions from Unicode 6.1 | |||
can you confirm this interpretation? | |||
17:26
denis_boyun_ joined
17:28
fhelmberger left
17:30
zakharyas left
17:31
Ven_ left,
zakharyas joined
|
|||
dalek | ecs: e9650c0 | (Elizabeth Mattijsen)++ | S32-setting-library/IO.pod: All negated letters also in IO::Path.all |
17:33 | |
kudo/nom: 0d7664f | (Elizabeth Mattijsen)++ | src/core/IO/Path.pm: Implement IO::Path.all So now you can say "foo".IO.all: <!d r w x s> to get the size of something that is *not* a directory, but is readable/writable/executable. |
17:39 | ||
17:40
ghostlines joined
17:42
Ven_ joined,
dwarring joined
17:43
ghostlines left
|
|||
lizmat | is it me, or is the spectest significantly faster after my latest IO::Path work ? | 17:46 | |
Files=923, Tests=33895, 173 wallclock secs ( 9.02 usr 3.39 sys + 1041.16 cusr 158.50 csys = 1212.07 CPU) | |||
colomon | is it that or JIT becoming mainstream? | 17:47 | |
colomon has definitely seen a noticeable ~3% decrease in stage parse times this week... | 17:48 | ||
lizmat | colomon: there is temporarily more code in the setting while I move stuff around | 17:49 | |
IO:FileTestable is about to be removed :-) | 17:50 | ||
colomon | lizmat: sorry, didn't say that right. | ||
parse times this week are the fastest I've ever seen | |||
lizmat | ah, even better! | ||
colomon | 26.2 overnight. | ||
it was 27 or os just a few days ago. | |||
it had gotten down to something like 26.5 before a while ago, then retreated back to 27, but the last few days have been great. | 17:51 | ||
dalek | kudo/nom: 1a0e4a0 | (Elizabeth Mattijsen)++ | src/core/IO/Path.pm: Optimize IO..Path.all: <e !e> |
17:52 | |
kudo/nom: 5065a05 | (Elizabeth Mattijsen)++ | docs/ChangeLog: Update ChangeLog with some new features |
|||
colomon | lizmat: I really don't have any idea whether it's your code or JIT -- my timings are all with the default Moar rakudobrew gives you. | ||
I had just assumed JIT because the timing seemed about right. | 17:53 | ||
lizmat | mine as well | ||
17:53
kjs_ left
|
|||
lizmat | then you have now JIT where you didn't have that before | 17:53 | |
colomon | right | ||
lizmat | I've been working with JIT enabled for several weeks now | ||
colomon | that's why I assume JIT was responsible for the speedup. :) | ||
lizmat | well, expect a little more on top of that for the spectest | ||
by the looks of it now | 17:54 | ||
colomon | \o/ | ||
dalek | kudo/nom: 47f8a12 | (Elizabeth Mattijsen)++ | docs/ChangeLog: Add blurb about IO::Path.modified|accessed|changed |
17:55 | |
gtodd | bartolin: I hope someone confirms that deduction :-) | 17:56 | |
bartolin: that would mean failing parrot tests might magically start to pass ! | |||
flussence | gtodd: not sure about that - I've seen S05 tests persistently fail even though I'm on a Gentoo with shiny new ICU versions... | 17:59 | |
18:07
psch left
18:11
zakharyas left
|
|||
dalek | kudo/nom: 6661df6 | (Elizabeth Mattijsen)++ | src/core/ (4 files): Bring $*SPEC.tmpdir up to spec, and $*TMPDIR init |
18:17 | |
lizmat | could be noise, but this is looking good: Files=923, Tests=33895, 170 wallclock secs ( 8.91 usr 3.39 sys + 1029.64 cusr 156.33 csys = 1198.27 CPU) | 18:18 | |
below 1200 CPU again | |||
18:21
ivanshmakov left,
ivanshmakov joined
18:22
virtualsue left,
vladtz joined
18:24
virtualsue joined
18:25
Hor|zon joined
|
|||
dwarring | bartolin: S05-mass/chars.t is failing for me under unicode version 5.2 | 18:28 | |
gist.github.com/dwarring/e60d5e134dd980a9aab2 | 18:29 | ||
18:29
Hor|zon left
|
|||
dwarring | I think this is unicode version dependant | 18:30 | |
lizmat | bartolin stated earlier that the failing tests were for Unicode 6.1 | ||
dwarring | can anyone reproduce that with 6.3 onwards? | 18:31 | |
bartolin | I'm not really sure, all of them are from 6.1. (the comments for fudging said so) | 18:32 | |
dwarring: icu-config --unicode-version <- nice to know! | |||
dwarring | I think the comment could be wrong (I wrote it) | 18:33 | |
bartolin | on debian stable it gives 6.0 and I got test failures. on freebsd 10.0 it gives 6.3 and I have a clean spectest | ||
;-) | |||
dwarring bisecting unicode versions | 18:34 | ||
bartolin | dwarring: at least for the test in S05-mass/charsets.t ('Punctuation chars') the added characters are from 6.1 (just looked that up). | ||
18:35
PotatoGim^Home left
|
|||
dalek | kudo/nom: 603a994 | usev6++ | tools/lib/NQP/Configure.pm: Fix open command |
18:35 | |
kudo/nom: 2e30a3b | (Tobias Leich)++ | tools/lib/NQP/Configure.pm: Merge pull request #316 from usev6/nom Fix open command |
|||
18:35
[TuxCM] left,
Ven_ left
|
|||
bartolin | www.unicode.org/versions/Unicode6.1.0/ mentions U+00A7 and U+00B6 and those appear in S05-mass/chars.t | 18:36 | |
dalek | p: 52c4e54 | usev6++ | tools/lib/NQP/Configure.pm: Fix open command |
||
p: 0bd419f | (Tobias Leich)++ | tools/lib/NQP/Configure.pm: Merge pull request #188 from usev6/master Fix open command |
|||
18:36
Mouq joined
|
|||
dwarring | bartolin: I'll refudge, this with a more accurate comment | 18:36 | |
lizmat | FROGGS[mobile]2: should be up NQP_REVISION? | ||
*we | 18:37 | ||
dwarring $?UNICODE would be nice to have - nyi | |||
dalek | c: bdbc61e | Mouq++ | lib/Language/variables.pod: Clarify some of the twigil docs |
||
c: c986f43 | Mouq++ | lib/Language/variables.pod: Stub Variable Declarator section Though perhaps declarators and/or scope deserve their own document(s)? At the very least, though, they should be mentioned in variables.pod. |
|||
FROGGS | lizmat: yes, but I don't think it is very urgent | ||
bartolin | lizmat: the fixes FROGGS++ just merged don't help without further changes | 18:38 | |
18:39
rindolf joined
|
|||
lizmat | ah, ok | 18:39 | |
bartolin | lizmat: I probably shouldn't have created a pull request just for those. | ||
lizmat | no worries, I was just thinking about releasing early and often :-) | 18:40 | |
18:40
[Tux] joined
|
|||
dalek | c: 08bc0fd | Mouq++ | lib/Language/variables.pod: Call twigils "twigils" in headers |
18:40 | |
bartolin | dwarring: We don't have a way to fudge according to an second criterion (apart from backend), do we? (say OS version) | 18:41 | |
18:43
kjs_ joined
18:45
kjs_ left
|
|||
dwarring | bartolin: not that I know of | 18:45 | |
FROGGS | bartolin: no | 18:46 | |
lizmat | could it be that nqp::loadbytecode($path); creates an IO::Handle with a Str in its $!path ?? | 18:47 | |
bartolin | maybe the tests could stay unfudged but get comments describing the issue? | 18:48 | |
lizmat | if so, how can I change the Str $path in load_setting to an IO::Path ? | ||
18:48
pepl joined
|
|||
lizmat | FROGGS: any ideas? ^^ | 18:48 | |
FROGGS | hmmm | 18:49 | |
lizmat | I could fudge it for now in IO::Handle.open, but that seems the wrong way :-) | ||
FROGGS | I don't think that nqp::loadbytecode can create a Perl 6 level class | 18:51 | |
lizmat | aaaahhhh FROGGS++ yup, I see what the problem is | 18:52 | |
open('-', :w) | 18:53 | ||
18:55
denis_boyun_ left
|
|||
dalek | ast: 5dc7e0d | (David Warring [email@hidden.address] | S05-mass/charsets.t: refudged unicode-version dependant test on parrot. Correct comments - need unicode 6.1 bartolin++ |
18:56 | |
FROGGS | why don't we use nqp::getstdout/in there? | ||
lizmat | we do, deeper in the code | ||
18:58
darutoko left
|
|||
lizmat is trying to not break too much at once | 18:59 | ||
jnthn | evening, #perl6 | 19:00 | |
lizmat | jnthn o/ | ||
FROGGS | lizmat: btw, the segfault in lines.t (and perhaps others) is due to my repl fix... and I think I just solved that | 19:01 | |
hi jnthn | |||
lizmat | FROGGS++ | ||
jnthn is safely in Stockholm, ate a curry, and went for a walk :) | 19:03 | ||
It's nice to be in a European city again :) | |||
19:03
Mso150_h joined,
Mso150 left
|
|||
lizmat | I bet it's a bit cooler :-) | 19:04 | |
jnthn | Oh yes :D | 19:05 | |
It's actually comfortable to go for an evening stroll here :) | |||
FROGGS | jnthn: does that work on windows? perl6-p -e 'say shell("echo \"exit(42)\" | $*EXECUTABLE")' | ||
(I guess not) | 19:06 | ||
19:07
xfix is now known as notfix
|
|||
jnthn | C:\consulting\rakudo>perl6-m -e "say shell('echo ""exit(42)"" | ' ~ $*EXECUTABLE)" | 19:07 | |
exit(42) | |||
Proc::Status.new(exit => 0, pid => Any, signal => 0) | |||
Though note: | 19:08 | ||
C:\consulting\rakudo>perl6-m -e "say shell('echo exit(42) | ' ~ $*EXECUTABLE)" | |||
Proc::Status.new(exit => 42, pid => Any, signal => 0) | |||
FROGGS | hmmm | ||
jnthn | The first one actually includs the quotes in what it echos :D | ||
moritz | \o | ||
lizmat | moritz o/ | ||
jnthn | C:\consulting\rakudo>echo "WHY, ffs!" | 19:09 | |
"WHY, ffs!" | |||
:D | |||
FROGGS | bah | ||
*g* | |||
but I can live with that :o) | |||
jnthn | o/ moritz | ||
FROGGS | thanks | ||
19:09
guru joined
19:10
guru is now known as Guest7437,
Guest7437 is now known as ajr_
|
|||
dalek | c: ea84e6c | Mouq++ | lib/Language/variables.pod: Attempt to explain lexical scope |
19:11 | |
pat_js | is there a way to "apply" a parcel to a signature? | 19:13 | |
19:13
Ven_ joined
|
|||
pat_js | or create a subroutine with a given Signature as it's signature | 19:14 | |
Mouq | pat_js: What do you mean by "apply"? | ||
19:15
kaare_ left,
kjs_ joined
|
|||
moritz | you can interpolate it | 19:17 | |
m: my @parcel := (4, 1); say 'abcdefghijk'.substr(|@parcel); | |||
camelia | rakudo-moar 47f8a1: OUTPUT«e» | ||
jnthn | In the unlikely even reading the question too literally actually helps... | ||
m: sub swas($sig) { return sub (|c where $sig) { say 'oh yeah!!!' } }; my $c = swas(:(Int $a, Str $b)); $c(1, "omg"); $c(2, 69); | 19:18 | ||
camelia | rakudo-moar 47f8a1: OUTPUT«oh yeah!!!Constraint type check failed for parameter 'c' in sub at /tmp/2R4AbM7uGQ:1 in block <unit> at /tmp/2R4AbM7uGQ:1» | ||
pat_js | yeah thatnks, that's what I wanted. | ||
jnthn | ...what for?! :D | ||
pat_js | curiosity | ||
jnthn | Ah :) | ||
As I was writing it I was thinking...what on earth could this be good for... :) | |||
pat_js | i thought if everything is an object | 19:19 | |
jnthn | *nod* | ||
Yeah, sigs are objects... | |||
pat_js | and Parcels are sort of the "keys" to the Signature "locks", this should work in some way | 19:20 | |
Mouq | m: say (1, "omg") ~~ :(Int $a, Str $b) | 19:21 | |
camelia | rakudo-moar 47f8a1: OUTPUT«True» | ||
Mouq | m: say (2, 69) ~~ :(Int $a, Str $b) | ||
camelia | rakudo-moar 47f8a1: OUTPUT«False» | ||
pat_js | but there is no way to do variable binding with it, right? | 19:22 | |
19:22
kjs_ left
19:23
SamuraiJack_ joined
|
|||
jnthn | You mean, use it for destructuring? | 19:23 | |
pat_js | yeah, I thought about some pattern matching | ||
jnthn | Hmm | ||
Well | |||
pat_js | but it feels like leaking scopes. | 19:24 | |
jnthn | m: sub foo() { return 12, "dugong"; }; my (Int $a, Str $b) = foo(); # there's this... | ||
camelia | ( no output ) | ||
jnthn | m: sub foo() { return 12, "dugong"; }; my (Int $a, Str $b) = foo(); say $a; say $b; | ||
camelia | rakudo-moar 47f8a1: OUTPUT«12dugong» | ||
dalek | kudo/nom: 2e4dca6 | (Elizabeth Mattijsen)++ | / (4 files): Add IO::Path::Special for STDIN/STDOUT/STDERR etc |
||
Mouq | It doesn't really make sense to have first-class variable declarations :P IMO | 19:25 | |
pat_js | yeah i have found that | ||
19:25
kjs_ joined
19:26
jack_rabbit joined
|
|||
jnthn | One of the cute things you can do with the syntax is unpack object attributes | 19:26 | |
my (:$numerator, :$denominator) := 4.2; say $numerator; say $dominator | |||
m: my (:$numerator, :$denominator) := 4.2; say $numerator; say $dominator | |||
camelia | rakudo-moar 47f8a1: OUTPUT«===SORRY!=== Error while compiling /tmp/_OoupbHq82Variable '$dominator' is not declared. Did you mean '$denominator'?at /tmp/_OoupbHq82:1------> ) := 4.2; say $numerator; say $dominator⏏<EOL> expecting …» | ||
jnthn | uh, yes, I *did* mean... | 19:27 | |
m: my (:$numerator, :$denominator) := 4.2; say $numerator; say $denominator | |||
camelia | rakudo-moar 47f8a1: OUTPUT«215» | ||
dalek | ast: ac5e8d4 | (Tobias Leich)++ | S19-command-line/repl.t: add sanity test for the REPL |
||
jnthn | And can do them nested too | 19:28 | |
FROGGS: That test fails here :( | 19:32 | ||
pat_js | m: my(:$re,:$im) = 3+4i; $im.say | ||
camelia | rakudo-moar 47f8a1: OUTPUT«===SORRY!=== Error while compiling /tmp/CxX0G6tvtwVariable '$re' is not declaredat /tmp/CxX0G6tvtw:1------> my(:$re⏏,:$im) = 3+4i; $im.say» | ||
19:32
robinsmidsrod left
|
|||
jnthn | oh, no wonder! | 19:32 | |
dalek | ast: 18fc4b8 | jonathan++ | S19-command-line/repl.t: Fix a tyop. |
||
FROGGS | ohh nose! | ||
jnthn | Now it passes just fine. | ||
pat_js | m: my (:$im) := 3+4i; $im.say | 19:34 | |
camelia | rakudo-moar 47f8a1: OUTPUT« in block <unit> at /tmp/CdfqrSeiYS:1» | ||
FROGGS | no wonder it passed here :o) | ||
19:34
robinsmidsrod joined
|
|||
lizmat | jnthn: nqp::bindattr(self, IO::Handle, '$!PIO', $foo) is just $!PIO := $foo, no? | 19:35 | |
moritz | if the current class is IO::Handle, yes | ||
jnthn | lizmat: Yeah | ||
Well, what moritz said | |||
lizmat | that's what I thought | ||
another cleanup coming :-) | 19:36 | ||
Mouq | m: my (:$re,:$im) = 3+4i; $im.say | 19:39 | |
camelia | rakudo-moar 47f8a1: OUTPUT«(Any)» | ||
Mouq | m: my (:$re,:$im) := 3+4i; $im.say | ||
camelia | rakudo-moar 47f8a1: OUTPUT«4» | ||
Mouq | pat_js: You were missing a space between `my` and `(` that caused it to be treated like a function | ||
19:42
molaf left
|
|||
Mouq | masak: It would be awesome to be able to do something like: sub where ($v, *@subs) { my @whens = @subs.map({ quasi {when {{{$_}}}.signature { $_ ~~ {{{$_}}} } } }); quasi { given {{{$v}}} { {{{@whens}}} } } } | 19:42 | |
jnthn | FROGGS: don't forget to add it to spectest.data, btw :) | 19:44 | |
19:45
MilkmanDan left,
MilkmanDan joined
|
|||
timotimo | m: say &my | 19:47 | |
camelia | rakudo-moar 47f8a1: OUTPUT«===SORRY!=== Error while compiling /tmp/2v6oWMy48GUndeclared routine: &my used at line 1» | ||
FROGGS | jnthn: will do after more testing | ||
timotimo | maybe it should output the worries after a sorry, too? | ||
in that case it'd complain about the "undefined routine my used" | |||
jnthn | FROGGS: ah, cool :) | 19:48 | |
hm, why on earth do my laptop and phone have an hour's difference on what time it is... | 19:49 | ||
All the same, I'm happy to discover I've an hour more of evening than I was thinking... :) | 19:50 | ||
timotimo | \o/ | 19:51 | |
19:52
anaeem1_ joined
19:53
anaeem1_ left
19:55
anaeem1 joined
|
|||
dalek | kudo/nom: 94a64fb | (Tobias Leich)++ | src/core/IO/Handle.pm: fix .lines on parrot |
19:56 | |
19:57
xenoterracide joined,
anaeem1 left
20:00
anaeem1 joined
20:01
FROGGS[mobile]2 left,
anaeem1 left
20:08
xenoterracide left
20:09
SamuraiJack_ left
|
|||
dalek | c: 0810e68 | Mouq++ | lib/Language/variables.pod: Clarify special vars section |
20:09 | |
c: ed0ba4d | Mouq++ | lib/Language/variables.pod: Explain temp |
|||
20:11
beastd joined
20:13
rmgk_ joined,
rmgk left,
rmgk_ is now known as rmgk
20:14
anaeem1 joined
20:15
anaeem1 left
20:23
Mso150_h left
20:24
denis_boyun_ joined
20:25
mr-foobar2_ left
20:26
Hor|zon joined
20:27
anaeem1 joined,
_slade_ joined
20:30
Hor|zon left
|
|||
lizmat | S03:279 : so what is a 'signature literal' ?? :(Dog $self:) | 20:36 | |
synopsebot | Link: perlcabal.org/syn/S03.html#line_279 | ||
jnthn | m: say :(Int $x).WHAT | 20:40 | |
camelia | rakudo-moar 94a64f: OUTPUT«(Signature)» | ||
lizmat | just a short way to create a signature ? | 20:42 | |
jnthn | a way to create a standalone signature, independent of any sub, method, block, etc. | ||
20:43
kjs_ left
|
|||
lizmat | ack | 20:47 | |
japhb | lizmat, FROGGS: Are we currently in a place where path/IO stuff is working, in that e.g. panda, REPL, etc. is unbroken? | ||
lizmat | it was earlier today, lemme check now | ||
japhb | I've been seeing enough bug fixes that I'm not sure if now is a good time to build a perl6 that I plan to keep around for a few days (I generally like to have at least one built that I can rely on working, even when HEAD builds are various levels of broken) | 20:48 | |
lizmat: thank you. :-) | |||
jnthn | japhb: You might want to hold off a little. | 20:49 | |
japhb | jnthn: Oh? | ||
jnthn | japhb: If you're after less churn, at least. | ||
japhb | Was there any discussion of the merits of keeping nom a little less churn-y? | 20:50 | |
lizmat | HEAD currently rebootstraps panda fine, even with Inline::Perl5 and its dependencies | ||
japhb | It seems like the past month or so, it's been "jungles of Borneo" | ||
lizmat | but we're getting a faster IO and filetests for it :-) | 20:51 | |
japhb | Oh sure, but it seems like enough change that, well, panda and the REPL need regular love. I'm wondering if I'm alone in thinking nom should be "always shippable", so to speak, or if we've made the conscious decision that only monthly releases can be considered that reliable. | 20:52 | |
jnthn | japhb: It's a difficult trade-off. For various reasons, a lot of people track HEAD rather than releases, so there's some demand to keep HEAD stable. OTOH, putting stuff off in branches is a great way to take a long time to discover breakage... | 20:53 | |
japhb: Given that doing so greatly reduces the amount of testing stuff gets. | 20:54 | ||
japhb | Yeah, I agree with that. | ||
lizmat | japhb: it also shows roast deficiencies | ||
jnthn | Right, that too. | ||
lizmat | last week, spectest was fine, but panda was severely borked | ||
jnthn | the daily roast for both spectests and modules uses nom | ||
20:54
odc left
|
|||
japhb wonders if there's value in keeping a pointer (branch, moving tag, what have you) of not-quite-churny-but-close-to-HEAD. Kindof like Firefox Aurora | 20:55 | ||
jnthn | I guess the issue is, a bunch of things are set up such that you get more value, as a developer, for comitting might-be-OK stuff to nom, than putting it in a branch... | ||
japhb | Well, I'm not suggesting putting new code in a branch, because I pretty much agree with the reasons that doesn't really work for us except for e.g. major refactors. | 20:56 | |
jnthn | Aye. The "moving pointer" idea ain't a bad one. | ||
japhb | I'm thinking more having a way for people to get something between monthly and nom in both recency and risk. | ||
20:57
denis_boyun_ left
|
|||
jnthn | I mean, we already have MOAR_REVISION/NQP_REVISION to give us some control there. | 20:57 | |
japhb | Yeah, actually, that's kinda what I want, but for Rakudo itself. | ||
jnthn | Right. | ||
20:58
ajr_ left
|
|||
jnthn | It's an interesting idea. I'm not totally sure how to set things up so the incentive system is right to get it to have the right stability/recency trade-off... | 20:58 | |
lizmat | but that would be the equivalent of putting all code after such a point in a branch and untested | ||
japhb | But since {MOAR,NQP}_REVISION exist in the next higher repo in the implementation stack, but Rakudo is already the top of the stack, you'd probably end up needing something like a git tag to get the same functionality in a usable way. | 20:59 | |
jnthn | lizmat: Only if everybody suddenly jumped to using that branch insted of nom. | ||
lizmat: and I'm pretty sure the idea is not to switch roasts, evalbot, etc over do it. | 21:00 | ||
lizmat | ah, ok the other way around | ||
jnthn | japhb: Do you think an automated approach may be viable? | ||
lizmat | but that could cause roast failures in a tagged "safe" version | ||
japhb | lizmat: I don't think so, because I feel like we've got several different risk/recency tradeoffs: monthly (stable but as old as we go), branch (likely broken, or we'd merge it), nom (may be broken, but the best place for patches and such), and tag (probably not broken, may be a few days old, good for people working on features that don't want to get broken builds while they work) | 21:01 | |
jnthn | japhb: That is, clean roast + panda verified as working in some sense = branch moved | ||
Or some similar criteria. | 21:02 | ||
pat_js | m: sub infix:<←> (&f, $b){->(|c){f($b,c)}};my &add = *+*;my &add_1 = &add ← 1;say add_1(5) | ||
camelia | rakudo-moar 94a64f: OUTPUT«1» | ||
pat_js | why isn't that 6? | ||
japhb | jnthn: Yeah, I think that could actually work for us. Sortof a "no unknown regressions" tag/branch | ||
jnthn | Also making it automatable/objective makes it rather predictable what it provides. | 21:03 | |
(And what the boundaries of what it can promise are.) | |||
japhb | Agreed, and agreed that's a good thing. | ||
21:03
kjs_ joined,
kjs_ left
21:04
anaeem1 left
|
|||
jnthn | pat_js: Did you want |c in the call too, to flatten the capture there? | 21:04 | |
pat_js: Also I don't think you want parens around the signature of the pointy | 21:05 | ||
pat_js | jnthn: yeah, basically i wanted some kind of curry operator | ||
timotimo | pat_js: do you hate whitespace? :) | ||
Mouq | -> |c { f($b, |c) } | ||
japhb | [Coke]: Would you consider making that part of your roasting? If the roast is clean, and panda can rebootstrap with some set of "expected always working" modules, then your scripts push the tag/branch pointer ahead? | ||
pat_js | Mouq: no, not at all | ||
Mouq | Orrrr, &f.assuming($b) | ||
jnthn | I was gonna say, try assuming :) | 21:06 | |
dalek | kudo/nom: 7c74f70 | jonathan++ | src/Perl6/Metamodel/BOOTSTRAP.nqp: Allow build to be set in Attribute.new(...). |
||
timotimo | m: my &infix:<←> = { $^a.assuming($^b) }; my &add = * + *; my &add_1 = &add ← 1; say add_1(5); # ? :) | ||
camelia | rakudo-moar 94a64f: OUTPUT«No such method 'assuming' for invocant of type 'WhateverCode' in block <unit> at /tmp/sQy1uAJXgq:1» | ||
jnthn | Use &[+] instead of *+*, I think | 21:07 | |
timotimo | m: my &infix:<←> = { $^a.assuming($^b) }; my &add = &[+]; my &add_1 = &add ← 1; say add_1(5); # ? :) | ||
camelia | rakudo-moar 94a64f: OUTPUT«6» | ||
timotimo | m: my &infix:<←> = { $^a.assuming($^b) }; my &add = &infix:<+>; my &add_1 = &add ← 1; say add_1(5); # ? :) | ||
camelia | rakudo-moar 94a64f: OUTPUT«6» | ||
timotimo | i think we really want WhateverCode to be able to assuming, too | ||
jnthn | I'm not sure we do... | 21:08 | |
japhb | Agreed. | ||
jnthn: Why not? | |||
Why wouldn't any Callable not be able to .assuming | |||
Mouq | m: say (my $= * + *).^mro; say &[+].^mro | ||
camelia | rakudo-moar 94a64f: OUTPUT«(WhateverCode) (Code) (Any) (Mu)(Sub+{<anon>}+{Precedence}) (Sub+{<anon>}) (Sub) (Routine) (Block) (Code) (Any) (Mu)» | ||
japhb | ? | ||
jnthn | Oh, wait... .assuming, not .wrap... | ||
Yeah, sorry, I was just confusing things :) | |||
No objection to .assuming working more widely. | 21:09 | ||
timotimo | how about Int.assuming? :) | ||
Mouq | .assuming is defined in Routine | ||
jnthn | m: say WhateverCode.^mro | ||
camelia | rakudo-moar 94a64f: OUTPUT«===SORRY!===Internal error: failed to remove block» | ||
jnthn | um...pardon? | ||
timotimo | we must factor it out into a routine named CanAssume? HasAssumptions? :) | 21:10 | |
jnthn | m: say (my $a = WhateverCode).^mro | ||
camelia | rakudo-moar 94a64f: OUTPUT«(WhateverCode) (Code) (Any) (Mu)» | ||
21:10
kjs_ joined,
Ven_ left
|
|||
jnthn | Hm, it'd have to go in Code to have it in a common base class... | 21:10 | |
pat_js | hmm, thanks a lot | ||
japhb | .ask [Coke] What do you think of irclog.perlgeek.de/perl6/2014-10-05#i_9460362 through irclog.perlgeek.de/perl6/2014-10-05#i_9460432 ? | ||
yoleaux | japhb: I'll pass your message to [Coke]. | ||
Mouq | m: say (Whatever + Whatever)(4, 5) | 21:11 | |
camelia | rakudo-moar 94a64f: OUTPUT«9» | ||
21:15
jdj is now known as j4jackj
|
|||
dalek | href="https://modules.perl6.org:">modules.perl6.org: 6c2fce9 | asb-cpan++ | web/index.tmpl: fixed width for badges column adding fixed width to badges column to avoid linebreaks between badges |
21:15 | |
21:16
kjs_ left
21:24
fhelmberger joined
21:29
PZt left,
fhelmberger left
21:30
leont joined
|
|||
dalek | c: f4353ee | Mouq++ | / (3 files): Generalize definition detection Now allows more generalized forms. In the future, should also look for X<infix,foo> or some such in the header. |
21:32 | |
21:33
pat_js left
|
|||
jnthn | Mouq++ # working on doc \o/ | 21:35 | |
'night, #perl6 | 21:36 | ||
japhb | o/ # night, jnthn | ||
21:38
rindolf left,
virtualsue left
|
|||
lizmat | gnight jnthn | 21:39 | |
dalek | kudo/nom: bc6de57 | (Tobias Leich)++ | t/spectest.data: run S19-command-line/repl.t |
||
Mouq | 'night jnthn! :) | 21:40 | |
FROGGS | gnight all | ||
leont | Been mostly AFK this weekend. What was the way out of the panda issues mentioned on Friday? Upgrade panda or upgrade rakudo? | ||
FROGGS | leont: both | 21:41 | |
& | |||
timotimo | .o( and don't forget to upgrade nqp, too ) | ||
21:42
PZt joined
21:43
bartolin left
21:48
gfldex left
21:54
beastd left
21:55
pat_js joined
22:07
jack_rabbit left
|
|||
Mouq | "Failed to open file: no such file or directory" | 22:20 | |
SUCH an annoying error that I've been getting recently. What did I fail to open? | 22:21 | ||
lizmat | Mouq: is that on HEAD ? | 22:24 | |
if so, how did you do that ? | |||
Mouq | Looks like I tried to spurt to "html/$/.html" | 22:26 | |
22:27
Hor|zon joined
|
|||
dalek | kudo/nom: 4b78763 | (Elizabeth Mattijsen)++ | src/core/IO/Handle.pm: Cleanup Part #1 of IO::Handle - no longer does IO::FileTestable, has its own "handlers" now - added support for IO::Special paths - simplified a lot of unneccesary nqp::bindattr calls |
22:28 | |
kudo/nom: 146c6f8 | (Elizabeth Mattijsen)++ | src/core/IO/Path/Special.pm: IO::Path::Special -> IO::Special No need to inherit from IO::Path, so this is a better name |
|||
kudo/nom: d748851 | (Elizabeth Mattijsen)++ | src/core/IO/Path.pm: Fix IO::Path.open |
|||
kudo/nom: 6e01187 | (Elizabeth Mattijsen)++ | src/core/io_operators.pm: Fix open() and initialization of $*IN|OUT|ERR |
|||
lizmat | Mouq: earlier today there *was* a problem in HEAD for a while... | 22:29 | |
if I remember correctly... | |||
Mouq | lizmat: Ahh, you know what, I'm not on HEAD | ||
lizmat | ah... then all bets are off :-) | ||
Mouq | :) | ||
22:30
cosimo left,
cosimo joined
22:31
Hor|zon left
|
|||
dalek | kudo/nom: 8ca6460 | (Elizabeth Mattijsen)++ | / (5 files): Move IO::Special to the correct location |
22:31 | |
Mouq | perl6 -e'spurt "html/$/.html", "uhhh"' | 22:35 | |
Failed to open file: no such file or directory | |||
Which is LTA | |||
lizmat | yup | ||
checking... | |||
Mouq | lizmat++ for all this IO work in any case :) | ||
lizmat | ah, does the "html" directory exist ? | 22:37 | |
Mouq | lizmat: Oh, no, I did that in the Rakudo dir | 22:38 | |
carlin | m: say "html/$/.html" | 22:39 | |
camelia | rakudo-moar bc6de5: OUTPUT«html/.html» | ||
Mouq | carlin: Yeah.. | 22:40 | |
lizmat | carlin: still a valid file name | ||
but if the "html" directory does not exist | |||
Mouq | lizmat: The issue is that $/ was interpolating where I meant literal <html/$/.html> | ||
Either way, it's from the directory not existing | |||
lizmat | yup | 22:41 | |
LTA, but handling open() errors is already marked as "todo" in the code :-) | |||
Mouq | lizmat: Okay :) | 22:42 | |
Of course, on HEAD doc/htmlify.p6 SEGFAULTS :( | 22:50 | ||
lizmat tries | 22:51 | ||
dalek | c: bf302b8 | Mouq++ | htmlify.p6: Fix for last commit; add syntactics to search |
||
c: fdf4522 | Mouq++ | / (2 files): Fix issue with $/.html being attempted to be created |
|||
lizmat | Mouq: I get: ===SORRY!=== Error while compiling ./htmlify.p6 | 22:55 | |
Unsupported use of - as character range; in Perl 6 please use .. for range, for explicit - in character class, escape it or place it as the first or last thing | |||
at ./htmlify.p6:538 | |||
22:55
avuserow_ left
|
|||
Mouq | O_o | 22:56 | |
tony-o | who is carbin? | 22:57 | |
carlin | tony-o: me, thanks for merging my pull req | 22:58 | |
lizmat | Mouq: what VM are you on ? | 22:59 | |
Mouq | lizmat: Moar, gimme a few minutes to recompile | 23:00 | |
lizmat | I just found that I broke the parrot build | 23:01 | |
testing a fix now | |||
.oO( don't you hate VM specific code in the setting ) |
23:02 | ||
23:06
leont left
|
|||
lizmat | hmmm.. doesn't fix it... | 23:09 | |
23:10
jack_rabbit joined
|
|||
Mouq | Oh, I'm dumb... | 23:12 | |
I need to rebootstrap Panda. I think it used to give a better error than just segfaulting, though | 23:13 | ||
lizmat | maybe a reconfig is in order as well | ||
I added a file to the core | |||
dalek | kudo/nom: 7c86547 | (Elizabeth Mattijsen)++ | src/core/IO/Handle.pm: Make sure standard handles have proper encoding And we only need one .open |
||
Mouq | lizmat: yeah, `make install` complains and dies if you don't reconfigure after that | 23:14 | |
23:15
avuserow_ joined
|
|||
lizmat | if this doesn't fix the parrot build, I will have to look at it tomorrow | 23:15 | |
well, in ~ 8 hours from now | |||
dalek | c: 8ea4be9 | Mouq++ | htmlify.p6: Fix issues with .subst call |
23:16 | |
Mouq | Though, come to think of it I should probably just be using uri_escape | 23:18 | |
23:18
avuserow joined
|
|||
lizmat | building the restricted setting on parrot is broken atm | 23:18 | |
will look at it in ~ 8 hours | |||
need some sleep now | 23:19 | ||
good night, #perl6! | |||
& | |||
Mouq | 'night lizmat++ | ||
23:19
avuserow_ left
23:25
BenGoldberg joined
23:28
pepl left
23:30
cosimo left
23:31
cosimo joined
|
|||
[Coke] | timotimo: niecza also removed from daily runs | 23:46 | |
yoleaux | 21:10Z <japhb> [Coke]: What do you think of irclog.perlgeek.de/perl6/2014-10-05#i_9460362 through irclog.perlgeek.de/perl6/2014-10-05#i_9460432 ? |