»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'p6: say 3;' or rakudo:, std:, or /msg camelia p6: ... | irclog: irc.perl6.org | UTF-8 is our friend!
Set by moritz on 25 December 2014.
00:06 telex left 00:08 telex joined 00:13 virtualsue left 00:30 tinyblak_ left 00:32 cognominal left 00:35 gfldex left 00:40 Mouq_ joined 00:42 Mouq left 00:48 tinyblak joined, tinyblak left 00:50 tinyblak joined 00:52 raiph left 00:56 tadzik left 00:59 tadzik joined 01:04 Mouq_ left, Mouq joined 01:08 cognominal joined 01:18 cognominal left 01:19 cognominal joined 01:23 abraxxa left
japhb timotimo: I thought I fixed the bug in that test (it was miscalculating work scaling). When's the last time you pulled perl6-bench? 01:30
yoleaux 9 Jan 2015 23:07Z <timotimo> japhb: i've put a few tell messages here that didn't go through. lookie here: irclog.perlgeek.de/perl6/2015-01-09#i_9913027
9 Jan 2015 23:11Z <timotimo> japhb: also, since the output of perl6-bench can be pretty darn verbose, maybe writing a log file automatically would be nice; otherwise i'd just get used to using tee
japhb Also, I improved the smarts in error and ^C handling, so the DWIM should be closer to WYM. 01:31
Which commands are giving you painfully verbose output? (I tried to make bench's internally generated output "about right" in terms of verbosity, but I made no attempt to limit or capture the output of commands it calls [unless I could silence them completely with no ill effects] because, well, Rakudo's IO is too immature/slow.) 01:33
But certainly auto-logging is good for a GH issue. 01:34
adu japhb: how are you doing? 01:35
japhb .tell timotimo See the top of irclog.perlgeek.de/perl6/2015-01-10 for my replies.
yoleaux japhb: I'll pass your message to timotimo.
japhb adu: Hard week at $day-job, but thankfully on the bus home now. And you? 01:36
01:36 Mouq left
adu .tell adu You are the coolest 01:36
yoleaux adu: Talking to yourself is the first sign of madness.
japhb yoleaux++
adu japhb: I'm good, I can't decide what to work on, p6-c-parser, p6-xml, or my other personal project 01:37
s
japhb is ruminating on what to work on also. 01:38
adu p6-c-parser is fresh, I last worked on it last weekend, p6-xml is old and probably needs a rewrite to work 01:39
japhb Is p6-xml pure Perl 6? Because if so, I'd say work on p6-c-parser. More net benefit for the community. 01:40
But of course, it's your decision, I'm just a bystander. ;-)
01:44 BenGoldberg left 01:49 tinyblak left 01:50 beastd left 01:56 Atr3Y0 joined
dalek p: 6071efa | (Geoffrey Broadwell)++ | t/concurrency/ (2 files):
Add parent-child and sibling-children tests for threadyield(). The interleaving threadyield() tests fail on both nqp-m and nqp-j, but this may be a case of intuitive semantics not matching true semantics.
01:57
p: 39987d8 | (Geoffrey Broadwell)++ | src/HLL/Compiler.nqp:
Merge branch 'master' of github.com/perl6/nqp
01:58 obra joined
adu japhb: yes, pure perl 01:58
japhb: is there something that does binding to libxml2?
japhb ISTR someone working on that, but if not, it should be not-painful using NativeCall. 01:59
adu Yeah, I'm pretty excited about p6-c-parser, I tried implementing my "c2drox" tool 3 different ways 02:01
(1) Clang (this was a pain because I ended up getting scope information, but not AST info), (2) Haskell + language-c module (It's complicated), and (3) Perl6 02:03
and so far only the Perl6 version works
japhb That speaks volumes. :-) 02:07
adu japhb: about Perl6? 02:08
japhb: or the other things?
japhb Yes. ;-)
02:23 rmgk is now known as Guest81108, rmgk_ joined, Guest81108 left, rmgk_ is now known as rmgk 02:24 Mouq joined 02:36 avuserow_ left 02:37 avuserow_ joined 02:43 adu left 02:52 Atr3Y0 left 03:31 noganex_ joined 03:34 noganex left
skids r: int64.^nativesize.say; int.^nativesize.say; 03:42
camelia rakudo-{parrot,moar} c5dcdf: OUTPUT«64␤0␤»
03:46 cognominal left 03:51 xinming joined 04:03 leont left 04:06 adu joined 04:17 adu left 04:31 xinming left 04:32 xinming joined 04:37 lue joined 05:09 kurahaupo left 05:16 flussence left 05:17 mr-foobar left 05:19 flussence joined 05:23 adu joined 05:30 adu left
dalek kudo-star-daily: 79d1bb6 | coke++ | log/ (9 files):
today (automated commit)
05:48
06:08 Mso150_f left 06:10 Mso150 joined 06:12 dj_goku left 06:36 Mouq left 06:38 dj_goku joined, dj_goku left, dj_goku joined 06:54 rindolf joined 07:13 khisanth_ joined 07:15 Khisanth left 07:30 xfix joined 07:31 xfix left 07:32 xfix joined, xfix left, xfix joined 07:37 darutoko joined 07:40 rindolf left 07:49 Mouq joined 07:56 xfix left
CurtisOvidPoe m: my @primes = grep {$_.is-prime}, 1, 2, * + 1 ... Inf; say @primes[^5] 08:00
camelia rakudo-moar c5dcdf: OUTPUT«␤»
CurtisOvidPoe Why doesn’t that print the first five prime numbers?
m: my @primes = grep {$_.is-prime}, 1 .. 100; say @primes[^5] 08:01
camelia rakudo-moar c5dcdf: OUTPUT«2 3 5 7 11␤»
08:02 bartolin joined
Mouq m: my @primes := grep {$_.is-prime}, 1, 2, * + 1 ... Inf; say @primes[^5] 08:12
camelia rakudo-moar c5dcdf: OUTPUT«␤»
Mouq :?
m: my @primes := grep {$_.is-prime}, 1, 2, * + 1 ... Inf; say @primes[5] 08:13
camelia rakudo-moar c5dcdf: OUTPUT«Nil␤»
Mouq ohohhoh
m: my @primes := grep {$_.is-prime}, (1, 2, * + 1 ... Inf); say @primes[5]
camelia rakudo-moar c5dcdf: OUTPUT«13␤»
Mouq ... has really low precedence
CurtisOvidPoe That doesn’t terminate on my box :( 08:15
Oh, wait, what’s that :=?
raydiak binding instead of assignment 08:16
kinda like assigning by ref in p5
CurtisOvidPoe Why does the assignment not work there? 08:17
For example, the first 10 fibonacci numbers: 08:18
my @fib = 0, 1, * + * ... Inf; say @fib[^10]
m: my @fib = 0, 1, * + * ... Inf; say @fib[^10]
camelia rakudo-moar c5dcdf: OUTPUT«0 1 1 2 3 5 8 13 21 34␤»
raydiak without it, that example eagerly attempts to get all the elems out of the lazy list to put into @primes, instead of saying that @primes *is* the lazy list
CurtisOvidPoe It works for the @fib example an the grep docs claim that grep returns a lazy list: doc.perl6.org/routine/grep 08:19
Sorry if I’m being dense, but this subtlety escapes me. 08:20
raydiak no it's a little wacky, I think parts that are supposed to be lazy currently aren't in some cases 08:21
and some of these things are gonna change somewhat with the great list refactor impending 08:22
CurtisOvidPoe Ouch. I think I’ll just leave this out of my talk, then. 08:23
raydiak but as to specifically why the one works while the other doesn't, I'm not immediately sure...maybe someone else will be more insightful, could be just something I'm fuzzy on 08:24
08:24 zoosha left
Mouq @ assignment is eager. Grep is lazy, it's just that "@foo =" tries to take all the values 08:28
m: my $primes = grep {$_.is-prime}, (1, 2, * + 1 ... Inf); say $primes[5]
camelia rakudo-moar c5dcdf: OUTPUT«13␤»
Mouq ^^ That also works 08:29
m: constant primes = grep {.is-prime}, (1, 2, * + 1 ... Inf); say primes[5]
camelia rakudo-moar c5dcdf: OUTPUT«13␤»
timotimo japhb: i just pulled changes 3c4b72a..bedc8ed after the problem i told you about; only microbenchmarks.pl and the point class benchmarks were added
yoleaux 01:35Z <japhb> timotimo: See the top of irclog.perlgeek.de/perl6/2015-01-10 for my replies.
timotimo changed* 08:30
08:30 zoosha joined
CurtisOvidPoe Mouq: but why isn’t my fib example blocking then? If assignment is eager, why doesn’t it attempt to slurp in all fibonacci numbers? 08:31
m: my @fib = 0, 1, * + * ... Inf; say @fib[^10]
camelia rakudo-moar c5dcdf: OUTPUT«0 1 1 2 3 5 8 13 21 34␤»
timotimo m: my @fib = 0, 1, * + * ... Inf; say @fib.DUMP 08:33
oh, derp %)
camelia rakudo-moar c5dcdf: OUTPUT«(signal SEGV)use of uninitialized value <element> of type Any in string context in method DUMP at /home/camelia/rakudo-inst-2/languages/perl6/runtime/CORE.setting.moarvm:1␤␤use of uninitialized value <element> of type Any in string context in method …»
timotimo m: my @fib = 0, 1, * + * ... Inf; say @fib.WHAT
camelia rakudo-moar c5dcdf: OUTPUT«(Array)␤»
timotimo m: my @fib = grep *.is-prime, (0, 1, * + * ... Inf); say @fib.WHAT
camelia rakudo-moar c5dcdf: OUTPUT«(timeout)» 08:34
timotimo yeah
CurtisOvidPoe m: multi f(Int $f) { say "Int" }; multi f(Int $f where * > 0) { say ">" }; f(3)
camelia rakudo-moar c5dcdf: OUTPUT«>␤»
timotimo grep doesn't seem to do the same "returns lazy list" thing that ... does
08:34 zoosha left
CurtisOvidPoe I was wondering why that multi example didn’t result in ambiguous dispatch. 08:35
Where do I file bugs again?
timotimo because the "where" makes the one "tighter"
much like if Dog is a subclass of Animal, having a multi for Dog and one for Animal would work
it's just we consider Animal + where to be "tighter" than just Animal
CurtisOvidPoe timotimo: nope.
m: multi f(Int $f where * < 20) { say "Int" }; multi f(Int $f where * > 0) { say ">" }; f(3) 08:36
camelia rakudo-moar c5dcdf: OUTPUT«Int␤»
timotimo nope?
CurtisOvidPoe Now I have two “wheres”, both of which are appropriate candidates.
timotimo true that
CurtisOvidPoe And my apologies for being so blunt!
timotimo we can't introspect where candidates, though
halting problem and all that ;)
i suppose we just decided to not even try
CurtisOvidPoe Which is why an ambiguous dispatch watching seems appropriate, rather than apparently picking one at random. 08:37
timotimo not at random; there's rules for which to try first
08:37 rurban joined
timotimo m: multi f(Int $f where * < 20) { say "Int" }; multi f(Int $f where * > 0) { say ">" }; f(3) 08:37
camelia rakudo-moar c5dcdf: OUTPUT«Int␤»
timotimo m: multi f(Int $f where * > 0) { say ">" }; multi f(Int $f where * < 20) { say "Int" }; f(3)
camelia rakudo-moar c5dcdf: OUTPUT«>␤»
timotimo in this case "earlier in the source wins" 08:38
CurtisOvidPoe From the perspective of a casual developer, having two multisubs, both of which are appropriate targets, should result in an ambiguous dispatch error rather than an arbitrary “earlier whens”. For example, if they’re composed in via roles, what does “earlier” mean? 08:39
Mouq m: multi f($ where {rand < .5}) {1}; multi f($) {0}; say f(3) 08:41
camelia rakudo-moar c5dcdf: OUTPUT«Internal error: inconsistent bind result␤ in sub f at /tmp/TmoIbFD0nv:1␤ in sub f at /tmp/TmoIbFD0nv:1␤ in block <unit> at /tmp/TmoIbFD0nv:1␤␤»
Mouq Uhm 08:42
I mean, I *was* trying to break things, but I didn't expect to do *that* good of a job
08:45 xfix joined
timotimo %) 08:46
raydiak don't think "arbitrary" is very accurate...it's a deliberate, specced, documented design choice...one which gives an intuitive control to the programmer to choose the winner of a tie without extra syntax or traits or such nonsense, imo 08:49
though to be fair, I completely see how that'd feel unsettling if you're used to it complaining 08:50
08:50 ab6tract joined
ab6tract CurtisOvidPoe: you seem to be fighting perl6 at every step ;) 08:50
timotimo why is this random twitter person upset about perl6 using "role" instead of "mixin" and "die" instead of "throw"? :\ 08:51
is there something especially bad about our choice of terminology there?
ab6tract m: multi sub f( Any $r ) { say ~$r }; multi sub f( Int $r ) { say ~($r ** 3) }; f("any"); f(6); 08:52
camelia rakudo-moar c5dcdf: OUTPUT«any␤216␤»
ab6tract m: multi sub f( Any $r ) { say ~$r }; multi sub f( Int $r ) { say ~($r ** 3) }; f("any");
camelia rakudo-moar c5dcdf: OUTPUT«any␤»
ab6tract m: multi sub f( Any $r ) { say ~$r }; multi sub f( Int $r ) { say ~($r ** 3) }; f(77);
camelia rakudo-moar c5dcdf: OUTPUT«456533␤»
ab6tract (okay, only one say per holler at camelia) 08:53
CurtisOvidPoe: in this example, it could already be ambigous. Int is an Any, after all
i get that your point included where clauses, but i'm not necessarily convinced that it's possible to circumvent every possible dumb a dev can dumb 08:55
sometimes you have to go to your sources and figure out why your expected behavior is not happening 08:57
that said, perhaps it could be a compile time warning
not sure what other languages with multi-method dispatch with signature constraints there are that we could compare behavior to 08:59
Mouq timotimo: That's... absurd. Of all the strange names Perl 6 keywords have, (s)he chose those?? :P 09:00
timotimo agreed
perhaps he only read the learnxinyminutes text? 09:01
Mouq perhaps 09:02
Mouq is going to try sleep again
timotimo hope it won't die! 09:03
timotimo listens to some rock and role
09:05 [Sno] left
ab6tract .tell CurtisOvidPoe some thoughts on your MMD constraint example irclog.perlgeek.de/perl6/2015-01-10#i_9913936 09:05
yoleaux ab6tract: I'll pass your message to CurtisOvidPoe.
09:07 Mouq left
jnthn timotimo: Complaining that roles are not called mixins is kinda funny, given the paper that originally defined them (though as traits) discussed how they are different from mixins. :) 09:08
09:10 ab6tract left
jnthn CurtisOvidPoe: Historical note: when I first implemented multi-dispatch constraint stuff, I *did* have it failing over ambiguity. TimToady didn't want it that way. I argued pretty hard for ambiguity; I think the arguments for the way it is now are (1) faster to pick the first that matches, and (2) where is really a way of sneaking in smart-match, and in given/when you just get first match, and keeping it this way makes it easy to refactor from giv 09:10
Time to go out. :) 09:11
09:13 mvuets joined 09:22 molaf_ joined
masak morning, #perl6 09:24
09:24 molaf left 09:30 Ab6tract joined, FROGGS__ is now known as FROGGS
nwc10 good morning for a rocket launch? 09:30
FROGGS I don't feel like launching a rocket 09:31
09:31 gfldex joined
Ab6tract .ask jnthn so then is it possible to have a pragma which would complqin at compile time in the presence of overlapping constraints? 09:32
yoleaux Ab6tract: I'll pass your message to jnthn.
09:32 jack_rabbit left 09:33 Ab6tract left 09:34 spider-mario joined
CurtisOvidPoe jnthn: Can’t talk much right now, but wanted to point out that under the current behavior, if multis are provided by roles, the order in which you consume roles now becomes important. You can sort the list of roles and break your code :( 09:36
yoleaux 09:05Z <ab6tract> CurtisOvidPoe: some thoughts on your MMD constraint example irclog.perlgeek.de/perl6/2015-01-10#i_9913936
nwc10 FROGGS: that's OK. Someone else is, so we'll watch theirs. 09:37
masak CurtisOvidPoe: note: 09:38
m: role R1 { multi method foo { say "R1" } }; role R2 { multi method foo { say "R2" } }; class C does R1 does R2 {}; C.new.foo
camelia rakudo-moar c5dcdf: OUTPUT«Ambiguous call to 'foo'; these signatures all match:␤:(C: *%_)␤:(C: *%_)␤ in block <unit> at /tmp/6v380pWpRF:1␤␤»
masak (I don't have a ready explanation for why that dispatch fails)
CurtisOvidPoe m: role R1 { multi method foo(Int $f where * > 0) { say "R1" } }; role R2 { multi method foo(Int $f where * < 10) { say "R2" } }; class C does R1 does R2 {}; C.new.foo(3) 09:41
camelia rakudo-moar c5dcdf: OUTPUT«R2␤»
CurtisOvidPoe m: role R2 { multi method foo(Int $f where * < 10) { say "R2" } }; role R1 { multi method foo(Int $f where * > 0) { say "R1" } };class C does R1 does R2 {}; C.new.foo(3)
camelia rakudo-moar c5dcdf: OUTPUT«R2␤»
masak ah, yes.
seems keyed on the order of 'does', then. 09:42
09:42 sirdancealot joined
masak which, given everything else, seems sane to me. 09:42
CurtisOvidPoe D’oh. I pasted the wrong example.
No, it’s not sane. Use a huge list of roles and someone sorts them to make it easier to read and the code breaks.
09:43 rurban left
nwc10 www.spacex.com/webcast/ -- about 3 minutes I think 09:44
09:47 sirdancealot left
masak CurtisOvidPoe: if you're arguing against that, what's the semantics you're arguing *for*? running all where clauses and failing dispatch unless there's a unique match? 09:58
FROGGS that'd be consistent what we do in the other cases, but of course very slow 10:01
masak CurtisOvidPoe: if so, I guess you also acknowledge that that would sacrifice jnthn's two identified advantages: speed and refactorability from given/when. 10:02
FROGGS psch: you remember that non-breaking space in that java source file? how can I reproduce the problem that was caused by it? 10:09
moritz has power again 10:11
masak .oO( moritz == He-Man )
masak .oO( moritz == Palpatine ) 10:12
FROGGS psch: because I can build perl6-j just fine on a 1.8.0_25
power to the people /o/
bartolin FROGGS: oh, I had that problem. it failed when I build with LANG=C 10:15
FROGGS ohh
ahh
:o)
src/vm/jvm/runtime/org/perl6/rakudo/RakudoJavaInterop.java:354: error: unmappable character for encoding ASCII 10:16
// Perl??6' .new creating a new CallFrame or something..?
got it
thanks :o)
bartolin FROGGS: no problem
10:18 vendethiel joined
moritz
.oO( build it with LANG=Java )
10:19
FROGGS ENOPROPERLANG 10:20
nine ab5tract: yes 10:22
FROGGS huh: warning: [options] bootstrap class path not set in conjunction with -source 1.7
10:25 rurban joined 10:29 kjs_ joined
moritz did anybody have trouble connecting to hack.p6c.org? 10:34
Jan 10 10:27:02 hack sshd[15696]: fatal: no matching mac found: client hmac-sha1,hmac-sha1-96,hmac-md5,hmac-md5-96,hmac-ripemd160,hmac-ripemd183@openssh.com server [email@hidden.address] [preauth]
FROGGS moritz: no problems right now
xfix I can connect easily.
moritz somebody couldn't come in, and I wonder if it was just a scripted log-in attempt or a genuine user 10:35
xfix It's probably an attacker that exploits some old security bug.
Nothing special.
FROGGS was my guess too
a user will ask for help
moritz I hope so
FROGGS :o) 10:36
moritz ok, I have the same log entries on master.p6c.org (the kvm host) to which only I have access, so it looks like password brute-forcing 10:37
10:38 rindolf joined
moritz hasn't had much time to look into ansible yet, but uses it as an automated way to apt-get update && apt-get upgrade 10:39
10:44 sirdancealot joined
dalek p: c528f06 | FROGGS++ | tools/build/Makefile-JVM.in:
allow utf8 Java source files with non-utf8 LANG
10:45
kudo/nom: a81ce33 | FROGGS++ | tools/build/ (2 files):
allow utf8 Java source files with non-utf8 LANG

