»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'p6: say 3;' or rakudo:, or /msg camelia p6: ... | irclog: irc.perl6.org or colabti.org/irclogger/irclogger_logs/perl6 | UTF-8 is our friend!
Set by moritz on 22 December 2015.
00:01 edehont left
BenGoldberg m: '🙉'.uniname.say 00:01
camelia rakudo-moar bc3592: OUTPUT«HEAR-NO-EVIL MONKEY␤»
BenGoldberg m: '🙉'.succ.uniname.say
camelia rakudo-moar bc3592: OUTPUT«HEAR-NO-EVIL MONKEY␤»
BenGoldberg m: '🙉'.pred.uniname.say
camelia rakudo-moar bc3592: OUTPUT«HEAR-NO-EVIL MONKEY␤»
BenGoldberg m: '🙉'.ord.pred.chr.uniname.say 00:02
camelia rakudo-moar bc3592: OUTPUT«SEE-NO-EVIL MONKEY␤»
00:08 eyck left, eyck joined 00:09 itaipu left 00:10 itaipu joined, tushar joined
tushar Hello, I have very basic question. What is a difference between "class" and "unit class"? I have seen several times "unit class classname" in several .pm files? Why does .pm file has it instead "class"? 00:12
Zoffix tushar, unit class; lets you avoid using { } to wrap the entire class in 00:13
geekosaur unit class Foo; declares that the whole file is the class definition 00:14
TimToady so it's like declaring the class from the inside
geekosaur instead of class Foo { ... }
tushar ohh yes.. I have noticed that too. Whenever, "unit class classname" present into .pm files, I have not seen {} after classname. 00:15
AlexDaniel awesome feature, by the way 00:16
tushar @Zoffix, @geekosaur, and @TimToady -- Thanks for prompt explanation. 00:17
Zoffix Any time.
TimToady m: .uniname.say for '🙈' ... '🙊'
camelia rakudo-moar bc3592: OUTPUT«SEE-NO-EVIL MONKEY␤HEAR-NO-EVIL MONKEY␤SPEAK-NO-EVIL MONKEY␤»
00:23 pierre_ joined, bob777 joined 00:24 pierre_ left, pierre_ joined
tbrowder I assume it's known doc build has been failing for over 13 hours. From my quick look it's not because of doc pod changes. 00:25
geekosaur it's known, there was a change in precomp that broke the doc builder searching for precompiled modules 00:26
00:26 rindolf left
geekosaur last I heard a quick fix had been proposed but not applied 00:26
(or, it was applied and this current failure mode is the result; the failure mode from the original change was different...) 00:27
tbrowder Looks like some dev will have to fix it.
00:28 bob777 left 00:32 cdg left 00:35 wamba joined
BenGoldberg Does 'unit' only work with 'class' and 'module' ? 00:36
Zoffix sub MAIN too
geekosaur also package
(but package isn't used much) 00:37
BenGoldberg m: package Foo; say 42;
camelia rakudo-moar bc3592: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤This appears to be Perl 5 code. If you intended it to be Perl 6 code, please use a Perl 6 style declaration like "unit package Foo;" or "unit module Foo;", or use the block form instead of the semicolon form…»
BenGoldberg m: unit package Foo; say 42;
camelia rakudo-moar bc3592: OUTPUT«42␤»
BenGoldberg m: unit package Foo { say 42 } 00:38
camelia rakudo-moar bc3592: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Cannot use 'unit' with block form of package declaration␤at <tmp>:1␤------> 3unit package Foo7⏏5 { say 42 }␤ expecting any of:␤ generic role␤»
BenGoldberg m: package Foo { say 42 }
camelia rakudo-moar bc3592: OUTPUT«42␤»
BenGoldberg What's the difference between a module and a package?
Zoffix also grammar 00:39
geekosaur package is the basic unit of namespacing. you could say that things like module and class are subclasses of package
(that is, they are namespacing plus some kind of functionality)
BenGoldberg Where is 'unit' documented? 00:40
geekosaur oh, I;d expect unit role to work as well
BenGoldberg m: unit role Foo; 42 00:41
camelia rakudo-moar bc3592: OUTPUT«WARNINGS for <tmp>:␤Useless use of constant integer 42 in sink context (line 1)␤»
BenGoldberg m: unit role Foo; 42.say
camelia ( no output )
BenGoldberg m: role Foo {...}; Foo.new; unit role Foo; say(42);
camelia rakudo-moar bc3592: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Too late for unit-scoped role definition;␤Please use the block form.␤at <tmp>:1␤------> 3role Foo {...}; Foo.new; unit role Foo;7⏏5 say(42);␤»
BenGoldberg m: Foo.new; unit role Foo; say(42);
camelia rakudo-moar bc3592: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Illegally post-declared type:␤ Foo used at line 1␤␤»
geekosaur hm 00:42
unit doesn't show up in the docs where I expected to find it
00:43 Zoffix left
geekosaur (tat said, I'm not sure where I expected to find it is where anyone else would look) 00:43
first I looked in Syntax (since it's a more general thing, given what it can be applied to), then I looked in Packages
oh, it *is* in Syntax. 00:44
docs.perl6.org/language/syntax#Mod...eclaration
"You can declare a unit of things without explicit curly brackets." 00:45
BenGoldberg That's not exactly a lot of docu. 00:49
m: unit sub MAIN; say 42; 00:50
camelia rakudo-moar bc3592: OUTPUT«42␤»
geekosaur well, it is followed by an example... but yes, it's as threadbare as the export stuff was
so is most of the documentation, really
[[This Perl 6 documentation is a stub. You can help Perl 6 by expanding it.]] 00:52
BenGoldberg It would be really cool if 'unit' could be used on any expression which normally ends in a block, not just a handful of special cases. 00:53
geekosaur "any"? including, say, if and while?
BenGoldberg . o O (unit gather do; take 1; take 2; take 3) 00:54
I see nothing wrong with 'unit while condition; statement; statement; statement;' 00:55
geekosaur er, 'say' there was rhetorical, not the sub/method
BenGoldberg 'unit if condition; statement; statement; statement;' should also work, but isn't any more useful than 'return unless condition; statements' or 'last unless condition; statements;' 00:56
00:57 Zoffix joined
geekosaur I was specifically thinking that (a) so how do you do 'else' (b) and, pedantically speaking, the ending block is the 'else' :p 00:57
BenGoldberg Obviously, you wouldn't be able to have an 'else BLOCK' after a 'unit if' 00:58
Well, maybe you could if you wrote "unit if EXPR { STATEMENTS } else;", but that would be wierd. :) 00:59
geekosaur imo unit if already lands you in uncanny valley; what's more weird on top? 01:01
Zoffix bisect: "foo".IO.modified 01:02
bisectable6, "foo".IO.modified 01:03
:\
geekosaur bisectable took a header earlier
Zoffix Anyway, I'm tracing the doc failure to this line: github.com/gfldex/perl6-pod-to-big...nepage#L66
geekosaur oh, no, that was benchable 01:04
Zoffix .modified is being called on a non-existant file, which returns a Failure. I'm suspecting that may have been returning something else in the past
committable6, 2016.04 "foo".IO.modified.say
committable6 Zoffix, ¦«2016.04»: Failed to find 'foo' while trying to do '.modified'␤ in block <unit> at /tmp/VIcjqsBSK1 line 1␤␤Actually thrown at:␤ in block <unit> at /tmp/VIcjqsBSK1 line 1␤ «exit code = 1»
Zoffix hm
geekosaur precomp IDs changed yesterday from a subset of Str to a class
Zoffix Right, and moritz fixed that. 01:05
committable6, 2016.04 try { "foo".IO.modified.say; CATCH { default { .^name.say } } }
committable6 Zoffix, ¦«2016.04»: X::IO::DoesNotExist
Zoffix committable6, HEAD try { "foo".IO.modified.say; CATCH { default { .^name.say } } }
m: try { "foo".IO.modified.say; CATCH { default { .^name.say } } }
camelia rakudo-moar bc3592: OUTPUT«Instant:1453533000.729611␤»
Zoffix 0.o
dafuq
m: try { "not-foo".IO.modified.say; CATCH { default { .^name.say } } } 01:06
camelia rakudo-moar bc3592: OUTPUT«X::IO::DoesNotExist␤»
geekosaur m: ".".IO.dir.say
camelia rakudo-moar bc3592: OUTPUT«(".cpanm".IO ".local".IO ".npm".IO ".perl6".IO ".perlbrew".IO ".rcc".IO ".ssh".IO "Perlito".IO "evalbot".IO "log".IO "nqp-js".IO "p1".IO "p2".IO "perl5".IO "std".IO ".bash_history".IO ".bashrc".IO "mbox".IO ".lesshst".IO "evalbot.log".IO ".cpan".IO "dalek-…»
01:06 bisectable6 left
BenGoldberg m: ".".IO.dir.grep(/foo/).say; 01:07
camelia rakudo-moar bc3592: OUTPUT«("foo".IO)␤»
01:09 committable6 left 01:13 Actualeyes joined, kaare_ joined 01:18 bisectable6 joined, committable6 joined 01:19 tushar left
Zoffix Hm, even if I remove the .modifed in pod2onepage and just pass now to :since() it still cries about .modified. 01:19
01:19 itaipu left
Zoffix Hehe under the commit that mentions .modifed stuff: :) "<nine> Ah screw the caution. Everything works just fine here and I have no idea why a sha1 would not be enough to clearly identify the precomp file's contents." 01:20
AlexDaniel committable6: HEAD say "foo".IO.modified 01:25
committable6 AlexDaniel, ¦«HEAD»: Failed to find 'foo' while trying to do '.modified'␤ in block <unit> at /tmp/PDFOyEJToT line 1␤␤Actually thrown at:␤ in block <unit> at /tmp/PDFOyEJToT line 1␤ «exit code = 1»
AlexDaniel committable6: 2015.12 say "foo".IO.modified 01:26
committable6 AlexDaniel, ¦«2015.12»: Failed to find 'foo' while trying to do '.modified'␤ in block <unit> at /tmp/EDMWA9cmBU line 1␤␤Actually thrown at:␤ in block <unit> at /tmp/EDMWA9cmBU line 1␤ «exit code = 1»
AlexDaniel bisectable6: say "foo".IO.modified
bisectable6 AlexDaniel, On both starting points (good=2015.12 bad=77d9d41) the exit code is 1 and the output is identical as well
AlexDaniel, Output on both points: Failed to find 'foo' while trying to do '.modified'␤ in block <unit> at /tmp/yciwTri4P1 line 1␤␤Actually thrown at:␤ in block <unit> at /tmp/yciwTri4P1 line 1␤
AlexDaniel bisectable6: "foo".IO.modified
bisectable6 AlexDaniel, On both starting points (good=2015.12 bad=77d9d41) the exit code is 1 and the output is identical as well
AlexDaniel, Output on both points: Failed to find 'foo' while trying to do '.modified'␤ in block <unit> at /tmp/55r2R2YSzx line 1␤␤Actually thrown at:␤ in block <unit> at /tmp/55r2R2YSzx line 1␤
AlexDaniel hm huh, so what was the problem with bisectable? :/ 01:27
committable6: HEAD try { "foo".IO.modified.say; CATCH { default { .^name.say } } }
committable6 AlexDaniel, ¦«HEAD»: X::IO::DoesNotExist
AlexDaniel huh
MasterDuke i think it was the comment i just made here: github.com/perl6/whateverable/issues/25
AlexDaniel ah 01:28
MasterDuke: … is there anything we can do to prevent them from dying? 01:29
MasterDuke block Zoffix from using them ;) 01:30
Zoffix :D
MasterDuke i kid, i kid
01:31 itaipu joined 01:36 pierre_ left 01:39 poohman_ joined 01:42 pierre_ joined 01:43 poohman left
Zoffix .tell nine recent changes still seem to have a fallout in the doc build: travis-ci.org/perl6/doc/builds/158600415 here's the module debug part for failing bit: gist.github.com/zoffixznet/8214560...d3818804cb 01:44
yoleaux Zoffix: I'll pass your message to nine.
Zoffix tried to debug and failed :)
01:45 ilbot3 left
Zoffix More debug output, if you don't mind profanity: gist.github.com/zoffixznet/b895b84...393775b79a 01:45
01:47 pierre_ left 01:48 ilbot3 joined 01:49 kerframil joined 01:53 poohman joined 01:55 poohman_ left 01:57 poohman_ joined 01:58 itaipu left 02:00 poohman left
Zoffix What does <quote=.LANG('MAIN','quote')> mean? What's with the equals sign? 02:04
02:09 cpage_ joined
skids the = separates the named capture's name from the rx or expression. 02:14
02:14 yadongz left
skids same as $quote=<.LANG...> 02:14
02:15 pierre_ joined
Zoffix m: say "foo" ~~ /<meow=[.+]>/ 02:15
camelia rakudo-moar 94b09a: OUTPUT«Nil␤»
Zoffix m: say "foo" ~~ /<meow=[foo]+>/
camelia rakudo-moar 94b09a: OUTPUT«5===SORRY!5===␤Unable to parse expression in metachar:sym<assert>; couldn't find final '>' ␤at <tmp>:1␤------> 3say "foo" ~~ /<meow=[foo]+7⏏5>/␤ expecting any of:␤ term␤Other potential difficulties:␤ Repeated character …»
Zoffix m: say "o" ~~ /<meow=[o]>/
camelia rakudo-moar 94b09a: OUTPUT«「o」␤ meow => 「o」␤»
Zoffix Ah, cool. skids++ 02:16
02:20 perlpilot left, perlpilot joined 02:23 lizmat left, lizmat joined 02:27 cyphase joined 02:30 noganex joined 02:33 noganex_ left, _slade_ left 02:38 cyphase left 02:42 cyphase joined 02:54 cyphase left 02:58 cyphase joined 03:03 cpage_ left 03:08 cyphase left 03:11 pierre_ left 03:13 cyphase joined, eliasr left 03:19 pierre_ joined 03:22 cyphase left, cdg joined 03:24 pierre_ left 03:26 pierre_ joined 03:27 cyphase joined 03:31 rgrinberg left 03:35 cyphase left 03:40 cyphase joined 03:42 imcsk8_ joined, imcsk8 left, holyghost left 03:46 cpage_ joined 03:48 cyphase left 03:50 holyghost joined 03:52 cyphase joined
dalek osystem: d39e439 | LLFourn++ | META.list:
Fix DispatchMap url

