Camelia, the Perl 6 bug

IRC log for #parrot, 2009-05-07

Parrot | source cross referenced

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

All times shown according to UTC.

Time Nick Message
00:02 darbelo cotto: ping
00:03 cotto darbelo, pong
00:05 darbelo With exeptions out of the way I'm starting out with the standalone DecContext pmc.
00:05 darbelo I only need one pointer here, should I bother with an ATTR?
00:06 darbelo "best practice"-wise.
00:07 cotto flip a coin ;)
00:08 darbelo He. I guess ATTRs are better encapsulation.
00:08 cotto Yes, although a good implementation could work either way.
00:09 cotto and it'll be easier if you find that you need another ATTR
00:09 chromatic http://www.mono-project.com/Compacting_GC
00:10 darbelo Leaving the ATTR there also means I get to copy-paste from the other file :)
00:11 cotto I wonder what kind of changes Parrot will need to be able to support such a GC.
00:12 cotto btw, I haven't been giving your commits a proper review.  I apologize for that.
00:12 chromatic First we need Whiteknight to figure out the proper API.
00:13 darbelo No worries. Nothing very interesting to review so far. Just bashing prototypes and getting to know the tools.
00:15 Whiteknight waiting for me to figure something out is futile
00:16 Whiteknight I can only figure at third grade level
00:18 cotto Great!  Then we'll have a GC so simple a 3rd-grader can use it.
00:19 darbelo But wouldn't that be generational instead of compacting? ;-)
00:20 chromatic It thinks everyone over 19 is old.
00:20 Whiteknight darbelo: We're lucky that it's even functional, much less "generational" or "compacting" or anything fancy
00:21 darbelo Also I don't think compacting 3rd-graders is legal here.
00:21 jonathan chromatic: In what you linked to...
00:22 jonathan "Moving collector (it can compact the heap)."
00:22 jonathan chromatic: I've figured moving collectors won't fly in Parrot because one of the things we promise is that PMCs don't move?
00:22 jonathan Or am I misunderstanding?
00:23 Whiteknight jonathan: We could have PMC headers that don't move, and PMC guts that do
00:24 jonathan Whiteknight: We can, though it limits the scope of what the moving GC can do.
00:24 jonathan But yes, good point.
00:26 dalek parrot: r38519 | whiteknight++ | trunk/src (2 files):
00:26 dalek parrot: A basic fix for TT #595. Throw or rethrow on a null PMC or a non-exception PMC should cause a fatal error, instead of random and ungraceful results like we used to have. Probably not an ideal fix, but a basis for later improvements. NotFound++ for ideas
00:26 dalek parrot: review: https://trac.parrot.org/parrot/changeset/38519/
00:31 chromatic We *could* have moving headers as well... just look at Smalltalk/80
00:33 dalek parrot: r38520 | whiteknight++ | branches/gc_api:
00:33 dalek parrot: Creating a new branch to do some cleanup work on the GC API
00:33 dalek parrot: review: https://trac.parrot.org/parrot/changeset/38520/
00:35 Whiteknight chromatic: That would require some major rewrites throughout the codebase
00:37 cotto It's so nice to have a noninteractive RPG.
00:37 darbelo cotto: Huh?
00:38 cotto progress quest
00:38 purl progress quest is probably mesmorizing
00:38 chromatic I don't think the rewrites would be that bad.
00:38 bacek_ joined #parrot
00:39 cotto It lets you play an RPG without any of the tedious stuff.
00:41 darbelo Q: But I'll help!
00:41 darbelo A: Look deep into your heart, then say that again.
00:42 darbelo Heh
00:44 jonathan chromatic: Rather you than me. ;-)
00:44 jonathan :-)
00:45 bacek joined #parrot
00:47 jonathan chromatic: Reading that doc more, it seems it is a stop-the-world rather than asynch model too. Of course, so's our current one...
00:48 chromatic I'm not sure what the best model is.
00:48 chromatic I think there's a G1 implementation that can run async.
00:49 jonathan Aye, there's plenty of models out there...
00:49 jonathan I suspect getting something that's somewhat generational would be a win for Parrot over where we are today.
00:54 chromatic Yeah, identifying short-lived versus long-lived is very important.
00:56 jonathan OK, sleep time for me...night all.
00:57 eternaleye joined #parrot
01:05 dalek parrot: r38521 | whiteknight++ | branches/gc_api (5 files):
01:05 dalek parrot: [gc_api] start renaming some of the GC API functions to Parrot_gc_*
01:05 dalek parrot: review: https://trac.parrot.org/parrot/changeset/38521/
01:14 ilia left #parrot
01:40 Whiteknight chromatic: I'm convinced now that we can use the Boehm collector if we want to do that
01:41 Whiteknight however, I don't think there's any good way it can be used to guarantee order-of-destruction, like we have on our long-term roadmap
01:41 Whiteknight would probably give us a performance win in the short term, however
01:43 kid51 joined #parrot
01:57 chromatic Order of destruction only matters because we need to destroy some objects before others.
01:57 chromatic Not all... just some.
01:58 chromatic Also, you missed spaces between if and () in r38519.  Coke will be along shortly to rap your knuckles like some great bald manly nun.
02:00 rg chromatic: can you give an example where order of destruction matters?
02:01 chromatic Events.
02:02 chromatic The Scheduler has to shut down after the destruction of all events, as they rely on being able to remove themselves from it on their destruction.
02:03 rg thanks
02:43 dalek tracwiki: v12 | cotto++ | ParrotQuotes
02:43 dalek tracwiki: add a couple old quotes I found when looking for something else
02:44 dalek tracwiki: https://trac.parrot.org/parrot/wiki/Pa​rrotQuotes?version=12&action=diff
02:47 janus joined #parrot
03:10 dalek parrot: r38522 | jkeenan++ | trunk/src/ops/core.ops:
03:10 dalek parrot: Correct violation of c_parens coding standard in three locations.
03:10 dalek parrot: review: https://trac.parrot.org/parrot/changeset/38522/
03:11 japhb joined #parrot
03:13 dalek parrot: r38523 | jkeenan++ | trunk/runtime/parrot/library/P6object.pir:
03:13 dalek parrot: No trailing whitespace:  correction on 4 lines.
03:13 dalek parrot: review: https://trac.parrot.org/parrot/changeset/38523/
03:20 donaldh joined #parrot
03:23 dalek parrot: r38524 | jkeenan++ | trunk/t/codingstd/pdd_format.t:
03:23 dalek parrot: Rework the 78-char line length restriction in PDDs to permit some long 'F<>' tags to pass.
03:23 dalek parrot: review: https://trac.parrot.org/parrot/changeset/38524/
03:26 * kid51 must sleep
03:26 purl $kid51->sleep(8 * 3600);
04:00 Theory joined #parrot
04:17 Theory joined #parrot
04:19 autarch joined #parrot
04:19 autarch left #parrot
05:09 bacek joined #parrot
05:11 rakudohudson joined #parrot
05:16 mikehh joined #parrot
05:21 mikehh joined #parrot
06:14 uniejo joined #parrot
06:16 mikehh joined #parrot
07:20 donaldh joined #parrot
07:39 iblechbot joined #parrot
08:37 cotto bacek, ping
08:41 bacek cotto: pong
08:42 cotto the pmc compiler build is broken because pmc.pir thinks some files are in the wrong place
08:43 cotto Should I fix it or do you want to?
08:45 bacek cotto: I'll probably will not have much time till weekend.
08:46 bacek I'm trying to simplify RO handling in PMC... EPIC FAIL.
08:46 cotto I'll take it then.  Is the file layout correct or is pmc.pir?
08:46 cotto in pmc2c?
08:48 bacek lemmecheck
08:50 cotto btw, multiple PMC inheritance is an unintended consequence of the way the pmc2c was written
08:50 cotto I thought you'd like that.
08:50 bacek oh shi...
08:51 bacek really?
08:51 cotto yes
08:51 cotto lemme dig up the reference
08:52 cotto http://rt.perl.org/rt3/Ticket/D​isplay.html?id=48014#txn-523214
08:52 bacek (pmc.pir) Looks about alright. But if you want you can change it to separate generated files into somewhere else.
08:52 cotto So the layout should mirror pmc.pir?
08:53 bacek erm... What do you mean?
08:53 * bacek just read #48014...
08:55 cotto nm.  pmc.pir refers to a file that doesn't exist, not one that's been moved
08:55 bacek ah. maybe...
08:55 bacek afk # going home.
08:55 bacek see you in about 1 hour.
08:56 cotto ok
09:12 masak joined #parrot
09:16 dalek parrot: r38525 | cotto++ | branches/pmc_pct/config/gen/makefiles/pmc.in:
09:16 dalek parrot: [pmc] update the makefile template so the compiler builds again
09:16 dalek parrot: review: https://trac.parrot.org/parrot/changeset/38525/
09:17 Ademan joined #parrot
09:17 masak WhiteKnight: ping
09:29 cotto msg bacek nm about the pmc compiler.  I committed a fix.
09:29 purl Message for bacek stored.
10:07 bacek joined #parrot
10:13 cotto wb
10:13 bacek hi again
10:13 purl oh, you're back!
10:21 dalek parrot: r38526 | bacek++ | branches/tt631_part2:
10:21 dalek parrot: Second part to TT#631 cleanup - stop putting VTBALE functions into headers
10:21 dalek parrot: review: https://trac.parrot.org/parrot/changeset/38526/
10:41 dalek parrot: r38527 | cotto++ | branches/pmc_pct/compilers/pmc/src (3 files):
10:41 dalek parrot: [pmcc] store ATTR info somewhere meaningful
10:41 dalek parrot: review: https://trac.parrot.org/parrot/changeset/38527/
10:42 mikehh_ joined #parrot
11:00 dalek parrot: r38528 | bacek++ | branches/tt631_part2/lib/Parrot/Pmc2c (2 files):
11:01 dalek parrot: Stop emitting VTABLE functions into header files and declare them static. (Build is broken, because of TT#640
11:01 dalek parrot: review: https://trac.parrot.org/parrot/changeset/38528/
11:01 dalek parrot: r38529 | bacek++ | branches/tt631_part2/src/pmc_freeze.c:
11:01 dalek parrot: Don't use default_thaw and default_thawfinish directly.
11:01 dalek parrot: review: https://trac.parrot.org/parrot/changeset/38529/
11:01 dalek parrot: r38530 | bacek++ | branches/tt631_part2/lib/P​arrot/Pmc2c/PMCEmitter.pm:
11:01 dalek parrot: Declare vtable-related functions in headers
11:01 dalek parrot: review: https://trac.parrot.org/parrot/changeset/38530/
11:01 dalek parrot: r38531 | bacek++ | branches/tt631_part2/lib/P​arrot/Pmc2c/PMCEmitter.pm:
11:01 dalek parrot: Properly emit function signatures.
11:01 dalek parrot: review: https://trac.parrot.org/parrot/changeset/38531/
11:01 dalek parrot: r38532 | bacek++ | branches/tt631_part2/src/pmc/object.pmc:
11:01 dalek parrot: Don't invoke vtable functions by name.
11:01 dalek parrot: review: https://trac.parrot.org/parrot/changeset/38532/
11:07 cotto work it!
11:07 * purl emulates Rupaul
11:07 cotto I'm not entirely sure I want to look that up.
11:09 bacek cotto: which part?
11:09 purl which part is confusing?
11:13 bacek horray. It compiles! :)
11:14 dalek parrot: r38533 | bacek++ | branches/tt631_part2/src/pmc/integer.pmc:
11:14 dalek parrot: Don't call vtable function directly.
11:14 dalek parrot: review: https://trac.parrot.org/parrot/changeset/38533/
11:14 dalek parrot: r38534 | bacek++ | branches/tt631_part2/src/pmc/scalar.pmc:
11:14 dalek parrot: Don't call vtable functions directly.
11:14 dalek parrot: review: https://trac.parrot.org/parrot/changeset/38534/
11:14 bacek Any win32 devs around? (For smoking tt_631_part2 branch)
11:14 Casan joined #parrot
11:15 cotto I also almost have ATTRs doing something useful.
11:17 bacek cotto: that's good. I'm going to finish TT#631 before jumping back to pmc_pct branch
11:17 cotto +1 to anything that simplifies the pmc compiler
11:18 bacek BTW, we probably have to wait till allison's branch for PCC refactoring merged back before implementing METHOD's handling.
11:18 bacek Current implementation is overcomplicated for my small brain...
11:19 cotto It's funny how much refactoring this compiler is going to end up depending on.
11:19 bacek "Result: PASS" on my box for tt631_part2.
11:19 bacek cotto: but it already proven to be useful :)
11:20 donaldh joined #parrot
11:21 bacek ok. No win32 devs around...
11:22 * bacek wearing T-Shirt with "Better to ask for excuse" phrase.
11:22 bacek I'm going to merge this branch into trunk.
11:22 cotto I can make sure someone tests it tomorrow, if you like
11:22 bacek Which tomorrow? :)
11:23 cotto May 7
11:23 bacek It's already May 7. 9:23 PM
11:23 cotto For me it's only 04:23
11:24 * bacek waves from the future
11:24 * cotto asks for lottery numbers
11:24 cotto it never works
11:24 bacek It's just nature of lottery. You can know numbers, but you never wins
11:26 bacek seen jonathan
11:26 purl jonathan was last seen on #parrot 10 hours, 29 minutes and 56 seconds ago, saying: OK, sleep time for me...night all.
11:26 cotto 10.5 hours ought to be enough
11:27 bacek I hope so.
11:27 bacek jonathan: ping?
11:27 pmichaud enough for what?  ;-)
11:27 bacek for sleep :)
11:28 pmichaud well, I should get ready to board my flight... I'm first on the plane today.
11:29 bacek 10.5 hours probably enough to flight from US to Australia.
11:31 jonathan bacek: what're you after? :-)
11:31 bacek jonathan: good morning :) Smoking tt631_part2 branch on most popular operating system
11:33 cotto or windows
11:33 cotto ;)
11:34 bacek I said "popular", not "useful" :)
11:36 bacek Is "make testj" tests JIT?
11:37 moritz only if configured with --jitcapable
11:37 bacek moritz: thanks
11:38 jonathan bacek: kinda tied up with something at the moment - will try and get to that soonish for you.
11:39 * bacek dreaming about buildbot which will build all branches on set of platforms...
11:40 cotto There are a lot of branches for which testing wouldn't be useful, although a smart buildbot could figure out which ones need testing.
11:41 bacek cotto: indeed...
11:41 purl indubitably
11:43 bacek t/op/trans                         (Wstat: 256 Tests: 22 Failed: 1)
11:43 bacek Failed test:  13
11:44 bacek Is it expected to fail in trunk for "make testj"?
11:46 cotto I think you can ignore that one.
11:46 dalek parrot: r38535 | cotto++ | branches/pmc_pct/compilers/pmc/src (2 files):
11:46 dalek parrot: [pmcc] generate (non-inheriting) ATTR wrapper structs in headers
11:46 dalek parrot: review: https://trac.parrot.org/parrot/changeset/38535/
11:47 bacek cotto: Yeah. Just checked. It fails in trunk as well.
11:48 cotto bacek, do you have any objections to me getting pmc_pct updated to trunk later today?
11:48 bacek cotto: no.
11:48 cotto ok.  I'll do that.
11:48 cotto night
11:48 jonathan bacek: building
11:48 bacek night
11:49 bacek jonathan: ok. Thanks!
11:51 kid51 joined #parrot
11:55 jonathan bacek: did you want me to test Rakudo against this build also?
11:56 bacek jonathan: yes please. But I didn't expect failures if it builds.
11:57 bacek ouch. My English abilities fading...
12:00 jonathan Beats my abilities in any other language...
12:02 bacek even Perl6? ;)
12:11 bkuhn joined #parrot
12:18 * Coke yawns.
12:20 kid51 seen smash?
12:20 purl smash was last seen on #parrot 232 days, 17 hours, 42 minutes and 1 seconds ago, saying: hello everyone  [Sep 16 18:35:37 2008]
12:21 masak famous last words.
12:21 purl Nothing Can Possibly Go Wrong!
12:21 bacek jonathan: any progress?
12:25 jonathan bacek: parrot make test is has a pass
12:27 bacek horray. I'll commit it. (We can revert it later in case of zombie atta^W^W^W^W)
12:28 * bacek taking of T and wearing PJ.
12:28 bacek good night everyone.
12:29 dalek parrot: r38536 | bacek++ | trunk (6 files):
12:29 dalek parrot: Merge tt631_part2 branch into trunk.
12:29 dalek parrot: jonathan++ for testing on some strange platform which (unfortunately)
12:29 dalek parrot: used by many people.
12:29 dalek parrot: review: https://trac.parrot.org/parrot/changeset/38536/
12:31 jonathan gotta go for Slovak class now, will rakudo-test later
12:37 ruoso joined #parrot
12:39 rg1 joined #parrot
12:45 Coke speaking of zombie attack, I highly recommend the game "Plants vs. Zombies"
12:54 iblechbot joined #parrot
13:00 gryphon joined #parrot
13:09 riffraff joined #parrot
13:28 particle-nyc cute commit message, bacek, but i prefer to see the platform name there somewhere.
13:32 Infinoid uck, and the compiler, they are quite different targets on win32
13:32 Infinoid hi particle, how's nyc?
13:56 particle-nyc nyc is same as it ever was, which is wonderful.  hope to enjoy some more of it tonight after work.
14:18 Theory joined #parrot
14:23 * Coke misses Tir Na Nog.
14:27 davidfetter joined #parrot
14:29 particle1 joined #parrot
14:30 particle2 joined #parrot
14:34 NotFound ./src/pmc/managedstruct.c: In function 'VTABLE* Parrot_ManagedStruct_get_v​table(parrot_interp_t*)':
14:34 NotFound ./src/pmc/managedstruct.c:1089: error: 'Parrot_UnManagedStruct_update_vtable' was not declared in this scope
14:40 Coke just include the header?
14:41 NotFound What header? That function isn't in any header.
15:04 Coke ah. I assumed it was a reference to an explicit vtable on UMS.
15:07 Infinoid yep, ./src/pmc/managedstruct.c:1089: warning: implicit declaration of function 'Parrot_UnManagedStruct_update_vtable'
15:08 Infinoid NotFound: Let me guess, you're using g++?
15:08 NotFound Infinoid: yes, and for exactly that reason, mainly. To catch 'just warnings'
15:08 Infinoid NotFound++
15:09 Infinoid Looks like this came from the tt631_part2 branch merge
15:09 NotFound Silly commint coming...
15:14 Infinoid NotFound: I've posted your error message to TT #631
15:15 NotFound Infinoid: I think the error message is not enough, I'll make a commit with all the changes required to make it compile, to be able to find a way to generate and maybe avoid a lot.
15:16 Infinoid well, I think pmc2c just needs to put another couple of prototypes in the pmc_unmanagedstruct.h header it generates
15:17 Infinoid it generates the function, it should generate the prototype too.
15:17 NotFound Infinoid: unmanagedstruct is just the first file that manifest the problem
15:17 Infinoid yeah
15:17 NotFound Every pmc with a parent has the same problem, some of them worse
15:20 donaldh joined #parrot
15:21 nopaste "infinoid" at 75.140.33.106 pasted "test to work around a tt631 warning/error" (17 lines) at http://nopaste.snit.ch/16492
15:22 Infinoid That fixes the warning for me.  Clearly the logic is a little screwy there, but I don't understand what the original intention was.
15:23 Infinoid NotFound: Are there additional build issues after applying that?
15:24 Infinoid I think maybe the Default PMC isn't as special a case as the author of that code had thought
15:28 Infinoid looks like the digest dynpmcs have an additional, similar issue
15:29 NotFound I think this initialization scheme needs some improvement.
15:31 NotFound Those update_vtable function return a VTABLE pointer that is never used.
15:32 Infinoid the dynpmc errors need a little more work, but I can commit this first fix
15:32 Infinoid digest_group.c:75: warning: implicit declaration of function 'Parrot_MD2_class_init'
15:33 NotFound And each of those functions calls the update_vtable functions of all his parents. I think will be better that each parent takes care of his own parents.
15:33 Infinoid pmc2c is generating the prototypes for those, but for some reason they're ending up in md2.c rather than pmc_md2.h
15:34 Infinoid Maybe you should post that to the ticket :)
15:34 NotFound Still elaborating the idea...
15:35 Infinoid I'm not very good with MI concepts
15:35 Infinoid But maybe the idea is that only the class knows exactly which parents it inherits from?
15:35 NotFound No MI, just grandfathers
15:36 NotFound For example, Boolean does this: Parrot_scalar_update_vtable(vt); Parrot_Integer_update_vtable(vt); Parrot_Boolean_update_vtable(vt);
15:37 NotFound And Boolean doesn't even declare it extends scalar, it extends Integer, and Integer extends scalar
15:38 Coke the class doesn't know, pmc2c knows.
15:38 NotFound And the dependencies of the generated C needs to know
15:38 Coke all the inheritance is compile time, there's no lookups going on at runtime.
15:39 Coke they used to, no. Is this in trunk you're having this problem?
15:39 dalek parrot: r38537 | Infinoid++ | trunk/lib/Parrot/Pmc2c/PMCEmitter.pm:
15:39 dalek parrot: [pmc2c] Fix warnings caused by tt631_part2 branch merge.
15:39 dalek parrot: The code had been generating the necessary prototypes for the Default PMC, but no others.  It is needed elsewhere, too.
15:39 dalek parrot: This fixes the following warnings:
15:39 dalek parrot: ./src/pmc/managedstruct.c:1089: warning: implicit declaration of function 'Parrot_UnManagedStruct_update_vtable'
15:39 dalek parrot: ./src/pmc/managedstruct.c:1100: warning: implicit declaration of function 'Parrot_UnManagedStruct_ro_update_vtable'
15:39 dalek parrot: (Those warnings turn into errors under a C++ compiler.)
15:39 dalek parrot: review: https://trac.parrot.org/parrot/changeset/38537/
15:39 Infinoid Coke: Yeah.  Apparently all this became dynamic earlier today
15:40 NotFound Well, if they doesn't know is even worse, because the code really depends on it.
15:40 Coke I would, in general, hope that merge backs like that don't increase the build warnings.
15:41 NotFound Coke: many times it doesn't because I fix them for c++ build before someone notice ;)
15:42 Infinoid NotFound: What you're saying makes sense to me.  Think you can hack it to only emit first-order inheritance?
15:42 * Infinoid wonders if this has any ordering dependencies
15:42 NotFound If it has, will be good to know now, and fix it.
15:43 Infinoid definitely
15:45 NotFound I think I need to drop some const qualifier to fix another problem
15:47 Infinoid I saw that too.  Testing a fix for the digest dynpmcs and *_class_init first
15:47 Coke Infinoid: do we need similar changes for dynpmcs?
15:48 Infinoid Coke: Yes, working on that.
15:48 Coke (digest) ah, there. danke.
15:48 Infinoid if I'm right, the dynpmcs just need a oneliner fix
15:49 Infinoid NotFound: your const issue was in src/multidispatch.c?
15:50 Infinoid ouch, my oneliner caused lots of "./include/../src/pmc/pmc_sub.h:85: warning: 'Parrot_Sub_assign_pmc' declared 'static' but never defined" warnings
15:51 NotFound Infinoid: yes, this is a symptom of an old problem: several string functions must accept const STRINGs. They don't, and then we can't make const lost of things that ideally must be.
15:51 Infinoid sounds worthy of a ticket, if there isn't already one
15:52 NotFound And changing that string functions is difficult, because the charset/encoding functions implied has the same problem.
15:52 Infinoid yeah, it cascades
15:52 Infinoid consting is a nightmare :)
15:53 NotFound I'll put a TODO comment in include/parrot/multidispatch.h, and later create a ticket about it.
15:53 Infinoid I'd just create a ticket, we already have enough untracked TODOs
15:54 NotFound Infinoid: I dislike to drop a reasonable const qualifier without a comment about the reason.
15:55 Infinoid ah, so you're fixing it at the same time.  NotFound++
15:55 Coke I would rather have const warnings needing fixing than build failures on C++
15:55 NotFound Mmmm.... I can create the ticket first, and later edit it to add the release number.
15:56 NotFound Coke: const warnings *are* failures on C++
15:57 NotFound The ticket will be to find a way to be able to restore the const qualifiers without problems.
16:00 Coke NotFound: blah.
16:04 Infinoid In a way, consting is one thing that really annoys me about C.  It's the kind of thing the language really should do for you.
16:05 NotFound I like consting, it helps find errors. But needs a lot of care.
16:07 Infinoid I like the idea of consting, I just don't want to do it manually.  When you change a low level function, you have to update 10 layers of APIs, it's a maintenance burden that doesn't scale very well
16:09 NotFound Infinoid: yes, but the better known solution is to always make const the arguments that doesn't need to not be from the beginning. Relaxing them later is easier than enforcing.
16:11 dalek parrot: r38538 | Infinoid++ | trunk/lib/Parrot/Pmc2c/PMCEmitter.pm:
16:11 dalek parrot: [pmc2c] Fix more warnings caused by tt631_part2 branch merge.
16:11 dalek parrot: Similar to r38537, emit a class_init prototype for dynpmcs.  This fixes warnings like:
16:11 dalek parrot: digest_group.c:75: warning: implicit declaration of function 'Parrot_MD2_class_init'
16:11 dalek parrot: review: https://trac.parrot.org/parrot/changeset/38538/
16:13 NotFound Infinoid: testing now with this last commit and the multidispatch.h change...
16:16 iblechbot joined #parrot
16:17 NotFound It builds :)
16:18 Infinoid Was the multidispatch.h issue triggered somehow by the tt631_part2 merge?
16:18 NotFound I looked at the diff, and looks like the file hasn't change in that commit.
16:19 Infinoid msg bacek There was some breakage from your tt631_part2 merge, please see r38537, r38538 and my comments to TT #631.
16:19 purl Message for bacek stored.
16:19 NotFound But maybe the functions that uses his members are the culprit.
16:20 Infinoid Ok.  Either way, I'm glad you're testing this. :)
16:22 NotFound Test pass :)
16:25 NotFound Committed
16:25 dalek parrot: r38539 | NotFound++ | trunk/include/parrot/multidispatch.h:
16:25 dalek parrot: [cage] drop some const qualifiers, TT #646
16:25 dalek parrot: review: https://trac.parrot.org/parrot/changeset/38539/
16:30 Infinoid For reference, it looks like those warnings were caused by r38504
16:32 NotFound I'll take a look at it
16:33 NotFound Ah, yes, it were char * before
16:48 whoppix joined #parrot
17:00 rdice joined #parrot
17:01 tewk joined #parrot
17:39 amoc joined #parrot
17:44 Coke (drop const qualifiers) didn't you say it needed to be MORe consty?
17:45 NotFound Coke: ideally. In the meantime, we want to make it work
17:46 Coke roger.
17:46 NotFound We need to make a lot of functions more consty, in order to be able to have variables and struct menbers const.
17:48 Coke seems like that's a decent cage task. "make this const, and then fix everything that breaks'
17:48 NotFound And while we can't make it const, let's not lie to the compiler.
17:48 NotFound Coke: unfortunately, people tends to "fix" it by adding lots of const casts.
17:50 cognominal joined #parrot
17:52 NotFound This is funny: we have a function called init_world_once that is called lots of times.
17:52 jonathan lol
17:55 NotFound Parrot_platform_init_code is supposed to be called one time for interpreter, or only for the first interpreter?
17:57 Coke msg whiteknight Hey, can we kill the old gsoc branches if you're starting a new one? =-)
17:57 purl Message for whiteknight stored.
17:58 mtk joined #parrot
18:00 mtk left #parrot
18:11 janus joined #parrot
18:48 Andy joined #parrot
19:08 darbelo joined #parrot
19:15 dalek parrot: r38540 | NotFound++ | trunk/src/embed.c:
19:15 dalek parrot: [cage] drop an unused declaration
19:15 dalek parrot: review: https://trac.parrot.org/parrot/changeset/38540/
19:20 donaldh joined #parrot
19:24 cognominal joined #parrot
19:32 dalek rakudo: 06e2f1d | jnthn++ | src/parrot/ClassHOW.pir:
19:32 dalek rakudo: When generating parents list, need to stop at Perl 6's Object.
19:32 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/0​6e2f1d2d94db42630bb2354a749be7eeb980423
19:32 dalek rakudo: 194b524 | jnthn++ | src/setting/Object.pm:
19:32 dalek rakudo: Fill out the implementation of .WALK such that it passes all of S12-introspection/walk.t.
19:32 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/1​94b524fee6adf282440768f376f724caff1acb0
19:32 dalek rakudo: 6db88b0 | jnthn++ | t/spectest.data:
19:32 dalek rakudo: Add S12-introspection/walk.t.
19:32 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/6​db88b0fb26dc84c925bc9792688354d8e01907a
19:40 krg joined #parrot
19:58 bacek joined #parrot
20:02 cotto bacek, do you mind if I rename the pmc compiler to pmcc?
20:10 cotto msg bacek Do you mind if I rename the pmc compiler to pmcc?
20:10 purl Message for bacek stored.
20:45 tewk perl5 question: is there anyway to modify a my variable at package scope from outside the package?
20:46 PerlJam tewk: er ...  yes?  what do you mean by "outside the package"?
20:47 PerlJam tewk: lexicals are orthogonal to packages, so if you said package foo; my $blah = 5;  package bar;  $blah = 7;  that's fine
20:48 chromatic joined #parrot
20:48 chromatic The algorithmic performance of CodeString's lineof() method is terrible.
20:48 Infinoid tewk: you can ... yeah, what PerlJam said.  Or you can export a reference to it by declaring that reference as "our"
20:48 chromatic Rakudo parsing gets a 25% speed improvement by fixing that.
20:48 Infinoid tewk: But the guy maintaining your code 3 years from now will stab you.
20:48 chromatic (estimated -- I haven't done it yet)
20:48 Infinoid Wow, that's huge.
20:48 PerlJam chromatic: awww ... I was about to ++ you for the 25% boost  :)
20:49 PerlJam chromatic++ anyway for the digging.
20:49 tewk PerlJam: I want to reach into Test::Builder and set $Opened_Testhandles to 0
20:49 PerlJam tewk: you can't do that except from within the Test/Builder.pm file itself.
20:49 jonathan chromatic: is lineof() called much apart from when there's an error and we need the line number?
20:50 PerlJam jonathan: anything that makes rakudo even just a little faster is good in my book  :)
20:51 jonathan Oh, for sure.
20:51 purl like totally!
20:51 jonathan Especially if it's 25%. ;-)
20:51 tewk PerlJam: Yeah thats what I thought.
20:52 Infinoid If we can save 25% by improving something that's only used in the error path, we're spending way too much time in the error path.  So I think it must be called a lot more often than that
20:52 jonathan aye
20:53 Infinoid Oh, aren't annotations set up ahead of time?
20:53 chromatic lineof() gets called 8,442 times when processing actions.pm.
20:54 bacek good morning
20:54 Coke chromatic: Codestring was migrated to C from PIR, as I recall. I may even have had a hand in it. I wonder if it would be faster in PIR.
20:55 Infinoid morning bacek
20:55 chromatic This part won't be faster in PIR.
20:57 Coke PerlJam: (anything that makes it a little faster) that's dangerous, taken to the extremes it was in parrot.
20:57 GeJ Good mornning everyone
20:57 Infinoid hi GeJ
20:57 Coke I mean, I think we're past the point of premature optimization, but still.
20:58 moritz so basically lineof() doesn't do any caching, right?
21:00 chromatic Right.
21:01 chromatic I'm adding two "last line number/pos seen" INTVALs as a cache, presuming we always inchworm along the string (given that this is a parser, it's an easy assumption).
21:02 moritz yes, that should account for 90% of all cases with 10% effort, or so ;-)
21:02 bacek Infinoid: (r38537) oops. Sorry.
21:02 * bacek making note to self - "Disable ccache after merge for checking build"
21:02 chromatic At least 90%.
21:03 PerlJam Coke: are you saying that chromatic is dangerous?  :)
21:03 bacek purl: msg cotto Just rename it.
21:03 purl Message for cotto stored.
21:04 Infinoid bacek: It's ok.  We fixed one of chromatic's breakages at the same time, r38539 :)
21:06 chromatic Sure, it compiles now... but it also compiles faster now too!
21:07 moritz let's ship it!
21:08 cotto ok
21:11 Infinoid bacek: More importantly, did I fix it in the correct way?  (I'm not familiar with the changes you were making.)
21:13 bacek Infinoid: not 100%...
21:13 bacek r38542
21:14 dalek parrot: r38541 | cotto++ | branches/pmc_pct/compilers/pmc (2 files):
21:14 dalek parrot: [pmcc] generate PARROT_FOO macro, plus a test for it and the ATTR wrapper struct
21:14 dalek parrot: review: https://trac.parrot.org/parrot/changeset/38541/
21:14 dalek parrot: r38542 | bacek++ | trunk/lib/Parrot/Pmc2c/PMCEmitter.pm:
21:14 dalek parrot: Don't emit Parrot_default_update_vtable signature into header. We don't have this functions.
21:14 dalek parrot: review: https://trac.parrot.org/parrot/changeset/38542/
21:15 Infinoid Oh.  So the original check just needed to be inverted
21:15 bacek Yes...
21:16 Infinoid Ok, thanks for fixing the fix :)
21:16 bacek ;)
21:19 bacek Infinoid++ # Fixing bacek-- silly mistakes :/
21:21 dalek parrot: r38543 | bacek++ | branches/tt631_part2:
21:21 dalek parrot: Removed tt631_part2 branch. It was merged and fixed in trunk.
21:21 dalek parrot: review: https://trac.parrot.org/parrot/changeset/38543/
21:22 jq joined #parrot
21:23 bacek cotto: If you'll have time you can remove "parents" Hash in nodes.pir. It should be scalar similar to "class_init".
21:28 cotto bacek, are you thinking that it should be a csv list?  We need to support multiple inheritance, even if it wasn't originally intended.
21:31 cotto although I really would like to get that "feature" deprecated
21:31 bacek hm. I'm not sure that such complexity to support multiple inheritance required.
21:31 bacek let's "deprecate" it :)
21:32 cotto we should at least wait until partcl's working before we kill it again
21:33 jonathan That would really need a deprecation cycle. Accidental or not, it's something people could easily have come to use...
21:33 cotto No, it's something that they *have* come to use.
21:34 jonathan Well, there you go then. :-)
21:34 cotto but getting in a deprecation notice now would give them plenty of time to update before 2.0, when it'd be removed
21:35 jonathan *nod*
21:40 Infinoid Hmm.  if Parrot_Boolean_ro_update_vtable (for example) assigns all the "write" slots in the vtable with functions which throw exceptions, is it valid to assume Parrot_scalar_ro_update_vtable(), Parrot_Integer_ro_update_vtable() and Parrot_Boolean_ro_update_vtable() all do the same thing?  if so, it would seem Parrot_Boolean_ro_get_vtable() doesn't have to call all 3 of those, only the last one.
21:40 dalek decnum-dynpmcs: r22 | darbelo++ | trunk/src/pmc/decnum.pmc:
21:40 dalek decnum-dynpmcs: Incorporate suggestions by cotto++ and WWhiteknight++.
21:40 dalek decnum-dynpmcs: Also, don't leak a string.
21:40 dalek decnum-dynpmcs: review: http://code.google.com/p/decn​um-dynpmcs/source/detail?r=22
21:42 bacek Infinoid: indeed. I'm going to refactor _ro_ handling in next branch. tt631_part3.
21:42 darbelo Crap. I mistyped Whiteknight++.
21:43 darbelo Infinoid: Karma aliases work :)
21:43 cotto That's ok.  purl is only smart enough to do one karma change per line
21:43 bacek Problem in "src/dynpmc/rotest.pmc". It overrides "get_integer" with ":write" trait :/
21:43 darbelo I'll keep that in mind.
21:43 Infinoid Cool.  NotFound++ mentioned something earlier (see http://irclog.perlgeek.de/p​arrot/2009-05-07#i_1126109 ) about update_vtable functions calling eachother recursively, resulting in redundant calls to grandparent methods.  But I don't see it - the get_vtable functions call the update_vtable functions, but that all looks fine to me
21:44 Whiteknight joined #parrot
21:45 NotFound Not redundant, just think it can be done in a cleaner way.
21:45 bacek NotFound: it definitely can.
21:45 Infinoid I misunderstood what you said, sorry.
21:46 NotFound Is esasy to misunderstand my misenglish ;)
21:47 bacek Actually, we doesn't support multiple inheritance of PMC. So update_vtable/get_vtable can be merged into one.
21:48 bacek derived_get_vtable() { VTABLE * vt = parent_get_vtable(); ... ; return vt };
22:03 dalek parrot: r38544 | whiteknight++ | branches/gc_api (8 files):
22:03 dalek parrot: [gc_api] rename add_pmc_ext and add_pmc_sync to Parrot_gc_*
22:04 dalek parrot: review: https://trac.parrot.org/parrot/changeset/38544/
22:05 chromatic joined #parrot
22:10 dalek parrot: r38545 | whiteknight++ | branches/gc_api/src/gc/api.c:
22:10 dalek parrot: [gc_api] Throw exceptions to uniformly handle cases where a memory allocation has failed
22:10 dalek parrot: review: https://trac.parrot.org/parrot/changeset/38545/
22:10 allison joined #parrot
22:17 dalek parrot: r38546 | whiteknight++ | branches/gc_api/src/gc/pools.c:
22:17 dalek parrot: [gc_api] change sized pools so they can allocate objects of size sizeof(void*) and up, where they previously couldn't allocate objects smaller then sizeof(Buffer)
22:17 dalek parrot: review: https://trac.parrot.org/parrot/changeset/38546/
22:23 hudnix joined #parrot
22:39 dalek decnum-dynpmcs: r23 | darbelo++ | trunk/Configure.pl:
22:39 dalek decnum-dynpmcs: Remove an unused option from Configure.pl
22:39 dalek decnum-dynpmcs: review: http://code.google.com/p/decn​um-dynpmcs/source/detail?r=23
22:39 kid51 joined #parrot
22:41 chromatic joined #parrot
22:42 Whiteknight joined #parrot
22:45 allison joined #parrot
22:46 dalek parrot: r38547 | chromatic++ | trunk/src/pmc/codestring.pmc:
22:46 dalek parrot: [PMC] Added simple line number caching to CodeString PMC to avoid repeatedly
22:46 dalek parrot: recalculating line numbers.  This improves the Rakudo building benchmark by
22:46 dalek parrot: 5.96%.
22:46 dalek parrot: review: https://trac.parrot.org/parrot/changeset/38547/
22:46 dalek parrot: r38548 | cotto++ | trunk/CREDITS:
22:46 dalek parrot: [CREDITS] add dalek alias for cotto
22:46 dalek parrot: review: https://trac.parrot.org/parrot/changeset/38548/
22:56 dalek parrot: r38549 | whiteknight++ | branches/gc_api/src/gc (2 files):
22:56 dalek parrot: [gc_api] Add some comments about how to eventually allocate Sync objects from the memory pools. Uncommenting those things causes a segfault, but I'm not dealing with that right now.
22:56 dalek parrot: review: https://trac.parrot.org/parrot/changeset/38549/
22:58 tetragon joined #parrot
22:59 chromatic Hm.  Isn't "I'll deal with segfaults later" what causes problems with so many branches?
23:11 darbelo joined #parrot
23:15 kid51 Does anyone know how the HTML version of our PDDs is generated?
23:15 darbelo make html?
23:15 purl make html is Geekneeus's next step :D
23:15 rg make html?
23:15 purl make html is, like, Geekneeus's next step :D
23:17 kid51 Yeah, but is there something a bit more focused I can use to test a small segment of POD?  (Am looking at https://trac.parrot.org/parrot/ticket/634)
23:18 kid51 I don't understand what this line in Makefile means:  html : html.dummy
23:19 rg not that i could find. it's basically one big script that generates the whole set including index pages
23:19 kid51 ... and in any event, what I really want is a Perl program I can use to test patches quickly.
23:19 darbelo pod2html?
23:19 purl pod2html is broken on &s or a subroutine of Pod::Html or the main source of warnings garbage in me logs or http://obsidianrook.com/dev​notes/pod-html-summary.html
23:20 kid51 purl, forget pod2html
23:20 purl kid51: I forgot pod2html
23:20 rg and it needs to be the html version? otherwise perldoc should do fine.
23:20 donaldh joined #parrot
23:20 kid51 Well, for that particular TT, we need to see what's rendered in HTML.
23:21 rg i guess the makefile rule is so that it can be switched between html.stub and html.dummy depending on whether configure was able to find perldoc.
23:21 kid51 For other 'make' targets, I know what Perl, shell, or c programs are being invoked by the target.
23:22 rg huh? look at the Makefile in docs
23:22 kid51 But in none of the docs* or html* targets do I see a program invoked.
23:23 dalek parrot: r38550 | cotto++ | branches/pmc_pct (0 files):
23:23 dalek parrot: [pmcc] start renaming pmc compiler to pmcc
23:23 dalek parrot: review: https://trac.parrot.org/parrot/changeset/38550/
23:23 kid51 So it's a *different* Makefile?
23:23 rg the main Makefile just invokes make html in docs
23:23 rg yes
23:23 kid51 k
23:23 Whiteknight chromatic: The thing that causes segfaults is a change that I haven't made yet
23:24 Whiteknight it's like a "wishlist item" that I made a personal note do implement later
23:24 kid51 This looks more promising:
23:24 kid51 html: all
23:24 kid51 $(PERL) -I../lib ../tools/docs/write_docs.pl --silent --version=$(VERSION)
23:24 rg that's the one.
23:25 chromatic Okay good.
23:26 dalek parrot: r38551 | whiteknight++ | branches/gc_api (6 files):
23:26 dalek parrot: [gc_api] rename new_string_header to Parrot_gc_new_string_header
23:26 dalek parrot: review: https://trac.parrot.org/parrot/changeset/38551/
23:26 Whiteknight chromatic: I've learned my lesson on that point. Learned it but good.
23:26 Whiteknight a few more credits till I graduate from chromatics programming school of hard knocks
23:28 eternaleye joined #parrot
23:29 dalek parrot: r38552 | whiteknight++ | branches/gc_api/src/gc/api.c:
23:29 dalek parrot: [gc_api] throw an exception when we cannot allocate a new string, and fix some other error messages that I blindly copypasta'd earlier
23:29 dalek parrot: review: https://trac.parrot.org/parrot/changeset/38552/
23:32 dalek parrot: r38553 | cotto++ | trunk/config/gen/makefiles/root.in:
23:33 dalek parrot: [pmc] add a missing makefile dependency
23:33 dalek parrot: review: https://trac.parrot.org/parrot/changeset/38553/
23:33 dalek parrot: r38554 | whiteknight++ | branches/gc_api/src/gc/api.c:
23:33 dalek parrot: [gc_api] delete unused function new_buffer_header
23:33 dalek parrot: review: https://trac.parrot.org/parrot/changeset/38554/
23:39 dalek parrot: r38555 | cotto++ | branches/pmc_pct (10 files):
23:39 dalek parrot: [pmcc] finish renaming pmc compiler to pmcc, fix references to changed files, etc
23:39 dalek parrot: review: https://trac.parrot.org/parrot/changeset/38555/
23:42 dalek parrot: r38556 | whiteknight++ | branches/gc_api (3 files):
23:42 dalek parrot: [gc_api] rename new_bufferlike_header to Parrot_gc_new_bufferlike_header
23:42 dalek parrot: review: https://trac.parrot.org/parrot/changeset/38556/
23:47 cotto merging is fun
23:47 cotto and by fun I mean slow
23:48 chromatic and by slow you mean "Wow, that glacier cut me off!"
23:49 dalek parrot: r38557 | whiteknight++ | branches/gc_api/src/gc/api.c:
23:49 dalek parrot: [gc_api] add a small comment note about how buffer-like headers are only used in one place right now apparently, and we might be able to repurpose the concept for something else later
23:49 dalek parrot: review: https://trac.parrot.org/parrot/changeset/38557/
23:54 Whiteknight I'm finding some weird stuff with the PObj_sysmem flag
23:59 Andy joined #parrot

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

Parrot | source cross referenced