»ö« 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:04 spider-mario left 00:21 cognominal joined, skids joined 00:26 frew joined
TimToady masak: your premise "expressions are the only things that can call macros" is a bit suspicious to me; I think any protoregex can dispatch to a macro defined in its slot, with the surrounding expectations maintained, since each such protoregex manages its own little lexer 00:29
and quasi interpolations can be handled much the same way, as little (presumably parameterless?) macro calls from the quasi parser 00:31
for regex that are not proto, I think you have to rely on method shadowing, and fallback to the standard one if your special one doesn't match 00:33
but most macros will want to fit into an existing grammatical category 00:34
TimToady heading out to craigslist's (belated) holiday party, which got stormed in December... 00:35
afk &
adu TimToady: what is the secret to Perl6 understanding? 00:36
Mouq Zen & The Art of Perl6 Hacking 00:37
00:39 rurban left
b2gills adu: it may be too early yet for anyone to have figured it out completely 00:40
adu b2gills: or maybe the answer is "42" 00:41
00:59 raiph joined
b2gills m: say "Life, the Universe, and Everything".WHY 01:03
camelia rakudo-moar c5dcdf: OUTPUT«42␤»
01:08 yeahnoob joined 01:15 tinyblak left 01:16 tinyblak joined 01:19 Mso150_p joined, Mso150 left 01:20 tinyblak left 01:21 dayangkun joined, dayangkun left 01:39 cognominal left 01:57 cognominal joined 02:07 cognominal left 02:16 BenGoldberg joined 02:19 cognominal joined
dalek p: 5bda620 | (Geoffrey Broadwell)++ | t/concurrency/02-lock.t:
Remove LTA error comment since psch++ fixed the error
02:22
02:23 rmgk_ joined, rmgk left, rmgk_ is now known as rmgk
JimmyZ .tell japhb I updated the pull request. 02:29
yoleaux JimmyZ: I'll pass your message to japhb.
japhb JimmyZ: Ah, OK, I'll take a look 02:38
yoleaux 02:29Z <JimmyZ> japhb: I updated the pull request.
dalek rl6-bench: d2f48ad | (Jimmy Zhuo)++ | / (6 files):
Add Point class benchmark
02:44
rl6-bench: 90c07ed | (Jimmy Zhuo)++ | / (3 files):
Update Point class benchmark, add multi method version for NQP, because it's 2x slow, but Perl 6 multi method version one is the same speed
rl6-bench: a2cd0bd | (Jimmy Zhuo)++ | / (9 files):
adjust point-class-add*
rl6-bench: 25425c0 | japhb++ | / (9 files):
Merge pull request #16 from zhuomingliang/master

add point_class_add
02:49 andreoss joined
andreoss is there one more way to do "take while" than gather while ... { take }? 02:51
JimmyZ @a = []; while ... { $a.push: ... } ? 02:53
s/$/@/
adu oo 02:54
ppl
or commits, I'm not quite sure 02:55
02:56 dayangkun joined, dayangkun left
dalek rl6-bench: 327272c | (Geoffrey Broadwell)++ | perl6/point_class_add_README:
Clean up perl6/point_class_add_README
03:08
rl6-bench: b86885f | (Geoffrey Broadwell)++ | minibenchmarks.pl:
Clean up point-class-add minibenchmarks.pl entry, and default to disabled until all variants are converted to SCALE
japhb JimmyZ: I'll need to do a couple more commits before re-enabling the tests, but the above ought to reduce confusion a bit. Thank you for the PR! 03:09
adu japhb: what's a PR? 03:10
andreoss m: sub foo() { [1,2,3] }; my ($a,$b,$c) = foo(); say $b;
camelia rakudo-moar c5dcdf: OUTPUT«(Any)␤»
japhb Also, I note that there are some subtle differences between test files (like some using 'return' and others just dropping off the end of the method) 03:11
moritz adu: pull request
andreoss how is such thing done?
japhb return actually has a significant performance effect, so that may be skewing results
adu ah
japhb moritz: thank you
moritz m: sub foo() { [1,2,3] }; my ($a,$b,$c) = foo().list; say $b;
camelia rakudo-moar c5dcdf: OUTPUT«2␤»
adu japhb: is return faster than progn? 03:12
japhb return is slower
adu what?!?
so progn is faster?
japhb Wait, 'progn', what is that?
JimmyZ japhb: Thanks :)
japhb I had mentally substituted the other thing I mentioned, which is falling off the end of the method 03:13
03:13 raiph left
adu www.lispworks.com/documentation/Hyp....htm#progn 03:13
andreoss moritz: what if foo is gather?
japhb return is slower than falling off the end, because it is a "control exception".
adu japhb: "progn" is in my opinion the oldest name for "evaluate a bunch of statements, and then return an expression"
japhb adu: Yes, in those terms, progn is faster. 03:14
andreoss m: sub foo() { [1,2,3] }; my ($a,$b,$c) <== foo(); say $b;
camelia rakudo-moar c5dcdf: OUTPUT«(Any)␤»
moritz m: my ($a, $b, $c) = gather { take [1, 2, 3] }.list; say $b
camelia rakudo-moar c5dcdf: OUTPUT«(Any)␤»
adu japhb: Scheme renamed Lisp's progn to begin
andreoss such syntax would be nice
japhb hasn't seriously used Scheme since 1989, so is perhaps a bit out of practice. :-) 03:15
adu japhb: in GNU C it's called ({ a; b; c; })
moritz m: sub foo() { [1,2,3] }; my ($a,$b,$c) <== foo().list; say $b
camelia rakudo-moar c5dcdf: OUTPUT«(Any)␤»
adu my point is: progn, begin, ({}), "falling off the end", it's all the same idea 03:16
japhb Sure. It's not that I didn't understand the concept, I just didn't understand the LISP name for it.
.oO( The name of a thing is not the thing .... )
03:17
adu lol
but Lisp and Scheme are really old
japhb So am I, but not as old as LISP. :-)
adu I've been a listener in debates over which is older
moritz defun!
japhb Note my habit of capitalizing LISP, heh. 03:18
adu because the first Scheme impl was definitely after Lisp, but the Scheme papers were published before Lisp
japhb shrugs ... his Scheme experience was a semester of SaIoCP 03:19
In any case, if you look through the setting, you'll find lots of places where we intentionally end a function with an expression instead of a return statement. 03:21
adu makes sense 03:22
japhb & # The bus. It stops. 03:23
adu japhb: are you having a siesure? 03:24
03:27 gfldex left
JimmyZ wonders when we need the 'return' keyword 03:29
moritz JimmyZ: for returning from inner constructs 03:30
JimmyZ Is there a example code? 03:31
moritz sub f(*@v) { for @v -> $x { return 2 * $x if $x > 10 }; 'no such vaule' }
*value
03:32 noganex joined, BenGoldberg left
JimmyZ Is there a way to return from inner constructs without causing 'control exception'? 03:33
just like without the 'return 03:35
' keyword in the bottom of sub
03:35 noganex_ left, araujo left
moritz well, with non-control exceptions 03:35
03:36 araujo joined
JimmyZ I mean just by using return op code 03:38
moritz if the return opcode throws a control exception, why not? 03:39
JimmyZ hmm, let's change the question: Is there a way to return without calling 'return' sub, like without 'return' sub in the bottom of a sub which returns a value without calling 'return' sub. 03:41
moritz JimmyZ: I'm not aware of one 03:43
JimmyZ like a sub returns a value in the bottom without calling 'return' sub
03:55 cognominal left 03:58 cognominal joined
moritz JimmyZ: the problem is that for example 'for' executes its block through several layers of routines 04:00
JimmyZ: so the 'return' must traverse all the layers
04:03 eternaley is now known as eternaleye 04:11 gfldex joined 04:14 sirdancealot joined 04:36 tinyblak joined 04:46 adu left 04:55 Rounin left
JimmyZ moritz: Thanks, I hope there will be a way that acts as the same as implicit return 05:03
andreoss how to properly indent chained method calls? 05:08
$a.b.c.d.e(1)
wow. it's backslash 05:10
m: "hello".\ say; 05:13
camelia rakudo-moar c5dcdf: OUTPUT«hello␤»
05:15 andreoss left 05:18 yeahnoob left, Mso150_p left 05:25 kaleem joined 05:28 yeahnoob joined 05:29 IllvilJa left 05:40 cognominal left
JimmyZ hmm, maybe it's an opitimization 05:46
05:49 IllvilJa joined 05:56 dj_goku_ left 06:01 bjz joined 06:02 adu joined 06:10 dj_goku joined 06:19 fwilson left 06:22 Mso150_p joined 06:23 yeahnoob left 06:45 fwilson joined 06:50 Rounin joined 06:56 xinming left, yeahnoob joined, yeahnoob left 06:57 yeahnoob joined 06:58 xinming joined 07:00 dj_goku left 07:05 dj_goku joined, dj_goku left, dj_goku joined, jluis joined 07:11 Patterner joined 07:15 Psyche^ left 07:20 mr-foobar left 07:23 adu left 07:26 bjz left
dalek rl6-bench: c13ab05 | (Jimmy Zhuo)++ | perl6/point_class_add2:
Fix P6opaque: no such attribute '$!x'
07:33
rl6-bench: bedc8ed | FROGGS++ | perl6/point_class_add2:
Merge pull request #17 from zhuomingliang/master

