»ö« 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/ xy z XYZ | 04:46 | ||
camelia | rakudo-moar d8cd80: OUTPUT«Asked to remove 1 spaces, but the shortest indent is 0 spaces xy 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 spacesx yz» | ||
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/pps6TzMMBqUndeclared 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«FalseTrue» | ||
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/E78570ikFwUnable to parse class definitionat /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 |