Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2015-05-18

Perl 6 | Reference Documentation | Rakudo

| Channels | #perl6 index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

Time Nick Message
00:01 Sqirrel joined #perl6
00:07 lizmat joined #perl6
00:10 fhelmberger joined #perl6
00:12 aborazmeh joined #perl6
00:12 aborazmeh joined #perl6
00:20 tony-o_ m: grammar C { rule TOP { ^^ <!whatever> $$ }; token whatever { $*WHATEVER; }; }; my $*WHATEVER = "AA"; C.parse("AA").perl.say;
00:20 camelia rakudo-moar 88b120: OUTPUT«5===SORRY!5=== Error while compiling /tmp/jB9uame1Yd␤Unrecognized regex metacharacter ; (must be quoted to match literally)␤at /tmp/jB9uame1Yd:1␤------> 3tever> $$ }; token whatever { $*WHATEVER7⏏5; }; }; my $*WHATEVER = "AA"; C.parse("A␤…»
00:20 tony-o_ m: grammar C { rule TOP { ^^ <!whatever> $$ }; token whatever { $*WHATEVER }; }; my $*WHATEVER = "AA"; C.parse('AA').perl.say;
00:20 camelia rakudo-moar 88b120: OUTPUT«Any␤»
00:20 tony-o_ m: grammar C { rule TOP { ^^ <!whatever> $$ }; token whatever { $*WHATEVER }; }; my $*WHATEVER = "AA"; C.parse('BB').perl.say;
00:20 camelia rakudo-moar 88b120: OUTPUT«Any␤»
00:28 laouji joined #perl6
00:42 raiph joined #perl6
00:47 laouji joined #perl6
00:47 dalek rakudo/nom: 7d20205 | hoelzro++ | tools/build/create-jvm-runner.pl:
00:47 dalek rakudo/nom: Add jna.library.path to set properties for JVM runner
00:47 dalek rakudo/nom:
00:47 dalek rakudo/nom: This allows JNA (the library we use for NativeCall on JVM) to be able to
00:47 dalek rakudo/nom: locate shared objects used by NativeCall to function properly on
00:47 dalek rakudo/nom: installations where such shared objects are not installed in a place
00:47 dalek rakudo/nom: where the dynamic library loader can find them.
00:47 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/7d202056fc
00:50 BenGoldberg_ joined #perl6
01:12 kurahaupo joined #perl6
01:18 aborazmeh joined #perl6
01:18 aborazmeh joined #perl6
01:50 Ben_Goldberg joined #perl6
02:01 raydiak someone please merge https://github.com/tadzik/panda/pull/158 before I gouge my eyes out, hacking on panda all I see is screenfuls of warnings over and over :)
02:03 raydiak .oO( though at least they're colorful )
02:08 hoelzro raydiak: I'm sure tadzik will get around to it tomorrow
02:10 raydiak often I .tell the PR to him and someone magically pops up and merges it before he sees the message, so figured I'd just whine again for luck :)
02:10 hoelzro ah, I didn't know others had merge rights on that repo!
02:11 * hoelzro wonders if he'd consider "gifting" the repo to the perl6 org
02:14 raydiak *shrug* not sure what his level of personal attachment to it is :)
02:15 raydiak afk few
02:24 raydiak backish
02:24 mazeTemporal joined #perl6
02:24 mazeTemporal left #perl6
02:25 timotimo raydiak: not 100% sure if we want to wait with the unit declarations until the next release or something?
02:25 timotimo we still have no very good way to handle that :(
02:26 raydiak ah good point...suppose I could update it with { } instead
02:28 timotimo if we do want to care about this, then yes, that would fix over the problem until everybody we expect to be installing a panda of their own will be on our version
02:29 raydiak if we don't care about this, we are silly imo.
02:29 rmgk_ joined #perl6
02:35 yeahnoob joined #perl6
02:36 timotimo understood
02:36 timotimo prepare the pull request and i'll merge
02:37 timotimo ah, there it is
02:37 raydiak and thank you :)
02:57 raydiak .tell FROGGS the plural branch of my panda fork now supports --auth and/or --ver on each of the appropriate commands
02:57 yoleaux raydiak: I'll pass your message to FROGGS.
02:58 timotimo in theory, we could just allow "panda install JSON::Fast:auth<timo>"
02:58 timotimo that'd solve the --auth and --ver problem
02:58 raydiak .tell FROGGS except for revdep, because I wasn't sure about checking auth/ver info of a META.info dependency entry
02:58 yoleaux raydiak: I'll pass your message to FROGGS.
02:58 raydiak darn you timo quit stealing my words! :)
02:58 timotimo especially since --auth and --ver on regular perl6 scripts already means "use that particular version of this script", which suddenly turns into "select a different installable version" in panda
02:58 noganex_ joined #perl6
02:59 raydiak .tell FROGGS but timotimo++ and I wonder if it wouldn't be better to support longnames on the command line the form of Foo:ver<1.0> and do away with --auth/--ver entirely
02:59 yoleaux raydiak: I'll pass your message to FROGGS.
03:00 timotimo :)
03:01 timotimo it'd also be nice for consistency reasons
03:01 raydiak .tell FROGGS and that reduces the multispaghetti you'll see that I've added to...also the error reporting exists but needs improved...anyway TTYL :)
03:01 yoleaux raydiak: I'll pass your message to FROGGS.
03:01 timotimo you can "panda install" the same thing that it says to "use" in the source code
03:02 raydiak wait is there any circumfix characters that aren't special in the shell?
03:02 geekosaur random utf8 stuff...
03:02 raydiak don't want people redirecting IO streams with < and >
03:02 asarch joined #perl6
03:02 raydiak guess we can just say "quote it if you need a longname"
03:03 raydiak anyway, y'all can kick that around if you feel inclined...shopping time for me, back in a while :P
03:04 BenGoldberg_ joined #perl6
03:16 zcm joined #perl6
03:46 FROGGS_ joined #perl6
04:01 araujo joined #perl6
04:09 dalek rakudo/nom: f2e770c | hoelzro++ | src/Perl6/Compiler.nqp:
04:09 dalek rakudo/nom: Use int type for counter when building completions
04:09 dalek rakudo/nom:
04:09 dalek rakudo/nom: This fixes a bug that happens when using Linenoise integrated
04:09 dalek rakudo/nom: with the REPL on the JVM
04:09 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/f2e770ca9f
04:13 anaeem1_ joined #perl6
04:17 anaeem1 joined #perl6
04:19 kaare_ joined #perl6
04:42 kurahaupo1 joined #perl6
05:38 cognominal joined #perl6
05:53 FROGGS[mobile] longnames++
05:54 FROGGS[mobile] the same can go into META.info
05:55 domidumont joined #perl6
05:55 raydiak cool, will get rid of --ver and --auth and all the special one-module-only MAIN multis
05:56 raydiak is there some way built in to rakudo to parse a longname into its parts? or should I put a routine for that in Panda::Common or so?
05:57 yeahnoob joined #perl6
06:00 domidumont joined #perl6
06:02 raydiak and if I write it myself, would it be sufficient to parse with /\< ~ \> .*?/ or so?
06:11 diana_olhovik joined #perl6
06:12 fhelmberger joined #perl6
06:41 raydiak so...you could fairly reliably cheat the whole thing by flipping the longname backwards and match against /^ [ \> ~ \< <val=.*?> <attr=\w+> \: ]* <shortname=.+> $/ :)
06:41 masak morning, #perl6
06:42 raydiak and flip the captures when you pull them back out...but I'm just tired and bein silly, will backlog and look for real answers tomorrow :)
06:42 moritz \o
06:42 raydiak good morning masak
06:42 raydiak and moritz
06:43 moritz jnthn: re Backtrace being a list: we might rely on it being iterable somewhere; otherwise not important, afaict
06:48 raydiak good night #perl6 o/
06:48 RabidGravy joined #perl6
06:48 Sqirrel joined #perl6
06:51 espadrine joined #perl6
06:56 _mg_ joined #perl6
07:05 zakharyas joined #perl6
07:07 laouji joined #perl6
07:17 Ven joined #perl6
07:18 masak good night, raydiak on the other side of the 2-sphere.
07:20 lizmat moritz jnthn re backtrace being a list: almost all of the code relies on AT-POS either directly or indirectly
07:20 abraxxa joined #perl6
07:20 lizmat good *, #perl6!
07:21 lizmat FROGGS[mobile]: I was thinking last night about precomping
07:21 lizmat perhaps we should make a separate dir with the git describe of rakudo as name, to put all of the precomped files in
07:21 lizmat if we then remember the order in which files were originally compiled
07:22 lizmat then an upgrade of rakudo would just mean creating a new dir and precomping the files in there
07:22 berekuk joined #perl6
07:22 moritz lizmat: well, it could delegate AT-POS to the attribute holding the list
07:22 masak `handles 'AT-POS';`
07:22 lizmat moritz: true, I was just saying that the force runs deep there  :-)
07:23 lizmat FROGGS[mobile]: one could even consider putting the precomped database in there
07:23 Ven joined #perl6
07:23 lizmat which would allow you to share a CURLI dir between different versions of rakudo
07:24 lizmat which *could* be a huge benefit, especially in a production environment
07:24 bjz joined #perl6
07:24 brrt joined #perl6
07:26 virtualsue joined #perl6
07:28 brrt .tell timotimo jumplist (both JIT and interpreter) requires the alignment of goto's to stay constant over different codegen step; so you could replace goto's with noops, but i'm not sure how much it'd help
07:28 yoleaux brrt: I'll pass your message to timotimo.
07:34 FROGGS joined #perl6
07:46 berekuk joined #perl6
07:50 brrt joined #perl6
07:55 rindolf joined #perl6
08:00 espadrine joined #perl6
08:02 dolmen joined #perl6
08:04 Isp-sec joined #perl6
08:12 darutoko joined #perl6
08:21 FROGGS .
08:21 yoleaux 02:57Z <raydiak> FROGGS: the plural branch of my panda fork now supports --auth and/or --ver on each of the appropriate commands
08:21 yoleaux 02:58Z <raydiak> FROGGS: except for revdep, because I wasn't sure about checking auth/ver info of a META.info dependency entry
08:21 yoleaux 02:59Z <raydiak> FROGGS: but timotimo++ and I wonder if it wouldn't be better to support longnames on the command line the form of Foo:ver<1.0> and do away with --auth/--ver entirely
08:21 yoleaux 03:01Z <raydiak> FROGGS: and that reduces the multispaghetti you'll see that I've added to...also the error reporting exists but needs improved...anyway TTYL :)
08:23 dalek rakudo/nom: f7fd47c | FROGGS++ | docs/release_guide.pod:
08:23 dalek rakudo/nom: pick this week
08:23 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/f7fd47cd30
08:39 lizmat FROGGS++
08:40 FROGGS this way I can merge weird stuff in :P
08:40 FROGGS MUHAHAHAHA
08:40 lizmat FROGGS++  ( for merge weird stuff in )
08:40 lizmat *merging
08:41 masak FROGGS++
08:42 masak FROGGS: pro tip: make sure you can sign tags.
08:42 FROGGS masak: I already done this, so I am set up
08:42 FROGGS did*
08:45 fhelmberger joined #perl6
08:51 masak ok, excellent
08:53 labster joined #perl6
08:58 domidumont joined #perl6
09:06 araujo_ joined #perl6
09:09 brrt joined #perl6
09:15 dalek rakudo/nom: 6c32886 | lizmat++ | src/core/Backtrace.pm:
09:15 dalek rakudo/nom: Only check RAKUDO_VERBOSE_STACKFRAME once per bt
09:15 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/6c3288657e
09:29 sue_ joined #perl6
09:30 telex joined #perl6
09:35 dalek rakudo/nom: 2cfe02a | lizmat++ | src/core/Backtrace.pm:
09:35 dalek rakudo/nom: Do fewer lookups in backtrace generation
09:35 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/2cfe02a592
09:51 cognominal joined #perl6
09:53 cognominal joined #perl6
10:00 anaeem___ joined #perl6
10:01 anaeem1_ joined #perl6
10:06 dalek rakudo/nom: 72a187e | lizmat++ | src/core/Backtrace.pm:
10:06 dalek rakudo/nom: Some more optimizations in bt creation
10:06 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/72a187e9ee
10:32 masak I was wondering if "Backtrace" was a neologism for "Stack trace" that Perl 6 had come up with.
10:32 masak but no, it seems quite wide-spread.
10:32 Ven joined #perl6
10:32 masak there's a Linux command `backtrace`, for example.
10:34 RabidGravy and gdb's 'bt'
10:34 masak oh, indeed.
10:35 masak some people apparently call them "stack backtraces"
10:35 arnsholt I wonder which came first
10:35 anaeem1 joined #perl6
10:35 arnsholt I guess stack trace, which is then very easily convertible into backtract
10:36 anaeem1 joined #perl6
10:43 Zoffix joined #perl6
10:43 RabidGravy joined #perl6
10:47 brrt left #perl6
11:21 xfix joined #perl6
11:21 xfix joined #perl6
11:32 pauluu joined #perl6
11:39 brrt joined #perl6
11:46 berekuk joined #perl6
11:59 _mg__ joined #perl6
12:00 Ven joined #perl6
12:02 dalek rakudo-star-daily: 7ff5849 | coke++ | log/ (2 files):
12:02 dalek rakudo-star-daily: today (automated commit)
12:02 dalek rakudo-star-daily: review: https://github.com/coke/rakudo​-star-daily/commit/7ff584959e
12:02 dalek perl6-roast-data: dd69a4c | coke++ | / (9 files):
12:02 dalek perl6-roast-data: today (automated commit)
12:02 dalek perl6-roast-data: review: https://github.com/coke/perl6​-roast-data/commit/dd69a4cce8
12:04 awwaiid aa/go
12:05 andreoss joined #perl6
12:05 andreoss m: say 2.FatRat.sqrt.gist;
12:05 camelia rakudo-moar 72a187: OUTPUT«1.4142135623731␤»
12:05 andreoss shouldn't FatRat have its own .sqrt, .log etc. methods?
12:07 moritz and loop endlessly on trying to approximate an irrational number with arbitrary precision?
12:08 andreoss m: say <1/3>.FatRat.gist;
12:08 camelia rakudo-moar 72a187: OUTPUT«0.333333␤»
12:09 Ven m: module A { class B {}; }; say A::B.new.perl
12:09 camelia rakudo-moar 72a187: OUTPUT«B.new␤»
12:09 Ven m: module A { module B { class C {} } }; my \alias = A::B; say alias::C.new.perl
12:09 camelia rakudo-moar 72a187: OUTPUT«Cannot find method 'postcircumfix:<( )>'␤  in block <unit> at /tmp/6JoTdkRqy6:1␤␤»
12:10 Ven m: module A { module B { class C {} } }; my \alias := A::B; say alias::C.new.perl #uhmm
12:10 camelia rakudo-moar 72a187: OUTPUT«Cannot find method 'postcircumfix:<( )>'␤  in block <unit> at /tmp/7n782j56ci:1␤␤»
12:11 Sqirrel joined #perl6
12:11 andreoss moritz: with parametrized  precision i assume
12:12 pecastro_ joined #perl6
12:13 vytas m: say 52!;
12:13 camelia rakudo-moar 72a187: OUTPUT«5===SORRY!5=== Error while compiling /tmp/zVN96L95Ns␤Negation metaoperator not followed by valid infix␤at /tmp/zVN96L95Ns:1␤------> 3say 52!7⏏5;␤    expecting any of:␤        infix␤        infix stopper␤»
12:14 andreoss m: say [*] ^52;
12:14 camelia rakudo-moar 72a187: OUTPUT«0␤»
12:14 andreoss m: say [*] (^52);
12:14 camelia rakudo-moar 72a187: OUTPUT«0␤»
12:14 moritz andreoss: well, possible, but quite expensive (and much work)
12:16 andreoss m: say [*] (1..52);
12:16 camelia rakudo-moar 72a187: OUTPUT«80658175170943878571660636856403​766975289505440883277824000000000000␤»
12:16 moritz m: say [*] 1..52
12:16 camelia rakudo-moar 72a187: OUTPUT«80658175170943878571660636856403​766975289505440883277824000000000000␤»
12:17 andreoss moritz: what should i use then if I want more digits after dot ?
12:17 vytas m: say [*] 52!;
12:17 camelia rakudo-moar 72a187: OUTPUT«5===SORRY!5=== Error while compiling /tmp/jpaWAf_FCa␤Negation metaoperator not followed by valid infix␤at /tmp/jpaWAf_FCa:1␤------> 3say [*] 52!7⏏5;␤    expecting any of:␤        infix␤        infix stopper␤»
12:17 moritz andreoss: use an arbitrary precision numeric library
12:18 moritz as you would, in any other language
12:40 Ven m: 'var a, b, c' ~~ 9my token /^'var' $/
12:40 camelia rakudo-moar 72a187: OUTPUT«5===SORRY!5=== Error while compiling /tmp/E77nK1B2q_␤Confused␤at /tmp/E77nK1B2q_:1␤------> 3'var a, b, c' ~~ 97⏏5my token /^'var' $/␤»
12:40 Ven m: 'var a, b, c' ~~ (my token /^'var' <[a-z]> %% \, $/)
12:40 camelia rakudo-moar 72a187: OUTPUT«5===SORRY!5=== Error while compiling /tmp/H0_5sQNNU_␤Malformed regex␤at /tmp/H0_5sQNNU_:1␤------> 3'var a, b, c' ~~ (my token7⏏5 /^'var' <[a-z]> %% \, $/)␤    expecting any of:␤        new name to be defined␤»
12:40 Ven m: 'var a, b, c' ~~ (my anon token /^'var' <[a-z]> %% \, $/)
12:40 camelia rakudo-moar 72a187: OUTPUT«5===SORRY!5===␤Type 'anon' is not declared␤at /tmp/_kTW2heH0h:1␤------> 3'var a, b, c' ~~ (my anon7⏏5 token /^'var' <[a-z]> %% \, $/)␤Malformed my␤at /tmp/_kTW2heH0h:1␤------> 3'var a, b, c' ~~ (my7⏏5 anon token /^'var' <[a-z]> %…»
12:42 dolmen joined #perl6
12:46 Ven "P6opaque: no such attribute '$!signature'"
12:46 * Ven wuts
12:47 FROGGS Ven: that probably means that a decont is missing
12:47 Ven thanks
12:50 FROGGS hoelzro: I think I have a proper solution for LD_LIBRARY_PATH/rpath...
12:50 hoelzro FROGGS: oh?
12:51 FROGGS yeah, iamgine Foo.pm v1 and v2 are installed, and both expose a libfoo.so
12:51 lizmat joined #perl6
12:51 FROGGS our current mechanism for CURLF and CURLI would break
12:51 FROGGS right?
12:51 hoelzro right
12:52 FROGGS wait... I need to think a bit
12:52 hoelzro =)
12:53 FROGGS damn
12:53 FROGGS I was thinking that if we have an additional runner script, like site/bin/mygame...
12:55 FROGGS which is a bash script, and invokes perl6-m
12:55 Ven FROGGS: I'm getting that on master though :|
12:56 FROGGS so, since we know what dists this mygame depends on at that time, we could set an env var (LD_RUN_PATH/LD_PRELOAD_LIBS) before invoking perl6
12:56 FROGGS hoelzro: so we could have a very nice solution for extra runner scripts
12:56 FROGGS which we create anyway for games etc
12:57 hoelzro FROGGS: something like that could work
12:57 FROGGS though, not for modules
12:57 Ven ouch, "unit" is wrecking the ecosystem
12:57 hoelzro we could also have NativeCall somehow resolve the absolute path to shared objects, and feed those to dlopen and friends
12:57 FROGGS perl6 -MDBIsh -e1 would fail, if DBIish would needs C libs created by dists
12:58 FROGGS hoelzro: that would not work on openbsd AFAIK
12:58 FROGGS Ven: wrecking?
12:58 hoelzro oh, interesting
12:58 Ven FROGGS: tons and tons of warnings :)
12:58 anaeem1_ joined #perl6
12:58 timotimo Ven: you can't have both my scope and anon scope at the same time
12:58 yoleaux 07:28Z <brrt> timotimo: jumplist (both JIT and interpreter) requires the alignment of goto's to stay constant over different codegen step; so you could replace goto's with noops, but i'm not sure how much it'd help
12:58 hoelzro does LD_LIBRARY_PATH work on OpenBSD?
12:58 FROGGS Ven: and you get that P6opaque msg for what piece of code?
12:59 Ven timotimo: well, that wasn't the problem here, but noted
12:59 Ven FROGGS: some grammar parsing
12:59 Ven wait, not even o.o
12:59 FROGGS hoelzro: on openbsd the LD_LIBRARY_PATH must be set when you compile the program which loads the lib, or you can set LD_RUN_PATH or LD_PRELOAD_LIBS *before* you invoken your program
13:00 FROGGS hoelzro: but we could also create a list of *all* paths to C lib dirs we have in all repos, and feed that to the perl6-m runner
13:01 Ven ohh..
13:02 Ven m: module A { class Block {} }; say A::Block.new
13:02 camelia rakudo-moar 72a187: OUTPUT«===SORRY!===␤P6opaque: no such attribute '$!signature'␤»
13:02 FROGGS eww
13:02 Ven FROGGS: that was my issue
13:02 FROGGS you bad person you
13:02 FROGGS m: module A { class Blöck {} }; say A::Blöck.new
13:02 camelia rakudo-moar 72a187: OUTPUT«Blöck.new␤»
13:02 Ven ...why does it try to use Block inside of my module?
13:02 FROGGS m: module A { class Nil {} }; say A::Nil.new
13:02 camelia rakudo-moar 72a187: OUTPUT«Nil.new␤»
13:02 Ven that's *my* Block
13:02 FROGGS m: module A { class Callable {} }; say A::Callable.new
13:02 camelia rakudo-moar 72a187: OUTPUT«Callable.new␤»
13:03 FROGGS m: module A { class Routine {} }; say A::Routine.new
13:03 camelia rakudo-moar 72a187: OUTPUT«Routine.new␤»
13:03 FROGGS hmmm
13:04 Ven m: module A { class X { has Y $.y; }; class Y{} }
13:04 camelia rakudo-moar 72a187: OUTPUT«Error while constructing error object:Could not locate compile-time value for symbol Undeclared␤===SORRY!===␤Error while compiling, type X::Undeclared␤  suggestions: (unstringifiable object)␤  symbol: Y␤  what: Type␤ at line 2, near " $.y; }; c…»
13:04 hoelzro FROGGS: I haven't used OpenBSD in a while, but it looks like an absolute path with dlopen will work
13:04 FROGGS hmmm
13:04 hoelzro unless it's a recent enough change that the almighty Google isn't picking it up
13:04 FROGGS that happened in openbsd 4.7 IIRC
13:05 FROGGS dang, we really need %?RESOURCE now
13:05 FROGGS okay, for nativecall it might work with an absolute path in a random directory
13:06 FROGGS but we also need to think about the case where you create a lib, and others want to link against it
13:06 hoelzro I can try testing that
13:06 hoelzro like in your DBI example?
13:06 FROGGS though, then they can pass on -I/dir/to/whatever
13:06 FROGGS again, we need %?RESOURCE for that...
13:06 hoelzro and what about PERL6LIB (as long as we're brainstorming)
13:06 FROGGS so there might be no issue at all when we would have that
13:07 hoelzro or is that just a fancy trick that has no future?
13:07 FROGGS PERL6LIB is about modules, no?
13:07 hoelzro afaik, PERL6LIB is equivalent to -I
13:07 FROGGS what trick are you talking about?
13:07 FROGGS O.o
13:07 FROGGS ahh, our -I, yes
13:07 FROGGS not the C compilers -I
13:07 hoelzro I thought that PERL6LIB was just a carryover from PERL5LIB, and won't be supported in the future
13:08 hoelzro ahhhh
13:08 FROGGS hmmm, I like PERL6LIB
13:08 hoelzro as do I
13:08 FROGGS and I hope it stays... I've not heard yet that it should go away
13:08 hoelzro I wasn't aware we had a situation where modules need to link against .so from other modules
13:08 hoelzro I don't think I have either, I just thought I heard it's not permanent
13:08 FROGGS I did that in Perl 5
13:09 zakharyas1 joined #perl6
13:09 FROGGS I made an Alien::SDL package, which creates some .so's
13:09 hoelzro re: module .so linking, maybe we could have a perl6-modtool --libs Module that returns the correct -L/-l settings for a module?
13:09 FROGGS and the SDL package links against the libs from Alien::SDL
13:09 FROGGS and Alien::SDL provides also CFLAGS and LDFLAGS to ease build systems
13:09 hoelzro so to link/compile, I would do gcc $opts mycode.c $(perl6-modtool --libs My::Dependency)
13:10 FROGGS yeah, that's what Alien::SDL::ConfigData->libs() did
13:10 hoelzro ah ha
13:10 FROGGS so we don't need a special modtool
13:11 FROGGS just an easy way to expose paths and other stuff
13:11 FROGGS should be fairly easy with %?RESOURCE
13:11 hoelzro mhmm
13:11 hoelzro FROGGS: btw, re: C++ NC, how should I report bugs/feature requests?
13:11 hoelzro just throw them into RT?
13:11 FROGGS RT is good, aye
13:11 hoelzro ok
13:14 PZt joined #perl6
13:26 airdisa joined #perl6
13:27 xinming joined #perl6
13:35 aborazmeh joined #perl6
13:35 aborazmeh joined #perl6
13:40 airdisa left #perl6
13:47 anaeem1 joined #perl6
13:48 literal is there an up-to-date graph like this available somewhere? https://github.com/flussence/sp​ecgraphs/blob/master/impls.png
13:53 [Coke] literal: note that niecza isn't really on the list at the moment.
13:55 [Coke] looks like that repo has scripts for generating that graph. You can get similar info here:
13:55 [Coke] https://github.com/coke/perl6-roast-data/blob​/master/log/rakudo.moar-jit_summary.out#L2885
13:56 [Coke] That shows that rakudo.moar with jit is passing 114959 tests out of 117157
13:57 [Coke] (which doesn't seem right at all. I'm sure the count of "plan" vs. "spec"
13:57 [Coke] d tests is slightly wonky.
13:58 FROGGS 114k of 117k sounds about right I'd say
13:58 FROGGS 3k skipped/todo'd tests are quite a lot
14:08 domidumont joined #perl6
14:16 domidumont joined #perl6
14:22 bjz joined #perl6
14:27 skids joined #perl6
14:28 bjz joined #perl6
14:30 bjz joined #perl6
14:32 [Coke] huh. perlito is still being developed? http://perlhist.com/perl6/flavio-glock
14:33 anaeem1_ joined #perl6
14:33 moritz "occasionally"
14:38 vendethiel m: my @ops = <+ - %>; grammar P { token infixish { || @ops }; token id { <[a..z]>+ }; rule TOP { <id> + % <infixish> } }; say P.parse('a + b - c % d');
14:38 camelia rakudo-moar 72a187: OUTPUT«「a + b - c % d」␤ id => 「a」␤ infixish => 「+」␤ id => 「b」␤ infixish => 「-」␤ id => 「c」␤ infixish => 「%」␤ id => 「d」␤»
14:40 dayangkun joined #perl6
14:42 dayangkun joined #perl6
14:43 dayangkun joined #perl6
14:44 dayangkun joined #perl6
14:45 dayangkun joined #perl6
14:46 dayangkun joined #perl6
14:48 dayangkun joined #perl6
14:54 TimToady joined #perl6
14:54 coffee` joined #perl6
14:55 anaeem1 joined #perl6
15:05 TimToady joined #perl6
15:07 lizmat not sure whether anyone has posted this here yet, but here goes:
15:07 lizmat http://www.dagolden.com/index.php/2​466/the-annotated-berlin-consensus/   # The Annotated Berlin Consensus
15:09 masak intriguing.
15:11 * masak wonders if Perl 6 can learn something from Perl 5 in this regard, seeing as how CPAN is so far ahead in terms of dealing with scale
15:13 moritz well, as the proverb goes, first make it work, then make it fast, then make it scale
15:13 masak I think that's both true and false at the same time.
15:13 masak the "scale" bit, that is.
15:13 moritz or put differently: scaling is hard. If we try to become scalable now, when we don't need it yet, we won't have the resources to improve the rest of the experience
15:14 masak nodnodnod
15:14 moritz we can try to avoid decisions that we know will cause pain at scale
15:14 masak I bet CPAN wasn't as scalable when it was smaller either.
15:14 masak it would be interesting to pick the brains of people who have watched CPAN grow, and helped it along.
15:25 mr-foobar joined #perl6
15:27 lizmat my point of posting this here, was to show a place to pick branes  :-)
15:27 Arslak joined #perl6
15:34 TimToady scaling is mostly about distinguishing identity from implementation, so you can choose to put things with different identities into different places without losing track of what is what
15:34 TimToady much of the original S11 design boils down to that
15:35 FROGGS hmmm, interesting
15:36 FROGGS bbl
15:38 TimToady git can track things wherever they are because the hash of an object doesn't change as you move it around
15:38 timotimo that's part of the reason why it doesn't do empty folders
15:39 TimToady everyone's empty folder is the same empty folder :)
15:40 timotimo i bet deduplication makes empty folders really cheap to store on virtual machine hosts and big cloud data hosting machines
15:40 cognominal joined #perl6
15:41 timotimo "we store all our user's empty folders on amazon ec2 so that we can benefit from their advanced deduplication as well as the redundancy
15:43 timotimo "
15:52 arnsholt Y'know, for all my kvetching over weird bits and pieces of operational semantics in Python, descriptors are pretty neat
15:52 araujo joined #perl6
16:00 AlexDaniel joined #perl6
16:08 jdv79 what's holding back Inline::Python from working?
16:11 koo6 joined #perl6
16:12 DrForr Snakes. It has to be snakes.
16:16 eli-se joined #perl6
16:16 diana_olhovik joined #perl6
16:16 eli-se hi
16:16 vendethiel \o
16:16 FROGGS[mobile] jdv79: one needs to port a bit of code from Inline::Perl5 to I::Python to get the helper C lib in place
16:18 jdv79 where is this "(file|inst)#" path stuff in the specs or tests?
16:19 FROGGS[mobile] jdv79: specs == tests, and it should be in roast/S11...
16:20 jdv79 design docs then
16:21 FROGGS[mobile] it has not manifested there yet me thinks
16:21 jdv79 if its in the tests its not easily greppable
16:23 jdv79 i see the inline p5 changes.  ok
16:23 jdv79 thanks
16:24 lizmat jdv79: 52-parse-include-spec.t and 54-use-lib.t in t/01-sanity contain some tests
16:27 andreoss m: say 2.FatRat.*sqrt
16:27 camelia rakudo-moar 72a187: OUTPUT«1.4142135623731 1.4142135623731␤»
16:28 andreoss m: say .signature for 2.FatRat.can('sqrt')
16:28 camelia rakudo-moar 72a187: OUTPUT«(FatRat: *%_)␤(Cool: *%_)␤»
16:29 AlexDaniel I'm not sure if camelia will do it but here is an LTA
16:29 AlexDaniel m: sub test { test }; test
16:29 camelia rakudo-moar 72a187: OUTPUT«Memory allocation failed; could not allocate 36864 bytes␤»
16:30 AlexDaniel hm, interesting
16:30 AlexDaniel the only output I get is "Killed"
16:30 lolisa joined #perl6
16:30 AlexDaniel although I still don't feel like the error is good enough
16:31 AlexDaniel is it possible to make it tell something about too deep recursion?
16:31 andreoss m: fork while fork;
16:31 camelia rakudo-moar 72a187: OUTPUT«5===SORRY!5=== Error while compiling /tmp/mqHXkz0jfz␤Undeclared routine:␤    fork used at line 1␤␤»
16:31 geekosaur pretty sure camelia has memory limits in place; you got hit by the OOM killer because no memory limit
16:38 moritz and a process limit, for that matter :-)
16:43 andreoss m: proto xxx(@) is cached { * }; multi xxx(@x) { @x.shift };  say xxx(1 xx *); say xxx(2 xx *);
16:44 camelia rakudo-moar 72a187: OUTPUT«1␤1␤»
16:45 andreoss m: sub xxx(@x) is cached { @x.shift }; say xxx(1 ... *);say xxx(5 ... *);
16:45 camelia rakudo-moar 72a187: OUTPUT«1␤1␤»
16:53 timotimo yeah, those will both just be stringified to "Array.new(ListIter.new())" or something
16:58 dalek rakudo/nom: 3fc98bf | coke++ | t/spectest.data:
16:58 dalek rakudo/nom: run this already fudged test
16:58 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/3fc98bf4b6
17:00 DrForr m: sub foo(Int $x) --> Bool { return $x } [foo(1),foo(0),foo(-1)]
17:00 camelia rakudo-moar 72a187: OUTPUT«5===SORRY!5=== Error while compiling /tmp/_xSqBrtChw␤Missing block␤at /tmp/_xSqBrtChw:1␤------> 3sub foo(Int $x)7⏏5 --> Bool { return $x } [foo(1),foo(0),f␤    expecting any of:␤        new name to be defined␤»
17:01 DrForr m: sub foo(Int $x) returns Bool { return $x } [foo(1),foo(0),foo(-1)]
17:01 camelia rakudo-moar 72a187: OUTPUT«5===SORRY!5=== Error while compiling /tmp/Yd65FVVIkx␤Missing infix inside []␤at /tmp/Yd65FVVIkx:1␤------> 3foo(Int $x) returns Bool { return $x } [7⏏5foo(1),foo(0),foo(-1)]␤    expecting any of:␤        bracketed infix␤        infix…»
17:01 timotimo you want a ; after the }
17:01 DrForr m: sub foo(Int $x) returns Bool { return $x }; [foo(1),foo(0),foo(-1)]
17:01 camelia rakudo-moar 72a187: OUTPUT«Type check failed for return value; expected 'Bool' but got 'Int'␤  in any return_error at src/vm/moar/Perl6/Ops.nqp:639␤  in sub foo at /tmp/Ur0DCCGUH9:1␤  in block <unit> at /tmp/Ur0DCCGUH9:1␤␤»
17:02 timotimo m: sub foo(Int $x) returns Bool() { return $x }; say [foo(1),foo(0),foo(-1)]
17:02 DrForr Okay, so my shim to cast is necessary, all I needed to see :)
17:02 camelia rakudo-moar 72a187: OUTPUT«Type check failed for return value; expected 'Bool(Any)' but got 'Int'␤  in any return_error at src/vm/moar/Perl6/Ops.nqp:639␤  in sub foo at /tmp/tyKbGoI53h:1␤  in block <unit> at /tmp/tyKbGoI53h:1␤␤»
17:02 cognominal m: :2{1}
17:02 camelia rakudo-moar 72a187: OUTPUT«5===SORRY!5=== Error while compiling /tmp/SdijWkmeBk␤Malformed radix number␤at /tmp/SdijWkmeBk:1␤------> 3:27⏏5{1}␤    expecting any of:␤        number in radix notation␤»
17:04 eli-se joined #perl6
17:06 AlexDaniel m: my @a = (); say @a[9e9]
17:06 camelia rakudo-moar 72a187: OUTPUT«Memory allocation failed; could not allocate 72000000008 bytes␤»
17:06 AlexDaniel on my machine that is "Segmentation fault"
17:07 AlexDaniel why does it attempt to allocate memory when I'm trying at access an element that is out of bounds?
17:07 AlexDaniel or where can I read about it? If that's how it should work
17:07 lizmat AlexDaniel: how can you know it is out of bounds ?
17:07 timotimo m: my @a; @a[20] = 1; say @a
17:07 camelia rakudo-moar 72a187: OUTPUT«(Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) 1␤»
17:07 cognominal AlexDaniel, because it attempts to vivify all the array sequnetially in memory.
17:08 timotimo m: say 72000000008 / 9e9
17:08 camelia rakudo-moar 72a187: OUTPUT«8.00000000088889␤»
17:08 timotimo that's one pointer per slot
17:08 DrForr AlexDaniel: Perl[6]? arrays are of unbounded extent.
17:08 lizmat m: my @a is defauit(42); @a[20] = 1; say @a
17:08 camelia rakudo-moar 72a187: OUTPUT«5===SORRY!5=== Error while compiling /tmp/tqDnwI5cN4␤Can't use unknown trait 'is defauit' in a variable declaration.␤at /tmp/tqDnwI5cN4:1␤------> 3my @a is defauit(42)7⏏5; @a[20] = 1; say @a␤    expecting any of:␤        TypeObject␤  …»
17:08 timotimo oh, huh?
17:08 timotimo haha
17:08 lizmat m: my @a is default(42); @a[20] = 1; say @a
17:08 camelia rakudo-moar 72a187: OUTPUT«(Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) 1␤»
17:08 timotimo we could put a levenshtein there, too
17:08 lizmat hmmm... that would be wrong
17:08 AlexDaniel DrForr: oh, that's what I missed somehow. Nice
17:09 cognominal AlexDaniel, If it was implemented as a tree like do immutable array implementations in immutable.js or clojure, the story would be different.
17:09 timotimo FWIW, perl6 is supposed to have shaped array definitions
17:12 timotimo NYI though
17:13 travis-ci joined #perl6
17:13 travis-ci Rakudo build failed. Will "Coke" Coleda 'run this already fudged test'
17:13 travis-ci http://travis-ci.org/rakudo/rakudo/builds/63046931 https://github.com/rakudo/rakudo/c​ompare/72a187e9eefc...3fc98bf4b64f
17:13 travis-ci left #perl6
17:13 AlexDaniel m: say 9e99; say 9e999;
17:13 camelia rakudo-moar 72a187: OUTPUT«9e+99␤Inf␤»
17:13 AlexDaniel and the difference is ?
17:15 timotimo ?
17:15 hoelzro with the new unit changes, should people start updating syntax highlighters and other associated tools? or should that wait for a bit?
17:15 timotimo please go ahead :)
17:16 TimToady I doubt it's gonna change, since there's really no more obvious term than unit, unless we made it compunit, which would be silly
17:16 TimToady and I see no reason looming that we might back it out
17:18 TimToady and several good reasons for keeping it
17:18 telex joined #perl6
17:19 AlexDaniel so, why 9e999 is not 9e+999 but Inf? What is the limit?
17:20 DrForr m: 9e999
17:20 camelia rakudo-moar 3fc98b: ( no output )
17:21 DrForr m: say 9e999
17:21 camelia rakudo-moar 3fc98b: OUTPUT«Inf␤»
17:21 lizmat weird
17:21 TimToady spent most of the morning figuring out why I couldn't access the (local) wall.org server from inside our LAN, turned out when we had a powerfail, it hooked back up to the dsl modem by both static IP and dynamic WiFi IP, which confused the heck out of it :)
17:22 TimToady m: say +('9' ~ '0' x 999)
17:22 camelia rakudo-moar 3fc98b: OUTPUT«90000000000000000000000000000000000000​000000000000000000000000000000000000000000000​000000000000000000000000000000000000000000000​000000000000000000000000000000000000000000000​000000000000000000000000000000000000000000000​00000000000000000000000000000000000000…»
17:22 TimToady m: say ('9' ~ '0' x 999).Num
17:22 camelia rakudo-moar 3fc98b: OUTPUT«Inf␤»
17:23 aborazmeh joined #perl6
17:23 aborazmeh joined #perl6
17:23 TimToady m: say Num.Range
17:23 camelia rakudo-moar 3fc98b: OUTPUT«-Inf..Inf␤»
17:23 TimToady fnerk
17:24 TimToady m: say (1e0, 2e0, 4e0 ... Inf)
17:24 camelia rakudo-moar 3fc98b: OUTPUT«1 2 4 8 16 32 64 128 256 512 1024 2048 4096 8192 16384 32768 65536 131072 262144 524288 1048576 2097152 4194304 8388608 16777216 33554432 67108864 134217728 268435456 536870912 1073741824 2147483648 4294967296 8589934592 17179869184 34359738368 68719476736…»
17:25 TimToady m: say (1e0, 2e0, 4e0 ... Inf)[*-1]
17:25 camelia rakudo-moar 3fc98b: OUTPUT«Cannot coerce Inf or NaN to an Int␤  in block <unit> at /tmp/bndMMOeYPN:1␤␤»
17:25 TimToady m: say (1e0, 2e0, 4e0 ... Inf)[*-2]
17:25 camelia rakudo-moar 3fc98b: OUTPUT«Cannot coerce Inf or NaN to an Int␤  in block <unit> at /tmp/BRCg0w1dTp:1␤␤»
17:25 TimToady m: say (1e0, 2e0, 4e0 ... Inf)[100]
17:25 camelia rakudo-moar 3fc98b: OUTPUT«1.26765060022823e+30␤»
17:25 TimToady m: say (1e0, 2e0, 4e0 ... Inf)[200]
17:25 camelia rakudo-moar 3fc98b: OUTPUT«1.60693804425899e+60␤»
17:25 TimToady m: say (1e0, 2e0, 4e0 ... Inf)[300]
17:25 camelia rakudo-moar 3fc98b: OUTPUT«2.03703597633449e+90␤»
17:25 TimToady m: say (1e0, 2e0, 4e0 ... Inf)[900]
17:25 camelia rakudo-moar 3fc98b: OUTPUT«8.45271249817064e+270␤»
17:25 TimToady m: say (1e0, 2e0, 4e0 ... Inf)[999]
17:25 camelia rakudo-moar 3fc98b: OUTPUT«5.35754303593134e+300␤»
17:25 cognominal Sorry to stalk TimToady and asking the question a 3rd time, but why Capture and Map are not Positional and Associative in rakudo? I think the 6model information as pedagogical device and so that breaks it.
17:25 ShimmerFairy joined #perl6
17:26 TimToady I still don't remember, but I seem to recall there was a good reason that jnthn or pmichaud gave once...
17:27 TimToady you could try it in a branch and see how badly it breaks, if you're that interested :)
17:28 cognominal I hope that was as an answer to my question, that I would have forgotten. I am stubborn that way.
17:28 cognominal I don't feel I am proficient enough to know how to do it.
17:29 cognominal * that was not
17:29 TimToady m: say (1e0, 2e0, 4e0 ... Inf)[3000]
17:29 camelia rakudo-moar 3fc98b: OUTPUT«Inf␤»
17:29 TimToady m: say (1e0, 2e0, 4e0 ... Inf)[2000]
17:29 camelia rakudo-moar 3fc98b: OUTPUT«Inf␤»
17:30 hoelzro TimToady: noted, thanks
17:30 TimToady m: say (1e0, 2e0, 4e0 ... Inf)[1000]
17:30 camelia rakudo-moar 3fc98b: OUTPUT«1.07150860718627e+301␤»
17:31 lizmat j: say (1e0, 2e0, 4e0 ... Inf)[1000]   # just curious
17:31 camelia rakudo-jvm 3fc98b: OUTPUT«1.0715086071862673E301␤»
17:31 lizmat j: say (1e0, 2e0, 4e0 ... Inf)[2000]   # just curious
17:31 camelia rakudo-jvm 3fc98b: OUTPUT«Inf␤»
17:31 AlexDaniel m: say 9e307; say 9e308
17:31 camelia rakudo-moar 3fc98b: OUTPUT«9e+307␤Inf␤»
17:32 cognominal the naive way, adding "is Positional" to Capture gives Could not build C3 linearization: ambiguous hierarchy :(
17:32 colomon joined #perl6
17:35 spintronic joined #perl6
17:38 mohij joined #perl6
17:38 kurahaupo1 joined #perl6
17:39 ][Sno][ joined #perl6
17:42 domidumont joined #perl6
17:42 AlexDaniel m: say 9e-310
17:42 camelia rakudo-moar 3fc98b: OUTPUT«8.99999999999997e-310␤»
17:42 AlexDaniel floating point errors?
17:43 arnsholt To be expected, since you asked for a floating point number
17:43 ShimmerFairy joined #perl6
17:43 cognominal AlexDaniel, use Rats instead
17:43 arnsholt (Scientific notation is how you get floating points in Perl 6)
17:44 AlexDaniel arnsholt: frankly speaking that's not what I expected
17:45 zacts joined #perl6
17:45 jercos m: (10 ** -310).WHAT.say
17:45 camelia rakudo-moar 3fc98b: OUTPUT«(Num)␤»
17:47 TimToady m: say FatRat.new(1,10 ** 310)
17:47 camelia rakudo-moar 3fc98b: OUTPUT«0.000000000000000000000000000000000000​000000000000000000000000000000000000000000000​000000000000000000000000000000000000000000000​000000000000000000000000000000000000000000000​000000000000000000000000000000000000000000000​00000000000000000000000000000000000000…»
17:47 TimToady Rat is limited to a denominator of 2^64 for performance reasons
17:48 cognominal m: say FatRat.new(1,10 ** 310).gist
17:48 camelia rakudo-moar 3fc98b: OUTPUT«0.000000000000000000000000000000000000​000000000000000000000000000000000000000000000​000000000000000000000000000000000000000000000​000000000000000000000000000000000000000000000​000000000000000000000000000000000000000000000​00000000000000000000000000000000000000…»
17:48 muraiki joined #perl6
17:48 cognominal m: say FatRat.new(1,10 ** 310).perl
17:48 TimToady say already does .gist
17:48 camelia rakudo-moar 3fc98b: OUTPUT«FatRat.new(1, 1000000000000000000000000000000000000000000000000​0000000000000000000000000000000000000000000000000​0000000000000000000000000000000000000000000000000​0000000000000000000000000000000000000000000000000​0000000000000000000000000000000000000000000000…»
17:49 TimToady there's a / out there
17:49 cognominal :)
17:49 TimToady though...why the numerator needs that many zeros is a good question
17:51 jercos m: for -1..2 ->\_{(10 ** _).WHAT.say}
17:51 camelia rakudo-moar 3fc98b: OUTPUT«(Num)␤(Int)␤(Int)␤(Int)␤»
17:52 TimToady one supposes that first one could be Rat
17:52 jercos I would expect negative exponents to be Rat until Rat overflows.
17:52 TimToady could be worth an RT
17:53 * masak submits rakudobug
17:53 TimToady question after that is whether it should underflow to FatRat, but probably should just go to Num
17:53 masak m: say (10 ** -1).^name
17:53 camelia rakudo-moar 3fc98b: OUTPUT«Num␤»
17:53 * lizmat is working on making Backtrace lazy
17:54 masak m: say (1/ 10).^name
17:54 camelia rakudo-moar 3fc98b: OUTPUT«Rat␤»
17:54 lizmat but first dinner&  :-)
17:54 masak TimToady: yeah, I think Num is less surprising somehow.
17:54 masak TimToady: otherwise people might run into unexpected slowness for unrequited precision.
17:54 jercos I think Num is fairly reasonable for the under/overflow, yeah.
17:55 jercos (is it an underflow because it's too small for a Rat, or an overflow because the denominator is too large?)
17:55 TimToady 'course, you'll never get overflow there
17:55 FROGGS joined #perl6
17:55 TimToady jercos: yes :)
17:55 jercos Fair :)
17:55 FROGGS o/
17:56 TimToady but I'd call it underflow in polite company because I generally try to bias my thoughts in favor of the user
17:57 TimToady m: say 1/(2**64)
17:57 camelia rakudo-moar 3fc98b: OUTPUT«5.42101086242752e-20␤»
17:57 TimToady I guess there's still lots of room there
17:58 * TimToady hesitates to call it either headroom or tailroom...
18:00 masak extremity room
18:00 jercos that's uh...
18:00 jercos m: say -64 / log(10, 2)
18:00 camelia rakudo-moar 3fc98b: OUTPUT«-19.2659197224948␤»
18:00 jercos :D good, I haven't forgotten all of high school maths
18:01 TimToady if you're mushing things down smaller, it's mushroom
18:01 Hor|zon joined #perl6
18:02 masak and if you're just going "let me be", it's broom
18:02 AlexDaniel m: say -1/Inf;
18:02 camelia rakudo-moar 3fc98b: OUTPUT«-0␤»
18:02 AlexDaniel -0?
18:02 masak sure!
18:02 masak -0 is a totally cromulent IEEE 754 number.
18:03 * FROGGS .oO( why so negative? )
18:03 DrForr How antiprocrustean ;)
18:03 masak m: say -0 < 0
18:03 camelia rakudo-moar 3fc98b: OUTPUT«False␤»
18:03 masak m: say -0 == 0
18:03 camelia rakudo-moar 3fc98b: OUTPUT«True␤»
18:03 masak m: say -0 === 0
18:03 camelia rakudo-moar 3fc98b: OUTPUT«True␤»
18:03 jdv79 lizmat: S22 is rather vague about the various curl* things.  for instance - why the need for curlf and curli.  also what exactly, and in totality, are those 2 for?
18:03 masak one could argue that that last one should be False... :)
18:03 AlexDaniel masak: are you sure that by writing -0 you're getting it right?
18:03 jercos If there's plenty of space to alter an FIR filter, that's taproom. Best discussed over a fine brew.
18:03 masak nope.
18:03 FROGGS jdv79: read https://perl6advent.wordpress.com/20​13/12/11/day-11-installing-modules/
18:04 masak m: say (-1/Inf) === 0
18:04 camelia rakudo-moar 3fc98b: OUTPUT«False␤»
18:04 masak there we go. :)
18:04 masak TimToady: I'd say the last two evals amount to a bug.
18:04 FROGGS jdv79: TL;DR to install same named dists into a database instead of putting files on disk: use CURLI instead of CURLF
18:04 masak TimToady: by the same reasoning that NaN != NaN, but NaN === NaN
18:05 FROGGS jdv79: CURLF is what P5 does, and what a developer usually wants, CURLI is for installed stuff, i.e. production
18:05 AlexDaniel m: (-1/NaN).WHAT.say; (-1/NaN).WHAT.say
18:05 camelia rakudo-moar 3fc98b: OUTPUT«(Num)␤(Num)␤»
18:05 AlexDaniel oops
18:05 AlexDaniel m: (-1/NaN).WHAT.say; (-0).WHAT.say
18:05 camelia rakudo-moar 3fc98b: OUTPUT«(Num)␤(Int)␤»
18:05 masak oh!
18:05 masak right :/
18:05 masak masak--
18:05 AlexDaniel yea
18:05 masak m: say 0e1.^name
18:05 camelia rakudo-moar 3fc98b: OUTPUT«Num␤»
18:06 masak m: say -0e1 === 0e1
18:06 camelia rakudo-moar 3fc98b: OUTPUT«True␤»
18:06 masak still bug, though.
18:06 masak m: say -0e1
18:06 camelia rakudo-moar 3fc98b: OUTPUT«-0␤»
18:06 masak huh.
18:07 masak m: say -0e1 === (-1/Inf)
18:07 camelia rakudo-moar 3fc98b: OUTPUT«True␤»
18:07 masak yeah, this is not how I'd expect === to behave.
18:07 masak it should be more discriminating than ==
18:07 masak and be able to pick out that those are actually two distinct values (that happen to be numerically equal)
18:08 AlexDaniel masak: well, both are Num so what would you expect?
18:08 ][Sno][ joined #perl6
18:08 masak what do you mean? 0e1 and 1e1 are both Num, and they're equal neither by == nor by ===
18:08 masak m: say 0e1 == 1e1; say 0e1 === 1e1
18:08 camelia rakudo-moar 3fc98b: OUTPUT«False␤False␤»
18:09 FROGGS m: say 0e1; say 1e1
18:09 camelia rakudo-moar 3fc98b: OUTPUT«0␤10␤»
18:10 AlexDaniel masak: and what's the difference between -0e1 and -1/Inf ?
18:10 masak nothing, IMO. they're the exact same value.
18:11 colomon joined #perl6
18:11 AlexDaniel masak: but then why did you say "this is not how I'd expect === to behave"?
18:11 masak m: say -0e1 === 0e1
18:11 camelia rakudo-moar 3fc98b: OUTPUT«True␤»
18:11 masak because of that.
18:11 masak m: say -0e0 === 0e0
18:11 camelia rakudo-moar 3fc98b: OUTPUT«True␤»
18:11 AlexDaniel oh ok
18:11 AlexDaniel got it
18:11 masak maybe clearer with zeroes :)
18:12 masak I'm fine with them being numerically equals (because they're the same point on the real line)
18:12 masak but I'd expect === to be able to pick them apart, because === is not encumbered with notions of number-ness
18:12 masak now I'm going to submit this and make it look like I wrote all the right things from the start :P
18:14 rindolf joined #perl6
18:16 masak m: say -0e0 < 0e0
18:16 camelia rakudo-moar 3fc98b: OUTPUT«False␤»
18:16 masak m: say -0e0 == 0e0
18:16 camelia rakudo-moar 3fc98b: OUTPUT«True␤»
18:16 TimToady eqv and === on floaters should probably just compare chunks of memory
18:18 _mg_ joined #perl6
18:19 masak #125216
18:19 masak ENOSYNOPSEBOT
18:19 masak https://rt.perl.org/Ticket/Display.html?id=125216
18:42 pmichaud_ m: say 9.0 ** -1;    # related to RT #125215, perhaps
18:42 camelia rakudo-moar 3fc98b: OUTPUT«Type check failed in binding nu; expected 'Int' but got 'Num'␤  in block <unit> at /tmp/LbRWzxJs29:1␤␤»
18:43 FROGGS hi pmichaud
18:43 virtualsue joined #perl6
18:44 * colomon encourages people to get these numeric issues into roast ASAP
18:44 aborazmeh joined #perl6
18:44 aborazmeh joined #perl6
18:44 pmichaud I'm working on GLR.  :)
18:44 colomon pmichaud: you’re excused
18:44 * colomon is having a miserable day, and 30 minutes hacking on rakudo’s numbers might save his sanity
18:45 * FROGGS hugs colomon
18:45 pmichaud sanity is overrated sometimes.  That said, I highly recommend colomon++'s suggested remedy
18:48 Hor|zon joined #perl6
18:53 espadrine joined #perl6
18:54 aborazmeh joined #perl6
18:54 aborazmeh joined #perl6
18:57 colomon stupid fix is very easy
18:58 colomon not sure if it’s wise?  it turns a simple call into NQP (and presumably moar) into a ?? !!
18:59 pmichaud does it fix that one case, or also the other case identified in the ticket?
19:00 masak pmichaud! \o/
19:00 pmichaud at the moment I'm suspicious of the whole operation :)
19:02 colomon pmichaud: just int ** negative int
19:03 pmichaud colomon: yeah, I'd  prefer we get a full handle on Rat exponentiation rather than a bunch of corner-case fixes.
19:03 colomon pmichaud: that’s a completely separate issue, believe it or not.
19:03 colomon (at least as the code currently stands)
19:04 pmichaud colomon: I'm not sure it should be a separate issue.
19:05 colomon … actually, I’m not sure *why* it’s a separate issue.  huh.
19:06 pauluu left #perl6
19:06 colomon oh, because the DIVIDE_NUMBERS internal sub requires an Int argument, but is getting passed numerator ** b
19:07 pmichaud at some level I'd want to see an infix:<**>(Rat, Rat) that works, and then special-case the others as needed.
19:07 colomon well, (Rat, Rat) we don’t even try to do right now.
19:08 colomon as the result generally will not be a Rat
19:08 colomon the easiest way to fix infix:<**>(Rat, Int) is probably to just check for Int < 0
19:09 colomon the alternative of convincing DIVIDE_NUMBERS to accept Rat arguments is just going to slow down all other Rat arithmetic
19:10 fhelmberger joined #perl6
19:10 colomon That said, even a fixed infix:<**>(Rat, Int) depends on infix:<**>(Int, Int) working properly (at least for the positive cases)
19:11 Sqirrel joined #perl6
19:11 pmichaud well, I'll bow out of the discussion for now. then.  DIVIDE_NUMBERS feels smelly to me also... but I'm not looking at that code at the moment so I should let it be :)
19:12 * masak is not sure where he stands, but enjoys the discussion
19:13 * TimToady knows where he stands, but is usually standing in the wrong place
19:14 masak but with pose and style :P
19:16 jercos infix:<**>(Rat, Rat) totally should return a Num most of the time, since you need nth roots to calculate anything that isn't n/1, and those are just (Rat, Int) really... but I still see value in handling it as Rat up until you factor in the that root.
19:18 masak usually I like the rule "smallest assignable numeric type", with Int <: Rat <: Num <: Complex being the smallness ordering.
19:18 colomon masak: you left out FatRat
19:18 * colomon must go now, but he leaves his changes spectesting
19:18 masak but I can't shake the fact that pmichaud has a point it's a slippery slope. possibly with unintended consequences.
19:19 masak like, someone might do `my Num $power = $base ** $exp;`, and be sad when the computation yields a Rat. maybe.
19:20 masak (this wouldn't be a problem if Rat ~~ Num, but... that's not the world we live in)
19:20 PerlJam .oO( I don't care what the types are as long as the math works out ;)
19:20 masak heh.
19:20 PerlJam greetings
19:20 masak \o
19:21 masak types as a shared illusion. thanks for the reminder, PerlJam++
19:21 pmichaud s/ill/del/
19:21 masak aye.
19:23 pmichaud well, since   (Rat, Rat) and (Int, Rat)  are entirely able to produce things that aren't Rats, I think I'd want them to return Num.
19:24 TimToady maybe they should return Rational  :P
19:24 masak m: my $sqrt2 = sqrt(2); say ($sqrt2 * $sqrt2).^name
19:24 camelia rakudo-moar 3fc98b: OUTPUT«Num␤»
19:25 masak m: my $sqrt2 = sqrt(2); say $sqrt2 * $sqrt2 == 2
19:25 camelia rakudo-moar 3fc98b: OUTPUT«False␤»
19:25 masak m: my $sqrt2 = sqrt(2); say $sqrt2 * $sqrt2
19:25 camelia rakudo-moar 3fc98b: OUTPUT«2␤»
19:25 khisanth_ joined #perl6
19:26 TimToady or let's just always return Complex, for consistency :)
19:26 AlexDaniel O_o
19:26 TimToady just kidding
19:26 masak AlexDaniel: don't listen to TimToady, he's a known troll :P
19:27 TimToady AlexDaniel: don't listen to masak, he's a known troll troll :P
19:27 * masak .oO( TimToady 2000: "Perl 6!" -- TimToady 2015: "just kidding" ) :P
19:27 PerlJam AlexDaniel: don't listen to anybody, it's trolls all the way down.  :P
19:27 masak this is true
19:28 pmichaud AlexDaniel: don't listen to pmichaud, he's an unknown troll. :P
19:28 masak m: constant trolls = Inf; say trolls ** trolls
19:28 camelia rakudo-moar 3fc98b: OUTPUT«Inf␤»
19:28 masak pmichaud is possibly a transfinite troll
19:28 TimToady speaking of troll troll, Glo and I were just in Las Vegas thinking about New York, New York (the hotel), and about how you say you mean the real one by reduplication
19:29 TimToady so the real city is New York, New York, New York, New York
19:29 masak yeah, yeah
19:29 pmichaud yes, but I wonder if 3x is sufficient.
19:29 pmichaud New York, New York, New York
19:30 masak m: say "New " x 19, "York" # Dr Who
19:30 camelia rakudo-moar 3fc98b: OUTPUT«New New New New New New New New New New New New New New New New New New New York␤»
19:30 * PerlJam ponders the difference between duplication and reduplication
19:30 dalek rakudo/nom: d8ce4cd | lizmat++ | src/core/Backtrace.pm:
19:30 dalek rakudo/nom: Make backtraces lazy
19:30 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/d8ce4cd47d
19:30 TimToady the denerate case is close to where jnthn comes from...coincidence?
19:30 TimToady denerate is a degenerate word
19:30 lizmat Lazy backtraces make the spectest go from 195 to 182 seconds
19:31 masak \o/
19:31 masak lizmat++
19:31 lizmat and the bare startup from 1.1 to 0.098
19:31 lizmat 0.1 to 0.098
19:31 lizmat :-)
19:31 masak m: say (195 - 182) / 195
19:31 camelia rakudo-moar 3fc98b: OUTPUT«0.066667␤»
19:31 TimToady does it keep the continuations when it actually needs the backtrace?
19:31 lizmat 0.11 to .0098
19:31 lizmat argh
19:31 * pmichaud cannot follow lizmath
19:32 masak m: say "New " x 19, "Math"
19:32 camelia rakudo-moar 3fc98b: OUTPUT«New New New New New New New New New New New New New New New New New New New Math␤»
19:32 pmichaud m: say 1.1-0.098;  say 0.1-0.098;  say 0.11-.0098
19:32 camelia rakudo-moar 3fc98b: OUTPUT«1.002␤0.002␤0.1002␤»
19:32 TimToady but on that one, the degenerate case is "Maths"
19:33 masak very CT to talk about "Maths" :)
19:33 lizmat ok, let me rephrase:
19:33 masak like a multiverse of 'em
19:33 TimToady only one?
19:33 lizmat pmichaud:
19:33 lizmat before: Files=1010, Tests=42468, 194 wallclock secs (11.26 usr  3.66 sys + 1155.46 cusr 115.91 csys = 1286.29 CPU)
19:34 masak TimToady: you would like n-category theory :P
19:34 lizmat after: Files=1010, Tests=42472, 182 wallclock secs (11.30 usr  3.42 sys + 1062.67 cusr 108.27 csys = 1185.66 CPU)
19:34 lizmat before 0.12 bare startup
19:35 lizmat now 0.10  (rounded)
19:36 Juerd It was already 0.10, rounded ;)
19:36 lizmat $ time perl6 -e 1
19:36 lizmat real0m0.098s
19:37 masak 0.1 s is a respectable startup time.
19:37 lizmat and on my machine, it's below it  :-)
19:37 masak I remember back when it was several seconds :) not so long ago.
19:37 Juerd masak: Depends on what you're comparing to.
19:38 masak of course.
19:38 PerlJam two more orders of magnitude and we'll be at Perl 5 levels but with tons more magic.
19:38 masak Perl 5's startup time is *unmeasurable* (by `time`).
19:39 lizmat If we're below p5 + Moose, I'm glad already  :-)
19:39 masak every time we have this discussion, I come back to wondering how much we'll be able to cheat without getting caught.
19:39 Juerd masak: Optimize for -e 1? :P
19:39 masak like, if you do `perl6 -e 'say 42'`, technically all you need is a language with &say and native ints :)
19:39 lizmat TimToady: I have no idea whether it keeps the continuations
19:39 PerlJam masak: If you never get caught, it's not cheating  ;)
19:39 pmichaud Rakudo 2012.06 was already at  0.09 startup time.  :)
19:40 lizmat Backtrace no longer inherits from list, implements its own flat/list/first/grep/
19:40 masak PerlJam: aye. I was being redundant. :)
19:40 lizmat and AT-POS
19:40 masak lizmat++
19:40 pmichaud that feels like solving the wrong problem, somehow.
19:40 lizmat TimToady: it's all done at the P6 level
19:41 lizmat pmichaud: what feels like solving the wrong problem
19:41 lizmat ?
19:41 dolmen joined #perl6
19:41 pmichaud reimplementing flat/list/first/grep
19:41 nwc10 m: say 1.2458e-01 / 2.44e-01
19:41 camelia rakudo-moar 3fc98b: OUTPUT«0.510573770491803␤»
19:41 pmichaud I'll take a look at it though and see if GLR fixes that.
19:41 PerlJam pmichaud: btw, how's the GLR coming along?
19:41 pmichaud PerlJam: working on it now
19:42 * masak .oO( I'm GLRd you asked! )
19:42 pmichaud my intent is to have it done by yapc::na
19:42 nwc10 m: say 1.2458e-01 / 4.066e-02
19:42 camelia rakudo-moar 3fc98b: OUTPUT«3.06394490900148␤»
19:42 masak gosh, why don't we have a bot that you can ask "when is yapc::na?" !?
19:42 nwc10 half the time of Moose. 3 times the time of Moo.
19:42 masak well, Perl 6 OO is more like Moose than Moo.
19:42 nwc10 lizmat++ # closing in on Moo
19:42 pmichaud I seem to recall giving this talk.  :)   http://pmthium.com/2012/09/a-rakudo-performance/
19:43 nwc10 masak: I don't disagree. But if it's possible to beat Moo it silences the "but Moo is good enough and faster" arguments
19:43 travis-ci joined #perl6
19:43 travis-ci Rakudo build passed. Elizabeth Mattijsen 'Make backtraces lazy'
19:43 travis-ci http://travis-ci.org/rakudo/rakudo/builds/63066328 https://github.com/rakudo/rakudo/c​ompare/3fc98bf4b64f...d8ce4cd47d4e
19:43 travis-ci left #perl6
19:43 Juerd nwc10: Bare Perl 5 is good enough and faster, for many users.
19:44 nwc10 Juerd: usually including me.
19:45 pmichaud I wonder if it would be better to have Backtrace inherit from List but have its own generator to make it lazy
19:45 lizmat pmichaud: I considered that
19:45 masak nwc10: I wouldn't mind if we were on par with (or faster than) Moo.
19:45 jnthn I don't think Backtrace should inherit from List
19:46 jnthn That's now how you inheritance.
19:46 nwc10 good *, jnthn
19:46 jnthn o/
19:46 masak jnthn: good news! it no longer does!
19:46 jnthn \o/
19:46 jnthn lizmat++
19:46 lizmat pmichaud:  but that would be outside of my List foo
19:47 nwc10 *two* arms? It must be good.
19:47 lizmat and probably affected / put more on your GLR plate
19:47 lizmat post GLR I'll look at it again, ok?
19:47 jnthn TimToady: Glancing the patch: yeah, it keeps all the info around. We actually got make it lazier still and keep enough info around, I suspect...
19:48 jnthn lizmat: I'm not sure Backtrace should do any more than be *coercable* to list
19:48 pmichaud actually, it's not whether Backtrace inherits from List that feels wrong (I agree it probably shouldn't inherit from List).... it's the reimplementing of .first and .grep that I'm not sure about.
19:48 lizmat jnthn: well, we need .flat as well for >>.foo
19:48 jnthn If it's got a .list method that just gather/take's the frames, all the other list-y things just fall out by coercion, no?
19:48 pmichaud those ought to be able to come from Any
19:49 lizmat jnthn: yes, but .list vivifies all entries atm
19:49 pmichaud that part should be fixable.
19:49 lizmat I guess that's ok for grep, but for first
19:49 dalek perl6-examples: c71e660 | paultcochrane++ | categories/euler/prob054-andreoss.pl:
19:49 dalek perl6-examples: [euler] clean up code text a bit
19:49 dalek perl6-examples:
19:49 dalek perl6-examples:  - remove trailing whitespace
19:49 dalek perl6-examples:  - wrap text to within 80 chars for readability in all terminals/editors
19:49 dalek perl6-examples:  - add vim coda
19:49 dalek perl6-examples: review: https://github.com/perl6/perl​6-examples/commit/c71e660724
19:49 dalek perl6-examples: 4b9b8c2 | paultcochrane++ | categories/ (20 files):
19:49 dalek perl6-examples: Use $*SPEC.catdir for platform independent path names
19:49 dalek perl6-examples: review: https://github.com/perl6/perl​6-examples/commit/4b9b8c28fd
19:49 dalek perl6-examples: 0ef4319 | paultcochrane++ | .gitignore:
19:49 dalek perl6-examples: Update .gitignore after event003 output file rename
19:49 dalek perl6-examples: review: https://github.com/perl6/perl​6-examples/commit/0ef4319779
19:49 jnthn lizmat: It's OK for first too, if we're vivifying we're using the backtrace, and the frames are finite
19:51 * lizmat is spectesting
19:53 colomon t/spec/S32-exceptions/misc.t known problem with the spectest?
19:55 lizmat jnthn: looks like I need to provide a .map only
19:55 pmichaud I'm afk again  # GLR designing
19:58 * masak .oO( ooh, where'd you get that speedy List? -- it's a chic new design from pmichaud )
20:00 PerlJam .oO( Does it come in different colors? )
20:00 dalek nqp/curly: 3135dfa | FROGGS++ | src/vm/jvm/runtime/org/perl6/nqp/runtime/Ops.java:
20:00 dalek nqp/curly: Check owning object wasn't disclaimed.
20:00 dalek nqp/curly:
20:00 dalek nqp/curly: Port of https://github.com/MoarVM/MoarVM/commit/1a36596
20:00 dalek nqp/curly: review: https://github.com/perl6/nqp/commit/3135dfa6bb
20:01 bartolin r: say NaN ** 0
20:01 camelia rakudo-{moar,jvm} d8ce4c: OUTPUT«1␤»
20:01 FROGGS jnthn: I want to merge cunion :S
20:02 jnthn /o\
20:02 jnthn FROGGS: I'm in no good mental state to do code review right now, I'm afraid
20:02 jnthn (Going to crawl into bed very shortly)
20:02 FROGGS jnthn: there was one thing you did not like AFAIR... 'is inlined' as an Attribute trait
20:02 FROGGS ohh, okay
20:02 FROGGS np
20:03 FROGGS the code itself is perfect of course :o)
20:04 FROGGS (no really, the code should be fine)
20:04 dalek rakudo/nom: fa2ee21 | lizmat++ | src/core/Backtrace.pm:
20:04 dalek rakudo/nom: Replace .grep/.first by .map, they will follow
20:04 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/fa2ee21625
20:04 nwc10 jnthn: sleep well.
20:04 mdinger joined #perl6
20:05 lizmat we lose a bit on the spectest because of the generalization, but startup is still the same
20:05 mdinger is there an online perl playpen? Kinda like https://play.rust-lang.org/ ? I couldn't find it if there is
20:05 timotimo huh. you play a video game for a bit, then have dinner and watch a show with your friends and suddenly it's already 2200?
20:06 FROGGS wow, it is still 2015 here
20:06 FROGGS timotimo: how's 2200?
20:06 FROGGS mdinger: there was/is somewhere... let me try to find it
20:06 jnthn 'night, #perl6
20:06 mdinger ok awesome
20:06 FROGGS gnight jnthn
20:07 lizmat gnight jnthn
20:07 timotimo FROGGS: the perl6 is amazing!
20:07 timotimo :P
20:07 FROGGS :D
20:08 FROGGS mdinger: somebody hosted a farabi service... can't find it though
20:08 [ptc] after the change requiring 'unit' before module definitions, would it a good idea to issue pull requests to P6 modules adding the 'unit' declarator?
20:08 dalek roast: 1ceff32 | colomon++ | S32-num/rat.t:
20:08 dalek roast: Tests for exponentiation to a negative Int power.
20:08 dalek roast: review: https://github.com/perl6/roast/commit/1ceff32e1d
20:08 FROGGS mdinger: but you can talk to camelia here or in privmsg
20:09 FROGGS m: say 'hello mdinger'
20:09 camelia rakudo-moar d8ce4c: OUTPUT«hello mdinger␤»
20:09 mdinger oh ok
20:09 [ptc] just wondering in case it is wished for that the number of warnings with e.g. panda installs should be reduced
20:09 FROGGS [ptc]: I think so, yes... hopefully we also have a star release this month
20:10 [ptc] FROGGS: and it's simply a matter of adding 'unit' before 'module', right?
20:10 masak [ptc]: sounds like a good idea, yes.
20:10 [ptc] if so, I can start making a few easy PRs and help get things cleaned up
20:10 FROGGS [ptc]: either that, changing it to the block form... (which might make sense for panda)
20:11 FROGGS or changing*
20:11 [ptc] what are the pros and cons of each form?
20:11 [ptc] ... just trying to understand a bit better so that I can make relevant PRs, and not annoy the module authors
20:12 FROGGS pro for the block form is that it also works with and older compiler
20:13 FROGGS pro for the unit scope declarator is that you only change a single line
20:15 masak +1 unit scope declarator
20:15 masak that's the easy change to make.
20:15 virtualsue joined #perl6
20:15 [ptc] true, but it makes the change backwards incompatible for the module authors
20:16 [ptc] btw, is it possible to specify a panda version in rakudobrew?
20:16 FROGGS which is not a problem when there is a rakudo star this month
20:16 FROGGS dunno
20:16 masak also, if they went for the statement form once, they're likely to do so again.
20:16 masak the old form is not gone, right? only deprecated.
20:16 FROGGS correct
20:16 [ptc] I'm building 2015.04 on Travis atm, and Rakudo barfs since panda uses Empty
20:16 masak then I see no harm.
20:17 yqt joined #perl6
20:17 FROGGS masak: the harm is: we change modules now, and ppl who use latest star cant install these modules
20:17 [ptc] ok, I'll start making PRs for the unit declarator change, might take a bit though...
20:17 [ptc] when is the release this month?
20:18 mdinger_ joined #perl6
20:18 FROGGS Thursday
20:20 mdinger_ joined #perl6
20:21 mdinger_ say 'abc' ~~ /  <[ a..] ]>+ /
20:23 mdinger camelia: help
20:23 camelia mdinger: Usage: <(niecza|debug-cat|prof-m|pugs|rakudo-jvm|n​qp-parrot|std|nqp-jvm|p5-to-p6|nqp-js|star-​m|star-j|rakudo-moar|nqp-moarvm|Prn|nqp-mvm​|perl6|nrP|nqp-j|j|r|p56|sj|sm|nqp-p|nqp-q|​rnP|p6|nqp-m|m|rakudo|nr|r-m|n|nqp|rj|rm|rP​n|r-j|r-jvm|star|nom|rn|P|Pnr|nPr)(?^::\s) $perl6_program>
20:23 mdinger can you chat with camelia without filling the channel?
20:24 skids mdinger: yes just /msg camelia
20:24 masak mdinger: /msg camelia m: say "OH HAI"
20:25 mdinger thanks. got it working.
20:28 [ptc] FROGGS: thanks.
20:28 [ptc] first PR now on its way :-)
20:28 FROGGS [ptc]++ # :o)
20:32 spider-mario joined #perl6
20:37 japhb joined #perl6
20:39 lizmat hmmm... looks like my change broke JVM quite significantly  :-(
20:39 lizmat Use of uninitialized value of type Any in string contextjava.lang.NullPointerException
20:39 FROGGS jvm is easily upset these days
20:39 eli-se joined #perl6
20:40 eli-se hi
20:40 vendethiel jvm is like "hey there, friend, it seems you stepped on my f... OH MY GOD WHAT DID YOU JUST DO"
20:40 vendethiel \o eli-se
20:40 eli-se \o/
20:42 bartolin lizmat: where do you get that?
20:42 lizmat $ perl6-j --ll-exception t/spec/S02-literals/autoref.t
20:42 lizmat testing a fix atm
20:42 bartolin j: 1..Any
20:42 camelia rakudo-jvm fa2ee2: OUTPUT«Use of uninitialized value of type Any in numeric contextjava.lang.NullPointerException␤␤»
20:43 lizmat yeah, just about any warning will trigger it atm
20:43 FROGGS https://github.com/rakudo/rakudo/pull/431
20:43 andreoss joined #perl6
20:43 andreoss m: my @x = Empty xx 10; say @x.elems;
20:43 camelia rakudo-moar fa2ee2: OUTPUT«0␤»
20:44 andreoss m: my @x = Empty xx *; say @x[^10].elems;
20:44 andreoss m: my @x := Empty xx *; say @x[^10].elems;
20:44 camelia rakudo-moar fa2ee2: OUTPUT«(timeout)»
20:44 camelia rakudo-moar fa2ee2: OUTPUT«(timeout)»
20:44 colomon ugh, git / merging issues here.
20:45 bartolin FROGGS: yeah, but that on does no longer work (due to the changes in Backtrace.pm)
20:45 FROGGS yeah
20:45 FROGGS still a weird patch if you ask me :o)
20:45 FROGGS m: my @x; say @x[^10].elems;
20:45 camelia rakudo-moar fa2ee2: OUTPUT«0␤»
20:46 bartolin FROGGS: *g* I just closed the PR
20:46 andreoss should Empty behaves like that?
20:46 andreoss m: my @x = (1; Empty) xx *; say @x[10].WHAT;
20:46 camelia rakudo-moar fa2ee2: OUTPUT«(Int)␤»
20:47 andreoss m: my @x = (Empty; Empty) xx *; say @x[10].WHAT;
20:47 camelia rakudo-moar fa2ee2: OUTPUT«Empty␤»
20:47 andreoss m: my @x = Empty xx *; say @x[10].WHAT;
20:47 bartolin lizmat: I see, it explodes for different warnings now.
20:47 camelia rakudo-moar fa2ee2: OUTPUT«(timeout)»
20:48 andreoss m: subset Nothing of Empty; my @x = Nothing xx *; say @x[10].WHAT;
20:48 camelia rakudo-moar fa2ee2: OUTPUT«Empty␤»
20:54 labster m: my Set is Empty;
20:54 camelia rakudo-moar fa2ee2: OUTPUT«5===SORRY!5===␤Type 'Set' is not declared␤at /tmp/T5buKC9CFA:1␤------> 3my Set 7⏏5is Empty;␤Malformed my␤at /tmp/T5buKC9CFA:1␤------> 3my Set 7⏏5is Empty;␤␤»
20:54 japhb joined #perl6
20:59 dalek rakudo/nom: 563abdd | colomon++ | src/core/ (2 files):
20:59 dalek rakudo/nom: Fix Int/Rat ** -Int.
20:59 dalek rakudo/nom:
20:59 dalek rakudo/nom: This makes both cases generate a Rat if the result fits in a Rat, and
20:59 dalek rakudo/nom: a Num otherwise.
20:59 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/563abdd468
21:00 masak 'night, #perl6
21:00 colomon o/
21:01 lizmat gnight masak
21:04 aindilis joined #perl6
21:09 andreoss joined #perl6
21:12 [Sno] joined #perl6
21:17 japhb lizmat, OOC, why the effort to optimize and then lazify backtraces?  Are they being generated in lots of places that never make it to the user?
21:17 lizmat yes, discussed this with jnthn : apparently during startup, there are at least 4 fails
21:17 * japhb guesses throwing an exception must have generated one, thus making exception throw-catch unnecessarily expensive
21:17 japhb ah
21:18 lizmat and lazifying them made the difference between 120 ms and 100 ms startup
21:18 sue__ joined #perl6
21:18 kurahaupo joined #perl6
21:18 FROGGS often you try {} something or check if something produces a Failure without looking at its backtrace
21:19 timotimo oooh
21:19 timotimo and that improvement is already in? cool!
21:20 TimToady otoh a Failure has to be ready to report where its original failure was if it triggers in an entirely different part of the program, so getting that lazy without loss of info is, I agree, cool
21:20 lizmat well, yes, but it breaks every warning on the JVM  with a NullPointerException :-)
21:20 TimToady those JVM people should be more careful!
21:21 lizmat TimToady: I only made the P6 part lazy, not the nqp part
21:22 lizmat j: my $ + 1
21:22 camelia rakudo-jvm 563abd: OUTPUT«Use of uninitialized value of type Any in numeric contextjava.lang.NullPointerException␤␤»
21:24 lizmat :-(
21:28 lizmat found the problem
21:29 lizmat apparently nqp::atpos is more temperamental on JVM than on Moar
21:31 timotimo well, we have VMNull on moar and nothing similar on the jvm, i believe
21:31 andreoss left #perl6
21:36 lizmat spectest of fix on moar is clean, now waiting for jvm spectest
21:39 zengargoyle so... 'module Text::Fortune:ver<0.01>;' --> 'unit module Text::Fortune:ver<0.01>;' is the change that i need in my module?
21:39 dalek rakudo/nom: 00723c6 | lizmat++ | src/core/Backtrace.pm:
21:39 dalek rakudo/nom: Fix JVM breakage of warnings
21:39 dalek rakudo/nom:
21:39 dalek rakudo/nom: Also re-instate private .first to make the most common case of warnings be
21:39 dalek rakudo/nom: as lazy as possible (using the Any.first would vivify all entries still).
21:39 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/00723c69fc
21:39 lizmat spectest not done yet, but no failures yet (where there were before)
21:40 lizmat and on that note, I'm going to give timotimo a nudge
21:40 lizmat and wish #perl6 a good night
21:40 lizmat &
21:41 [ptc] gnight lizmat
21:42 berekuk joined #perl6
21:43 FROGGS gnight lizmat++
21:43 FROGGS tadzik: I found something "funny" in panda :o)
21:44 FROGGS funny in a way that I spend some hours on it
21:46 labster m: 0+1i == sqrt(-1)
21:46 camelia rakudo-moar 563abd: ( no output )
21:46 timotimo gnite lizmat :)
21:46 timotimo zengargoyle: that's right
21:46 labster m: say 0+1i == sqrt(-1), 0+1i == -1**0.5
21:46 camelia rakudo-moar 563abd: OUTPUT«5===SORRY!5=== Error while compiling /tmp/MnBonjuX_v␤Missing required term after infix␤at /tmp/MnBonjuX_v:1␤------> 3say 0+1i == sqrt(-1), 0+1i ==7⏏5 -1**0.5␤    expecting any of:␤        prefix␤        term␤»
21:47 labster m: say 0+1i == sqrt(-1), 0+1i == (-1)**0.5
21:47 camelia rakudo-moar 563abd: OUTPUT«FalseFalse␤»
21:48 TimToady m: say 0+1i == sqrt(-1+0i), 0+1i == (-1+0i)**0.5
21:48 camelia rakudo-moar 563abd: OUTPUT«FalseFalse␤»
21:48 TimToady but for a different reason
21:48 TimToady m: say sqrt(-1)
21:48 camelia rakudo-moar 563abd: OUTPUT«NaN␤»
21:49 TimToady m: say sqrt(-1+0i)
21:49 camelia rakudo-moar 563abd: OUTPUT«6.12323399573677e-17+1i␤»
21:49 jercos m: say e**(i*pi)
21:49 camelia rakudo-moar 563abd: OUTPUT«-1+1.22464679914735e-16i␤»
21:49 jercos oh so close
21:49 timotimo perhaps we want to special-case that? >_<
21:50 jercos m: sin(pi)
21:50 camelia rakudo-moar 563abd: ( no output )
21:50 timotimo though ... better to make sure people use "i" instead of trying to come up with sqrt(Complex.new(-1, 0)) or something silly like that
21:50 jercos m: say sin(pi)
21:50 camelia rakudo-moar 563abd: OUTPUT«1.22464679914735e-16␤»
21:50 jercos hey, that looks familiar! :p
21:50 TimToady it's just a funny way to write 0
21:51 Juerd m: say sin(pi) == 0
21:51 camelia rakudo-moar 563abd: OUTPUT«False␤»
21:51 Juerd Is it? :P
21:51 timotimo why do we only have double precision?
21:51 timotimo clearly, quadruple precision is needed
21:51 TimToady well, maybe triple, anyway
21:51 Juerd timotimo: What we need is a == that's slightly more forgiving ;)
21:52 labster as a discordian, I'm going to argue for quintuple precision.
21:52 timotimo that sounds like a splendid idea! :P
21:52 TimToady "How many times must == forgive its brother?"
21:52 Juerd Or something that isn't so strictly boolean...
21:52 Juerd True... False... CloseEnough...
21:52 jercos m: sin(pi/4) - cos(pi/4)
21:52 camelia rakudo-moar 563abd: ( no output )
21:52 jercos m: say sin(pi/4) - cos(pi/4)
21:52 camelia rakudo-moar 563abd: OUTPUT«-1.11022302462516e-16␤»
21:52 jercos you'd think at this point I'd remember to use say >.>
21:53 labster The Colbert truthiness operator.
21:53 TimToady well, if you compare the number of values for which it's false to the number of values for which it's true, it's still gonna come out even
21:53 FROGGS Juerd: everybody knows that it is: True, False and FileNotFound :o)
21:54 timotimo hehe
21:55 eli-se joined #perl6
21:55 Sqirrel joined #perl6
21:56 Juerd FROGGS: Or simply repurpose Whatever for this; it already has a suitable name.
21:56 * FROGGS throws in http://thedailywtf.com/art​icles/What_Is_Truth_0x3f_ as a reference
21:57 Juerd FROGGS: That hurts
21:57 FROGGS *g*
21:57 FROGGS it does
21:57 FROGGS but.... so is life
21:57 jercos these sound like a good way to induce Fun behavior :p
21:58 FROGGS I have co-workers like these -.-
22:01 RabidGravy I mean there have been times when I thought a Maybe might be appropriate
22:02 * jercos .oO( fuzzy logic runs best on a furbeowulf cluster )
22:09 timotimo here's what the cat has to say:                         0000000000000000000000000000​000000000000000000000000000
22:24 yubimusubi joined #perl6
22:26 RabidGravy and cats arenever wrong
22:27 orafu joined #perl6
22:29 ugexe m: my $s = "abcd"; say $s ~~ /<alpha> ** 2..3/; say $s ~~ /<alpha> ** {2..3}/; # will these eventually return the same thing, or are they actually saying different things?
22:29 camelia rakudo-moar 00723c: OUTPUT«「abc」␤ alpha => 「a」␤ alpha => 「b」␤ alpha => 「c」␤「abc」␤ alpha => 「c」␤»
22:32 timotimo oh, huh?
22:32 timotimo that does look like a bug
22:32 ugexe there are roasts for it, but they are just 'ok' tests, none compare the value returned to make sure its correct
22:34 timotimo damn
22:34 timotimo yeah, that's a bad miss :)
22:34 timotimo m: say "abcd" ~~ /<alpha> ** {(2,3)}/;
22:34 camelia rakudo-moar 00723c: OUTPUT«「ab」␤ alpha => 「b」␤»
22:34 timotimo m: say "abcd" ~~ /<alpha> ** { 4..4 } /;
22:35 camelia rakudo-moar 00723c: OUTPUT«「abcd」␤ alpha => 「d」␤»
22:35 timotimo m: say "abcd" ~~ /<alpha> ** { 1..1 } /;
22:35 camelia rakudo-moar 00723c: OUTPUT«「a」␤ alpha => 「a」␤»
22:35 timotimo m: say "abcd" ~~ /<alpha> ** { 1 } /;
22:35 camelia rakudo-moar 00723c: OUTPUT«「a」␤ alpha => 「a」␤»
22:35 timotimo m: my $range = 1..3; say "abcd" ~~ /<alpha> ** { $range } /;
22:35 camelia rakudo-moar 00723c: OUTPUT«「abc」␤ alpha => 「c」␤»
22:41 Alina-malina joined #perl6
22:55 skids joined #perl6
22:56 TimToady yeah, looks like a bug to me too, we should not distinguish return of <alpha>* from <alpha> ** 0..* or <alpha> ** { 0..* }
23:02 vendethiel joined #perl6
23:08 Alina-malina joined #perl6
23:18 mazeTemporal joined #perl6
23:23 LLamaRider joined #perl6
23:26 mazeTemporal I am having a problem using 'prove'.  Installed rakudo and Strawberry Perl on Windows7, wrote a simple test program using 'test'.  Executing perl6 on it returns that the test was ok but executing prove -e perl6 on it throws an error.  ..."failed at usr/lib/perl5/5.8.8/TAP/Parser/Iterator/Process.pm line 168"...  I am not sure where to look for the problem, but that directory looks like unix which makes me suspicious.
23:28 mazeTemporal If this is the wrong place to ask about this, please let me know a more appropriate one.
23:29 tony-o_ m: my $range = 1..3; "abcde" ~~ /$<aa>=(<alpha> ** {$range})/; say $<aa>;
23:29 camelia rakudo-moar 00723c: OUTPUT«「abc」␤ alpha => 「c」␤»
23:29 tony-o_ m: my $range = 1..3; "abcde" ~~ /$<aa>=(<alpha> ** {$range})/; say $<aa>.Str;
23:29 camelia rakudo-moar 00723c: OUTPUT«abc␤»
23:30 BenGoldberg_ joined #perl6
23:30 tony-o_ m: my $range = 1..3; "abcde" ~~ /(<alpha> ** {$range})/; say $0.Str;
23:30 camelia rakudo-moar 00723c: OUTPUT«abc␤»
23:30 tony-o_ m: my $range = 1..3; "abcde" ~~ /(<alpha> ** {$range})/; say $0.Str; say $0<alpha>.perl;
23:30 camelia rakudo-moar 00723c: OUTPUT«abc␤Match.new(ast => Any, list => (), hash => EnumMap.new(), orig => "abcde", to => 3, from => 2)␤»
23:30 tony-o_ m: my $range = 1..3; "abcde" ~~ /(<alpha> ** {$range})/; say $0.Str; say $0<alpha>.Str;
23:30 camelia rakudo-moar 00723c: OUTPUT«abc␤c␤»
23:34 Ulti mazeTemporal: are you putting the perl6 bit in quotes?
23:35 Ulti mazeTemporal: so something like prove -e 'perl6 -I ./lib' -lrv t/
23:37 geekosaur on windows (cmd.exe or powershell) I think it needs to be double quotes? (if using something like bash, single quotes would be correct)
23:38 mazeTemporal It is even simpler than that, I am trying to run test itself not on a library.  It is just prove -e perl6 hellotest, where hellotest is: use v6; use test; plan 1; is 1+1, 2, '1+1=2';
23:40 Ulti what happens if you do some prove stuff on perl5 code
23:41 Ulti as in have you been using Strawberry Perl for Perl 5 things for ages and all of a sudden its not working now?
23:42 mazeTemporal I have not tested prove in Perl 5 yet.  I just installed Strawberry Perl because rakudo did not seem to include prove.  I can try looking up how to do it in Perl 5 and testing that today.
23:44 timotimo we're going to have a prove6 in due time; someone's already started on that, actually
23:44 Ulti yeah sorry I don't use perl on windows it's been years since I installed strawberry perl
23:44 mazeTemporal The original problem is that I cannot install any Perl 6 modules on this computer, and I distilled that down to prove not working.  It is a bit mysterious to me because it all works fine on another computer
23:44 mazeTemporal going to work, will read logs later if anyone thinks of something else
23:44 Ulti well you can just install without testing :3 but not really a sustainable solution
23:45 ugexe Strawberry perl should have prove
23:46 mazeTemporal I am using the prove from Strawberry Perl, it throws that error on this computer
23:46 Ulti the perl 5.8.8 error message for a recent install of strawberry is a bit odd
23:46 Ulti unless you just installed a 5.8.8 version?!
23:46 dalek rakudo-star-daily: 52a554c | coke++ | log/ (2 files):
23:46 dalek rakudo-star-daily: today (automated commit)
23:46 dalek rakudo-star-daily: review: https://github.com/coke/rakudo​-star-daily/commit/52a554c0dd
23:47 ugexe yu have to quote your executable probably
23:47 ugexe prove -e "perl6" file
23:47 Ulti shouldn't need to without any spaces
23:47 ugexe on windows?
23:47 Ulti sure
23:47 Ulti its not completely backwards
23:48 Ulti wow strawberry perl still make 5.8.8 available, dedication
23:52 mazeTemporal That is a good point about it being strange to have a 5.8.8 error, but I just checked and I used the 5.20.2.1 msi.  quotes around perl6 threw same error (should only need quotes for spaces, that is correct)
23:54 [Coke] prove -e .\perl6, maybe?
23:54 ugexe i just tried his command and file on cmd.exe and it passed :(
23:55 [Coke] Did you try perl6 hellotest -- no prove?

| Channels | #perl6 index | Today | | Search | Google Search | Plain-Text | summary

Perl 6 | Reference Documentation | Rakudo