»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg p6eval perl6: ... | irclog: irc.perl6.org/ | UTF-8 is our friend!
Set by sorear on 4 February 2011.
jnthn phenny: tell pmurias !cursor_next handles it; the bstack survives and it hands back a 1 for restart, which makes the generated code jump straight to fail (and thus it backtracks and produces the next feasible cursor) 00:32
phenny jnthn: I'll pass that on when pmurias is around.
jnthn: 24 Nov 08:35Z <moritz> tell jnthn currently nqp::can(module { }, 'something') dies; that blocks my current sink efforts; any idea how to fix that?
grondilu jnthn: with zavolaj, it's not possible to send a Buf as char* string, is it? 01:01
arnsholt Nope 01:02
If you need to send arbitrary byte arrays to C, you'll have to use CArray[int] (and do the byte packing yourself) ATM 01:03
It's a known sore spot, unfortunately
TimToady bad net weather today... 06:33
Fuad Hi, folks. 07:26
sorear Heya Fuad. 07:28
moritz \o 07:35
phenny moritz: 24 Nov 23:55Z <FROGGS_> ask moritz if he can please look at github.com/perl6/nqp/commits/throw...d_metachar and github.com/rakudo/rakudo/pull/90
moritz FROGGS__: if the branch works, I'm fine with merging (I'm having trouble building NQP right now :( ) 07:40
grondilu rn: die "was expecting HOSTNAME" unless %*ENV<HOSTNAME> :exists 08:17
p6eval niecza v22-36-g19fa03a: OUTPUT«Unhandled exception: was expecting HOSTNAME␤ at /home/p6eval/niecza/lib/CORE.setting line 1443 (die @ 5) ␤ at /tmp/8pKfcfiLJQ line 1 (mainline @ 3) ␤ at /home/p6eval/niecza/lib/CORE.setting line 4211 (ANON @ 3) ␤ at /home/p6eval/niecza/lib/CORE.setting…
..rakudo 50be5d: OUTPUT«was expecting HOSTNAME␤ in block at /tmp/7I_c_99q2L:1␤␤»
dalek p: bc22f6b | (Tobias Leich)++ | src/QRegex/P6Regex/Grammar.nqp:
throwing warning from method to support typed exceptions
08:18
kudo/nom: 784cb73 | (Tobias Leich)++ | / (3 files):
throwing typed exception for unrecognized metacharacters in regexes

