»ö« 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:06 rurban1 joined 00:07 Ben_Goldberg joined
lue It's possible, though the question suddenly elevates from being just about lists to the entirety of Perl 6. "Are these new roles generally useful enough to be roles instead of methods?" 00:08
I think an .indefinite method to complement the .infinite method is the best course of action for what you ran into. Though I could be totally wrong :) 00:09
00:09 BenGoldberg left
TimToady in any case, 'for' should not be making its list eager merely because it isn't sure whether it's infinite or not 00:10
it *is* allowed to batch things up, which could have the same effect here
but I don't think that's what's happening, since it never returns if you raise the 5 to 10000000 00:11
diakopter maybe you didn't wait long enough [for it to return] 00:12
lue (one situation where indefinite ≠ infinite : my Int $a; [snip] for 1..$a { . What would/should happen here?) 00:13
TimToady if a gather can't produce at least one batch per second, I think the batches are too big 00:15
in this case, however, I think think the bug is that the batch size is equal to the list size :) 00:18
lue Is there a non-path-manipulating way to specify a path relative from the file's directory, not wherever the script was run from? ($*SWD or something?) 00:26
TimToady do you mean the executable file? 00:27
diakopter I'm executable
00:28 rurban1 left
TimToady you're the rank, not the file 00:28
diakopter well, joker, if not ace 00:29
TimToady looks around for a card file
lue as in, if a script in bin/ wants to access a file in share/ , I'd like to be able to do "$*SWD../share" or similar, instead of trying to find where the bin/ directory is and mess with the path resulting.
diakopter dewey decimal got flattened to a string hash 00:30
lue (because running the script in bin from bin/ or from ./ or from share/ all change the $*CWD and thus how relative paths work.)
TimToady nr: say $*EXECUTABLE_NAME
camelia rakudo-jvm e5fd34: OUTPUT«perl6-j␤»
..rakudo-parrot e5fd34: OUTPUT«./rakudo-inst/bin/perl6-p␤»
..niecza v24-98-g473bd20: OUTPUT«/home/p6eval/niecza/run/Niecza.exe␤»
diakopter heh
00:31 rurban1 joined
TimToady nr: say $*EXECUTABLE_NAME.basename 00:31
diakopter well, Niecza.exe isn't technically executable from that shell
camelia niecza v24-98-g473bd20: OUTPUT«Unhandled exception: Unable to resolve method basename in type Str␤ at /tmp/zHwQA_6d6X line 1 (mainline @ 3) ␤ at /home/p6eval/niecza/lib/CORE.setting line 4583 (ANON @ 3) ␤ at /home/p6eval/niecza/lib/CORE.setting line 4584 (module-CORE @ 576)…»
..rakudo-parrot e5fd34: OUTPUT«No such method 'basename' for invocant of type 'Str'␤ in block at /tmp/dp91pC7rQ3:1␤ in any at /tmp/dp91pC7rQ3:1␤ in any at gen/parrot/stage2/NQPHLL.nqp:1146␤ in any eval at gen/parrot/stage2/NQPHLL.nqp:1133␤ in any evalfiles at gen/par…»
..rakudo-jvm e5fd34: OUTPUT«No such method 'basename' for invocant of type 'Str'␤ in block at /tmp/S3asVAwor7:1␤ in any eval at gen/jvm/stage2/NQPHLL.nqp:1086␤ in any evalfiles at gen/jvm/stage2/NQPHLL.nqp:1292␤ in any command_eval at gen/jvm/stage2/NQPHLL.nqp:1196␤ in…»
TimToady nr: say $*EXECUTABLE_NAME.path.basename
camelia niecza v24-98-g473bd20: OUTPUT«Niecza.exe␤»
..rakudo-jvm e5fd34: OUTPUT«perl6-j␤»
..rakudo-parrot e5fd34: OUTPUT«perl6-p␤»
diakopter well, Niecza.exe isn't technically executable from that shell
TimToady r: say $*EXECUTABLE_NAME.path.dirname
camelia rakudo-parrot e5fd34: OUTPUT«No such method 'dirname' for invocant of type 'IO::Path'␤ in block at /tmp/PuZAHYr1nQ:1␤ in any at /tmp/PuZAHYr1nQ:1␤ in any at gen/parrot/stage2/NQPHLL.nqp:1146␤ in any eval at gen/parrot/stage2/NQPHLL.nqp:1133␤ in any evalfiles at gen…»
..rakudo-jvm e5fd34: OUTPUT«No such method 'dirname' for invocant of type 'IO::Path'␤ in block at /tmp/t4gMvb7Ik6:1␤ in any eval at gen/jvm/stage2/NQPHLL.nqp:1086␤ in any evalfiles at gen/jvm/stage2/NQPHLL.nqp:1292␤ in any command_eval at gen/jvm/stage2/NQPHLL.nqp:1196␤…»
TimToady hmm, not that variable 00:32
diakopter (not all linuces have the extension that makes it able to run .exe with mono)
lue (If I do have to find the path leading to the file and muck with it, that's fine, but I feel like $*SWD should be a common enough desire to exist.)
TimToady r: say $*PROGRAM_NAME.path.dirname
camelia rakudo-jvm e5fd34: OUTPUT«No such method 'dirname' for invocant of type 'IO::Path'␤ in block at /tmp/t7l5xid5Sx:1␤ in any eval at gen/jvm/stage2/NQPHLL.nqp:1086␤ in any evalfiles at gen/jvm/stage2/NQPHLL.nqp:1292␤ in any command_eval at gen/jvm/stage2/NQPHLL.nqp:1196␤…»
..rakudo-parrot e5fd34: OUTPUT«No such method 'dirname' for invocant of type 'IO::Path'␤ in block at /tmp/cV3XDO4X39:1␤ in any at /tmp/cV3XDO4X39:1␤ in any at gen/parrot/stage2/NQPHLL.nqp:1146␤ in any eval at gen/parrot/stage2/NQPHLL.nqp:1133␤ in any evalfiles at gen…»
lue r: say IO::Path.^methods
camelia rakudo-jvm e5fd34: OUTPUT«SPEC dir BUILD path parts basename directory volume Bridge Int succ pred IO open is-absolute is-relative absolute relative cleanup resolve parent child copy chmod contents f w accessed d e s r l z x modified changed new Str gist perl Numeric␤»
..rakudo-parrot e5fd34: OUTPUT«SPEC dir BUILD path parts basename directory volume Bridge Int succ pred IO open is-absolute is-relative absolute relative cleanup resolve parent child copy chmod contents d e f s l r w x z modified accessed changed new Str gist perl Numeric␤»
TimToady r: say $*PROGRAM_NAME.path.directory
camelia rakudo-parrot e5fd34, rakudo-jvm e5fd34: OUTPUT«/tmp␤» 00:33
TimToady there you go
lue TimToady++ . I'll go assign that to $*SWD just because :P
TimToady what is this 'S' of which you speak? 00:35
lue S = Script. I made it up.
00:35 fridim__ joined
lue (the SWD abbrv. that is) 00:35
TimToady but what if it's not a script? :P
lue I was thinking File Working Directory, but I figure $*FWD is not the most unambiguous of names :) 00:36
TimToady obviously it should be $*PWD...er...
actually, it should just be $*PROGRAM_PATH 00:37
:)
'path' being one of those words that means about 1.5 too many things in Unixland 00:38
lue or $*FPATH, because I don't feel like typing out two whole words for something like that, esp. considering $*CWD and $*PWD precedent. :)
We could go the sed route and just do $*YWD 00:39
TimToady but it does seem kinda wrongish to backderive the path from the name somehow
since the name probably had to be glued together from path components in an OS-dependant way in the first place... 00:40
lue I imagine the file's directory doesn't come up often in general, but writing P6 modules with external data sorta makes it necessary.
TimToady r: say $*PROGRAM_NAME.path.name
00:40 bluescreen100 joined
camelia rakudo-parrot e5fd34: OUTPUT«No such method 'name' for invocant of type 'IO::Path'␤ in block at /tmp/BIXqgKqa8K:1␤ in any at /tmp/BIXqgKqa8K:1␤ in any at gen/parrot/stage2/NQPHLL.nqp:1146␤ in any eval at gen/parrot/stage2/NQPHLL.nqp:1133␤ in any evalfiles at gen/pa…» 00:40
..rakudo-jvm e5fd34: OUTPUT«No such method 'name' for invocant of type 'IO::Path'␤ in block at /tmp/YEVimYjtGK:1␤ in any eval at gen/jvm/stage2/NQPHLL.nqp:1086␤ in any evalfiles at gen/jvm/stage2/NQPHLL.nqp:1292␤ in any command_eval at gen/jvm/stage2/NQPHLL.nqp:1196␤ i…»
TimToady r: say $*PROGRAM_NAME.path.Str 00:41
camelia rakudo-parrot e5fd34: OUTPUT«/tmp/yxN7MpfZKT␤»
..rakudo-jvm e5fd34: OUTPUT«/tmp/2tZuUTIc7s␤»
TimToady maybe $*PROGRAM and $*EXECUTABLE should be of type IO::Path, and we just pull the name out if we want it
lue rn: say $*PROGRAM_NAME.WHAT 00:43
camelia rakudo-parrot e5fd34, rakudo-jvm e5fd34, niecza v24-98-g473bd20: OUTPUT«(Str)␤»
TimToady r: my $*PROGRAM = $*PROGRAM_NAME.path; say "Usage: $*PROGRAM foo bar baz"
camelia rakudo-jvm e5fd34: OUTPUT«Usage: /tmp/c04XxfWVNm foo bar baz␤»
..rakudo-parrot e5fd34: OUTPUT«Usage: /tmp/Q3y32LyAIr foo bar baz␤»
TimToady since a path stringifies to the name anyway
lue TimToady: I agree. It's a bit surprising they're just Strs, actually. 00:44
TimToady r: my $*PROGRAM = $*PROGRAM_NAME.path; say $*PROGRAM.directory
camelia rakudo-parrot e5fd34, rakudo-jvm e5fd34: OUTPUT«/tmp␤»
00:44 bluescreen10 left
lue ($*PROGRAM has an IO::Path, and maybe change $*PROGRAM_NAME to be = ~$*PROGRAM. i.e. make $*PROGRAM the "primary" variable here.) 00:44
TimToady we're still a bit P5-braned, "Everything is really a string, though not quite as badly as Tcl" 00:45
TimToady likes it
gets rid of at least two unsightly underscores as well
lue I agree. I only recommended the FOO_NAME redefinition as a "backwards compatible" kind of thing, though I suspect that's not a big issue. 00:46
.oO(statement "use" "v6" ";"; statement "say" "\"hello world\"" ";"; ...)
00:48
TimToady we can deprecate the _NAME forms 00:49
lue Hm. TimToady: I'm not really liking the name $*EXECUTABLE for the perl6 executable being run. Feels too easily confusable with $*PROGRAM. Perhaps $*PERL6 or $*P6EXECUTABLE or something.
*nod* on deprecation
segomos currently running file 00:55
oops
TimToady well, should be more like $*MACHINE (virtual or not) 00:56
$*SHEBANG 00:57
01:00 jnap left
TimToady p5eval: $0 01:01
p5eval TimToady: /tmp/p5eval/jail/p5eval-5VKJ.pl
lue TimToady: not entirely sure someone looking for the perl6 program running the script is thinking in terms of (V)Ms, although I do admit it doesn't feel entirely out of place.
TimToady p5eval: #!/usr/bin/echo foo bar 01:02
p5eval TimToady: No output
TimToady $*INTERPRETER 01:03
to resurrect a perfectly good word
lue That sounds perfect. (Though $*COMPILER would be less characters... :D)
TimToady now I wonder if we need to distinguish the executable running as the compiler from the executable running as the interpreter, given we might do separate compilation of the main unit someday 01:05
should probably be $?COMPILER and $*INTERPRETER in that case... 01:06
01:08 BenGoldberg joined, Ben_Goldberg left
TimToady though $*VM probably covers the latter, albeit not as an IO::Path object 01:08
lue $*VM<Path> perhaps? 01:11
01:16 prevost joined
TimToady doesn't feel quite right, probably going with $*SHEBANG for now, since that #! path is precisely what leads one to the correct interpreter on Unix systems most of the time 01:17
01:18 prevost left
dalek ecs: 6cdd9f3 | larry++ | S (2 files):
change _NAME vars to IO::Path objects

  $*PROGRAM_NAME -> $*PROGRAM
  $*EXECUTABLE_NAME -> $?COMPILER or $*SHEBANG
