»ö« 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/R0s5Z0SHzJAttribute @!a not declared in class Aat /tmp/R0s5Z0SHzJ:1------> class A { has $!a; method b() { say @!a⏏.perl; }; }; A.new.b;» | ||
..rakudo-jvm e5fd34: OUTPUT«===SORRY!=== Error while compiling /tmp/_Pnl7kNYUkAttribute @!a not declared in class Aat /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/41gEWEehmyUnable 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/fK5zWrtgucUnable 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«21» | ||
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/FI5WoYk8xVVariable @.floor used where no 'self' is availableat /tmp/FI5WoYk8xV:1------> ... 2 { say $_; say .floor; say (@.floor⏏).perl } expecting any of: …» | ||
..rakudo-parrot e5fd34: OUTPUT«===SORRY!=== Error while compiling /tmp/LRHBeU4u9GVariable @.floor used where no 'self' is availableat /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_i1Variable @.floor used where no 'self' is availableat /tmp/FHFjd0y_i1:1------> f = $_; say $_; say .floor; say (@.floor⏏).perl } # curious expecting any …» | ||
..rakudo-parrot e5fd34: OUTPUT«===SORRY!=== Error while compiling /tmp/OGscxVmw4LVariable @.floor used where no 'self' is availableat /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/guFhrduJziUndeclared routine: vec used at line 1. Did you mean '&sec'?» | ||
..rakudo-parrot e5fd34: OUTPUT«===SORRY!=== Error while compiling /tmp/_UDQiIMvioUndeclared 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/GWSmn2HWdlUnsupported use of $[ variable; in Perl 6 please use user-defined array indicesat /tmp/GWSmn2HWdl:1------> sub bar($/) { say ⏏$[0] }; "foo" ~~ /f(o)o/; bar($/)…» | |||
..rakudo-jvm e5fd34: OUTPUT«===SORRY!=== Error while compiling /tmp/WRehjrHrniUnsupported use of $[ variable; in Perl 6 please use user-defined array indicesat /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 failedFAILED 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
|