Fix P6opaque: no such attribute '$!x'
07:34 gfldex left 07:39 Mouq left 07:41 cognominal joined 07:49 tinyblak left, tinyblak joined 07:51 tinyblak_ joined 07:54 tinyblak left 08:17 darutoko joined 08:27 dalek left, dalek joined, ChanServ sets mode: +v dalek 08:28 zakharyas joined 08:30 tinyblak_ left 08:31 tinyblak joined, virtualsue joined 08:33 telex left 08:34 telex joined 08:42 tinyblak left 08:43 tinyblak joined 08:47 tinyblak left 08:53 tinyblak joined 08:59 cognominal left 09:03 spider-mario joined 09:05 Ovid joined 09:06 Ovid is now known as Guest514, Guest514 is now known as CurtisOvidPoe
CurtisOvidPoe Morning all. 09:07
raydiak \o CurtisOvidPoe
CurtisOvidPoe \o?
Ah, is that a wave?
raydiak aye
CurtisOvidPoe :)
For string overloading, isn’t it supposed to be a simple matter of overloading the Str method? (perl6advent.wordpress.com/2009/12/...rloading/) 09:08
raydiak yes
CurtisOvidPoe I tried that, but I’m doing something wrong: gist.github.com/Ovid/a935ab3b93300d75d501 09:09
psch CurtisOvidPoe: &say calls .gist 09:10
m: class Foo { method Str { "foo" }; method gist { "bar" } }; say Foo.new
camelia rakudo-moar c5dcdf: OUTPUT«bar␤»
psch m: class Foo { method Str { "foo" }; method gist { "bar" } }; my $foo = Foo.new; say "$foo" 09:11
camelia rakudo-moar c5dcdf: OUTPUT«foo␤»
JimmyZ 200~m: class Foo { method Str { "foo" }; method gist { "bar" } }; say~ Foo.new 09:13
m: class Foo { method Str { "foo" }; method gist { "bar" } }; say~ Foo.new
psch (or the other way around: &say doesn't force Str context)
camelia rakudo-moar c5dcdf: OUTPUT«===SORRY!=== Error while compiling /tmp/FUekCcopnB␤Unsupported use of bare 'say'; in Perl 6 please use .say if you meant $_, or use an explicit invocant or argument␤at /tmp/FUekCcopnB:1␤------> { "foo" }; method gist { "bar" }…»
09:13 rurban joined
JimmyZ m: class Foo { method Str { "foo" }; method gist { "bar" } }; say ~Foo.new 09:13
camelia rakudo-moar c5dcdf: OUTPUT«foo␤»
JimmyZ m: class Foo { method Str { "foo" }; method gist { "bar" } }; say Foo.new
camelia rakudo-moar c5dcdf: OUTPUT«bar␤»
raydiak sometimes when I want to be able to say an object directly and get a string, I'll overload .gist to call .Str, too 09:14
JimmyZ so you may want 'say ~$point' 09:15
raydiak m: class Foo { method gist { .Str }; method Str { "foo" } }; say Foo.new # like that
camelia rakudo-moar c5dcdf: OUTPUT«␤»
CurtisOvidPoe Thanks all.
raydiak m: class Foo { method gist { self.Str }; method Str { "foo" } }; say Foo.new # like that 09:16
camelia rakudo-moar c5dcdf: OUTPUT«foo␤»
CurtisOvidPoe Why is the output of my code then “[0,0]\nTrue”? 09:17
psch S29:420 # "used as a last-ditch string coercion" i wonder if that means say should .Str first
synopsebot Link: perlcabal.org/syn/S29.html#line_420
psch CurtisOvidPoe: say say ~$point 09:18
CurtisOvidPoe: in the paste at least :)
raydiak CurtisOvidPoe: iow Str should return the string, not print it out
CurtisOvidPoe Oh, duh! :) 09:19
raydiak :)
CurtisOvidPoe I am a bear of little brain. 09:20
jnthn github.com/perl6/specs/blob/master...ist-method may be a worthwhile read on the role of .gist
CurtisOvidPoe Thanks, jnthn. 09:21
09:26 kjs_ joined, virtualsue left 09:27 rindolf joined 09:32 TuxCM left 09:36 yeahnoob left, TuxCM joined, cognominal joined
mathw morning 09:38
09:39 dakkar joined
FROGGS_ hi mathw 09:44
09:48 abraxxa joined 10:08 tinyblak left, tinyblak joined
nwc10 10:12 <@osfameron> does anyone fancy helping out with github.com/mysociety/hassleme ? 10:15
10:12 <@osfameron> but it's quite a fun project (written in old-fashioned, but I think relatively clean CGI Perl)
10:13 <@Lee> oh, this could be a good candidate for a case study in converting CGI to something new(er)
and, that's the on-topic bit :-)
osfameron ah... *that* much newer :D
nwc10 would anyone think it fun to convert something simple in Perl 5 to Perl 6? 10:16
10:16 virtualsue joined
CurtisOvidPoe Yeah, take a swing at DBIx::Class, please ;) 10:17
(er, but skip the whole inheritance bit, use roles internally, and have objects delegate to dbic6 rather than inherit. :)
10:19 mvuets joined
moritz CurtisOvidPoe: you missed that "simple" part :-) 10:21
CurtisOvidPoe :)
nwc10 "SMOP" has taught us that "simple" is now permitted to have various values. 10:22
10:22 sirdancealot left
moritz nwc10: the "S" in "SMOP" stood for "strategic", I believe :-) 10:23
FROGGS_ the next thing I am (continuing) to work on is the port of XML::LibXML+XML::Compile... 10:28
(after testers.perl6.org hackery)
10:28 tinyblak left 10:29 tinyblak joined 10:30 tinyblak_ joined
mathw I'm writing an ncurses binding, and a convenience module atop it 10:32
because I am utterly insane
FROGGS_ *g*
we all are 10:33
10:33 tinyblak left
psch i ditched readline because i'm not insane enough for that :P 10:33
bindings for the gnu one that is
mathw ncurses is fun
FROGGS_ psch: you'll get back to that, trust me :o)
mathw for some value of fun most people wouldn't recognise
it does some things with macros which just shouldn't be allowed 10:34
FROGGS_ hehe
moritz mathw: hey, we have people here in the channel who write VMs, codegen, and finite automaton transformations :-)
FROGGS_ bbiab # lunch
moritz or even docs :-)
mathw moritz: all those things are sane and understandable, if complex
psch docs?! 10:35
mathw ncurses, on the other hand, is an API from the depths of hell
moritz psch: yes, like, writing things in prose about how to use stuff
FROGGS_ I hope it is not as bad as the hellboy movies >.<
mathw FROGGS_: it's incomparable 10:36
it's one of the most baffling things I've ever done
although part of that is some sort of argument between the Perl 6 I/O system and the ncurses one I think
if you ask ncurses to read a key from the keyboard, it returns immediately with an error
however, ncurses console read mode alteration commands appear to affect $*IO.getc 10:37
which at least means I can do what I want to do :)
psch maybe i can get something howto-ish out of bringing the JavaHOW more towards perl6-land...
although maybe i'm missing some MOP docs. what exists on doc.perl6.org doesn't look too helpful to me 10:38
moritz++ # prose explaining how to use stuff
moritz psch: well, documenting MOP is a slow and painful process 10:39
psch moritz: yeah, i'd assume so. i'm still far from confident i understand enough to actually decide if what i'm thinking of doing with the JavaHOW actually makes sense... 10:40
moritz psch: mostly because most of it is not specced, and I understand it only half-ways, and because there are quite many methods (even if many of them are rather simple in nature, but still non-trivial to explain precisely)
psch: do you want to expose only java classes, or also interfaces? 10:41
psch moritz: well, in the end i imagine we want a complete two-way interop, and every half-arsed solution in between makes that much more complicated later on... 10:42
moritz psch: so you'd likely need a JavaClassHOW and a JavaInterfaceHOW, with the latter acting a bit likes p6 roles
10:42 prime left
psch moritz: and currently i have a JavaHOW which basically just says "we did this all in the vm and we don't expose anything, you better know what you're doing" 10:43
10:44 tinyblak_ left, tinyblak joined
psch HOW.name is pretty much all that does what it should atm 10:45
10:58 spider-mario left 11:08 tinyblak left, tinyblak joined 11:17 denis_boyun joined, prime joined 11:23 kjs_ left
masak good mo^Wante^Wafternoon, #perl6 11:25
moritz \o masak 11:27
11:27 jack_rabbit left 11:33 Mso150_p left
masak Mouq: re irclog.perlgeek.de/perl6/2015-01-08#i_9907773 -- the advantages... in Perl 6? I guess they are that HLL::Grammar already has the expression parser Perl 6 needs. the advantages... in 007? none, and 007 doesn't use HLL::Grammar's EXPR, it defines its own. 11:42
11:42 IllvilJa left
masak TimToady: I should have said "*currently*, with what we know, what we can consistently imagine, and what we have implemented, expressions are the only things that can call macros". 11:43
I am always willing to change my outlook based on consistent spec.
11:59 xinming left 12:01 IllvilJa joined 12:03 kaleem left 12:17 saba joined 12:18 saba is now known as Guest995
masak I have a new solution to my 007 macro/quasi/scoping conundrum: github.com/masak/007/issues/7#issu...t-69327526 12:19
12:19 gfldex joined 12:21 Guest995 left
moritz arent ⦃...⦄ just a do { ... } block? 12:22
(except that 007 probably doesn't have 'do')
pmurias it could be required to have an expression at the end 12:24
12:25 tinyblak left 12:26 tinyblak joined 12:39 BenGoldberg joined
vendethiel that does sound like a do block to me too 12:42
masak I guess it can be thought of that way, yes.
plus OUTER:: meddling.
12:43 xfix joined
masak but note that 007 syntactically still would have neither `do`, nor self-executing blocks, nor blocks that when executed return a value. 12:43
psch gist.github.com/peschwa/0f8830ba3c6a2eb852ba \o/ 12:47
now i just gotta do that automatically for every field in all generated adaptors
vendethiel psch++ 12:48
psch ...i'm pretty sure that's the actually hard part :)
masak pmurias: interesting notion.
pmurias: I might also require it not to have any exotic control flow, until I understand those bits better. 12:49
arnsholt I think I missed a memo somewhere; what's 007?
(Besides James Bond =p)
FROGGS_ psch: and you've got a Foo.jar somewhere?
masak arnsholt: masak.github.io/007/
arnsholt "it's perhaps easiest to think of 007 as the secret love child of Perl 6 and Python." =D 12:50
psch FROGGS_: no, just a .class; the multiline comment is the contents 12:51
FROGGS_ is it a Perlthon or more a Pytherl?
xfix It's Parrot.
FROGGS_ psch: ahh, cool
xfix: :P
xfix Are semicolons mandatory in 007? 12:52
masak oh yes,
we may like Python in some ways, but we're not barbarians.
FROGGS_ then it is more a PHPerlthon
masak xfix: last semicolon (in block and in compunit) can be skipped, though. 12:53
FROGGS_ ohh, I was think about mandatory trailing semicolon... can you omit semicolons in Python between statements?
masak FROGGS_: yes, you can.
FROGGS_: as long as they are not on the same line ;)
FROGGS_ "nice"
moritz FROGGS_: python is very line-oriented
or whitespace-oriented
that's more like it
masak note that Python allows semicolons, though. not many people are aware of this. 12:54
xfix I personally like braces, but dislike semicolons.
12:54 BenGoldberg left
masak smiles at the idea of a JS-influenced school of thought flaring up within the Python community, putting in all the semicolons everywhere 12:54
vendethiel *g*
FROGGS_ I think I do like semicolons... I always feel uneasy when writing VBScript
masak I really like semicolons. 12:55
they give me the courage to lay out my statements as I want.
vendethiel doesn't like semicolons very much, but understand they're (mostly) necessary for (sane) postfixes... :)
moritz well, inserting semicolons in javascript is no clear win
xfix (I probably use not standard JavaScript coding style without semicolons, because I don't like them)
moritz because the mere fact that they are optional can mean that the parser might insert one for you anyway
masak moritz: actually, I would be fine with it all (and I would use semicolons everywhere just for clarity)
moritz and inserting more yourself doesn't change that in the slightest
masak moritz: but the `return\nvalue` thing bites me often, and I hate it.
12:56 zakharyas left
moritz I insert semicolons in javascript too, but it's more habit / sentimental value, I guess 12:56
FROGGS_ why would you do `return\nvalue`?
12:56 zakharyas joined
masak FROGGS_: I've done it in real code, not thinking anything of it. 12:56
xfix I usually do `return (\n` if I have huge value to return. Or just write that return value into a variable. 12:57
masak FROGGS_: I think the case was this: the thing I was returning had three similar function calls, so I laid them out vertically.
FROGGS_: and it looked better if I started on the next line.
FROGGS_ the only reason is when the `value` expression is very long, but then your might break it up anyway
I see
btyler_ FROGGS_: if you return an object literal and your have a convention of next-line-brace
boom undefined
*you have
masak the point is, it was a legitimate case.
xfix return\n{ is ugly IMO.
masak and that simple *whitespace refactor* broke my code.
good thing I had tests. 12:58
but it was during a live demo, so it was still a bit unfortunate :)
xfix This is a good argument for not allowing statements that do nothing, I guess.
moritz but return\n does *something*
masak xfix: `return;` doesn't do nothing.
xfix I'm aware.
FROGGS_ but the thing afterwards
it is unreachable code at least
and that's worth a warning 12:59
btyler_ warnings? in my js? :P
use strict; does a bit, but nothing to that degree
masak I think there should be two "levels" for errors in compilers: code that oughtn't be *run*, and code that oughtn't be *checked in*.
xfix "use strict", you mean.
masak dead code would be of the latter kind.
moritz btyler_: that's what linters are for
masak oh right, "linter" was what I was after. moritz++ 13:00
btyler_ yeah, of course. a linter would probably also yell about return \n {foo: "bar"};
FROGGS_ I'd love to see a clang-like mode for perl6...
masak of course, all that should be baked into a goodenuf IDE anyway.
FROGGS_ even if most warnings by clang are just annoying and not quite useful, you find quite some real bugs 13:01
masak: creating a good IDE is one of the hardest things there is sadly 13:02
masak yes.
but it's the logical endpoint of this whole development endeavour.
xfix I also legitimately used `if (condition) return` without semicolon at end in JavaScript (quick return) once. But I guess it's confusing if somebody doesn't know about automatic semicolon insertion.
masak xfix: if you were on my team and you did that, I would ask you to stop doing that. 13:03
moritz IDEs always felt weird to me
they are a way to manage the complexity of a software system
colomon has never really used an IDE 13:04
moritz and I always wonder if one couldn't simply reduce the complexity instead
colomon does like it when his editor has a simple way to compile his code
IllvilJa jedit + perltidy + perlcritic :-)
xfix masak: It's a code that I wrote for my own purposes, written just by me. I use coding style of a project I contribute to, even if I write JavaScript without semicolons, I accept that other projects do use semicolons, and I use semicolons in code I write for those.
IllvilJa that's my perl IDE.
spray some 'perl -d' over it and there's debugging/step by step testing.
13:07 kaare__ left
FROGGS_ I only use debuggers at the last resort... 13:07
xfix console.log best debugger, obviously.
Or .perl.say. Or p. Or printf. Or whatever the language uses. 13:08
FROGGS_ but an editor that highlights todo's of my code and github issues besides a proper code highlighting would be very sweet
(I just realize that the raid migration of my server at home will take about a week in total /o\) 13:09
btw, I don't need an output window in my ISE of choice... I don't usually run my code in an IDE anyway 13:10
IDE*
so, I should probably fork SciTE and add buttons :o)
and yes, the more I use eclipse the more I hate it
masak IllvilJa: heeey! long time no see! :D 13:13
xfix: good.
13:14 kaleem joined
psch FROGGS_: do you know about eclim.org/ ? 13:14
for when everything is only in eclipse and you *have* to use it from there... :) 13:15
FROGGS_ psch: I don't like vim either :o) 13:19
psch "third party clients have been created to add eclim support to other editors as well (emacs, sublime text 2, textmate)." :P 13:20
moritz wonders if there's some rule that any sufficiently advanced application gets its own package manager eventually 13:22
I'm sure eclipse has one for its plugins, as do most (all?) modern browsers 13:23
mathw moritz: I often think like that about IDEs when I use Visual Studio and it's trying to be magical and failing.
moritz there are vim plugins that act as vim package managers
mathw: I guess the java IDEs are a pretty extreme example, which generate and the later refactor boilerplate code for you 13:24
psch does common lisp contain a package manager and does that package manager belong to the slow, bug-ridden half referenced in greenspun's tenth rule..?
oh, nvm, that rule limits itself to C and Fortran programs 13:25
vendethiel psch: it does not "contain" one, but there are several. asdf is the most widely used, i guess 13:26
(usually with quicklisp)
and yes, it's slow :P
arnsholt psch: You're thinking of the *corollary* to Greenspun's tenth rule: Any sufficiently advanced CL program contains a buggy, informally specified version of half of Prolog" =) 13:27
masak darn smug Prolog weenies 13:28
FROGGS_ even Notepad++ has its own package manager... which is certainly useful for windows peeps 13:31
CurtisOvidPoe m: my Rat $foo = 2.0; say $foo
camelia rakudo-moar c5dcdf: OUTPUT«2␤»
CurtisOvidPoe m: my Rat $foo = 2; say $foo
camelia rakudo-moar c5dcdf: OUTPUT«Type check failed in assignment to '$foo'; expected 'Rat' but got 'Int'␤ in block <unit> at /tmp/rVpGy4Kh2g:1␤␤» 13:32
CurtisOvidPoe Why does that second one fail? An Int can always be represented as a Rat, can’t it?
13:33 pecastro joined
moritz it can be represented, but it isn't one 13:33
FROGGS_ well, (mostly?) everything can be represented as a string, but that does not mean there that a coercing is taking place
moritz just as you can represent any string or number as a string
FROGGS_ m: my Rat $foo = 2.Rat; say $foo
camelia rakudo-moar c5dcdf: OUTPUT«2␤»
masak CurtisOvidPoe: everyone seems to assume that Num <: Rat <: Int in Perl 6. 13:36
13:36 jluis left
moritz CurtisOvidPoe: use Real as a type constraint if you want to allow Rat, Int, Num 13:37
and Numeric if you also want to allow Complex
CurtisOvidPoe The reason I ask is that this complicates the Point example. If I declare the x and y as Rats, I can’t do Point.new( x = 2, y = 3 )
m: class Point {has Rat $.x; has Rat $.y;}; my $p = Point.new(x=2,y=3) 13:38
camelia rakudo-moar c5dcdf: OUTPUT«===SORRY!=== Error while compiling /tmp/09Gzp1T3fm␤Unsupported use of y///; in Perl 6 please use tr///␤at /tmp/09Gzp1T3fm:1␤------> ; has Rat $.y;}; my $p = Point.new(x=2,y⏏=3)␤»
CurtisOvidPoe And I’ve hit an entirely different issue there.
FROGGS_ m: class Point {has Rat $.x; has Rat $.y;}; my $p = Point.new(x=>2,y=>3)
camelia rakudo-moar c5dcdf: OUTPUT«Type check failed in assignment to '$!x'; expected 'Rat' but got 'Int'␤ in block at src/gen/m-CORE.setting:980␤ in method BUILDALL at src/gen/m-CORE.setting:963␤ in method bless at src/gen/m-CORE.setting:951␤ in method new at src/gen/m-CORE.se…»
moritz CurtisOvidPoe: don't constrain it to Rat if it shouldn't just accept Rat
CurtisOvidPoe: that's how types work :-) 13:39
FROGGS_ m: class Point {has Real $.x; has Real $.y;}; my $p = Point.new(x=>2,y=>3)
camelia ( no output )
masak CurtisOvidPoe: what you're going through is something we see often here on channel. something of a FAQ.
CurtisOvidPoe: subtypes != number tower
CurtisOvidPoe Cheers.
masak (fwiw, I sometimes also feel it's a very stubborn distinction to uphold... but I've resigned to it being the "right" one) 13:40
CurtisOvidPoe So generally speaking, are most apps going to stick with Int and Real? 13:41
masak yeah.
maybe at some point a module could exist that said "just DWIM these number conversions for me, doggonnit"
moritz well, one could always use a coercion type Real(Rat) once they are implemented
CurtisOvidPoe It’s the sort of thing that’s going to trip up many devs who are used to DWIM. 13:42
moritz well, adding type annotations does require thoughts
CurtisOvidPoe Agreed. 13:43
moritz and it's something that I often got wrong in the beginning
CurtisOvidPoe “thoughts” is something I’m apparently not very good at lately :)
moritz mostly I was so glad that I had types that I used them everywhere, and later found out that many of those constraints simply don't hold up 13:44
hoelzro good morning #perl6! 13:45
CurtisOvidPoe Agreed, but when they do, they really make life easier. I love that I can create a well-thought out subset and remove a huge amount of manual error checking in my code (at the expense of error messages which are less verbose) 13:46
13:46 kjs_ joined
CurtisOvidPoe Morning hoelzro. 13:47
13:47 donaldh joined
moritz CurtisOvidPoe: FTR, I think the types in Perl 6 are awesome. I just can't see how a type system can both always DWIM *and* be useful 13:49
donaldh how do I iterate a hash's keys in NQP ? 13:50
psch donaldh: my $iter := nqp::iterator($hash); while $iter { my $key := nqp::iterkey_s(nqp::shift($iter)) } # is what i usually do 13:51
donaldh thanks
moritz iirc you can also use a for-loop
psch yeah, i think so. iterkey_s goes on the loop variable 13:52
moritz nqp-m: my $h := nqp::hash('a', 1, 'b', 2); for $h { say($_) }
camelia nqp-moarvm: OUTPUT«a␤b␤»
psch oh it works like that
moritz nqp-m: my $h := nqp::hash('a', 1, 'b', 2); for $h { say(nqp::iterkey_s($_)) }
camelia nqp-moarvm: OUTPUT«a␤b␤»
moritz nqp-m: my $h := nqp::hash('a', 1, 'b', 2); for $h { say($_.key) }
camelia nqp-moarvm: OUTPUT«a␤b␤»
moritz (I guess nqp::iterkey_s is faster, and doesn't box in-between)
masak I still think we have some ways to go to make subtyping error messages awesome.
moritz masak: agreed 13:53
masak my ideal would be "Assignment to variable $x fails subtype constraint `$_ > 0`"
preferably it would even split up && clauses and error on the failing one. 13:54
donaldh nqp-m: my $h := nqp::hash('a', 1, 'b', 2); for $h { say($_.key ~ '=' ~ $_.value) } 13:55
camelia nqp-moarvm: OUTPUT«a=1␤b=2␤»
donaldh thanks psch++, moritz++
13:56 Alina-malina left 13:58 Rounin left
pmurias masak: re baked into a good enough ide, I disagree I think we optimaly want the code refactoring/analysis part pluggable so we can get it to work a bunch of editors/ides 14:00
14:00 xfix_ joined 14:01 Alina-malina joined, xfix left, xfix_ is now known as xfix, xfix left, xfix joined
pmurias masak: instead of having a case where people use some IDE which is at best mediocre just because it has awesome Perl 6 support 14:03
masak *nod* 14:07
I'm not against pluggability as such.
just note that re-use is frightfully hard.
like, if you are currently thinking about how hard it is -- it's harder than that. 14:08
moritz the typical approach is to make it work in one situation, and then in the second when second situation arises, and then maybe in the third situation you have some idea on how to make it truely reusable 14:09
14:09 zakharyas left 14:10 tinyblak_ joined, tinyblak left 14:12 zakharyas joined 14:14 xinming joined
pmurias there are approaches that make reuse much harder, like writting a big pile of horrible vimscript instead of having the backend part seperated in a seperate process that sends json 14:15
masak moritz: yes. as far as I know, Josh Bloch coined "three clients" in one of his talks. it's online somewhere. 14:17
this one, I think: www.youtube.com/watch?v=heh4OeB9A-c
mathw A type system which can DWIM and be useful at the same time would have to be telepathic, and involve time travel too. 14:27
And yes, code reuse is hard 14:28
VERY HARD
14:32 tinyblak_ left, tinyblak joined
huf code reuse is hard when you're thinking of it as code reuse 14:37
masak r: say 6103515625/5; say ((((6103515625/5) * 4 + 123327057) ** 2) % 6103515625); say (((1220703125 * 4 + 123327057) ** 2) % 6103515625)
camelia rakudo-{parrot,moar} c5dcdf: OUTPUT«1220703125␤0␤6103515624␤»
masak ok -- between those three expressions, something is quite wrong.
huf but then you just string together a long-ass shell pipeline using pretty old and standard unix tools
masak note that the third is just the second but with the evaluated result from the first inserted. 14:38
the second and the third should show up the same.
(don't ask me what I was doing when I discovered this) :P
FROGGS_ calculated your salary? :P
masak close, but no cigar. 14:39
I was finding the square root of -1 among the 5-adics.
masak submits rakudobug 14:40
FROGGS_ m: say ((((6103515625 / 5) * 4 + 123327057) ** 2) % 6103515625) 14:43
camelia rakudo-moar c5dcdf: OUTPUT«0␤»
FROGGS_ m: say ((((6103515625 div 5) * 4 + 123327057) ** 2) % 6103515625)
camelia rakudo-moar c5dcdf: OUTPUT«6103515624␤»
masak FROGGS_: you're implying I'm suffering from bignum/rounding effects? 14:44
FROGGS_ I'm implying nothing atm
masak anyway, FROGGS_++ for interesting data point. that goes in the ticket, too.
FROGGS_ m: say ((((6103515625 / 5).Int * 4 + 123327057) ** 2) % 6103515625)
camelia rakudo-moar c5dcdf: OUTPUT«6103515624␤»
14:44 cognominal left
FROGGS_ m: say ((((6103515625 div 5).Num * 4 + 123327057) ** 2) % 6103515625) 14:45
camelia rakudo-moar c5dcdf: OUTPUT«0␤»
FROGGS_ :o)
masak heh.
someone with a tuit is welcome to apply the patch suggested by Edsger in rt.perl.org/Ticket/Display.html?id=123569 14:47
&
gtodd FROGGS_: you calculated *my* salary
FROGGS_ hehe 14:48
moritz does that patch still work on good-old cmd? 14:49
FROGGS_ moritz: I've got an windows xp box too, I can check 14:50
14:51 pecastro left, pecastro joined
geekosaur that was my question too; pretty sure that will not fly in cmd.exe on older windows 14:53
colomon m: say (6103515625 / 5) * 4 14:54
camelia rakudo-moar c5dcdf: OUTPUT«4882812500␤»
colomon m: say (6103515625 div 5) * 4
camelia rakudo-moar c5dcdf: OUTPUT«4882812500␤»
geekosaur but I don't know how much older; it might have been added to win7 or win8, I doubt it works in xp
colomon m: say ((6103515625 / 5) * 4).WHAT
camelia rakudo-moar c5dcdf: OUTPUT«(Rat)␤»
colomon m: say ((6103515625 / 5) * 4).gist
camelia rakudo-moar c5dcdf: OUTPUT«4882812500␤»
colomon m: say ((6103515625 / 5) * 4).perl
camelia rakudo-moar c5dcdf: OUTPUT«4882812500.0␤»
moritz is powershell the default shell on win7/8 ? 14:55
colomon m: say (6103515625 div 5) * 4 + 123327057
camelia rakudo-moar c5dcdf: OUTPUT«5006139557␤»
colomon m: say (6103515625 / 5) * 4 + 123327057
camelia rakudo-moar c5dcdf: OUTPUT«5006139557␤»
geekosaur not as far as I know
colomon oh!
m: say ((6103515625 / 5) * 4 + 123327057) ** 2
camelia rakudo-moar c5dcdf: OUTPUT«25061433264160156249␤»
moritz then maybe the problem is executing .bat files with powershell
colomon m: say ((6103515625 div 5) * 4 + 123327057) ** 2
camelia rakudo-moar c5dcdf: OUTPUT«25061433264160156249␤»
colomon m: say ((6103515625 / 5).Num * 4 + 123327057) ** 2 14:56
camelia rakudo-moar c5dcdf: OUTPUT«2.50614332641602e+19␤»
colomon say ((((6103515625/5) * 4 + 123327057) ** 2) % 6103515625).WHAT 14:57
m: say ((((6103515625/5) * 4 + 123327057) ** 2) % 6103515625).WHAT
camelia rakudo-moar c5dcdf: OUTPUT«(Num)␤»
colomon m: say (((6103515625 / 5) * 4 + 123327057) ** 2).WHAT
camelia rakudo-moar c5dcdf: OUTPUT«(Rat)␤»
colomon m: say ((1/2) % 3).WHAT 14:59
camelia rakudo-moar c5dcdf: OUTPUT«(Num)␤»
colomon easy fix
(maybe)
absolutely a rakudobug 15:02
colomon starts to wonder if he is talking to himself 15:08
15:09 zakharyas1 joined
colomon means online, of course he is IRL 15:09
15:11 zakharyas left 15:15 kurahaupo left
mathw I had to go and find a new pen. It involved delving carefully past piles of unwanted highlighters and staples, and I had to be very slow and quiet lest I wake them up. 15:21
15:27 skids left
osfameron hehe 15:27
FROGGS_ maybe that explains the behaviour of my co-workers.... perhaps they are searching for pens? 15:28
mathw Or they've been bitten by the highlighters 15:29
15:29 kurahaupo joined 15:33 donaldh left 15:39 rmgk left 15:41 rindolf left 15:42 rindolf joined 15:45 mr-foobar joined 15:47 lumimies left
dalek ast: 8f0853b | colomon++ | S03-operators/arith.t:
More tests for infix:<%> on Rats.

Previously only had one test on the type returned from calling infix:<%> on Rats and maybe Ints.
15:49
15:53 jluis joined, abraxxa left
colomon working on fix for the code right now 15:54
spectesting fix... 15:59
15:59 pyrimidine left
FROGGS_ colomon++ 16:03
colomon hmmm… presumably we need FatRat tests for this too. 16:05
colomon is going to run to the nom-store while the spectest is running. :) 16:08
dalek rl6-roast-data: 5362d1c | coke++ | / (5 files):
today (automated commit)
16:09
16:15 denis_boyun left 16:16 andreoss joined 16:17 rmgk joined
masak colomon: not talking to yourself. glad you're on the case. 16:19
PerlJam even if he is talking to himself, I too am glad he's on the case :) 16:25
16:30 kaleem left 16:36 treehug88 joined 16:37 jluis left 16:40 yeahnoob joined
masak yes, those two statements were unrelated ;) 16:40
16:43 yeahnoob left
masak oh, and there's an oeis sequence for the calculations I was doing. of course. oeis.org/A048898 16:44
masak 's law of oeis sequences: no matter how crazy/original the math thing you're trying is, there's an oeis sequence for that 16:45
(it's an approximate law, just like Moore's law)
colomon oh, interesting!
t/spec/S32-temporal/DateTime-Instant-Duration.rakudo.moar (Wstat: 0 Tests: 33 Failed: 0)
TODO passed: 7, 28-30
hadn't expected that 16:46
16:46 cognominal joined, cognominal left
japhb colomon: Because you fixed infix:<%> ? 16:48
colomon japhb: it's the only thing I changed 16:49
japhb Nice!
colomon doh!
fatal: remote error:
japhb Though that feels like people have set the bar too low for marking TODO
colomon You can't push to git://github.com/rakudo/rakudo.git
japhb
.oO( TODO it and forget it )
16:50
dalek kudo/nom: beb41a0 | colomon++ | src/core/Rat.pm:
Add Rational versions of infix:<%>.