01:19
01:23 jnap joined
dalek ecs: e982b42 | larry++ | S28-special-names.pod:
fix some IO methodname fossils
01:26
segomos TimToady: i always use #!/usr/bin/env perl - how is that going to resolve? 01:27
lue And I assume $*SHEBANG doesn't actually need a #! line to work, right :) 01:28
s/':)'/? :)/
TimToady well, /usr/bin/env is an egregious hack to introduce a security dependency on your PATH variable :) 01:30
especially if you put . at the front of it...
so I ignore the existence of that hack, branewisely-speaking 01:31
lue segomos: unless TimToady says otherwise after reading this statement, I would think $*SHEBANG doesn't use what's presented in the #! line 01:32
TimToady it should still be the actual executable located by env
lue learned of and has used the /usr/bin/env thing as a way to run the interp. in a location-independent fashion, though apparently just 'thing' works too... 01:33
TimToady I note that P5 successfully finds /usr/bin/perl even if you use the env trick 01:34
(and puts it into $^X)
you mean #!thing ? No, that doesn't work on most Unixen 01:36
segomos lue: ^ ah
lue huh. I could swear it worked. 01:37
(I've at least seen it, but never tried it)
TimToady you usually see it on scripts coming from Windows, where it doesn't handle #! at all anyway, so it's just documentation 01:39
unless, of course, your command interpreter has been taught to handle #! somehow since I last knew...
lue wonders if bash can be forced to handle it. 01:40
TimToady you also see #!perl there to keep Perl 5 happy, which wants to redispatch the #! for you if it doesn't contain "perl"
(which was a pre-env hack for systems that didn't know #!) 01:41
lue Whatever, I don't ever +x my scripts anyway, even if I add a shebang :) . Doesn't really affect me.
TimToady so much for the Uniform Access Principle :P 01:42
geekosaur you see it in perl scripts on non-Unix because perl only reads options from #! lines if the basename of the executable is "perl" possibly with underscores appended, and because perl can be built to do #! emulation on systems that don't have it and will then try to exec something else unless the #! executable name ends in "perl"
(again possibly with underscores, so you used to see a lot of replacement Perl executables named perl____ or such) 01:43
I dont think bash has builtin #! handling any more. csh did, via a hack of sorts (alias shell) 01:44
01:46 pecastro_ joined 01:48 pecastro left
lue uh, TimToady... how come you were able to just now update S19 four years ago? ;) github.com/perl6/specs/commit/6cdd...552c1d9R17 01:50
01:50 telex left
geekosaur change made N years ago, committed or pushed now? 01:51
git is weird that way
01:52 telex joined
lue geekosaur: I'm pretty sure that things new. I'm sure TimToady merely forgot to change the year there :) 01:52
lue & 01:56
dalek ecs: 2e989c7 | larry++ | S19-commandline.pod:
what's four years among friends?
01:59
02:18 Vlavv` left 02:23 tgt left 02:33 Vlavv` joined
colomon r: class A { has $.a; method b() { say @.a.perl; }; }; A.new.b; 02:42
camelia rakudo-parrot e5fd34, rakudo-jvm e5fd34: OUTPUT«().list␤»
colomon n: class A { has $.a; method b() { say @.a.perl; }; }; A.new.b;
camelia niecza v24-98-g473bd20: OUTPUT«(Any, ).list␤» 02:43
colomon :(
raydiak colomon: rt.perl.org/Public/Bug/Display.html?id=120620 02:50
02:51 Vlavv` left
TimToady r: class A { has $.a; method b() { say $.a.WHAT; }; }; A.new.b; 02:51
camelia rakudo-parrot e5fd34, rakudo-jvm e5fd34: OUTPUT«(Any)␤»
02:56 cognominal left 02:57 cognominal joined 02:58 xinming left, xinming joined
lue colomon: why does @.a even work? 03:03
colomon lue: that is the source of my :(
it was an inscrutable bug in my actual code.
nigh inscrutable, I guess I should say, because I did eventually figure it out. 03:04
lue oh, ok. I thought it was somehow doing the slightly wrong thing, and I missed the part of the spec that discussed it.
colomon if so, I missed it too. 03:05
03:05 xenoterracide joined
lue r: class A { has $!a; method b() { say @!a.perl; }; }; A.new.b; 03:07
camelia rakudo-parrot e5fd34: OUTPUT«===SORRY!=== Error while compiling /tmp/R0s5Z0SHzJ␤Attribute @!a not declared in class A␤at /tmp/R0s5Z0SHzJ:1␤------> class A { has $!a; method b() { say @!a⏏.perl; }; }; A.new.b;␤»
..rakudo-jvm e5fd34: OUTPUT«===SORRY!=== Error while compiling /tmp/_Pnl7kNYUk␤Attribute @!a not declared in class A␤at /tmp/_Pnl7kNYUk:1␤------> class A { has $!a; method b() { say @!a⏏.perl; }; }; A.new.b;␤»
lue That seems helpful, for debugging purposes.
03:13 Vlavv` joined 03:15 xenoterracide left, xenoterracide joined 03:20 xenoterracide left
lue r: my $z; my @a = <$ @ % &> X <$ @ % &>; for @a -> $L, $R { print "$L --- $R "; $z++; my $s = "class A$z \{ has $L.a; method b() \{ $R.a.perl; }; }; A$z.new.b;"; eval($s); CATCH { default {say "FAIL"} }; say "PASS" } 03:20
camelia rakudo-parrot e5fd34, rakudo-jvm e5fd34: OUTPUT«$ --- $ PASS␤$ --- @ PASS␤$ --- % PASS␤$ --- & PASS␤@ --- $ PASS␤@ --- @ PASS␤@ --- % PASS␤@ --- & PASS␤% --- $ PASS␤% --- @ PASS␤% --- % PASS␤% --- & PASS␤& --- $ PASS␤& --- @ PASS␤& --- % PASS␤& --- & PA…»
03:20 xenoterracide joined
lue colomon: it doesn't look good ^^^ 03:20
03:26 xenoterracide left
lue r: class Foo { has @.bar; method baz() { &.bar() } }; my $frobozz = { say "hi" }; Foo.new(:bar($frobozz)}.baz 03:28
camelia rakudo-jvm e5fd34: OUTPUT«===SORRY!=== Error while compiling /tmp/41gEWEehmy␤Unable to parse expression in argument list; couldn't find final ')' ␤at /tmp/41gEWEehmy:1␤------> z = { say "hi" }; Foo.new(:bar($frobozz)⏏}.baz␤ expecting…»
..rakudo-parrot e5fd34: OUTPUT«===SORRY!=== Error while compiling /tmp/fK5zWrtguc␤Unable to parse expression in argument list; couldn't find final ')' ␤at /tmp/fK5zWrtguc:1␤------> z = { say "hi" }; Foo.new(:bar($frobozz)⏏}.baz␤ expect…»
lue r: class Foo { has @.bar; method baz() { &.bar() } }; my $frobozz = { say "hi" }; Foo.new(:bar($frobozz)).baz
camelia ( no output )
lue r: class Foo { has @.bar; method baz() { &.bar[0]() } }; my $frobozz = { say "hi" }; Foo.new(:bar($frobozz)).baz
camelia rakudo-parrot e5fd34, rakudo-jvm e5fd34: OUTPUT«hi␤»
lue This is terrible. Why am I smiling? :D 03:29
Could Grammar.nqp:1817 be at fault here, somehow? 03:33
03:38 ssutch joined 03:39 rurban1 left
colomon which Grammar.nqp? 03:39
afk # bedtime 03:40
BenGoldberg n: class A { has @.a = (1,2,3); method b() { say %.a[1]; }; }; A.new.b;
camelia niecza v24-98-g473bd20: OUTPUT«Unhandled exception: Unmatched key in Hash.LISTSTORE␤ at /home/p6eval/niecza/lib/CORE.setting line 396 (Any.hash @ 3) ␤ at <unknown> line 0 (ExitRunloop @ 0) ␤ at /tmp/AIpVUDEUEd line 1 (A.b @ 4) ␤ at /tmp/AIpVUDEUEd line 1 (mainline @ 6) …»
03:40 denysonique_ joined 03:41 denysonique_ is now known as denysonique
lue colomon: Rakudo's of course :) 03:43
r: class A { has @.a = (1,2,3); method b() { say %.a[1]; }; }; A.new.b;
camelia rakudo-jvm e5fd34: OUTPUT«Odd number of elements found where hash expected␤ in method STORE at gen/jvm/CORE.setting:8786␤ in method hash at gen/jvm/CORE.setting:1493␤ in block at /tmp/0Hb9CcaRCF:1␤ in any eval at gen/jvm/stage2/NQPHLL.nqp:1086␤ in any evalfiles at ge…»
..rakudo-parrot e5fd34: OUTPUT«Odd number of elements found where hash expected␤ in method STORE at gen/parrot/CORE.setting:8811␤ in method hash at gen/parrot/CORE.setting:1504␤ in method b at /tmp/pfm5A_cwIQ:1␤ in block at /tmp/pfm5A_cwIQ:1␤ in any at /tmp/pfm5A_cwIQ…»
lue r: class A { has @.a = 1,2,3; method b() { say %.a[1]; }; }; A.new.b;
camelia rakudo-jvm e5fd34: OUTPUT«Odd number of elements found where hash expected␤ in method STORE at gen/jvm/CORE.setting:8786␤ in method hash at gen/jvm/CORE.setting:1493␤ in block at /tmp/7YikQimADb:1␤ in any eval at gen/jvm/stage2/NQPHLL.nqp:1086␤ in any evalfiles at ge…»
..rakudo-parrot e5fd34: OUTPUT«Odd number of elements found where hash expected␤ in method STORE at gen/parrot/CORE.setting:8811␤ in method hash at gen/parrot/CORE.setting:1504␤ in method b at /tmp/fO1Rpimwec:1␤ in block at /tmp/fO1Rpimwec:1␤ in any at /tmp/fO1Rpimwec…»
lue r: class A { has @.a = 1,2,3,4; method b() { say %.a[1]; say @.a[1] }; }; A.new.b;
camelia rakudo-jvm e5fd34: OUTPUT«Index out of range. Is: 1, should be in 0..0␤ in method b at /tmp/Yn9uQ5mmiG:1␤ in block at /tmp/Yn9uQ5mmiG:1␤ in any eval at gen/jvm/stage2/NQPHLL.nqp:1086␤ in any evalfiles at gen/jvm/stage2/NQPHLL.nqp:1292␤ in any command_eval at gen/jvm/…»
..rakudo-parrot e5fd34: OUTPUT«Index out of range. Is: 1, should be in 0..0␤ in method gist at gen/parrot/CORE.setting:12004␤ in method gist at gen/parrot/CORE.setting:1014␤ in sub say at gen/parrot/CORE.setting:12904␤ in method b at /tmp/BDgyG4wPs1:1␤ in block at /tmp…»
lue r: class A { has @.a = 1,2,3,4; method b() { say %.a[1]; say @.a[0] }; }; A.new.b;
camelia rakudo-jvm e5fd34: OUTPUT«Index out of range. Is: 1, should be in 0..0␤ in method b at /tmp/ftlfxzbx8s:1␤ in block at /tmp/ftlfxzbx8s:1␤ in any eval at gen/jvm/stage2/NQPHLL.nqp:1086␤ in any evalfiles at gen/jvm/stage2/NQPHLL.nqp:1292␤ in any command_eval at gen/jvm/…» 03:44
..rakudo-parrot e5fd34: OUTPUT«Index out of range. Is: 1, should be in 0..0␤ in method gist at gen/parrot/CORE.setting:12004␤ in method gist at gen/parrot/CORE.setting:1014␤ in sub say at gen/parrot/CORE.setting:12904␤ in method b at /tmp/D39dqBRcy7:1␤ in block at /tmp…»
lue r: class A { has @.a = 1,2,3,4; method b() { say %.a<1>; say @.a[0] }; }; A.new.b;
camelia rakudo-parrot e5fd34, rakudo-jvm e5fd34: OUTPUT«2␤1␤»
BenGoldberg Now that's just odd ;) 03:45
lue n: my $z; my @a = <$ @ % &> X <$ @ % &>; for @a -> $L, $R { print "$L --- $R "; $z++; my $s = "class A$z \{ has $L.a; method b() \{ $R.a.perl; }; }; A$z.new.b;"; eval($s); CATCH { default {say "FAIL"} }; say "PASS" }
camelia niecza v24-98-g473bd20: OUTPUT«$ --- $ PASS␤$ --- @ PASS␤$ --- % FAIL␤$ --- & PASS␤@ --- $ PASS␤@ --- @ PASS␤@ --- % PASS␤@ --- & PASS␤% --- $ PASS␤% --- @ PASS␤% --- % PASS␤% --- & PASS␤& --- $ PASS␤& --- @ PASS␤& --- % FAIL␤& --- & PASS␤»
lue Niceza's just as bad!
n: my $z; my @a = <$ @ % &> X <$ @ % &>; for @a -> $L, $R { print "$L --- $R "; $z++; my $s = "class A$z \{ has $L.a; method b() \{ $R.a.perl; }; }; A$z.new.b;"; eval($s); CATCH { default {say "FAIL"} }; say "PASS" }
camelia niecza v24-98-g473bd20: OUTPUT«$ --- $ PASS␤$ --- @ PASS␤$ --- % FAIL␤$ --- & PASS␤@ --- $ PASS␤@ --- @ PASS␤@ --- % PASS␤@ --- & PASS␤% --- $ PASS␤% --- @ PASS␤% --- % PASS␤% --- & PASS␤& --- $ PASS␤& --- @ PASS␤& --- % FAIL␤& --- & PASS␤»
lue P: my $z; my @a = <$ @ % &> X <$ @ % &>; for @a -> $L, $R { print "$L --- $R "; $z++; my $s = "class A$z \{ has $L.a; method b() \{ $R.a.perl; }; }; A$z.new.b;"; eval($s); CATCH { default {say "FAIL"} }; say "PASS" }
camelia pugs: OUTPUT«$ --- @ PASS␤% --- & PASS␤»
lue wuh
P: my $z; my @a = (<$ @ % &> X <$ @ % &>); for @a -> $L, $R { print "$L --- $R "; $z++; my $s = "class A$z \{ has $L.a; method b() \{ $R.a.perl; }; }; A$z.new.b;"; eval($s); CATCH { default {say "FAIL"} }; say "PASS" }
camelia pugs: OUTPUT«$ $ --- $ @ PASS␤$ % --- $ & PASS␤@ $ --- @ @ PASS␤@ % --- @ & PASS␤% $ --- % @ PASS␤% % --- % & PASS␤& $ --- & @ PASS␤& % --- & & PASS␤»
BenGoldberg rn: my $z; my @a = <$ @ % &> X <$ @ % &>; for @a -> $L, $R { print "$L - $R "; $z++; my $s = "class A$z \{ has $L.a; method b() \{ $R.a.perl; }; }; A$z.new.b;"; eval($s); CATCH { default {say "FAIL"} }; say "PASS" } 03:46
[22:44] <+camelia> niecza v24-98-g473bd20: OUTPUT«$ --- $ PASS␤$ --- @ PASS␤$ --- % FAIL␤$ --- & PASS␤@ --- $ PASS␤@ --- @ PASS␤@ --- % PASS␤@ --- & PASS␤% --- $ PASS␤% --- @ PASS␤% --- % PASS␤% --- & PASS␤& --- $ PASS␤& --- @ PASS␤& --- % FAIL␤& --- & PASS␤»
camelia rakudo-parrot e5fd34, rakudo-jvm e5fd34: OUTPUT«$ - $ PASS␤$ - @ PASS␤$ - % PASS␤$ - & PASS␤@ - $ PASS␤@ - @ PASS␤@ - % PASS␤@ - & PASS␤% - $ PASS␤% - @ PASS␤% - % PASS␤% - & PASS␤& - $ PASS␤& - @ PASS␤& - % PASS␤& - & PASS␤»
..niecza v24-98-g473bd20: OUTPUT«$ - $ PASS␤$ - @ PASS␤$ - % FAIL␤$ - & PASS␤@ - $ PASS␤@ - @ PASS␤@ - % PASS␤@ - & PASS␤% - $ PASS␤% - @ PASS␤% - % PASS␤% - & PASS␤& - $ PASS␤& - @ PASS␤& - % FAIL␤& - & PASS␤»
BenGoldberg Well, Rakudo passes them all, but niecza fails a few 03:47
lue BenGoldberg: yeah, just noticed. Ideally only four of those pass 03:48
lue goes to test all the sigils, and maybe draw some diagrams
s/sig/twig/ 03:49
BenGoldberg n: my $z; my @a = <$ @ % &> X <$ @ % &>; for @a -> $L, $R { next if $L eq $R; print "$L --- $R "; $z++; my $s = "class A$z \{ has $L.a; method b() \{ $R.a.perl; }; }; A$z.new.b;"; eval($s); CATCH { default {say "FAIL"} }; say "PASS" }
camelia niecza v24-98-g473bd20: OUTPUT«$ --- @ PASS␤$ --- % FAIL␤$ --- & PASS␤@ --- $ PASS␤@ --- % PASS␤@ --- & PASS␤% --- $ PASS␤% --- @ PASS␤% --- & PASS␤& --- $ PASS␤& --- @ PASS␤& --- % FAIL␤»
BenGoldberg rn: my $z; my @a = <$ @ % &> X <$ @ % &>; for @a -> $L, $R { next if $L eq $R; $z++; my $s = "class A$z \{ has $L.a; method b() \{ $R.a.perl; }; }; A$z.new.b;"; eval($s); CATCH { default {say "$L - $R: FAIL"} }; } 03:50
camelia ( no output )
..niecza v24-98-g473bd20: OUTPUT«$ - %: FAIL␤& - %: FAIL␤»
BenGoldberg Curious that those two should fail for niecza, but not any others 03:51
lue BenGoldberg: exactly. The inter-implementation inconsistency on being wrong is quite amazing.
BenGoldberg P: my $z; my @a = <$ @ % &> X <$ @ % &>; for @a -> $L, $R { $z++; my $s = "class A$z \{ has $L.a; method b() \{ $R.a.perl; }; }; A$z.new.b;"; eval($s); CATCH { default {say "$L - $R: FAIL"} }; } 03:52
camelia ( no output )
BenGoldberg P: my $z; my @a = <$ @ % &> X <$ @ % &>; for @a -> $L, $R { $z++; my $s = "class A$z \{ has $L.a; method b() \{ $R.a.perl; }; }; A$z.new.b;"; eval($s); CATCH { default {}; say "$L - $R: PASS" }; } 03:53
camelia ( no output )
TimToady well, you have to know two things 03:54
the sigil on an attribute declaration is just documentation
and the sigil on @.foo() really means @(self.foo()) 03:55
everything else follows from that
lue o.o
I suspected some $() interpretation was going on, but I didn't think it was *intentional*. 03:56
TimToady arguably the sigil on the 'has' should matter a bit more
and enforce Positional or Associative
but certainly the other one is intentional; the $.foo syntax is sugar for a virtual method call 03:57
and methods don't have sigils
lue preflex: tell colomon apparently, it's intentional: irclog.perlgeek.de/perl6/2013-11-28#i_7926696
preflex Consider it noted.
lue TimToady: well, I suspect they have the & sigil, at least :) 03:58
TimToady shh, it's a sekrit
lue All of a sudden I don't like $.foo syntax. My brain is having a fit seeing $.foo as not a variable+twigil, but a fancy method call. 03:59
[ safe to say that behavior is a very big WAT for me :) ] 04:00
TimToady this is mentioned in the spec at S12:746 04:01
synopsebot Link: perlcabal.org/syn/S12.html#line_746
TimToady lue: the confusion is intentional as well :)
see the mention a day or two ago of "Uniform Access Principle" 04:02
you shouldn't be able to tell from externally whether it's a variable or a method pretending to be a variable 04:03
because that makes it very, very difficult to refactor your classes
and this is a widespread principle throughout Perl 6: A synthetic X should behave just like a built-in X. 04:04
BenGoldberg r: say 1,2 X 3,4
camelia rakudo-parrot e5fd34, rakudo-jvm e5fd34: OUTPUT«1 3 1 4 2 3 2 4␤»
TimToady the built-in functions are built-in only by virtue of being in an outer lexical scope
lue r: for 1.0, 1.1 ... 2 { say $_; say .floor; say (@.floor).perl } 04:05
camelia rakudo-jvm e5fd34: OUTPUT«===SORRY!=== Error while compiling /tmp/FI5WoYk8xV␤Variable @.floor used where no 'self' is available␤at /tmp/FI5WoYk8xV:1␤------> ... 2 { say $_; say .floor; say (@.floor⏏).perl }␤ expecting any of:␤ …»
..rakudo-parrot e5fd34: OUTPUT«===SORRY!=== Error while compiling /tmp/LRHBeU4u9G␤Variable @.floor used where no 'self' is available␤at /tmp/LRHBeU4u9G:1␤------> ... 2 { say $_; say .floor; say (@.floor⏏).perl }␤ expecting any of:␤ …»
lue There's a part of me that's getting very eager to disallow the use of $.foo sugar in classes, beyond the has declaration. I'm really not handling this shift in perceptions well :P 04:06
r: class Foo { method bar { 3 }; method baz { say $.bar } }; Foo.baz # just checking 04:07
TimToady yes, it depends exactly on whether your method wants to speak to the internal API or the external API of the object
camelia rakudo-parrot e5fd34, rakudo-jvm e5fd34: OUTPUT«3␤»
TimToady when you say
BenGoldberg Are there (will there be) places where perl6's optimizer can turn code written as 'say $.foo' into 'say $!foo' ?
TimToady $!foo, you're speaking to the internal, and $.foo, to the external
BenGoldberg: yes, if you haven't derived from the class, or declared it to be left 'open' 04:08
BenGoldberg Ok :)
TimToady see S12:2184 04:09
synopsebot Link: perlcabal.org/syn/S12.html#line_2184
TimToady r: for 1.0, 1.1 ... 2 { my \self = $_; say $_; say .floor; say (@.floor).perl } # curious
camelia rakudo-jvm e5fd34: OUTPUT«===SORRY!=== Error while compiling /tmp/FHFjd0y_i1␤Variable @.floor used where no 'self' is available␤at /tmp/FHFjd0y_i1:1␤------> f = $_; say $_; say .floor; say (@.floor⏏).perl } # curious␤ expecting any …»
..rakudo-parrot e5fd34: OUTPUT«===SORRY!=== Error while compiling /tmp/OGscxVmw4L␤Variable @.floor used where no 'self' is available␤at /tmp/OGscxVmw4L:1␤------> f = $_; say $_; say .floor; say (@.floor⏏).perl } # curious␤ expecting a…»
TimToady heh
the error message lies
it means 'where no invocant' 04:10
lue TimToady: I just think having wildly different rules for one twigil (namely, "with this twigil, the sigil doesn't matter") feels wrong. Almost like C<has $.foo;> would be better writen as C<has $!foo :public;> 04:11
in terms of showing how it affects the declaration, that is.
lue realizes it's nigh-impossible to change such a basic element of Perl 6 at this late stage; he just feels like venting his view-shift steam :) 04:12
04:12 Entonian joined
BenGoldberg On a more positive note, I recently added rosettacode.org/wiki/Sokoban#Perl to show how Sokoban puzzles can be solved in perl (perl5, that is). 04:14
Anyone interested in adding a perl6 solution to the task? And, can you make it go faster than my code? :)
BenGoldberg hopes that a perl6 solution can go faster 04:15
p56: vec($_, 1, 4) 04:17
camelia p5-to-p6 : OUTPUT«vec($_, 1, 4)␤»
BenGoldberg r: my $x = ''; vec($x, 0, 8) = 10; say $x 04:18
camelia rakudo-jvm e5fd34: OUTPUT«===SORRY!=== Error while compiling /tmp/guFhrduJzi␤Undeclared routine:␤ vec used at line 1. Did you mean '&sec'?␤␤»
..rakudo-parrot e5fd34: OUTPUT«===SORRY!=== Error while compiling /tmp/_UDQiIMvio␤Undeclared routine:␤ vec used at line 1. Did you mean '&sec'?␤␤»
BenGoldberg G'night, time for me to go to bed. 04:19
lue briefly imagines replacing $./@./%./&.foo with a generic ¢.foo. ¢ for ¢urrent invocant or similar, obviously :) 04:21
04:23 BenGoldberg left 04:28 Entonian left 04:35 genehack joined 04:46 jnap left 04:50 xinming left, xinming joined 04:57 preflex left 04:58 preflex_ joined, ChanServ sets mode: +v preflex_, xinming left, xinming joined, preflex_ is now known as preflex 05:07 rurban1 joined
dalek p: a36ba3e | dwarring++ | examples/rubyish/t/inheritance.t:
typo. also theta => radius (rusty math)
05:14
p: 18f2bc5 | dwarring++ | examples/rubyish/rubyish.nqp:
reorder rubyish grammar. comments and whitespace now last
05:17 jnap joined 05:21 jnap left 05:23 [Sno] left 05:30 robinsmidsrod joined 05:32 xenoterracide joined 05:37 fridim__ left 06:01 SamuraiJack_ joined 06:06 FROGGS left 06:10 xinming left, xinming joined 06:13 darutoko joined 06:18 jnap joined 06:23 ssutch left, jnap left
moritz \o 06:25
06:25 xenoterracide left 06:31 [Sno] joined 06:38 rurban1 left 06:42 SamuraiJack_ left 06:43 SamuraiJack joined 07:03 brrt joined 07:07 xenoterracide joined 07:18 jnap joined 07:23 jnap left 07:39 rurban1 joined 07:43 rurban1 left 07:44 xinming left, xinming joined 07:48 kaleem joined 07:51 SamuraiJack_ joined 07:55 SamuraiJack left 07:59 bgwilf joined 08:12 AW3i joined 08:13 zakharyas joined 08:14 nnunley left 08:19 jnap joined 08:20 jnap1 joined, jnap left 08:21 kivutar joined 08:22 jnap joined 08:23 jnap1 left, dmol joined 08:24 AW3i left 08:27 jnap left 08:35 xenoterracide left 08:36 xenoterracide joined 08:39 FROGGS joined
bgwilf logout 08:45
08:46 brrt left
dalek kudo/moar-support: 3c10a62 | (Tobias Leich)++ | src/vm/moar/ (2 files):
stub p6staticouter
08:59
09:00 xinming left, xinming joined
dalek kudo/moar-support: 5ffcf7f | (Tobias Leich)++ | src/vm/moar/ (2 files):
stub p6setautothreader
09:02
raydiak thanks for all the help, #perl6: cyberuniverses.com/pray/#pray-news-20131127 09:06
FROGGS raydiak++ 09:07
raydiak :) 09:08
FROGGS nice post, and nice renderings :)
raydiak thanks...next one will be quite a bit shinier...post after that I hope is when I let the code into the wild 09:10
09:11 rindolf joined
moritz raydiak++ 09:11
.oO( "I didn't release the code, I let it escape" )
09:12
diakopter renames p6 to The Krakon 09:13
raydiak
.oO( "I hope it decides to release me as easily" )
diakopter er, Kraken
raydiak JVM made me very happy today, if it wasn't obvious :) 09:16
moritz raydiak: would you like to write a post about pray for the Perl 6 advent calendar?
raydiak moritz: sure, I'd love to! 09:17
moritz raydiak: you can claim a day in github.com/perl6/mu/blob/master/mi...3/schedule (either you tell me which one, and I enter it for you, or you tell me your github user name, and I give you a commit bit) 09:18
raydiak: and then I need your email address so that I can invite you to the blog 09:19
raydiak: I'm very much looking forward to your post
raydiak: I've given you commit access on github, assuming that your user name there is also 'raydiak' 09:21
raydiak moritz: let me get back to you tomorrow...my online identity is a jumbled fragmented mess, and I'd like to consolidate everything, so e-mails, usernames, etc match...but it's 1:30 AM my time, and I'm not up to messing with mail server configs right now :P
moritz: yes, that's me
moritz raydiak: ok, no hurry
and sleep well :-) 09:22
raydiak moritz: thanks :) 09:23
09:23 jnap joined
raydiak g'night/morning #perl6 o/ 09:24
09:27 jnap left
jnthn raydiak++ # nice blog post :) 09:28
09:34 FROGGS left
diakopter WHAR IS TADZIK; WHAR IS TADZIK 09:46
um, ww
09:50 tgt joined
jnthn So in December I gotta give a talk on invokedynamic. So I may spend some time next week pimping out our usage of it on Rakudo JVM / NQP JVM a bit. Mebbe I can get things a little faster... :) 09:52
.oO( This is where I end up spending my time writing code and then have to do slides last minute. ain't it... )
09:53
nwc10 where is your talk? And where will the photos used in it be from? 09:57
or is the latter "Wait and see"?
jnthn ooh, good question on the latter 10:01
I think I've still got some Croatia ones to use :)
Talk is at buildstuff.lt/
hoelzro come, 6ers! upvote: www.reddit.com/r/perl/comments/1rmz...in_perl_6/ 10:07
raydiak++ # doing cool stuff in Perl 6
masak good antenoon, #perl6 10:08
hoelzro ahoy masak
webmind hoelzro, don't have reddit
hoelzro fair enough
it *is* kinda evil.
;)
jnthn o/ masak 10:09
webmind hoelzro, never had a reason for it 10:10
10:10 rindolf left 10:21 pecastro_ is now known as pecastro 10:22 ssutch joined 10:24 jnap joined, ssutch left 10:28 jnap left 10:31 bgwilf left
tadzik whar whar 10:32
masak thar thar 10:38
anyone against me just (as per usual) claiming 4-ish slots in github.com/perl6/mu/blob/master/mi...3/schedule ? 10:39
nwc10 Mrs masak? :-) 10:41
masak :P
don't think so, no.
hoelzro so I'm looking at the sources for grammar-debugger 10:44
and I see this overriding of find_method returning a -> $c, |args 10:45
$c is the invocant, right?
10:46 hummeleB1 joined
dalek : 375ad2e | (Carl Mäsak)++ | misc/perl6advent-2013/schedule:
claimed slots 2, 9, 15 and 22

