»ö« 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 declaredat <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 rowat <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 -ve0 is zero3 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«aayInstantiation 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«aayInstantiation 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«BarBar» | ||
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 1Undeclared routine: foo used at line 1Other 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 1Other 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 1Other 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«foobar» | ||
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 delimiterat <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 exportedat <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 delimiterat <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: Aat <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
|