»ö« 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:01 Sqirrel joined 00:07 lizmat joined 00:10 fhelmberger joined 00:12 aborazmeh joined, aborazmeh left, aborazmeh joined 00:15 fhelmberger left
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␤…»
tony-o_ m: grammar C { rule TOP { ^^ <!whatever> $$ }; token whatever { $*WHATEVER }; }; my $*WHATEVER = "AA"; C.parse('AA').perl.say;
camelia rakudo-moar 88b120: OUTPUT«Any␤»
tony-o_ m: grammar C { rule TOP { ^^ <!whatever> $$ }; token whatever { $*WHATEVER }; }; my $*WHATEVER = "AA"; C.parse('BB').perl.say;
camelia rakudo-moar 88b120: OUTPUT«Any␤»
00:28 laouji joined 00:31 raiph left 00:39 laouji left 00:42 raiph joined 00:43 aborazmeh left 00:44 AlexDaniel left 00:47 laouji joined
dalek kudo/nom: 7d20205 | hoelzro++ | tools/build/create-jvm-runner.pl:
Add jna.library.path to set properties for JVM runner

This allows JNA (the library we use for NativeCall on JVM) to be able to locate shared objects used by NativeCall to function properly on installations where such shared objects are not installed in a place where the dynamic library loader can find them.
00:47
00:50 sue_ left, Ben_Goldberg left, BenGoldberg_ joined 01:12 kurahaupo joined 01:16 kurahaupo left 01:18 aborazmeh joined, aborazmeh left, aborazmeh joined 01:34 risou is now known as risou_awy 01:35 risou_awy is now known as risou 01:50 BenGoldberg_ left 01:51 Ben_Goldberg joined
raydiak someone please merge 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:01
02:03 tardisx` is now known as tardisx
raydiak
.oO( though at least they're colorful )
02:03
hoelzro raydiak: I'm sure tadzik will get around to it tomorrow 02:08
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!
hoelzro wonders if he'd consider "gifting" the repo to the perl6 org 02:11
raydiak *shrug* not sure what his level of personal attachment to it is :) 02:15
afk few
backish 02:24
02:24 mazeTemporal joined, mazeTemporal left
timotimo raydiak: not 100% sure if we want to wait with the unit declarations until the next release or something? 02:25
we still have no very good way to handle that :(
raydiak ah good point...suppose I could update it with { } instead 02:26
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:28
raydiak if we don't care about this, we are silly imo. 02:29
02:29 rmgk_ joined, rmgk left, rmgk_ is now known as rmgk 02:35 yeahnoob joined
timotimo understood 02:36
prepare the pull request and i'll merge
ah, there it is 02:37
raydiak and thank you :) 02:38
02:49 raiph left
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.
timotimo in theory, we could just allow "panda install JSON::Fast:auth<timo>" 02:58
that'd solve the --auth and --ver problem
raydiak .tell FROGGS except for revdep, because I wasn't sure about checking auth/ver info of a META.info dependency entry
yoleaux raydiak: I'll pass your message to FROGGS.
raydiak darn you timo quit stealing my words! :)
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
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.
timotimo :) 03:00
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 :)
yoleaux raydiak: I'll pass your message to FROGGS.
timotimo you can "panda install" the same thing that it says to "use" in the source code
03:02 noganex left
raydiak wait is there any circumfix characters that aren't special in the shell? 03:02
geekosaur random utf8 stuff...
raydiak don't want people redirecting IO streams with < and >
03:02 asarch joined
raydiak guess we can just say "quote it if you need a longname" 03:02
anyway, y'all can kick that around if you feel inclined...shopping time for me, back in a while :P 03:03
03:04 BenGoldberg_ joined 03:05 Ben_Goldberg left 03:16 zcm joined 03:37 PZt left 03:46 FROGGS_ joined 03:47 Sqirrel left 03:49 FROGGS left 04:01 araujo joined
dalek kudo/nom: f2e770c | hoelzro++ | src/Perl6/Compiler.nqp:
Use int type for counter when building completions

This fixes a bug that happens when using Linenoise integrated with the REPL on the JVM
04:09
04:10 yeahnoob left 04:13 anaeem1_ joined 04:16 anaeem1_ left 04:17 anaeem1 joined 04:19 kaare_ joined 04:30 skids left 04:42 kurahaupo1 joined 04:46 BenGoldberg_ left 04:57 lolisa left 05:37 cognominal left 05:38 cognominal joined 05:41 FROGGS_ left
FROGGS[mobile] longnames++ 05:53
the same can go into META.info 05:54
05:55 domidumont joined
raydiak cool, will get rid of --ver and --auth and all the special one-module-only MAIN multis 05:55
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:56
05:57 yeahnoob joined 05:59 domidumont left 06:00 domidumont joined
raydiak and if I write it myself, would it be sufficient to parse with /\< ~ \> .*?/ or so? 06:02
06:11 diana_olhovik joined 06:12 fhelmberger joined 06:16 fhelmberger left 06:18 laouji left 06:28 asarch left
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
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
raydiak good morning masak
and moritz
moritz jnthn: re Backtrace being a list: we might rely on it being iterable somewhere; otherwise not important, afaict 06:43
06:46 aborazmeh left
raydiak good night #perl6 o/ 06:48
06:48 RabidGravy joined, Sqirrel joined 06:51 espadrine joined 06:56 _mg_ joined 07:01 mr-foobar left 07:05 zakharyas joined 07:07 laouji joined 07:17 Ven joined
masak good night, raydiak on the other side of the 2-sphere. 07:18
07:19 Ven left
lizmat moritz jnthn re backtrace being a list: almost all of the code relies on AT-POS either directly or indirectly 07:20
07:20 abraxxa joined
lizmat good *, #perl6! 07:20
FROGGS[mobile]: I was thinking last night about precomping 07:21
perhaps we should make a separate dir with the git describe of rakudo as name, to put all of the precomped files in
if we then remember the order in which files were originally compiled
then an upgrade of rakudo would just mean creating a new dir and precomping the files in there 07:22
07:22 berekuk joined
moritz lizmat: well, it could delegate AT-POS to the attribute holding the list 07:22
masak `handles 'AT-POS';`
lizmat moritz: true, I was just saying that the force runs deep there :-)
FROGGS[mobile]: one could even consider putting the precomped database in there 07:23
07:23 Ven joined
lizmat which would allow you to share a CURLI dir between different versions of rakudo 07:23
which *could* be a huge benefit, especially in a production environment 07:24
07:24 bjz joined, brrt joined 07:26 virtualsue joined
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:29 espadrine left, bjz left 07:34 FROGGS joined 07:35 berekuk left 07:40 brrt left 07:46 berekuk joined 07:49 berekuk left 07:50 brrt joined 07:55 rindolf joined 08:00 espadrine joined 08:02 dolmen joined 08:05 Isp-sec joined, spider-mario left 08:10 dolmen left 08:11 brrt left 08:12 darutoko joined
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
02:58Z <raydiak> FROGGS: except for revdep, because I wasn't sure about checking auth/ver info of a META.info dependency entry
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
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 :)
dalek kudo/nom: f7fd47c | FROGGS++ | docs/release_guide.pod:
pick this week
08:23
08:31 virtualsue left 08:34 rarara left
lizmat FROGGS++ 08:39
FROGGS this way I can merge weird stuff in :P 08:40
MUHAHAHAHA
lizmat FROGGS++ ( for merge weird stuff in )
*merging
masak FROGGS++ 08:41
FROGGS: pro tip: make sure you can sign tags. 08:42
FROGGS masak: I already done this, so I am set up
did*
08:44 labster left 08:45 fhelmberger joined
masak ok, excellent 08:51
08:52 domidumont left 08:53 labster joined 08:57 mls_ is now known as mls 08:58 domidumont joined 09:06 araujo_ joined 09:07 araujo left 09:09 brrt joined 09:13 risou is now known as risou_awy, risou_awy is now known as risou
dalek kudo/nom: 6c32886 | lizmat++ | src/core/Backtrace.pm:
Only check RAKUDO_VERBOSE_STACKFRAME once per bt
09:15
09:20 araujo_ left, Ven left 09:25 yeahnoob left, sue__ left 09:28 telex left 09:29 sue_ joined 09:30 telex joined 09:33 Isp-sec left
dalek kudo/nom: 2cfe02a | lizmat++ | src/core/Backtrace.pm:
Do fewer lookups in backtrace generation
09:35
09:50 cognominal left 09:51 cognominal joined 09:53 cognominal left, cognominal joined, dayangkun left 10:00 anaeem___ joined, anaeem___ left 10:01 anaeem1 left, anaeem1_ joined, Sqirrel left
dalek kudo/nom: 72a187e | lizmat++ | src/core/Backtrace.pm:
Some more optimizations in bt creation
10:06
masak I was wondering if "Backtrace" was a neologism for "Stack trace" that Perl 6 had come up with. 10:32
but no, it seems quite wide-spread.
10:32 Ven joined
masak there's a Linux command `backtrace`, for example. 10:33
RabidGravy and gdb's 'bt' 10:34
masak oh, indeed.
some people apparently call them "stack backtraces" 10:35
arnsholt I wonder which came first
10:35 anaeem1 joined
arnsholt I guess stack trace, which is then very easily convertible into backtract 10:35
10:36 anaeem1 left, anaeem1_ left, RabidGravy left, anaeem1 joined 10:43 Zoffix joined, RabidGravy joined 10:47 brrt left 10:59 Zoffix left 11:14 kurahaupo1 left 11:21 xfix joined, xfix left, xfix joined 11:32 pauluu joined 11:39 brrt joined 11:46 berekuk joined 11:57 Ven left 11:59 _mg__ joined 12:00 _mg_ left, _mg__ is now known as _mg_, Ven joined
dalek kudo-star-daily: 7ff5849 | coke++ | log/ (2 files):
today (automated commit)
12:02
rl6-roast-data: dd69a4c | coke++ | / (9 files):
today (automated commit)
awwaiid aa/go 12:04
12:05 andreoss joined
andreoss m: say 2.FatRat.sqrt.gist; 12:05
camelia rakudo-moar 72a187: OUTPUT«1.4142135623731␤»
andreoss shouldn't FatRat have its own .sqrt, .log etc. methods? 12:06
moritz and loop endlessly on trying to approximate an irrational number with arbitrary precision? 12:08
andreoss m: say <1/3>.FatRat.gist;
camelia rakudo-moar 72a187: OUTPUT«0.333333␤»
Ven m: module A { class B {}; }; say A::B.new.perl 12:09
camelia rakudo-moar 72a187: OUTPUT«B.new␤»
Ven m: module A { module B { class C {} } }; my \alias = A::B; say alias::C.new.perl 12:10
camelia rakudo-moar 72a187: OUTPUT«Cannot find method 'postcircumfix:<( )>'␤ in block <unit> at /tmp/6JoTdkRqy6:1␤␤»
Ven m: module A { module B { class C {} } }; my \alias := A::B; say alias::C.new.perl #uhmm
camelia rakudo-moar 72a187: OUTPUT«Cannot find method 'postcircumfix:<( )>'␤ in block <unit> at /tmp/7n782j56ci:1␤␤»
12:11 Sqirrel joined
andreoss moritz: with parametrized precision i assume 12:11
12:12 pecastro_ joined 12:13 pecastro left
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␤»
andreoss m: say [*] ^52; 12:14
camelia rakudo-moar 72a187: OUTPUT«0␤»
andreoss m: say [*] (^52);
camelia rakudo-moar 72a187: OUTPUT«0␤»
moritz andreoss: well, possible, but quite expensive (and much work)
andreoss m: say [*] (1..52); 12:16
camelia rakudo-moar 72a187: OUTPUT«80658175170943878571660636856403766975289505440883277824000000000000␤»
moritz m: say [*] 1..52
camelia rakudo-moar 72a187: OUTPUT«80658175170943878571660636856403766975289505440883277824000000000000␤»
andreoss moritz: what should i use then if I want more digits after dot ? 12:17
vytas m: say [*] 52!;
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␤»
moritz andreoss: use an arbitrary precision numeric library
as you would, in any other language 12:18
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' $/␤»
Ven m: 'var a, b, c' ~~ (my token /^'var' <[a-z]> %% \, $/)
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␤»
Ven m: 'var a, b, c' ~~ (my anon token /^'var' <[a-z]> %% \, $/)
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
Ven "P6opaque: no such attribute '$!signature'" 12:46
Ven wuts
FROGGS Ven: that probably means that a decont is missing 12:47
Ven thanks
12:50 lizmat left
FROGGS hoelzro: I think I have a proper solution for LD_LIBRARY_PATH/rpath... 12:50
hoelzro FROGGS: oh?
FROGGS yeah, iamgine Foo.pm v1 and v2 are installed, and both expose a libfoo.so 12:51
12:51 lizmat joined
FROGGS our current mechanism for CURLF and CURLI would break 12:51
right?
hoelzro right
FROGGS wait... I need to think a bit 12:52
hoelzro =)
FROGGS damn 12:53
I was thinking that if we have an additional runner script, like site/bin/mygame...
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 anaeem1 left
FROGGS hoelzro: so we could have a very nice solution for extra runner scripts 12:56
which we create anyway for games etc 12:57
hoelzro FROGGS: something like that could work
FROGGS though, not for modules
Ven ouch, "unit" is wrecking the ecosystem
hoelzro we could also have NativeCall somehow resolve the absolute path to shared objects, and feed those to dlopen and friends
FROGGS perl6 -MDBIsh -e1 would fail, if DBIish would needs C libs created by dists
hoelzro: that would not work on openbsd AFAIK 12:58
Ven: wrecking?
hoelzro oh, interesting
Ven FROGGS: tons and tons of warnings :)
12:58 anaeem1_ joined
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
hoelzro does LD_LIBRARY_PATH work on OpenBSD?
FROGGS Ven: and you get that P6opaque msg for what piece of code?
Ven timotimo: well, that wasn't the problem here, but noted 12:59
FROGGS: some grammar parsing
wait, not even o.o
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
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:00
Ven ohh.. 13:01
m: module A { class Block {} }; say A::Block.new 13:02
camelia rakudo-moar 72a187: OUTPUT«===SORRY!===␤P6opaque: no such attribute '$!signature'␤»
FROGGS eww
Ven FROGGS: that was my issue
13:02 Sqirrel left
FROGGS you bad person you 13:02
m: module A { class Blöck {} }; say A::Blöck.new
camelia rakudo-moar 72a187: OUTPUT«Blöck.new␤»
Ven ...why does it try to use Block inside of my module?
13:02 anaeem1_ left
FROGGS m: module A { class Nil {} }; say A::Nil.new 13:02
camelia rakudo-moar 72a187: OUTPUT«Nil.new␤»
Ven that's *my* Block
FROGGS m: module A { class Callable {} }; say A::Callable.new
camelia rakudo-moar 72a187: OUTPUT«Callable.new␤» 13:03
FROGGS m: module A { class Routine {} }; say A::Routine.new
camelia rakudo-moar 72a187: OUTPUT«Routine.new␤»
FROGGS hmmm
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 domidumont left
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
hoelzro unless it's a recent enough change that the almighty Google isn't picking it up
FROGGS that happened in openbsd 4.7 IIRC
dang, we really need %?RESOURCE now 13:05
okay, for nativecall it might work with an absolute path in a random directory
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
like in your DBI example?
FROGGS though, then they can pass on -I/dir/to/whatever
again, we need %?RESOURCE for that...
hoelzro and what about PERL6LIB (as long as we're brainstorming)
FROGGS so there might be no issue at all when we would have that
hoelzro or is that just a fancy trick that has no future? 13:07
FROGGS PERL6LIB is about modules, no?
hoelzro afaik, PERL6LIB is equivalent to -I
FROGGS what trick are you talking about?
O.o
ahh, our -I, yes
not the C compilers -I
hoelzro I thought that PERL6LIB was just a carryover from PERL5LIB, and won't be supported in the future
ahhhh 13:08
FROGGS hmmm, I like PERL6LIB
hoelzro as do I
FROGGS and I hope it stays... I've not heard yet that it should go away
hoelzro I wasn't aware we had a situation where modules need to link against .so from other modules
I don't think I have either, I just thought I heard it's not permanent
FROGGS I did that in Perl 5 13:09
13:09 zakharyas1 joined
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?
FROGGS and the SDL package links against the libs from Alien::SDL
and Alien::SDL provides also CFLAGS and LDFLAGS to ease build systems
hoelzro so to link/compile, I would do gcc $opts mycode.c $(perl6-modtool --libs My::Dependency)
13:10 zakharyas left
FROGGS yeah, that's what Alien::SDL::ConfigData->libs() did 13:10
hoelzro ah ha
FROGGS so we don't need a special modtool
just an easy way to expose paths and other stuff 13:11
should be fairly easy with %?RESOURCE
hoelzro mhmm
FROGGS: btw, re: C++ NC, how should I report bugs/feature requests?
just throw them into RT?
FROGGS RT is good, aye
hoelzro ok
13:14 PZt joined 13:19 Ven left 13:26 xinming left, airdisa joined 13:27 xinming joined 13:35 aborazmeh joined, aborazmeh left, aborazmeh joined 13:40 airdisa left, laouji left 13:46 cognominal left 13:47 anaeem1 joined
literal is there an up-to-date graph like this available somewhere? github.com/flussence/specgraphs/bl.../impls.png 13:48
[Coke] literal: note that niecza isn't really on the list at the moment. 13:53
looks like that repo has scripts for generating that graph. You can get similar info here: 13:55
github.com/coke/perl6-roast-data/b....out#L2885
That shows that rakudo.moar with jit is passing 114959 tests out of 117157 13:56
(which doesn't seem right at all. I'm sure the count of "plan" vs. "spec" 13:57
d tests is slightly wonky.
FROGGS 114k of 117k sounds about right I'd say 13:58
3k skipped/todo'd tests are quite a lot 13:59
14:07 aborazmeh left 14:08 domidumont joined 14:13 anaeem1 left 14:15 domidumont left 14:16 domidumont joined 14:22 bjz joined 14:27 skids joined, bjz left 14:28 bjz joined, bjz left 14:30 bjz joined
[Coke] huh. perlito is still being developed? perlhist.com/perl6/flavio-glock 14:32
14:33 anaeem1_ joined
moritz "occasionally" 14:33
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 14:41 dayangkun left 14:42 dayangkun joined, dayangkun left 14:43 dayangkun joined 14:44 dayangkun left, dayangkun joined 14:45 dayangkun left, dayangkun joined 14:46 dayangkun left, dayangkun joined 14:47 dayangkun left 14:48 dayangkun joined 14:49 coffee` left 14:50 TimToady left 14:54 TimToady joined, coffee` joined 14:55 anaeem1_ left, anaeem1 joined 15:00 anaeem1 left 15:03 TimToady left 15:05 dayangkun left, TimToady joined 15:07 _mg_ left
lizmat not sure whether anyone has posted this here yet, but here goes: 15:07
www.dagolden.com/index.php/2466/the...consensus/ # The Annotated Berlin Consensus
15:09 fhelmberger left
masak intriguing. 15:09
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:11
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.
the "scale" bit, that is.
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
masak nodnodnod 15:14
moritz we can try to avoid decisions that we know will cause pain at scale
masak I bet CPAN wasn't as scalable when it was smaller either.
it would be interesting to pick the brains of people who have watched CPAN grow, and helped it along.
15:25 mr-foobar joined
lizmat my point of posting this here, was to show a place to pick branes :-) 15:27
15:27 Arslak joined 15:31 Arslak left
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
much of the original S11 design boils down to that
FROGGS hmmm, interesting 15:35
bbl 15:36
15:36 FROGGS left, brrt left
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 diana_olhovik left
TimToady everyone's empty folder is the same empty folder :) 15:39
timotimo i bet deduplication makes empty folders really cheap to store on virtual machine hosts and big cloud data hosting machines 15:40
15:40 cognominal joined
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:41
" 15:43
15:48 dolmen left
arnsholt Y'know, for all my kvetching over weird bits and pieces of operational semantics in Python, descriptors are pretty neat 15:52
15:52 araujo joined, domidumont left 16:00 AlexDaniel joined, zakharyas1 left
jdv79 what's holding back Inline::Python from working? 16:08
16:08 zacts left 16:11 koo6 joined
DrForr Snakes. It has to be snakes. 16:12
16:14 xinming left 16:16 eli-se joined, diana_olhovik joined
eli-se hi 16:16
vendethiel \o
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
jdv79 where is this "(file|inst)#" path stuff in the specs or tests? 16:18
FROGGS[mobile] jdv79: specs == tests, and it should be in roast/S11... 16:19
jdv79 design docs then 16:20
FROGGS[mobile] it has not manifested there yet me thinks 16:21
jdv79 if its in the tests its not easily greppable
i see the inline p5 changes. ok 16:23
thanks
lizmat jdv79: 52-parse-include-spec.t and 54-use-lib.t in t/01-sanity contain some tests 16:24
andreoss m: say 2.FatRat.*sqrt 16:27
camelia rakudo-moar 72a187: OUTPUT«1.4142135623731 1.4142135623731␤»
andreoss m: say .signature for 2.FatRat.can('sqrt') 16:28
camelia rakudo-moar 72a187: OUTPUT«(FatRat: *%_)␤(Cool: *%_)␤»
AlexDaniel I'm not sure if camelia will do it but here is an LTA 16:29
m: sub test { test }; test
camelia rakudo-moar 72a187: OUTPUT«Memory allocation failed; could not allocate 36864 bytes␤»
AlexDaniel hm, interesting 16:30
the only output I get is "Killed"
16:30 lolisa joined
AlexDaniel although I still don't feel like the error is good enough 16:30
16:30 lolisa left
AlexDaniel is it possible to make it tell something about too deep recursion? 16:31
andreoss m: fork while fork;
camelia rakudo-moar 72a187: OUTPUT«5===SORRY!5=== Error while compiling /tmp/mqHXkz0jfz␤Undeclared routine:␤ fork used at line 1␤␤»
geekosaur pretty sure camelia has memory limits in place; you got hit by the OOM killer because no memory limit
16:33 eli-se left
moritz and a process limit, for that matter :-) 16:38
andreoss m: proto xxx(@) is cached { * }; multi xxx(@x) { @x.shift }; say xxx(1 xx *); say xxx(2 xx *); 16:43
camelia rakudo-moar 72a187: OUTPUT«1␤1␤»
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:47 abraxxa left 16:49 espadrine left
timotimo yeah, those will both just be stringified to "Array.new(ListIter.new())" or something 16:53
dalek kudo/nom: 3fc98bf | coke++ | t/spectest.data:
run this already fudged test
16:58
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␤»
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…»
timotimo you want a ; after the }
DrForr m: sub foo(Int $x) returns Bool { return $x }; [foo(1),foo(0),foo(-1)]
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␤␤»
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 :)
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␤␤»
cognominal m: :2{1}
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 Hor|zon_ left, eli-se joined
AlexDaniel m: my @a = (); say @a[9e9] 17:06
camelia rakudo-moar 72a187: OUTPUT«Memory allocation failed; could not allocate 72000000008 bytes␤»
AlexDaniel on my machine that is "Segmentation fault"
why does it attempt to allocate memory when I'm trying at access an element that is out of bounds? 17:07
or where can I read about it? If that's how it should work
lizmat AlexDaniel: how can you know it is out of bounds ?
timotimo m: my @a; @a[20] = 1; say @a
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␤»
cognominal AlexDaniel, because it attempts to vivify all the array sequnetially in memory.
timotimo m: say 72000000008 / 9e9 17:08
camelia rakudo-moar 72a187: OUTPUT«8.00000000088889␤»
timotimo that's one pointer per slot
DrForr AlexDaniel: Perl[6]? arrays are of unbounded extent.
lizmat m: my @a is defauit(42); @a[20] = 1; say @a
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␤ …»
timotimo oh, huh?
haha
lizmat m: my @a is default(42); @a[20] = 1; say @a
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␤»
timotimo we could put a levenshtein there, too
lizmat hmmm... that would be wrong
AlexDaniel DrForr: oh, that's what I missed somehow. Nice
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
NYI though 17:12
17:13 travis-ci joined
travis-ci Rakudo build failed. Will "Coke" Coleda 'run this already fudged test' 17:13
travis-ci.org/rakudo/rakudo/builds/63046931 github.com/rakudo/rakudo/compare/7...c98bf4b64f
17:13 travis-ci left
AlexDaniel m: say 9e99; say 9e999; 17:13
camelia rakudo-moar 72a187: OUTPUT«9e+99␤Inf␤»
AlexDaniel and the difference is ?
timotimo ? 17:15
17:15 rindolf left
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 :)
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
and I see no reason looming that we might back it out
17:17 telex left
TimToady and several good reasons for keeping it 17:18
17:18 telex joined, eli-se left
AlexDaniel so, why 9e999 is not 9e+999 but Inf? What is the limit? 17:19
DrForr m: 9e999 17:20
camelia ( no output )
17:21 andreoss left
DrForr m: say 9e999 17:21
camelia rakudo-moar 3fc98b: OUTPUT«Inf␤»
lizmat weird
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 :)
m: say +('9' ~ '0' x 999) 17:22
camelia rakudo-moar 3fc98b: OUTPUT«9000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000…»
TimToady m: say ('9' ~ '0' x 999).Num
camelia rakudo-moar 3fc98b: OUTPUT«Inf␤»
17:23 aborazmeh joined, aborazmeh left, aborazmeh joined
TimToady m: say Num.Range 17:23
camelia rakudo-moar 3fc98b: OUTPUT«-Inf..Inf␤»
TimToady fnerk
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…»
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␤␤»
TimToady m: say (1e0, 2e0, 4e0 ... Inf)[*-2]
camelia rakudo-moar 3fc98b: OUTPUT«Cannot coerce Inf or NaN to an Int␤ in block <unit> at /tmp/BRCg0w1dTp:1␤␤»
TimToady m: say (1e0, 2e0, 4e0 ... Inf)[100]
camelia rakudo-moar 3fc98b: OUTPUT«1.26765060022823e+30␤»
TimToady m: say (1e0, 2e0, 4e0 ... Inf)[200]
camelia rakudo-moar 3fc98b: OUTPUT«1.60693804425899e+60␤»
TimToady m: say (1e0, 2e0, 4e0 ... Inf)[300]
camelia rakudo-moar 3fc98b: OUTPUT«2.03703597633449e+90␤»
TimToady m: say (1e0, 2e0, 4e0 ... Inf)[900]
camelia rakudo-moar 3fc98b: OUTPUT«8.45271249817064e+270␤»
TimToady m: say (1e0, 2e0, 4e0 ... Inf)[999]
camelia rakudo-moar 3fc98b: OUTPUT«5.35754303593134e+300␤»
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
TimToady I still don't remember, but I seem to recall there was a good reason that jnthn or pmichaud gave once... 17:26
you could try it in a branch and see how badly it breaks, if you're that interested :) 17:27
cognominal I hope that was as an answer to my question, that I would have forgotten. I am stubborn that way. 17:28
I don't feel I am proficient enough to know how to do it.
* that was not 17:29
TimToady m: say (1e0, 2e0, 4e0 ... Inf)[3000]
camelia rakudo-moar 3fc98b: OUTPUT«Inf␤»
TimToady m: say (1e0, 2e0, 4e0 ... Inf)[2000]
camelia rakudo-moar 3fc98b: OUTPUT«Inf␤»
hoelzro TimToady: noted, thanks 17:30
TimToady m: say (1e0, 2e0, 4e0 ... Inf)[1000]
camelia rakudo-moar 3fc98b: OUTPUT«1.07150860718627e+301␤»
17:30 ShimmerFairy left
lizmat j: say (1e0, 2e0, 4e0 ... Inf)[1000] # just curious 17:31
camelia rakudo-jvm 3fc98b: OUTPUT«1.0715086071862673E301␤»
lizmat j: say (1e0, 2e0, 4e0 ... Inf)[2000] # just curious
camelia rakudo-jvm 3fc98b: OUTPUT«Inf␤»
AlexDaniel m: say 9e307; say 9e308
camelia rakudo-moar 3fc98b: OUTPUT«9e+307␤Inf␤»
17:32 colomon left
cognominal the naive way, adding "is Positional" to Capture gives Could not build C3 linearization: ambiguous hierarchy :( 17:32
17:32 colomon joined 17:35 spintronic joined 17:38 mohij joined, kurahaupo1 joined 17:39 ][Sno][ joined 17:40 [Sno] left 17:42 domidumont joined
AlexDaniel m: say 9e-310 17:42
camelia rakudo-moar 3fc98b: OUTPUT«8.99999999999997e-310␤»
AlexDaniel floating point errors?
17:43 colomon left
arnsholt To be expected, since you asked for a floating point number 17:43
17:43 ShimmerFairy joined
cognominal AlexDaniel, use Rats instead 17:43
arnsholt (Scientific notation is how you get floating points in Perl 6)
AlexDaniel arnsholt: frankly speaking that's not what I expected 17:44
17:45 zacts joined
jercos m: (10 ** -310).WHAT.say 17:45
camelia rakudo-moar 3fc98b: OUTPUT«(Num)␤»
17:46 aborazmeh left
TimToady m: say FatRat.new(1,10 ** 310) 17:47
camelia rakudo-moar 3fc98b: OUTPUT«0.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000…»
TimToady Rat is limited to a denominator of 2^64 for performance reasons
cognominal m: say FatRat.new(1,10 ** 310).gist 17:48
camelia rakudo-moar 3fc98b: OUTPUT«0.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000…»
17:48 muraiki joined
TimToady say already does .gist 17:48
cognominal m: say FatRat.new(1,10 ** 310).perl
camelia rakudo-moar 3fc98b: OUTPUT«FatRat.new(1, 10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000…»
TimToady there's a / out there 17:49
cognominal :)
TimToady though...why the numerator needs that many zeros is a good question
jercos m: for -1..2 ->\_{(10 ** _).WHAT.say} 17:51
camelia rakudo-moar 3fc98b: OUTPUT«(Num)␤(Int)␤(Int)␤(Int)␤»
TimToady one supposes that first one could be Rat 17:52
jercos I would expect negative exponents to be Rat until Rat overflows.
TimToady could be worth an RT
masak submits rakudobug 17:53
TimToady question after that is whether it should underflow to FatRat, but probably should just go to Num
masak m: say (10 ** -1).^name
camelia rakudo-moar 3fc98b: OUTPUT«Num␤»
lizmat is working on making Backtrace lazy
masak m: say (1/ 10).^name 17:54
camelia rakudo-moar 3fc98b: OUTPUT«Rat␤»
lizmat but first dinner& :-)
masak TimToady: yeah, I think Num is less surprising somehow.
TimToady: otherwise people might run into unexpected slowness for unrequited precision.
jercos I think Num is fairly reasonable for the under/overflow, yeah.
(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
TimToady jercos: yes :) 17:55
jercos Fair :)
FROGGS o/
TimToady but I'd call it underflow in polite company because I generally try to bias my thoughts in favor of the user 17:56
m: say 1/(2**64) 17:57
camelia rakudo-moar 3fc98b: OUTPUT«5.42101086242752e-20␤»
TimToady I guess there's still lots of room there
TimToady hesitates to call it either headroom or tailroom... 17:58
masak extremity room 18:00
jercos that's uh...
m: say -64 / log(10, 2)
camelia rakudo-moar 3fc98b: OUTPUT«-19.2659197224948␤»
jercos :D good, I haven't forgotten all of high school maths
TimToady if you're mushing things down smaller, it's mushroom 18:01
18:01 Hor|zon joined
masak and if you're just going "let me be", it's broom 18:02
AlexDaniel m: say -1/Inf;
camelia rakudo-moar 3fc98b: OUTPUT«-0␤»
AlexDaniel -0?
masak sure!
-0 is a totally cromulent IEEE 754 number.
FROGGS .oO( why so negative? ) 18:03
DrForr How antiprocrustean ;)
masak m: say -0 < 0
camelia rakudo-moar 3fc98b: OUTPUT«False␤»
masak m: say -0 == 0
camelia rakudo-moar 3fc98b: OUTPUT«True␤»
masak m: say -0 === 0
camelia rakudo-moar 3fc98b: OUTPUT«True␤»
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?
masak one could argue that that last one should be False... :)
AlexDaniel masak: are you sure that by writing -0 you're getting it right?
jercos If there's plenty of space to alter an FIR filter, that's taproom. Best discussed over a fine brew.
masak nope.
FROGGS jdv79: read perl6advent.wordpress.com/2013/12/...g-modules/
masak m: say (-1/Inf) === 0 18:04
camelia rakudo-moar 3fc98b: OUTPUT«False␤»
masak there we go. :)
TimToady: I'd say the last two evals amount to a bug.
FROGGS jdv79: TL;DR to install same named dists into a database instead of putting files on disk: use CURLI instead of CURLF
masak TimToady: by the same reasoning that NaN != NaN, but NaN === NaN
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
camelia rakudo-moar 3fc98b: OUTPUT«(Num)␤(Num)␤»
AlexDaniel oops
m: (-1/NaN).WHAT.say; (-0).WHAT.say
camelia rakudo-moar 3fc98b: OUTPUT«(Num)␤(Int)␤»
18:05 ][Sno][ left
masak oh! 18:05
right :/
masak--
AlexDaniel yea
masak m: say 0e1.^name
camelia rakudo-moar 3fc98b: OUTPUT«Num␤»
masak m: say -0e1 === 0e1 18:06
camelia rakudo-moar 3fc98b: OUTPUT«True␤»
masak still bug, though.
m: say -0e1
camelia rakudo-moar 3fc98b: OUTPUT«-0␤»
masak huh.
18:07 Hor|zon left
masak m: say -0e1 === (-1/Inf) 18:07
camelia rakudo-moar 3fc98b: OUTPUT«True␤»
masak yeah, this is not how I'd expect === to behave.
it should be more discriminating than ==
and be able to pick out that those are actually two distinct values (that happen to be numerically equal)
AlexDaniel masak: well, both are Num so what would you expect? 18:08
18:08 ][Sno][ joined
masak what do you mean? 0e1 and 1e1 are both Num, and they're equal neither by == nor by === 18:08
m: say 0e1 == 1e1; say 0e1 === 1e1
camelia rakudo-moar 3fc98b: OUTPUT«False␤False␤»
FROGGS m: say 0e1; say 1e1 18:09
camelia rakudo-moar 3fc98b: OUTPUT«0␤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
AlexDaniel masak: but then why did you say "this is not how I'd expect === to behave"? 18:11
masak m: say -0e1 === 0e1
camelia rakudo-moar 3fc98b: OUTPUT«True␤»
masak because of that.
m: say -0e0 === 0e0
camelia rakudo-moar 3fc98b: OUTPUT«True␤»
AlexDaniel oh ok
got it
masak maybe clearer with zeroes :)
I'm fine with them being numerically equals (because they're the same point on the real line) 18:12
but I'd expect === to be able to pick them apart, because === is not encumbered with notions of number-ness
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
masak m: say -0e0 < 0e0 18:16
camelia rakudo-moar 3fc98b: OUTPUT«False␤»
masak m: say -0e0 == 0e0
camelia rakudo-moar 3fc98b: OUTPUT«True␤»
TimToady eqv and === on floaters should probably just compare chunks of memory
18:18 _mg_ joined
masak #125216 18:19
ENOSYNOPSEBOT
rt.perl.org/Ticket/Display.html?id=125216
18:40 _mg_ left
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:42 pmichaud_ is now known as pmichaud
FROGGS hi pmichaud 18:43
18:43 virtualsue joined
colomon encourages people to get these numeric issues into roast ASAP 18:44
18:44 aborazmeh joined, aborazmeh left, aborazmeh joined
pmichaud I'm working on GLR. :) 18:44
colomon pmichaud: you’re excused
colomon is having a miserable day, and 30 minutes hacking on rakudo’s numbers might save his sanity
FROGGS hugs colomon 18:45
pmichaud sanity is overrated sometimes. That said, I highly recommend colomon++'s suggested remedy
18:48 Hor|zon joined 18:52 aborazmeh left 18:53 espadrine joined 18:54 aborazmeh joined, aborazmeh left, aborazmeh joined
colomon stupid fix is very easy 18:57
not sure if it’s wise? it turns a simple call into NQP (and presumably moar) into a ?? !! 18:58
pmichaud does it fix that one case, or also the other case identified in the ticket? 18:59
masak pmichaud! \o/ 19:00
pmichaud at the moment I'm suspicious of the whole operation :)
colomon pmichaud: just int ** negative int 19:02
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.
(at least as the code currently stands)
pmichaud colomon: I'm not sure it should be a separate issue. 19:04
colomon … actually, I’m not sure *why* it’s a separate issue. huh. 19:05
19:06 pauluu left
colomon oh, because the DIVIDE_NUMBERS internal sub requires an Int argument, but is getting passed numerator ** b 19:06
19:07 virtualsue left
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.
as the result generally will not be a Rat 19:08
the easiest way to fix infix:<**>(Rat, Int) is probably to just check for Int < 0
the alternative of convincing DIVIDE_NUMBERS to accept Rat arguments is just going to slow down all other Rat arithmetic 19:09
19:10 fhelmberger joined
colomon That said, even a fixed infix:<**>(Rat, Int) depends on infix:<**>(Int, Int) working properly (at least for the positive cases) 19:10
19:11 Sqirrel joined
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:11
masak is not sure where he stands, but enjoys the discussion 19:12
19:13 aborazmeh left
TimToady knows where he stands, but is usually standing in the wrong place 19:13
masak but with pose and style :P 19:14
19:15 fhelmberger left
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:16
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
colomon must go now, but he leaves his changes spectesting
masak but I can't shake the fact that pmichaud has a point it's a slippery slope. possibly with unintended consequences.
like, someone might do `my Num $power = $base ** $exp;`, and be sad when the computation yields a Rat. maybe. 19:19
(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 ;)
masak heh.
PerlJam greetings
masak \o
types as a shared illusion. thanks for the reminder, PerlJam++ 19:21
pmichaud s/ill/del/
masak aye.
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:23
TimToady maybe they should return Rational :P 19:24
masak m: my $sqrt2 = sqrt(2); say ($sqrt2 * $sqrt2).^name
camelia rakudo-moar 3fc98b: OUTPUT«Num␤»
masak m: my $sqrt2 = sqrt(2); say $sqrt2 * $sqrt2 == 2 19:25
camelia rakudo-moar 3fc98b: OUTPUT«False␤»
masak m: my $sqrt2 = sqrt(2); say $sqrt2 * $sqrt2
camelia rakudo-moar 3fc98b: OUTPUT«2␤»
19:25 khisanth_ joined
TimToady or let's just always return Complex, for consistency :) 19:26
AlexDaniel O_o
TimToady just kidding
masak AlexDaniel: don't listen to TimToady, he's a known troll :P
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
PerlJam AlexDaniel: don't listen to anybody, it's trolls all the way down. :P
masak this is true
19:27 Khisanth left
pmichaud AlexDaniel: don't listen to pmichaud, he's an unknown troll. :P 19:28
masak m: constant trolls = Inf; say trolls ** trolls
camelia rakudo-moar 3fc98b: OUTPUT«Inf␤»
masak pmichaud is possibly a transfinite troll
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
so the real city is New York, New York, New York, New York 19:29
masak yeah, yeah
pmichaud yes, but I wonder if 3x is sufficient.
New York, New York, New York
19:30 rindolf left
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␤»
PerlJam ponders the difference between duplication and reduplication
dalek kudo/nom: d8ce4cd | lizmat++ | src/core/Backtrace.pm:
Make backtraces lazy
TimToady the denerate case is close to where jnthn comes from...coincidence?
denerate is a degenerate word
lizmat Lazy backtraces make the spectest go from 195 to 182 seconds
masak \o/ 19:31
lizmat++
lizmat and the bare startup from 1.1 to 0.098
0.1 to 0.098
:-)
masak m: say (195 - 182) / 195
camelia rakudo-moar 3fc98b: OUTPUT«0.066667␤»
TimToady does it keep the continuations when it actually needs the backtrace?
lizmat 0.11 to .0098
argh
pmichaud cannot follow lizmath
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␤»
pmichaud m: say 1.1-0.098; say 0.1-0.098; say 0.11-.0098
camelia rakudo-moar 3fc98b: OUTPUT«1.002␤0.002␤0.1002␤»
TimToady but on that one, the degenerate case is "Maths"
masak very CT to talk about "Maths" :) 19:33
lizmat ok, let me rephrase:
masak like a multiverse of 'em
TimToady only one?
lizmat pmichaud:
before: Files=1010, Tests=42468, 194 wallclock secs (11.26 usr 3.66 sys + 1155.46 cusr 115.91 csys = 1286.29 CPU)
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)
before 0.12 bare startup
now 0.10 (rounded) 19:35
Juerd It was already 0.10, rounded ;) 19:36
lizmat $ time perl6 -e 1
real0m0.098s
masak 0.1 s is a respectable startup time. 19:37
lizmat and on my machine, it's below it :-)
masak I remember back when it was several seconds :) not so long ago.
Juerd masak: Depends on what you're comparing to.
masak of course. 19:38
PerlJam two more orders of magnitude and we'll be at Perl 5 levels but with tons more magic.
masak Perl 5's startup time is *unmeasurable* (by `time`).
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.
Juerd masak: Optimize for -e 1? :P
masak like, if you do `perl6 -e 'say 42'`, technically all you need is a language with &say and native ints :)
lizmat TimToady: I have no idea whether it keeps the continuations
PerlJam masak: If you never get caught, it's not cheating ;)
pmichaud Rakudo 2012.06 was already at 0.09 startup time. :)
lizmat Backtrace no longer inherits from list, implements its own flat/list/first/grep/ 19:40
masak PerlJam: aye. I was being redundant. :)
lizmat and AT-POS
masak lizmat++
pmichaud that feels like solving the wrong problem, somehow.
lizmat TimToady: it's all done at the P6 level
pmichaud: what feels like solving the wrong problem 19:41
?
19:41 dolmen joined
pmichaud reimplementing flat/list/first/grep 19:41
nwc10 m: say 1.2458e-01 / 2.44e-01
camelia rakudo-moar 3fc98b: OUTPUT«0.510573770491803␤»
pmichaud I'll take a look at it though and see if GLR fixes that.
PerlJam pmichaud: btw, how's the GLR coming along?
pmichaud PerlJam: working on it now
masak .oO( I'm GLRd you asked! ) 19:42
pmichaud my intent is to have it done by yapc::na
nwc10 m: say 1.2458e-01 / 4.066e-02
camelia rakudo-moar 3fc98b: OUTPUT«3.06394490900148␤»
masak gosh, why don't we have a bot that you can ask "when is yapc::na?" !?
nwc10 half the time of Moose. 3 times the time of Moo.
masak well, Perl 6 OO is more like Moose than Moo.
nwc10 lizmat++ # closing in on Moo
pmichaud I seem to recall giving this talk. :) pmthium.com/2012/09/a-rakudo-performance/
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
19:43 travis-ci joined
travis-ci Rakudo build passed. Elizabeth Mattijsen 'Make backtraces lazy' 19:43
travis-ci.org/rakudo/rakudo/builds/63066328 github.com/rakudo/rakudo/compare/3...ce4cd47d4e
19:43 travis-ci left
Juerd nwc10: Bare Perl 5 is good enough and faster, for many users. 19:43
nwc10 Juerd: usually including me. 19:44
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
masak nwc10: I wouldn't mind if we were on par with (or faster than) Moo.
jnthn I don't think Backtrace should inherit from List
That's now how you inheritance. 19:46
nwc10 good *, jnthn
jnthn o/
masak jnthn: good news! it no longer does!
jnthn \o/
lizmat++
lizmat pmichaud: but that would be outside of my List foo
nwc10 *two* arms? It must be good. 19:47
lizmat and probably affected / put more on your GLR plate
post GLR I'll look at it again, ok?
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...
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.
lizmat jnthn: well, we need .flat as well for >>.foo
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?
pmichaud those ought to be able to come from Any
lizmat jnthn: yes, but .list vivifies all entries atm 19:49
pmichaud that part should be fixable.
lizmat I guess that's ok for grep, but for first
dalek pan style="color: #395be5">perl6-examples: c71e660 | paultcochrane++ | categories/euler/prob054-andreoss.pl:
[euler] clean up code text a bit

   - remove trailing whitespace
   - wrap text to within 80 chars for readability in all terminals/editors
   - add vim coda
pan style="color: #395be5">perl6-examples: 4b9b8c2 | paultcochrane++ | categories/ (20 files):
Use $*SPEC.catdir for platform independent path names
pan style="color: #395be5">perl6-examples: 0ef4319 | paultcochrane++ | .gitignore:
Update .gitignore after event003 output file rename
jnthn lizmat: It's OK for first too, if we're vivifying we're using the backtrace, and the frames are finite
lizmat is spectesting 19:51
colomon t/spec/S32-exceptions/misc.t known problem with the spectest? 19:53
lizmat jnthn: looks like I need to provide a .map only 19:55
pmichaud I'm afk again # GLR designing
masak .oO( ooh, where'd you get that speedy List? -- it's a chic new design from pmichaud ) 19:58
PerlJam
.oO( Does it come in different colors? )
20:00
dalek p/curly: 3135dfa | FROGGS++ | src/vm/jvm/runtime/org/perl6/nqp/runtime/Ops.java:
Check owning object wasn't disclaimed.

Port of github.com/MoarVM/MoarVM/commit/1a36596
bartolin r: say NaN ** 0 20:01
camelia rakudo-{moar,jvm} d8ce4c: OUTPUT«1␤»
FROGGS jnthn: I want to merge cunion :S
jnthn /o\ 20:02
FROGGS: I'm in no good mental state to do code review right now, I'm afraid
(Going to crawl into bed very shortly)
FROGGS jnthn: there was one thing you did not like AFAIR... 'is inlined' as an Attribute trait
ohh, okay
np
the code itself is perfect of course :o) 20:03
(no really, the code should be fine) 20:04
20:04 domidumont left
dalek kudo/nom: fa2ee21 | lizmat++ | src/core/Backtrace.pm:
Replace .grep/.first by .map, they will follow
20:04
nwc10 jnthn: sleep well.
20:04 mdinger joined
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 play.rust-lang.org/ ? I couldn't find it if there is
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?
FROGGS wow, it is still 2015 here
timotimo: how's 2200? 20:06
mdinger: there was/is somewhere... let me try to find it
jnthn 'night, #perl6
mdinger ok awesome
FROGGS gnight jnthn
lizmat gnight jnthn 20:07
timotimo FROGGS: the perl6 is amazing!
:P
FROGGS :D
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?
dalek ast: 1ceff32 | colomon++ | S32-num/rat.t:
Tests for exponentiation to a negative Int power.
FROGGS mdinger: but you can talk to camelia here or in privmsg
m: say 'hello mdinger' 20:09
camelia rakudo-moar d8ce4c: OUTPUT«hello mdinger␤»
mdinger oh ok
[ptc] just wondering in case it is wished for that the number of warnings with e.g. panda installs should be reduced
FROGGS [ptc]: I think so, yes... hopefully we also have a star release this month
[ptc] FROGGS: and it's simply a matter of adding 'unit' before 'module', right? 20:10
masak [ptc]: sounds like a good idea, yes.
[ptc] if so, I can start making a few easy PRs and help get things cleaned up
FROGGS [ptc]: either that, changing it to the block form... (which might make sense for panda)
or changing* 20:11
[ptc] what are the pros and cons of each form?
... just trying to understand a bit better so that I can make relevant PRs, and not annoy the module authors
FROGGS pro for the block form is that it also works with and older compiler 20:12
pro for the unit scope declarator is that you only change a single line 20:13
masak +1 unit scope declarator 20:15
that's the easy change to make.
20:15 virtualsue joined
[ptc] true, but it makes the change backwards incompatible for the module authors 20:15
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
dunno
masak also, if they went for the statement form once, they're likely to do so again.
the old form is not gone, right? only deprecated.
FROGGS correct
[ptc] I'm building 2015.04 on Travis atm, and Rakudo barfs since panda uses Empty
masak then I see no harm.
20:17 yqt joined
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...
when is the release this month?
20:18 mdinger_ joined, mdinger left
FROGGS Thursday 20:18
20:18 mdinger_ is now known as mdinger 20:20 mdinger_ joined
mdinger_ say 'abc' ~~ / <[ a..] ]>+ / 20:21
20:22 mdinger_ left
mdinger camelia: help 20:23
camelia mdinger: Usage: <(niecza|debug-cat|prof-m|pugs|rakudo-jvm|nqp-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|rPn|r-j|r-jvm|star|nom|rn|P|Pnr|nPr)(?^::\s) $perl6_program>
mdinger can you chat with camelia without filling the channel?
skids mdinger: yes just /msg camelia 20:24
masak mdinger: /msg camelia m: say "OH HAI"
mdinger thanks. got it working. 20:25
[ptc] FROGGS: thanks. 20:28
first PR now on its way :-)
FROGGS [ptc]++ # :o)
20:32 spider-mario joined 20:35 xfix left, darutoko left 20:37 japhb joined
lizmat hmmm... looks like my change broke JVM quite significantly :-( 20:39
Use of uninitialized value of type Any in string contextjava.lang.NullPointerException
FROGGS jvm is easily upset these days
20:39 eli-se joined
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 diana_olhovik left
vendethiel \o eli-se 20:40
eli-se \o/
bartolin lizmat: where do you get that? 20:42
lizmat $ perl6-j --ll-exception t/spec/S02-literals/autoref.t
testing a fix atm
bartolin j: 1..Any
camelia rakudo-jvm fa2ee2: OUTPUT«Use of uninitialized value of type Any in numeric contextjava.lang.NullPointerException␤␤»
20:42 muraiki left
lizmat yeah, just about any warning will trigger it atm 20:43
FROGGS github.com/rakudo/rakudo/pull/431
20:43 andreoss joined
andreoss m: my @x = Empty xx 10; say @x.elems; 20:43
camelia rakudo-moar fa2ee2: OUTPUT«0␤»
andreoss m: my @x = Empty xx *; say @x[^10].elems; 20:44
m: my @x := Empty xx *; say @x[^10].elems;
camelia rakudo-moar fa2ee2: OUTPUT«(timeout)»
colomon ugh, git / merging issues here.
bartolin FROGGS: yeah, but that on does no longer work (due to the changes in Backtrace.pm) 20:45
FROGGS yeah
still a weird patch if you ask me :o)
m: my @x; say @x[^10].elems;
camelia rakudo-moar fa2ee2: OUTPUT«0␤»
bartolin FROGGS: *g* I just closed the PR 20:46
andreoss should Empty behaves like that?
m: my @x = (1; Empty) xx *; say @x[10].WHAT;
camelia rakudo-moar fa2ee2: OUTPUT«(Int)␤»
andreoss m: my @x = (Empty; Empty) xx *; say @x[10].WHAT; 20:47
camelia rakudo-moar fa2ee2: OUTPUT«Empty␤»
andreoss m: my @x = Empty xx *; say @x[10].WHAT;
bartolin lizmat: I see, it explodes for different warnings now.
camelia rakudo-moar fa2ee2: OUTPUT«(timeout)»
andreoss m: subset Nothing of Empty; my @x = Nothing xx *; say @x[10].WHAT; 20:48
camelia rakudo-moar fa2ee2: OUTPUT«Empty␤»
20:52 japhb left
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 20:58 eli-se left, kurahaupo1 left
dalek kudo/nom: 563abdd | colomon++ | src/core/ (2 files):
Fix Int/Rat ** -Int.

This makes both cases generate a Rat if the result fits in a Rat, and a Num otherwise.
20:59
masak 'night, #perl6 21:00
colomon o/
lizmat gnight masak 21:01
21:04 aindilis joined 21:08 andreoss left, skids left 21:09 andreoss joined 21:11 ][Sno][ left 21:12 [Sno] joined
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
japhb guesses throwing an exception must have generated one, thus making exception throw-catch unnecessarily expensive
ah
lizmat and lazifying them made the difference between 120 ms and 100 ms startup 21:18
21:18 sue__ joined, kurahaupo joined
FROGGS often you try {} something or check if something produces a Failure without looking at its backtrace 21:18
timotimo oooh 21:19
and that improvement is already in? cool!
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 :-)
TimToady those JVM people should be more careful!
lizmat TimToady: I only made the P6 part lazy, not the nqp part 21:21
j: my $ + 1 21:22
camelia rakudo-jvm 563abd: OUTPUT«Use of uninitialized value of type Any in numeric contextjava.lang.NullPointerException␤␤»
lizmat :-( 21:24
found the problem 21:28
21:29 sue__ left
lizmat apparently nqp::atpos is more temperamental on JVM than on Moar 21:29
timotimo well, we have VMNull on moar and nothing similar on the jvm, i believe 21:31
21:31 andreoss left, spintronic left
lizmat spectest of fix on moar is clean, now waiting for jvm spectest 21:36
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 kudo/nom: 00723c6 | lizmat++ | src/core/Backtrace.pm:
Fix JVM breakage of warnings

Also re-instate private .first to make the most common case of warnings be as lazy as possible (using the Any.first would vivify all entries still).
lizmat spectest not done yet, but no failures yet (where there were before)
and on that note, I'm going to give timotimo a nudge 21:40
and wish #perl6 a good night
&
[ptc] gnight lizmat 21:41
21:41 berekuk left 21:42 berekuk joined, berekuk left
FROGGS gnight lizmat++ 21:43
21:43 espadrine left
FROGGS tadzik: I found something "funny" in panda :o) 21:43
funny in a way that I spend some hours on it 21:44
21:45 Sqirrel left
labster m: 0+1i == sqrt(-1) 21:46
camelia ( no output )
timotimo gnite lizmat :)
zengargoyle: that's right
labster m: say 0+1i == sqrt(-1), 0+1i == -1**0.5
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␤»
labster m: say 0+1i == sqrt(-1), 0+1i == (-1)**0.5 21:47
camelia rakudo-moar 563abd: OUTPUT«FalseFalse␤»
TimToady m: say 0+1i == sqrt(-1+0i), 0+1i == (-1+0i)**0.5 21:48
camelia rakudo-moar 563abd: OUTPUT«FalseFalse␤»
TimToady but for a different reason
m: say sqrt(-1)
camelia rakudo-moar 563abd: OUTPUT«NaN␤»
TimToady m: say sqrt(-1+0i) 21:49
camelia rakudo-moar 563abd: OUTPUT«6.12323399573677e-17+1i␤»
jercos m: say e**(i*pi)
camelia rakudo-moar 563abd: OUTPUT«-1+1.22464679914735e-16i␤»
jercos oh so close
timotimo perhaps we want to special-case that? >_<
jercos m: sin(pi) 21:50
camelia ( no output )
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
jercos m: say sin(pi)
camelia rakudo-moar 563abd: OUTPUT«1.22464679914735e-16␤»
jercos hey, that looks familiar! :p
TimToady it's just a funny way to write 0
Juerd m: say sin(pi) == 0 21:51
camelia rakudo-moar 563abd: OUTPUT«False␤»
Juerd Is it? :P
timotimo why do we only have double precision?
clearly, quadruple precision is needed
TimToady well, maybe triple, anyway
Juerd timotimo: What we need is a == that's slightly more forgiving ;)
labster as a discordian, I'm going to argue for quintuple precision. 21:52
timotimo that sounds like a splendid idea! :P
TimToady "How many times must == forgive its brother?"
Juerd Or something that isn't so strictly boolean...
True... False... CloseEnough...
jercos m: sin(pi/4) - cos(pi/4)
camelia ( no output )
jercos m: say sin(pi/4) - cos(pi/4)
camelia rakudo-moar 563abd: OUTPUT«-1.11022302462516e-16␤»
jercos you'd think at this point I'd remember to use say >.>
labster The Colbert truthiness operator. 21:53
21:53 virtualsue left
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)
timotimo hehe 21:54
21:55 eli-se joined, Sqirrel joined
Juerd FROGGS: Or simply repurpose Whatever for this; it already has a suitable name. 21:56
FROGGS throws in thedailywtf.com/articles/What_Is_Truth_0x3f_ as a reference
Juerd FROGGS: That hurts 21:57
FROGGS *g*
it does
but.... so is life
jercos these sound like a good way to induce Fun behavior :p
FROGGS I have co-workers like these -.- 21:58
22:00 eli-se left
RabidGravy I mean there have been times when I thought a Maybe might be appropriate 22:01
jercos .oO( fuzzy logic runs best on a furbeowulf cluster ) 22:02
timotimo here's what the cat has to say: 0000000000000000000000000000000000000000000000000000000 22:09
22:24 yubimusubi joined 22:25 Alina-malina left
RabidGravy and cats arenever wrong 22:26
22:27 Possum left, orafu joined 22:29 yubimusubi is now known as Possum
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:30 Possum is now known as Guest37420, Guest37420 is now known as yubimusubi
timotimo oh, huh? 22:32
that does look like a bug
ugexe there are roasts for it, but they are just 'ok' tests, none compare the value returned to make sure its correct
timotimo damn 22:34
yeah, that's a bad miss :)
m: say "abcd" ~~ /<alpha> ** {(2,3)}/;
camelia rakudo-moar 00723c: OUTPUT«「ab」␤ alpha => 「b」␤»
timotimo m: say "abcd" ~~ /<alpha> ** { 4..4 } /;
camelia rakudo-moar 00723c: OUTPUT«「abcd」␤ alpha => 「d」␤» 22:35
timotimo m: say "abcd" ~~ /<alpha> ** { 1..1 } /;
camelia rakudo-moar 00723c: OUTPUT«「a」␤ alpha => 「a」␤»
timotimo m: say "abcd" ~~ /<alpha> ** { 1 } /;
camelia rakudo-moar 00723c: OUTPUT«「a」␤ alpha => 「a」␤»
timotimo m: my $range = 1..3; say "abcd" ~~ /<alpha> ** { $range } /;
camelia rakudo-moar 00723c: OUTPUT«「abc」␤ alpha => 「c」␤»
22:41 Alina-malina joined 22:42 bjz left 22:43 yqt left 22:45 kurahaupo left, vendethiel left, kaare_ left 22:46 RabidGravy left 22:50 FROGGS left 22:55 skids joined
TimToady yeah, looks like a bug to me too, we should not distinguish return of <alpha>* from <alpha> ** 0..* or <alpha> ** { 0..* } 22:56
23:02 orafu left, vendethiel joined 23:04 pierrot left 23:08 Alina-malina left, Alina-malina joined 23:18 mazeTemporal joined 23:23 LLamaRider joined, LLamaRider left 23:25 vendethiel left
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:26
If this is the wrong place to ask about this, please let me know a more appropriate one. 23:28
tony-o_ m: my $range = 1..3; "abcde" ~~ /$<aa>=(<alpha> ** {$range})/; say $<aa>; 23:29
camelia rakudo-moar 00723c: OUTPUT«「abc」␤ alpha => 「c」␤»
tony-o_ m: my $range = 1..3; "abcde" ~~ /$<aa>=(<alpha> ** {$range})/; say $<aa>.Str;
camelia rakudo-moar 00723c: OUTPUT«abc␤»
23:30 BenGoldberg_ joined
tony-o_ m: my $range = 1..3; "abcde" ~~ /(<alpha> ** {$range})/; say $0.Str; 23:30
camelia rakudo-moar 00723c: OUTPUT«abc␤»
tony-o_ m: my $range = 1..3; "abcde" ~~ /(<alpha> ** {$range})/; say $0.Str; say $0<alpha>.perl;
camelia rakudo-moar 00723c: OUTPUT«abc␤Match.new(ast => Any, list => (), hash => EnumMap.new(), orig => "abcde", to => 3, from => 2)␤»
tony-o_ m: my $range = 1..3; "abcde" ~~ /(<alpha> ** {$range})/; say $0.Str; say $0<alpha>.Str;
camelia rakudo-moar 00723c: OUTPUT«abc␤c␤»
Ulti mazeTemporal: are you putting the perl6 bit in quotes? 23:34
mazeTemporal: so something like prove -e 'perl6 -I ./lib' -lrv t/ 23:35
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:37
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:38
Ulti what happens if you do some prove stuff on perl5 code 23:40
as in have you been using Strawberry Perl for Perl 5 things for ages and all of a sudden its not working now? 23:41
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:42
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
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
going to work, will read logs later if anyone thinks of something else
Ulti well you can just install without testing :3 but not really a sustainable solution
ugexe Strawberry perl should have prove 23:45
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
unless you just installed a 5.8.8 version?!
dalek kudo-star-daily: 52a554c | coke++ | log/ (2 files):
today (automated commit)
ugexe yu have to quote your executable probably 23:47
prove -e "perl6" file
Ulti shouldn't need to without any spaces
ugexe on windows?
Ulti sure
its not completely backwards
wow strawberry perl still make 5.8.8 available, dedication 23:48
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:52
[Coke] prove -e .\perl6, maybe? 23:54
ugexe i just tried his command and file on cmd.exe and it passed :(
[Coke] Did you try perl6 hellotest -- no prove? 23:55
23:57 mazeTemporal left