It's probably possible to do it faster by getting some sort of direct NQP support for doing it. This merely makes the operator's behavior correct.
16:50 jluis joined
colomon japhb: A TODO audit would probably be a very good thing. 16:50
PerlJam heh ... *merely* makes the operator's behavior correct. 16:53
hoelzro m: my @notes; @notes .= sort.uniq;
camelia rakudo-moar c5dcdf: OUTPUT«===SORRY!=== Error while compiling /tmp/rhcM0M5tC0␤Two terms in a row␤at /tmp/rhcM0M5tC0:1␤------> my @notes; @notes .= sort⏏.uniq;␤ expecting any of:␤ infix stopper␤ infix or meta-infix…»
hoelzro should something like .= sort.uniq work? 16:54
japhb I should think so
.oO( I should, and it happens that I do also. )
16:55 zakharyas1 left
hoelzro =) 16:56
16:57 adu joined
[Coke] .unique 17:01
17:01 mvuets left 17:02 rindolf left 17:03 rindolf joined 17:12 rurban left
colomon PerlJam: what can I say, I'm very sensitive to performance issues. :) 17:13
masak:
> ) ** 2) % 6103515625); say (((1220703125 * 4 + 123327057) ** 2) % 6103515625)
1220703125
6103515624
adu colomon: what are those numbers? 17:16
colomon adu: they're masak's 17:18
adu: the point is the middle one was wrong before, and now it's right. :) 17:19
17:21 pyrimidine joined 17:22 kjs_ left 17:27 telex left
raydiak morning #perl6 17:28
adu hi raydiak
17:28 telex joined
raydiak \o adu 17:29
adu o/
17:30 vendethiel left 17:32 rindolf left
TimToady FROGGS_: removing Unicode from a .java program feels like an ever-so-slightly wrongish fix to me; why not just change the encoding from ASCII somehow? Or is the "fix" to recode in UTF-16? <shudders> If so, I retract my qualm... :) 17:33
17:33 rindolf joined
adu removing? that seems wrong 17:34
TimToady well, changing a non-breaking space to an ASCII space 17:35
adu was it a string literal? or part of source code?
TimToady if it's in an ordinary comment, that's fine, but if it were going to turn into documentation, I'd want the NB space preserved 17:36
it was probably an ordinary comment, but it just gave me a cold grue
TimToady is specializing in trivialities today :) 17:37
adu TimToady: I once spent a week getting all the MOTDs on all my servers perfect 17:38
masak colomon++ # swift response as can be called for
17:39 pmurias left
TimToady seeing the term "footgun", I want to coin the term "footrope" to mean enough rope to shoot yourself in the foot, but I fear that it will be taken as a bungee cord instead... :) 17:42
raydiak speaking of trivialities, random Pray rendering I did last night: data.cyberuniverses.com/stuff/scene-09.png 17:44
17:44 skids joined
raydiak nothing new, but it turned out kinda cool so thought I'd share, maybe someone else will get inspired to make something cooler :) 17:44
PerlJam TimToady: just contract it a little to "frope" or "footope" or something and it will be sufficiently dissimilar to warrant looking up what it means and thus unambiguously cementing that meaning to the word
TimToady I suppose we could define footrope as something that works like a footgun, but you have to work a lot harder to pull the trigger 17:45
colomon so, tests for infix:<%> and FatRats -- should they got in S03-operators/arith.t or S32-num/fatrat.t? 17:46
TimToady when you fire a footgun, people blame the footgun, but when you fire a footrope, they blame you instead 17:47
PerlJam or they blame Perl because it gave you the footrope to begin with
TimToady we just gotta weave all those footropes into a safety net 17:48
then we could give you enough rope to shoot yourself from a cannon
17:49 virtualsue left
TimToady is not sure he should drink more coffee, if it'll just make things worse... 17:49
TimToady wonders what's on the far side of trivial... 17:50
adu raydiak: povray?
raydiak adu: cyberuniverses.com/pray/
adu oh, cool
PerlJam TimToady: I dunno ... it seems to me that you need a boost of entropy every now and then so that you can congeal a useful order from the chaos. Maybe worse is better? 17:51
TimToady maybe it's my backbrane trying to write a FOSDEM talk...
adu raydiak: so how is Math::Symbolic going? 17:55
raydiak: can it solve PDEs yet? 17:56
moritz that's a nasty one, because it requires integration 17:58
raydiak adu: eh, not so much on the progress recently, on much of anything, but hopefully more soonish 18:00
what is a PDE? 18:01
masak a partial differential equation 18:02
raydiak I'll have to learn more calculus before I worry about such things 18:03
I've only managed to teach myself a tiny subset of it so far 18:04
18:04 molaf joined 18:05 rindolf left 18:06 rindolf joined 18:07 pecastro left 18:09 xinming left
adu raydiak: well, it's pretty simple, really, its an equation that has partial derivatives 18:10
masak simple as that, huh? :P 18:12
adu I was a math major
18:13 FROGGS__ joined
adu so it really is that simple for me 18:13
18:14 Mso150 joined 18:16 FROGGS_ left, KCL_ joined 18:17 kjs_ joined
itz github.com/rakudo/rakudo/pull/349 18:17
itz coughs
raydiak adu: when I clean the thing up, I'd be happy to have your help if you have spare tuits 18:19
[Coke] itz, that seems safe enough.
adu tuits?
raydiak adu: design.perl6.org/S99.html#tuit
FROGGS__ TimToady: I just wanted to unbust the jvm build very quickly... and since I know very little about Java in general, my guess was that Java might have a problem with unicody stuff in its source files
[Coke] will give a go when the travis build finishes. 18:20
raydiak adu: your skills as a math major likely far exceed my skills as an autodidactic highschool dropout :)
18:20 dakkar left
adu raydiak: well, I'm a 3rd year university dropout, so I'm not sure I'm any better 18:21
raydiak: it also took me 10 years to get a 2-year degree
raydiak adu: well if partial differential equations are simple for you, it's probably safe to say you have a leg up on me :) 18:22
though /me admits to not having tried much to learn those parts of math yet...maybe it is simple and I just don't know yet *shrug* 18:23
FROGGS__ TimToady: stackoverflow suggests we could try to pass -Dfile.encoding=UTF8 to our runner... I'll try this in a bit
raydiak taught myself everything I know about vectors and matrices though...enough to write Pray and such (heh maybe why it is so slow) 18:24
adu raydiak: I've written a few OpenGL apps myself, and I can use matrices effectively, but I still don't claim to "grok" matrices, they're bizarre beasts 18:25
dalek kudo/nom: 488178c | (Steve Mynott)++ | src/core/Distro.pm:
if lsb_release isn't in path send this to /dev/null
kudo/nom: b718ee9 | (Will Coleda)++ | src/core/Distro.pm:
Merge pull request #349 from stmuk/nom

