|
Parrot 2.0.0 "Inevitable" released! | parrot.org | Priorities: merge branches, remove deprecations | Roadmap: icanhaz.com/parrotroadmap | Latest modified TT's: icanhaz.com/parrotbugs Set by moderator on 9 February 2010. |
|||
| dalek | rrot: r43836 | mikehh++ | branches/gc_encapsulate_part2/src/gc/gc_ms.c: fix codetest failures - unused assert macros - further attempt |
00:05 | |
| mikehh | at r43836 in gc_encapsulate_part2 branch I get everything passing except codetest failure in src/gc/gc_private.h - assert args - up to fulltest - Ubuntu 9.10 amd64 (g++ with --optimize) | 00:07 | |
| cotto_work | mikehh, that commit broke the build | 00:08 | |
| I think the culprit is "gc_ms__allocate_pmc_attributes" | |||
|
00:09
kid51 joined
|
|||
| mikehh | oh dear - I tested before commiting | 00:09 | |
| one to many underscores - I'll check | |||
|
00:09
Austin joined
|
|||
| Austin | seen darbelo? | 00:12 | |
| purl | darbelo was last seen on #parrot 54 minutes and 14 seconds ago, saying: I also disagree with Integer->BigInt autopromotion, but that's a mostly unrelated phenomenon. | ||
| Austin | Thanks, darbelo | 00:13 | |
| cotto_work | now go forth and commit stuff | ||
| Austin | I don't want to commit anything. I'm 41 and single. I fear commitment. | 00:14 | |
| I just don't want to be ostracized for not having a bit any more. | |||
| Austin sniffs. | |||
| darbelo | Just add yourself to CREDITS, that's the way to fame and fortune. | 00:15 | |
| Austin | Just one little commit... | ||
| darbelo | Yes. Just one, you can control it, you can stop any time you want. | 00:16 | |
| Austin | Hello, ladies. Look at your man. Now back at me. Back at your man. Now back at me. Sadly, your man isn't me. But if he had a commit bit, he could code like me. | ||
| cotto_work | You can put yourself in charge of a major fictitious subsysten. The dynamic derectifier doesn't currently have a maintainer. | ||
| Austin | Maybe I could add a C2 linearization system. | ||
| darbelo | Why bother? I'm sure C1 is enough. | 00:18 | |
|
00:20
mikehh joined
|
|||
| Austin | I'm thinking that my new C2 system would bridge the gap between the C1 and C3 layers. | 00:20 | |
| dalek | rrot: r43837 | darbelo++ | trunk/config/gen/makefiles/root.in: Add a missing dependency. This fixes parallel building with BSD make. |
00:21 | |
| Austin | Make some simplifying assumptions for the expected cases. Preoptimized caching by using predictive metrics based on expective human capital configuration. | 00:22 | |
| darbelo nods attentively as his eyes glaze over. | 00:23 | ||
| mikehh | cotto_work: ok I think it's fixed now - make test PASS - running fulltest | 00:25 | |
| cotto_work | fulltest is happy on the gc part 2 branch on Ubuntu 9.04 x64 | 00:35 | |
| mikehh | gc_encapsulate_part1 branch: | ||
| All tests PASS (pre/post-config, make corevm/make coretest, make test, fulltest) at r43838 - Ubuntu 9.10 amd64 (g++ with --optimize) | |||
| bah thjat's part2 | |||
| looks good - just need some tests on other platforms | 00:36 | ||
| mikehh needs sleep | 00:37 | ||
| dalek | rrot: r43838 | mikehh++ | branches/gc_encapsulate_part2/src/gc/gc_ms.c: fix previous commit - removed extra underscores |
||
| cotto_work | I like the new gc idea. I'm also I glad I'm not the one who'll be doing most of the debugging. | 00:38 | |
|
00:39
eternaleye joined
|
|||
| Whiteknight is exercising the nuclear option on the bitwise vtables | 00:47 | ||
|
00:49
eternaleye joined
|
|||
| Whiteknight | is there a "get_ulong" vtable? | 00:50 | |
| darbelo | Not that I know of. | 00:51 | |
| Austin | $little_doggie->get_ulong() ? | ||
| darbelo | And src/vtable.tbl doesn't know either. | 00:52 | |
|
00:53
abqar joined,
cotto_work joined
|
|||
| darbelo | Also, given that PIR wouldn't know what to do with an ulong if it ever got one. I'm guessing there shouldn't be. | 00:53 | |
| But I'm going to sleep now, so take my advice with a grain of salt. | 00:54 | ||
| cotto_work | It could be that the PMC is trying to get some oolong tea. | ||
| Yeah. Rip that out. | 00:55 | ||
| darbelo | Salted tea? Ugh. | ||
| cotto_work | I have a friend who likes to put soy sauce in green tea. | ||
| Tene | does he also like to drink it, or does he just add the soy sauce and expect someone else to drink it? | 00:56 | |
| cotto_work | Nope. He actually likes to drink it. | ||
| I found out that I don't. | |||
| Whiteknight | who the hell uses the bitwise string functions | 00:59 | |
| I would be *thrilled* to find an actual, honest-to-god use for them | |||
| cotto_work | It'd be interesting to graph loc vs commit # over Parrot's history. | 01:00 | |
| Austin | cotto_work: You mean total loc or delta loc? | 01:03 | |
| cotto_work | something like cloc.pl would make it nice and non-interactive | 01:04 | |
| Apparently the openSUSE guys have solved the boolean satisfiability problem: lwn.net/Articles/373668/ | 01:07 | ||
| Whiteknight | these functions are stupid | 01:08 | |
| seriously | |||
| purl | i guess seriously is that for real | ||
| Whiteknight | who uses bitwise_not on strings? | ||
| or bitwise and? | |||
| purl | bitwise and is fine ... it's the un-named constant '2' that's the problem :) | ||
| Whiteknight | SHUTUP PURL | ||
| purl | "Mind your own business, Mr. Whiteknight! I'm tired of your half-breed interference!" | ||
|
01:08
cotto_work joined
|
|||
| Whiteknight | ... | 01:08 | |
| Austin | purl++ | ||
| Whiteknight | well, I got told. | ||
| Austin | botsnack | ||
| purl | :) | ||
| Austin | lol | ||
| cotto_work | purl wins | 01:09 | |
| purl | MENTALITY! | ||
| Austin | Whiteknight, the bitwise stuff is aimed, I think, at managing buffers. | ||
| Remember that Parrot is the ultimate VM for Perl 5. | |||
| dalek | rrot: r43839 | plobsing++ | branches/opengl_dynamic_nci: creating branch to explore building opengl without dependency on core nci (src/nci.c) |
01:10 | |
| rrot: r43840 | plobsing++ | branches/opengl_dynamic_nci (3 files): build parrot without opengl signatures and add opengl thunks to build of runtime/parrot/dynext/libglutcb.so |
|||
|
01:12
mikehh joined
|
|||
| plobsing | anyone know how to get the CONST_STRING macro to behave nicely outside of core? | 01:12 | |
| cotto_work | It requires some magic and postprocessing by an external perl script. You can manually create a string constant with Parrot_str_new_constant(interp, "ohai"); | 01:14 | |
|
01:23
eternaleye joined
|
|||
| Whiteknight | my brain hurts | 01:44 | |
| plobsing | cotto_work++ it works! | 01:45 | |
| cotto_work | what does? | ||
| nm. the string constant | |||
| karma cotto_work | 01:48 | ||
| purl | cotto_work has karma of 11 | ||
| kid51 | gc_encapsulate_part2 branch: Linux/i386: PASS make test, buildtools_tests, codetest | 01:54 | |
| Whiteknight | karma cotto | 01:55 | |
| purl | cotto has karma of 1115 | ||
| dalek | rrot: r43841 | plobsing++ | branches/opengl_dynamic_nci/tools/build/nativecall.pir: add --core option to create nci thunk files suitable for core. handle CONST_STRING correctly outside of core. |
01:59 | |
| rrot: r43842 | plobsing++ | branches/opengl_dynamic_nci/config/gen/makefiles/root.in: actually link glut_nci_thunks.o into glut_callbacks.so |
|||
| Austin | seen pmichaud? | 02:01 | |
| purl | pmichaud was last seen on #parrot 8 days, 10 hours, 32 minutes and 21 seconds ago, saying: okay, excellent work. [Feb 1 15:29:13 2010] | ||
| Austin | Hmm. Does anyone else know about the innards of P6object, and how they relate to PMCProxy? | 02:02 | |
| cotto_work | You could check svn blame on some of the files. | 02:07 | |
| Austin | point | 02:08 | |
| Svn blames pmichaud, jonathan, tene, for the most part. | 02:12 | ||
| seen jonathan? | |||
| purl | jonathan was last seen on #parrot 92 days, 45 minutes and 9 seconds ago, saying: Full marks for another refactor that's probably made Parrot slower again though. :-/ [Nov 10 01:27:23 2009] | ||
| Austin | Tell me he's got a different irc id | 02:13 | |
| seen tene? | |||
| purl | tene was last seen on #parrot 1 hours, 16 minutes and 58 seconds ago, saying: does he also like to drink it, or does he just add the soy sauce and expect someone else to drink it? | ||
| Austin | tene: ping | ||
| cotto_work | He usually hangs out in #perl6 on Freenode as jnthn | ||
| kid51 | seen jnthn? | ||
| purl | I haven't seen 'jnthn', kid51 | ||
| bacek_at_work | seen jonathan | 02:14 | |
| purl | jonathan was last seen on #parrot 92 days, 46 minutes and 45 seconds ago, saying: Full marks for another refactor that's probably made Parrot slower again though. :-/ [Nov 10 01:27:23 2009] | ||
| bacek_at_work | nice... | ||
| Austin | No esta alla. | 02:16 | |
| cotto_work | you mean jnthn? He's there. | ||
| Austin | cotto++ Good idea with the blam.e | ||
| *e. | |||
| cotto_work | I like that tool. | ||
| Austin | svn++ | ||
| cotto_work | It doesn't make me dislike svn more. | 02:20 | |
| eternaleye | git++ # Bisect and blame go together very well | 02:31 | |
| dalek | rrot: r43843 | coke++ | branches/rm_cflags (7 files): avoid more unused warnings. |
02:33 | |
| Whiteknight | these bitwise ops are maddening | 02:51 | |
| there are about a hundred more of them than anybody needs | |||
| 2-argument forms, 3-argument forms, and every permutation of PMC and INTVAL parameters that you can imagine | 02:52 | ||
| I wish somebody could explain to me the use case for all this garbage | |||
| who the hell uses bitwise ops so much that they need all these options | |||
| or, maybe somebody was on a grant and was getting paid per op, so he wrote up a bajillion of them | 02:53 | ||
| cotto_work | worst grant ever, unless you're the one getting paid | ||
| Whiteknight | echo "All the bullshit, unnecessary bitwise ops" >> DEPRECATED.pod | ||
| Austin | Oh look. More snow. | ||
| Whiteknight | </rant> | ||
| Austin: if snow were money, we'd be kicking butt | 02:54 | ||
| Austin | Whiteknight, I have another GSOC suggestion for you. | ||
| Whiteknight | Austin: shoot | ||
| Austin | Currently, the OO system is committed to C3 linearization. IMO, this is a mistake. Not because it's buggy, but because the linearizer is a language choice. C3 is not the linearizer used in Dylan (96), CLOS, etc., as pointed out in the C3 paper (which says, "here's C3 compared to these other ones"). Ergo, linearization should be configurable, just like calling conventions. | 02:55 | |
| In general, I think we need a pluggable MOP | 02:56 | ||
| Whiteknight | so, a pluggable linearizer | 02:57 | |
| Austin | Linearization is a part of class management. | ||
| cotto_work | it's in line with 'pluggable everything' | ||
| Austin | Pmichaud implemented P6object, for example, which builds on top of Parrot-oo. But that's probably a special case. | 02:58 | |
|
02:58
hercynium joined
02:59
JimmyZ joined
|
|||
| Coke | feather is running 99% 'readproctitle'. wtf. | 03:00 | |
| MRO is pluggable already, no? | |||
| (in that you can do what rakudo did.) | 03:01 | ||
| Austin | What did rakudo do? | ||
| Coke | ... plugged in an MRO? (he said, circularly.) | ||
| I have no specifics for you. | 03:02 | ||
| Austin | :) | ||
|
03:02
mikehh joined
|
|||
| Austin | For all we know they may have implemented the entire thing in PIR. | 03:02 | |
| (Which is, IMO, the right answer for 95% of PMC types.) | 03:03 | ||
| Coke | ugh. feather is pretty much unusable. | ||
| dukeleto | 'ello | ||
| Austin | Hey, duke. | ||
| cotto_work | hi dukeleto | ||
| Coke will let make test run overnight instead of in 3m. | |||
| dukeleto | Austin: howdy | ||
| dukeleto is working on a "intro to parrot" talk for PDX.pm tomorrow | 03:04 | ||
| Austin | What's PDX.pm? | ||
| purl | Do you mean portland.pm.org? | ||
| cotto_work | dukeleto++ | ||
| dukeleto | Austin: Portland Perl Mongers | ||
| Austin | Ah | ||
| cotto_work | will it be recorded? | 03:06 | |
| dalek | rrot: r43844 | whiteknight++ | branches/vtable_massacre (13 files): nuke the bitwise VTABLEs from all the PMC types. Start the conversion process on the ops to get us building again, but it's taking time and I don't want to leave it uncommitted overnight |
||
| Austin | No way! | ||
| Then everybody from parrot-dev will be looking at it and telling him all the stuff he *should* have said. | |||
| cotto_work | and then it'll improve | 03:07 | |
| dukeleto | cotto_work: usually there is audio. video is being talked about | 03:08 | |
| cotto_work | Cool. Post the audio here when it becomes available. | ||
| dukeleto | cotto_work: will do | 03:10 | |
| cotto_work | I look forward to listening to it. | 03:11 | |
| dukeleto | ok, so somebody says "what is parrot?" What is your one sentence answer? | 03:15 | |
| cotto_work | It's a VM built from the ground-up for dynamic languages and interoperability. | 03:16 | |
| s/-// | 03:17 | ||
| something like that | |||
| Austin | "Parrot is how I get frustrated when I don't have enough money to visit the strip club." | ||
|
03:18
mikehh joined
|
|||
| dalek | rrot: r43845 | whiteknight++ | branches/vtable_massacre/src/ops/bit.ops: update the shr ops. Also, remove an 'evil' lvalue cast. Seriously, it was easy to get rid of, so why write a paragraph-long explanation about why it's evil but we're living with it anyway? |
03:22 | |
| rrot: r43846 | whiteknight++ | branches/vtable_massacre/src/ops/bit.ops: convert lsr ops |
|||
| dukeleto | Austin: awesome. | 03:23 | |
| this is the meeting info: calagator.org/events/1250458251 | |||
| Austin | Hmm...I didn't know we were "still reeling". Did you know that, Whiteknight? | 03:26 | |
| cotto_work | Austin, ? | 03:27 | |
| purl | Austin, is there one that builds with Rakudo's current required version (r41447)? | ||
| Austin | laugh | ||
| I think purl's quoting you, cotto. | 03:28 | ||
| cotto_work | I think you | ||
| Austin | According to CNN, we're still reeling from last week's snow. | ||
| cotto_work | 're right | ||
| Whiteknight | still reeling? | ||
| Austin | Meanwhile, in DC the federal gov't told federal workers to stay home for the second day. | 03:29 | |
| cotto_work | I also think it's high time I went home. | ||
| Austin | We need more snow in DC. | ||
| Whiteknight needs a government job | |||
| like 30 paid holidays, terrible customer service and a horrible attitude are the norm, and whenever it snows we get to stay home with the kids | |||
| get to sit on a 30,000$ toilet seat | 03:30 | ||
| feel like a king | |||
| Austin | NWS now predicting 8-14 inches of snow here. I'm starting to feel ripped off. A few days ago, they were promising 20-30 inches. | 03:31 | |
| Whiteknight | sounds like some of the promises I made to women back in college | 03:32 | |
| OH SNAP | |||
| ...and on that note. It's off to bed. | 03:33 | ||
| goodnight | |||
| kid51 must sleep | 03:39 | ||
| purl | $kid51->sleep(8 * 3600); | ||
|
03:48
janus joined
|
|||
| dalek | tracwiki: v26 | kurahaupo++ | ArrayTasklist | 03:53 | |
| tracwiki: Link to WhiteKnight++ 's Array splintering on GitHub | |||
| tracwiki: trac.parrot.org/parrot/wiki/ArrayTa...ction=diff | |||
|
03:55
jsut joined
|
|||
| Austin | So what's the protocol for committing failing tests? | 04:12 | |
| plobsing | I would todo them and refer to (open if necessary) a relevent ticket | 04:18 | |
|
04:19
jsut_ joined
04:53
bacek joined
|
|||
| Austin | plobsing++ # Thanks for the pointer. (Man, is it hard to do "todo" in pir) | 05:02 | |
| dalek | rrot: r43847 | Austin_Hastings++ | trunk/t/oo/mro-c3.t: Added test for TT#1426 |
||
| cotto | todo in pir isn't especially clever | 05:06 | |
| Austin | It's the "catch the exception thrown by C3" that was messing me up. | ||
| Anyway, woo. My first commit. | 05:07 | ||
| cotto | woo indeed | 05:10 | |
| mikehh | add another woo | 05:11 | |
| dalek | tracwiki: v152 | Austin_Hastings++ | WikiStart | 05:17 | |
| tracwiki: Added c3 link | |||
| tracwiki: trac.parrot.org/parrot/wiki/WikiSta...ction=diff | |||
| dukeleto | Austin_Hastings++ # congrats on your bit | 05:40 | |
| Austin: did you add yourself to CREDITS? | 05:41 | ||
| Austin | Not yet. | ||
| I found another way to commit something. | |||
| dukeleto | Austin: make sure to add Austin as with a U: so your karma it properly counted | ||
| Austin | Could you say that in english? | ||
| dukeleto | Austin: ug. bad grammar | ||
| Austin: you should have two U: lines in CREDITS | 05:42 | ||
| Austin: U: Austin and U: Austin_Hastings | |||
| Austin: that lets the karms bots know that Austin++ and Austin_Hastings++ are the same | |||
| s/karms/karma/ | |||
| Austin | Ahh | ||
| mikehh | All tests PASS (pre/post-config, make corevm/make coretest, smoke (#32133), fulltest) at r43847 - Ubuntu 9.10 amd64 (g++ with --optimize) | ||
| Austin | Would that be U: or A:, or does it matter? | 05:43 | |
| dukeleto | Austin: you are right, it is an A: | 05:45 | |
| mikehh++ | |||
| Austin | karma g | ||
| purl | g has karma of 917 | ||
| Austin | :) | ||
| dukeleto | karma c | ||
| purl | c has karma of 8360 | ||
| dukeleto | c-- | ||
| treed | c-- | 05:47 | |
| dukeleto | Austin: twitter.com/parrotvm/status/8890150873 | 05:48 | |
| Austin | :) | ||
| dukeleto | i really need to work on my parrot talk for tomorrow. FOCUS! | 05:49 | |
| did anybody know about this? www.programmersheaven.com/2/Parrot-...r-Everyone | 05:52 | ||
| Austin | What's the level of detail of the talk? | 05:53 | |
| dukeleto | Austin: i am going to do half the time as a brief intro, then I want to break out onto the command line and actually run the create language script and then explain the files that it creates | 05:54 | |
| Austin | So it's "your probably know what parrot is, but here's how to get started on it" ? | ||
| Okay, this is just totally wrong. | 05:55 | ||
| oo.c line 1173: An intval "list_count" is declared inside a for loop, masking the "list_count" in the outer block. | 05:56 | ||
| petdance-- | 05:58 | ||
|
06:00
kurahaupo joined
|
|||
| Austin | Hmm... not for nothing, but given that candidate classes are prohibited from being in the tail (index > 0) of other lists, couldn't we optimize this later search to only look in position 0? | 06:01 | |
| (Effectively optimizing from O( [n - 1] **2 ) down to O( n-1 ), in a scenario where the most common value of 'n' is 2. | 06:02 | ||
|
06:03
particle joined
|
|||
| dukeleto | Austin: sounds reasonable. it might be good to mail the list about that | 06:06 | |
| Austin | :) | ||
| dukeleto | Austin: is listcount masked on purpose? | ||
| Austin | O(1 **2) vs O(1) you mean? | ||
| Ahh, list count. | |||
| Clearly it's on purpose, but it's "here's a list-of-lists with its count, and here's one of them, with its count" | 06:07 | ||
| dalek | rrot: r43848 | plobsing++ | branches/opengl_dynamic_nci (3 files): cause OpenGL.pbc to load nci signatures from libglutcb on load. |
06:24 | |
| plobsing | It's a little crude, but I've got opengl working without compiling thunks into parrot. | 06:25 | |
| dukeleto | plobsing: sounds cool! | 06:31 | |
| plobsing: japhb will probably be interested. i haven't seen him lately | |||
| plobsing | msg japhb I've got opengl to work without adding opengl signatures to src/call_list in the opengl_dynamic_nci branch | ||
| purl | Message for japhb stored. | ||
|
06:54
szabgab joined
|
|||
| dukeleto | does anybody actually use parrotbug? | 06:59 | |
|
07:07
cognominal joined
07:15
uniejo joined
07:16
chromatic joined
|
|||
| cotto | dukeleto, nobody's used or mentioned it in recent memory | 07:22 | |
| I think whiteknight got a little excited in vtable_massacre. | 07:28 | ||
| It'd be easier if he'd converted the ops before nuking the VTABLE functions. | 07:29 | ||
| Austin sings, "Well he's just an excitable boy..." | |||
| dalek | tracwiki: v1 | Austin_Hastings++ | C3%20linearization | 07:30 | |
| tracwiki: Created while trying to comprehend C3 code. | |||
| tracwiki: trac.parrot.org/parrot/wiki/C3%20li...ction=diff | |||
| dukeleto | cotto: well, it is in my talk, so I hope it works :) does it have tests? | 07:36 | |
| cotto | dukeleto, the bitwise ops/vtable functions are in your talk? | 07:37 | |
| nm. parrotbug | |||
|
07:39
eternaleye joined
|
|||
| cotto | I don't think it has any tests. | 07:44 | |
| Austin | Heh. | ||
| Given that one PMC type "extends" another PMC type, should the init method of the child do its own init, or should it call its parent init function? | 07:46 | ||
| *method => vtable | |||
| dalek | tracwiki: v2 | Austin_Hastings++ | C3%20linearization | ||
| tracwiki: Added source links | |||
| tracwiki: trac.parrot.org/parrot/wiki/C3%20li...ction=diff | |||
|
07:47
iblechbot joined
|
|||
| chromatic | It should do its own init and redispatch to the parent manually. | 07:48 | |
| Austin | Meaning that child.pmc's init() should call parent::init(), or what? | ||
| chromatic | yes | 07:50 | |
| Austin | Okay. | ||
| chromatic | *Iff* that PMC requires it. | ||
| Austin | What's the difference between init and init_pmc? | ||
| chromatic | The latter takes a PMC as an initializer. | ||
| See, for example, PMCProxy taking an Integer PMC containing the value of the type of the core PMC to proxy. | 07:51 | ||
| Austin | So they're called in similar contexts, but init is "default values" while init_pmc is "and copy stuff from here", right? | ||
| That's what I'm looking at now. | 07:52 | ||
| chromatic | That's right. | ||
| Austin | Trying to get my head around PMC proxies and P6object classes. | ||
| Given that PMCProxy extends Class, if the Class PMC has a methcache, doesn't Proxy also have that? | 07:53 | ||
| chromatic | Yes. | ||
| Austin | Proxy doesn't do anything with it in init(). | 07:54 | |
| chromatic | Tattletale. | ||
| Austin | For that matter, Class doesn't appear to use it, either. | ||
| Just declare it, init, and mark. | |||
| chromatic | PMCProxy's init() could get a lot shorter if it called the parent implementation. | 07:55 | |
| Austin | There's meth_cache, and also Class sets "is_anon" on itself | ||
| Whatever that means. | |||
| chromatic | The Object PMC manipulates the meth_cache attribute. | 07:56 | |
| Austin | Ahh. | 07:57 | |
| (!!!) | |||
| About C3 MRO | 07:59 | ||
| Do you recall how an MRO can be null? | |||
| $_PARROT/src/oo.c:1244 | 08:00 | ||
| dalek | rrot: r43849 | cotto++ | branches/vtable_massacre/src/ops/bit.ops: [bitwise] convert the remaining bitwise ops to avoid the bitwise VTABLE functions |
08:02 | |
| nopaste | "cotto" at 96.26.227.153 pasted "test failures in vtable_massacre as of r43850" (13 lines) at nopaste.snit.ch/19529 | 08:14 | |
| cotto | msg whiteknight The following test failures remain in vtable_massacre: nopaste.snit.ch/19529 | 08:15 | |
| purl | Message for whiteknight stored. | ||
| cotto | time for slep | ||
| dalek | rrot: r43850 | cotto++ | branches/vtable_massacre/src/ops/bit.ops: [bitwise] fix some bugs found by reading the code, sadly several test failures remain |
08:19 | |
| Austin | Oh good grief. | 08:21 | |
| Is there a lisp coder in the house? | 08:22 | ||
|
08:42
cosimo joined
|
|||
| dukeleto has 12 slides! | 08:47 | ||
| Austin | That should be an hour, at 5 minutes per. | ||
| eternaleye | Austin: What about thceme? (sorry for the pun, I know neither language) | 08:48 | |
| Austin | eternaleye: Too late. We're boned. | ||
| You can never find a lisp coder when you really really need one. | |||
| chromatic | Austin, I don't know. | 08:49 | |
| Austin | "It's not a bug, it's a feature." | 08:57 | |
|
08:57
mj41 joined
|
|||
| dalek | TT #1426 closed by Austin_Hastings++: C3 linearizer fails on two plain (P6object) classes | 09:04 | |
|
09:14
cosimo joined
|
|||
| dukeleto | parrot.org/people really needs an overhaul | 09:24 | |
| chromatic | Wow. | 09:30 | |
|
09:35
bacek joined
|
|||
| dukeleto | msg whiteknight what plans do you have for parrot-math-functions? i am all about it | 09:37 | |
| purl | Message for whiteknight stored. | ||
| bacek | me again | 09:42 | |
| any objections to merge gc_part2 branch? | 09:43 | ||
|
09:47
fperrad joined
|
|||
| dukeleto | o hai | 09:52 | |
| bacek: if it passes the test suite, no. | |||
| bacek | dukeleto, unfortunately our test suite isn't 100% comprehensive... | 09:53 | |
| moritz | that's an euphemism :-) | 09:54 | |
| bacek | moritz, :) | 09:55 | |
| moritz, can you test rakudo on gc_encapsulate_part_2 branch? | |||
| (and rakudo can't be built with c++) | 09:56 | ||
| moritz | bacek: will do | 09:57 | |
| bacek | moritz, thanks. I'm testing ng branch on Linux/i386 now | 09:58 | |
| moritz, is make test enough or I need spectest? | |||
| moritz | bacek: I'm doig 'make spectest' in the 'ng' branch | 09:59 | |
| bacek | moritz, ok | ||
| moritz | master is nto very well tended these days | ||
|
10:00
cognominal joined
|
|||
| bacek | moritz, ouch... How much of spectest expected to pass? | 10:04 | |
| nopaste | "moritz" at 131.188.70.66 pasted "spectest summary of ng on parrot trunk" (22 lines) at nopaste.snit.ch/19530 | 10:05 | |
| moritz | no idea about rakudo master | 10:06 | |
| bacek | 4 failed tests, 1 segfault... | 10:07 | |
| sigh... | |||
| t/spec/S32-num/abs.rakudo (Wstat: 0 Tests: 60 Failed: 0) | 10:08 | ||
| TODO passed: 9-10, 14-15, 29-30, 34-35 | |||
| t/spec/S32-str/split-simple2.rakudo (Wstat: 0 Tests: 41 Failed: 0) | |||
| TODO passed: 39 | |||
| Files=113, Tests=3049, 200 wallclock secs ( 1.30 usr 0.21 sys + 317.80 cusr 7.59 csys = 326.90 CPU) | |||
| Result: PASS | |||
| interesting. This is on my box... | |||
| nopaste | "moritz" at 131.188.70.66 pasted "test summary of ng 'make spectest' on gc_encapsulate_part2" (22 lines) at nopaste.snit.ch/19531 | 10:09 | |
| moritz | this is amd64 linux (Debian Stable) | 10:10 | |
| bacek | moritz, results are same | ||
| but why it's 2x faster on part2 branch??? | 10:11 | ||
| moritz | bacek: because I had more cores available | ||
| during the run on trunk I built the branch in parallel | |||
| bacek | moritz, ah, ok | ||
| so, no objections from Rakudo and Lua | 10:12 | ||
| I can deal with Coke later :) | |||
| moritz | wait | ||
| there are differences | |||
| bacek | merge part^W^W | ||
| where??? | |||
| moritz | wait | 10:13 | |
| sorry | |||
| I was confused by different order of output | |||
| bacek | it crashed with SEGFAULT instead of SIGBUS on sign.t | ||
| moritz | it's ok | ||
| bacek | merge party! | 10:14 | |
| :) | |||
| r43851 | 10:15 | ||
| bacek poke dalek with stick | |||
| bacek offer cheap karma for deleting branch from svn | 10:22 | ||
| And gc_encapsulate as well | 10:24 | ||
| ... as _part_2 | |||
| dalek | rrot: r43851 | bacek++ | trunk (7 files): Merge branch gc_encapsulate_part_2 back to trunk. |
10:29 | |
|
10:30
fperrad joined
|
|||
| moritz | done | 10:31 | |
|
10:33
payload1 joined
|
|||
| dalek | rrot: r43852 | moritz++ | branches/gc_encapsulate_part2: Delete gc_encapsulate_part2 branch as requested by bacek++ |
10:45 | |
| rrot: r43853 | moritz++ | branches/gc_encapsulate: Deleting brnach gc_encapsulate as requested by bacek++ |
|||
| bacek | msg whiteknight I probably broke GC_INF. Feel free to fix it :) | 11:07 | |
| purl | Message for whiteknight stored. | ||
|
11:15
mikehh joined
11:24
payload joined
12:08
ruoso joined
|
|||
| mikehh | All tests PASS (pre/post-config, make corevm/make coretest, smoke (#32139), fulltest) at r43853 - Ubuntu 9.10 amd64 (gcc with --optimize) | 12:09 | |
|
12:33
barney joined
|
|||
| dalek | rrot: r43854 | bacek++ | trunk (4 files): Split handling of command line args into 2 parts. - C<imcc_handle_flag> contains IMCC specific handling This will give us ability to easily replace IMCC with PIRC. Work isn't finished yet because we still have longopt_opt_decl with all options, but it's good start. |
12:40 | |
|
13:03
lucian joined
13:06
Whiteknight joined
13:07
tetragon joined
|
|||
| ttbot | Parrot trunk/ r43858 i386-linux-thread-multi make error tt.ro.vutbr.cz/file/cmdout/192102.txt ( tt.ro.vutbr.cz//buildstatus/pr-Parrot/rp-trunk/ ) | 13:08 | |
| dalek | rrot: r43855 | bacek++ | trunk (3 files): Split make_interpreter into allocate and initialize parts. It will give |
13:13 | |
| rrot: r43856 | bacek++ | trunk (2 files): Rerun headerizer |
|||
| rrot: r43857 | bacek++ | trunk/src (2 files): Fix codetest failures |
|||
| rrot: r43858 | bacek++ | trunk/src (2 files): Move setting default GC type from init_gc into allocate_interpreter. |
|||
| bacek | msg whiteknight I definitely broke INF GC. Now you can test it with "./parrot --gc inf foo.pir" | 13:25 | |
| purl | Message for whiteknight stored. | ||
| bacek | On this positive note I'm going to bed | 13:26 | |
| Whiteknight | bacek: awesome | ||
| bacek | Whiteknight, ah, you are here! | ||
| Whiteknight | just woke up! | ||
| bacek | C'mon! It's midnight already. You sleep too much! | 13:27 | |
| Whiteknight | bacek++ | 13:28 | |
| bacek | Anyway, starting from r43860 it's possible to set GC from CLI. | ||
| Whiteknight | yes, I see. Very awesome! | 13:29 | |
| can you set it in make test? | |||
| dalek | rrot: r43859 | bacek++ | trunk/src (2 files): Fix previous commit - allocate interp->gc_sys in allocate_interp. |
||
| rrot: r43860 | bacek++ | trunk/src/main.c: Add handling of CLI GC switching. |
|||
| bacek | Whiteknight, yes, why not? | 13:30 | |
| Whiteknight | how? | ||
| "make test --gc inf"? | |||
| bacek | ah | 13:33 | |
| You have to update makefiles (and probably t/harness to support it) | |||
| Whiteknight | ok. I can do that | ||
| bacek | oh.. SET_TRACE called too early. | 13:39 | |
| fixed. | 13:45 | ||
| dalek | rrot: r43861 | coke++ | branches/rm_cflags/src (3 files): Cleanup more unused |
13:46 | |
| rrot: r43862 | bacek++ | trunk/src/main.c: Don't use Parrot_exit in Parrot_version. Interp ins't initialized yet. |
|||
| rrot: r43863 | bacek++ | trunk/src/main.c: Fix handling trace CLI options |
|||
|
13:48
kjeldahl__ joined
|
|||
| Coke wonders how long it will be until someone gets the bright idea to rewrite the test harness in nqp-rx. | 13:55 | ||
| "<@bacek> I can deal with Coke later :)" RAWR! | 13:57 | ||
| Whiteknight | we can't rewrite parrot's harness in nqp-rx, unfortunately | ||
| we can't even completely rewrite it in PIR if we wanted | 13:58 | ||
| Coke | not all of it, no. but you could write the majority of things using nqp to wrap the actual bits you're testing to simplify test writing. | ||
| (since you can drop down to PIR to test actual opcodes, etc.) | 13:59 | ||
| (this was in response to someone complaining in backscroll about how hard it is to write a TODO test in pir.) | 14:00 | ||
| Whiteknight | you can't write the test in NQP until you've tested all the parts that NQP uses | ||
| Coke | fair enough, but you can reduce that amount by compiling it to PIR and then just using that PIR. | 14:01 | |
| dalek | rrot: r43864 | plobsing++ | branches/opengl_dynamic_nci (3 files): svn:ignore and clean new files |
14:03 | |
| Whiteknight | you can, through a bootstrapping step, yes. | ||
| Coke bemoans again how slow feather is. | 14:06 | ||
| Coke needs to get a machine he can compile on locally again. | |||
| feather? | 14:08 | ||
| purl | somebody said feather was feather.perl6.nl/ or a perl6 community development server or run by juerd. | ||
| Coke pings juerd. | 14:11 | ||
| dalek | rrot: r43865 | coke++ | branches/rm_cflags/config/auto/warnings.pm: Promote a warning that the build is clean on. --This line, and those belffow, will be ignored-- M config/auto/warnings.pm |
14:20 | |
| mikehh | bacek: I am getting serious test failures all over the place - make corevm/make coretest | 14:22 | |
| mj41 | mikehh: r43863 seems ok on TapTinder tt.ro.vutbr.cz/report/pr-Parrot/rp-trunk | 14:24 | |
| mikehh | might be related to --optimize | 14:25 | |
| Whiteknight | on the branch? | 14:27 | |
| mikehh | got to go out for as bit - bbl | ||
| dalek | rrot: r43866 | coke++ | branches/rm_cflags/config/auto/warnings.pm: Don't bother probing for a fake warning. |
14:37 | |
| rrot: r43867 | mikehh++ | trunk/src/main.c: add cast to src/main.c to allow g++ to build |
|||
| rrot: r43868 | whiteknight++ | branches/vtable_massacre (3 files): fix two tests. arithmetics_pmc.t had a bad plan. bitint.t had some tests for shift left and right, but those vtables no longer exist and tests are not valid. If BigInt wants that capability still, we can re-add it using method calls |
|||
|
14:38
bacek joined
14:46
plobsing joined
|
|||
| dalek | rrot: r43869 | whiteknight++ | branches/vtable_massacre/t/pmc/multidispatch.t: multidispatch.t had a bad plan |
14:54 | |
| Whiteknight | vtable_massacre passing coretest now after removing bitwise ops. | 15:10 | |
| NEXT! | |||
| dalek | rrot: r43870 | whiteknight++ | branches/vtable_massacre (2 files): my editor auto-removed whitespace from string.t Fix the bnots ops to not get the pointer voodoo so wrong. string.t passes now |
||
| rrot: r43871 | coke++ | branches/rm_cflags/config/gen/makefiles (2 files): Don't need CFLAGS manipulation, just turn off these warnings. |
|||
|
15:17
cognominal joined
|
|||
| dalek | rrot: r43872 | coke++ | branches/rm_cflags/lib/Parrot/Docs/File.pm: This file is gone... |
15:43 | |
|
15:49
theory joined
15:56
Psyche^ joined
|
|||
| Tene | Austin: pong | 16:03 | |
| Coke | Juerd++ | 16:05 | |
| szbalint | what did Jesus^WJuerd do? | 16:06 | |
| dalek | rrot: r43873 | whiteknight++ | branches/vtable_massacre (10 files): remove *pow* vtables. Update all tests and PMC types. Notice that I replaced pow() in Complex BigInt, and BigNum types with experimental methods that perform the same operation. If we like this, we can add tests for them. Otherwise, delete them |
16:16 | |
| Coke | szbalint: he made feather go. go fast. | 16:18 | |
| szbalint | \\o/ | ||
| Coke wonders if this looks like a zombie chasing you: | 16:20 | ||
| fof | |||
| szbalint | hehe | 16:22 | |
| Coke | yapc 2010 call for papers. | 16:27 | |
| Whiteknight resists the urge to rip out a few dozen other of his least favorite vtable methods | 16:28 | ||
| Coke ponders something perly. | |||
|
16:31
kjeldahl joined
16:34
darbelo joined
|
|||
| dukeleto | good localtime() | 16:41 | |
|
16:43
kjeldahl joined
|
|||
| Whiteknight | hello duke | 16:46 | |
| dalek | rrot: r43874 | whiteknight++ | branches/vtable_massacre (3 files): remove set_bignum_int vtable from Integer.pmc. Last vtable I think we need to remove. Passes all tests |
16:48 | |
| Whiteknight | wasn't the splice vtable deprecated and supposed to have been removed? | 16:51 | |
| I thought it was | 16:52 | ||
| dukeleto | Whiteknight: howdy! | ||
| Whiteknight: you have been quite busy lately. I just saw your parrot-math and parrot-data-structures projects | 16:53 | ||
| Whiteknight: i will definitely help with both | |||
| darbelo | dukeleto: ping | 16:57 | |
| Whiteknight | dukeleto: awesome! you want commit bits? | ||
| dukeleto | Whiteknight: yes please! | 17:10 | |
| darbelo: pong | |||
| Coke | anyone here building on cygwin that could help the poor guy on perl6-compiler? | ||
| I just tried to build and can't even make it past "which compiiler should you use" | 17:11 | ||
| darbelo | dukeleto: I'm scouting projects for SoC and saw the link Parrot on RTEMS. Do you know if that's going to be handled by Parrot or RTEMS? | 17:12 | |
| darbelo strikes a pose and shouts "PARROTS IN SPACE!" | |||
| dukeleto | darbelo: it has not been decided yet, but it shouldn't matter much which org "hosts" the project | 17:13 | |
| darbelo | It does when looking for mentors ;) | ||
| dukeleto | yes, and joel sherril's idea of a parrot with a space helmet is awesome | ||
| darbelo: the mentors for the project will most likely be Chris Johns, Joel Sherril, me and/or some other RTEMS peeps | 17:14 | ||
| NotFound | Who has experience in creating parrot .deb packages? | 17:16 | |
|
17:16
theory joined
|
|||
| darbelo | NotFound: allison did the ubuntu packaging IIRC | 17:17 | |
|
17:17
cotto_work joined
|
|||
| NotFound | I have parrot built in the scratchbox of the Maemo sdk, but don't know how to package it to install in the N900 | 17:17 | |
| And I want a parrot in my phone :) | 17:18 | ||
| darbelo | dukeleto: Good to know. I'm still building my RTEMS toolchain, but I intend to be all over this project. | 17:19 | |
| dalek | TT #1432 created by whiteknight++: Remove 2-argument math ops | 17:20 | |
| TT #1433 created by whiteknight++: Add a vtable function to get arithmetic mode | |||
| particle | Whiteknight: how do you set the numeric mode? is this a dynamic thing that can change during the life of the pmc instance, or something that's constant over all pmcs of that type? | 17:22 | |
| Whiteknight: it seems like a role to me. | |||
| Whiteknight | particle: I'm thinking it's a properly of the PMC class. Very much like a role, yes | 17:23 | |
| maybe a role is the way to do it | |||
| but an overridable vtable will have better performance and still give good flexibility for user-defined types | |||
| cotto_work | good morning internets | ||
| Whiteknight | hello cotto_work | ||
| do you wake up at work? | |||
| internets | good morning cotto_work | 17:24 | |
| dukeleto | particle: howdy | ||
| NotFound | Whiteknight: What's the problem with falling backk to default PMC? Default PMC can throw a meaningful error, without the need of checking flags. | ||
| purl | que tal, dukeleto. | ||
| dukeleto | cotto_work: must be nice when the internets says "good morning" | ||
| internets | ;) | 17:25 | |
|
17:26
mikehh joined
|
|||
| cotto_work | Whiteknight, only when I fall alseep at work | 17:26 | |
| NotFound | In fact, I don't see the whole point of TT #1433. A Complex don't want to be treated as an INTVAL or as a FLOATVAL. It wants to be treated as a Complex. | 17:28 | |
| Whiteknight | NotFound: it's decent, but not as good as it could be | 17:29 | |
|
17:29
cotto_work joined
|
|||
| particle | hola, duke | 17:29 | |
| Whiteknight | "PMC foo is non-numeric for use in operation bar" is a better error message than "vtable bar not found" | ||
| but that's a preference | |||
| I would be happy if the new VTABLE returned a bool too | |||
| particle | a vtable is baggage for non-number types | 17:30 | |
| NotFound | Whiteknight: you just put that message in Default and you're done. | ||
| Whiteknight | NotFound: then the message only means that we are missing a particular vtable, not that the type is inherently non-numeric | ||
| in a user-defined type when the user hasn't implemented several dozen mathematics ops, the difference is important | 17:31 | ||
| in any case, the error message is the least important detail of the whole proposal | |||
| particle | in user-defined pmcs, the pmc may decide to respond to different math ops in different contexts | 17:32 | |
| for bitwise shift and mod, i'm an int. for add and mul, i'm a float. | |||
| these are dynamic languages we're supporting. | 17:33 | ||
| NotFound | Whiteknight: if you want that type of messages and behaviour, we can create a NonNumeric PMC and inherit from it. | 17:34 | |
| Whiteknight | particle: so then we're doomed to absolute inconsistency in our ops? I suggest that an op should either always do what it's name implies, or we should have a thinner and more flexible layer over the vtables directly | 17:35 | |
| fewer vtables is a very good thing, so we want to move in that direction | 17:36 | ||
| particle | we really need pmcroles created | 17:37 | |
|
17:37
lucian joined
|
|||
| Whiteknight | particle: that's true, no doubt. But that whole system has a lot of maturation to do | 17:37 | |
| particle | inheriting from a NonNumeric PMC isn't the right way to go, it should be composed from a NonNumeric PMC | ||
| Whiteknight | A way for us to define and enforce roles in the code is a great first step | ||
| NotFound | We can just kill add PMC, INT and add PMC, NUM, leaving only add PMC, PMC | ||
| Whiteknight | NotFound: exactly | ||
| dalek | TT #1434 created by whiteknight++: Slim down selection of mathematics vtables | 17:38 | |
| Whiteknight | the more vtables we can get rid of, and the more ops we can move out of core, the better | ||
| NotFound | Whiteknight: then you don't need a flag, just call VTABLE_add | ||
|
17:38
cotto_work joined
|
|||
| Whiteknight | NotFound: think bigger. All the trig ops are moving out of core. We obviously don't have VTABLE_sin(). So when we pass a PMC to sin_p_p, how do we know it's a valid operation? | 17:39 | |
| we have to call VTABLE_get_number and VTABLE_set_number_native, but we don't know that a type has those. | 17:40 | ||
| NotFound | Whiteknight: When i call: Hash.'open' how I know it's a valid operation? | ||
| Whiteknight | Maybe we call it on an integral type, so sin_p_p can call "FLOATVAL a = (FLOATVAL)VTABLE_get_integer" instead | ||
| NotFound: I don't know, that's a different issue entirely | |||
| Coke | Whiteknight: every type has get_number | 17:41 | |
| darbelo | Whiteknight: If it succeds, it's a valid operation. | ||
| Whiteknight | My point is this: we don't have good encapsulation, we don't have any way to determine whether a numeric PMC should be treated as an integer or a float, so we make guesses and require all numeric PMCs provide VTABLEs to act like both | ||
| NotFound | Looks the same to me. Do something with that, or throw. | ||
| Coke | if you don't want it to be numeric, make get_number fail. | 17:42 | |
| Whiteknight | Integer.get_float() takes it's integer value and just casts it to a float. That's stupid. Nobody should be calling get_float on Integer in the first place | ||
| we should get the integer value and cast it to whatever we need once we get it | |||
| Coke | Whiteknight: ... no. | ||
| we should ask it for the type of value we want. | |||
| Whiteknight | Coke: yes. Integer contains an integer, not a float. | ||
| dukeleto | Whiteknight: no one should on purpose, but sometimes it happens via various levels of indirection | ||
| darbelo | Whiteknight: $N0 = $P5 | 17:43 | |
| Whiteknight | we should ask for the type it has. The op makes the cast it needs. This gives us better encapsulation between the PMCs and the OPS | ||
| Coke | Whiteknight: encapsulation doesn't usually mean "i have to write a lot more code". =-) | ||
| which i would here. | |||
| Whiteknight | darbelo: set_number_n_p would get the numeric value, cast it to a float if necessary, and return it | ||
| Coke: this way would reduce code | |||
| NotFound | Whiteknight: asking for something before almost any operation is a waste of time and a mess of generated code. | ||
| Whiteknight | because we wouldn't need to add get_float() for non-float types | 17:44 | |
| or add get_integer for non-int types | |||
| Coke | Whiteknight: but adding get_float is /trivial/ - what problem are you trying to solve here? | ||
| darbelo | Whiteknight: So set_number_n_p will have to specail-case anything that holds an INTVAL? | ||
| Whiteknight | we write the cast once, in the op, and don't have to add all the unnecessary accessors in every PMC type | ||
| Coke | Whiteknight: not everything goes through an op. | ||
| Whiteknight | Coke: The problem I'm trying to solve is decreasing the overall number of ops, decreasing the overall number of vtables, and increasing overall performance | 17:45 | |
| Coke | Whiteknight: we're talking about 3 accessor types. one for each non-pmc register type. | ||
| Whiteknight: you're not decreasing the # of vtables here. | |||
| unless we are also going to have to have different available vtables per pmc. | |||
| purl | okay, Coke. | ||
| Whiteknight | darbelo: set_number_n_p would ask the PMC what kind of value it had, and act accordingly | ||
| Coke: three accessors for every type of operation. get_number, get_number_keyed, get_number_keyed_int, ... | 17:46 | ||
| it adds up, and we have a shit-ton of unnecessary cast code throughout src/pmc to account for all sorts of presupposed needs from theoretical HLLs | |||
| Coke | ok. can we set aside the issue of container-related vtables for the moment? | ||
| that leaves the 3 core gets. | 17:47 | ||
| yes? | |||
| Whiteknight | Integer PMC contains an integer and should be able to provide an integer on demand. It is not the job of integer to anticipate the existence of other types, and provide special accessors to get all of them | ||
| Coke | (or am I missing more?) | ||
| Whiteknight | Coke: in that limited subset, yes | ||
|
17:48
cognominal joined
|
|||
| Whiteknight | Integer, for instance, should not provide get_complex, get_bignum, get_bigint, get_rational, etc | 17:48 | |
| Coke: the big savings we get from this is not to remove get_float from Integer, and get_integer from Float | 17:49 | ||
| mikehh | All tests PASS (pre/post-config, make corevm/make coretest, smoke (#32140), fulltest) at r43874 - Ubuntu 9.10 amd64 (g++) | ||
| Whiteknight | the big savings is in being able to delete large numbers of mathematics VTABLEs, move them into ops, and then move those ops to dynops | ||
| mikehh | however I get mega test failures if I build with --optimize on both gcc and g++ | ||
| Whiteknight | and along the way we get improved performance and improved consistency | 17:50 | |
| Coke | can you give me an example of a vtable you'd like to remove? | ||
| like, subtract, subtract_int, subtract_float ? | |||
| Whiteknight | Most of them are already mentioned in tickets | 17:51 | |
| all the i_* ops for instance, all the trig ops, ln, log, log10. gcd, lcd, and fact. | |||
| Coke | ... those are ops. | ||
| I thought we were talking about vtables just now. | |||
| Whiteknight | oh, I misread. Those are the ops I want to remove, and we need improved consistency in our PMC interfaces to do that | 17:52 | |
| NotFound | Whiteknight: If i do PMC = log PMC I don't see the need to ask if the PMC likes to be a float or an int. The log of a Complex is a Complex. | 17:54 | |
| Whiteknight | NotFound: so do we need to have a log() VTABLE for all PMC types? | 17:55 | |
| that's a huge waste of space for a trivial need | |||
| Coke | Whiteknight: it's a pointer, which for anything that doesn't care, will just be the default PMC's version. | 17:56 | |
| NotFound | Whiteknight: at least it works. Limiting the operation to thinks int-alike or float-alike doesn't work. | ||
| Coke | if log is an opcode (and not a vtable), how would it work on non int/float pmcs? | 17:57 | |
| (which i guess just rephrases what nf said.) | |||
| Whiteknight | Coke: it's not just a pointer. It's allocated storage space for a pointer for every single PMC type | ||
| NotFound | If we are going that way, just kill the ops and use methods. | 17:58 | |
| Whiteknight | Coke: in the few PMCs that need log but are not scalar-numeric, we can easily call a method | ||
| Coke | Whiteknight: sorry, yes, "pointer per instance of PMC" | ||
| Whiteknight | notice that we don't have a VTABLE_log() right now | 17:59 | |
| NotFound | And if you want to write and generate code that wants int or floats, use registers. | ||
| Coke | Whiteknight: ok. so every time we call log, we'd have to check to see if it defines a method, and invoke it. | ||
| (and if not, then we can do the math on the float value) | |||
| mikehh | I am getting Segmentation faults all over the place with an --optimize build in make corevm/make coretest and make test | 18:00 | |
| Whiteknight | and at the moment, when we call the log op, it does a VTABLE_get_float | ||
| Coke: so making the ops slightly more intelligent would actually FIX them to work with complex the way it should be | |||
| at the way there is no way to tell that Complex does not contain a scalar numeric value | |||
| Coke | Whiteknight: at the expense of slowing it down everywhere else. | ||
| Whiteknight | Coke: strongly disagree. No performance penalty | 18:01 | |
| Coke | Whiteknight: really? how do you know if you should be calling the method? | ||
| Whiteknight | if the PMC is flagged as non-numeric | ||
| Coke | there is a cost to invoke&fail, or check-to-see-if-invoke. | ||
| Whiteknight: but a complex PMC /is/ numeric. or do you mean just not one of the two basic types of numeric? | |||
| Whiteknight | Coke: Numeric, yes. Scalar-numeric, no | 18:02 | |
| big difference | |||
| purl | big difference is that we eat the swiming muscle of most of those. | ||
| Whiteknight | and at the moment, we assume that all PMCs passed to the log opcode are scalar-numeric and that they define the get_float VTABLE | ||
| and that's a stupid, encapsulation-breaking assumption to make | |||
| Coke | it is NOT unreasonable to assume that a PMC provides a vtable. | ||
| Whiteknight | because it doesn't work with BitInt, BigNum, Complex, Rational, etc | 18:03 | |
| Coke | that is why there are vtables. | ||
| right. the log opcode is currently broken. | |||
| Whiteknight | Coke: it becomes unreasonable for huge numbers of vtables | ||
| Coke | Whiteknight: "define huge". | ||
| Whiteknight | Coke: it's not just the log opcode. That's just the example that NotFound mentioned | ||
| Coke: VTABLE struct is currently about 2k on some systems | |||
| and it's 2k filled with mostly-unused cruft. | 18:04 | ||
| the aggregate costs of keeping those pointers around for all execution runs outweighs the occasional benefits when an application actually needs i_subtract_float | |||
| or any of the dozens of other specialized, unnecessary vtables | 18:05 | ||
| less is more | |||
| NotFound | That's exactly the problem. If you don't have a vtable the only option for an op is to assume is like an int or like a float. To allow polimorphism you need a vtable, or forget the op and call methods. | ||
| Well, you can have an op that just call a method. | |||
| Whiteknight | NotFound: NO!!! Don't assume. It's easy to ask | 18:06 | |
| "are you int-like, float-like, or neither?" | |||
| NotFound | Whiteknight: And what if neither? | ||
| Whiteknight | NotFound: depends on the op. Maybe find_method, maybe throw exception | 18:07 | |
| NotFound | Whiteknight: So you ask again? | ||
| Oh, the op. | |||
| plobsing considers the costs/benefits of pmc->vtable->secondary_uncommon_math_vtable | |||
| Whiteknight | NotFound: with dynamic languages, we can't make assumptions. Any assumption we make is going to be horribly wrong for some HLLs | ||
| NotFound | Whiteknight: The assumption in dynamic languages is: if you do an operation in some variable, you care that it makes sense. | 18:08 | |
| Whiteknight | plobsing: When you consider that most of the uncommon mathematics vtables are defined in terms of a series of more-common vtables, it's hardly a savings anyway | ||
| NotFound | "you" teh user. | ||
| Whiteknight | the issue is whether we properly encapsulate the operation logic in the op, or whether we force all PMCs to define their own custom versions over and over and over again | 18:09 | |
| Coke | as an aside, note that most pmcs aren't defining anything, but just inheriting. (where most == those outside of the repo) | 18:10 | |
| I think a potentially less confusing angle to approach this from, Whiteknight, might be, e.g., the shift/unshift/push/pop opcodes. | 18:11 | ||
| (which could then be extending to all the math variants.) | |||
| Whiteknight | what do you mean? | ||
| Coke | I think it's an easier sell to strip those out. | 18:12 | |
| YMMV. | |||
| NotFound | I still don't see how can that work. You call sin_p_p and the PMC says he works like a float. What the op does? Evaluete the sin of a float and storing the result in a HLL mapped float? | 18:13 | |
| mikehh | when I say mega I am getting hundreds if not more failing (sub)tests in make corevm/make coretest | ||
| Coke | NotFound: That is how I understand how it would work, fwiw. | 18:15 | |
|
18:15
chromatic joined
|
|||
| Whiteknight | Coke: those are more commonly used operations and probably need to stay core | 18:16 | |
| When we talk about an op, we have two things: the op and the data. Right now we don't have a clear encapsulation between the two for numeric data and math ops | |||
| NotFound | I don't think that works. The HLL might want to do something reasonable in case where the operation with registers gives a NaN, for example. | ||
| Whiteknight | and in return we have tons of inconsistency throughout the core types in how they handle thigns | ||
| dukeleto | Whiteknight: have you tried logarithms? ;) | 18:17 | |
| NotFound | An HLL can give a failure with the square root of -1, other HLL can give a complex result. | ||
| Whiteknight | dukeleto: what about logarithms? | 18:18 | |
|
18:18
joeri joined
|
|||
| Whiteknight | NotFound: so the HLL provides a type that lists it self as not being scalar-numeric and provides a sqrt() method that returns the desired result | 18:18 | |
| the op is flexible, so it handles this without changes | 18:19 | ||
| dukeleto | Whiteknight: xkcd.com/451/ | ||
| NotFound | dukeleto: :D :D :D | 18:20 | |
| Whiteknight | dukeleto: noce | ||
| nice | |||
| ops aren't currently overridable, and I suggest that we would't want that anyway. The PMCs are, however, overridable. This is why the op can't make assumptions and why we need to put all the necessary information in the PMC | 18:21 | ||
| The PMC knows if it needs to be operated on as a float or an int, or neither. The PMC knows if it supports certain operations or doesn't support others. The PMC knows how to handle it's own corner cases | |||
| Right now, the log op just assumes that we can call VTABLE_get_float, pass that to the libc log() function, and return the result as a FLOATVAL. this is stupid on so many levels | 18:22 | ||
| NotFound | Whiteknight: The PMC may know, but a simple ask "Are you an int or a float?" doesn't know all that. | ||
| Whiteknight | NotFound: hence the need for a third option | 18:23 | |
| NotFound | Whiteknight: a third option is not just for corner cases, is for any usage. | ||
| dukeleto | Whiteknight: i agree with you. the log op should be smarter | ||
| NotFound | So that way in practice may be the same as providing the op for int and float registers, and calling a method for PMC. | 18:28 | |
| Which IMO is a good way, if we manage to make method calls faster. | 18:29 | ||
| nopaste | "Whiteknight" at 68.46.29.192 pasted "example log op" (21 lines) at nopaste.snit.ch/19534 | ||
| Whiteknight | dukeleto: almost all ops need to be smarter and make fewer assumptions | ||
| now imagine a world where we didn't have _any_ mathematics vtables, and perfect encapsulation between data and algorithm | 18:31 | ||
| dukeleto | Whiteknight: it's like that John Lennon song | ||
| Whiteknight | dukeleto: exactly | ||
| chromatic | Number Nine? | 18:34 | |
| purl | THE MOTHERSHIP, (Z) CLUSTER GROUPS AND MEMBERS ARE WHOLLY DISORGANIZED. ANY APPEARANCE OF ORGANIZATION IS A DELUSION VISITED UPON MEMBERS BY SORCEROUS ATTACKS FROM THE LORDS OF ORDER. | ||
| NotFound | Whiteknight: assuming the result is a float doesn't look encapsulated to me. | ||
| Whiteknight | NotFound: now not encapsulated? The only VTABLEs that we call are get_integer and get_float. The PMC provides the data and the op performs the calculation | 18:35 | |
| that's perfect encapsulation | |||
| NotFound | Whiteknight: encapsulated to me is: op log(OUT PMC, invar PMC) | 18:36 | |
| Whiteknight | NotFound: could implement the same exact idea for that too | 18:37 | |
|
18:37
mikehh joined
|
|||
| NotFound | Whiteknight: then the idea is wrong. | 18:38 | |
| The scalar type for some HLL may return non-float for some values. | 18:39 | ||
| nopaste | "Whiteknight" at 68.46.29.192 pasted "log_p_p for NotFound" (24 lines) at nopaste.snit.ch/19535 | 18:40 | |
| Whiteknight | NotFound: so then we need more. This is just a first draft | ||
| But the idea is sound: separate data from function | |||
| Maybe use use a vtable. Maybe we use roles. Maybe flags. Maybe attrs. | 18:41 | ||
| In any case, the op should know how to do the op, and the PMC should know how to hold the data | |||
| NotFound | Whiteknight: that's not exactly the same idea. But the point is that in such way you use the method for *any* operation, not just for log. | ||
| VTABLE_get_numeric_type can't know what's the intended operation. | 18:43 | ||
| Whiteknight | NotFound: so we find a more flexible approach | ||
| NotFound | I just can think one: op for int and float registers, method for pmc. | 18:44 | |
| Whiteknight | NotFound: at the moment, we cannot make the log operator DTRT for Complex or BigInt or BigNum or Rational without special cases | ||
| and any time the HLL adds a new type, we need a new special case | |||
| or, the op doesn't do the right thing | |||
| NotFound | Yeah, that fact started the debate. The current way is incomplete and hardly extensible without adding lots of vtable slots. | 18:45 | |
| Whiteknight | I would also be very interested to hear about these magical, mythical data types that act like an integer sometime, are floats other times, and are non-scalar for some things too | ||
| and then I would like to hear any arguments that such a datatype was both usable and internally consistent | 18:46 | ||
| Complex, for instance, is a non-scalar type and can never really be treated properly by get_intval or get_float | |||
| unless we say that get_float returns the magnitude, or the real part | 18:47 | ||
| NotFound | Whiteknight: then sqr(-1) is such magical type in any HLL that returns a complex. | 18:48 | |
| The scalars in that language, I mean. | |||
| Whiteknight | sqrt is an operation, not a type | ||
| but the data type itself is always a complex | |||
| NotFound | Whiteknight: The data type of -1 ? | 18:49 | |
| Whiteknight | $P0 = sqrt(-1) | ||
| but thats a different issue entirely | |||
| NotFound | Whiteknight: yes, the -1 acts like a integer sometimes, and as a comples in sqr | ||
| Whiteknight | Find me a PMC type, not an operation, that acts like a float for some arithmetic operations and acts like an integer for others | ||
| NotFound: no, -1 is always a scalar number. The OUTPUT of sqrt() is a different value | 18:50 | ||
| purl | okay, Whiteknight. | ||
| Whiteknight | there are two PMCs there: the input and the output. The input is a negative integer, the output will be a complex | ||
| but the integer ALWAYS acts like an integer, and the complex ALWAYS acts like a complex | |||
| mikehh | at r43874 - Ubuntu 9.10 amd64 - g++/gcc builds both ok without --optimize but fail mega with --optimize | ||
| NotFound | Whiteknight: If the definition of "scalar" is "a float or an int", certainly. | ||
| dukeleto | Whiteknight: this is why some languages make sqrt(-1) and sqrt(-1+0i) work differently. the first is an error, the second returns a complex | 18:51 | |
| Whiteknight | In this case, I'm defining "scalar" as "has a single integer or float value, suitable for storage in a hardware machine register" | 18:52 | |
| dukeleto: I'm not talking about the operation. I'm talking about the data type | |||
| forget sqrt(), it's not what I'm talking about | |||
| purl | Whiteknight, I didn't have anything matching sqrt(), it's not what i'm talking about | ||
| mikehh | in fact g++ with --optimize FAILs around 1689 (maybe more) tests in make corevm/make coretest (AFAICS all with Segmentation faults) | ||
| dukeleto | Whiteknight: it has a certain symmetry to it. "whatever the type is that you give, that is what you get out" | ||
| NotFound | Whiteknight: if you say "act", you talk about operations. | ||
| dukeleto | Whiteknight: /me forgets :) | ||
| mikehh | and gcc with --optimize looks the same | 18:53 | |
| chromatic | mikehh, do you know which revision is responsible? | ||
| Whiteknight | NotFound: I'm talkig about vtables. We don't have a sqrt vtable | ||
| mikehh | everything PASSed at r43853 (gcc with --optimize) - bisecting now | 18:54 | |
| NotFound | Whiteknight: let's talk about pow, then. | ||
| But.... | |||
|
18:55
theory joined
|
|||
| NotFound | Ah, yes, sqrt is just NUM | 18:55 | |
| Whiteknight | You said that the VTABLE_get_numerical_mode couldn't know whether the PMC should act like an int or a float. I want to see an example of a place where the PMC wouldn't know, or where the PMC would change it's behavior | ||
| In the nopaste that I posted | |||
| Find me an example where the input PMC doesn't know whether it's an integer or a float? | 18:56 | ||
| or find me an example of where the input PMC needs to change depeding on the operation | |||
| NotFound | Whiteknight: In the log op? | 18:57 | |
| mikehh | the only commits to trunk after that were from bacek except one by me to get g++ to build | ||
| Whiteknight | sqrt, it doesn't matter | 18:58 | |
| Find a place where the input PMC doesn't know what it is | |||
| NotFound | Whiteknight: SomeScalar(-1) | ||
| Whiteknight | NotFound: -1 doesn't know what -1 is? | ||
| what PMC type is -1? | |||
| in the op sqrt_p_p, we take a PMC input. So what type of PMC? | 18:59 | ||
| Coke is a little freaked out that pugs has no trunk. | |||
| NotFound | Whiteknight: if you want to be able to return some type of complex for log, can't be int or float. If is not int or float, all other ops like that must call a method. | 19:00 | |
| Whiteknight | another type can be used if that other type knows that it acts like an integer | ||
| Perl6Int for example | |||
| or TclInt | 19:01 | ||
| dalek | rrot: r43875 | chromatic++ | branches/vtable_massacre/src/pmc (2 files): [PMC] Fixed improper returns from PMC METHODs in BigInt and BigNum. |
||
| Whiteknight | ah, thanks chromatic | ||
| dukeleto | Coke: what do you mean about pugs not having a trunk? | 19:02 | |
| NotFound | Whiteknight: fine, but give me a definition of "acting like an integer" that makes sense in that case. | ||
| chromatic | mikehh, I can't reproduce the segfaults with --optimize on 32-bit Linux with gcc. | ||
| Whiteknight | NotFound: "acting like an integer" in this case means it uses integer arithmetic machine code instructions to act directly on data | 19:03 | |
| A pointer type, for instance, would act like an integer for arithmetic because it didn't use floating pointi nstructions | 19:04 | ||
| mikehh | chromatic: I haven't tested on i386 yet, but I remember when amd64 would not build with --optimize, over a year ago if I remember right | ||
| NotFound | Whiteknight: then there is no such thing as acting like integer or like float that makes sense for log | ||
| Whiteknight | NotFound: why not? We can pass a FLOATVAL to log, get a FLOATVAL back | 19:05 | |
| It might not make sense for an Integer to be passed to log. That's true | |||
| NotFound | Whiteknight: again: log(-1) | ||
| Whiteknight | but the op could still call (FLOATVAL)VTABLE_get_integer to get the data and try again | 19:06 | |
| NotFound | Or log(-1.0) | ||
| chromatic | mikehh, then let's hope the bisection is revealing. | ||
| Whiteknight | NotFound: that's not a problem. The op can detect a negative number and do what the HLL wants | ||
| NotFound: the op is log_p_p. Write me a PIR snippet that causes problems | |||
| mikehh | just finishing fulltest on gcc without --optimize | 19:07 | |
| Whiteknight | and I will write the op that makes the problem go away | ||
| NotFound | Whiteknight: maybe is doable, but looks to me like making any operation an special case. | 19:08 | |
| chromatic | mikehh, wait... I was on the vtable_massacre branch. Oops. | ||
| mikehh | All tests PASS (pre/post-config, make corevm/make coretest, smoke (#32141), fulltest) at r43874 - Ubuntu 9.10 amd64 (gcc) | 19:11 | |
|
19:11
cotto_work joined
|
|||
| mikehh | chromatic: yeah - I was testing that too | 19:11 | |
| chromatic | Ah, there we go. | 19:12 | |
| Coke | Whiteknight: how would you deal with things like 1/3.0 ? | 19:14 | |
| mikehh | make corevm/make coretest PASSes at r43856 | ||
| Coke | Right now, the PMC on the left has some control over what happens there. if that's hidden in an op, how do we, for example, make that into integer division in partcl. | ||
| (but keep it as float division in perl) | |||
| mikehh | with gcc with --optimize | ||
| Coke | would I have to write a div method on my HLL pmc? | 19:15 | |
| chromatic | mikehh, I bet it's the --gc-debug flag. | ||
| Whiteknight | Coke: that's actually a very good point. But in that case a combination of op and environment needs to determine correct behavior, it still isn't the province of the data type | 19:17 | |
| Coke | er, misspoke slightly. no paste coming: | ||
| nopaste | "coke" at 65.91.151.195 pasted "tcl, various types of division." (4 lines) at nopaste.snit.ch/19539 | ||
| Whiteknight | maybe Tcl and Perl6 need to define arithmetic dynops if they have specific behavior they want to implement | ||
| Coke | Whiteknight: that pretty much contradicts everything about pmcs I've heard for the past 9 years. =-) | ||
| letting the pmcs decide is supposed to be the basis of HLL interop. | 19:18 | ||
| Whiteknight | Coke: the last 9 years of parrot have produced a very messy, large, slow, inconsistent bird | ||
| Coke | Whiteknight: no argument there. | ||
| chromatic | mikehh, it is... the segfault is from src/main.c line 450 | ||
| There's no current context to check for warnings. | |||
| Whiteknight | Coke: we are letting the PMCs decide, starting at the fundamental level of "do I call get_integer or get_number?" | ||
| Coke | that's the wrong place to ask the question. | ||
| how does the pmc know at that point you're doing division? | 19:19 | ||
| how does it know what the other value involved in the operation is? | |||
| mikehh | chromatic: it blows up at r43860 (gcc with --optimize) | ||
| Whiteknight | Coke: think about this from another angle. I'm creating a new project with a series of math dynops. How does my dynamically-loadable independent library know anything about your data types? I have to ask | 19:20 | |
| chromatic | Makes sense, mikehh. | ||
| Whiteknight | Coke: and also, maybe we need to explicitly define "integer_divide" and "float_divide" opcodes | 19:21 | |
| has the benefit of a more direct translation to machinecode for JIT | |||
| Coke | Whiteknight: that would solve the problem, yes, if every opcode had both types. then you don't need to keep the flag on th pmcs, you can just ask for the appropriate type. | ||
| (but you'd need more than just i_divide and n_divided, you'd need i_i_divided, i_n_divide, n_n_divied, n_i_divied... | 19:22 | ||
| Whiteknight | we already basically have that, add_p_p_i, add_p_p_n | ||
| particle | or the dynops operate solely on dynpmcs also provided | ||
| Whiteknight | the problem is add_p_p_p, where we make an assumption | ||
| particle: that has to be the wrong solution | |||
| Coke | Whiteknight: these would still take pmcs, but would force a type coercion. that's the wrong approach. | ||
| particle | has to? and there's only one wrong solution? | ||
| :P | |||
| lucky me for picking it! | 19:23 | ||
| Whiteknight | particle: demanding that add-on modules may not interoperate? | ||
| Coke | then I have to know when I generate the opcode which variant i want. | ||
| when I really want this to dispatch at runtime appropriately. but only for my HLL, since my HLL has different rules than yours. | |||
| particle | the dynops offer specific behaviors | ||
| but on what data types? | |||
| Whiteknight | Coke: so the answer may be a way for the HLL to specify options like that in a global way | 19:24 | |
| so that people who have never heard of Tcl can still write modules that have a hope of interoperating with partcl | |||
| Coke | Whiteknight: the problem that I've always seen is where is the boundary: is it in code that partcl uses? data that partcl creates? | ||
| Whiteknight | what boundary? | 19:25 | |
| purl | boundary is new | ||
| Coke | the global. | ||
| purl | the global is mankz.com/code/GlobalCheck.htm | ||
| Coke | 14:23 <@Whiteknight> Coke: so the answer may be a way for the HLL to specify options like that in a global way | ||
| global how? | |||
| everywhere? limited to my HLL code? limited to PMCs generated by my HLL? | |||
| NotFound | Whiteknight: the way to specify that things is hll mapped types. | ||
| Whiteknight | Coke: "global" in the sense that we do hll_map now. global to the HLL | ||
| in one HLL, the ops do one thing, in a different HLL the ops do another | 19:26 | ||
| and that's not unreasonable | |||
| particle | pmc's are abstract data types. abstract data types define a storage format and an interface to that storage. | 19:27 | |
| Whiteknight | In Tcl, 1.0/1 is integer or float division? | ||
| Coke | dukeleto: svn ls svn.pugscode.org/pugs | ack trunk | ||
| particle | however, the hll defines semantics | ||
| Coke | Whiteknight: nopaste.snit.ch/19539 | ||
| mikehh | chromatic: make corevm/make coretest PASSes at r43859 and it blows up at r43860 (gcc with --optimize) | ||
| particle | what do you do with overflow? rounding? errors? nans? | 19:28 | |
| Whiteknight | Coke: so in Tcl, the type of division is decided by the numerator? | ||
| chromatic | mikehh, committing fix now. | ||
| Coke | Whiteknight: ... did you READ the nopaste? | ||
| mikehh | chromatic: great | ||
| chromatic | msg bacek See r43876 for a workaround for a seggie from r43860. | ||
| purl | Message for bacek stored. | ||
| Coke | I ask because there are 3 samples there, with int/int, float/int, and int/float. | 19:29 | |
| NotFound | Whiteknight: relax, this is not a war ;) | ||
| Coke | (the answer is no.) | ||
| Whiteknight | Coke: I'm trying to compare with what you said above | ||
| Coke | Whiteknight: I immediately said I misspoke and gave a nopaste. =-) | 19:30 | |
| the nopaste shows running tcl code from feather. | |||
| Whiteknight | <Coke> Right now, the PMC on the left has some control over what happens there. if that's hidden in an op, how do we, for example, make that into integer division in partcl. | ||
| that implies that 1/3.0 is integer division | |||
| dukeleto | if you think dealing with NaNs is complicated, read ieee754-2008 (i have). It's *fucking* complicated, if you want the full IEEE spec. | 19:31 | |
| Coke | 19:17Cokeer, misspoke slightly. no paste coming: | ||
| 14:29 <@Coke> Whiteknight: I immediately said I misspoke and gave a nopaste. =-) | |||
| particle | dukeleto: almost nobody does the full spec, it's *awful* | ||
| Coke | please read the nopaste -in lieu- of my original send. | ||
| dukeleto | particle: yeah. but subsets of the spec are very nice | 19:32 | |
| particle: being able to attache a "payload" to a NaN is a great concept | |||
| particle | yes, we use it in perl 6 | ||
| heck, we're using it in parrot now, too | |||
| Whiteknight | ok | ||
| particle | with Exceptions | 19:33 | |
| dukeleto | particle: good to see you back in the channel. been busy? | ||
| particle | incredibly busy, i'm afraid | ||
| at least it's (mostly) paid work | |||
| Whiteknight | Coke: so in partcl, between an int and a float, the result is always a float regardless of the order? | ||
| particle | good luck with the intro to parrot tonight, looks like fun! | ||
| dukeleto | particle: gsoc 2010 is ramping up. do you want to be involved or should I look for another poor soul? | ||
| particle | dukeleto: i'd like to be involved again | 19:34 | |
| Whiteknight | Coke: and between two ints, the result is an int? | ||
| dukeleto | particle: there may be video recording from merlyn | ||
| particle | gsoc, pvmw, etc | ||
| Whiteknight | so the Op can determine the types of both PMCs and automatically promote int->float when one is a float | ||
| particle | excellent | ||
| dalek | rrot: r43876 | chromatic++ | trunk/src/main.c: [src] Added a guard to avoid segfaults when processing CLI arguments; an moved initialization of the initial context to after this point (reported by Michael Hind). |
||
| dukeleto | particle: shall I list you as backup org admin for TPF/Parrot when I do the paperwork? | ||
| particle | dukeleto: yes, please | ||
| Whiteknight | I don't know of a single HLL where such a strategy would not work for those two types | ||
| rrot: r43877 | chromatic++ | trunk (4 files): [src] Fixed interpeter -> interpreter typo. |
|||
| particle | dukeleto: did you get a note from ellen ko about mentor org payments? | ||
| dukeleto | particle: yes, and forwarded it to karen and kurt, which karen said was the correct person | 19:35 | |
| particle | fab | ||
| Coke | Whiteknight: github.com/partcl/partcl/blob/maste...nt.pmc#L37 is the current implemention in partcl (which I /think/ is pretty close to tcl's behavior.) | ||
| dukeleto | particle: i got reimbursed by TPF, but they might not make it in time to get reimbursed themselves | ||
| particle | however, this has to move quickly, and kurt isn't good at that | ||
| so maybe ping jim to let him know | |||
| dukeleto | particle: they even reimbursed me for last year, which was awesome | ||
| particle | nice! | ||
| Coke | and yes, int div int the result is an int; this is not the case in core parrot types. | 19:36 | |
| dukeleto | particle: so i should forward it to jim with a note? | ||
|
19:37
cotto_work joined
|
|||
| mikehh | chromatic: looks good | 19:37 | |
| particle | dukeleto: that'd be my suggestion, 'fyi, i sent this to kurt, it's for about $X, and there's a looming deadline, so watch out!' | ||
| mikehh | chromatic: make corevm/make coretest, make world/make test PASS (gcc with --optimize) running fulltest now | 19:38 | |
| particle is designing artwork for a 2010 parrot/rakudo workshop | 19:39 | ||
|
19:42
hercynium joined
|
|||
| dukeleto | particle: nice. are you down for helping organizing something parrot-like for Open Source Bridge? | 19:47 | |
|
19:47
iblechbot joined
|
|||
| Whiteknight | dukeleto: by the way, I made you contributor to parrot-data-structures and parrot-math-functions | 19:49 | |
| cotto_work | dukeleto, what's the expected cost for Open Source Bridge? | 19:50 | |
| dukeleto | Whiteknight: sweet! | ||
| cotto_work: very cheap, and free if you are a speaker/volunteer | 19:51 | ||
| cotto_work: let me see if they have prices for this year | |||
| particle | dukey: not sure i can make it to that conference, but i can probably help facilitate | ||
| cotto_work | Nice. I wish it weren't a 3 hour trip down to pdx so I could volunteer more easily. | ||
| dukeleto | cotto_work: from last year: Conference passes were $250, with early bird pricing of $175, $99 for students, and discounts offered for user group members | 19:53 | |
| particle: cool. i am organizing the 24(ish) hr "Hacker lounge" | |||
| cotto_work: you can take the nice train down, no? | |||
| particle: i notified jim of the situation | 19:54 | ||
| Whiteknight: what language do you plan on using for PDS and PMF? PIR? from your recent blog posts, it sounds like PIR is not your favorite | 19:55 | ||
| Whiteknight | dukeleto: I just provide the types. I don't pick who uses them | ||
| I would like them to be language agnostic | |||
| mikehh | All tests PASS (pre/post-config, make corevm/make coretest, smoke (#32143), fulltest) at r43877 - Ubuntu 9.10 amd64 (gcc with --optimize) | 19:57 | |
| TimToady_ | phone | 20:00 | |
| NotFound | I have parrot running on the Nokia N900 :) | ||
| Talking about phone... X-) | |||
| nopaste | "NotFound" at 213.96.228.50 pasted "Parrot in Maemo - Nokia N900" (14 lines) at nopaste.snit.ch/19543 | 20:17 | |
| Whiteknight | nice | 20:19 | |
|
20:19
payload joined
|
|||
| NotFound | The "built for i386-linux." makes it looks like a fake X-) | 20:20 | |
| Whiteknight | did you have to change anything to make it build? | ||
| and does it pass tests? | |||
| NotFound | I just built it in the scratchbox of the Maemo sdk, without changes. Installed it on /runparrot and scp -r that directory. | 20:21 | |
| Whiteknight | builds tests? | 20:22 | |
|
20:22
lucian joined
|
|||
| NotFound | In the scratchbox, yes. | 20:23 | |
| In the real machine, don't tested yet. | 20:24 | ||
|
20:29
ash_ joined
20:30
ashleyb joined
20:38
kurahaupo joined
|
|||
| kurahaupo | Good $localtime. | 20:38 | |
|
20:38
mikehh joined
|
|||
| kurahaupo | Quick question: how to invoke GC collection from PIR? (I have a test case that depends on GC timing) | 20:38 | |
|
20:39
ash__ joined
|
|||
| chromatic | mikehh, can you add Rakudo to your Parrot smoking? | 20:39 | |
| kurahaupo, sweep 1 | 20:40 | ||
| mikehh | chromatic: will do that | ||
| kurahaupo | chromatic: thanks | 20:41 | |
| chromatic++ | |||
|
20:42
theory joined
|
|||
| Coke | TimToady++ | 20:48 | |
| tewk | I start a runloop from c, the c stack changes due to an exception, how do I register new return args and restart the runloop? | 20:55 | |
|
20:57
kurahaupo joined
|
|||
| darbelo | tewk: Isn't that the inferior runloop problem? | 20:58 | |
| 'cause we don't have a solution to that one. | |||
| chromatic | I don't think that's true. | ||
| I'd have to see the code though. | 21:01 | ||
| Coke | anyone know why this complains : | 21:02 | |
| char * const fmt = "local__%s__%s__$"; | |||
| NotFound | Coke: you need one more const | ||
| Coke | NotFound: ok, where? =-) | 21:03 | |
| tewk | Its not an inferior runloop. | ||
| Austin | Point is constant, characters pointed to are not. | ||
| *PointER is constant | |||
| tewk | const char * const fmg = | ||
| PerlJam | Coke: in front | ||
| purl | rumour has it in front is ? lenzo davorg | ||
| NotFound | Coke: but is easy: const char fmt[] = "local__%s__%s__$"; | ||
| easier | 21:04 | ||
| Coke | NotFound: danke. | 21:05 | |
| tewk | chromatic, I created the runloop with Parrot_pcc_invoke_sub_from_c_args(interp, sub_pmc, "Pf->P", sub_arg, &ret_val); | 21:06 | |
| Coke | also, any idea what warning causes this: | ||
| warning: size of 'yy_nxt' is 14092 bytes | |||
| (gcc) | |||
| tewk | I basically want to update ->P to put the return in &different_ret_val now. | ||
| Coke | bah. larger-than. nevermind. | ||
| chromatic | tewk, I *think* you have to update the CallSignature, unless you call Parrot_pcc_invoke_sub_from_c_args() again. | 21:09 | |
| NotFound | Coke: I think is a deliberate warning pragma | 21:10 | |
| Coke | it's hitting in compiler/imcc/imclexer.c ; trying to find the right -W voodoo to silence it. | ||
| tewk | Coke it cound be a #warn in the code | 21:12 | |
| mikehh | rakudo - spectest_smolder #32146 PASS - Parrot r43877 - Ubuntu 9.10 amd64 (gcc --with optimize) | ||
| NotFound | Forgot to mention that the Maemo build pass all tests except t/pmc/threads.t | ||
| mikehh | rakudo does not build on g++ parrot builds | 21:13 | |
| Coke | is that because of g++ issues in rakudo's c? | ||
|
21:16
cognominal joined
|
|||
| ash_ | um.... huh? what version of g++? i am using g++ and i haven't had any problems building rakudo | 21:17 | |
| mikehh | for example - bind.c:449: warning: request for implicit conversion from āvoid *ā to āstruct PMC **ā not permitted in C++ | 21:21 | |
| ash_ | ah, i do get warnings, but it still builds fine for me, i get that warning every time i build | ||
| mikehh | g++ (Ubuntu 4.4.1-4ubuntu9) 4.4.1 | 21:22 | |
| the warning was from the gcc build | |||
| tewk | mikehh, g++ 4.4.1 probably reports it as an error | 21:23 | |
| add and explicit (struct PMC **) cast and it should build | |||
| mikehh | It did last time I tried to build | ||
|
21:24
kurahaupo joined,
plobsing joined
|
|||
| tewk | the gcc warning is telling you that if you build with g++ you will get an error | 21:24 | |
| mikehh | last time I tried that was not the only problem - I might try again later | ||
| tewk | nopaste the g++ build log and we can probably fix it pretty fast. | 21:25 | |
| ash_ | i am using apple's gcc (and g++) 4.2, i get a few warnings about implicit conversions, but it builds for me | 21:27 | |
| tewk | g++ 4.4.1 turns more warnings into errors I believe | ||
| ash_ | ah, that may be an issue then i imagine | 21:28 | |
| mikehh | my first attempts to build parrot on Ubuntu 9.10 beta failed with g++ 4.4.1 while it built with g++ 4.3.4 | 21:30 | |
| tewk | Why isn't the pc in interp or ctx, its part of the runloop state, it really should be. | 21:32 | |
| NotFound | And now, Winxed self-compiled in the N900 without C++ compiler. Just by opying the generated pir of stage1 from other machine and the sources for the stage 1 and the driver. | 21:34 | |
|
21:34
payload joined
|
|||
| NotFound | Bootstrap process fully tested now :) | 21:34 | |
| mikehh | NotFound++ | 21:35 | |
| nopaste | Someone at 155.99.196.247 pasted "Yeah, It works, I restarted the run core from a different C stack location. Earlier I had forgotten to | PARROT_ARG_PMC" (9 lines) at nopaste.snit.ch/19546 | ||
|
21:36
coke joined
|
|||
| NotFound | Of course, the pbc_to_exe step must be omitted because of the lack of C compiler. | 21:36 | |
| coke | scary. | ||
| tewk | I have parallel futures running on parrot, Now I just need to fix the gc to cooperate with threads. | ||
| Coke | seen tene? | 21:37 | |
| purl | tene was last seen on #parrot 5 hours, 33 minutes and 36 seconds ago, saying: Austin: pong | ||
| darbelo | Good luck. Have fun. | ||
| Tene | seen Coke? | 21:38 | |
| purl | Coke was last seen on #parrot 45 seconds ago, saying: seen tene? | ||
| tewk | darbelo, We have done it before for the PLT Scheme vm, its not impossible. :) | ||
| darbelo | tewk++ | 21:39 | |
| Austin | Hoo, boy. | 21:40 | |
| If you "register" a PMC class in the P6object system, you cannot subclass it because the protoobject will fall victim to the problem discussed in TT#1426 (6?) | 21:41 | ||
| Coke | Tene: your name came up recently in regards to one of the roadmap items that rakudo * will need. | 21:43 | |
| Tene | What is it? | 21:44 | |
| purl | it's it! | ||
|
21:45
lucian joined
|
|||
| Coke | Tene: I don't remember. :| | 21:46 | |
| seen chromatic? | |||
| purl | chromatic was last seen on #parrot 36 minutes and 52 seconds ago, saying: tewk, I *think* you have to update the CallSignature, unless you call Parrot_pcc_invoke_sub_from_c_args() again. | ||
| Tene | Oh. Well, let me know if you can figure it out. | ||
| Coke | it involved hll interop. and exceptions? | ||
| Tene | That would be for me, then. | 21:47 | |
| Was it on IRC? | |||
| Coke | nope. | ||
| chromatic | Subroutine leave semantics. | ||
| Coke | seen pmichaud? | ||
| purl | pmichaud was last seen on #parrot 9 days, 6 hours, 17 minutes and 54 seconds ago, saying: okay, excellent work. [Feb 1 15:29:13 2010] | ||
| Coke | chromatic: THANK You. | ||
| chromatic: en.wikipedia.org/wiki/Bloody_Code | 21:51 | ||
| (great release name) | |||
|
21:53
eternaleye joined
|
|||
| Coke | FYI: parrot.org host is doing some work tomororw at 4pm PST that should absolutely NOT break anything. =-) | 21:55 | |
| darbelo has heard that one before. | 21:56 | ||
| darbelo has *said* that one before too. | |||
| ash_ | my boss, during a server move, accidentally deleted ummm 41 sites, i think it was, by clicking to much in Plesk | 21:57 | |
| that was a fun 48 hours that followed | 21:58 | ||
| NotFound | notfound.posterous.com/winxed-in-a-mobile-phone | 21:59 | |
| Coke | NotFound++ | 22:04 | |
| GeJ | Good morning everyone. | 22:06 | |
| cotto_work | hi GeJ | 22:08 | |
| dukeleto | o hai | 22:12 | |
| cotto_work | hi jsut | 22:18 | |
| jsut | hi | 22:19 | |
| purl | niihau, jsut. | ||
|
22:25
cotto_work joined,
kid51 joined
|
|||
| chromatic | msg dukeleto Remind me I have an announcement from pdcawley for tonight's meeting. | 22:28 | |
| purl | Message for dukeleto stored. | ||
| dukeleto | chromatic: you have an announcement. i will try to remember | 22:37 | |
| pmichaud | 21:40 <Austin> If you "register" a PMC class in the P6object system, you cannot subclass it because the protoobject will fall victim to the problem discussed in TT#1426 (6?) | 22:39 | |
| I'm a little surprised by this, since the whole point of 'register' was to allow that to work. | 22:40 | ||
|
22:49
ash___ joined
22:53
cotto_work joined
|
|||
| cotto_work | pmichaud, do you have a minute for a pct question? | 22:55 | |
| nopaste.snit.ch/19522 | 22:57 | ||
| pmichaud | cotto_work: that's not a pct question, it's a parrot question :) | 22:58 | |
| cotto_work: the sub is being executed twice | |||
| Coke | :load :init | ||
| pick one. | |||
| pmichaud | no | ||
| the problem isn't that both are present | |||
| the problem is that the sub is also :main | 22:59 | ||
| cotto_work | Thanks. | ||
| Coke | crap. | ||
| pmichaud++ | |||
| cotto_work | pmichaud++ | ||
| Coke | I've even been bitten by that. | ||
| PerlJam | it's :main because it's the only one? | ||
| cotto_work | the first one | 23:00 | |
| purl | the first one is gone | ||
| pmichaud | PerlJam: because no other sub is marked :main, and it's first | ||
| PerlJam | er, yeah, the first one | ||
| cotto_work feels enlightened. | |||
| pmichaud | (the problem would still exist if there were other subs after this one :) | ||
| cotto_work | hopefully this enlightenment will persist when cotto_work becomes cotto | 23:01 | |
| Coke | note that s/:init/ also works. | ||
| (since then it's only run as the implicit :main) | |||
| darbelo | cotto_work: That statement denies your very cotto nature. | ||
| Coke does a search for cotto, sees a bunch of images, and is reminded to never pick a fight with cotto. | 23:02 | ||
|
23:04
hercynium joined
|
|||
| cotto_work | I'm a type of salami. I want to deny my nature. | 23:09 | |
| purl, cotto? | |||
| purl | cotto is Christoph Otto <mailto:christoph@mksig.org> or a cooked salami or The Decider | ||
|
23:17
eiro joined
23:19
ashleyb joined
|
|||
| tewk | Anyone successfully used SD to clone trac.parrot.org? | 23:30 | |
| kid51 | SD? | 23:33 | |
| purl | SD is cool...dunno about its' connectivity... or super-deformed or san diego. or at syncwith.us or simple defects, a distributed bug tracker | ||
| kid51 | tewk: First I've heard of it ... but other people may have more knowledge | 23:35 | |
| cotto_work | nice idea but I hadn't seen it before | 23:42 | |
| dukeleto | i have heard of sd, but never used it | 23:44 | |
| Austin | Pmichaud: What's the right way to register a pmc class, add methods to it, and then derive a subclass from it? | 23:45 | |
|
23:45
Whiteknight joined
|
|||
| Austin | Pmichaud: nevermind, you were surprised by that. | 23:48 | |
| Okay. Calling "register" creates a protoobject with an anonymous (name='') protoclass that extends P6protoobject. | 23:49 | ||
| (Calling "register" on a PMC type, that is.) | |||
| Then subclassing the newly-registered PMC type looks up the parrotclass of the PMCtype, which returns the protoclass. (This may be a bug.) That isn't a problem, yet, but then registering the newly-derived subclass causes a protoclass to be created, which has the PMC protoclass as a parent, and also has P6protoobject as a parent. And that's fatal. | 23:51 | ||
| Because the P6* stuff wants protoobject to override the PMCtype stuff: " ## P6protoobject methods override parrotclass methods..." | 23:52 | ||