»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'p6: say 3;' or rakudo:, std:, or /msg camelia p6: ... | irclog: irc.perl6.org | UTF-8 is our friend! Set by masak on 12 May 2015. |
|||
00:00
Oatmeal joined,
Oatmeal left,
O47m341 left
00:02
Oatmeal joined,
Oatmeal left
|
|||
RabidGravy | properly kebabed | 00:04 | |
00:04
leont left
|
|||
dalek | p: 88ef425 | peschwa++ | src/vm/jvm/runtime/org/perl6/nqp/sixmodel/reprs/MultiCacheInstance.java: Prevent an off-by-one towards -Inf and bail if it can't be cached anyway. |
00:07 | |
TimToady | it looks like the S05-metasyntax/repeat.t failures are due to the recent regex vs Bool changes, but they seem relatively benign, so I suppose we could just fudge 'em | 00:09 | |
00:12
RabidGravy left
00:22
tokuhiro_ joined
00:25
sufrostico left
00:26
[Sno] joined
00:27
tokuhiro_ left
|
|||
awwaiid | Can we hook the evalbot up so it can run on the perl6.org frontpage, enlivening those examples a bit? | 00:27 | |
psch | awwaiid: i'd rather wait for nqp-js to mature so it can run rakudo and splice that into perl6.org | 00:28 | |
awwaiid: 'cause that way we can even offer a REPL that isn't vulnerable in any way | |||
awwaiid | ah. wasn't sure if that was anytime soon | ||
psch | awwaiid: i don't know if it's anytime soon, i'm just saying that's the less risky and cleaner approach | 00:29 | |
awwaiid | yeah, complete client side is about as safe as you can get :) | ||
psch | i'm not particularly good with JS and also pretty wrapped up in the jvm backend... | ||
awwaiid | but any random person can talk to the bot here right? | ||
psch | awwaiid: yes, but IRC vs HTTP is a difference, however small | 00:30 | |
awwaiid | I saw in the github there is some magical flag you compile with or something to get a non-danger-allowed build or something | ||
psch | eh, RESTRICTED.setting is something, but it's far from exhaustive | ||
00:31
mattn_jp joined
|
|||
awwaiid | so exposing to The HTTP Internets might be a bit much exposure? Also I think stateful, ie REPL, as you say would be better | 00:31 | |
mattn_jp | DESTROY method is not implemented yet? | 00:32 | |
konobi | js is pretty easy =0) | ||
yoleaux | 21 Oct 2015 15:14Z <pmurias> konobi: I'm not really sure one I put the various compiled files in the package.json containing directory, how should the files be loaded | ||
21 Oct 2015 15:18Z <pmurias> konobi: should the user npm install -g nqp-js and the use Foo will be translated to 'require("nqp-js/Foo")'? | |||
psch | awwaiid: to be fair, "offer a useful experince" is a stronger argument than "be secure server-side" in my mind for something REPL-y on perl6.org | ||
awwaiid | mmm. would it be bad if I got a VM, tried to compile with RESTRICTED.setting, and exposed it over http? | ||
mattn_jp | m: use nqp; class Foo { submethod DESTROY { say "byebye"; } }; for 1..500 { my $foo = Foo.new(); undefine $foo; } | ||
camelia | ( no output ) | ||
psch | awwaiid: RESTRICTED.setting always gets compiled for you, you just have to invoke nqp to use it instead of CORE.setting | ||
mattn_jp | m: use nqp; class Foo { submethod DESTROY { say "byebye"; } }; for 1..500 { my $foo = Foo.new(); undefine $foo; nqp::force_gc() } | 00:33 | |
camelia | ( no output ) | ||
psch | mattn_jp: there's no guarantee for when DESTROY gets evoked. afaik, it mostly exists to make Inline::Perl5 easier | ||
awwaiid | that's interesting. is there a way to make my rakudo do that? | ||
00:33
sufrostico joined
|
|||
mattn_jp | psch: roast have test for this: github.com/perl6/roast/blob/master...truction.t | 00:33 | |
shouldn't be green. i guess | 00:34 | ||
psch | awwaiid: you can supply "--setting=RESTRICTED" to the perl6 script | 00:36 | |
awwaiid | ooooooo | ||
o/ | |||
psch | mattn_jp: S12-construction/destruction.t isn't run during make spectest; the file and contained tests exist but aren't tested | 00:37 | |
mattn_jp | m: class Foo { submethod DESTROY { say "byebye"; } }; for 1..5000 { my $foo = Foo.new(); } | ||
camelia | rakudo-moar 4e35e8: OUTPUT«byebyebyebyebyebyebyebyebyebyebyebyebyebyebyebyebyebyebyebyebyebyebyebyebyebyebyebyebyebyebyebyebyebyebyebyebyebyebyebyebyebyebyebyebyebyebyebyebyebyebyebyebyebyebyebyebyeb…» | ||
00:37
kid51 joined
|
|||
mattn_jp | ah, seems less-er | 00:37 | |
psch | mattn_jp: there's not yet an actual "these files are perl6.christmas" tag, so for now i'd go with rakduo/t/spectest.data as for "what's perl6?" | ||
mattn_jp | psch: okay. thanks. | 00:38 | |
awwaiid | psch++ # showing me the bricks for me to build my jenga towers | ||
psch | awwaiid: just enough rope to hang your foot by :) | ||
awwaiid | how I like it | ||
dalek | kudo/nom: 37fcfad | coke++ | / (3 files): use the same extension as the other p6 script |
||
kudo/nom: 05dd709 | coke++ | docs/release_guide.pod: Revert "use more -correct- unicode" This reverts commit d70ff74d4cae6ae9d880d33d39fd1edc96c8a385. |
|||
kudo/nom: c8fc189 | coke++ | docs/announce/2015.10.md: Revert "use more -correct- unicode" This reverts commit a76c349870bbc9f25fb0465d553139a9b1df9903. |
|||
kudo/nom: aab87c3 | coke++ | docs/announce/2015.10.md: pick a name, add changes, people |
|||
00:39
AndyDee left
|
|||
dalek | kudo/nom: db80714 | coke++ | tools/build/NQP_REVISION: [release] bump NQP revision |
00:42 | |
kudo/nom: 790a101 | coke++ | docs/release_guide.pod: Note release name |
|||
00:43
BenGoldberg joined
00:47
Ben_Goldberg joined
00:48
BenGoldberg left
|
|||
dalek | kudo/nom: be0f447 | coke++ | docs/release_guide.pod: add a note about tagging with the version |
00:52 | |
00:56
Effilry joined
00:58
Effilry left
01:00
atweiden joined
01:01
Effilry joined
01:04
araujo_ joined
01:05
araujo left
|
|||
[Coke] | t/spec/S32-io/IO-Socket-Async hanging... | 01:08 | |
01:09
novapatch joined
|
|||
TimToady | will try to repro here | 01:10 | |
tokuhirom_ | is there a way to implement grammar like `token foo { . ** $*BODY-LENGTH}`? | 01:12 | |
with `token bar { . { $*BODY-LENGTH = $/.Str.Int } }` | 01:13 | ||
TimToady | . ** {$*BODY-LENGTH} | ||
01:15
AlexDaniel left
|
|||
tokuhirom_ | wow! thanks | 01:15 | |
01:22
zakharyas left
01:23
tokuhiro_ joined
|
|||
garu | tokuhirom_: dumbbench told me http-useragent is taking an average of 14 seconds to do what furl takes only 0.04 seconds to do O_O | 01:25 | |
tokuhirom_ | heh | ||
garu | it's eating a lot of compile-time I suppose | ||
wonder how to best benchmark the runtime | |||
specially in ways that let us see how to improve things | 01:26 | ||
01:26
Effilry is now known as FireFly
|
|||
garu | is there a Devel::NYTProf equivalent for Perl 6 already? | 01:26 | |
TimToady | try the --profile switch | 01:27 | |
garu | TimToady: thanks! | 01:28 | |
01:28
tokuhiro_ left
|
|||
TimToady | [Coke]: didn't hang here... | 01:32 | |
[Coke] | "normal" S17/async crap here. :| | 01:34 | |
01:37
softmoth joined
|
|||
garu | interesting... perl6 --profile tells me it is taking it 0.33 seconds to run (exec + gc + dyn opti) | 01:40 | |
tokuhirom_: still one order of magnitude slower than furl, but MUCH better :) | 01:41 | ||
01:41
softmoth left
|
|||
tokuhirom_ | heh | 01:42 | |
garu | TimToady++ # native embedded profiler \o/ | 01:45 | |
TimToady | I didn't do it :) | 01:46 | |
garu | who did?? I must spread the karma :D | ||
TimToady | I think jnthn++ did the original work, but others++ have helped | 01:47 | |
garu | only now I desperately want to hack on --profile to make it easier to translate between statements and profile entries | ||
which is most definitely way out of my league since I'm just getting started | |||
but I honestly want to help in any way I can | 01:48 | ||
01:48
tokuhirom_ left
|
|||
garu | even if it is 'filling everyone with stupid questions and writing documentation or small helpers' | 01:49 | |
TimToady | garu++ | 01:50 | |
garu | TimToady: any low hanging fruits of particular interest I can try and grab before christmas to let you and the other heroes do the heavy lifting? otherwise I'll come up with something :) | 01:52 | |
psch | j: my $foo = [ 42 ]; $foo[1] = $foo; say EVAL $foo.perl # grml | 01:53 | |
camelia | rakudo-jvm be0f44: OUTPUT«java.lang.NullPointerException in block <unit> at EVAL_0:1 in block <unit> at /tmp/rZzatL7dRN:1» | ||
psch | there's lots of those around, still :/ | ||
probably not LHF though | |||
01:55
pierrot joined,
kid51 left
|
|||
TimToady | afk & | 01:55 | |
psch | m: use Foo::from | 01:56 | |
camelia | rakudo-moar be0f44: OUTPUT«===SORRY!===Could not find Foo::from in any of: file#/home/camelia/.perl6/2015.09-473-gbe0f447/lib inst#/home/camelia/.perl6/2015.09-473-gbe0f447 file#/home/camelia/rakudo-inst-1/share/perl6/lib file#/home/camelia/rakudo-inst-1/share/per…» | ||
psch | garu: there's only RT #126087 tagged as LHF in RT currently, and iirc i pushed a fix for that some time ago, but neglected to say so in the ticket... | 01:57 | |
synbot6 | Link: rt.perl.org/rt3/Public/Bug/Display...?id=126087 | ||
01:57
colomon joined
|
|||
psch | garu: that aside, what's interesting to you? | 01:57 | |
flussence | [Coke]: I gave the spectest a run, t/spec/S32-io/IO-Socket-Async failed but no hangs here... | ||
01:59
kaare_ joined
|
|||
garu | psch: I don't know... I'd like to learn the internals a bit I think. I'm also interested in toolchain stuff and creating tools that help other developers achieve more, faster | 02:01 | |
02:02
yeahnoob joined
02:03
raiph left
|
|||
psch | garu: #126375 might be an interesting start into internals | 02:03 | |
synbot6 | Link: rt.perl.org/rt3/Public/Bug/Display...?id=126375 | ||
konobi | pmurias: give me a ping and I can give you a run down. | ||
02:03
dayangkun joined
|
|||
psch | garu: it's about the unimplemented meta operator S | 02:03 | |
garu: i wouldn't say you'd need to implement the meta operator, an NYI Exception is probably sufficient at the moment | 02:04 | ||
garu | psch: thanks! would you mind if I nagged you now and again if I bump into issues or have any silly questions? | 02:05 | |
psch | garu: as an overview, you'd need to find out how the operator is parsed, what kind of AST is built and how to throw an Exception instead | ||
garu: sure, i'll answer questions whenever i'm around. i'm pretty sure many other people readily help as well, though :) | |||
garu | psch++ | 02:07 | |
psch | r: my ::foo $x; | 02:08 | |
camelia | ( no output ) | ||
02:08
noganex_ joined
|
|||
psch | r: my ::foo $x, say $x | 02:08 | |
camelia | rakudo-moar be0f44: OUTPUT«Method 'gist' not found for invocant of class 'foo' in block <unit> at /tmp/tmpfile:1» | ||
..rakudo-jvm be0f44: OUTPUT«Unhandled exception: java.lang.StackOverflowError in  in  in  in  in  in new in reification-target in from-slurpy-flat in bless in new in new in  in  in  in BUILDALL in bless in new in …» | |||
psch | r: my $x, say $x | 02:09 | |
camelia | rakudo-{moar,jvm} be0f44: OUTPUT«(Any)» | ||
psch | m: (::foo).say | ||
camelia | rakudo-moar be0f44: OUTPUT«===SORRY!===Could not locate compile-time value for symbol foo» | ||
psch | j: (::foo).say | ||
camelia | rakudo-jvm be0f44: OUTPUT«===SORRY!===Could not locate compile-time value for symbol foo» | ||
psch | j: my ::foo $x; say $x | 02:10 | |
camelia | rakudo-jvm be0f44: OUTPUT«java.lang.StackOverflowError» | ||
Ben_Goldberg | m: my ::foo $x; say $x | ||
camelia | rakudo-moar be0f44: OUTPUT«Method 'gist' not found for invocant of class 'foo' in block <unit> at /tmp/uayFm6yfT8:1» | ||
02:12
noganex left
|
|||
psch | j: my $x = "foo"; say MY::.values.grep(/foo/) | 02:12 | |
camelia | rakudo-jvm be0f44: OUTPUT«Method 'match' not found for invocant of class 'Mu' in block <unit> at /tmp/QZSHjC6AG_:1» | ||
psch | j: my $x = "foo"; say MY::.values.grep(m/foo/) | 02:13 | |
camelia | rakudo-jvm be0f44: OUTPUT«Method 'match' not found for invocant of class 'Any' in block <unit> at /tmp/MvOrny03QO:1» | ||
psch | j: my $x = "foo"; say MY::.values.grep({ m/foo/ }) | ||
camelia | rakudo-jvm be0f44: OUTPUT«Method 'match' not found for invocant of class 'Mu' in block <unit> at /tmp/_XdXm6cnq2:1» | ||
psch | m: my $x = "foo"; say MY::.values.grep({ m/foo/ }) | ||
camelia | rakudo-moar be0f44: OUTPUT«Method 'match' not found for invocant of class '!UNIT_MARKER' in block <unit> at /tmp/53muFiv0lC:1» | ||
psch | r: my $x = "foo"; say MY::.values.grep: * eq 'foo' # pff | ||
camelia | rakudo-moar be0f44: OUTPUT«Use of uninitialized value of type !UNIT_MARKER in string contextAny of .^name, .perl, .gist, or .say can stringify undefined things, if needed. in whatevercode at /tmp/tmpfile:1Use of uninitialized value of type EXPORT in string contextAny of .…» | ||
..rakudo-jvm be0f44: OUTPUT«Cannot call infix:<eq>(Mu, Str); none of these signatures match: ($x?) (\a, \b) (Blob:D $a, Blob:D $b) (Str:D \a, Str:D \b --> Bool:D) (str $a, str $b --> Bool:D) in block <unit> at /tmp/tmpfile:1» | |||
psch | r: my $x = "foo"; say MY::.values.grep: { ( $_ // '' ) eq 'foo' } # i should stop short-handing tests | 02:14 | |
camelia | rakudo-jvm be0f44: OUTPUT«()» | ||
..rakudo-moar be0f44: OUTPUT«(foo)» | |||
psch | r: my $x; say MY::.keys.grep: { ($_ // '') eq 'x' } | 02:15 | |
camelia | rakudo-{moar,jvm} be0f44: OUTPUT«()» | ||
psch | uh, wait, ::.keys is packages and classes..? | ||
r: my $x; say MY::.keys.grep: { ($_ // '') eq '$x' } # well, they agree it exists... | 02:17 | ||
camelia | rakudo-{moar,jvm} be0f44: OUTPUT«($x)» | ||
psch | so i guess that's something about values, which is a MappyIterator... | 02:18 | |
02:18
sufrostico left
02:23
leont joined
02:26
n0tjack joined
02:27
AndyDee joined
|
|||
Ben_Goldberg | m: my $x = 'foo'; say MY::<$x> | 02:29 | |
camelia | rakudo-moar be0f44: OUTPUT«foo» | ||
Ben_Goldberg | m: my $x = 'foo'; say MY::.flat.reverse.hash<foo> | 02:31 | |
camelia | rakudo-moar be0f44: OUTPUT«(Any)» | ||
02:31
n0tjack left
|
|||
Ben_Goldberg | m: my $x = 'foo'; say MY::.flat.reverse.hash.keys | 02:31 | |
camelia | rakudo-moar be0f44: OUTPUT«($=pod !UNIT_MARKER EXPORT $_ $! ::?PACKAGE GLOBALish $¢ $=finish @?INC $x $/ $?PACKAGE)» | ||
psch | m: my $x = 'foo'; say MY::.values.elems.say | ||
camelia | rakudo-moar be0f44: OUTPUT«MVMContext representation does not support elems in block <unit> at /tmp/VjKjwzXhBh:1» | ||
psch | m: my $x = 'foo'; say MY::.values.list.elems | 02:32 | |
camelia | rakudo-moar be0f44: OUTPUT«13» | ||
psch | j: my $x = 'foo'; say MY::.values.list.elems | ||
Ben_Goldberg | m: my $x = 'foo'; say MY::.flat | ||
camelia | rakudo-jvm be0f44: OUTPUT«java.lang.NullPointerException in block <unit> at /tmp/4UBvSWsYPb:1» | ||
rakudo-moar be0f44: OUTPUT«($=pod => [] !UNIT_MARKER => (!UNIT_MARKER) EXPORT => (EXPORT) $_ => (Any) $! => Nil ::?PACKAGE => (GLOBAL) GLOBALish => (GLOBAL) $¢ => Nil $=finish => (Mu) @?INC => (file#/home/camelia/.perl6/2015.09-473-gbe0f447/lib inst#/home/camelia/.perl6/2015.09-473…» | |||
psch | j: my $x = 'foo'; MY::.values | ||
camelia | ( no output ) | ||
02:32
pierrot left
|
|||
psch | j: my $x = 'foo'; MY::.values.list | 02:32 | |
camelia | ( no output ) | ||
psch | j: my $x = 'foo'; MY::.values.list.elems | ||
camelia | rakudo-jvm be0f44: OUTPUT«java.lang.NullPointerException in block <unit> at /tmp/U86yuVj29c:1» | ||
Ben_Goldberg | m: my $x = 'foo'; say MY::.flat.elems | ||
camelia | rakudo-moar be0f44: OUTPUT«13» | ||
Ben_Goldberg | j: my $x = 'foo'; say MY::.flat.elems | ||
camelia | rakudo-jvm be0f44: OUTPUT«java.lang.NullPointerException in block <unit> at /tmp/Ae5m7bP40O:1» | 02:33 | |
Ben_Goldberg | r: my $x = 'foo'; say MY::.keys | ||
camelia | rakudo-moar be0f44: OUTPUT«($=pod !UNIT_MARKER EXPORT $_ $! ::?PACKAGE GLOBALish $¢ $=finish @?INC $x $/ $?PACKAGE)» | ||
..rakudo-jvm be0f44: OUTPUT«($=finish ::?PACKAGE @?INC !UNIT_MARKER $/ $x $! GLOBALish EXPORT $¢ $=pod $_ $?PACKAGE)» | |||
psch | r: my $x = 'foo'; MY::.values.WHAT | 02:34 | |
camelia | ( no output ) | ||
psch | r: my $x = 'foo'; MY::.values.WHAT.say | ||
camelia | rakudo-{moar,jvm} be0f44: OUTPUT«(Seq)» | ||
Ben_Goldberg | r: my $x = 'foo'; say MY::.keys.sort | ||
camelia | rakudo-{moar,jvm} be0f44: OUTPUT«(!UNIT_MARKER $! $/ $=finish $=pod $?PACKAGE $_ $x $¢ ::?PACKAGE @?INC EXPORT GLOBALish)» | ||
dalek | kudo/nom: bce31cb | coke++ | docs/release_guide.pod: reorder instructions |
||
kudo/nom: 3df2630 | coke++ | VERSION: [release] bump VERSION |
|||
Ben_Goldberg | r: my $x = 'foo'; MY::{$_}.WHAT.say for MY::.keys.sort | 02:35 | |
camelia | rakudo-{moar,jvm} be0f44: OUTPUT«(Any)(Any)(Any)(Any)(Any)(Any)(Str)(Any)(Any)(Any)(Any)(Any)(Any)» | ||
Ben_Goldberg | r: my $x = 'foo'; MY::{$_}.say for MY::.keys.sort | ||
camelia | rakudo-{moar,jvm} be0f44: OUTPUT«(Any)(Any)(Any)(Any)(Any)(Any)$_(Any)(Any)(Any)(Any)(Any)(Any)» | ||
Ben_Goldberg shrugs. | 02:36 | ||
psch | Ben_Goldberg: it's something about Iterators, that much i know :) | 02:37 | |
[Coke] | rakudo 2015.10 is up on the download site, and tagged in the repo. I'll send out the announcement in the morning; now's a good time to grab the tarball and make sure I didn't screw anything up. JVM is busted, but moar looks good. | 02:38 | |
.ask jnthn When you return, if you can build a tarball of the last moarvm tag we did while you were gone and upload that to the moarvm download site, jnthn++ | 02:39 | ||
yoleaux | [Coke]: I'll pass your message to jnthn. | ||
02:40
pierrot joined
|
|||
psch | r: try { POST { say 0 }; die "foo" }; | 02:40 | |
camelia | ( no output ) | ||
..rakudo-moar be0f44: OUTPUT«0» | |||
psch | r: try { POST { say 0 }; try die "foo" }; | ||
camelia | rakudo-{moar,jvm} be0f44: OUTPUT«0» | ||
psch | r: try { POST { say defined $! }; try die "foo" }; | 02:41 | |
camelia | rakudo-{moar,jvm} be0f44: OUTPUT«True» | ||
psch | oh duh, wrong test | ||
r: try { POST { 0 }; die "foo" }; | |||
camelia | ( no output ) | ||
psch | hm, that gives "Postcond '{ 0 }' failed" locally | 02:42 | |
+ition | |||
02:49
tokuhirom_ joined
02:53
tokuhirom_ left
|
|||
psch | r: my $data = "fo foo fooo"; say $data.match(/fo+/, :nth(2,3)).list | 02:55 | |
camelia | rakudo-moar 3df263: OUTPUT«(「foo」 「fooo」)» | ||
( no output ) | |||
psch | r: callframe.new.perl.say | 02:59 | |
camelia | rakudo-moar 3df263: OUTPUT«CallFrame.new(level => 1, annotations => {:file("/tmp/tmpfile"), :line("1")}, my => Map.new("!UNIT_MARKER" => !UNIT_MARKER, "\$!" => Nil, "\$/" => Nil, "\$=finish" => Mu, "\$=pod" => [], "\$?PACKAGE" => GLOBAL, "\$_" => Any, "\$¢" => Nil, "::?PACKAGE" => …» | ||
( no output ) | |||
psch | r: say callframe.new.starts-with("Callframe") | 03:00 | |
camelia | rakudo-{moar,jvm} 3df263: OUTPUT«Method 'starts-with' not found for invocant of class 'CallFrame' in block <unit> at /tmp/tmpfile:1» | ||
psch | r: say callframe.new.perl.starts-with("Callframe") | ||
camelia | rakudo-jvm 3df263: OUTPUT«java.lang.NullPointerException in block <unit> at /tmp/tmpfile:1» | ||
..rakudo-moar 3df263: OUTPUT«False» | |||
awwaiid | psch: laozi.thelackthereof.org:15555/ -- horrible idea in the form of a web repl running with --setting=RESTRICTED but otherwise just an EVAL with a session'd @history | 03:06 | |
psch: code is at gist.github.com/awwaiid/3629e6a653a0b6743125 | 03:09 | ||
psch | awwaiid: you probably also want some kind of runtime limitation... | ||
or ulimits or something | 03:10 | ||
awwaiid | good idea | ||
psch doesn't know particularly much about server administration | |||
awwaiid | yeah. lots of things | ||
well I'll just let y'all crash my server for tonight and will ^C it in the morning | 03:11 | ||
psch | :D | ||
awwaiid++ | |||
i'm not gonna touch it though, i'm taking notes on jvm spectest failures | |||
awwaiid stares at the log waiting anxiously for the first hits | |||
okie dkie | |||
gnight! | 03:12 | ||
labster | leont: I think I'd prefer those methods in IO::Spec myself. I suspect that IO::Spec.select is used in exactly 0 modules, and could be moved, but I could be wrong. | 03:14 | |
03:14
tokuhiro_ joined
|
|||
leont | labster: I would prefer that too, but it seemed like a bigger change | 03:14 | |
labster | also sorry about copying the bad design from P5. | ||
skids | .oO(Speaking of things like RESTRICTED I forsee one of the features people will want is the ability to safely run basic rx syntaxes from untrusted sources.) |
03:15 | |
leont | If that method wasn't documented in S32, I would have changed it. In my head it should change there first | ||
p5 File::Spec has it because it is an extract from ExtUtils::MakeMaker. EUMM has it because it's the second OO project in perl5 ever and people genuinly didn't know better back then | 03:16 | ||
labster | Well, let's just make a PR for that first. Now if I could figure out where to move it... | ||
leont | Somewhere in IO? | ||
labster | Yes. Somewhere. | 03:19 | |
03:19
AndyDee left
|
|||
psch | r: sub f($x is rw) { $x++ }; f(1).say | 03:21 | |
labster | Hard problem #1: naming things. | ||
camelia | rakudo-jvm 3df263: OUTPUT«Cannot assign to an immutable value in sub f at /tmp/tmpfile:1 in block <unit> at /tmp/tmpfile:1» | ||
..rakudo-moar 3df263: OUTPUT«Parameter '$x' expected a writable container, but got Int value in sub f at /tmp/tmpfile:1 in block <unit> at /tmp/tmpfile:1» | |||
leont | Just realized today we had all 3 out of the "2" difficult problems in a project in a timespan two days or so, was a funny realization | 03:23 | |
psch | r: my $a = :b; say $a.key =:= $a.key | 03:24 | |
camelia | rakudo-{moar,jvm} 3df263: OUTPUT«True» | ||
labster | leont: IO::Spec::Select.select()? This op is so far down the chain that "no one" should use it. | ||
psch | yay, accidental RT fix | ||
labster | woo! | ||
03:25
softmoth joined
|
|||
leont | I can think of uses for it (translating between different path syntaxes, which is essentially my use-case too), but its uncommon | 03:27 | |
labster | I'm already missing the days when you could just push massive changes to perl6/specs. | ||
Oh, right. When you don't want to look up the class yourself / don't want to rewrite that if loop. | 03:28 | ||
*if block | |||
Ben_Goldberg wonders what an 'if loop' would look like. | |||
psch | m: role Foo { }; my $x = 1 but Foo; say $x ~~ Foo | 03:29 | |
camelia | rakudo-moar 3df263: OUTPUT«True» | ||
psch | j: role Foo { }; my $x = 1 but Foo; say $x ~~ Foo | ||
camelia | rakudo-jvm 3df263: OUTPUT«False» | ||
psch | j: role Foo { }; my $x = 1 but Foo; say $x.WHAT | ||
camelia | rakudo-jvm 3df263: OUTPUT«(Int)» | ||
psch | j: role Foo { }; my $x = 1 but False; say so $x | ||
camelia | rakudo-jvm 3df263: OUTPUT«True» | ||
Ben_Goldberg | You can use 'r:', you know. | ||
ugexe | ouch | ||
labster | m: say "hi" if loop { last } | ||
camelia | rakudo-moar 3df263: OUTPUT«5===SORRY!5=== Error while compiling /tmp/TlXboSyu8RUndeclared routine: loop used at line 1» | ||
03:30
softmoth left
|
|||
Ben_Goldberg | r: role Foo { }; my $x = 1 but Foo; say $x.WHAT | 03:30 | |
camelia | rakudo-moar 3df263: OUTPUT«(Int+{Foo})» | ||
( no output ) | |||
labster | if loop NYI | ||
Ben_Goldberg | r: role Foo { }; my $x = 1 but Foo; say $x ~~ Foo; | ||
camelia | rakudo-jvm 3df263: OUTPUT«False» | ||
..rakudo-moar 3df263: OUTPUT«True» | |||
psch shrugs | |||
leont | labster: I'll probably be offline this weekend, but will adapt my PR if the spec change is approved | ||
psch | not the kind of feedback i expected, but i guess i should've moved to a query long ago, actually | 03:31 | |
labster | leont: We may or may not do a very short deprecation cycle. But this is very much the time to fix minor design decisions. | 03:32 | |
leont | We'll see | 03:34 | |
03:36
Ben_Goldberg left
|
|||
leont | We could really use a Pod::To::Groff and a Pod::To::Console (probably in that order), Pod::To::Text is functional but not exactly up to 2015 standards. | 03:36 | |
labster | leont: agreed. github.com/perl6/perl6-most-wanted/ | 03:37 | |
03:41
zacts joined
03:58
xinming_ joined
04:01
llfourn joined,
xinming left
04:04
leont left
04:08
khw left
|
|||
psch | gist.github.com/peschwa/e2b203ffd43e700c6207 | 04:12 | |
looks like a few failure modes that cause lots of test files to abort and a few wonky things in between | 04:13 | ||
i'll probably look at "No such attribute '$!signature' for this object" tomorrow | |||
that seems rather important, and sounds familiar enough to give me hope that i can get it worked out... :) | 04:14 | ||
g'night #perl6 o/ | |||
04:20
tokuhirom_ joined
04:25
tokuhirom_ left
04:30
cognominal left
04:31
cognominal joined
04:33
araujo_ left
04:34
araujo joined,
araujo left,
araujo joined
04:36
skids left
04:44
rbk_ joined
|
|||
rbk_ | I get Unhandled exception: byte code stream corrupt (missing magic string) when I run the code at examples.perl6.org/categories/inter...s/RPN.html | 04:51 | |
How can this be fixed? | |||
04:53
n0tjack joined
04:55
atweiden left
04:58
n0tjack left
05:03
FireFly left,
Timbus left
05:05
FireFly joined
05:08
Timbus joined
|
|||
rbk_ | I get Unhandled exception: byte code stream corrupt (missing magic string) when I run the code at examples.perl6.org/categories/inter...s/RPN.html | 05:08 | |
Any ideas on how this can be fixed? | 05:09 | ||
05:10
labster_ joined,
labster left,
labster_ is now known as labster
05:13
softmoth joined
05:17
softmoth left
05:19
yeahnoob left,
yeahnoob joined
05:21
tokuhirom_ joined
|
|||
llfourn | where is the normal place to put tmp files needed for tests in t/ | 05:22 | |
yoleaux | 22 Oct 2015 19:40Z <lizmat> llfourn: commit 3c9c4591cf0f666607dd made my $rx = /./; say <one two three>.grep: { not $rx or so $rx } DWIM | ||
llfourn | lizmat: \o/ | 05:23 | |
05:23
rbk_ left
05:25
tokuhirom_ left
|
|||
llfourn | m: my $rx = /./; say <one two three>.grep: { not $rx or so $rx } | 05:26 | |
camelia | rakudo-moar 3df263: OUTPUT«(one two three)» | ||
llfourn | m: my $rx = /t/; say <one two three>.grep: { not $rx or so $rx } | 05:27 | |
camelia | rakudo-moar 3df263: OUTPUT«(one two three)» | ||
llfourn | m: my $rx = /two/; say <one two three>.grep: { not $rx or so $rx } | ||
camelia | rakudo-moar 3df263: OUTPUT«(one two three)» | ||
llfourn | m: my $rx = /two/; say <one two three>.grep: { not $rx or $_ ~~ $rx } | ||
camelia | rakudo-moar 3df263: OUTPUT«(one two three)» | ||
llfourn | m: my $rx = /two/; say <one two three>.grep: { $_ ~~ $rx } | 05:28 | |
camelia | rakudo-moar 3df263: OUTPUT«(two)» | ||
05:35
Sqirrel left
|
|||
llfourn | m: my $rx = /t/; say <one two three>.grep: { not $rx or $rx } | 05:38 | |
camelia | rakudo-moar 3df263: OUTPUT«(one two three)» | ||
llfourn | m: my $rx = /t/; say <one two three>.grep: { not $rx or so $rx } | ||
camelia | rakudo-moar 3df263: OUTPUT«(one two three)» | ||
llfourn | m: my $rx = /t/; say <one two three>.grep: { $rx } | 05:39 | |
camelia | rakudo-moar 3df263: OUTPUT«(two three)» | ||
llfourn | .tell lizmat it's gotten rid of the calling match on Any. What I orignally wanted was { not $rx.defined or $_ ~~ $rx }. But { not $rx or so $rx } now means { not $_ ~~ $rx or $_ ~~ $rx } # always true | 05:40 | |
yoleaux | llfourn: I'll pass your message to lizmat. | ||
llfourn | .tell lizmat actually the 'so' is redundant it seems { not $rx or $rx } means the same thing. | 05:42 | |
yoleaux | llfourn: I'll pass your message to lizmat. | ||
06:09
diana_olhovik joined,
noganex_ left
06:25
geraud left
|
|||
[Tux] | test 50000 37.880 37.765 | 06:25 | |
test-t 50000 38.945 38.831 | |||
06:28
firstdayonthejob joined
06:34
rurban joined
06:38
Ven joined
|
|||
dalek | oblem_solver_tutorial: 1eed18f | lichtkind++ | chapter/text0.md: moving paragraph 6 to third position |
06:40 | |
oblem_solver_tutorial: a7baf3d | lichtkind++ | table-of-content.md: updating toc |
06:42 | ||
oblem_solver_tutorial: c24cc7c | lichtkind++ | / (3 files): more toc content |
06:50 | ||
06:56
darutoko joined,
abraxxa joined
07:01
softmoth joined
07:02
domidumont joined,
abraxxa left
|
|||
dalek | oblem_solver_tutorial: daf5af9 | lichtkind++ | / (2 files): preparing the next bits |
07:04 | |
07:05
softmoth left
07:09
rindolf joined
07:16
Ven left
07:17
Ven joined
07:18
Ven left
07:20
n0tjack joined
07:21
FROGGS joined
07:24
firstdayonthejob left,
n0tjack left
07:27
Ven joined
07:34
ely-se joined
|
|||
Hotkeys | gonna attempt to build w vs 2010 | 07:35 | |
07:37
aborazmeh joined,
aborazmeh left,
aborazmeh joined
07:38
zaucker_ left
07:50
grondilu left
|
|||
Hotkeys | oh hey | 07:51 | |
it actually worked | 07:52 | ||
FROGGS | \o/ | 08:00 | |
yoleaux | 22 Oct 2015 20:22Z <nine> FROGGS: github.com/rakudo/rakudo/commit/416b5aa612 | ||
FROGGS | nine++ | ||
08:04
ribasushi left
08:06
Ven left
|
|||
itz_stmuk | Niceville++ | 08:09 | |
08:09
ollej left
|
|||
TimToady | is the next one Naughtyville? | 08:09 | |
I suppose December's should be NorthPole | 08:10 | ||
08:11
pollei left
08:14
rindolf left,
ribasushi joined
08:16
Ven joined
08:17
duncan_dmg joined
08:21
ambs left
08:22
ambs joined
08:23
abaugher left
|
|||
itz_stmuk | my favourite release naming was the xemacs 21.4.x oxymoron series | 08:23 | |
en.wikipedia.org/w/index.php?title...d=21248134 | |||
08:23
abaugher joined
08:24
bpmedley left
|
|||
itz_stmuk | "Honest Recruiter" "Reasonable Discussion" | 08:24 | |
08:25
RabidGravy joined
08:33
rindolf joined
08:37
szabgab joined
|
|||
szabgab | p6: use Test; plan 1; ok 1; | 08:37 | |
yoleaux | 18 Oct 2015 10:20Z <RabidGravy> szabgab: you might find something like gist.github.com/jonathanstowe/c569...f13cb43abd is even more idiomatic | ||
18 Oct 2015 10:21Z <RabidGravy> szabgab: but otherwise yeah great :) | |||
camelia | rakudo-moar 3df263: OUTPUT«1..1ok 1 - » | ||
szabgab | p6: use Test; plan 1; diag "hello"; ok 1; | ||
camelia | rakudo-moar 3df263: OUTPUT«1..1# hellook 1 - » | ||
08:38
virtualsue joined
08:39
espadrine_ joined
|
|||
szabgab | strange | 08:40 | |
running a tests script using prove -v -e"perl6 -Ilib" does not show the diag message | |||
running directly perl6 ... shows the diag message | |||
but my rakudo is a few weeks old, so who know? | 08:41 | ||
moritz | szabgab: sounds more like a question of what "prove" does | 08:46 | |
08:47
aborazmeh left
08:48
actualeyes_ joined
08:49
softmoth joined
|
|||
RabidGravy | I'm sure I have tests that do show diags | 08:50 | |
let's look | |||
08:52
pyrimi___ left
|
|||
llfourn | speaking of tests, what is the convention for tmp files needed during testing? | 08:52 | |
do i put them under $*TMPDIR is that what it's for? and what the best way to make sure they get deleted if something bad happens in the test? | 08:53 | ||
llfourn has never released a perl 5 module | 08:54 | ||
08:54
softmoth left
|
|||
RabidGravy | END { ... } | 08:54 | |
delete the files in there | |||
llfourn | kk thanks :) | ||
RabidGravy | szabgab, yeah the github.com/jonathanstowe/Audio-Snd...structor.t does a diag that shows up in the outpur | 08:56 | |
output | |||
szabgab | the Test in Perl 6 print the diag message to STDOUT | ||
while Test::More in Perl 5 prints it to STDERR | 08:57 | ||
El_Che | hi szabgab, coming to fosdem this time? | 08:58 | |
szabgab | El_Che: not likely, though I'd love to | ||
08:58
duncan_dmg left
|
|||
El_Che | szabgab: you need to find a client in the neighborhood between now and then :) | 08:58 | |
08:58
pyrimidine joined
|
|||
szabgab | El_Che: that would be perfect :) | 08:59 | |
09:00
duncan_dmg joined
|
|||
RabidGravy | m: use NativeCall; my $b = CArray[num32].new; $b[10] = 0 | 09:01 | |
camelia | rakudo-moar 3df263: OUTPUT«This type cannot unbox to a native number in method <anon> at lib/NativeCall/Types.pm:113 in block <unit> at /tmp/JBITit54Lc:1» | ||
RabidGravy | that's a new one | ||
szabgab | moritz: so it seesm prove let's throught the diag message of perl 5 that was printed to STDERR, but because in Perl 6 it is printed to STDOUT, prove hides it | ||
09:01
telex left
09:02
espadrine_ left
|
|||
RabidGravy | szabgab, but it does in the code I posted above: | 09:04 | |
prove -v -e 'perl6 -Ilib' t/005-constructor.t | |||
t/005-constructor.t .. | |||
# Testing with libsndfile-1.0.25 | |||
09:07
kjs_ joined
|
|||
szabgab | RabidGravy: is that the prove that comes with perl 5 Test::Harness? | 09:08 | |
RabidGravy | prove --version | ||
TAP::Harness v3.35 and Perl v5.20.3 | |||
so yep | |||
09:09
telex joined
|
|||
szabgab | could you please run the test with perl6 -Ilib .... > out and check if the diag is printed to stdout or stderr ? | 09:09 | |
09:11
[Sno] left
09:12
[Sno] joined
|
|||
RabidGravy | stdout | 09:14 | |
moritz | szabgab: then maybe we should change Test.pm to print to STDERR | 09:15 | |
szabgab | I ran prove -v -e "perl6 -Ilib" t/005-constructor.t and I don't see the output | ||
RabidGravy | okay that's weird | ||
szabgab | prove --version TAP::Harness v3.35 and Perl v5.22.0 | ||
on OSX | 09:16 | ||
lizmat | .botsnack | 09:18 | |
yoleaux | :D | ||
synbot6 | om nom nom | ||
yoleaux | 05:40Z <llfourn> lizmat: it's gotten rid of the calling match on Any. What I orignally wanted was { not $rx.defined or $_ ~~ $rx }. But { not $rx or so $rx } now means { not $_ ~~ $rx or $_ ~~ $rx } # always true | ||
05:42Z <llfourn> lizmat: actually the 'so' is redundant it seems { not $rx or $rx } means the same thing. | |||
09:18
Woodi left
|
|||
szabgab | anyway, how do I print to STDERR? | 09:18 | |
lizmat | szabgab: in Test.pm, line 38, is where is determined that Test.pm prints to STDOUT | 09:20 | |
09:21
petercommand left,
zostay left,
gonz_ left,
zostay joined,
gonz_ joined
|
|||
RabidGravy | szabgab: '$*ERR.say: "foo" | 09:22 | |
lizmat | note "foo" | ||
szabgab | Oh, thanks. I see 'note' goes to STDERR and diag goes to STDOUT | 09:24 | |
RabidGravy: and thanks that too | |||
lizmat | I get 2 spectest failures with Test.pm sending all its output to STDERR | 09:25 | |
and they're both tests specifically checking err/out output | 09:26 | ||
so, fwiw, I don't see a reason why Test.pm would not send all its output to STDERR | |||
if there is a good reason for that change... | 09:27 | ||
09:28
espadrine_ joined
|
|||
szabgab | lizmat: let me check that perl 5 diag again | 09:28 | |
09:29
petercommand joined,
Psyche^ joined
|
|||
szabgab | lizmat: just checked again in p5 Test::More diag goes to STDOUT and not goes to STDERR when running directly, though as I recall that behaviour also depends on some environment variables | 09:32 | |
so it would make sense to default to the same p6 Test | 09:33 | ||
lizmat | well, I'm not sure doing the same as p5 would always be the best :-) | 09:34 | |
09:34
Psyche^_ left
|
|||
lizmat | personally, I've been bitten by diag sending tou STDOUT in p5 | 09:34 | |
*to | |||
so I would like to hear the reason why it is a good idea to send diag output to STDOUT | 09:35 | ||
szabgab | ok, * :) | ||
lizmat | and the rest to STDERR :-) | ||
09:36
Woodi joined
|
|||
szabgab | what is the difference between diag and note in p6 ? | 09:37 | |
lizmat | note is core, diag is exported by Test | ||
m: note "look ma, no Test" | |||
camelia | rakudo-moar 3df263: OUTPUT«look ma, no Test» | ||
RabidGravy | and the '#' | 09:38 | |
lizmat | m: diag "look ma, no Test" | ||
camelia | rakudo-moar 3df263: OUTPUT«5===SORRY!5=== Error while compiling /tmp/u_ytEkSXdiUndeclared routine: diag used at line 1» | ||
lizmat | m: use Test; diag "look ma, no Test" | ||
camelia | rakudo-moar 3df263: OUTPUT«# look ma, no Test» | ||
szabgab | oh, so it is just a regular print to STDERR ? | ||
lizmat | m: use Test; diag "look ma\n newlines" | ||
camelia | rakudo-moar 3df263: OUTPUT«# look ma# newlines» | ||
lizmat | note is just say on STDERR | ||
diag prefixes every line with "# " and writes on STDERR | 09:39 | ||
RabidGravy | note can be thought an alternative to warn that doesn't print the context | ||
szabgab | oh, then it is not a good replacement for my needs :) | ||
AFAIK TAP mandates that "# " | |||
RabidGravy | yeah | ||
09:40
yeahnoob left
|
|||
szabgab | OK, I don't know | 09:42 | |
I can use note "# bla" for my purposes now. | 09:43 | ||
09:46
domidumont1 joined
09:47
domidumont left
|
|||
RabidGravy | grr, github flaky this morning | 09:51 | |
Ven | .u ⍝ | 09:55 | |
yoleaux | U+235D APL FUNCTIONAL SYMBOL UP SHOE JOT [So] (⍝) | ||
09:58
pochi_ joined
|
|||
pink_mist | www.youtube.com/watch?v=MzJ0CytAsec this is perl5 related, but pretty funny nonetheless :P | 09:59 | |
09:59
dj_goku joined
10:01
mathw_ joined,
krakan_ joined,
mls_ joined,
japhb_ joined,
psch_ joined
10:03
El_Che_ joined,
lucs_ joined,
ilmari_ joined,
preyalone_ joined,
quuxman_ joined
|
|||
ely-se | .u 🕴 | 10:04 | |
yoleaux | No characters found | ||
ely-se | Bots that don't know about MAN IN BUSINESS SUIT LEVITATING suck. | 10:05 | |
10:05
Ven left
|
|||
ely-se | no botsnack for you | 10:05 | |
synbot6 | om nom nom | ||
10:06
pecastro_ joined,
Ven joined,
ggherdov_ joined
10:07
rindolf left,
pecastro left,
ggherdov left,
dj_goku_ left,
ugexe left,
lucs left,
psch left,
preyalone left,
Guest36282 left,
woodruffw left,
spacebat left,
krakan left,
vytas left,
pochi left,
japhb left,
quuxman left,
clkao left,
ben left,
Bucciarati left,
mathw left,
El_Che left,
mls left,
skaji left,
ilmari left,
raydiak left,
ilmari_ is now known as ilmari
|
|||
lizmat | synbot6 is really like the cookie monsters, it will eat any botsnack | 10:08 | |
synbot6 | om nom nom | ||
10:08
woodruffw joined,
skaji joined
|
|||
pink_mist | well yoleaux wasn't going to get it, synbot6 might as well grab it :P | 10:08 | |
10:08
ben joined
|
|||
ely-se | pink_mist: what is "it"? | 10:08 | |
10:08
szabgab left
|
|||
pink_mist | the snack | 10:09 | |
ely-se | the botsnack? | ||
synbot6 | om nom nom | ||
pink_mist doesn't want to get synbot6 all over him, so is very carefully avoiding saying botsnack | |||
10:09
xxx joined,
xxx is now known as Guest99329
|
|||
pink_mist | 0_o that one didn't register :P | 10:09 | |
10:10
Bucciarati joined
|
|||
lizmat | maybe synbot6 has no appetite for botsnack anymore ? | 10:11 | |
synbot6 | om nom nom | ||
lizmat | hmmm... | ||
ely-se | inb4 synbot6 vomits | 10:12 | |
10:13
ggherdov_ is now known as ggherdov
10:14
raydiak joined,
vytas joined,
virtualsue left,
rindolf joined
|
|||
lizmat | m: sub a(Int:D() $a) { dd $a }; a "42" # type smileys not complete first citizen yet :-( | 10:14 | |
camelia | rakudo-moar 3df263: OUTPUT«Type check failed in binding $a; expected Int but got Str in sub a at /tmp/bIORsmiOVK:1 in block <unit> at /tmp/bIORsmiOVK:1» | ||
RabidGravy | right I think that's fixed my native unboxing thing | 10:15 | |
lizmat | m: sub a(Int() $a) { dd $a }; a "42" # works ok without the smiley | ||
camelia | rakudo-moar 3df263: OUTPUT«Int $var = 42» | ||
10:15
ugexe joined
10:16
spacebat joined,
preyalone_ is now known as preyalone
10:17
clkao joined
|
|||
FROGGS | lizmat: handling in params is not done yet, because the param-handling used to cheat in the past | 10:19 | |
lizmat: otherwise we would not have had smileys there at all | 10:20 | ||
lizmat | aha, I guess that's also the reason it's so hard to get "use parameters" and "use invocant" to work | ||
should I rakudobug it ? | |||
FROGGS | yeah :/ | 10:21 | |
(I was hoping to get the ticket count down to 2**10) | |||
10:27
abraxxa joined
10:29
Ven left,
leont joined,
pmurias joined
|
|||
lizmat | FROGGS: #126433 :-( | 10:30 | |
synbot6 | Link: rt.perl.org/rt3/Public/Bug/Display...?id=126433 | ||
lizmat | .oO( starting to feel more like the masakbot every day ) |
||
on a more humorous note: foksuk.nl/#fd6176c93539fec48b33c273b592a166 | 10:31 | ||
"Fokke & Sukke will not switch to Windows 10", "Because with XP, you're not botherd..." "by security updates all of the time" | 10:32 | ||
nine | That's almost too realistic to be funny :) | ||
dalek | osystem: 053c722 | (Tokuhiro Matsuno)++ | META.list: Added WebSocket.pm |
10:34 | |
10:34
TEttinger left
|
|||
nine | .tell psch My "doesn't even warrant a comment" was highly sarcastic :) In fact I already have the comment you suggested in there. | 10:35 | |
yoleaux | nine: I'll pass your message to psch. | ||
ely-se | lizmat: dat monitor | ||
pink_mist is always unsure whether to actually make such a comment or just remain quiet; commenting that something doesn't warrant a comment is after all a comment in itself, thereby defeating the purpose of the comment | 10:36 | ||
lizmat | .oO( I'm not gonna comment on that ) |
10:37 | |
10:37
softmoth joined
|
|||
pink_mist | lizmat: :P | 10:38 | |
ely-se | # no comment | 10:39 | |
huf | i have no words | ||
llfourn | m: role A { multi method a(Str $a) {nextwith($a.Int)}}; class B is A { multi method a(Int $a) { say "win" } }; B.a("1") | 10:41 | |
camelia | ( no output ) | ||
llfourn | m: role A { multi method a(Str $a) {nextwith($a.Int)}}; class B is A { multi method a(Int $a) { say "win" } }; say B.a("1") | ||
camelia | rakudo-moar 3df263: OUTPUT«Nil» | ||
llfourn | why nextwith no work there? | ||
10:42
softmoth left
|
|||
llfourn | m: role A { multi method a(Str $a) {nextwith($a.Int)}}; class B does A { multi method a(Int $a) { say "win" } }; say B.a("1") #fix does | 10:42 | |
camelia | rakudo-moar 3df263: OUTPUT«Nil» | ||
lizmat | m: role A { multi method a(Str $a) {samewith($a.Int)}}; class B does A { multi method a(Int $a) { say "win" } }; say B.a("1") | 10:43 | |
camelia | rakudo-moar 3df263: OUTPUT«Cannot call a(A: Int); none of these signatures match: (B $: Int $a, *%_) (B $: Str $a, *%_) in method a at /tmp/DcdfCgAq4x:1 in block <unit> at /tmp/DcdfCgAq4x:1» | ||
llfourn learns about samewith | 10:44 | ||
lizmat | m: role A { multi method a(Str $a) {self.a($a.Int)}}; class B does A { multi method a(Int $a) { say "win" } }; say B.a("1") | ||
camelia | rakudo-moar 3df263: OUTPUT«winTrue» | ||
lizmat | I think, although I thought up samewith, it is really a bad alternative for doing self.name_of_method(alternate params) | 10:45 | |
the latter is much clearer, I thonk | |||
*think | |||
llfourn never understood the difference between callwith nextwith and now...samewith | |||
DrForr | What, no previouswith Or am I courting fire here? :) | 10:46 | |
RabidGravy | call* returns to the caller next* doesn't | ||
llfourn | lizmat: I think self.a or just $.a is fine I just knew about all these "withs" that I thought it might be idiomatic to use one :P | 10:47 | |
RabidGravy | for me, self.meth(<different args>) is a common pattern in multis | 10:48 | |
10:49
ely-se left
|
|||
RabidGravy | not just in Perl 6 I might add | 10:49 | |
llfourn | RabidGravy: yes it's a good place to convert things into better suited args to call the main method | ||
10:51
rurban left
|
|||
dalek | p: 78a6682 | (Pawel Murias)++ | src/QAST/C (2 files): Make --target=ast dump pre_deserialize and post_deserialize code for CompUnits. |
10:56 | |
p: ba972b6 | (Pawel Murias)++ | src/QAST/ (3 files): Dump .fallback for VarWithFallback when doing --target=ast. Generalize printing out of tagged children nodes. |
|||
ilmari | a | 10:57 | |
bah | |||
FROGGS | m: sub a(Int:D() $a) { dd $a }; a Int | 11:05 | |
camelia | rakudo-moar 3df263: OUTPUT«Parameter '$a' requires an instance of type Int, but a type object was passed. Did you forget a .new? in sub a at /tmp/7TJkatOmU2:1 in block <unit> at /tmp/7TJkatOmU2:1» | ||
FROGGS | this could do the DefiniteHOW type check in future... | 11:06 | |
I mean, it does the typecheck anyway I guess, but it specialcases the smilies, which is what we dont need anymore | 11:07 | ||
RabidGravy | right, off shopping :-\ | ||
play nicely | |||
FROGGS | but changing it means changing the signature binder and other stuff | ||
FROGGS turns the music to level EXTRALOUD | 11:08 | ||
FROGGS shouts and throws LEGO™ | |||
DrForr | . o ( Everything is AWESOME ) | ||
11:10
spider-mario joined
|
|||
nine | DrForr: noooooooooo! Now it won't stop for the rest of the day | 11:10 | |
DrForr | Having done his evil deed for the day... | ||
11:11
RabidGravy left
11:14
ely-se joined
11:15
aimicheng joined
11:16
aimicheng left
11:21
lucasb_ joined
11:22
Ven joined
|
|||
lucasb_ | hello people. is there a moarvm tarball anywhere? | 11:23 | |
rindolf | lucasb_: what kind of tarball? | 11:24 | |
yoleaux | 20 Oct 2015 20:12Z <[Coke]> rindolf: - the description says S(1112), but you're looking at 11**12? | ||
20 Oct 2015 20:34Z <[Coke]> rindolf: - oh, because your copy of the problem statement is missing formatting. | |||
lucasb_ | rindolf: the 2015.10 monthly release | 11:25 | |
rindolf | lucasb_: ah, source? | ||
lucasb_ | yes | ||
lizmat | afaik, the tarball could not be uploaded because of jnthn's well deserved holiday | 11:26 | |
[Coke]++ did tag the release, so a tarball will become available sometime next week | |||
lucasb_ | oh, ok. thank you, lizmat | 11:27 | |
11:32
Skarsnik joined
|
|||
pink_mist | github.com/MoarVM/MoarVM/archive/2015.10.tar.gz isn't what you want? | 11:33 | |
FROGGS | pink_mist: no, that's not quite it | 11:34 | |
pink_mist | huh, ok | ||
FROGGS | the adhoc created zip file from github tags might contain other data | 11:35 | |
this is not the tarball the release manager created | |||
moritz | should show up here: moarvm.org/releases/ | ||
11:37
tokuhir__ joined
11:39
dayangkun left
|
|||
Skarsnik | Hello! I tried to bind a C lib with NativeCall. I have issue casting a pointer to a struct. I use nativecast but it does not give me proper result pastebin.com/PDFMqCxK (the equivalent C code, give me a length of 1 for the vector) | 11:41 | |
11:41
tokuhir__ left
11:43
kid51 joined
|
|||
moritz | Skarsnik: why not declare gumbo_parse to return a gumbo_output_s in the first place? | 11:43 | |
Skarsnik | does that work? | ||
but etheir way I will need to use nativecast to get the other fields in goutput | 11:44 | ||
gfldex | Skarsnik: please file a report to [email@hidden.address] | 11:45 | |
11:45
__Greg joined,
__Greg left
|
|||
FROGGS | gfldex: why do you thing is it a rakudobug? | 11:45 | |
11:45
ilbelkyr left
|
|||
FROGGS | Skarsnik: if I read it right in line 29, the errors member is inlined | 11:46 | |
11:46
ilbelkyr joined
|
|||
FROGGS | Skarsnik: if that is correct you need to use the HAS keyword in line 35 | 11:46 | |
Skarsnik | Oh right. I saw what you mean. Does that mean that I can replace stuff like node_t with node_s and nativecall will do the cast? | 11:49 | |
FROGGS | Skarsnik: yes | 11:50 | |
11:51
kid51 left
|
|||
Skarsnik | hm, still does not work. and it change the nativesize of g_ouput | 11:55 | |
11:56
rindolf left
|
|||
Skarsnik | Interesting the C size of the goutput struct is 20 (in a C prog) | 11:58 | |
FROGGS | Skarsnik: if nativecizeof reports a different size, then you declared the CStruct wrong | 12:00 | |
12:00
domidumont joined
|
|||
FROGGS | Skarsnik: and because that is important I usually test this; see the test 00-* github.com/FROGGS/p6-XML-LibXML/tree/master/t | 12:01 | |
Skarsnik | well that weird printf("GV: %d\n", sizeof(GumboVector)); | 12:02 | |
printf("GO: %d\n", sizeof(GumboOutput)); I get 12 and 20. and I get this size if I use has (for GO), but with HAS it's 28. | |||
12:03
domidumont1 left
12:05
llfourn left
|
|||
Skarsnik | github.com/google/gumbo-parser/blo...rc/gumbo.h (the original header) | 12:05 | |
FROGGS | uhh | 12:07 | |
Skarsnik: don't use uint | |||
Skarsnik | I am surprised nobody write a small thing to create nativecall stuff from an header | ||
FROGGS | use uint32 if it is uint in C | ||
moritz | Skarsnik: the reason is that it's not small :/ | ||
FROGGS | because it won't be a small thing thanks to macros and #includes :o) | ||
Skarsnik | ooh | 12:08 | |
moritz | one could always use a C preprocessor that expands the macros and #includes | ||
still, requires a full C parser | |||
Skarsnik | It was the uint >< | ||
FROGGS | like clang | ||
moritz | and C isn't simple to parse | ||
12:09
llfourn joined
|
|||
Skarsnik | I don't know, just parsing definition after the preprocessor does not look so hard ~~ | 12:09 | |
DrForr | And once you've undone the C macros there's a good chance that the structure that *looked* simple bears no relation to the code you see. | ||
I've looked into it :/ | 12:10 | ||
abraxxa | use llvm/clang? | ||
leont | m: $*OUT ~~ :t | 12:11 | |
camelia | rakudo-moar 3df263: OUTPUT«Cannot find method 'isatty': no method cache and no .^find_method in block <unit> at /tmp/rW4wFP2spA:1» | ||
leont | Smells like a bug to me, though probably one that needs an nqp implementation :-/ | ||
Skarsnik | FROGGS, should nativecall doc be updated to include uint and the bool type (exist in C99)? | 12:12 | |
But thx for the help people :) | |||
FROGGS | Skarsnik: yes, we should update it | ||
[Coke] prepares to send out the email but checks backlog first... | 12:13 | ||
Skarsnik | I put int8 for bool but... apparently it depend on the compilateur ~~ | 12:14 | |
12:15
tokuhir__ joined
|
|||
pink_mist | hmm, I thought C didn't have a bool type .. or has that changed in recent years? | 12:15 | |
12:16
JimmyZ joined
|
|||
Skarsnik | It's in C99 in stdbool.h | 12:17 | |
lizmat | I wonder how hard it would be to make a method on Regex that would return a Str if the regex consists of characters that can be matched directly | ||
/abc/ -> abc | 12:18 | ||
llfourn | /'abc'/ -> abc # ? | ||
lizmat | /^abc/ -> '' # because of ^ | ||
dalek | kudo/nom: c8c4946 | coke++ | docs/announce/2015.10.md: fix a whoopso This now matches the announcement sent out. |
||
moritz | lizmat: iirc jnthn++ did a talk on inverting regexes with evil meta programming tricks | ||
lizmat | so we could optimize things like split /abc/ | ||
pink_mist | lizmat: Higher Order Perl (for perl5) has some instructions for how to create an iterator for all the strings that would match a given regex :P | 12:19 | |
llfourn | m: say 'abc' ~~ /abc/ | ||
camelia | rakudo-moar 3df263: OUTPUT«「abc」» | ||
leont | How does a closed method on Tap sound? To check if you're Tap is still alive… | 12:20 | |
Or is that a sign I'm abusing Supplies? | |||
12:21
rindolf joined
|
|||
lucasb_ | [Coke]: are talking about the release announce email? have you sent it already? I think I have a comment... | 12:21 | |
lizmat | leont: .tap takes a :closing param that will be executed when the tap closes | ||
moritz | leont: no idea :-) | ||
nine | leont: yes, as far as I could find out there never has been a isatty method. Except maybe for some parrot thing | ||
lizmat | leont: maybe that would be better ? | 12:22 | |
nine: maybe we should make .t a NYI | |||
FROGGS | lizmat: a method on Regex would be too late me thinks | ||
nine | lizmat: yes. It is on the xmas list btw. | ||
leont | Would be cumbersome. What I really need is $tap.close if $tap.defined and not $tap.closed | ||
colomon | parrot definitely had isatty | 12:23 | |
yoleaux | 22 Oct 2015 08:09Z <lizmat> colomon: is very-broken-combinations in List still needd ? | ||
22 Oct 2015 13:08Z <lizmat> colomon: I've removed the code with 987cdeec38 | |||
FROGGS | lizmat: but we can do that when optimizing a regex's AST | ||
nine | libuv and therefore moar already provides the needed information. It's just not used for an isatty implementation but for setting up STDOUT/STDERR. | ||
lizmat | FROGGS: it was just a thought for a possible opt | ||
FROGGS | lizmat: aye | ||
lizmat | nine: afaik, brrt has looked into that, and found it to be less than trivial | 12:24 | |
leont | Yeah, this shouldn't be hard to implement if one's familiar with moar/jvm | 12:25 | |
Now my harness can't differentiate between outputting to file and outputting to console, defaulting to the latter. It's not quite optimal. | |||
lizmat | yup | 12:26 | |
12:26
softmoth joined
|
|||
Skarsnik | FROGGS, enums are assumed int (int32)? I saw some int8 with a quick look in your libxml binding | 12:26 | |
pink_mist | NYI means Not Yet Invented? | ||
moritz | yes | 12:27 | |
pink_mist | cool | ||
colomon | Not Yet Implemented | ||
pink_mist | ah, that works too :P | ||
[Coke] | lucasb_: you missed your window. | ||
what was your comment? | |||
FROGGS | Skarsnik: I don't know how the enum rules are yet... | ||
Skarsnik | from what I read, C standard said must fit in a int at least. but the compilo is free to change for a smaller thing if all value fit.. | 12:29 | |
12:30
Ven left,
softmoth left
|
|||
lucasb_ | [Coke]: oops, sorry. I thought since the releases are for monthly users and they require moarvm 2015.10, but there isn't one right now | 12:30 | |
so, the user can download the tarballs, but they will not be able to build it until a moar tarball is released. but ok, it's harmless, we can wait :) | 12:31 | ||
nine | leont: use NativeCall; sub isatty(int) is native(Str) returns int { * }; say isatty(0) # just a thought | ||
12:32
Ven joined
|
|||
leont | nine: is there a way to get the file descriptor out of a handle? | 12:33 | |
lucasb_ | [Coke]: btw, thank you for the release! | 12:35 | |
12:36
psch_ is now known as psch
|
|||
lizmat | leont: if we can, it should be through the $!PIO | 12:36 | |
12:37
risou left
|
|||
lizmat | but I don't know of any way | 12:37 | |
leont | The real solution is $!PIO.isatty anyway | 12:39 | |
12:40
andreoss joined
|
|||
andreoss | m: use fatal; 0 == Nil | 12:41 | |
camelia | rakudo-moar 3df263: OUTPUT«WARNINGS:Useless use of "==" in expression "0 == Nil" in sink context (line 1)Use of Nil in numeric context in block <unit> at /tmp/bcogLD5gvx:1» | ||
andreoss | m: use fatal; say 0 == Nil | 12:42 | |
camelia | rakudo-moar 3df263: OUTPUT«Use of Nil in numeric context in block <unit> at /tmp/70PDFwiScC:1True» | ||
andreoss | how do i fatalize warnings? | ||
[Coke] | lucasb_: there is a tagged moarvm as was mentioned earlier. | 12:44 | |
but if you're running the rakudo 2015.10 release, it doesn't need the moarvm tarball - it needs the moarvm tag in the git repo. | |||
you only need the moarvm tarball if you're building it yourself from the vm up. (rather than from rakudo down). | 12:45 | ||
(so, macports moarvm needs the tarball, e.g.) | 12:46 | ||
lucasb_ | [Coke]: you are right. I always built the 3 tarballs separated, moar->nqp->rakudo. I forgot about the git usage. | ||
gfldex | m: sub morebetter(Any:D $item){ $item ~ ' is better' }; my @l = 1,2,3; @l>>.=&morebetter; @l.perl.say; | 12:55 | |
camelia | rakudo-moar c8c494: OUTPUT«["1 is better", "2 is better", "3 is better"]» | ||
12:55
rindolf left
12:59
ambs left
|
|||
psch | r: { say $^a }.assuming("52")() | 13:00 | |
yoleaux | 10:35Z <nine> psch: My "doesn't even warrant a comment" was highly sarcastic :) In fact I already have the comment you suggested in there. | ||
camelia | rakudo-moar c8c494: OUTPUT«52» | ||
..rakudo-jvm c8c494: OUTPUT«java.lang.RuntimeException: No such attribute '$!signature' for this object in block <unit> at /tmp/tmpfile:1» | |||
13:00
ambs joined
|
|||
psch | the jvm RTE is because of a missing decont, from the looks of it | 13:00 | |
...but why is moar fine with that? :S | |||
13:01
AndyDee joined,
sitaram left
13:02
Oatmeal joined
|
|||
FROGGS | psch: because moar knows, and can do whatever the user intended to do | 13:04 | |
psch | FROGGS: uhh, knows what? knows to add deconts when neccessary? | 13:06 | |
FROGGS | some stuff just works without a (for jvm/parrot) needed decont... dunno why axactly | 13:08 | |
exactly* | |||
psch | hrm, that's a bit discouraging | 13:09 | |
i mean, it probably means we should port that | 13:10 | ||
andreoss | where the warning handling is described? | ||
psch | and *that* is discouraging :P | ||
13:11
yakudza joined
|
|||
psch | i don't have any hope for finding out where that decont magic happens though i think | 13:13 | |
13:14
sufrostico joined
|
|||
masak | evenin', #perl6 | 13:14 | |
llfourn | o/ masak | ||
psch | hi masak o/ | 13:15 | |
pmurias | how do I call a method from a parent class? | ||
masak: hi | |||
gfldex | m: multi foo(){}; say &foo.^methods.grep: *.defined; | 13:16 | |
camelia | rakudo-moar c8c494: OUTPUT«(<anon> <anon> <anon> soft <anon> <anon> yada perl <anon> onlystar candidates unwrap wrap <anon> <anon> package leave <anon> <anon> cando <anon> <anon> <anon> <anon> multi <anon> <anon> add_phaser phasers assuming WHY set_why perl of <anon> returns fire_ph…» | ||
gfldex | m: multi foo(){}; say &foo.gist; say &foo.^name | ||
camelia | rakudo-moar c8c494: OUTPUT«sub foo (;; Mu | is raw) { #`(Sub|59059472) ... }Sub» | ||
gfldex | .gist seams to know the name of &foo. How do I get hold of it? | 13:17 | |
psch | m: multi foo(){}; say &foo.VAR.name | ||
camelia | rakudo-moar c8c494: OUTPUT«foo» | ||
psch | i think there's another way too | ||
gfldex | that should do | 13:18 | |
llfourn | m: my $f = sub foo(){}; say $f.name; | ||
camelia | rakudo-moar c8c494: OUTPUT«foo» | ||
psch | m: multi foo(){}; say &foo.name | ||
camelia | rakudo-moar c8c494: OUTPUT«foo» | ||
psch | yeah :P | ||
llfourn | :D | ||
psch | that's probably better | ||
pmurias | ah found that | ||
llfourn | masak: do you remember me asking about prebinding self to routines like in JS? irclog.perlgeek.de/perl6/2015-10-18#i_11394077 | ||
you can do it! | 13:19 | ||
m: lass A { method a($a) { $a.say; } }; my $a = A.new; my &bound = $a.^find_method('a').assuming($a); bound('cool beans') | |||
camelia | rakudo-moar c8c494: OUTPUT«5===SORRY!5===Undeclared name: A used at line 1Undeclared routine: lass used at line 1. Did you mean 'last'?Other potential difficulties: Useless declaration of a has-scoped method in mainline (did you mean 'my method a'?)…» | ||
llfourn | m: Class A { method a($a) { $a.say; } }; my $a = A.new; my &bound = $a.^find_method('a').assuming($a); bound('cool beans') | ||
camelia | rakudo-moar c8c494: OUTPUT«5===SORRY!5===Undeclared names: A used at line 1 Class used at line 1Other potential difficulties: Useless declaration of a has-scoped method in mainline (did you mean 'my method a'?) at /tmp/uNcqCVL9F6:1 ------> …» | ||
llfourn | m: class A { method a($a) { $a.say; } }; my $a = A.new; my &bound = $a.^find_method('a').assuming($a); bound('cool beans') | ||
camelia | rakudo-moar c8c494: OUTPUT«cool beans» | ||
llfourn apologises for the spam | |||
psch | FROGGS: that one decont brings 6 spectest files to PASS and lets two other files fail differently | ||
13:20
lucasb_ left
|
|||
llfourn | thanks to psch++ for revlealing assuming to me | 13:20 | |
13:20
raiph joined
|
|||
dalek | kudo/nom: 9bc5a0a | peschwa++ | src/core/Block.pm: Add a missing decont. Apparently moar does some magic which makes us not need this, but jvm doesn't. |
13:21 | |
psch | two files have about 40 failures with "Expected zip zop got zop zip" vOv | 13:23 | |
S32-array/adverbs.t and S32-hash/adverbs.t | |||
13:23
Ven left
|
|||
timotimo | tokuhiro++ # writing a websocket server library before i could finish mine, yay! | 13:24 | |
psch | r: my %h; { %h{}:zip:zop; CATCH { default { .unexpected.perl.say } } } | 13:25 | |
camelia | rakudo-jvm c8c494: OUTPUT«["zop", "zip"]» | ||
..rakudo-moar c8c494: OUTPUT«["zip", "zop"]» | |||
psch | not sure if that should be thrown sorted or if the test should sort before comparing | ||
pink_mist | sorted? I'd argue that it should be in the same order they were encountered | 13:27 | |
(which is the same order as sorted order in this case) | |||
13:28
aborazmeh joined,
aborazmeh left,
aborazmeh joined
|
|||
FROGGS | psch: is that also such a missing-decont candidate? | 13:28 | |
src/core/Baggy.pm: my $iter := nqp::iterator(nqp::getattr(%!elems,Map,'$!storage')); | |||
note, I'm doing: grep -r -P 'nqp::getattr(|_s|_i|_n)\((?!nqp::decont)(?!self)' src/core/* | 13:30 | ||
psch | FROGGS: i have no FAILs in any test file with "bag" in its name | 13:31 | |
FROGGS | mkay | ||
psch | i've pasted a gist for the spectest summary with comments ealier today... | 13:32 | |
gist.github.com/peschwa/e2b203ffd43e700c6207 | |||
timotimo | uh oh | ||
i may have just killed the 2015.10 tag from the moarvm repository | |||
psch | "No such attribute '$!signature'" is what i fixed with the decont just now | ||
timotimo | [Coke]: you might need to re-push it :o | ||
FROGGS | /o\ | 13:33 | |
yep, it is gone | |||
psch | m: MY::.values.list.elems # one of the more interesting jvm failures... | 13:34 | |
camelia | ( no output ) | ||
psch | j: MY::.values.list.elems # one of the more interesting jvm failures... | ||
camelia | rakudo-jvm c8c494: OUTPUT«java.lang.NullPointerException in block <unit> at /tmp/kUy3vBFHP3:1» | ||
psch | (also grr muscle memory...) | ||
FROGGS | timotimo: I repushed [Coke]'s tag: github.com/MoarVM/MoarVM/releases/tag/2015.10 | ||
psch | and there's three "expected Positional but got Seq" and three "this Seq has already been iterated" | 13:35 | |
hm, i think X::AdHoc instead of X::Paramter::RW is next though | 13:36 | ||
13:37
spider-mario left
|
|||
[Coke] | timotimo: how the hell can you kill a tag? | 13:38 | |
psch | r: multi f(Int:D $) { "Int:D" }; multi f(int $) { "int" }; say f 5 | 13:39 | |
camelia | rakudo-{moar,jvm} c8c494: OUTPUT«int» | ||
13:39
skids joined
|
|||
psch | oh, they agree | 13:39 | |
that's curious | |||
timotimo | [Coke]: in the github interface for releases and tags | 13:40 | |
i clicked on the 2015.10 release and there was a nice, shiny "delete" button | |||
it said "this will delete the information for this tag" | |||
13:40
Ven joined,
actualeyes_ left
|
|||
timotimo | and i was like "this sounds like exactly what i want! keep the tag, but throw out the github release shit!" | 13:40 | |
except it also killed the tag | |||
at one point it was actually possible to go through the releases on github and delete them somehow | 13:41 | ||
because people keep seeing the "19 releases" and thinking "cool! i want me some tarballs!" | |||
psch | m: ++4 | ||
camelia | rakudo-moar c8c494: OUTPUT«Parameter '$a' expected a writable container, but got Int value in block <unit> at /tmp/dJyhcT6rP1:1» | ||
timotimo | and then configure says "dude, where's my files?" | ||
pmurias | tarballs *feel* much more trustworthy then random stuff from github ;) | 13:42 | |
moritz | and if you have submodules, there's a real difference :-) | 13:44 | |
timotimo | i feel like asking github support about this | ||
"can we either get a checkbox to disable the releases feature, or a way to get github to also package submodules with the tarball?" | |||
pmurias | couldn't Configure.PL warn about missing submodules? | 13:45 | |
13:45
tokuhiro_ left
|
|||
timotimo | yeah, that's also a possibility | 13:46 | |
13:46
abraxxa left
|
|||
timotimo | however | 13:46 | |
13:46
Actualeyes joined
|
|||
timotimo | getting a message like "HEY MCFLY YOU BOZO! github releases don't work with submodules! unless you got POWER!" is ... not exactly friendly | 13:46 | |
13:46
ely-se left,
Krabbe_ joined
|
|||
pmurias | timotimo: friendlier than stuff failing with a "omg! this rakudo thing is broken beyond repair and missing files!" | 13:48 | |
timotimo | probably | 13:50 | |
timotimo recently saw BttF 1 and 2 with friends and has been reminded of all the fun quotes | |||
pmurias | timotimo: ./nqp-m --optimize=off --target=ast should print out the ast with optimalization disabled? | ||
13:52
ely-se joined
|
|||
moritz | you don't even need --optimize=off | 13:52 | |
because optimizations happen after the "ast" stage | |||
timotimo | that'? right | ||
we have a --target=optimize for seeing the optimized ast | |||
moritz | you need --stage=optimize to show the AST after optizmi.. what timotimo said | ||
13:53
Actualeyes1 joined
|
|||
timotimo AFK for a bit | 13:53 | ||
13:53
Actualeyes1 left,
LarryWall joined
|
|||
FROGGS | ohh! | 13:53 | |
the famous LarryWall just entered the hall! /o/ | 13:54 | ||
pmurias | moritz: I see stuff like lowered_for_it__1 in the output | ||
FROGGS: where are you? | |||
LarryWall | So... you guys must save a lot of money on condoms | ||
FROGGS | pmurias: at my office | ||
13:55
Actualeyes1 joined
|
|||
lizmat | LarryWall: we do, because we don't live in Denmark | 13:55 | |
FROGGS | LarryWall: O.o | ||
masak | hm, I can't /op on this channel anymore. | ||
masak hugs LarryWall instead | |||
LarryWall | So... any ladies online? | ||
masak | anyone else op? | ||
FROGGS | masak: maybe diakopter? | 13:56 | |
masak | hmm. | ||
FROGGS | are condoms actually more expensive in .dk? | ||
13:56
ChanServ sets mode: +o moritz,
moritz sets mode: +o masak
|
|||
moritz | masak: there you go | 13:57 | |
13:57
raiph left
|
|||
masak | thanks :) | 13:57 | |
tadzik | FROGGS: I guess they may be free in .NL :) | ||
masak | I think I just didn't remember how to ChanServ :) | ||
13:57
moritz sets mode: -o moritz
|
|||
moritz | masak: /msg chanserv op #perl6 | 13:57 | |
masak | right. | ||
lizmat | tadzik: actually, they used to be if you were young, and knew where to get them | 13:58 | |
LarryWall | What's your favorite Kalle Pimp song? | ||
FROGGS | tadzik: really? well, what do I know, I've got a bunch of kids instead :o) | ||
13:58
LarryWall was kicked by masak (LarryWall))
|
|||
tadzik | lizmat: oh, I think I know what you mean :) | 13:58 | |
FROGGS | he was lame anyway | ||
Skarsnik | hm, does we have something to know the type associated with size_t in NativeCall? (or other standard type like that) | ||
13:58
Actualeyes left,
ChanServ sets mode: -o masak
|
|||
dalek | kudo/nom: 325951d | coke++ | docs/release_guide.pod: Claim YA release |
13:59 | |
FROGGS | m: native size_t is Int is ctype("size_t") is repr("P6int") { }; | ||
camelia | rakudo-moar 9bc5a0: OUTPUT«5===SORRY!5=== Error while compiling /tmp/YqVCgOqEsmUnhandled C type 'size_t'at /tmp/YqVCgOqEsm:1» | ||
FROGGS | Skarsnik: no, not yet | 14:00 | |
14:00
ely-se left
|
|||
FROGGS | Skarsnik: we need to map these manually, that's why we just have a few | 14:00 | |
Skarsnik | size_t is ulong for me | ||
masak .oO( ulong tea ) | |||
skids | .oOlong tea | 14:01 | |
Skarsnik | no way to get them from the c part of nativecall? | ||
FROGGS | Skarsnik: you can use Inline::C | 14:02 | |
Skarsnik | I mean, in Nativecall code? could they be gathered when rakudo is build? | 14:03 | |
FROGGS | Skarsnik: this information can only be gathered when C code is compiled | ||
Skarsnik: so, at the time we build moarvm | 14:04 | ||
14:04
hey joined
|
|||
hey | Ranger price sort de ce corps | 14:04 | |
14:04
hey is now known as Guest77416
|
|||
Skarsnik | Sorry, I don't really know how everything is build x) | 14:05 | |
FROGGS | Skarsnik: I think this is where we handle the 'is ctype' trait in moar: github.com/MoarVM/MoarVM/blob/mast...int.c#L112 | 14:06 | |
Skarsnik: and that's the place where site_t might want to go | |||
dalek | kudo/nom: 9d67fe8 | lizmat++ | src/core/IO/ (2 files): Introducing IO::Path/Handle.split Just like Str.split, but then lazily on files. This should allow us to implement the line-input-separator properly on file handles. |
14:08 | |
14:08
Guest77416 left,
aborazmeh left
|
|||
lizmat | fwiw, if you're sure about your line endings, "foo".IO.split("\n") is about 2x as fast as "foo".IO.lines | 14:09 | |
14:09
softmoth joined,
RabidGravy joined
|
|||
Ven | shouldn't .lines defer to that then? :P or does it try to match \r, \r\n, and \n? | 14:11 | |
lizmat | lines treats \n \r \r\n transparently, even if mixed in the same file | 14:12 | |
14:12
Alina-malina left
|
|||
Skarsnik | size_t is an unsigned integer type used to represent the size of any object (including arrays) in the particular implementation. The sizeof operator yields a value of the type size_t. The maximum size of size_t is provided via SIZE_MAX, a macro constant which is defined in the <stdint.h> header (cstdint header in C++). size_t is guaranteed to be at least 16 bits wide. Additionally, POSIX includes ssize_t, which is a signed integral | 14:13 | |
type of the same width as size_t. | |||
Still confuse me on what size_t is x) | |||
PerlJam | lizmat: if we had a fast path .lines that just did split("\n"), that would be nice. maybe .lines(:unix) or somesuch | 14:14 | |
lizmat | PerlJam: it should just look at what .nl is | ||
and then DoTheRightThing(TM) | |||
PerlJam | even better | ||
lizmat | looking at that now :-) | ||
PerlJam | lizmat++ | ||
gfldex | i would prefere .lines(:unix), mostly because of Samba | 14:15 | |
PerlJam | gfldex: one thing does not necessarily preclude the other. Besides, you can set :nl | 14:16 | |
14:16
tokuhir__ left
|
|||
gfldex | i would prefer not to be able to forget to set :nl :) | 14:16 | |
FROGGS | Skarsnik: that just means that it depends on the platform | 14:17 | |
psch | hmm, does the jvm binder even support throwing typed exception..? | 14:18 | |
gfldex | I used to work for a typesetting shop with files coming both from clients and inhouse from Win, OSX and linux. Most stuff came from Win but every now and then some stuff came as a sql-dump from a client. Tripping over newlines and BOMs aint now fun. | 14:19 | |
psch | actually, "does nqp.runtime.ExceptionHandling.dieInternal support dying with p6-level exceptions" is the better question... | 14:20 | |
lizmat | gfldex: BOM's are now handles | ||
gfldex | having .lines a wee bit slower but having a nice default may slow down the computer part but will increase the productiviy on the human side. | ||
lizmat | gfldex: and \r \n \r\n are handled transparently by default | ||
you can even mix line endings in a file (handy if it has been catted from different sources) | 14:21 | ||
14:21
ely-se joined
|
|||
andreoss | \part | 14:22 | |
14:22
andreoss left
14:26
AndyDee left,
Krabbe_ left
|
|||
lizmat | gfldex: I stand corrected, it does *not* handle them transparently :-() | 14:26 | |
14:26
xinming_ left
|
|||
gfldex | please prevent hair grayage by making it transparently :) | 14:27 | |
lizmat | Str.lines does support it transparently | ||
hmmm.... | |||
gfldex .oO( Perl 6 makes coders look young and beautiful! ) | 14:28 | ||
14:30
kmel joined
|
|||
lizmat | currently \n and \r\n are transparently supported when :chomp is True (which is the default) | 14:30 | |
\r is currently *not* supported by default | |||
timotimo | oh | 14:31 | |
IO's lines handling \n, \r and \r\n transparently is something froggs worked on a long time ago, but if i understand jnthn correctly, at least \r\n will become a single grapheme in NFG in the near future | |||
FROGGS | true | 14:32 | |
14:32
tokuhiro_ joined
|
|||
timotimo | i wonder how much of the performance impact comes from \r\n being two characters so far | 14:32 | |
and how much of it comes from having multiple different potential split points | |||
lizmat | timotimo: most of the performance problem is chomping | ||
14:33
telex left
|
|||
lizmat | that's a method call for each line | 14:33 | |
timotimo | FROGGS: but multiple different line enders would still be interesting for cases where your lines end in "beep" and "boop" instead of \r, \n and \r\n | ||
FROGGS | timotimo: aye | ||
timotimo | lizmat: is there a good reason chomping doesn't live at the VM level? otherwise: is there a good reason the chomping logic isn't inlined to IO's lines method? | ||
FROGGS | timotimo: the design docs even say that you will be able to supply a regex there, but I hope that won't go in | 14:34 | |
lizmat | FROGGS: IO::Handle.split supports regexes now, so you *can* | ||
FROGGS | timotimo: the reason that so much is high level is that .lines was meant to repeatedly call .get | ||
timotimo: so your custom handle type only needs to implement .get, and all is fine | |||
14:35
telex joined
|
|||
FROGGS | timotimo: but nowadays, .lines doesnt call .get anymore, so that idea died | 14:35 | |
lizmat | FROGGS: that was pre-GLR thinking | ||
now we have pull-one() that needs to be implemented :-) | |||
FROGGS | lizmat: that was an API design decision | ||
14:35
TimToady left
|
|||
FROGGS | and it died before the GLR was a thing :o) | 14:35 | |
lizmat | I'm not sure .get has a reason to love nowadays, with proper lazy lists and all | 14:36 | |
*live | |||
FROGGS | no reason to live? ó.ò | ||
novapatch | is .lines supposed to return the newline or not? | ||
FROGGS | err, love | ||
damn | |||
lizmat | novapatch: not by default | ||
timotimo | there's still a good reason to get a single line off of a file descriptor | ||
so .get gets to stay, IMO | |||
FROGGS | novapatch: if you disable chomping you'll get the newlines | ||
timotimo: sure | 14:37 | ||
lizmat | timotimo: but then I'd rather implement .get as a shortcut to .lines | ||
FROGGS | timotimo: question is if .lines needs to call .get or not... and probably the answer is 'not' | ||
14:38
risou joined
|
|||
timotimo | lizmat: .get should be .lines()[0]? :) | 14:38 | |
novapatch | lizmat: thanks, glad to hear it :) | 14:39 | |
lizmat | well, a little smarter than that: it would but the IO::Handle with the .lines Seq and feed from that ? | ||
timotimo | ah | 14:40 | |
yeah, that does make sense; how about re-configuring the file handle in between, though? | |||
14:40
telex left
|
|||
lizmat | timotimo?? | 14:40 | |
timotimo | like, you're getting an HTTP message through a socket; the beginning will be ASCII with \r\n, terminated by \r\n\r\n, then the encoding could be EBCDIC | ||
FROGGS | aye | 14:42 | |
lizmat | you could make the line ending \r\n\r\n then ? | ||
FROGGS | we have this problem in H:UA | ||
timotimo | oh, you mean grab the header part with a single .get call? | ||
lizmat | yup | ||
that should work now already, afaics | |||
FROGGS | still kinda ugly | 14:43 | |
then you've got an ascii string which in fact is meant to a buf of some kind | |||
ugexe | headers are ascii | ||
lizmat | are we actually sure that a HTTP header is ASCII ? | ||
ugexe | fetch the rest in binary | ||
yes | 14:44 | ||
FROGGS | aye | ||
timotimo | well ... | ||
ugexe | i use \r\n as newline and look for a blank line to know when i hit the body | ||
timotimo | IETF says to be lenient in what you accept and ... the other thing in what you send | 14:45 | |
en.wikipedia.org/wiki/Robustness_principle | |||
ugexe | its ascii so there is a base for getting the actual encoding | ||
14:45
khw joined
|
|||
timotimo | what do you mean, "base"? :) | 14:46 | |
oh! | |||
i see what you mean | |||
14:46
tokuhirom joined
|
|||
ugexe | right, you would have to decode what you need to know the decoding otherwise | 14:46 | |
timotimo | spec tells you the part that says "Content-Encoding: EBCDIC" must be encoded in ASCII | ||
14:47
TimToady joined
|
|||
timotimo | oh wow, EBCDIC is kind of weird | 14:48 | |
ugexe | spec says you can ignore non-ascii | ||
timotimo | UTF-EBCDIC is a character encoding used to represent Unicode characters. It is meant to be EBCDIC-friendly, so that legacy EBCDIC applications on mainframes may process the characters without much difficulty. - whaaaaaat %) | 14:50 | |
14:51
tokuhirom left
|
|||
ilmari | timotimo: it's to EBCDIC what UTF-8 is to ASCII | 14:51 | |
skids | ...and "text/" and latin-1 must actually be windows1252 nowadays, per HTML5 spec. Go figure. People sure ran roughshod over those. | 14:52 | |
timotimo | yeah, i get that | ||
hm, i *think* moarvm actually supports 1252 | |||
skids | Yeah I hooked up all the guts a while back. It's as functional as latin-1 (which is, JVM has some issue) | 14:53 | |
14:53
lucs_ is now known as lucs
|
|||
timotimo | :( | 14:53 | |
skids | (The guts were thoughtfully already there I just glued them together) | ||
timotimo | skids++ # making perl6 compatible with the future from tha past | 14:54 | |
14:54
telex joined,
TimToady left
14:55
TimToady joined
|
|||
RabidGravy | I think I changed something in H::UA to decode as latin-1 rather than ascii, something was blowing ip | 14:57 | |
up | |||
ugexe | there are lot of cases that has been done. Proc.out is another one | ||
14:59
telex left
|
|||
dalek | kudo/nom: 89b75fa | lizmat++ | src/core/IO/Handle.pm: Remove fossil |
14:59 | |
15:05
tokuhiro_ left
15:06
bpmedley joined
|
|||
RabidGravy | yeah, there are people to young to remember that ascii is 7-bit ;-) | 15:07 | |
ugexe | IO::Spec.splitdir is broke now | ||
15:07
n0tjack joined
|
|||
ugexe | trying to figure out the context | 15:08 | |
hoelzro | o/ #perl6 | 15:09 | |
RabidGravy | haaaarr | ||
15:11
rurban joined,
diana_olhovik left
|
|||
tadzik | nine: ping | 15:11 | |
dalek | Heuristic branch merge: pushed 70 commits to specs/newio by lizmat | 15:14 | |
15:16
rurban left,
pfortuny joined
15:18
telex joined
|
|||
ugexe | m: my $path = "/home/user/Test.file"; say $path.IO.parent; say $path.IO.SPEC.splitdir($path.IO.parent) | 15:20 | |
camelia | rakudo-moar 9d67fe: OUTPUT«"/home/user".IOFailed to open file /home/user: no such file or directory in block <unit> at /tmp/zUWQbfOwIP:1» | ||
ugexe | star: my $path = "/home/user/Test.file"; say $path.IO.parent; say $path.IO.SPEC.splitdir($path.IO.parent) | ||
camelia | star-m 2015.09: OUTPUT«"/home/user".IO( home user)» | ||
leont | How do I get the type-object inside the class definition without typing it in full? | 15:21 | |
Now doing class Foo { method bar { 42 }; my $bar = Foo.bar }, is there a more generic way? | |||
FROGGS | ::?CLASS | ||
15:22
ely-se left
|
|||
n0tjack | I'm trying to golf FizzBuzz; so far I've got grep {[&] $_ X%%[3,5] }, ^1024; -- can we do shorter? | 15:22 | |
oh, hmm, I suppose that should be | instead of & | |||
leont | FROGGS: thanks! I knew there was a way, just didn't guess the sigil right | 15:23 | |
PerlJam | n0tjack: where's the Fizz and the Buzz? | ||
n0tjack | m: grep {[|] $_ X%%[3,5] }, ^1024; | ||
camelia | ( no output ) | ||
psch | m: say "Fizz"x$_%%3~"Buzz"x$_%%5||$_ for 1..100 # from RC | ||
camelia | rakudo-moar 9d67fe: OUTPUT«12Fizz4BuzzFizz78FizzBuzz11Fizz1314FizzBuzz1617Fizz19BuzzFizz2223FizzBuzz26Fizz2829FizzBuzz3132Fizz34BuzzFizz3738FizzBuzz41Fizz43…» | ||
n0tjack | m: say grep {[|] $_ X%%[3,5] }, ^1024; | ||
camelia | rakudo-moar 9d67fe: OUTPUT«(0 3 5 6 9 10 12 15 18 20 21 24 25 27 30 33 35 36 39 40 42 45 48 50 51 54 55 57 60 63 65 66 69 70 72 75 78 80 81 84 85 87 90 93 95 96 99 100 102 105 108 110 111 114 115 117 120 123 125 126 129 130 132 135 138 140 141 144 145 147 150 153 155 156 159 160 162…» | ||
FROGGS | leedo: :: always means something indirect, and it is compile time known (?)... | ||
err | |||
leont: ^^ | |||
leedo: sorry | |||
n0tjack | PerlJam: Oh, I wasn't thinking about the actual strings fizz and buzz, just the logic | 15:24 | |
psch: Oh, that's cute. | |||
leont | Related to that, how do I load a function from a runtime-required module? | ||
n0tjack | I guess the postfix topicalizers must have very high precedence | 15:25 | |
leont | Currently doing require Terminal::ANSIColor; GLOBAL::Terminal::ANSIColor::EXPORT::DEFAULT::<&colored> // sub (Str $text, Str $) { $text } | ||
That seems rather suboptimal | |||
n0tjack | seems like you can put anything before a postfix for or if or given | ||
15:25
Ven left
|
|||
ugexe | the above error can be worked aroudn with .dirname instead of .parent | 15:25 | |
moritz | leont: require Terminal::ANSIColor <&colored>; # would be my first guess | 15:26 | |
15:26
telex left
15:27
Ven joined
15:28
alexm joined
|
|||
hoelzro | how does that impact the compiler, though? since the definition of &colored isn't available at compile time, can it figure out which type of callsite to use? | 15:28 | |
15:28
telex joined
15:29
AlexDaniel joined,
Ven left
|
|||
hoelzro | or maybe it falls back to some generic callsite | 15:29 | |
leont | moritz: that seems to help :-) | 15:30 | |
PerlJam | maybe look at S11:Runtime_Importation ? | ||
synbot6 | Link: design.perl6.org/S11.html#Runtime_Importation | ||
skaji | hi, I hope JSON::Pretty in rakudo core supports emitting one-line json and emitting canonical json (sorting object keys) | 15:31 | |
ilmari | can I build/test nqp against a built git checkout of moar, or do I need to install moar to somewhere? | ||
15:31
Ven joined
|
|||
leont | Can't make an optional import out of it, I expected this to work: | 15:32 | |
PerlJam | skaji: I doubt it. | ||
leont | my &colored = try { require Terminal::ANSIColor <&colored>; &colored } // sub (Str $text, Str $) { $text }; | ||
FROGGS | leont: you can also locate the symbol indirectly by doing: &::('colored') and ::('&colored') | ||
psch | heh, both r-j and r-m have problems with --stage=parse for something like "sub f (| ($a, $b)) { }" | 15:33 | |
r-j throws a StackOverflowError, r-m apparently loops | |||
15:33
telex left
|
|||
leont | FROGGS: not sure I see what you mean | 15:34 | |
15:34
n0tjack left
|
|||
ugexe | our $signal-handler := &::("signal") ~~ Failure ?? &::("signal-ignore") !! &::("signal") | 15:34 | |
15:34
TimToady left
|
|||
FROGGS | leont: if you require a module without importing anything there (because you are not sure what it exports), you can check/use the symbol later by doing what I wrote | 15:35 | |
leont | How does that solve my problem? | ||
skaji | PerlJam: What you are saying is that they should be done outside rakudo, i.e. external modules, right? | ||
timotimo | yay, i finally gots me some medicine | ||
FROGGS | my &colored = try { require Terminal::ANSIColor; &::('colored') } // sub (Str $text, Str $) { $text }; | ||
star-m; my &colored = try { require Terminal::ANSIColor; &::('colored') } // sub (Str $text, Str $) { $text }; say &colored | 15:36 | ||
star-m: my &colored = try { require Terminal::ANSIColor; &::('colored') } // sub (Str $text, Str $) { $text }; say &colored | |||
camelia | star-m 2015.09: OUTPUT«sub (Str $text, Str $) { #`(Sub|81817872) ... }» | ||
15:36
TimToady joined
|
|||
RabidGravy | boom | 15:36 | |
FROGGS | star-m: my &colored_ = try { require Terminal::ANSIColor; ::('&colored') }; say &colored_ | 15:37 | |
camelia | star-m 2015.09: OUTPUT«(Callable)» | ||
FROGGS | star-m: my &colored_ = try { require Terminal::ANSIColor; ::('&colored') }; say colored_(42) | ||
camelia | star-m 2015.09: OUTPUT«Cannot invoke this object in block <unit> at /tmp/aRPvTxzDIz:1» | ||
PerlJam | skaji: That's where fancy stuff goes, yes :) | ||
FROGGS | star-m: my &colored_ = try { require Terminal::ANSIColor <&colored>; &colored }; say colored_(42) | ||
camelia | star-m 2015.09: OUTPUT«Too few positionals passed; expected 2 arguments but got 1 in sub colored at /home/camelia/star-2015.09/share/perl6/lib/Terminal/ANSIColor.pm:51 in block <unit> at /tmp/EqW8iD79xA:1» | ||
FROGGS | :o( | ||
RabidGravy | boom | ||
FROGGS | I thought my version would work too | ||
RabidGravy: that's just because I'm stupid :o) | 15:38 | ||
15:38
kmel left
|
|||
RabidGravy | but hey I just learned that you can supply imports to are require | 15:38 | |
er, typing gibberish | |||
15:38
kmel joined
|
|||
FROGGS | star-m: my &colored = try { require Terminal::ANSIColor <&colored>; &colored }; say colored(42, 'blue') | 15:38 | |
camelia | star-m 2015.09: OUTPUT«Type check failed in binding $what; expected 'Str' but got 'Int' in sub colored at /home/camelia/star-2015.09/share/perl6/lib/Terminal/ANSIColor.pm:51 in block <unit> at /tmp/EHWLdv51HM:1» | ||
FROGGS | star-m: my &colored = try { require Terminal::ANSIColor <&colored>; &colored }; say colored("42", 'blue') | 15:39 | |
camelia | star-m 2015.09: OUTPUT«0242» | ||
FROGGS | come on... | ||
RabidGravy | yeah | ||
FROGGS | tadzik: you module sucks :P | ||
RabidGravy | and it is indeed blue | ||
FROGGS | tadzik: the readme is not quite informative, and the test is, well... :o) | 15:40 | |
tadzik | :( | ||
15:40
telex joined
|
|||
tadzik | patches welcomE! :P | 15:41 | |
15:41
Ven left
|
|||
FROGGS | heh | 15:41 | |
15:41
alexm left
|
|||
colomon | tadzik: still there? | 15:42 | |
vytas | m: 'my @numbers[5..*] = 3,9 ... *;' | ||
camelia | rakudo-moar 89b75f: OUTPUT«WARNINGS:Useless use of constant string "my @numbers[5..*] = 3,9 ... *;" in sink context (line 1)» | ||
vytas | m: '@numbers[5..*] = 3,9 ... *;' | 15:43 | |
camelia | rakudo-moar 89b75f: OUTPUT«WARNINGS:Useless use of constant string "@numbers[5..*] = 3,9 ... *;" in sink context (line 1)» | ||
colomon | tadzik: I’ve been getting this error for a while in the smoker support code: gist.github.com/ | ||
FROGGS | vytas: that's just a string | ||
PerlJam | vytas: you want fewer single quotes. | ||
colomon | tadzik: err, gist.github.com/colomon/5cf7f3d3ed38c0f4cb56 | ||
dalek | kudo/nom: 0bbd62b | lizmat++ | src/core/Mu.pm: Eradicate Mu.munch now we're in beta officially |
||
PerlJam | (assuming you're trying to actually run the perl code in that string) | ||
vytas | m: my @numbers[5..*] = 3,9 ... *; | 15:44 | |
camelia | rakudo-moar 89b75f: OUTPUT«5===SORRY!5=== Error while compiling /tmp/mFlFSSHgIfShaped arrays not yet implemented. Sorry. at /tmp/mFlFSSHgIf:1------> 3my @numbers[5..*]7⏏5 = 3,9 ... *; expecting any of: constraint» | ||
FROGGS | m: my @numbers; @numbers = [5..*] = 3,9 ... *; say @numbers | ||
camelia | rakudo-moar 89b75f: OUTPUT«[...]» | ||
vytas | m: my @numbers; @numbers[5..*] = 3,9 ... *; # does not generate error | ||
camelia | ( no output ) | ||
FROGGS | vytas: because these are two different things | ||
15:45
duncan_dmg left
|
|||
FROGGS | the exploding one is a shape declaration | 15:45 | |
the working one is about assigning to certain slots | |||
m: my @numbers; @numbers = [5..*] = 3,9 ... *; say @numbers[^10] | |||
camelia | rakudo-moar 89b75f: OUTPUT«(3 9 15 21 27 33 39 45 51 57)» | ||
FROGGS | m: my @numbers; @numbers[5..*] = 3,9 ... *; say @numbers[^10] | ||
camelia | rakudo-moar 89b75f: OUTPUT«()» | ||
FROGGS | m: my @numbers; @numbers[5..*] = 3,9 ... *; say @numbers | ||
camelia | rakudo-moar 89b75f: OUTPUT«[]» | ||
FROGGS | err... | ||
ugexe | m: $*CWD.IO.SPEC.splitdir($*CWD.IO.parent).say | 15:46 | |
camelia | rakudo-moar 89b75f: OUTPUT«'/home' is a directory, cannot do '.open' on a directory in block <unit> at /tmp/rF6n38KcRb:1» | ||
FROGGS | I don't know what to think about that | ||
15:46
FROGGS left
|
|||
leont | How does this work in a one-liner but not in my module? | 15:46 | |
*works | |||
15:46
duncan_dmg joined,
telex left
|
|||
leont | star-m: module Foo { my &colored = try { require Terminal::ANSIColor <&colored>; &colored }; say colored("42", "blue") } | 15:47 | |
camelia | star-m 2015.09: OUTPUT«Cannot invoke this object in block <unit> at /tmp/HoC4Dt7CgT:1» | ||
RabidGravy | I had a thought earlier, which I know is quite rare, but can you make a custom Rangey thing (i.e. a range of arbitrary objects)? | ||
so the range operator will delegate to some class to provide the values | |||
PerlJam | RabidGravy: I think as long as the objects support a .succ method, you may be able to | ||
RabidGravy | ah, .succ | 15:48 | |
vytas | what's shape declaration ? | ||
RabidGravy | fabulous | ||
timotimo | you .succ | ||
RabidGravy | oh I know that | ||
PerlJam | vytas: my @numbers[5..10]; # the [5..10] part is defining the "shape" of the array | ||
timotimo | and your .succ .succs, too! | ||
RabidGravy | and the pony? | ||
timotimo | PerlJam: but that's not yet implemented | 15:49 | |
the pony actually .pred's | |||
15:49
pollei joined
|
|||
PerlJam | timotimo: as vytas has discovered already | 15:49 | |
vytas | my @numbers; @numbers[5..*] = 3,9 ... *; # how is this not shape declaration ? | ||
timotimo | it's not in a declaration | ||
PerlJam | vytas: "my @numbers;" is the declaration, and there is no shape | ||
vytas | agh... thank you | ||
timotimo | we've intentionally made shape definitions look like slices | 15:50 | |
compare it to this: | |||
m: my %foo{Any}; %foo{10} = "hi"; say %foo.perl | |||
camelia | rakudo-moar 89b75f: OUTPUT«(my Any %{Any} = 10 => "hi")» | ||
timotimo | here the syntax for defining the types for the keys uses { }, because that's what a hash slice uses | ||
PerlJam | timotimo: now explain my @array{ <foo bar baz> }; # :-) | 15:52 | |
vytas | m: my Any %foo; %foo{10} = "hi"; say %foo.perl | ||
camelia | rakudo-moar 89b75f: OUTPUT«(my Any % = "10" => "hi")» | ||
15:52
Alina-malina joined
|
|||
[Coke] is so glad the niceville people were nice about me using their name. :) | 15:52 | ||
vytas | I guess i need to read more about Perl6.. | ||
timotimo | PerlJam: i don't actually know anything about shape declarations :P | 15:53 | |
PerlJam | vytas: who doesn't? It's a big language with lots of features | ||
RabidGravy | where is niceville? | ||
timotimo | PerlJam: is that how you define an array that translates a set of keys into numbers instead? | ||
PerlJam | timotimo: aye. S09:User-defined_array_indexing | ||
synbot6 | Link: design.perl6.org/S09.html#User | ||
[Coke] | vytas: welcome aboard. | ||
niceville is here: www.pm.org/groups/787.html | 15:54 | ||
RabidGravy | Florida | ||
found it | |||
PerlJam | [Coke]: an excellent choice too btw | ||
RabidGravy | [Coke], cool that they only have one member too ;-) | 15:55 | |
I think I should start a Belvedere.pm | 15:56 | ||
[Coke] | hee, I just noticed that in his email. :) | ||
15:56
synbot6 left,
synbot6 joined
|
|||
PerlJam | S09:User-defined_array_indexing | 15:56 | |
synbot6 | Link: design.perl6.org/S09.html#User-defi...y_indexing | ||
timotimo | i should poke my buddy from Karlsruhe.pm so that perhaps we can do a little something in the next months | 15:57 | |
vytas | m: my @numbers = ^20; @numbers[5..*] = 3, 9 ... *; say @numbers; # how to explain that second star becomes 15 because numbers were 20 ... | 15:58 | |
camelia | rakudo-moar 89b75f: OUTPUT«[0 1 2 3 4 3 9 15 21 27 33 39 45 51 57 63 69 75 81 87]» | ||
15:58
pfortuny left
|
|||
vytas | agh actually is not | 15:59 | |
got confused by learnxinyminutes.com/docs/perl6/ comment "Only the 15 needed values will be calculated" where it is actually all 20 | 16:00 | ||
[Coke] | m: my @numbers = ^20; @numbers[5..*] = (3, 9 ... *); say @numbers; | ||
camelia | rakudo-moar 89b75f: OUTPUT«[0 1 2 3 4 3 9 15 21 27 33 39 45 51 57 63 69 75 81 87]» | ||
[Coke] | anyway, it's 15, because 9-3 is 6 and 9+6 is 15 | 16:01 | |
vytas: the 15 replaced values are calculated. | 16:02 | ||
numbers still has 20 elements. | |||
PerlJam | vytas: Aye, that comment does seem to confuse. you could make a PR to fix it. | ||
vytas | that's actually smart, though wasn't expecting at all. so it continues from 5th element | 16:03 | |
16:06
tokuhiro_ joined
16:08
lichtkind joined
|
|||
TimToady | m: my @numbers = ^20; @numbers[5..*].=reverse; say @numbers; | 16:08 | |
camelia | rakudo-moar 89b75f: OUTPUT«[0 1 2 3 4 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5]» | ||
16:08
diana_olhovik joined
16:09
synbot6 left
|
|||
lizmat | m: dd $*SPEC | 16:09 | |
camelia | rakudo-moar 89b75f: OUTPUT«IO::Spec::Unix $var = IO::Spec::Unix» | ||
16:09
synbot6 joined
|
|||
lizmat | hmmm... | 16:09 | |
16:10
kmel left
16:11
telex joined,
tokuhiro_ left
|
|||
PerlJam | S09:User-defined array indexing # with a coment | 16:11 | |
16:11
synbot6 left
16:12
synbot6 joined
|
|||
PerlJam | S09:User-defined array indexing # with a comment | 16:12 | |
synbot6 | Link: design.perl6.org/S09.html#User-defined | ||
PerlJam | blah | ||
16:12
synbot6 left
|
|||
lizmat | m: dd *$SPEC.split("/") | 16:13 | |
camelia | rakudo-moar 89b75f: OUTPUT«5===SORRY!5=== Error while compiling /tmp/wf_sKuo3POTwo terms in a rowat /tmp/wf_sKuo3PO:1------> 3dd *7⏏5$SPEC.split("/") expecting any of: infix infix stopper postfix statement end …» | ||
lizmat | m: dd $*SPEC.split("/") | ||
16:13
diana_olhovik left
|
|||
camelia | rakudo-moar 89b75f: OUTPUT«List $var = $(:volume(""), :dirname("/"), :basename("/"), :directory("/"))» | 16:13 | |
16:14
synbot6 joined
|
|||
lizmat | m: dd Int.split("/") | 16:14 | |
camelia | rakudo-moar 89b75f: OUTPUT«Use of uninitialized value of type Int in string contextAny of .^name, .perl, .gist, or .say can stringify undefined things, if needed. in block <unit> at /tmp/Um8QpAUWUp:1List $var = $("",)» | ||
PerlJam | S09:User-defined array indexing # kill the wabbit! | ||
synbot6 | Link: design.perl6.org/S09.html#User-defi..._indexing_ | ||
16:15
synbot6 left,
^elyse^ joined
|
|||
TimToady | trailing _ is trailing | 16:16 | |
16:16
telex left
16:17
synbot6 joined
|
|||
PerlJam | S09:User-defined array indexing # stupid bot | 16:17 | |
synbot6 | Link: design.perl6.org/S09.html#User-defi...y_indexing | ||
ilmari | S666:Goats | ||
S42:Goats | |||
synbot6 | Link: design.perl6.org/S42.html#Goats | ||
pink_mist is so glad ilmari didn't accidentally end those lines with an 'e' | 16:18 | ||
16:22
Ven joined
16:23
^elyse^ left
16:29
telex joined
16:30
rindolf joined
16:35
telex left
|
|||
[Coke] | RT: 1,044; lta: 88; weird: 11; nom: 8; glr: 4; tests: 9; xmas: 74 | 16:35 | |
dalek | kudo/nom: ca1cf74 | lizmat++ | src/core/ (8 files): Hopefully fix pand install p6doc issues |
16:37 | |
moritz | lizmat: I like IO::Handle.split, but IO::Path.split seems dangerous to me, since IO::Path is still a rather stringy thing for me, and I'd expect it to work on the file name, not on the contents | ||
lizmat | so, how would you call it on IO::Path ? | 16:38 | |
hmmm... that could be the reason for the failure seen on P6-users | 16:40 | ||
lizmat is checking | 16:41 | ||
sigh, that's it... :-( | 16:42 | ||
16:43
simula67 joined
16:45
^elyse^ joined
16:48
tokuhirom joined
|
|||
moritz | lizmat: I'd spell it .open.split(...) | 16:49 | |
ilmari | or .IO.split()? | ||
moritz | or that | 16:50 | |
lizmat | yeah, but that's *exactly* what the problem is | 16:51 | |
.IO generates an IO::Path, which is considered to be stringy still | |||
ilmari | ah | 16:52 | |
lizmat | I'm going for split-with for now | ||
16:52
tokuhirom left
|
|||
lizmat | once I get the proto issues fixed in the setting | 16:52 | |
16:53
telex joined,
Ven left
16:54
xinming joined
16:55
simula67 left
16:57
telex left
16:58
telex joined
17:00
tokuhiro_ joined
17:01
firstdayonthejob joined
|
|||
dalek | p: af86b80 | (Pawel Murias)++ | src/QAST/SpecialArg.nqp: Dump extra info about QAST::SpecialArg when dumping the AST. |
17:02 | |
p: 7c502f6 | (Pawel Murias)++ | src/vm/js/QAST/Compiler.nqp: [js] HACK around a bug in NQP. We need to figure out why sometimes the for op gets a child with a declaration blocktype. |
|||
17:02
virtualsue joined
17:04
tokuhiro_ left
|
|||
lizmat | I think I'm going crazy: renaming it to anything else then "split", makes the setting fail to build | 17:04 | |
with a weird error about ObjAt.$!value not being declared | 17:05 | ||
m: proto method split-with(|) { * } | 17:08 | ||
camelia | rakudo-moar ca1cf7: OUTPUT«Potential difficulties: Useless declaration of a has-scoped method in mainline (did you mean 'my method split-with'?) at /tmp/gZodQ5w_fB:1 ------> 3proto method7⏏5 split-with(|) { * }» | ||
lizmat | m: proto method split-with(|) { * }; multi method split-with() {} | 17:09 | |
camelia | rakudo-moar ca1cf7: OUTPUT«Potential difficulties: Useless declaration of a has-scoped method in mainline (did you mean 'my method split-with'?) at /tmp/0zrXZnkpRB:1 ------> 3proto method7⏏5 split-with(|) { * }; multi method split Useless declaration of…» | ||
lizmat | m: class A { proto method split-with(|) { * } } | ||
camelia | ( no output ) | ||
17:10
Actualeyes1 left
|
|||
lizmat | feels like some kind of internal overflow :-( | 17:11 | |
catch 22: if I don't put the protos in , setting doesn't build because it doesn't auto-generaye protos | 17:12 | ||
if I do, I get: Error while compiling, type X::Attribute::Undeclared | |||
symbol: $!value | |||
package-name: ObjAt | |||
apparently my previous commit solved the panda issue, so I'm not pursuing this further at this moment | 17:13 | ||
17:13
loren joined
17:14
_28_ria joined
|
|||
loren | morning, #perl6 | 17:14 | |
lizmat | loren o/ | 17:16 | |
loren | say "xx" ~~ /^+/; will hang up | ||
hi, lizmat | |||
17:16
duncan_dmg left
|
|||
loren | perl6 not report error, I think it should be /^\+/ | 17:17 | |
lizmat | m: say "xx" ~~ /^+/ | ||
camelia | rakudo-moar ca1cf7: OUTPUT«Memory allocation failed; could not allocate 975405056 bytes» | ||
lizmat | looks like a rakudo bug to me :) | ||
would you care to report it ? | |||
loren | ok, | 17:18 | |
I will | |||
lizmat | loren++ | ||
loren | I will send a email . | ||
lizmat | to [email@hidden.address] | ||
loren | ok | ||
I know it. | |||
lizmat | that will put it in the bug tracker | ||
loren | em | 17:19 | |
psch | that should probably misparse, right? | 17:24 | |
anchors can't be quantified, can they | 17:25 | ||
lizmat | indeed... I would say | ||
17:28
espadrine_ left
|
|||
moritz | it's long know bug that if you quantify a zero-width match, it'll hang | 17:28 | |
lizmat | aha, sorry, didn't know that | 17:31 | |
dalek | kudo-star-daily: d4d7fdc | coke++ | log/ (9 files): today (automated commit) |
17:33 | |
rl6-roast-data: 08d374f | coke++ | / (9 files): today (automated commit) |
|||
17:38
domidumont left
17:39
virtualsue left
17:42
n0tjack joined,
xfix joined
17:45
xfix left
17:46
xfix joined
17:47
shlomif joined,
rindolf left,
shlomif is now known as rindolf
|
|||
PerlJam | Hmm. | 17:49 | |
17:51
virtualsue joined,
xfix left,
xfix joined
17:54
FROGGS joined
|
|||
FROGGS | o/ | 17:57 | |
18:00
n0tjack left
18:02
llfourn left
18:04
FROGGS left
18:07
vendethiel joined
18:08
FROGGS joined
18:13
TEttinger joined,
Jaglor left
18:17
virtualsue left
|
|||
dalek | ast: c470227 | usev6++ | S05-modifier/counted-match.t: Loose fudge for RT #125026 |
18:23 | |
synbot6 | Link: rt.perl.org/rt3/Public/Bug/Display...?id=125026 | ||
[Coke] | when interrupting a test run, you are told that all tests were successful when you might have only run 1 test. | 18:42 | |
run 1 test *file | |||
why does "make j-test" run 3 different copies of the test harness? | 18:44 | ||
FROGGS | [Coke]: are you talking about the harness+evalserver+client? | 18:45 | |
[Coke] | it runs prove 3 times instead of 1 | 18:46 | |
testing a fix... | |||
(so if the first 2 fails, but the third works, you have no idea the failures occurred. | |||
18:48
domidumont joined,
domidumont left
18:49
tokuhirom joined
18:51
uberbaud left
|
|||
leont | Woot! My p6 harness isn't all that much slower than the p5 one (about 5% on compared to total runtime), which feels like a realistic amount of time for the start-up (which is slow) | 18:52 | |
18:52
sufrostico left
18:54
tokuhirom left
|
|||
dalek | ast: cd4b6ba | usev6++ | S12-methods/chaining.t: Test passes on rakudo.jvm now (RT #121945) |
18:57 | |
synbot6 | Link: rt.perl.org/rt3/Public/Bug/Display...?id=121945 | ||
18:57
uberbaud joined
18:58
n0tjack joined
|
|||
[Coke] | ./perl6-j t/03-jvm/01-interop.t dies in build dir with java.lang.RuntimeException: Missing or wrong version of dependency 'gen/jvm/CORE.setting' | 18:59 | |
should we be running this test? | 19:00 | ||
dalek | kudo/nom: f16b146 | coke++ | tools/build/Makefile-JVM.in: Only use one harness; not 3. (Previously, failures in the first harness would be hidden) |
||
FROGGS | ahh, that harness | 19:07 | |
[Coke]: yes, let's keep running it, we hopefully pass that again this year | 19:08 | ||
leont: now | |||
leont: I did not expect that | |||
wow* | |||
leont | That may also be p5's harness being slow, but it's still good :-) | 19:09 | |
FROGGS | hehe, yeah :o) | ||
dalek | p: add7e11 | (Pawel Murias)++ | src/vm/js/nqp-runtime/runtime.js: [js] Tweak to nqp.dumpObj. |
||
p: b71938d | (Pawel Murias)++ | src/vm/js/QAST/Compiler.nqp: [js] allow setting dynamic variables in signatures, like sub foo($*FOO) {...} |
|||
p: baf46e1 | (Pawel Murias)++ | t/nqp/21-contextual.t: Test setting dynamic variables in sub signatures. |
|||
19:13
yqt joined
|
|||
dalek | p: b46902b | (Pawel Murias)++ | src/vm/js/bin/run_tests_bootstrapped.pl: [js] Add passing tests 09 and 10 to make js-test-bootstrapped |
19:14 | |
19:16
tokuhiro_ joined
19:21
tokuhiro_ left
|
|||
Hotkeys | thanks whoever told me to use VS 2010 to build rakudo | 19:23 | |
worked no problem | |||
hoelzro | Hotkeys: did you end up using 32 or 64-bit? | 19:25 | |
19:26
vendethiel left
|
|||
Hotkeys | 64 bit | 19:26 | |
psch | i'd like to have at least the horribly bad failures out of j-roast before working on interop again, which is reasonable i think | 19:28 | |
hoelzro | hmm, I'll have to try 2010 then | ||
psch | FROGGS: ISTR that you might know something about "control exception without handler"? | ||
Hotkeys | I didn't even put SP1 on it I don't think | ||
idk if that matters | 19:29 | ||
still built | |||
psch | FROGGS: there's four files that bail with that message | ||
^elyse^ | is there some kind of tool to like, build and test Perl 6 projects? | 19:30 | |
like makemaker in Perl 5 | |||
moritz | you mean, like, panda? | 19:31 | |
Grammar::Debugger fails its tests :( | |||
PerlJam | last time I checked panda wasn't good enough for building and testing local Perl 6 projects. They had to be in the ecosystem first. | 19:32 | |
lizmat | m: without 42 {} elsif 666 {} # LTA error message :-) | ||
camelia | rakudo-moar f16b14: OUTPUT«5===SORRY!5=== Error while compiling /tmp/23DDGF74ZZ"unless" does not take "else", please rewrite using "if"at /tmp/23DDGF74ZZ:1------> 3without 42 {} 7⏏5elsif 666 {} # LTA error message :-)» | ||
PerlJam | but ... ufo still works I think | ||
^elyse^ | moritz: I don't know | ||
19:41
pyrimidi_ joined,
pyrimidi_ is now known as pyrimidine_
19:42
[Sno] left
|
|||
dalek | kudo/nom: f25bbe7 | lizmat++ | src/core/IO/Handle.pm: Remove paranoid check If you're going to mix high level methods with low level methods, you're going to get what you ask for |
19:43 | |
19:44
pyrimidine left,
[Sno] joined
|
|||
^elyse^ | I don't understand use. Is it very different from Perl 5? I have files in the right place but it tells me it can't find the module | 19:48 | |
gist.github.com/rightfold/a4c337aa2cac36d797da | |||
19:48
mullagainn left
|
|||
leont | How do multi methods work with inheritance? Do the inherited methods compete in the subclass or not? | 19:49 | |
[Coke] | I would do "PERL6LIB=lib prove -e perl6 -r t" and remove the use lib from the test file | 19:50 | |
^elyse^ | [Coke]: same error | ||
[Coke] | mv Grammar.p6 Grammar.pm ? | 19:51 | |
^elyse^ | that works :( | ||
PerlJam | ^elyse^: Grammar.pm6 should work too | ||
^elyse^ | ooh right pm6 it should be | ||
thanks :) | |||
[Coke] | .u crying | 19:54 | |
yoleaux | U+1F622 CRYING FACE [So] (😢) | ||
U+1F62D LOUDLY CRYING FACE [So] (😭) | |||
U+1F63F CRYING CAT FACE [So] (😿) | |||
19:55
virtualsue joined
|
|||
^elyse^ | what does unit mean in "unit module"? | 19:55 | |
[Coke] | compilation unit | ||
PerlJam | ^elyse^: as in "compilation unit" | 19:56 | |
^elyse^ | why is it needed? | ||
PerlJam | ^elyse^: the "unit" declaration is an affirmative that you mean for the entire compilation unit to be a module | ||
[Coke] | S99:unit | ||
synbot6 | Link: design.perl6.org/S99.html#unit | ||
^elyse^ | ok | 19:58 | |
19:58
kaare_ left
|
|||
PerlJam | m: class A { multi method foo(Str) { say "string" }; multi method foo(Any) { say "any" }; }; class B is A { multi method foo(Int) { say "integer" }; }; B.new("hi"); B.new(5); B.new(pi); # leont | 20:00 | |
camelia | rakudo-moar f16b14: OUTPUT«Default constructor for 'B' only takes named arguments in block <unit> at /tmp/rsHZoQj7Hx:1» | ||
^elyse^ | can I import only a single function from a module? | 20:01 | |
PerlJam | blah | ||
^elyse^ | instead of all of them | ||
PerlJam | m: class A { multi method foo(Str) { say "string" }; multi method foo(Any) { say "any" }; }; class B is A { multi method foo(Int) { say "integer" }; }; B.new.foo("hi"); B.new.foo(5); B.new.foo(pi); # leont | ||
camelia | rakudo-moar f16b14: OUTPUT«stringintegerany» | ||
leont | Awesome | ||
lizmat | ^elyse^: not yet | ||
20:02
rindolf left
|
|||
pmurias | .tell konobi how should I profile node.js applications (to see if there are any low hanging speedups for nqp-js) | 20:03 | |
yoleaux | pmurias: I'll pass your message to konobi. | ||
20:04
Skarsnik left
20:06
darutoko left
|
|||
^elyse^ | lizmat: ok | 20:07 | |
guess I'll wait a little longer then | |||
lizmat | ^elyse^: please note that only those subs marked "is export" are actually exported | ||
PerlJam | ^elyse^: you can "tag" certain exported subs and only import a certain tag if you want. (I'm pretty sure that works) | 20:09 | |
leont | What was the name of the else that belongs to with again? | 20:10 | |
(these words are not Google compatible!) | 20:11 | ||
lizmat | orwith ? | ||
m: with 42 {} orwith 666 {} | |||
camelia | ( no output ) | ||
leont | Ah, that one! | 20:12 | |
[Coke] | m: say "\c[GREEK QUESTION MARK]" eq "\c[SEMICOLON]" # why is this true? | 20:14 | |
camelia | rakudo-moar f16b14: OUTPUT«True» | ||
labster | good morning, #perl6 | ||
PerlJam | m: say ("\c[GREEK QUESTION MARK]\c[SEMICOLON]").ords | 20:16 | |
camelia | rakudo-moar f16b14: OUTPUT«(59 59)» | ||
PerlJam | [Coke]: because greeks have funny ideas about interrogatives marks? | 20:17 | |
lucs | Question: fpaste.scsys.co.uk/500480 | ||
20:17
vendethiel joined
|
|||
lucs | Pointers to (as specific as possible) docs welcome. | 20:19 | |
PerlJam | [Coke]: and ... how did you discover this? | ||
ugexe | thats what i was wondering heh | 20:20 | |
dalek | ast: 6082102 | usev6++ | S12-subset/subtypes.t: Add tests for RT #123700 |
||
synbot6 | Link: rt.perl.org/rt3/Public/Bug/Display...?id=123700 | ||
pink_mist | I think TimToady++ was playing around with that some days ago in here ... that's where I saw it first at least | 20:21 | |
irclog.perlgeek.de/perl6/2015-10-19#i_11401165 | 20:22 | ||
20:23
n0tjack left
|
|||
PerlJam | lucs: maybe it's confusing because it's written poorly? | 20:24 | |
lucs | PerlJam: Actually, I have no idea what that structure means :/ | ||
For example, what is "0 => x y" , why no commas anywhere, etc. | 20:25 | ||
PerlJam | hold on, let me write it more sensibly | 20:26 | |
lucs | Thanks | ||
PerlJam | fpaste.scsys.co.uk/500481 | ||
pink_mist | design.perl6.org/S05.html#Return_va...om_matches may be enlightening perhaps? | ||
[Coke] | PerlJam: because evil people wrote a code filter to swap out your semicolons for not-semicolons. | 20:27 | |
ah; this is why, I bet: | |||
lucs | PerlJam: D'oh! That was unexpected :) Nice. | ||
[Coke] | DecompositionSEMICOLON (U+003B) | ||
dalek | kudo/nom: d97f0b2 | ugexe++ | src/core/Buf.pm: Fix unpack for templates using `*` Fixes: Buf.new("asdf".ords).unpack("N*").say # also S*, v*, L*, V*, n* |
||
kudo/nom: 75ac71b | lizmat++ | src/core/Buf.pm: Merge pull request #559 from ugexe/patch-6 Fix unpack for templates using `*` |
|||
lucs | pink_mist: Thanks, I'll read that. | ||
20:28
n0tjack joined
|
|||
pink_mist | [Coke]: did you see my irclog link? | 20:28 | |
20:29
FireFly left
|
|||
vendethiel | any plan to allow named imports "by default", btw? that's an amazing feature. In pretty much any language I use, I do that (JS, clojure, haskell, D, etc, etc) and I miss often in 6 | 20:29 | |
PerlJam | lucs: basically, by adding the (), you've introduced another layer of structure in the return from the match. :g gets you a list of matches, each of those has a $0 entry containing only the one character matched | 20:30 | |
20:30
^elyse^ left
|
|||
PerlJam | The docs pink_mist linked to probably explain better | 20:31 | |
[Coke] | pink_mist: I beat him: irclog.perlgeek.de/perl6/2015-10-19#i_11396733 | ||
lucs | PerlJam: Aha, I see. I think that link pink_mist seem to ... Right. | ||
Thanks. | |||
pink_mist | [Coke]: oh, haha :P | ||
[Coke] | I did miss the followup though. :) | ||
pink_mist++ | |||
20:33
_dolmen_ joined
|
|||
PerlJam | pretty soon there will be enough #perl people here that I won't be able to tell at a glance from the conversation if I'm on #perl or #perl6 | 20:33 | |
nine | tadzik: pong | 20:37 | |
5 hours 26 minutes latency | |||
20:38
kjs_ left,
mrsolo left
20:44
mrsolo joined
20:49
colomon left
20:51
colomon joined
20:52
n0tjack left
|
|||
pmurias | vendethiel: named imports? you mean renaming the module on import? | 20:55 | |
vendethiel | pmurias: no, explicitly naming the imports. "use Foo <bar baz>" | ||
pmurias | vendethiel: you can't do that in Perl 6? | 20:56 | |
vendethiel | pmurias: not without manually writing an EXPORT :( | 20:57 | |
20:57
frew joined
|
|||
pmurias | vendethiel: use Sense <&common> seems to be in the spec | 20:58 | |
vendethiel: it's just not implemented yet? | |||
vendethiel | pmurias: I hope so :) | ||
lizmat | vendethiel: how would such an export look ? | 20:59 | |
PerlJam | vendethiel: you can do module Foo { sub foo is export( :mytag ) {} } and then use Foo :mytag; right now. | ||
vendethiel | PerlJam: I don't want to write ":mytag". | ||
lizmat: returns the variables with the keys specified | 21:00 | ||
sub EXPORT(@keys) { %EXPORTED.grep(*.key eq any(@keys)) } (where %EXPORTED was crafted from is export, supposedly) | |||
21:03
colomon left,
n0tjack joined
21:04
FROGGS left
|
|||
leont | How do I dynamically load a module? (IOW: a stringy require). require "foo" seems to expect a filename just like p5 | 21:12 | |
PerlJam | leont: my $mod = "Foo"; require ::($mod); # you mean like this? | 21:14 | |
leont | Yes, that looks good to me :-) | ||
21:19
flussence left,
flussenc1 joined,
flussenc1 is now known as flussence
|
|||
lucs | Where do I look in the docs to figure out "Bool:D"? | 21:19 | |
leont | That's a type smiley | 21:20 | |
lucs | Heh | ||
pink_mist | the :D means it needs to be defined | ||
leont | :D means defined, :U means undefined | ||
lucs | Hmm... | ||
PerlJam | lucs: doc.perl6.org/syntax/%3AD | ||
lucs | Okay, thanks. | 21:21 | |
21:22
rurban joined
21:23
xfix left
21:39
telex left
21:40
telex joined
21:45
skids left
21:46
tokuhiro_ joined
|
|||
dalek | kudo-star-daily: c6be89a | coke++ | log/ (9 files): today (automated commit) |
21:49 | |
Hotkeys | why does | 21:50 | |
m: say 1, 2, 4 ... 1000; | 21:51 | ||
camelia | rakudo-moar 75ac71: OUTPUT«(1 2 4 8 16 32 64 128 256 512)» | ||
Hotkeys | work fine | ||
but | |||
m: 0, 1, * + * ... 1000; | |||
21:51
tokuhiro_ left
|
|||
Hotkeys | will refuse to work | 21:51 | |
camelia | rakudo-moar 75ac71: OUTPUT«Memory allocation failed; could not allocate 1146880 bytes» | ||
Hotkeys | I know you can do | 21:52 | |
m: 0, 1, * + * ... * >= 1000; | |||
camelia | ( no output ) | ||
Hotkeys | m: say 0, 1, * + * ... * >= 1000; | ||
camelia | rakudo-moar 75ac71: OUTPUT«(0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597)» | ||
Hotkeys | for more or less the same idea | 21:53 | |
er | |||
lizmat | Hotkeys: this smells like a bug to me | ||
Hotkeys | m: say 0, 1, * + * ...^ * >= 1000; | ||
camelia | rakudo-moar 75ac71: OUTPUT«(0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987)» | ||
Hotkeys | there we go | ||
same idea now | |||
:p | |||
I thought so too | 21:54 | ||
wasn't sure | |||
I was hoping it would work on camelia so that I could know to just update my build | 21:55 | ||
I would look for the bug myself but I have no idea where it might lie | |||
22:00
smash left
|
|||
lizmat | TimToady seems to know a lot about them :-) | 22:03 | |
psch | looks like only deduced sequences can have a non-exact stopper on the rhs of infix:<...> | 22:06 | |
m: say 2, 4, 6 ... 99 | |||
camelia | rakudo-moar 75ac71: OUTPUT«(2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 42 44 46 48 50 52 54 56 58 60 62 64 66 68 70 72 74 76 78 80 82 84 86 88 90 92 94 96 98)» | ||
psch | m: say 2, 4, 6, * + 2 ... 99 | ||
camelia | rakudo-moar 75ac71: OUTPUT«(2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 42 44 46 48 50 52 54 56 58 60 62 64 66 68 70 72 74 76 78 80 82 84 86 88 90 92 94 96 98 100 102 104 106 108 110 112 114 116 118 120 122 124 126 128 130 132 134 136 138 140 142 144 146 148 150 152 154 …» | ||
psch | which really only makes sense from an implementation point of view, in my opinion | ||
22:07
rurban left
|
|||
psch | Hotkeys: somewhere in src/core/operators.pm:105ff is where you'd want to look i think | 22:08 | |
AlexDaniel | m: my $that's = 'cool'; say $that's | 22:09 | |
camelia | rakudo-moar 75ac71: OUTPUT«cool» | ||
psch | m: say 2, 4, 6, * + 2 ... * == 99 | 22:10 | |
camelia | rakudo-moar 75ac71: OUTPUT«(2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 42 44 46 48 50 52 54 56 58 60 62 64 66 68 70 72 74 76 78 80 82 84 86 88 90 92 94 96 98 100 102 104 106 108 110 112 114 116 118 120 122 124 126 128 130 132 134 136 138 140 142 144 146 148 150 152 154 …» | ||
leont is missing a wait method on Proc :-/ | 22:11 | ||
I can start process and redirect IO, but I can't wait until it died AFAICT. It's strange. | |||
22:12
vendethiel left
|
|||
leont | I could NativeCall to waitpid, but that feels rather dirty (and shouldn't be necessary) | 22:12 | |
Oh, and Proc.pid is empty, even better! | 22:19 | ||
Hotkeys | if I can find this bug I can officially say I helped with perl 6 | ||
leont | Hmmm, it seems things work ok without waiting. Strange, but I can live with that | 22:21 | |
Hotkeys | looks like it's probably in this gargantuan "SEQUENCE" sub in src/core/operators.pm | 22:23 | |
jdv79 | Brobdingnagian? | 22:30 | |
i dont even know how to say that | |||
lizmat | PromoMultiPlus ? | ||
jdv79 | clearly a fringe word. yay thesaurus! | 22:31 | |
leont | .tell FROGGS it seems the syntax I was looking for was: try { EVAL q{ use Terminal::ANSIColor; &colored } } // sub ($text, $) { $text } | ||
yoleaux | leont: I'll pass your message to FROGGS. | ||
22:31
slobo left
22:32
Guest99329 left,
loren left
22:33
slobo joined,
xxx joined,
xxx is now known as Guest22572
22:34
kid51 joined
22:36
firstdayonthejob left
|
|||
dalek | oblem_solver_tutorial: a36b3b8 | lichtkind++ | / (2 files): polish and reorder |
22:42 | |
TimToady | Hotkeys: with a user-provide iteration function, you are quite literally trying to solve the halting problem | 22:45 | |
you cannot determine which way the inequality should go, since the sequence is not guaranteed to be monotonic | 22:46 | ||
22:47
tokuhiro_ joined
|
|||
lichtkind | tabloid news: larry wall solves halting problem | 22:52 | |
22:52
tokuhiro_ left
22:53
virtualsue left
|
|||
TimToady | m: say (1, 1, -> *@a { slip @a[$_ - 1] + @a[$_], @a[$_] given ++$; } ... *)[^100] | 22:55 | |
camelia | rakudo-moar 75ac71: OUTPUT«(1 1 2 1 3 2 3 1 4 3 5 2 5 3 4 1 5 4 7 3 8 5 7 2 7 5 8 3 7 4 5 1 6 5 9 4 11 7 10 3 11 8 13 5 12 7 9 2 9 7 12 5 13 8 11 3 10 7 11 4 9 5 6 1 7 6 11 5 14 9 13 4 15 11 18 7 17 10 13 3 14 11 19 8 21 13 18 5 17 12 19 7 16 9 11 2 11 9 16 7)» | ||
TimToady | m: say (1, 1, -> *@a { slip @a[$_ - 1] + @a[$_], @a[$_] given ++$; } ... 20)[^100] | 22:56 | |
camelia | rakudo-moar 75ac71: OUTPUT«(1 1 2 1 3 2 3 1 4 3 5 2 5 3 4 1 5 4 7 3 8 5 7 2 7 5 8 3 7 4 5 1 6 5 9 4 11 7 10 3 11 8 13 5 12 7 9 2 9 7 12 5 13 8 11 3 10 7 11 4 9 5 6 1 7 6 11 5 14 9 13 4 15 11 18 7 17 10 13 3 14 11 19 8 21 13 18 5 17 12 19 7 16 9 11 2 11 9 16 7)» | ||
TimToady | so should that end when the sequence hits 21? | ||
m: say (1, 1, -> *@a { slip @a[$_ - 1] + @a[$_], @a[$_] given ++$; } ... 21)[^100] | 22:57 | ||
camelia | rakudo-moar 75ac71: OUTPUT«(1 1 2 1 3 2 3 1 4 3 5 2 5 3 4 1 5 4 7 3 8 5 7 2 7 5 8 3 7 4 5 1 6 5 9 4 11 7 10 3 11 8 13 5 12 7 9 2 9 7 12 5 13 8 11 3 10 7 11 4 9 5 6 1 7 6 11 5 14 9 13 4 15 11 18 7 17 10 13 3 14 11 19 8 21 13 18 5 17 12 19 7 16 9 11 2 11 9 16 7)» | ||
22:57
pmurias left
|
|||
TimToady | m: say (1, 1, -> *@a { slip @a[$_ - 1] + @a[$_], @a[$_] given ++$; } ...^ 21)[^100] | 22:57 | |
camelia | rakudo-moar 75ac71: OUTPUT«(1 1 2 1 3 2 3 1 4 3 5 2 5 3 4 1 5 4 7 3 8 5 7 2 7 5 8 3 7 4 5 1 6 5 9 4 11 7 10 3 11 8 13 5 12 7 9 2 9 7 12 5 13 8 11 3 10 7 11 4 9 5 6 1 7 6 11 5 14 9 13 4 15 11 18 7 17 10 13 3 14 11 19 8 21 13 18 5 17 12 19 7 16 9 11 2 11 9 16 7)» | ||
TimToady | though it's not stopping at 21 there, which is odd | 22:58 | |
*that* could be a bug... | |||
23:00
RabidGravy left
|
|||
AlexDaniel | m: macro foo { 'say ' }; foo/hello/; | 23:06 | |
camelia | rakudo-moar 75ac71: OUTPUT«===SORRY!===Too few positionals passed; expected 3 arguments but got 2» | ||
AlexDaniel | no line number? | ||
psch | AlexDaniel: it's backend-specific callsite stuff | 23:17 | |
j: macro foo { 'say ' }; foo/hello/; # note this is different | |||
camelia | rakudo-jvm 75ac71: OUTPUT«===SORRY!===Wrong number of arguments passed; expected 3..3, but got 2» | ||
psch | AlexDaniel: i'm pretty sure those aren't supposed to bubble up to Perl 6 level, but i don't know if encountering them in macros is grounds for a ticket | 23:18 | |
AlexDaniel: considering macros are still under heavy planning | |||
AlexDaniel | okay | ||
TimToady | m: say (1, 1, -> *@a { slip @a[$_ - 1] + @a[$_], @a[$_] given ++$; } ... * == 21)[^100] | 23:20 | |
camelia | rakudo-moar 75ac71: OUTPUT«(1 1 2 1 3 2 3 1 4 3 5 2 5 3 4 1 5 4 7 3 8 5 7 2 7 5 8 3 7 4 5 1 6 5 9 4 11 7 10 3 11 8 13 5 12 7 9 2 9 7 12 5 13 8 11 3 10 7 11 4 9 5 6 1 7 6 11 5 14 9 13 4 15 11 18 7 17 10 13 3 14 11 19 8 21 13 18 5 17 12 19 7 16 9 11 2 11 9 16 7)» | ||
TimToady | m: say (1, 1, -> *@a { slip @a[$_ - 1] + @a[$_], @a[$_] given ++$; } ... * == 3)[^100] | ||
camelia | rakudo-moar 75ac71: OUTPUT«(1 1 2 1 3 2 3 1 4 3)» | ||
TimToady | m: say (1, 1, -> *@a { slip @a[$_ - 1] + @a[$_], @a[$_] given ++$; } ... *|* == 21)[^100] | 23:22 | |
camelia | rakudo-moar 75ac71: OUTPUT«(1 1 2 1 3 2 3 1 4 3 5 2 5 3 4 1 5 4 7 3 8 5 7 2 7 5 8 3 7 4 5 1 6 5 9 4 11 7 10 3 11 8 13 5 12 7 9 2 9 7 12 5 13 8 11 3 10 7 11 4 9 5 6 1 7 6 11 5 14 9 13 4 15 11 18 7 17 10 13 3 14 11 19 8 21 13)» | ||
23:25
tokuhirom joined
23:26
TimToady left
23:27
BenGoldberg joined
23:28
_dolmen_ left
23:29
tokuhirom left
23:43
raiph joined
23:51
zakharyas joined
23:52
_dolmen_ joined
|
|||
tadzik | nine: yeah, we'll have to switch to syn-syn/ack-ack :P | 23:55 | |
nine: anyway, I had questions about Inline::Python and the way it handles KeyboardInterrupt, but it's more suited for /query :) | 23:56 |