Camelia, the Perl 6 bug

IRC log for #parrot, 2011-08-25

Parrot | source cross referenced

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

All times shown according to UTC.

Time Nick Message
00:20 ttbot joined #parrot
00:21 logie joined #parrot
00:21 * Coke yawns.
00:24 whiteknight joined #parrot
00:26 whiteknight ubuntu--
00:28 whiteknight Actually, I don't know if the bug is in gnome, or unity, or somewhere else entirely. But a locked up computer is annoying
00:44 cotto not what you hope will happen
00:47 kid51 cotto: What does the fact that that file was just added to master have to do with the fact that it's failing on two OSes?
00:49 cotto kid51, It wasn't failing before because it wasn't there.  (also, it didn't get enough attention in its branch and neither tadzik nor I remembered to test on non-linux platforms before it got merged)
00:51 plobsing_ joined #parrot
00:51 kid51 Well, the last comment about this PMC in TT #2034 was that "the current implementation in tewk/select has room for improvement." -- cotto
00:52 kid51 With an evaluation like that, why would that branch get heavily tested?
00:52 cotto Yes. It's being merged and marked as experimental (which needs to be done) so that Rakudo can play with it and decide what a good interface looks like.
00:52 kid51 Well, that can you please TODO the failing tests.
00:52 kid51 ?
00:52 kid51 (or, better still, fix them)?
00:52 * cotto delegates
00:54 * whiteknight procrastinates
00:54 kid51 Otherwise, this seems to confirm what I said in my YAPC talk, namely, "Parrot is a virtual machine aimed at all dynamic programming languages -- provided they run on the Linux operating system."  ;-)
00:54 cotto msg tadzik Could you make sure that Select gets marked as experimental.  Since there's already a ticket, an entry in api.yaml is all that's needed.
00:54 aloha OK. I'll deliver the message.
00:55 cotto We only care about platforms with sane implementations of select(). ;)
00:55 cotto I'm not sure why darwin would splode, but my gut tells me it'll be a simple fix.
00:57 whiteknight kid51: Parrot is a realistic project. Our level of support for a platform is proportional to the number of hackers we have using it
00:58 whiteknight I don't, and don't pretend to support software I don't use and don't test
00:58 kid51 cotto: Didn't it break a Win32 build this afternoon as well?
00:58 cotto msg tadzik If Select doesn't get fixed on window soon-ish, can you mark the test as TODO for that platform?
00:58 aloha OK. I'll deliver the message.
00:59 cotto kid51, win32 remains broken from when it was merged
01:05 kid51 Coke: I see what you mean in http://trac.parrot.org/par​rot/ticket/2185#comment:8
01:07 cotto I added a way to address those issues.
01:07 * cotto goes afk
01:07 kid51 cotto++.
01:08 kid51 I suspect what happened was: (1) Someone requested creation of a 'make' target that would guarantee a release was good; (2) I whipped something together and tried it out on Linux and Darwin; (3) no one subsequently attempted to do a release on Win32 until Coke did this month.
01:10 dukeleto tcurtis: gsoc evaluation?
01:10 Coke oh, I didn't even start on win32. I tried to do it on /darwin/, and that faild.
01:11 Coke NotFound++ #2184
01:11 dukeleto msg soh_cah_toa please do your gsoc eval
01:11 aloha OK. I'll deliver the message.
01:12 dukeleto msg tcurtis please do your gsoc eval
01:12 aloha OK. I'll deliver the message.
01:12 dukeleto Coke: want to do your gsoc eval? I am getting spammed about you not having it done yet :)
01:13 dukeleto Coke: http://www.google-melange.com/gsoc/eval/ment​or/google/gsoc2011/final/rohit_nsit08/12001
01:14 dukeleto msg allison please fill out the final gsoc eval: http://www.google-melange.com/gsoc/eval/men​tor/google/gsoc2011/final/lucian1900/12001
01:14 aloha OK. I'll deliver the message.
01:14 dukeleto msg darbelo please fill out the gsoc eval http://www.google-melange.com/gsoc/eval/men​tor/google/gsoc2011/final/tylercurtis/15001
01:14 aloha OK. I'll deliver the message.
01:18 tcurtis dukeleto: will do.
01:18 dukeleto tcurtis: thanks
01:18 tcurtis (meaning am about to start doing it now)
01:29 woosley joined #parrot
01:30 dalek parrot/tt_2185: a38ef37 | jkeenan++ | tools/release/releasecheck.pl:
01:30 dalek parrot/tt_2185: Use Archive::Tar rather than Unix 'tar', for better portability. cotto++; coke++.
01:30 dalek parrot/tt_2185: review: https://github.com/parrot/parrot/commit/a38ef37e76
01:44 dalek parrot/tt_2185: 5009472 | jkeenan++ | tools/release/releasecheck.pl:
01:44 dalek parrot/tt_2185: Look up version of 'make' to use in Parrot::Config.
01:44 dalek parrot/tt_2185: review: https://github.com/parrot/parrot/commit/5009472d31
02:07 kid51 Ramereth of OSU OSL reports that Trac maintenance was performed today.  Hence, reverting topic.
02:07 Topic for #parrot is now Parrot 3.7.0 "Wanda" | http://parrot.org | Log: http://irclog.perlgeek.de/parrot/today | #parrotsketch meeting Tuesday 19:30 UTC
02:08 Coke dukeleto: I have 1.5 more days!
02:09 * tcurtis submitted his final evaluation.
02:14 darbelo_ joined #parrot
02:15 eternaleye__ joined #parrot
02:40 kid51 Latest code in tt_2185 branch enables successful 'make release_check' on Linux and Darwin.
04:05 rfw joined #parrot
04:12 jsut joined #parrot
04:20 * benabik is pleased that he didn't have to be reminded to do his evaluation.
04:22 fperrad joined #parrot
05:00 schmooster joined #parrot
05:05 preflex_ joined #parrot
05:12 SHODAN joined #parrot
05:44 Drossel joined #parrot
06:19 darbelo left #parrot
07:00 whiteknight joined #parrot
07:00 not_gerd joined #parrot
07:28 dod joined #parrot
07:31 mj41 joined #parrot
08:23 dalek winxed: 1adfc7c | NotFound++ | winxedst1.winxed:
08:23 dalek winxed: constant propagation in builtins cast to int and cast to string
08:23 dalek winxed: review: https://github.com/NotFoun​d/winxed/commit/1adfc7c198
08:25 lucian joined #parrot
08:47 tadzik msg cotto_work is there an example of test switched off for Win32?
08:47 aloha OK. I'll deliver the message.
08:49 rfw joined #parrot
09:28 dalek winxed: e4ff133 | NotFound++ | winxedst1.winxed:
09:28 dalek winxed: don't box values in array and hash expressions
09:28 dalek winxed: review: https://github.com/NotFoun​d/winxed/commit/e4ff13378e
09:34 woosley left #parrot
10:52 particle joined #parrot
11:13 not_gerd joined #parrot
11:13 not_gerd hello, #parrot
11:21 not_gerd src/dynpmc/README.pod needs fixing - there's no file called dynpmc.in anywhere in my Parrot checkout...
11:41 cosimo joined #parrot
11:47 dalek rakudo/nom: d31eef8 | moritz++ | src/Perl6/Metamodel/BOOTSTRAP.pm:
11:47 dalek rakudo/nom: add a few missing stashes in BOOTSTRAP
11:47 dalek rakudo/nom:
11:47 dalek rakudo/nom: This should fix the first compilation problem of List::Utils.
11:47 dalek rakudo/nom:
11:47 dalek rakudo/nom: There are still a lot missing, but I get rather strange compilation errors
11:47 dalek rakudo/nom: when I trie to add them all at once, so a few at a time instead
11:47 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/d31eef8cf9
11:50 dalek winxed: 5144143 | NotFound++ | winxedst1.winxed:
11:50 dalek winxed: set size in array expr initialization instead of pushing values
11:50 dalek winxed: review: https://github.com/NotFoun​d/winxed/commit/51441439ea
12:05 whiteknight joined #parrot
12:07 whiteknight good morning, #parrot
12:07 tadzik good morning whiteknight
12:08 whiteknight hello tadzik
12:08 tadzik cotto: seems that Select is already marked as experimental in api.yaml
12:14 whiteknight msg soh_cah_toa can you please, pretty please with cherries on top, fill out your final GSoC evaluation
12:14 aloha OK. I'll deliver the message.
12:14 whiteknight ping Coke
12:16 atrodo =~
12:16 whiteknight good morning atrodo
12:27 dalek rakudo/nom: 88d8014 | tadzik++ | src/Perl6/Grammar.pm:
12:27 dalek rakudo/nom: Warn about a bare '=begin' directive
12:27 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/88d8014785
12:29 bluescreen joined #parrot
12:42 bluescreen joined #parrot
12:47 ligne joined #parrot
12:55 dalek winxed: b999b42 | NotFound++ | winxedst1.winxed:
12:55 dalek winxed: minor cleanups and nano-optimizations
12:55 dalek winxed: review: https://github.com/NotFoun​d/winxed/commit/b999b421cf
12:58 cotto tadzik, perfect
12:59 cotto tadzik, did you figure out how to skip a test on win32?
13:00 tadzik cotto: wasn't thinking about that much, tbh
13:01 cotto tadzik,  skip 'busted on win32' => 2 if $^O eq 'MSWin32' || $^O eq 'msys';
13:01 tadzik cotto: that's pir
13:01 tadzik what's $^O in pir?
13:02 cotto config['osname']
13:02 tadzik ok, I see some if $S0 == 'MSWin32' goto tt661_todo in t/
13:03 cotto what that test does would work too
13:07 tadzik cotto: https://gist.github.com/1170608 how does that look?
13:09 tadzik wait, it doesn't work for me either
13:11 cotto tadzik, if you don't have access to a windows box, you can just mess with the code to force a test to fail.
13:16 tadzik cotto: how would that help?
13:18 cotto tadzik, it'd show you that the TODO code is doing what you expect
13:18 cotto I'm not suggesting you push such code.
13:19 tadzik hmm
13:20 tadzik I just added osname = 'MSWin32 to my test
13:20 not_gerd does the select code even compile on windows?
13:20 not_gerd I had to revert merging master into my msys branch because it broke the build
13:21 tadzik eww
13:21 cotto not_gerd, nope
13:21 tadzik so todoing tests wouldn't help much
13:21 cotto tadzik, you should probably #ifdef that code away so the code builds on windows
13:22 tadzik can anyone give me a windows shell so I can fiddle with it?
13:22 cotto tadzik, they'll still need to be todo'd.  Presumably we'll get into a state where the Select PMC builds but doesn't do anything useful on windows.
13:22 PacoLinux_ joined #parrot
13:23 not_gerd btw (alreade mentioned this when I joined): src/dynpmc/README.pod needs fixing - there's no file called dynpmc.in anywhere in my Parrot checkout...
13:23 particle joined #parrot
13:23 not_gerd (tried to disable the select dynpmc, but found no easy way to do it...)
13:24 tadzik I have a feeling that todo() acts as skip() in Parrot
13:25 tadzik okay, I got it to a state when it doesn't run the tests on windows, pushing. Feel free to make it better
13:26 dalek parrot: ea7b2b6 | tadzik++ | t/dynpmc/select.t:
13:26 dalek parrot: Skip select tests on Win32 and msys
13:26 dalek parrot: review: https://github.com/parrot/parrot/commit/ea7b2b65ec
13:27 cotto not_gerd, fixing now
13:29 cotto not_gerd++
13:35 dalek parrot: 2b8c29e | cotto++ | src/dynpmc/README.pod:
13:35 dalek parrot: update dynpmc readme now that we're using makefile fragments
13:35 dalek parrot: review: https://github.com/parrot/parrot/commit/2b8c29effc
13:39 ttbot Parrot ea7b2b65 MSWin32-x86-multi-thread make error http://tt.taptinder.org/cmdinfo/45490
13:41 whiteknight tadzik: in Test::More for Parrot, todo() acts like ok(), but doesn't fail if it's wrong
13:51 whiteknight not_gerd: dynpmc.in is probably src/dynpmc/Rules.in, or something like that
13:52 ttbot Parrot 2b8c29ef MSWin32-x86-multi-thread make error http://tt.taptinder.org/cmdinfo/45507
14:00 not_gerd whiteknight: cotto++ already fixed the README - but disabling a dynpmc is more involved than just removing a single line, as the old README seemed to imply
14:01 not_gerd I'm happy to just revert the commits and wait for someone else to fix the windows build ;)
14:12 dmalcolm joined #parrot
14:15 whiteknight okay
14:53 frodwith left #parrot
15:14 gigigi joined #parrot
15:33 dalek parrot/whiteknight/kill_threads: 9f2107b | cotto++ | / (6 files):
15:33 dalek parrot/whiteknight/kill_threads: delete more files, update headers and makefile template
15:33 dalek parrot/whiteknight/kill_threads:
15:33 dalek parrot/whiteknight/kill_threads: build is now less extravagantly broken
15:33 dalek parrot/whiteknight/kill_threads: review: https://github.com/parrot/parrot/commit/9f2107bc72
15:33 whiteknight cotto: Ha! I did almost that same thing on the train this morning, and haven't pushed it
15:34 whiteknight great minds hate threading alike
15:37 cotto whiteknight, that's the easy part though.
15:37 cotto and fun
15:39 whiteknight I'm planning to deal with this in fits and spurts, since it isn't high priority
15:40 japhb joined #parrot
15:47 davidfetter joined #parrot
15:49 davidfetter joined #parrot
16:08 dukeleto ~~
16:08 davidfetter hai dukeleto
16:08 dukeleto davidfetter: wazzup, stranger
16:08 benabik o/
16:09 davidfetter $son was born saturday
16:09 davidfetter he and mom are healthy, sleeping atm.
16:09 * davidfetter is grateful to have a lot of flexibility around working from home
16:13 dukeleto davidfetter: congrats!
16:14 moritz davidfetter: congratulations!
16:17 davidfetter thanks :)
16:17 moritz davidfetter: is that your first child?
16:18 davidfetter moritz, yep. bris is saturday :)
16:18 tadzik davidfetter: wow, congrats :)
16:18 davidfetter he may not be as thrilled about this ;)
16:18 dukeleto davidfetter: mazel tov
16:18 davidfetter toda :)
16:19 moritz exciting times ahead :-)
16:19 moritz (and probably behind too :-)
16:31 contingencyplan joined #parrot
16:31 cotto davidfetter, congrats!
16:41 davidfetter cotto, thanks :)
16:42 davidfetter moritz, yeah, we kinda got blind-sided friday morning. i was about to head out the door when my wife said 5 words that changed my day completely
16:42 davidfetter "I think my water broke."
16:42 moritz "get into the car, I'll drive you to the hospital"?
16:43 davidfetter well, she phoned them 1st to let them know we were coming, and we both packed stuff
16:44 * davidfetter grateful not to be the freak-out type
16:51 whiteknight my wife waited until I drove 45 minutes to work before calling to tell me to turn around
16:56 whiteknight congratulations on the new kid
16:58 ambs joined #parrot
17:01 benabik Been talking on #perl6…  die_s and die_p both set the exception as resumable.  die_ii doesn't though.  Is that on purpose?
17:03 not_gerd any ideas why t/profiling/profiling.t would fail completely (see https://gist.github.com/1171152 )
17:03 not_gerd ?
17:06 whiteknight benabik: I'm sure there's no reason. I suspect die_i can be changed to become resumable
17:10 benabik whiteknight: Yay.  Now I get to figure out how to change an opcode.
17:12 cotto not_gerd, I'm heading out the door, but I wrote that test.  I'll take a look later today.
17:15 tadzik seen alester
17:15 aloha alester was last seen in #perl6 3 days 2 hours ago joining the channel.
17:15 whiteknight benabik: it's not as hard as it sounds
17:16 Eclesia joined #parrot
17:16 Eclesia hi
17:16 whiteknight hello Eclesia
17:16 benabik whiteknight: probably not.  Is it possible to have a static function inside an op file?  The three die opcodes now share 90% of their code.
17:17 whiteknight benabik: just put in whatever logic you want there, we can refactor them out later
17:17 whiteknight we would probably put in a new function in src/exception.c to hold shared logic for that
17:18 tadzik github++
17:19 tadzik pull request for ack was like... 3 mouse clicks?
17:19 tadzik and 4 characters to type
17:19 tadzik (in an edited file)
17:20 benabik whiteknight: Edit op, `make bootstrap-ops`, test, commit?
17:22 whiteknight yessir
17:22 whiteknight tadzik: What kind of message can you possible type with only four characters?
17:22 whiteknight "pull", "doit", or "lol?"
17:23 tadzik whiteknight: okay, I didn't count the commit message :)
17:23 whiteknight :)
17:24 whiteknight even "plzkthx" is more than 4 characters, and that's like the minimum possible polite message
17:24 tadzik but https://github.com/petdance/ack/pull/183 was literally "Fork and edit this file", " pm6", "request file changes"
17:24 whiteknight :)
17:25 tadzik pullpl0x
17:31 cotto_work ~~
17:34 whiteknight cotto_work: I don't think we ever talked about your magical new ideas yesterday
17:35 cotto_work whiteknight: they still need thinking on.
17:44 Kulag joined #parrot
17:48 bubaflub Eclesia: got some time to debug Parrot-GMP?
17:49 Eclesia bubaflub: sure, just ask me what you want to try
17:49 bubaflub can you tell me what `parrot_config cc_shared` outputs?
17:50 Eclesia bubaflub:  -fPIC
17:50 bubaflub Eclesia: perfect.  i'm putting a new commit to Parrot-GMP and lemme know if it fixes building for ya
17:50 dalek parrot-gmp: d84acae | bubaflub++ | setup.winxed:
17:50 dalek parrot-gmp: attempted fix for building, Eclesia++
17:50 dalek parrot-gmp: review: https://github.com/bubaflub/​parrot-gmp/commit/d84acaeb65
17:52 Eclesia bubaflub: nearly good, one test fail
17:52 bubaflub Eclesia: doh.  which one?
17:52 Eclesia bubaflub: t/integer/powm.t
17:53 bubaflub Eclesia: could you run `winxed t/integer/powm.t` to see which test fails?
17:54 nopaste "Eclesia" at 192.168.1.3 pasted "t/integer/powm.t" (16 lines) at http://nopaste.snit.ch/74516
17:54 Eclesia bubaflub: here
17:57 bubaflub hmmm, ok.  Eclesia, what version of GMP do you have?
17:57 * Eclesia checking
17:58 Eclesia bubaflub: 4.3.2
17:58 bubaflub Eclesia: ok, that shouldn't be a problem.
17:59 benabik Huh.  My quick test of select on OS X got every fd back.  This includes the read-only as ready for write and the write-only as ready for read.  And both for error.
18:02 bubaflub Eclesia: figured it out - mpz_powm_sec was added in 5.0
18:02 cotto_work benabik: how exciting.  I guess that means you can write to a read-only handle on OS X.
18:05 bubaflub Eclesia: fixing this would require something a bit more invasive - i'll have to think about how to handle this
18:05 benabik cotto_work: They both come back for read and write on Linux too.  :-P
18:05 benabik (But not error, which is what's goofing up select.t on OS X.
18:05 Eclesia bubaflub: if I may have a suggestion : ship your project with your own gmp version
18:08 bubaflub Eclesia: i've created a github issue to track this: https://github.com/bubaflub/parrot-gmp/issues/23
18:09 cotto_work benabik: fascinating.  select must be broken on Linux and OSX.
18:09 cotto_work ;)
18:16 benabik C Question: How do you get the error from a file descriptor (int, not FILE *)?
18:17 bubaflub Eclesia: i'd say that should work for you now - just don't try to use mpz_powm_sec :-)
18:18 Eclesia bubaflub++
18:21 PerlJam benabik: errno
18:21 PerlJam benabik: or ... maybe I don't understand what you're asking.
18:22 PerlJam benabik: usually those routines that use fds will use -1 to indicate an error and that error can be found in errno.
18:22 benabik PerlJam: To be more precise, select() tells me that there's an error on a fd, how do I found how what it is?  Just try reading?
18:23 PerlJam oh
18:24 Eclesia bubaflub: in your examples could you add another winxed sample, showing integer and decimal types of different bit size ?
18:26 PacoLinux_ joined #parrot
18:26 PerlJam benabik: It's been a long while since I've used select from C, so I'd troll the select(2) man page for starters and see where it leads you.
18:26 benabik Results of me testing select(): https://gist.github.com/1171339
18:27 PerlJam maybe read Stevens
18:44 particle1 joined #parrot
18:46 NotFound benabik: The files are open?
18:47 benabik NotFound: Yes.
18:54 benabik If anyone wants to run my test on *BSD, that might be useful…  https://gist.github.com/1171339
18:54 benabik i'm guessing we'll just have to todo that test in select.t
18:58 benabik Hm.  Resuming from die doesn't seem very useful.  It seems to resume at the die opcode.
19:03 benabik Nevermind.  something else was odd.
19:05 benabik exit 0 doesn't seem to actually exit.  strange
19:07 benabik Oh. it throws a resumable exit exception.
19:08 benabik Nevermine.
19:10 dalek rakudo/alpha: fd0a184 | (Martin Berends)++ | / (3 files):
19:10 dalek rakudo/alpha: [alpha] update README with Subversion->Github moves, tweak test_summary.pl
19:10 dalek rakudo/alpha: review: https://github.com/rakudo/rakudo/commit/fd0a1841c3
19:10 logie joined #parrot
19:16 dalek parrot: 431c51a | benabik++ | src/ops/core (2 files):
19:16 dalek parrot: Make all versions of die opcode resumable
19:16 dalek parrot:
19:16 dalek parrot: die_s and die_p both were resumable, but die_i_i wasn't.  Finding no
19:16 dalek parrot: particular reason that should be the case, I made them consistent.
19:16 dalek parrot: The three opcodes now share a lot of code.  Perhaps a common function
19:16 dalek parrot: should be factored out?
19:16 dalek parrot: review: https://github.com/parrot/parrot/commit/431c51af8c
19:16 benabik Hm.  forgot to mention in commit that mls++ noticed that on #perl6
19:17 cotto_work benabik++
19:20 NotFound I'd like better to have all non resumable. This is not Drago Ball, "die" must mea something ;)
19:20 benabik NotFound: exit is resumable.
19:21 pmichaud NotFound: you don't believe in life after death?  ;-)
19:21 pmichaud (I vote that "die" remain resumable, fwiw.  Parrot shouldn't be enforcing otherwise.)
19:21 NotFound pmichaud: maybe, but not in resuming the previous life ;)
19:21 benabik NotFound: CPR?  Heart stopping used to mean dead.
19:22 whiteknight it won't if there is an exit exception handler setup
19:22 whiteknight oh,  wow, wrong part of the conversation
19:22 benabik And `die .EXCEPT_doomed, 0` will _exit instead of throwing an exception.
19:23 NotFound pmichaud: Being resumable enforces me to worry about what code can be placed after die.
19:23 whiteknight benabik: exits are exceptions, they can be caught and dealt with
19:23 benabik whiteknight: Yeah, I didn't expect that.  Realized it fairly soon though.
19:23 whiteknight the big problem here is that "die" is neither "throw"
19:23 whiteknight nor "exit
19:24 whiteknight keyboard--
19:24 tadzik I always have this problem with '
19:24 tadzik I keep presing Enter instead
19:24 cotto_work I just take "enter" off my keyboards.  I never use it.
19:24 tadzik ^O?
19:25 NotFound You can caught what you want, no problem with that, is your business. But is my business if my code gets unexpectedly resumed.
19:25 benabik I do find it somewhat odd that EXCEPT_doomed only _exits on the die_i_i version.
19:26 whiteknight I think we need to seriously look at all these opcodes and start thinning the herd
19:26 benabik Oh, that' the only version that can set it.  Nevermind.
19:26 cotto_work </troll>
19:26 Hunger joined #parrot
19:26 whiteknight If I had my way, we would have two of these opcodes: throw_p and exit_i
19:27 whiteknight everything else is just unnecessary sugar that papers over the kind of flexibility users want, but don't want to deal with
19:28 benabik Yeah, die is somewhat misnamed.  It's more throw_with_message
19:28 ttbot Parrot 431c51af MSWin32-x86-multi-thread make error http://tt.taptinder.org/cmdinfo/45562
19:28 PacoLinux_ joined #parrot
19:28 NotFound We don't need exit I don't think any program can have speed issues with exit, os have that much of them that code size matters.
19:29 whiteknight it's a convenience added because it's perl-like, but it doesn't really help us
19:29 whiteknight it's trivial for NQP to provide a die builtin that wraps around throw_p
19:29 whiteknight same with winxed
19:30 NotFound What I'd like to have is non-resumable throw.
19:31 whiteknight Exceptions have an attribute that says whether it's resumable or not, right?
19:31 benabik whiteknight: Which is set by the throw op.
19:31 mj41 joined #parrot
19:31 benabik I wonder what throw exception, NULL does.
19:32 whiteknight hmm.. Magic is less than optimal
19:32 whiteknight throw_p should take an exception and throw it as-is, without modifications.
19:32 benabik It is somewhat required…  resuming requires creating the continuation at the same time as the throw.
19:32 whiteknight the user should be able to set up a resume continuation manually if it's needed
19:33 benabik how?
19:33 NotFound set_label, for example
19:34 whiteknight $P0 = new 'Exception' $P1 = new 'Continuation' $P0["resume"] = $P1 set_label $P1 after_throw throw $P1 after_throw:
19:34 contingencyplan joined #parrot
19:34 whiteknight that's what the current opcodes are doing, basically
19:35 whiteknight for that matter, we should be able to resume to any point we want to, not just to the place after the throw
19:35 whiteknight we could resume to a finally{} block, for instance
19:35 benabik You can, with throw_p_p
19:35 whiteknight benabik: but that misses the point. You don't add a bunch of unwanted magic to an op, then add a bunch more ops to work around people not wanting magic
19:35 whiteknight give users the tools to do what they want, and don't force them to work around your own mistakes
19:36 whiteknight if parrot has to provide more ops, because the ops it already provides don't do what people need, fix the ones you already have
19:36 pmichaud I always think of it in reverse.
19:36 whiteknight pmichaud: how?
19:36 pmichaud You add an op that does no magic, then add versions of the op that do magic if there's a lot of use/demand for them.
19:37 whiteknight okay, that's fine too, but the starting point is an op with no magic
19:37 benabik I think throw_cc (which is basically what throw does now) is useful enough to be an op.
19:37 whiteknight right now we have many ops, all with magic, and still users aren't happy with the selection
19:37 pmichaud perhaps... but claiming that the no-magic version is automatically a "workaround" kinda stretches things a bit.
19:38 whiteknight the no-magic version is what we should ahve, everything else should go
19:38 pmichaud if we start with a no-magic version and add a magic one, or start with a magic version and add a no-magic one, the outcome is the same.
19:38 whiteknight or, at least be carefully reconsidered
19:38 pmichaud I think I've hardly ever used the no-magic version.  Removing the magic one would be a pain for me.
19:38 NotFound throw ex, null works? Never tought of that.
19:40 benabik NotFound: It might?
19:40 benabik NotFound: And if it doesn't, we should probably fix it so it doesn.
19:40 benabik *does
19:40 whiteknight I count die_s, die_p, die_i_i, throw_p, throw_p_p, and exit_i. There are not many semantic differences between them, especially if die is resumable.
19:41 whiteknight die_i_i seems only really useful as a replacement for exit_i, because almost all other exceptions are going to want a message or more data than just an integer
19:41 NotFound Anyway, i think is a waste to set a register to null as the only way to say "I don't want to be resumed"
19:41 whiteknight die_s could easily be renamed throw_s for clarity
19:42 whiteknight if die_i_i is being used for control flow, or things where diagnostics aren't wanted, it shouldn't be called "die"
19:43 benabik Most of the die ops are actually throw.
19:43 * pmichaud decides to leave the deck-chair-rearranging-party for a while.
19:43 benabik Only exception is `die .EXCEPT_doomed, $I0`, which calls _exit…  Which is odd.
19:44 NotFound .EXCEPT_doomed usage should be under security arena control.
19:44 whiteknight not EXCEPT_exit?
19:44 benabik whiteknight: No, EXECEPT_exit just throws an exit exception, just like exit_i
19:45 whiteknight so EXCEPT_exit is less certain about exiting than EXCEPT_doomed?
19:45 benabik Yes.
19:45 whiteknight bleh
19:45 NotFound exit_i and die_s are not needed at all. They are just a convenience to write PIR by hand, something that we don't want no more.
19:45 benabik But, AFAICT, only if EXECPT_doomed is passed to die_i_i, not throw.
19:46 whiteknight NotFound++
19:46 whiteknight I agree 100%
19:46 pmichaud I disagree 100%.
19:46 benabik We could move the convenience ops to a dynop.
19:47 pmichaud right now I can write  pir::die('message')   and it works.  You're telling me that instead I'll have to write  pir::throw(pir::new('Exception'), pir::new('Continuation'))  and a bunch of other stuff just to throw a simple exception.
19:47 pmichaud not to mention that "pir::new('Continuation')" is itself problematic unless we also start tossing labels into NQP.
19:48 pmichaud granted, me may end up having to do this anyway for other reasons... but it's not the case that only PIR writers use the single-argument die/throw.
19:48 pmichaud I'm outta here.
19:48 pmichaud left #parrot
19:48 whiteknight I don't think we would need the new Continuation bit by default. I like the idea of the throwcc op that benabik presented
19:48 whiteknight it is a common case
19:49 NotFound I think the basic variants of throw should be: with and without automatic continuation.
19:50 NotFound And if you want a continuation different of the automatic one, set it in the exception before throwing,
19:50 whiteknight I don't like the idea of die_s. throwing strings got perl5 into a lot of trouble, and us pretending to do that only obscures things
19:51 tadzik +1
19:51 NotFound If you want a die_s equivalent, you just need to create a exception and set the message, anyway.
19:54 whiteknight not that it really matters, of course. It would take us months to deprecate and remove any of these
19:55 whiteknight I wish we could go back in time and stop some of these lousy decisions from being made in the first place
19:55 NotFound Not a big priority, but I'd like to have the non autoresumable throw variant.
19:56 whiteknight NotFound: I guess for now you are stuck with throw_p_p
19:58 NotFound whiteknight: too much waste
19:59 whiteknight too much waste? Exceptions are uncommon in flow control
19:59 whiteknight or they should be
19:59 whiteknight in winxed they certainly are
19:59 NotFound whiteknight: waste of opcodes and registers
20:00 whiteknight NotFound: It's a solution now, until we come up with a better idea
20:01 NotFound I'll better use: throw ex | die .EXCEPT_doomed, 1
20:01 whiteknight that's the same number of opcodes
20:01 NotFound But I don't need to allocate a register.
20:01 whiteknight ok
20:01 whiteknight then yes, that might be the best.
20:02 whiteknight for now
20:02 NotFound Unfortunately, the best right now is: don't care, let's obscure bugs appears when someone mistakenly resume.
20:07 whiteknight let's deprecate die_i_i, and add in a new throw_noresume_p
20:08 ambs joined #parrot
20:09 whiteknight benabik: the die opcodes were all unresumable until you changed them?
20:09 benabik whiteknight: die_s and die_p were resumable.  die_i_i wasn't.
20:09 NotFound I need to think about a way to specify a resumable throw in winxed, then... I'll do if someone provides me a realistic use case ;)
20:10 whiteknight that seems extremely strange to me. What does the word "die" mean, if it's not something more final than "throw"?
20:10 whiteknight I mean, what differentiates a die from a throw? Anything? Nothing?
20:10 perlite_ joined #parrot
20:10 benabik Nothing.
20:11 whiteknight that bugs me
20:11 NotFound Shortness, and maybe familiarity for perl users.
20:12 NotFound At the times of hand-written pasm, shortness may have be very valuable ;)
20:12 whiteknight maybe, but it seems a hell of a lot like a solution to the wrong problem
20:13 whiteknight I would be much less unhappy with a throw_s and a throw_i_i opcode than I am with the same exact things named "die"
20:13 NotFound Probably was just a case a "we'll fix the design later"
20:13 whiteknight bleh
20:13 awwaiid joined #parrot
20:13 Tene whiteknight: +1
20:14 NotFound I did that in winxed: throw "message";
20:14 whiteknight it would be one thing if die actually died, like an exception that had higher-than-normal severity and no resume. That would be fine too
20:14 whiteknight but if it's just throw and it doesnt lead to the death of the process, it's mis-named
20:17 PerlPilot joined #parrot
20:19 PerlPilot joined #parrot
20:21 PerlJam joined #parrot
20:22 bluescreen joined #parrot
20:29 preflex joined #parrot
21:15 tcurtis ~~
21:40 cotto_work seen kid51
21:40 aloha kid51 was last seen in #parrot 18 hours 59 mins ago saying "Latest code in tt_2185 branch enables successful 'make release_check' on Linux and Darwin.".
21:44 dalek parrot/tt_2185: 403bd32 | cotto++ | config/gen/makefiles/root.in:
21:44 dalek parrot/tt_2185: use $(MAKE) for relcheck
21:44 dalek parrot/tt_2185: review: https://github.com/parrot/parrot/commit/403bd329a8
22:00 dalek parrot/tt_2185: 97618e1 | cotto++ | tools/release/releasecheck.pl:
22:00 dalek parrot/tt_2185: portably tell nmake to be quiet
22:00 dalek parrot/tt_2185: review: https://github.com/parrot/parrot/commit/97618e15cf
22:09 rfw joined #parrot
22:34 kid51 joined #parrot
22:40 jsut_ joined #parrot
22:40 Khisanth joined #parrot
22:41 cotto_work kid51: ping
22:46 kid51 cotto_work: pong.  Yes I see the commits to tt_2185; testing now.
22:47 kid51 Good results on Linux; testing on Darwin.
22:48 cotto_work kid51: what do I need to do to set up and administer a list on lists.parrot.org?
22:50 dukeleto interesting: http://software.intel.com/en-u​s/articles/memcpy-performance/
22:50 dukeleto msg Coke I am getting more spam about your gsoc final eval not being done
22:50 aloha OK. I'll deliver the message.
22:51 kid51 YOu probably need to contact OSU OSL.  whiteknight and I administer the existing lists (and smash for parrot-members), but I don't think we have privs for starting a new list.
22:51 kid51 What are you thinking of?
22:51 cotto_work kid51: starting some automated HLL testing and reporting
22:52 kid51 You want a mailing list for that?  As opposed to some sort of web site/service?
22:52 cotto_work I care very little how the data are presented, as long as it's easy to notice for people who care.
22:54 kid51 Well, because these lists attract a certain amount of spam, they require a certain commitment to admin them.
22:54 benabik spam--
22:54 kid51 I doubt that would be a productive use of your time.
22:54 cotto_work My priority is to get something working quickly.  Alternatives are welcome.
22:55 kid51 It occupies 2-3 minutes of my time every day ... which may not seem much, but if on average you only have 60 min available for Parrot per day, it's significant
22:55 cotto_work How much spam/day do our lists get?
22:55 kid51 I think the best functioning of all our reporting systems is ttbot or tinderbox or whatever it's called.
22:56 kid51 Also, please note how, e.g., cpan-testers has moved away from the mailing list model.
22:57 cotto_work To be honest, I'm explicitly unconcerned about long-term maintainability issues.  If the infrastructure proves useful, we'll make it better as needed.
23:01 cotto_work If taptinder can be made to work, that's great.
23:01 kid51 Well, color me skeptical re using a lists.parrot.org list for that purpose.  But feel free to write up something on parrot-dev so others can comment.  Also it would be a good idea to run your ideas by the sysadmins at OSUOSL.
23:01 cotto_work Consider yourself skeptically colored. ;)
23:06 benabik What's the hex value for skeptical?
23:06 benabik It's not in the standard list of CSS colors.
23:06 benabik ;-)
23:16 Coke joined #parrot
23:38 Kulag joined #parrot
23:53 gigigi joined #parrot
23:55 dalek parrot/tt_2185: 0ce783f | jkeenan++ | tools/release/releasecheck.pl:
23:55 dalek parrot/tt_2185: In testing release, provide Configure.pl with same command-line options as used initially.  Remove re-release test.
23:55 dalek parrot/tt_2185: review: https://github.com/parrot/parrot/commit/0ce783fde5

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

Parrot | source cross referenced