»ö« 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:03 labster left 00:07 jjido left 00:08 labster joined 00:14 jjido joined 00:18 cdg left 00:25 tlvb| left 00:29 jjido left, AlexDaniel joined 00:30 addison left
AlexDaniel oh geez, 3 days of configuring a new system from scratch. At least I have something usable today 00:30
00:33 jjido joined 00:38 jjido left
Zoffix irclog.perlgeek.de/perl6/2016-05-06#i_12445014 :) 00:48
AlexDaniel Zoffix: it was a conscious move :) 00:51
Zoffix :)
AlexDaniel, you remind me of my boss :) 00:55
He doesn't see the problem with default typography either :P 00:56
I'm not married to that commit. There's always Stylish plugin ;)
AlexDaniel yeah, stylish! I use it to make things dark… :) 00:57
00:58 tomboy64 joined
Zoffix reads more comments on that topic 01:01
01:05 khw joined, kerframil left
Zoffix Well, I picked literally the most loved, highest rated font on Google Fonts and I thought that was a safe bet. The old typography used browser/OS defaults and looked like shit. Feel free to amend any of my changes. It was my best work and I've got nothing better to offer :) 01:05
Zoffix steps away from potential Font Wombles before it's too late :P 01:06
dj_goku Zoffix: oh you were breaking docs.perl6.org today?
01:09 addison joined 01:13 mohae joined 01:14 Guest71116 is now known as konobi 01:15 mohae_ left 01:16 kalkin- joined 01:19 kalkin-_ left
Zoffix dj_goku, breaking how? 01:21
dj_goku the links of the top of a few pages were switching from show/hide it was really weird. 01:23
it was probably probably around 1-2PM CST 01:24
Zoffix It was by design.. I was doing.. ahem... research. To see how often userts
use stuff
Zoffix coughs
dj_goku lol
01:26 yqt left
AlexDaniel Zoffix: div.highlight does not use monospace font 01:27
01:27 Actualeyes joined
AlexDaniel Zoffix: not sure if this is associated with your changes or not 01:27
Zoffix ¯\_(ツ)_/¯ 01:28
AlexDaniel, the pre and code does :/ 01:30
And the code samples are monospaced :/
AlexDaniel, What's not using monospace? 01:31
AlexDaniel Zoffix: docs.perl6.org/type/Str#routine_tclc
sammers hello from Japan 01:32
Zoffix AlexDaniel, looks monospaced to me. Do you have a screenshot?
sammers,
こんにちは
sammers こんにちは 01:33
Zoffix m: sub こんにちは { 'こんにちは'.say }; こんにちは
camelia rakudo-moar 75b37e: OUTPUT«こんにちは␤»
Zoffix ♥ Perl 6
sammers ha
AlexDaniel Zoffix: not sure if I can conveniently take screenshots yet…
ok 01:34
Zoffix: files.progarm.org/2016-06-30-04342..._scrot.png
sammers m: sub 信じられない { '信じられない'.say }; 信じられない;
camelia rakudo-moar 75b37e: OUTPUT«信じられない␤»
Zoffix AlexDaniel, this is what I see: i.imgur.com/cnza6qc.png 01:36
sammers ok, quick question, what is the best type / value to represent nothing? Nil?
Zoffix Try pressing Ctrl+F5, if that doesn't help, ¯\_(ツ)_/¯
01:36 grassass left
Zoffix sammers, best type to represent nothing is nothing :) 01:37
sammers, why do you need to represent it?
sammers very zen
Zoffix huggable, Mu name
huggable Zoffix, "M"ost "u"ndefined. Or philosophical: "The nothing from which everything proceeds"
01:38 ssotka left, ssotka joined
sammers actually, no need at the moment. Just curious how to represent it in p6. 01:38
so Mu
hmm
Zoffix I wouldn't say so.
AlexDaniel Zoffix: ctrl+f5 does not help. Here Roboto Mono is crossed out and Open Sans is used instead 01:39
Zoffix Perl 6 has an infinite number of undefined values.
So use the most appropriate one if you have to
sammers ok...
01:42 Zoffix left, ssotka left 01:44 Bodger1234 left 01:48 grassass joined
dj_goku Segmentation fault: 11 isn't really helpful when trying to debug NativeCall. I know it isn't Perl6 or NativeCall though. just sucks. 01:52
01:55 molaf left
timotimo dj_goku: you do know about moarvm's --debug=3 and going "up" into a frame (inside perl6-gdb-m) that has a tc in it, then using "call MVM_dump_backtrace(tc)"? 01:57
to figure out where in the perl6 code the seg fault flies?
dj_goku nope. :D 01:58
timotimo: didn't see debugging in docs.perl6.org/language/nativecall hehe 01:59
timotimo: so I have to rebuild moar? 02:03
02:03 sufrostico left 02:07 molaf joined
dalek c: 0890707 | coke++ | / (574 files):
Rename .pod files to .pod6
02:10
c: 2055163 | (Aleks-Daniel Jakimenko-Aleksejev)++ | / (574 files):
Merge branch 'coke/pod6'
02:10 noganex joined 02:12 kurahaupo left
AlexDaniel either I am completely blind or github is stupid or something… 02:12
there were no conflicts :/
02:13 bjz left 02:14 noganex_ left
timotimo dj_goku: yeah, only moar, though. and make sure the --debug=3 lands in moarvm's Configure.pl, not in rakudo's or nqp's 02:15
dj_goku timotimo: rakudobrew build moar --configure-opts=debug=3 worked I think. 02:18
timotimo i'm not sure 02:31
i think there's no good reason to have the default for --debug be 0 in moarvm, tbh 02:32
02:33 addison left 02:38 jjido joined, kid51 left 02:43 jjido left 02:49 bjz joined 03:01 AlexDaniel left 03:05 bjz left
japhb sammers: Note that there is a difference between representing truly *nothing*, as in the absence of any value (Nil or Empty), and a value that is undefined, uninstantiated, or not part of the set of valid values of a type (represented in Perl 6 by the type object of a given type). 03:12
TEttinger nothin ain't nothin 03:13
japhb sammers: And note that Any is the type object used to represent undefinedness when the actual type doesn't matter much, but is a "normal" type, or Mu when you specifically want to say that the entire type universe is possible (so including special types such as Junction)
sammers ok, so for nothing, Nil or Empty. How would I check for a non-declared variable?
japhb If you try to use a non-declared lexical value, the compiler will complain. 03:14
sammers not undefined, but not declared
yeah, to avoid complaining
japhb m: say $foo; # sammers
camelia rakudo-moar 75b37e: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Variable '$foo' is not declared␤at <tmp>:1␤------> 3say 7⏏5$foo; # sammers␤»
sammers like a catch
is that possible in p6? 03:15
or will the compiler always complain?
japhb You want to prevent the compiler from noticing variables aren't declared, or you want to declared them with use a la Python?
m: say $Unknown::foo; 03:16
camelia rakudo-moar 75b37e: OUTPUT«(Any)␤»
sammers well, this is just hypothetical at this point.
japhb If you explicitly use a namespaced variable name, the compiler will assume you know what you are doing, and allow you to load the footgun.
sammers thanks compiler
ok
japhb (as in the $Unknown::foo example above) 03:17
sammers yeah
I am just trying to think a scenario where I would want to reference an undefined variable without the compiler complaining.
I guess if I was dynamically creating the variable name
and testing for it later
regarding the Nothingness, I was thinkinb about "bottom type" and how it typically is handled in p6. But I guess (Any), (Str), etc. would be the most common 03:19
japhb Any is the default type for scalar containers if you don't specify something else, so you'll see that a LOT
sammers ok 03:20
japhb *type for the contents of a scalar container # to be more precise
sammers right
03:27 ssotka joined 03:30 canopus left 03:38 canopus joined 03:39 huggable left 03:40 huggable joined 03:42 khw left 04:01 labster left 04:08 rgrinberg left 04:16 kurahaupo joined 04:22 adu joined 04:26 skids left 04:34 addison joined 04:44 xinming_ joined 04:46 xinming left 04:48 addison left 04:50 addison joined 04:57 Cabanossi left 05:00 Cabanossi joined, addison left 05:04 cooper_ joined 05:07 cooper left 05:37 sortiz joined 05:38 adu left 05:42 jjido joined 05:44 sortiz left 05:52 cyphase left 05:56 jjido left 05:57 cyphase joined
dalek c/rb-nutshell-reorg: 94dcdf0 | (Brock Wilcox)++ | doc/Language/rb-nutshell.pod:
Re-arrange the sections in RB-Nutshell

