»ö« 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«640» | ||
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:1use 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«any216» | ||
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:1068Nil» | ||
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 thisError 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«True0» | ||
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/WtfWB6XtxGUndeclared 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/zvz66eRl6bUndeclared 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/TLb4yI4SWlUndeclared 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«1a1b1c2a2b2c3a3b3c» | ||
psch | m: my @a = 1,2,3; my @b = <a b c>; .say for @a X~ @b | ||
camelia | rakudo-moar 8f447f: OUTPUT«1a1b1c2a2b2c3a3b3c» | ||
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/u8QO1RLQiQVariable '@a' is not declaredat /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_KhYZvUnable 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» |