if lsb_release isn't in path send this to /dev/null
[Coke] seen whiteknight 18:27
.seen whiteknight
yoleaux I haven't seen whiteknight around.
itz ty 18:28
18:29 tinyblak_ joined, tinyblak left
raydiak adu: I re-taught them to myself enough times over enough years that I now have the illusion that I kinda understand how they work :) 18:31
18:31 mvuets joined
adu raydiak: well, then maybe I have a similar illusion about PDEs 18:33
dalek ast: ad2a81c | colomon++ | S32-num/fatrat.t:
Add tests for infix:<%> on FatRats.
ast: 95a6419 | colomon++ | S (2 files):
Unfudge.
raydiak adu: apparently my illusions are solid enough to project with a rendering algorithm, so similar illusions for PDEs would cut it in Math::Symbolic I think...it's really only up to elementary algebra or so right now 18:36
also need to figure out how it will handle composite objects like sets, vectors, matrices, etc
18:36 tgt joined 18:38 tgt left
raydiak but pretty much all the fun stuff is on hold until I catch back up on the cleaning chores 18:38
18:39 tgt joined 18:40 kjs_ left 18:43 rurban joined 18:45 KCL_ left
bartolin 9~ 18:52
oops
masak m: say "9~">>.ord
camelia rakudo-moar c5dcdf: OUTPUT«57␤»
masak m: say "9~".comb>>.ord
camelia rakudo-moar c5dcdf: OUTPUT«57 126␤»
TimToady m: say "9~".ords 18:53
camelia rakudo-moar c5dcdf: OUTPUT«57 126␤»
jercos m: say :256["9~".ords]
camelia rakudo-moar c5dcdf: OUTPUT«14718␤»
masak m: say :128["9~".ords] 18:54
camelia rakudo-moar c5dcdf: OUTPUT«7422␤»
TimToady m: say :256["␤".ords]
camelia rakudo-moar c5dcdf: OUTPUT«10␤»
TimToady oh, heh
masak that's the evalbot interfering :) 18:55
TimToady m: say :256["☺".ords]
camelia rakudo-moar c5dcdf: OUTPUT«9786␤»
TimToady m: say :256[0x263a] 18:56
camelia rakudo-moar c5dcdf: OUTPUT«9786␤»
18:56 leont joined
TimToady seems we could use a check there... 18:56
m: say :256[256,256]
camelia rakudo-moar c5dcdf: OUTPUT«65792␤»
masak submits rakudobug 18:57
18:58 Mouq joined
TimToady masak: irclog.perlgeek.de/perl6/2015-01-09#i_9909653 sounds like the setup for a no true Scotsman defense :P 18:58
no *consistent* spec would every say that...
*ever
masak heh. 18:59
no, I meant, I will get behind almost any spec that is closer to directly specifying how to implement stuff than to handwaving. 19:00
the macro spec is still too much handwaving.
and wanting other things than expressions to function as macros is all fine, but so far what we have is a bunch of examples of expressions working like macros. 19:01
leont is looking for a roommate for FOSDEM, anyone else looking for one? 19:02
masak as far as I know, no-one has ever created a macro of some more exocic category such as sigil:sym<%> or trait_mod:sym<does>, or even thought about how to do so.
jercos m: say Buf.new((->$word is copy {reverse gather while $word > 0 { take $word % 256; $word div= 256 }})(:256["foo".ords])).decode 19:03
camelia rakudo-moar c5dcdf: OUTPUT«foo␤»
leont woolfy: what's up with the schedule of the perl devroom? It still looks empty on the FOSDEM website
jercos hrm, there's probably a cleaner way to get .base(256) :p
m: say Buf.new((->$word is copy {reverse gather while $word > 0 { take $word % 256; $word div= 256 }})(:256["Snowman says hello: ☃".encode.list])).decode 19:04
camelia rakudo-moar c5dcdf: OUTPUT«Snowman says hello: ☃␤»
jercos och 19:05
arnsholt masak: A macro sigil feels more like a reader macro than a standard macro (to appropriate CL terminology), I think 19:06
jercos m: say :256["lol".encode]
camelia rakudo-moar c5dcdf: OUTPUT«3␤»
jercos oh good. my rather aged star install OOM'd itself on that.
moritz still wants a more low-level way to cast a Buf[uint16] into a Buf[uint8]
19:06 beastd joined
jercos moritz: like javascript typedarray views? 19:07
19:08 rindolf left 19:09 rindolf joined
arnsholt Or a primitive to copy the underlying storage with a different element size on top? 19:09
Incidentally, I think we'd need something more or less like that for NativeCall too 19:10
moritz jercos: what arnsholt said 19:11
masak arnsholt: in not too many words, what distinguishes a reader macro from a standard macro?
TimToady m: say "{"☃".&uniname.tclc} says hello" 19:12
camelia rakudo-moar c5dcdf: OUTPUT«Snowman says hello␤»
adu m: say "💩".&uniname.tclc 19:13
camelia rakudo-moar c5dcdf: OUTPUT«Pile of poo␤»
TimToady it didn't say hello 19:14
FROGGS__ maybe it is rude
adu m: say "says hello";
camelia rakudo-moar c5dcdf: OUTPUT«says hello␤»
masak m: say "{"☃".&uniname.tclc} says hell-oo"; say "💩".&uniname.tclc
camelia rakudo-moar c5dcdf: OUTPUT«Snowman says hell-oo␤Pile of poo␤»
El_Che hehe, TimToady is boasting with perl6's utf8 19:54 < TimToady> oh, heh
19:55 < masak> that's the evalbot interfering :)
crap
masak :)
masak hands El_Che a "trigger paste finger" badge 19:15
arnsholt masak: Reader macros hook into the lexer, while the others hook into the parser
El_Che I wanted to add: "perl6's utf8 support, second to none" but copy-paste came along.
masak arnsholt: that distinction isn't so clear in Perl 6, though.
arnsholt True, true
masak arnsholt: still, I think there can be a distinction there somewhere. just not sure it cuts along the same parallels. 19:16
adu masak: in Scheme, macros are defined as a transformation from AST -> AST, whereas a reader macro is defined as CharString -> AST 19:17
masak arnsholt: our "normal" macros that are like subs wait for their arguments to be parsed before they are called. I imagine there'll be plenty of forms of macros that don't do that.
adu: oh, that makes sense.
arnsholt Yeah, some kind of distinction there would probably make sense
El_Che TimToady: today I met an old perl4 user all exited by your fosdem talk
masak El_Che: what, he only digs even versions? :P 19:18
adu masak: well, maybe not CharString, but some kind of character-based peekable I/O
TimToady by definition, any perl4 user is old :)
masak El_Che: was he very into Perl 2 as well?
El_Che masak: I think he followed the old-perl -> old-java -> middle management road :) 19:19
masak my pary are with him
more for the Java than for the middle management, by the way
adu El_Che: old-java? what is this you speak of
El_Che hehe
TimToady that's...not a road...more of a swamp...
19:20 kjs_ joined
adu Java has changed very little over the past decade, the only things I can think of is the invokedynamic instruction 19:20
El_Che hehe
adu s/things/thing/
El_Che well, working with files is now pretty ok to what it used to be before 7 19:21
before everytime you opened a file was synonime with 20 cigarettes for your life span 19:22
19:22 virtualsue joined
adu El_Che: Synonymous? 19:23
masak or "tantamount" 19:24
19:24 dj_goku left
El_Che :) 19:24
adu Synonymous would make a great hacker group name, and when CNN interviews them about how they distinguish themselves with Anonymous, they can simply say "we don't" 19:25
El_Che hahaha
masak also, Pseudonymous and Eponymous 19:26
19:26 kjs_ left
El_Che what did you say about pseudhashes? :) 19:26
TimToady Retronymous
El_Che throw an o somethere
19:26 rurban left
adu Antonymous 19:27
masak .oO( Retronymous: we were legion )
Patronymous
adu Backronymous
masak the latter being part of the BLA, but no-one has any expansion for that acronym. 19:28
...yet.
19:28 dj_goku joined
FROGGS__ bla? like the color? 19:28
TimToady Backronymous Lags Acronymous 19:29
masak ooh, Acronymous!
they are not in the least bitter, oh no.
adu TimToady: wow that sounds Latin 19:30
El_Che ab asino lanam 19:33
TimToady something about east and southeast asia, I think 19:34
adu dolorem ipsum 19:35
El_Che (like getting) wool from a donkey
although the 'ass' translation is funnier
psch .oO( we have always been saying that south east asia must destroy carthage )
El_Che :) 19:36
that could be a good end for a talk 19:37
[Language of choice here] delenda est
adu it always hurts my humanity when I see "Lorem ipsum"
19:39 Mso150 left 19:40 Mso150 joined
adu the original words were "dolorem ipsum", and "do-" was hyphenated on the previous page, and so what might have been "Wednesday poker nights" is now "Nesday Poker", which is synonymous with nonsense text. 19:41
TimToady not as bad as hyphenating horsemen after the r 19:42
adu TimToady: huh? 19:43
r-hosemen?
huf you know, pen is mightier, japan-us relations, an album cover 19:44
geekosaur hor-semen
huf that sort of thing.
adu ooh
El_Che wasn't hor a pharao? 19:45
adu anal bum cover?
huf yes, unlike the other bums 19:46
adu huf: I feel like everyone here has already made a list of hyphenation mistakes
huf sinners, all of us
19:46 tgt left 20:00 spider-mario joined 20:01 tgt joined
TimToady hoelzro: @notes .= sort.uniq; should say 'Useless use of .uniq in sink context' probably 20:01
@notes.=sort.=unique might do what you want 20:02
m: my @notes = < a b a b b a c d a d b c >; @notes.=sort.=unique; say @notes 20:05
camelia rakudo-moar c5dcdf: OUTPUT«a b c d␤»
TimToady er, actually, that's a waste
m: my @notes = < a b a b b a c d a d b c >; @notes.=sort.=squish; say @notes
camelia rakudo-moar c5dcdf: OUTPUT«a b c d␤»
hoelzro TimToady: why would .uniq be in sink context there?
because it would parse as (@notes .= sort).uniq?
TimToady probably 20:06
.= is not a real operator
hoelzro is it weird that I interpret @notes .= .sort.uniq as @notes = @notes.sort.uniq?
TimToady insofar as it forces the next word to be taken as a method call
it's a natural enough error that we should think about whether it's possible it could dwym 20:07
lizmat hoelzro: not weird to me 20:08
m: my @a; @a .= sort.=unique
camelia rakudo-moar c5dcdf: OUTPUT«===SORRY!===␤Method call node requires at least one child␤»
lizmat that's at least LTA :-)
20:10 darutoko left
TimToady m: my $x = 42; $x .= sqrt++; say $x 20:10
camelia rakudo-moar c5dcdf: OUTPUT«===SORRY!=== Error while compiling /tmp/CJAh0Sife0␤Preceding context expects a term, but found infix + instead␤at /tmp/CJAh0Sife0:1␤------> my $x = 42; $x .= sqrt++⏏; say $x␤»
TimToady m: my $x = 42; ($x .= sqrt)++; say $x 20:11
camelia rakudo-moar c5dcdf: OUTPUT«7.48074069840786␤»
TimToady trying to make it dwim might only increase confusion 20:12
.= as an operator is already high in bogonic density
20:15 masak joined, esaym153 joined, jack_rabbit joined, masak is now known as Guest34696 20:16 Guest34696 is now known as masak_grr
adu maybe there's something I'm still not understanding 20:19
so QAST can represent things like constants, variables, and expressions
but how are things like Modules, Classes, Grammars, Methods, Subs, and the like represented? 20:20
jnthn Objects. 20:21
FROGGS__ they are added to the SC, and referenced by a lexical lookup for example
adu what's SC?
[Coke] SC is our giant internal company wide intranet, so I am frequently wondering what the hell is going on here until I remember where I am.
jnthn haha 20:22
Serialization Context
[Coke] HA. didn't see adu's question first.
FROGGS__ serialization context
masak_grr serialization context
jnthn Basically "the set of objects that we created during the compile that should be persisted if we compile the program to bytecode"
masak_grr: such slow!
masak_grr jnthn: it means "Serialization Context"
adu so serialization context == compilation unit?
masak_grr no, "compilation unit" is a file or eval string. 20:23
jnthn Well, a compilation unit has a serialization context, if you want to be precise.
20:23 rindolf left
jnthn QAST::CompUnit has a :sc(...) that you set when constructing it 20:23
FROGGS__ and a CU/SC can/does refer to other SC's
SCs*
adu when going from String -> AST shouldn't it be called a deserialization context?
jnthn That's the top-level linkage between declarative and executive stuff.
20:24 denis_boyun joined
moritz masak_grr: what's up with your nick? 20:24
jnthn It never becomes an AST, or a string for that matter
It's all about objects.
adu jnthn: then what does it have anything to do with "serialization"?
masak_grr moritz: proper one got temporarily unavaliablized during an IRC storm.
FROGGS__ the .moarvm file that gets created is a serialized blob 20:25
... of moarvm instructions
adu oh
do you mean the environment?
FROGGS__ no
adu FROGGS__: do you know what I mean by environment? 20:26
FROGGS__ I am talking about what we usually call precompilation
adu: perhaps not, now that you ask :o)
jnthn FROGGS__: That's only half true. It's also containing a bunch of bytes representing serialized objects.
Basically, QAST is all about executional stuff.
Every declaration you write in your program becomes an object. 20:27
QAST is always turned into bytecode for the target VM, whether we run immediately or save to disk.
The objects created by declarations are, if we precompile, also serialized (to a bunch of bytes). 20:28
The MoarVM file contains both of these (same for the .jar on the JVM)
adu FROGGS__: well, there are 2 common uses: a Bash environment is a hashtable available to all processes (usually with getenv or setenv), a Scheme environment is a linked list of hashtables, and are unique to all lexical scopes. (when you are evaluating Scheme code and start evaluating a function body, for example, a new environment would be pushed on the stack, and when you return from a function body, then the environment would be pop'e 20:29
jnthn The QAST tree can reference objects created by declaratoins using a QAST::WVal. This actually compiles into an index into a serialization context.
FROGGS__ adu: like a callframe?
adu FROGGS__: kind of, only that makes me think of assembly 20:30
FROGGS__ (WVal mean World Value)
jnthn *nod*
adu FROGGS__: frames in asm would be the same idea only local variables are represented in a list instead of a hashtable 20:31
jnthn In MoarVM, most lexical accesses are done with a list
The hash to list index is kept statically and only used if we ever do a named lookup.
adu doesn't Parrot do that too?
jnthn I'm not sure. 20:32
I know on JVM we also do the same as on Moar.
lizmat Q: is BUILDALL an implementation detail, or do we expect classes to be able to subclass that ?? 20:33
adu jnthn: so are there similarities between this SC and lexical envionments? 20:34
jnthn adu: Not really. An SC is just an array of objects, and an array of code refs.
And also an implementation detail.
lizmat: Well, technically you *can* subclass it, but you'll really, really, need to know what you're doing. :) 20:35
It's in the spec.
lizmat jnthn: so I was thinking of turning BUILDALL into a private method
jnthn lizmat: How does that help?
And, uh, you can't. 20:36
lizmat faster ?
ah, subclassing
jnthn That is SO not where the cost is.
Remember that spesh can devirtualize a lot of method calls anyway.
And indy on the JVM
lizmat ok, *plonk* for that one then 20:37
jnthn Also, keeping it virtual is an important part of my idea for speeding object construction up
adu jnthn: so classes are represented as ClassHOW's, grammars as GrammarHOW's, and they get added to something called the "SC" which has nothing to do with lexical context? 20:38
jnthn adu: Correct. They may *additionally* be installed in lexpads, packages, etc. But anonymous classes cannot be, for example.
Well, s/cannot be/are not/ :)
adu and a lexpad, I think, is exactly what Scheme calls lexical environments
jnthn lizmat: I've been pondering (was discussing with timotimo++ on #moarvm yesterday) that we should compile the BUILDPLAN into a BUILDALL method specific to the class in question. 20:39
lizmat: Rather than having a generic BUILDALL that interprets the plan.
lizmat jnthn: ok, ah, I see 20:40
jnthn lizmat: Which could be a huge improvement.
lizmat the reason is that I found that making BUILD a private method called in a custom new() is much faster
than it being a submethod (at least in the simple case)
jnthn Yes, though I suspect that's 'cus it circumvents the interpretation in BUILDALL, primarily.
lizmat now that the dispatcher:<!> is optimized 20:41
again
jnthn If you call the submethod in a custom new, I'd expect it'd also be fast?
lizmat let me test that again (to be 100% sure :-) 20:42
itz has moar been tried much on PPC? I have access 20:44
jnthn OK. I'll be a bit surprised, 'cus submethod dispatches should be hitting the method cache at the very least.
itz: I know a bunch of work was done by nwc10++ on PPC support
itz: We could do with regular builds to make sure it stays working.
itz: I dunno if you're in a position to do that; if you are it'd help. 20:45
20:45 noganex left
itz yeah I have shell access to a friend's linux box and will give it a go 20:46
hoelzro $^var are auto declared positional block params, right? should they work in a block provided to for?
ex. for 1 .. 5 -> { say $^v }
lizmat jnthn: indeed, no diff between private and submethod BUILD
mucho difference calling BUILD directly in new
jnthn lizmat: There, then that matches my analysis of where the cost is. 20:47
hoelzro: Not if you write ->
hoelzro: that already is specifying a sig. 20:48
m: for 1 .. 5 -> { say $^v }
camelia rakudo-moar c5dcdf: OUTPUT«===SORRY!=== Error while compiling /tmp/kmD8Jn74GZ␤Placeholder variable '$^v' cannot override existing signature␤at /tmp/kmD8Jn74GZ:1␤------> for 1 .. 5 -> { say $^v }⏏<EOL>␤»
jnthn Yay. Correct error :)
hoelzro ahhhhh
jnthn m: for 1 .. 5 { say $^v }
camelia rakudo-moar c5dcdf: OUTPUT«1␤2␤3␤4␤5␤»
hoelzro thank you for pointing that out jnthn
jnthn np :)
hoelzro I didn't look at my own code closely enough =)
FROGGS__ 'pointing that out' - that covers it :o) 20:50
skids now there's a pointed comment.
hoelzro buh dum tsch 20:51
jnthn At least it unblocked him :P
skids groans 20:52
masak_grr .oO( someone got the point? )
mst jnthn: I guess that's a reasonable position to take 20:54
FROGGS__ gather around, gather around, that wasnt the last 20:55
adu jnthn: so it sounds like the SC has a lot in common with DSOs
20:59 denis_boyun___ joined 21:00 denis_boyun left
dalek kudo/nom: 667cfa4 | lizmat++ | src/core/ (2 files):
Don't need extra variable in .new
21:03
kudo/nom: 318be42 | lizmat++ | src/core/MapIter.pm:
Don't need lexical nor optional parameters
21:11 Mso150_f joined, Mso150 left
masak_grr what, the point puns just dies out? we didn't even reach peak point! 21:12
lizmat I guess someone just punted it away 21:13
skids We didn't want to belabor the point that hoelzro missed the big arrow pointing right at the problem. 21:14
raydiak There is no point. 21:15
TimToady started to feel listless 21:17
geekosaur next up, the great listless refactor... 21:18
TimToady the native arrays are listless tonight... 21:19
21:19 kaare__ joined
skids
.oO(if this flash drive doesn't hurry up I may be stuck here for the whole friday punorama. yikes.)
21:20
TimToady that would be NFG 21:21
FROGGS__ raydiak: that's one poїnt to many!
gnight & 21:22
TimToady ô/ 21:23
21:24 kjs_ joined, kjs_ left 21:25 xfix left 21:28 masak_grr is now known as masak
lizmat a nick may lose its _grrr, but not its .... 21:28
masak you can take the grrr out of the masak, but you can't take the masak out of the grrr! 21:29
lizmat :- 21:30
)
masak that's the laziest smiley I've ever seen.
delivered on demand!
TimToady kind of the opposite of a Cheshire smiley
skids It's a litsless smiley. 21:31
masak decides to start off a discussion
SQL table names: singular, or plural?
TimToady they should be named things like master, and slave, and auxiliary 21:32
skids definitely not both.
bcode the solution is to find some language that doesn't have separate plural forms and name your tables in that language, of course 21:33
everyone will be happy!
jnthn masak: About rt.perl.org/Ticket/Display.html?id=123078 - do we really want errors to reveal private stuff inside the object?
masak jnthn: oh! it was evident to me, so I left it unsaid: the private method has to have *been able to be called*. 21:34
jnthn: either because we're in the object itself, of because we trust that class.
no wait, the other way around: because that other class trusts us.
skids Use proper nouns. They looked funny when pluralized so nobody will do it. 21:35
TimToady is one of the class members named Bobby Tables?
jnthn masak: Uh, so that means producing the errors also needs to introspect the backtrace of the point the method was called to decide whether or not to mention it?
jnthn wonders if this error is worth the cost of writing/maintaining the code to produce it :) 21:36
Well, s/error/hint/
21:37 denis_boyun_ joined
[Coke] I prefer singular names for tables that are nouns. 21:38
21:38 denis_boyun___ left
masak if errors were judged against the cost of writing/maintaining the code to produce it, we'd have lots worse errors than we do, and we wouldn't keep repeating the maxim "torment the devs". 21:38
s/'it,'/them,/ 21:39
jnthn There's gotta be a line somewhere, and for me this is on the "not worth it" side of the line, is all.
If anyone writes a patch to do it, I won't object, I guess. 21:40
masak [Coke]: the style guide I just found says they should be plural, because a table consists of several whatevers.
skids name all your tables with different spellings of Bruce and be done with it. 21:41
21:43 noganex joined, noganex left
dalek kudo/nom: 90f3778 | lizmat++ | src/core/Match.pm:
Give Match its own new/BUILD