Plus some misc edits
06:05
06:06 cyphase left
dalek Heuristic branch merge: pushed 53 commits to doc/rb-nutshell-reorg by awwaiid 06:06
c/rb-nutshell-reorg: 9326a3a | (Brock Wilcox)++ | doc/Language/rb-nutshell.pod6:
Remove WIP internal TOC comment
06:08
06:10 cyphase joined 06:17 travis-ci joined
travis-ci Doc build passed. Brock Wilcox 'Merge pull request #288 from perl6/rb-nutshell 06:17
travis-ci.org/perl6/doc/builds/141259000 github.com/perl6/doc/compare/rb-nutshell-reorg
06:17 travis-ci left 06:20 travis-ci joined
travis-ci Doc build passed. Brock Wilcox 'Re-arrange the sections in RB-Nutshell 06:20
travis-ci.org/perl6/doc/builds/141259254 github.com/perl6/doc/compare/4d948...dcdf000c15
06:20 travis-ci left 06:21 jack_rabbit joined 06:22 travis-ci joined
travis-ci Doc build passed. Brock Wilcox 'Merge remote-tracking branch 'origin/master' into rb-nutshell-reorg' 06:22
travis-ci.org/perl6/doc/builds/141259434 github.com/perl6/doc/compare/94dcd...a1ea542c29
06:22 travis-ci left 06:23 travis-ci joined
travis-ci Doc build passed. Brock Wilcox 'Remove WIP internal TOC comment' 06:23
travis-ci.org/perl6/doc/builds/141259796 github.com/perl6/doc/compare/95a1e...26a3a8d4b0
06:23 travis-ci left, abraxxa joined 06:27 jjido joined 06:29 inokenty left 06:31 ssotka left 06:32 firstdayonthejob joined 06:39 labster joined 06:45 firstdayonthejob left 06:48 sno left 06:51 jjido left 06:52 inokenty joined 06:57 jjido joined 06:58 cooper_ is now known as cooper 07:00 domidumont joined 07:01 darutoko joined 07:04 domidumont left 07:05 domidumont joined 07:09 jack_rabbit left, jack_rabbit joined 07:11 CIAvash joined 07:14 zakharyas joined 07:16 jjido left 07:18 roxma joined 07:23 roxma left 07:35 rindolf joined 07:39 bjz joined, huggable left 07:40 huggable joined 07:41 wamba joined 07:44 mr-foobar left 07:46 sno joined 07:49 bjz left 07:53 araujo__ joined 07:55 rindolf left 07:56 k-man joined, araujo__ left 07:57 araujo_ left, g4 joined, g4 left, g4 joined 07:58 dakkar joined 08:00 araujo joined, araujo left, araujo joined 08:16 RabidGravy joined 08:18 eyck joined 08:20 ocbtec joined 08:22 tienlucc joined 08:23 tienlucc left 08:27 ocbtec left 08:28 tienlucc joined 08:40 tienlucc left 08:42 mr-foobar joined, TEttinger left 08:55 ocbtec joined 08:57 ocbtec left 08:59 ocbtec joined 09:01 Bucciarati_ joined, gensym_ joined, labster left, klapperl_ joined 09:02 jcallen_ joined, ranguard_ joined 09:03 Amnez777- joined 09:04 cosimo_ joined, DrForr joined, jnap__ joined 09:05 zhmylove joined, freeze_ joined 09:06 leedo_ joined 09:07 M-Illandan1 joined 09:08 cosimo left, gensym left, Amnez777 left, M-Illandan left, Khisanth left, ranguard left, freeze left, diegok left, Bucciarati left, leedo left, lucs left, zhmylove_ left, gensym_ is now known as gensym, jnap__ is now known as jnap_ 09:10 lucs joined, simcop2387 joined 09:11 tlvb| joined 09:12 cognominal joined 09:13 bartolin left, diegok joined 09:15 Khisanth joined, bartolin joined 09:23 iH2O joined 09:24 cpage_ left 09:26 cpage_ joined 09:34 siriu5b_ left 09:35 araujo_ joined 09:37 araujo__ joined 09:38 araujo left 09:41 araujo_ left 09:48 jack_rabbit left 09:57 Bucciarati_ is now known as Bucciarati 09:59 iH2O left
gregf_ m: my @arr is Array of Int = 1,2,3;my $ind = -1; say @arr[*$ind] # is there a way to get the last element? 10:01
camelia rakudo-moar 088835: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Two terms in a row␤at <tmp>:1␤------> 3 of Int = 1,2,3;my $ind = -1; say @arr[*7⏏5$ind] # is there a way to get the last e␤ expecting any of:␤ infix␤ infix stopper␤ …»
gregf_ sorry and Hello! 10:02
jnthn @arr[*-1]
gregf_ er, well -1 is dynamic :|
jnthn *-$ind or I guess if $ind is already negative then *+$ind :) 10:03
gregf_ oh
my 10:04
jnthn++
tbrowder jnthn: people were excited about functional prog after damian's several presentos at yapc, but then heard tail call opt is not in p6 yet. any kind of forecast? 10:09
jnthn tbrowder: No.
tbrowder: There's also a "tail call as a language feature" vs. "tail call as an optimization" thing in there also. 10:10
And those are different, and the first one is probably what you want when doing FP
Because "this might or might not introduce a callframe depending on the optimizer" isn't quite so useful :)
tbrowder i guess on concern was stack usage 10:11
jnthn Right, that's what you're trying to avoid.
gregf_ m: my @maps = <zero +ve -ve>;my @arr is Array of Int = -1,0,3; @arr.map: { my $ind = $_ <=> 0; say $_ ~ " is " ~ ( @maps[$ind < 0 ?? *+$ind !! $ind]) } # jnthn, was trying this 10:12
camelia rakudo-moar 088835: OUTPUT«-1 is -ve␤0 is zero␤3 is +ve␤»
jnthn tbrowder: I think if we end up with something there, it'll be an alternate form of "return" that replaces the current callframe 10:13
tbrowder damian was also asked about any public doc on planned p6 features, todo lists, etc., and he said not to his knowledge, but mayby larry has alist written down somewhere 10:14
jnthn Well, also the design docs (synopses) are a good place to look in that they contain plenty of ideas that didn't make 6.c, but that are considered reasonable for the future. 10:15
tbrowder okay, i keep seeing reference to outdated docs there and wasn't sure about taking deep dives 10:16
thank you, jnthn 10:17
10:20 abraxxa left, abraxxa1 joined
jnthn tbrowder: Well, yes, they're not a good place to look for documentation of what works and how things are today largely because they also contain an amount of speculation. :-) 10:22
10:24 abruanese joined
Xliff jnthn: How much improvement (speedwise) is slated for the precompiler by 6.d? 10:26
Maybe s/slated/expected/ 10:27
jnthn Xliff: Those are unrelated. 6.d is a language version; it only implies things about features/conformance. 10:28
10:28 abraxxa1 left
Xliff Ah. So precompiling is more Moar? 10:28
jnthn Xliff: Naturally, by the time 6.d lands I'd expect there to have been plenty of performance work in Rakudo.
And Moar
Xliff (pun intended)
jnthn: Fair enough. Thanks! 10:29
jnthn Well, actually the improvements will come at all levels of the stack (Rakudo, NQP, MoarVM)
10:29 abraxxa joined
Xliff Ah! Good to know. 10:29
psch Xliff: syntax is a Perl 6 thing. performance is a Rakudo thing
jnthn I suspect when we do reach the 6.d point then we'll as part of marketting allow ourselves to blur the lines a bit.
Xliff psch++ # That actually helped! 10:30
jnthn++ # Always
Well, reason I was curious was because on current project, scripts take ~90 seconds before execution starts. 10:31
psch Xliff: put it in a module, export the MAIN sub :) 10:32
Xliff psch: Already in modules. :)
LOTS of modules, actually.
jnthn Yowser, that's ages
psch ...remove 'no precompilation'? :S
Xliff Hence earlier conversations on the subject. Particularly when you change the one module the others depend on.
And what 'no precompilation' :P 10:33
psch right... :)
10:33 canopus left 10:34 tlvb| is now known as tlvb 10:35 kaare_ joined
Xliff Also, there is some pesky endless loop bug related to type checking that I cannot nail down for the life of me. 10:35
lizmat Xliff: could it be there is an error, and the reporting of the error creates another (or same error) it tries to report ? 10:38
and from there ad infinitum ?
nine Xliff: or could it by chance be this bug? rt.perl.org/Ticket/Display.html?id=123989
Xliff lizmat: That could be.
nine: Nope. Not that one. 10:39
10:39 canopus joined
Xliff All I know is that whenever I run into it, I try to gdb it to find out where it occurs, and all backtraces are deep into a repetitive gc cycle. 10:39
I tracked it back to the method signature, removed the type checking, and it went away. 10:40
I will git-bisect. I'm sure I have a recent commit where it is demonstratable. 10:41
However, it's the end of a long night for me and I need some rest.
10:43 araujo_ joined, musca left, MasterDuke left
Xliff LOL! Nevermind. Here you go: github.com/Xliff/p6-XML-LibXML/com...82d0d82b5d 10:44
10:45 jast left, literal left, jast joined, literal_ joined
Xliff If you pull that commit in branch 08elements and run t/06elements.t, you will run into the endless loop. 10:45
10:45 Bucciarati left, esh joined 10:46 musca joined, Bucciarati joined 10:47 araujo__ left 10:51 eyck left 10:53 brrt joined 10:54 abraxxa left 10:55 TakinOver left 10:58 rindolf joined
sammers hi all 11:00
11:01 eyck joined
sammers Is there a way to create a namespace / package for a non class module? For example, using Class we can do something like: use Thing; my $thing = Thing.new(); say $thing.something(); 11:01
psch m: module Foo { our sub bar { "bar" } }; say Foo::bar 11:02
camelia rakudo-moar 50740b: OUTPUT«bar␤»
sammers ok, is there a way to use sub bar without ::? and not naked? 11:03
psch m: module Foo { sub bar is export { "bar" } }; import Foo; say bar 11:04
camelia rakudo-moar 50740b: OUTPUT«bar␤»
sammers we can do: use Foo; bar();
but I want to give it a prefix
like a Class does
psch why doesn't Foo::bar do that?
sammers like Foo::bar(), but... is there any other way to handle it?
yeah it does
but I was wondering what options are available to us 11:05
psch alternatively, you could use a class that you don't have to (or even forbid to) instantiate
sammers also, even with Foo::bar, simple bar is still available.
psch m: class Foo { method new { die "no" }; method bar { "bar" } }; say Foo.bar;
camelia rakudo-moar 50740b: OUTPUT«bar␤»
psch not if you don't export
m: module Foo { our sub bar { "bar" } }; import Foo; bar
camelia rakudo-moar 50740b: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Undeclared routine:␤ bar used at line 1. Did you mean 'VAR', 'bag'?␤␤»
11:05 eyck left
sammers ok, so Foo::bar would work, but not bar without is export... 11:06
ok
what about using another prefix, instead of Foo;;
Foo::
psch that would be maliciously confusing in my opinion
sammers yeah, good point
Xliff m: class A { method a(A:U:) { say "aay" }; } A.a;
camelia rakudo-moar 50740b: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Strange text after block (missing semicolon or comma?)␤at <tmp>:1␤------> 3lass A { method a(A:U:) { say "aay" }; }7⏏5 A.a;␤ expecting any of:␤ infix␤ infix stopper␤ …»
psch i don't know if we would still do it, though :)
Xliff m: class A { method a(A:U:) { say "aay" }; }; A.a;
camelia rakudo-moar 50740b: OUTPUT«aay␤»
Xliff m: class A { method new { die "Instantiation not allowed" }; method a(A:U:) { say "aay" }; }; A.a; A.new.a; 11:07
camelia rakudo-moar 50740b: OUTPUT«aay␤Instantiation not allowed␤ in method new at <tmp> line 1␤ in block <unit> at <tmp> line 1␤␤»
Xliff Sammers: ^^ As psch++ mentioned earlier, this could be another option. 11:08
And you save one keystroke! :D
sammers yeah, that is interesting..
just trying to simplify as much as possible
Xliff You can even shorten it since I've added the die method. 11:09
11:09 eyck joined
sammers I like the interface, Foo.bar 11:09
Xliff m: class A { method new { die "Instantiation not allowed" }; method a() { say "aay" }; }; A.a; A.new.a; # Signature not necessary since you can't instantiate
camelia rakudo-moar 50740b: OUTPUT«aay␤Instantiation not allowed␤ in method new at <tmp> line 1␤ in block <unit> at <tmp> line 1␤␤»
sammers is there a way to use shortnames with Modules like that Class example in the Modules doc? 11:10
Xliff ??
Link, please?
sammers in this section docs.perl6.org/language/modules#EXPORT but a scroll down a bit 11:11
psch m: module Foo { module Bar is export { our sub baz { "quux" } } }; import Foo; say Bar::baz 11:12
camelia rakudo-moar 50740b: OUTPUT«quux␤»
sammers sub EXPORT($short_name?) {...
use Foo 'foo'; say foo.bar();
11:13 eyck left
Xliff Do you want shortname to keep the prefix? 11:14
11:15 eyck joined
sammers I just want to write a non-class module, but have interface with the Module subs like foo.bar(); 11:15
psch why? that'd just convince people that your not-a-class module *is* a class module? 11:16
sammers yeah, good point. I guess to see if it is possible.
Xliff I'm sure it's possible. It's just how much effort are you willing to put into making it happen. 11:18
If you want complete control over how this looked I suspect a Slang could do it. I haven't written one, though so I don't know how much work that would be. 11:20
11:20 eyck left
psch eh, you could probably hack together a ModuleHOW child that delegated methods calls to subs in its Stash, but that's kind of like reinventing pieces of a ClassHOW anyway... 11:21
*delegates
and, well, a big difference between a Module and a Class *is* that the latter can already contain methods and dispatch to them successfully... vOv 11:22
sammers hmm, yeah, no need for that. I just was kicking the tires a bit. Does anyone know of a good non-class p6 Module I can take a look at? I just want to see what a good implementation looks like. 11:23
11:23 kid51 joined
psch m: module Foo { our sub bar { "baz" } }; constant f = Foo::; say f<&bar>() # another weird thing you could do if you like... vOv 11:23
camelia rakudo-moar 50740b: OUTPUT«baz␤»
psch sammers: i think most contributors actually like the OO we provide, sorry :) 11:24
sammers yeah, I do too...
Xliff Sammers: Do you have a p5 example?
sammers I have nothing against OO and I have been enjoying p6, but I like to see what options are available.
Xliff I'm beginning to suffer from non-caffeine and non-sleep so my answers will start to get less useful! =) 11:25
sammers no p5 example that I can think of 11:26
11:28 eyck joined
sammers so as a rule should all of our modules stick to the p6 OO concepts as much as possible? it looks like that has become the norm. 11:31
gregf_ m: class Foo { method bar(){ say "Bar"; } };Foo.bar; Foo.new.bar # works either way :| 11:33
camelia rakudo-moar 2f0026: OUTPUT«Bar␤Bar␤»
gregf_ sammers: are you trying to create a static class which cannot be instantiated? 11:34
11:35 grondilu joined
dalek c: 584c7b9 | ianmcb++ | doc/Language/typesystem.pod6:
fix typo (#654)

  `built-in' seems more prevalent than `built in' so I added a hyphen as
well.
11:36
Xliff sammers: You just want to see how many ways you can call a subroutine with a prefix, correct?
sammers gregf_: not really trying to accomplish anything. I am just trying to figure out how fully non-OO paradigms can be implemented. and what options are available.
right
like are there any examples of a fully fp module with usage? 11:38
or something completely procedural? 11:39
but somehow providing a namespace, which I guess Module does just fine with ::
11:39 huggable left 11:40 huggable joined
sammers and how would we go about using an OO module with one of these other paradigms? 11:40
psch however you like..? 11:41
i mean, 5 is an object already
Xliff sammers: I will say again, with Grammars (Slangs) you can redefine how the parser works. You could add a prefixing method of your choice. 11:42
psch m: say 5.HOW.HOW.name(5.HOW)
camelia rakudo-moar 2f0026: OUTPUT«Perl6::Metamodel::ClassHOW␤»
Xliff However, this is rabbit hole! Be careful!
sammers ha, Xliff, yeah, I am just asking to learn how much we can implement any single paradigm divorced from any other paradigm. 11:43
without too many hoops
psch you can't really, you can just ignore that the other paradigms exist
which is mostly a style choice
sammers ok, that is a pretty good answer
Xliff sammers: Right now you can use modules (::) or classes (.) 11:45
If you want something more esoteric, you will have to get creative.
And I mean creative.
sammers Xliff, ok, thanks. That answers my question.
Xliff sammers: yw 11:46
psch classes also can do indirect object notation
Xliff psch: ?
(I probably know of this by another name)
::('A').method? 11:47
sammers hmm
Xliff ::('B')."$method"() ?
psch m: class A { method foo { "bar" } }; say foo A:
camelia rakudo-moar 2f0026: OUTPUT«bar␤»
Xliff O_O
sammers magic
Xliff Learn something new every day! 11:48
11:48 yqt joined
sammers what is the reasoning behind that? say foo A: 11:49
Xliff m: Class A { method foo { say "foo"; } }; class B { method foo { say "bar"; } }; foo A; foo B;
camelia rakudo-moar 2f0026: OUTPUT«5===SORRY!5===␤Undeclared names:␤ A used at line 1␤ Class used at line 1␤Undeclared routine:␤ foo used at line 1␤␤Other potential difficulties:␤ Useless declaration of a has-scoped method in mainline (did you mean 'my method…»
psch Xliff: no semi there :)
(as in, just a normal colon :P )
Xliff m: Class A { method foo { say "foo"; } }; class B { method foo { say "bar"; } }; foo A:; foo B:;
camelia rakudo-moar 2f0026: OUTPUT«5===SORRY!5===␤Undeclared names:␤ A used at line 1␤ Class used at line 1␤␤Other potential difficulties:␤ Useless declaration of a has-scoped method in mainline (did you mean 'my method foo'?)␤ at <tmp>:1␤ ------> 3Class …»
psch sammers: someone thought it was a cool idea..? i'm not sure, it got in before i was around
Xliff m: Class A { method foo { say "foo"; } }; class B { method foo { say "bar"; } }; foo A: Nil; foo B: Nil;
camelia rakudo-moar 2f0026: OUTPUT«5===SORRY!5===␤Undeclared names:␤ A used at line 1␤ Class used at line 1␤␤Other potential difficulties:␤ Useless declaration of a has-scoped method in mainline (did you mean 'my method foo'?)␤ at <tmp>:1␤ ------> 3Class …»
psch Xliff: Class 11:50
Xliff See!! I said less useful!
m: class A { method foo { say "foo"; } }; class B { method foo { say "bar"; } }; foo A: Nil; foo B: Nil;
camelia rakudo-moar 2f0026: OUTPUT«Too many positionals passed; expected 1 argument but got 2␤ in method foo at <tmp> line 1␤ in block <unit> at <tmp> line 1␤␤»
sammers ha
yeah
Xliff m: class A { method foo { say "foo"; } }; class B { method foo { say "bar"; } }; foo A:; foo B:;
camelia rakudo-moar 2f0026: OUTPUT«foo␤bar␤»
Xliff \o/
11:50 kid51 left
Xliff Don't like that syntax for non-arg methods, though 11:50
The : and the ; will run together and getcha.... see above. 11:51
psch m: my $a = ^5; say map grep $a: * > 2: * * 2
camelia rakudo-moar 2f0026: OUTPUT«(6 8)␤»
gregf_ sammers: gist.github.com/anonymous/5f1113ea...7dbdee6af3 <= i just thought of trying this
Xliff gregf_, but that's just substituting the :: for the . 11:52
psch m: class C { method m { "foo" } }; say m A: # great WAT, btw 11:53
camelia rakudo-moar 2f0026: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Alphanumeric character is not allowed as a delimiter␤at <tmp>:1␤------> 3class C { method m { "foo" } }; say m7⏏5 A: # great WAT, btw␤»
gregf_ Xliff: yeah, true 11:54
11:55 xinming_ left 11:56 xinming joined
sammers thanks gregf_, that brings up another question, is there a simple way to wrap a Module in a Class like your example? So for example, writing an OO app, looking to keep things consistent, importing a non-class module but want to use it like a Class... is there a simpler technique to accomplish that? 11:56
psch m: sub f($x) { say "doing things with $x" }; "foo".&f
camelia rakudo-moar 2f0026: OUTPUT«doing things with foo␤»
psch just pretend the subs are methods \o/
sammers yeah, but it brings all the subs in without a Method:: if they are exported for example. 11:57
sorry 11:58
psch there's a ticket about namespace pollution from export-happy modules somewhere...
sammers Module:::
ok, so that is what they are called.
EHMs 11:59
psch ...i literally just made that up?
i mean, the X-happy Y is a pretty normal english idiom, isn't it?
sammers yeah
trigger happy
I guess the only thing someone needs to define is the export to private ratio. 12:00
psch well, the ticket proposed an explicit way of limiting what you do import, no matter if there's a tag defined that covers exactly what you need 12:01
12:01 sftf joined
psch as in, even if there's no tags defined and DEFAULT exports literally everything, there would be a way to say "i only want those symbols, tyvm" 12:01
which i think sounds pretty reasonable, but i don't think anyone has started working on it
sammers ok
Xliff use Module only<foo bar baz>; # ??? 12:03
12:03 xnrand left, xnrand joined
psch RT #128090 12:04
grr
rt.perl.org/Ticket/Display.html?id=128090
Xliff: without a colonpair it probably can't ever parse
...i think
although i'm probably wrong..? :/
Xliff use Module :ONLY<foo bar baz>; # ??? 12:06
Of course, that would mean that the :ONLY tag then becomes unavailable for module writers.
tbrowder need help with: rakudo/nqp
Xliff Which is why I did it without the colon at first.
psch Xliff: did you look at the ticket? :)
tbrowder: what's up?
Xliff Yes.
I am saying the same thing. The only difference is minor hairs. 12:07
psch right, i like :SYM fwiw
Xliff LOL! Traitor! =)
tbrowder I'm trying an nqp script in the rakudo repo where rakudo was built and locally installed
Xliff :ONLY reads better, but I care not about the details of the mechanism... only that it exists.
sftf Hi! Got different {c,m,a}time under win2012 with perl5 and perl6. Why? Please look at the code pastebin.com/e3Jy97im 12:08
Xliff tbrowder: Can you gist the script?
tbrowder when trying to execute the script I get: While looking for 'lib.moarvm': no such file or directory
it's nowhere on my system, even for the rakudobrew version 12:09
psch tbrowder: you're running from the root of the repo and not install/bin/?
tbrowder yes
psch tbrowder: don't do that :)
it's really unreliable, for reasons beyond my understanding
Xliff lol
12:09 pRiVi joined
tbrowder okay, so i should put the script there 12:09
psch it's really mostly that being in $RAKUDO_GIT_REPO while running nqp-m is broken somehow 12:10
as i said, i don't get vOv
BrokenRobot Xliff: I like :ONLY more than :SYM :)
Xliff BrokenRobot++
I was about to comment on that RT, but I don't have an account.
BrokenRobot Register :) 12:11
Xliff Feel free to steal the idea =)
psch sftf: can you open a ticket on rt.perl.org ?
huggable: RT
huggable psch, nothing found
12:11 pdcawley_ joined
psch huggable: bug report 12:11
huggable psch, nothing found
psch huggable: >:(
12:11 pmurias joined
huggable psch, nothing found 12:11
pmurias hi 12:12
psch we have that somewhere there i'm sure :|
o/ pmurias
BrokenRobot Xliff: rt.perl.org/Ticket/Display.html?id...xn-1406770
huggable: rakudobug
huggable BrokenRobot, To report a bug, email detailed description and any test cases to [email@hidden.address] or use perl6 query on rt.perl.org ; see github.com/rakudo/rakudo/#reporting-bugs
12:12 Bodger1234 joined
Xliff Oh! I do have a Bitcard account. :/ 12:12
12:13 pdcawley left
Xliff BrokenRobot: Are capitalized tags reserved? I can't specify "is export(:ONLY)" in a module and screw things up, can I? 12:14
12:14 brrt left, heatsink joined
BrokenRobot Xliff: no they're not reserved 12:15
m: module Foo { our $x is export(:ONLY) = 42 }; import Foo :ONLY; say $x
camelia rakudo-moar 2f0026: OUTPUT«42␤»
BrokenRobot m: module Foo { our $x is export(:BLARG) = 42 }; import Foo :ONLY; say $x 12:16
camelia rakudo-moar 2f0026: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Error while importing from 'Foo': no such tag 'ONLY'␤at <tmp>:1␤------> 3export(:BLARG) = 42 }; import Foo :ONLY7⏏5; say $x␤»
BrokenRobot m: module Foo { our $x is export(:BLARG) = 42 }; import Foo :DEFAULT; say $x
camelia rakudo-moar 2f0026: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Error while importing from 'Foo': no such tag 'DEFAULT'␤at <tmp>:1␤------> 3ort(:BLARG) = 42 }; import Foo :DEFAULT7⏏5; say $x␤»
Xliff Ah! So an exeption would need to be added to the "is export" trait
IF the option were to be added to the language.
12:20 rgrinberg joined
tbrowder psch: thanks, the environment there (rakudo/install/bin) seems to work fine with the script there...nqping onward...incrementally... 12:23
Xliff BrokenRobot: Would you expect :ONLY to export symbols not marked as "is export", too? 12:24
Coz I'm looking at World.nqp... and I'm tempted... :p
psch pls no
if it's not exportable, nothing can export it
Xliff No no.
I was just asking.
Makes things easier. 12:25
Problem is, the way I see it, I would be special casing :ONLY in both "use" and "is export" 12:26
s/I would/someone would/ # Let's not get funny ideas, Xliff.
12:28 brrt joined
BrokenRobot Xliff: I'd expect the :ONLY to function as the way to create an export tag from the module *user's* rather than module author's side. I don't care if John McAuthor thinks &foo, &bar, and $meow must be exported by default. I only need &foo and I don't want my code to break if they decide to add new functions down the road 12:28
12:29 brrt left
Xliff BrokenRobot, kk. 12:29
BrokenRobot m: module Foo { sub say ($) is export { put "suck it" } }; import Foo; say 42
camelia rakudo-moar 2f0026: OUTPUT«suck it␤»
BrokenRobot ^ that would be impossible if I specified import Foo :ONLY<&bar>;
12:31 skids joined
BrokenRobot m: module Bar { sub do-things is export { say "did good" }; module Foo { sub do-things is export { "did bad" } }; import Bar; import Foo; do-things 12:31
camelia rakudo-moar 2f0026: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤A symbol '&do-things' has already been exported␤at <tmp>:1␤»
BrokenRobot Or that ^. At least it cries about it. 12:32
Xliff BrokenRobot: Well I found do_import in World.nqp and no... it is not as simple as I thought it would be. 12:33
the import() method works based on tags, not symbols.
And my nqp-foo is non-existant so.... 12:34
12:34 sjn joined
BrokenRobot Xliff: the issue here is human element to make the decision, not technological one. 12:35
dalek c: 94dcdf0 | (Brock Wilcox)++ | doc/Language/rb-nutshell.pod:
Re-arrange the sections in RB-Nutshell

Plus some misc edits
c: 95a1ea5 | (Brock Wilcox)++ | / (588 files):
Merge remote-tracking branch 'origin/master' into rb-nutshell-reorg
c: 9326a3a | (Brock Wilcox)++ | doc/Language/rb-nutshell.pod6:
Remove WIP internal TOC comment
c: 8c8a24f | (Brock Wilcox)++ | doc/Language/rb-nutshell.pod6:
Merge pull request #653 from perl6/rb-nutshell-reorg

Rb nutshell reorg
12:35 skids left
Xliff BrokenRobot: Yes, but a PR implementing it would almost be fait-accompli. 12:37
BrokenRobot Xliff: but we don't know what we're implementing yet :| 12:40
Xliff: specifically see comments on the ticket about the exportation way described in S11 that currently is NIY: rt.perl.org/Ticket/Display.html?id...xn-1398925
12:41 gcole_ left
BrokenRobot Xliff: rushing off with a PR before any solid idea of what is needed is a good way to get your feelings hurt when the PR gets rejected :P 12:41
12:41 wingfold left
psch solution: get a commit bit and just push things without asking :P 12:42
BrokenRobot :D
psch obviously not really
psch probably should go do something else
BrokenRobot ditto... 12:43
psch i'm getting a bit too grumpy at this annoying jvm breakage :|
12:51 sufrostico joined
BrokenRobot Swarm of Camelias: fbcdn-sphotos-g-a.akamaihd.net/hph...bd37665514 12:56
13:00 ufobat joined
Xliff BrokenRobot: You have a point, but submitting a PR like that, without discussion would be asking for a rejection. No feelings would be hurt, here. 13:00
However, based on llfourn's comment (which I needed to read again), the changes to World.nqp would not be trivial 13:01
Still... I would just wanna try to see if I could.
ufobat ola :)
Xliff \o ufobat
13:04 Sgeo_ left
ufobat :-) 13:04
BrokenRobot Xliff: you'd just have to check here if the $tag.key is "ONLY" and then look through tags in $EXPORT and pick out the wanted symbols to import. github.com/rakudo/rakudo/blob/nom/...d.nqp#L841 13:07
Xliff: the only thing is here it calls the EXPORT sub, which still leaves module authors free to crap into others' namespaces :S github.com/rakudo/rakudo/blob/nom/...d.nqp#L863
pmurias has accidently made a commit with a WIP commit message :/ 13:09
jnthn pmurias: But did you push it? :)
moritz psch: if you haven't pushed it yet, git commit --amend
jnthn ooh yes, you did :)
moritz ah well, happens
pmurias moritz: ammending it was the plan ;
BrokenRobot m: module Foo { sub EXPORT { {"&lulz" => sub {"YOLO"} } }; sub foo is export { say "meow" } }; import Foo; say lulz 13:10
camelia rakudo-moar 2f0026: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Undeclared routine:␤ lulz used at line 1␤␤»
BrokenRobot Oh, never mind.
13:10 girafe joined
jnthn Well, it was in a branch, not in master, so unless you expect lots of people have checked out your branch to hack along you can still rewirte history and force push :) 13:10
*rewrite 13:11
nine pmurias: just force push :)
BrokenRobot notices MONKEY-BRAINS as a reserved pragma... 13:13
Can't wait for that to be in use :)
13:13 literal_ is now known as literal 13:14 mcmillhj joined
Xliff Does that mean that MONKEY-ZOMBIES is soon to be a thing? 13:18
BrokenRobot: I thought the same thing, but I think $EXPORT is just a list of tags, not symbols.
That would have to be added to World.nqp
BrokenRobot Xliff: this doesn't look like a list to me: github.com/rakudo/rakudo/blob/nom/...d.nqp#L581 13:19
Xliff Sorry. HASH of tags, not list. 13:20
And I'm talking $EXPORT, not &EXPORT 13:21
BrokenRobot I'm also talking $EXPORT.
Xliff LOL! I didn't get this far. 13:22
13:22 jkramer left
BrokenRobot Xliff: based on what I see in the sauce, it's a hash with tag keys and symbol stashes as values. You need to go through the values and pick the symbols to import, presumably creating a new stash to pass to self.import in the process 13:22
BrokenRobot points out it doesn't have any clue what it's talking about.
I didn't get "Broken" in the name for no reason ;)
Xliff ROFLMAO 13:23
13:24 kurahaupo left
Xliff BrokenRobot: Who cares? Brainstorming is fun. 13:24
13:24 kurahaupo joined 13:25 donaldh joined
Xliff BrokenRobot: I assume you noticed that $EXPORT is basically $Module.WHO? 13:27
13:28 kurahaupo left 13:47 dj_goku left 13:58 dj_goku joined
BrokenRobot Xliff: oh, that's 'cause I linked to the wrong thing in my last link. 14:03
Xliff: it's a FLATTENABLE_HASH in do_import() sub... I'm assuming that's a.. .hash :) github.com/rakudo/rakudo/blob/nom/...d.nqp#L834
14:05 adu joined, CIAvash left, yqt left
nine Should be an nqp::hash 14:06
14:06 grassass left 14:07 grassass joined 14:09 rindolf left
Xliff Near as I can tell, it's an nqp::hash that's eqivalent to $Module.WHO; 14:16
Which I can't really inspect at the perl6 level. I guess I need nqp.
psch m: say CORE.WHO.keys 14:17
camelia rakudo-moar 04f0b2: OUTPUT«(SIGSEGV WhateverCode Slip &callframe Pair SIGHUP &flat &RETURN-LIST utf8 &infix:<∖> CurrentThreadScheduler PromiseStatus StringyEnumeration Distribution &splice &postcircumfix:<{ }> &callsame &GATHER Backtrace PF_INET6 &sinh &infix:<lt> &print &asech NF…»
psch m: say CORE.WHO.^methods 14:18
camelia rakudo-moar 04f0b2: OUTPUT«(new BIND-KEY EXISTS-KEY Method+{<anon|48737040>}.new elems iterator STORE STORE_AT_KEY Method+{<anon|48737040>}.new Method+{<anon|48737040>}.new list fmt item perl of ACCEPTS Method+{<anon|48737040>}.new FLATTENABLE_LIST FLATTENABLE_HASH hash Method+{<ano…»
Xliff Ahh.
psch m: say CORE.WHO.perl # that's a bit eh, yeah
camelia rakudo-moar 04f0b2: OUTPUT«Method 'WHICH' not found for invocant of class 'Perl6::Metamodel::ContainerDescriptor'␤ in method push-all at /home/camelia/rakudo-m-inst-2/share/perl6/runtime/CORE.setting.moarvm line 1␤ in block <unit> at <tmp> line 1␤␤»
14:24 cognominal left 14:25 araujo_ left, freezerburnV joined 14:30 freezerburnV left, cognominal joined 14:31 ptolemarch joined 14:33 adu left 14:40 pmurias left
BrokenRobot Stage parse : 46.564 :P 14:40
(24-core box)
14:41 pmurias joined
moritz parsing isn't nicely parallelizable 14:44
BrokenRobot t/spec/S11-repository/curli-install.t fails BTW
time TEST_JOBS=70 make spectest: real1m21.471s 14:46
:D
That's about what it takes to do just stage parse on my Linode VM :) 14:47
BrokenRobot is about to run the fastest make spectest ever run :) 14:49
32-core box 14:50
nine sweet
14:55 ssotka joined
BrokenRobot Strangely, Stage parse : 67.336 14:57
I wonder why such a huge difference :/
psch what's the bogomips relatively between the two boxes? 14:58
cause that's probably more informative than number of cores for a single threaded program
BrokenRobot ¯\_(ツ)_/¯ I already deleted the 24-core one 14:59
15:01 skids joined 15:02 g4 left
BrokenRobot 4600.00 on this box 15:03
moritz bogomips sound bogus :-)
psch yeah, most definitely not useful enough 15:04
hack has just short of 4.8k and stage parse was at 56s a few hours ago
BrokenRobot I'm getting marginally better spectest runs too. Considering this box is like $540/month more expensive, this is just money down the drain 15:06
nine Machines with lots of cores rarely have good single core performance
BrokenRobot time TEST_JOBS=70 make spectest: real1m10.300s
Too bad
lizmat I wonder what the longest running test script is: wouldn't be surprised it is about 1:10 :-) 15:08
BrokenRobot oh, heh :)
psch: bogomips are the same on the 24-core box 15:12
15:13 kurahaupo joined
psch i guess that's another notch in the "bogomips are really not useful" column :) 15:13
nine BrokenRobot: bogomips are the worst way possible to compare performance :) They do not have any value at all. None. 15:14
BrokenRobot Ahh :)
nemo nine: huh. what's the alternative then? 15:16
nine nemo: any benchmark you can put together in five minutes will be more useful. Bogomips stopped being comparable in the middle of the 90s 15:17
nemo nine: I was having fun comparing my RPI3 bogomips to the very first x86 I'd ever owned (one powerable by a modest solar panel, the other needing the power of a small village to match the bogomips)
psch well, the wikipedia article reads like it's somewhat (but limitedly) useful to compare cpus of a given architecture
nemo nine: m'k - so if I wanted to compare 2 totally different processors I don't have access to, what metric would I use?
psch that is, actual core architecture, not instruction set 15:18
nemo nine: i.e. - I can't run code on them. I just want to get a rough comparison
either for purchasing decision or just curiosity
geekosaur there is no such thing as a simple benchmark for such. you test your actual workload, or as close as you can get to it
nemo geekosaur: welp. given that's impossible, guess I'm stuck w/ bogomips in a situation like that then 15:19
geekosaur because even if the cpu speed is the same, you have cache, memory bandwidth, etc. to deal with
nemo and any reviews I can find
15:19 donaldh left
geekosaur and bogomips don't even try to deal with those, and moreover can't even be relied on for purely cpu loads (especially if you have hyperthreading enabled) 15:20
and if you can't test your actual workload then you're rolling the dice 15:21
nemo sure. but there's a difference between just blindly clicking "buy" on a random CPU and trying to get *some* information about it first 15:25
eh. dunno. seems dubious to me that bogomips have absolutely 0 value 15:26
15:27 tomboy65 joined
stmuk its well known in the linux community read the wikipedia page 15:27
15:27 tomboy64 left
stmuk the clue is in the name "bogus mips" 15:27
nemo ...
duh?
BrokenRobot
.oO( bogus imps )
15:28
nine nemo: there's websites publishing benchmark results for CPUs. Just google for the exact two models you'd like to compare and you will find them 15:29
geekosaur the original intended use for bogomips was to calibrate spin locks. even that minimal usage turned out to be unsafe and a source of kernel bugs on multiple processor systems. so at this point bogomips are computed and printed for no reason but to placate people who want to see the bogompis printed 15:30
nemo so. here's my only point... en.wikipedia.org/wiki/BogoMips#Pro...ps_ratings if you look at this list. the bogomips goes up over time. no shock. it's a measure of execution speed
15:30 richi235 joined
nemo so clearly it's measuring something... 15:30
dogbert17 o/ #perl6
nemo specifically "the number of million times per second a processor can do absolutely nothing"
geekosaur it's measuring one out of many things that impact actual execution speed 15:31
BrokenRobot dogbert17: \o
dogbert17 Hello Zoffix :)
nemo geekosaur: sure. so it has some informational value. that's all I was focused on...
dogbert17 have a small mystery
geekosaur and on a multiprocessor system it becomes meaningless as soon as you start another core
dogbert17 m: say Q:q#Just a literal "\n" here# # should this work?
camelia rakudo-moar 04f0b2: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Undeclared name:␤ Q:q used at line 1␤␤»
15:31 gfldex left
BrokenRobot I don't think # can be used as delimiteress, though the error is LTA 15:32
m: qw#foo bar#
camelia rakudo-moar 04f0b2: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤# not allowed as delimiter␤at <tmp>:1␤------> 3qw#7⏏5foo bar#␤»
geekosaur on single processor systems it still has some slight meaning
nemo geekosaur: multicore is a really easy thing to take into account, come on now
BrokenRobot God.. what have I started... BogoimpGate 15:33
dogbert17 I wonder if it used to work though, it's in the doc docs.perl6.org/language/quoting#Escaping%3A_q
BrokenRobot shrugs
15:33 _mg_ left
nine nemo: "goes up over time" where do you see this? I see a Raspberry Pi in the same category as an Intel Itanium in that list 15:34
dogbert17 I'll fix it just wanted to be sure that it is, in fact, not supposed to work :)
15:35 khw joined
nemo nine: heh. overall. yes obv you can still buy chips being produced today w/ incredibly low clock speeds 15:35
nine On ARM systems the BogoMIPS printed are not even the result of measuring anything on the CPU. They are determined by a timer frequency 15:36
nemo yes. mentioned on that page ☺
nine: which brings up another useful thing w/ bogomips. can be interesting to get a feel for how your phone's processor is dynamically scaling 15:37
dalek c: b673cc9 | (Jan-Olof Hendig)++ | doc/Language/quoting.pod6:
Fixed typo and broken quoting example. Zoffix++
nine BrokenRobot: curli-install.t fixed 15:39
15:39 huggable left
BrokenRobot nine++ 15:40
15:43 sftp left 15:44 sftp joined 15:47 raiph left, richi235 left
gregf_ oh - BrokenRobot is an alias for Zoffix 15:47
dogbert17 gregf_: among others :) 15:49
timotimo he also sometimes goes by sexy-coder-girl
gregf_ heh 15:51
*faints*
15:55 Bodger1234 left 15:58 Bodger1234 joined
stmuk .tell tadzik I'm getting test fails with Getopt::Type 16:01
yoleaux stmuk: I'll pass your message to tadzik.
16:03 mcsnolte joined 16:04 sno left
tadzik oh noes 16:06
yoleaux 16:01Z <stmuk> tadzik: I'm getting test fails with Getopt::Type
tadzik works on p6c, so I assume the bless() changes broke it 16:07
16:10 araujo joined 16:11 araujo left
dalek c: 0ba7d40 | (Jan-Olof Hendig)++ | doc/Language/quoting.pod6:
Fixed missing semicolons and another broken example
16:11
stmuk I tried with 2016.01 and the latest rakudobrew version and get 16:13
# Failed test at t/01-basic.t line 9
# Too many positionals passed; expected 1 argument but got 2
16:22 ponbiki joined 16:26 mr-foobar left 16:29 araujo joined
Xliff Zoffix/Broken/sexy: So how is that keyboard! ;) 16:32
I may have some disposable income... however I just bought nice, wireless and cheap keyoard.
s/keyoard/keyboard/
16:33 Bodger1234 left
Xliff started to answer dogbert, but calculated lag and realized he's probably been answered already. 16:33
16:34 Bodger1234 joined
Xliff So when I try to inspect $Package.WHO, I get pretty much nothing. 16:34
"{:EXPORT(EXPORT)}" to be exact
BrokenRobot m: class Foo { method new { self.bless: *, :foo<bar> } }.new 16:35
camelia rakudo-moar b93043: OUTPUT«Too many positionals passed; expected 1 argument but got 2␤ in method new at <tmp> line 1␤ in block <unit> at <tmp> line 1␤␤»
BrokenRobot bisect: class Foo { method new { self.bless: *, :foo<bar> } }.new
Xliff So how do I see what is actually going on?
bisectable BrokenRobot: (2016-06-12) github.com/rakudo/rakudo/commit/4179bdc
16:35 Bodger1234 left
Xliff Are there docs for the PackageHOW class? 16:35
Coz that was my next stop. 16:36
BrokenRobot stmuk: weird that it fails with 2016.01... Bisectable points to a June commit
Xliff: that's all I know of: docs.perl6.org/language/mop
stmuk BrokenRobot: I'll recheck maybe my paths are confused 16:37
Xliff BrokenSexyCoderRobot: Thanks! =) 16:38
16:38 dakkar left
BrokenRobot Xliff: the keyboard... Well, it works and is good to type on, but I haven't had a chance to make the extra keys work. They work -almost- fine on Windows; the copy/paste mode fails half the time, pasting the wrong thing. On Linux, the unofficial driver doesn't support those keys ATM and I didn't bother trying to hack them in, and worst of all, the keys don't work in a Linux running in a VM inside the Windows 16:38
host, despite them working in Windows host.
So, in summation, I haven't had the time to fix the extra keys, even though I like the keyboard without them anyway :)
Xliff D'oh!
Dammit, you spent enough on that keyboard it should be making you coffee in the morning with limited work. 16:39
I'd ask for my money back! 8-)
16:39 pmurias left
BrokenRobot heh. 16:39
I'd have to return two keyboard to two different companies in two different countries :) 16:40
Xliff BrokenCoderGirl: For one great price!
Rut roh... I've had my caffeine and I appear to be getting punchy. :/
stmuk BrokenRobot: my error .. I get passes at 2016.04 and didn't check further
16:41 mr-foobar joined
BrokenRobot stmuk: sweet. At least we know what broke it :) 16:41
gregf_ Br0kenSexyCoderGirlRobot looks fine as well.. *a bit too much to type* 16:42
16:44 setty1 joined
BrokenRobot Cool, Rakudo has 777 stars :) 16:44
BrokenRobot collects the winnings
Ah, OK, it's intended "breakage" 16:46
16:47 zakharyas left 16:49 canopus_ joined
BrokenRobot tadzik: stmuk: I've sent a PR to fix breakage. .bless() was made not to take positionals because it wasn't doing anything with them anyway, and we got a 180% speed increase. Positionals aren't in the roast, so it's OK that it was changed that way: github.com/tadzik/Getopt-Type/pull/1 16:49
16:51 yqt joined, canopus left
Xliff Rakudo::Internals.EXPORT_SYMBOL <- Is this nqp or Moar? 16:52
16:52 jonas2 left
BrokenRobot Xliff: it has .pm extension, so I'd assume it's perl 6: github.com/rakudo/rakudo/blob/nom/...ternals.pm 16:54
Xliff Huh! Why didn't my find... find that file?
16:54 rindolf joined
stmuk BrokenRobot++ 16:55
BrokenRobot That's most hilarious code I've seen all day: github.com/perl6/nqp/blob/master/t...st.t#L1072 16:56
16:56 captain-adequate left 16:57 Actualeyes left
Xliff BrokenRobot++: It is 'hilarious' isn't it? 16:58
16:59 Actualeyes joined 17:04 wisti joined 17:05 domidumont left
Xliff Hrm. I can see my constants via WHO, but not my exports. 17:05
17:07 addison joined 17:10 andreoss joined
andreoss what is the name of .? ? 17:12
safe call?
BrokenRobot
.oO( So, call me maybe... )
17:13
andreoss: I see no names neither in the docs nor in the specs. 17:18
can-call is what I'd call it
17:19 addison left
andreoss en.wikipedia.org/wiki/Safe_navigation_operator 17:19
i guess it's a canonical name
BrokenRobot Cool
andreoss i thought maybe there would be a perl way to call it 17:20
dalek c: ccdf7c7 | (Zoffix Znet)++ | doc/Language/operators.pod6:
.? is called safe call operator

