Camelia, the Perl 6 bug

IRC log for #parrot, 2010-06-02

Parrot | source cross referenced

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

All times shown according to UTC.

Time Nick Message
00:15 kurahaupo joined #parrot
00:15 whiteknight I can't really trace through this code without more info. There are three interpreters: INTERP, attrs->supervised, and attrs->supervisor
00:15 whiteknight without knowing which is which, I can't really figure all this out
00:16 cotto_work supervisor is the same as INTERP
00:16 cotto_work I mentioned that a couple weeks ago.
00:18 cotto_work supervised iirc is what runs the instrumentation
00:20 cotto_work I need to dig into that.
00:35 tetragon joined #parrot
00:36 whiteknight purl msg tcurtis I'm interested in your project. you can contact me for feedback (sorry I didn't respond to your email)
00:36 purl Message for tcurtis stored.
00:37 tcurtis purl, messages erase
00:37 purl tcurtis: what?
00:37 cotto_work needs to be in privmsg
00:37 tcurtis noted, whiteknight.
00:39 dalek tracwiki: v23 | cotto++ | CottoTasklist
00:39 dalek tracwiki: add gsoc stuff for khairul's project
00:39 dalek tracwiki: http://trac.parrot.org/parrot/wiki/Cot​toTasklist?version=23&action=diff
00:39 whiteknight purl msg bacek let me know if you need help with gc_massacre. I'm glad to lend my feeble human meat-paws to the effort
00:39 purl Message for bacek stored.
00:42 cotto_work current work is going on in the no_constants branch of the branch iirc
00:42 bacek_at_work whiteknight, yes, getting rid of awful "constant" pmcs will help
00:43 cotto_work so the plan for that branch is just to avoid any creation of constant PMCs?
00:43 whiteknight bacek_at_work: do you have a fancy plan for doing it? The big reason why we have constant PMCs (that I know of) is to solve order of destruction issues for PMCs that don't get anchored
00:43 whiteknight like library PMCs, a reference might not be kept to the library but we can't collect it if we are using methods from it
00:44 bacek_at_work we can explicitly use Parrot_pmc_gc_register for them.
00:45 bacek_at_work current blocker in branch - packfiles are not properly marked.
00:45 whiteknight bacek_at_work: okay, we can do that. Maybe we can add an attribute to NCI PMCs for the library PMC that they come from
00:45 whiteknight then it will get marked like normal so long as we still have a reference to any NCI PMC from that library
00:46 whiteknight the scheduler too, but that's anchored in interp
00:47 whiteknight checking out the _no_constant branch now
00:47 whiteknight I don't think we want to register libraries, because then they will never be unregistered
00:48 bacek_at_work Do we have way to unload library???
00:48 cotto_work what bacekbot said
00:53 cotto_work library unloading sounds like something that we don't want to never allow, but also that we don't care about for now
00:54 ash_ couldn't you unload a library if all references to it disappeared?
01:00 whiteknight bacek_at_work: not yet, but I don't see why we wouldn't
01:00 whiteknight if no references to the library or any methods from it exist, the GC can unload it automatically
01:00 whiteknight because if no references exist, we can't use it
01:01 whiteknight I'm adding a ->library attr to NCI.pmc now that includes this information
01:01 abqar joined #parrot
01:01 bubaflub where does Configure.pl figure out which libraries to link to?
01:02 whiteknight no idea. Ask kid51
01:02 bubaflub okey dokey
01:02 Coke I need git help.
01:03 bubaflub Coke: whatcha need?
01:03 whiteknight bacek_at_work: on _no_constants, did t/pmc/threads.t fail already?
01:03 whiteknight or, did I just break it?
01:03 Coke um. unloading libraries like that won't work.
01:03 whiteknight Coke: why not?
01:03 Coke else how can I loadlib something somewhere, and then get_global it later to invoke it?
01:04 bubaflub Coke: i thought you were referring to the SCM git
01:04 whiteknight Coke: how does get_global find it? If we have a reference to the library anywhere visible or searchable, the GC will find it and protect it
01:05 Coke bubaflub: I have a local branch. I have a fork I'm trying to cherry pick into my branch. I'm trying to get it to refer to the original committer, but cherry-pick seems to just apply it as if I'm the author.
01:05 bubaflub hmmmmm
01:05 ash_ bubaflub: Configure.pl adds them at auto time
01:05 Coke bubaflub: yes, I'm having 2 conversations simultaneously. =-)
01:05 ash_ links
01:05 bubaflub Coke: haha, ok.  sorry, i'm in and out of my VM
01:05 Coke whiteknight: perhaps I'm conflating c-library and parrot-library.
01:05 bubaflub Coke: you might be able to try a rebase instead
01:06 bubaflub Coke: rather than squashing the commits, you might be able to rebase a few of the commits onto your branch
01:06 bubaflub Coke: and i believe that should save all the original commit information
01:06 ash_ Coke: http://www.gitready.com/intermediate/200​9/03/04/pick-out-individual-commits.html
01:06 bacek_at_work whiteknight, yes
01:06 whiteknight okay, I'm going to commit my change then
01:07 bubaflub ash_: (re Configure.pl) do you know which config step does it?
01:07 Coke bubaflub: I'm not squashing anything.
01:07 Coke I'm trying to cherry-pick a single commit.
01:07 ash_ any of them can, during auto, if your tests for whatever library work out fine, you can append them to the conf
01:08 bubaflub Coke: right.  i believe you can rebase *without* cherry picking
01:08 Coke er, what does the rebase buy me in this case?
01:08 bubaflub errrr
01:08 bubaflub wait, sorry
01:08 bubaflub Coke: i mean i think you rebase without squashing
01:09 Coke bubaflub: I'm more concerned at how to do it right before a rebase becomes necessary.
01:09 Coke perhaps I wanted git commit -C <old sha> ?
01:10 dalek parrot: r47272 | whiteknight++ | branches/gc_massacre_no_constant/src (2 files):
01:10 ash_ each one of the Parrot::Configure::Step's runstep's takes 1 param (the configuration reference) and you can use $conf->data->add( ' ', hash_key => value); to append stuff to a current config flag, like if you want to add a library (like i am doing for libffi): $conf->data->add( ' ', libs => $libffi_options_libs ); that adds a make link
01:10 dalek parrot: [gc_massacre_no_constant] Add a ->library attr to nci to keep track of the ParrotLibrary PMC that originates it. This way the library will automatically be marked by GC if any references to any NCI functions from it are reachable.
01:10 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47272/
01:10 dalek parrot: r47273 | tcurtis++ | branches/gsoc_past_optimization (5 files):
01:10 dalek parrot: Initial non-working commit of PAST::Pattern(well, it works when matching doesn't work!).
01:10 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47273/
01:10 bubaflub Coke: what version of git are you running?
01:10 Coke 1.7.0
01:11 bubaflub hmmm... then that's not it either.
01:11 bubaflub i haven't done too many cherry picks, but i haven't had the problem with overriding the author
01:11 bubaflub i'm at a loss, if dukeleto is around his git-fu is stronger than mine
01:14 Coke bubaflub: aha. cherry-pick -se worked. Though I swear it failed earlier.
01:15 bubaflub Coke: great.  i suggested rebase because i imagined you had multiple patches you wanted to apply... cherry-pick is definitely the way to go for a single or a few patches
01:16 ash_ if i get my libffi work going, parrot won't need core_thunks or any thunks anymore
01:16 ash_ s/going/working/
01:16 cotto_work assuming we don't mind having it as a core dependency
01:16 ash_ well, i am keeping the old nci around too
01:17 ash_ if it detects libffi, it tries to use that but if you don't have libffi it uses the current nci stuff (or if you do --without-libffi)
01:18 ash_ it won't be required, but then you'll be working with the old nci limitations
01:18 dukeleto 'ello
01:20 * tcurtis loves seeing the amount of red go down every time he types "prove t/library/pastpattern.t"(well, until he adds tests more tests and is back up to lots of tests failing).
01:21 Coke ok, one more git question - if I have a branch that I created as a local, how do I push that back to the server? "git push origin <branchname>" ?
01:22 ash_ yes
01:24 Coke ... bah. one more question!
01:24 Coke git pull is now telling me that I have to pick where I want to merge changes to. Shouldn't a git pull just pull /everything/, and only merge changes relevant to the current branch?
01:25 ash_ git pull is multiple operations in one
01:25 ash_ git fetch just pulls changes
01:25 ash_ git pull fetches and merges if your in a tracking branch
01:26 Tene so "git pull" can only merge if it knows which remote branch you want to merge into the currently-checked-out branch.
01:26 ash_ yeah
01:26 dalek parrot: r47274 | whiteknight++ | branches/gc_massacre_no_constant/src (2 files):
01:26 dukeleto Coke: what is your current branch?
01:26 dalek parrot: [gc_massacre_no_constant] add ->library to UnManagedStruct too, since it can be associated to a library through the dlvar opcode
01:26 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47274/
01:26 dalek parrot: r47275 | whiteknight++ | branches/gc_massacre_no_con​stant/compilers/imcc/pbc.c:
01:26 dalek parrot: [gc_massacre_no_constant] the namespace_name attr in Sub.pmc is marked, so it doesn't need to be constant. Plus, I think GC is currently disabled during IMCC anyway, so no sense safeguarding it
01:26 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47275/
01:26 Coke ah. so when I created this branch locally, and pushed it back, that's not sufficient to figure out the tracking?
01:27 Coke dukeleto: 'revive' on partcl/partcl
01:27 Tene Coke: it should be.
01:27 dukeleto Coke: git pull origin revive
01:27 ash_ you can make the local branch a tracking branch by doing git branch --track <branch> <remote-branch>
01:27 * Tene not really here, on the bus.
01:27 dukeleto trackign is default when you create it locally
01:27 ash_ then you won't have to do the longer command to pull
01:28 dukeleto Coke: also, there is a setting for your ~/.gitconfig
01:28 Coke dukeleto: I did a checkout <sha1> -b revive, and later did a push origin revive ; but if I am in the revive branch locally and do a "git pull", it squawks.
01:28 dukeleto [push] default = current
01:29 dukeleto that makes "git push" always push into the remove version of your branch
01:29 ash_ i thought you had to set branch.autosetupmerge to true for it to make local branches tracking by default
01:29 dukeleto Coke: hmmm, not sure
01:30 dukeleto ash_: git checkout foo will track origin/foo be default
01:30 dukeleto netsplits--
01:30 tetragon joined #parrot
01:30 kurahaupo joined #parrot
01:30 jsut joined #parrot
01:30 bubaflub joined #parrot
01:30 whiteknight joined #parrot
01:30 snarkyboojum joined #parrot
01:30 ash_ joined #parrot
01:30 bline joined #parrot
01:30 cotto_work joined #parrot
01:30 Chandon joined #parrot
01:30 eternaleye joined #parrot
01:30 janus joined #parrot
01:30 confound joined #parrot
01:30 PacoLinux joined #parrot
01:30 aloha joined #parrot
01:30 bacek joined #parrot
01:30 mikehh joined #parrot
01:30 cosimo joined #parrot
01:30 mberends joined #parrot
01:30 cognominal joined #parrot
01:30 contingencyplan joined #parrot
01:30 sorear joined #parrot
01:30 jnthn joined #parrot
01:30 particle joined #parrot
01:30 preflex joined #parrot
01:30 TimToady joined #parrot
01:30 pmichaud joined #parrot
01:30 Util joined #parrot
01:30 spinclad joined #parrot
01:30 simcop2387 joined #parrot
01:30 nopaste joined #parrot
01:30 TonyC joined #parrot
01:30 silug joined #parrot
01:30 arnsholt joined #parrot
01:30 moritz joined #parrot
01:30 ttbot joined #parrot
01:30 knewt joined #parrot
01:30 ascent joined #parrot
01:30 Ryan52 joined #parrot
01:30 tewk joined #parrot
01:30 sri joined #parrot
01:30 slavorg joined #parrot
01:30 dngor joined #parrot
01:30 bacek_at_work joined #parrot
01:30 treed joined #parrot
01:30 GeJ joined #parrot
01:30 cotto joined #parrot
01:30 nnunley joined #parrot
01:30 Maddingue joined #parrot
01:30 krunen joined #parrot
01:30 Tene joined #parrot
01:30 dmagnus_ joined #parrot
01:30 Infinoid joined #parrot
01:30 szabgab joined #parrot
01:31 whiteknight bacek_at_work: okay, I'm going to bed now. The two instances of Parrot_pmc_new_constant in src/packfile.c can't be removed yet, they cause test failures. I will try to figure that out later if you don't beat me to it
01:31 whiteknight goodnight, er'body
01:31 bacek_at_work whiteknight, good night
01:43 dalek parrot: r47276 | tcurtis++ | branches/gsoc_past_optimization/runt​ime/parrot/library/PAST/Pattern.pir:
01:43 dalek parrot: PAST::Pattern passing all existing tests. Time to add more.
01:43 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47276/
01:50 kid51 joined #parrot
01:51 * Coke is kind of freaked out by the BEAR NOISES coming from his back yard.
01:51 Coke thought he lived close enough to the city to avoid that sort of thing.
01:52 ash_ anyone know what http://github.com/leto/parrot/blob/upst​ream/config/gen/makefiles/root.in#L242 is for? that file doesn't exist...
01:53 jnthn Coke: Is there...akshually a bear?!
01:54 Coke jnthn: well, based on some recordings of bears I found on the internet looking for milk... possibly.
01:54 * Coke will call animal control tomorrow. in the meantime, all kids, pets, and spouses are indoors.
01:55 ash_ http://www.youtube.com/watch?v=6DXs4UuuM7M you need that cat
01:55 ash_ (its the video of a cat scaring off a bear so people know)
01:57 * jnthn is sure he saw that one on icanhascheezburger before now
01:58 ash_ yeah, it was there, i think thats where i found it
01:59 * Coke wonders why the OS pmc thinks he's trying to call "get_string" on it. :P
02:00 jsut joined #parrot
02:00 snarkyboojum joined #parrot
02:00 ash_ joined #parrot
02:00 cotto_work joined #parrot
02:00 eternaleye joined #parrot
02:00 janus joined #parrot
02:00 aloha joined #parrot
02:00 mikehh joined #parrot
02:00 contingencyplan joined #parrot
02:00 sorear joined #parrot
02:00 jnthn joined #parrot
02:00 TimToady joined #parrot
02:00 slavorg joined #parrot
02:00 sri joined #parrot
02:00 tewk joined #parrot
02:00 Ryan52 joined #parrot
02:00 ascent joined #parrot
02:00 knewt joined #parrot
02:00 ttbot joined #parrot
02:00 moritz joined #parrot
02:01 sorear joined #parrot
02:02 kurahaupo joined #parrot
02:14 bluescreen joined #parrot
02:22 Coke msg plobsing - all tests now pass in revive branch with that old parrot version.
02:22 purl Message for plobsing stored.
02:30 snarkyboojum joined #parrot
02:33 kid51 msg bubaflub As others have noted, there's no one step where linker libraries are set.  To trace the evolution of the value assigned to any entry in lib/Parrot/Config/Generated.pm, try Parrot::Configure::Trace.
02:33 purl Message for bubaflub stored.
02:38 ash_ what is the first param to $conf->data->add for ? I saw how it was used but i don't understand the first param's purpose
02:40 kid51 ash_:  Specific context? File?
02:41 kid51 Documented starting at line 174 of lib/Parrot/Configure/Data.pm
02:41 ash_ http://github.com/ashgti/parrot/blob/​gsoc_nci/config/auto/readline.pm#L96
02:41 ash_ i'll go read that
02:43 ash_ ah, its the deliminater, got ya
02:43 kid51 To the pre-existing value of the 'libs' element in the Parrot::Configure object's data structure (specificially, the 'data' part thereof), append value of libs using wordspace as delimiter.
02:44 plobsing joined #parrot
02:44 kid51 ... which goes back to the msg I just left for bubaflub:  'libs' is one of those attributes that gets built up over the course of the 60+ configuration steps.
02:45 kid51 If you need to know what value of 'libs' is at any one step, use Parrot::Configure::Trace.
02:49 dalek parrot: r47277 | tcurtis++ | branches/gsoc_past_optimizat​ion/t/library/pastpattern.t:
02:49 dalek parrot: Add tests for exact matching on the "name" attribute.
02:49 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47277/
02:49 dalek parrot: r47278 | tcurtis++ | branches/gsoc_past_optimization/runt​ime/parrot/library/PAST/Pattern.pir:
02:49 dalek parrot: Switched to using a macro for class-checking.
02:49 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47278/
02:55 theory joined #parrot
03:13 janus joined #parrot
03:22 dalek parrot: r47279 | cotto++ | branches/gsoc_instrument/MANIFEST:
03:22 dalek parrot: manifix
03:22 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47279/
03:35 kurahaupo joined #parrot
03:43 LoganLK joined #parrot
03:50 TiMBuS joined #parrot
03:56 cotto seen khairul
03:56 purl khairul was last seen on #parrot 8 hours, 4 minutes and 5 seconds ago, saying: see t/pmc/scheduler.t
04:00 snarkyboojum joined #parrot
04:02 kurahaupo joined #parrot
04:25 parthm joined #parrot
04:28 eternaleye joined #parrot
04:28 dalek parrot: r47280 | tcurtis++ | branches/gsoc_past_optimization (6 files):
04:28 dalek parrot: Rewrote what I had of PAST::Pattern in NQP.
04:28 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47280/
04:36 Chandon joined #parrot
05:01 dalek parrot: r47281 | plobsing++ | trunk/t (2 files):
05:01 dalek parrot: un-dynext some coretests
05:01 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47281/
05:01 kurahaupo joined #parrot
05:10 mj41_ joined #parrot
05:12 elmex joined #parrot
05:12 dalek joined #parrot
05:13 AzureStone joined #parrot
05:13 eternaleye joined #parrot
05:13 wagle joined #parrot
05:13 mikehh_ joined #parrot
05:14 cotto I want to pick some delicious brains.
05:17 baest joined #parrot
05:25 plobsing ENOBRAINZ
05:26 * plobsing wonders if purl picked that up
05:26 plobsing cotto?
05:27 plobsing purl, cotto?
05:27 purl no idea, plobsing
05:31 bacek_at_work aloha...
05:33 plobsing purl, bacek_at_work!
05:33 purl plobsing: sorry...
05:33 bacek_at_work aloha. bacek?
05:33 aloha bacek_at_work: Sorry, I don't know.
05:33 bacek_at_work aloha, bacek is magical coding robot
05:33 aloha bacek_at_work: Okay.
05:33 bacek_at_work aloha. bacek?
05:33 cotto hi
05:33 aloha bacek_at_work: Dunno.
05:33 bacek_at_work aloha, bacek?
05:33 aloha bacek_at_work: bacek is magical coding robot
05:33 bacek_at_work it does work...
05:34 sorear aloha, sorear?
05:34 aloha sorear: Dunno.
05:37 cotto background: We'll eventually want to have some kind of meeting to discuss Lorito.  Some decisions will be necessary to nail down before interested parties can start hacking, others are best left until we've got some code to play with.
05:38 cotto With that, here's what I've got so far for the various questions about Lorito's design and which of those questions should be decided when:
05:38 nopaste "cotto" at 192.168.1.3 pasted "Lorito planning priorities" (13 lines) at http://nopaste.snit.ch/20822
05:47 ttbot Parrot trunk/ r47282 i386-linux-thread-multi make error http://tt.taptinder.org/file/cmdout/334382.txt ( http://tt.taptinder.org//bui​ldstatus/pr-Parrot/rp-trunk/ )
05:48 sorear cotto: by "INS or INSP" did you mean "INP or INSP"?
05:49 plobsing [I]nteger [N]umval [S]tring [P]MC
05:49 cotto That point wasn't phrased well at all.
05:50 plobsing pmcs are high level and possibly not part of lorito
05:50 cotto plobsing, exactly
05:50 plobsing wheee! my patch found a bug in parrot's build process!
05:51 dalek parrot: r47282 | plobsing++ | trunk (4 files):
05:51 dalek parrot: make failing loadlib PIR directive abort compilation loudly (TT #437)
05:51 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47282/
05:52 sorear plobsing: if lorito can't express PMC registers than it can't be used to implement PMCs.  You have to store self somewhere
05:52 sorear unless we're going *really* low level and PMC pointers are kept in I registers
05:53 cotto That's part of what we'll want to address. (no pun intended, but welcomed nonetheless)
05:55 dalek tracwiki: v11 | cotto++ | LoritoRoadmap
05:55 dalek tracwiki: split design issues into primary and secondary based on when they'll need to be settled
05:55 dalek tracwiki: http://trac.parrot.org/parrot/wiki/Lor​itoRoadmap?version=11&amp;action=diff
05:56 plobsing urg. 'loadlib_sc' doesn't exist to IMCC right now. this would be solved with const-unfolding
05:57 dalek TT #437 closed by plobsing++: .loadlib fails silently
05:57 dalek TT #437: http://trac.parrot.org/parrot/ticket/437
06:05 uniejo joined #parrot
06:07 dalek parrot: r47283 | plobsing++ | trunk/runtime/parrot/library/parrotlib.pir:
06:07 dalek parrot: loadlib at runtime to avoid newly-failing compilations thanks to TT #437 fix
06:07 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47283/
06:15 mikehh opbots, names
06:17 cotto clock?
06:17 cotto still no purl facts
06:17 cotto sad face
06:18 cognominal joined #parrot
06:24 dalek parrot: r47284 | NotFound++ | trunk/examples/nci/xlibtest.pir:
06:24 dalek parrot: use a new 'FileHandle' and its methods instead of open and close opcodes in example xlib
06:24 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47284/
06:25 snarkyboojum joined #parrot
06:29 kurahaupo msg Whiteknight we don't need a "busy" flag; all we need is an atomic overwrite of the vtable pointer, done twice: the first time points it at a "spin" vtable, all of whose entries do nothing but "yeild" and then re-invoke the same method, and the second is the actual new vtable (or possibly the original one) after all the structural changes have been done. Of course, if we used non-overwrite semantics the whole problem would go away,
06:29 purl Message for whiteknight stored.
06:34 kurahaupo aloha msg Whiteknight we don't need a "busy" flag; all we need is an atomic overwrite of the vtable pointer, done twice: the first time points it at a "spin" vtable, all of whose entries do nothing but "yeild" and then re-invoke the same method, and the second is the actual new vtable (or possibly the original one) after all the structural changes have been done. Of course, if we used non-overwrite semantics the whole problem would go
06:35 kurahaupo cotto: does Purl pass messages or am I wasting my time?
06:35 sorear msg kurahaupo yes
06:35 purl Message for kurahaupo stored.
06:35 plobsing kurahaupo: I got some this evening
06:35 fperrad joined #parrot
06:35 cotto purl should
06:35 purl cotto: huh?
06:39 kurahaupo Well, today wasn't much of a de-lurk after a few months away, but dinner calls. Hopefully I can be a bit more participative soon. Until tomorrow...
06:40 fperrad_ joined #parrot
06:44 parthm left #parrot
06:47 aukjan joined #parrot
06:51 cotto time for sleep
07:02 s1n joined #parrot
07:02 dalek tracwiki: v12 | cotto++ | LoritoRoadmap
07:02 dalek tracwiki: add purpose, minor fixes
07:02 dalek tracwiki: http://trac.parrot.org/parrot/wiki/Lor​itoRoadmap?version=12&amp;action=diff
07:16 mikehh_ joined #parrot
07:20 fperrad ping bacek
07:29 bacek_at_work fperrad, short pong
07:31 fperrad bacek, I miss something when I tried to convert Cardinal to the new NQP, could you take a look ?
07:31 fperrad $ parrot cardinal.pbc -e "print 'hello';" # works fine
07:32 bacek_at_work fperrad, not now. In about couple of hour after loosing my "_at_work" suffix
07:52 s1n joined #parrot
08:03 dalek parrot: r47285 | tcurtis++ | branches/gsoc_past_optimization (2 files):
08:03 dalek parrot: All tests pass. More attributes tomorrow(fortunately, should be easy). Also, make codetest happy.
08:03 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47285/
08:08 viklund joined #parrot
08:13 mikehh joined #parrot
08:18 jsut_ joined #parrot
08:26 dalek TT #1658 closed by plobsing++: Change to config hash (45623)  broke partcl
08:26 dalek TT #1658: http://trac.parrot.org/parrot/ticket/1658
08:38 clinton joined #parrot
09:58 dalek parrot: r47286 | bacek++ | branches/gc_massacre/src/interp/inter_create.c:
09:58 dalek parrot: Create interp.gc_registery early
09:58 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47286/
09:58 dalek parrot: r47287 | bacek++ | branches/gc_massacre/src/call (2 files):
09:58 dalek parrot: Add a lot of assertions to help catching too-early-collected-context failure
09:58 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47287/
09:58 dalek parrot: r47288 | bacek++ | branches/gc_massacre/src/gc/gc_tms.c:
09:58 dalek parrot: Avoid double-initialisation on TMS in child interp.
09:58 dalek parrot: Just reuse parrent one. Not particulary fast, but we can implement
09:58 dalek parrot: proper merging of GCs later.
09:58 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47288/
09:58 dalek parrot: r47289 | bacek++ | branches/gc_massacre/src/gc/gc_tms.c:
09:58 dalek parrot: Quick hack - register "constant" pmcs in interp.
09:58 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47289/
09:58 dalek parrot: r47290 | bacek++ | branches/gc_massacre/src/gc/gc_tms.c:
09:58 dalek parrot: A lot of fixes for TMS.
09:59 dalek parrot: * Properly handle tail-of-greyobjects. Previously next-after-last wasn't
09:59 dalek parrot:   marked
09:59 dalek parrot: * Don't GC during deinitialise
09:59 dalek parrot: * Embed gc_ms_mark into gc_tms_mark for simplicity and performance.
09:59 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47290/
10:15 dalek parrot: r47291 | bacek++ | branches/gc_massacre/src/gc/gc_tms.c:
10:15 dalek parrot: Yay! Final fix for TMS.is_pmc_ptr to properly find all roots!
10:15 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47291/
10:19 gbacon joined #parrot
10:24 bacek msg whiteknight Ignore _no_constant branch. I've made ugly workaround for it.
10:24 purl Message for whiteknight stored.
10:31 dalek parrot: r47292 | bacek++ | branches/gc_massacre/src/gc (2 files):
10:31 dalek parrot: Add List.pop function
10:31 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47292/
10:31 dalek parrot: r47293 | bacek++ | branches/gc_massacre/src/gc/gc_tms.c:
10:31 dalek parrot: Minor cleanup
10:31 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47293/
10:31 dalek parrot: r47294 | bacek++ | branches/gc_massacre/src/gc/system.c:
10:31 dalek parrot: Restore calculating of prefix for old MS GC.
10:31 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47294/
10:31 dalek parrot: r47295 | bacek++ | branches/gc_massacre/src/gc/list.c:
10:31 dalek parrot: Make GC.list compilable in optimized builds
10:31 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47295/
10:39 dalek tracwiki: v13 | bacek++ | GCMassacre
10:39 dalek tracwiki: Add TODO section for gc_massacre branch.
10:39 dalek tracwiki: http://trac.parrot.org/parrot/wiki/G​CMassacre?version=13&amp;action=diff
10:47 bacek msg mikehh You can start your magical codetest fixing in gc_massacre branch now :)
10:47 purl Message for mikehh stored.
10:47 masak joined #parrot
10:52 nopaste "bacek" at 192.168.1.3 pasted "It's fast :)" (13 lines) at http://nopaste.snit.ch/20826
11:13 dalek tracwiki: v14 | bacek++ | GCMassacre
11:13 dalek tracwiki: More todo
11:13 dalek tracwiki: http://trac.parrot.org/parrot/wiki/G​CMassacre?version=14&amp;action=diff
11:19 mikehh bacek: ok - will give it a go
11:22 bacek mikehh, thanks!
11:31 tetragon joined #parrot
11:44 dalek winxed: r487 | julian.notfound++ | trunk/winxedst1.winxed:
11:44 dalek winxed: quick fix for empty argument list
11:44 dalek winxed: review: http://code.google.com/p/w​inxed/source/detail?r=487
11:48 snarkyboojum joined #parrot
11:52 kurahaupo joined #parrot
12:01 whiteknight joined #parrot
12:07 JimmyZ joined #parrot
12:08 ruoso joined #parrot
12:08 whiteknight good morning, #parrot
12:09 JimmyZ morning, whiteknight
12:09 whiteknight good morning, JimmyZ
12:10 bluescreen joined #parrot
12:10 dalek parrot: r47296 | mikehh++ | branches/gc_massacre/src/gc/gc_tms.c:
12:10 dalek parrot: fix g++ build failure, remove trailing space
12:10 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47296/
12:16 ruoso joined #parrot
12:21 davidfetter joined #parrot
12:26 dalek parrot: r47297 | mikehh++ | branches/gc_massacre (2 files):
12:26 dalek parrot: some headerizer changes
12:26 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47297/
12:26 dalek parrot: r47298 | mikehh++ | branches/gc_massacre/src/gc/pool_allocator.c:
12:26 dalek parrot: add ASSERT_ARGS
12:26 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47298/
12:43 dalek parrot: r47299 | mikehh++ | branches/gc_massacre/src/gc/list.c:
12:43 dalek parrot: add ASSERT_ARGS
12:43 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47299/
12:44 Coke plobsing++
12:44 Coke plobsing++
12:44 Coke plobsing++
12:46 Coke (for TT#906)
12:49 masak since we last spoke, I've (re-)discovered at least two new problems with Parrot and string encodings. I'll see if I can produce short examples of them.
12:52 Chandon joined #parrot
12:55 masak actually those were the same issue. you can trigger it by running perl6 -e '"ö".encode("UTF-8")' on latest Rakudo.
12:55 masak the error is 'unimpl fixed_8'
12:58 masak and it seems to occur for all non-ASCII characters.
12:58 masak is there some fundamental ASCII restriction in Parrot of which I'm not yet aware?
12:59 Coke masak: you'll see a lot of NYI in src/strings/*/*.c
12:59 masak ok.
12:59 masak I guess I expected obstacles of this type, to be honest.
13:00 masak that's why I'm glad it's a grant; otherwise I'd proabbly have given up and let someone else solve it. :)
13:02 masak so, what's my best chance of getting this fixed_8 thing impl? I'm not familiar enough with people's areas of expertise in the project.
13:02 ComLock joined #parrot
13:04 bacek masak, src/string/encoding/fixed_8.c, line 179...
13:05 * masak looks
13:05 Coke I would recommend opening a ticket with a short example (PIR is best if you can manage it). ... or get bacek's attention.
13:05 masak bacek: ok. that tells me only what I already know. :)
13:06 masak Coke: I think I can manage PIR. will create a ticket.
13:06 Coke :q
13:06 Coke ww.
13:16 atrodo joined #parrot
13:16 Coke is this decl right?
13:16 Coke =item B<mul>(invar PMC, invar PMC, invar PMC)
13:16 Coke should that first invar be an inout?
13:17 dalek parrot: r47300 | coke++ | trunk/runtime/parrot/library/Crow.pir:
13:17 dalek parrot: Avoid use of deprecated PIR syntax.  (can't use assignment syntax here.)
13:17 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47300/
13:27 bacek Coke, it should be inout (or out). But current runcore doesn't properly distinguish it
13:29 masak here's my ticket. http://trac.parrot.org/parrot/ticket/1671
13:29 masak my GSoC work is partially blocking on this issue, so I'd appreciate if someone would have a look at it.
13:33 dalek parrot: r47301 | coke++ | trunk/t (2 files):
13:33 dalek parrot: Avoid use of deprecated PIR syntax.  (can't use assignment syntax here.)
13:33 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47301/
13:33 dalek parrot: r47302 | mikehh++ | branches/gc_massacre/src/gc/list.c:
13:33 dalek parrot: add documentation
13:33 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47302/
13:34 Chandon joined #parrot
13:35 Coke bacek: plobsing's recent patch causes $P1 = mul $P2, $P3 to be an error, which I don't think it should be.
13:35 * Coke added a note to the ticket.
13:35 bacek Coke, just change op.
13:36 Coke bacek: someone can, sure. I'm just raising the issue. =-)
13:36 Coke ($DAYJOB)
13:36 bacek slacker!
13:36 * Coke IZ NOT ROBOT
13:37 Coke plus, someone would really have to review all the opcodes.
13:37 Coke Sure it's not just mul.
13:42 dalek TT #1671 created by masak++: Can't encode strings with non-ASCII characters in them
13:42 dalek TT #1671: http://trac.parrot.org/parrot/ticket/1671
13:50 aukjan joined #parrot
13:53 plobsing joined #parrot
13:55 Coke plobsing: hio.
13:58 gbacon joined #parrot
14:00 plobsing hi Coke
14:01 plobsing looks like you've been working on the TT #906 test failures
14:01 plobsing why does vtable multiply take 3 args anyways?
14:03 Coke so you can pass in a destination.
14:03 Coke IIRC.
14:03 plobsing yeah, looks that way. Haven't seen that done much in parrot.
14:05 particle still, it must be possible, or hll devs will have to code around it
14:06 particle $P1 = $P2 ; mul $P1, $P3
14:06 dalek parrot: r47303 | fperrad++ | trunk/examples/languages (2 files):
14:06 dalek parrot: [languages] clean up, now .loadlib could throw an exception
14:06 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47303/
14:06 particle or some other workaround, maybe with clone
14:07 plobsing yes true. But it does make "$P1 = mul $P2, $P3" invalid by the no input values in assignment op forms
14:07 plobsing rule
14:08 NotFound Coke: I think there is a lot of 'in' that should be 'inout' in opcodes.
14:09 NotFound That can also explain some failures in register allocation,
14:10 plobsing I had a patch against opsc to catch those, but opsc was a little b0rked internally, so it didn't work
14:30 whiteknight the third argument to the various arithmetic vtables is almost universally ignored in practice
14:30 whiteknight the implementations don't use them, so PIR code doesn't bother with it
14:30 whiteknight it's a huge waste
14:42 tcurtis joined #parrot
14:45 patspam joined #parrot
14:46 NotFound masak: I fail to understand your encoding problem. You can't encode a codepoint > 255 in any fixed 8 way.
14:46 masak then I'm probably slightly on the wrong track.
14:47 jnthn NotFound: IIUC, masak wants to be able to get the individual bytes that make up a UTF-8 encoded string.
14:47 masak maybe you can show how I can encode a codepoint > 255 in some other way?
14:47 masak jnthn: yes, but that's a different problem. that's the decoding.
14:47 Coke whiteknight: didn't pmichaud disagree with that statement?
14:47 masak here I'm just trying to get the encoding right, something I thought already worked.
14:47 bubaflub joined #parrot
14:48 whiteknight Coke: whether those vtables *should* do something is a different matter. Currently, almost every implementation completely ignores it
14:48 NotFound jnthn: but the ticket is not about what he wants, but about how he does.
14:49 whiteknight Coke: I suggest we either change the current implementations to make proper use of the third argument, or we remove the third argument from the spec
14:49 Coke "unimpl" is probably not the right exception for "i can't do that, dave."
14:49 whiteknight but having it and ignoring it is not a good thing
14:49 NotFound masak: I don't know if it works right now, but if you want a binary string you can't just change the encoding, you must change the charset.
14:49 Coke whiteknight: I would have to fact check your statement there before I can agree with what to do next.
14:49 masak NotFound: gotcha.
14:50 masak NotFound: are there examples of this kind of conversion (str -> bytes) somewhere in Parrot already?
14:50 NotFound masak: I don't think so, given that until recently all that things barely worked,
14:51 masak again, I'm a pioneer. yay.
14:51 whiteknight Coke: hmmm...Maybe it's been fixed. The code I'm looking at now is different from what I remember
14:51 whiteknight Coke: in that case, ignore me
14:52 NotFound masak: anyway, I think that the best way to handle such conversions is creating a ByteBuffer PMC.
14:53 masak ok. that is probably a bit beyond my reach, though.
14:53 whiteknight actually, nevermind. I'm finding more broken code in scalar.pmc, which is inherited by float.pmc
14:53 whiteknight so it's only been partially fixed.
14:53 NotFound BTW, trans_encoding ascii to fixed_8 is a noop, ascii is always encoded as fixed_8
14:54 jnthn NotFound: Would us having a first-cut byte buffer implementation as a dynpmc in Rakudo, that Parrot may then adopt into core if it wishes, be a good way forward? Or do you (or @other) see this being something Parrot does RSN?
14:56 NotFound jnthn: I think parrot need it, but the idea hasn't been discused yet.
14:57 jnthn OK.
14:57 NotFound If you implement it in rakudo with the idea of parrot adopting it later, please make clear that the copyright can be transferred to PAFO.
15:00 ash_ how do code reviews work? if I have something i'd like someone else to look at incase they can come up with a better solution, or to make sure i didn't do dumb things, do i just need to ask someone here to look at my code?
15:00 Coke ash_: if you're working on a branch, you can commit first and ask questions later.
15:01 Coke if you're /really/ unsure, make a patch hit the list with it.
15:01 Coke *and
15:01 ash_ kk
15:03 NotFound masak: BTW if you try to trans_charset to binary you get "to_charset for binary not implemented"
15:04 whiteknight ash_: some help is volunteered if somebody is watching. Other help can always be requested
15:07 theory joined #parrot
15:12 ash_ is it safe to use Parrot_str_to_cstring and just use a string as a cstring?
15:13 NotFound ash_: "just" and "safe" are usually incompatible ;)
15:15 ash_ I'll stick with the defined string manipulation methods then
15:16 Coke ash_: yah. unless you're trying to pass the string to a C library, that's probably best
15:18 ash_ I am just trying to parse the strings, determining prefix, infix, postfix, circumfix modifiers on base identifiers is trickery than i thought it would be, well i am not using regex's. they would make it easier, but I don't think there is a regex api for the C side of things is there?
15:21 Coke not in parrot, no.
15:22 Coke sounds like you want a grammar in NQP.
15:23 whiteknight a simple regex engine in Parrot might be nice to have for basic string ops
15:24 Coke but would duplicate effort already present in PGE/NQP.
15:26 ash_ Coke: i am working in the C parts of parrot though, not pir
15:26 ash_ or any of the other bits, otherwise i would use a grammar
15:26 Coke ash_: you can still invoke all that from C.
15:27 ash_ hmm good point
15:27 Coke (assuming a built parrot)
15:27 Coke er, standard lib.
15:28 ash_ hmm i think i'll stick with doing it in C, most of this is not to bad, i know some things about all of my identifiers too, that can help (like they are all 1 char in length, so i don't need to look ahead more than 1 char)
15:29 Coke WFM.
15:29 particle we have index and rindex and substr, write your own regex engine :P
15:30 ash_ i'll do that next summer...
15:31 ash_ :P
15:34 nopaste "NotFound" at 192.168.1.3 pasted "Patch: to_charset to binary from anything" (40 lines) at http://nopaste.snit.ch/20837
15:34 NotFound masak: ping
15:34 masak NotFound: pong
15:35 NotFound masak: does this patch what you want?
15:35 * masak looks
15:36 masak it sounds like it could be what I want yes. I won't know for sure until I get a list of bytes out of an arbitrary string, but it looks promising. :)
15:37 ash_ are $I0 registers limited to 32 bits?
15:37 NotFound masak: is just a test, I'm still not sure is a desired feature.
15:37 masak NotFound: understood.
15:37 purl understood. are you on schedule?
15:37 masak purl: forget understood
15:37 purl masak, I didn't have anything matching understood
15:37 masak purl: forget understood.
15:37 purl masak, I didn't have anything matching understood
15:37 * masak kicks purl
15:38 NotFound ash_: if you want to be fully portable, you must restrict to 32 bit values.
15:40 ash_ thats not 100% true... if you overflow 32 bits you can upgrade to a different container that, there are lots of various int containers that support larger integers than your system supports
15:40 NotFound ash_: you asked for a I register, registers aren't containers.
15:41 ash_ ah
15:41 ash_ i didn't realize that
15:41 ash_ so you'd have to go to a pmc of sorts then if you want larger than 32 bits?
15:41 particle NotFound, ash_, actually it's a compile-time constant, not strictly 32
15:42 particle iirc
15:42 NotFound ash_: unless you want to restrict to 64 bits platforms or parrot configured for that in lesser platforms, yes.
15:42 particle and IREGs are subject to platform semantics
15:42 particle overflow, etc
15:42 particle if you want portable, you use PMCs, like Integer or BigInt
15:43 NotFound That's the point. If you want to be fully portable, *you* must restrict the usage.
15:43 particle aye
15:44 ash_ http://github.com/ashgti/parrot/blob/gsoc​_nci/config/gen/config_h/config_h.in#L118
15:44 ash_ i don't think it uses 64 bits on systems that support it yet
15:48 Andy joined #parrot
15:49 tcurtis ash_: I think that just means that there's no support for explicitly 64 bit registers. It uses long for INTVAL on at least my system. So, if long is 64 bit, all INTVALs are probably 64 bit.
15:50 ash_ long is never 64 bits by definition unless your c compiler isn't following the specs
15:50 ash_ long long is 64 bits, long is 32 bits
15:50 NotFound ash_: what specs?
15:50 purl specs are almost more design than spec. they already know what they want in too much detail. that bodes poorly for the project
15:50 ash_ the C spec
15:51 NotFound ash_: the C spec says nothing about that. It just says that sizeof long >= sizeof int
15:51 tcurtis I thought those were just the minimum sizes, ash_.
15:52 NotFound ash_: and int can also be 64 bits.
15:52 particle yep
15:52 NotFound Or more.
15:53 ash_ yeah, your right, sorry those are min values, not absolute values
16:06 ash_ http://www.open-std.org/jtc1/​sc22/WG14/www/docs/n1256.pdf sections 5.2.4.2.1 and Annex E say the limits on int are the same as short, but i guess most compilers don't strictly follow the standard
16:07 ash_ and i suppose thats c99, not c89 which is what parrot is supposed to follow
16:08 tcurtis ash_:  "Their implementation-defined values shall be equal or greater in magnitude (absolute value) to those shown, with the same sign."
16:09 ash_ ah, i need to read better
16:15 NotFound ash_: parrot supports C89, and even restricts it to allow C++ builds.
16:16 NotFound But the type size limits are the same.
16:23 theory joined #parrot
16:24 particle the one extension to C89 i know of is our use of long long
16:26 whiteknight do we use long long internally, or do we just allow it as a confgure option?
16:28 NotFound We don't use long long, we use typedef or macros that may be long long in platforms that have it, that's the trick.
16:28 particle correct, NotFound
16:28 NotFound And maybe some conditionally compiled code.
16:29 ash_ are there plans to support a long long $I register one day? or should that always be done in a pmc?
16:30 particle if things are working correctly, it can be specified now at config-time
16:31 particle you'd probably also need to make sure your pointer size is also set to long long, though
16:31 particle i'm not sure all the intsize==ptrsize assumptions have been excised
16:32 whiteknight I'm certain they have not
16:32 NotFound That's a weak point.
16:32 ash_ in stdint.h there is intptr_t uintptr_t which are ints that are the right sizes to hold pointers
16:32 whiteknight ash_: on Win64 I had to do this dance. perl Configure.pl --intval="long long" -opcode_t="long long"
16:32 whiteknight or something like that, I cant remember the exact names of the options
16:34 NotFound whiteknight: Because of some parrot generic thing, or because of the win32 platform specific code?
16:34 ash_ I am mostly interested in this because if you specify something in NCI as a 64 bit value, i will need to put it on the right container/register/object/parrotthing
16:35 ash_ i am also going to have to figure out a new object for unions
16:35 NotFound ash_: a platform that doesn't have 64 bit ints is highly unlikely to have native interfaces that uses it.
16:35 particle ash_: you're going to have to query parrot and see what size IREG is, or stick everything into PMCs
16:36 whiteknight NotFound: on 64-bit windows, and the windows compiler, the size of "int" and "long" are both 32 bits
16:36 whiteknight but pointers are 64 bits
16:36 particle and long long is 64 bits
16:36 whiteknight on that compiler, to get a 64-bit integer you need to use "long long"
16:36 whiteknight particle: right
16:36 NotFound Oh, so nice, back to the times of win16/win32
16:36 ash_ Parrot_Int should be the same as $I0 right?
16:36 whiteknight ash_: yes
16:36 whiteknight they're all INTVAL
16:38 ash_ i wonder why it defaults to i386 on OS X and not x86_64
16:38 NotFound whiteknight: maybe we should tell Configure to use that values as default in that platform, then.
16:39 whiteknight NotFound: maybe. It doesn't matter though. Last I checked Parrot didn't work there no matter what I did
16:39 whiteknight I don't even have a 64-bit windows install anymore
16:40 NotFound Looks like our ratio of windows-developers/windows-support-asks is extremely low.
16:44 whiteknight yes, I would agree to that completely
16:44 whiteknight but windows isn't free, I don't currently have it, and I can't afford to procure a copy
16:45 ash_ I can get a copy of it, if I can find a computer to run it on, (i am still in school, and our school provides free copies of xp pro, vista pro, and 7 pro)
16:45 NotFound I have a Vista that came with the machine, but rarely use it and is 32 bits anyway.
16:46 whiteknight I had vista that came with my machine, but I tried dual-booting, had problems with GRUB, gave up, and reformatted the whole damn thing
16:46 tcurtis On which note, what's a good Windows IRC client? Assuming I can find an IRC client and editor I like for Windows, I could start developing and testing on 64-bit Windows 7.
16:47 NotFound tcurtis: last time I looked, mIRC was the most used.
16:47 moritz tcurtis: I use putty to connect to a linux box, and use irssi there :-)
16:48 NotFound And a lot of silly scripts for it X-)
16:48 moritz in a screen session, so that I don't have to restart it every day
17:03 Coke joined the POI dev mailing list. just saw:
17:04 Coke Fixed in r950611
17:08 dalek parrot: r47304 | NotFound++ | trunk/t/pmc/resizablepmcarray.t:
17:08 dalek parrot: tests for RPA delete_keyed, exists_keyed and get_repr vtables
17:08 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47304/
17:13 cotto_work joined #parrot
17:15 whiteknight Coke: .95 million commits? which repo is that?
17:16 bubaflub whiteknight: POI is an apache project that deals with Microsoft Office / Open Office documents
17:16 bubaflub via java api
17:16 whiteknight okay. That's still a gigantic number of commits
17:16 bubaflub agreed.
17:20 bubaflub purl msg kid51 thanks for the tip - for now i've overridden the linked libraries in the hints file
17:20 purl Message for kid51 stored.
17:23 Coke ugh. very fun trying to bisect through the revisions that tried to delete $PERL.
17:23 Coke (*&#@#
17:29 cotto_work joined #parrot
17:45 Chandon joined #parrot
17:57 dalek parrot: r47305 | tcurtis++ | branches/gsoc_past_optimization/runt​ime/parrot/library/PAST/Pattern.nqp:
17:57 dalek parrot: Switch PAST::Pattern to .attr() like PCT::Nodes do.
17:57 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47305/
18:01 Coke only 13 commits between the TT#389 and immutable strings hitting. blah.
18:01 cotto_Work joined #parrot
18:05 spinclad joined #parrot
18:10 joeri joined #parrot
18:16 Coke plobsing, finally back to the colons issue. =-)
18:17 Coke so, when tt #389 hit, my code that does "set_hll_global 'foo', bar" is now returning NULL whenever I get_hll_global it.
18:17 Coke (and bar is not null when I set_hll_global it.
18:20 Coke sorry, I set_hll_global 'foo', bar in HLL baz, and then later do get_root_global ['baz'], foo
18:23 Coke (and of course my 10 line demo PIR program works. bother.)
18:28 cotto_work joined #parrot
18:31 darbelo joined #parrot
18:39 nopaste "coke" at 192.168.1.3 pasted "this prints "not ok". Should it?" (16 lines) at http://nopaste.snit.ch/20849
18:41 whiteknight can you store pmcs in the root namespace?
18:41 whiteknight I would use get/set_hll_global instead, probably
18:42 whiteknight or just get/set_global
18:58 ilbot2 joined #parrot
18:58 Topic for #parrotis now Parrot 2.4.0 "Sulfur Crest" Released | parrot.org | Log: irclog.perlgeek.de/parrot/today | Nopaste: nopaste.snit.ch:8001 | GSOC Students: trac.parrot.org/parrot/wiki/GSoCersStartHere
18:59 nopaste "Coke" at 192.168.1.3 pasted "this prints "not ok". Should it?" (12 lines) at http://nopaste.snit.ch/20850
19:05 dalek parrot: r47307 | NotFound++ | trunk/t/pmc/threads.t:
19:05 dalek parrot: delete the loadlib myops_ops line that is not used, assumed to be let alone from a previous version
19:05 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47307/
19:06 pmichaud Coke: I'm needing to build a recent copy of Parrot as well
19:06 whiteknight moritz++ # Runge-Kutta solver
19:06 pmichaud one moment
19:06 * pmichaud has five parallel threads going on right now, starting to thrash.
19:06 moritz whiteknight: do you read #perl6? or follow github?
19:07 whiteknight moritz: follow github.
19:07 Coke pmichaud: don't worry about it, I'll open a ticket.
19:07 whiteknight I follow #perl6 sometimes at home, but at work I only watch #parrot
19:07 Coke I'm pretty sure it's a bug.
19:07 pmichaud Coke: I should know shortly.
19:10 Coke TT #1672
19:10 Coke (There's a stripped down version of the PIR there.)
19:12 Coke looks like trac lost its style sheet.
19:12 cotto_work Coke, wfm
19:13 whiteknight Coke: don't we have tests similar to that code snippet you posted? Shouldn't something like that have been caught in coretest?
19:13 Coke chrome, then. ah well.
19:13 Coke whiteknight: not for subs.
19:13 Coke not for subs created dynamically, that is.
19:14 Coke would have been caught if partcl hadn't been killed by an earlier commit.
19:14 whiteknight $P1 in your example is a Sub?
19:14 Coke an Eval.
19:14 whiteknight ah, okay
19:15 Coke you could probably get the same effect by going after the PIR compreg and building a sub.
19:16 dalek TT #1672 created by coke++: TT #389 fix introduced regression with globals.
19:16 dalek TT #1672: http://trac.parrot.org/parrot/ticket/1672
19:16 NotFound Coke: looking at what the Namespace PMC does, I think that you are right, its changes caused the problem.
19:16 Coke and I see no way to fix it either! =-)
19:17 whiteknight dukeleto: ping
19:18 whiteknight Coke: I think it's becoming pretty obvious that NameSpace PMCs are being tasked with solving too many storage-related tasks
19:18 pmichaud Coke: your code works in 2.3.0
19:18 pmichaud it fails in current trunk
19:18 NotFound I don't think this is a storage-related task, is a pir-related task.
19:18 whiteknight They store normal :nsentries, they store references to nested sub-namespaces, they store methods (though separately from :nsentry subs) and they store global data
19:19 whiteknight that's quite a lot of things to be storing in a single PMC
19:19 dukeleto whiteknight: pong
19:19 whiteknight dukeleto: do you have more info about that bug you mention with dunoplib libraries?
19:19 whiteknight is there a ticket for those?
19:19 pmichaud Coke: ah, I see you already detected that it worked in 2.3.0
19:19 pmichaud (sigh)
19:19 pmichaud Coke: no, I don't have a workaround handy.  I'm not even sure what's causing the problem.  Might be that PGE is missing an :nsentry flag somewhere
19:20 whiteknight the damn tt#389 bug is the worst
19:20 dukeleto whiteknight: i talked with chromatic++ about it, he said it is a long standing bug due to dynops being dependent on load order
19:21 NotFound whiteknight: I think the problem is that is trying to guess things, instead of receiving enough information about the task asked for.
19:21 Coke pmichaud: check the new sample. it's note PGE at all. :P
19:21 dukeleto whiteknight: he said dynops don't have a constant global number, they get assigned them at runtime
19:21 Coke *not
19:21 Coke it's just the namespace PMC.
19:21 pmichaud Coke: it's worth nothing that what comes back from PGE::P6Regex isn't a Sub, but rather an Eval PMC
19:21 whiteknight dukeleto, could you create a ticket for it so we can track it and have a record of it?
19:21 pmichaud new sample?
19:21 Coke pmichaud: yup. namespace is refusing to store any dynamic isasubs.
19:21 whiteknight pmichaud: but Eval isa Sub, right?
19:22 dukeleto whiteknight: so if you have a PBC with two dynops, then you load them in a different order from another snippet of PIR/PBC, the dynop #'s get confused
19:22 Coke http://trac.parrot.org/parrot/ticket/1672
19:22 cotto_work whiteknight and dukeleto, plobsing is working on that problem
19:22 whiteknight cotto_work: okay, that makes me feel better
19:22 pmichaud whiteknight: it's a Sub that likely doesn't have any flags, a :subid, a :nsentry, etc.
19:22 cotto_work It's not a simple fix though.
19:23 Coke pmichaud: and I see no way to add an :nsentry to a sub that is not created via .sub in PIR.
19:23 cotto_work very possible, just not simple
19:23 dukeleto whiteknight: yes, will create a ticket
19:23 whiteknight cotto_work: no, I wouldn't suggest that it is simple.
19:23 pmichaud Eval is a Sub pretty much only in declaration, it doesn't have most of the other things that a Sub PMC now has
19:23 Coke pmichaud: check the new sample. =-)
19:24 pmichaud Coke: I'm only seeing the one that uses PGE
19:24 pmichaud cache issue again, perhaps?
19:24 nopaste "coke" at 192.168.1.3 pasted "avoid trac cache for pmichaud" (10 lines) at http://nopaste.snit.ch/20852
19:24 davidfetter joined #parrot
19:25 dukeleto whiteknight: the thread "[RFC] Dynop Opnum Mapping" talks about the issue
19:25 dukeleto whiteknight: but the tt# mentioned there is wrong
19:26 whiteknight dukeleto: thread in the ml?
19:26 dukeleto whiteknight: yes, on parrot-dev
19:26 dukeleto whiteknight: i think http://trac.parrot.org/parrot/ticket/1663 is the same issue
19:26 dukeleto whiteknight: but manifests in a different way
19:28 whiteknight ok
19:29 * davidfetter waves to dukeleto
19:30 NotFound The problem is easy to trigger, just load_bytecode a pbc that have dynops loaded in a different order than the main program.
19:30 * dukeleto waves to davidfetter
19:30 NotFound A real pbc, hiding the problem by loading the pir is not a solution ;)
19:30 davidfetter what's the latest in pl/barratry?
19:30 dukeleto NotFound: can you write a test for that? does one already exist?
19:31 mj41 joined #parrot
19:31 NotFound dukeleto: I'll try to write a short example.
19:32 Khisanth joined #parrot
19:32 dmalcolm joined #parrot
19:32 bluescreen joined #parrot
19:32 dukeleto NotFound: that would be awesome!
19:32 japhb joined #parrot
19:32 patspam joined #parrot
19:32 jan joined #parrot
19:32 gaz joined #parrot
19:32 Andy joined #parrot
19:34 s1n joined #parrot
19:40 nopaste "NotFound" at 192.168.1.3 pasted "Example of dynop loading problem" (17 lines) at http://nopaste.snit.ch/20854
19:40 NotFound dukeleto: here is
19:41 NotFound Comment the .loadlib in the main program and works fine. Uncomment it and opcodes magically change meaning.
19:41 masak joined #parrot
19:43 whiteknight If I may ask a devil's advocate kind of question, are dynops worth having?
19:44 whiteknight I mean, there are relatively few of them, few people made any use of them before the os_massacre branch, and the people who are using them now report problems
19:44 NotFound Don't know, I never used it.
19:44 cotto_work Are you devilishly advocating using a C library?
19:45 whiteknight cotto_work: well, we have dynpmcs which can be written in C and do whatever we need. We have NCI to call C functions. I'm trying to figure out what niche dynops fill, and whether they are worth the effort
19:46 cotto_work they integrate better with Parrot than NCI (and moreso after plobsing's fix)
19:46 whiteknight "better"? How so?
19:46 NotFound cotto_work: look at that example and tell me again that they integrate well X-)
19:46 cotto_work "easier"
19:47 whiteknight I don't agree. I don't think there is any ease-of-use benefit to using them
19:49 whiteknight They are a pain in the ass to write and compile, a huge pain internally to load them and reallocate the op table, they cause problems in bytecode even considering plobsings patch, etc
19:49 whiteknight And when you consider how under-utilized they are, maybe it's not worth the development effort to keep them
19:49 cotto_work If we want to drop them, we'll have to provide a workable alternative to Rakudo first.
19:50 moritz drop what? dynops?
19:50 whiteknight yes, they do have one dynop that they use
19:50 whiteknight moritz: yes
19:50 whiteknight it's just a suggestion, but I don't see a huge benefit to keeping them if they have bugs
19:51 whiteknight if we look forward to Lorito, we're not going to have dynops as they currently exist anyway
19:51 cotto_work they actually have a handful
19:51 whiteknight do they? last
19:51 whiteknight i looked they only had 1
19:51 cotto_work 72 with all params expanded
19:51 LoganLK joined #parrot
19:52 whiteknight last I looked, they only had rebless_subclass. The rest of this list is new
19:52 cotto_work 15 distinct ops
19:52 moritz some for signature handling
19:53 whiteknight if they had a "utilities" dynpmc with methods, they would be able to do all these things still
19:54 whiteknight some of them look like they could be translated into vtables for ease
19:54 moritz with similar performance?
19:54 Coke whiteknight: partcl uses dynops extensively. as does rakudo.
19:54 Coke I'm not saying we /have/ to, but they are heavily used currently.
19:55 whiteknight Coke: that does take some of the wind out of my argument, but hardly changes my mind
19:55 Coke I know you like to rip stuff out of parrot, but people are using it. =-)
19:55 whiteknight Coke: it's not that I like to rip stuff out. I want Parrot to have what it needs, and not be forced to support things that it doesnt
19:56 whiteknight there are lots of things I want to add, for instance
19:56 Coke the thing is, it needs what the HLLs need.
19:56 whiteknight if dynops are the best solution to a particular problem, then that's one thing. If they are one possibility among a list of equally-good solutions, that's another
19:56 Coke now, I'm not saying in this particular case, that partcl, e.g., needs dynops.
19:56 NotFound A possible way to simplify things might be to associate dynops with HLL, not with any PBC loaded.
19:58 whiteknight NotFound: another would be to include an opnumber->opname map in the PBC header, so we could do translation later
19:59 NotFound whiteknight: yes, some variants of that were commented in the mailing list.
20:00 TimToady phone
20:00 NotFound And I think some variant of that is the only way compatible with the current usages and implementable in reasonable time.
20:01 NotFound It will increase the pbc size, but I don't care.
20:02 sorear Why are you ignoring the suggestion round which was done on parrot-dev?
20:02 Psyche^ joined #parrot
20:03 whiteknight sorear: what suggestions on parrot-dev?
20:03 whiteknight nevermind, I see it
20:04 NotFound sorear: maybe for fear of people assuming that the ones championing an option must implement it X-)
20:04 Coke Where there's a will, there's a ... benficiary.
20:04 Coke *bene
20:04 moritz where there's a will, there's a coleda *SCNR*
20:05 whiteknight I like the idea of just using a simple opnumber-opname hash, because we can use existing machinery to store that has in the constants table
20:05 whiteknight or, some other cache-like object to store also a frozen reference to the dynoplib so it can be immediately thawed and loaded when the PBC is read
20:06 whiteknight The biggest problem isn't even storing  this information in the PBC anyway, it's arranging the optable at runtime to be what we need.
20:06 whiteknight I'm wondering what we do if we try to execute an op from PBC which hasn't been loaded yet, but an entry for it exists because a subsequent library has been loaded
20:07 NotFound And don't forget that in order to make pbc_disassemble a barely usable tool, it must do something with that information.
20:09 Coke moritz: you mean, it's always christmas when I'm aroudn?
20:09 whiteknight some of these perl6 ops could easily be moved into Parrot. find_method_null_ok and x_setprophash are perfect examples
20:09 moritz Coke: the other way round: when it's christmas, you are somewhere
20:10 NotFound whiteknight: Making them parrot dynops? =:o
20:10 whiteknight allocate_signature does nothing that new_p_s_i can't do
20:10 whiteknight NotFound: not dynops. Regular, normal built-in ops
20:11 whiteknight transform_to_p6opaque could be turned into a "transform" op in Parrot that does vtable swaps for isomorphic types
20:12 NotFound I think that a way to avoid the null_ok, notnull and such will be to adopt the idea of a Undef type that throws when used for anything other than check for definedness.
20:12 whiteknight NotFound: that too
20:13 NotFound Just put in it the appropiate message for the exception, and there is no loss of information.
20:13 snl joined #parrot
20:14 NotFound You check the result if you want, and let it throw when used if not.
20:14 whiteknight it's a good idea
20:15 theory joined #parrot
20:15 NotFound It came from perl6, so it must be good ;)
20:18 dalek nqp-rx: 8483d1f | pmichaud++ | src/PAST/Compiler-Regex.pir:
20:18 dalek nqp-rx: Avoid "Can't substr beyond end of string" errors -- if we're already
20:18 dalek nqp-rx: beyond the end of the target, then just fail.
20:18 dalek nqp-rx: review: http://github.com/perl6/nqp-rx/commit/8​483d1f0bfd7035af60aac4ef693755b6a08fcce
20:18 dalek nqp-rx: 55d87b8 | pmichaud++ | t/nqp/50-regex.t:
20:18 dalek nqp-rx: Add test for "match beyond end of target" bug.
20:18 dalek nqp-rx: review: http://github.com/perl6/nqp-rx/commit/5​5d87b891e59c97484f816d386fbbadc0e360402
20:22 Coke whiteknight: In my case, I'm storing something /in the namespace/ so I can pull it out of the namespace. I don't see why this needs some other abstraction.
20:22 Coke (re TT#1672)
20:22 whiteknight Coke: because lots of things are storing lots of othre things in NameSpaces, and we're running into collisions and problems
20:22 whiteknight I suspect that if we fix your issue, we are going to break part of TT#389 again, and vice-versa
20:22 Coke yes, but I'm not.
20:23 whiteknight Coke: you're part of the problem because you're trying to store anything in there
20:23 whiteknight and everything else is trying to also store other crap there too
20:23 GeJ Good morning everyone.
20:23 NotFound Drop the namespaces and problem solved X-)
20:23 whiteknight good morning, GeJ
20:26 NotFound BTW, someone has an opinion about my patch in TT #1671 ?
20:27 whiteknight Coke: look at the evil that is NameSpace.set_pmc_keyed_str
20:27 whiteknight that's the VTABLE that is used for storing everything. It's basically a collection of special-cases
20:29 NotFound A problem is that Namespace in practice is not HLL mapable, so it must be all for everyone.
20:29 whiteknight NotFound: part of the reason why it is not mappable is because it relies on all sorts of crap to separate out all these different storage tasks
20:29 whiteknight get/set_pointer_keyed is a perfect example. You can't override that from PIR I don't think
20:30 whiteknight but the NameSpace interface requires it because get/set_pmc_keyed is so overloaded
20:30 whiteknight if you want to store items of like type by name, use a PMC that's designed to do that, like Hash
20:32 whiteknight anyway, it's time for me to go home now. Later
20:33 theory joined #parrot
20:34 eternaleye joined #parrot
20:36 Coke once I bandaid the sub issue (by storing it in a RPA and popping it out each time I get it), I am now finding issues with vtable overrides.
20:36 Coke that is less surprising, though.
20:37 Coke whoops, this is just a method.
20:45 dalek parrot: r47308 | moritz++ | trunk/ext/nqp-rx/src/stage0 (4 files):
20:45 dalek parrot: [nqp-rx] update stage0 files with fixes to char classes
20:45 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47308/
20:50 sorear pmichaud: did you see allison's questioning of the suitability of NQP?
20:50 pmichaud sorear: I did.
20:50 pmichaud I have no immediate comment.  I'll let the marketplace decide that question.
20:51 pmichaud so far she's the first person I've heard claim that writing things in PIR was easier/better than in NQP :-)
20:51 darbelo sorear: The suitability of NQP for any given task can't be questioned?
20:51 pmichaud (I grant that it may be better in some instances... which is why I still write things in PIR from time to time.)
20:52 cotto_work istr that plobsing felt the same way.  I remember it because I thought it was unusal.
20:52 sorear darbelo: if NQP's utility for something that it was designed to be is questioned by a credible person, something is Wrong and the NQP pumpking needs to know
20:52 cotto_work in his case it was the NCI thunk generator
20:53 patspam1 joined #parrot
20:55 darbelo NQP is a layer removed from some of parrot's features. It provides abstraction. If you want to get at those features, then you'll find NQP to be in the way. There's nothing surprising about that.
20:55 pmichaud sorear: allison++ and I have long had philosophical differences over the design of the various toolsets; this is likely another example.  Thus I think I'll let the marketplace decide this one.  If there were any specific items that are "hopelessly byzantine" I'm happy to discuss them, but so far it's just a general claim.
20:55 moritz pmichaud: I think the use of curlies is enough for a python fan to call something "hopelessly byzantine" (not entirely serious here :-) )
20:55 NotFound cotto_work: plobsing has been assimilated for the Winxed horde X-)
20:55 Tene I don't think I remember ever seeing the other side of those, what sort of design allison would advocate.
20:56 pmichaud NQP does try to make it possible to get at the features when they're needed, though.
20:56 pmichaud (in answer to darbelo's point)
20:57 pmichaud granted, there are some places where even that's not possible, but we try to add them in as we can (examples are pir:: and bacek++'s recent work with enabling multisubs)
20:58 bacek morning
20:58 darbelo Sure, but if I know more about parrot than about NQP, then I have to stop and think "How do I get at that from here?"
20:58 bacek pmichaud, speaking of which... :)
20:58 pmichaud darbelo: yes.  But experience with Rakudo has shown that eventually you learn those few cases and then NQP seems preferable (more)
20:59 darbelo The first time you use a seatbelt, you have to remember it's there and disengage it before getting out of the car.
20:59 pmichaud an analogy might be "I know more about C than Perl 5... but I have to stop and think 'How do I get at that from here?'"
20:59 Tene again, it's a question of optimizing for people who don't know the language.
20:59 Tene in some cases, that's great.  Many people differ on what cases those are, though.
20:59 Tene s/differ/disagree/
20:59 darbelo If all you wanted is to get out of the car, the seatbelt is in the way. This is not an argument against seatbelts.
21:00 pmichaud at some point I tend to go with Perl 5 because I can be overall more productive with it and remember the paths to the few places where I really need C.
21:01 pmichaud anyway, NQP and PCT both take an unapolegetically OO look at everything; Parrot doesn't (and that's where a lot of the mismatch occurs).
21:01 dalek parrot: r47309 | darbelo++ | branches/gsoc_nfg/src/string (2 files):
21:01 dalek parrot: Headerize.
21:01 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47309/
21:01 pmichaud so, for example,  NQP doesn't have an equivalent of   $P0 = new ['FileHandle']
21:02 Tene no way to pass a key to pir::new?
21:02 pmichaud and so someone who wants to do things directly on the bare Parrot classes has to do a little work on them
21:02 pmichaud Tene: keys in general are currently problematic (so no)
21:02 Tene 'k
21:02 sorear however, pir::new will accept a string or RPA equally well
21:03 ash_ joined #parrot
21:03 pmichaud one can do   pir::new(['FileHandle'])   or  pir::new(['Regex','Cursor'])
21:03 pmichaud (as sorear++ correctly states)
21:03 jnthn NQP supports anonymous array declarators like that?
21:03 jnthn Oh. :-)
21:04 sorear is there any update on the ParrotGrandPlan to deprecate keys in favor of good ol' arrays of arrays?
21:04 LoganLK joined #parrot
21:04 sorear jnthn: NQP supports anonymous *arrays* fine
21:04 jnthn Yes, arrays
21:04 jnthn :-)
21:04 sorear it has trouble with hashes, because of the block/hash ambiguity
21:04 dalek nqp-rx: 69506cb | moritz++ | src/stage0/ (4 files):
21:04 dalek nqp-rx: update stage0 files
21:04 jnthn Heh. I could probably clean up some code of mine knowing that...
21:04 dalek nqp-rx: review: http://github.com/perl6/nqp-rx/commit/6​9506cb3fdc1102aeaeb4babf50cc475c142ad58
21:04 dalek nqp-rx: f65cbf3 | moritz++ |  (2 files):
21:04 dalek nqp-rx: second shot at the substr-out-of-range error in <alpha> rule; with test
21:04 dalek nqp-rx: review: http://github.com/perl6/nqp-rx/commit/f​65cbf37a9f6efcb2b3452aee38f219fd2697f7e
21:04 dalek nqp-rx: b338c2b | moritz++ | src/stage0/ (4 files):
21:04 dalek nqp-rx: update stage0 files, again
21:04 dalek nqp-rx: review: http://github.com/perl6/nqp-rx/commit/b​338c2b0a5cfaac6529efc248c4c44dcea03be6f
21:04 pmichaud actually, nqp could detect the difference between a block/hash okay also
21:04 sorear neither pmichaud nor I are happy with the concept of copying the Perl6 magic hash block
21:05 jnthn (that's probably where I go and find I used anonymous arrays somewhere and then forgot 'em... :-))
21:05 pmichaud the tricky part is that Parrot doesn't have a Pair PMC :-)
21:05 sorear NQP supports <Foo Bar> syntax btw
21:05 pmichaud I can't complain about that, though, since I advocated eliminating Pair :-)
21:05 sorear pmichaud: nqp has syntactic pairs, we use them for named arguments...?
21:05 pmichaud named argument != Pair
21:05 pmichaud foo(a => 3)  # named argument
21:05 theory joined #parrot
21:05 pmichaud foo('a' => 3)  # Pair
21:06 pmichaud foo($a => 3)  # Pair
21:07 pmichaud anyway, back in december I looked at adding hash blocks to NQP, but it was non-trivial enough to make me decide to go ahead and wait :)
21:07 moritz speaking of hash blocks... the hash vs. block distinction makes some very nasty rakudobugs these days
21:08 sorear I wonder if allison knows about http://wiki.github.com/perl6/nqp-rx/requests
21:08 jnthn moritz: Such as?
21:08 jnthn (can take over on #perl6 maybe)
21:10 Coke hey, I still have stuff on that list!
21:10 gbacon joined #parrot
21:12 bacek pmichaud, any progress with multis in nqp?
21:13 ruoso joined #parrot
21:13 theory joined #parrot
21:13 pmichaud bacek: I'll definitely check it tonight.
21:13 bacek pmichaud, ok :)
21:13 atrodo So here's a question.  Can I do '$P0 = compreg "nqp"' and get a NQP compiler object?  I'm having the hardest time getting it to work
21:14 kurahaupo joined #parrot
21:14 bacek atrodo, try 'NQP-rx'.
21:15 bacek atrodo, and you do want .loadlib 'parrot-nqp' before it :)
21:16 atrodo bacek> I'm also in 2.3 right now, so I think that makes a difference.  Let me try and upgrade real quick
21:16 bacek atrodo, do you have .loadlib 'nqp'?
21:16 atrodo Yes
21:16 pmichaud atrodo: $P0 = get_root_global ['parrot'], 'NQP' also works.
21:17 pmichaud and it's load_bytecode, not loadlib
21:17 pmichaud thre is no 'nqp' loadlib afaik
21:17 pmichaud oops
21:17 pmichaud atrodo: $P0 = get_root_global ['parrot';'NQP'], 'Compiler'  also works.
21:17 sorear AFAIR the compiler's name is "parrot"
21:17 sorear not any variation of "nqp"
21:18 atrodo Actually, I'm using load_language 'nqp', which does look to work (since the tracing spewed out massive amounts after it)
21:18 pmichaud the nqp-rx compiler is under 'NQP-rx'
21:18 dalek parrot: r47310 | moritz++ | trunk/ext/nqp-rx/src/stage0 (4 files):
21:18 dalek parrot: [nqp-rx] update stage0 files again, with another fix for the <alpha> char class
21:18 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47310/
21:18 pmichaud so   $P0 = compreg "NQP-rx"    should work.
21:19 pmichaud (I didn't want to use 'NQP' because that would conflict with the old nqp compiler from compilers/nqp/.  Eventually I planned to make nqp-rx available under both names.)
21:19 pmichaud I don't think load_language 'nqp' can work, because nqp-rx isn't stored as 'nqp' anywhere.
21:20 atrodo It did work because I was using parrot 2.3
21:20 pmichaud ah
21:20 pmichaud then you were getting the old nqp
21:21 atrodo but not with compreg.  compreg never gave me a non-null pmc
21:21 pmichaud Strange.
21:21 purl Strange. are you using the current mod_perl engine and catalyst?
21:21 pmichaud old nqp should've been available as   compreg 'NQP'  in 2.3.0
21:22 pmichaud in fact, NQP itself even uses that
21:22 pmichaud .sub 'main' :main .param pmc args $P0 = compreg 'NQP'
21:22 pmichaud argh  newline fail
21:22 Coke I see purl is back. wonder wtf happened.
21:22 Coke going to yapc::na 2010?
21:22 pmichaud purl, going to yapc::na 2010?
21:22 purl wish i knew, pmichaud
21:22 pmichaud purl, going to yapc::na ?
21:22 purl pmichaud: bugger all, i dunno
21:22 Coke wtf. ok, still lobotomized.
21:23 bacek purl, purl?
21:23 purl bugger all, i dunno, bacek
21:23 pmichaud purl: Okay, so you know "Strange."  but nothing else useful.  You continue to be an annoyance.  :)
21:23 purl pmichaud: huh?
21:23 bacek purl, purl is little annoying bot
21:23 purl OK, bacek.
21:23 bacek purl, purl?
21:23 purl bacek: no idea
21:23 atrodo Ah ha!  it's "load_language "nqp" " and "$P0 = compreg "NQP" "
21:24 Coke only thing worse than purl is my own infobot. :P
21:24 atrodo That will, complicate, my code since I was planning on using the same string for load_language as compreg.  But, what surprises will 2.4 hold for me
21:25 Tene atrodo: there are some significant issues with case there.
21:25 Tene HLL namespaces are all lowercased.
21:25 pmichaud and NQP comes from before there were any standards on the topic.
21:26 Tene with current parrot, if you want this to NOT SUCK, you shouldn't ever have a language name with uppercase letters.
21:26 pmichaud (and I don't know that there are any standards yet on the topic)
21:31 atrodo Also, another embedding question, parrot_config.o, can that become a .so or could it not be compiled with PIC?
21:36 darbelo atrodo: What do you want to do with parrot_config.o?
21:37 theory joined #parrot
21:38 atrodo Well, I've got a bit of an issue.  I'm using kylix (delphi for linux) and it doesn't understand the "__i686.get_pc_thunk.bx" section when I include the .o
21:39 atrodo And I have to use it since I'm embedding to get the load_library et. all opcodes to be reasonable
21:39 darbelo Ehm, that is not a library. It's an executable.
21:40 darbelo Or, it used to be.
21:40 atrodo it's both
21:40 sorear __i686.get_pc_thunk.pc is what powers PIC
21:40 sorear take it out and you don't have PIC anymore
21:41 atrodo Yep, which I think is fine since it gets staticly linked as a .o
21:42 atrodo I've turned it into an .so and include it that way as a work around
21:44 atrodo darbelo> It's both a executable to get the parrot config options on the command line, but also a .o to include so you can call "Parrot_set_config_hash()" and get libparrot sane
21:45 darbelo atrodo: linking to that yourself is going to hurt later.
21:46 atrodo darbelo> Why?  My understand is that's what I'm suppose to do
21:47 darbelo It might help if I knew what you are up to. But if was supposed to be a .so it would be.
21:48 atrodo I'm just trying to embed and interact with parrot in my application
21:50 eternaleye joined #parrot
21:51 dalek parrot: r47311 | mikehh++ | branches/gc_massacre/src/gc/pool_allocator.c:
21:51 dalek parrot: add documentation
21:51 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47311/
21:52 darbelo And why can't you just use Parrot_set_config_hash_internal?
21:53 darbelo I know, it has _internal on it, but it's documented in embed.pod as valid...
21:55 NotFound "Called by Parrot_set_config_hash with the serialised hash which will be used in subsequently created Interpreters."
21:56 NotFound You can't just use it.
21:56 darbelo Parrot_set_config_hash isn't in libparrot.
21:57 NotFound darbelo: yes, that's the reason to have to link an .o file.
21:57 whiteknight joined #parrot
21:57 elmex joined #parrot
21:57 darbelo The problem is that he can't link to the .o file.
21:58 NotFound darbelo: but if you need the info to call Parrot_set_config_hash_internal, calling it doesn't solve anything.
21:59 bacek mikehh, Parrot_gc_pool_free is actually "Frees a fixed-size data item back to the pool for later reallocation"
22:00 NotFound What I don't know is if there is a reason to not have that info in libparrot or is just an historical artifact.
22:00 darbelo And all Parrot_set_config_hash does is delegate to Parrot_set_config_hash_internal with the data contained in the config fpmc. There's no black magic in there.
22:01 NotFound darbelo: the magis is just that you need the .o
22:01 darbelo No you don't. You need the .fpmc, that's where the config data is.
22:02 NotFound darbelo: yes, provided that you know where to locate it.
22:02 * dukeleto is watching chromatic++ talk at OSBridge
22:02 darbelo include/config.fpmc on any installed parrot?
22:03 theory joined #parrot
22:04 darbelo Or provide your own, if the default doesn't do what you want. An embedder whould be able to choose where he gets his config from.
22:04 darbelo s/whould/should/
22:05 NotFound darbelo: being able is good. Being forced is not.
22:06 darbelo True. But I think I've already forgotten what my original pooint was.
22:06 sorear dukeleto: Is he talking about anything interesting?
22:06 NotFound The point is that the current way sucks, I think.
22:07 darbelo So we're agreeing, then!
22:07 NotFound At least! ;)
22:08 dalek parrot: r47312 | mikehh++ | branches/gc_massacre/src/gc/gc_ms.c:
22:08 dalek parrot: add documentation
22:08 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47312/
22:08 darbelo I remember now! 'Link to a magic .o file' should not be the default way for embedders to get at our config data.
22:08 darbelo I'm not against keeping it as an option. I just hate it as a default.
22:10 whiteknight dukeleto: link to chromatic?
22:10 NotFound I don't like an option like that, except as a last resource. I'd like to have his information, or the minimal part of it requeired to load the rest, available in libparrot.
22:12 darbelo The problem with that is that I'd have to recompile libparrot if I want different defaults on my application
22:14 darbelo OTOH, some of the stuff we store in that hash shouldn't be on libparrot at all.
22:14 NotFound Not necesarily, you can have the information available without being forced to use it.
22:15 NotFound Just the path to the default .fpmc should be enough.
22:16 darbelo Parrot_set_config_hash_default() and Parrot_set_config_hash_from_somewhere_else() ?
22:17 NotFound Something like that will be fine, yes.
22:17 darbelo I like that.
22:18 lucian joined #parrot
22:18 kurahaupo joined #parrot
22:19 NotFound Also, the ability to load the default and ways to change anything not directly related with the internal of the machine.
22:20 NotFound Not being forced to create a .fpmc just to change some path.
22:21 darbelo Good point.
22:21 tcurtis whiteknight: http://opensourcebridge.org/sessions/399 appears to be the description of his talk.
22:23 darbelo "Defeating the Inevitable Zombie Apocalypse with Perl and Parrot"? I want a copy.
22:24 cotto_work darbelo++
22:24 darbelo chromatic++ # It's his book.
22:27 cotto_work btw, this is pretty awesome, pythonic though it may be - http://github.com/phreeza/cells
22:27 NotFound Is a good title, but I've recently seen "Pride and Prejudice and Zombies" and is hard to beat that X-)
22:30 tcurtis cotto_work: The author plans to add support for non-Python languages at some point. http://news.ycombinator.com/item?id=1395858
22:35 cotto_work so hypontic
22:35 mikehh bacek: gc_massacre branch passes codetest (except c++ comments in src/gc/gc_tms.c) but the documentation probably needs some work (especially in src/gc/gc_tms.c)
22:37 hercynium joined #parrot
22:41 dalek parrot: r47313 | mikehh++ | branches/gc_massacre/src/gc/gc_tms.c:
22:41 dalek parrot: add documentation
22:41 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47313/
22:41 dalek parrot: r47314 | mikehh++ | branches/gc_massacre/src/gc/pool_allocator.c:
22:41 dalek parrot: correct some documentation
22:41 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47314/
22:52 dukeleto whiteknight: http://opensourcebridge.org/sessions/399
22:59 kid51 joined #parrot
23:00 kid51 Why has the appearance of our Trac tickets changed?
23:00 ash_ someone said earlier that a stylesheet wasn't loading right
23:00 cotto_work kid51: how?
23:01 kid51 Usually, the different sections appear in various boxes
23:01 kid51 Most of the boxes have disappeared
23:02 kid51 Ex: http://trac.parrot.org/parrot/ticket/1666
23:02 kid51 I'm not a CSS guru, but I agree that non-loading stylesheet might explain it
23:03 cotto_work looks fine on my end.  seems to be an intermittent thing that's covered up by browsers' caching
23:03 ash_ there are no failed loads for me, hmmm
23:03 kid51 I just refreshed one page -- and all styling disappeared completely.
23:04 ash_ my computer might be caching everything, let me clear my caches
23:04 kid51 And not just on my ticket pages -- ticket query #10 just lost style as well.
23:06 kid51 In two different browsers, when I refresh, I lose all styles.
23:07 kid51 The text is all there, but, jeez, it looks like 1995 html
23:08 kid51 In any event -- I take it that the failures in trunk still persist?
23:09 ash_ what browser are you using?
23:09 kid51 I use both Camino and SeaMonkey.
23:10 bacek_at_work mikehh, thanks!
23:14 dalek parrot: r47315 | tcurtis++ | branches/gsoc_past_optimizat​ion/t/library/pastpattern.t:
23:14 dalek parrot: Refactor test_attribute_exact_matching_on_node_attrs so it's less redundant and I don't have rewrite everything for each attr.
23:14 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47315/
23:14 dalek parrot: r47316 | tcurtis++ | branches/gsoc_past_optimizat​ion/t/library/pastpattern.t:
23:14 dalek parrot: Fix node_with_attr_set so that setting "source"/"pos" doesn't crash Parrot.
23:14 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47316/
23:16 kid51 many failures in 'make coretest';  this is not good; trunk has been broken for at least 3 days
23:16 kid51 It's been a long time since that happened
23:18 kid51 whiteknight:  In your cross-thread data sharing post to list, what does STM mean?
23:18 sorear software transactional memory
23:18 sorear atomic { y = x; x = 2; }
23:19 mikehh_ joined #parrot
23:24 kid51 'make test' at any rate, is passing in trunk
23:24 kurahaupo joined #parrot
23:32 whiteknight kid51: Software Transactional Memory
23:33 ash_ is parrot going to try to cater to everyones needs with multi-processing or is it going to have its own opinion on how that should be done?
23:34 cotto_work be careful where you point that loaded question ;)
23:36 whiteknight ash_: it will be all things to all people, and it will shit out gold bricks when you press Ctrl+B
23:37 ash_ just wondering
23:39 mikehh_ make corevm/make coretest FAIL - 44 subtests fail, 208 subtests and 1 test not even run, 1 TODO pass
23:39 mikehh_ t/compilers/imcc/syn/clash.t - Failed test:  13 in testr
23:39 mikehh_ t/examples/pod.t - Failed tests:  111-112, 191 in examples_tests
23:39 mikehh_ all other tests PASS (pre/post-config, smoke (#34184), fulltest) at r47315 - Ubuntu 10.04 i386 (g++)
23:40 ash_ not trying to be mean, its just there are so many different ways of handling concurrency, (see pthreads, haskell, erlang, python/ruby, etc.)
23:40 whiteknight ash_: Chandon's GSoC project is to implement a hybrid threading system.
23:41 whiteknight there has been some speculation that in the future we may want something like Erlang's actors model, if we can find a good way to make it work with CPS
23:42 tetragon joined #parrot
23:43 cotto_work Yay.  I get to see the css-less trac site too now.
23:43 theory joined #parrot
23:44 cotto_work I find myself caring surprisingly little.
23:45 whiteknight it's not like Trac was a beauty queen before
23:45 sorear so now everybody gets to share in my delights as an elinks user?
23:45 sorear (what happened?)
23:47 dalek tracwiki: v13 | cotto++ | LoritoRoadmap
23:47 dalek tracwiki: add concurrency
23:47 dalek tracwiki: http://trac.parrot.org/parrot/wiki/Lor​itoRoadmap?version=13&amp;action=diff
23:54 ash_ Hmmm, I still get all of the style sheets
23:59 whiteknight me too

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

Parrot | source cross referenced