This improves the Text::CSV benchmark with 2%, and should have a noticeable effect on other Match heavy applications.
21:44
[Tux] :)
[Coke] lizmat: ^^ Should that have a comment or something indicating it was added soley for performance reasons? 21:45
does it change the functionality at all?
lizmat no functionality change
dalek kudo/nom: 0061eda | lizmat++ | src/core/Match.pm:
Mention new/BUILD are there only for performance
21:46
TimToady that looks completely bogus to me 21:47
BUILD is supposed to have named parameters, so you've prevented anyone from ever deriving from Match 21:48
lizmat TimToady: but it;s a submethod BUILD ? 21:49
21:49 ssutch left
lizmat changes 21:49
El_Che lizmat: not too much I hope :) 21:52
lizmat no, been there, done that :-)
21:55 denis_boyun_ left, denis_boyun joined
raydiak lizmat: why do you name it BUILD if you are entirely circumventing all the bless/BUILDALL stuff which is responsible for calling BUILD? could just name it something else and un-break it for inheriting classes, if I'm not mistaken 21:55
lizmat I've considered that, but found other cases in the core that took the same approach 21:56
so I considered it to be confusing to change that meme 21:57
dalek kudo/nom: cd0614e | lizmat++ | src/core/Match.pm:
Make Match subclassable again, TimToady++
21:58 noganex joined
nwc10 1 file changed, 4 insertions(+), 7 deletions(-) 22:00
lizmat ?
22:00 denis_boyun left
nwc10 less code, same functionality 22:00
that's good ,right?
lizmat yes, but all of those lines were added just 2 commits before that :-) 22:01
nwc10 I'm OK with that downside
I more meant, that the new way of doing the optimisation is also pleasingly shorter
(as well as fixing the problem TimToady noted) 22:02
I'm not good enough at Perl 6 stuff to know what the other implications are 22:03
22:03 denis_boyun_ joined
lizmat there shouldn't be other implications, and the spectest thinks so as well 22:07
22:09 denis_boyun_ left
nwc10 win! 22:10
jnthn spectests today's little fix. :)
lizmat
.oO( that sounds promising! )
22:11
22:11 tgt left 22:14 skids left
[Coke] Promise-ing? 22:17
lizmat
.oO( only if jnthn keeps it )
22:18
avuserow_ I agree with arnsholt and moritz's comments about going from Buf[uint16] to Buf[uint8] and it being needed for NativeCall. In particular, my attempt at making Compress::Snappy handle non-utf8 data was frustrated by this. 22:22
22:22 raiph joined
jnthn I'm not masochistic enough to debug conc bugs on vacation :P 22:22
dalek kudo/nom: 47f3252 | jnthn++ | src/ (3 files):
Exporting an enum should export the values.