bumps NQP revision
08:19
moritz FROGGS__++ 08:22
dalek ast: fcc3f59 | moritz++ | S05-metasyntax/unknown.t:
robuster tests for RT #77110, #77386
08:38
moritz std: / / 09:08
p6eval std a8bc48f: OUTPUT«===SORRY!===␤Null regex not allowed at /tmp/YisX7SNB99 line 1:␤------> / /⏏<EOL>␤Check failed␤FAILED 00:00 41m␤»
dalek p: c0ddc72 | moritz++ | src/QRegex/P6Regex/Grammar.nqp:
add an indirection for "null pattern not allowed" errors
09:26
dalek kudo/nom: e6e1585 | moritz++ | / (3 files):
typed exception for "Null regex not allowed"
09:27
FROGGS__ hmmm, I got an error message when trying to do .throw_unrecognized_metachar, I had to prepend 'self' 09:28
moritz .foo defaults to $_ 09:29
$.foo calls the method on self
FROGGS: oh, I see what you mean. The difference is that I call it as a grammar rule directly, not inside a {} block
FROGGS ahh, true 09:30
sorear \o/ niecza just built from clean and passed internal tests 09:36
time to commit the new makefile &c
FROGGS sorear++ 09:37
moritz \o/
dalek ecza: 9c2a362 | sorear++ | / (6 files):
Finish bootstrapping of bootstrap changes
09:43
sorear tomorrow: some more polish. precompile system modules, add "make install" and "make boot-from-installed", steal the csharp.exe line editor (which sadly is neither readline nor editline) for the Niecza REPL 09:45
get the Niecza REPL working again
monday: v24!
2 years since the inital announcement D: 09:46
moritz wow
how time flies, and all that 09:47
moritz sorear: with parallel make, it fails with 10:03
NIECZA_KEEP_IL=1 mono boot/run/Niecza.exe --obj-dir run -I src -C GetOptLong
Unhandled exception: System.TypeLoadException: Could not load type 'NieczaGrammar.6fc92cec-63fa-4e8b-84cb-eafc7d123c95'.
serial make works
sorear -jwhat? 10:12
moritz -j4
sorear tries a fix
dalek ecza: 4eaf916 | sorear++ | Makefile:
Dependency generation fix
10:15
sorear -j2 succeeded with that
moritz tries again 10:16
speaking of which 10:18
is there any literature on how to design a build system? 10:19
I mean, tool indepent
*independent
just like there's language-agnostic literature on software construction
sorear: build succeeded with make -j4 10:21
sorear I am not aware of any, but I haven't looked very well
yay \o/
coming month: exploration for nativecall and C runtime 10:24
moritz WANT
sorear but for now, I think sleep would be prudent 10:28
&
moritz good night, sleep of parallel builds and C runtime
FROGGS wow, having nativecall in niecza too would be awesome 10:43
dalek ast: 49868a5 | (Tobias Leich)++ | S32-exceptions/misc.t:
RT #77118, test for obsolete use of diamond operator

  rt.perl.org/rt3/Ticket/Display.html?id=77118
12:03
azawawi star: say "Hello #perl6!"; 13:07
p6eval star 2012.10: OUTPUT«Hello #perl6!␤»
moritz \o 13:08
azawawi 13:11
felher Is "TEST_JOBS=8 make spectest" in Rakudo supposed to give me a "Result: PASSED"? Because I get bpaste.net/show/60263/ 13:19
moritz felher: did you build with libicu? 13:20
felher moritz: I think so. I didn't specify anything about libicu though. How do I check? 13:23
moritz $ ./install/bin/parrot_config has_icu
1
felher moritz: yep, i get a 1, too :) 13:24
moritz weird
cause I have ICU too, and all tests pass here
felher: what's the revision of your t/spec checkout? 13:25
felher moritz: top commit: 49868a5291088819db1e3a0f401b2e7c7523f97e (from today) 13:26
moritz hm, so it's not stuck 13:27
felher moritz: right 13:28
felher moritz: well, i'll do a fresh checkout of Rakudo and try again :) 13:28
felher Would someone be so kind as to review, and maybe even apply, a patch about letting Rakudo handle tabs in heredocs? This patch has some problems. One is that it always counts tabs as 8 spaces (according to spec, it should be $?TABSTOP // 8, but I didn't know how to do that, since $?TABSTOP doesn't seem to exist there). The other is that there might already be a function that counts the number of a particular 15:16
character in a string, which should be used instead of the while loop.
patch : gist.github.com/4143705/e2a5a9d41e...a3a0677391
This patch doesn't introduce any new spectest failures on my machine. 15:17
moritz felher: I believe the patch is not correct 15:36
felher moritz: how so?
moritz felher: if you have two blanks followed by a tab, that should count as an indentation of 8 spaces, not 10
felher moritz: if this is the case, then the patch is incorrect, yes. I guess i have misunderstood "Hard tabs will be assumed to be ($?TABSTOP // 8) spaces, but as long as tabs and spaces are used consistently that doesn't matter." from the specs, then? 15:38
moritz felher: a tab doesn't mean $?TABSTOP spaces, but alignment to the next multiple of $?TABSTOP 15:39
felher moritz: well, I know that this is the case in editors and such. I misunderstood the spec then, because i though the above sentence states otherwise. My bad :) 15:42
moritz: but thanks for the clarification :)
moritz felher: I guess the spec isn't very forthcoming about it
felher: the idea is simply that the parser should see the indention the same as the terminal or text editor 15:43
felher moritz: okay. I agree :) 15:44
dalek ecs: 562cc05 | moritz++ | S02-bits.pod:
[S02] clarify tabstop semantics

