»ö« 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> |