Fixes RT#123114.
22:23
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...?id=123114
masak (yay)
jnthn++
lizmat jnthn++ indeed!
22:23 donaldh joined
psch jnthn++ # looks less horrid than my attempt at that bug 22:24
masak can we now submit a follow-up ticket about poisoned enum values not working properly? :P
22:24 IllvilJa left
masak <-- evil 22:24
jnthn masak: If you like, especially as you'll need to come up with a concise example, which basically means a test case :) 22:25
masak aye.
jnthn Also the code that needs fixing for that is in a totally different place, so it didn't make sense to tackle the two together.
(It's an importer thing, this was all export side)
Anyway, tagged the ticket testneeded. 22:26
If somebody fancies turning the example into a test, please do. Then we can close it. :)
masak more and more, I see the actions centering around RT as a small ecology. there are producers, consumers, and decomposers. just like in nature. 22:27
masak .oO( it's the ci-i-i-rcle of life... )
22:27 IllvilJa joined
jnthn Sleep time here. 'night 22:30
masak 'night, jnthn++ 22:31
lizmat night jnthn 22:33
22:33 IllvilJa left 22:35 IllvilJa 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 22:37
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 I'm sorry?
:(
temporary glitch? or... international conspiracy?
m: say "do you even lift?" 22:38
camelia rakudo-moar c5dcdf: OUTPUT«do you even lift?␤»
masak m: module M1 { enum A is export <B C> }; module M2 { enum X is export <Y Z> }; import M1; import M2; say B
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 hrm.
works locally, fwiw.
dalek kudo/nom: d1a5151 | lizmat++ | src/core/ (5 files):
Make Set/Bag/Mix creation faster
22:40
kudo/nom: 0459ebd | lizmat++ | src/core/Capture.pm:
Make Capture creation faster
donaldh Finally tracked down the cause of NQPMatch objects getting serialized in the setting. 22:42
lizmat donaldh: and?
donaldh QAST::Node.shallow_clone is copying the Node annotations by reference and the before_promotion annotation references QAST::Node that contains an NQPMatch. 22:43
Question is, should the clone's annotations be cleared? 22:44
Or should the annotations be kept, but cleaned up - problematic because there are cyclic references to deal with it seems. 22:45
lizmat I have no idea, jnthn FROGGS__ moritz might ? 22:46
donaldh I'm guessing that it's okay to clear the annotations. But I'd like some guidance on whether it's okay to have QAST::Node.shallow_clone always clear the annotations.
Yeah, I probably need to ask jnthn and I see he's off to bed. 22:47
masak m: module M1 { enum A is export <B C> }; module M2 { enum X is export <Y Z> }; import M1; import M2; say B 22:51
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 :/
22:51 adu left
lizmat $ 6 'module M1 { enum A is export <B C> }; module M2 { enum X is export <Y Z> }; import M1; import M2; say B' 22:51
B
masak right, same here. 22:52
lizmat so camelia is just behind, right ?
masak oh, two days behind. 22:53
something is failing to update camelia.
lizmat++
22:53 Mouq_ joined
lizmat maybe moritz can do something about that 22:54
lizmat is going to bed now
so good night, #perl6!
masak 'night, liz
donaldh 'night o/
raydiak good night lizmat
dalek p: 636872f | peschwa++ | src/HLL/Compiler.nqp:
Fix RT #77894 the most obvious way.
22:55
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...l?id=77894
psch g'night lizmat
dalek ast: b1490b5 | peschwa++ | S19-command-line/arguments.t:
Add test for RT #77894.
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...l?id=77894
22:55 jluis left 22:57 Mouq left
raiph .ask psch Do you have ideas about why jnthn's util::zip::CRC32 example fails? His original code yields "No such method 'method/update/(B)V' for invocant of type 'java.util.zip.CRC32'"; replacing that expression with the shortname'd `$crc.update($_)` instead yields "Couldn't parse arguments in Java call. (Did you pass a type object?)" 23:01
yoleaux raiph: I'll pass your message to psch.
psch raiph: yes, the descriptor is wrong. afair i corrected it for my advent post but neglected to mention in needed correcting 23:02
yoleaux 23:01Z <raiph> psch: Do you have ideas about why jnthn's util::zip::CRC32 example fails? His original code yields "No such method 'method/update/(B)V' for invocant of type 'java.util.zip.CRC32'"; replacing that expression with the shortname'd `$crc.update($_)` instead yields "Couldn't parse arguments in Java call. (Did you pass a type object?)"
psch raiph: or i might be misremembering this again...
timotimo did anybody measure the speed improvements lizmats constructor work have given?
23:02 Mso150_f left
psch timotimo: she said 2% i think? 23:03
23:03 abraxxa joined
timotimo only for one benchmark and one of the improvements 23:03
tell japhb i've started a run of perl6-bench ("quickstart") on the weekend, now i'm finally watching the output and it gives me lots and lots of lines with Run command did not produce expected output: install/bin/nqp-m -e my @a; nqp::push(@a,42); my $i := 0; while ($i := $i + 1) <= 378453 { nqp::push(@a, @a) }; say(+@a); 23:04
23:04 Mso150_f joined
timotimo and the number in the <= * always increases by one 23:04
psch raiph: this is about stackoverflow.com/questions/27156329/ right? the answer by the asker resolves this. i fixed the unbox error
raiph: unless the example with "method/update/(I)V" still doesn't work, in that case i'd have to dig 23:05
timotimo tell japhb i'd be interested in some kind of way to control what perl6-bench does; like a signal handler for USR1 to cancel the current implementation perhaps?
psch timotimo: s/^/./
23:06 berekuk joined
timotimo oh 23:06
.tell 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 23:07
yoleaux timotimo: I'll pass your message to japhb.
psch raiph: uh, apologies, i should've finished reading your tell... :)
timotimo .tell 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 23:11
yoleaux timotimo: I'll pass your message to japhb.
psch m: my Buf $x = "f".encode('utf-8'); say "y" if nqp::isint($x[0]) 23:12
camelia rakudo-moar c5dcdf: OUTPUT«Type check failed in assignment to '$x'; expected 'Buf' but got 'utf8'␤ in block <unit> at /tmp/Y3QGfY3GWO:1␤␤»
psch m: my $x = "f".encode('utf-8'); say "y" if nqp::isint($x[0])
camelia ( no output )
psch raiph: ^^^ that's half of the problem. the other half is that the generic unboxing doesn't work for Blob (i think that's what utf8 is?) 23:13
23:17 donaldh left 23:19 treehug88 left
psch will look closer at that example tomorrow 23:20
i think it's about container types to java, but i'm not sure
although i did test that, but only with Int @foo
well, writing more tests etc. 23:21
g'night o/
raiph psch: sorry, was afk, thanks and goodnight 23:23
23:23 Mouq_ left 23:34 mvuets left 23:35 adu joined 23:37 Rounin joined 23:38 cognominal joined 23:46 Mouq joined 23:48 skids joined 23:54 BenGoldberg joined 23:57 spider-mario left