Camelia, the Perl 6 bug

IRC log for #parrot, 2010-07-01

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 dalek parrot: r47939 | darbelo++ | branches/gsoc_nfg/src/packfile/pf_items.c:
00:01 dalek parrot: Make room for the grapheme table on freeze calculations.
00:01 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47939/
00:01 dalek parrot: r47940 | darbelo++ | branches/gsoc_nfg/src/string (2 files):
00:01 dalek parrot: Add a helper function to rehash the graphemes in a table.
00:01 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47940/
00:01 dalek parrot: r47941 | darbelo++ | branches/gsoc_nfg/src/packfile/pf_items.c:
00:01 dalek parrot: Add NFG thaw support.
00:01 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47941/
00:01 dalek parrot: r47942 | darbelo++ | branches/gsoc_nfg/src/string/grapheme.c:
00:01 dalek parrot: Improve grapheme table size handling.
00:01 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47942/
00:01 dalek parrot: r47943 | darbelo++ | branches/gsoc_nfg/src/packfile/pf_items.c:
00:01 dalek parrot: Increment the right variable in the packfile storage loop.
00:01 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47943/
00:01 dalek parrot: r47944 | darbelo++ | branches/gsoc_nfg/src/packfile/pf_items.c:
00:01 dalek parrot: Add missing '*'s on a few cursors.  They are different from the other cursors.
00:01 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47944/
00:01 dalek parrot: r47945 | darbelo++ | branches/gsoc_nfg/t/op/string_nfg.t:
00:01 dalek parrot: Add freeze/thaw tests.
00:01 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47945/
00:01 dalek parrot: r47946 | darbelo++ | branches/gsoc_nfg/src/packfile/pf_items.c:
00:01 dalek parrot: Whitespace police.
00:01 purl ALL TAB STOPS AT 8 COLUMNS.  LINE UP ENCLOSING BRACES.  EVERY COMMA HAS A SPACE AFTER IT.  AND THIS MEANS *YOU*, BOY!
00:01 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47946/
00:04 plobsing_work msg ash_ I won't be able to make our weekly meeting today. Can we reschedule? I have all of tomorrow off.
00:04 purl Message for ash_ stored.
00:17 dalek parrot: r47947 | darbelo++ | branches/gsoc_nfg/src/packfile/pf_items.c:
00:17 dalek parrot: Fix indentation.
00:17 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47947/
00:58 ash_ joined #parrot
01:08 ash_ anyone feel like running some tests for me on non OS X?
01:09 dalek partcl-nqp: 006b089 | Coke++ | src/Partcl/Actions.pm:
01:09 dalek partcl-nqp: if someone refers to a $nonvariable, generate an appropriate error msg.
01:09 dalek partcl-nqp: review: http://github.com/partcl/partcl-nqp/commit​/006b08987387281bf784d3ef64cb89a544c11268
01:09 dalek partcl-nqp: 6ebb388 | Coke++ |  (3 files):
01:09 dalek partcl-nqp: now that $foo errors more properly, we can run t/cmd_variable.t
01:09 dalek partcl-nqp: (also add the usage message)
01:09 dalek partcl-nqp: review: http://github.com/partcl/partcl-nqp/commit​/6ebb3884a23eec938f54681a6d528642ace93ed6
01:24 sorear ash_: what tests?
01:24 purl well, tests is what I don't have tuits for
01:24 ash_ nci tests would be lovely (with libffi)
01:24 sorear opbots names
01:24 sorear uh... are you asking me to write tests?
01:25 tcurtis sorear: to run some tests on a platform other than OS X, I believe.
01:25 sorear yes
01:25 sorear I'm asking him what to test
01:25 sorear I have no idea what "nci tests" means
01:26 sorear I understand: coretest, fulltest, codetest, test X all branches X all revisions
01:26 ash_ umm, coretest
01:26 purl coretest is all of the tests excluding configuration subsystems and documentation
01:26 dukeleto long lost cousin of PIR? http://en.wikipedia.org/wiki/Intermediate_Parakeet
01:26 sorear ash_: you still haven't specified revision or branch
01:27 ash_ http://github.com/ashgti/parrot/ is my repo, (most recent revision)
01:28 ash_ instead of running all the tests, if you want you can just try "prove t/pmc/nci.t"
01:30 dukeleto New blog post about PL/Parrot and PL/Perl6: http://leto.net/dukeleto.pl/2010/06/rakud​o-perl-6-in-your-postgresql-database.html
01:30 ash_ sorear: also, do you have libffi installed?
01:31 ash_ its probably installed if your running linux, but you might not have the headers
01:32 ash_ apt-get install libffi-dev   for deb-based linux, i'd have to check for any others since i don't use them regularly
01:33 ash_ for yum its libffi-devel
01:33 ash_ just checked
01:35 sorear I have libffi-dev 3.0.7-1 installed
01:35 sorear good enough?
01:35 ash_ yup
01:35 sorear it's more than a year old
01:35 sorear ok
01:36 sorear --optimize?
01:36 ash_ i have tested back to 2.1
01:36 ash_ sure? i haven't tried --optimize
01:36 ash_ (os x includes libffi 2.1, which is a pretty old version)
01:37 sorear I installed libffi back when I was hacking GHC
01:37 sorear you're doing libffi frame builder for GSoC, right?
01:38 ash_ yeah
01:39 ash_ basically, it builds the call signature dynamically now, so no need for thunks at compile time
01:40 ash_ also added support for C's 'long long' (if the platform supports it)
01:42 ash_ the trickiest one will be building on windows with windows compiler...
01:43 ash_ libffi works on windows with the windows compiler (according to their read me) so it's possible but the build instructions are a bit more complicated
02:11 kid51 joined #parrot
02:15 sorear ash_: failed 2 tests nci_fff nci_vfff
02:16 ash_ hmm, k, i'll look into those, i didn't get that, which OS?
02:17 dalek partcl-nqp: 2a3361c | Coke++ | src/Partcl/commands/main.pm:
02:17 dalek partcl-nqp: improved error handling on set a(b)
02:17 dalek partcl-nqp: review: http://github.com/partcl/partcl-nqp/commit​/2a3361cfc81a7b6a337a2b8d75f60ca3332f5e17
02:17 dalek partcl-nqp: 18945e6 | Coke++ | t/cmd_append.t:
02:17 dalek partcl-nqp: recent fixes elsewhere broke this.
02:17 dalek partcl-nqp: get doesn't work for the test, because the error message is now wrong.
02:17 dalek partcl-nqp: need a hand rolled check in [append] which I'm too lazy to do right now.
02:17 dalek partcl-nqp: review: http://github.com/partcl/partcl-nqp/commit​/18945e61885ddb2ab08ba75a52c5de2828ded84d
02:17 dalek partcl-nqp: 84cc2b4 | Coke++ |  (3 files):
02:18 dalek partcl-nqp: fixup [unset] enough to run the test file.
02:18 dalek partcl-nqp: review: http://github.com/partcl/partcl-nqp/commit​/84cc2b47e70223cbbb04f959847a0c06d69611c9
02:18 sorear ash_: Linux/i386
02:18 ash_ kk, i have a linux computer i can try it on
02:24 dalek parrot-plumage: 5f4020a | japhb++ | metadata/pynie.json:
02:24 dalek parrot-plumage: [metadata] Pynie has moved to a new repository; thanks to fperrad++ for the update
02:24 dalek parrot-plumage: review: http://gitorious.org/parrot-plumage/parrot-plumag​e/commit/5f4020a1a6f4c44cf66a08904ecdabaa07defa03
02:28 Essobi joined #parrot
02:35 * tcurtis has a new least favorite bug.
02:35 janus joined #parrot
02:42 TiMBuS joined #parrot
02:44 cotto ~?
02:44 purl ~ is throwing her off
02:44 cotto ~!
02:44 theory joined #parrot
02:44 tcurtis msg moritz I think I've got your problem fixed. Haven't committed yet, though.
02:44 purl Message for moritz stored.
02:50 ash_ hmmm sorear i got the same error on 386 (or is it 686?) linux, looking into it
02:51 sorear 386
02:52 sorear 386 is the architecture, 686 is a specific model
02:52 sorear a "686" linux has been optimized for, and will not run on anything less than, a ppro
02:52 sorear but it is observationally identical to a "386" linux
02:57 cotto I have a dual PPro machine sitting in my laundry room.
02:58 cotto I don't observe it very often.
03:38 LoganLK joined #parrot
03:51 dalek parrot: r47948 | tcurtis++ | branches/gsoc_past_optimization/runt​ime/parrot/library/Tree/Pattern.nqp:
03:51 dalek parrot: Make Tree::Pattern::patternize work even if Sub has a non-working .ACCEPTS method. Make it work in moritz++'s Rakudo branch.
03:51 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47948/
03:52 tcurtis msg moritz That problem should be fixed. For some reason, the subs were appearing to have a .ACCEPTS method... which turned out to try to invoke a null sub somewhere. But, it's fixed now, as far as I can tell.
03:52 purl Message for moritz stored.
04:01 ash_ i feel like this some days http://xkcd.com/722/
04:03 tcurtis Anything sounds trivial with the right phrasing, ash_.
04:09 tcurtis bacek || bacek_at_work: ping
04:09 ash_ well, maybe i can just tell everyone that they need to use 64 bit computers now...
04:09 ash_ this bug seems to only happen in 32 bit
04:12 cotto I guess I can do that.
04:12 * cotto sets his 32-bit laptop on fire
04:13 cotto Hmmmm.  Warm, yet noxious.
04:22 cotto You'd think I'd be offline several minutes after setting my laptop on fire, or at least that it'd be hard to type.
04:24 bacek_at_work tcurtis, barely here
04:24 ash_ nah, your probably just a bit more stubborn than most when it comes to being productive on a burning computer
04:25 ash_ some laptops feel like they are on fire when you leave them in your lap and hit compile
04:25 tcurtis bacek_at_work: any suggestions on optimizations to work on for PIRATE?
04:26 bacek_at_work tcurtis, constant folding?
04:27 ash_ why would Parrot_pcc_fill_params_from_c_args return 0 for all but the last argument with the parameters NNN
04:27 ash_ and only on 32 bit systems
04:27 tcurtis bacek_at_work, alright.
04:28 ash_ hmm i am going to have to figure this out in the morning
04:28 bacek_at_work tcurtis, check compilers/pirc/README.pod in parrot repo. "=head3 Constant Folding"
04:29 bacek_at_work tcurtis, it's bare minimum which we need for self-hosting PIRATE.
04:30 ash_ tcurtis: if your at a loss, http://llvm.org/docs/Passes.html has a bunch of good ideas,although they might not all apply to PIRATE
04:30 bacek_at_work after, we can implement proper Constant Propagation, more aggressive folding, tailcall optimizations, etc.
04:31 ash_ the section on Transform Passes lists all the llvm passes
04:31 ash_ night &
04:32 * tcurtis gets to work.
04:45 cotto clock?
04:45 purl cotto: LAX: Wed 9:45pm PDT / CHI: Wed 11:45pm CDT / NYC: Thu 12:45am EDT / LON: Thu 5:45am BST / BER: Thu 6:45am CEST / IND: Thu 10:15am IST / TOK: Thu 1:45pm JST / SYD: Thu 2:45pm EST /
04:52 GeJ and NOU: Thu 3:45pm NCT
04:54 cotto literal clock?
04:54 purl cotto: clock =is= <rss="http://rjbs.manxome.org/rss/clock.cgi">
05:10 fperrad joined #parrot
05:13 bacek_at_work cotto, any luck with git rebasing?
05:23 cotto I haven't tried it yet.
05:30 bacek_at_work cotto, ok. Good luck anyway :)
05:50 dalek winxed: r528 | NotFound++ | trunk/winxedst1.winxed:
05:50 dalek winxed: stop assigning sub params to new registers in stage 1
05:50 dalek winxed: review: http://code.google.com/p/w​inxed/source/detail?r=528
05:56 tcurtis One of the subtle niceties of git is that there's nothing wrong with committing code before it works.
06:03 uniejo joined #parrot
06:33 moritz :-)
06:40 NotFound The next step will be to allow to commit code before writing it.
06:42 NotFound That technology combined with python "import from future" will be awesome.
08:16 moritz tcurtis: btw you really fixed my problem, thanks
08:19 tcurtis moritz: good to hear. As always, let me know if any more show up.
08:35 dalek rakudo: 3d2cb82 | moritz++ | t/spectest.data:
08:35 dalek rakudo: run test file for @*ARGS
08:35 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/3​d2cb821ff7e14f3a06e6556a68d649e6cbc30c1
08:38 cotto bacek_at_work, your instructions worked!  Thanks.
08:38 bacek clock?
08:38 purl bacek: LAX: Thu 1:38am PDT / CHI: Thu 3:38am CDT / NYC: Thu 4:38am EDT / LON: Thu 9:38am BST / BER: Thu 10:38am CEST / IND: Thu 2:08pm IST / TOK: Thu 5:38pm JST / SYD: Thu 6:38pm EST /
08:38 bacek It's almost 7PM! No more _at_work for today! :)
08:40 cotto which means it must be almost 0200 for me.
08:42 cotto extravagantly broken branch pushed
08:42 cotto night
08:43 bacek good night, cotto!
08:43 bacek how badly it's broken?
08:51 AndyA joined #parrot
09:29 mikehh joined #parrot
10:14 mikehh All tests PASS (pre/post-config, make corevm/make coretest, smoke (#34669), fulltest) at r47948 - Ubuntu 10.04 i386 (g++)
10:14 mikehh t/op/exit.t - TODO passed:   6 in testf
10:15 mikehh the TODO pass only occurs on the x86 version not the x86_64
10:22 mikehh pir/PIRATE (63b457e) - build ok / test PASS - on parrot at r47948 - Ubuntu 10.04 i386 (g++)
10:29 mikehh partcl-nqp (84cc2b4) - make ok, make test PASS - on parrot at r47948 - Ubuntu 10.04 i386 (g++)
10:32 mikehh starting to build/test rakudo - letting it run - have to go out for a bit
10:33 mikehh a) it seems to take a bit longer on i386 and b) about twice as long with an unoptimized version of parrot :-}
10:42 clinton joined #parrot
11:25 dalek pir: 619c372 | bacek++ |  (6 files):
11:25 dalek pir: Little be more proper support of :main subs
11:25 dalek pir: review: http://github.com/bacek/pir/commit/619​c372e33362b71c3d767eb6e368ef6d6745926
11:25 dalek pir: 9891ac2 | bacek++ | src/POST/Key.pm:
11:25 dalek pir: Add POST::Key.Str method for stringification.
11:26 dalek pir: review: http://github.com/bacek/pir/commit/989​1ac250bd817be41027354db0693fc3b22c13e
11:26 dalek pir: 694f13f | bacek++ | src/POST/Sub.pm:
11:26 dalek pir: Add POST::Sub.full_name which includes namespace (if any).
11:26 dalek pir: review: http://github.com/bacek/pir/commit/694​f13fbe5ded05b10344a6417aac58a47efaa3c
11:26 dalek pir: 1e75f98 | bacek++ | src/PIR/Actions.pm:
11:26 dalek pir: Use Sub.full_name for choosing :main sub
11:26 dalek pir: review: http://github.com/bacek/pir/commit/1e7​5f98650ec3f5c4bfc0c8d873b70821ca0dfde
11:26 dalek pir: df0d73c | bacek++ | src/PIR/Actions.pm:
11:26 dalek pir: Don't introduce bogus variables during handling of $*HLL and &*NAMESPACE.
11:26 dalek pir: review: http://github.com/bacek/pir/commit/df0​d73c0bd89addfff16368df86b95239aaf9d4a
11:32 bkuhn joined #parrot
11:47 pmichaud joined #parrot
11:52 dalek pir: e5fe1a5 | bacek++ | t/post/subs.txt:
11:52 dalek pir: Add test for .namespace handling
11:52 dalek pir: review: http://github.com/bacek/pir/commit/e5f​e1a5eeef58354adff806a397561e55e64d05f
11:52 dukeleto joined #parrot
11:56 ruoso joined #parrot
12:00 lucian joined #parrot
12:00 bluescreen joined #parrot
12:00 bluescreen joined #parrot
12:03 whiteknight joined #parrot
12:05 whiteknight good morning, #parrot
13:10 dalek left #parrot
13:10 dalek joined #parrot
13:13 ambs joined #parrot
13:29 mikehh rakudo (3d2cb82) builds on parrot r47948 - make test PASS, spectest_smolder -> #34671 (pugs r31522) FAIL - Ubuntu 10.04 i386 (g++)
13:29 mikehh t/spec/S32-num/rat.rakudo - Failed test:  798
13:29 mikehh 18 TODO PASSes in 4 files
13:37 whiteknight that email about the VMIL workshop looks very interesting.
13:37 whiteknight it's the kind of thing I would love to go to, but can't this year
13:38 whiteknight Besides giving a general overview of what Parrot is and what it does, I'm not sure we have a whole lot of new research or any good-looking data to share with people
13:41 ash_ joined #parrot
13:42 mikehh pir/PIRATE (e5fe1a5) - build ok / test PASS - on parrot at r47948 - Ubuntu 10.04 i386 (g++)
13:42 whiteknight We do have some very cool new things on the horizon, especially if GSoC pans out: hybrid threads, the ability to write optimizions for your compiler in the language you are compiling, etc
13:43 ash_ how is the thread work going?
13:43 whiteknight ash_: a little slowly, but well considering
13:44 whiteknight I was under the impression that Parrot had more support than it actually does. Much of the things that we do currently have (scheduler, timers, tasks) either don't work as advertised, don't work at all, or only work on accident
13:44 whiteknight and several tests we have which "prove" these things work are faulty
13:45 whiteknight so Chandon is working around all those issues.
13:45 ash_ yeah, i know if you had a hll loaded and you tried to make a thread you used to always get an error
13:45 ash_ that was an issue at one point for sure
13:47 mikehh It also argues for better test driven development, rather than tests as an afterthought, which really don't give good coverage
13:48 whiteknight joined #parrot
13:49 mikehh and I think we also should adopt Rakudo's policy of not signing off a ticket until an appropriate test is also included
13:50 whiteknight mikehh: I do generally like that idea, though there are a few areas where that's not really an option yet
13:50 whiteknight comprehensive testing of command-line arguments, comprehensive testing of bytecode, etc.
13:50 mikehh sure, but we should push towards it
13:51 whiteknight no arguments. I just don't want a rule put in place before we have the infrastructure to support it
13:51 whiteknight but it is an important goal
13:51 NotFound We don't even have yet basic testing of core features.
13:52 mikehh we get too many surprises, for example, your comments about threading, because we get - "but, the tests passed"
13:52 NotFound I'm tempted of deleting all uncovered code, the wait for HLL feedback about what broke and how to test it X-)
13:53 mikehh like that idea +1 or more :-}
13:55 NotFound mikehh: much more surprised me last month when I broke such a basic feature as substr and all test passed.
13:56 NotFound Things are improved now, but there is still a lot to do.
13:57 whiteknight purl msg Chandon http://www.cs.iastate.edu/~desig​n/vmil/2009/papers/p08-marr.pdf It's a really short paper (more of a long abstract), but mentions concurrency in VMs. You might be able to follow-up with some later work by these people to see what kinds of concurrency stuff they like and what they recommend
13:57 purl Message for chandon stored.
13:57 mikehh Notfound: yeah, this seriously wories me at times, we get no or maybe one failing test for some serious pronlems
13:59 NotFound Note also that there are tests that checks just basic functions of the pmc, like initializing and setting and getting values, but fails to check realistic usages.
14:00 NotFound Sometimes they are exercised in tests for completrly different things X-)
14:00 Coke NotFound: that's because of the "one test per PMC!" coverage drive, I suspect.
14:00 Coke sorry <<coverage>>
14:00 Coke glad to see your work on actual code coverage.
14:01 NotFound For example, ExceptionHandler is much more and better tested outside exception.t and exceptionhandler.t than inside.
14:02 bubaflub joined #parrot
14:02 particle imo the t/pmc tests should exercise the pmc's api, and other tests should exercise use cases
14:03 mikehh yes, but we need both
14:03 NotFound Yeah, I'm thinking about ripping most of pmc/exception.t and pmc/exceptionhandler.t and create a new file out of the pmc/ dir
14:04 Coke here's a new plan: get 100% coverage first. sort tests later. =-)
14:04 ash_ why is it NUMVAL_SIZE when in other places you use FLOATVAL in the C stuff?
14:04 NotFound Coke: but I don't want to wait several geologic ages ;)
14:04 ash_ kinda expected that to be 'FLOATVAL_SIZE' /shrug
14:06 ash_ for that matter, is there a reason its FLOATVAL? Not NUMVAL? (since almost everywhere else floating point numbers are called nums)
14:07 NotFound ash_: probably just because nobody care enough to ask for renaming it.
14:08 mikehh ash_: depends on architecture and things like double or long double
14:08 mikehh I would think a FLOATVAL_SIZE would be sizeof (float)
14:09 ash_ mikehh: NUMVAL_SIZE should always be the sizeof(FLOATVAL) (if i am not mistaken)
14:10 ash_ see, here's the naming inconsistency, FLOATVAL is a num register, but sometimes in the C code you have to replace FLOAT with NUM
14:13 particle feel free to fix naming inconsistencies, as long as there's a clear path past the deprecation
14:14 bubaflub_ joined #parrot
14:14 bubaflub_ joined #parrot
14:14 gbacon joined #parrot
14:17 ash_ in the includes/parrot/config.h file towards the bottom there is a list of #define's which are like INTVAL_SIZE 4 (32 bit system for the config) NUMVAL_SIZE 8 etc... this file also defines typedef FLOATVAL double (i know floatval depends on the system, and you can tell the config script to set it to whatever you want)
14:17 ash_ err, that typedef is backwards
14:19 ash_ FLOATVAL makes some sense though, because its the Parrot_Float type, but there are still places where NUM is used instead of FLOAT
14:20 mikehh ash_: I could only find one #define for NUMVAL_SIZE (=8) lots of tests using it but only one #define and NO assigns
14:20 ash_ well, should that be FLOATVAL_SIZE?
14:21 mikehh possibly, but that ain't there
14:22 NotFound I'd like better to nuke all 'float' usages, they are just confusing with C float.
14:22 NotFound If is 'num', use num everywhere.
14:23 mikehh looks like it was considered to have possible different values (float, double, 2 variants of long double (12 and 16)) but not used anywhere other than double
14:23 NotFound mikehh: consider whatever you want, but use clear names for the most frequent usage.
14:24 ash_ i'll just use sizeof(FLOATVAL) for now instead of those #defines...
14:25 mikehh NotFound: was just saying that that was what I thought happened in the past, and that it now is only defined in one place (as 8)
14:26 mikehh I was not around when it happened so it is just speculation
14:26 NotFound mikehh: we have also HUGEFLOATVAL, DOUBLE_SIZE...
14:27 NotFound But if you configure to use for example long double, that type becomes FLOATVAL
14:28 NotFound Wich is confusing for any C programmer, calling NUMVAL will be a better hint of being related to a type defined by parrot, not to a native C type.
14:31 NotFound Anyway, I don't care enough to patch most of parrot C files because of that X-)
14:32 ash_ lol, maybe someone will in the future if it becomes an issue
14:33 NotFound ash_: we have enough clear and present problems, let's solve future issues in the future.
14:36 bluescreen joined #parrot
14:42 whiteknight avoiding future issues now is a virtue too
14:42 atrodo Ostrich Syndrome?
14:43 patspam joined #parrot
14:44 NotFound whiteknight: yes, but I choose wich ones worries me.
14:44 whiteknight NotFound: of course! volunteers have lots of freedoms like that
14:45 NotFound That one, I don't spend an euro cent.
14:45 ash_ so... would anyone argue if I made a patch to s/FLOAT/NUM/ ?
14:45 whiteknight ash_: No complaints from me. Consistency++
14:46 particle well, our N registers store what?
14:46 NotFound ash_: your only risk is that no one care enough to commit it.
14:46 particle native floats
14:46 ash_ or doubles
14:46 ash_ or long doubles
14:46 NotFound particle: FLOATVALs
14:46 ash_ hence the reason i brought it up, FLOATVAL isn't a float (always)
14:47 whiteknight yeah, it's all FLOATVAL
14:47 particle right, sorry
14:47 particle FLOATVAL
14:47 purl FLOATVAL is a double, right?
14:47 * particle kicks purl
14:47 * purl blocks!  Paint the fence!
14:47 particle purl, forget FLOATVAL
14:47 purl particle: I forgot floatval
14:47 NotFound purl: go sit in a corner
14:47 purl NotFound: what?
14:47 particle s/FLOATVAL/NUMVAL/ gets ++ from me
14:48 particle s/FLOAT/NUM/ i'm not sure about
14:48 ash_ alright
14:48 ash_ thats fine
14:48 whiteknight definitely add some #defines to map FLOATVAL to NUMVAL though, don't want to get accused of breaking the deprecation policy by our embedders
14:48 particle yes, still need to #define
14:49 particle and put in a deprecation notice
14:50 ash_ yeah, sure, just in the future it can be a bit more consistent
14:50 whiteknight and sacrifice a chicken, for good luck
14:50 NotFound Or a bot
14:50 whiteknight kill purl!
14:51 NotFound Throw a virgin bot to the volcano.
14:51 mikehh winxed r528 - make all ok, make test/test1/test2 PASS - on parrot at r47948 - Ubuntu 10.04 i386 (g++)
14:51 mikehh moving over to amd64 - brb
14:52 ash_ i really wish there was an easy way of managing untyped memory in C
14:53 NotFound ash_: easier than malloc/free?
14:53 ash_ thats not the hard part
14:53 ash_ right now i am doing things like, i want to get a reference to the start + sizeof a double + sizeof a pointer
14:54 ash_ and pass that to something else
14:54 mikehh NotFound: btw I had a file in winxed - winxedst2.c not under version control and does not get deleted by make clean
14:55 arnsholt ash_: Might be useful to write a small helper function?
14:55 NotFound mikehh: yes, I forgot to add pbc_to_exe intermediate files to clean.
14:55 arnsholt Pass in the buffer and a varargs of size_t params and returns the new buffer
14:56 NotFound ash_: that does not sound exactly untyped to me.
14:58 ash_ well i am making the memory space via malloc, but i don't know the offsets i need till runtime
15:01 ash_ its for NCI, so if the function takes "fff" so 3 floats, i need to malloc memory for all 3 of them, and set the parameters correctly for ffi_call, i realized why on 32-bit systems i get an error, on 64 bit systems, I can just use void* * arity, because sizeof (FLOATVAL) == sizeof (void*) but that was a bad assumptions, since it fails to be true on 32 bit systems, and i realize that now
15:02 NotFound ash_: you just need to add the appropiate sizeof, no need for more C support.
15:04 ash_ well, if i want to one day support passing a struct, i need to calculate the size of the args dynamically, so now i loop throw the args and add up the size of each
15:05 ash_ through*
15:05 NotFound ash_: even worse, for structs you need to care about alignment and padding
15:05 ash_ yup
15:10 whiteknight ash_: As a small nit, in the final product don't use malloc. The GC provides functions to allocate/free memory chunks
15:10 whiteknight (at the moment that redirects to malloc/free, but it won't for all cores)
15:10 Andy joined #parrot
15:11 mikehh brb
15:11 ash_ i am not using malloc directly, i am using mem_internal_allocate, mem_internal_allocate_n, mem_internal_allocate_zeroed, and mem_internal_allocate_n_zeroed_typed
15:12 ash_ and mem_sys_free and Parrot_str_free_cstring
15:12 whiteknight ash_: Ah, okay. That's acceptable. You're probably still going to want to move towards the Parrot_gc_allocate_memory_chunk functions eventually. Again, small nit
15:12 ash_ i didn't know if i should use the gc'ed version or not....
15:13 NotFound ash_: you can also consider ByteBuffer for some usages, it garbage collects its assigned memory.
15:13 ash_ since these are randomly sized chunks of data that NCI's invoke only knows about that get freed by the end of the NCI invoke call
15:15 ash_ I might look into ByteBuffer, that could make some of this a bit easier I expect
15:15 whiteknight ash_: Like I said, the Parrot_gc_* functions are basically just wrappers for malloc/free, so they aren't automatically managed
15:15 ash_ but the memory is very short lived, it only lasts until the end of the NCI invoke, then I free it
15:16 whiteknight but future GC cores may want to not use malloc/free, so that gives some flexibility
15:16 Coke msg pmichaud - if nqp-rx is going to change to not use CONTROL exceptions internally, we should probably add a notice for that somewhere.
15:16 purl Message for pmichaud stored.
15:16 ash_ well, i guess if i switch to the Parrot_gc_* i might not have to free it myself, but it isn't used after invoke
15:16 pmichaud Coke: +1 to adding a warning.
15:26 mikehh joined #parrot
15:36 dalek winxed: r529 | NotFound++ | trunk/Makefile:
15:36 dalek winxed: delete pbc_to_exe intermediate files in make clean, mikehh++
15:36 dalek winxed: review: http://code.google.com/p/w​inxed/source/detail?r=529
15:41 mmcleric joined #parrot
15:57 ash_ sizeof(INTVAL) should always == sizeof(void*) right?
16:06 particle absolutely not
16:07 particle it's not true on windows x64
16:09 particle http://www.unix.org/version2/whatsnew/lp64_wp.html
16:09 cotto ~~
16:10 ash_ INTVAL is long (normally i think)
16:10 ash_ i guess on LLP64 its not true though
16:11 ash_ lunch &
16:11 NotFound Anyway, is better  to not make such assumptions, even if you don't know any counterexample.
16:20 theory joined #parrot
16:29 ash_ well, i am taking all of my assumptions out anyway
16:29 Coke openfoundry.org--
16:34 darbelo particle: parrot does assume
16:34 darbelo particle: parrot does assume sizeof(INTVAL) == sizeof(void *)
16:36 ash_ yah, i thought it used INTVAL's to hold pointers in some places...
16:36 particle darbelo: it's a terrible assumption that's been very difficult to remove
16:36 darbelo And our packfiles will probably go up in flames if sizeof(INTVAL) != sizeof(opcode_t)
16:37 particle that assumption *must* be removed
16:37 particle but it ain't gonna be easy
16:38 particle iirc we do have fuction to data macros
16:38 particle *function pointer
16:38 particle those must be modified on platforms where inval != void* size
16:41 cotto_work particle, you could start a wiki page of patterns to look for.
16:41 particle the wiki page could simply contain windows x64 build output
16:42 ash_ does windows have an easy way to setup an .dll with header files?
16:43 ash_ so I could make an installer for libffi for windows folks
16:47 darbelo I kind of doubt it.
16:48 ambs joined #parrot
16:49 ash_ maybe not easy, but does windows have any way of doing that? i don't know the windows build environment
16:52 cotto_work particle: it'd be a start.
16:53 Chandon Why can't INTVAL simply be the native integer type of equal size to void pointer, even if on Windows that's "extra_long_int64_t"?
16:55 ash_ Chandon: that's a bad assumption if you have to change between memory architectures, hence why when 64 bit computers first came out, lots of 32 bit stuff didn't work
16:58 NotFound Or if you want to be able to select other types at Configure.
16:58 ash_ true, thats another great point
16:59 Chandon NotFound: I would't make too many bets on that working. For example, if FLOATVAL is ever smaller than 64 bit the entire world will explode.
16:59 NotFound Chandon: Why?
17:00 dukeleto VMIL sounds interesting: http://www.cs.iastate.edu/~design/vmil/2010/
17:01 tcurtis joined #parrot
17:03 ash_ Chandon: a normal C float is only 32 bits... and a double is 64 bits, you can have a long double too even
17:04 ash_ anyone from parrot going to try to attend VMIL?
17:04 Chandon NotFound: For example, there's a function called Parrot_floatval_time() that gets used in a bunch of places that returns the current UNIX time as a FLOATVAL. If floatvals were 32 bits, this wouldn't even be accurate to 1 second.
17:09 NotFound Chandon: good point
17:09 ash_ tcurtis: did you see that list of optimization passes that the llvm has? you can look into those if you want to try doing some of those in parrot, the source is under a BSD license, and written in C++
17:10 ash_ time as a float seems odd..
17:10 tcurtis ash_: Yeah.
17:11 tcurtis Thanks for reminding me of it.
17:13 Chandon ash_: Why's that? Usually you think of time as a continuous number rather than a discrete number, and if you're actually using times for anything on a computer an imprecise mental model is much more realistic than a precise one.
17:14 Chandon If you say usleep(100), you're not going to return in 100 microseconds.
17:16 ash_ well, i normally separate the units of time in my head, mainly because its not on a base 10 scale, 60 seconds in a minute, 60 minutes in an hour, 24 hours in a day seem so arbitrary i normally don't think of them as a single thing but as individual pieces
17:16 ash_ but i am also always late, and don't ware a watch so time is sorta a myth
17:16 purl okay, ash_.
17:16 ash_ for me
17:19 Chandon Yea, that makes sense for big (>seconds) time. Obviously everyone in the world should start talking in kiloseconds and megaseconds as of today to solve that problem.
17:19 atrodo I ask the question, why not?
17:21 ash_ why not think in kiloseconds?
17:21 Chandon Days are a pretty natural unit, and 86.4 kiloseconds is a funny number.
17:22 ash_ maybe we should adjust the scale too, so 1 day is = 1 megasecond and move backwards from there
17:24 Chandon That sort of thing seems like a good idea, and then I realize that I still buy my gasoline in gallons.
17:26 ash_ and i measure temperature in fahrenheit and measure distance in miles....
17:28 eternaleye joined #parrot
17:33 dalek partcl-nqp: 0bd0fb9 | Coke++ | src/Partcl (2 files):
17:33 dalek partcl-nqp: Implement [expr]'s bitwise not.
17:33 dalek partcl-nqp: review: http://github.com/partcl/partcl-nqp/commit​/0bd0fb9756a4749e986f147db1d721c38310263b
17:33 dalek partcl-nqp: 3ba6229 | Coke++ | src/Partcl/commands/main.pm:
17:33 dalek partcl-nqp: Fail early; give a slightly more useful error message if an non-parsable
17:33 dalek partcl-nqp: expression is passed in to [expr]
17:33 dalek partcl-nqp: review: http://github.com/partcl/partcl-nqp/commit​/3ba622973fb9c32104deee0ec9e67da77815a309
17:36 dalek winxed: r530 | NotFound++ | trunk/winxedst1.winxed:
17:36 dalek winxed: simplify lexing of operators
17:36 dalek winxed: review: http://code.google.com/p/w​inxed/source/detail?r=530
17:39 cotto_work How surprising.  The linear scan allocator actually works for a simple pir program.
17:43 clinton joined #parrot
17:47 cotto_work only 15 failures
17:47 cotto_work but there is at least one glorious segfault with a backtrace
18:02 joeri joined #parrot
18:09 whiteknight cotto_work: that's decent progress, considering you only started it yesterday
18:10 whiteknight PIRATE might just be the rapid-prototyping paradise we've always wanted
18:10 cotto_work I thought about it for a day or two first.
18:10 cotto_work but it's a nice simple algorithm
18:11 cotto_work yes.  It's ideal for that.
18:11 cotto_work way more fun than C, even if it's much slower
18:12 cotto_work pmichaud: ping
18:12 pmichaud cotto_work: pong
18:12 cotto_work pmichaud: any thoughts on ... in nqp-rx?
18:13 davidfetter joined #parrot
18:25 * cotto_work wonders
18:35 gaz joined #parrot
18:44 ash_ can nqp-rx do nqp->pbc?
18:48 dukeleto ash_: nqp can be turned into pir, then pir->pbc
18:49 ash_ wasn't someone working on directly going from nqp to pbc?
18:49 davidfetter joined #parrot
18:53 tcurtis ash_: PIRATE has a direct POST->PBC stage.
18:53 cotto_work its POST is different from nqp-rx's though (for now)
18:54 ash_ got ya
18:55 cotto_work PIRATE's POST is much better-suited to generating pbc directly.  nqp-rx's current POST is very stringy.
18:56 ash_ so, is that the major difference?
18:56 ash_ would it be a lot of work to translate nqp-rx's POST to be more PIRATE like?
18:56 integral joined #parrot
18:56 cotto_work I don't know.  bacek plans on doing it though.
19:02 LoganLK joined #parrot
19:02 bubaflub joined #parrot
19:18 hercynium joined #parrot
19:27 dalek winxed: r531 | NotFound++ | trunk/winxedst1.winxed:
19:27 dalek winxed: fix for named args in stage 1
19:27 dalek winxed: review: http://code.google.com/p/w​inxed/source/detail?r=531
19:41 cotto_work tcurtis, I like what you're doing for PIRATE.
19:41 cotto_work thanks.
19:43 tcurtis cotto_work: thanks. It's essential for it to actually be usable in place of IMCC, since the ops I'm optimizing away don't exist.
19:43 cotto_work Yes.  That doesn't make it less cool though.
19:44 cotto_work I had to work around some of those limitations when writing test cases.  It'll be nice to have them out of the way.
19:49 whiteknight do we have a list of ops like that, which don't really exist?
19:50 cotto_work src/ops/ops.skip
19:53 whiteknight oi
19:53 atrodo vey
19:53 tcurtis whiteknight: I don't think the ops in question are generally documented as existing in the first place. I think they're all just the result of giving a constant argument to ops that can be sensibly folded.
19:54 cotto_work I'm sure the list can be culled.  There's nothing to prevent non-existent ops from showing up there iirc.
19:56 cotto_work Since the ops aren't used, though, there's no non-manual way to verify that you're removing something that should be removed.
19:56 cotto_work I guess a little opsc hacking would do it though.
19:59 tcurtis joined #parrot
20:01 whiteknight the problem is that opsc is generating nonsensical op bodies, like eq_ic_ic_ic
20:02 whiteknight anything with an OUT shouldn't be constant, methinks
20:02 whiteknight and all the i and n primitives should be folded
20:02 tcurtis whiteknight: eq doesn't have an out parameter
20:02 whiteknight er, ic and nc primitives
20:02 cotto_work That looks like a problem with the op definition.
20:02 tcurtis You're thinking of iseq
20:03 whiteknight ah yes, I am.
20:03 whiteknight damned confusing ops
20:03 whiteknight like it would have killed anybody to call that op " branch_if_equal"
20:03 cotto_work opsc just does what it's told
20:04 whiteknight ohs noes! t3h long op names are murderizing mah fingahs!
20:05 whiteknight grumble grumble
20:05 * whiteknight is packing up and going home. Later.
20:16 dalek winxed: r532 | NotFound++ | trunk/winxedst0.cpp:
20:16 dalek winxed: fix bug of "using" in root namespace in stage 0
20:16 dalek winxed: review: http://code.google.com/p/w​inxed/source/detail?r=532
20:20 patspam joined #parrot
20:25 pjcj joined #parrot
20:26 cotto_work tcurtis: how much documentation exists on your gsoc project?
20:27 tcurtis cotto_work: some. but it's a little out of date.
20:29 cotto_work Do you have a spot on your schedule to get it updated?
20:32 tcurtis cotto_work: I could work on it right now.
20:33 cotto_work thanks
20:33 bacek aloha, humans
20:34 dukeleto bacek: greetings, carbon-thing
20:34 bacek dukeleto, hello, meat-bag :)
20:38 cotto_work bacek, are you up with nqp-rx enough to know why it seems that my queries about adding ... seem to fall into a black hole?
20:39 bacek cotto_work, yada-yada-yada in nqp? I probably can implement it.
20:39 moritz cotto_work: it's probably the pmichaud bottleneck
20:39 cotto_work I have implemented it and put in a pull request.
20:40 jnthn cotto_work: Use case?
20:40 jnthn cotto_work: Also, what does it to in the nqp-rx implementation?
20:40 cotto_work It's easier than pir::die("...");
20:40 cotto_work http://github.com/cotto/nqp-rx/commit/5​6d4bd0b3bc18de54ce0439b4005aff602225dad
20:40 jnthn Ah
20:41 jnthn Thing is that ... in Perl 6 does not die.
20:41 jnthn And we're trying to keep nqp-rx as a subset of Perl 6.
20:41 jnthn ... returns a Failure object, which doesn't really exist in Parrot
20:41 jnthn !!! is the ... equivalent that dies
20:42 jnthn Anyway, I can't speak for pmichaud++ but that's my first guess at what he might say in response to the patch. :-)
20:42 cotto_work I saw that &fail and wasn't sure what the best equivalent in nqp-rx would be.
20:43 cotto_work !!! would be fine.  It jumps out more too, which is good.
20:43 cotto_work thanks for helping get me straightened out on that
20:43 dukeleto jnthn: is !!! the klingon operator?
20:44 jnthn cotto_work: I think the patch with !!! instead of ... is likely to have a better shot at being agreed to by Pm, anyway.
20:45 jnthn dukeleto: Well, it results in death... :-)
20:45 cotto_work wfm.  I'll give it a shot.
20:46 cotto_work Do I assume correctly that any new nqp-rx feature should have his approval?
20:46 dukeleto cotto_work: that is a good assumption
20:46 cotto_work (as opposed to someone else with a commit bit)
20:48 bacek cotto_work, I'm pretty confident, that I can update nqp-setting by myself :)
20:48 Coke cotto_work: /i/ have an nqp commit bit. does that help answer your question? ;)
20:49 cotto_work I'm asking more about who has the say in design decisions.
20:50 jnthn cotto_work: That's Pm.
20:50 cotto_work ok
20:50 NotFound I'd like to have a Failure PMC in parrot.
20:50 ambs joined #parrot
20:53 ash_ NotFound: that does sound useful...
20:53 GeJ Bonjour everyone.
20:54 NotFound ash_: yeah, it avoid to having to decide if some things throws or returns an error indication, or to provide both variants.
20:55 patspam joined #parrot
20:55 dalek parrot: r47949 | NotFound++ | trunk/t/pmc/filehandle.t:
20:55 dalek parrot: test for FileHandle.readall failure conditions
20:55 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47949/
21:00 ash_ NotFound: want me to file an RFC or email the mailing list?
21:00 ash_ i don't think adding a failure object would break anything...
21:01 NotFound ash_: I'm thinking about creating a patch implementing it, to avoid having to explain too much.
21:02 ash_ that works too, anything i can help with?
21:02 NotFound Moral support ;)
21:03 cotto_work moral: failure is an option
21:07 patspam joined #parrot
21:13 dalek pir: 6d6606f | bacek++ | src/P (2 files):
21:13 dalek pir: Add POST::Sub.set_flag to avoid dynamically generated invocations.
21:13 dalek pir: review: http://github.com/bacek/pir/commit/6d6​606f1e6aa6b4a8521ef7dc7af6646a39c2d66
21:13 dalek pir: 3d03e92 | bacek++ | src/PIR/Actions.pm:
21:13 dalek pir: Add sub_modifier POSTing
21:13 dalek pir: review: http://github.com/bacek/pir/commit/3d0​3e92850ed9b676057151f256bbc1a83280097
21:13 dalek pir: 0a92532 | bacek++ | t/ (2 files):
21:13 dalek pir: Start adding tests for Sub modifiers.
21:13 dalek pir: review: http://github.com/bacek/pir/commit/0a9​25321113db2535230c46d36f7c1c81a93bb2e
21:15 * cotto_work lols at bacek's '.sub "main" :main :init :load :immediate :postcomp :anon :method :lex' sub
21:15 bacek bah! :)
21:16 tcurtis ..... wow... that's definitely a corner case.
21:16 bacek it's bulk testing
21:16 cotto_work It's just testing modifier parsing.
21:16 tcurtis Ah.
21:17 cotto_work We'll add a special case to PIRATE that segfaults immediately upon trying to parse something like that in real code.
21:17 ambs coke++  # btw
21:18 tcurtis Wow. Code on Parrot can segfault on demand now? That's much better than doing it under mysterious circumstances. :)
21:18 bacek tcurtis, we used to have very special op for it
21:19 * cotto_work sheds a tear for hcf
21:20 bacek Is there a way to set PObj flag from PIR?
21:21 cotto_work good question
21:21 purl Yeah, it is. I'm stumped.
21:21 cotto_work I don't recall any.
21:21 ambs purl: that is not particularly difficult.
21:21 purl ...but that is more that you dialed the wrong number...
21:21 bacek It's required for something like SUB_FLAG_PF_ANON etc
21:22 cotto_work sounds like something to add to Default PMC
21:22 bacek no... way too dangerous
21:23 cotto_work That's true.  They have different meanings depending on the PMC.
21:23 bacek yes. I'm thinking about adjusting Sub.init_pmc
21:23 cotto_work and incredible potential to mess things up
21:24 bacek NotFound, ping
21:25 NotFound bacek: pong
21:25 dalek website: Chandon++ | Green Threads and Sleeping
21:25 dalek website: http://www.parrot.org/conten​t/green-threads-and-sleeping
21:26 bacek NotFound, if I add setting of PObj flags into Sub.init_pmc what is best way to test it?
21:27 NotFound bacek: Specific tests for any flag allowed to be set, I suppose.
21:28 bacek NotFound, there is no way to get PObj flags from PIR.
21:28 bacek Add Sub.get_flags method?
21:29 NotFound bacek: we can start with that, and later think about some faster way if needed.
21:29 bacek deal
21:30 NotFound Don't forget to declare its experimental status.
21:30 bacek oookey. Why? To escape deprecation policy trap?
21:31 NotFound Mainly because it is experimental, isn't it? ;)
21:31 bacek Good point :)
21:38 whiteknight joined #parrot
21:46 patspam joined #parrot
21:52 cotto_work bacek, on your todo list what do you mean by supporting charset/encoding?
21:52 bacek cotto_work, building String with particular charset/encoding.
21:53 cotto_work right.  POST::String does that.
21:54 bacek cotto_work, in .to_pbc?
21:54 bacek Then mark it as done!
21:54 cotto_work yes
21:55 cotto_work My only question is whether the bytes from nqp-rx's parsing code are sufficiently unmodified.
21:55 bacek good question...
21:55 purl Yeah, it is. I'm stumped.
21:55 cotto_work I don't know how to test that one.
21:57 pmichaud cotto_work: oops, I ended up getting distracted from your earlier ping
21:57 pmichaud nqp might be able to recognize { ... } as stub code.  I'm not sure it would actually generate anything yet.  Maybe it could translate into a die.
21:57 cotto_work So I just have Murphy's timing.  Good to know.
21:58 cotto_work I posted http://github.com/cotto/nqp-rx/commit/5​6d4bd0b3bc18de54ce0439b4005aff602225dad earlier and jnthn suggested that !!! would be semantically closer to what Rakudo does.
21:58 pmichaud looking.
21:59 pmichaud If it's going to die, I agree it might be better as '!!!'
22:00 pmichaud also, it might be nice if the args ended up being the message of the die
22:00 cotto_work They'd be optional, so that wouldn't make using it any harder.
22:00 pmichaud correct
22:00 nopaste "NotFound" at 192.168.1.3 pasted "Proposal: FailIfUsed PMC inspired by rakudo Failure" (251 lines) at http://nopaste.snit.ch/21754
22:00 dalek parrot: r47950 | bacek++ | trunk/src/pmc/sub.pmc:
22:00 dalek parrot: Add ability to set Sub's PObj flags in init_pmc. Also add method to fetch them for testing purposes
22:00 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47950/
22:00 NotFound Here is a first draft.
22:01 cotto_work How do you prefer changes to nqp-rx to be submitted?
22:01 cotto_work (language changes, not just bug fixes)
22:01 pmichaud email, generally.  I still haven't figured out how to work github's fork queue
22:02 pmichaud or, catch me on #parrot, although I fully recognize that hasn't been very profitable for you over the past couple of weeks :-|
22:02 cotto_work That explains why I didn't hear anything back.
22:02 cotto_work I'll rework the patch and catch you later.
22:02 pmichaud yes, I need to add the message to github that says that the fork queue ends up being a bit of a black hole
22:02 NotFound pmichaud: Can you take a look at my nopaste?
22:02 pmichaud NotFound: nopaste looks good to me
22:03 pmichaud adding a FailIfUsed PMC strikes me as being too perl6-specific, though.
22:03 NotFound pmichaud: we have several things were people had discussed for long if shouls throw or not, this is a nice way to avoid that situation.
22:04 pmichaud I do very much like Perl 6's notion of Failure objects
22:04 pmichaud I had also been toying with the idea of creating a Failure role (e.g., in P6object)
22:04 NotFound For example, loading libraries.
22:05 pmichaud i.e., something that could be mixin'ed on top of an existing object, like Undef.
22:05 pmichaud that way any object could potentially act like a failure.
22:05 NotFound Or NCI failing to locate a symbol.
22:06 pmichaud anyway, Rakudo currently implements Failure as a class, but it probably ought to be a role.
22:06 NotFound pmichaud: looks complicated to implement without runtime checks in any operation.
22:06 pmichaud NotFound: well, the idea is still to overload the vtables.
22:07 pmichaud but yes, it could be a bit complex.
22:07 pmichaud anyway, having objects that throw exceptions when used seems to be a big win overall
22:07 NotFound For objects maybe is easily doable, but for PMCs, I doubt.
22:08 NotFound I'll clean it and write a RFC ticket, but maybe I lack time until monday.
22:10 NotFound Suggestions for a better name welcome.
22:12 Chandon Why would "make clean" delete my new test?
22:13 tcurtis Chandon: what's the test's filename?
22:14 Chandon t/pmc/alarm.pir
22:14 bacek it should be alarm.t
22:14 bacek .pir files treated as generated
22:14 Chandon Hey, that could be it.
22:14 whiteknight make clean: srs bsns
22:14 lucian_ joined #parrot
22:15 Chandon And that's why it isn't deleting my other test. I should probably pay more attention to the stuff on my screen.
22:15 bacek afk # $dayjob
22:33 dalek parrot: r47951 | Chandon++ | branches/gsoc_threads (11 files):
22:34 dalek parrot: [gsoc_threads] Alarms work, at least the easy way.
22:34 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47951/
22:34 dalek parrot: r47952 | Chandon++ | branches/gsoc_threads (13 files):
22:34 dalek parrot: [gsoc_threads] merge from trunk
22:34 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47952/
22:36 davidfetter joined #parrot
22:36 whiteknight Chandon: looks like your docs for Parrot_floatval_sleep was incorrectly copy+pasted
22:38 Chandon whiteknight: Good catch. I should make that say the right thing instead.
22:39 dngor Mmm, Alarms and delays.
22:41 dalek partcl-nqp: 69aab75 | Coke++ | src/Partcl (2 files):
22:41 dalek partcl-nqp: Add infix:** (exponentiation) to [expr]
22:41 dalek partcl-nqp: review: http://github.com/partcl/partcl-nqp/commit​/69aab75a3ce82f2b3e2b822818622766f59e9181
22:42 whiteknight Chandon: I feel like I have to have some criticism, but the rest of your code looks pretty good
22:43 whiteknight have any bikesheds that need painting? :)
22:43 Chandon I suggest "why invent Alarms when Timers exist?"
22:45 Chandon There's also all the freeze/thaw tests that aren't passing because I'm not sure what those VTABLE functions are supposed to be doing.
22:45 whiteknight I don't like timers anyway, so I don't care if you invent a million things to steal some of their thunder
22:46 whiteknight freeze/thaw are serialization routines. Freeze basically converts a PMC into a string, by pushing values into the freeze manager
22:46 whiteknight thaw converts a string back to a live PMC by unshifting those values back off again
22:50 dalek parrot: r47953 | Chandon++ | branches/gsoc_threads/config/​gen/platform/generic/time.c:
22:50 dalek parrot: [gsoc_threads] Now with less wrong POD.
22:51 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47953/
22:53 Chandon Is there any general requirement for PMCs to handle freeze/thaw in a certain way?
22:57 cotto_work "roundtrip gracefully and don
22:57 cotto_work 't segfualt"
22:59 cotto_work though I guess you can segfault a little if you really want to
22:59 dalek partcl-nqp: d9f7524 | Coke++ | src/Partcl/Grammar.pm:
22:59 dalek partcl-nqp: Add << and >> operators to [expr] (shift left, right)
22:59 dalek partcl-nqp: review: http://github.com/partcl/partcl-nqp/commit​/d9f752437d2ea931547dcb5d1b843eec2e4dc9b1
23:04 hercynium joined #parrot
23:12 tcurtis What would be a suitable place in docs/ for documentation about Tree::Walker/Pattern/etc.? I had them in docs/pct, but that doesn't really make sense now that it's not limited to PCT anymore.
23:12 cotto_work that's an interesting question
23:12 whiteknight Chandon: best idea is to look at prior art
23:13 whiteknight basically, you push things on in one order in freeze, and unshift them in the same order in thaw
23:13 cotto_work docs/dev makes sense
23:13 cotto_work there's already some optimizer docs there.
23:16 tcurtis docs/dev seems to be mostly devoted to stuff at the C-level.
23:17 tcurtis According to parrot.pod, it's for describing implementation decisions.
23:18 cotto_work It's telling how many files there are in docs/user
23:19 tcurtis I suppose docs/user might be the best place.
23:22 cotto_work We need to get masak to do Parrot's release announcements.
23:22 tcurtis And I will probably forget to bring up the lack of user documentation at #ps Tuesday.
23:25 tcurtis cotto_work: I'll put it in docs/user/library/ expect documentation commits following my evening meal.
23:26 whiteknight you should write some docs to remind youself
23:27 cotto_work great
23:28 whiteknight I think kakapo is completely borked. I may try to salvage just the unit testing stuff for 2.6
23:30 mikehh All tests PASS (pre/post-config, make corevm/make coretest, smoke (#34679), fulltest) at r47953 - Ubuntu 10.04 amd64 (gcc with --optimize)
23:33 kid51 joined #parrot
23:36 mikehh pir/PIRATE (0a92532) - build ok / test PASS - parrot at r47953 - Ubuntu 10.04 amd64 (gcc with --optimize)
23:40 dalek parrot: r47954 | Chandon++ | branches/gsoc_threads/src/scheduler.c:
23:40 dalek parrot: [gsoc_threads] Waking up from sleep is pretty good.
23:40 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47954/
23:41 mikehh partcl-nqp (d9f7524) - make ok, make test PASS - Files=58, Tests=845 - at r47953 - Ubuntu 10.04 amd64 (gcc with --optimize)
23:42 mikehh partcl-nqp - still no TODO info on output with # test failed etc.
23:43 dalek TT #324 closed by jkeenan++: Write function documentation
23:43 dalek TT #324: http://trac.parrot.org/parrot/ticket/324
23:43 Chandon whiteknight: You have a couple minutes to take a look at an interesting problem?
23:45 ash__ joined #parrot
23:47 whiteknight yes
23:48 mikehh winxed r532 - make ok, make test/test1/test2 PASS -  parrot at r47953 - Ubuntu 10.04 amd64 (gcc with --optimize)
23:48 Chandon whiteknight: So if you pull my branch, build, and run ./parrot t/op/string.t it breaks - why?
23:49 Chandon The error is "get_integer() not implemented in class 'Continuation'". The thing it's calling that method on is an attr of the (one) Scheduler PMC, which only gets assigned in its constructor - as a PMCList PMC, not a Continuation.
23:52 Chandon Hopefully I'm just missing something stupid - but with Parrot it might always be that there's secretly a compacting garbage collector that only gets triggered by that string test and my pointers expired.
23:53 Coke i used to see errors like that when I wasn't marking something I needed not gc'd.
23:53 Coke or when a gc run occurred when I called out to some other function and I wasn't expecting it.
23:54 Coke (which is fine if you're marked, bad if you're not0
23:54 Psyche^ joined #parrot

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

Parrot | source cross referenced