doh
03:55
03:56 skids left 04:02 cyphase left 04:06 cyphase joined 04:07 Cabanossi left, holyghost left, poohman_ left 04:10 poohman joined, Cabanossi joined 04:11 khw left 04:14 holyghost joined 04:16 cyphase left 04:18 poohman left, poohman joined 04:19 cdg left 04:20 cyphase joined 04:21 AlexDaniel left 04:33 BenGoldberg left 04:38 cyphase left 04:43 wamba left, cyphase joined 04:48 pierre_ left, pierre_ joined 04:49 cibs left, pierre_ left 04:51 cibs joined 04:55 pierre_ joined 04:58 cyphase left 05:00 pierre_ left 05:03 cyphase joined, labster left 05:05 pierre_ joined 05:09 pierre_ left 05:14 pierre_ joined 05:16 cyphase left 05:18 pierre_ left 05:20 cyphase joined 05:32 pierre_ joined 05:37 pierre_ left 05:41 cyphase left 05:46 cyphase joined 05:50 pierre_ joined 05:55 pierre_ left 05:58 domidumont joined 05:59 cyphase left 06:03 domidumont left, domidumont joined, cyphase joined 06:08 pierre_ joined 06:10 ufobat joined 06:11 [ptc] joined 06:13 pierre_ left 06:17 cyphase left 06:19 firstdayonthejob joined 06:21 cyphase joined 06:23 pierre_ joined 06:26 wamba joined 06:30 wamba left 06:34 cyphase left 06:38 cyphase joined 06:45 firstdayonthejob left 06:47 poohman left 06:49 poohman joined
llfourn if I have a type object in a $var is there any way to get the :D (definite) version of it? 06:50
(without nqp)
06:53 nadim_ joined 06:54 cyphase left
llfourn hmmm looks like not 06:57
you can do it except it will create a new MO every time you do it 06:58
06:58 poohman left, poohman joined
moritz m: my $var = Int; say ::($var.^name ~ ':D') 06:58
camelia rakudo-moar 94b09a: OUTPUT«No such symbol 'Int:D'␤ in block <unit> at <tmp> line 1␤␤Actually thrown at:␤ in block <unit> at <tmp> line 1␤␤»
06:58 cyphase joined
llfourn m: my $var = Int; Metamodel::DefiniteHOW.new_type(:base_type($var),:definite); say $var' 07:00
camelia rakudo-moar 94b09a: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Two terms in a row␤at <tmp>:1␤------> 3pe(:base_type($var),:definite); say $var7⏏5'␤ expecting any of:␤ infix␤ infix stopper␤ postfix␤ statement end␤ …»
llfourn m: my $var = Int; say Metamodel::DefiniteHOW.new_type(:base_type($var),:definite);
camelia rakudo-moar 94b09a: OUTPUT«(Int:D)␤»
07:00 Sgeo_ joined 07:01 infina left
llfourn but I don't want to make a new MO each time :\ 07:01
maybe I can just cache them 07:02
konobi access the slot?
07:02 infina joined, infina left, infina joined
llfourn konobi: what slot? 07:02
07:03 Sgeo left
konobi the slots the object is using to store it's attributes 07:03
llfourn konobi: note sure I understand what object you're referring to 07:04
not*
konobi $var
llfourn the situtation is that I need a function that take a type object and returns the definite version 07:05
but doesn't create a new Int:D if Int is passed twice
but this looks to be tricky
07:06 Actualeyes left, labster joined
llfourn it would be nice if ClassHOW or whatever cached the defnite version as an attribute 07:07
07:07 Actualeyes joined, cog_ joined, cognominal left
llfourn ah no maybe rakudo already caches it for me from looking at DefiniteHOW 07:08
07:09 leejo joined
llfourn m: my $a = Metamodel::DefiniteHOW.new_type(:base_type(Int),:definite); my $b = Metamodel::DefiniteHOW.new_type(:base_type(Int),:definite); say $a.WHERE; say $b.WHERE 07:09
camelia rakudo-moar 94b09a: OUTPUT«139693161093320␤139693161093320␤»
llfourn \o/
success 07:10
07:21 rindolf joined 07:22 kerframil left 07:30 wamba joined 07:32 grondilu joined, cyphase left 07:35 dolmen left 07:37 cyphase joined 07:53 cyphase left 07:57 cyphase joined 07:58 leont__ joined 08:05 kurahaupo joined 08:10 g4 joined 08:13 edehont joined, zakharyas joined 08:19 cdc joined
cdc Hello #perl6 o/ 08:19
How do I get a IO::Handle from a "native" file descriptor (returned by a native call) ? 08:21
I'm looking for something similar to openfd (in C).
grondilu IIRC in C a native file descriptor is just an int. 08:23
cdc grondilu: I agree, I'd like to use IO::Handle methods (like .lines) 08:24
jast in C there are fds and FILE objects (the latter is usually implemented in libc)
cdc yeah openfd() returns a FILE from an int fd 08:25
I'd like to do the same in Perl6: getting a IO::Handle from an int fd
grondilu I'd be surprised if it were possible 08:26
cdc oh noes /o\
08:26 leont__ left
lizmat cdc: I would have to concur with grondli 08:26
jast well you can *read* the native fd from an IO::Handle, so at least it would be symmetric for that to exist
lizmat unless I missed something the past months
cdc lizmat: I imagined that $*IN was created from stdin. 08:27
jast internally, though 08:28
lizmat yes, it is, with a dedicated nqp::op
08:28 edehont left
cdc lizmat: then I have to learn NQP too :) 08:28
lizmat nqp::getstdin();
cdc lizmat: could you point me to some piece
jast you'd probably have to _implement_ a new nqp op 08:29
lizmat nqp::getstdou();
cdc lizmat: oops, Thanks!
lizmat nqp::getstdout();
nqp::getstderr();
cdc I'll take a look.
geekosaur on linux you could do it with a hack: open("/dev/fd/$native")
cdc geekosaur: yeah, I tried but I got a strange behavior
geekosaur: .lines returned an error ("can't seek" IIRC) 08:30
geekosaur: my fd is returned by forkpty()
geekosaur sigh. libuv, too smart for its own good 08:32
(this may imply that, even beyond a new nqp op, you may need new logic in libuv :/ )
kurahaupo geekosaur: it turns out that Linux's /proc/*/fd/* don't enforce the permissions granted in the original open; it's possible to truncate or overwrite a file that's connected via those, even if they were originally opened read-only or append-only 08:34
geekosaur yep 08:35
08:41 kurahaupo_ joined 08:43 pierre_ left 08:44 kurahaupo left, pierre_ joined
lizmat commut& 08:47
08:48 lizmat left
cdc $*IN IO::Handle object is created at a very low-level :( 08:48
inside MoarVM IIUC
08:48 pierre_ left
cdc this is not blocking for me, but I have to use native call to read/write instead of IO::Handle methods :( 08:49
(context = I'd like to use Perl6 instead of Expect)
08:53 woolfy left, pierre_ joined 08:54 imcsk8_ left 08:56 imcsk8 joined 08:57 kurahaupo joined 08:58 pierre_ left 09:01 kurahaupo_ left 09:05 pierre_ joined 09:06 Actualeyes left 09:07 bob777 joined
Woodi cdc: if it's in Moar then it's better, just copy-paste handle creation using openfd ? :) maybe... 09:08
09:09 domidumont left 09:14 domidumont joined 09:16 kurahaupo_ joined
cdc Woodi: I think this is more than copy-paste, an "openfd" op should be added to get a (generic) access to MVM_file_get_stdstream 09:16
Woodi: and I don't know how to do that :) 09:17
Woodi: the good news is that this function already handles my case (fd points to a TTY) :) 09:18
09:18 kurahaupo left 09:19 Actualeyes joined
geekosaur actually, if you're holding the master end as you should be, it's not a tty 09:20
it's a mutant pipe as far as the OS is concerned
the *slave* end is a tty
cdc geekosaur: you are right, my mistake. 09:21
09:21 wamba left
cdc is afk 09:22
09:24 RabidGravy joined 09:27 brrt joined 09:31 darutoko joined 09:37 pierre_ left 09:40 kurahaupo_ left 09:46 pierre_ joined 09:48 cyphase left, labster left 09:49 wamba joined 09:51 pierre_ left 09:52 cyphase joined 09:55 pierre_ joined 10:09 Actualeyes left 10:14 TEttinger left 10:32 pierre_ left
grondilu .seen Zoffix 10:40
yoleaux I saw Zoffix 02:16Z in #perl6: <Zoffix> Ah, cool. skids++
Zoffix ? 10:42
grondilu, what? 10:43
timotimo cdc: check out our SSL socket thing, it uses a function that gives you the native descriptor behind an IO handle 10:45
cdc timotimo: ok, thanks! 10:46
timotimo: what's the name of this module? please.
timotimo: IO::Socket::SL I suppose. 10:47
*SSL
timotimo at least i thought we had that
i think it's inside the OpenSSL module, actually
cdc ok
timotimo greps around rakudo a bit
aha 10:48
there's a method called native-descriptor
10:51 wamba left
cdc timotimo: ho, I didn't read you correctly 10:52
grondilu Zoffix: just telling you that I'm doing the Eve thing after all.
cdc timotimo: I want the opposite: create a IO::Handle from a native desc.
grondilu (or at least trying)
Zoffix
.oO( Eve thing? )
10:52 bjz joined
grondilu the map in WebGL 10:53
Zoffix No idea what you're talking about....
Are you sure you got the right Zoffix?
grondilu hum
timotimo oh, i see 10:54
i guess *i* didn't read *you* correctly
grondilu Aren't you the guy with whom I talked about Eve online lately?
Zoffix Nope
grondilu oh, he must have a very similar nick
Zoffix zofstay? 10:55
cdc timotimo: no pb :)
Zoffix or zostay
grondilu looks at the IRC log
it's Xliff. I don't know how I could have confused the two. 10:56
Zoffix :} 10:57
11:00 ab6tract joined
ab6tract m: my $x; say $x %% 4 11:00
camelia rakudo-moar 8a6683: OUTPUT«Use of uninitialized value of type Any in numeric context␤ in block <unit> at <tmp> line 1␤True␤»
ab6tract gonna have to say
i am not clear on why that would return True 11:01
Zoffix m: say 0 %% 4
camelia rakudo-moar 8a6683: OUTPUT«True␤»
timotimo yeah, undefined numbers will warn and be treated as 0
ab6tract it feels bizarrely half-way between being strict about it and being DWIM about it. 11:02
11:02 Zoffix left
ab6tract like, if I didn't coerce it into numeric, then arguably it should just warn and perhaps return a failure 11:02
and furthermore, undefined could arguably be better coerced to something like NaN 11:03
though that strays pretty far from the standard Perl behaviors on truthiness and numbers 11:04
anyway, was attempting to construct an argument around why P6's Any semantics are awesome and ran into this... which makes me feel less excited about my own argument 11:06
11:07 bjz left 11:08 edehont joined 11:10 Actualeyes joined 11:13 munja joined 11:15 munja left 11:16 ggoebel joined, jervo left 11:17 jervo joined 11:21 edehont left 11:23 bjz joined
nadim_ Good afternoon P6ers 11:23
Woodi grondilu: what data you want to put on the map ? aliance ships, intel ? 11:24
hi nadim_ :)
nadim_ Woodi: hi :)
I was watching a video and a section was about unicode handling in P6, NFC-NFG, and it hit me that I have had a, maybe, related problem. colored srings. Now I don't think there a color space in unicode but I sure would like to be able to compose color in text. 11:26
brrt someone recently demonstrated this:
m: my $x; my $y = $x.sort; say $y;
camelia rakudo-moar 8a6683: OUTPUT«((Any))␤»
brrt which, is ehm,
not what i think is the right thing to do?
m: my $x; my $y = $x.sort; say $y.items; 11:27
camelia rakudo-moar 8a6683: OUTPUT«Method 'items' not found for invocant of class 'List'␤ in block <unit> at <tmp> line 1␤␤»
brrt m: my $x; my $y = $x.sort; say $y.length;
camelia rakudo-moar 8a6683: OUTPUT«Method 'length' not found for invocant of class 'List'␤ in block <unit> at <tmp> line 1␤␤»
brrt m: my $x; my $y = $x.sort; say $y.count;
camelia rakudo-moar 8a6683: OUTPUT«Method 'count' not found for invocant of class 'List'␤ in block <unit> at <tmp> line 1␤␤»
timotimo omg, i got a new fan installed on my laptop and it's AMAZING 11:28
nadim_ In a module I generated colored output but later I had to remove the color to count the chararacters. my first plan was to create a colored-char class and let it do the job but I wonder if I can compose the color in the characters
brrt timotimo: objectively disagree. heat pipes are amazing
fans are so-so
:-P
timotimo there's a heat pipe in my laptop
brrt m: my $x; my $y = $x.sort; say $y.elems;
camelia rakudo-moar 8a6683: OUTPUT«1␤»
timotimo it leads to a fan
the fan was previously hardly able to cool down the machine, and what's more it started whining like crazy 11:29
nadim_ TimToady: you were talking on the video, so is there a way, even if it may sound silly, to compose color in characters?
brrt (so there is my example: sorting an undefined value gives you a list of length 1. WAT)
timotimo but now it's quiet as a rock and blows like a hurricane when i turn it to "disengaged"
11:29 cyphase left
timotimo brrt: single things pretend to be a list of a single thing 11:30
brrt okay, okay
timotimo but things that create lists won't give you "only the object" if they make a list of a single thing instead
brrt m: my $x; say so $x; my $y = $x.sort; say so $y;
camelia rakudo-moar 8a6683: OUTPUT«False␤True␤»
timotimo hehe. 11:31
man the wifi in my parent's house is *crap*
brrt so, listifying does not preserve booleanness, or rather, it does not preserve nothingness, and *that* is a WAT
timotimo i need to figure out how you debug something like that
um, a single type object isn't a nothing 11:32
but it's an undefined
brrt uhuh
m: my $x; say $x.WHAT;
camelia rakudo-moar 8a6683: OUTPUT«(Any)␤»
timotimo having lists check if they aonly contain undefined things would be WAT-y to me
m: my $x; say $x.perl
camelia rakudo-moar 8a6683: OUTPUT«Any␤»
tbrowder hi #perl6 11:33
brrt hmmmm
hi tbrowder
timotimo don't forget a variable you don't assign anything to will have the type object that belongs to its type assigned to it
so that we have nice tricks like .= new, and type checks working, and stuff like that
11:34 cyphase joined
brrt i have a feeling that non-preservation of the notion of 'emptiness' is going to be painful 11:34
ilmari m: my Int $x; say $x.WHAT;
camelia rakudo-moar 8a6683: OUTPUT«(Int)␤»
11:34 bjz_ joined
brrt but i also have a feeling that this has been discussed before 11:35
tbrowder I tried to use p6 pod on my github p6 module README and it didn't render. I thought I had seen some discussion some time ago about getting the github folks to integrate p6 pod rendering.
brrt (and the feeling that I'm wrong in some important way) 11:36
timotimo brrt: are you advocating that type objects pretend to be the empty list instead of the list with only the type object in it?
brrt maybe even an undefined list
timotimo that'd be really weird
brrt yeah, i guess that is somewhat like what i'm saying
agreed
11:37 bjz left
Woodi my: $x; dd $x; dd $x.sort; 11:37
m: $x; dd $x; dd $x.sort;
camelia rakudo-moar 8a6683: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Variable '$x' is not declared␤at <tmp>:1␤------> 3<BOL>7⏏5$x; dd $x; dd $x.sort;␤»
Woodi m: my $x; dd $x; dd $x.sort;
camelia rakudo-moar 8a6683: OUTPUT«Any $x = Any␤(Any,)␤»
tbrowder I asked Github support about it and got a quick reply from github staffer Stacey Burns who seemed not to not know anything about the difference between the two pod types. 11:38
Woodi m: my $x; my $y = $x.sort;
camelia ( no output )
Woodi m: my $x; my dd $y = $x.sort;
camelia rakudo-moar 8a6683: OUTPUT«5===SORRY!5===␤Type 'dd' is not declared␤at <tmp>:1␤------> 3my $x; my dd7⏏5 $y = $x.sort;␤Malformed my␤at <tmp>:1␤------> 3my $x; my7⏏5 dd $y = $x.sort;␤␤»
Woodi m: my $x; my $y = $x.sort; dd $y;
camelia rakudo-moar 8a6683: OUTPUT«List $y = $(Any,)␤»
timotimo tbrowder: it's an easy mistake to make, given how perl6 is practically invisible to many people who aren't perl5 people
11:38 infina left
ShimmerFairy timotimo: I'd personally wait until Pod6 got more love, since it's one of the more (if not most) undermaintained parts of P6 :P 11:38
brrt hmm 11:39
Woodi goes for coffe, enforced
ShimmerFairy should really get back to working Pod stuff soonish...
timotimo ShimmerFairy: agreed :S
about the undermaintained parts
and i'm also partially to blame for that
i started doing some stuff with it, but then stopped
brrt on further thought, I think listifying undefined objects to an empty, or undefined list, is a weird special case
11:40 ZoffixMobile joined
tbrowder I offered to put them in contact with a core p6 person who could help with integration of p6 pod rendering. 11:40
brrt on the other hand, i'd argue it is much more DWIMmy than the current behaviour
timotimo tbrowder: thing is, rendering pod6 makes you susceptible to remote code execution
11:40 infina joined, infina left, infina joined
ShimmerFairy brrt: maybe it should have a warning, like trying to stringify (at least some kinds of) undefined objects 11:40
brrt and i'm having trouble to see what the WAT will be
timotimo as in, if there's code between the pod pieces, that code gets executed
brrt ShimmerFairy: that is a good idea, I think 11:41
ZoffixMobile tbrowder, the discussion is still in a doc Issue. So far we simply went with using .pod6 extension. I opened an issue asking how to have a Pod 6 renderer but never got any reply
ShimmerFairy timotimo: that shouldn't happen, for sure. You can parse ambient blocks, but should have to execute them.
*shouldn't have to
timotimo right. i don't think rakudo has a flag somewhere to make code "only parsed" and BEGIN blocks ignored
but then there's DOC blocks
11:41 infina left
timotimo which are specifically meant to be executed if perl6 is invoked with --doc 11:41
ShimmerFairy timotimo: imo, the concept of things like DOC use is misinformed, I'd prefer e.g. =use instead (to make it way more obvious it's a doc module), and I'd rather toss DOC BEGIN and friends until we find out why you'd actually need it (since I can't think of a reason). 11:42
timotimo that sounds sensible 11:43
but if you have =use, you'll still be running code :P
ZoffixMobile tbrowder, this one github.com/perl6/doc/issues/167
11:43 infina joined, infina left, infina joined
timotimo though if you don't set a -I with "uncontrolled" paths, i guess a =use with only a module name ought to be fine 11:43
ShimmerFairy timotimo: yeah, I think one might desire a declarative new language to guarantee no-remote-code while still being able to extend Pod6 :P
timotimo github is unlikely to install ACME::PwnMyServer so you could =use that in a doc
:D 11:44
ShimmerFairy I really need to write some blog posts to outline what I've been thinking of on various parts of Pod6.
tbrowder Zoffix: can I refer Stacey to you at some email address? 11:45
ShimmerFairy I've also been thinking lately that my ability to recompile the CORE.setting is low enough (~160s IIRC) that I think keeping SUPERNOVA a separate thing is more awkward than just developing in-rakudo. 11:46
timotimo 160 seconds! holy fuck. 11:47
do you have an account on hack? if not, do you want one?
ShimmerFairy Not unless I seriously forgot. And sure, why not? :) 11:48
moritz ShimmerFairy: even with relatively fast compile cycles I tend to develop core stuff out of rakudo if at all possible 11:49
tbrowder BTW, we're all using p6 pod heavily in spite of incompleteness. If we wait till it's complete, it may be a LONG time before github (or anyone else) gets interested.
moritz because the difference between ~40s and 2s to get feedback is immense
ShimmerFairy moritz: my issue is that trying to maintain a quasi-NQP codebase is probably not beneficial for much longer (it's a src/Perl6/ type change, not a src/core/ type change)
ZoffixMobile tbrowder, umm, I guess.... [email@hidden.address]
moritz ShimmerFairy: ok, that changes things 11:50
ShimmerFairy the quasi- part comes from needing access to Perl 6 stuff (so coding in P6 is best), but needing to code in an NQP style so that the transition is less painful.
timotimo ShimmerFairy: what username would you like to have?
ShimmerFairy ShimmerFairy :) 11:51
moritz please don't use camel case for UNIX user names
timotimo yeah, it's asking me to --force-badname for the uppercase letters 11:52
ShimmerFairy: would lowercase shimmerfairy be okay?
ShimmerFairy timotimo: yeah, lowercase is fine, I don't mind the capitalization.
11:59 ZoffixMobile left, canopus left 12:00 eliasr joined
tbrowder Zoffix: Okay, I just responded to Github's Stacey and sent yr email. I also forwarded my original response to Stacey to you for context. 12:07
12:07 cyphase left 12:08 canopus joined 12:11 itaipu joined, cyphase joined
nine m: (2.0**0.5) * (2.0**0.5) == 2.0 12:17
camelia rakudo-moar 8a6683: OUTPUT«WARNINGS for <tmp>:␤Useless use of "==" in expression "* (2.0**0.5) == 2.0" in sink context (line 1)␤»
yoleaux 01:44Z <Zoffix> nine: recent changes still seem to have a fallout in the doc build: travis-ci.org/perl6/doc/builds/158600415 here's the module debug part for failing bit: gist.github.com/zoffixznet/8214560...d3818804cb
nine m: say (2.0**0.5) * (2.0**0.5) == 2.0
camelia rakudo-moar 8a6683: OUTPUT«False␤»
nine sad :(
bioduds hey guys 12:18
sorry but this seems like the best I can do
67.205.136.118/install.sh
Im going to have to shut this server down cause I can't pay for it
im uploading the script to my git 12:19
if you wish to have it set on install.perl6.org
feel free to change whatever you believe is best on the script
to have it served there
:)
git is: github.com/bioduds/perl6-oneliner.git im uploading right now 12:20
12:22 TheLemonMan joined
bioduds there it is :) 12:24
12:24 stundenull joined
bioduds feel free to clone it and use it :) 12:24
12:25 itaipu left 12:26 cyphase left, itaipu joined
nine bioduds++ 12:26
bioduds :D thanks nine. sorry i couldn't do a master job but you know, shell is hell 12:27
it works though
12:30 cyphase joined 12:35 MetaZoffix joined
bioduds thanks nine :D saw your change, im merging it :) 12:39
merged, thanks a lot :> 12:40
great, so this line works: curl raw.githubusercontent.com/bioduds/...install.sh | sh;. ~/rakudo/setpath.sh 12:42
12:43 lichtkind joined 12:47 cyphase left
bioduds tx DrForr 12:47
12:51 cyphase joined
Woodi bioduds: I think point of setpath.sh or generally setenv.sh files is that it helps to keep .bashrc clean. also allowing someone on internets to write to your .bashrc is security stupidity. so removing '... >> ~/.bashrc' is very recomended for that two reasons, at least :) 12:54
bioduds: also, would be nice if we have rakudo.org/downloads/star/rakudo-st...atest.tgz, so installer could find newest R* automatically :) 12:56
bioduds yeah, we talked a lot about it. sanitizing it would actually take more than I can do in shell-hell scripting.
I actually tried prompting the user but no success 12:57
nine just edited in github. I merged. I really encourage and invite all changes you want to do there. it is public 12:58
feel free to help cause really, my shell scripts only goes that far :(
13:03 cdg joined, cdg left, cdg joined
hahainternet so a slightly difficult question to ask: given i have a postgresql database with a set of enum types representing 'status', 'Active', 'Inactive' and so-forth. I'd also like to use an enum in Perl 6 to handle this, however I don't want to duplicate the definitions, they should stay in the database. I'd like to define a type which has enum-like facilities but can be instantiated when the DB connects, or 13:03
some other workaround for this, any thoughts?
i appreciate that might be a stream of useless conciousness
13:04 rgrinberg joined
hahainternet came across a similar problem in Go too but there is literally no solution there, seems like a difficult one conceptually though 13:04
nine hahainternet: unless you want to connect to your database at compile time, I suggest just duplicating those definitions. I guess you won't have all that many and they won't change all the time.
13:04 Sgeo_ left
hahainternet nine: that's the practical solution sure, but i'm more interested in options 13:04
bioduds tx again nine
hahainternet i don't actually need to do this to get anything working, but it seems valuable to be able to support 13:05
bioduds really appreciate your help
hahainternet nine: let's say that having a database online at compile time was a feasible option, as perhaps it only gets built inside a dev VM, would there be an option to build an enum at compile time easily enough?
13:06 mcmillhj joined
hahainternet I have some free time coming up soon so going to dig more into p6 than I've been able to before, which should be fun 13:06
13:07 cog_ left
masak hahainternet: pro tip: dig in public. learning on-channel helps accelerate everything 13:07
(and if done right, ends up not being as noisy/spammy as one might assume) 13:08
hahainternet masak: i get code shy :(
masak heh
hahainternet seriously though, a compile time enum import from a database would be goddamn lovely 13:09
i know there are compilish timish phasers, and proper macro support, but i just have never read it enough
or started to put it together
masak macro support is not there yet for that, sadly
but will be
your best bet is to go through the MOP, I think
nine Yes, sounds like a rather straight forward job for the MOP in a BEGIN block 13:10
hahainternet roger that 13:11
not sure if i know literally any other language where that's feasible
i'm sure C++ would manage it somehow
Woodi hahainternet: is there a way to ask postgresql about types without select * ? :) 13:12
hahainternet that's a good question, i'm not that au-fait with the API 13:13
Woodi hahainternet: maybe you have table with allowed states ? 13:15
13:16 MetaZoffix left
hahainternet Woodi: no i'm talking specifically about an enum type, although i guess in this case it wouldn't make much difference 13:16
Woodi ? stackoverflow.com/questions/1616123...m-can-have 13:18
hahainternet github.com/postgres/postgres/blob/...and.c#L481 13:19
13:19 _slade_ joined
hahainternet github.com/postgres/postgres/blob/...ibe.c#L586 13:19
so the answer is no, even psql uses that hardcoded SQL to get type info
13:20 cognominal joined
arnsholt hahainternet: Common Lisp would have no problem with compile-time definition of pretty much anything, but that may not be a surprise =) 13:25
13:25 cyphase left 13:27 nowan left 13:30 nowan joined, cyphase joined 13:33 cognominal left 13:34 cognominal joined 13:37 cog_ joined
bioduds great, DrForr! tested on fresh Debian Jessie VM, worked fine! 13:38
that is really good
hahainternet arnsholt: i know very little about the guts of cl and similar languages, i'm very ignorant :D
bioduds if anyone cares to test on MacOS please let me know how it goes 13:39
13:40 cognominal left
DrForr I'm about to really stress things out by building on OpenBSD :) 13:40
arnsholt hahainternet: Put *extremely* simply, it can do pretty much all of the things =)
brrt bioduds: I can test, but I missed the part where you told us what :-) 13:41
13:41 finanalyst joined
bioduds brrt: the perl6 one-liner script installation 13:42
hahainternet arnsholt: i'm chatting about it on another channel with a guy that's getting very frustrated i don't just pick a 'practical' option
bioduds here´s the source: raw.githubusercontent.com/bioduds/...install.sh
here's the line: curl raw.githubusercontent.com/bioduds/...install.sh | sh;. ~/rakudo/setpath.sh
13:43 cyphase left
brrt bioduds: works, so far 13:45
oh, can i just advice to try to add a make -j $number flag, that really helps compiling moarvm 13:46
DrForr OpenBSD seems to be going smoothly so far. 13:47
brrt hahainternet: why would anybody care about the practicality of your solution
hahainternet brrt: some people get frustrated by 'fancy' code i think
brrt or does this person have to maintain your code
hahainternet haha
13:47 holyghost left, cyphase joined
hahainternet i don't really see any reason that you can't have db types and perl6 types be the same thing, but it'll take some playing 13:48
brrt there is also the element of fun, and, i'd fear the day that I'd be upset by someone elses fun 13:49
also, using the MOP to use database types in the codebase seems like pretty practical to me
13:50 _slade_ left
brrt especially the fun of exploration... 13:50
hahainternet indeed, his criticism was that there's a string-like interface between code and the db
DrForr bioduds: (without looking) I'm guessing the final install.sh script assumes the existence of .bashrc? (which isn't default on OBSD)
hahainternet but that's simply not true, what there is is a 'bunch of bytes', which is the same as any RPC or memcpy or anything
13:51 _slade_ joined
ugexe you cant map every db's idea of some type to a single type is the problem, not that a languages type couldnt match a single db's types 13:52
brrt why let the impossiblity of a general solution stop you from making a specific one?
moritz you could however use p6's REPR mechanism to have the memory layout of the p6 objects and DB objects identical 13:53
hahainternet moritz: that's exactly what i was wondering about
thanks for giving me something to google
and ugexe could you not? what is feasibly stopping you using a pseudo type that can vary based on which DB you're using? 13:54
13:54 pierre_ joined
brrt that sounds awefully like extension REPRs though 13:54
moritz hahainternet: the cstruct repr from NativeCall.pm6 might serve as a good example
hahainternet moritz: o/
bioduds brrt: works on mac? that is GREEEAT 13:57
brrt seems to me that it does, yes 13:58
13:58 NEveD joined
bioduds DrForr: yes, I actually answered too on fb. I'm very raw with shell scripts. Many excellent suggestions done here I simply couldn't implement. Therefore, assuming .bashrc is what I did 13:59
brrt using clang and the whole XCode bullshiC^u8C^d toolchain
bioduds++ awesome work
13:59 cyphase left
bioduds brrt: can you please tell me basic system info used so i can put on my report (docs.google.com/spreadsheets/d/1dO...p=sharing) 13:59
brrt oh, fwiw, .bashrc doesn't exist on OS X either, but .bash_profile does 14:00
14:00 poohman_ joined
bioduds im so crude in shell i cant even check if .bashrc is there and if yes use .bash_profiles 14:01
then again, if its not ask too much, please, feel free to change the script there in the git repo 14:02
i will merge it
like niner did twice. tx nine!
14:03 poohman left
hahainternet moritz: i'm not seeing where the repr types are actually defined, but i'm maybe being ignorant, just skipping over it 14:03
if you have any other links please feel free to dump them on me
i'll be back in an hour or so to pay more attention
14:04 cyphase joined 14:07 skids joined
brrt hahainternet: REPRs are defined in MoarVM. 14:07
14:09 mr-foobar left
hahainternet brrt: ah so i couldn't just make a 'PGString' or similar repr 14:09
brrt that would be... hard 14:12
currently
14:12 cyphase left
bioduds thanks bart 14:12
brrt but it possible, I think
bioduds merging...
brrt yw. it's not been tested because that takes time and i'm lazy
[Coke] yawns. 14:13
bioduds np, im testing now
dalek c: e98f1ae | (Jan-Olof Hendig)++ | doc/Language/regexes.pod6:
Fixed some code indent problems
14:14
bioduds but please when you can, test on Mac again cause its a system i have no access to right now 14:17
14:17 cyphase joined
dalek c: d3afef5 | coke++ | doc/Type/IO/Socket/Async.pod6:
use non-breaking space
14:21
14:22 mr-foobar joined 14:29 cyphase left
RabidGravy anyway you'll all be pleased to know that rakudo/moarvm still builds okay on the poor Raspberry Pi B 14:29
14:34 cyphase joined
bioduds rabidgravy, is it possible to test the install script on raspberyy pi b? 14:34
RabidGravy "install script" ? 14:35
bioduds curl raw.githubusercontent.com/bioduds/...install.sh | sh;. ~/rakudo/setpath.sh 14:37
perl6 one-liner installer
14:37 khw joined 14:38 user9 left
bioduds hopefully in the future it will go to: curl install.perl6.org | sh;. ~/rakudo/setpath.sh 14:38
llfourn bioduds: cool :)
bioduds ;)
llfourn now can you get it to dynamically pull the latest rakudo star 14:39
bioduds I don't know how
14:39 kerframil joined
bioduds you can, the script is public, or you can tell me exactly how and I will gladly change there 14:39
14:40 g4 left, travis-ci joined
travis-ci Doc build passed. Jan-Olof Hendig 'Fixed some code indent problems' 14:40
travis-ci.org/perl6/doc/builds/158746691 github.com/perl6/doc/compare/8a94b...8f1ae2ba6e
14:40 travis-ci left
llfourn probably can't without making it more brittle 14:40
14:43 cyphase left 14:44 mcmillhj left 14:45 mcmillhj joined
bioduds brrt: working fine on ubuntu 14:46
14:46 user9 joined
bioduds should work fine on MacOS I believe, since installation before your contribution worked. When you get the tiete to test pelase send me a line [email@hidden.address] 14:46
:)
*tiete = time
brrt sure :-) 14:47
14:47 kurahaupo joined
bioduds *pelase = please 14:47
mentioned you on readme
14:47 cyphase joined 14:48 travis-ci joined
travis-ci Doc build passed. Will "Coke" Coleda 'use non-breaking space' 14:48
travis-ci.org/perl6/doc/builds/158748394 github.com/perl6/doc/compare/e98f1...afef5cea09
14:48 travis-ci left, rgrinberg left, brrt left 14:55 poohman_ left, sufrostico left 15:05 MetaZoffix joined 15:09 cyphase left
MetaZoffix "now can you get it to dynamically pull the latest rakudo star" ... We can just create a redirect on rakudo.org that will redirect from rakudo.org/downloads/star/rakudo-st...est.tar.gz to the latest release 15:10
And the script would use that URL. Script... and well, all the references where we currently hardcode the version
15:13 cyphase joined 15:14 lichtkind_ joined
MetaZoffix takes the liberty of doing that 15:15
15:17 mcmillhj left, lichtkind left 15:18 perlpilot left
MetaZoffix bioduds: there: rakudo.org/downloads/star/rakudo-st...est.tar.gz 15:19
15:20 pierre_ left
[Coke] MetaZoffix: does that link now need to be updated as part of the rakudo star release process? 15:22
MetaZoffix [Coke]: yeah, I'm adding it into the guide.
[Coke] MetaZoffix++ 15:24
15:26 domidumont left 15:30 grondilu left, perlpilot joined 15:32 grondilu joined 15:33 cyphase left 15:34 mcmillhj joined 15:38 cyphase joined 15:42 ab6tract left
RabidGravy Stage parse : 2994.901 15:49
15:49 _slade_ left
RabidGravy that's a bit, er, dull 15:49
timotimo yeah, that's not so good 15:50
15:50 cyphase left, pyrimidine left, girafe joined 15:51 skarn_ left 15:52 skarn_ joined 15:55 cyphase joined
MetaZoffix
.oO( I didn't know Perl 6 could run on a potato... )
15:57
15:59 TheLemonMan left
mst we support NetBSD, right? 15:59
16:00 noreem joined 16:01 Khisanth left 16:03 cyphase left
[Coke] MetaZoffix: if GlaDOS can run on a potato, so can we. 16:05
MetaZoffix Don't think so... As in: I don't think we have anyone with access to NetBSD to test things
[Coke] I suppose we could virtual box some stuff if needed. 16:06
;... but I think that was a joke about a potato.
MetaZoffix Oh, NetBSD is free... I thought it wasn't
RabidGravy to be fair on the other parts of this, this is a horribly old pidora image from a few years ago
ilmari are there any non-free BSDs? 16:08
16:08 cyphase joined
ugexe netbsd has worked in the past 16:08
MetaZoffix No idea... Maybe my thought of there being non-free BSDs was due to FreeBSD lol 16:09
RabidGravy there used to be BSDi back in the day
ugexe see: testers.perl6.org/reports/32520.html
16:09 finanalyst left
ugexe Operating system netbsd (netbsd) 7.99.5 earmv7hf 16:10
16:14 Khisanth joined 16:15 itaipu left, itaipu joined 16:20 mcmillhj left, dwarring left 16:21 MilkmanDan left 16:22 MilkmanDan joined, zakharyas left 16:23 cyphase left 16:28 cyphase joined
geekosaur non-free BSDs... one could argue OS X :p 16:28
dalek c: dfc44f2 | (Tom Browder)++ | doc/Language/modules.pod6:
add ws between hash mark and text
16:31
16:34 rgrinberg joined, cdc left 16:36 rgrinberg left, bob777 left, rgrinberg joined 16:38 cyphase left
stmuk_ I thought it wasn't 16:38
arrg copy and paste fail 16:39
16:39 domidumont joined
timotimo i thought it wasn't 16:39
16:40 canopus left 16:42 domidumont left, cyphase joined 16:45 canopus joined, noreem left
mspo I'm also on netbsd 16:47
x86_64
timotimo i thought you weren't
stmuk_ some math tests were skipped on NetBSD
16:48 _slade_ joined
mspo I can see that 16:48
if our libm gave trouble
stmuk_ yes stuff at the margins (O, Inf etc.(
mspo let me add some swap and compile something
netbsd was supposed to be setting up some CI servers for things like programming languages 16:49
..now who was supposd to be workign on that? .. oh right
timotimo is it you? :)
mspo timotimo: yes 16:50
ugexe is on HEAD and ARM 16:51
so a good test too
ugexe well that was from 2015
timotimo is rescuing data off of a super old computer and accidentally caught a big chunk of music
oooh, it's careless whisper! 16:52
mspo I am on This is Rakudo version 2016.06-20-g053729c built on MoarVM version 2016.06
should I get something newer?
oh I see a 2016.08.1
rakudobrew-ing, anyway 16:53
16:54 cyphase left 16:55 _slade_ left, domidumont joined 16:58 cyphase joined 17:03 MetaZoffix left, mcmillhj joined 17:07 gregf_ left 17:09 firstdayonthejob joined 17:12 cyphase left, itaipu left 17:13 itaipu joined 17:16 cyphase joined 17:17 leont__ joined, sufrostico joined
mspo okay I'm installed. Now what? 17:22
ugexe if its about netbsd testing, its the spec test that had the failure I think 17:23
mspo ~ $ rakudobrew test 17:26
Spectesting moar-2016.08.1
Couldn't determine correct make program. Aborting.
hm
ugexe you could cd into ~/.rakudobrew/moar-$whatever/ and run your make
make spectest 17:27
17:29 FROGGS joined
mspo running now 17:30
I'm on 6.x so..
TimToady wonders which festival begins with 'x'... 17:31
17:31 buggable left
FROGGS o/ 17:31
17:32 buggable joined
timotimo xmas, clearly 17:32
TimToady FROGGS: \o
[Coke] TimToady: uz.wikipedia.org/wiki/Xalqaro_xotin-qizlar_kuni 17:34
masak .oO( ask a xilly question... )
[Coke] it was that or X-ray day. :) 17:36
mspo perl5 closed a localization bug for netbsd that I opened ~five years ago
with an actual fix
I was amazed when I got the email
timotimo cool
TimToady you should change your email address more often, obviously...
mspo TimToady: they live much longer than my physical addresses 17:37
masak [Coke]: next question: do you actually speak Uzbek? 17:40
17:44 canopus left 17:46 cyphase left
dogbert17 o/ #perl6 17:50
Woodi mspo: if you still around, what's nice in NetBSD ? OpenBSD got better press in last two decades :)
17:50 cyphase joined
dogbert17 is TimToady still online? Have a doc question for him 17:50
17:51 canopus joined
TimToady hides behind a cricket 17:51
dogbert17 Hi, do you have time to look at docs.perl6.org/language/operators#infix_eqv especially the part starting with "For arbitrary objects ..." ? 17:52
FROGGS telling the obvious: regex interpolations are huge performance killers...
dogbert17 perlpilot mentioned that you might have changed how eqv works just about a year ago and that the doc looks a bit dated 17:53
mspo Woodi: nicer people?
Woodi: I don't know what to say: I like it
FROGGS tried to parse a text file with 1k lines of indented structures, and before I had something like: token indentation($lvl) { <{ $lvl ?? '. " " ' x $lvl !! '""' }> }
it ate all my ram and didnt even finish after an hour
mspo Woodi: NetBSD has init scripts instead of just using rc.local
Woodi: pkgsrc is nice
timotimo oh yeah, FROGGS
that's very true 17:54
FROGGS now I have this: [ <?{ $lvl == 0 }> '' | <?{ $lvl == 1 }> . ' ' | ... ]
(as a longer list)
Woodi mspo: oo, it have rational init ! ;)
FROGGS and I can parse 25k lines in 30s
mspo Woodi: openbsd has much better marketing and market positioning; it also inspires more passion I think
17:54 canopus left
mspo Woodi: also the six month release cycle is obviously a good choice 17:55
FROGGS sure, EVAL has to be slow by definition, but...
TimToady dogbert17: that paragraph is inaccurate
the default eqv compares .perl, iirc
timotimo FROGGS: you really can't match against a string?
TimToady m: my class A { has $.a; }; say A.new(a => 5) eqv A.new(a => 5);
camelia rakudo-moar 228717: OUTPUT«True␤»
mspo Woodi: but netbsd is just overall a pleasure to use :)
TimToady dogbert17: note it actually returns True, not False, as falsely claimed :) 17:56
mspo that's quite a doc bug
FROGGS timotimo: well, depending on the indentation level the string is n times the given pattern
dogbert17 TimToady: should I scrap that part from the docs or are there situations when a custom eqv is necessary?
FROGGS ohh wait
Woodi mspo: do Xen works on NetBSD ? 17:57
mspo Woodi: yes, DOM0 and DOMU
TimToady custom eqv is likely to be more efficient than calling a.perl eq b.perl
timotimo FROGGS: so the . really has to be in there?
FROGGS didnt I implement variables in repeatitors?
timotimo i think you did
i was about to say :)
FROGGS *g*
Woodi mspo: then you convinced me to try :)
FROGGS damn, my brain sucks 17:59
timotimo: how do I write the repeatition again?
17:59 nadim_ left, nadim_ joined
timotimo ** { $var } i believe? 17:59
TimToady correct, we require the braces for anything dynamic 18:00
18:01 firstdayonthejob left
masak m: my $var = 5; say "aaaaa" ~~ / "a" ** $var / 18:01
camelia rakudo-moar 228717: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Quantifier quantifies nothing␤at <tmp>:1␤------> 3my $var = 5; say "aaaaa" ~~ / "a" **7⏏5 $var /␤»
masak m: my $var = 5; say "aaaaa" ~~ / "a" ** { $var } /
camelia rakudo-moar 228717: OUTPUT«「aaaaa」␤»
18:01 canopus joined
masak bit of a LTA error message there 18:01
did I dream it, or did we have a better one at some point? 18:02
18:02 pyrimidine joined
FROGGS I was thinking the same 18:02
as you masak, not as camelia
TimToady I don't think anyone ever implemented such a message
geekosaur iirc, it used to suggest wrapping in {}, yes
dogbert17 TimToady: many thanks, do you also happen to know if $*TOLERANCE can be used or should it be hidden from users? 18:03
18:03 firstdayonthejob joined
TimToady $*TOLERANCE is considered part of the public api 18:03
dogbert17 finds a cold Pale Ale and rejoices
FROGGS hmmm... [ . ' ' ] ** { $lvl } seems to be way slower
18:03 MetaZoffix joined
MetaZoffix I recall improving the message, but I think it was for ranges with variables 18:04
bisect: m: my $var = 5; say "aaaaa" ~~ / "a" ** $var /
bisectable6 MetaZoffix, On both starting points (good=2015.12 bad=77d9d41) the exit code is 1 and the output is identical as well
MetaZoffix, Output on both points: ===SORRY!=== Error while compiling /tmp/Apm6Zid9ka␤Quantifier quantifies nothing␤at /tmp/Apm6Zid9ka:1␤------> m: my $var = 5; say "aaaaa" ~~ / "a" **<HERE> $var /
dogbert17 Thx, I'll update the dynvar page later
18:04 cyphase left
MetaZoffix bisect: good=2016.04,bad=HEAD m: my $var = 5; say "aaaaa" ~~ / "a" ** $var / 18:05
bisectable6 MetaZoffix, Cannot find ‘good’ revision
FROGGS no, actually it is faster...
mspo Woodi: great
MetaZoffix m: my $var = 5; say "aaaaa" ~~ / "a" ** 1..$var / 18:06
camelia rakudo-moar 228717: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Malformed Range. If attempting to use variables for end points, wrap the entire range in curly braces.␤at <tmp>:1␤------> 3my $var = 5; say "aaaaa" ~~ / "a" ** 1..7⏏5$var /␤»
MetaZoffix Ah, that's what I fixed.
FROGGS (say'ing the Match takes quite a while, compared to saying what the action class made...)
18:07 MetaZoffix left
timotimo right 18:08
18:10 cyphase joined
FROGGS parsing 72k lines (4.1MB) takes 1m34.953s now... I'm happy \o/ 18:10
masak I think the need for braces around dynamic things is rooted in backwards compatibility with people who think that `%` is still spelled `**`
TimToady not really 18:11
the primary motivation is simply that such a DWIM would introduce a great many syntactic WATs
regex syntax is terribly ambigous with postfix brackets and dots and such 18:12
*ambiguous even
masak I see.
or rather, I'll take your word for it :) 18:13
18:13 Actualeyes left
TimToady 'a'**$var......'b' / 18:13
18:14 Actualeyes joined
masak is convinced :) 18:14
TimToady and the 'is it dynamic?' test is simple to teach 18:15
masak aye
18:16 lizmat joined
TimToady arguably, we do allow singleton variables elsewhere, but not where we'd be looking for .. afterwards 18:17
m: / $_[1] / 18:18
camelia rakudo-moar 228717: OUTPUT«Potential difficulties:␤ Apparent subscript will be treated as regex␤ at <tmp>:1␤ ------> 3/ $_7⏏5[1] /␤»
TimToady at least we catch that one
kyclark I found that "for" will return a list, e.g., my @list = for ...; I wanted to use "given" to return a value, but it doesn't seem to work 18:20
my $val = given $s { when /cap/ { 1 } default { 0 } }
Word 'given' interpreted as a listop; please use 'do given' to introduce the statement control word
TimToady if 'for' works without 'do', that's a bug 18:21
18:21 itaipu left
TimToady m: my @list = for 1..10 { $_ } 18:22
camelia rakudo-moar 228717: OUTPUT«5===SORRY!5===␤Word 'for' interpreted as a listop; please use 'do for' to introduce the statement control word␤at <tmp>:1␤------> 3my @list = for7⏏5 1..10 { $_ }␤Unexpected block in infix position (two terms in a row)␤at <tmp>:1␤-----…»
18:22 TheLemonMan joined, woolfy joined
kyclark m: my $val = do given 'CAPSID' { when :i/cap/ { 1 } default { 0 } } 18:22
camelia rakudo-moar 228717: OUTPUT«5===SORRY!5===␤Expression needs parens to avoid gobbling block␤at <tmp>:1␤------> 3= do given 'CAPSID' { when :i/cap/ { 1 }7⏏5 default { 0 } }␤Missing block (apparently claimed by expression)␤at <tmp>:1␤------> 3= do given 'CAPSID' {…»
TimToady missing semi, really 18:23
masak kyclark: you can't `:i` nothing
TimToady m: my $val = do given 'CAPSID' { when m:i/cap/ { 1 } default { 0 } } 18:24
camelia rakudo-moar 228717: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Strange text after block (missing semicolon or comma?)␤at <tmp>:1␤------> 3 do given 'CAPSID' { when m:i/cap/ { 1 }7⏏5 default { 0 } }␤»
TimToady now you get the correct semi message
without m it parsed both / as division operators 18:25
m: my $val = do given 'CAPSID' { when /:i cap/ { 1 }; default { 0 } }
camelia ( no output )
TimToady you can put the :i inside too
m: my $val = do given 'CAPSID' { when /:i cap/ { 1 }; default { 0 } }; say $val 18:26
camelia rakudo-moar 228717: OUTPUT«1␤»
timotimo this machine has a ubuntu 8.04 on it %)
[Coke] masak: nope. I speak english, and then have maybe a dozen words in various other languages. :) 18:27
kyclark OK, this works now! Thanks. 18:28
masak [Coke]: I figured it'd be pretty unlikely for you to know Uzbek and me not knowing it by now :P 18:32
(not that I speak it, either. it seems like a nice language, though.) 18:33
18:35 itaipu joined, wamba joined
TimToady All natural languages are nice, except when they're naughty. 18:36
18:37 cdg left
dalek c: 23a69ab | (Jan-Olof Hendig)++ | doc/Language/variables.pod6:
Added dynvar TOLERANCE to variables.pod6
18:37
dogbert17 hopes he got that 'approximately' right 18:38
TimToady it leaves out a bit of the generality 18:40
m: my $*TOLERANCE = 0.001; say .01i.Num 18:41
camelia rakudo-moar 228717: OUTPUT«Can not convert 0+0.01i to Num: imaginary part not zero␤ in block <unit> at <tmp> line 1␤␤Actually thrown at:␤ in block <unit> at <tmp> line 1␤␤»
TimToady m: my $*TOLERANCE = 0.1; say .01i.Num
camelia rakudo-moar 228717: OUTPUT«0␤»
TimToady since other operations depend on =~=
dogbert17 so the text might come off as slightly misleading then 18:44
TimToady maybe just a "and any operations that depend on =~=" or some such 18:45
it's not a major point
dogbert17 consider it changed, thx for the feedback
TimToady people tend to interpret things concretely unless directed toward the abstraction, even if the abstraction in question is just function calls... 18:46
18:47 cyphase left 18:49 zumbra joined
Woodi just few minutes ago thinked: global variable... they make so many things simpler ! ;) 18:49
dogbert17 m: say <l i z m a t>.permutations.pick(3) # lizmat++ for optimizing permutations 18:50
camelia rakudo-moar 228717: OUTPUT«((a l z t m i) (t z i m l a) (l a m z t i))␤»
timotimo liz! mat! hooraay!
dogbert17 now the solution for project euler problem 24 runs in 6 sec on my machine, in March it took 83 !! 18:51
18:52 cyphase joined
timotimo fantastic! 18:52
that's better than 5x faster
dogbert17 yes, very impressive, since the first run was in March it's possible that some other optimization might have played a role 18:54
timotimo we've had a lot of different optimizations; liz is responsible for a big chunk of them :) 18:55
18:55 ItayAlmog joined
mspo okay my spectest finished with some failures 18:55
masak m: say <l i z m a t>.permutations.pick(3)>>.join
camelia rakudo-moar 228717: OUTPUT«(iltazm ztimla tmiazl)␤»
18:56 Actualeyes left
ItayAlmog So after doing alot of research, i think i will stop making the perl6 native compiler and create a NQP native compiler.... 18:58
dogbert17 how about: $*TOLERANCE Used by the C<=~=> operator, and any operations that depend on it, to decide if two values are approximately equal. Defaults to 1e-15.
zumbra ItayAlmog: :D 18:59
ItayAlmog: all the Grammar handling stuff will be pretty much the same 19:00
19:04 Sgeo_ joined 19:07 ItayAlmog left, ItayAlmog_ joined
dalek c: 189b39b | (Jan-Olof Hendig)++ | doc/Language/variables.pod6:
Updated the text on TOLERANCE. TimToady++
19:09
19:09 cyphase left
ItayAlmog_ I know the grammar will be the same, but i was told it will be easier :D 19:10
19:10 spider-mario joined
masak .oO( this community is all about TOLERANCE, that's why we shout it at each other ) 19:10
ItayAlmog_: if you want to fast-forward to the gnarly parts, consider how you'd code-generate a function value (i.e. a block of code or a sub stored into a variable) 19:11
19:13 itaipu left, cyphase joined
ItayAlmog_ I will probably use function pointers like in C, you can have a variable and a sub with the same name right? (For example have `my $sum` and a `sub sum{}`). 19:14
masak oh yes
the sub gets the name `&sum`, which doesn't collide with `$sum`
El_Che a var and sub yes, attribute and sub no 19:15
ItayAlmog_ Ok, interesting, so functions are represented as special var right?
masak m: class C { has $.x; sub x {} } # El_Che: works fine
camelia ( no output )
El_Che masak: yes, but you loose the auto getters/setters 19:16
masak ItayAlmog_: you could say that, yes. a `sub` declaration has the side effect of initializing a name `&sub` in the current scope.
El_Che I am not saying it's a bug, but a nice case for suble bugs
masak El_Che: you're probably thinking of methods, not subs
El_Che masak: I am 19:17
ItayAlmog_ NQP has classes as well? And if so they are as dynamic as in perl6 or are they less dynamic?
masak a sub and an attribute can co-exist just fine
El_Che isn't that all the same? Pardon my Perl5 :)
masak El_Che: not at all.
El_Che :)
masak El_Che: subs are small helpers. the fact that they are in the class block is irrelevant.
19:18 labster joined
masak El_Che: methods have a `self` and generally assume they'll be called on an object (or type object) 19:18
El_Che yeah, I know
masak subs install themselves in the `my` namespace by default. methods (and attributes) in the `has` namespace. that's why they don't collide 19:19
ItayAlmog_ Other than the NQP github repo are there any other documentations? 19:21
About NQP
A
perlpilot ItayAlmog_: github.com/edumentab/rakudo-and-nq...als-course 19:22
yoleaux 8 Sep 2016 21:42Z <tbrowder> perlpilot: look at doc change github.com/perl6/doc/commit/0a7d930cbb
ItayAlmog_ perlpilot: Thanks!
19:23 darutoko left, domidumont left 19:27 leont__ left 19:30 cyphase left 19:34 cyphase joined
zumbra m: say q ︵Help! My brackets have fallen over!︶ 19:41
camelia rakudo-moar 228717: OUTPUT«Help! My brackets have fallen over!␤»
timotimo oops
19:41 ItayAlmog_ left, ItayAlmog2805 joined
zumbra :) 19:41
zostay how did programmers have fun before unicode? oh wait, most of them can't have fun with unicode still 19:42
zumbra ^_^
timotimo %)
only sadness 19:43
masak .u fun 19:44
yoleaux U+2061 FUNCTION APPLICATION [Cf] (<control>)
U+2336 APL FUNCTIONAL SYMBOL I-BEAM [So] (⌶)
U+2337 APL FUNCTIONAL SYMBOL SQUISH QUAD [So] (⌷)
masak so many ways to have fun with unicode
19:48 cyphase left 19:49 cyphase joined 19:50 zumbra left 19:52 ItayAlmog2805 left
mspo 19:53
.u ⎔
yoleaux U+2394 SOFTWARE-FUNCTION SYMBOL [So] (⎔)
mspo I was thinking of ƒ; I'd never seen the hexagon used before 19:54
geekosaur gotta make your flowcharts in unicode too
mspo is it UML?
geekosaur do kids these days even use flowcharts?
mspo they use the kanban 19:55
moritz never got the point of most UML diagrams
mspo moritz: you and the rest of the world
I have a book around here somewhere
zostay it was for impressing your software project professor who never worked in the real world 19:56
timotimo DrForr: your talk seems to claim that "everything is utf8 internally", that's not correct, though
19:56 cdg joined
El_Che mspo: haha 19:57
masak I happen to think UML has a valid use -- I think the DDD book convinced me 19:59
19:59 khw left
masak it uses UML as a sketching/whiteboard discussion medium 20:00
timotimo m: sub mean ( @a ) { say sum @a }; mean 1, 2, 3 # DrForr you meant to have *@a here
camelia rakudo-moar 87f772: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Calling mean(Int, Int, Int) will never work with declared signature (@a)␤at <tmp>:1␤------> 3sub mean ( @a ) { say sum @a }; 7⏏5mean 1, 2, 3 # DrForr you meant to have␤»
El_Che yeah, my java ide has some tool to generate uml after you wrote the code. It was called the "shut-up-you-stupid-manager" macro
timotimo fantastic 20:01
i expect a code editor is much more comfortable for creating an UML diagram than any UML editor would be
you get all your templates/snippets, refactoring stuff, ...
masak El_Che: reminds me in spirit of structurizr.com/ 20:04
El_Che I remember a time when people thought you could autogenerate all the code from some uml 20:05
timotimo of course you can do that
TimToady Woodi: if you're referring to $*TOLERANCE, that's not really a global, except for the default, which is immutable, so by necessity you have to use a dynamic variable to override it
timotimo you just have to put a whole lot of code in little boxes that go on the side
TimToady m: $*TOLERANCE = 0.1
camelia rakudo-moar 87f772: OUTPUT«Cannot modify an immutable Num␤ in block <unit> at <tmp> line 1␤␤»
El_Che timotimo: the problem was when you needed to edit something. boom 20:06
TimToady so a dynvar can be limited to any (dynamic) scope you like
20:08 cyphase left
timotimo El_Che: no, you only ever edit your code in the UML and building the .java out of that is a step in the build process 20:08
all your code now goes into the UML diagram boxes
mspo code is a failure of your UML skills, obviously 20:10
20:12 cyphase joined 20:20 nadim joined
timotimo i wonder why i've seen all the things DrForr has shown already :P 20:22
20:23 nadim_ left 20:29 leont__ joined 20:32 TEttinger joined 20:38 cyphase left 20:39 canopus left 20:41 ufobat left, kaare_ left 20:42 cyphase joined 20:44 leont__ left 20:46 canopus joined 20:49 mcmillhj left 20:54 cyphase left 20:56 AlexDaniel joined 20:59 cyphase joined 21:00 skids left 21:02 rindolf left 21:06 canopus left 21:07 khw joined 21:14 canopus joined 21:20 cyphase left 21:23 canopus left 21:24 cyphase joined
perlpilot Just participated in a phone interview where the interviewee asked if we were using Perl 6 yet :) 21:24
timotimo awesome 21:28
21:29 canopus joined 21:37 cyphase left 21:42 cyphase joined 21:48 FROGGS left 21:49 _slade_ joined
lizmat dogbert17: you might want to try again with my last commit :-) 21:51
21:52 mcmillhj joined
dogbert17 lizmat++, will do 21:52
timotimo i should hit up the person who wrote those "overkill" blog posts and tell them to try again 21:53
also, now that permutations is so much cheaper, i bet the thing will parallelize
El_Che timotimo: what post? 21:54
timotimo El_Che: about the "magic box" math puzzle thingie 21:55
at first it had a recursive implementation of doing its own permutations, and it was rather slow (rakudo itself is at fault partially here, too)
21:56 girafe left, cyphase left
timotimo i suggested using rakudo's built-in permutations function because it's algorithmically superior to the naive version, and it already gave a nice performance boost 21:57
but now that permutations has been optimized two times over, that could be worth a lot :)
21:57 mcmillhj left 21:58 vike left 22:01 cyphase joined 22:09 mcmillhj joined 22:11 cyphase left 22:13 mcmillhj left 22:14 firstdayonthejob left 22:16 cyphase joined
dogbert17 lizmat: the last fix didn't change anything, here's my code: say permutations((0,1,2,3,4,5,6,7,8,9)).[999_999]; 22:17
lizmat ah, no, that didn't change 22:18
List.permutations got 8x faster
m: dd <a b c>.permutations
camelia rakudo-moar bb6da7: OUTPUT«(("a", "b", "c"), ("a", "c", "b"), ("b", "a", "c"), ("b", "c", "a"), ("c", "a", "b"), ("c", "b", "a")).Seq␤»
dogbert17 well, the first fix was more than good enough for me :) 22:19
japhb lizmat: Are you saying if dogbert17 changed it from a sub call to a method call, it would go faster? 22:20
timotimo so ... the magic box uses permutations on a range of numbers 3..12 or something; i think the calculation code could just be changed to pretend the numbers 0 through 9 are those numbers ... or whatever? and then on display add 3 to all of them
lizmat dd (^10 .permutations)[999_999] runs in 4.7 seconds for me
timotimo japhb: no, the method form of permutations has more things to do, and actually almost immediately calls into the sub form
japhb timotimo: Ah, I was apparently misunderstanding lizmat's comment 22:21
lizmat japhb: the method form maps onto the actual contents of the list
timotimo benchable6: compare HEAD say (^10 .permutations)[999_999] ||| say permutations(9)[999_999]
benchable6 timotimo, starting to benchmark the 1 given commits
lizmat that mapping got 8x faster
benchable6 timotimo, ¦«HEAD»:Benchmark: ␤Timing 10 iterations of 0, 1...␤«timed out after 10 seconds, output»:
timotimo whoops?
benchable6: compare HEAD say (^10 .permutations)[100_000] ||| say permutations(9)[100_000] 22:22
benchable6 timotimo, starting to benchmark the 1 given commits
timotimo, ¦«HEAD»:Benchmark: ␤Timing 10 iterations of 0, 1...␤(0 3 5 8 9 2 6 7 1 4)␤«timed out after 10 seconds, output»:
timotimo darn it :)
lizmat timotimo: that's not the same, it should be "permutations(10)
timotimo OK!
benchable6: compare HEAD say (^10 .permutations)[50_000] ||| say permutations(10)[50_000]
benchable6 timotimo, starting to benchmark the 1 given commits
timotimo of course, ^10 gives you 10 values
benchable6 timotimo, ¦«HEAD»:Benchmark: ␤Timing 10 iterations of 0, 1...␤(0 2 3 9 5 7 4 6 1 8)␤(0 2 3 9 5 7 4 6 1 8)␤«timed out after 10 seconds, output»: 22:23
timotimo it's quite late and dark in my head already ;)
22:23 mcmillhj joined
lizmat anyways, List.permutations can never be faster than permutations() 22:23
timotimo i wanted to know how big the difference is
when the list conversion is actually completely "useless"
lizmat because List.permutations just calls permutations()
not a lot of difference anymore
it was quite a lot (like the first 6 entries in the profile just for .map and slicing) 22:24
22:24 nadim left
timotimo that sounds fantastic 22:24
i'm so glad the two of you and the profiler have met :D
dogbert17 lizmat: what's your next optimization target? 22:25
lizmat not sure yet 22:26
tomorrow will be a long drive home after seem some more sights here in Dresden
*seeing
dogbert17: any suggestions ? 22:27
dogbert17 hopefully it's been a nice trip
lizmat it was, visited 5 countries I never visited before
Slovakia, Hungary, Croatia, Slovenia and Liechtenstein 22:28
dogbert17 impressive
22:28 mcmillhj left
timotimo goes to bed 22:28
see y'all :)
dogbert17 good night
lizmat good night! 22:29
lizmat does the same
dogbert17 good night 2
22:29 canopus left
dogbert17 wonders if array accesses are slow 22:29
22:34 canopus joined 22:36 cyphase left 22:38 mcmillhj joined 22:40 cyphase joined 22:43 mcmillhj left 22:44 TheLemonMan left
tbrowder hi #perl6 22:54
22:54 Ven_ joined
tbrowder anyone interested in talking about the docs and the sprintf function description? 22:55
i'll pontificate: perlpilot and i msde 22:56
*made a few changes, but i!
22:56 skids joined
tbrowder argh!! i'm not happy with the current description which i took from perl 5 docs 22:57
i think the linux man page for printf does a better job 22:58
22:59 canopus left
tbrowder perlpilot and others want to separate (or eliminate) the unimplemented features and i am working on a redo of the whole sprintf section 23:00
i am testing every example and every feature on the perl 5 sprintf doc and i will do the same for the linux printf doc 23:03
then i will adapt the linux printf description for our sprintf doc 23:04
23:05 pierre_ joined
tbrowder in the process, i will put all unimplemented features in a separate section following the sprintf section 23:05
it will be a =head2 section titled "sub sprintf [C<unimplemented features>" 23:07
23:07 canopus joined 23:08 kyclark_ joined, cdg left
tbrowder i will put the new doc redo in a gist for easier consideration 23:08
23:09 cdg joined
kyclark_ I’m back with grammar questions. I have something that parses just fine, but I’m not sure what I’m doing with the Actions to “make” things. To start, I’d be happy to get back each <record> as a hash with { id => <id>, member => <member> } lpaste.net/187760 23:11
23:13 cdg left
kyclark_ I guess I should say that I’m getting back all these Match objects, and I was hoping to distill it down to strings 23:14
geekosaur you can stringify with ~ 23:16
kyclark_ I’m doing this: $/.caps[0].value.Str
geekosaur yes, but $/.make is what wraps it in a Match object (and must or you couldnt get it back)
kyclark_ Maybe I don’t understand correctly, but the “method” in the Actions class gets a Match object called $/, so I should be able to get at the captured bits with “caps” right?
geekosaur you can use prefix ~ on the match objects you get out to get just the strings 23:17
kyclark_ Am I doing the correct thing to get the captured parentheses? 23:18
$/.caps[…]?
23:21 canopus left 23:24 pierre_ left
geekosaur it should be 23:25
23:28 canopus joined 23:30 xinming left 23:31 vike joined 23:34 mcmillhj joined, spider-mario left 23:37 RabidGravy left 23:39 mcmillhj left 23:41 tushar joined 23:43 mcmillhj joined 23:46 cyphase left 23:50 mcmillhj left 23:51 cyphase joined 23:55 kyclark_ left