|
Parrot 2.5.0 Released! | parrot.org | Log: irclog.perlgeek.de/parrot/today | Nopaste: nopaste.snit.ch:8001 | GSOC Students: trac.parrot.org/parrot/wiki/GSoCersStartHere | Priorities: merge gc_massacre, remove deprecated items, close tickets. Set by moderator on 15 June 2010. |
|||
| whiteknight | I'm not aware that C89 requires foo(void), but I might be wrong | 00:24 | |
| zibri | function(void) is a function taking 0 arguments. function() is a function, where nothing is said about number of arguments | 00:25 | |
| whiteknight | it may just be a thing with headerizer being obnoxious about how it parses | ||
| zibri: ah yes, that's what I'm trying to remember | |||
| K&R C: served it's purpose, now needs to go away | |||
| Chandon | This all makes me jealous of anyone who can say "supported compilers: GCC 4.0 or later". | 00:32 | |
| cotto_work | not us | ||
| that's who | |||
| purl | That's *WRONG!* | ||
| cotto_work | purl's wrong | 00:33 | |
| Chandon | So what happens to Parrot_floatval_time when FLOATVAL is smaller than 64 bit? | 00:38 | |
| According to the back of this envelope, reality explodes and/or timing is accurate to worse than one second. | 00:39 | ||
|
00:54
mikehh__ joined
|
|||
| nopaste | "GeJ" at 192.168.1.3 pasted "[PATCH] fix `make codetest` trailing spaces errors" (43 lines) at nopaste.snit.ch/21278 | 00:56 | |
| GeJ | A little patch from your friendly neighborhood code police. | 01:02 | |
|
01:05
chromatic joined
|
|||
| GeJ | hello chromatic | 01:08 | |
| chromatic | evening | 01:14 | |
| sorear | hello chromatic | 01:27 | |
| What became of the Perl 6 Minutes Blog? | |||
| We're starting to miss it in #perl6 :( | |||
| Coke | GeJ: thanks, applied | 01:30 | |
| chromatic | I fell behind. I can put up a few tonight and tomorrow. | 01:31 | |
| sorear | Thank you; I would like that. | 01:35 | |
| chromatic | Give me 10 minutes and I'll get the first one up. | ||
| Coke | chromatic: how's the book? (mp) | 01:36 | |
| chromatic | Editing the object chapter right now. | 01:38 | |
| It says "You *could* do this, but just use Moose already!" a lot. | |||
| Right now I'm writing a section on how SUPER:: is broken. | |||
| dalek | rrot: r47651 | coke++ | trunk/t/steps/gen/opengl-01.t: Remove trailing whitespace, courtesy Gej |
||
| sorear | just use Moose already. Heh. | 01:39 | |
| I think we have a conflict of interest somewhere... | 01:40 | ||
| chromatic | I can't document Perl 5 OO honestly without discussing where it's broken or at least dangerous. | ||
| sorear | Why are you documenting Perl 5 OO? | ||
| Oh | 01:41 | ||
| MP | |||
| Oops | |||
| Thought you were talking about the perl 6 book stupidly | |||
|
01:42
kid51 joined
|
|||
| chromatic | use.perl.org/~chromatic/journal/40400 May 12 P6 minutes | 01:47 | |
|
01:55
joshadam joined
|
|||
| Coke | msg mikehh - I todo'd all the failing tests in partcl, so any new failures should mean something. | 01:57 | |
| purl | Message for mikehh stored. | ||
| dalek | rtcl-nqp: 2dde0c2 | Coke++ | t/cmd_ (4 files): TODO all the newly failing tests. |
||
|
01:58
plobsing joined
|
|||
| GeJ | Coke: thanks | 02:09 | |
| sorear | chromatic++ | 02:10 | |
|
02:11
patspam joined,
joshadam left
|
|||
| plobsing | 'svn praise t/pmc/key.t' mumbles something about a binary file. what's going on? | 02:19 | |
| kid51 | plobsing: That's a legacy from errors in our conversion from CVS to Subversion in the long, distant past of 6 years ago. | 02:23 | |
| IIRC, 'svn praise --force' might work. | |||
| Yes, it will work. | 02:24 | ||
| plobsing | kid51++ # svn praise --no-i-really-mean-it | ||
| kid51 | That has snagged me several times. coke showed us that trick | 02:25 | |
|
02:41
janus joined
02:44
LoganLK joined
|
|||
| mikehh | opbots, names | 03:05 | |
|
03:41
JimmyZ joined
|
|||
| cotto | parrot.org seems to be down. Hopefully that means that the osuosl guys are setting up the dev site. | 03:45 | |
|
03:45
mikehh_ joined
|
|||
| mikehh | All tests PASS (pre/post-config, make corevm/make coretest, smoke (#34428), fulltest) at r47651 - Ubuntu 10.04 amd64 (gcc) | 03:48 | |
| opbots, names | |||
| cotto | and it's back | 03:50 | |
| tractest.parrot.org isn't living up to its name | 03:53 | ||
| mikehh | Coke: ping | 03:57 | |
| plobsing | cover? | 04:01 | |
| purl | cover is tapir2.ro.vutbr.cz/cover/cover-results/ | ||
| plobsing | coverage? | ||
| purl | i guess coverage is cv.perl6.cz | ||
| plobsing | consistency? | 04:02 | |
| purl | consistency is a problem. or highly overrated or the hobgoblin of small minds or (see FOOLISH consistency) | ||
| cotto | foolish consistency? | 04:03 | |
| purl | i think foolish consistency is the hobgoblin of little minds adored by little statesmen and philosophers and divines. With consistency a great soul has simply nothing to do. (Emerson) | ||
| cotto | wise consistency? | 04:05 | |
| plobsing | given purl's take on consistency in general, did you really expect that one to exist? | 04:09 | |
| cotto | no | 04:10 | |
| It's a trip seeing a movie from 1924 on Netflix and realizing that most of the people who worked on the movie couldn't have imagined the watching a streaming version of it on xbox. | 04:15 | ||
| plobsing | I had the same sensation when I heard of project gutenberg | 04:21 | |
| cotto | interesting times, these | 04:23 | |
| cotto is curious how lilypond can have a 142 MB docs package | 04:40 | ||
| chromatic | XML with music notation. | 04:50 | |
| plobsing | woah. subs can be overloaded with classes previously in the same compilation unit and things might actually work out. | 05:04 | |
| s/previously/previously defined/ | 05:05 | ||
|
05:11
snarkyboojum joined
|
|||
| dalek | rrot: r47652 | tcurtis++ | branches/gsoc_past_optimization/docs/pct/pattern/past_pattern_node.pod: Added docs for PAST::Pattern::Node subclasses. |
06:02 | |
| rrot: r47653 | khairul++ | branches/gsoc_instrument/src/dynpmc/instrument.pmc: use opsenum instead of raw op numbers |
06:18 | ||
| rrot: r47654 | plobsing++ | branches/dynop_mapping/compilers/imcc (3 files): store active HLL for subs in stead of rellying on interp to carry it around for us |
|||
|
06:18
uniejo joined
|
|||
| bacek_at_work | plobsing, I think "in stead" spelt "instead". | 06:28 | |
| plobsing | I thought stead was a full fledged word. eg: "to do something in someone's stead" | 06:32 | |
| cotto | sure. It's just not as commonly used in modern English. | 06:48 | |
|
06:51
uniejo joined
|
|||
| Tene is reminded of hyperboleandahalf.blogspot.com/2010...thing.html | 06:51 | ||
| cotto | I love you, alot. | 06:53 | |
| plobsing | funny thing is I often read that as allot and get really confused. | 06:59 | |
|
07:09
mj41_ joined
07:10
fperrad joined
|
|||
| cotto | PIRATE? | 07:15 | |
| purl | PIRATE is a career that is washed up these days...and raping and pillaging just doesn't have a good reputation these days.... or www.eff.org/IP/DRM/piratead/CEA_ad.png or www.wired.com/politics/security/mag...li_pirates or PIR parser (and compiler) implemented in NQP github.com/bacek/pir | ||
| cotto | pirate? | ||
| purl | pirate is a career that is washed up these days...and raping and pillaging just doesn't have a good reputation these days.... or www.eff.org/IP/DRM/piratead/CEA_ad.png or www.wired.com/politics/security/mag...li_pirates or PIR parser (and compiler) implemented in NQP github.com/bacek/pir | ||
| cotto | PiRaTe? | ||
| purl | i guess PiRaTe is a career that is washed up these days...and raping and pillaging just doesn't have a good reputation these days.... or www.eff.org/IP/DRM/piratead/CEA_ad.png or www.wired.com/politics/security/mag...li_pirates or PIR parser (and compiler) implemented in NQP github.com/bacek/pir | ||
| plobsing | case sensitivity? | 07:16 | |
| purl | case sensitivity is a pain where you've got NT, MacOS, and unix | ||
|
07:17
fperrad_ joined
07:19
FullMetalHarlot joined
08:35
lucian joined
09:15
kjeldahl joined
09:41
gbacon joined
|
|||
| bacek | aloha, humans | 10:08 | |
| Tene | No humans; just us bots. | 10:09 | |
| bacek | that's good | 10:17 | |
| world domination is just around the corner | |||
| moritz peeks around the corner | 10:21 | ||
| Tene | Aw man, corner-bot gets all the best jobs. | 10:26 | |
|
11:36
TiMBuS joined
11:39
whiteknight joined
11:42
Coke joined
|
|||
| whiteknight | good morning, #parrot | 11:58 | |
|
12:03
bluescreen joined
12:42
lucian joined
12:44
clinton joined
12:47
tetragon joined
12:53
jan joined
12:54
ambs joined
13:18
atrodo joined
13:20
JimmyZ joined
13:23
JimmyZ joined,
jsut_ joined
13:33
gbacon joined
13:47
ambs_ joined
|
|||
| dalek | tracwiki: v12 | coke++ | TracSpammers | 14:00 | |
| tracwiki: trac.parrot.org/parrot/wiki/TracSpa...ction=diff | |||
|
14:13
plobsing joined
14:20
kjeldahl joined
14:25
ash_ joined
14:29
bubaflub joined
|
|||
| nopaste | "bacek" at 192.168.1.3 pasted "Welcome to the future! (Well, almost...)" (23 lines) at nopaste.snit.ch/21301 | 14:37 | |
| ambs | heh... that's my IP | 14:39 | |
| dalek | r: 08bf4eb | bacek++ | (4 files): Start generating POST tree instead of PAST |
14:42 | |
| r: 75ddac8 | bacek++ | (2 files): Add POST::Register |
|||
| r: e7c65a1 | bacek++ | (3 files): Add POST::Constant |
|||
| r: e2b2e3f | bacek++ | pir.pir: Load POST in parrot HLL |
|||
| r: 089c74f | bacek++ | src/POST/Constant.pm: Use multi methods for accessors |
|||
| r: e4cb28e | bacek++ | src/PIR/Actions.pm: Emit POST::Constant for strings |
|||
| r: 71e2846 | bacek++ | (3 files): Augment POST::Compiler. |
|||
| r: 06c6563 | bacek++ | src/POST/Compiler.pm: Prototype emitting of PBC from POST. |
|||
| r: 220cd2a | bacek++ | pir.pir: Add bunch of helper functions. |
|||
| r: f08688e | bacek++ | src/PIR/Compiler.pm: Invoke POST::Compiler to generate PBC file. |
|||
| r: e4877df | bacek++ | src/PIR/Actions.pm: Quick hack to remember main sub name. |
|||
|
14:59
ambs_ joined
|
|||
| whiteknight | bacek++ Nice! | 15:08 | |
|
15:12
ash_ joined
15:13
wizard joined
|
|||
| wizard | hi all | 15:13 | |
| JimmyZ | Hello wizard | 15:14 | |
| wizard | I have a quick question about pir I hope somebody can help me with it | ||
| I create new instance with new 'Test' and I think parrot call init method for this class but how can I send parameters to this constructor? | 15:15 | ||
| bubaflub | wizard: can you nopaste the code you currently have? | 15:19 | |
| wizard | my code is pretty messed up :) | 15:21 | |
|
15:21
ambs joined
|
|||
| wizard | but I already googled that I can pass only 1 argument to constructor as second parameter to new command | 15:21 | |
| will try this | |||
| bubaflub | wizard: take a look at t/compilers/imcc/syn/objects.t the test_initializer test | 15:22 | |
| around line 132 for an example | |||
| NotFound | wizard: if you pass an argument init_pmc is called instead of init | ||
| bubaflub | hmmmm | ||
| never mind about my previous advice, that test doesn't have what you are looking for wizard | |||
|
15:23
ambs_ joined
|
|||
| particle | wizard: you can, for example, create a ResizablePMCArray pmc, stuff your arguments in there, then send that to init | 15:24 | |
| (pseudocode) .local pmc args ; args = new ResizablePMCArray ; args[0] = 'arg1' ; args[1] = 2 ; $P0 = new Test, args | 15:26 | ||
| wizard | thx for info about init_pmc | ||
| btw doc about classes is not enough to start doing something on parrot | |||
| ash_ | svn.parrot.org/parrot/trunk/t/oo/objects.t has an example of what your trying to do i think | 15:27 | |
| "$P0 = new 'classname', params" should work | 15:28 | ||
| bubaflub | wizard: i'd recommend reading through Parrot Babysteps at coolnamehere.com/geekery/parrot/learn/ | 15:29 | |
| ash_ | its the "init_with_and_without_arg" function that has an example of what your trying to do, i believe | ||
| in the objects.t file | |||
| whiteknight | wizard: yes, the docs are bad. What docs are you looking at, and what information do you wish they contained? | ||
| wizard | ash_: tnx | 15:30 | |
| ash_ | whiteknight: none of the PIR Book examples have an example of this, so you know | ||
| whiteknight | ash_: example of what, overloading init or init_pmc? | 15:31 | |
| ash_ | constructing objects is a pretty common thing, maybe we should add an example to chapter 7 of the PIR Book | ||
| whiteknight | okay. We can definitely do that | ||
| ash_ | both? I'd say init, a lot of people want to pass parameters to objects they are constructing at times | ||
| whiteknight | yeah | ||
| let me start drafting something right now | 15:32 | ||
|
15:32
shockwave joined
|
|||
| shockwave | paste | 15:32 | |
| purl paste | |||
| purl | paste is (see: nopaste) or like glue but a little safer to sniff. or nopaste.snit.ch:8001/ or scsys.co.uk:8001/ anywhere shadowpaste is or mmm, sticky paste or You there! Eating the paste. or <see> 2 girls, 1 paste or App::Nopaste or toxic for bots and humans | ||
|
15:33
integral joined
|
|||
| nopaste | "shockwave" at 192.168.1.3 pasted "IMCC error?" (4 lines) at nopaste.snit.ch/21303 | 15:33 | |
| ash_ | whiteknight: moritz++ has a great example of perl6's object creation perlgeek.de/blog-en/perl-6/object-c...ation.html would something like that be useful for parrot? I think it might be useful because it could help explain inheritance too, although I am not sure if parrot's object creation system is as complicated as perl6's | 15:34 | |
| shockwave | I think IMCC is treading all numbers unsigned. | ||
| NotFound | shockwave: 2 - -44 ? | ||
| shockwave | Yeah. Maybe it is I who don't know math. Let me think about that for a minute. | 15:35 | |
| ash_ | shockwave: its okay, i am convinced i don't know english, i am just good at pretending i do | 15:36 | |
| shockwave | NotFound, yeah, I suck. I even drew a number-line before, but I still got it wrong. Yes. It should be 46 | ||
| That makes me feel better. | |||
| Thanks | |||
| wizard | I completely break something in my script :) | 15:38 | |
| shockwave | ash_, I see you're right :). You forgot the period at the end of your sentence. You suck, too! | ||
| wizard | it looks like new Test, <some hash> trying to set hash keys into object attributes | 15:39 | |
| dalek | rrot: r47655 | NotFound++ | trunk/include/parrot (2 files): [cage] drop trailing commas in enums |
||
| wizard | instead of just pass in to constructor | ||
| ash_ | whiteknight: if you want any help with an example for the PIR book let me know, i can try to come up with something | 15:40 | |
| NotFound | wizard: yes, args are passed to class initialization before calling init_pmc. That makes difficult to use it in pir classes | ||
|
15:43
theory joined,
shockwave left
|
|||
| whiteknight | ash_: I'll commit a draft here in a minute, you can let me know how it is, and make any changes you want | 15:43 | |
|
15:45
PacoLinux joined
|
|||
| ash_ | do parrot object's call parent constructors during object creation? | 15:47 | |
| whiteknight | ash_: r47656. It's not much, but it is a start | 15:48 | |
| (so much of this book needs so much attention) | |||
| wizard | is I understand right that I can't override new method of class ? | 15:51 | |
| ash_ | whiteknight: do parrot objects call parent constructors? or is there an equivalent of perl 6's BUILD | ||
| wizard: you can | |||
| wizard | but it doesn't execute | 15:52 | |
| for me | |||
| whiteknight | ash_: no, doesn't call the parent constructors as far as I understand | ||
| I need to double-check the code, but I don't think so | |||
| ash_ | wizard: how did you declare the method? | 15:53 | |
| wizard | .sub 'new' :method | ||
| ash_ | .sub 'init' :vtable :method | ||
| is the method called when you do "$P0 = new 'Foo'" | 15:54 | ||
| if you have parameters you need to do: | |||
| .sub 'init_pmc' :vtable :method followed by your params (the .param pmc args stuff) | |||
| dalek | rrot: r47656 | whiteknight++ | trunk/docs/book/pir/ch07_objects.pod: [book] Add an example of using init and init_pmc vtables to override default behavior. |
15:55 | |
| wizard | I'm testing instantiating classes with <class>.'new'() | ||
| wizard | init_pmc will not work for me cause it set attributes from hash which I pass there | ||
| <class>.'new'() seems like creating new instance but it call init instead of new | 15:56 | ||
| so I guess overloading new method is not working :) | |||
| moritz | unless your class is based on p6meta | 15:57 | |
| ash_ | did you do .namespace ['Classname'] somewhere before defining the method? | ||
| wizard | sure | ||
| what is p6meta? | |||
| moritz | the meta class that nqp-rx and PCT use | ||
| NotFound | init_pmc is almost unusable in pure pir classes, because instantiate in class is used before, and it only allows a hash with attribute values. | 16:01 | |
| wizard | not only Hash I guess but any object with get_pmc_keyed_str and maybe with something else | 16:06 | |
| so probably we can create object which looks like empty hash but which can hold some data for init_pmc :) | 16:07 | ||
| NotFound | wizard: not a bad idea. | 16:08 | |
| wizard | ok I did it :) | 16:30 | |
| pastebin.com/qyfnGyBU | |||
| I just subclass ResizablePMCArray and return 0 in get_iter so it looks like empty Hash but I still can get data from it with indexes in init_pmc | 16:31 | ||
| dukeleto | 'ello | 16:32 | |
| NotFound | wizard: nice trick | 16:38 | |
| whiteknight | that is a clever trick, but definitely not the kind of solution we want to rely on | ||
| NotFound | No, but I like to see creative ideas. | 16:39 | |
| whiteknight | maybe the class.instantiate vtable's hash should have a "payload" argument which is passed to init_pmc | ||
| ash_ | is this the reason p6meta was made? Just curious | 16:48 | |
| whiteknight | ash_: I'm sure it's part of the reason | ||
| NotFound | Maybe the reverse also plays: as long as rakudo has its own way to constructors, there was little pressure to create a pure pir way. | 16:50 | |
| whiteknight | this is true. But it's probably still worth a ticket | ||
| ash_ | if its flexible enough to let you make custom metaclasses then its obviously doing something right | 16:52 | |
| NotFound | ash_: I suppose is perfectly right, but I'd like to have a simple way to use constructor without metclasses, metaobjects, prototypes, whatever. | 16:57 | |
| ash_ | ya, i completely understand, it would be nice to be able to do that with pir's base stuff | 16:58 | |
| dalek | rrot: r47657 | coke++ | branches/html_cleanup: work on fixing bugs and refactoring 'make html' |
17:02 | |
| whiteknight | fperrad: ping | ||
|
17:03
gbacon joined
|
|||
| whiteknight | purl msg fperrad does the lwp library support HTTP auth? | 17:03 | |
| purl | Message for fperrad stored. | ||
| fperrad | pong whiteknight | 17:04 | |
| whiteknight | fperrad: I just sent you an msg. Does the lwp library you wrote support HTTP auth? | 17:05 | |
| fperrad | with an HTTP proxy ? | 17:06 | |
| whiteknight | I don't know. I don't think I need a proxy | 17:08 | |
| I'm thinking about writing a PIR wrapper library for the github API. They say to use HTTP auth: develop.github.com/p/general.html | |||
| ash_ | anyone here know how to intall gcc4.5 on ubuntu? | 17:11 | |
| (besides building it from scratch, i am trying to avoid that) | 17:12 | ||
| fperrad | whiteknight, that looks like HTTP header, | 17:13 | |
| I'll do some tests | |||
| whiteknight | fperrad: thanks! | ||
| dalek | rrot: r47658 | coke++ | branches/html_cleanup (4 files): Remove unused "--delete" option to tools/docs/write_docs.pl, we have 'make html-clean' - also, don't refer to the script in the docs, just the make target. |
17:18 | |
| nopaste | "fperrad" at 192.168.1.3 pasted "whiteknight, it's OK" (18 lines) at nopaste.snit.ch/21306 | 17:22 | |
| whiteknight | fperrad++ # Thanks! | 17:23 | |
| ash_ | is there a way to see where an exception was thrown from? | 17:25 | |
| if its thrown from c? | 17:26 | ||
| NotFound | ash_: no | 17:34 | |
| dalek | rrot: r47659 | coke++ | branches/html_cleanup/lib/Parrot/Docs/HTMLPage.pm: Update copyright notice in generated HTML docs. |
17:35 | |
| whiteknight | NotFound: that might be something we could add. If We changed Parrot_ex_throw_from_c_args into a macro that passes __FILE__ and __LINE__ to a helper function, that should be ok | 17:37 | |
| NotFound | whiteknight: I find easier to insert an abort in the handling code and look at the core dump. | 17:38 | |
| ash_ | NotFound: how do you make a core dump? | 17:39 | |
| NotFound | ash_: abort do it | ||
| ash_ | just the abort opcode? | 17:40 | |
| NotFound | ash_: no, in the parrot C code that handles exceptions. | ||
|
17:43
theory joined
|
|||
| NotFound | We used to have the hcf dynop to do that, but it caused more problems than it solved. | 17:44 | |
| particle | we ran out of fire extinguishers | 17:45 | |
| atrodo | hcf++ # The world needs more of this opcode | 17:47 | |
| whiteknight | no! the world needs less! | 17:48 | |
| segfaulting should never happen, even on request | |||
| cotto_work | It's got plenty already. | ||
| but you can start an hcf-dynop project on github if you really want to | 17:49 | ||
| atrodo | I disagree. The world would be far more entertaining with hcf. Only thing would be better is if all of C was replaced with bf | ||
| ash_ | no, whitespace then no normal humans can read it at all | 17:50 | |
| atrodo | Okay, I'll put whitespace #3 on my list | ||
| NotFound | I have a plan to implement an ABSTAIN opcode based on Intercal. | ||
| ash_ | {space} {space} {tab} {newline} .... </end sarcasm> | ||
| dalek | rrot: r47660 | NotFound++ | trunk/t/pmc/stringiterator.t: more StringIterator tests |
17:51 | |
| rrot: r47661 | khairul++ | branches/gsoc_instrument (3 files): Handle exit opcodes and unhandled exceptions so that instruments can be finalized. |
|||
| ash_ | so, whats the best way to track down an assertion error? | 17:52 | |
| i am not what i would call an expert with valgrind but i guess now's a good time to learn | |||
| darbelo | NotFound: PLEASE ABSTAIN :) | ||
| NotFound | darbelo: PLEASE is the next plan. Will be a great day when we have a "Programmer is not polite" error. | 17:53 | |
| ash_: for me, ulimit -c unlimited ; whatever that fails ; gdb ./parrot core | 18:01 | ||
| atrodo | Can anyone tell me what I'm doing wrong with this code segment? gist.github.com/441044 | 18:03 | |
|
18:07
Chandon joined
|
|||
| NotFound | atrodo: probably a gc problem. You should register your local objects or setup a stack mark | 18:10 | |
| atrodo | NotFound> Documentation on doing that? | ||
|
18:11
bluescreen joined
|
|||
| cotto_work | Parrot_pmc_gc_register | 18:11 | |
| NotFound | atrodo: Parrot_init_stacktop in src/embed.c | ||
| And what cotto_work said | 18:12 | ||
| whiteknight | I would do Parrot_pmc_gc_register. Relying on stackwalking is ugly | ||
| it *should* work, but it is ugly | 18:13 | ||
| NotFound | However parrot do it all the time | ||
|
18:13
wagle joined
|
|||
| whiteknight | right, and Parrot has some very ugly parts | 18:14 | |
| cotto_work | Just because Parrot does it doesn't mean it's a good idea. | 18:15 | |
| the opposite is almost true ;) | |||
| NotFound | I agree in theory. But entering functions that don't use the PARROT_CALLIN_START from the embedder code without setting the stacktop risk GC problems at any step. | 18:17 | |
| whiteknight | NotFound: so maybe more functions need PARROT_CALLIN_START | ||
|
18:17
Andy joined
|
|||
| NotFound | whiteknight: I used to believe that, but parrot is a moving target and its extend/embed interface even more. | 18:18 | |
| whiteknight | NotFound: the embed/extend interface has also never had a whole lot of pressure in the past | 18:19 | |
| we have seem to have several projects working on it, so it's time for us to clean it up | |||
| NotFound | whiteknight: and will never do, as long as people ignore it and use whatever internals they want. | ||
| whiteknight | NotFound: not true. Eventually we're going to cut a lot of stuff out, and not export functions from our shared lib | 18:21 | |
| NotFound | whiteknight: eventually is a big word. | 18:22 | |
| cotto_work | Eventually sounds a lot like "in a few minutes". | ||
| NotFound | FSV of few | 18:23 | |
| whiteknight | JUST GIVE ME A FEW MINUTES DAMNIT | ||
| yeah, I guess "eventually" does make it sound a little more imminent | 18:24 | ||
| cotto_work | If nothing else, "eventually" translates accurately to "when it annoys someone enough to do something about it". | 18:25 | |
| NotFound | PLEASE ABSTAIN OF ANNOYING | 18:27 | |
| cotto_work | OK THANKS FOR ASKING NICELY | ||
| NotFound | Intercal solves anything | ||
| whiteknight | ...except for all those problems with intercal | 18:29 | |
| NotFound | Talking about annoying... I just discovered that NCI stopped mapping null STRING to C NULL. | 18:30 | |
| I agree that NCI was not perfect, but at least it worked sometimes. | 18:31 | ||
| atrodo | Just since I missed it, depending on people embedding parrot to use PARROT_CALLIN_START is not a good idea. That means they must use C or hack the macro to work in their language | 18:33 | |
| NotFound | atrodo: people embedding parrot use it automatically, as long as all functions in the extend/embed interface use it, as it look it was the plan at some point in the past. | 18:34 | |
| atrodo | Yep, Parrot_register_pmc solved my issue. Parrot_gc_register_pmc isn't apart of the embed/extend interface | 18:36 | |
| NotFound++ cotto_work++ # Thanks, all is happy | 18:40 | ||
| So, I'm curious how the stack walker works, or where I can read up on how it works | |||
| Does it actually walk the stack, or is it depended on PARROT_CALLING_START? | 18:41 | ||
| NotFound | atrodo: last time I looked it just looks for parrot objects between the current stack stop when the gc is called and the assigned stack init. PARROT_CALLING_START just sets that stack init if isn't already set. | 18:43 | |
| atrodo | Okay, makes sense | 18:44 | |
| ash_ | CONST_STRING_GEN is there an alternative to that? | 18:49 | |
| NotFound | ash_: CONST_STRING_GEN is an implementation detail of CONST_STRING, not intended for direct usage. | 18:50 | |
|
18:51
Coke joined
|
|||
| ash_ | just trying to figure out an error | 18:52 | |
| Parrot_UnManagedStruct_get_isa uses it (its generated code from a pmc) | 18:53 | ||
| NotFound | ash_: if you have a problem with that, most probably is an interpreter initialization problem. | 18:54 | |
| ash_ | its happening during the initialization | 18:55 | |
|
19:11
hercynium joined
|
|||
| ash_ | ugh, i haven't made any progress on this stupid bug since monday, i think i am going to take a break from it | 19:18 | |
| whiteknight | ash_: What bug? | 19:39 | |
| purl | bug is me being lazy | ||
| whiteknight | purl forget bug | ||
| purl | whiteknight: I forgot bug | ||
| whiteknight | purl bug is bug? BUG? There are no bugs, the software is PERFECT! | 19:40 | |
| purl | OK, whiteknight. | ||
| whiteknight | bug | ||
| bug? | |||
| purl | i heard bug was bug? BUG? There are no bugs, the software is PERFECT! | ||
| whiteknight | purl forget bug | ||
| purl | whiteknight: I forgot bug | ||
| whiteknight | purl bug is <reply>bug? BUG? There are no bugs, the software is PERFECT! | ||
| purl | OK, whiteknight. | ||
| whiteknight | bug | ||
| bug? | |||
| purl | bug? BUG? There are no bugs, the software is PERFECT! | ||
| whiteknight | better | 19:41 | |
|
19:42
patspam joined
|
|||
| ash_ | well, it started i found that in interp_misc.c it was making NCI objects but not setting a signature, which is a problem, since I need a signature to figure out the libffi calls to make | 19:42 | |
| so i added one there, but now i get hash errors | |||
| NotFound | ash_: probably the problem is that creating a signature from some method builds a unmanagedstruct, and does it before unmanagedstruct is intialized. | 19:45 | |
| Maybe we should add one more pass to pmc initialization. | 19:46 | ||
| cotto_work | I was toying with the idea of going to single-pass PMC initialization. | 19:47 | |
| NotFound | cotto_work: I want a pony | 19:48 | |
| ash_ | what if i went on ahead and made it so register_raw_nci_method_in_ns doesn't use an NCI object? | ||
| NotFound | A blue unicorn will be nice, also. | ||
| cotto_work | Single-pass PMC initialization should be workable as long as a couple core PMCs get hard-coded to be initialized first. | ||
| After that, the rest can be initialized in a single pass *and* and be initialized lazily. | 19:49 | ||
| particle | bug? | ||
| purl | bug? BUG? There are no bugs, the software is PREFECT! | ||
| particle | that's better :) | 19:50 | |
| NotFound | I heard some time ago: "There are no bugs, just recurrent incidences" | ||
| ash_ | is there a reason to use NCI objects internally for calling pmc METHODs? | 19:52 | |
| NotFound | ash_: pmc METHODS are native code, so that way has some logic. | 19:54 | |
| ash_ | True, but for internal use it seems like there might be a way of doing it with out having to rely on the NCI pmc, but maybe the current way is the right way of doing it | 19:56 | |
| i think i am just frustrated | |||
| NotFound | ash_: relax, that happens to anyone that works on that parts of parrot. | 19:57 | |
| cotto_work | I remember hearing an explanation from allison that made sense at the time. I have no idea what it was though. | ||
| whiteknight | ash_: First step is to take a look at the generated C code of PMC methods, to make sure that they all have the same signature | 19:58 | |
| ash_ | they do | ||
| void Parrot_pmcname_nci_methodname(INTERP, PMC* self); | |||
| or vJP | |||
| NotFound | ash_: you can insert an abort at the start of the ofending function a look at the calling stack. | 20:00 | |
| TimToady | phone | ||
| NotFound | ash_: just modify the generated .c without touching the .pmc and compile. | ||
| whiteknight | ash_: Are your changes that cause this bug checked in? I could fire up GDB tonight and see what I can find | 20:01 | |
| NotFound | The problem may come from Parrot_mmd_add_multi_list_from_c_args, not just from register_raw_nci_method_in_ns | 20:02 | |
| ash_ | github.com/ashgti/parrot are in there | ||
| whiteknight | ash_: Okay. I'm going home now but I will try to look at it tonight | 20:03 | |
| ash_ | NotFound: gist.github.com/441181 is the stack frame when it dies | ||
|
20:04
Psyche^ joined
|
|||
| mikehh nees to re-boot - bbl | 20:13 | ||
|
20:19
sorear joined
20:21
jrtayloriv joined
20:22
theory joined
20:23
mikehh joined
|
|||
| ash_ | so, i just noticed something | 20:27 | |
| its failing during the initialization phase but only on PMC's that inhert from something | |||
| anything that is a pmc extends | 20:28 | ||
| NotFound | Yes, those that don't inherit just leave the isa hash null. | 20:29 | |
| ash_ | so is it an order thing? | 20:30 | |
| NotFound | Don't know, looks strange. The CONST_STRING should have been corrupted somewhere. | 20:31 | |
| ash_ | CONST_STRING_GEN is returning a NULL pointer | 20:46 | |
| 0x0 | |||
| NotFound | That should never happen | 20:55 | |
| ash_ | i modified one of the generated Parrot_pmcname_get_isa() to print the pointer of the string its making and i get 0x0 | 20:57 | |
|
20:58
sorear joined
|
|||
| cotto_work | Are you using CONST_STRING_GEN outside of Parrot internals? It definitely shouldn't be returning NULL | 20:58 | |
| ash_ | i am not using it manually | 20:59 | |
| it was generated by pmc2c | |||
|
20:59
whiteknight joined,
ambs joined
|
|||
| sorear | Why does slavorg still trust me | 21:00 | |
| I came in from an entirely different hostmask | |||
| whiteknight | sorear: you just have a trustworthy look | 21:01 | |
| cotto_work | It's name-based. | ||
| We're just that secure. | |||
| ash_ | so... i just went in and replaced CONST_STRING_GEN with Parrot_str_new_constant in a few of the generated .c files that were from pmc's and now its not dying were it was before | 21:04 | |
| when does the interp->const_cstring_table get filled in? | 21:10 | ||
| wow, thats weird, i just realized how const_cstring_table works | 21:13 | ||
| so, there are parts of the table that are lazily initialized | 21:14 | ||
| dalek | kudo: c9ee2eb | pmichaud++ | docs/release_guide.pod: June release is now "Kiev", July release is "Atlanta". |
21:17 | |
| ash_ | whiteknight: if you have any luck with things let me know | 21:24 | |
| you'll need the libffi headers | |||
| or pkg-config | |||
| (with libffi headers) | |||
| brb gotta drop my girlfriend off at school | 21:25 | ||
|
22:07
wizard_ joined
|
|||
| mikehh | whiteknight: ping | 22:13 | |
|
22:24
tcurtis joined
22:25
lucian_ joined
22:28
ewilhelm joined
|
|||
| dalek | rrot: r47662 | NotFound++ | trunk/t/pmc/sockaddr.t: test Sockaddr clone |
22:31 | |
| nopaste | "mikehh" at 192.168.1.3 pasted "t/examples/pod.t failure introduced in r47856" (13 lines) at nopaste.snit.ch/21315 | 22:35 | |
| mikehh | t/examples/pod.t - Failed test: 393 - see nopaste.snit.ch/21315 | 22:40 | |
| all other tests PASS (pre/post-config, make corevm/make coretest, smoke (#34440), fulltest) at r47661 - Ubuntu 10.04 i386 (g++) | |||
| t/op/exit.t - TODO passed: 6 in testf | |||
| dalek | rrot: r47663 | NotFound++ | trunk/t/pmc/schedulermessage.t: cover mark in SchedulerMessage tests |
22:47 | |
| mikehh | dammit that nopaste should be r47656 | 22:51 | |
| nopaste | "mikehh" at 192.168.1.3 pasted "t/examples/pod.t failure introduced in r47656 - correction to nopaste.snit.ch/21315" (13 lines) at nopaste.snit.ch/21316 | 22:53 | |
| dalek | rrot: r47664 | tcurtis++ | branches/gsoc_past_optimization/docs/pct/pattern/past_pattern_closure.pod: Add docs for PAST::Pattern::Closure. |
23:04 | |
| rrot: r47665 | tcurtis++ | branches/gsoc_past_optimization/docs/pct/pattern/past_pattern_constant.pod: Added docs for PAST::Pattern::Constant. |
|||
|
23:09
Chandon joined
23:19
tetragon joined
|
|||
| dalek | rrot: r47666 | mikehh++ | trunk/t/pmc/sockaddr.t: fix copyright statement |
23:20 | |
|
23:21
janus joined
23:23
contingencyplan joined
|
|||
| tcurtis | moritz: ping | 23:46 | |
|
23:47
lucian joined
|
|||
| mikehh | rakudo (c9ee2eb) builds on parrot r47666 - make test PASS, spectest_smolder -> #34441 (pugs r31302) FAIL - Ubuntu 10.04 i386 (g++ with --optimize) | 23:54 | |