»ö« 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/Ra70SZ9ICO␤Unrecognized 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/zsJPeybRvA␤Two terms in a row␤at /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_REWT␤Two terms in a row␤at /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«12␤dugong␤»
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/_OoupbHq82␤Variable '$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«21␤5␤»
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/CxX0G6tvtw␤Variable '$re' is not declared␤at /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/2v6oWMy48G␤Undeclared 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 ?