Camelia, the Perl 6 bug

IRC log for #parrot, 2010-09-16

Parrot | source cross referenced

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

All times shown according to UTC.

Time Nick Message
00:00 SingAlong left #parrot
00:01 SingAlong_ is now known as SingAlong
00:06 tcurtis joined #parrot
00:20 davidfetter left #parrot
00:21 Chandon left #parrot
00:27 whiteknight HAH! I think I got it
00:32 dngor_ joined #parrot
00:33 dngor left #parrot
00:37 chromatic When do we get a parrot-decepticon account?
00:38 whiteknight whenever we finaly accrue enough parrot-energon
00:38 dalek parrot-linear-algebra: 5894091 | Whiteknight++ | t/methods/complexmatrix2d/row_combine.t:
00:38 dalek parrot-linear-algebra: fix a test that was broken but was failing silently
00:38 dalek parrot-linear-algebra: review: http://github.com/Whiteknight/parrot-linear-algebr​a/commit/5894091cd9b6f114eae382575eb87b2b2f553b85
00:38 dalek parrot-linear-algebra: 8e06466 | Whiteknight++ | / (2 files):
00:39 dalek parrot-linear-algebra: update so PLA can submit smolder reports. Add a new prove tool, run_test.nqp, which copies some code from t/harness. Eventually I'll move out shared logic into a shared library
00:39 dalek parrot-linear-algebra: review: http://github.com/Whiteknight/parrot-linear-algebr​a/commit/8e064665037cd219ec73486cfcd3af91f6fa36f0
00:40 dalek parrot: r49029 | whiteknight++ | trunk/runtime/parrot/library/distutils.pir:
00:40 dalek parrot: fix to distutils to work with the new parrot smolder server. Adds in an optional smolder_credentials option which can be used to specify the login credentals for the server
00:40 dalek parrot: review: http://trac.parrot.org/parrot/changeset/49029/
00:45 * dukeleto mumbles "more than meets the eye"
00:46 dukeleto whiteknight++ # fixing distutils
00:47 whiteknight thanks! I was about to rip some hair out a while back
00:48 chromatic bacek, per your JFYI mail, how long does take to load perl6.pbc by itself, without doing anything else in x1.pir or x2.pir?
00:48 bacek_at_work chromatic, I didn't test it.
00:48 chromatic If it's about .350 seconds, we're golden.
00:48 chromatic parrot-energon for everyone.
00:48 bacek_at_work bacek@illusion:~/src/rakudo$ time parrot perl6.pbc -e ''
00:48 bacek_at_work real0m0.531s
00:48 bacek_at_work user0m0.472s
00:48 bacek_at_work sys0m0.048s
00:49 bacek_at_work I have no idea why current GC is so slow...
00:49 chromatic Maybe it's the Parrot_gc_avian_mark_and_sweep() function I just found.
00:49 whiteknight dukeleto: I don
00:50 whiteknight I don't know if you've looked at it recently, but the PLA t/harness is growing quite mature and sophisticated
00:50 whiteknight we might be able to merge some of it's ideas back into tapir, depending on how you want to develop that project
00:51 dukeleto whiteknight: interesting
00:51 dukeleto whiteknight: i don't quite know what to do with tapir, and I haven't looked at PLA's t/harness, yet. will do now
00:51 whiteknight I'm planning to refactor some of the core logic from my harness out into a shared library.
00:51 dukeleto whiteknight: feel free to put it into tapir, you should already have a commit bit
00:52 whiteknight dukeleto: I have been thinking for a while about taking all the bits of code from around the ecosystem, and combining them into an uber-test-project somewhere
00:52 dukeleto whiteknight: interesting
00:52 whiteknight something that ould provide TAP producer and consumer libraries, xUnit-style test frameworks, smolder support, etc
00:52 dukeleto whiteknight: that sounds really cool
00:52 whiteknight if tapir wants to be the home for that kind of comprehensive project, I would be fine with that
00:53 whiteknight otherwise I could create something new eventually
01:09 dukeleto whiteknight: might as well put that stuff in tapir. feel free to run with it
01:09 whiteknight okay. You might regret you said that :)
01:10 dukeleto whiteknight: let's go ahead and find out ;)
01:10 dukeleto whiteknight: i wonder what the difference is between the feature set of Parrot's builtin TAP parser and Tapir
01:10 * dukeleto hasn't even run tapir's test suite in quite a while
01:10 dukeleto does it even work with recent parrots?
01:13 whiteknight I have no idea. I haven't touched it
01:14 dukeleto whiteknight: it passes all tests with a recent parrot. nice.
01:19 dukeleto darbelo++ # feeding tapir while I was gone
01:21 dukeleto whiteknight: i see your harness is in nqp
01:21 whiteknight yeah.
01:21 whiteknight I'm at the stage where I'm pretty much tired of writing PIR
01:22 whiteknight Parrot is a VM for running any programming language we can possibly imagine, I refuse to be writing programs on it in assembly
01:22 atrodo PIR needs more magic and more fun
01:23 whiteknight PIR needs much less magic and much less fun
01:23 dukeleto whiteknight: i made this a long time ago but never did anything with it : http://github.com/leto/nqptap
01:23 dmalcolm left #parrot
01:24 dukeleto whiteknight: i hear what you are saying. my motivation for tapir was to write something faster than Perl 5, though. NQP is much slower.
01:24 bacek_at_work msg Coke I pushed aloha into gtihub.com/bacek/aloha. Feel free to hack lib/B/B/M/Msg.pm :)
01:24 purl Message for coke stored.
01:24 aloha OK. I'll deliver the message.
01:24 dukeleto whiteknight: which leads to much longer test runs, which makes people unhappy.
01:24 whiteknight yeah, I know what you mean
01:24 dalek rakudo: 39b41ad | colomon++ | src/core/ (4 files):
01:24 dalek rakudo: Split .pick into .pick and .roll.
01:24 dalek rakudo:
01:24 dalek rakudo: This is a straightforward effort to split the existing code.  There are at least a couple of clear issues with this code, but cleaning them up is probably best left until we have some better tests for these two methods.
01:24 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/3​9b41ad73b2c0888bdee28a59c8a65aacc8f6925
01:25 chromatic I hope there's a .pick and .pop next.
01:28 * dukeleto ponders a .pick, .lick and .flick
01:28 * dukeleto stops pondering that
01:28 dalek roast: 91aafc5 | colomon++ | / (3 files):
01:28 dalek roast: [t/spec] Change pick with :replace to roll, deleting entirely one test which no longer made sense.
01:28 dalek roast: review: http://github.com/perl6/roast/commit/91​aafc5fc59ce0d0f5d3d255384ed59b23ffc62a
01:29 whiteknight okay, I'm out for the night. Later
01:29 dalek parrot-linear-algebra: 686322d | Whiteknight++ | setup.nqp:
01:29 dalek parrot-linear-algebra: fix setup.nqp so information about the blas and lapack libraries found is included in the smolder report
01:29 dalek parrot-linear-algebra: review: http://github.com/Whiteknight/parrot-linear-algebr​a/commit/686322d135067b1057c23059775305e03066368d
01:29 whiteknight left #parrot
01:46 bluescreen joined #parrot
01:51 hercynium left #parrot
02:12 kid51 My first PASS on our new Smolder site:  http://smolder.parrot.org/ap​p/projects/report_details/22
02:13 dalek tracwiki: v7 | jkeenan++ | SmokingParrot
02:13 dalek tracwiki: Change URL for smolder
02:13 purl dalek: that doesn't look right
02:13 dalek tracwiki: http://trac.parrot.org/parrot/wiki/Sm​okingParrot?version=7&action=diff
02:18 dukeleto kid51++
02:31 dalek rakudo: e682712 | pmichaud++ | src/ (4 files):
02:31 dalek rakudo: Switch C<time> and C<now> to be 0-ary terms.
02:31 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/e​682712b418bcd2aadfc9a9cefdeac427fade722
02:31 dalek rakudo: 4f3d392 | pmichaud++ | src/core/ (4 files):
02:31 dalek rakudo: Merge branch 'master' of github.com:rakudo/rakudo
02:31 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/4​f3d3928ed4e4734ae0422786dd8bd3fa65e454b
02:33 * cotto lights up a parrot
02:35 janus left #parrot
02:37 dalek roast: e2e65b2 | pmichaud++ | S29-context/sleep.t:
02:37 dalek roast: [sleep.t]:  C<time> does not allow parens after it.
02:37 dalek roast: review: http://github.com/perl6/roast/commit/e2​e65b2720f1a9319692051130c75b2a0662ed98
02:43 dalek roast: a25207b | colomon++ | S (3 files):
02:43 dalek roast: [t/spec] Add about eighty pick and roll tests, including a new S32-list/roll.t file.
02:43 dalek roast: review: http://github.com/perl6/roast/commit/a2​5207bacf2494e4ab5baba304d61c8179e43d6a
02:55 dalek parrot: r49030 | plobsing++ | trunk/src/pmc/hash.pmc:
02:55 dalek parrot: remove useless default.{freeze,thaw} calls
02:55 dalek parrot: eliminates 67% of unused hash creation in parrot startup
02:55 dalek parrot: review: http://trac.parrot.org/parrot/changeset/49030/
02:56 plobsing oops. commit r49030 should read "in *rakudo* startup"
02:56 cotto nice
02:57 dukeleto plobsing++
02:58 * tcurtis wonders how many unused hashes are created in Parrot startup.
02:58 cotto dukeleto, what do you know about testing code that accepts github post-receive hooks?
02:59 cotto tcurtis, I know an easy way to find out
03:00 tcurtis cotto: oh?
03:01 cotto use whatever luben used
03:01 cotto I think he instrumented Parrot_hash_destroy
03:02 cotto http://nopaste.snit.ch/23343
03:02 cotto s/P/p/
03:04 plobsing it's not so easy mapping to where those come from though. I wound up scripting gdb and analyzing the output with perl.
03:04 cotto Do you have anything you'd feel good about posting?  I haven't played with gdb scripting.
03:05 plobsing it's not great, but I'll post it anyways
03:05 nopaste "plobsing" at 192.168.1.3 pasted "unused hashes gdb script" (26 lines) at http://nopaste.snit.ch/23374
03:05 cotto thanks
03:06 nopaste "plobsing" at 192.168.1.3 pasted "unused hashes perl postprocessing" (145 lines) at http://nopaste.snit.ch/23375
03:06 plobsing you can apparently script it with python, but this fell together in about 5 minutes.
03:06 bluescreen left #parrot
03:07 cotto Now that you mention it, I remember seeing a video about gdb scripting with Python.
03:09 plobsing do you have the url for it?
03:10 cotto I'll see if I can dig it up.
03:10 dukeleto cotto: what do you want to know?
03:10 kid51 left #parrot
03:12 cotto I remember seeing this blog post: http://tromey.com/blog/?p=548
03:13 cotto dukeleto, how do I either fake a callback or get github to send some dummy data?
03:13 cotto s/callback/receive/
03:13 janus joined #parrot
03:14 dukeleto cotto: what language are you working in ?
03:14 Andy joined #parrot
03:14 dukeleto cotto: you want to mock the callback
03:14 cotto python
03:14 cotto for the github plugin
03:15 dukeleto cotto: you need something like this : http://labix.org/mocker
03:15 dukeleto cotto: that is just the first I found
03:16 cotto Are you mocking me?
03:16 dukeleto cotto: or http://code.google.com/p/p​ymox/wiki/MoxDocumentation
03:16 dukeleto cotto: always ;)
03:16 dukeleto cotto: those are the roughly the equivalent of Test::MockObject for Perl 5
03:17 cotto I was thinking more along the lines of wget or curl with some hard-coded data
03:17 dukeleto cotto: if you don't want dependencies, you can do it yourself, as well
03:17 dukeleto cotto: describe a full example test to me
03:18 cotto make sure trac is set up properly
03:18 cotto call wget on the right url with some extra post data attached
03:18 cotto make sure that the hook dtrt
03:19 dukeleto cotto: what is the hook, exactly. i don't fully understand
03:21 cotto My terminology may be confused.  The github trac plugin adds a url for trac that you can give to github as a post-receive url so that any new commits get propagated to trac from github.
03:26 cotto that's what I'm asking about testing
03:26 dukeleto cotto: ah, i see. so we want to POST to a trac url with JSON and see if trac does the right thing?
03:26 dukeleto cotto: yeah, curl sounds good for that
03:27 cotto exactly
03:39 dalek rakudo: 358d728 | pmichaud++ | src/core/metaops.pm:
03:39 dalek rakudo: Add meta-op forms of ?&, ?|, ?^, &&.  Fixes RT #77864.
03:39 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/3​58d728b86884d907c256b6adb3e9d7f4a173c0d
04:02 dukeleto cotto: how do you go about seeing if trac DTRT?
04:02 dukeleto cotto: what does that exactly mean?
04:02 cotto add a revision, make sure that the wiki syntax for it works
04:03 cotto s/revision/commit/
04:04 cotto I'll check the code to see what it's supposed to do when writing a full test case.
05:00 chromatic Wow, something really slowed down Rakudo in the past day.
05:02 plobsing any hunches?
05:03 chromatic I'm checking r49018 right now.
05:03 chromatic It wasn't the hash thawing or the Parrot_str_escape_truncate change.
05:12 rurban_ joined #parrot
05:15 rurban left #parrot
05:15 rurban_ is now known as rurban
05:26 chromatic Trying r49000 now.
05:34 plobsing the minimum hashtable size is now 2 in stead of 8. that would likely kill performance.
05:35 chromatic I tested r48970 and it's still slower there for some reason.
05:36 plobsing do you have a known good revision?
05:36 chromatic Looking for one.
05:41 cognominal left #parrot
05:43 chromatic Nothing stands out.
05:43 plobsing how are you sure it slowed down then?
05:44 chromatic Looking at timings of test runs.
05:45 dalek parrot: r49031 | plobsing++ | trunk/src/hash.c:
05:45 dalek parrot: eliminate vestigial comment
05:45 dalek parrot: review: http://trac.parrot.org/parrot/changeset/49031/
05:45 plobsing the test suite is always growing. rakudo is a moving target as well. have you pinned those to a specific rev?
05:46 chromatic I'm using Parrot's test suite and have stuck with a Rakudo checkout from earlier today.
05:47 chromatic Parrot's test suite has been consistently between 23 - 26 seconds with a parallel coretest until today, and now it's somewhere between 40 and 60 seconds.
05:47 plobsing whoa
05:47 chromatic 36 now
05:49 chromatic Almost like I have debugging enabled or something.
05:49 chromatic Rakudo builds used to take about three minutes and now they're over six.
05:50 plobsing I thought that felt slower, but I dismissed it as impatience.
05:52 chromatic It's definitely slower.
05:54 chromatic Rakudo's startup is twice as long too.
05:55 contingencyplan left #parrot
05:56 chromatic I remember r49011 being pretty good.
05:57 chromatic The weirdness is that Callgrind profiling doesn't show anything.
05:57 plobsing cache locality issues?
05:57 chromatic Possibly.
05:57 plobsing can valgrind/callgrind help with that somehow?
05:58 chromatic Cachegrind does.
05:59 jan left #parrot
06:00 chromatic Lots of branch mispredictions.
06:00 chromatic 20.5% indirect mispredictions.
06:01 plobsing is that high? I thought op-dispatch made that figure pretty high already?
06:02 Andy left #parrot
06:03 chromatic It's not too bad there.  Lots of mispredicts in hashing for some reason.
06:05 uniejo joined #parrot
06:06 plobsing hash inlining changes?
06:09 tcurtis I noticed that PCT-based compiler REPLs don't support Unicode when Parrot was built with readline support. However, using rlwrap the give the REPLs readline support without Parrot having been built with readline does support Unicode.
06:14 chromatic Doesn't look like inlining
06:15 tcurtis Are the buffers of Parrot strings guaranteed to be null-terminated?
06:15 bacek_at_work tcurtis, no
06:16 tcurtis So, passing foo->strstart to functions expecting C strings is probably a bad idea?
06:16 NotFound tcurtis: readline is wrong, feel free to fix it.
06:17 NotFound And please, don't optimize it ;)
06:18 chromatic I do it for debugging, but don't check that in!
06:19 chromatic Lots of indirect branch mispredictions from memset.
06:21 plobsing memset has branch misprediction problems? woudn't libc make that one as fast as possible?
06:22 chromatic Could be Cachegrind's version.
06:23 plobsing you could probably get rid of all the memsets in src/hash.c they only zero uninitialized memory.
06:24 chromatic I did, but Rakudo seems to go into an infinite loop.
06:25 plobsing probably doesn't play nice with not walking the buckets explicitly
06:25 plobsing in gc
06:26 chromatic Right.
06:26 chromatic I'm out of brilliance for the night though.
06:26 chromatic IWBNI we had dukeleto's benchmarker running again.
06:27 chromatic Will resume looking again tomorrow.
06:33 chromatic left #parrot
06:38 tcurtis NotFound: I'm tempted, but I'm short on tuits currently, and that sounds tricky.
06:39 * dukeleto thinks about the benchmarker some more
06:41 * plobsing dreams of having an inexhaustable farm of servers to run smoke testing and benchmarking
06:41 NotFound tcurtis: is tricky if you want to care about possible wide chars encoding, just fixing the null terminating problem is easy.
06:41 NotFound plobsing: buy rackspace ;)
06:41 dukeleto plobsing: i dream of that too.
06:42 tcurtis NotFound: ah, yes, that should be simple.
06:42 dukeleto at least we have smolder back
06:42 * tcurtis will do that.
06:42 NotFound tcurtis: just put a banner in parrot.org to accept donations
06:42 plobsing NotFound: my funds are quite exhaustable
06:43 NotFound "We want to buy rackspace. Please send us funds to do it"
06:43 cotto plobsing, I'll email you a quarter.
06:43 cotto That'll work, right?
06:44 plobsing if you convince enough people to do it. I think we would crash any social graph if we had that many friends though.
06:45 esskar joined #parrot
06:45 tcurtis By the way, is mem_internal_free guaranteed to call free?
06:46 dukeleto mj41: tapir2 has a full disk
06:46 plobsing tcurtis: no. that's why it isn't just free().
06:46 * NotFound plays Friends will be friends
06:47 tcurtis More stuff to fix in readline_interactive! :)
06:55 bacek ~~
07:00 mj41 dukeleto: these blades has small hdds :-(, removing old coverage reports
07:04 bacek mj41, a-ha! Where is my git support in ttbot?
07:05 bacek Your honeymoon should be over already :)
07:05 bacek (And congratulations)
07:05 bacek :)
07:10 mj41 bacek: Ahoj. I'm back at $work and busy a bit. But I have finally some free weekends. So Git support is on the way :-).
07:10 bacek mj41, hooray!
07:11 SingAlong left #parrot
07:13 mikehh bacek: BTW I nopasted some results from testing gc_masacre - http://nopaste.snit.ch/23367
07:14 bacek mikehh, thanks. They are kind of "expected failures" for now. GC MS2 doesn't fully implement statistics for such tests.
07:14 mikehh baceK: I can fix the codetest etc. failures if you like
07:14 bacek mikehh, yes, sure.
07:14 dukeleto mj41: i rm'ed a bunch of gigs
07:15 dukeleto mj41: it was mostly me
07:18 tadzik joined #parrot
07:18 bacek Shit.
07:18 bacek r49018 is totally wrong.
07:19 bacek Our string are immutable. We can't change buffer behind it.
07:20 mj41 dukeleto: CPAN Reporter make 25G log file
07:21 dukeleto mj41: ooh boy
07:23 mj41 dukeleto: back to 42G (70%) of 63G avalilable
07:23 dukeleto aloha, msg chromatic i have my benchmark script working again, let me know what you need benchmarked
07:23 aloha dukeleto: OK. I'll deliver the message.
07:23 dukeleto aloha: yeah, i rm'ed my openembedded repo ;)
07:26 dalek parrot: r49032 | mikehh++ | branches/gc_massacre (22 files):
07:26 dalek parrot: [gc_massacre] add svn properties and re-generate MANIFEST.SKIP
07:26 dalek parrot: review: http://trac.parrot.org/parrot/changeset/49032/
07:26 moritz dukeleto: fyi, I've managed a first smolder submission with the new system, now doing another test run before I push my changes
07:26 moritz (submission for rakudo, that is)
07:28 he joined #parrot
07:32 bacek hmmm... May be it's not so wrong.
07:34 theory left #parrot
07:34 tcurtis Why does FileHandle.readline_interactive print the prompt to stderr?
07:34 dukeleto moritz: very cool!
07:34 purl very cool! is this one of those ultra slim ones?
07:35 cotto forget very cool!
07:35 purl cotto, I didn't have anything matching very cool
07:35 cotto sigh
07:36 dukeleto mj41: please check your private messages when you get a chance
07:43 dalek parrot: r49033 | tcurtis++ | trunk/src/pmc/filehandle.pmc:
07:43 dalek parrot: Fix a potentially incorrect freeing in FileHandle's readline_interactive.
07:43 dalek parrot: readline's readline function returns a pointer which must be freed.
07:43 dalek parrot: mem_internal_free is not necessarily libc's free.
07:43 dalek parrot: review: http://trac.parrot.org/parrot/changeset/49033/
07:55 tadzik left #parrot
08:00 dalek parrot: r49034 | bacek++ | branches/string_gc_split:
08:00 dalek parrot: Branch for decoupling String GC from PMC GC.
08:00 dalek parrot: review: http://trac.parrot.org/parrot/changeset/49034/
08:00 dukeleto yay, bacek++ is back
08:17 dalek parrot: r49035 | mikehh++ | branches/gc_massacre/src/gc/gc_ms2.c:
08:17 dalek parrot: [gc_massacre] fix codetest failures - add missing ASSERT_ARGS,
08:17 dalek parrot: add some missing c_function_docs and fix some and fix
08:17 dalek parrot: there should be at least one space between a C keyword
08:17 dalek parrot: and any subsequent open parenthesis (left c++ comments)
08:17 dalek parrot: review: http://trac.parrot.org/parrot/changeset/49035/
08:25 tcurtis left #parrot
08:29 dalek roast: 264f008 | KodiB++ | S02-builtin_data_types/key (3 files):
08:29 dalek roast: Additions, corrections, and reformatting for KeySet, KeyBag, and KeyWeight.
08:29 dalek roast: review: http://github.com/perl6/roast/commit/26​4f008abcc21c0484d6610ffd2b9e2dd20ec737
08:34 dalek parrot: r49036 | fperrad++ | trunk/t/harness.pir:
08:34 dalek parrot: [t] works with the new Parrot smolder server
08:34 dalek parrot: review: http://trac.parrot.org/parrot/changeset/49036/
08:34 dalek parrot: r49037 | tcurtis++ | trunk/src/pmc/filehandle.pmc:
08:34 dalek parrot: Use Parrot_str_to_cstring instead of strstart when passing prompt to functions
08:34 dalek parrot: that expect C strings in FileHandle.readline_interactive.
08:34 dalek parrot: review: http://trac.parrot.org/parrot/changeset/49037/
08:34 dalek parrot: r49038 | dukeleto++ | trunk/t/native_pbc (3 files):
08:34 dalek parrot: [t] Update native pbc for x86 64bit to make packfile tests pass
08:34 dalek parrot: review: http://trac.parrot.org/parrot/changeset/49038/
08:51 dalek parrot: r49039 | bacek++ | branches/string_gc_split/src/gc/gc_private.h:
08:51 dalek parrot: Add typedef for future string iterator callback.
08:51 dalek parrot: review: http://trac.parrot.org/parrot/changeset/49039/
08:51 dalek parrot: r49040 | dukeleto++ | trunk/NEWS:
08:51 dalek parrot: [doc] Update NEWS with Smolder info and a github URL
08:51 dalek parrot: review: http://trac.parrot.org/parrot/changeset/49040/
08:51 dalek parrot: r49041 | bacek++ | branches/string_gc_split/src/gc/gc_ms.c:
08:51 dalek parrot: Copy-paste logic for iterating live STRING/Buffer from compact_pool into gc_ms_iterate_live_strings.
08:51 dalek parrot: review: http://trac.parrot.org/parrot/changeset/49041/
08:51 dalek parrot: r49042 | bacek++ | branches/string_gc_split/src/gc (2 files):
08:51 dalek parrot: Add void* data for strings iterator.
08:51 dalek parrot: review: http://trac.parrot.org/parrot/changeset/49042/
08:51 dalek parrot: r49043 | bacek++ | branches/string_gc_split/src/gc (2 files):
08:51 dalek parrot: Switch compact_pool to use GC_Sys iterator over strings instead of direct poking into header pools
08:51 dalek parrot: review: http://trac.parrot.org/parrot/changeset/49043/
08:51 dalek parrot: r49044 | bacek++ | branches/string_gc_split/src/gc (2 files):
08:51 dalek parrot: Made move_header_callback static
08:51 dalek parrot: review: http://trac.parrot.org/parrot/changeset/49044/
08:51 dalek parrot: r49045 | bacek++ | trunk/src/gc (3 files):
08:51 dalek parrot: Merge branch 'string_gc'
08:51 dalek parrot: review: http://trac.parrot.org/parrot/changeset/49045/
08:51 dalek parrot: r49046 | bacek++ | branches/string_gc_encapsulate:
08:51 dalek parrot: Branch for encapsulating String GC as separate subsystem
08:51 dalek parrot: review: http://trac.parrot.org/parrot/changeset/49046/
09:00 cotto I remember this game.
09:01 orc joined #parrot
09:06 bacek cotto, which one? :)
09:06 orc left #parrot
09:07 cotto the one where you push a boatload of commits to svn and I wonder at your robot-like speed
09:07 bacek :)
09:22 dalek tracwiki: v4 | cotto++ | GitHubTracPluginTests
09:22 dalek tracwiki: kinda flesh out the hook test
09:22 dalek tracwiki: http://trac.parrot.org/parrot/wiki/GitHub​TracPluginTests?version=4&amp;action=diff
09:24 szbalint cotto: "Я, робот".
09:27 bacek szbalint, "Я - робот" is little bit more correct :)
09:27 * jnthn was slightly amused that the word for "worker" actually is "работник" :-)
09:28 jnthn Wonder if that and robot have similar origins. :-)
09:28 szbalint bacek: hehe, I copied it from wikipedia :)
09:29 bacek jnthn, it is, actually.
09:29 cotto That's what I recall from a previous random Wikipedia walk.
09:29 szbalint jnthn: in fact they do :)
09:29 cotto we have a consensus
09:29 jnthn Cute :-)
09:30 szbalint http://en.wikipedia.org/wiki/Robot#Etymology
09:36 * dukeleto sent an email to parrot-dev with some benchmark info
09:36 dukeleto let me know what benchmarks and branches people want to see
09:36 * dukeleto gets some sleep
09:37 cotto good idea
09:46 elmex left #parrot
09:48 elmex joined #parrot
09:51 dalek rakudo: cd151f6 | moritz++ | build/Makefile.in:
09:51 dalek rakudo: update spectest_smolder to new smolder.parrot.org server
09:51 dalek rakudo:
09:51 dalek rakudo: see http://smolder.parrot.org/a​pp/projects/smoke_reports/5 for the reports.
09:51 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/c​d151f65c696c3c4992677a3dfcfbaef81b78551
09:53 moritz purl: msg dukeleto http://github.com/rakudo/rakudo/commit/c​d151f65c696c3c4992677a3dfcfbaef81b78551 works for me, let's see if it works for others too
09:53 purl Message for dukeleto stored.
10:19 tadzik joined #parrot
10:47 jsut joined #parrot
10:51 jsut_ left #parrot
10:52 dalek rakudo: f11a044 | colomon++ | src/core/Range.pm:
10:52 dalek rakudo: Try to clean up Range.pick and Range.roll a bit.
10:52 dalek rakudo:
10:52 dalek rakudo: Still not completely happy with these, but they work a bit better now...
10:52 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/f​11a04449484507234ea8646cacf4d9af009fd11
10:52 dalek rakudo: 142ceba | colomon++ | t/spectest.data:
10:52 dalek rakudo: Add S32-list/roll.t to the list of spectests.
10:52 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/1​42cebabaa858e0628533f614d6faab4349d1e00
10:59 bacek msg chromatic After finishing painting your office, can you take a look at string_gc_encapsulate branch? It's almost finished. Just few last touches required.
10:59 purl Message for chromatic stored.
10:59 aloha OK. I'll deliver the message.
11:00 dalek roast: 091d652 | colomon++ | S02-builtin_data_types/range.t:
11:00 dalek roast: [t/spec] Unfudge three tests that work now.
11:00 dalek roast: review: http://github.com/perl6/roast/commit/09​1d652cef9875d99edae624f2273febda2da838
11:07 dalek parrot: r49047 | bacek++ | branches/string_gc_encapsulate (2 files):
11:07 dalek parrot: Add empty file for future String GC
11:07 dalek parrot: review: http://trac.parrot.org/parrot/changeset/49047/
11:07 dalek parrot: r49048 | bacek++ | branches/string_gc_encapsulate/src/gc (2 files):
11:07 dalek parrot: Copy-paste string-related functions from gc_ms and make them public.
11:07 dalek parrot: review: http://trac.parrot.org/parrot/changeset/49048/
11:07 dalek parrot: r49049 | bacek++ | branches/string_gc_encapsu​late/src/gc/gc_private.h:
11:07 dalek parrot: Remove unused gc_private pointer from Memory_Pools
11:07 dalek parrot: review: http://trac.parrot.org/parrot/changeset/49049/
11:07 dalek parrot: r49050 | bacek++ | branches/string_gc_encapsu​late/src/gc/gc_private.h:
11:07 dalek parrot: Broke the build - split String_GC out of Memory_Pools.
11:07 dalek parrot: Not really but it's not accessible directly anymore.
11:07 dalek parrot: review: http://trac.parrot.org/parrot/changeset/49050/
11:07 dalek parrot: r49051 | bacek++ | branches/string_gc_encapsulate/src (4 files):
11:07 dalek parrot: Introduce Parrot_gc_str_compact_pool
11:07 dalek parrot: review: http://trac.parrot.org/parrot/changeset/49051/
11:07 dalek parrot: r49052 | bacek++ | branches/string_gc_encapsulate/src/gc (2 files):
11:07 dalek parrot: Use Parrot_str_gc_* functions instead of gc_ms_* for allocating string storage
11:07 dalek parrot: review: http://trac.parrot.org/parrot/changeset/49052/
11:07 dalek parrot: r49053 | bacek++ | branches/string_gc_encapsulate/src/gc (3 files):
11:07 dalek parrot: Implement Parrot_gc_str_free_buffer_storage for freeing allocated resources
11:07 dalek parrot: review: http://trac.parrot.org/parrot/changeset/49053/
11:07 dalek parrot: r49054 | bacek++ | branches/string_gc_encapsulate/src/gc (5 files):
11:07 dalek parrot: Shuffle functions around. Restore build and almost finish String GC encapsulting. Still some polish required
11:07 dalek parrot: review: http://trac.parrot.org/parrot/changeset/49054/
11:43 mikehh left #parrot
11:50 mikehh joined #parrot
11:51 bluescreen joined #parrot
11:59 whiteknight joined #parrot
12:00 whiteknight good morning, #parrot
12:00 whiteknight I see that bacek has been on a magical robot coding adventure while I slept
12:01 whiteknight there's nothing quite like reading a 30-chapter novel about the adventures of bacek in Google Reader
12:15 dalek parrot: r49055 | fperrad++ | trunk/runtime/parrot/library/distutils.pir:
12:15 dalek parrot: [distutils] refactor with get_value()
12:15 dalek parrot: review: http://trac.parrot.org/parrot/changeset/49055/
12:15 mikehh whiteknight: yes - we seriously missed bacek++ in the last month or so
12:17 dalek rakudo: 705379c | masak++ | src/core/Instant.pm:
12:17 dalek rakudo: [core/Instant] added 'Real' role as per spec
12:17 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/7​05379c1633f9b2d826d69248f05f803fc329302
12:26 whiteknight I just had a non-zero exit on t/library/archive_zip.t. Is anybody else seeing that?
12:27 whiteknight Ah, failure comes because I didn't build Parrot with zlib
12:27 whiteknight of course, it should fail more gracefully than that
12:39 dalek lua: 50bc750 | fperrad++ | setup.pir:
12:39 dalek lua: works with the new Smolder server
12:39 dalek lua: review: http://github.com/fperrad/lua/commit/50​bc75065577d7fc2adcd4856b30eeb355998d8f
12:45 Andy joined #parrot
12:46 whiteknight NotFound: ping
12:48 whiteknight purl msg NotFound I saw a weird error today where finalize_p didn't look like it returned from an inner runloop. Take a look at r49057 when you get a chance. If you remove the "exit 0" from the end of the file, you'll see inner runloop weirdness
12:48 purl Message for notfound stored.
12:49 dalek parrot: r49056 | bacek++ | branches/string_gc_encapsulate/src/gc (3 files):
12:49 dalek parrot: More split String GC allocations for buffers to be less dependend from Memory_Pools
12:49 dalek parrot: review: http://trac.parrot.org/parrot/changeset/49056/
12:49 dalek parrot: r49057 | whiteknight++ | trunk/t/library/archive_zip.t:
12:49 dalek parrot: t/library/archive_zip.t was failing with an unhandled exception if parrot is compiled without zlib support builtin. I added an exception handler and finalize_p to fail more gracefully, but that doesn't appear to have worked. I needed to add an exit_i to the end to force a graceful exit from the inner runloop.
12:49 dalek parrot: review: http://trac.parrot.org/parrot/changeset/49057/
12:50 betterworld joined #parrot
12:51 patspam joined #parrot
13:01 Andy left #parrot
13:04 cognominal joined #parrot
13:07 tadzik left #parrot
13:08 arnsholt Is there a fix to the "Configure.pl --gen-parrot doesn't actually gen-parrot" issue?
13:08 arnsholt I've encountered it with Rakudo a few times, as well as with my own project, and it's a bit annoying
13:09 moritz in what way did it not generate a parrot?
13:09 arnsholt It configures Parrot, and then for some reason doesn't run make
13:09 moritz that's weird.
13:10 moritz no further error message?
13:11 arnsholt Nope. I get the "You can now use `make' to build your Parrot" message, followed by "Building Parrot ..." and then no building and "Reading configuration information from parrot_install/..."
13:12 rurban_ joined #parrot
13:15 rurban left #parrot
13:15 rurban_ is now known as rurban
13:18 Patterner left #parrot
13:23 dalek parrot: r49058 | bacek++ | branches/string_gc_encapsulate/src/gc/gc_ms.c:
13:23 dalek parrot: [cage] Add documentation.
13:23 dalek parrot: review: http://trac.parrot.org/parrot/changeset/49058/
13:25 NotFound whiteknight: ping
13:27 he left #parrot
13:28 Psyche^ joined #parrot
13:28 Psyche^ is now known as Patterner
13:31 NotFound msg whiteknight finalize must be used before pop_eh, it needs the information from its context
13:31 purl Message for whiteknight stored.
13:31 aloha OK. I'll deliver the message.
13:31 NotFound Ups
13:31 NotFound I was using "/msg" X-)
13:33 whiteknight Ah, thanks
13:33 whiteknight let me give that a try
13:34 whiteknight works.
13:35 NotFound Good
13:40 dalek parrot: r49059 | whiteknight++ | trunk/t/library/archive_zip.t:
13:40 dalek parrot: Put finalize_p before pop_eh, on suggestion from NotFound++. Works perfectly.
13:40 dalek parrot: review: http://trac.parrot.org/parrot/changeset/49059/
13:41 NotFound It was not a suggestion. It was an order! ;)
13:44 contingencyplan joined #parrot
13:46 cotto left #parrot
13:57 dalek parrot: r49060 | bacek++ | branches/string_gc_encapsulate/src/gc (3 files):
13:58 dalek parrot: Move mem_allocate function into string_gc.c and made static. It's not used anywhere else
13:58 dalek parrot: review: http://trac.parrot.org/parrot/changeset/49060/
13:58 dalek parrot: r49061 | bacek++ | branches/string_gc_encapsulate/src/gc (4 files):
13:58 dalek parrot: Move String GC related functions from alloc_resources into string_gc
13:58 dalek parrot: review: http://trac.parrot.org/parrot/changeset/49061/
13:58 dalek parrot: r49062 | bacek++ | branches/string_gc_encapsula​te/src/gc/alloc_resources.c:
13:58 dalek parrot: Remove leftover function
13:58 dalek parrot: review: http://trac.parrot.org/parrot/changeset/49062/
13:59 bacek ookey
13:59 bacek make test passed in string_gc_encapsulate branch
13:59 bacek And it's tomorrow already.
14:00 Topic for #parrot is now smoke string_gc_encapsulate branch | Parrot 2.7.0 "Australian King" Released! | parrot.org Log: irclog.perlgeek.de/parrot/today | Nopaste: nopaste.snit.ch:8001 | close 25 tickets; remove deprecated items (especially CodeString); record deprecations; polish for 2.8 release
14:01 bacek If no one will complain I'll merge string_gc_encapsulate into trunk tomorrow morning. And then into gc_massacre.
14:01 bacek Good night, humans
14:15 uniejo left #parrot
14:32 dalek TT #1792 created by rg++: return inside void function in integer.pmc breaks build on solaris
14:32 dalek TT #1792: http://trac.parrot.org/parrot/ticket/1792
14:49 dalek parrot: r49063 | NotFound++ | trunk/src/pmc/integer.pmc:
14:49 dalek parrot: Don't use return in void functions, TT #1792, rg++
14:49 dalek parrot: review: http://trac.parrot.org/parrot/changeset/49063/
14:49 dalek TT #1792 closed by NotFound++: return inside void function in integer.pmc breaks build on solaris
14:49 dalek TT #1792: http://trac.parrot.org/parrot/ticket/1792
15:11 whiteknight every time I get a bluescreen on WinXP, I could scream until my eyes bleed
15:11 NotFound whiteknight: there is a simple solution for that.
15:11 NotFound A registry key that change the background color.
15:12 bluescreen or a more drastic approach - changing the OS
15:13 AzureSto_ joined #parrot
15:14 NotFound I mention this one first to avoid being called zealot X-)
15:16 AzureStone left #parrot
15:19 whiteknight it's my work computer. I can't change the OS on it or IT might kill me
15:20 whiteknight at home, I use a stable OS
15:21 NotFound whiteknight: MSX?
15:21 whiteknight MSX?
15:21 NotFound I mean, MSX_DOS
15:22 dalek winxed: r657 | NotFound++ | trunk/winxedst1.winxed:
15:22 dalek winxed: closures in stage 1, first version, poorly tested
15:22 dalek winxed: review: http://code.google.com/p/w​inxed/source/detail?r=657
15:22 NotFound http://en.wikipedia.org/wiki/MSX-DOS
15:23 NotFound The more stable OS that I know. Years and years without fixes.
15:28 tadzik joined #parrot
15:28 nwellnhof joined #parrot
15:38 AzureSto_ left #parrot
15:45 AzureStone joined #parrot
15:49 tadzik left #parrot
15:57 AzureSto_ joined #parrot
15:58 dalek parrot: r49064 | mikehh++ | branches/string_gc_encapsulate/MANIFEST:
15:58 dalek parrot: re-generate MANIFEST
15:58 dalek parrot: review: http://trac.parrot.org/parrot/changeset/49064/
15:59 theory joined #parrot
16:00 AzureStone left #parrot
16:12 tadzik joined #parrot
16:16 chromatic joined #parrot
16:17 Andy joined #parrot
16:32 nwellnhof left #parrot
16:33 ruoso joined #parrot
16:33 dalek parrot: r49065 | mikehh++ | branches/string_gc_encapsulate/src/gc/string_gc.c:
16:33 dalek parrot: [string_gc_encapsulate] fix some codetest failures - add svn properties
16:33 dalek parrot: add an ASSERT_ARGS and add/fix c_function docs
16:33 dalek parrot: review: http://trac.parrot.org/parrot/changeset/49065/
16:37 dip left #parrot
16:45 dngor_ is now known as dngor
16:50 whiteknight I'm running that branch through the wringer, and it's looking A-OK
16:51 whiteknight gcc, g++, clang and icc, all with and without --optimize pass on Ubuntu 10.04 x86
16:51 whiteknight I'm going to run most of the same battery tonight on x86_64, but I don't expect any problems.
17:02 AzureSto_ left #parrot
17:15 davidfetter joined #parrot
17:32 AzureStone joined #parrot
17:46 nopaste "luben" at 192.168.1.3 pasted "updated hash stats, plobsing++" (13 lines) at http://nopaste.snit.ch/23390
17:48 chromatic Halved our hash usage.
17:49 whiteknight fantastic
17:49 whiteknight absolutely wonderful improvement
17:50 davidfetter kudos!
17:50 chromatic Should cut down on Rakudo memory usage too.
17:59 * dukeleto ponders about memory benchmarks...
18:00 dalek TT #1793 created by pmichaud++: FileHandles do not properly transcode strings
18:00 dalek TT #1793: http://trac.parrot.org/parrot/ticket/1793
18:01 tadzik that's since the last release?
18:03 chromatic in the last week
18:09 tadzik oh, nice
18:09 tadzik (Parrot team)++
18:33 dalek parrot: r49066 | fperrad++ | trunk/t/library/archive_zip.t:
18:33 dalek parrot: [t] refactor with skip_all (missing part of r48955)
18:33 dalek parrot: review: http://trac.parrot.org/parrot/changeset/49066/
18:38 chromatic grr, git-bisect is misbehaving with git-svn.
18:39 NotFound pmichaud: ping
18:39 NotFound pmichaud: forget it, someone already commented my issue in the ticket.
18:39 purl NotFound, I didn't have anything matching it, someone already commented my issue in the ticket
18:54 jan joined #parrot
19:10 pmichaud NotFound: oops, glad you folks noticed my think-o.  Thanks.
19:20 chromatic I haven't been able to bisect any slowdown in the past week.  Other takers welcome.
19:20 plobsing dukeleto: do you have docs anywhere on how you use bin/bench?
19:39 dukeleto plobsing: i sent an email to p5p about it. one sec
19:40 dukeleto plobsing: it is part of euler_bench
19:40 dukeleto plobsing: http://github.com/notbenh/euler_bench
19:41 dukeleto plobsing: i am using the leto-report branch, which makes the output the way I like it :)
19:43 dukeleto plobsing: http://www.nntp.perl.org/group/perl.​perl5.porters/2009/10/msg152921.html
19:49 dalek winxed: r658 | NotFound++ | trunk/winxedst1.winxed:
19:49 dalek winxed: createsubid was not propagated from class and namespace, fixed
19:49 dalek winxed: review: http://code.google.com/p/w​inxed/source/detail?r=658
19:50 bluescreen left #parrot
19:56 dalek rakudo: 760c734 | pmichaud++ | src/cheats/process.pm:
19:56 dalek rakudo: Set default filehandles to unicode encoding.  Resolves RT #77888.
19:56 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/7​60c73453bdcdd42a35380b927242414be8554a3
19:56 chromatic Why does Parrot_str_from_int() reimplement strtoul?
19:57 whiteknight I'm not looking at the code, but I assume that strtoul doesn't do what we need
19:57 whiteknight some platforms define INTVAL as long long, which strtoul definitely doesn't support
19:57 whiteknight (we could use macros, of course. I have no excuse for why we wouldn't)
19:58 chromatic Suppose we tried strtoul first, then checked errno for overflow, and only then used the naive, slow version.
19:58 whiteknight we know at compile time whether strtoul will work or not
19:58 whiteknight or, whether it will work universally
19:59 whiteknight but yes, I do agree that a naive, slow, home-brew implementation should not be the first choice
19:59 plobsing strtoul does the opposite of Parrot_str_from_int
19:59 whiteknight itoa?
20:00 chromatic I meant Parrot_str_to_int, sorry.
20:00 chromatic Or whatever... looking at these functions bugs me.
20:01 NotFound If I remember well, because of naive versions using strtoul were buggy.
20:01 dalek TT #1793 closed by pmichaud++: FileHandles do not properly transcode strings
20:01 dalek TT #1793: http://trac.parrot.org/parrot/ticket/1793
20:06 NotFound Uh, no, I was mixing things.
20:07 NotFound I think it was that strtoul is unable to handle the number of digits required for floating point numbers.
20:07 whiteknight left #parrot
20:10 NotFound Or maybe that was Parrot_str_num
20:10 NotFound In short: no idea %-)
20:11 AzureSto_ joined #parrot
20:12 cotto joined #parrot
20:12 chromatic It's worth trying; dividing and modulus operations take up 25% of the stress_strings benchmark.
20:13 AzureStone left #parrot
20:13 bacek ~~
20:13 bacek strtoul can't handle unicode strings
20:14 AzureStone joined #parrot
20:14 NotFound Looks like that function were copypasted from Parrot_str_to_num and never cleaned enough well.
20:14 chromatic Neither can Parrot_str_from_int(), if I read it correctly.
20:14 chromatic ... and it's very, very wrong for non-ASCII.
20:15 NotFound The pod says that it accepts decimals and exponents, and the function doesn't.
20:16 plobsing whats this? the docs lie? impossible!
20:16 NotFound Incoceivable!
20:17 dalek roast: fd2da7e | pmichaud++ | S03-operators/short-circuit.t:
20:17 dalek roast: Fudge a failing test in short-circuit.t exposed by Parrot Boolean/Integer changes.
20:17 dalek roast: review: http://github.com/perl6/roast/commit/fd​2da7e0564f12acc2ada63f0053bbcb1126288b
20:18 NotFound Well, I don't think that stress_strings should be so heavily based on string to int conversions.
20:18 AzureSto_ left #parrot
20:18 chromatic True.
20:18 NotFound It's more noise than signal
20:20 chromatic It's 40% of execution time.
20:20 NotFound Dividing and modulus? That functions does multiplications
20:21 plobsing chromatic: yes, but if you look at the biggest changes in costs since 2.7.0, compact_pool appears to be the culprit
20:21 chromatic Yeah, I'm looking at the callback pointer there.
20:21 NotFound The div and mose it uses are evaluated at compile time... or it should.
20:21 NotFound s/mose/mod
20:21 tadzik left #parrot
20:24 plobsing stress_strings regression goes back at least as far as r48800
20:25 chromatic gc_ms_iterate_live_strings is awful, performance wise.
20:27 chromatic I have a 5.45 - 6.26% performance improvement on the benchmark by inlining some of the guard clauses.
20:31 cotto ~~
20:31 chromatic Hm.  Everything on my machine runs at half speed today.  Maybe it's not Parrot.
20:32 chromatic Rakudo uses 25% less memory than it did with Rakudo Star.
20:33 chromatic That hash effort paid off.
20:36 chromatic Let's try this commit.
20:36 sorear \o/
20:37 luben good evening world
20:38 luben now, as we have non-significant number of empty hashes I will revert a premature optimization (lazy allocation of hash space and compare the speed)
20:39 chromatic left #parrot
20:39 bacek aloha
20:40 bacek any objections on merging string_gc_encapsulate branch?
20:41 NotFound If we are going to do it before the release, do it rigth now.
20:43 bacek testing merge now
20:45 chromatic joined #parrot
20:47 bacek done
20:48 chromatic Merge successful?
20:48 bacek of course
20:49 bacek afk # breakfast :)
20:49 chromatic I like branches that work so well.
20:49 pmichaud note that Rakudo is currently failing a lot of tests in parrot trunk.
20:49 pmichaud I'm waiting for the latest spectest run to finish.
20:51 pmichaud http://gist.github.com/583142   # rakudo spectests on r49066
20:51 dalek parrot: r49067 | chromatic++ | trunk/src/gc/gc_ms.c:
20:51 dalek parrot: [GC] Optimized gc_ms_iterate_live_strings().
20:51 dalek parrot: By moving the "don't do anything!" guard clauses from the buffer-moving
20:51 dalek parrot: callback to before calling the callback, the stress_strings.pir benchmark runs
20:51 dalek parrot: ~6% faster and the callback gets called less than 10% of the time as before.
20:51 dalek parrot: This appears to improve Rakudo's performance by about a percent as well.
20:51 dalek parrot: We can live with this ugliness until someone either tries to make this function
20:51 dalek parrot: more general (but please don't do that) or we get a better GC (so please help
20:51 dalek parrot: with gc_massacre and the like).
20:51 dalek parrot: Also the moral of the story is "Don't write C as if it were C++ and expect a
20:51 dalek parrot: compiler which can't optimize across function pointer calls or source files to
20:51 dalek parrot: generate fast code."
20:51 dalek parrot: review: http://trac.parrot.org/parrot/changeset/49067/
20:51 dalek parrot: r49068 | bacek++ | branches/string_gc_encapsulate/src/gc/gc_ms.c:
20:51 dalek parrot: [cage] Add ASSERT_ARGS macros
20:51 dalek parrot: review: http://trac.parrot.org/parrot/changeset/49068/
20:51 dalek parrot: r49069 | bacek++ | trunk (7 files):
20:51 dalek parrot: Merge branch 'string_gc'
20:51 dalek parrot: review: http://trac.parrot.org/parrot/changeset/49069/
20:51 dalek parrot: r49070 | bacek++ | trunk/src/gc/string_gc.c:
20:52 dalek parrot: Remove public version of alloc_new_block. It's not used outside of String GC
20:52 dalek parrot: review: http://trac.parrot.org/parrot/changeset/49070/
20:52 atrodo chromatic> nice commit message
20:53 chromatic I hope it's helpful.
20:53 pmichaud I can run spectests against r49070
20:53 nopaste "NotFound" at 192.168.1.3 pasted "refactor Parrot_str_to_int" (90 lines) at http://nopaste.snit.ch/23394
20:54 chromatic That's cleaner.
20:55 chromatic Is there any way we can try the libc functions first, when appropriate?
20:56 NotFound chromatic: I think it will need costly checks and conversions.
20:57 chromatic Seems worth a benchmark at least.
20:58 NotFound chromatic: Testing and benchmarking in all potentially conflictive platforms and configure options is not easy.
21:01 NotFound chromatic: And it will need a call to Parrot_str_to_cstring anyway, I seriously doubt it pays.
21:06 chromatic Maybe so.
21:06 chromatic Still, look at Parrot_string_from_uint.
21:06 chromatic For base ten, why do anything other than sprintf?
21:10 bacek btw, free karma for someone with svn checkout for removing string_gc_* branches
21:12 NotFound Mmm... that function is called used from Parrot_str_from_int and from spf_render.c
21:14 rurban_ joined #parrot
21:16 whiteknight joined #parrot
21:17 rurban left #parrot
21:17 rurban_ is now known as rurban
21:20 plobsing I've managed to narrow the stress_strings performance regression to 48559:48600
21:22 NotFound Uh, that patch was wrong, iter_get_and_advance can return random garbage after the end of the string.
21:25 jdv79 left #parrot
21:26 patspam left #parrot
21:26 patspam joined #parrot
21:39 pmichaud Rakudo spectest failures against r49070:  http://gist.github.com/583221
21:39 pmichaud I'll help narrow down the issues a bit after helping with kid homework and dinner
21:40 pmichaud looks like unicode and/or icu related issues
21:42 chromatic Maybe r48933, but you had a clean run since then.
21:43 chromatic plobsing, I rebooted after an upgrade and wallclock times are back to normal.  Weirdest thing.
21:43 Khisanth left #parrot
21:48 NotFound Maybe you need a new wallclock.
21:49 pmichaud looks like the problem may be that some strings are losing track of their encoding
21:50 bluescreen joined #parrot
21:50 plobsing chromatic: OK, I'll stop chasing wild geese then.
21:53 pmichaud I'm guessing that hash keys aren't remembering their encoding.
21:54 pmichaud But let me see if I can confirm that.
21:55 NotFound total_length += total_length >> 1; ???
21:55 NotFound Is not the weirdest thing I have seen, but...
21:56 dalek lua: 0108744 | fperrad++ | dynext/pmc/luaany.pmc:
21:56 dalek lua: logical VTABLES are gone, see http://trac.parrot.org/parrot/changeset/49012
21:56 dalek lua: review: http://github.com/fperrad/lua/commit/01​08744fd409a6e147c0e9643cb130aefa8e8de4
21:57 dalek roast: 14f0e95 | KodiB++ | S02-builtin_data_types/instants-and-durations.t:
21:57 dalek roast: Unfudged a test of now being a term.
21:57 dalek roast: review: http://github.com/perl6/roast/commit/14​f0e95cb5270cb58fe6848d4bc8e0c7a43dfb77
21:57 dalek roast: a41a669 | KodiB++ | S32-temporal/DateTime-Instant-Duration.t:
21:57 dalek roast: Fixed fouled-up fudge syntax.
21:57 dalek roast: review: http://github.com/perl6/roast/commit/a4​1a669052db222d4fb07ce832e88fd3435a5522
21:59 perlite left #parrot
22:00 perlite joined #parrot
22:00 bluescreen Guys, need some guidance... Is there any way to make ".return" to work over nested closures ? basically from a method I call a closure and I want to return from the method if the closure has an explicit return
22:01 pmichaud bluescreen: rakudo and nqp currently do this using exceptions.
22:02 pmichaud i.e., the nested closure throws an exception that is caught by the outer routine
22:02 bluescreen is that a best practice or some magic?
22:02 NotFound You can also pass continuation
22:02 pmichaud the only other way I know to do it is for the nested closure to be able to look up the return continuation of the outer method and invoke it
22:02 dalek roast: e0d9631 | KodiB++ | S02-builtin_data_types/instants-and-durations.t:
22:02 dalek roast: [instants-and-durations.t] Use .perl so as not to require great accuracy from .Str.
22:02 dalek roast: review: http://github.com/perl6/roast/commit/e0​d9631300bf0a13addb5340e080cf34c176dc39
22:02 NotFound And invoke it instead of returning
22:03 pmichaud (or for the outer method to store a continuation somewhere that the nested closure can invoke)
22:03 bluescreen how well tested continuations are?
22:03 NotFound "is that a best practice or some magic?" What's the difference?
22:04 bluescreen best practice has the "you should do it this way" implied
22:04 bluescreen magic is divine inspiration
22:05 NotFound Then is magic. We don't tell how you should do things.
22:06 bluescreen NotFound: Com'on everybody loves best practices
22:06 dalek rakudo: aa5896d | KodiB++ | t/spectest.data:
22:06 dalek rakudo: [spectest.data] Added tests for Instants and Durations.
22:06 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/a​a5896d2baa51df04a33ee9ea2d5137e494f13f5
22:06 dalek rakudo: 529f546 | KodiB++ | src/core/ (2 files):
22:06 dalek rakudo: Made Instant.Str more awesome per RT #77802.
22:06 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/5​29f54622a067e1de4d135aee7c6b4ff9857e057
22:06 dalek rakudo: 3ae665f | KodiB++ | src/core/Duration.pm:
22:06 dalek rakudo: Removed &infix:<->(Real, Duration).
22:06 dalek rakudo:
22:06 dalek rakudo: It competed with &infix:<->(Instant, Real).
22:06 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/3​ae665f9919f2f459d0164c30f089129316e448a
22:06 NotFound bluescreen: you know the mottto "There's more than one way to do it"?
22:07 bluescreen yeah... tough it takes some time till once gets used to
22:07 bluescreen s/once/one
22:08 NotFound Continuations in parrot are tested heavily. sub calls are continuations. returns are continuations...
22:08 NotFound exception handlers are continuations...
22:08 NotFound closures are continuations...
22:09 bluescreen that's good to know, you see. there was a best practice after all
22:10 NotFound That implies that rakudo is not doing the best? ;)
22:11 bluescreen I'm sure rakudo has its motives
22:11 mikehh left #parrot
22:12 ruoso left #parrot
22:12 pmichaud parrot internal continuations may be well-tested; creating your own continuations and using them is much less well tested.
22:13 pmichaud it's also the case that Perl 6 allows for returns to be caught by exception handlers, which more naturally leads to an exception-based model.
22:14 NotFound pmichaud: if I read well the docs, a closure is your own continuation plus a lex capture.
22:14 pmichaud NotFound: that's not at all what I think of as being a closure.
22:14 NotFound pmichaud: I mean how it's implemented.
22:15 pmichaud even in implementation
22:15 NotFound Oh, yes, I was mixing ideas again...
22:17 NotFound The effort of understanding closures enough to make them work in wixed has been demanding %-)
22:22 bluescreen NotFound: I'd say that solving closure and scope is the greatest deal of an HLL
22:23 NotFound bluescreen: I'm used mainly to languages without closures, but certainly they are very useful.
22:24 pmichaud the unicode-related issue seems to be related to short unicode strings having the final bytes chopped off
22:25 bluescreen well Java survived many years without'em
22:25 pmichaud there seems to be an eight-byte boundary
22:25 NotFound pmichaud: uhh... maybe someone mixed byte length and char length?
22:26 NotFound pmichaud: utf8?
22:26 purl somebody said utf8 was telling perl teh source code is utf8
22:27 pmichaud yes, utf8
22:27 pmichaud http://gist.github.com/583284   # example
22:27 pmichaud if the variable identifier is long enough, then things seem to work okay.
22:28 pmichaud but if it gets short, then one of the internal symbols confuses byte length with char length
22:28 pmichaud and it seems to stop working when the byte length goes below 8
22:28 NotFound pmichaud: Do you know at wich r started to happen?
22:28 pmichaud NotFound: not yet.
22:29 pmichaud haven't had a chance to bisect yet.
22:29 NotFound Let me try to reproduce it with some short pir...
22:32 mikehh joined #parrot
22:34 dalek parrot: r49071 | NotFound++ | trunk/src/string/api.c:
22:34 dalek parrot: shorter and cleaner, even if a bit tricky, implementation of Parrot_str_to_int
22:34 dalek parrot: review: http://trac.parrot.org/parrot/changeset/49071/
22:39 NotFound I've tried using as a key in a hash and storing and retriveving in a namespace, and can't reproduce the problem.
22:40 Khisanth joined #parrot
22:53 pmichaud yes, I don't think it's hash-related at the moment.
22:53 pmichaud I'm starting a bisect
23:00 dalek winxed: r659 | NotFound++ | trunk/winxedst1.winxed:
23:00 dalek winxed: store scope in function parameters, fixs its detection as candidates for
23:00 dalek winxed: lexicals
23:00 purl lexicals are destroyed in the proper order
23:00 dalek winxed: review: http://code.google.com/p/w​inxed/source/detail?r=659
23:02 Paul_the_Greek joined #parrot
23:02 Paul_the_Greek Hey there, folks.
23:04 luben Hi Paul_the_Greek
23:04 Paul_the_Greek Howdy, luben.
23:10 * NotFound is scary seen casts from pointer to unsigned long to pointer
23:12 sorear should be INTVAL
23:12 sorear IV/INTVAL's main reason for existing is to be a C89-compatible intptr_t, if I understand #p5p correctly
23:14 NotFound sorear: I don't know if we've decided to make such a grant explicit. If not, we probably should, is implicit in a lot of places.
23:16 chromatic I'm not comfortable in assuming that the user-visible uses of INTVALs should imply anything about pointers.
23:16 chromatic ... nor that the probed sizes of INTVAL are necessarily equivalent to the probed sizes of pointers.
23:18 NotFound chromatic: the codebase assumes in several places that an INTVAL can contain a pointer.
23:19 patspam left #parrot
23:19 chromatic We should fix them.
23:21 sorear What *should* parrot use in place of intptr_t?
23:23 chromatic I don't know.
23:23 chromatic I hesitate to call it INTVAL because that may be confusing.
23:30 NotFound There is a nice note in parrot.h saying that we should have "UINTPTR or something like that"
23:30 chromatic Even INTPTR is better than INTVAL.
23:31 NotFound Well, INTVAL at least exists ;)
23:31 chromatic True.
23:35 elmex_ joined #parrot
23:38 elmex left #parrot
23:38 elmex_ is now known as elmex
23:41 Paul_the_Greek Isn't there something like PTR2INTVAL?
23:42 dalek parrot: r49072 | mikehh++ | trunk/src/gc/alloc_resources.c:
23:42 dalek parrot: fix codetest failure - tidy up pod syntax
23:42 dalek parrot: review: http://trac.parrot.org/parrot/changeset/49072/
23:42 dalek parrot: r49073 | mikehh++ | trunk/src/gc (2 files):
23:42 dalek parrot: fix missing assert_args - re-ran make headerizer
23:42 dalek parrot: review: http://trac.parrot.org/parrot/changeset/49073/
23:42 Paul_the_Greek Yes, there is. It's used about half a dozen times.
23:44 Andy left #parrot
23:44 NotFound Paul_the_Greek: yes, the comment I mentioned is located where that macros are defined.
23:45 Paul_the_Greek PTR2UINTVAL is used about a dozen times.
23:45 whiteknight hate
23:46 Paul_the_Greek Why is there even the concept of casting a pointer to a signed integer?
23:47 NotFound Paul_the_Greek: they were used, and probably still are, to pass pointer to pir registers, to later be used in some ops.
23:48 Paul_the_Greek What's the right way to cast a pointer to an unsigned integer for other purposes?
23:48 NotFound Paul_the_Greek: there is no rigth way, that's the problem.
23:49 Paul_the_Greek Doesn't C have ptrint_t or some such? Ah, but maybe not in C89.
23:49 NotFound Paul_the_Greek: recent versions of the standard introuced ways, but we support old compilers.
23:49 Paul_the_Greek We can't blow off those old compilers so I can use // comments? :D
23:50 Paul_the_Greek There's some hackery in parrot.h to compare the sizes of pointers and integers.
23:50 NotFound Paul_the_Greek: we can introduce our own preprocesor, adding yet another more nice level of complexity to our build process ;)
23:51 Paul_the_Greek In there some way to enhance that to do the right thing?
23:52 Paul_the_Greek In particular, it could simply not define INTVAL2PTR if integers are larger than pointers.
23:52 NotFound Paul_the_Greek: sure, but someone have to develop it and to make sure it's appropiate for a lot of platforms.
23:53 Paul_the_Greek Do we trust PTR_SIZE and INTVAL_SIZE?
23:53 NotFound Paul_the_Greek: and the parrot simply will not compile.
23:53 Paul_the_Greek Right. If Parrot depends on converting a 64-bit integer to a 32-bit pointer, something's amiss.
23:54 Paul_the_Greek The xxx_SIZE guys are set up by configure. I presume we can trust them.
23:55 NotFound Anyway, is not a good moment to think about ways of breaking parrot, better wait to the release.
23:55 Paul_the_Greek Okay, I'll trash it later on.
23:55 Paul_the_Greek Question, though: Where are INTVAL et all defined?
23:56 Paul_the_Greek s/et all/et al/
23:56 NotFound Paul_the_Greek: the configure stage does it.
23:57 Paul_the_Greek I can't find a #define for it.
23:57 NotFound include/parrot/config.h
23:58 mikehh_ joined #parrot
23:59 Paul_the_Greek Oh, it's a typedef. Uppercase typedef.
23:59 Paul_the_Greek Should I use Parrot_Int or INTVAL?

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

Parrot | source cross referenced