As per en.wikipedia.org/wiki/Safe_navigation_operator
17:22
Xliff Well... I'm too brain fried to dig anymore. 17:23
I will find it eventually. 17:24
BrokenRobot m: class InfiniteLoop { has &.code; method sink { &.code()(); self.new: :&.code; Nil } }.new: code => { say "egads!"; } 17:28
\o/
camelia rakudo-moar b93043: OUTPUT«(timeout)egads!␤egads!␤egads!␤egads!␤egads!␤egads!␤egads!␤egads!␤egads!␤egads!␤egads!␤egads!␤egads!␤egads!␤egads!␤egads!␤egads!␤egads!␤egads!␤egads!␤egads!␤egads!␤egads!␤egads!␤egads!␤egads!␤egads!␤egad…» 17:29
17:40 rahogaboom joined, mr-foobar left 17:43 mr-foobar joined
andreoss m: class InfiniteLoop { method new(:&code) { code(); self.new(:&code) } }.new: code => sub { say "hi! "} 17:45
camelia rakudo-moar b93043: OUTPUT«(timeout)hi! ␤hi! ␤hi! ␤hi! ␤hi! ␤hi! ␤hi! ␤hi! ␤hi! ␤hi! ␤hi! ␤hi! ␤hi! ␤hi! ␤hi! ␤hi! ␤hi! ␤hi! ␤hi! ␤hi! ␤hi! ␤hi! ␤hi! ␤hi! ␤hi! ␤hi! ␤hi! ␤hi! ␤hi! ␤hi! ␤hi! ␤hi! ␤hi! ␤hi! ␤hi! ␤hi…»
andreoss what sink does? 17:46
17:48 cpage_ left
andreoss m: class { method sink { say "sink" } }.new ; Nil 17:49
camelia rakudo-moar b93043: OUTPUT«sink␤»
andreoss m: say class { method Numeric { 1 } }.new + 1; 17:52
camelia rakudo-moar b93043: OUTPUT«2␤»
17:52 domidumont joined
andreoss Contextual::Return 17:53
17:54 fhorck joined 17:58 Actualeyes left 17:59 rurban_ joined 18:01 spider-mario joined 18:02 gfldex joined, spider-mario left, spider-mario joined 18:12 yqt left 18:17 canopus_ is now known as canopus 18:19 araujo left, setty1 left
dalek c: 22c1f65 | (Zoffix Znet)++ | doc/Language/grammars.pod6:
Index TOP and ws tokens
18:20
18:25 cpage_ joined, araujo joined 18:26 buharin joined 18:28 domidumont left 18:31 rahogaboom left 18:32 setty1 joined 18:40 sufrostico left 18:43 Von_Cheam joined 18:46 sufrostico joined 18:51 kerframil joined
Von_Cheam Hi, I'm having trouble installing the GD module via Panda; it appears as though it's failing testing because liblibgd.so can't be found. I have libgd-dev and libgd3 packages on my ststem (Ubuntu 16.04). I've posted the panda output to pastebin: pastebin.com/0LFkQE7r 18:54
Any help or suggestions appreciated! 18:55
timotimo seems like the gd module has "libgd" in its "is native" where it should be "gd" instead
Von_Cheam okay, I'm not super experienced with github or panda (or indeed programming..); is there a way I can maybe pull it from github, rename all the "libgd"s to "gd"s, and then have panda build from my modified version? 18:57
timotimo working on a fix
Von_Cheam Oh, awesome, thanks! 18:58
timotimo but you can just tell panda to "panda install ." or "panda install folder/" in the future
Von_Cheam Okay, cheers.
18:58 cshelton joined
timotimo i pushed the changes, you should be able to "panda install GD" now 18:59
19:00 vendethiel joined
Von_Cheam Okay, trying now.. 19:01
Yeah, that's worked. Thanks loads! 19:02
19:02 domidumont joined
timotimo hooray 19:03
i'll probably be AFK for a while for dinner & TV, but you can open issues on github if you'd like: github.com/perl6-community-modules...-GD/issues
in general, modules.perl6.org/repo/GD is how you'd get to the repository website knowing only the name of the module 19:04
Von_Cheam Okay, thanks and stuff. Have a good one!
dalek c: 9e305f3 | (Zoffix Znet)++ | doc/Language/grammars.pod:
Document protoregexes
19:05
19:05 itaipu joined
DrForr m: class X { method f { my $x; $x ~~ Y }; class Y { } } 19:05
camelia rakudo-moar b93043: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Illegally post-declared type:␤ Y used at line 1␤␤»
DrForr Classes need to be declared before methods that use them?... 19:06
BrokenRobot Yeah
m: class X { class Y { ... }; method f { my $x; $x ~~ Y }; class Y { } }
camelia ( no output )
DrForr (if they do, that's fine, but it seemed to be odd behavior to me.)
lizmat you can stub a class though 19:07
m: class A { ... }
camelia rakudo-moar b93043: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤The following packages were stubbed but not defined:␤ A␤at <tmp>:1␤------> 3class A { ... }7⏏5<EOL>␤ expecting any of:␤ postfix␤ statement end␤»
timotimo Von_Cheam: i must warn you, though: the readme says "this moudle is work in progress", but it hadn't been touched since december 2015
lizmat m: class A { ... }; class A { has $.a }
camelia ( no output )
DrForr It's not worth the effort, I'l just reshuffle the method.
BrokenRobot huh... my commit looks weird :S why is everything an addition :/ 19:09
Ooohhh
The pod6 rename and I had the file open in my editor from before the rename
19:10 itaipu left
dalek c: 1e5989d | (Zoffix Znet)++ | doc/Language/grammars.pod (2 files):
Merge grammars.pod and grammars.pod6

Commit github.com/perl6/doc/commit/9e305f3f71 accidentally duped the old copy of the file.
19:12
19:15 domidumont left, Von_Cheam left 19:21 itaipu joined, zakharyas joined 19:23 addison joined 19:24 andreoss left, brrt joined 19:26 darutoko left 19:29 itaipu left 19:30 itaipu joined 19:32 itaipu left 19:35 TEttinger joined, _dolmen_ joined 19:37 kid51 joined 19:40 huggable joined 19:42 _mg_ joined
Xliff What's the best way to determine parse times in a P6 script? 19:43
19:43 labster joined 19:44 wisti left
lizmat m: say INIT now - BEGIN now 19:44
camelia rakudo-moar b7c852: OUTPUT«0.01175478␤»
19:44 wisti joined
dalek c: 540a340 | (Zoffix Znet)++ | / (2 files):
Reduce line-height in code samples
19:44
lizmat Xliff: ^^^
19:46 heatsink left
BrokenRobot lizmat: would that include the time it took to parse the stuff before the BEGIN? 19:47
I gess that 19:48
's a stupid question :) You have to put the stuff you're measure after that line
lizmat no, this would exclude any parse time of code before the BEGIN and the time it took to parse the BEGIN thunk itself
BrokenRobot neat
Xliff perl6 --stagestats # irclog++ -- irclog.perlgeek.de/perl6/2016-03-01#i_12124459 19:49
Stage parse : 59.581 # !! o_0 20:00
That's almost as long as it takes to parse Perl6 itself! 20:01
lizmat Xliff: anything special about your code? size ?? unicode characters used ? 20:04
20:05 kaare_ left 20:10 cshelton left
moritz the AppVeyor rakudo builds seem to flap several times a day 20:14
does anybody know what's going on there and maybe even have some ideas on how to stop it?
Xliff lizmat: Prolly size and number of classes.... not sure. 20:15
lizmat settings now clock just under 40K lines: is your source anywhere near that ?
Xliff No. 20:17
Number of classes is just over 60.
20:17 mr-foobar left
lizmat hmmm... 20:19
Xliff About 3500 loc
That's modules only... not scripts. 20:20
lizmat perhaps jnthn has more ideas about that
Xliff I'll ask him when I see him then. Thanks, lizmat++
20:22 mr-foobar joined
Xliff Now can someone tell me why this: "sub parse-string($s, :$flags) is export {" 20:22
is throwing a number of positionals error when invoked like this: 20:23
parse-string(
$dtd ~ $xml,
XML_PARSE_DTDATTR | XML_PARSE_NOENT | XML_PARSE_DTDLOAD
);
Says "expecting 1 but got 2"
Oh. DUH! Nevermind. 20:24
20:29 brrt left 20:34 sno joined 20:40 _dolmen_ left 20:41 kanishka joined, mr-foobar left 20:42 mr-foobar joined 20:44 setty1 left 20:49 labster left 20:51 sufrostico left
Xliff Stage parse : 74.522 # /o\ 20:53
Same script, different changes.
Minor changes, but... 20:54
nine That really sounds unreasonably slow. Does this code do anything special or is it really just 3KLOC of mundane code? 20:56
timotimo Xliff: you can --profile-compile, btw 20:57
also, do you "use" a bunch of things?
or use many "is" traits?
20:58 ocbtec left, ocbtec joined 20:59 mcmillhj left
Xliff Yes. A few is traits for aliasing. 21:02
And a moderate number of "use" statements, but nothing that I would call excessive.
There is one thing. We have one module that exports an is trait, but that export doesn't seem to take so we have to redefine it in modules that need to use it. 21:03
21:03 skids left
Xliff There is one is trait, redefined across a few files. 21:03
nine: 3kloc of nativecall bindings.
nine Inline::Perl5 is 1 KLOC and uses 60 is traits, yet compiles in < 5 seconds 21:04
Xliff So many "nativecast"s and "is native"S
21:04 wamba left
nine Xliff: have you tried running with RAKUDO_MODULE_DEBUG=1 ? 21:05
Xliff OK. I will start nixing is traits and see if that speeds things up.
nine: No. Not yet.
When I do that, I expect I will need to dump to a file.
nine Might shine some light on whether it's module loading that's so slow or really the parsing
Xliff Looks like its precomp 21:08
precomp/parsing 21:09
nine Can you paste the output somewhere?
Xliff Yeah. One sec. Waiting for it to complete.
Still hasn't finished yet. That's odd. 21:10
I'm going to give it some time coz ... DEBUGE 21:12
s/E$//
shadowpaste "xliff" at 217.168.150.38 pasted "Module Debug of code" (179 lines) at fpaste.scsys.co.uk/525084 21:17
21:17 sufrostico joined
Xliff nine: ^^ 21:17
Script never finished with RAKUDO_MODULE_DEBUG=1 21:24
And now I'm getting a Junction where I'm not supposed to. 21:26
21:28 jervo left 21:29 zakharyas left 21:30 yx_ joined, xnrand left, as left 21:32 _mg_ left, yx_ is now known as xnrand, Amnez777 joined, _mg_ joined 21:33 Amnez777- left 21:34 Zoffix joined
Zoffix nqp-m: my %h := <foo bar ber bor>; say(%h<foo>); 21:35
camelia nqp-moarvm: OUTPUT«This representation (VMArray) does not support associative access (for type NQPArray)␤ at <tmp>:1 (<ephemeral file>:<mainline>)␤ from gen/moar/stage2/NQPHLL.nqp:1505 (/home/camelia/rakudo-m-inst-2/share/nqp/lib/NQPHLL.moarvm:eval)␤ from gen/moar/stage2/N…»
Zoffix Is there a way to create a hash from a bunch of things? 21:36
moritz nqp-m: my %h = hash(<foo bar ber bor>); say(%h<foo>)
camelia nqp-moarvm: OUTPUT«Assignment ("=") not supported in NQP, use ":=" instead at line 2, near " hash(<foo"␤ at gen/moar/stage2/NQPHLL.nqp:706 (/home/camelia/rakudo-m-inst-2/share/nqp/lib/NQPHLL.moarvm:panic)␤ from <unknown>:1 (/home/camelia/rakudo-m-inst-2/share/nqp/lib/nqp.moa…»
dalek osystem: 1ba6aef | (Sterling Hanenkamp)++ | META.list:
Add DateTime::DST to the ecosystem
moritz nqp-m: my %h := hash(<foo bar ber bor>); say(%h<foo>)
camelia nqp-moarvm: OUTPUT«Too many positionals passed; expected 0 arguments but got 1␤ at gen/moar/stage2/NQPCORE.setting:780 (/home/camelia/rakudo-m-inst-2/share/nqp/lib/NQPCORE.setting.moarvm:hash)␤ from <tmp>:1 (<ephemeral file>:<mainline>)␤ from gen/moar/stage2/NQPHLL.nqp:150…»
moritz nqp-m: my %h := nqp::hash(<foo bar ber bor>); say(%h<foo>)
camelia nqp-moarvm: OUTPUT«Iteration past end of iterator␤ at gen/moar/stage2/QAST.nqp:2108 (/home/camelia/rakudo-m-inst-2/share/nqp/lib/QAST.moarvm:)␤ from gen/moar/stage2/QAST.nqp:2106 (/home/camelia/rakudo-m-inst-2/share/nqp/lib/QAST.moarvm:)␤ from gen/moar/stage2/QAST.nqp:1584…»
moritz grrr
21:37 Some-body_ joined, firstdayonthejob joined, psch_ joined 21:38 spidermario joined, zzzzzzzz1 joined 21:39 spider-mario left 21:40 plushkava joined, spidermario is now known as spider-mario
Zoffix m: use nqp; my %h = nqp::hash('foo', 'bar', 'ber', 'bor'); say %h 21:40
camelia rakudo-moar 042e6c: OUTPUT«{ber => bor, foo => bar}␤»
21:40 plushkava left
Zoffix nqp-m: my %h := hash('foo', 'bar', 'ber', 'bor'); say(%h) 21:40
camelia nqp-moarvm: OUTPUT«Too many positionals passed; expected 0 arguments but got 4␤ at gen/moar/stage2/NQPCORE.setting:780 (/home/camelia/rakudo-m-inst-2/share/nqp/lib/NQPCORE.setting.moarvm:hash)␤ from <tmp>:1 (<ephemeral file>:<mainline>)␤ from gen/moar/stage2/NQPHLL.nqp:150…»
Zoffix ¯\_(ツ)_/¯
21:42 kerframil left, kerframil joined
moritz nqp-m: my %h; %h.STORE(<a b c d>); say(%h<a>) 21:43
camelia nqp-moarvm: OUTPUT«Cannot find method 'STORE': no method cache and no .^find_method␤ at <tmp>:1 (<ephemeral file>:<mainline>)␤ from gen/moar/stage2/NQPHLL.nqp:1505 (/home/camelia/rakudo-m-inst-2/share/nqp/lib/NQPHLL.moarvm:eval)␤ from gen/moar/stage2/NQPHLL.nqp:1708 (/hom…»
timotimo you have to nqp::hash(|@the_list)
if that even works at all
moritz nqp-m: my %h := hash(); %h.STORE(<a b c d>); say(%h<a>)
camelia nqp-moarvm: OUTPUT«Cannot find method 'STORE': no method cache and no .^find_method␤ at <tmp>:1 (<ephemeral file>:<mainline>)␤ from gen/moar/stage2/NQPHLL.nqp:1505 (/home/camelia/rakudo-m-inst-2/share/nqp/lib/NQPHLL.moarvm:eval)␤ from gen/moar/stage2/NQPHLL.nqp:1708 (/hom…»
timotimo otherwise, you'll likely have to push over and over again
i expect the code gen currently does it the same way, i.e. turn a nqp::hash(...) into a series of bindkey operations 21:44
Zoffix :/
Thanks.
21:44 yqt joined 21:45 wisti left, pRiVi left, inokenty left, telex left, DarthGandalf left, ShimmerFairy left, john51 left, dg left, gtodd left, zzzzzzzzz left, psch left, Some-body_ is now known as DarthGandalf
tbrowder BrokenRobot: I am having some success, finally, in getting to the root of the pod table parse problem...hope to have some good results tomorrow some time 21:46
Zoffix Sweet. tbrowder++
21:47 labster joined
tbrowder one thing I've learned is NOT to add a comment at the end of a table row! 21:50
lizmat ++tbrowder
21:50 buharin left 21:51 _mg_ left 21:59 rurban_ left 22:00 Actualeyes joined
nine Xliff: that's very odd. What rakudo version are you on? 22:01
Time for sleep 22:03
lizmat gnight nine!
Xliff nine: This is Rakudo version 2016.06-15-gd9956e5 built on MoarVM version 2016.06
nite nite, nine
Thanks for looking into this. 22:04
Zoffix tbrowder, BTW you were asking earlier about running NQP subs.... If it's just NQP without rakudo bits, you can run NQP by itself by cloning github.com/perl6/nqp; then perl Configure.pl --gen-moar --backends=moar; make; and you can run ./nqp-m -e 'some code'. There's may be a built nqp when you build rakudo too. 22:05
Xliff OMG! camelia supports nqp?
Xliff twists mustache..... 22:06
lizmat m: use nqp; nqp::say("yes")
camelia rakudo-moar 9be48e: OUTPUT«yes␤»
dalek c: 7b9aa3f | (Jan-Olof Hendig)++ | doc/Type/Date.pod6:
Added docs for Date.clone
Zoffix Xliff, just don't run nqp: test
lizmat ah, like that, ok, yes :-) 22:07
22:18 richi235 joined
timotimo hack.p6c.org/~timo/mini_crashes.tar.xz - about a thousand .moarvm files that can segfault or otherwise crash moarvm (when run out of the input_files/ folder); if someone wants to go through them all and categorize the failures into "caused because arg_* was passed a vastly out-of-range index" and "anything else", that'd be pretty rad 22:19
moritz: can you check out what these recent messages in hack's dmesg are about? it seems like vda2 caused some confusion? 22:22
is vda2 supposed to be mounted?
because it isn't
and why the F is disk usage on / still rising steadily :( 22:23
it's mostly in /var/log/atop
today's log is still 280 megabytes big :\ 22:24
22:29 canopus left 22:35 canopus joined, Actualeyes left 22:37 rindolf left 22:42 ptolemarch left
tbrowder basically what i've been doing is using a p6 script with the pod table of concern on it and inserting lots of debug print statements in rakudo/src/Perl6/Pod.nqp to see what's happening at each processing step. i now know where the problem is happening and believe i can fix it. most of today was finding out how to stringify stuff in nqp. and instrumenting 22:43
Pod.nqp. The repeated build install cycle slowed me down a bunch--there's probably a better way to do it but at least i'm getting comfy with pod guts..
i didn't make much progress with running nqp alone, so i took the higher road as a driver 22:44
timotimo i don't have a better way for you than the rebuild cycle, but i can tell you this much: when i last worked on the pod code, rakudo took at least two times as long to build the core setting :) 22:45
22:45 Woodi left 22:46 Sgeo_ joined 22:47 Woodi joined
tbrowder on my laptop the build/install cycle was taking a bit under 3 minutes with bleed (from early this AM US CDT) 22:48
22:48 Amnez777 left 22:50 RabidGravy left 22:51 Amnez777 joined
timotimo 3 minutes? that's rough 22:55
tbrowder well, i could fire up my big server but it heats up my study a lot; can i use 'make -j N 22:57
(oops) 'make -j N' for multiple cores? 22:58
timotimo that part of the build doesn't parallelize :( 22:59
if you're running spec tests, though, you can use the TEST_JOBS environment variable
22:59 AlexDaniel joined
tbrowder i mean i know i can but i think i saw some comment that "the build doesn't parallelize" 23:00
23:00 spider-mario left
AlexDaniel .u ∿ 23:00
yoleaux U+223F SINE WAVE [Sm] (∿) 23:01
tbrowder thanks for tip on test env var
timotimo you know you can get an account on hack.p6c.org if you want to? 23:02
23:02 kurahaupo left, kurahaupo joined 23:06 kurahaupo left 23:09 firstdayonthejob left 23:11 kurahaupo joined 23:12 ssotka left
tbrowder how fast is the build/install cycle on hack.p6c.org? 23:15
timotimo i can have a look
Zoffix Stage parse : 61.660
mas+opt is another 17
timotimo i need to clone all that stuff 23:16
Zoffix: how about actions, grammar, world, and pod modules?
tbrowder well my laptop does that, the time i quoted was the whole process (make; make install) 23:17
Zoffix tbrowder, today I ran the build on 24- and 32-core boxes. The best time I got was ~42s for Stage Parse and a few secs for the rest of the stuff 23:18
Sadly, it's not that easy to make it run faster :( 23:19
timotimo i shouldn't compile moarvm with unlimited processes at the same time you're doing a measurement, i guess
Zoffix XD
zoffix@hack:~/rakudo$ time $(perl Configure.pl --gen-moar --gen-nqp --backends=moar; make; make install) 23:20
Stage start : 0.000
Stage parse : 64.377
Stage syntaxcheck: 0.000
Stage ast : 0.000
Stage optimize : 6.721
Stage mast : 11.956
Stage mbc : 0.201
installed!
-bash: ATTENTION:: command not found
real 2m1.467s
tbrowder um, my actual last run stage parse was 73 sec and total of 2m17s, not too bad all in all
Zoffix user 1m57.812s
sys 0m1.404s
zoffix@hack:~/rakudo$
ooops
Sorry
timotimo also, hack is under a *bit* of load from my fuzzing stuff :S 23:21
collect.p6c.org/ <- click on hack.p6c.org, then on cpu, to see it
on the bottom there's buttons for hour, day, week, month, year 23:22
23:26 canopus left, ocbtec left
timotimo commutes 23:27
Zoffix Takes 1m28.933s on 24-core/90GB RAM box: gist.github.com/zoffixznet/2def454...821c79bd44 23:30
m: my $fast = 1 + 28.933/60; my $slow = 2 + 1.467/60; say "{($fast-$slow)/$fast*100}% faster" 23:32
camelia rakudo-moar e9019e: OUTPUT«-36.582596% faster␤»
23:32 canopus joined
Zoffix m: my $fast = 1 + 28.933/60; my $slow = 2 + 1.467/60; say "{($slow-$fast)/$slow*100}% faster" 23:32
camelia rakudo-moar e9019e: OUTPUT«26.7842295% faster␤»
23:33 kanishka left
kurahaupo Zoffix: 26% less time is ~34% faster. perhaps some reciprocals are needed 23:38
23:39 huggable left 23:40 huggable joined, canopus left
kurahaupo m: my $fast = 88.933/60; my $slow = 121.467/60; say "{($slow/$fast - 1)*100}% faster" 23:42
camelia rakudo-moar e9019e: OUTPUT«36.582596% faster␤»
23:45 canopus joined
Zoffix Aren't "less time" and "faster" synonyms? 23:45
23:53 canopus left 23:57 sortiz joined 23:59 girafe left