in accordance to how most consoles and text editors interpret them.
  felher++
15:46
felher moritz: thanks :)
dalek ast: e87efa1 | (Tobias Leich)++ | S32-exceptions/misc.t:
RT #76742, added test for 'does with type object'

  rt.perl.org/rt3/Ticket/Display.html?id=76742
16:55
dalek ast: 47eec67 | (Tobias Leich)++ | S32-exceptions/misc.t:
RT #76956, linked ticket (placeholder in mainline)

  rt.perl.org/rt3/Ticket/Display.html?id=76956
17:53
dalek rl6-bench: 6347060 | (Geoffrey Broadwell)++ | bench:
Fix missed change in previous refactor of automatic tag extraction
18:22
rl6-bench: 7b0b37f | (Geoffrey Broadwell)++ | components.json:
'make realclean' before 'make' when building niecza
rl6-bench: ce24bc6 | (Geoffrey Broadwell)++ | timeall:
Don't override niecza dir when timing it
japhb phenny, tell sorear This micro-benchmark is particularly slow on Niecza: my $s = ""; for (1 .. 100000) { $s ~= "x" } 18:25
phenny japhb: I'll pass that on when sorear is around.
japhb (Yes, I know the parens are unnecessary there. As with several of the benchmarks in perl6-bench, they exist to try to minimize the Hamming distance from the Perl 5 version.)
Actually, I guess that's Levenshtein distance. :-) 18:26
popl Leven*shteen*! 18:44
;)
sorear good * #perl6 19:14
phenny sorear: 18:25Z <japhb> tell sorear This micro-benchmark is particularly slow on Niecza: my $s = ""; for (1 .. 100000) { $s ~= "x" }
grondilu what's the syntax already for named unicode characters? 19:44
like if I want to display the 'BLACK STAR' one? 19:46
sorear n: say "\c[BLACK STAR]" 19:53
p6eval niecza v22-37-g9c2a362: OUTPUT«★␤»
grondilu sorear: thanks 19:55
FROGGS nr: say "\c[65]" 19:57
p6eval rakudo e6e158, niecza v22-37-g9c2a362: OUTPUT«A␤»
grondilu in S32/Temporal, ".truncated-to" is mentionned but in rakudo it seems to be ".truncate" 20:19
rn: say now.truncate: :day;
p6eval niecza v22-37-g9c2a362: OUTPUT«Unhandled exception: Unable to resolve method truncate in type Instant␤ at /tmp/WEFl4eCcMj line 1 (mainline @ 4) ␤ at /home/p6eval/niecza/lib/CORE.setting line 4211 (ANON @ 3) ␤ at /home/p6eval/niecza/lib/CORE.setting line 4212 (module-CORE @ 578) ␤ at… 20:20
..rakudo e6e158: OUTPUT«1353874833␤»
grondilu n: say now.truncated-to: :day;
p6eval niecza v22-37-g9c2a362: OUTPUT«Unhandled exception: Unable to resolve method truncated-to in type Instant␤ at /tmp/cNRhmvvcB5 line 1 (mainline @ 4) ␤ at /home/p6eval/niecza/lib/CORE.setting line 4211 (ANON @ 3) ␤ at /home/p6eval/niecza/lib/CORE.setting line 4212 (module-CORE @ 578) ␤…
moritz r: say DateTime.now.truncated-to(:day).Instant 20:35
p6eval rakudo e6e158: OUTPUT«Instant:1353805235␤»
moritz r: say DateTime.now.truncated-to(:day)
p6eval rakudo e6e158: OUTPUT«DateTime.new(year => 2012, month => 11, day => 25, hour => 0, minute => 0, second => 0, timezone => $*TZ)␤»
grondilu r: say .WHAT for now, DateTime.now; 20:39
p6eval rakudo e6e158: OUTPUT«Instant()␤DateTime()␤»
grondilu ok
dalek ecza: e67f09f | sorear++ | src/niecza:
Hopefully fix REPL startup crash
20:48
felher Hm, why doesn't the following die due to type errors? 21:12
r: my (Str $a, Str $b) = "blar", 3
p6eval rakudo e6e158: ( no output )
tadzik r: my Str $a = 3
p6eval rakudo e6e158: OUTPUT«Type check failed in assignment to '$a'; expected 'Str' but got 'Int'␤ in block at /tmp/_TXQVQdWz6:1␤␤»
tadzik r: my (Str $a, Str $b) = ("blar", 3)
p6eval rakudo e6e158: ( no output )
tadzik r: my (Str $a, Str $b) = "blar", 3; say $b.perl
p6eval rakudo e6e158: OUTPUT«3␤»
tadzik ok, dunno :) 21:13
FROGGS r: my (Str $a, Str $b) = "blar", 3; say $b.WHAT
felher :)
p6eval rakudo e6e158: OUTPUT«Int()␤»
FROGGS hmmm
tadzik yeah, it lies
it probably loses type checks if you declare stuff massively;
r: my (Str $a, Str $b); $a = 5; say $a.WHAT
p6eval rakudo e6e158: OUTPUT«Int()␤»
tadzik r: my (Str $a); $a = 5; say $a.WHAT 21:14
p6eval rakudo e6e158: OUTPUT«Int()␤»
tadzik r: my Str $a; $a = 5; say $a.WHAT
p6eval rakudo e6e158: OUTPUT«Type check failed in assignment to '$a'; expected 'Str' but got 'Int'␤ in block at /tmp/PkQusTacHb:1␤␤»
tadzik r: use Test; eval_dies_ok 'my (Str $a); $a = 5';
p6eval rakudo e6e158: OUTPUT«not ok 1 - ␤»
tadzik there, a testcase :)
felher I will submit a test and submit a rakudo bug tomorrow :) Now I really need to get $work done and then go to sleep :) 21:20
good night, #perl6 :)
ggoebel niecza revival, parrot green threads coming to nqp and rakudo, steady rakudo improvements... it must be Christmas again :-) 21:54
sorear o/ 21:57
japhb o/
sorear japhb: is your benchmark intended to motivate me to add ropes? :D 21:59
japhb sorear, well that would certainly be awesome, but no, it's just surprisingly out of whack with the niecza's performance on all the other benchmarks. I figured there might be some "obvious in retrospect" problem there. 22:00
Especially since I added that benchmark because *rakudo* had gotten a bad rap for its performance doing that. 22:01
(v22 niecza was taking 22x as long as 2012.11 rakudo, even after subtracting startup time) 22:02
sorear oh huh
japhb: is the behavior much different if you use a counting loop rather than a range loop? 22:03
japhb sorear, I'll check 22:04
sorear range loops are known to be silly slow in niecza
japhb sorear, well, a lot of the other benchmarks use range loops as well, and they don't display the problem to the degree this one does. 22:06
dalek rl6-roast-data: c4033a5 | coke++ | / (4 files):
today (automated commit)
22:09
japhb OK, changing 'for (1 .. 100000)' to 'my $i = 0; while ++$i <= 100000' changed the total run time from 68.443s to 55.366s (startup time is around 1.7-1.75 seconds on this machine) 22:11
Meanwhile, rakudo does the while version in 6.894 s
tadzik which benchmark is that? 22:12
japhb (rakudo 2012.11's startup time is about .74 seconds)
The concat benchmark I mentioned to sorear earlier; based on harbud3's comments on reddit
tadzik, see github.com/japhb/perl6-bench/blob/...meall#L221 22:15
d'oh! hold on, need to correct the while times for niecza above; had the wrong (slower) mono in path 22:23
[Coke]_ sorear: today, for the first time in a while, niecza failed 3352 tests. 22:24
[Coke] looks like it was on commit 4eaf916 22:25
sorear japhb: clearly there is room for optimization 22:26
[Coke]: I'll be running some spectests later 22:27
[Coke] hokay.
japhb sorear, quite. Like I said, this one was just way out of normal for the niecza's performance profile, so figured it was worth mentioning. 22:28
Huh. My supposedly faster mono build is somewhat *slower*. I wonder what's up with that?
sorear japhb: what is the profile like these days? :D
japhb sorear, In several ov the micro-benchmarks it was ~10% slower than Rakudo; in a few more, 1.6-3.7x slower, and then a couple up to 9x slower. And then this one, at 22x. 22:30
Mind you, those are all micro-benchmarks.
In the one application benchmark I have so far, it's ~ 10x *faster* than Rakudo. 22:31
So that leaves the question of what more I need to measure in the micro-benchmarks to capture why niecza is running away with the prize in the app benchmark. 22:32
FWIW, 2012.11 was a "performance jump" release for Rakudo. In several benchmarks it is now faster than all other rakudo and niecza releases in ~14 months. 22:33
sorear :( 22:34
japhb Rakudo's big slowdown right now in the microbenchmarks is while loops, which have been a problem for quite some time.
sorear where am I going to get a sense of purpose if we lose the speed edge? 22:35
japhb I suspect that since my current suite of micro-benchmarks is heavy on for-range, speeding up that pairing would win you back the crown in several, just because the slowdown of the for-range is swamping the speedup of the block's operation. 22:36
flussence before I ask a stupid question, is niecza git expected to be in a usable state right now? 22:37
oh, I was running it wrong. never mind 22:39
sorear flussence: it wasn't yesterday but it is now 22:43
flussence yeah, I had a shell alias that was doing "mono-sgen Niecza.exe" and that makes it freak out. Not sure why I had that there :)
dalek ecza: 64f16b5 | sorear++ | / (6 files):
Support multiple object directories

It is now possible to have a per-user object cache and still share precompilations of the setting and any other syste-wide installed modules.
23:11
[Coke] n: my $r; 23:50
p6eval niecza v22-39-ge67f09f: OUTPUT«Potential difficulties:␤ $r is declared but not used at /tmp/P9kGc85jpr line 1:␤------> my ⏏$r;␤␤»
[Coke] n: my $r; #ok
p6eval niecza v22-39-ge67f09f: OUTPUT«Potential difficulties:␤ $r is declared but not used at /tmp/H4RM2C2Jga line 1:␤------> my ⏏$r; #ok␤␤»
[Coke] n: my $r #ok; 23:51
p6eval niecza v22-39-ge67f09f: OUTPUT«Potential difficulties:␤ $r is declared but not used at /tmp/U7uyre1HMi line 1:␤------> my ⏏$r #ok;␤␤»
[Coke] how to disable that warning?
flussence n: my $r #ok not used
p6eval niecza v22-39-ge67f09f: OUTPUT«Potential difficulties:␤ $r is declared but not used at /tmp/AkOHgON9_l line 1:␤------> my ⏏$r #ok not used␤␤»
flussence hm.
std: my $r
p6eval std a8bc48f: OUTPUT«ok 00:00 41m␤»
flussence I dunno, it used to be a magic comment string... 23:52
[Coke] n: my $r #OK no used 23:53
p6eval niecza v22-39-ge67f09f: OUTPUT«Potential difficulties:␤ $r is declared but not used at /tmp/E1wmkYQswO line 1:␤------> my ⏏$r #OK no used␤␤»
[Coke] n: my $r #OK not used
p6eval niecza v22-39-ge67f09f: ( no output )
[Coke] flussence++
dalek ast: 5a39d8b | coke++ | integration/weird-errors.t:
avoid unused declaration warning.

  (now passes on niecza)
23:57