Also bump nqp's revision for the same fix to nqp.
10:47
10:48 jluis joined 10:50 denis_boyun_ joined
FROGGS ==> Testing DBIish 10:56
t/30-Pg.t ............. ok
# Connect failed with error invalid connection option "database"
moritz: do you know why that happens now?
masak moritz: meant to ask yesterday. if a magic wand could be waved and suddenly a tight group of ~5 people would have tuits to work on DBIish -- what would be the priority, in your opinion? 10:57
moritz masak: reliability, docs 10:58
masak "reliability" seems relatively intangible to me. 10:59
it's the thing that comes from throwing the module around in a lot of real-world situations.
moritz well
masak and fixing the stuff that bubbles up.
moritz then that might be a priority too
I know that I got segfaults with DBIish when I last tried to build something ORM-Like 11:00
and that was < 200 LoC, iirc
masak I'm using DBIish currently. with sqlite3.
FROGGS I'm using it with Pg, no problems there
moritz well, if you want to reproduce, try the mysql backend :-)
moritz guesses he should make a habit of saying "reproduce *it*" :-) 11:01
masak my biggest beef is that every time something goes wrong -- a foreign key constraint, say -- I get the useless exception message SQLITE_ERROR, and then I have to go into the sqlite3 CLI and re-run the command to see the actual, useful error message.
>:(
moritz FROGGS: is that a new error (database)
FROGGS moritz: I had that issue in my own code like two weeks ago, and I removed the :database option... but now that I spot it in the tests, I wonder if this is a Pg or DBIish problem 11:02
so, it is about two weeks old
11:02 andreoss left
moritz FROGGS: it seems you must pass 'dbname' instead of 'database' 11:02
FROGGS: I'll add a translation step 11:03
11:04 denis_boyun_ left
dalek Iish: 1c48e85 | moritz++ | lib/DBDish/Pg.pm6:
[Pg]: Translate "database" to "dbname"
11:05
11:05 denis_boyun joined
FROGGS ohh, nice 11:05
moritz FROGGS: please test
"I have only proven it correct" 11:06
(by which I mean I haven't tried it, because I was too lazy too look up my psql credentials)
FROGGS I'll test after creating another thousand report files :o)
masak pro tip: if you want your script to be performant, do *not* make 37765 db roundtrips
moritz ... not? :-) 11:07
masak (it takes 47 m 36 s to run)
that was the simplest thing that could possibly work. I will now try to batch things a bit :)
FROGGS t/30-Pg.t ............. ok 11:12
# Connect failed with error Cannot assign to a readonly variable or a value
I'll test now my code... 11:13
moritz: same error :o(
moritz FROGGS: sorry, I guess I'll have to try and reproduce it
FROGGS Cannot assign to a readonly variable or a value
at lib/DBDish/Pg.pm6:477 (/home/froggs/dev/nqp/install/languages/perl6/site/lib/DBDish/Pg.pm6.moarvm::13)
from lib/DBDish/Pg.pm6:476 (/home/froggs/dev/nqp/install/languages/perl6/site/lib/DBDish/Pg.pm6.moarvm::86)
moritz FROGGS: does it work if you use dbname instead of 'database'? 11:14
FROGGS you can't assign to $key
moritz eeks, yes
FROGGS moritz: aye
(dbname works)
moritz has done too much p5 lately
dalek Iish: 4350020 | moritz++ | lib/DBDish/Pg.pm6:
[Pg] try again to fix :database
11:15
FROGGS ===SORRY!=== Error while compiling lib/DBDish/Pg.pm6 11:17
Two terms in a row
at lib/DBDish/Pg.pm6:476
------> my $translated = %keymap ⏏{ $key } // $key;
moritz: :P
11:17 andreoss joined
dalek Iish: 91545ab | moritz++ | lib/DBDish/Pg.pm6:
Fix typo, FROGGS++
11:17
moritz I swear I'll test it if this one didn't work
FROGGS moritz: both dbname and database work fine now :o) 11:18
moritz \o/
\o/ 11:21
11:21 virtualsue joined, denis_boyun__ joined
dalek Iish: 220f063 | moritz++ | lib/DBDish/SQLite.pm6:
[SQLite]: Report actual error message from sqlite. masak++ for reporting
11:22
masak moritz++ 11:23
moritz masak: I guess handling binary data and transactions in DBIish would be pretty important in the long run
masak aye.
11:23 denis_boyun left
masak hm, I just got an un-fun fail in the `execute` method in DBDish::SQLite 11:24
'Cannot call 'sqlite3_bind'; none of these signatures match:'
FROGGS what I don't like: 11:26
~/dev/cpandatesters.perl6.org$ time perl6-m jobs/gen-report.pl
use of uninitialized value of type Any in string context in any !cursor_init at gen/moar/stage2/QRegex.nqp:1069
use of uninitialized value of type Any in string context in method Str at /home/froggs/dev/nqp/install/languages/perl6/runtime/CORE.setting.moarvm:1
m: say Any ~~ /./ 11:28
camelia rakudo-moar c5dcdf: OUTPUT«use of uninitialized value of type Any in string context in any !cursor_init at gen/moar/stage2/QRegex.nqp:1068␤␤Nil␤»
FROGGS hmmm, off by one
(on my box too)
m: EVAL "Any ~~ /./" 11:29
camelia rakudo-moar c5dcdf: OUTPUT«use of uninitialized value of type Any in string context in any !cursor_init at gen/moar/stage2/QRegex.nqp:1069␤␤»
FROGGS there we go
11:31 denis_boyun__ left
masak dammit, why do I suddenly keep mixing up `shift` and `unshift`!? 11:32
(that was the source of my error above)
11:32 vendethiel left
masak I swear, I need to write a linter to catch *just* that error in my code. 11:32
11:32 denis_boyun_ joined
masak the error message should be "masak, you just wrote `unshift` when you meant `shift`. I, the linter, know this because you have publicly denounced the return value of `unshift` as being a scourge upon humanity" 11:33
11:36 virtualsue left, vendethiel joined 11:42 lumimies joined 11:46 kjs_ left
dalek kudo/nom: ae9a738 | FROGGS++ | src/core/Backtrace.pm:
make warnings about undefined values in regexes matches useful