Let me also advertise my availability as substitute for any slot that remains empty, or author that becomes unavailable at the last minute. I'll do my best to stay one draft ahead to make this possible.
10:48
masak let me also extend my hope that, to whatever degree possible, the 24 slot be done by TimToady. ;)
mathw o/ morning 10:53
10:53 ssutch joined 10:58 kaleem left
masak ooh, clojure has something very much like whatever blocks: -> $x { $x + 3 } is written (fn [x] (+ x 3)) in clojure -- but it also has the * + 3 form as #(+ % 3) 10:58
hoelzro hmm 11:01
jnthn hoelzro: yes, $c is. And it's called $c to be short for cursor :)
hoelzro so if I define a module with EXPORTHOW::<grammar> set to a meta object, I override the meta object used when creating grammars in any importing unit, right?
ah, that makes sense!
jnthn hoelzro: Correct.
hoelzro: Note that it works leixcally too :)
hoelzro I take it I can't create my own keywords that way? ex. EXPORTHOW::<myclass> = RobsClassHOW? 11:02
neat =)
jnthn grammar IAmNormal { }; { use HoelzGramamrz; gramamr IAmDifferent { } }
hoelzro: Not *yet* but I've spec'd a way...just not implemented it yet.
hoelzro damn
I was hoping I'd have a cool entry for the advent calendar =/ 11:03
jnthn I need it for my secret plan to write "use Actors;" module so you can implement the actor pattern with "actor Thingy {...}" ;)
hoelzro: Well, we can always try to get it implemented... :)
hoelzro hehe 11:04
ENOTIME and ELACKOFEXPERIENCE for me
I'm spending my Perl 6 tuits as of late by just reading existing Perl 6 code so I can get a better feel for the language
jnthn wonders how many people in the world have experience of writing meta-programming mechanisms that declare new keywords on import... :P 11:05
.oO( oh hai, lispers... )
timotimo has by now seen much more NQP than perl6 :\ 11:13
i should get my feet wet in an actual project written in perl6
is somebody already working on tclc? it seems like something simple enough for me to implement 11:14
the first tclc is in line 3340 :D 11:15
worst case i'll stub the implementation via substr + tc :P 11:16
arnsholt timotimo: Don't be sad about that. At this point, I think I've seen (and written!) more NQP C code than Perl 6 code =)
timotimo heh :)
11:23 [Sno] left 11:24 [Sno] joined 11:25 jnap joined 11:30 jnap left
mathw masak: those Clojure anonymous function macros are really handy sometimes 11:37
masak: one tends to find that Lisp's anonymous function syntax is a little weighty, and they solve that problem for the simple cases 11:38
...actually a lot like whatever blocks!
arnsholt Yeah, I immediately started pondering how it'd be implemented in CL 11:39
mathw (defmacro ... :P
arnsholt The Clojure syntax should be more or less reproducible as a reader macro I think
mathw You could probably come up with something similar I would've thought
arnsholt defmacro is the other option
11:39 FROGGS[mobile] joined
mathw but I don't really know anything about CL macros 11:39
I find CL quite unwieldy and confusing 11:40
arnsholt But with a reader macro I think you can make it just something like #*(+ % 5)
mathw It has a kitchen sink feeling to it
arnsholt CL is the only Lisp I know how to actually use, since we used it for a few courses I took
masak mathw: to me, they aren't a lot *like* whatever blocks, they *are* whatever blocks ;) 11:42
arnsholt Things like reader macros are kinda neat though. Makes parsing and even lexing really complicated, but lets you do some neat stuff 11:43
masak mathw: ...with an extra up-front '#' warning.
mathw masak: I guess they are. I tend to think there's less magic going on, but then I actually don't know how a Perl 6 parser figures out what to do with a whatever block 11:45
masak mathw: that's a really good question. 11:49
mathw: it... somehow finds the innermost surrounding expression, I guess.
mathw yeah, so in Clojure there's a lot less magic going on 11:53
the macro phase expands it out to a (fn [x] ...) anyway
arnsholt The most important difference between a whatever block and the Clojure thing is the syntax I think 11:56
12:00 ssutch left, Alina-malina left, Alina-malina joined
masak in Perl 6, the limit of the whatever block is implicit. 12:02
github.com/perl6/specs/commit/0f9d...8a48a3fe2b # um... 12:08
p: my @r = map { .^name }, *; .say for @r 12:09
camelia rakudo-parrot e5fd34: OUTPUT«(timeout)»
masak lizmat: is this new form of &map syntactically detected? if it isn't, what happens if I have an array @input with a single Whatever object in it, and pass it to &map ? 12:10
we typically don't have '*' mean "an infinite supply of lazy values". 12:11
p: my @r = map { 1 }, *; .say for @r 12:12
camelia rakudo-parrot e5fd34: OUTPUT«(timeout)»
masak p: say "hosed?"
camelia rakudo-parrot e5fd34: OUTPUT«hosed?␤»
masak ...apparently not.
by the way, is irclog.perlgeek.de/perl6/2013-11-26#i_7918703 as sarctastic as my reading of it indicates? 12:14
lizmat: if it *is* syntactically detected, why are we combining a CORE function and a syntactic form into one concept/term? 12:15
I guess my main problem is that I don't clearly see the unification attempted here. 12:20
jnthn masak: It's going away in favor of lazy loop { ... } iirc 12:23
masak it may be going away, but it's not gone yet. 12:26
moritz \o
masak it's still in S32/Containers.pod, L350.
12:26 jnap joined
masak moritz! \o/ 12:26
12:27 Alina-malina left
jnthn masak: Well, you have a commit bit too :P 12:29
masak trouble is, I feel behind on backlogging, so I don't have a very good perspective. 12:30
in particular, I know nothing about this 'lazy loop { ... }' of yours.
jnthn Well, that's jsut using stuff that's been in spec for years :P
12:30 jnap left
jnthn While Rakudo doesn't yet implement it, all the loop constructs can produce values. 12:31
12:31 Alina-malina joined 12:33 xenoterracide left 12:43 Gothmog_ joined 12:51 rurban1 joined 12:55 atroxaper joined
frettled masak: your backlog is backlogged? 12:55
moritz backlog is clogged 12:56
frettled there's a clogback in the backlog 12:57
But yeah, I have problems parsing the backlogs these days :(
jnthn frettled: Could try using a Perl 6 grammar for that... 12:59
moritz if you want an easily parsable backlog, you can send an Accept: application/json header to the IRC logs 13:00
and you'll get JSON back
13:02 FROGGS joined 13:05 hummeleB1 left
nwc10 oh, interesting. Is that smaller than the rendered page? 13:11
frettled moritz: that's cute :) 13:17
… and THEN we could parse it with a Perl 6 grammar :D 13:18
moritz nwc10: lots smaller 13:19
like a factor 5 to 10
dalek p: 34ee80e | (Timo Paulssen)++ | src/vm/moar/QAST/QASTOperationsMAST.nqp:
implement tclc as substr + tc/lc + concat.
13:21
nwc10 go for it - parse the JSON into HTML using Perl 6 13:27
13:27 jnap joined
nwc10 er, parse and format ... 13:27
dalek p: 2fa041d | (Tobias Leich)++ | src/vm/moar/QAST/QASTRegexCompilerMAST.nqp:
stub QAST::MASTRegexCompiler.uniprop
13:28
13:32 jnap left 13:35 ajr joined 13:36 ajr is now known as Guest62197, Guest62197 is now known as ajr_
timotimo moritz: chrome suggests you enable gzip compression for the irclog to get about two thirds of the data gone and giving style.css, camelia.png, jquery.min.js and dynamic.js cache expiration data :) 13:37
also, Cache-Control: public for camelia.png 13:38
13:40 tgt left
masak frettled: yeah, $life is intervening (in mostly good ways), and I'm way behind on backlogging. 13:46
frettled: and my IRC presence is weaker than usual.
moritz the IRC is weak in you! 13:56
masak aye.
masak .oO( mIRCichlorians )
daxim that's probably the most groanworthy this month 13:58
masak you're welcome. 14:02
14:13 kaare_ joined
dalek p: 753d879 | (Timo Paulssen)++ | src/vm/moar/QAST/QASTRegexCompilerMAST.nqp:
implement uniprop on moarvm.
14:16
14:18 lizmat joined
lizmat greets #perl6 from somewhere in the Peak district 14:18
hoelzro ahoy lizmat 14:19
FROGGS hi lizmat
lizmat hoelzro, FROGGS o/
jnthn lizmat: If you drink just the right amount and hack, it'll be the Ballmer Peak district 14:22
timotimo the thing about the ballmer peak is that if you barely miss it, you're much worse off ... 14:23
dalek kudo/moar-support: 41d5e28 | (Tobias Leich)++ | src/vm/moar/ (2 files):
stub p6shiftpush
14:25
14:26 nnunley joined
jnthn p6shitfpush is quite easy, iirc :) 14:26
nwc10 easy for you, or easy for mere mortals?
FROGGS haha shit pfusch! 14:27
jnthn bah, typing fail :P
FROGGS (pfusch might only be funny in german) 14:28
dalek : 5e3894b | timo++ | misc/perl6advent-2013/schedule:
claim day 17 for a heroic tale of a fledgling contributor growing up

