Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2014-08-17

Perl 6 | Reference Documentation | Rakudo

| Channels | #perl6 index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

Time Nick Message
00:01 * TimToady thinks it's pretty darn ugly
00:02 Mouq :)
00:03 TimToady on top of which, list infix isn't loose enough to admit list comprehensions
00:04 TimToady it really does need to parse as a sequence of statements, except without the sequence part
00:04 TimToady well, they're still in a sequence, but we'd do something else with it
00:04 TimToady I could see ,, as a C comma thogh
00:04 TimToady *u
00:05 TimToady but S seems just as good for that
00:05 TimToady it's the "second" operator, it returns the second of the values :)
00:06 Mouq m: sub infix:<;> (**@l) is looser(&[X]) is assoc('list') { @l }; say (1;2 ... 10;3, 4 Z 7,3).perl
00:06 camelia rakudo-moar 9e475e: OUTPUT«lol(1, (2, 3, 4, 5, 6, 7, 8, 9, 10).list.item, ((3, 7), (4, 3)).list.item)␤»
00:06 jnthn Make it 'n
00:06 jnthn this 'n that 'n the other
00:06 jnthn :P
00:07 TimToady well, then would work
00:07 jnthn :)
00:07 jnthn Puns a little with .then on Promise
00:08 jnthn Or conflicts, or reminds of, or something...
00:08 TimToady heh, someone stretched yer semicolon
00:08 TimToady .u ;
00:08 yoleaux U+FF1B FULLWIDTH SEMICOLON [Po] (;)
00:09 BenGoldberg m: say [R,] 1..5; # can we get a better error message here?
00:09 camelia rakudo-moar 9e475e: OUTPUT«Too many positional parameters passed; got 5 but expected 2␤  in block  at src/gen/m-CORE.setting:17554␤  in sub  at src/gen/m-CORE.setting:17696␤  in block  at /tmp/CSKhnWdTJN:1␤␤»
00:10 BenGoldberg m: say [,] 1..5;
00:11 camelia rakudo-moar 9e475e: OUTPUT«1 2 3 4 5␤»
00:11 TimToady seems more like a bug
00:14 TimToady but I kinda like S as the 'statement' operator :)
00:14 TimToady or the 'sink' operator
00:14 TimToady or the 'second value' operator
00:14 TimToady or the 'silly songs with larry' operator
00:16 [Coke] OSH*T, I have the compiler release this week. whee.
00:16 lue or the 'something useful' operator :)
00:17 TimToady just don't suggest Ꙅ to mean RS
00:18 lue I wouldn't be surprised if at some point we give up trying to be ASCII-compatible and instead market special Perl 6 keyboards.
00:19 TimToady just sell a Compose key they can paste on the side
00:19 [Coke] Anyone has any changes for the changelog, now's a good time to update. :)
00:24 avuserow joined #perl6
00:41 jnthn Time for sleep; night o/
00:41 Mouq .ask lizmat Should "1[1]:kv" warn that the index is out of range? I would like it to for the LoL code, but if it should be the way it is, I'll work around it
00:41 yoleaux Mouq: I'll pass your message to lizmat.
00:42 Mouq \o jnthn
00:42 BenGoldberg How did APL programmers handle the keyboard problem?
00:47 TimToady custom keyboard with overstrike
00:51 thou joined #perl6
00:52 TimToady LMGTFY: http://en.wikipedia.org/wiki/A​PL_%28programming_language%29
01:09 * [Coke] bets the APL variant he worked on no longer builds on parrot.
01:12 colomon "Cannot use Bool as Matcher with '.grep'.  Did you mean to use $_ inside a block?"  aiieeee!
01:15 colomon how else am I supposed to indicate to pass everything through grep?  (it's the default)
01:16 BenGoldberg grep { True }, ..., perhaps?
01:17 colomon that works.  seems a bit… annoying.
01:17 colomon BenGoldberg++
01:17 BenGoldberg :)
01:17 BenGoldberg Or just omit the grep ;)
01:18 colomon BenGoldberg: it's not direct.  it's $filter = { True } (in a sig, so that's the default) and then later grep($filter)
01:19 BenGoldberg do a given/when on the filter, optimize the True and False cases, so the grep is only done for an actual filter.
01:24 Mouq joined #perl6
01:24 Mouq colomon: You could use Whatever/*
01:24 Mouq m: say grep *, False
01:24 camelia rakudo-moar 9e475e: OUTPUT«False␤»
01:25 BenGoldberg Ooh :)
01:26 FROGGS_ joined #perl6
01:27 aoseki joined #perl6
01:30 colomon aye, Whatever star works nicely.
01:30 colomon Mouq++
01:42 TimToady m: say grep Mu, False
01:45 camelia rakudo-moar 9e475e: OUTPUT«False␤»
01:45 TimToady that too
01:45 klapperl_ joined #perl6
01:45 BenGoldberg m: say so Mu;
01:45 camelia rakudo-moar 9e475e: OUTPUT«False␤»
01:47 ilbot3 joined #perl6
01:47 Topic for #perl6 is now »ö« Welcome to Perl 6! | http://perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:,  niecza:, std:, or /msg camelia perl6: ... | irclog: http://irc.perl6.org | UTF-8 is our friend!
01:47 TimToady m: say grep Nil, True
01:47 camelia rakudo-moar 9e475e: OUTPUT«␤»
01:48 TimToady close enough to a Top and Bottom type for this purpose
01:48 TimToady though * is fine for true as well
01:49 iarna joined #perl6
01:51 TimToady m: say grep all, False
01:51 camelia rakudo-moar 9e475e: OUTPUT«False␤»
01:51 TimToady m: say grep none, True
01:51 camelia rakudo-moar 9e475e: OUTPUT«True␤»
01:51 TimToady oops :)
01:52 TimToady m: say grep any, True
01:52 camelia rakudo-moar 9e475e: OUTPUT«␤»
01:52 BenGoldberg m: say grep one, True, False
01:52 camelia rakudo-moar 9e475e: OUTPUT«␤»
01:54 TimToady unfortunately, none() is always true...
02:11 dalek rakudo/nom: b52ef05 | coke++ | docs/announce/2014.08.md:
02:11 dalek rakudo/nom: Add placeholder release announcement for 2014.08
02:11 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/b52ef05c7e
02:38 rurban1 joined #perl6
02:39 thou joined #perl6
02:49 noganex_ joined #perl6
02:57 haroldwu joined #perl6
03:12 klaas-janstol joined #perl6
03:14 j4jackj TimToady: hi.
03:15 xragnar_ joined #perl6
03:22 kurahaupo joined #perl6
03:26 rindolf joined #perl6
03:30 ClarusCogitatio joined #perl6
03:47 ClarusCogitatio joined #perl6
04:07 ClarusCogitatio joined #perl6
04:10 Mouq joined #perl6
04:23 ClarusCogitatio joined #perl6
04:25 thou joined #perl6
04:39 kaare__ joined #perl6
04:59 Mouq I know that this topic was brought up a few months ago, and I don't remember the conclusion, but the spec still says Parcel and LoL should be immutable and Rakudo still seems to disagree
05:00 Mouq At least, WRT to .WHICH
05:00 Mouq m: say (4,5).Parcel.WHICH
05:00 camelia rakudo-moar b52ef0: OUTPUT«Parcel|139892831858408␤»
05:00 Mouq m: say lol(4,5).WHICH
05:00 camelia rakudo-moar b52ef0: OUTPUT«LoL|140211260317384␤»
05:01 Mouq m: my @a := (4,3).Parcel; @a[2] = 5; say @a
05:01 camelia rakudo-moar b52ef0: OUTPUT«4 3␤»
05:01 Mouq m: my @a := lol(4,3); @a[2] = 5; say @a
05:01 camelia rakudo-moar b52ef0: OUTPUT«Cannot modify an immutable Any␤  in method assign_pos at src/gen/m-CORE.setting:1812␤  in sub postcircumfix:<[ ]> at src/gen/m-CORE.setting:2511␤  in block  at /tmp/Rdn408Irgv:1␤␤»
05:01 TimToady as containers they're supposed to be immutable
05:01 TimToady though they may contain mutable containers
05:02 ClarusCogitatio joined #perl6
05:04 * TimToady very nearly has a patch to make (;;) work, but it blows up in the mast stage: "arg expression cannot be void"
05:04 TimToady a lot of stuff flows through circumfix:<( )> alas
05:05 TimToady spent a couple hours getting "is repr('foo')" to parse and treat 'foo' as a constant...
05:05 * Mouq would like to note that he is usually mostly motivated by being unable to do things he'd like to, like not being able to write a TOML parser easily without LoL indicies, or in this case, doing using LoLs as 2d indicies and trying to do set operations on them
05:06 Mouq s/doing//
05:07 Mouq TimToady: :( Debugging this stuff is extremely hard
05:07 * TimToady is usually motivated by things that need to change but nobody else is willing to try :)
05:07 TimToady have you found any secrets for printing out $<foo> objects prettily?
05:08 TimToady where that's an nqp match, not a p6 match?
05:08 Mouq No.. we should probably add a routine to do that for debugging
05:09 TimToady at least I can parse the whole setting now, so I guess now I need to print out MAST
05:09 TimToady or maybe PAST
05:10 TimToady to figure out what wants an argument that is getting ()
05:10 Mouq TimToady++ # stubbornness
05:11 TimToady it's a necessary but not sufficient condition for what I do :/
05:14 ClarusCogitatio joined #perl6
05:21 TimToady actually, looks like there are decent dump routines for QAST
05:26 ClarusCogitatio joined #perl6
05:33 ClarusCogitatio joined #perl6
05:41 TimToady success!
05:41 Mouq \o/
05:42 TimToady of course, the one place Perl 6 uses (;;) in anger is in src/core/GatherIter.pm (line 24)
05:42 TimToady deep in the bowels of the gather/take logic
05:42 TimToady changing it to do {;;} makes it at least finish the compile
05:42 TimToady now to spectest
05:45 TimToady > say [<a b c>; 1,2,3; rand xx 3].[*;1]
05:45 TimToady b 2 0.520140755260778
05:46 TimToady > say (42; 43; 44).WHAT
05:46 TimToady (LoL)
05:52 timotimo o/
05:52 TimToady \o
05:52 TimToady well, not surprisingly, failing a number of tests, so not quite ready for primetime
05:53 Mouq TimToady: There's also the release around the corner
05:53 Mouq and o/ timotimo
05:54 timotimo i personally am fond of LoLification, too
05:54 TimToady yes, I wasn't gonna check this if there was any doubt, and there seems to be sufficient doubt to keep this in a branch for now
05:55 Mouq Though I ran a naive search on the star modules and didn't find any use of "\( <-[)]>* \;" nor "\[ <-[\]]>* \;"
05:56 TimToady some of the tests are even looping
05:56 TimToady well it could be just something slightly out-of-whack for ;-less () or [] too
05:57 TimToady I was actually surprised that the compiler "found" a real one in gather/take
05:57 TimToady I'll have to look at the tests to see if they're miswritten wrt the new semantics, or if something else is going on
05:58 TimToady or there might be something subtle with changing the (;;) to do {;;} in gather/take
06:00 TimToady I could just run that change in the nom branch and see if it flakes out
06:03 TimToady I keep thinking another test has hung, and then realize I'm still in S17
06:04 TimToady which tests take their jolly sweet time
06:08 Mouq m: say ({.WHICH.say;$_}(lol(3,2)).push: 4).WHICH # mutable :/
06:08 camelia rakudo-moar b52ef0: OUTPUT«LoL|140526816151336␤LoL|140526816151336␤»
06:15 dalek rakudo/nom: 7752c57 | duff++ | src/core/LoL.pm:
06:15 dalek rakudo/nom: Prevent infinite recurse on bare "zip"; fixes RT #119337
06:15 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/7752c57972
06:15 synopsebot Link: https://rt.perl.org/rt3//Publ​ic/Bug/Display.html?id=119337
06:17 timotimo .tell japhb maybe the command i was thinking of could be called "testrun" and it could take either a component name if given, the system-wide "perl6/nqp/..."  or a compiler by filename
06:17 yoleaux timotimo: I'll pass your message to japhb.
06:20 Mouq m: [Z]
06:20 camelia rakudo-moar b52ef0: OUTPUT«(timeout)»
06:38 dalek rakudo/lolly: 0f01a5d | TimToady++ | src/ (2 files):
06:38 dalek rakudo/lolly: First whack at (;;) and [;;] producing LoL
06:38 dalek rakudo/lolly:
06:38 dalek rakudo/lolly: It works for those constructs, but breaks other stuff subtly.
06:38 dalek rakudo/lolly: review: https://github.com/rakudo/rakudo/commit/0f01a5d0c9
06:48 TimToady the answer is yes, gather/take depends critically somehow on the exact nature of (;;) when passed as the 3rd arg of nqp::handle
06:48 timotimo o_O
06:48 TimToady I think it's thunking it somehow
06:49 timotimo i don't even know what (;;) used to be
06:49 TimToady it's like do {;;}
06:49 timotimo but it's not very unlikely that an nqp:: op thunks something
06:49 timotimo like nqp::for for example
06:51 TimToady I'll have to glare at it tomorrow; changing it to do {;;} allows it to compile, but breaks gather/take
06:52 timotimo OK
06:52 TimToady so I rather suspect that nqp is using (;;) for a different kind of relationship between the "statements" than a normal block does
06:53 timotimo i don't know much about the handler stuff, apart from "the handlers are magical, usually in their own kind of way"
06:53 TimToady or it can only invoke the semilist directly
06:53 timotimo well, at that point i don't think an actual "semilist" exists at all
06:54 TimToady it's been partially statement-ified by that point
06:55 TimToady maybe it needs the "returns" set
06:57 TimToady but I think it's just installing three statements somewhere
06:58 TimToady well, I need to figure out gather/take anyway so I can start to think about batchifying it
06:58 timotimo find moarvm's implementation of handle in QASTOperationsMAST.nqp inside nqp beginning at line 1602
06:59 TimToady yes, that's where I had to put instrumentation to find where it was mis-compiling
06:59 TimToady but my brane is too frazzled to do much more tonight
07:00 gfldex joined #perl6
07:00 timotimo ah
07:00 timotimo i can't read much into the code there either
07:00 timotimo except that the handler seems to kind of be shoved into the QAST "just like that"
07:02 timotimo we have an "invoke_and_we'll_see" handler action type ...
07:06 TimToady yeah, might just have to construct something with nqp:: ops there in gather/take
07:07 timotimo jnthn or arnsholt would know more about that, i believe; didn't arnsholt do a bunch of stuff for continuations and such?
07:08 TimToady well, I can probably just finesse it into printing out the QAST it's using currently, and reproduce that
07:08 timotimo you mean with --target=ast?
07:08 TimToady dunno, maybe something sneakier
07:09 TimToady in the action routine maybe
07:10 TimToady now that I know how to dump QAST
07:12 TimToady maybe there's some simple keyword to add, like thunk(;;), that overides the lolliness
07:14 timotimo from what i see here, (;;) gets compiled to just a call to &infix:<,> with no arguments
07:15 TimToady I mean with args
07:15 TimToady see line 24 in GatherIter.pm
07:16 timotimo oh, target=ast is probably too late to see it
07:16 timotimo oooooooh
07:24 darutoko joined #perl6
07:35 * TimToady --> 😴
08:06 telex joined #perl6
08:13 ClarusCogitatio joined #perl6
08:16 ClarusCogitatio joined #perl6
08:16 thou joined #perl6
08:28 ClarusCogitatio joined #perl6
08:42 nwc10 masak: in http://lucumr.pocoo.org/2014/8/16​/the-python-i-would-like-to-see/ -- "There is a language specification but in many cases it just codifies what the interpreter does or is even lacking" - isn't that standard for all specs? :-/
08:42 nwc10 at least, where there really only was one implementation, and the spec came second.
08:43 nwc10 (this also seems to be a reasonable assessment of the PHP spec)
08:43 ventica2 joined #perl6
08:43 nwc10 but, you are where you are. ("If I were you sir, I wouldn't start from here")
08:45 ClarusCogitatio joined #perl6
08:46 nwc10 I really have no good feel for whether his concurrency proposals would be useful enough to be performant. Or whether they'd suffer from the same problems as ithreads, when it comes the cost of spinning up a new thread
08:46 nwc10 I wonder if he's even thought about that
08:49 nwc10 oh, comments on reddit make me realise something that is actually implied by that article.
08:49 nwc10 having a GIL permits global variables. Hence the python interpreter state can quite safely be global
08:50 nwc10 hence there has never been a need to encapsulate it behind a pointer (to a structure)
08:50 nwc10 hence there is no way (without refactoring) to have two python  interpreters in the same process
08:50 nwc10 and given the shared codebase, that almost certainly still applies if one is 2 and one is 3
08:51 nwc10 so no way to ease migration by having both variants in one process
08:56 anaeem1 joined #perl6
09:03 nwc10 https://news.ycombinator.com/item?id=8186528 -- "compiling pypy also takes about half a day..." "your days must be really short, it takes an hour on my machine
09:03 nwc10 "
09:03 nwc10 and, wait, how does Rakudo compare? :-)
09:04 PotatoGim joined #perl6
09:08 xiaomiao nwc10: rakudo is "fast"
09:08 xiaomiao on a 3.4Ghz machine ... pypy takes about 7200 seconds for me
09:08 xiaomiao rakudo is somewhere in the "under 10 minute" range, afair
09:09 nwc10 when I last tried to benchmark it, pypy was about 40 minutes
09:09 nwc10 (and 6Gb, IIRC. I can't build it in 4)
09:09 nwc10 Rubinius was maybe 10 to 15 (I forget)
09:09 nwc10 and MoarVM + NQP + Rakudo was under 10
09:10 nwc10 from a VM developer point of view, pypy is pretty much unworkably slow
09:10 nwc10 I think that this will hurt them in the long term, because it's very hard to learn it, because it takes so long to learn your mistakes
09:10 nwc10 (oops, the copywriter in my head notices I used the same word 3 times)
09:12 xiaomiao I wonder if incremental builds are possible
09:13 xiaomiao but even for distro packagers it's prohibitive
09:15 nwc10 I really don't know enough about it to guess the answer to that
09:15 nwc10 I tried to benchmark it after I pretty much took out my laptop trying to install pypy with macports
09:19 cognome joined #perl6
09:23 masak good antenoon, #perl6
09:24 moritz \o
09:26 anaeem1_ joined #perl6
09:26 FROGGS_ o/
09:27 masak ϾϿ/
09:35 ventica joined #perl6
09:38 spider-mario joined #perl6
09:39 beastd joined #perl6
09:45 brrt joined #perl6
10:05 thou joined #perl6
10:07 klaas-janstol joined #perl6
10:25 anaeem1_ joined #perl6
10:31 anaeem1 joined #perl6
10:35 Rotwang joined #perl6
10:56 pmurias joined #perl6
10:56 pmurias hi
10:58 colomon \o
11:11 psch hi #perl6 o/
11:15 lizmat psch pmurias colomon masak FROGGS moritz xiaomiao nwc10 o/
11:15 yoleaux 00:41Z <Mouq> lizmat: Should "1[1]:kv" warn that the index is out of range? I would like it to for the LoL code, but if it should be the way it is, I'll work around it
11:16 colomon lizmat: \o
11:16 FROGGS o/
11:16 lizmat .tell Mouq scalars can only be indexed with [0], and nothing else
11:16 yoleaux lizmat: I'll pass your message to Mouq.
11:18 lizmat .tell Mouq although I'm not sure where that is specced
11:18 yoleaux lizmat: I'll pass your message to Mouq.
11:20 sergot hi o/
11:24 klaas-janstol joined #perl6
11:25 sergot psch: why is '$e != 4294967296' there?
11:25 psch sergot: i added that to the ticket.  it's because i used an Int for the binding, which doesn't quite work on 32bit
11:25 psch err, not ticket, the PR :)
11:25 psch "Of note is the inequality check in line 86 with 4294967296 on the RHS, which I think is an artifact of a NativeCall bug on 32bit machines with some integer types."
11:25 sergot psch: ohh, I see now
11:26 sergot I'm sorry
11:26 psch no worries
11:28 sergot psch++, merged
11:28 sergot I will add throwing exception there
11:28 sergot instead of just printing error messages
11:29 sergot thanks again :)
11:29 psch sergot: sure, it was just a quick hack to get started
11:29 psch the err bindings could definitely use more work as well...
11:31 sergot Yeah, my idea was to provide a high lvl class for OpenSSL bindings in OpenSSL.pm6
11:31 sergot We should use it, will do :)
11:32 anaeem1 joined #perl6
11:33 sergot so we can just do 'use OpenSSL' instaed of 'use OpenSSL::ERR/SSL...' :)
11:38 brrt joined #perl6
11:38 psch right, OpenSSL should probably use the err bindings internally and just return Failure for recv or something like that
11:38 sergot yeah :)
11:39 sergot hmm, I've just got an segfault using panda on latest makudo
11:39 sergot a
11:44 sergot still, after reinstalling everything
11:58 sergot is it onlym e?
12:01 * moritz enjoys http://philosophyprofessorquotes.tumblr.com/
12:01 moritz a mixture of funny and deep quotes
12:09 anaeem1__ joined #perl6
12:26 zakharyas joined #perl6
12:27 lizmat please someone remind me again why we put Test.pm's "diag" output on $*ERR, instead of $*OUT ?
12:27 * lizmat is looking at some strange $*OUT / $*ERR interactions in tests
12:28 jnthn lizmat: So it won't confuse the TAP parser?
12:28 kaare__ joined #perl6
12:28 lizmat but diag already puts a # in front of each line
12:28 lizmat so it won't confuse the TAP parser, afaik
12:35 * lizmat gives up trying to disentangle this mess
12:35 FROGGS from reading http://testanything.org/tap-specification.html I'd say diag should go to stdout
12:36 masak +1
12:36 jnthn If the protocol says so, then yeah :)
12:37 jnthn Was just guessing why it'd been done that way.
12:37 masak but I also vaguely remember the one who changed it to $*ERR saying it was the right way to go about it.
12:37 masak so maybe talk to the one in the git blame?
12:37 jnthn Ah
12:38 lizmat that would be hoelzro
12:38 lizmat anyways, even with diag on $*OUT, there are some strange buffering effects going on...  :-(
12:39 lizmat I'll wait until hoelzro wakes up  :-)
12:39 FROGGS "The harness is free, however, to display the diagnostics."
12:39 masak also maybe check the backlog around the commit.
12:39 FROGGS "A harness must only read TAP output from standard output and not from standard error."
12:50 dalek joined #perl6
12:55 brrt nwc10: about the 'what i want from python' post, i'd argue that the author really wanted lua-with-python-libs
12:55 lizmat perhaps the problem is really that we don't have the equivalent of $| yet
12:58 FROGGS std: $|
12:58 camelia std ee1ef48: OUTPUT«[31m===[0mSORRY![31m===[0m�Unsupported use of $| variable; in Perl 6 please use :autoflush on open at /tmp/3eBu2SbNS1 line 1:�------> [32m$|[33m�[31m<EOL>[0m�Parse failed�FAILED 00:00 121m�»
12:58 FROGGS ahh, I remember :o)
12:58 FROGGS I think I use that in one place at $work
12:58 lichtkind joined #perl6
13:03 brrt moritz++ for link :-)
13:07 dalek rakudo/nom: a756a17 | (Elizabeth Mattijsen)++ | lib/Test.pm:
13:07 dalek rakudo/nom: Small tweaks, more Perl6isms
13:07 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/a756a170e2
13:12 ggoebel11111110 joined #perl6
13:19 sftp_ joined #perl6
13:25 masak moritz: my favorite so far: "So you say that a thing can exist and not exist at the same time and I completely agree with you because I think you’re wrong."
13:26 masak also, today's autopun spotting: https://twitter.com/quinnnort​on/status/500751806033457152
13:38 dalek roast: e657f36 | (Elizabeth Mattijsen)++ | / (10 files):
13:38 dalek roast: Another batch of (eval_|)dies_ok -> throws_like
13:38 dalek roast: review: https://github.com/perl6/roast/commit/e657f36851
13:39 lizmat "This matter requires immediate attention.  I'll get someone to ignore it right away"
13:39 lizmat not sure in what category that falls into
13:41 thou joined #perl6
13:44 jnthn Politics? :)
13:45 lizmat Customer Service ?
13:45 jnthn Or that :)
13:46 lizmat http://www.glasbergen.com/wp-conte​nt/gallery/cartoons/toon-1991.gif   :-)
13:46 psch m: sub f($a, $) { }; &f.params>>.name.say # this still feels inconsistent to me
13:46 camelia rakudo-moar a756a1: OUTPUT«No such method 'params' for invocant of type 'Sub'␤  in block  at /tmp/uNix7PNqRO:1␤␤»
13:46 psch eh
13:46 psch signature :l
13:46 psch m: sub f($a, $) { }; &f.params.signature>>.name.say # this still feels inconsistent to me
13:46 camelia rakudo-moar a756a1: OUTPUT«No such method 'params' for invocant of type 'Sub'␤  in block  at /tmp/DOK2Ej15xe:1␤␤»
13:46 psch oh wow
13:46 * psch .oO( more actual reading and less typing please )
13:47 psch m: sub f($a, $) { }; &f.signature.params>>.name.say
13:47 camelia rakudo-moar a756a1: OUTPUT«$a Nil␤»
13:47 psch m: sub f($a, $, :$) { }; &f.signature.params>>.name.say
13:47 camelia rakudo-moar a756a1: OUTPUT«$a Nil Nil␤»
13:47 psch m: sub f($a, $, :$c) { }; &f.signature.params>>.name.say
13:47 camelia rakudo-moar a756a1: OUTPUT«$a Nil $c␤»
13:47 psch i've been trying to get .name to give only the sigil for anons, but that breaks setting compile with "cannot stringify this" and "unable to find symbol Undeclared"
13:48 psch which i take to mean that .name does something i wouldn't expect
13:48 jnthn psch: Well, the important thing to understand is that we use null in the $!variable_name slot when doing code-gen
13:48 jnthn To mean "don't spit out a bind"
13:48 jnthn And we won't have generated a lexical either
13:49 jnthn I'm not entirely sure if .name should give back a sigil
13:49 psch jnthn: that means i want .perl and not .name?
13:49 jnthn But .perl may well do so
13:49 jnthn Since we also do track (in the flags) if it's a scalar, array, etc.
13:50 psch jnthn: but for non-anons the sigil has to be around for context inference?
13:50 psch or some other purpose, maybe
13:51 psch m: sub f($a, $, :$c) { }; &f.signature.params>>.perl.say
13:51 camelia rakudo-moar a756a1: OUTPUT«Any $a Any Any :c($c)␤»
13:54 jnthn psch: Can't recall quite off hand; I know that we need it as part of binding things, and want it more cheaply than doing a substring op...
13:54 jnthn Anyway, the info is there if we want to make .perl put the $ in there
13:58 psch jnthn: right.  making .perl gives bare sigils was something i achieved inbetween
13:59 psch and i think i don't misunderstand you when i say .name is more of an internal thing
14:00 psch words are kind of hard today, it seems :)
14:01 dalek nqp-js: ae2122e | (Pawel Murias)++ | src/vm/js/QAST/Compiler.nqp:
14:01 dalek nqp-js: Implement nqp::neg_n
14:01 dalek nqp-js: review: https://github.com/pmurias​/nqp-js/commit/ae2122e9ff
14:01 dalek nqp-js: e65d7e1 | (Pawel Murias)++ | / (4 files):
14:01 dalek nqp-js: Implement the simplest possible way of calling JavaScript call.
14:01 dalek nqp-js: review: https://github.com/pmurias​/nqp-js/commit/e65d7e1f65
14:01 dalek nqp-js: 80adad8 | (Pawel Murias)++ | src/vm/js/nqp-runtime/runtime.js:
14:01 dalek nqp-js: Make nqp.to_bool work on undefined.
14:01 dalek nqp-js: review: https://github.com/pmurias​/nqp-js/commit/80adad8e53
14:01 dalek nqp-js: be58214 | (Pawel Murias)++ | examples/webpacked/ (2 files):
14:01 dalek nqp-js: A very simple port of the second p5js tutorial example.
14:01 dalek nqp-js: review: https://github.com/pmurias​/nqp-js/commit/be58214450
14:02 jnthn psch: .name doesn't have to be a more internal thing, but if we do want it to return the sigil, then that has to be done in the name method, not by tweaking what's stored in $!variable_name.
14:03 lizmat r: sub a ($a) { ... }; a(|(my @)); CATCH { default { say "caught" } }  # shouldn't this say "caught" ?
14:03 camelia rakudo-jvm a756a1: OUTPUT«(timeout)»
14:03 camelia ..rakudo-{parrot,moar} a756a1: OUTPUT«Not enough positional parameters passed; got 0 but expected 1␤  in sub a at /tmp/tmpfile:1␤  in block  at /tmp/tmpfile:1␤␤»
14:03 jnthn psch: I'm not sure having it return just a sigil is entirely useful, though
14:04 lizmat ah, it;s some sink context thing again
14:04 lizmat r: { sub a ($a) { ... }; a(|(my @)); CATCH { default { say "caught" } }  }
14:04 camelia rakudo-{parrot,jvm,moar} a756a1: OUTPUT«caught␤»
14:04 jnthn lizmat: Yeah, but still...should say it
14:06 psch jnthn: trying to return a bare sigil for an anon parameter in .name is what breaks compilation for me
14:06 psch a distinction between .name and .perl would make sense to me, the latter has post constraints and type and whatnot
14:06 dalek nqp-js: 35d01f7 | (Pawel Murias)++ | src/vm/js/QAST/Compiler.nqp:
14:06 dalek nqp-js: Turn QAST::OperationsJS methods into subs for concisness.
14:06 dalek nqp-js: review: https://github.com/pmurias​/nqp-js/commit/35d01f7cb5
14:06 psch while the former would only return sigil and name, or just sigil if it was anon
14:08 jnthn psch: Yes; but if it's anon, it has no name, which is why I'm questioning whether we should return the sigil there.
14:10 psch jnthn: oh, i see.  my imagined use-case would be "what can i put in there" but that's probably better served with .perl anyway, because of the additional information
14:10 psch i think i agree with you and haven't thought enough about it before
14:10 psch *hadn't
14:15 hoelzro I'm up! I'm up!
14:15 timotimo hey rob! :)
14:15 hoelzro morning timotimo
14:15 hoelzro lizmat: you rang?
14:16 lizmat yes, wrt disentangling test and diag output in Test.pm
14:16 hoelzro ah
14:16 lizmat when run in a shell, the diag output sometimes overwrites the test output, and vice versa
14:16 timotimo lizmat called up hoelzro on his Red Rotary Phone and he promptly got into his Robomobile and jetted off to #perl6 :3
14:17 timotimo m: say "hey there" :3
14:17 camelia rakudo-moar a756a1: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/T8p7kGVukNâ�¤Two terms in a rowâ�¤at /tmp/T8p7kGVukN:1â�¤------> [32msay "hey there" [33mâ��[31m:3[0mâ�¤    expecting any of:â�¤        postfixâ�¤        infix stopperâ�¤        infix or meta-in…»
14:17 lizmat very annoying in debugging
14:17 hoelzro lizmat: ah, yes
14:17 timotimo ^- for emoticon reasons, more kinds of colonpairs ought to be allowed :P
14:17 lizmat the only "fix" I got so far, is to just do 2>2 and check file "2" afterwards
14:17 lizmat sub-optimal at best
14:17 hoelzro well, I would mess with the buffering on the out/fail handles, but I don't think there's a way to do that atm
14:18 hoelzro timotimo: ha, yeah, and it only took me 1.5 hours =)
14:18 lizmat maybe we need to implement :autoflush ?
14:18 hoelzro lizmat: yes
14:18 dalek rakudo/test-betterer: 2f974de | (Rob Hoelz)++ | lib/Test.pm:
14:18 dalek rakudo/test-betterer: Revert "Revert "Test: Copy filehandles if we can""
14:18 dalek rakudo/test-betterer:
14:18 dalek rakudo/test-betterer: This reverts commit 189d1ce84ce1ac4f86fa34153c043cb1d5836140.
14:18 dalek rakudo/test-betterer: review: https://github.com/rakudo/rakudo/commit/2f974de205
14:18 dalek rakudo/test-betterer: bc4e880 | (Rob Hoelz)++ | lib/Test.pm:
14:18 dalek rakudo/test-betterer: Print TODO diags to todo_output
14:18 dalek rakudo/test-betterer: review: https://github.com/rakudo/rakudo/commit/bc4e880b46
14:18 dalek rakudo/test-betterer: e53ddfc | (Rob Hoelz)++ | lib/Test.pm:
14:18 dalek rakudo/test-betterer: Fix exit codes for Test.pm
14:18 dalek rakudo/test-betterer: review: https://github.com/rakudo/rakudo/commit/e53ddfca80
14:18 dalek rakudo/test-betterer: 909e802 | (Rob Hoelz)++ | lib/Test.pm:
14:18 dalek rakudo/test-betterer: Test: Make sure we close all handles
14:18 dalek rakudo/test-betterer:
14:18 dalek rakudo/test-betterer: Some VMs (ex. Parrot) don't finalize objects like file handles during
14:18 dalek rakudo/test-betterer: program shutdown, so there may remain data unflushed from userspace.
14:18 dalek rakudo/test-betterer: review: https://github.com/rakudo/rakudo/commit/909e802fc6
14:18 * hoelzro forgot to push that a while back
14:18 dalek rakudo/test-betterer: 33f6015 | (Rob Hoelz)++ | lib/Test.pm:
14:18 dalek rakudo/test-betterer: Grab call frame from outside of conditional
14:18 dalek rakudo/test-betterer:
14:18 dalek rakudo/test-betterer: This is necessary due a bug in MoarVM
14:18 dalek rakudo/test-betterer: review: https://github.com/rakudo/rakudo/commit/33f601583d
14:19 hoelzro I don't know if it's ready to merge, but it addresses some of the problems you've pointed out, lizmat
14:21 * hoelzro should make a TODO for that branch too
14:21 hoelzro I was hoping to work on improving Test.pm after I finished with S26
14:21 * lizmat builds and will run a spectest
14:21 lizmat hmmm... it doesn't build  :-(
14:22 lizmat perhaps no recent changes merged ?
14:22 hoelzro yeah, it's very stale
14:22 hoelzro hang on, I'll rebase
14:28 psch ugh, i'm in no shape to do more coding today i think.  too many brainos :/
14:28 psch i've created a PR with Parameter.perl giving sigils for positional anonymous scalars, but the message is wrong because the commit message was wrong
14:29 psch but i've fixed the commit message and mentioned that the PR-message is wrong and the commit message is better
14:29 dalek rakudo/test-betterer: b175465 | (Rob Hoelz)++ | lib/Test.pm:
14:29 dalek rakudo/test-betterer: Revert "Revert "Test: Copy filehandles if we can""
14:29 dalek rakudo/test-betterer:
14:29 dalek rakudo/test-betterer: This reverts commit 189d1ce84ce1ac4f86fa34153c043cb1d5836140.
14:29 dalek rakudo/test-betterer: review: https://github.com/rakudo/rakudo/commit/b175465ae6
14:29 dalek rakudo/test-betterer: f93ca4d | (Rob Hoelz)++ | lib/Test.pm:
14:29 dalek rakudo/test-betterer: Print TODO diags to todo_output
14:29 dalek rakudo/test-betterer: review: https://github.com/rakudo/rakudo/commit/f93ca4d74f
14:29 dalek rakudo/test-betterer: 678f286 | (Rob Hoelz)++ | lib/Test.pm:
14:29 dalek rakudo/test-betterer: Fix exit codes for Test.pm
14:29 dalek rakudo/test-betterer: review: https://github.com/rakudo/rakudo/commit/678f286b53
14:29 dalek rakudo/test-betterer: 9b3102b | (Rob Hoelz)++ | lib/Test.pm:
14:29 dalek rakudo/test-betterer: Test: Make sure we close all handles
14:29 hoelzro lizmat: there you go
14:29 dalek rakudo/test-betterer:
14:29 dalek rakudo/test-betterer: Some VMs (ex. Parrot) don't finalize objects like file handles during
14:29 dalek rakudo/test-betterer: program shutdown, so there may remain data unflushed from userspace.
14:29 dalek rakudo/test-betterer: review: https://github.com/rakudo/rakudo/commit/9b3102bdef
14:29 dalek rakudo/test-betterer: 4111fa4 | (Rob Hoelz)++ | lib/Test.pm:
14:29 dalek rakudo/test-betterer: Grab call frame from outside of conditional
14:29 dalek rakudo/test-betterer:
14:29 dalek rakudo/test-betterer: This is necessary due a bug in MoarVM
14:29 dalek rakudo/test-betterer: review: https://github.com/rakudo/rakudo/commit/4111fa43ca
14:29 hoelzro that should help, I think
14:29 psch and now i'll get off the computer because this doesn't bode well o/
14:32 lizmat hoelzro: will test in a mo
14:33 guru joined #perl6
14:34 hoelzro lizmat: sure thing. btw, just wanted to let you know that Test.pm now has copies of filehandles for writing to the different streams
14:37 lizmat $ git checkout test-betterer
14:37 lizmat Switched to branch 'test-betterer'
14:37 lizmat Your branch and 'origin/test-betterer' have diverged,
14:37 lizmat and have 5 and 150 different commits each, respectively.
14:37 lizmat huh ?
14:37 jnthn lizmat: Welcome to git :D
14:38 jnthn lizmat: It probably means that you already had a local checkout of test-betterer
14:38 timotimo or maybe an old branch that was named the same thing
14:38 jnthn lizmat: And it has some commits in it that the upstream one doesn't
14:38 jnthn lizmat: Maybe 'cus it was re-based
14:38 jnthn Or what timotimo said
14:38 jnthn Anyway
14:38 hoelzro lizmat: did you git fetch?
14:38 jnthn git branch test-betterer-backup
14:38 jnthn git checkout nom
14:38 jnthn git branch -D test-betterer
14:38 jnthn And try again :)
14:38 timotimo i suggest git checkout -b old-test-betterer test-betterer; git checkout test-betterer; git reset --hard origin/test-betterer
14:39 timotimo or what jnthn said
14:39 jnthn (First step of mine is optional)
14:39 jnthn (Lesson though - which many folks miss - is that a branch is just a mutable way of labeling a commit)
14:40 lizmat followed jnthn's suggestion, all seems fine now
14:40 lizmat building
14:40 timotimo jnthn: "mutable" doesn't tell the whole story, IMO. i'd say it's a "way of labeling a commit that automatically follows any commits you base upon it"
14:41 dalek nqp-js: da342f4 | (Pawel Murias)++ | src/vm/js/QAST/Compiler.nqp:
14:41 dalek nqp-js: Add a add_simple_op helper to make op definitions more concise.
14:41 dalek nqp-js: review: https://github.com/pmurias​/nqp-js/commit/da342f4d4c
14:41 dalek nqp-js: 74fa9cf | (Pawel Murias)++ | src/vm/js/QAST/Compiler.nqp:
14:41 dalek nqp-js: Use add_simple_op for nqp::isinvokable.
14:41 dalek nqp-js: review: https://github.com/pmurias​/nqp-js/commit/74fa9cf3a1
14:42 jnthn timotimo: That's the most common means of mutation, yes.
14:46 timotimo er ... "not telling the whole story" was probably the intention you had in mind ...
14:47 ChoHag joined #perl6
14:47 jnthn timotimo: Yeah, it was; was mostly pointing out the abstraction behind the common use case :)
14:49 lichtkind cheers leaving tomorrow to sofia, any other buggars that I can meet earlier?
14:50 lizmat afk for a bit&
14:50 ChoHag buggers
14:50 ChoHag Or beggars
14:51 jnthn .oO( It buggers belief... )
14:51 lichtkind this ambiguity was part of the fun :)
14:51 jnthn Anyway, I'm not arriving until Thursday afty.
14:51 lichtkind i thought of both even tending more to buggers :)
14:51 lichtkind ah
14:51 lichtkind thanks
14:52 timotimo .o( mhhh burgers )
14:57 dalek nqp-js: e49d2b1 | (Pawel Murias)++ | src/vm/js/QAST/Compiler.nqp:
14:57 dalek nqp-js: Make add_simple_op support ops with a variable numer of arguments, use it for nqp::ord and nqp::index.
14:57 dalek nqp-js: review: https://github.com/pmurias​/nqp-js/commit/e49d2b1fa7
15:01 rindolf joined #perl6
15:21 nebuchadnezzar joined #perl6
15:23 * masak .oO( any other Bulgars that I can meet earlier? )
15:27 brrt joined #perl6
15:38 lizmat hoelzro: I see only one strange failure in branch test-betterer
15:39 lizmat t/spec/S12-subset/subtypes.t, test 37 fails with "got 0, expected 2"
15:40 lizmat it seems to be related to the -- in the test before that: if I change it to ++, test passes
15:40 hoelzro how odd
15:41 lizmat if I turn it into $x = $x - 1, also passes
15:42 timotimo m: say nan.WHAT
15:42 camelia rakudo-moar a756a1: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/4X5SXHNnuAâ�¤Undeclared routine:â�¤    nan used at line 1. Did you mean 'tan'?â�¤â�¤Â»
15:42 timotimo m: say NaN.WHAT
15:43 camelia rakudo-moar a756a1: OUTPUT«(Num)␤»
15:43 timotimo this is amusing
15:43 lizmat levenshtein upper lower case confusion ?
15:43 masak timotimo: no, it's IEEE 754.
15:43 lizmat nan is IEEE 754 ?
15:43 masak surely.
15:44 timotimo lizmat: the algorithm assumes initial uppercase is for types and initial lowercase for subs and such
15:44 timotimo m: class Foobar is Nan { }
15:44 camelia rakudo-moar a756a1: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/Gk3IHHtqSQ�'Foobar' cannot inherit from 'Nan' because it is unknown.�at /tmp/Gk3IHHtqSQ:1�------> �»
15:44 timotimo hmm. it doesn't suggest NaN there, that's probably a good thing.
15:46 lizmat aha, the problem doesn't exist with MVM_SPESH_DISABLE=1
15:49 dalek rakudo/nom: b175465 | (Rob Hoelz)++ | lib/Test.pm:
15:49 dalek rakudo/nom: Revert "Revert "Test: Copy filehandles if we can""
15:49 dalek rakudo/nom:
15:49 dalek rakudo/nom: This reverts commit 189d1ce84ce1ac4f86fa34153c043cb1d5836140.
15:49 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/b175465ae6
15:49 dalek rakudo/nom: f93ca4d | (Rob Hoelz)++ | lib/Test.pm:
15:49 dalek rakudo/nom: Print TODO diags to todo_output
15:49 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/f93ca4d74f
15:49 dalek rakudo/nom: 678f286 | (Rob Hoelz)++ | lib/Test.pm:
15:49 dalek rakudo/nom: Fix exit codes for Test.pm
15:49 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/678f286b53
15:49 dalek rakudo/nom: 9b3102b | (Rob Hoelz)++ | lib/Test.pm:
15:49 dalek rakudo/nom: Test: Make sure we close all handles
15:49 dalek rakudo/nom:
15:49 dalek rakudo/nom: Some VMs (ex. Parrot) don't finalize objects like file handles during
15:49 dalek rakudo/nom: program shutdown, so there may remain data unflushed from userspace.
15:49 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/9b3102bdef
15:49 dalek rakudo/nom: 4111fa4 | (Rob Hoelz)++ | lib/Test.pm:
15:49 dalek rakudo/nom: Grab call frame from outside of conditional
15:49 dalek rakudo/nom:
15:49 dalek rakudo/nom: This is necessary due a bug in MoarVM
15:49 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/4111fa43ca
15:54 nebuchadnezzar joined #perl6
15:55 * masak loves exploratory programming
15:57 masak where I can loop over a cross product without bad conscience :)
15:59 lizmat https://gist.github.com/li​zmat/25b44ae6dd06ccefa339  # jnthn: looks like a SPESH related problem
15:59 jnthn lizmat: If you shout it I'll think of a really awful backronym :P
16:00 lizmat hehe... sorry, came from typing MVM_SPESH_DISABLE=1 too many times  :-)
16:00 jnthn # or with --optimize=0
16:00 jnthn Does that mean "--optimize=0 has not effect"?
16:00 lizmat has the same effect as not specifying it
16:00 jnthn OK
16:00 jnthn So purely a spesh bug, not a nasty interaction between the two.
16:00 lizmat so only disabling spesh altogether makes the problem go away
16:00 jnthn That's *something* at least. :)
16:01 jnthn lizmat: Could you try not disabling spesh, but just inline (MVM_SPESH_INLINE_DISABLE=1)?
16:01 lizmat removing the line with $x++ also fixes it
16:01 lizmat still problem with that
16:02 jnthn OK, and (if you have a --enable-jit build) MVM_JIT_DISABLE?
16:02 jnthn It's a weird one...
16:02 lizmat *then* it works!
16:02 jnthn Do you still have spehs disabled?
16:03 jnthn As in, it works if you leave spesh on, but just disable JIT?
16:03 lizmat so disabling spesh, or disabling jit, fixes the problem
16:03 lizmat yes
16:03 lizmat $ MVM_JIT_DISABLE=1 perl6 bar
16:03 jnthn Disabling spesh also disables JIT
16:03 lizmat well, it seems to be a weird one
16:03 hoelzro I've seen a few issues with spesh
16:03 jnthn Basically, MVM_SPESH_DISABLE is the sledgehammer disabling of all dynamic optimizations.
16:04 lizmat yup, that fixes it
16:04 lizmat and MVM_JIT_DISABLE=1 also
16:04 lizmat so it looks like a jit issue
16:04 timotimo seems so
16:04 lizmat want me to build a rakudo without jit to make sure ?
16:04 jnthn So if something works without that, the next 3 things to disable (individually) are JIT, OSR, and INLINE. Any of those 3 are more specific indicators of what's wrong.
16:05 timotimo maybe another case of re-using a mvm-level register without ensuring that it isn't a variable we have to be careful about?
16:05 jnthn lizmat: No, the envvar is paid good attention
16:05 jnthn I think we know we're looking for a JIT issue
16:05 lizmat fails with OSR disabled
16:06 lizmat double checking: what's the envvar for OSR exactly?
16:06 jnthn hoelzro: Spesh is doing some relatively complicated analysis and transformation. It's pretty involved; it also makes a huge performance difference in a bunch of places.
16:06 jnthn lizmat: MVM_SPESH_OSR_DISABLE
16:06 lizmat yup, fails with that
16:07 jnthn lizmat: Yeah, OSR is about optimizing hot loops when we're in the middle of the loop
16:07 jnthn lizmat: So it was an unlikely candidate for this.
16:08 lizmat ok, plot thickening: if I add another AE $y, and use that to --, it *still* fails
16:08 jnthn hoelzro: Given the complexity of what it's doing, I'm afraid there'll be some bugs along the way...
16:08 lizmat jnthn: I realize that, that's why I tried to golf it down as much as possible
16:08 hoelzro jnthn: oh, I understand! I'm not trying to complain (esp. in light of the performance benefits), I just wanted to point out I've seen similar issues
16:09 lizmat jnthn: another datapoint: changing the -- to ++, also makes the test pass
16:09 lizmat so it seems related to using -- on a subtype
16:09 jnthn hoelzro: I didn't take it as a complaint; just noting it's genuinely hard. :)
16:10 hoelzro oh, I believe it
16:10 hoelzro that's why I haven't even tried to figure it out myself
16:11 jnthn Thankfully, the action-at-a-distance is often less bad than with GC bugs. :)
16:11 lizmat another datapoint: if I first check -- and then ++, it also passes
16:12 jnthn I was gonna ask that... :)
16:12 lizmat having both --, it passes
16:12 lizmat actually, no
16:13 lizmat having both --, the first passes, the second doesn't
16:13 lizmat checking $x after the first -- is successful
16:15 lizmat it appears it doesn't matter what's inside the first throws_like test
16:15 lizmat it's just that it's needed
16:15 lizmat so I would say we need 2 throws_like and one --
16:16 lizmat if I change the throws_like to dies_ok, the test also passes
16:17 jnthn Hmm...
16:17 jnthn It doesn't fail here
16:17 lizmat ok, then I'll revbuild from scratch to be sure
16:17 jnthn What moar version have you?
16:18 jnthn I have something farily non-standard locally :)
16:18 lizmat This is perl6 version 2014.07-205-g4111fa4 built on MoarVM version 2014.07-388-ge953112
16:18 lizmat perhaps you already fixed it...  :-)
16:19 jnthn Hm, that's an aug 14th Moar
16:19 jnthn You could try with master (don't need to rebuild everything, even)
16:19 jnthn And if that does fix it we can do a version bump.
16:19 lizmat I wanna make sure, so I'll rebuild from scratch
16:19 jnthn OK
16:19 jnthn With --gen-moar=master
16:19 jnthn ?
16:20 lizmat first without, then with  :-)
16:20 jnthn ok :)
16:21 zakharyas1 joined #perl6
16:27 brrt joined #perl6
16:27 brrt left #perl6
16:28 MikeFair_ joined #perl6
16:29 lizmat standard jit build still fails, trying with master now
16:35 locsmif joined #perl6
16:39 lizmat runs ok with master
16:39 lizmat jnthn: shall I bump versions ?
16:43 dalek nqp: 0723d3a | (Elizabeth Mattijsen)++ | tools/build/MOAR_REVISION:
16:43 dalek nqp: Bump MOAR_REVISION
16:43 dalek nqp: review: https://github.com/perl6/nqp/commit/0723d3a942
16:44 jnthn lizmat: Go for it
16:45 lizmat running full spectest before bumping NQP_REVISION
16:52 molaf joined #perl6
16:54 lizmat spectest clean apart from 2 TODO's now passing and 1 flapper
16:55 jnthn lizmat: Cool. I fixed init.t thing yesterday :)
16:55 dalek rakudo/nom: 6c9be38 | (Elizabeth Mattijsen)++ | tools/build/NQP_REVISION:
16:55 dalek rakudo/nom: Bump NQP_REVISION for the latest goodies
16:55 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/6c9be38076
16:57 dalek roast: 6fefb63 | (Elizabeth Mattijsen)++ | S32-str/sprintf.t:
16:57 dalek roast: Unfudge now passing tests
16:57 dalek roast: review: https://github.com/perl6/roast/commit/6fefb63311
17:18 anaeem1 joined #perl6
17:20 nbrown_ joined #perl6
17:21 j4jackj_ joined #perl6
17:23 BooK joined #perl6
17:31 lizmat hmmm... seems gist.github.com is generating 500's
17:35 lizmat m: use Test; plan 2; lives_ok { 1 }; throws_like { die },X::AdHoc
17:35 camelia rakudo-moar 4111fa: OUTPUT«1..2␤ok 1 - ␤    1..2␤    ok 1 - code dies␤    ok 2 - right exception type (X::AdHoc)␤ok 2 - did we throws_like X::AdHoc?␤»
17:36 lizmat hoelzro: what's wrong with this picture?  ^^^
17:36 hoelzro yikes
17:36 * lizmat is stupid, please disregard..
17:37 lizmat subtest code output always happens before the actual result is output
17:38 hoelzro whew =)
17:38 lizmat ah, gist.github.com is only failing for me  :-(
17:39 lizmat https://gist.github.com/lizmat
17:39 diakopter ERMAHGERD, 500
17:39 lizmat yup
17:43 lizmat works again  :-)
17:46 iarna joined #perl6
17:49 lichtkind_ joined #perl6
17:53 dalek rakudo-star-daily: 6f98817 | coke++ | log/ (14 files):
17:53 dalek rakudo-star-daily: today (automated commit)
17:53 dalek rakudo-star-daily: review: https://github.com/coke/rakudo​-star-daily/commit/6f98817b97
17:53 dalek rakudo-star-daily: 5952d57 | coke++ | log/ (14 files):
17:53 dalek rakudo-star-daily: today (automated commit)
17:53 dalek rakudo-star-daily: review: https://github.com/coke/rakudo​-star-daily/commit/5952d57f92
17:53 dalek rakudo-star-daily: f52e68d | coke++ | log/ (14 files):
17:53 dalek rakudo-star-daily: today (automated commit)
17:53 dalek rakudo-star-daily: review: https://github.com/coke/rakudo​-star-daily/commit/f52e68d09e
17:53 dalek perl6-roast-data: 403ff37 | coke++ | / (5 files):
17:53 dalek perl6-roast-data: today (automated commit)
17:53 dalek perl6-roast-data: review: https://github.com/coke/perl6​-roast-data/commit/403ff37726
17:53 dalek perl6-roast-data: 8f9106e | coke++ | / (6 files):
17:53 dalek perl6-roast-data: today (automated commit)
17:53 dalek perl6-roast-data: review: https://github.com/coke/perl6​-roast-data/commit/8f9106e106
17:59 denis_boyun_ joined #perl6
18:03 PotatoGim joined #perl6
18:04 Rotwang joined #perl6
18:04 dalek rakudo/nom: 509d47a | (Elizabeth Mattijsen)++ | src/core/Exception.pm:
18:04 dalek rakudo/nom: Fix error in some throws_like tests
18:04 dalek rakudo/nom:
18:04 dalek rakudo/nom: The test would throw an exception "Cannot look up attributes in a type object".
18:04 dalek rakudo/nom: As part of debugging, I decided to make these methods only take defined
18:04 dalek rakudo/nom: objects, in the hope that the error message would get clearer.  To my
18:04 dalek rakudo/nom: surprise, the problem went away completely.  This feels like action at
18:04 dalek rakudo/nom: a distance.
18:04 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/509d47a33e
18:19 timotimo o/
18:20 masak \o
18:20 FROGGS -o-
18:21 lizmat uh oh
18:21 anaeem1 joined #perl6
18:21 nbrown_ joined #perl6
18:22 brrt joined #perl6
18:29 lichtkind_ \o\
18:29 lizmat m: { my class A2 {} }; A2  # feels like an LTA error message
18:29 camelia rakudo-moar 6c9be3: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/HQEzLVpFImâ�¤Undeclared name:â�¤    A2 used at line 1â�¤â�¤Â»
18:29 lizmat ah?
18:29 masak how so?
18:30 masak what would you like improved?
18:30 lizmat $ perl6 -e '{ my class A2 {} }; A2'
18:30 lizmat ===SORRY!===
18:30 lizmat Not enough positional parameters passed; got 1 but expected 2
18:31 masak that's LTA, yes.
18:31 masak question is why your local thing differs from camelia's.
18:31 lizmat perhaps camelia's not up to date ?
18:31 masak perhaps.
18:31 masak or perhaps you're not on master or something.
18:32 flussence I get the useful message on my local thing...
18:32 lizmat m: say $*PERL.compiler.version
18:32 camelia rakudo-moar 6c9be3: OUTPUT«v2014.7.206.g.6.c.9.be.38␤»
18:32 diakopter p: { my class A2 {} }; A2
18:32 lizmat I got: $ 6 'say $*PERL.compiler.version'
18:32 lizmat v2014.7.205.g.4111.fa.4
18:32 camelia rakudo-parrot 6c9be3: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/8_gXH2xtiRâ�¤Undeclared name:â�¤    A2 used at line 1â�¤â�¤Â»
18:33 flussence 2014.07-129 here
18:33 lizmat huh, camelia's more advanced than mine?
18:33 flussence .oO( v-strings are weird )
18:36 kuroseki joined #perl6
18:36 molaf_ joined #perl6
18:36 telex joined #perl6
18:48 flussence (and now I'm wishing I stayed 80 commits behind, since panda's segfaulting on this one...)
18:53 dalek roast: 8487e75 | (Elizabeth Mattijsen)++ | S02-names-vars/names.t:
18:53 dalek roast: Proper test for #77750
18:53 dalek roast: review: https://github.com/perl6/roast/commit/8487e75f4e
18:53 synopsebot Link: https://rt.perl.org/rt3//Publ​ic/Bug/Display.html?id=77750
18:59 zakharyas joined #perl6
19:03 grondilu joined #perl6
19:03 iarna joined #perl6
19:04 dalek roast: 89c2de2 | (Elizabeth Mattijsen)++ | S (17 files):
19:04 dalek roast: Another batch of (eval_|)dies_ok -> throws_like
19:04 dalek roast: review: https://github.com/perl6/roast/commit/89c2de2649
19:05 grondilu Hello.  Sometimes in order to quickly check-out the progress of rakudo's performance, I sum random numbers.  Today I tried in four different ways and gotfour very different timings.  Maybe you'll find this instructive:  https://gist.github.com/gro​ndilu/4f8322e21803a97058fe
19:06 grondilu (I was a bit surprised that using a biding (:=) in the fourth example was much slower than direct assignment (=). )
19:09 aoseki joined #perl6
19:15 denis_boyun_ joined #perl6
19:21 anaeem1_ joined #perl6
19:22 nbrown_ joined #perl6
19:24 ventica2 joined #perl6
19:24 moritz grondilu: probably because it forces the list to be lazy, and thus disables batch reification
19:25 moritz so many more internal method calls for item-by-time reificcation
19:27 timotimo can you also time [+] rand xx 1_000_000 ?
19:27 timotimo oh, 100_000 actually
19:28 moritz that's the first one, no?
19:28 timotimo oh
19:28 timotimo it is!
19:28 timotimo my brain combined that with the version output
19:29 timotimo grondilu: is that with --enable-jit for moarvm? :)
19:33 grondilu timotimo: I actually don't know about --enable-jit.  So it's probably without
19:33 nbrown_ joined #perl6
19:33 thou joined #perl6
19:34 timotimo it may be interesting to see if it makes a difference in you rcode
19:34 grondilu is it a perl6 option or is it during Configure.pl?
19:35 timotimo it's an option for MoarVM's configure
19:35 timotimo but you can supply --moar-option=--enable-jit in nqp's or rakudo's Configure.pl
19:36 grondilu ok
19:45 lichtkind lizmat: when you arrive?
19:47 itz_ joined #perl6
19:47 PotatoGim joined #perl6
19:48 dalek roast: 0a8f13d | (Elizabeth Mattijsen)++ | S02-literals/sub-calls.t:
19:48 dalek roast: Fix for wrong migration
19:48 dalek roast: review: https://github.com/perl6/roast/commit/0a8f13d466
19:50 lizmat thu afternoon
19:50 lichtkind me too
19:50 lichtkind i have no hostel yet but you have my mail and phone
19:53 lizmat hmmm... since I was unsure about my perl6 version, I rebuilt from scratch
19:53 lizmat and now I'm seeing quite a lot of spectest failures
19:53 FROGGS :o(
19:54 lizmat https://gist.github.com/li​zmat/c47b28435606aee0e2e7
19:56 lizmat they all seem to go back to this giving an LTA error message:
19:56 lizmat $ perl6 -e 'a'
19:56 lizmat ===SORRY!===
19:56 lizmat Not enough positional parameters passed; got 1 but expected 2
19:56 lizmat is anybody else seeing that?
19:56 lizmat m: a
19:56 camelia rakudo-moar 509d47: OUTPUT«===SORRY!===␤Not enough positional parameters passed; got 1 but expected 2␤»
19:56 lizmat aha!
19:56 lizmat I guess camelia is also seeing this now
19:57 FROGGS where does that come from?
19:57 moritz error in the error message generator?
19:58 lizmat yes, indeed... it seems to come from 509d47a33e155c1892d3cd45912bdfa49329f87b
19:58 lizmat now, I'm not sure how my change would make *that* difference
19:59 kurahaupo joined #perl6
19:59 jnthn +    multi method gist(X::Undeclared::Symbols:D :$sorry = True) {
19:59 lizmat missing :, right ?
19:59 jnthn Apparently, not everybody wants the colon enough :P
19:59 jnthn Right.
19:59 jnthn Same on other changed line
19:59 lizmat *sigh*
20:00 lizmat yup, testing now
20:01 dalek rakudo/nom: f1d12b0 | (Elizabeth Mattijsen)++ | src/core/Exception.pm:
20:01 dalek rakudo/nom: Properly fix LTA error in X::Undeclared::Symbols
20:01 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/f1d12b0a39
20:02 dalek joined #perl6
20:02 brrt left #perl6
20:05 lizmat ah, a new set of failures  :-(
20:06 dalek roast: 6aeac74 | (Elizabeth Mattijsen)++ | S02-literals/sub-calls.t:
20:06 dalek roast: This migration turned out to be ok after all
20:06 dalek roast:
20:06 dalek roast: This reverts commit 0a8f13d46641c875a578bbf17505f7773397b5b4.
20:06 dalek roast: review: https://github.com/perl6/roast/commit/6aeac74017
20:08 jnthn lizmat: On latest that I just built, the sanity tests don't pass o.O
20:09 lizmat huh?
20:09 lizmat This is perl6 version 2014.07-207-g509d47a built on MoarVM version 2014.07-414-g44c4c0f ??
20:09 jnthn Nothing wiht Test.pm works
20:09 jnthn Oh, wtf
20:09 jnthn my $output_h         = open('/dev/stdout', :w);
20:09 jnthn my $failure_output_h = open('/dev/stderr', :w);
20:09 jnthn ...that's going to be portable...
20:09 lizmat aha!
20:10 lizmat ok, hmmm... I guess I merged too soon then  :-(
20:10 jnthn And there's an empty CATCH in there I guess for if it fails
20:10 lizmat hoelzro might know more
20:11 jnthn What on earth is this doing?
20:11 lizmat reworking $*OUT and $*ERR so test can do their on thing in that respect
20:12 lizmat *test
20:12 lizmat *tests
20:12 lizmat *sigh*
20:12 lizmat I guess we need to revert that
20:12 jnthn Oh...to make sure we don't end up with dynamic user-space $*OUT capturing test output?
20:13 lizmat that was the plan I think, yes
20:13 jnthn I'd imagine just capturing them at "use Test;" time would be enough...
20:13 jnthn It'd be unusual to replace the others at compile time...
20:13 jnthn In which case the try { ... } block causing the trouble could go away
20:13 jnthn And the rest could stay
20:15 jnthn That helps here, at least.
20:15 jnthn Even then, I've got other fails showing up
20:15 dalek roast: 400b1df | (Elizabeth Mattijsen)++ | S02- (4 files):
20:15 dalek roast: Fix several X::AdHoc -> X::Undeclared::Symbols
20:15 dalek roast: review: https://github.com/perl6/roast/commit/400b1df19e
20:15 jnthn oh, but could be those...
20:16 jnthn (The ones I spotted were all S02)
20:16 lizmat yes, fallout of the missing : issue
20:17 lizmat so what would your diff be ?
20:19 jnthn lizmat: Moment, working on something
20:22 dalek rakudo/nom: 3e0a909 | jnthn++ | lib/Test.pm:
20:22 dalek rakudo/nom: Portably avoid overrides of $*OUT/$*ERR in Test.pm
20:22 dalek rakudo/nom:
20:22 dalek rakudo/nom: This replaces an unportable attempt to do so. PROCESS is populated
20:22 dalek rakudo/nom: with The Real Thing at startup, and any userland overrides will be
20:22 dalek rakudo/nom: done with dynamic variables. Thus this achieves the desired effect
20:22 dalek rakudo/nom: with much less code and without blowing up on Windows.
20:22 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/3e0a9098cf
20:26 akaseki joined #perl6
20:27 lizmat jnthn++
20:27 timotimo "much less code"++
20:28 masak TimToady++ # $PROCESS
20:29 dalek roast: 680acb0 | coke++ | S (4 files):
20:29 dalek roast: autounfudge
20:29 dalek roast: review: https://github.com/perl6/roast/commit/680acb00a0
20:29 jnthn bbi10
20:30 jnthn lizmat: oh, and good/bad news: I get a failure in subtypes.t like you had earlier...
20:31 lizmat :-(
20:31 lizmat good news: spectest ran without errors here (except for one flapper)
20:31 lizmat hmmm... not a flapper
20:32 lizmat last test in t/spec/S17-lowlevel/lock.t fails consistently now
20:34 lizmat $now1 doesn't get set
20:34 nbrown_ joined #perl6
20:34 aoseki joined #perl6
20:35 lizmat argh, forget it, that test is skipped normally
20:36 lizmat so it was a flapper after all
20:38 * lizmat is obviously tired and will walk afk now to prevent more stupidity
20:42 hoelzro I wonder if I just had a really bad braino writing that Test.pm code
20:42 hoelzro oh, I see
20:43 hoelzro the point of that code is that if opening one of those handles fails, it shouldn't change $output and friends
20:43 hoelzro btw, I wasn't sure if that code was nom-worthy...
20:43 hoelzro although I think lizmat's change should work
20:44 timotimo https://gist.github.com/timo/8c9f863c96e7d6bbb0ab - i didn't know you could do this.
20:44 kurahaupo joined #perl6
20:58 ingy anyone here on win32?
20:59 jnthn ingy: Yes
21:00 ingy jnthn: sec. let me make a perl5 oneliner I need someone to run
21:13 iarna joined #perl6
21:16 PotatoGim joined #perl6
21:22 thou joined #perl6
21:33 [Coke] 114 test files rakudo isn't trying to run
21:35 nbrown_ joined #perl6
21:35 jnthn [Coke]: Ugh. Though there's been a lot of churn here today.
21:36 jnthn [Coke]: At one point I pulled and had an exploding sanity test...
21:37 [Coke] I just mean files in t/spec that aren't in spectest.data
21:37 [Coke] (no no failures or anything)
21:37 jnthn [Coke]: oh
21:37 [Coke] *new
21:37 [Coke] sorry for the scare!
21:37 jnthn [Coke]: Sorry, I misunderstood totally :)
21:38 jnthn [Coke]: Well, it was quite possible you'd pulled a bad commit too :)
21:38 [Coke] http://feather.perl6.nl/~coke/other_files.txt
21:38 [Coke] I bet some of those are pugs fossils.
21:38 [Coke] er, pugs-era
21:39 jnthn This has been a crazy month. 209 Rakudo commits, 91 NQP commits, and 415 MoarVM commits since the last monthly release.
21:39 pdurbin joined #perl6
21:40 [Coke] use Test; ok(chars "asdf" > 4)
21:40 [Coke] m: use Test; ok(chars "asdf" > 4)
21:40 camelia rakudo-moar f1d12b: OUTPUT«Cannot call 'Real'; none of these signatures match:␤:(Mu:U \v: *%_)␤  in method Real at src/gen/m-CORE.setting:3843␤  in sub infix:<>> at src/gen/m-CORE.setting:4379␤  in block  at /tmp/kYvd0LAe8j:1␤␤»
21:40 [Coke] m: say (chars "asdf")
21:40 camelia rakudo-moar f1d12b: OUTPUT«4␤»
21:40 jnthn m: use Test; ok(chars("asdf") > 4)
21:40 camelia rakudo-moar f1d12b: OUTPUT«␤# Failed test at /tmp/0FiNohILne line 1␤»
21:40 [Coke] m: use Test; ok( 5 > 4)
21:41 camelia rakudo-moar f1d12b: OUTPUT«ok 1 - ␤»
21:41 * pdurbin came across a Perl 6 user just now: http://indiewebcamp.com/irc/2​014-08-17/line/1408311247323
21:41 [Coke] jnthn: t/spec/S32-str/length.t - looks like it's specifically trying to test the prec.
21:41 avuserow joined #perl6
21:42 FROGGS hi pdurbin
21:42 * jnthn finds it amusing that it's called length.t :)
21:43 FROGGS *g*
21:44 dalek roast: de0bc28 | (David Warring david.warring@gmail.com)++ | integration/advent2012-day13.t:
21:44 dalek roast: supress 'Code object coerced to string' warning
21:44 dalek roast: review: https://github.com/perl6/roast/commit/de0bc28461
21:46 pdurbin FROGGS: hi back
21:51 lichtkind good night
21:51 masak 'night, lichtkind
21:54 dalek roast: 5127dd1 | (David Warring david.warring@gmail.com)++ | integration/advent2010-day22.t:
21:54 dalek roast: supress 'Code object coerced to string' warning
21:54 dalek roast: review: https://github.com/perl6/roast/commit/5127dd10a9
21:55 dalek roast: 565ce74 | coke++ | S11-modules/export.t:
21:55 dalek roast: Fudge test file
21:55 dalek roast:
21:55 dalek roast: (needs tickets)
21:55 dalek roast: review: https://github.com/perl6/roast/commit/565ce74239
21:55 dalek rakudo/nom: 05f0061 | coke++ | t/spectest.data:
21:55 dalek rakudo/nom: Test is now fudged.
21:55 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/05f0061d9c
22:06 circ-user-3Wi7N joined #perl6
22:07 circ-user-3Wi7N perl6: say 3
22:07 camelia rakudo-jvm 3e0a90: OUTPUT«(timeout)»
22:07 camelia ..rakudo-{parrot,moar} 3e0a90, niecza v24-109-g48a8de3: OUTPUT«3␤»
22:07 circ-user-3Wi7N \part
22:07 circ-user-3Wi7N left #perl6
22:08 masak another satisfied customer.
22:13 timotimo printing 3s is a rapidly growing market
22:16 jnthn Why do people always ask for 3?
22:16 jnthn I mean, it's like, by far the most common number folks try.
22:17 masak who knows? markets are unpredictable like that.
22:18 masak before you know it, there'll be a shift and printing 12 will be very popular.
22:20 timotimo well, 3 is 6 / 2, so maybe tat's something
22:22 masak maybe these people are secretly part of a Perl 3 project.
22:22 timotimo oh my!
22:23 timotimo .o( still a better programming language & community than perl3 )
22:25 lue jnthn: I would recommend looking at the topic :)
22:27 masak oh!
22:27 jnthn Ohhh!
22:27 jnthn lue++ # one mystery solved :)
22:27 * masak .oO( or maybe it's another 3? ) :P
22:36 nbrown_ joined #perl6
22:36 pdurbin left #perl6
22:36 masak 'night, #perl3^W#perl6
22:40 iarna joined #perl6
23:02 avuserow joined #perl6
23:06 SevenWolf joined #perl6
23:10 nbrown_ joined #perl6
23:11 thou joined #perl6
23:38 gfldex joined #perl6
23:45 xenoterracide joined #perl6
23:57 BenGoldberg joined #perl6

| Channels | #perl6 index | Today | | Search | Google Search | Plain-Text | summary

Perl 6 | Reference Documentation | Rakudo