before:
   perl6-m -e 'Any ~~ /./'
   use of uninitialized value of type Any in string context
   in any !cursor_init at gen/moar/stage2/QRegex.nqp:1068
   perl6-m -e 'EVAL "Any ~~ /./"'
   use of uninitialized value of type Any in string context
   in any !cursor_init at gen/moar/stage2/QRegex.nqp:1069
after:
   perl6-m -e 'Any ~~ /./'
   use of uninitialized value of type Any in string context
   in block <unit> at -e:1
   perl6-m -e 'EVAL "Any ~~ /./"'
   use of uninitialized value of type Any in string context
   in block <unit> at EVAL_0:1
11:46
11:53 kjs_ joined
moritz FROGGS++ 11:55
FROGGS and it worked, I fixed the uninitialized thing now I knew where it came from :o)
11:56 kjs_ left 12:06 Mso150_w joined, Mso150 left 12:18 telex left 12:20 telex joined 12:25 pecastro joined 12:30 rindolf left, CurtisOvidPoe left 12:33 denis_boyun_ left
masak FROGGS++ 12:33
12:33 Rounin left
masak FROGGS: wrt the "modeling jnthn's debugging skills" question yesterday -- how do you do it? how do you track down and flush out bugs? 12:34
12:37 sirdancealot left 12:40 pecastro left 12:44 sirdancealot joined 12:45 pecastro joined 12:46 jluis left
FROGGS masak: that's hard to tell... and often starts with an assumption, followed by debug statements and after locating the problem applying a possible fix 12:47
for the last fix here I pretty much new the exact fix from the beginning
12:48 virtualsue joined 12:50 rindolf joined 12:51 [Sno] joined
masak scribbles frantically 12:51
"knowing the exact fix from the beginning..." -- this is gold! 12:52
:P
12:52 Mso150_w left
masak but yes, I know what you mean. a lot hinges on prior experience, of course. 12:52
masak is thinking of putting together a resource with debugging techniques 12:53
12:55 rurban left 12:56 kjs_ joined, berekuk left
mst masak: some members of humanity *like* to be scourged, you know. 12:58
12:58 andreoss left
moritz masak, FROGGS: I've had the same experience yesterday (knowing pretty much exactly what a problem was, just by looking at the code 13:01
vendethiel
.oO( DI is just poorly reimplemented dynamic scoping )
13:03
moritz DI?
13:04 BenGoldberg joined 13:05 rindolf left
vendethiel moritz: dependency injection 13:05
moritz vendethiel: I tend to disagree, I think 13:07
vendethiel moritz: why so :P? 13:08
13:08 kaare__ left
vendethiel (of course, I'm trolling a bit on the side) 13:09
moritz vendethiel: because DI is done by providing dependencies to certain objects, not to the whole dynamic scope 13:10
13:10 BenGoldberg left, BenGoldberg joined
vendethiel okay, then not DI as in guice, but just global lolcontainers as in... too many "di frameworks" 13:10
masak moritz: re looking at the code -- I guess this is human pattern matching at its finest.
13:10 BenGoldberg left 13:11 BenGoldberg joined
masak mst: if you want all the logical bugs emerging from me mixing up `shift` and `unshift` on my mental down cycles -- fine, you have them :P 13:11
FROGGS m: say $*PERL.compiler.build-date # moritz, do you know why it won't rebuild?
camelia rakudo-moar c5dcdf: OUTPUT«2015-01-07T21:20:43Z␤»
13:15 cognominal joined
moritz ===SORRY!=== 13:16
Parrot without ICU is not supported anymore.
masak and good riddance. 13:17
moritz rakudo is rebuilt in two separate dirs to avoid downtimes
and I've fixed only one of them 13:18
FROGGS ahh, interesting 13:19
dalek albot: 4b71d20 | moritz++ | build-scripts/rebuild-rakudo-jvm.sh:
remove separate JVM rebuild script
albot: 4ee749a | moritz++ | build-scripts/rebuild-rakudo.pl:
Do not swallow error messages
13:22
13:22 leont joined
dalek albot: 3cc6850 | moritz++ | build-scripts/rebuild-rakudo.pl:
Rakudo-rebuild: clean out install dirs too
13:25
13:27 virtualsue left, rurban joined
dalek albot: 7ddba05 | moritz++ | build-scripts/rebuild-rakudo.pl:
Rakudo rebuild: no need for both File::Path qw(rmtree); and File::Remove qw(remove)
13:28
moritz [Coke]: submitted the r-p hang as RT 123579 13:37
13:38 BenGoldberg left 13:40 BenGoldberg joined 13:44 kjs_ left
masak m: module M1 { enum A is export <B C> }; module M2 { enum X is export <Y Z> }; import M1; import M2; say B 13:44
camelia rakudo-moar c5dcdf: OUTPUT«===SORRY!===␤cannot stringify this␤Error while constructing error object:Could not locate compile-time value for symbol Undeclared::Symbols␤»
masak ah, camelia is still on a commit three days ago :/ 13:45
13:51 cognominal left
psch hi #perl6 \o 13:57
masak o/
psch m: my $bytes = "foo".encode("utf-8"); say $bytes[0] ~~ Int; say nqp::isint($bytes[0]) # this confuses me a bit 13:58
camelia rakudo-moar ae9a73: OUTPUT«True␤0␤»
psch m: "foo".encode("utf-8")[0].WHAT.say 13:59
camelia rakudo-moar ae9a73: OUTPUT«(Int)␤»
psch m: my $x = 5; say nqp::isint($x)
camelia rakudo-moar ae9a73: OUTPUT«0␤»
psch oh
m: my $bytes = "foo".encode("utf-8"); say $bytes[0] ~~ Int, nqp::isint(nqp:unbox_i($bytes[0]))
camelia rakudo-moar ae9a73: OUTPUT«===SORRY!=== Error while compiling /tmp/WtfWB6XtxG␤Undeclared routine:␤ nqp:unbox_i($bytes[0]) used at line 1␤␤»
psch m: my $bytes = "foo".encode("utf-8"); say nqp::isint(nqp::unbox_i($bytes[0])) 14:00
camelia rakudo-moar ae9a73: OUTPUT«0␤»
psch nope :/
m: my $x = 5; say nqp::isint(nqp::unbox_i($x)) 14:01
camelia rakudo-moar ae9a73: OUTPUT«0␤»
14:15 silug left
moritz m: say nqp::isint(Int) 14:16
camelia rakudo-moar ae9a73: OUTPUT«0␤»
moritz m: say nqp::isint(5)
camelia rakudo-moar ae9a73: OUTPUT«0␤»
moritz m: my Int $x = 5; say nqp::isint($x)
camelia rakudo-moar ae9a73: OUTPUT«0␤»
14:17 xinming left 14:19 xinming joined
timotimo m: my int $foo; say(isint($foo)); 14:21
camelia rakudo-moar ae9a73: OUTPUT«===SORRY!=== Error while compiling /tmp/zvz66eRl6b␤Undeclared routine:␤ isint used at line 1. Did you mean 'asin', 'sinh', 'asinh', 'print'?␤␤»
timotimo m: my int $foo; say(nqp::isint($foo));
camelia rakudo-moar ae9a73: OUTPUT«0␤»
timotimo m: my int $foo; say(nqp::isint(nqp::decont($foo)));
camelia rakudo-moar ae9a73: OUTPUT«0␤»
timotimo nqp: my int $foo; say(nqp::isint(nqp::decont($foo)));
camelia nqp-jvm: OUTPUT«(signal ABRT)#␤*** Error in `java': double free or corruption (fasttop): 0x00007f1734013400 ***␤# There is insufficient memory for the Java Runtime Environment to continue.␤*** Error in `java': double free or corruption (out): 0x00007f173401a8d0 ***␤*** Error…»
..nqp-{moarvm,parrot}: OUTPUT«1␤»
timotimo mhm
14:30 zakharyas joined 14:31 silug joined
moritz timotimo: decontainering a native sounds like a bad idea to me 14:33
14:43 Sir_Ragnarok_ left 14:45 rurban left 14:47 Sir_Ragnarok joined 14:56 zakharyas left 15:08 colomon left 15:10 colomon joined 15:17 ab6tract joined
ab6tract .ask nine yes what? was that in response to a pragma which would choke/complain about overlapping signature constraints at compile time? 15:24
yoleaux ab6tract: I'll pass your message to nine.
15:30 rindolf joined 15:41 mr-foobar joined 15:45 ab6tract left
moritz m: say 'which version?' 15:50
camelia rakudo-moar ae9a73: OUTPUT«which version?␤»
masak heh. in my effort to make fewer roundtrips, I inserted so much boilerplate that I literally ran out of variables.
moritz masak: ^^ camelia is now up-to-date again
masak moritz++
moritz == SORRY! ===
No more variables available
masak got 'MVM_spesh_alloc: requested oversized block' 15:51
moritz moarvmbug!
masak which I *think* has to do with variable declarations, since that block happens to have 128 of them.
yeah; haven't been able to golf it, though.
it's part of a larger, equally ridiculous script. 15:52
moritz m: EVAL join '; ', map { "my \$v$_" }, ^256
camelia ( no output )
moritz m: EVAL join '; ', map { "my \$v$_" }, ^2560
camelia ( no output )
moritz m: EVAL join '; ', map { "my \$v$_" }, ^25600
masak yeah -- already tried that. 15:53
camelia rakudo-moar ae9a73: OUTPUT«(timeout)»
masak it seems to be a combination the number of variable declarations and blocks. 15:56
now I got the same error in a block with only four declarations... 15:57
it would be a joy to golf this, though.
bit of a surprise that it was Moar that hit a limit first, and not sqlite3 or DBIish. 15:58
16:09 rurban joined 16:10 cognominal joined
timotimo moritz: AFAIR decont is safe 16:20
as in: if it doesn't get a container, it'll No-Op 16:27
16:30 prime left
psch feels a bit like a wizard 16:33
16:33 cognominal left
psch ((Object[])parsedArgs[j])[k] != null ? ((Double)((Object[])parsedArgs[j])[k]).floatValue() : null; 16:33
because of all the casting o.o
FROGGS .oO( Java's Next Top Object ) 16:35
16:37 lumimies left
arnsholt psch: Nice one! 16:38
psch luckily i apparently just got caught up a bit in the boxing and unboxing think and i at least don't need the null check...
and the Object[] cast also has to be more specific apparently
arnsholt I've written similar code in C when doing pointer shenanigans =D
psch as long as it actually helps to get it working... 16:40
although that's not quite the final measure i think? :)
16:43 sven_123_ joined, sven_123_ left
psch arnsholt: it's part of the un-/marshalling from perl6 to java, specifically perl6 lists 16:46
colomon first smoke report of 2015. C::Parser failing today, Data::Pretty for the last three days, GD and Stats since New Year's Eve 16:47
224 modules passing their tests
FROGGS that's quite nice I think 16:49
timotimo could be better 16:50
not saying i'll do it :) 16:51
16:53 zakharyas joined 16:58 cognominal joined
masak m: module M1 { enum A is export <B C> }; module M2 { enum X is export <Y Z> }; import M1; import M2; say B 17:00
camelia rakudo-moar ae9a73: OUTPUT«B␤»
masak \o/
m: module M1 { enum A is export <B C> }; module M2 { enum X is export <B Z> }; import M1; import M2; say B
camelia rakudo-moar ae9a73: OUTPUT«===SORRY!===␤A symbol 'B' has already been exported␤»
masak I'm under the impression (from various hints in S12) that the above one should be *allowed* but that B should be "poisoned" by being imported from two different places. 17:01
does anyone have a differing view? looking to submit a rakudobug here.
masak will check why Data::Pretty is failing
m: say ("foo" => 42).gist 17:03
camelia rakudo-moar ae9a73: OUTPUT«foo => 42␤»
masak m: say ("f'oo" => 42).gist 17:04
camelia rakudo-moar ae9a73: OUTPUT«f'oo => 42␤»
masak this feels wrong to me.
dalek rl6-bench: 72eed49 | (Geoffrey Broadwell)++ | microbenchmarks.pl:
Fix for nqp version of while_pushme microbenchmark; thanks to timotimo++ for noticing that fix for perl5 and perl6 was necessary but not sufficient for nqp
japhb timotimo: That's for you. ^^
17:07 mr-foobar left 17:08 mr-foobar joined 17:11 esaym153 left 17:12 esaym153 joined
masak rakudo commit 4e67634993 by jnthn broke Data::Pretty, it seems. github.com/rakudo/rakudo/commit/4e...1bffa4f120 17:13
m: say ("foo => bar, baz" => 42).gist 17:14
camelia rakudo-moar ae9a73: OUTPUT«foo => bar, baz => 42␤»
masak can we at least agree that this is... not ideal? :P
masak feels that Perl 6 has too many types of stringification
xfix say (("foo => bar, baz" => 42) => 84).gist 17:20
m: say (("foo => bar, baz" => 42) => 84).gist
camelia rakudo-moar ae9a73: OUTPUT«(foo => bar, baz => 42) => 84␤»
masak m: say ("foo => 42 <= bar" => 5).gist
camelia rakudo-moar ae9a73: OUTPUT«foo => 42 <= bar => 5␤»
xfix m: bar + bar 17:21
camelia rakudo-moar ae9a73: OUTPUT«===SORRY!=== Error while compiling /tmp/TLb4yI4SWl␤Undeclared routine:␤ bar used at line 1. Did you mean 'bag'?␤␤»
xfix What is bar?
Oh, right, it's in quotes. 17:22
masak .oO( depends if you're a drunk or a gymnast... ) 17:23
arnsholt Does anyone have easy access to a 32-bit host with Rakudo/Moar?
xfix I have 32-bit host with Rakudo installed, but it's old version, and it uses Parrot. 17:24
psch github.com/rakudo/rakudo/pull/350 # fixes raiph++'s bug
although it's not 100% there yet, considering the .Int coercion is neccessary 17:25
but i don't have the brains anymore to put more time into it today
but it's a nearly-complete state so i figured i can PR it already :)
xfix But let's see... you want Rakudo/MoarVM.
timotimo japhb: thank you :)
psch making the .Int conversion of a utf8 unneccessary was what prompted all those attempts with nqp::isint a bit ago btw 17:30
17:30 virtualsue joined 17:32 khisanth_ is now known as Khisanth
psch hm, actually i'm not sure needing the .Int call should be a bug 17:43
17:45 [Sno]_ joined, [Sno] left, [Sno]_ is now known as [Sno] 17:46 pecastro left
psch does that fit with the typed-thinking? "when going from untyped perl6 to strictly typed java we have to say which type data should behave as" 17:49
(i'm not sure if what java does is called "strictly typed")
FROGGS arnsholt: I have 17:58
timotimo my answer to gabor's mail is correct, i hope? 17:59
do we have a good way to get rid of the for-turns-into-list-thing? 18:00
FROGGS I was thinking that only a statement level for loop would gather values 18:01
arnsholt: how can I help you?
18:04 pecastro joined 18:05 colomon left
timotimo mhm 18:05
18:10 colomon joined
lizmat good *, #perl6 18:11
I see a fail on t/spec/S19-command-line/arguments.t
FROGGS hi lizmat 18:12
lizmat $ echo 'exit(42)' | perl6 -
Could not open -. Failed to open file: no such file or directory
18:13 FROGGS_ joined
lizmat wasn't there a patch to nqp recently that would take stdin on "-" ? 18:13
psch lizmat: with FROGGS_++ nqp bump that should've come through
lizmat I pull, zapped install and rebuilt from scratch
18:13 lumimies joined
lizmat *pulled 18:14
still failing
arnsholt FROGGS: Working on a cint patch to Moar/Rakudo/NativeCall
lizmat hmmm...NQP_REVISION has two lines 18:15
trying now with the first line removed :-)
FROGGS_ O.o
arnsholt FROGGS_: So first of all, if you could just take an up to date Rakudo/Moar and run the NativeCall testsuite. What are the fails? (Pretty sure there should be some fails)
FROGGS_ ewww, my history shows: git describe >>../rakudo/tools/build/NQP_REVISION -.- 18:16
dalek kudo/nom: cf60fa8 | lizmat++ | tools/build/NQP_REVISION:
Properly update NQP revision
18:16 FROGGS left
FROGGS_ arnsholt: I've got a fresh everything, so lemme test 18:16
18:17 brrt joined
lizmat FROGGS_: after this fix, the test passes FROGGS_ ++ 18:17
FROGGS_ ahh, cool
lizmat++
arnsholt: gist.github.com/FROGGS/f7101c862a663144d92d 18:19
timotimo something about the for-loop-into-while optimization is b0rken *again* 18:25
dalek kudo/nom: 76afb6c | peschwa++ | src/vm/jvm/runtime/org/perl6/rakudo/RakudoJavaInterop.java:
Static classes won't have a constructor; honor that.

This commit fixes generation of constructor dispatch to not generate any dispatch code if we don't have constructors in the first place.
kudo/nom: 28429ec | peschwa++ | / (2 files):
Correct marshalling of listy types to Java.

  raiph++ for pointing me at this.
kudo/nom: 8f447f8 | FROGGS++ | / (2 files):
Merge pull request #350 from peschwa/jvminterop

More JVM-Interop improvements
18:27 zakharyas left 18:30 Mso150 joined
psch .tell raiph jvm-interop has seen another update. check t/03-jvm/01-interop.t in the rakudo basedir for what works now 18:33
yoleaux psch: I'll pass your message to raiph.
arnsholt FROGGS_: Cheers! I'll get back to you when I have code =) 18:35
18:36 brrt left
dalek Heuristic branch merge: pushed 16 commits to rakudo/newio by lizmat 18:52
18:54 Mso150_n joined, pecastro left, Mso150 left 18:58 kaare__ joined 19:05 KCL_ joined 19:06 rindolf left 19:15 prime joined, prime left, prime joined 19:17 adu joined
FROGGS_ arnsholt: awesome :o) 19:22
19:31 leont left 19:33 BenGoldberg left 19:36 Alina-malina left 19:41 Vlavv left 19:42 IllvilJa left 19:46 IllvilJa joined 19:49 adu left 19:51 Mso150_n left, denis_boyun_ joined, Mso150_n joined
dalek kudo/nativecall-cint: 9b0bbd2 | arnsholt++ | src/ (3 files):
Initial cint and clong implementation.
19:53
volaj/cint: 978be25 | arnsholt++ | t/05-arrays.t:
Attempt to fix t/05-arrays on 32-bit with cint.
19:54
19:54 sirdancealot left
arnsholt FROGGS_: Turns out I don't have a MoarVM commitbit, so could you build [email@hidden.address] (nativecall-cint branch) and compile NQP/Rakudo against it? 19:55
Then try running t/05-arrays.t with the resulting perl6-m (with PERL6LIB=lib)
FROGGS_ k
arnsholt Hopefully that'll fix the failures
20:00 denis_boyun_ left
FROGGS_ arnsholt: looks like it had no effect: gist.github.com/FROGGS/f7101c862a663144d92d 20:04
I pushed to a moarvm branch Justin Case 20:06
20:06 Alina-malina joined
timotimo so the fact that a function/method returning something listy and the other stuff that is in there spills over into "arguments" in perl5 ... kind of not so clever, eh? 20:07
20:08 adu joined
arnsholt FROGGS_: Bah. Back to the drawing board, then >.< 20:09
FROGGS_ :/
arnsholt Should probably set up a 32-bit VM 20:19
20:20 jack_rabbit joined, Sqirrel joined
FROGGS_ yeah, sadly I cannot make my VM available easily 20:21
20:22 rurban left
psch i'm still wondering about S09:Sized_types 20:22
synopsebot Link: perlcabal.org/syn/S09.html#Sized_types
psch that is, the "int" in "as in int on *-bit machines" - is that our int or C int 20:23
20:23 pjablons left
arnsholt FROGGS_: 'sok. It's not *that* hard, thankfully =) 20:24
FROGGS_ very true :o) 20:25
adu FROGGS_: why? 20:26
20:27 darutoko left
FROGGS_ adu: setting up a VM? because it is just about clicks and downloading images... 20:27
adu FROGGS_: have you heard of vagrant? 20:28
there are no clicks in vagrant, just TUI 20:29
FROGGS_ well, I am pretty happy with my VMs... I just cannot provide a shell account because dyndns is currently not wired up 20:30
and I am doing some server maintenance at home
20:30 raiph joined
adu FROGGS_: you might also look into openstack and noip (a dyndns clone) 20:31
FROGGS_: it also depends on what you mean by "available" 20:32
for example, exporting from VirtualBox to "ova" format might also qualify
FROGGS_ that would not work well with my poor upstream :/ 20:35
dalek rl6-roast-data: a70b3dd | coke++ | / (5 files):
today (automated commit)
20:38
20:47 xfix_ joined 20:49 xfix left 20:51 IllvilJa left 20:55 xfix_ is now known as xfix, xfix left, xfix joined
jnthn messages, pzh 20:56
yoleaux 09:32Z <Ab6tract> jnthn: so then is it possible to have a pragma which would complqin at compile time in the presence of overlapping constraints?
jnthn At compile time? No, that's the halting problem, in general. Can you use a pragma that swaps in a different multi-dispatch algo? Maybe yes. 20:57
20:58 zakharyas joined
moritz m: sqrt(4); say 42 21:00
camelia rakudo-moar 8f447f: OUTPUT«WARNINGS:␤Useless use of "sqrt(4)" in expression "sqrt(4)" in sink context (line 1)␤42␤»
21:02 IllvilJa joined
FROGGS_ jnthn: can you please give an commit bit of moarvm to arnsholt? 21:03
21:04 Mso150_n left 21:05 Mso150_n joined
timotimo i'm kinda sad arane disappeared from the face of the earth :( 21:07
21:08 BenGoldberg joined
moritz who or what is arane? 21:09
raydiak guesses github.com/BizarreCake/Arane 21:10
vendethiel yes
jnthn masak: See discussion on the Pair.gist change around the time the commit happened; there was some consensus here on channel that .gist should not do the same as .perl on Pair.
21:12 telex left
masak I will read the discussion. 21:13
21:14 telex joined
jnthn masak: The generalization, though, is that .gist of aggregate data structures should really be .gist-ing the stuff inside of them. 21:15
timotimo jnthn: can you believe the optimization that turns for into while if you pass ranges to it is broken *again*?
jnthn :/
What on earth broke it this time?
timotimo no clue
jnthn: and somehow it seems like for loops give lists even in void context or something?!
jnthn FROGGS_: Done. 21:16
FROGGS_ jnthn++ # :o)
arnsholt jnthn: Cheers!
FROGGS_ commit all the things! /o/
jnthn c5e7a7783d1 was the last commit that touched the optimization, afaict 21:17
21:20 ssutch joined 21:25 adu left 21:26 Alina-malina left 21:38 kjs_ joined
masak today's success story: got the running time of my script down from 47 minutes to 3.5, by aggressively batching database calls: gist.github.com/masak/0714a0d412f2ab4e5f12 21:41
colomon moritz++ 21:42
masak (the number of database roundtrips went down from 38k to 149)
ugexe when an nqp module (in this case ModuleLoader.nqp) errors, but was invoked from perl6 code and CATCH'd, should the error be output twice?
m: try { EVAL q{ require No::Such::Module; }; CATCH { say $_.perl } }
camelia rakudo-moar 8f447f: OUTPUT«X::AdHoc.new(payload => "Could not find No::Such::Module in any of: /home/camelia/rakudo-inst-2/languages/perl6/lib, /home/camelia/rakudo-inst-2/languages/perl6")␤Could not find No::Such::Module in any of: /home/camelia/rakudo-inst-2/languages/perl6/lib,…»
psch m: try { EVAL 'require No::Such::Module'; CATCH { default { .perl.say } } } 21:43
camelia rakudo-moar 8f447f: OUTPUT«X::AdHoc.new(payload => "Could not find No::Such::Module in any of: /home/camelia/rakudo-inst-2/languages/perl6/lib, /home/camelia/rakudo-inst-2/languages/perl6")␤»
psch ugexe: CATCH { } doesn't mark the exception as handled
ugexe oh
psch ugexe: CATCH is kinda-sorta much given $! { }
s/much//
and matching with a when marks the exception as handled 21:44
jnthn Right, you smart-match inside it. CATCH { default { } } is the "swallow everything"
ugexe makes sense. i got confused when EVAL{ fail "fail" } and die; only output 1 error, but now i see why :) 21:46
21:46 xfix left 21:52 andreoss joined 21:53 broski joined
jnthn 'night, #perl6 21:55
colomon o/
psch \o
broski how is perl6 coming along? 21:56
raiph m: for Array, Buf, List { for .new(1,2) { say .WHAT }} # Why do objects created by punning Buf role fail to iterate?
yoleaux 18:33Z <psch> raiph: jvm-interop has seen another update. check t/03-jvm/01-interop.t in the rakudo basedir for what works now
camelia rakudo-moar 8f447f: OUTPUT«(Int)␤(Int)␤(Buf)␤(Int)␤(Int)␤»
raiph broski: hi 21:57
broski hey how's it goin raiph
raiph great. what langs do you use atm? 21:59
(so I can better answer your first Q)
broski well 22:00
ruby, php and perl
raiph the latest versions of all those are all solid; P6 is still immature 22:02
m: 'have you tried using P6 yet?'.say 22:03
camelia rakudo-moar 8f447f: OUTPUT«have you tried using P6 yet?␤»
22:03 ab5tract joined
broski no I have not 22:04
masak is ('str',) the idiomatic way to pass a list of one element to a routine expecting something list-y?
ab5tract raiph: imho, perl 6 core devs are being a bit too conservative
masak <str> obviously doesn't work, since it's not a list.
ab5tract p6 isn't quite finished
22:05 Mso150 joined, Mso150_n left
ab5tract but calling her immature all the time is only going to cause self-esteem issues 22:05
it's not 2009 anymore :)
masak in other news, ruby, php and perl 5 aren't quite finished either... 22:06
raiph broski: I just finished an update of the sidebar of reddit.com/r/perl6; I'd appreciate feedback
masak also, speak for yourself about self-esteem issues. I've been using Perl 6 for 10 years now. :P feeling pretty good about it.
broski ok 22:07
raiph: you can have dashes in the subroutine names?
masak yes.
psch raiph++ # sidebar looks great
broski nice!
ab5tract masak: i'm not talking about any of our self-esteems there :P 22:08
masak m: sub foo-bar { say "OH HAI" }; foo-bar
camelia rakudo-moar 8f447f: OUTPUT«OH HAI␤»
vendethiel masak: that's a bit easy ;-)
(saying that those aren't finished)
masak: <str> *should* work, shouldn't it?
raiph psch++ # I've tested the jvm fix, thx, will update the SO post tomorrow
masak vendethiel: no :( 22:09
vendethiel masak: well, I mean -- you should have all the methods you need to treat it as a list, shouldn't you? 22:10
(I do know it retursn a string, and I do disagree with it :(.)
masak vendethiel: it definitely doesn't work now, and I don't believe it's meant to ever work :/
vendethiel masak: what's missing? 22:11
ab5tract m: <this that>.WHAT.say 22:12
camelia rakudo-moar 8f447f: OUTPUT«(Parcel)␤»
raiph m: for Array.new(1,2), Buf.new(1,2) { say .WHAT } # rakudobug? specbug? 22:13
camelia rakudo-moar 8f447f: OUTPUT«(Int)␤(Int)␤(Buf)␤»
ab5tract masak: that implies to me that it should be cleaned up in the GLR
but i'm not a 10 year user like you, so what do i know
broski m: "hey there".say 22:14
camelia rakudo-moar 8f447f: OUTPUT«hey there␤»
masak ab5tract: that's not what GLR is meant to do.
broski :) 22:15
masak ab5tract: both you and vendethiel seem to assume something is wrong here and needs fixing.
ab5tract Parcel is going away, right?
psch raiph: i'm unsure about my reasoning re: "how much autoconversion does jvm-interop do", which is part of the problem with the CRC32.update call
vendethiel masak: something "not working" seems to be missing something, yes
masak vendethiel: what's missing is the requisite conditions for a successful dispatch. `<str> !~~ Positional`
broski raiph: sidebar looks good
ab5tract masak: needing to ("something",) to get list sounds pretty wrong to me 22:16
vendethiel that makes sense
psch raiph: the problem is that utf8 elements aren't ints, but they can be if they have to. either way seems horrid to me, fwiw
vendethiel yes, I don't see the point of having both 'str' and <str>, just confusing
psch on the one hand we verbosify everything by demanding explicit type annotation for interop, on the other hand we ambiguate (nearly) every call with powerful autocasting...
it's just too Cool... :) 22:17
broski so I'm wondering, how far along is Perl6 from being a "mature" language? or maybe more simply, a production ready language
ab5tract and if <this' semantics> is to return a Parcel, it seems like a great time to get it to be a List regardless of length
vendethiel broski: I used it in production a month after discovering it :p. pretty good for most of my command-line needs 22:18
masak 'night, #perl6
psch night masak \o
broski g'night 22:19
ab5tract ciao masak 22:20
m: <this>.WHAT.say
camelia rakudo-moar 8f447f: OUTPUT«(Str)␤»
ab5tract m: <this other>.WHAT.say
camelia rakudo-moar 8f447f: OUTPUT«(Parcel)␤»
raiph broski: It's recently been declared about one year from "official launch for production use"
ab5tract that just doesn't feel right
broski raiph: VERY cool 22:21
raiph ab5tract: the Parcel thing or the launch date?
broski vendethiel: sweet, I'm going to be using it here very shortly
ab5tract raiph: that the return type of <this syntax> varies depending on the number of elements 22:22
22:22 Vlavv joined
psch S02:Rational_literals 22:22
synopsebot Link: perlcabal.org/syn/S02.html#Rational_literals
ab5tract i actually think perl 6 should not be considered immature at this point (though i'm afraid i offended masak in how i worded it)
psch that also doesn't seem there yet 22:23
m: < 1/2 >.WHAT.say
camelia rakudo-moar 8f447f: OUTPUT«(Str)␤»
psch m: my $x = < 1/2 >; $x.WHAT.say
camelia rakudo-moar 8f447f: OUTPUT«(Str)␤»
ab5tract broski: as you can tell, some details are yet to be worked out :)
but that also has to do with the enormous scope of the language 22:24
i've found that it's certainly ready to inspire a lot of joy in hacking :)
psch (enormous scope of perl6)++
github.com/masak/ipso/blob/master/lib/Ipso.pm 22:25
seriously
masak++ for writing that
that's not doing the scope justice, fwiw
because it strongly focuses on grammars
vendethiel ab5tract: why not :)? 22:26
ab5tract why not consider it immature? 22:27
vendethiel because I've used it to great success 22:28
I don't mean it's not immature. there are big chunks missing.
I can do without those
raydiak (imo) maturity is not a boolean, or even a scalar...more like a spectrum; and yes we have a much wider range to cover in our spectrum than most :) but the area under the curve is getting pretty big 22:29
ab5tract it seems i'm not suited for discussing things at the moment, because what i am saying is "stop calling perl 6 immature"
or, imho, that shouldn't be how one words it 22:30
but i've managed to confuse vendethiel and offend masak, so i'm doing something wrong
vendethiel I'm not confused -- I hear ya :). But I disagree with that it's not production ready
that it's still immature is a given. it's still slow, a bit buggy and incomplete 22:31
ab5tract never said it wasn't production ready. and calling a 14 year old language that has more features already working than any other language i have ever heard of
just doesn't make sense to me 22:32
raydiak didn't read the backlog before he typed; was just jumping in as per usual :)
vendethiel havn't you met c++ yet? or scala :P
or maybe ada... hehehe
psch ab5tract: 14 year olds can produce works that benefit society - it's still justifiable to call these 14 year olds immature
i think that's part of the semantic argument here
timotimo on the other hand, a few things that other languages definitely do have don't work fully awesomely yet
i'm still pretty hype for the great list refactor 22:33
ab5tract fair points. all i'm saying is calling the language immature at the same time as promising a production-ready release within 12 months 22:35
is cognitive dissonance of a higher order
22:35 KCL_ left
vendethiel eeh? 22:36
ab5tract but then again, we all have our own interpreters parsing these things, so my mileage certainly varies
vendethiel I'd say php is only coming of age these last 2 years
timotimo and JS?
raiph tinyurl.com/AQuestionOfBelief
22:36 yoleaux left
ab5tract JS is geriatric. it's stuck. maybe in 10 years people will get to use ECMA 6 universally, if then 22:37
vendethiel has work on coffee and ls, so is obviously biased
22:38 donaldh joined
psch raiph++ 22:38
vendethiel haha :D
psch that reminded me of "The Birth And Death Of JavaScript" by destroyallsoftware
www.destroyallsoftware.com/talks/t...javascript 22:39
the talk postulates a future where javascript is run on the hardware and all legacy code on top of it is emulated
which is kind of what we're doing with perl6, except not quite down at the hw layer 22:41
22:42 zakharyas left
vendethiel even in vghs, they javascript! i.imgur.com/t558RJt.png 22:42
timotimo VGHS <3 22:44
ab5tract there is a difference between an immature language and an immature use of that language. all i've meant to say is that telling prospective users that perl 6 is immature (again, imo) makes it sound a lot less usable than it really is
and in the year where there are guarantees of production-readiness floating around, it just seems like a poor way to phrase the current state of progress 22:45
andreoss is there a flattering comma or something?
timotimo flattening depends on what a listy thing "is in" 22:46
as in: is it inside a scalar container?
vendethiel ab5tract: what should we call it :)?
raiph andreoss: you, are, so, cute?
timotimo ooooh
now i get it
ab5tract "getting there" :)
andreoss @a, @b, @c - == @(@a.list , @b.list, @c.list) 22:48
22:48 Alina-malina joined
andreoss that's what i want 22:48
psch "flattening comma" i think?
andreoss am i being misunderstood? 22:49
psch there was talk about this a during APW i think, but iirc it was discarded
andreoss: i'm not sure. what are you trying, how does it not conform to your expectation?
ab5tract andreoss: "is there a flattering comma or something?" :)
andreoss (@a, @b) doesnt give all of @a combined with all of @b 22:50
psch ooh
that's X
m: my @a = 1,2,3; my @b = <a b c>; say @a X @b
camelia rakudo-moar 8f447f: OUTPUT«1 a 1 b 1 c 2 a 2 b 2 c 3 a 3 b 3 c␤»
psch m: my @a = 1,2,3; my @b = <a b c>; .say for @a X @b
camelia rakudo-moar 8f447f: OUTPUT«1␤a␤1␤b␤1␤c␤2␤a␤2␤b␤2␤c␤3␤a␤3␤b␤3␤c␤»
psch m: my @a = 1,2,3; my @b = <a b c>; .say for @a X~ @b
camelia rakudo-moar 8f447f: OUTPUT«1a␤1b␤1c␤2a␤2b␤2c␤3a␤3b␤3c␤»
psch the last on is most illustrative
ab5tract psch: i don't think that is what andreoss meant 22:51
psch andreoss: does that help? :)
andreoss by combined i didnt mean real combinations
psch ab5tract++ # better at understanding than me
andreoss , (comma) between arrays makes an array of arrays 22:52
i want an array of elements of those arrays
ab5tract well, i still don't think i get the problem :)
m: my @a = 1,2,3,4; my @b = <yes well why not>; my @c = @a,@b; @c.say 22:53
camelia rakudo-moar 8f447f: OUTPUT«1 2 3 4 yes well why not␤»
timotimo m: my @a = 1,2,3,4; my @b = <yes well why not>; my @c = @a,@b; @c.perl.say
camelia rakudo-moar 8f447f: OUTPUT«Array.new(1, 2, 3, 4, "yes", "well", "why", "not")␤»
ab5tract andreoss: is that not what you are talking about? :/
andreoss m my @a = 1..2; my @b = 3..4; my @c = 5..6; (@a, @b, @c).perl.say 22:54
m: my @a = 1..2; my @b = 3..4; my @c = 5..6; (@a, @b, @c).perl.say
camelia rakudo-moar 8f447f: OUTPUT«(Array.new(1, 2), Array.new(3, 4), Array.new(5, 6))␤»
ab5tract hmm, ranges seem to itemize 22:55
andreoss ab5tract: without array context it does not flatten arrays
ab5tract ok i think i get you now 22:56
andreoss i does not matter if it's ranges or not
it
ab5tract indeed
raiph m: my @a = 1, 2; my @b = 3, 4; (@a; @b).WHAT.say 22:57
camelia rakudo-moar 8f447f: OUTPUT«(LoL)␤»
psch m: my @a = 1..2; my @b = 3..4; my @c = 5..6; @(@a, @b, @c).perl.say
camelia rakudo-moar 8f447f: OUTPUT«(1, 2, 3, 4, 5, 6).list␤»
raiph LoL is List of List
psch wants to say "GLR"
although i suppose flattening just because it's a list context is actually the wrong approach 22:58
andreoss psch: i know about @(), i've stated it as an example of what i need
psch because it's the hard-to-get-right perl5 behavior
andreoss: yes, i'm just checking :)
ab5tract i guess my question is, what's making you uncomfortable about @() ?
22:59 kjs_ left
andreoss ab5tract: it's ugly 22:59
22:59 kjs_ joined
ab5tract then use .list ;) 22:59
but seriously, i agree with psch here
andreoss ab5tract: it still need parenthesis for that 23:00
raiph andreoss: what about LoLs? (see my one liner above) 23:01
psch m: my @a = 1..2; my @b = 3..4; my @c = 5..6; @($@a, $@b, $@c).perl.say # what i think i'd want to happen
camelia rakudo-moar 8f447f: OUTPUT«([1, 2], [3, 4], [5, 6]).list␤»
psch without the explicit @() and $'s, that is
oh wait, that does happen 23:02
raiph m: my @a = 1..2; my @b = 3..4; my @c = 5..6; $(@a, @b, @c).perl.say
camelia rakudo-moar 8f447f: OUTPUT«$(Array.new(1, 2), Array.new(3, 4), Array.new(5, 6))␤»
psch yeah, what i meant to say was that @() shouldn't flatten into the contained arrays 23:03
raiph m: my @a = 1..2; my @b = 3..4; my @c = 5..6; (@a, @b, @c).perl.say
camelia rakudo-moar 8f447f: OUTPUT«(Array.new(1, 2), Array.new(3, 4), Array.new(5, 6))␤»
psch but then i didn't have a long discussion in person with a bunch of smart people about this kind of stuff, so....
raiph psch: but that's what $() does, right?
m: my @a = 1..2; my @b = 3..4; my @c = 5..6; @(@a, @b, @c).perl.say
camelia rakudo-moar 8f447f: OUTPUT«(1, 2, 3, 4, 5, 6).list␤»
raiph (see above) 23:04
psch raiph: doesn't that seem overloaded? i.e. @() flattening everything and () being $()?
andreoss m: sub infix:<+++>(@xs, @ys) { @(@xs, @ys).list; }; say (1,2,3) +++ (5,6,7)
camelia rakudo-moar 8f447f: OUTPUT«1 2 3 5 6 7␤»
ab5tract psch: () and $() are different. the former is a list, the latter is an item
andreoss why no such thing in perl6?
perl5 gets rid of @{} stuff, perl6 introduces it back with @(). 23:05
psch ab5tract: ooh, right. $() fits into @a[0], () fits into @a, @() flattens into @a 23:06
23:06 donaldh left
psch yeah, i guess it's pretty clever how it is already... :) 23:06
m: say ((1,2,3), (4,5,6)).perl 23:08
camelia rakudo-moar 8f447f: OUTPUT«((1, 2, 3), (4, 5, 6))␤»
psch m: say @((1,2,3), (4,5,6)).perl
andreoss psch: about I exampled what I meant by flattening comma
camelia rakudo-moar 8f447f: OUTPUT«((1, 2, 3), (4, 5, 6)).list␤»
andreoss @a +++ @b +++ @c looks much better @(@a.list, @b.list, @c.list).list 23:09
23:09 ab5tract left 23:13 ab5tract joined
ab5tract but you are totally overdoing it 23:13
i imagine your example is hyperbole
because to me, @( @a, @b, @c ) is far cleaner 23:14
especially because i can't really imagine using a list of arrays outside of an actual expression
which implies context 23:15
which generally takes care of the flattening or not 23:16
23:17 IllvilJa left
ab5tract m: sub f(*@z) { @z.perl.say }; my @a = 1..3; my @b = 4..6; my @c = 7..9; f( @a, @b, @c ).say 23:17
camelia rakudo-moar 8f447f: OUTPUT«Array.new(1, 2, 3, 4, 5, 6, 7, 8, 9)␤True␤»
ab5tract m: sub f(**@z) { @z.perl.say }; my @a = 1..3; my @b = 4..6; my @c = 7..9; f( @a, @b, @c ).say
camelia rakudo-moar 8f447f: OUTPUT«(1, 2, 3; 4, 5, 6; 7, 8, 9)␤True␤»
ab5tract andreoss: i have the feeling that i am missing something important about your use case :( 23:18
andreoss ab5tract: @a, @b in perl5 always do the one right thing 23:20
i.e makes one array of elems of those 23:21
ab5tract if you are in list context, yes 23:22
raydiak generally I thought it was the job of the receiving thing to determine that it needs to flatten its input, so the tree information is preserved as long as possible b/c it's a one-way transfromation (discards the tree structure)
ab5tract raydiak: precisely.
raydiak so if you have a hard time getting implicit flattening where it's ddesigned to not be, I'm not surprised
once you use it somewhere that knows how to use it, it will/*should* flatten when appropriate...e.g. so a sub's signature can control if/how/when that happens 23:23
ab5tract andreoss: it seems to me that your +++ helper sub will do the job fine for you 23:24
23:24 IllvilJa joined
ab5tract if you are asking that comma should always flatten 23:24
then i would suggest enjoying the [infix-operator-goes-here] syntax more 23:25
andreoss yep. [+++] @a,@b,@c
raydiak m: my @a = 1..3; my @b = 4..6; ([,] @a, @b).perl.say # don't even need +++ at that point 23:26
ab5tract m: @a = 1..3; @b = 99..102; [+] @a, @b
camelia rakudo-moar 8f447f: OUTPUT«(1, 2, 3, 4, 5, 6)␤»
rakudo-moar 8f447f: OUTPUT«===SORRY!=== Error while compiling /tmp/u8QO1RLQiQ␤Variable '@a' is not declared␤at /tmp/u8QO1RLQiQ:1␤------> @a⏏ = 1..3; @b = 99..102; [+] @a, @b␤ expecting any of:␤ postfix␤»
23:27 mvuets left
ab5tract m: my @a = 1..3; my @b = 99..102; [+] @a, @b # already does what you would expect andreoss 23:27
camelia ( no output )
ab5tract m: my @a = 1..3; my @b = 99..102; say [+] @a, @b # already does what you would expect andreoss
camelia rakudo-moar 8f447f: OUTPUT«408␤»
ab5tract m: my @a = 1..3; my @b = 99..102; say [(+)] @a, @b # but does the right thing when you want a set operation 23:28
camelia rakudo-moar 8f447f: OUTPUT«bag(1, 2, 3, 99, 100, 101, 102)␤»
23:28 kaare__ left
andreoss raydiak: thanks, it never occured to me. 23:28
but why [,] @a, @b, @c does not equal @a, @b, @c 23:29
i see probably because , is used twice
ab5tract right, you are applying an operator onto a LoL, whereas @a, @b, @c is just the LoL 23:31
at least, that's how i read it
anyway, i should be going 23:32
i hope that helps andreoss
raydiak \o ab5tract
23:32 andreoss left
ab5tract ciao raydiak 23:32
23:33 ab5tract left 23:38 yoleaux joined, ChanServ sets mode: +v yoleaux 23:39 kjs_ left, andreoss joined
andreoss multi foo([]){say "Empty"}; my @x = 1...*; foo(@x); 23:40
m: multi foo([]){say "Empty"}; my @x = 1...*; foo(@x);
camelia rakudo-moar 8f447f: OUTPUT«Empty␤»
andreoss is it a bug?
psch m: multi foo(5) { say "five" }; foo 17 23:43
camelia rakudo-moar 8f447f: OUTPUT«Cannot call 'foo'; none of these signatures match:␤:(Int $ where { ... })␤ in sub foo at /tmp/kedeeBh9ro:1␤ in block <unit> at /tmp/kedeeBh9ro:1␤␤»
psch andreoss: some kind of bug, maybe. i'm not sure
23:44 ab5tract joined
ab5tract that does seem weird 23:44
(can't help but refresh irc logs, it seems)
raydiak I'd expect that to be a bug...an infinite array certainly does not have 0 elements
ab5tract the signature seems weird to me 23:45
raydiak m: multi foo([]){say "Empty"}; my @x = 1...2; foo(@x);
camelia rakudo-moar 8f447f: OUTPUT«Cannot call 'foo'; none of these signatures match:␤:(@ ())␤ in sub foo at /tmp/Gpwo3PLm98:1␤ in block <unit> at /tmp/Gpwo3PLm98:1␤␤»
ab5tract m: multi sub f([]) { say "why..." }; f([4,3,2]}
camelia rakudo-moar 8f447f: OUTPUT«===SORRY!=== Error while compiling /tmp/SE0w_KhYZv␤Unable to parse expression in argument list; couldn't find final ')' ␤at /tmp/SE0w_KhYZv:1␤------> ti sub f([]) { say "why..." }; f([4,3,2]⏏}␤»
ab5tract m: multi sub f([]) { say "why..." }; f([4,3,2])
camelia rakudo-moar 8f447f: OUTPUT«Cannot call 'f'; none of these signatures match:␤:(@ ())␤ in sub f at /tmp/YRhJxaTzVP:1␤ in block <unit> at /tmp/YRhJxaTzVP:1␤␤»
raydiak m: multi foo([$a, $b]){say "$a $b"}; my @x = 1...2; foo(@x);
camelia rakudo-moar 8f447f: OUTPUT«1 2␤»
psch ab5tract++ # obsessive clog reading 23:46
ab5tract :)
okay, out now for realz 23:47
<3, #perl6
23:47 ab5tract left
vendethiel uh. interesting. i thought it was the "collapsing of list is made at call-time" but it doesn't seem like it 23:48
andreoss psch: where do i report it? (besides here) 23:50
raydiak andreoss: github.com/rakudo/rakudo#reporting-bugs 23:51
23:51 adu joined 23:52 spider-mario left
andreoss p6: say $*VM 23:58
camelia rakudo-moar 8f447f: OUTPUT«moar (2014.12.4.g.7.e.95.c.5)␤»
..rakudo-parrot 8f447f: OUTPUT«parrot (6.10.0)␤»
andreoss p6: multi foo([]){say "Empty"}; my @x = 1...*; foo(@x);
camelia rakudo-{parrot,moar} 8f447f: OUTPUT«Empty␤»