Perl 6 language and compiler development | Logs at colabti.org/irclogger/irclogger_log/perl6-dev | For toolchain/installation stuff see #perl6-toolchain | For MoarVM see #moarvm
Set by Zoffix on 27 July 2018.
samcv [Tux]: curious what the performance of DBD::CSV is? and if you do any caching of indexs? 05:53
nine
.oO(The caller's language is the callsite's language - is eminently speshable)
06:10
[Tux] samcv, DBD::CSV is (for now) only implemented in perl5. I never really checked performance against other database drivers 06:26
samcv yeah i know it's perl 5 only. but was just curious
[Tux] as DBD::CSV takes all CSV in memory, I guess it also depends on how many tables/files you have and how many records each file has 06:27
samcv to be honest i just had the thought about if any database drivers were made with CSV as a backend and was gonna ask you. then i googled it and saw you wrote one :)
ah, it's fully in memory?
and you write it out at the end? it doesn't write to disk with each write? 06:28
[Tux] it might, but I don't think DBD::CSV is very useful for using it to update CSV's, it is way more useful to see a set of CSV's as a database
samcv ah i understand 06:30
[Tux] tux:/tmp 510 > wc -l xx.csv
200001 xx.csv
tux:/tmp 511 > time qscsv c f xx
SCHEMA: merijn, TABLE: xx
[.]
select count (*)
from xx
count
------
200000
3.701u 0.059s 0:03.77 99.4% 0+0k 56+0io 1pf+0w
samcv also curious if you've had a chance to use utf16 support at all 06:31
[Tux] not yet. swamped in $work
samcv ok np
lizmat Files=1255, Tests=75814, 338 wallclock secs (15.38 usr 5.23 sys + 2363.73 cusr 253.03 csys = 2637.37 CPU) 07:31
Geth rakudo: ccworld1000++ created pull request #2341:
Perl6-architecture
07:32
|Tux| Rakudo version 2018.09-72-g687a3cbb0 - MoarVM version 2018.09-123-g0191bd9cf
csv-ip5xs0.932 - 0.935
csv-ip5xs-207.314 - 7.382
csv-parser21.034 - 21.686
csv-test-xs-200.422 - 0.434
test8.011 - 8.054
test-t1.712 - 1.733
test-t --race0.793 - 0.814
test-t-2029.201 - 30.080
test-t-20 --race11.072 - 11.205
08:11
lizmat m: my constant $a = INIT now; dd $a # perhaps this should warn / explode ? 08:29
camelia Mu
nine Interesting read: nadiaeghbal.com/user-support 08:57
lizmat www.reddit.com/r/perl6/comments/9l...for_perl6/ # maybe up timotimo's alley ? 10:43
brrt brrt-to-the-future.blogspot.com/201...fork2.html 10:44
lizmat already reddited, hackernews and weekly'd that :-) 10:49
brrt really? :-) 11:20
tbrowder__ hi, folks 11:54
i'm working on some pod stuff in core and i'm going to try something with assertions in the grammar. 11:55
i would appreciate any comments on the atempt shown in the upcoming gist
gist.github.com/tbrowder/476d7e61f...1d73308731 11:56
lizmat m: CATCH -> \ex { dd ex } # why don't we allow a signature with a CATCH block ? 12:03
camelia 5===SORRY!5=== Error while compiling <tmp>
Missing block
at <tmp>:1
------> 3CATCH7⏏5 -> \ex { dd ex } # why don't we allow
expecting any of:
scoped block
lizmat m: CONTROL -> \ex { dd ex } # or a CONTROL block for that matter ?
camelia 5===SORRY!5=== Error while compiling <tmp>
Missing block
at <tmp>:1
------> 3CONTROL7⏏5 -> \ex { dd ex } # or a CONTROL block
expecting any of:
scoped block
lizmat m: LAST -> \que { dd que } # and we allow it when it *doesn't* make sense ? 12:04
camelia ( no output )
lizmat m: LEAVE -> \ex { say "leaving" } # worse, we silently don't call the phaser ? 12:05
camelia ( no output )
lizmat m: LEAVE { say "leaving" } # worse, we silently don't call the phaser ?
camelia leaving
lizmat m: dd BEGIN -> \ex { say "leaving" } # aha, it compiles as a block and returns that , hmmm 12:19
camelia -> \ex { #`(Block|65481528) ... }
lizmat m: BEGIN -> \ex { say "leaving" } # but doesn't execute it 12:20
camelia ( no output )
brrt is there a portable way to write 'is native('libc')' 12:32
rather than specifying the actual file name of libc.so.6
jnthn lizmat: Because the point of CATCH/CONTROL is to topicalize, and the exception is only handled if something `succeed`s (the idea being to use `when` to match it)
lizmat but I guess we should at least put in a warning for "LEAVE -> \foo { }" 12:34
because that will just sink the block, afaics
jnthn m: LEAVE 42 12:35
camelia WARNINGS for <tmp>:
Useless use of constant integer 42 in sink context (line 1)
jnthn Yeah, I guess a pointy block in sink context wants to be one of the things that trips that warning 12:36
Rather than it being anything special about phasers
lizmat m: -> { 42 }
camelia WARNINGS for <tmp>:
Useless use of constant integer 42 in sink context (line 1)
lizmat m: -> $_ { 42 } 12:37
camelia WARNINGS for <tmp>:
Useless use of constant integer 42 in sink context (line 1)
jnthn Hm, that's a bit dubious
It's the block that's in sink context, it's never called so the 42 isn't
So I'd argue that warning is a bit off
lizmat
.oO( blog post driven bug discovery :-)
AlexDaniel squashable6: next 13:09
squashable6 AlexDaniel, ⚠🍕 Next SQUASHathon in ≈20 hours (2018-10-06 UTC-12⌁UTC+14). See github.com/rakudo/rakudo/wiki/Mont...Squash-Day
tbrowder__ .ask moritz can you please look at my grammar gist referenced above and see if it looks reasonable? thanks! 13:49
yoleaux tbrowder__: I'll pass your message to moritz.
moritz tbrowder__: the thing that looks a bit dodgy is that you try to match a regex against a match object (and not a string) 13:51
yoleaux 13:49Z <tbrowder__> moritz: can you please look at my grammar gist referenced above and see if it looks reasonable? thanks!
moritz tbrowder__: I don't know how forgiving NQP is when it comes to that 13:52
lizmat m: { UNDO say "undone"; LEAVE say "left"; say "doing"; 0 } # shouldn't this also need to say "undone" ? 14:08
camelia doing
left
lizmat m: { UNDO say "undone"; LEAVE say "left"; say "doing"; Nil } 14:08
camelia doing
left
undone
lizmat aha... so the return value should not be definite ? 14:09
jnthn: so returning a defined value is a "successful block exit" ? 14:10
that term is used a lot in docs.perl6.org/language/phasers but never really defined? 14:11
I guess the definition is "if foo.defined" 14:12
m: { UNDO say "undone"; LEAVE say "left"; say "doing"; Failure.new } 14:13
camelia doing
Failed
in block <unit> at <tmp> line 1

left
undone
jnthn lizmat: It's a definedness test, yes 14:22
So that a Failure counts as not being successful 14:23
lizmat right
I guess I'll update the doc to elaborate on what constitutes a successful exit from a block
pmurias .tell Zoffix the question is --encoding meant to be only the encoding of the source files on the command line? 15:39
yoleaux pmurias: I'll pass your message to Zoffix.
tbrowder__ jnthn: i have 4 Gb RAM, can I speed up commaide with some increased default java VM setings? 15:48
default shows Xms128m, Xmx750m, reseved=240m 15:49
jnthn tbrowder__: Can try. There's a file under bin/comma64.vmoptions (without the 64 if you're on 32-bit) 15:53
tbrowder__ ok, any recommendations? speed seems ok after the sluggish startup... 15:54
jnthn tbrowder__: Also, if you downloaded the very latest release, we've just tracked down and fixed a performance regression affecting auto-complete and reference resolution in some projects.
tbrowder__ ok, i have 2018.9 now, i won't bother you any more for a while. thanks! 15:55
jnthn Yeah, there'll be a 2018.10 within days that addresses that :)
tbrowder__ cool, bye
jnthn Also, highlighter speedup is coming, though it's potentially disruptive enough I'm going to work on it right after the next release, so we can use it internally for a week or two before subjecting others to it. 15:57
AlexDaniel . 18:42
yoleaux 17:55Z <jmerelo> AlexDaniel: I just spend a good while debugging p6-river until I found this... github.com/AlexDaniel/foo-dependencies-self
AlexDaniel .tell jmerelo great, I'm happy to help :P 18:43
yoleaux AlexDaniel: I'll pass your message to jmerelo.
lizmat slightly disappointed that this doesn't work: 20:53
m: LEAVE say "stayed {now - ENTER now} seconds"; sleep 2
camelia stayed 0.0011323 seconds
lizmat or should it? jnthn?
it seems like the ENTER is considered to be inside the LEAVE thunk, incorrectly assuming that's a block ? 20:54
so the ENTER phaser got assigned to the wrong block ?
m: for 42 { KEEP say "keep"; $_ } # another over-eager useless use :-( 21:02
camelia WARNINGS for <tmp>:
keep
Useless use of $_ in sink context (line 1)
Zoffix . 21:16
yoleaux 15:39Z <pmurias> Zoffix: the question is --encoding meant to be only the encoding of the source files on the command line?
Zoffix ,tell pmurias that's my understanding yes. --encoding tells the compiler what encoding to use when parsing code to run (source files, EVAL, and I'm guessing `-e` too). But I'm no expert on this. This is just going off the speculations. I forget which one it was by IIRC it got something there 21:17
.tell pmurias that's my understanding yes. --encoding tells the compiler what encoding to use when parsing code to run (source files, EVAL, and I'm guessing `-e` too). But I'm no expert on this. This is just going off the speculations. I forget which one it was by IIRC it got something there
yoleaux Zoffix: I'll pass your message to pmurias.
Zoffix lizmat: no, it shouldn't. You're measuring ENTER of that block you're interpolating into the string. You should use the $() coercer to interpolate instead: 21:19
m: LEAVE say "stayed $(now - ENTER now) seconds"; sleep 2
camelia stayed 2.0013595 seconds
lizmat aaahh duh :-)
Zoffix AlexDaniel: sent out a Tweet for squashathon 21:20
lizmat m: LEAVE say "stayed " ~ (now - ENTER now) ~ " seconds"; sleep 2
camelia stayed 2.00138376 seconds
lizmat yup
tbrowder__ moritz: can i stringify it? 21:38
explicitly, or ast it? 21:39
hm or try to get the hash value for the key :V%? 21:40
:V?
but other than that, is my use of the assertion correct? 21:41
lizmat m: { POST * == 42; 666 } # too bad we don't do WhateverCode here 21:42
camelia WARNINGS for <tmp>:
Useless use of constant integer 666 in sink context (line 1)
lizmat m: { POST { $_ == 42 }; 666 } # as opposed to this 21:43
camelia WARNINGS for <tmp>:
Useless use of constant integer 666 in sink context (line 1)
Postcondition '{ $_ == 42 }' failed
in block at <tmp> line 1
in block <unit> at <tmp> line 1
lizmat hmmm... I wonder if the exception "Postcondition '{ ... }' isn't actually a security risk because it show the verbatim code of the block ? 21:48
jnthn Showing bits of source code shouldn't generally be a security risk, otherwise open source would be in trouble... :P 21:53
lizmat if it is a large piece of code, with many newlines, it will still be quoted verbatim 21:57
which may be considered at least a bit LTA ?
tbrowder__ .ask moritz assuming i get the ~~ correct, is the assertion part correct?
yoleaux tbrowder__: I'll pass your message to moritz.
jnthn lizmat: Maybe, but what'd you propose instead? 22:02
lizmat limit it to 100 characters like we do in other places, and possibly change newlines with ␤ ? 22:03
jnthn lizmat: Can do 22:06
lizmat jnthn: I can do too :-) 22:07
jnthn Yeah, but you more likely *will* do :P
lizmat yup
but not tonight... a bit groggy from non-code writing :-) 22:08
jnthn haha :) 22:09
lizmat goes off to get some sleep 22:09
AlexDaniel Zoffix: thanks! 22:33