or something like that
14:28 jnap joined
jnthn FROGGS: What's it mean? 14:28
timotimo hahaha
FROGGS like messing something up
when building it
jnthn How appropriate :P
FROGGS hehe, yeah
masak .oO( software development, at its worst, is just a bunch of shit pfushing )
timotimo yeah, pfusch is like when you get a chair built and you later find out it is made out of cardboard instead of wood :P 14:29
FROGGS *g*
timotimo the way i use it, pfusch is usually a result of either incompetence or wanting to lower cost and then trying to get away with it
moritz yes, that's pretty much it
timotimo sometimes it's called "pfusch am werk" 14:30
jnthn Anyway, *shiftpush* is not too hard; should be mostly calls to MVM_repr_push_o and MVM_repr_shift_o or so 14:31
timotimo and p6arrfindtypes?
:)
MVM_repr_arr, MVM_repr_find and MVM_repr_types i bet! :P 14:32
14:32 jnap left
jnthn I think that one is just indexing 14:32
Overheard while teaching: "Maybe I shouldn't call this database column 'drop'..." 14:33
timotimo ooooooh :D
dalek kudo/moar-support: 3e1b45e | (Tobias Leich)++ | src/vm/moar/ (2 files):
stub p6arrfindtypes
14:34
lizmat jnthn: no alcohol just yet, and no programming either, just late lunch in a hobitton like establishment 14:35
jnthn lizmat: nice :)
lizmat (with free wifi ;-) 14:36
14:39 berekuk joined 14:41 SL-RHanson left
dalek kudo/moar-support: 1b6f2bc | (Tobias Leich)++ | src/vm/moar/ (2 files):
stub p6listiter
14:45
14:45 BenGoldberg joined
jnthn timotimo: I think I did an implementation of most of what p6listiter needs as part of implemetning p6list...it's in a separate static method that you can mostly just call, fwiw. 14:46
14:47 spider-mario joined
dalek kudo/moar-support: 5006f3a | (Tobias Leich)++ | src/vm/moar/ (2 files):
stub p6setfirstflag
14:55
15:00 tgt joined
dalek kudo/moar-support: d73176b | (Tobias Leich)++ | src/vm/moar/ (2 files):
stub p6sort
15:05
15:05 xinming left 15:07 xinming joined 15:12 xinming left, xinming joined
lizmat that was an excellent lunch at the wortley-arms.co.uk 15:19
commuting on& 15:20
15:20 lizmat left
dalek kudo/moar-support: d4e3e55 | (Timo Paulssen)++ | src/vm/moar/ops/perl6_ops.c:
implement p6shiftpush, hopefully correctly.
15:20
masak rn: sub bar($/) { say $[0] }; "foo" ~~ /f(o)o/; bar($/) 15:21
camelia niecza v24-98-g473bd20: OUTPUT«===SORRY!===␤␤Non-declarative sigil is missing its name at /tmp/ccAoX742Uj line 1:␤------> sub bar($/) { say ⏏$[0] }; "foo" ~~ /f(o)o/; bar($/)␤␤Unsupported use of bare 'say'; in Perl 6 please use .say i…» 15:22
..rakudo-parrot e5fd34: OUTPUT«===SORRY!=== Error while compiling /tmp/GWSmn2HWdl␤Unsupported use of $[ variable; in Perl 6 please use user-defined array indices␤at /tmp/GWSmn2HWdl:1␤------> sub bar($/) { say ⏏$[0] }; "foo" ~~ /f(o)o/; bar($/)…»
..rakudo-jvm e5fd34: OUTPUT«===SORRY!=== Error while compiling /tmp/WRehjrHrni␤Unsupported use of $[ variable; in Perl 6 please use user-defined array indices␤at /tmp/WRehjrHrni:1␤------> sub bar($/) { say ⏏$[0] }; "foo" ~~ /f(o)o/; bar($/)…»
masak std: $[0]
camelia std 3b262af: OUTPUT«===SORRY!===␤Unsupported use of $[ variable; in Perl 6 please use user-defined array indices at /tmp/VcmUHNpy6P line 1:␤------> $[⏏0]␤Parse failed␤FAILED 00:01 121m␤»
15:28 benabik left, jnap joined 15:33 jnap left 15:34 jnap joined
jnthn
.oO( if it's 15:30 and you're still talkin about lunch, it musta been a good one... :) )
15:34
masak: $0, or $/[0] 15:35
masak jnthn: aye. just tryin' to grok a contestant's t4 submission. 15:44
15:44 MikeFair_ joined
masak compiling a year-old Rakudo to see if we ever accepted that syntax. my guess is "no". 15:44
15:45 benabik joined
dalek p: 34ea61a | (Tobias Leich)++ | src/vm/moar/QAST/QASTOperationsMAST.nqp:
mapped op getcfh
15:46
15:48 atroxaper left 15:49 atroxaper joined 15:58 Psyche^ joined 16:02 Psyche^_ left 16:03 crab2313 joined 16:06 rindolf joined 16:11 cogno joined, cogno is now known as Guest8947 16:17 Guest8947 left 16:27 [Sno] left, BenGoldberg left 16:39 zakharyas left 16:42 PacoAir joined 16:51 atroxaper left 16:56 jnap left 16:57 xinming left, xinming joined
dalek kudo/moar-support: 6b86f73 | (Tobias Leich)++ | tools/build/Makefile-Moar.in:
we do IO::Soket::INET later
17:05
TimToady masak: Perl 6 is always perfect, but it's extra-specially more perfecter right after I invoke Rule 2. 17:07
17:08 xinming left 17:09 xinming joined
TimToady If you need a rational basis for that, it's that whenever Perl 6 changes, it demonstrates adaptiveness to its ecological niche. 17:10
(and Perl 6's ecological niche is a tough crowd.) :) 17:11
17:13 xinming left
TimToady re t4 example, maybe it was supposed to run under niecza? 17:13
17:14 xinming joined 17:35 ajr joined, ajr_ left, ajr is now known as Guest45819, Guest45819 is now known as ajr_ 17:37 lizmat joined 17:38 berekuk left
lizmat jnthn: in the UK it was 14:30 when we were done with lunch :-) 17:38
17:42 berekuk joined 17:43 ajr_ left 17:44 [Sno] joined 17:57 jnap joined
jnthn lizmat: oh...yeah, timezones... ;) 17:59
18:00 kaleem joined 18:01 jnap left 18:06 woolfy joined 18:12 crab2313 left 18:13 crab2313 joined
TimToady masak: oh, I see your test earlier; yeah, $[0] has never meant anything that I can recall 18:15
MEGO when reading p6eval tests in the irclogs because the formatting is so sucky 18:17
TimToady wonders if NFG should treat ANSI escapes as graphemes... 18:18
dalek p: 2946c2c | (Timo Paulssen)++ | src/vm/moar/QAST/QASTRegexCompilerMAST.nqp:
hasuniprop wants to take the string, too.
18:20 kaleem left
timotimo hey tadzik, would you like to be friends with me on steam? 18:22
18:22 xenoterracide joined
timotimo steamcommunity.com/actions/Search?K=tadzik - there's apparently 42 of you 18:25
corecatcher: moarvm can now compile, assemble and serialize the CORE.setting :D 18:31
TimToady it just can't quite deserialize it yet :) 18:32
jnthn Nah, it deserializes.
It fails after that while running the things in the body of the setting.
18:34 SamuraiJack_ left 18:35 jnap joined 18:38 ssutch joined, grondilu joined 18:39 jnap left 18:42 denisboyun joined 18:48 denisboyun left 18:53 woosley joined
tadzik timotimo: sure :) 18:57
timotimo: I'm this one: steamcommunity.com/id/tsosnierz 18:58
timotimo d'aaw the profile picture
lizmat jnthn: with morakudo around the corner, I was thinking of moving all files in src/vm/jvm/core that don't have anything JVM specific, to src/core
adapt the locations in the JVM make file for now only, so they still would be invisible for parakudo and morakudo 18:59
timotimo friend invite sent
lizmat and start thinking on how to make that fail properly on parakudo
timotimo yesterday i was quite impressed by Stealth Bastard Deluxe and my "scores from friends" list could use some competitors :3
tadzik hehe 19:00
I don't have that one, but I think it runs on Linux?
timotimo lizmat: so you'd propose stubbing all the classes that require jvm interop on "every backend" with something that complains loudly if it gets instantiated?
tadzik may pop up on sale
timotimo yes, it runs on linuu
it is on sale right now
2.24 euros
tadzik grumbles on BG:EE never being ported
timotimo 75% off :)
lizmat timotimo: well, the stubbing would be general, and depending on inclusion in the makefile
timotimo what does that stand for?
tadzik timotimo: Baldur's Gate Enhanced Edition 19:01
timotimo oh yeah
they even ported it to android
the step towards desktop linux ought to be really, really small
tadzik they were like "yeah, sure, there'll be a linux port soon!"
timotimo >_>
tadzik then they were like "oh, actually, the deal with atari says that we'll sell it separately"
and now they're like "yeah, well, we're not really working on it right now, but someday, surely!"
19:04 denisboyun joined
raydiak \o good morning/afternoon/evening, #perl6 19:05
tadzik hey hey raydiak
raydiak hiya tadzik 19:08
19:11 denisboyun left
moritz is it normal that rakudo/moar-vm sesgfaults after stage optimize? 19:14
timotimo it should not :\
diakopter er, there's a rakudo/moar-vm ? 19:15
timotimo yeap :3
well, more or less
19:15 darutoko left
moritz moar-support is the proper name of the branch 19:15
19:20 kivutar left
moritz let's see how long it takes under the debugger 19:21
19:21 tgt left 19:30 crab2313 left 19:32 kivutar joined 19:35 jnap joined 19:37 ingy joined
moritz perlpunks.de/paste/show/52979b6f.6d5d.f6 # moar-support segfault backtrace 19:37
nwc10 moritz: is tc->instance->boot_types.BOOTInt NULL? 19:39
19:39 jnap left
nwc10 (unless someone with more knowledge of the code than me asks a better question, that seems like the first thing to rule out) 19:40
moritz nwc10: how do I find out? 19:41
nwc10 p tc->instance->boot_types.BOOTInt)
IIRC
er, 19:42
without that )
p being short for print
moritz $1 = (MVMObject *) 0x15352b0
doesn't look very null-y
nwc10 OK. Cool. Then I don't know.
and yes, doesn't look at all null-y
hmmm
does this produce a structure, or an error: 19:43
p *ref
moritz (gdb) p ref
$2 = (MVMObject *) 0x98000800000000
nwc10 oops
p *ref
moritz Cannot access memory at address 0x98000800000000
nwc10 OK. that would be the SEGV, I think
presumably
19:43 ajr joined
nwc10 p *(tc->instance->boot_types.BOOTInt) 19:43
moritz looks a bit big and very 0-y
nwc10 is happy
19:44 ajr is now known as Guest8713
moritz $3 = {header = {owner = 0, flags = 9, size = 32, forwarder = 0x0, sc = 0x2a052d8}, st = 0x1510fa0} 19:44
19:44 Guest8713 is now known as ajr_
nwc10 yes. Given that the other pointer has 7 hex digits, is suggests that real valid memory is nowhere hear 19:44
OK. the value of ref is garbage.
I don't know enough to help further
oh, hangon, a guess 19:47
what does
p *(MVMObject *) 0x980008
give
moritz $5 = {header = {owner = 0, flags = 0, size = 0, forwarder = 0x0, sc = 0x21}, st = 0x8000800080008}
TimToady 32 vs 64 bit you think? 19:48
moritz this is a 64bit system, fwiw 19:49
nwc10 it's my guess. Something is out of alignment
I could be wrong
I could be very wrong. sc = 0x21 is garbage
so that's not it either
someone who actually knows what they are talkign about needs to answer. :-)
TimToady nobody is moar answerable... 19:51
19:53 tgt joined 19:56 spider-mario left
ingy anyone here use weechat? 19:58
segomos weedchat or irssi
ingy I need some help
I want to hide the user list pane
tadzik ingy: yep 19:59
19:59 spider-mario joined 20:00 baest left
tadzik ingy: nicklist.hidden = on 20:01
section [bar] in weechat.conf
ingy tadzik: *hugs* 20:02
tadzik *blush* 20:03
20:04 baest joined
sjohnson ( `ー´) 20:05
20:07 ingy^ joined
ingy^ tadzik: hi 20:07
tadzik oh hai
ingy^ can I hide the time in the part on the left? 20:08
I need more horizontal space
tadzik I think you can
I only bothered to change the format to HHMM though 20:09
pretty sure you can set it to "" :)
ingy^ I'm giving a talk with live irc window
space is tight
20:10 xenoterracide left 20:11 berekuk left, ingy^ left 20:12 ingy^ joined
ingy^ tadzik: test 20:12
yeah that worked
tadzik hello, dear guest
ingy^ flippin sweet
give a remote toronto perl mongers talk at 7pm EST
/join #pairup 20:13
20:13 ingy^ left
moritz 20:14
sjohnson 20:15
diakopter
20:16 xenoterracide joined
sjohnson whoa, nice one diakopter 20:16
sure showed us!
diakopter )( 20:17
moritz and all just because my ssh session hang
diakopter *hing 20:19
moritz idly wanders if diakopter belongs to the ministry of silly ircs 20:20
20:28 xenoterracide left 20:29 xenoterracide joined 20:30 rindolf left
jnthn moritz: About the crash in write_ref_func, that's the thing that github.com/MoarVM/MoarVM/commit/18...e7a0bad299 fixed, or at least fixed for others... 20:33
preflex jnthn: you have 3 new messages. '/msg preflex messages' to read them.
moritz jnthn: ah, maybe my moar was too auld 20:35
jnthn Yeah, given the backtrace matches pretty much exactly...
ingy tadzik: what's that area on the left where the time/user for each msg is 20:38
what's that called in the conf?
tadzik ingy: I've no idea
20:48 berekuk joined, rurban1 left 20:51 xenoterracide left 20:57 bbkr joined 20:59 berekuk left 21:15 zakharyas joined, zakharyas left
dalek kudo/moar-support: 66bf730 | jonathan++ | src/Perl6/Metamodel/BOOTSTRAP.nqp:
Implement SIG_ELEM_DEFAULT_FROM_OUTER.
21:19
21:30 SevenWolf joined 21:33 ajr_ left 21:36 PacoAir left 21:37 jnap joined 21:42 jnap left 21:45 ssutch left 21:48 berekuk joined 21:51 spider-mario left
ingy tadzik: np 21:51
21:51 ajr joined, ajr is now known as Guest43488 21:52 Guest43488 is now known as ajr_ 22:02 kaare_ left 22:09 xenoterracide joined 22:11 p5eval left 22:23 xenoterracide left
masak 'night, #perl6 22:25
22:25 xenoterracide joined
colomon o/ 22:27
preflex colomon: you have 1 new message. '/msg preflex messages' to read it.
22:38 lizmat_ joined, jnap joined 22:39 xenoterracide left, xenoterracide joined 22:40 woolfy left 22:41 lizmat left 22:43 jnap left 22:46 berekuk left 22:47 lizmat joined 22:48 lizmat_ left 22:55 woolfy joined 22:59 rurban1 joined 23:03 rurban1 left 23:05 kivutar left 23:13 ajr_ left 23:14 raydiak joined 23:21 grondilu left 23:33 dmol left 23:39 jnap joined 23:43 jnap left 23:56 jnap joined