»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg camelia perl6: ... | irclog: irc.perl6.org | UTF-8 is our friend!
Set by sorear on 25 June 2013.
Mouq xenoterracide: Cool :) 00:09
00:14 rindolf joined 00:17 cognominal__ left, cognominal__ joined 00:27 hoverboard joined
japhb .ask timotimo I've got a hack day, and was planning to spend a chunk of it on perl6-bench. Any new work on it in the last couple months or plans that I should be aware of? 00:29
yoleaux japhb: I'll pass your message to timotimo.
00:41 jsn_ left, pecastro joined 00:55 perigrin joined
xenoterracide github.com/xenoterracide/p6-annotations (thought I had left this working, maybe not) perl6 -Ilib t/persistence.t Method 'declares_method' not found for invocant of class 'NQPClassHOW' 01:06
jnthn: might know if he's around, was helping me work on this last time I touched it 01:15
dalek c/redesign-sketch: 6b0849c | Mouq++ | sketch/html/ (2 files):
Finish off most of sketch for the index page
01:18
01:18 Sqirrel_ joined 01:20 FROGGS left, Sqirrel left 01:23 Su-Shee_ joined 01:28 klapperl_ joined 01:32 FROGGS joined 01:44 FROGGS left 01:54 FROGGS joined
xenoterracide `oic I can't apply a role to ClassHOW that way 02:17
hmm
02:22 BenGoldberg left 02:25 SamuraiJack_ joined 02:38 xragnar_ joined, xragnar_ is now known as xragnar 02:40 obra joined 02:41 dj_goku left
dalek c/redesign-sketch: cb26885 | Mouq++ | sketch/ (3 files):
Create sketch for type.html page
02:45
c/redesign-sketch: 251df05 | Mouq++ | sketch/html/ (2 files):
Add sub-menu on types page
02:47 treehug88 left
dalek c/redesign-sketch: aab3b69 | Mouq++ | sketch/html/type.html:
Fix sub-menu links
02:51
02:58 rurban joined 03:03 atroxaper joined 03:24 bjz joined
xenoterracide perl6-debug-m -Ilib t/persistence.t 03:25
Start argument to substr out of range. Is: -1, should be in 0..0
dalek rl6-bench: 0c6dde4 | (Timo Paulssen)++ | timeall:
try to get at least 3 datapoints
03:29
rl6-bench: 6427247 | (Geoffrey Broadwell)++ | timeall:
Support for --min-scaling-points in timeall

Add the --min-scaling-points option to timeall (default 3) and use it to ensure that scalable tests are timed at enough different scales to give a decent idea of each compiler's scaling curve, even when a given compiler is performing very poorly on a particular test.
rl6-bench: 18f2f85 | (Geoffrey Broadwell)++ | timeall:
Merge branch 'minimum_number_runs'
rl6-bench: 7b3d06f | (Geoffrey Broadwell)++ | bench:
Fix $*PERL<compiler> deprecations in `bench config`
xenoterracide so if that doesn't work how can I use the debugger? 03:41
dalek rl6-bench: e5cc12c | (Geoffrey Broadwell)++ | lib/Bench/Handling.pm6:
Fix dir expansion in explode-components
04:09
rl6-bench: b4be496 | (Geoffrey Broadwell)++ | bench:
Fix column widths in list-checkouts
japhb xenoterracide: Last I tried it, the debugger was not working on moar. I haven't had a chance to test it again, but jnthn does know about it (he's just hip deep in other Moar work right now) 04:10
xenoterracide japhb: well if I run perl6-debug-p -Ilib t/persistence.t I get the same error 04:12
dalek c/redesign: 505e2e0 | Mouq++ | / (4 files):
Start getting handling in place for updated header

This includes setting up the menu and sub-menus, though it currently only displays a selection on the top menu
xenoterracide japhb: so I'm guessin that means it's not a moar problem 04:13
japhb xenoterracide: Yup, stands to reason. I just haven't updated my r-p in a long time, so hadn't tested that 04:16
xenoterracide japhb: I'm running the 2014.05 04:17
04:18 SevenWolf joined
dalek rl6-bench: c9a752f | (Geoffrey Broadwell)++ | components.json:
Don't use committer-only URL for rakudo-js repo
04:19
japhb xenoterracide: My r-p is 2014.04-118 04:20
xenoterracide hmm
myabe I should try rolling back
04:24 kaare_ joined
dalek rl6-bench: 99bb04d | (Geoffrey Broadwell)++ | bench:
Fix tag parsing in `bench extract`
04:33
japhb Apparently there'd been a fair amount of bitrot since the last time I hacked on perl6-bench. :-(
Mouq japhb++ 04:37
atroxaper What dows it mean 'Asked to remove 8 spaces, but the shortest indent is 4 spaces' when i run some tests? 04:41
Mouq atroxaper: What tests?
m: " test".dedent(8)
camelia rakudo-moar d8cd80: OUTPUT«No such method 'dedent' for invocant of type 'Str'␤ in block at /tmp/l95hLipuL2:1␤␤»
atroxaper Mouq: my own. 04:42
Mouq m: " test".indent(-4)
camelia ( no output )
Mouq m: " test".indent(-8)
camelia rakudo-moar d8cd80: OUTPUT«Asked to remove 8 spaces, but the shortest indent is 4 spaces␤»
Mouq atroxaper: I have no idea :9
atroxaper Mouq: :) if I do 8 spaces in my code then all is ok. When 4 then I have that warn. 04:43
Mouq atroxaper: Hmm... are you using heredocs? 04:44
q:to/XYZ/ ? 04:45
atroxaper yes.
04:45 kaare__ joined
Mouq Maybe you're getting a LTA error from having your final line indented more than the rest of your heredoc 04:45
m: say q:to/XYZ/␤ x␤y␤ z␤ XYZ 04:46
camelia rakudo-moar d8cd80: OUTPUT«Asked to remove 1 spaces, but the shortest indent is 0 spaces␤ x␤y␤ z␤␤»
04:47 kaare_ left
atroxaper Mouq: I have the same indent for q:to, for text block, and for XYZ. 04:48
dalek rl6-bench: c130109 | (Geoffrey Broadwell)++ | lib/Bench/Globals.pm6:
Simplify calc of PROGRAM_DIR in Bench::Globals
04:52
rl6-bench: 3da7402 | (Geoffrey Broadwell)++ | lib/Bench/Handling.pm6:
Minor whitespace fix in Bench::Handling
04:54 ren1us left 04:56 xenoterracide left
Mouq m: say EVAL "q:to/XYZ/\n x\n\ty\n z\n XYZ" 04:56
camelia rakudo-moar d8cd80: OUTPUT« x␤ y␤ z␤␤»
Mouq m: say EVAL "q:to/XYZ/\n x\n\t y\n z\n XYZ" 04:57
camelia rakudo-moar d8cd80: OUTPUT« x␤ y␤ z␤␤»
Mouq m: say EVAL "q:to/XYZ/\n x\n\t y\n z\n\tXYZ"
camelia rakudo-moar d8cd80: OUTPUT«Asked to remove 8 spaces, but the shortest indent is 3 spaces␤x␤ y␤z␤␤»
Mouq ... o_O
m: $*TABSTOP
camelia rakudo-moar d8cd80: OUTPUT«Unhandled exception: Dynamic variable $*TABSTOP not found␤ at <unknown>:1 (/home/p6eval/rakudo-inst-1/languages/perl6/runtime/CORE.setting.moarvm:throw:4294967295)␤ from src/gen/m-CORE.setting:12907 (/home/p6eval/rakudo-inst-1/languages/perl6/runti…»
Mouq I thought there was something like that that controls what a tab means in spaces... 04:58
05:02 atroxaper left
japhb m: $?TABSTOP.say 05:02
camelia rakudo-moar d8cd80: OUTPUT«8␤»
05:03 atroxaper joined 05:04 atroxaper left 05:05 atroxaper joined 05:11 ivan`` left 05:13 ivan`` joined 05:15 atroxaper left 05:16 cognominal__ left 05:17 cognominal__ joined, cognominal__ left, cognominal__ joined
thou A simple tool (in perl6) to fork a github repo and add it as a remote: gist.github.com/softmoth/1fe9843610f0ea6062d1 05:29
05:32 atroxaper joined
rurban I added now the missing parrot NameAliases. Do you want old abbrevations also, like "LINE FEED"? 05:34
icu doesn't support this so I added a generated perfect hash (via gperf)
05:35 rurban left
thou .tell FROGGS rurban wrote to the channel (I think it's directed at you): «I added now the missing parrot NameAliases. Do you want old abbrevations also, like "LINE FEED"? icu doesn't support this so I added a generated perfect hash (via gperf)» 05:47
yoleaux thou: I'll pass your message to FROGGS.
thou .ask tadzik Do you have any feedback on github.com/tadzik/panda/pull/80 ? 05:55
yoleaux thou: I'll pass your message to tadzik.
atroxaper r: class R { has @.d = [1, 2, 3, 4]; }; say R.new.d.join('|'); 06:06
camelia rakudo-{parrot,jvm,moar} d8cd80: OUTPUT«1 2 3 4␤»
atroxaper WHY?
Why isn't 1|2|3|4 ?
Timbus because you assigned the first element of @.d to an array 06:07
atroxaper Timbus: Really?
Timbus m: my @a = [1,2,3,4]; say @a.perl
camelia rakudo-moar d8cd80: OUTPUT«Array.new([1, 2, 3, 4])␤»
Timbus its an AoA
which.. actually used to work as intended, i think. 06:08
yeah i was sure @a = [...]; was one of the perl 5 code smells that was supposed to be removed, just like %h = {...} 06:09
atroxaper r: class R { has @.d = <1 2 3 4>; }; say R.new.d.join('|'); 06:10
camelia rakudo-{parrot,jvm,moar} d8cd80: OUTPUT«1|2|3|4␤»
atroxaper I understood. Thank you)
Timbus glad to help :) 06:12
06:17 atroxaper left 06:18 atroxaper joined 06:20 atroxaper left, atroxaper joined 06:22 atroxaper left, atroxaper joined
dalek c/redesign: 6357aa3 | Mouq++ | / (2 files):
Use new, simpler index page

Doesn't do anything with actual indices though
06:25
c/redesign: b9f8592 | Mouq++ | / (2 files):
Add indices for the language, type, and routine sections
06:26 atroxaper left 06:28 Mouq left
masak Timbus: I'm not aware that @a = [...] ever produced anything other than an AoA. 06:34
'morning, #perl6
japhb morning, masak! 06:35
moritz good morning, masak & japhb & * 06:39
06:39 lizmat joined
thou .t 06:39
yoleaux Sat, 14 Jun 2014 00:39:54 MDT
thou good *, #perl6 :) 06:40
moritz wtf is MDT? 06:41
masak <colomon> masak: I'm puzzled by Text::Markdown 06:42
colomon: how so?
thou moritz: US/Mountain summer time (Mountain Daylight Time)
moritz ah, a US-isms 06:44
moritz points out that the rest of the world also has mountains :-)
lizmat
.oO( strange guys, those americans, having a timezone dependent on height ;-)
06:47
moritz lizmat: a typical off-by-pi/2 error :-) 06:48
japhb More like a timezone based on utterly dominant feature
lizmat Ah, a bit like BST then :-) 06:50
need to pack, checking out of hotel, before getting back to FPW
&
06:52 rindolf left 06:55 lizmat left
dalek rl6-bench: b7bf31e | (Geoffrey Broadwell)++ | bench:
Pass --min-scaling-points through to timeall
07:08
rl6-bench: 35cd770 | (Geoffrey Broadwell)++ | timeall:
Reduce ENOUGH_TIME default to 1.0 seconds

Now that MIN_SCALING_POINTS guarantees even slow compilers will have multiple points to plot, reduce the ENOUGH_TIME default to 1.0 seconds so that benchmarkers don't have to wait quite so long for decent results.
rl6-bench: 28eed23 | (Geoffrey Broadwell)++ | / (3 files):
Start tracking work separately from scale

Some benchmarks don't scale workload linearly with SCALE; for example, the workload of '2d' benchmarks increases quadratically with SCALE. This change allows benchmarks to specify their workload scaling formula, and starts tracking work and scale separately in raw timing data.
japhb Oooh, dalek's flood-prevention has been tuned, I see!
Well, with that pack of changes, time for some rest. 07:09
masak japhb++
japhb .tell timotimo You might want to pull perl6-bench. :-)
yoleaux japhb: I'll pass your message to timotimo.
07:14 brrt joined
[Sno] FROGGS: you're latest output seems from p5's Unix::Statgrab - if you want, send me config.log (or check self) and see why it doesn't find the lib 07:15
07:19 anaeem1 joined, anaeem1 left 07:21 dmol left 07:24 hoverboard left
FROGGS [Sno]: this reports nothing: nm /usr/lib/libstatgrab.a | grep sg_get_process_stats_r 07:27
yoleaux 05:47Z <thou> FROGGS: rurban wrote to the channel (I think it's directed at you): «I added now the missing parrot NameAliases. Do you want old abbrevations also, like "LINE FEED"? icu doesn't support this so I added a generated perfect hash (via gperf)»
[Sno] FROGGS: maybe your libstatgrab is to old ;)
FROGGS thanks thou
[Sno]: it is the one from Ubuntu 13.10, no idea what version
[Sno] configure checks for a libstatgrab>=0.90 which contains new, thread-safe API (0.17 is non-reentant) 07:28
07:28 hoverboard joined, hoverboard left
[Sno] FROGGS: dpkg -l | grep libstatgrab ;) 07:28
FROGGS [Sno]: in your P5's module doc I read: get_fs_stats
Returns statistics about the mounted filesystems. The object it returns is a Unix::Statgrab::sg_fs_stats.
so it returns a single object, right?
[Sno] an object containing a list of sg_fs_stats, yes 07:29
FROGGS ahh
[Sno] because I don't convert it into a perl-array automatically
FROGGS ii libstatgrab-dev 0.17-1ubuntu1 amd64 development files of library for system statistics
ii libstatgrab6 0.17-1ubuntu1 amd64 library being useful interface to system statistics
07:30 telex joined
FROGGS I am not a C expert, but isn't it unusal to return a pointer to a struct when you in fact get a list? 07:30
07:31 anaeem1_ joined
[Sno] FROGGS: each of those returned objects have a as_list() method - they give you a "real" perl list 07:31
it's for performance reasons - why convert a long list when you don't need that
xfix FROGGS: I don't think you return an array in C. The pointer has to work. 07:32
[Sno] pointer and array is in C the same :)
xfix can return*
FROGGS I mean I expected sg_fs_stats **fsfuncsg_get_fs_stats(entries);
instead of sg_fs_stats *fsfuncsg_get_fs_stats(entries);
xfix [Sno]: no, they aren't, unless you mean in function arguments.
[Sno] FROGGS: no, this would be a list of pointers - not a list of obejcts 07:33
sg_fs_stats *f = sg_get_fs_stats(); while(..) { ++f; }
FROGGS ahh!
xfix When you define `void something(int array[])`, it's the same thing as `void something(int *array)`. However, this only applies to function signatures.
[Sno] xfix: try Google or K&R - they are
xfix: check what "Unix"[3] gives you ;) 07:34
don't let modern warnings from compiler confuse the facts how the code-generator works ^^ 07:35
the semantic difference between "int array[]" and "int *array" is the missing const - "int array[]" means "int * const array" 07:38
xfix Uhm, no, it's not quite as simple.
[Sno] so it requires an initializer (which leads to the assumption that it applies to function signatures) 07:39
xfix You can initialize arrays, but you cannot initialize pointers.
At least without `malloc` call or something like that.
[Sno] int foo[5] = { 1, 2, 3, 4, 5 }; int *bar = foo;
this code will work
xfix Yes, because int[] can be implicitly converted to int *. 07:40
Also, there is a difference in how arrays and pointers are represented in memory.
[Sno] no, because "bar+1" is identical to "bar[1]"
xfix bar+1 is identical to &bar[1], but whatever. 07:41
(for pointer/array types)
[Sno] the original language design (which results in C89) describes that in detail - see K&R for that
FROGGS changes the topic to "Welome to #C! :P"
[Sno] the array notation has been added later for higher level language constructs
xfix Also, there is a difference in representation. 07:42
Arrays are on the stack, pointers aren't.
(unless they point to arrays)
pointer values*
[Sno] not really - both are internally hold as a pointer - and the compiler has some meta information about foo
see generated assembly code 07:43
I think we're talking from different perspectives - you argue from language (how to express xy) point of view, I argue from result point of view (what assembly output comes out, what is identical to ..) 07:44
it is important to understand that bar+1 is identical to &bar[1] - because the entire C memory management relies on that 07:45
07:46 cognominal__ left
xfix Also, there is sizeof. 07:46
codepad.org/lVXN2HE9
[Sno] distinguish between compile time and run time (sizeof is compile time)
xfix sizeof is compile time in most cases, but that doesn't really matter, does it?
[Sno] bindling library (NativeCall) is run time
oh, it heavily matters 07:47
the compiler is gone when segfaults occur ;)
run time matters
xfix When dealing with VLA, sizeof is runtime.
07:48 Sqirrel_ left
xfix Either way, pointers point onto something. Arrays are just simply allocated on stack, without any pointer. 07:48
[Sno] stack is just a pointer 07:49
xfix Well, yes.
[Sno] sizeof is always compile time
it's specified being that
xfix sizeof is not always compile time.
Just in most cases it is. 07:50
[Sno] C11 rational 5.70 page 106
xfix codepad.org/ntHkq5iP 07:51
[Sno] this is C11 07:52
xfix Has it changed?
[Sno] neither C89 nor C99 accept that
xfix This is C99.
I know C89 doesn't accept this. In C89, it's always compile time.
[Sno] most C99 compilers accept it (did you try sunpro?), but when compiling in ANSI-C99 mode they throw errors 07:53
official support came with C11
07:54 atroxaper joined
xfix Oh, yeah, I forgot <stdio.h> in this example. 07:54
codepad.org/VPOmCLWG
[Sno] lol
variable length arrays have been introduced to get rid of alloca() :D 07:55
xfix Either way, www.open-std.org/jtc1/sc22/wg14/www.../n1124.pdf - 6.5.3.4.2.
alloca() is an extension, not a standard feature.
[Sno] sure
xfix "If the type of the operand is a variable length array type, the operand is evaluated; otherwise, the operand is not evaluated and the result is an integer constant." 07:56
FROGGS .tell jnthn I can call that, but I cannot access the elems of the returned thing: sub sg_get_fs_stats(CArray[int]) returns CArray[sg_fs_stats] is native("libstatgrab") { * };
yoleaux FROGGS: I'll pass your message to jnthn.
07:58 atroxaper left
[Sno] xfix: ok - so it's C99 indeed, but what does it change? 07:58
it simply says: even C99 is able to store meta-information
but for compatible memory layout to C89 or K&C C, it has to store it somehwere else
xfix But if you want to think arrays are pointers, you are free to. I'm going to claim that chars are integers, because in most cases chars are implicitly converted to integers. 08:00
[Sno] xfix: and you're right
see isspace or isprint for details ;)
don't get me wrong - I like the new semantic features of modern compilers 08:02
08:02 lizmat joined
[Sno] but knowing the history and compat constrains preserve from faling in to many pitfalls 08:02
xfix You may know that signed integer overflow is undefined. But because of implicit conversions of `char`s, this isn't necessarily the case for `char` 08:05
codepad.org/wGw2Y5vq
08:05 woolfy joined
xfix The compilers don't really care about `short` or `char`, unless it's a pointer. 08:05
[Sno] char <= short <= int <= long
08:05 lizmat left
[Sno] heavily depends on compiler 08:05
check SunPro compiler - it cares 08:06
xfix Not quite. When `char` is `unsigned`, the `short` doesn't have to fit all values of `char`.
Either way, `something += 1;` in this example isn't an overflow, because it's more like `something = (char) ((int) something + 1);`.
08:07 darutoko joined
xfix Well, `(signed char)`, not `(char)`. 08:07
[Sno] xfix: we had (1-2 years ago) a nasty bug in NetBSD on non-x86 which proves you wrong ;) 08:09
xfix Either way, even if arrays and pointers are mostly similar, you cannot initialize pointer with values. You have to provide an array instead, or some other pointer.
[Sno]: oh, yeah, this gcc bug. 08:10
It was fixed.
[Sno] there was an implementation which relies on your demonstrated "lack of contrain" and it bugged 08:11
the fix was to use really an int
xfix: yes, there're language level differences between array and pointer in modern compilers - but there's many old code out there which doesn't give a f*** regarding that 08:12
xfix Well, it's just bad code.
[Sno] meanwhile, maybe - originally, not necessarily 08:13
xfix Which probably triggers undefined behavior, and can do anything.
[Sno] entire ksh is full of that code
and it works since 40? years meanwhile
my intenstion was to get FROGGS being aware of memory layout in C - not compiler sematics ;) 08:14
xfix Either way, pointers and arrays in struct are different, and it actually matters here. 08:15
In terms of memory layout. 08:16
Even if you are going the function is never going to take array argument (like `(int[])*`), for structs it matters. 08:17
[Sno] indeed - codepad.org/4LtGZUeJ - that differs :) 08:18
08:18 lizmat joined
xfix Even if you are going to assume arrays are just constant pointers, when parsing the struct, it's something else. 08:19
[Sno] xfix: but you're argueing to far away from original problem: why returning "sg_fs_stat *" and not "sg_fs_stat **"?
xfix: take a look into the statgrab code how that pointers are created - you might learn that it's not that easy as you demonstrate in 5-liners ;) 08:20
lizmat checks whether she wound up on the wrong channel :-) 08:21
[Sno] ah - come on, you beat nl:spain 5:1 - so we're on the wrong planet 08:22
xfix <[Sno]> xfix: we had (1-2 years ago) a nasty bug in NetBSD on non-x86 which proves you wrong ;) 08:23
Found reference (took a while). stackoverflow.com/q/16125660/736054
Yep, it's a bug. 08:24
[Sno] this is probably a good example why "array and pointers are same" is a better approach that "it differs": github.com/tdb/libstatgrab/commit/...322a6b5cbe
xfix: this is something different, I dig later and update you 08:25
got to go for RL :( 08:26
xfix ok
The discussion was probably pointless anyway.
08:26 rindolf joined 08:27 Rotwang joined
[Sno] maybe - when you're on a YAPC or similar where I am, too - I would be happy to show you at some examples why I thing "easier approach" > "complicated, but nearer at truth approach" 08:27
xfix I probably think in C too much in terms of spec. 08:28
08:28 brrt left
xfix Thinking that someone may use computer where `sizeof(int) == 1` (this can happen on non-8-bit machines). 08:28
dalek kudo/nom: 4d0bdd9 | (Elizabeth Mattijsen)++ | / (5 files):
Move CompUnitRepo::Distribution to its own file
08:34
[Sno] hmm xfix - what do you want to show with your example for char overflow: codepad.org/cGZfv5L4? 08:44
it overflows great :)
xfix That `char`s are `int`s in most contents, I guess.
Usually, integer overflows are undefined behavior, but not in this case. 08:45
The conversion from int to char is implementation defined, not undefined.
08:46 Rotwang left
[Sno] codepad.org/lI8wYscd 08:46
xfix [Sno]: well, yes, but this program is undefined. 08:47
`overflow.c:9:5: runtime error: signed integer overflow: 2147483647 + 1 cannot be represented in type 'int'`
[Sno] yes, there several behaviours
I think the root cause of the entire discussion was a bad chosing of phrase to say: "returned pointer is intended to be used as a list of stats, because in C (*p) is the same as p[0]" 08:52
08:57 araujo left 08:59 Rotwang joined
dalek kudo/nom: eb1d2fd | (Elizabeth Mattijsen)++ | / (6 files):
Put CURL stuff into a role
09:07
09:20 SamuraiJack_ left, SamuraiJack__ joined 09:21 mr-foobar joined
dalek kudo/nom: b52642a | (Elizabeth Mattijsen)++ | src/core/CompUnitRepo/Local/File.pm:
Make sure signatures match
09:22
09:37 brrt joined
FROGGS lizmat++ 09:37
09:40 SamuraiJack__ left 09:43 SamuraiJack joined 09:47 Psyche^ joined 09:49 dduncan joined
dduncan Question: What is the best url to look at that tells how Perl 6 and Not Quite Perl differ? I know Not Quite Perl is supposed to be a subset of Perl 6, but I'm wanting basically a summary of what parts of Perl 6 that Not Quite Perl doesn't have. So far Google hasn't been very helpful. 09:51
Or basically a pair of lists, one showing major things Not Quite Perl does have of Perl 6, and one showing major things it doesn't. 09:52
09:52 virtualsue joined
dduncan The only detail I found so far is Not Quite Perl doesn't have "list context". 09:53
I also know it lacks a lot of libraries or extensions. But putting those aside, I'm asking more about the more central language features. 09:54
lizmat NQP doesn't have assignments, only binding
NQP doesn't have auto-vivification
dduncan lizmat, thank yiou, that is helping 09:55
lizmat basically all system features need to be called with nqp::foo
09:55 atroxaper joined
lizmat all function calls need parens 09:55
dalek kudo/nom: 1854d5c | (Elizabeth Mattijsen)++ | src/core/CompUnitRepo/Locally.pm:
Make sure we have a lock for each object
09:58
dduncan Related question. If one has a module written in Not Quite Perl, can one use it in a Perl 6 program such that it is treated as being Perl 6 code? It is a true subset? Or is Not Quite Perl code declared differently such that Perl 6 wouldn't treat it as Perl 6 code? 09:59
09:59 atroxaper left, itz joined
lizmat there's basically two ways: 10:00
expose it to NQP and Perl6 as nqp:: subs
10:01 SevenWolf left
lizmat 2. get a Perl6 "handle" by calling nqp::hllize 10:01
10:01 SamuraiJack left 10:02 dmol joined
dduncan Thank you lizmat, I have no further questions now (especially as its 3am), but maybe another day. 10:02
lizmat yw, dduncan, and good night if you decide to get some shuteye 10:03
dduncan that is the plan
10:03 dduncan left
lizmat I wonder how much sense it would make to have an "is locked" attribute 10:07
basically, it would add a wrapper to said method, and use the $!lock attribute by default as a lock to to a $!lock.protect( ) 10:08
on the actual method call
10:09 dmol left, denis_boyun_ joined 10:10 brrt left 10:14 denis_boyun___ joined, denis_boyun_ left
dalek kudo/nom: a5aefa9 | (Elizabeth Mattijsen)++ | src/core/CompUnitRepo/Local/Installation.pm:
Make sure CURL::Installation.install is omnipotent
10:21
10:27 treehug88 joined 10:28 treehug88 left 10:41 Su-Shee_ is now known as Su-Shee 10:43 itz left 10:45 spider-mario joined 10:50 SamuraiJack joined 11:05 itz joined 11:14 Rotwang left 11:15 dmol joined 11:27 anaeem1_ left
lizmat m: sub a { say "Foo" }; my &b := &a; b # so it's easy to alias a sub 11:35
camelia rakudo-moar 1854d5: OUTPUT«Foo␤»
lizmat m: method a { say "Foo" }; my &b := &a; b # but how to do this for a method ?
camelia rakudo-moar 1854d5: OUTPUT«Useless declaration of a has-scoped method in mainline (did you mean 'my method a'?)␤===SORRY!=== Error while compiling /tmp/pps6TzMMBq␤Undeclared routine:␤ &a used at line 1␤␤»
[Sno] lizmat: thanks 11:36
11:37 anaeem1_ joined 11:43 dmol left 11:45 araujo joined
moritz m: class A { method a { say 42 } }; A.^add_method('b', A.can('a')[0]); A.^compose; A.b 11:50
camelia rakudo-moar a5aefa: OUTPUT«42␤»
moritz that's how you alias methods
lizmat moritz++ 11:52
TimToady wonders if that's subject to optimizer damage if the compose is at run time
lizmat is thinking a twigil for & to indicate the type of code 11:53
but maybe that would quickly become a trigil 11:54
TimToady seems wrongish; other twigils mostly indicate strange scoping or binding
and type is just in the sigil
lizmat m: class A { method a { say 42 } }; BEGIN A.^add_method('b', A.can('a')[0]); A.^compose; A.b
camelia rakudo-moar a5aefa: OUTPUT«42␤»
lizmat maybe just BEGIN would be enough to prevent optimizer damage ?
m: class A { method a { say 42 } }; BEGIN A.^add_method('b', A.can('a')[0]); A.b 11:55
camelia rakudo-moar a5aefa: OUTPUT«42␤»
TimToady presumably, since optimizations aren't supposed to commit till FINAL check time
lizmat TimToady: any feelings about changing @*INC into an immutable Parcel that can only be changed with "use lib" ? 11:56
11:57 atroxaper joined
TimToady the scoping of 'use lib' is less clear; one would expect it to be lexically scoped as a 'use', whereas it's obvious @*INC is dynamically scoped 11:57
otoh @*INC is like giving sharp knives to young kids 11:58
lizmat I tried to export @*INC into the lexical scope in which the 'use lib' is done
but for some reason, the value doesn't show up until runtime in the scope 11:59
moritz lexical 'use lib' doesn't sound too useful, IMHO
lizmat moritz: why?
11:59 xenoterracide joined
moritz it's a common pattern for a script to include the paths that are needed for the rest of the application 11:59
lizmat it is *essential* in my book
which would be in the outer scope
moritz and the modules just 'use' the rest of the modules, without caring where they come from
lizmat but that feels like p5 think 12:00
moritz it feels like separation of concern
you don't want to spread path handling into every module of yours
lizmat in p6 we need to get used to the idea that each module determines more or less exactly, which version of the modules they use
no, I don't 12:01
moritz yes, but that doesn't equate to setting up the search path in every module
TimToady thinks of official modules and unofficial modules very differently from each other
12:01 atroxaper left
moritz which you'd need, if 'use lib' was actually lexical 12:01
lizmat TimToady: official, as in part of the setting? or the core distribution? or something like rakudo* ? 12:02
moritz TimToady: it's not entirely clear to me how and unofficial module graduates to official
s/and/an/
in particular, if it involves changing the source code, or if it's a question of meta data
TimToady when you reveal it to the "world" and give it an immutable identity
the defintion of "world" may vary
lizmat immutable identitiy as in auth/ver combo, right ? 12:03
TimToady when you're done playing with the current version
of course, under git, all identities are already immutable
yes, basically
if you want to edit a file and run it without a commit, you need local mutability 12:04
where "local" is the opposite of "world", whatever that is :)
at some scale we want to force everyone into the git model, not have mutable versions of module Foo floating around the networks 12:05
so building systems using @*INC feels ucky to me, from that perspective
it's find for little temporary stuff, but not good for large systems 12:06
*fine
lizmat I'd be in favour of encapsulating @*INC into an object with complete control as to its access
TimToady but that's my opinion after one jet-lagged cuppa
I just know that P5-thinkers are gonna wanna abuse @*INC on the large scale 12:07
12:08 cognominal joined
TimToady of course, I may just be confusing file immutability with path immutability here 12:08
policy on *which* repos to use tends to be site-wide, whatever "site" means 12:09
TimToady goes to see if a second cup o' coffee makes him any less TZ-displaced... 12:11
lizmat indeed.. so maybe we need just a temporary, lexical @*INC functionality
or maybe allow for a :inc parameter to "use" 12:12
TimToady notes that an import of a lexical into UNIT's lexical scope can import a dynamic variable for the entire application, so the decision about path scoping could conceivably be downstream from that 12:14
xenoterracide perl6-debug-m -Ilib t/persistence.t # Start argument to substr out of range. Is: -1, should be in 0..0
anyone have any idea's about hat error? (happens with debug-p too)
TimToady
.oO(it's not nice to start arguments...)
xenoterracide lol 12:15
alternative is there a Dumper function somewhere?
ala p5 Data::Dumper/Data::Printer 12:16
lizmat well, in general: .perl
TimToady or json
lizmat for internal debugging, there's the unspecced .DUMP 12:17
m: say 42.DUMP
camelia rakudo-moar a5aefa: OUTPUT«42␤»
TimToady would be nice to have yaml
lizmat m: say { a => 42 }.DUMP
camelia rakudo-moar a5aefa: OUTPUT«Hash<1>(␤ :$!descriptor((null)),␤ :$!storage(BOOTHash<2>(a => ▶42))␤)␤»
lizmat TimToady: patches welcome :-)
moritz m: ''.substr(*-1)
camelia rakudo-moar a5aefa: OUTPUT«Unhandled exception: Start argument to substr out of range. Is: -1, should be in 0..0␤ at <unknown>:1 (/home/p6eval/rakudo-inst-2/languages/perl6/runtime/CORE.setting.moarvm:throw:4294967295)␤ from src/gen/m-CORE.setting:12907 (/home/p6eval/rakudo-…»
lizmat moritz: that seems legit ? 12:18
TimToady lizmat: I agree entirely :)
moritz lizmat: it does; I just wanted to reproduce the error message that xenoterracide saw 12:21
xenoterracide github.com/xenoterracide/p6-annotations 12:22
that's the source I'm running
if that has anything to do with anything 12:23
(just pushed)
12:26 kivutar joined 12:30 brrt joined
lizmat off do explain some de-cocooning... 12:32
12:32 anaeem1_ left
lizmat *to 12:32
timotimo so, since it's @*INC, what's the use case for modifying @*INC and "calling" something with the changed dynamic include path? 12:37
yoleaux 00:29Z <japhb> timotimo: I've got a hack day, and was planning to spend a chunk of it on perl6-bench. Any new work on it in the last couple months or plans that I should be aware of?
07:09Z <japhb> timotimo: You might want to pull perl6-bench. :-)
timotimo japhb: yays :)
xenoterracide I want to add a role to the metaclass, how would I do that? 12:39
timotimo xenoterracide: you're doing some fairly magical stuff, aren't you? :) 12:40
xenoterracide timotimo: I'm trying to create a rudimentary annotation implementation 12:43
dalek kudo/nom: 31d31c2 | jnthn++ | / (4 files):
Include proper version info into perl6-debug.

The missing version info seems to have caused problems at setting load time, presumably as it tried to construct some kind of version object.
timotimo what does "annotation" mean here?
xenoterracide in this case it's a role with a hash that I want to put on the metaclass not the class 12:44
TimToady Any sufficiently advanced technology is indistinguishable from what the founders never imagined...
xenoterracide because it's class level metadata
dalek p/qast_lazy_annotation: 3df5d0e | (Timo Paulssen)++ | src/NQP/Actions.nqp:
"has_ann" is better here.
12:45
TimToady officially values those members of the community who test the design to destruction. :P 12:49
timotimo lizmat: gist.github.com/timo/e435363b9ecc25bb9495 12:51
^ (and others, too)
12:51 ribasushi left 12:57 atroxaper joined 13:01 SamuraiJack left, ribasushi joined 13:02 rurban joined
xenoterracide wait nqp has some variant of annotations or were they added while I was away being busy 13:02
13:02 atroxaper left
timotimo i'm not sure what you mean :\ 13:04
oh, that branch of mine? 13:05
xenoterracide github.com/perl6/nqp/commit/3df5d0eb32 < was just glancing at this commit
timotimo that's about qast nodes only
xenoterracide ah
timotimo qast nodes used to have a hash in them that you could just access like $my_node<foobar> := "hi"
but that meant having that hash for every single node, even if it would end up unused 13:06
xenoterracide ah
trying to do similar for classes I guess 13:07
so then I can build things to use them
13:07 thou joined 13:10 virtualsue left 13:12 ren1us joined 13:15 cognominal left
timotimo i'm playing around with the thought of adding a HTTP server implementation that does concurrency ... 13:16
also, i kinda want to see the logotypes of dependencies of modules on modules.perl6.org appear next to the module, maybe further to the left of the module's name? 13:18
13:18 cognominal joined
timotimo and then it'd be nice to have a logo for NativeCall 13:18
so that it's easy to see which modules depend on a C library and which are "pure-perl"
dalek c: 1cc683c | Mouq++ | lib/Mix.pod:
Headings were switched in Mix.pod
13:21 Alula_ joined 13:22 thou left 13:23 virtualsue joined
jnthn timotimo: I think segomos++ has been working on a concurrent HTTP server, fwiw. :) 13:28
yoleaux 07:56Z <FROGGS> jnthn: I can call that, but I cannot access the elems of the returned thing: sub sg_get_fs_stats(CArray[int]) returns CArray[sg_fs_stats] is native("libstatgrab") { * };
timotimo oh!
did he start when async I/O was already in place?
lizmat I think so 13:30
he found the race I theoretically realised
timotimo ah! :)
lizmat and that jnthn has fixed / provided an alternative for since then
specifically: Supply.on_demand 13:32
(instead of Supply.new)
13:33 brrt left 13:56 uniejo joined 14:01 uniejo left 14:04 kaare__ left, xinming joined, cognominal left
dalek kudo/nom: 9ccf3a9 | (Elizabeth Mattijsen)++ | src/core/CompUnitRepo.pm:
Make sure we load one module at a time
14:05
kudo/nom: 1bff0d1 | (Elizabeth Mattijsen)++ | tools/build/gen-cat.pl:
Remove all lines that match ^# \w

These are all comments that we don't need in the concatenated setting (I don't think), at least not right now when we don't have line numbering going back to the constituent modules. Hopefully, this will mean that there's less of a setting building penalty for adding some internal documentation to the setting.
14:07 anaeem1 joined
lizmat after this, the Stage parse for parrot when down from : 145.547 to 121.377 on my machine 14:11
14:13 anaeem1 left
jnthn Wow 14:15
lizmat hmmm... actually, I think that's exaggerated
testing it again, I get a 122.897 for thie original 14:16
so it's more in the 1% improvement
I guess the other time my machine was doing something heavy as well
dalek ecs: 3dabef9 | pmichaud++ | S99-glossary.pod:
Improve circumfix entry a bit.
14:18
timotimo lizmat: why not also remove ^\w*'#'? 14:19
jnthn uh, \s* ? :)
timotimo er
yes
lizmat timotimo: I found that ^# \w always indicated real comments 14:20
anything else usually indicated some code that was disabled
timotimo hmm 14:21
lizmat I thought there could be value in leaving that in the setting for debugging
BTW, some more rakudo testing revealed the parse differnces where just noise
timotimo so parsing comments is probably rather fast? 14:22
lizmat *parrot
yup
14:22 anaeem1_ joined
lizmat the main reason for doing this patch, is that I want to be writing some more internal documentation in the setting 14:22
and not have to worry about setting parsing time 14:23
timotimo that does sound nice
lizmat (specifically on parrot)
recently I found myself looking at setting code I wrote about a year ago and not immediately understanding it, because of lack of comments :-( 14:24
dalek ecs: 2f45ae5 | pmichaud++ | S99-glossary.pod:
More glossary updates ("Synopsis", "TMTOWTDI")
14:28
lizmat pmichaud++ for committing again :-) 14:29
14:29 rurban left
pmichaud good morning, #perl6 14:30
yoleaux 8 Jun 2014 21:10Z <raiph> pmichaud: I'm trying to encourage a little cleanup of gh/perl6; please delete github.com/perl6/bench-scripts, /reports, and /nqpbook (for a bit more detail see questhub.io/realm/perl/quest/53457...d24e00006d and irclog.perlgeek.de/perl6/2014-06-08#i_8840143)
lizmat pmichaud o/ 14:31
14:31 kaare__ joined
jnthn morning, pmichaud 14:32
colomon pmichaud! 14:34
dalek kudo/nom: d1be6d4 | (Elizabeth Mattijsen)++ | README.md:
Mention --gen-nqp for parrot
14:37
14:39 uniejo joined 14:42 uniejo left
timotimo ohai pmichaud! :) 14:54
14:59 kaare__ left, atroxaper joined 15:00 dmol joined 15:04 BenGoldberg joined, ren1us left, atroxaper left
dalek kudo/nom: 36b1250 | (Elizabeth Mattijsen)++ | src/core/CompUnitRepo.pm:
Fix CURL::File.new returning Nil one more time
15:07
timotimo i'm going to try to build the "combine latest" combinator for supplies now
lizmat this should fix S11-modules/require.t failures
timotimo it's supposed to work with a fixed set of supplies, rather than accepting a supply of supplies, right? 15:08
what happens when a supply gets closed?
lizmat nothing else comes from that supply ? 15:09
timotimo OK. and if all supplies get closed, the combined supply should close itself, too, right?
lizmat yes, afaik
jnthn Wait, there's two directions here
Do we mean "done"/"quit", or closing a tap?
timotimo oh, right, the tappers can close or the supplies can say "i'm done" 15:10
i was talking only about the latter
15:10 Rotwang joined
lizmat yup, if the combining supply closes, it should close all the taps it made 15:10
timotimo but i think the former could work the same way, too
jnthn If the tap of a combined supply is closed, then it should close the taps of all the supplies it was combining that it tapped to do so
If one of the supplies we're combining does quit, then we should close all the others and propagate the error
The semantics of "done" are more interesting, but I think it wants to be that once *all* of the supplies we're combining are done, then we know we also are done. 15:11
lizmat ++
jnthn Because the last value something that got done provided is a perfectly good thing to pass one
timotimo ah. quit is done + error 15:12
so if any supply quits, we quit. if all supplies done, we done.
maybe there should be an "ignore errors" combinator that'll turn any quit into a done :P 15:13
lizmat feels like a modifier to me
jnthn Oh, many error handling combinators are possible :) 15:14
timotimo "turn any done into a quit" :P
jnthn .catch(...another supply to tap...) is a nice one
.auto_retry($times) is another option :)
Depends what you want
Probably that latter one could just be called .retry 15:15
On a quit, it just tries to tap again.
lizmat jnthn: do you think these should be part of the setting? 15:17
jnthn .catch and .retry seem reasonable, yeah.
I mean, it doesn't make that much sense to provide a bunch of nice combinators but then not provide antyhing to help with error handling... :) 15:18
lizmat ok, and then retry with a :$times = 1 named parameters
15:19 uniejo joined, uniejo left 15:20 kaare__ joined 15:27 atroxaper joined
woolfy vendethiel++ 15:31
15:31 kaare__ is now known as kaare_
woolfy vendethiel just gave a nice presentation, mostly about Perl 6, and my French is not so good that i could understand it all, but most of it was very positive 15:32
timotimo \o/
vendethiel++
15:32 xinming left
lizmat vendethiel++ vraiment :-) 15:38
woolfy And this was his first presentation ever outside of his schools' classroom... 15:42
15:43 guru joined
woolfy He was amazing, like a pro. Fast, in French, with humor, people did laugh at some funny stuff. So, a star is born. 15:43
jnthn \o/
vendethiel++
15:43 guru is now known as Guest83335, Guest83335 is now known as arj_, arj_ is now known as ajr_ 15:46 rurban joined
timotimo for zip_latest (which is what i'm calling it now), what should be the initial values of supplies to be zipped that have not yet more'd anything? 15:50
just (Any)? 15:51
jnthn No, you must get at least one value from each
lizmat that's what I wanted to say
otherwise it's not a zip
jnthn "zip" being the big hint :)
timotimo fair enough.
lizmat but how would zip-latest be different from zip?
timotimo zip will only more a tuple (or zip-result) when all supplies have more'd 15:52
zip-latest will do one more for every individual more from the supplies
and just re-use the previous value for the other supplies
lizmat ah, ok
jnthn yup
$system_status = $web_server_status.zip_latest($db_status) 15:53
lizmat yeah, got ya :-)
timotimo: please also spec it
timotimo can do. 15:54
may be doing @errands before committing anything, though
15:55 kivutar left 15:57 xinming joined 15:58 zacts joined, zacts is now known as Guest65968
timotimo m: my @values; @values[5] = 1; say @values[0]:exists; say @values[5]:exists; 16:04
camelia rakudo-moar 36b125: OUTPUT«False␤True␤»
timotimo it's quite nice to have the :exists thing that differentiates between "has ever had a value set" vs "has a defined value set"
should the tests go into zip.t or should i create zip_latest.t? 16:05
rurban_ @values[i]:exist requires a trie or such. or only works for the begin or end. Or does rakudo uses sentinel for unasigned array elements as with hashes? 16:07
timotimo i'm not sure how exactly the implementation works
16:07 [particle] joined
masak vendethiel++ 16:07
timotimo lizmat did most of it, iirc?
lizmat yes 16:08
nqp::null is the key
timotimo: I would create a zip_latest.t
rurban_ do you use a special undef ptyr for arreay elements seperate from NULL?
lizmat and maybe name it zip-latest ? 16:09
timotimo the method?
rurban_ I see, thanks
timotimo well, i looked and found "schedule_on", so i thought it'd be underscored
lizmat well, schedule_on was done by jnthn
and he doesn't like kebab :-)
jnthn Well, I just don't think we should be inconsistent in core... 16:10
lizmat I agree, but which way are we going there... _ or - ?
maybe pmichaud wants to say something about this ?
jnthn Well, until is-prime showed up, we were doing pretty well with _ :P
lizmat FPW shutting down& 16:15
16:15 lizmat left 16:20 denis_boyun___ left 16:21 Pleiades` left 16:26 Pleiades` joined 16:37 woolfy left 16:39 molaf joined 16:46 itz left
moritz is in favor of going all - 16:59
xenoterracide since I can't figure out how to apply a role to the metaclass maybe I just hack the feature into core 17:00
seems silly though
rindolf xenoterracide: hi. 17:02
xenoterracide: what's up?
xenoterracide rindolf: trying to figure out how to apply a role to the metaclass 17:03
colomon agrees with moritz on all -
xenoterracide and then test that it was applied
seems that it's not as obviously possible as it is to apply a role to a classs 17:05
dalek kudo/zip-latest-supply: b99a17a | (Timo Paulssen)++ | / (2 files):
first implementation attempt of zip_latest.

currently doesn't parse for some reason ...
17:07
ast/zip-latest-supply: e9be5bf | (Timo Paulssen)++ | S17-supply/zip_latest.t:
draft tests for zip_latest
17:08
timotimo (switching computes) 17:09
(computers)
rindolf xenoterracide: ah, OK. 17:12
rindolf hopes TimToady is not ignoring him.
Seems unlikely.
17:14 anaeem1_ left 17:15 dmol left, bjz left 17:16 anaeem1_ joined 17:19 anaeem___ joined 17:21 anaeem1_ left 17:22 virtualsue left
japhb pmichaud, raiph: re: irclog.perlgeek.de/perl6/2014-06-14#i_8871745 , please don't delete github.com/perl6/bench-scripts until one of us has had the chance to cherry-pick useful tests into perl6-bench. 17:29
(Where 'us' is ... well, anyone, really)
17:35 denis_boyun joined
colomon must resist urge to port p5 script needing fixes to p6… 17:36
arrrgh, so much easier to program in p6... 17:40
ah, heck. problem was a typo in a variable name with no "use strict". and adding it gives me screens of error messages. 17:44
[Coke] ugh, the default tabstop is EIGHT? heresy.
japhb colomon: These days most of the Perl 5 I write is in furtherance of Perl 6. (He says, currently hacking the Perl 5 part of perl6-bench.) :-) 17:45
colomon japhb++
Pretty much any new script I write is in p6. 17:46
japhb Ditto.
japhb can only barely remember what it was like to program in Perl 4. Talk about a different language!
colomon same here. But p5 came out pretty quickly after I started learning perl, I think. 17:48
xenoterracide is make clean the best way to do clean? seems insufficient 17:53
colomon make realclean, maybe? 17:55
timotimo "masak realclean" is even better 17:58
moritz moarvm needs 'make realclean' occasionally 18:00
in most other projects (without submodules), git clean -xdf is fine
japhb I'm considering making some changes to the format of the perl6-bench timing files that would be non-backwards-compatible (meaning, old timings files wouldn't be readable by new versions of analyze). Anyone object? 18:03
18:04 denis_boyun left
xenoterracide hmm, aight 18:05
18:12 carlin_ is now known as carlin 18:16 hoverboard joined 18:18 kivutar joined 18:20 benabik joined 18:28 zakharyas joined
timotimo i've doodled up a little nativecall logo suggestion 18:36
t.h8.lv/nativecall_logo.png - should be viewed against a white background if possible 18:38
though i may add white borders around everything to ensure readability on all backgrounds
afk again 18:40
18:42 kivutar left
FROGGS o/ 18:46
masak \o
masak realclean 18:47
FROGGS O.o 18:49
18:50 rurban left
FROGGS sooo, v5 written in pure Perl6 with a panda compliant build system can do this atm: 18:52
perl6-m -Ilib --optimize=off -e 'use v5; say 1.1 + "24b";'
25.1
now I'll fix its spectest/test summary target
(built parts of a high sleeper today that looks like a castle, enjoying some relaxing hacking now) 18:55
xenoterracide trying to find the right refence for hashes on objects...if I do class Foo { %.foo } I should be able too do obj.foo.push( $key, $value ) right?
18:57 hoverboard is now known as moistcherry
dalek rl6-bench: b9aaaf9 | (Geoffrey Broadwell)++ | timeall:
Default test->{work} when needed, not always in canonify_tests()
18:58
rl6-bench: f906151 | (Geoffrey Broadwell)++ | / (2 files):
Get rid of 'cooked' timings

As a convenience, timeall was computing 'cooked' (startup subtracted) timings for each test and saving them to the timings files. But
  `timeall` shouldn't be cooking anything -- it's just a data gathering
program. It's also not terribly useful since `analyze` has to handle subtracting compile time for scalable tests anyway. So just save the compiler startup times in the 'run' section of the timings file, and get rid of the 'cooked' computations and all the cruft that went with them.
rl6-bench: 1482f59 | (Geoffrey Broadwell)++ | timeall:
Add tags for test type (e or f) and size (micro or mini)
vendethiel well. home.
atroxaper How can I use class name as key in hash or pair? In Java I can write ClassName.class. 19:02
masak m: class Balloon {}; my $b = Balloon.new; say $b.^name 19:04
camelia rakudo-moar 36b125: OUTPUT«Balloon␤»
masak like that?
atroxaper masak: mmm. ^name. Yes. That's it! 19:05
masak: Thanks! 19:06
m: class Balloon(); say Balloon.^name; 19:07
camelia rakudo-moar 36b125: OUTPUT«===SORRY!=== Error while compiling /tmp/E78570ikFw␤Unable to parse class definition␤at /tmp/E78570ikFw:1␤------> class Balloon⏏(); say Balloon.^name;␤ expecting any of:␤ statement list␤ pr…»
atroxaper m: class Balloon{}; say Balloon.^name;
camelia rakudo-moar 36b125: OUTPUT«Balloon␤»
timotimo t.h8.lv/nativecall_logo.png - now with white borders 19:09
er 19:10
almost
now.
now without pink tinted background 19:11
dalek kudo-star-daily: 695e450 | coke++ | log/ (13 files):
today (automated commit)
rl6-roast-data: f738213 | coke++ | / (5 files):
today (automated commit)
FROGGS I don't see a pink tinted back
timotimo in that case you f5'd late enough 19:12
jnthn: would you mind if i committed that icon as the nativecall logotype? 19:13
vendethiel (thanks guys :).) 19:15
jnthn What is it? :)
vendethiel woolfy++ lizmat++ cognominal++ everybody-there++ 19:16
timotimo it's an N made out of squares and a circle
maybe i could/should turn the circle into a C 19:17
FROGGS and it connects things obviously...
vendethiel got a camel peluche, a perl book, and quite some more ...
FROGGS no, the circle is P6, the old squares are C :o)
timotimo oh, right 19:18
FROGGS I'd give the shapes nice borders perhaps (same color, just a little brighter)
and I would not add more details
(like chars)
timotimo well, the connecting lines are black, so they get borders, too 19:20
f5 for the new version, FROGGS 19:24
ah, this lacks white behind the connecting lines again
FROGGS hmmm, the brighter borders do not mix well with the white background 19:25
timotimo try now 19:26
now, finally 19:27
hmm, that doesn't look so awesome 19:28
FROGGS true
timotimo now the center line is thicker
FROGGS does it look better (locally) if you make the background dark(er)?
timotimo the diagonal one
on black it looks okay
xenoterracide :/ 19:29
FROGGS if you want to keep the white the borders should be darker instead
xenoterracide modifying ClassHOW to apply a role didn't work either, seems to result in a compiletime error
timotimo how is that? 19:30
with a black background it looks worse, IMO 19:31
FROGGS hmmmm, IMO my advices were crap :/ 19:32
timotimo haha
19:32 dmol joined 19:34 kaare_ left 19:36 colomon joined
timotimo i can't compile rakudo any more :\ 19:38
FROGGS O.o
timotimo it seems to explode near something in the CompUnitRepo section 19:39
FROGGS ohh
timotimo never mind
configure.pl fixed it
FROGGS k 19:40
19:41 uniejo joined 19:42 uniejo left 19:49 anaeem___ left 19:51 rurban joined 19:55 vendethiel joined, rurban left 19:56 rindolf left 19:57 liztormato joined
liztormato vendethiel: You're welcome 19:58
On the kebab-casing: I'm also in favour of all - 19:59
Still 3 hours before we're home
20:01 SevenWolf joined 20:02 SevenWolf left
timotimo in that case, i shall -ify it 20:02
20:04 SevenWolf joined
liztormato I also feel this is a bit of eating our own dogfood 20:04
masak 'night, #perl6 20:05
liztormato If there are parsing issues with kebab-cased names *we* should find out about it
dalek kudo/nom: f3ef613 | (Timo Paulssen)++ | / (2 files):
first implementation attempt of zip_latest.

currently doesn't parse for some reason ...
20:06
kudo/nom: fe867d6 | (Timo Paulssen)++ | src/core/Supply.pm:
rename zip_latest zip-latest
benabik If-this-is-kabob-case, is_this_plate_case? 20:08
liztormato Just about ;-) 20:09
benabik CamelKebabs-on-a_plate?
liztormato Nom nom 20:10
FROGGS timotimo: what do you mean by "doesn't parse" ?
20:11 darutoko left, itz joined
timotimo that was before i Configure.pl'd 20:17
i didn't realize the parse error was coming from that, i thought it was my fault
speccing the method right now
FROGGS ahh, okay :o)
20:24 igorsutton joined
itz this came from twitter but is still funny github.com/search?q=%22%3Awq%22&am...;type=Code 20:24
FROGGS hehe 20:25
20:26 benabik left
dalek ecs: 2a277a7 | (Timo Paulssen)++ | S17-concurrency.pod:
spec zip-latest
20:30
liztormato timotimo++ 20:33
20:33 liztormato left, igorsutton left, liztormato joined
timotimo t.h8.lv/nativecall_logo.png - with forced white background: not terrible 20:35
20:36 liztormato left, Guest65968 left
colomon m: say "A pple".subst(/"A "/, "A", :global) 20:41
camelia rakudo-moar fe867d: OUTPUT«Apple␤»
colomon why is this not working in my code? :|
timotimo depends; what does your code look like, with what version are you executing it? 20:42
did you forget to mutate something?
colomon called it on an array 20:43
instead of a string
got the join in the wrong place.
timotimo well, in that case ... :)
vendethiel liz is crazy. In a terribly good way, but terribly crazy 20:44
timotimo :D
colomon vendethiel: that's quite well known in these parts. :)
vendethiel that's certainly known by me now ...
It was really cool, though :) 20:45
vendethiel will learn p5 later
timotimo what do you want p5 for? :P 20:46
vendethiel knowledge.
colomon what specifically was she doing that was crazy this time?
vendethiel colomon: what she did to me 20:47
20:51 moistcherry is now known as hoverboard, hoverboard left 20:52 rurban joined
xenoterracide $type.HOW.HOW.add_role( $type.HOW, Annotated ); # doesn't work but doesn't throw an error 20:52
20:53 liztormato joined
liztormato I"m pretty sure lizmat didn't do anything to vendethiel 20:54
Yet. ;-)
colomon dum dum dum.....
(that was soundtrack, mind you)
(ominous) 20:55
liztormato My turn to drive &
20:55 liztormato left, ajr_ left, atroxaper left 20:56 rurban left, atroxaper joined, virtualsue joined 21:00 atroxaper left
colomon is closing down his machine to take it to the Apple store. May be AFK for a few days. 21:03
TimToady .tell rindolf I just seem to be zigging when you're zagging, but you can always leave a PM, you don't have to ask... 21:04
yoleaux TimToady: I'll pass your message to rindolf.
21:04 igorsutton joined
TimToady is also vacating somewhat right now... 21:04
21:05 colomon left
TimToady looking at the right ocean rather than the left one... 21:05
FROGGS that sounds about right :o) 21:06
TimToady note to burglars monitoring social media: there are still people at my house :)
vendethiel dang it 21:07
I was trying to get one of your hawaiin shirts for my next presentation :s
21:07 Pleiades` left 21:08 igorsutton left
FROGGS *g* 21:09
yes, these shirts are noteworthy :o)
21:10 spider-mario left 21:11 thou joined, Pleiades` joined
TimToady mostly packed YAPC T-shirts for YAPC::NA because more of 'em fit into the suitcase 21:11
dalek rl6-bench: 0aead85 | (Geoffrey Broadwell)++ | timeall:
Fix braino in previous commit
21:12
rl6-bench: 98abcc9 | (Geoffrey Broadwell)++ | / (2 files):
Compute rates based on work instead of scale

This "unbends" plots for tests whose workload increases superlinearly with SCALE. Turned out to be a smaller diff than I expected. Half decent design FTW. :-)
21:13 molaf left
TimToady is going to be away from home both a week before and a week after YN 21:13
japhb So ... it turns out that r-m is indeed getting quite a bit faster since it was merged to the mainline. However, 2014.05 and nom both fail to execute rc-forest-fire. Might be something like bless(*), taking a look. 21:14
timotimo bless(*) was only giving deprecation messages i think 21:15
japhb Yeah, and someone already cleaned that out of the rc-forest-fire code, it looks like.
Nope, this one is a real segfault.
timotimo oh my 21:16
well, forest-fire also gives wrong results
i've asked someone to look into it, didn't have tuits to do it myself yet 21:17
vendethiel got a round tuit ... 21:18
quite literally in both senses ...
timotimo got a whole bag of 'em 21:19
but not the colored camelia ones
rurban_ parrot 6.5.0 will now also have workarounds for missing control character aliases with icu 5.2. Too many icu bugs to probe for. we just rolled our own hash for this, similar to moar
japhb "forest-fire gives wrong results"? What do you mean by that? 21:20
TimToady doesn't propagate fire, I suspect
timotimo correct
japhb that's ... odd
japhb wonders what rotted since last I looked at that
TimToady I played with that on the way to rewriting the whole thing, and ff makes certain assumptions that a set of subscripted references into another array will stay lvalues 21:21
or at least, will stay the same container
and something is replacing containers
so when it looks for surrounding fire, it finds only the original forest
timotimo oh, that'd be an oops 21:22
japhb Is there a fixed version on RC? If I'm already breaking old expectations, I might just want to pull a fresh one from upstream
TimToady the one on RC is not comparable performance-wise because it does everything in-place with an extra state
(so is much faster) 21:23
vendethiel damn, all the browser hangs on firefox still ? :( 21:24
(when one of the tab messes up, that is)
japhb TimToady: We could always have rc-forest-fire-{copying,inplace}
21:26 rurban joined
TimToady vendethiel: I'm about to give up on firefox, it consistently eats 50% of one CPU core for me 21:26
japhb As long as there were equivalent versions for all three languages, it would still give useful data.
vendethiel TimToady: I gave up about chrome. I'm not okay with it eating my privacy more and more these days
timotimo even with only nqp or only perl6 it would be helpful
21:26 atroxaper joined
vendethiel TimToady: There's NO WAY I'm gonna let a company decide which extensions I install on my browser and ask me 5$ to force me to publish it to their store 21:27
japhb vendethiel: You could always just use Chromium instead of branded Chrome.
vendethiel I really don't care at that point
with 2 videos and a livestream it's taking 10% of my cpu; which is less than chrome would take with all the tabs 21:28
japhb Part of that difference is likely the process isolation that Chrome/Chromium do. 21:29
vendethiel takes a lot of cpu for somebody like me with lots of tabs
TimToady is there any way to tell which ff tab is misbehaving other than closing it and hoping the cached tab doesn't keep running?
japhb vendethiel: Yeah, I often have hundreds. (Tabs Outliner extension)++ for making that less than insane. 21:30
21:30 rurban left
vendethiel I don't have anything to manage it because all extensions I found sucked. 21:30
21:31 atroxaper left
japhb Yeah, it took me several before I found that one. It is limited mildly by the author being paranoid (in a good way), so it won't sync the tab outline between devices automatically, but other than that I find it basically necessary. 21:31
japhb considers his next perl6-bench task, having knocked down the first 10 items on his todo list 21:33
TimToady hmm, looks like it's the Google News tab that chews most of the CPU 21:38
Any sufficiently advanced technology is indistinguishable from an 800 pound snowclone. 21:39
21:39 rurban joined, rurban left
TimToady -shouldn't-this-be-kebob-casing--o ? 21:47
it should stick out on both ends...
21:48 rurban joined 21:52 igorsutton joined 21:57 kurahaupo joined
japhb Does the apostrophe represent that piece that slid to the side while skewering, and now is just holding on by pressure from either side? 21:58
21:59 igorsutton left 22:09 thou left 22:20 xenoterracide left 22:29 atroxaper joined, zakharyas left 22:31 xenoterracide joined
dalek rl6-bench: 38589ce | (Geoffrey Broadwell)++ | analyze:
Fix relative comparisons in tabular comparison mode
22:33
22:33 mj41 joined 22:34 atroxaper left
timotimo timtoady thrres a process manager in chrome 22:34
it lists tabs with cpu and iirc also memory consumption
22:43 denis_boyun_ joined
timotimo now with proper typing: 22:47
TimToady: shift+esc will open this "task manager" thing
japhb: can you look into making this sub-module-version-thingie? 22:49
22:51 hoverboard joined, mj41 left 22:55 xenoterracide left 22:56 virtualsue left 23:04 itz left 23:15 xenoterracide joined 23:16 denis_boyun_ left 23:20 xenoterracide left 23:21 Rotwang left
carlin m: say %*CUSTOM_LIB<site home> 23:29
camelia rakudo-moar fe867d: OUTPUT«(Any) (Any)␤»
carlin the behaviour of that changed in rakudo f412f8a1e1dedba
23:30 atroxaper joined
carlin in e030a7bbbc49fb it gave CompUnitRepo::Local::Installation(/home/carlin/rakudo/install/languages/perl6/site) CompUnitRepo::Local::Installation(/home/carlin/.perl6/2014.05-175-ge030a7b) 23:30
panda's bootstrap is broken because now `for grep(*.defined, $destdir, %*CUSTOM_LIB<site home>) -> $prefix {` does nothing unless the directories already exist 23:31
vendethiel FROGGS: ping
timotimo ah, didn't lizmat or froggs make a change to not have directories show up if they don't exist on the FS? 23:32
carlin yeah I'm guessing that's what f412f8a1e1dedbaf did
timotimo so here we have a reason why we would be interested in those directories showing up 23:33
23:35 atroxaper left 23:43 liztormato joined
liztormato is home 23:43
Will fix custom lib setting tomorrow 23:44
23:44 woolfy joined
liztormato carlin: Is that soon enough? 23:45
carlin that's fine, no hurry
just something I found when trying to install panda 23:46
jnthn Glad you got back safely, liztormato :)
liztormato Thanks for the report
carlin it's easy enough to checkout an earlier revision
liztormato jnthn: It's good to be back home safely 23:47
jnthn :)
liztormato Sleep now& 23:48
23:48 liztormato left
japhb timotimo: What sub-module-version-thingie are you referring to? 23:53