|
www.parrot.org | Prepare for 1.6.0: Improve test coverage for NameSpace and Continuation PMCs / Stability! / Port tests to PIR / Performance! / No more big branch merging until after 1.6.0 Set by moderator on 8 September 2009. |
|||
| szbalint | my point was that there is already a built in time delay, I don't think there would be anyone who would say "well I'd contribute, if not for the project's tendency to use git"... | 00:00 | |
| at least if I try to think about barriers of entry as a newbie | |||
| which I am :) | 00:01 | ||
| allison | How is Git for source browsing tools, as in Trac? | ||
| Does it have integration with Trac? | 00:02 | ||
| How does it handle commit notifications (parrot-commits list)? | |||
| szbalint | gitweb is written in Perl :) | ||
| darbelo | szbalint: hand Whiteknight a ~200 line patch removing shitty code, he'll *force* a commit bit on you rather than reviewing another one of those. | 00:03 | |
| treed | allison: Unsure about Trac, but git has the appropriate pre/post-commit hooks. | ||
| Whiteknight | darbelo: I want good coders to have access to the code | ||
| I don't think I support a switch if it's going to regress features on Trac | 00:04 | ||
| that would be far too much pain | |||
| allison | szbalint: gitweb looks pretty primitive | ||
| chromatic | Yes, we need to keep Trac integration. | ||
| szbalint | there apparently multiple plugins for trac - git integration, I don't have first hand experience with that issue | 00:05 | |
| allison | so it might work, or it might require a few revisions to get a working version like email2trac did | ||
| Whiteknight | ...does email2trac work now? | 00:06 | |
| darbelo | allegedly, it does. | ||
| duk3leto | i wouldn't propose switching to git if we couldn't have the same kind of trac integration that we do now | ||
| trac-hacks.org/wiki/GitPlugin | 00:07 | ||
| dalek | tracwiki: v2 | dukeleto++ | GitCookbook | ||
| szbalint | it's something to test I guess | ||
| dalek | tracwiki: trac.parrot.org/parrot/wiki/GitCoo...ction=diff | ||
| duk3leto | looks like trac supports git | ||
| Tene | So... what's the trac integration with svn? I don't actually use trac enough to know what's being discussed here. | ||
| allison | Whiteknight: yup, I tested it round trip, it really works | 00:08 | |
| Tene: a really nice source browser, revisions act like wiki pages, and auto link from tickets | |||
| Whiteknight | allison: any kind of announcement or documentation about it? | 00:09 | |
| szbalint | allison: gitweb is quite basic, but with git you can browse the repository locally with applications running on localhost itself - so for advanced usage that's the solution probably | ||
| since you actually have the whole repository history | |||
| Tene | szbalint: or just as much of it as you want. | ||
| Git supports shallow clones. | 00:10 | ||
| allison | Whiteknight: I thought I saw a message from Coke run by the mailing list when we got it working | ||
| szbalint: what's the interface like? | |||
| Whiteknight | maybe I missed it | ||
| allison | Whiteknight: essentially, if you reply to a ticket email message, it gets added as a comment to the ticket | 00:11 | |
| Whiteknight | oh, that's hot | ||
| allison | Whiteknight: and if you email to tickets@parrot.org it creates a new ticket | ||
| szbalint | allison: multiple GUIs are available, I prefer commandline so I don't really know, just tried a few out for curiosity's sake... | ||
| chromatic | tickets@parrot.org works now? That's good! | 00:12 | |
| Tene | :D | ||
| szbalint | did anyone try to import the whole svn history into git yet btw? How's that wrt repository size? | ||
| Tene | gitk and git-gui are the traditional ones... don't know about others or newer guis. | ||
| allison | ah, I thought folks knew that (I did mention it in my report that week, at least) | ||
| Whiteknight | see? even chromatic didn't know! And he's supposed to know everything | ||
| chromatic | I tried responding to a ticket, didn't see if it worked that way. | 00:13 | |
| duk3leto | szbalint: we have a git-svn mirror, but I haven't gotten the info public yet | ||
| szbalint: the git-svn metadata takes up a lot of space. it is quite large. i can get you the exact figure in a bit | 00:14 | ||
| duk3leto says "screw you" to firefox for losing the most recent changes to the git cookbook | |||
| Tene | duk3leto: ^W ? | ||
| purl | ^W is ^Wine | ||
| allison has to be up and on the road in less than 8 hours, turning in | 00:15 | ||
| szbalint | debian sid has about 4-5 git guis | ||
| Tene | 'night allison | ||
| allison | Tene: 'night | 00:16 | |
| cotto | clock? | ||
| purl | cotto: LAX: Tue 5:16pm PDT / CHI: Tue 7:16pm CDT / NYC: Tue 8:16pm EDT / LON: Wed 1:16am BST / BER: Wed 2:16am CEST / IND: Wed 5:46am IST / TOK: Wed 9:16am JST / SYD: Wed 10:16am EST / | ||
| duk3leto | Tene: gitx is pretty slick if you are on os x | ||
| szbalint | my experience is that a pure git checkout with all the repo history is smaller or on par with a svn HEAD checkout | ||
| duk3leto | szbalint: git is about 3 times smaller, on average | 00:17 | |
| dalek | tracwiki: v3 | dukeleto++ | GitCookbook | ||
| tracwiki: trac.parrot.org/parrot/wiki/GitCoo...ction=diff | |||
| duk3leto | szbalint: since it doesn't have a .svn dir in *every* directory with a bunch of redundant information | ||
| szbalint | yeah | 00:18 | |
| one thing git doesn't do and that's the reason we didn't switch over to it from svn at $job is partial checkouts | |||
| but I don't think that applies here | |||
| partial checkout as in checking out a subdirectory from a svn repo | 00:19 | ||
| duk3leto | szbalint: git has submodules, which solve that problem in a different (better) way :) | ||
| szbalint: also, svn allows you to commit a partial tree, if you are in a subdir, which I find completely horrendous | 00:20 | ||
| szbalint | oh, interesting. Haven't heard about that yet :) | ||
| dalek | tracwiki: v4 | dukeleto++ | GitCookbook | 00:21 | |
| tracwiki: trac.parrot.org/parrot/wiki/GitCoo...ction=diff | |||
| cotto | duk3leto, an index would be helpful on that page | 00:22 | |
| duk3leto | cotto: patches welcome :) | 00:23 | |
| treed | szbalint: progit.org/book/ch6-6.html | ||
| Submodules. | |||
| purl | submodules are useful for something like perl's ext/ dir | ||
| duk3leto | cotto: but not conflicts :) | ||
| Whiteknight | duk3leto: fatal: not a git repository | 00:25 | |
| (first command from the cookbook) | |||
| git checkout git://github.com/leto/parrot.git | |||
| duk3leto | Whiteknight: well, i suck then | 00:26 | |
| Whiteknight: duh! it shold be clone. fixing now | |||
| git clone git://github.com/leto/parrot.git | 00:27 | ||
| Whiteknight++ for checking my shtuff | |||
| Whiteknight | okay, getting it now. This is going to take some time, isn't it? | ||
| dalek | tracwiki: v5 | dukeleto++ | GitCookbook | ||
| tracwiki: trac.parrot.org/parrot/wiki/GitCoo...ction=diff | |||
| Whiteknight | I only need to do this clone operation once, right? | 00:28 | |
| duk3leto | Whiteknight: checkout just a pure git repo? perhaps a few minutes, depending on your net speed. | ||
| Whiteknight: yes, you only need to clone once. you are getting the *entire* history of parrot. | |||
| Whiteknight | okay, so after this, how do I branch? | 00:29 | |
| chromatic | git branch <branchname> | ||
| duk3leto | Whiteknight: add that now to the wiki :) | ||
| cotto | duk3leto, that's why I haven't done anything yet. | ||
| Whiteknight | chromatic: rephrased, where does it branch from? is the branch another clone that will take "a few minutes" to get? | ||
| treed | "git checkout -b <branchname>" is arguably more useful | ||
| (Makes the branch *and* makes it the active one.) | |||
| duk3leto | Whiteknight: on the wiki now | 00:30 | |
| Whiteknight | treed: I won't want "arguably" anything. I just want the most simple way to do a few things | ||
| szbalint | treed: hm, I might be slow but submodules appear to be about "embedding" another git repo in a git repo's tree. How would I go on to check out a git repo where I'm interested in only a (potentially) small part of the tree? | ||
| chromatic | No clone, it's a local branch. | ||
| treed | Whiteknight: Once you have the the back history, you shouldn't need to download much ever again. | ||
| szbalint: You change your method such that directories that might be wanted separately are separate, and included in the main repo. | 00:31 | ||
| Whiteknight | chromatic: see, there's obviously some disconnect between git terminology and my internal representation | ||
| dalek | tracwiki: v6 | dukeleto++ | GitCookbook | ||
| tracwiki: trac.parrot.org/parrot/wiki/GitCoo...ction=diff | |||
| Whiteknight | because I have no idea what the hell the difference between those is supposed to be | ||
| szbalint | treed: ah, so inside out thingy, okay | ||
| treed | Whiteknight: "git branch <branchname>" makes the branch, and then you "git checkout <branchname>" to actually work on it. | ||
| Whiteknight: Or you can just do "git checkout -b <branchname>" to do both | |||
| (Which is usually what you want.) | 00:32 | ||
| chromatic | Whiteknight, the .git file in the top-level directory *is* the repository. | ||
| Within your top-level directory, you can switch between branches at will. | |||
| You don't have to check out new checkouts for each branch you want to manage. | |||
| Understand more now? | 00:33 | ||
| duk3leto | chromatic: unless you want to work on many branches simultaneously ;) we won't go there right now | ||
| Whiteknight: our git cookbook needs a glossary. same page or different page ? | |||
| git is like math, where people use simple words to mean very specific things | 00:34 | ||
| dalek | tracwiki: v7 | dukeleto++ | GitCookbook | ||
| tracwiki: trac.parrot.org/parrot/wiki/GitCoo...ction=diff | |||
| duk3leto | Whiteknight: is that page approaching something useable for you? don't candy coat anything, tell me how it is, straight up. | 00:35 | |
| Whiteknight: ALSO, you should install the git bash completion script. it shows you the current branch in your PS1, and I find that invaluable | |||
| cotto | $PS1 is fun | 00:36 | |
| Whiteknight | chromatic: yes, that makes much more sense | ||
| duk3leto: I'll try to follow along for now, it's going alright for what I am trying to do | 00:37 | ||
| szbalint | .git is your full blown repo, while the files you're working with are a manifestation of the current branch. git checkout switches the contents of the files/directories to the branch based on info in .git | ||
| Whiteknight | I write all my own local aliases that add svn version numbers to PS1 | ||
| chromatic | You don't even want to know about the niceness that is git bisect. | 00:38 | |
| Whiteknight | what is going to make this merge possible for me, considering I'm like functionally retarded with these kinds of things, is that I have an elaborate set of macros that I can just redefine | ||
| so I only need to learn the right way once | 00:39 | ||
| treed | "manifestation of the current branch" == "working directory" | ||
| chromatic: Doesn't svn have bisect, too? | |||
| search.cpan.org/~infinoid/App-SVN-B...svn-bisect | |||
| duk3leto | treed: holy hotdogs, batman! | ||
| treed | I guess it's not stock. | 00:40 | |
| But such a tool exists for svn. (And from our own Infinoid, no less.) | |||
| But, yes, git bisect is awesome. | |||
| szbalint | git blame too | ||
| treed | As is "git commit -i" | ||
| And git rebase -i | |||
| purl | hmmm... git rebase -i is NOT a tool for viewing a branch | ||
| treed | No, it certainly is not. | 00:41 | |
|
00:41
sri joined,
shockwave joined
|
|||
| Whiteknight | duk3leto: where is this git bash completion script at? | 00:41 | |
| treed | Is there a git zsh completion module? | 00:42 | |
| treed has completely forgotten why he switched to zsh back in the day. | |||
| the vi keybindings just mostly get in the way | |||
| Because there's no status line to tell me what mode I'm in. | |||
| duk3leto | Whiteknight: repo.or.cz/w/git.git?a=blob;f=contr...etion.bash | ||
| Whiteknight | duk3leto: so this repository you have on git, does it interact with svn.parrot.org? | 00:44 | |
| like, how do I get my changes to that server? | |||
| dalek | tracwiki: v8 | dukeleto++ | GitCookbook | 00:45 | |
| tracwiki: trac.parrot.org/parrot/wiki/GitCoo...ction=diff | |||
| tracwiki: v9 | dukeleto++ | GitCookbook | |||
| tracwiki: trac.parrot.org/parrot/wiki/GitCoo...ction=diff | |||
| duk3leto | Whiteknight: the github mirror is a pure git mirror of svn. you want to push changes to it? | ||
| Whiteknight: i also push some of my local git branches there, so others can see them | |||
| Whiteknight | duk3leto: I don't care where I push changes to, so long as they end up on svn.parrot.org | ||
| duk3leto | Whiteknight: i don't know if I answered your question | 00:46 | |
| Whiteknight | I don't know if I asked a sensible question | ||
| duk3leto | Whiteknight: I don't think you did :) so we are even | ||
| chromatic | I think you're asking about git-svn. | ||
| Whiteknight | Okay, I make a change locally. I want to put that change on svn.parrot.org. I do this by typing "..."? | ||
| duk3leto | git-svn makes everything exponentially more complicated | 00:47 | |
| chromatic | git add ... ; git commit ... ; git svn dcommit | ||
| Possibly also a git svn rebase in there. See "more complicated". | |||
| Whiteknight | chromatic: and those incantations will put changes on svn.parrot.org? | ||
| that's the only result I care about | |||
| chromatic | Yes. | ||
| duk3leto | Whiteknight: IF you are using git-svn with the correct setup | ||
| Whiteknight | okay, I got a "yes" and a "maybe" | 00:48 | |
| chromatic | This is where someone like allison says "Blurgh, argh, that sucks, that is awful, that is way too many commands, why would you do it that way?" | ||
| duk3leto | Whiteknight: in your *current* setup, having a git repo branched from github, you can't commit to svn. you need the git-svn metadata magic | ||
| Whiteknight | okay. Lay that stuff on me | ||
| duk3leto | Whiteknight: there is a public mirror of the entire git-svn history of parrot. i need to find that link | ||
| chromatic | ... and where the rest of us say "That's why we're not big fans of git-svn." | ||
| Whiteknight | I'm not daunted by learning new things. For personal growth learning new things is important | 00:49 | |
| duk3leto | Whiteknight: git-svn is daunting, no matter who you are. | 00:50 | |
| Whiteknight | I find some software is more amenable to the learning process then others | ||
| duk3leto | Whiteknight: git-svn performs black magic. no kiddin' | ||
| chromatic | All I'm saying is "Git isn't so difficult to use, once you learn a few commands". | ||
| Don't mistake the git-svn complexity for the rest of Git. | 00:51 | ||
| duk3leto | git is easy to use. git-svn is a necessary evil | ||
| Whiteknight | duk3leto: That's fine, black magic, hard to use, blah blah blah. How do I do it? | ||
| duk3leto | Whiteknight: that is what the git-svn wiki page is for | ||
| Whiteknight | we have a page for it? link? | ||
| duk3leto | Whiteknight: trac.parrot.org/parrot/wiki/git-svn-tutorial | 00:52 | |
| feast on that for abit :) | |||
| Whiteknight | (I find it remarkably hard to find things on the trac wiki) | ||
| duk3leto | ooh, there is another git-svn mirror: moritz.faui2k3.org/files/parrot-all...svn.tar.gz | ||
| Whiteknight: the gitcookbook is meant as an intro to pure git, the git-svn-tutorial is where the real fun is :) | 00:53 | ||
| Whiteknight | yeah, I'm reading it now | 00:54 | |
| still isn't answering my question though, that I can see | |||
| duk3leto | Whiteknight: please rephrase question | 00:55 | |
| darbelo | While I wait for my bit to be activated, can someone review/commit the patch attached to TT#986 ? | ||
| darbelo has Z's to catch. | |||
| duk3leto | Whiteknight: you want to push changes to SVN from git-svn ? | ||
| Whiteknight | duk3leto: I have the git repo that I pulled from your guthub thingy. I make changes locally. I want to commit those changes to svn.parrot.org | 00:56 | |
| so I type "git-svn ..." and that magically happens | |||
| and everybody is happy | |||
| duk3leto | Whiteknight: that would be "git svn dcommit", which takes your local git commits and does a "distributed commit" | ||
| Whiteknight: no. you need a git-svn repo. you currently have a pure git repo | |||
| Whiteknight | ah, that's the step I'm missing! | ||
| duk3leto | Whiteknight: download moritz.faui2k3.org/files/parrot-all...svn.tar.gz | ||
| Whiteknight | so I need a separate repo entirely? | 00:57 | |
|
00:57
darbelo left
|
|||
| duk3leto | Whiteknight: unpack that, *then* you will have a git-svn repo | 00:57 | |
| Whiteknight | okay, and from there I can commit to svn.parrot.org | ||
| duk3leto | Whiteknight: they can be the same repo or different | ||
| Whiteknight | ? | ||
| duk3leto | Whiteknight: yes | ||
| Whiteknight | okay. | ||
| duk3leto | Whiteknight: from within a git-svn repo, you can commit to : pure git OR svn. from within a pure git repo, you can only commit to another git repo | 00:58 | |
| Whiteknight | okay. Makes sense | ||
| duk3leto | Whiteknight: first thing you should do when you download and untar that file is: cd parrot;git svn rebase | ||
| Whiteknight: git svn rebase =~ svn up | 00:59 | ||
| Tene | Kinda. There's some nastiness there. | ||
| duk3leto | Whiteknight: you can also do "git svn dcommit -n" to see a "dry run" | ||
| Tene: shhhh! | |||
| Whiteknight: so see the diff between your local copy and trunk: git diff svn/trunk.. | 01:00 | ||
| s/so see/to see/ | 01:01 | ||
| now we need to get into the idea of "commitishes" and i need to go home | |||
| Tene | treed++ # agree with mail to the list | 01:02 | |
| treed | Sweet, I'm not completely talking out of my ass there. | ||
| treed thought that maybe he didn't really understand push if people think it could be used that way. | |||
| Tene | I can *kinda* get what he's wanting to do... | 01:03 | |
| but, yeah, just use keyed access, IMO | |||
| treed | I kinda get it, too. | ||
| But, conceptually, those operations just aren't appropriate. | 01:04 | ||
| You could try to wedge it in, but the end result is likely to be complex and non-intuitive. | |||
| Tene | .ie | ||
| treed | Especially once you start combining push/pop, shift/unshift, and keyed access. | ||
| pmichaud | would it be helpful or non-helpful for me to contribute the git commands I use every day with the rakudo repo? | 01:05 | |
| chromatic | Helpful. | ||
| pmichaud | 1. checkout repo: git clone git@github.com:rakudo/rakudo.git | ||
| 2. make modifications: vi src/foo.bar | |||
| 3. commit modifications to my local repo: git commit src/foo.bar | |||
| 4. push my local repo back to git master: git push | |||
| done. | |||
| Tene | pmichaud: I don't remember you having much trouble with git. I remember jonathan having trouble with git. I'd be curious to hear about the problems he had. | 01:06 | |
| pmichaud: I guess what I'm trying to say is, be jonathan now. | |||
| So.. nm. | |||
| pmichaud | I can't say what problems jonathan has had because I don't know where his "model" of working with git departs from mine | ||
| I can save I've nevr had trouble with the above -- it works almost exactly like svn in that respect | |||
| s/save/say/ | |||
| duk3leto | pmichaud: helpful +! | ||
| +1 even | 01:07 | ||
| pmichaud | if I want to commit modifications for an entire subdirectory (e.g., src/), it's git commit src | ||
| chromatic | Yeah, that's what confuses me too. I don't know why I made it so difficult, but that part does work very much like SVN did. | ||
| pmichaud | if I want to commit all modifications I've made from the current directory and lower, it's git commit . | ||
| if I want to grab the changes that others have made from the master repo, it's "git pull" | 01:08 | ||
|
01:08
theory joined
|
|||
| pmichaud | git seems to allow one to work with a very svn-like model if desired. | 01:08 | |
| it allows lots of other models as well, but one doesn't have to know about them to be a basic user of a git-based repo | |||
| if I want to generate a patch that I can submit to RT/Trac/whatever (following the svn model), then I don't do a "git commit" -- I just do either "git diff" or "git format-patch" | 01:09 | ||
|
01:09
theory joined
|
|||
| pmichaud | (if I do a "git commit" it does make creating the patch more complicated... but by definition I've gone outside of the svn way of doing things if I do that) | 01:11 | |
| chromatic | Depends if you create it on a local branch.... | 01:12 | |
| pmichaud | yes, creating a local branch does make things a bit more complex. There the trick is to realize that you're creating the branch in your local clone and not on the master repo | ||
| and "a bit more complex" means "only slightly more complex", not "omg this is incredibly hard" complex | 01:13 | ||
| chromatic | Diffing between a local branch and HEAD is easy though. | ||
| pmichaud | exactly. | ||
| and merging a local branch to HEAD is easy | |||
| duk3leto | pmichaud: feel free to add to trac.parrot.org/parrot/wiki/GitCookbook :) | ||
| pmichaud | duk3leto: I don't know if the instructions I just wrote apply at all to git-svn, though. | 01:14 | |
| git-svn seems to introduce a fair bit more complexity. | |||
| duk3leto | pmichaud: that page is for pure git | ||
| pmichaud: we have a seperate page for git-svn | |||
| chromatic | duk3leto, I could use something about suppressing the "convert leading whitespace to tab" behavior, however. | ||
| duk3leto | pmichaud: hmm. you want that or you *don't* want that? | ||
| pmichaud | want what? | 01:15 | |
| purl | well, want is often mispronounced as 'need' or broken by design, but at least it's clever | ||
| duk3leto | pmichaud: i meant chromatic, sorry | ||
| chromatic | I don't want that... seems like my past few commits have had leading spaces squashed into tabs. | ||
| Tene | git should *not* be doing that. are you fairly confident that it's not your editor? | ||
| pmichaud | I've never had leading spaces squash to tabs | 01:16 | |
| at least, I'm not aware of it in rakudo | |||
| chromatic | I'm very confident it's not my editor; it doesn't happen for me with SVN or SVK. | ||
| Tene nods. | |||
| chromatic | I'll see what happens with my next dcommit. | 01:17 | |
| I do have this in my .gitconfig: [apply] | |||
| whitespace = strip | |||
| And this in [core]: | |||
| whitespace = trailing-space,space-before-tab,indent-with-non-tab,cr-at-eol | |||
| Coke | oh was treed the one on list who told me to jump in a lake? good to know. =-) | 01:18 | |
| Tene | Coke: no, looks like he said that to leto | ||
| treed | Huh? | 01:20 | |
| Is that figurative? | |||
| duk3leto likes lakes | |||
| cotto | Ironically I'm moving near a lake and plan on frequently jumping into it. | ||
| treed | Because I didn't intend to imply any sort of "FOAD" attitude. | ||
| cotto | afk & | ||
| duk3leto | treed: i didn't take any, no worries. | 01:21 | |
| treed | k | ||
| duk3leto has thick skin, which comes in handy when you want to tell people to change their VCS ;) | 01:22 | ||
| treed | Haha. | ||
| Tene | chromatic: yes, those settings could result in whitespace changes. | ||
| Coke | replied on list. I think it depends on your use case. | ||
| chromatic | I removed the indent-with-non-tab option. | ||
| Coke | HLL interp suggests we be more liberal. | ||
| Tene | chromatic: apply.whitespace=strip is an alias for apply.whitespace=fix | ||
| duk3leto | chromatic: i use the same whitespace setting, and I don't have that issue, but perhaps our editors are setup differently or git hates you more | 01:23 | |
| Tene | it will repair anything that your core.whitespace disallows | ||
| "repair" | |||
| Whiteknight | cotto: where are you moving to? | 01:24 | |
| treed replied to your reply. | |||
| Speaking of moving, I'll be moving to the Bay Area next week. | |||
| duk3leto | treed: coolio, where? | ||
| treed | As close to Palo Alto as possible. | 01:25 | |
| Or, secondarily, as close to a caltrain station as possible. | |||
| duk3leto: You live in the bay area? | |||
| Tene | I'll be moving to the Bay Area next... year, maybe. | ||
| treed | Neat. | 01:26 | |
| treed got a job with IMVU, starting on the 14th. | |||
| Still gotta find a place to stay. | |||
| But that's difficult from Pasadena. | |||
| So I'm figuring to just drive up on the 13th and either crash someone's couch, or get a hotel for that first week, as I look for an apartment. | 01:27 | ||
| duk3leto | treed: nope, i am in Portland, OR | ||
| treed | Ah. | 01:28 | |
| duk3leto | time to bike home, see y'all later | ||
| treed | Later. | ||
| Coke wonders why he said "an PMC". | 01:30 | ||
| Coke really needs to proof what his fingers type before he hits send. | |||
| chromatic | Mrs. Coleda, your husband has what we call "Stupid fingers." | 01:31 | |
| Give him a commit bit; he'll fit right in! | |||
| treed totally read that in the Robot Devil's voice. | 01:32 | ||
| Whiteknight | we're sorry. The fingers you have used to dial are too fat. You can order a special dialing wand by mashing the keypad with your palm now. | ||
| good simpsons references never get old | 01:33 | ||
| new simpsons references never get quoted | |||
| chromatic | You are trying to commit regicide. Your working copy is dirty. Please fix or revert all local changes and try again. | ||
| dalek | tracwiki: v1 | pmichaud++ | GitCookbook-Pm | 01:38 | |
| tracwiki: trac.parrot.org/parrot/wiki/GitCoo...ction=diff | |||
| pmichaud | there's my first draft of my workflow at present. | ||
| it probably needs some improvement for non-committers | |||
| there's probably some git command or sequence that makes creating a patch as easy as "svn diff" | 01:40 | ||
| Coke wonders where to go to find cheap (and safe!) us-uk flights. | 01:44 | ||
|
01:47
shockwave joined
|
|||
| Tene | pmichaud: 'git diff' isn't it? | 01:56 | |
|
02:07
Zak joined
|
|||
| Tene | purl: msg WhiteKnight So, where is async io in your TODO list? | 02:16 | |
| purl | Message for whiteknight stored. | ||
| dalek | TT #989 closed by jkeenan++: t/compilers/tge/grammar.t: FAIL under 'make test', but passes with ... | 02:22 | |
| TT #989 reopened by jkeenan++: t/compilers/tge/grammar.t: FAIL under 'make test', but passes with ... | 02:29 | ||
| rtcl: r702 | coke++ | wiki/ParrotIssues.wiki: these now have partcl tickets to reference the parrot tickets. |
02:31 | ||
| rtcl: r703 | coke++ | wiki/ParrotIssues.wiki: this issue has been resolved. |
|||
| TT #732 closed by coke++: Coroutine contexts not getting freed | 02:32 | ||
| TT #68 reopened by coke++: runtime/parrot/library/tcpstream.pir broken | 02:36 | ||
| TT #68 closed by coke++: runtime/parrot/library/tcpstream.pir broken | 02:39 | ||
| rtcl: r704 | coke++ | wiki/ParrotIssues.wiki: The answer? Socket.pmc |
02:41 | ||
|
02:42
janus joined
|
|||
| dalek | rtcl: r705 | coke++ | wiki/ParrotIssues.wiki: Deleting wiki page ParrotIssues. |
02:46 | |
|
02:47
hercynium joined
|
|||
| dalek | TT #995 created by coke++: segfault in ?? (directory_destroy) | 02:59 | |
| Coke | ok, I'm creating these faster than you close them! =-) | ||
| any io people here? | 03:07 | ||
| (what kind of 'address' is expected when you invoke 'connect' on a Socket? | 03:08 | ||
| ah. whatever sockaddr returns? hurm. | 03:11 | ||
|
03:13
TiMBuS joined
03:31
shockwave joined
|
|||
| shockwave | Hello. I have some code that looks like so: | 03:32 | |
| .namespace ['Empty'] | |||
| .sub __x__Empty :load :init :anon | |||
| .local pmc __x__Empty_class | |||
| __x__Empty_class = newclass ['Empty'] | |||
| .end | |||
| When I compile this code, I get this error: | |||
| Friggin dos, I can't copy and paste. | |||
| Well, it says that class 'Empty' is already registered. | |||
| treed | Maybe it is? | 03:33 | |
| shockwave | That's the only code I've got. | ||
| I haven't registered anything else. | |||
| treed | Maybe it's clashing with something in Parrot? | ||
| shockwave | No, that's not it. I changed the name, and the same thing. | 03:34 | |
| treed | Try removing the brackets? | ||
| shockwave | Same | 03:35 | |
| treed | Dunno, then. | ||
| Maybe it's getting run twice somehow. | |||
| Use debugging says before and after th enewclass line? | |||
| Coke | if you're doing :load and :init, how are you running the file? | 03:36 | |
| shockwave | parrot test.pir | ||
| I removed :init, and it doesn't give me the error. | |||
| But don't I need init for files that are ran like: parrot filename.pir? | 03:37 | ||
| dalek | TT #996 created by coke++: Socket.pmc should implement readline | ||
| shockwave | I got that code from the Mysql example. | ||
| treed | I don't think so? | ||
| Usually if you have a pir file, you have a :main function | |||
| If you're going to be running it directly, anyway. | 03:38 | ||
| Coke | actually, yah, I can duplicate that error. | ||
| treed: oh. | |||
| yah. that's probaby it; you have :init /and/ that's your implicit :main | |||
| treed | Dunno if his issue is expected behavior though. | ||
| There's such a thing as implicit :main? | |||
| Coke | yup. | ||
| ":main else first sub." | 03:39 | ||
| so that's getting invoked as :init and then :main | |||
| so add an empty main or ditch the :init | |||
| ... which I see you already did like 20 lines ago. | 03:40 | ||
| shockwave | I'm planning create pir files from the HLL, each containing one class. Is :load is the way to go in order to make sure that a definition function gets ran when I do ".include 'filename'" ? | ||
| treed | Yeah. | ||
| Coke | no. =-) | ||
| treed | That's how Cardinal does it. | ||
| Coke | not necessarily. | ||
| treed | Eh? | ||
| Coke | :init is for things run from the command line. | 03:41 | |
| treed | Oh | ||
| Coke | :load is for things loaded with load_bytecode. | ||
| treed | Well, Cardinal does :init :load :anon | ||
| But that's good to know. | |||
| Coke | things loaded via include... are not either. they are whatever the file that included them was. | ||
| so you can have an .include that gets load'd or an .include that gets :init'd | 03:42 | ||
| (it's the includ-er that matters) | |||
| jdv79 | Coke: whatsup with your obsession with tcl? | ||
| i've ask 3 times in #tcl about the testing protocol/format/whatever with no answer:( | |||
| Coke | what an odd question. | ||
| Yah. they think I'm crazy. | |||
| shockwave | So what's the recommened way to make sure my class get's defined when .include'ed ? | ||
| jdv79 | the community in #tcl is not as helpful as the ones in #perl | 03:43 | |
| Coke | shockwave: the .include doesn't matter. pretend that code appears directly in what .include'd it - how are you loading /that/ file? | ||
| treed | shockwave: Declare it both :load and :init | ||
| To be safe. | |||
| Coke | or sorry. =-) | ||
| that will probably work, though, yes. | 03:44 | ||
| shockwave | I see that the way to go with this will probably be lots of experimentation for me. | ||
| Coke | jdv79: the core commiters are helpful. | ||
| shockwave | Well, I guess it comes with the territory. :) | ||
| Thanks, guys. | |||
| dalek | rrot: r41168 | petdance++ | trunk/include/parrot/compiler.h: improvements for the clang noreturn |
04:08 | |
| ttbot | Parrot trunk/ r41168 i386-linux-thread-multi make error tt.ro.vutbr.cz/file/cmdout/87780.txt ( tt.ro.vutbr.cz//buildstatus/pr-Parrot/rp-trunk/ ) | 04:11 | |
| jdv79 | Coke: seriously, why? | 04:13 | |
| purl | well, seriously, why is it luser code? | ||
|
04:15
Andy joined
|
|||
| Coke | jdv79: no good reason | 04:15 | |
| Coke finally has a smolder kick off without dying on the ssl cert | 04:16 | ||
|
04:16
beta left
|
|||
| dalek | rrot: r41169 | petdance++ | trunk/include/parrot/compiler.h: reverting previous patch, that I committed w/o even testing it, assuming that all would be OK with what Simon sent me. Bad Andy. |
04:18 | |
| Coke | bad andy is also andy-- ! | ||
| Andy | Waaaah | ||
| Coke | good andy, bad andy. I'm the guy with the gun. | ||
| Andy | I don't know why I came here tonight. | 04:19 | |
| Coke | for the love? | ||
| Coke is not looking forward to rolling his own readline in PIR. | |||
| Andy | oh whoops, mixed up my movie references | ||
| Coke | This is my boomstick? | ||
| jack and shit, and jack left town? | 04:20 | ||
| Andy | I've never seen Army of Darkness, actually | ||
| Coke | GAH!:ILH! | ||
| Andy | I was thinking that that was Reservoir Dogs | ||
| Coke | IM me your address I'll snail mail you a copy | ||
| it's the cheese that keeps on giving. | |||
| I'm fairly certain I have the low rent version of the dvd. | 04:21 | ||
| (plus the high rent versioN) | |||
| dalek | rrot: r41170 | petdance++ | trunk/include/parrot/compiler.h: handle clang compiler directives |
04:28 | |
| Andy | it's not a matter of being unable to get it | 04:29 | |
| I just haven't seen it | |||
| dukeleto | +1 to boomsticks | 04:32 | |
| Coke | Andy: get thee to a netflix! | 04:45 | |
| "you found me beautiful once..." | |||
| Andy | gave up netflix | ||
| just a matter of time. | |||
| Coke | anyone have any opinions on whether Socket PMC should implement readline? | 04:47 | |
| dalek | rtcl: r706 | coke++ | trunk/runtime/ (4 files): update issue 106 |
04:57 | |
|
05:08
kyle_l5l joined
05:15
Zak joined
|
|||
| cotto | I'm tempted to post a poll on parrot.org to gauge people's opinions on using git. | 05:22 | |
| s/using/switching Parrot to/ | |||
| wording is always tricky | 05:24 | ||
| dukeleto | cotto: you know how I feel about *that* issue | ||
| PerlJam | cotto: you think people's opinions have changed much in the last year or so? | 05:25 | |
| cotto | PerlJam, what do you mean? | ||
| was there a previous poll or discussion? | 05:26 | ||
| PerlJam | There was a discussion about a year ago or so. | ||
| Coke | at the time, we were already (for some reason) changing tons of other infrastructure, too. times have changed. | 05:27 | |
| PerlJam | no formal poll though. Just informal talk | ||
| cotto | I may end up posting one, but it's too late to come up with adequate wording atm. | ||
| I also hate to create polarization. | 05:28 | ||
| PerlJam | cotto: yes, it's best to do when you're well-rested and can word things properly. | ||
| cotto++ good luck too. | |||
| cotto | I don't know much, but I know you have to be really careful. | ||
| Coke | anyone know what the valid values of whence are for the seek opcode? | 05:29 | |
| (and if so, can you put that in the seek op docs? | |||
| PerlJam | probably 0, 1, and 2 corresponding to "seek from beginning", "seek from current position", and "seek from end" :) | 05:31 | |
| But that's just a complete guess from having used something called seek() in another language once or twice before. | |||
| ;) | 05:32 | ||
| Coke | looks like a good guess based on the C function the opcode calls. can you upate the docs? =-) | ||
| PerlJam | let's see if the barrier to entry is too high on this machine ... | 05:34 | |
| Which docs are you referring to exactly? | |||
| Coke | src/ops/io.ops //seek | 05:36 | |
| ugh. filehandle and socket don't have the same api? | 05:44 | ||
| (print vs. send)? | |||
| jrtayloriv | bacek_at_work, Why is it necessary to memset(ptr, 0, pool->object_size); in src/gc/gc_ms::gc_ms_get_free_object() ? What type of horrible things would happen if we didn't zero out the memory? | 05:45 | |
| dalek | rrot: r41171 | duff++ | trunk/src/ops/io.ops: Document a guess about the valid values for the whence parameter to seek() |
05:47 | |
| Coke | ok. here's a git horror story. I just made 2 git commits to a git-svn repo. I did an interactive rebase using packy's gitsquash script. it said a rebaes was alreadyin progress, so I did a git rebase --abort | 05:50 | |
| Now I cannot find the 2 commits I had before the gitsquash. | 05:51 | ||
| any suggestions? | |||
| purl | any suggestions are welcome. (including ripping it out entirely :)) | ||
| Coke | am I screwed? | 05:52 | |
| dukeleto | Coke: git reflot | ||
| git reflog | |||
| coke: your data is still there, no worries | |||
| Coke | wierd. those are not in git log | ||
| dukeleto | find the sha1 in git reflog, then "git reset sha1" | ||
| Coke | I could have used you a few months ago. :| | 05:53 | |
| dukeleto | coke: git reflog keeps track of every commit, even if it is not attached to any branch tip. it gets periodically cleared up (by default 2 months, configurable in .gitconfig) | ||
| Coke: i accept payment in beer and chocolate :) | 05:54 | ||
| Coke | ok. how do I un-reset something I shouldn't have reset? =-) | 05:56 | |
| dukeleto | coke: say what? | 05:58 | |
| purl | say is println | ||
|
05:58
fperrad joined
|
|||
| dukeleto | you may need git reset --hard sha1 if you have modifications that you want to throw away | 05:58 | |
| Coke | I did "git reset foo". it was the wrong foo. | 05:59 | |
| (reading docs... ok.) | |||
| git reset does not read as if it is re-applying a lone commit to HEAD. | 06:00 | ||
| the sha1 is the 7 digit hex leading the reflog? | 06:03 | ||
| treed | that's the beginning part of it, yeah | ||
| Which is usually all you need. | |||
| What is it that you're trying to do? | 06:04 | ||
| fperrad | allison, have you seen my recent email about load_language & WMLScript ? | ||
| dukeleto | coke: you can use any unique part of a sha1 | 06:05 | |
| coke: reset restores the current position of your HEAD to a given sha1 | 06:06 | ||
| Coke | dukeleto: I'm trying to do 2 of these resets in a row. when I do the second one, the reset is for a very old revision. | ||
| is there a way to git reflog to show the full sha1 so I can avoid issues? or should I not be doing multiple resets in a row without a git svn dcommit? | 06:07 | ||
| dukeleto | coke: reset changes where the symbolic ref HEAD points. it changes your current location, but doesn't effect commit data | ||
| Coke | urf? so this isn't applying those two commits, it's just changing the head pointer? | 06:08 | |
| dukeleto | coke: yeah | ||
| Coke | (effectively discarding any work that happened after that point?) | ||
| dukeleto | coke: i think you want to cherry-pick 2 sha1's onto a branch, am I correct ? | ||
| Coke | yes. | 06:09 | |
| dukeleto | Coke: you have a branch that is missing 2 commits, yes? | ||
| ah | |||
| coke: find the 2 sha1's then: | |||
| Coke | (it's the local ... trunk, I guess) | ||
| dukeleto: got 'em. | |||
| dukeleto | git cherry-pick sha1 | ||
| git cherry-pick sha2 | |||
|
06:09
NotFound joined
|
|||
| Coke | cherry pick is complaining that there is a conflict in a file that that commit didn't touch. | 06:10 | |
| dukeleto | coke: nopaste the error and the output of "git status -a" | 06:11 | |
| Coke | (this is the same one that when I tried to do the reset, seemed to pick a completely different commit.) | ||
| dukeleto | do you have local modifications ? | ||
| i.e. the output of "git status -a" | |||
| nopaste | "coke" at 72.228.52.192 pasted "# On branch master # Changes t" (24 lines) at nopaste.snit.ch/17892 | ||
| Coke | dukeleto: no. | 06:12 | |
| dalek | TT #997 created by gerd++: [BUG] Segmentation fault by building TGE on ppc64 | ||
| Coke | (not before I try the cherry pick. :| | ||
| dukeleto | coke: the commit probably changes config/PARROT_VERSION, yes? | ||
| Coke | no! | 06:13 | |
| dukeleto | coke: what does "git diff head" say ? | ||
| Coke | fatal: ambiguous argument 'head': unknown revision or path not in the working tree.Use '--' to separate paths from revisions | ||
| after I run the cherry pick, config/PARROT_VERSION is listed as both U and M. but that commit should have only changed runtime/builtin/puts.pir | 06:14 | ||
| dukeleto | coke: what does git --version say? | 06:15 | |
| coke: i guess older git's prefer HEAD | |||
| Coke | 1.5.6.5 | ||
| dukeleto | coke: jurassic :) | ||
| Coke | git diff head shows the change to that file that it's complaining about. | 06:16 | |
| dukeleto | coke: is the change valid? a conflict ? | ||
| Coke | That commit message has nothing to do with that file. | ||
| dukeleto | you can do "git checkout config/PARROT_VERSION" to basically do the same as "svn revert file" | ||
| Coke | (git show sha1 for that message does agree with all the other brokenness,though.) | ||
| git checkout config/PARROT_VERSION; git status - shows it as unmerged. | 06:17 | ||
| (git status -a shows it as modified) | |||
| This is about the time when I say "Hg sounds good" =-) | 06:18 | ||
| At least the other cherry pick might work, testing. | |||
| jrtayloriv | Big time sleepy time. Nighty night. | 06:19 | |
| Coke | I think the commit for the second one is fubar in reflog. | ||
| by my own hand or not, I cannot say. | |||
| dukeleto | coke: interesting | 06:20 | |
| coke: git add file to say that you are done "merging it" | |||
| coke: git add config/PARROT_VERSION after you to "git checkout config/PARROT_VERSION", then commit the result | 06:21 | ||
| Coke | I just did a git reset -hard | 06:22 | |
| dalek | rtcl: r707 | coke++ | trunk/runtime/builtin/ (2 files): initial versions of [seek] and [tell] |
||
| rtcl: r708 | coke++ | trunk/runtime/builtin/puts.pir: Fix bug introduced with new [socket] impl. |
|||
| Coke | then I cherry picked the one that wasn't fubar, and then I manually reconstructed the other one (which thankfully was small) | 06:23 | |
| dukeleto | coke: so you are in better shape ? | ||
| in your case, you probably wanted the --hard from the beginning. that would have been less headache, methinks | |||
| Coke | Yes. I do wish that interactive rebase hadn't eaten my commits in the first place. | ||
|
06:23
chromatic joined
|
|||
| Coke | that's the sort of error that I don't think could have happened with svn. =-) | 06:24 | |
| dukeleto | coke: interactive rebase is a delicious self-animated chainsaw :) | 06:25 | |
| Coke | iwbni packy's script stopped you /before/ you shot yourself inthe foot. | 06:27 | |
| (gitsquash, on the wiki) | |||
| dukeleto | Coke: his script is a little scary | 06:28 | |
| coke: i use the bash function grh () | |||
| { | |||
| git rebase -i head~$1 | |||
| } | |||
| so i manually inspect the last few commits and see how many i want to rebase | 06:29 | ||
| coke: more safer :) | |||
| Coke | the problem was that there was already an interactive in progress. | ||
| dukeleto | so rebasing the last 5 commits is "grh 5" | ||
| coke: rebase has screwed me too, but reflog always saves me | |||
| Coke | mm. glad I know about it. =-) | ||
| I bet this [seek] and [tell] net me zero spec tests... | 06:30 | ||
| dalek | tracwiki: v10 | dukeleto++ | GitCookbook | 06:41 | |
| tracwiki: trac.parrot.org/parrot/wiki/GitCoo...ction=diff | |||
| dukeleto | coke: i updated the git cookbook, please review :) | 06:42 | |
| bacek_at_work | dukeleto: consider removing "git commit -a". It's way too dangerous. | 06:46 | |
| chromatic | It's just about as dangerous as svn ci. | 06:47 | |
| bacek_at_work | (and I don't think that we should encourage usage of it) | ||
| dukeleto | bacek_at_work: i guess i live dangerously :) | ||
| bacek_at_work | chromatic: svn is dangerous by it self :) | ||
| dukeleto | bacek_at_work: i constantly look at "git status -a" | ||
| bacek_at_work: as well as having notification in your PS1 about local changes/etc. | 06:48 | ||
| bacek_at_work: i understand that -a could be dangerous for newcomers, but i use it instead of having to "git add" each file. | |||
| bacek_at_work: i make many incremental commits, so -a is not dangerous for me | |||
| Coke | dukeleto: IWBNI if it also mentioned cherry-pick, but otherwise, nice. | 06:49 | |
| bacek_at_work: for folks coming from svn, git commit -a is just fine. | |||
| dukeleto | coke: ah, yes. forgot | ||
| Coke | git add/git commit is the next level of complexity after that. | 06:50 | |
| dukeleto++ | |||
| Coke needs to get to bed. :| | |||
| dukeleto | git is serious about data loss :) | 06:55 | |
| dalek | tracwiki: v11 | dukeleto++ | GitCookbook | 06:56 | |
| tracwiki: trac.parrot.org/parrot/wiki/GitCoo...ction=diff | |||
|
06:58
Khisanth joined
07:02
mberends joined
07:03
Zak joined
|
|||
| dalek | tracwiki: v12 | dukeleto++ | GitCookbook | 07:06 | |
| tracwiki: trac.parrot.org/parrot/wiki/GitCoo...ction=diff | |||
| tracwiki: v13 | dukeleto++ | GitCookbook | 07:10 | ||
| tracwiki: trac.parrot.org/parrot/wiki/GitCoo...ction=diff | |||
| chromatic | Does that mean Coke is a Git convert now? | 07:11 | |
| dukeleto | chromatic: looks promising :) | 07:13 | |
| chromatic | Next up, whiteknight and NotFound. | 07:14 | |
|
07:26
MoC joined
|
|||
| mikehh | I find one of my major problems with git is figgerin' out where I am at - at least with svn we have sequential revision numbers | 07:33 | |
|
07:33
iblechbot joined
|
|||
| moritz | looking at 'git log' often helps me with that | 07:34 | |
| mikehh | yeah - but I don't have to look with svn :-} | ||
| moritz | aye | 07:35 | |
| they had to let svn be better at one thing, at least ;-) | |||
| but you know you can get sequence numbers out of git | 07:37 | ||
| with git-describe | |||
| which gives you last tag + commits since last tag + short SHA1 | |||
| dukeleto | mikehh: get a recent (1.6.x) version of git and then do: git log --pretty=format:'%C(yellow)%h%Creset %s %Cred%an%Creset %Cblue%d%Creset %Cgreen%cr%Creset %cd' --graph --all | 07:39 | |
| mikehh: i have that aliased to "git plog" | |||
| mikehh | well I've got git in my git repository :-} | ||
| dukeleto | mikehh: color coded ascii art revision history, with committer, date and branch names | 07:40 | |
| mikehh | I was only sayin' that it is easy to follow where you are with svn | ||
| plus perl, rakudo, cardinal, lua and others | 07:41 | ||
| mind you I've got llvm, clang, parrot, partcl, and a few others in svn | 07:42 | ||
| and some ubuntu stuff in bzr | 07:43 | ||
| which is also a good option to consider | 07:44 | ||
| purl | okay, mikehh. | ||
| treed | purl: forget which | 07:46 | |
| purl | treed: I forgot which | ||
| mikehh | dukeleto: just updated cpanp and your BigRat module | ||
| dukeleto | mikehh: whoa dude, you are on the bleeding edge :) | 07:47 | |
| mikehh | also DateTime::TimeZone | ||
| dalek | tracwiki: v14 | dukeleto++ | GitCookbook | 07:53 | |
| tracwiki: trac.parrot.org/parrot/wiki/GitCoo...ction=diff | |||
| moritz sees that dukeleto++'s parrot on github has all the svn branches - nice | 07:54 | ||
| dukeleto | moritz: indeed :) i have a handy little script that pulls them all and pushes them to github | ||
| moritz: github.com/leto/Util/blob/master/bi...ate_parrot <-- could use some generalization and love, but works for me :) | 07:56 | ||
| moritz | nice :-) | ||
| dalek | tracwiki: v15 | dukeleto++ | GitCookbook | 08:07 | |
| tracwiki: trac.parrot.org/parrot/wiki/GitCoo...ction=diff | |||
|
08:18
HG` joined
08:27
bacek joined
08:37
masak joined
|
|||
| TiMBuS | do threads work in rakudo yet? | 08:40 | |
| i made my perl 6 irc bot but all it does is !8ball which is.. kinda lame. wanna add support for twitter but without threads it's going to be an issue. | 08:42 | ||
| and i recently read something about threads in parrot being sorta crash prone in hll's? or something? | 08:43 | ||
| moritz | TiMBuS: that's right. There's a ticket for that, which contains patches | 08:44 | |
| which need testing and review | |||
| TiMBuS | i see | 08:45 | |
| kyle_l5l | I'm still slowly chugging away at threads+hlls. | 08:52 | |
| moritz | kyle_l5l: I see that you commented on that tickets that parts of one patch should not be applied... could you please upload a single patch that replace the three existing patches? it's getting a bit hard to understand what's needed and what not, IMHO | 08:54 | |
| dukeleto | i totally borked my svn by attempting to upgrade it on os x, now I haven't had a working svn in 2 days: gist.github.com/183599 | 08:55 | |
| installing from source or ports doesn't seem to fix it | |||
| mikehh | All tests PASS (pre/post-config, smoke, nqp_test, fulltest) at r41171 - Ubuntu 9.04 i386 (g++) | ||
| kyle_l5l | moritz, sure | ||
| dukeleto | type "make test" in the subversion source and you will feel a hollow wind pas you, as you realize that your version control system HAS NO TESTS | 08:56 | |
| bacek | dukeleto: erm... Really? They don't have single test??? OMGBBQ! | 08:59 | |
| o hai, btw | 09:00 | ||
|
09:00
athomason joined
|
|||
| bacek | jrtayloriv: ping. | 09:01 | |
|
09:01
mberends joined
|
|||
| mikehh | rakudo (62879bb) builds on parrot r41171 - make test / make spectest (up to 28212) PASS - Ubuntu 9.04 i386 (g++) | 09:09 | |
| rakudo - t/spec/S03-operators/arith.rakudo - TODO passed: 131 | |||
| rakudo - t/spec/S06-multi/proto.rakudo, t/spec/S12-attributes/class.rakudo and t/spec/S14-roles/basic.rakudo - Non-zero wait status: 11 (Segfault after passing tests) | |||
|
09:11
fperrad_ joined
09:19
einstein joined
|
|||
| mikehh | partcl r708 builds on parrot r41171 - make test random failures with segfault - Ubuntu 9.04 i386 (g++) | 09:25 | |
| partcl - if I make realclean, svn update -r699, make test TEST_JOBS=5 - PASS, make realclean, svn update -r 700, make test TEST_JOBS=5 - random failures (segfaults) | 09:28 | ||
| partcl - the file updated above is src/tclsh.pir | 09:30 | ||
| decnum_dynpmcs r181 builds on parrot r41171 - make test PASS - Ubuntu 9.04 i386 (g++) | 09:49 | ||
| cardinal builds on parrot r41171 - rake teat:all - same 3 failures - ubuntu 9.04 i386 (g++) | 09:50 | ||
| ok - I am going to reboot to amd64 now - bbl | 09:51 | ||
|
10:07
HG` joined
10:17
mikehh joined
|
|||
| dalek | rrot: r41172 | bacek++ | trunk/src/jit/i386 (2 files): [cage] Make headerize happy about JIT-generated functions |
10:40 | |
|
10:50
bacek joined
10:54
iblechbot joined
|
|||
| dalek | TT #973 closed by bacek++: Review content of src/gc/alloc_register.c and src/call/context.c and merge ... | 11:14 | |
|
11:57
bkuhn joined
12:07
whoppix joined
12:08
whiteknight joined
12:14
ruoso joined
|
|||
| whiteknight | good morning #parrot | 12:14 | |
| Tene: ping | 12:15 | ||
| purl msg Tene work on io_cleanups stalled. Infinoid was working on pipes but he is busy IRL. Pipes would be nice but we definitely need to cleanup the IO system before we start adding to it. I could put a branch together for that purpose soonish and see how it goes. Interested in helping? | 12:19 | ||
| purl | Message for tene stored. | ||
|
12:20
JimmyZ joined
|
|||
| Coke | dukeleto: svn on OS X, there's a .dmg installer for that. | 12:40 | |
| Infinoid | (cleaning up IO)++ | ||
| Coke | whiteknight: so I find myself having to write code that checks which IO object type I'm using to determine which methods to invoke on it. | ||
| Is this intentional? | |||
| whiteknight | Coke: Shouldn't be | 12:41 | |
| Coke | Socket vs. FileHandle , 'send' vs 'print', e.g. | ||
| whiteknight | my "vision" for that whole system is much more unified then it is currently | ||
| Ideally I would like there to be no fundamental difference between IO PMC types until the very deepest layer where we actually have to interact with the OS | 12:42 | ||
| so PIR code would treat all IO Handle objects identically | |||
| and we can properly subclass them | |||
| Coke | ok. I'll close my eyes and think of england in the meanwhile. | 12:43 | |
| whiteknight | ..oh yes that response makes complete sense to me | ||
| Coke | whiteknight: any comments on my readline for socket RFC? | ||
| whiteknight | #? | ||
| purl | # is moderated | ||
| Coke | "recent"? | ||
| checking. | |||
| TT #996 | 12:44 | ||
| tcl has [gets] which basically does a readline on an arbitrary IO object. so I can use the readline opcode (which is apparently a shim over the readline method - why bother?) and Socket cannot readline. | 12:45 | ||
|
12:46
Austin joined
|
|||
| whiteknight | the probem was that the IO system was written before the Socket PMC was really added. Socket was sort of tacked on as an after thought and is only a thin wrapper around the berkley API | 12:46 | |
| Coke | waaaafar thin. | 12:49 | |
| partcl parrot problems is code.google.com/p/partcl/issues/lis...%20Summary | 12:55 | ||
| shorten that? | 13:06 | ||
| purl | That URL is at xrl.us/bfjj37 [code.google.com] | ||
| Coke | no, partcl parrot problems is xrl.us/bfjj37 [code.google.com] | 13:07 | |
| purl | okay, Coke. | ||
| Coke | (whee, lazybot) | ||
| dalek | kudo: 872cd0d | pmichaud++ | docs/spectest-progress.csv: Revise spectest-progress.csv results since August 2009 release to (moritz++) |
13:12 | |
| kudo: 5960161 | pmichaud++ | docs/spectest-progress.csv: spectest-progress.csv update: 436 files, 14268 (69.3% of 20599) pass, 0 fail |
|||
| jrtayloriv | whiteknight, Do you know why is it necessary to memset(ptr, 0, pool->object_size); in src/gc/gc_ms::gc_ms_get_free_object()? What type of horrible things would happen if we didn't zero out the memory? Is it just good practice to do this? | 13:28 | |
| A lot of the GC benchmarks spend a lot of time memset()ing things to 0 in various places, and I can figure out why this needs to be done. | 13:29 | ||
| s/I can/I can't/ ... | 13:30 | ||
| particle | jrtayloriv: can you make the memset optional, perhaps done only by a -D flag? | 13:40 | |
|
13:40
NotFound joined
|
|||
| whiteknight | jrtayloriv: throughout the GC it checks if pointers are null and marks them if not | 13:40 | |
| particle | that will give us something to play with | 13:41 | |
| whiteknight | so we can't have a pointer with uninitialized garbage | ||
| particle | whiteknight: so it's not like our setting ints to 0 or strings to null on init? | 13:42 | |
| it's actually a 'feature' of the gc? | |||
| jrtayloriv | whiteknight, OK, thanks. | 13:43 | |
| whiteknight | jrtayloriv: now, if we could do it in a fast and consistent way without memset, that would be fine too | 13:46 | |
| NotFound | As Coke said yesterday, I prefer some slowness than random segfaults. | 13:48 | |
| whiteknight | it might be a worthwhile exercise to take a look at what is getting memset and when, and then comparing that to the initilization routines of the various object types | 13:49 | |
| so if pmc_new is already initializing all the necessary fields, we don't also need to memset inside the GC | |||
| NotFound | Don't forget pmc_new_noinit | ||
| whiteknight | they both probably call something like Parrot_gc_new_pmc_header | 13:50 | |
|
13:51
PacoLinux joined
|
|||
| Austin | NotFound: Sadly, we have both. | 13:52 | |
| NotFound | Austin: but the balance between the two can be easily made a lot worse. | 13:54 | |
|
13:55
HG` joined
|
|||
| Austin | Cheer up, they told me. Things could always be worse. | 13:55 | |
| So I cheered up. And sure enough, things got worse. | |||
| whiteknight | Austin: talking about performance problems? | ||
| Austin | No. Performance problems plus random segfaults. | ||
| (Except they're not random. They always come at the end.) | 13:56 | ||
| whiteknight | we're working on it :) | ||
| Austin | I don't let it get to me. I'm feeding bad data to PCT, so it segfaults. | 13:57 | |
| It's faster than printing an error message, I guess. | |||
| NotFound | Austin: they're not random now, after adding some memset and several other things. | ||
| Austin | I know they're not random. They always come at the end. | 13:58 | |
|
13:58
particle joined
|
|||
| NotFound | In Eval.destroy, in all cases I backtraced. | 14:00 | |
| pmichaud | for me, I generally get segfaults at the end whenever I have a :load/:init sub that throws an exception. | 14:02 | |
| (there are many ways in which this can happen.) | |||
|
14:04
skv joined
|
|||
| moritz | planetsvg.com has a nice feature - a feed from a google search for svg blogs | 14:04 | |
| I wonder how hard or easy it would be to make such a thing for parrot or Perl 6 | 14:05 | ||
| afk | |||
|
14:05
Andy joined
|
|||
| NotFound | pmichaud: that makes sense. If eval gets invalid packfile structures from imcc, it can easily fail while trying to destroy them. | 14:06 | |
| Austin | Whiteknight: fwiw, I upgraded to 41166 with no problems y-day. | 14:07 | |
| whiteknight | that's good! | ||
| pmichaud | See TT #833 for more about imcc and exceptions | 14:09 | |
|
14:13
theory joined
|
|||
| whiteknight | yeah, #833 is the bane of my existance | 14:13 | |
| I swear by the power of greyskull that I will fix it one day | 14:15 | ||
| NotFound | I think I have an attempt of fix somewhere, I'll try to find it later today. | 14:22 | |
| whiteknight | A fix wouldn't be hard to make. the problem I found was getting people to agree on which fix to make | 14:23 | |
| because all of them would imply certain significant architectural changes to get right | 14:24 | ||
| NotFound | Well, letting it break the VM is hardly an architecturaly desired state of art. | 14:25 | |
| whiteknight | agreed | ||
| Austin | Do the one that involves taking things out. | 14:27 | |
| If they both do, then do the one that involves taking the most things out. | |||
| whiteknight | Austin: any solution is likely going to require adding. And lots of adding | 14:30 | |
| NotFound | whiteknight: not so much. Just catch exceptions, so some cleanup, and rethrowing. The "some cleanup" part may be tricky, though. | 14:31 | |
| s/so/do | 14:32 | ||
| whiteknight | NotFound: right, you need to identify which runloop you are currently in, which runloop the handler was in, and perform the rethrow if the two aren't the same | ||
| and you'll also need to cleanup exception handlers in the scheduler that were created in an inner runloop after that runloop has exited | 14:33 | ||
| so each ExceptionHandler PMC needs a RunloopID field added, plus logic to check the RunloopID and logic in the scheduler to not mark handlers from dead runloops | |||
| NotFound | whiteknight: a C exception handler gets rid of that by doing a longjmp | ||
| whiteknight | right, so we have to do more differentiating between C and PIR exception handlers | 14:34 | |
|
14:34
payload joined
|
|||
| whiteknight | It's all very doable, but non-trivial and worth having a good plan in place beforehand | 14:35 | |
| NotFound | whiteknight: we don't need to solve the general case just to catch failures inside load_bytecode or eval. | 14:36 | |
| Austin | Whiteknight: off the current topic, I just read your blog about startup+GC. I had been thinking about that for a while (the startup issue, not specifically GC) and I think the right answer is to use two interps. The first is the "loader" and just has enough stuff to set up the second. | 14:37 | |
| whiteknight | Austin, I've thought about that too. Problem is that interpreter creation is very expensive | ||
| Austin | Maybe not. | 14:38 | |
| whiteknight | creating two at startup is prohibitive | ||
| Austin | If the bootstrap interpreter is only doing one thing, it can be "static". | ||
| NotFound | Interpreter creation and destruction are labyrinths | ||
| whiteknight | that too | ||
| there is a lot of refactoring that needs to happen in the startup code, and a lot of opportunities to streamline and optimize | 14:39 | ||
| Austin | Bud Light presents: Real Men of Genius. Today we salute you, mister Gangsta rapper posse member. | 14:40 | |
| whiteknight | nice | ||
|
14:41
cotto joined
|
|||
| cotto | hi | 14:41 | |
| Austin | If only args were being handled right, this would be good code. :( | 14:43 | |
| whiteknight | good code? are you smoking something? | ||
|
14:51
Psyche^ joined
|
|||
| whiteknight | we need to go through all this code with a goddamn hatchet | 14:51 | |
| but it isn't a sufficient pain point yet that it's on the priority list | |||
| dalek | rrot: r41173 | NotFound++ | trunk (2 files): [cage] simplify FPA.get_repr and improve his test |
15:07 | |
| cotto | NotFound, why not just rip out get_repr? It's deprecated. | 15:08 | |
|
15:08
davidfetter joined
|
|||
| NotFound | I must read DEPRECATED more frequently X-) | 15:09 | |
| whiteknight | I haven't even looked at it since the rush after 1.4.0 | ||
| NotFound | I don't see any mention of get_repr in DEPRECATED.pod | 15:11 | |
| particle | it's mentioned in the pdd | 15:12 | |
| i don't know if it's in deprecated.pod | |||
| or whether there's a ticket | 15:13 | ||
|
15:15
AndyA joined
|
|||
| particle | Coke: look who's here | 15:15 | |
| NotFound | "candidate for deprecation"? | 15:17 | |
|
15:28
JimmyZ joined
|
|||
| cotto | NotFound, my mistake. For some reason I thought it was on the way out. | 15:28 | |
| I'm glad I found that out before deleting all the get_repr VTABLEs. | 15:29 | ||
| It's kinda like having Stupid Fingers except it's in my head. ;) | |||
| NotFound | cotto: no problem... Do you have any Vista system with SMB2 open? }:) | 15:32 | |
| cotto | nope | 15:33 | |
|
15:33
mikehh_ joined
|
|||
| cotto | I don't start work until Monday and I can't imagine any reason to have a Vista box at home. ;) | 15:34 | |
| NotFound | cotto: I have one that came with the box, I rebooted with Vista yesterday just to see the BSOD X-) | 15:40 | |
| cotto | A BSOD? In Vista? I'm shocked. | 15:42 | |
| You should send an electronic message of some sort to the manufacturer of that product. | 15:45 | ||
|
15:45
SMSD joined
|
|||
| NotFound | cotto: Who is that, BuenaVista? | 15:46 | |
| SMSD | Hi I want to know the differences b/w register and stack based VM's....parrot VM is register based so what are the advantages...please help | 15:47 | |
| jrtayloriv | SMSD, see www.sidhe.org/~dan/blog/archives/000189.html and www.usenix.org/events/vee05/full_p...-yunhe.pdf | 15:49 | |
| cotto is going to work orientation. | 15:51 | ||
| afk & | |||
| SMSD | jrtayloriv: thanks but i had seen them sir....are there any other resources regarding this matter? | 15:53 | |
| particle | also docs.parrot.org/parrot/latest/html/...w.pod.html | ||
| smsd: google is your friend | |||
| e.g: docs.parrot.org/parrot/latest/html/...w.pod.html | 15:54 | ||
| er | |||
| www.usenix.org/events/vee05/full_pa...-yunhe.pdf | |||
| SMSD | particle: yes thanks | ||
| particle | oh, right, jrtayloriv++ sent that already | ||
| dis is also a register-based vm (memory transfer vm, they call it) | 15:55 | ||
| purl | okay, particle. | ||
| SMSD | jrtayloriv: i am not able to access the sidhe.org site | ||
| jrtayloriv | dis is also "You dissin' me? You're messing with the wrong bot." | 15:57 | |
| purl | okay, jrtayloriv. | ||
|
15:58
mikehh joined
|
|||
| SMSD | thanks for the help guys | 15:59 | |
|
16:00
SMSD left
|
|||
| Tene | whiteknight: *obviously* the solution to the startup problem is to make the GC swappable at runtime. | 16:00 | |
| whiteknight: I'd love to help with IO stuff. | |||
| whiteknight | Tene: awesome. What we most need is to unify all the internal paths to support FileHandles and Sockets | 16:02 | |
| Tene | Coke: way way back on August 4, you claimed that when using git-svn, you saw something squashing all local commits into a single commit to the svn repo. | ||
| whiteknight: Explain more? | |||
| whiteknight | I was hoping we would have proper Pipes that we could include, but we will just need to keep them in mind for later | ||
| Tene: Well, when we want to act on a socket, we call one function. When we want to act on a file handle we call other functions | 16:03 | ||
| we need to unify all that so we call one set of functions for all IO handle types | |||
| Tene | Ah. | ||
|
16:04
davidfetter joined
|
|||
| Tene | Yes, that would be nice. | 16:04 | |
| Socket is... less good than it could be. :) | |||
| whiteknight | This means that all IO handle types will have a standard set of methods (write, writeline, read, readline, open, close, etc) | 16:05 | |
|
16:05
payload joined
|
|||
| whiteknight | we can unify things all the way down until we finally talk to the OS. Then we do a quick switch statement and pass the handle to the proper function | 16:05 | |
| this also means that we get everything for everybody: buffering for sockets and pipes, for example | |||
| Tene | :) yay | 16:07 | |
| Can you write up a list of what the API is? | |||
|
16:09
bkuhn joined
|
|||
| Coke returns from offsiting. | 16:24 | ||
| (interpreter creation) - please check out tcl's [interp] for all the things I need an interpreter-like thing to do. | 16:27 | ||
| msg AndyA Cheers! | |||
| purl | Message for andya stored. | ||
| Coke | tene (squashing all local commits) yup. It was probably 'stupid fingers', but if you have a story that makes it not my fault, all ears. | 16:28 | |
|
16:36
hercynium joined
16:57
whiteknight joined
|
|||
| Tene | Coke: No, I have no idea how to get that behavior without asking for it; sorry. | 17:08 | |
| Coke | ok. no worries. no longer a problem to be solved. | 17:09 | |
| Tene | kk | ||
| Coke | ... this temporary blindness is of some concern, however. | ||
| (just those dilating eyedrops. woof.) | |||
|
17:12
joeri joined
17:46
bacek joined
|
|||
| Tene | whiteknight: Austin Hastings' proposal, which you indirectly replied to, did specify a proposal for adopting an already-used model of push/pop from a fixed array. | 17:47 | |
| erm... Andy Dougherty. | |||
| whiteknight | I don't see why we would add push/pop to the fixed arrays. If we want those things we should use the resizable ones | 17:50 | |
| I would be much more in favor of deprecating Fixed*Array types | |||
|
18:02
darbelo joined
|
|||
| whiteknight | maybe I'm just missing something | 18:08 | |
| Tene | whiteknight: The only issue is consistency with the interface... do something at least vaguely reasonable on these things that claim to be arrays. | 18:14 | |
|
18:14
chromatic joined
|
|||
| whiteknight | To be fair, an "array" by definition only claims to have keyed indexing | 18:15 | |
| something that is more then an array should also implement an additional interface | |||
| japhb | whiteknight, re: your Refactoring Parrot Startup post ... how can you delay executing :immediate subs until after the entire main program is compiled? I thought the whole point of :immediate is that it forces a switch to execution mode right then and there (as soon as the :immediate sub has been compiled) before continuing compilation .... | ||
| whiteknight | japhb: that's one of the "problems" I brush aside :( | ||
| japhb | That's a big problem. :-) | 18:16 | |
| Tene | japhb: just drop support for :immediate subs! | ||
| whiteknight | not necessarily. | ||
| Instead of invoking IMCC once, we can iterate over IMCC. It returns the "next" sub as soon as it's time to return it | |||
| japhb | What about running the compile/execute as continuations or as a bytecode generator that produces chunks at a time ... ? | ||
| whiteknight | so IMCC immediately returns immediate subs, which execute, and then IMCC gets called again to get the next thing | 18:17 | |
| japhb | yup, that's one of the things I was thinking of. | ||
| whiteknight | it's a problem, but not impossible to get past | ||
| The bigger issue is that :immediate subs are used to create PMC constants in the packfile | |||
| japhb | OK, as long as you're open to doing chunking at least, my objection is gone. | ||
| >< | 18:18 | ||
| whiteknight | so then we need to handle that in some way | ||
| japhb | I forgot all about the packfile mess, sigh. | ||
| whiteknight | that's the official name for it | ||
|
18:26
payload1 joined
18:28
hercynium joined
|
|||
| Coke | whiteknight: please show me in the docs where "does array" means anything at all. =-) | 18:34 | |
| whiteknight | Coke: nowhere. | ||
| purl | nowhere is the method for calculating significant wave height using an FFT on pressure data. or Dodge City, KS | ||
| whiteknight | that doesn't mean it shouldn't mean something | 18:35 | |
|
18:35
mokurai joined
|
|||
| Coke | right. As long as it means what I want, that's fine. =-) | 18:35 | |
| whiteknight | A lot of languages do differentiate between a simple "array" and a "stack" or "queue" | 18:36 | |
| particle | does is in the pmc pdd iirc | 18:39 | |
| whiteknight | this is all probably an allison question. | 18:42 | |
| dalek | ose: r101 | Austin++ | trunk/library/close/Compiler/Config.pm: Commented out NOTE and DUMP calls in Config.pm |
18:44 | |
| ose: r102 | Austin++ | trunk/library/close/Compiler/ (2 files): Added missing .pm files |
|||
| chromatic | I'm not sure why there's such a heated discussion; it all comes down to complexity for me. | 18:47 | |
| We *could* let you push up to a limit, but then we run into weird edge case semantics that are difficult to understand and likely not easy to program. | 18:48 | ||
|
18:48
mberends joined
|
|||
| chromatic | If you ask for a fixed array, don't treat it like a stack or a queue or a vector. | 18:48 | |
| Coke | chromatic: Splitting the aggregate types is fine. | ||
| chromatic: but also: I'm specifically talking about the case where someone /hands/ you an aggregate. | 18:49 | ||
| not one where you're picking the right PMC for the job. | |||
| particle: does is listed, but, as i recall, just as a list of potential types which I updated at one point to match the plain text listings from code. | 18:50 | ||
| chromatic | That's a case of documentation, I believe. | ||
| particle | whiteknight: implement pmroles, and the world is your oyster | 18:53 | |
| whiteknight | pmroles? | 18:54 | |
| dalek | ose: r103 | Austin++ | trunk/src/parser/expression (2 files): Fixed asm-expr / postfix-call issue |
19:05 | |
| NotFound | When asking about adding more functionality to some pmc "just in case" please remember that in addition to the code to add it, we must also write tests. | 19:19 | |
| Coke | chromatic: nothing enforces those settings, it's basically just annotation. I can make my "Frobulator" say it does array when it's really just Undef. | 19:20 | |
| NotFound | And even some nice guy may be tempted to write documentation X-) | ||
| Coke | (granted, if you like, we go boom, and it's your fault for giving me the bad pmc, but does always struck me as not entirely useful) | ||
| chromatic | I can document that I return you a Sub but return you an Undef and that's my fault too. We can't prevent documentation from lying. | 19:21 | |
| NotFound | sub lier is also Undef ? | 19:22 | |
| sub but Undef ? | |||
|
19:37
hercynium joined
19:39
quek joined
|
|||
| mikehh | All tests PASS (pre/post-config, smoke, nqp_test, fulltest) at r41173 - Ubuntu 9.04 amd64 (g++) | 19:39 | |
| Coke | chromatic: so at this point I'll settle for making the documentation consistent. | 19:41 | |
| whiteknight | no settling! We have an impressive development team here. Let's work out what we want and make that happen | 19:42 | |
| chromatic | Yep, I can work with the JIT plan. | ||
| Coke | chromatic: "can't we all just get along?" | 19:43 | |
| (oh wait, we can.) | |||
| particle | it seems a little f'd up to me that the one platform where jit 'works' now will be the one where it doesn't tomorrow, but whatever. | 19:44 | |
| whiteknight | where won't it work? | ||
| particle | windows + llvm = no joy | ||
| chromatic | Really? | 19:45 | |
| Coke | particle: how well is jit working for you now? =-) | ||
| whiteknight | so we have a JIT system that supports multiple backends | ||
| particle | the msvc port is experimental | ||
| NotFound | And the current parrot jit is mature? | 19:46 | |
| whiteknight | let's not compare apples to bullshit | ||
| particle | gee, thanks for that. | ||
| chromatic | particle, does the JIT give measurable performance improvements on Windows? | 19:47 | |
| particle | i don't know, i haven't measured | 19:48 | |
| chromatic | Okay. | ||
| particle | is there a pre-existing jit that works on all our target platforms? | ||
| chromatic | I don't know that. | ||
| whiteknight | I have to check | ||
| particle | a large percentange of dynamic language users use windows | ||
| whiteknight | libJIT might. Lightning might | ||
| chromatic | LLVM is *probably* the best choice for portability, especially if ARM is important (and ARM is *very* important). | 19:49 | |
| whiteknight | nanoJIT does, but it isn't in a form where we can use it | ||
| particle | no matter how much you ignore it or deride it | ||
| make the jit interface pluggable | |||
| then we can use best-of-breed jits on various platforms | 19:50 | ||
| whiteknight | that's my entire plan, in a nutshell | ||
| particle | and you can start with llvm first | ||
| whiteknight | pluggable = better | ||
| Coke | particle: according to llvm.org/docs/GettingStarted.html, there is llvm for windows. | ||
| particle | pluggability at parrot core is the only way we survive long term | ||
| coke: it's good with cygwin, experimental with msvc iirc | 19:51 | ||
| whiteknight | I don't think it's the only way, but it is a compelling feature | ||
| especally if our plugin systems are better then GCC's for instance | |||
| Coke | yes. much like all of parrot. | ||
| NotFound | We can write a jit plugin that does nothing, as a start | ||
| whiteknight | NotFound: better yet, we can use the one we have :) | ||
| NotFound | whiteknight: if you are masochistic enough... ;) | 19:52 | |
| whiteknight | my theory is that we are already parsing our OPS files, and generating code in a variety of forms to execute them | 19:53 | |
| particle | whiteknight: given our level of funding and committer time, we need to make it *very easy* for contributors to add value to parrot | ||
| whiteknight | so all we need to do is output additional forms for JIT engines to use | ||
| particle | oh, and if the llvm-on-windows answer is to introduce llvm folks to ms folks, i'll gladly help | ||
| whiteknight | it's a parser problem more then anything else. I don't suspect there will be a hell of a lot of C code for us to write | 19:54 | |
| Tene | particle: introduce them at high speed? | ||
| whiteknight | where "hell of a lot of C code" can mean many different things | ||
| NotFound | A funny excercise can be: take a .pbc file and generate optimized C code that can run with an embedded parrot. | 19:56 | |
| whiteknight | of course, realizing that there is more parsing and code generating to be doing, we need to seriously consider whether we want to do that in Perl5 or PCT | ||
| and if PCT, then there's a bootstrapping step | 19:57 | ||
| darbelo | Also: PCT is better, Perl5 is faster. | ||
| whiteknight | Perl5 is faster *now* | ||
| we have a world-class parsing engine in our repo, it's probably good to use that | 19:58 | ||
| NotFound | And maybe someday we can even get rid of lexx/yacc | ||
| whiteknight | NotFound: entirely possible. If Parrot only runs PBC natively and has a separate compilation step (think java and javac) | 19:59 | |
| Tene | as well, remember that this isn't runtime speed, it's compilation time. | ||
| TimToady | phone | ||
| NotFound | whiteknight: if parrot run pbc, we can have a pbc pir compiler | ||
| whiteknight | exactly | 20:00 | |
| einstein | the svn certificate gives the following message "The certificate hostname does not match." | ||
| whiteknight | now imagine how much simpler (and FASTER!) Parrot startup will be without IMCC in there | ||
| Tene | einstein: where are you getting that specifically? | ||
| NotFound | einstein: With which hostname? | ||
| einstein | svn.parrot.org:443 | 20:01 | |
| Tene | einstein: it works for me... | ||
| NotFound | Also for me | ||
| darbelo | whiteknight: pirc needs some more love before we can kill IMCC. | ||
| NotFound | darbelo: pirc is also lexx/yacc based | 20:02 | |
| purl | okay, NotFound. | ||
| whiteknight | darbelo: what we were talking about is not using IMCC or PIRC at all | ||
| einstein | it did work in the past but now it comes with this error | ||
| whiteknight | have a PCT-based compiler only | ||
| Tene | and generate pbc straight from POST | 20:03 | |
| NotFound | Anyway, imcc startup surely can be put out of the way when just loading and running a pbc. | ||
| whiteknight | Tene: YES! Exactly | ||
| darbelo | Oh, the one bacek had on github? That sounds cool. | 20:04 | |
| NotFound | Will not be a good idea to use different names? | ||
| whiteknight | I was thinking about having pluggable front-ends. We set up a standard API and people can plug in whatever frontend they want | ||
| We hand in either a filename or a string of code, and the frontend returns PBC | 20:05 | ||
| Tene | I'm wondering if we should have a word for non-pluggable instead of a term for pluggable, as Parrot is migrating towards an everything-pluggable system. | ||
| whiteknight | and if frontends are pluggable, we can swap out IMCC/PIRC with something else entirely. Parrot could be natively running a much higher-level language if it wanted to | ||
| NotFound | We need a PluggablePMCArray X-) | ||
| whiteknight | We could take the Perl5 parser wholesale and add it in as a frontend for Parrot | 20:06 | |
| Tene | Sup dawg, I heard you like plugging. | ||
| whiteknight | and program Parrot natively in Perl5 | ||
| treed | "Everything Pluggable" is a good goal. | 20:07 | |
| Tene plugs treed. | |||
| whiteknight | treed: it's also a ticket! | ||
| treed | It demonstrates that you're using encapsulation. | ||
| NotFound | And for fans we can sell a "Parrot Unplugged" special edition | ||
| treed | Tene: :o | ||
| whiteknight | allison++ | 20:08 | |
| (Great email she just sent out, everybody should read it | |||
| Tene | Just now? After the jit one? | ||
| treed | The JIT one? | ||
| treed doesn't have anything newer than that. | |||
| MoC | "Parrot, a Virtual Machine for running dynamic languages. And for building Virtual Machines running dynamic languages." | 20:09 | |
| ;) | |||
| whiteknight | parrot kicks ass, and will kick more in the future | 20:12 | |
| NotFound | You'll be assimilated! | ||
| Tene | NotFound: pluggably? | 20:13 | |
| NotFound | Tene: that's for 3.6 at least | 20:14 | |
| Pluggable world | |||
|
20:16
theory joined
20:17
theory joined
20:28
HG` joined
|
|||
| whiteknight | So what we need now is a series of tickets outlining what we need to do to make JIT happen | 20:28 | |
| (1) Design lorito | 20:29 | ||
| (2) Lorito parser with multiple backends (C code in several formats, LLVM code) | |||
| (3) redirection --runcore=jit to the fast core | |||
| (4) rip out the current JIT system | |||
| (5) read LLVM documentation like mad men | 20:30 | ||
| (6)??? | |||
| (7)PROFIT! | |||
| moritz | join the llvm developers IRC channel ;-) | ||
| (if they have one) | |||
| whiteknight | I dont know. They have a mailing list that I am already on | ||
|
20:30
dukeleto joined
|
|||
| NotFound | (8) Make a C compiler with PCT | 20:31 | |
| Tene | #llvm on irc.oftc.net | ||
| I'm idling there now. | |||
| chromatic | I'll take #3; it's trivial. | 20:32 | |
| darbelo | (5) can be done simultaneously with the others. (3) and (4) don't need to wait on (1) or (2) either. | ||
| particle | i'll take #7 | ||
| darbelo | I volunteer for 4 | 20:33 | |
| chromatic | #3 waits until after 1.6. | ||
| darbelo likes ripping out stuff. | |||
| whiteknight | chromatic: we can make a branch ow and merge it after 1.6 | ||
| Everybody: Find things you want to do, create a ticket, and be owner of it | 20:34 | ||
| NotFound | Didn't we say something about short live of branches? | ||
| Forget it, 1.6 is near enough | 20:35 | ||
| purl | NotFound, I didn't have anything matching it, 1.6 is near enough | ||
| particle | whiteknight: it's like a 10 line patch, including docs. no need for a branch | ||
| whiteknight | NotFound: 1.6 is out in less then 1week! | ||
| particle | #3, that is | ||
| whiteknight | particle: but we can start ripping out the JIT code too | ||
| We need to scalpel out everything but the NCI thunk generator | |||
| chromatic | I can make a local Git branch. | 20:36 | |
| .o0O scaryy O0o. | |||
| whiteknight | you git people and your black magic! | ||
| particle | could you instead update news and platforms? :P | ||
| dalek | tracwiki: v11 | chromatic++ | JITRewrite | ||
| tracwiki: added specific JIT replacement tasks and volunteers | |||
| tracwiki: trac.parrot.org/parrot/wiki/JITRew...ction=diff | |||
| whiteknight | particle: I updated NEWS a few days ago with the big things this month | 20:37 | |
| particle assumes he won't have to do any file updates, just run make release && tar :) | |||
| whiteknight | platforms does need an update though | ||
| do we need a PCT-based C compiler for this? | 20:38 | ||
| or a C-generating backend? | |||
| chromatic | A C-generating backend should handle it. | 20:39 | |
| whiteknight | I think Lorito will be easy enough to design now | 20:40 | |
| dalek | tracwiki: v12 | whiteknight++ | JITRewrite | ||
| tracwiki: trac.parrot.org/parrot/wiki/JITRew...ction=diff | |||
| whiteknight | start with LLVM ops, make them look a little more like PASM ops, ignore anything we don't like, and add a little sugar | ||
|
20:41
eiro joined
|
|||
| Coke | einstein: I think your browser might be overly anxious. (it's a multi-host cert, should be ok.) | 20:41 | |
| whiteknight has to go home now. Later | 20:42 | ||
|
20:42
bacek joined
|
|||
| einstein | ok | 20:44 | |
|
20:46
quek joined
|
|||
| Coke | And we did just replace the old (expired) cert. this one is from a different provider (which my command line stuff was anxious about at one point.) | 20:47 | |
| cotto | Should we be reading the docs for all the jit libraries so we know that whatever interface we design makes sense? | 20:53 | |
|
20:54
quek left
|
|||
| darbelo | cotto: Probably, but LLVM goes first, so it makes sense to read it's docs first. | 20:55 | |
| cotto | it may also be the case that any interface that works for llvm works for the other systems. I don't have enough experience to say. | ||
| darbelo | I gues that depends on how ll llvm is :) | 20:56 | |
| Coke | (llvm goes first) only if you assume that /someone/ read the docs and that their choice is sane. | 21:01 | |
| (which I am, but just to be clear.) | |||
| darbelo | Sanity is a pretty big thing to acuse people of, young man. | 21:03 | |
| Tene | Coke: you am sane | 21:04 | |
| ? | |||
| Coke | I am assuming. | 21:07 | |
|
21:11
davidfetter joined
21:18
davidfetter joined
21:23
allison joined,
davidfetter joined
21:26
fperrad left
21:35
joeri left
21:41
beta joined,
beta left
21:49
bacek joined
|
|||
| bacek | Good morning everyone except purl | 21:49 | |
| seen Whiteknight | 21:50 | ||
| purl | Whiteknight was last seen on #parrot 1 hours, 7 minutes and 57 seconds ago, saying: has to go home now. Later | ||
|
21:52
davidfetter joined
|
|||
| darbelo | Hmm. There is a bunch of broken 'testing only' functions in src/pmc_freeze.c wonder if I can rim them out... | 21:52 | |
| bacek | darbelo: kill 'em. KILLEMALL! | 21:53 | |
| cotto | darbelo, what he said | 21:56 | |
|
21:56
Zak joined
|
|||
| Coke mumbles something about six segfaults. | 22:03 | ||
| bacek | Coke: I can't repoduce #967... | 22:04 | |
|
22:05
ruoso joined
|
|||
| Coke | bacek: that's the one that notfound said he fixed in trac.parrot.org/parrot/changeset/40974 ? | 22:06 | |
| bacek | Coke: yeah... Can we close ticket? | 22:07 | |
| NotFound | Uh, forget to put a note in the ticket, sorry | ||
| purl | NotFound, I didn't have anything matching to put a note in the ticket, sorry | ||
| Coke | bacek: sure. | ||
| partcl parrot problems? | 22:08 | ||
| purl | partcl parrot problems is xrl.us/bfjj37 [code.google.com] | ||
| Coke | (anything in that list that says "segfault" is probably still open.) | ||
| Tene | partcl parrot successes? | ||
| bacek | NotFound: can you close ticket? I'm not going to steal your karma :) | ||
| Coke | partcl parrot successes is <reply>*cricket noise* | 22:09 | |
| partcl #107 might be the cause of mikehh's random segfaults. | |||
| (and it's packfile goodness!) | 22:10 | ||
| -> noms | |||
| bacek hate packfiles... | |||
| NotFound | bacek: done | 22:12 | |
| bacek | duff? | 22:13 | |
| purl | duff is perljam | ||
| dalek | TT #967 closed by NotFound++: segfault in utf8_set_position | 22:15 | |
| darbelo | svn diff | wc -l 346 | ||
| NotFound | Coke: mmmmm... I'm thinking that interp->initial_pf may be the source of all evil. | 22:17 | |
| darbelo | NotFound: Anything with "_pf" on it's name is a source of evil. | ||
| NotFound | darbelo: agreed, but that in particular may be related to the Eval.destroy thing | 22:18 | |
| The same packfile may be destroyed from several places. | 22:19 | ||
| darbelo | Oh, you were looking for a *specific* evil. My bad. | ||
| NotFound | All evil related with dying at exit, I mean | ||
| bacek | tclsh is crashing under valgrind... Hm... | 22:21 | |
|
22:23
Whiteknight joined
|
|||
| darbelo | Hmm. nopaste.pl needs WWW/Mechanize.pl, wonder if that's in ports. | 22:26 | |
| Andy | it should install with CPAN no prob | ||
| but it's likely to be in ports. | |||
| darbelo | Ah, it is. Installing now. | 22:27 | |
| NotFound | I think I have a fix, evne if ugly | ||
| darbelo | Andy: using cpan can complicate upgrades, I'd rather use ports when there's one available. | ||
| Andy | understood | 22:28 | |
| dalek | rrot: r41174 | bacek++ | trunk/src/pmc/continuation.pmc: [cage] Don't try to mark not-fully-construted Continuation. |
22:29 | |
| rrot: r41175 | bacek++ | trunk/include/parrot/compiler.h: [cage] Fix compilation without clang and with g++. |
|||
| darbelo | All tests successful. | 22:30 | |
| purl | darbelo: that's because you wrote only one test, slacker! | ||
| dalek | rrot: r41176 | NotFound++ | trunk/src/pmc/eval.pmc: [core] quick and dirty fix for TT #995 |
22:32 | |
| NotFound | Uh, a little too dirty | 22:33 | |
|
22:33
bacek_ joined
|
|||
| nopaste | "darbelo" at 200.49.154.172 pasted "Kill broken functions with fire. bacek++ cotto++" (347 lines) at nopaste.snit.ch/17895 | 22:35 | |
| chromatic | Whoa, time to optimize tools/dev/pprof2cg.pl. | 22:36 | |
| dalek | rrot: r41177 | NotFound++ | trunk/src/pmc/eval.pmc: [cage] fix c++ failure from r41176 |
||
| darbelo | bacek_, cotto : Killed 'em all. Want to review/commit nopaste.snit.ch/17895 ? | 22:37 | |
| bacek_ | darbelo: looking | ||
| darbelo: make headerizer? | 22:38 | ||
| darbelo | Left it out of the patch. You should run it if you apply it. | ||
| cotto | chromatic, what do you suggest? | ||
| NotFound | Coke: let's hope r41176/r41177 fixes several segafults | 22:39 | |
| chromatic | cotto, I'll take a look and see what jumps out at me. | ||
| cotto | chromatic, are you just noticing how slow it is? | ||
| chromatic | Yes. | ||
| It'll take a while to burn through 168MB of logs, but even still... | |||
| cotto | I haven't bothered to optimize it at all. | 22:40 | |
| chromatic | I know a bit about Perl 5. Maybe something will be obvious. | ||
| cotto | So I've heard. | 22:41 | |
| darbelo | bacek_: It was already 340+ lines of patch without headerizing, I figured more than that would complicate review. | ||
| bacek_ | darbelo: no worries. | ||
|
22:43
rg1 joined
|
|||
| chromatic | We do get output though.... | 22:44 | |
| NotFound | Uh, no, that fix is not enough to solve them all. | ||
| chromatic | Perl6Object::Build is *expensive*. | ||
| dalek | rrot: r41178 | bacek++ | trunk/src/pmc_freeze.c: [cage] Remove unused functions from src/pmc_freeze.c. Patch courtesy of darbelo++ |
22:46 | |
| Whiteknight | I didn't know chromatic knew perl5! I thought his blog posts were all hypothetical! | 22:55 | |
| somebody needs to get darbelo a damn commit bit!! | 22:56 | ||
| bacek_ | Somebody have to submit CLA! | ||
| darbelo | Sent it already, but it's way more fun to make you guys commit stuff for me. | 22:58 | |
| ;) | |||
| cotto | I'll commit you | 23:00 | |
| to an institution ;) | |||
| pmichaud | I hear that marriage is a great institution :) | ||
| bacek | Whiteknight: I'm start thinking about major GC "clean-up". | 23:03 | |
| darbelo | Clean it with fire? | ||
| cotto hands a machete to bacek | |||
| bacek | darbelo: yeah. Something like this :) | ||
| bacek rejecting cotto's machete and get flamethrower. | 23:04 | ||
|
23:05
Hunger joined
|
|||
| darbelo applies for a patent on the 'flame-throwing machete' | 23:05 | ||
| Whiteknight | bacek: cleanup or implementing a new core? | 23:07 | |
| or both :) | |||
| bacek | Whiteknight: clean-up first, generational compacting gc second :) | 23:08 | |
| We can have is almost for free with new attributes allocation schema. | 23:09 | ||
|
23:09
cognominal joined
|
|||
| bacek | mprotect? | 23:09 | |
| purl: mprotect? | 23:10 | ||
| purl | bacek: no idea | ||
| bacek | bah. Useless girl... | ||
| cotto | darbelo, good patch. | 23:11 | |
|
23:12
jan joined
|
|||
| bacek | Whiteknight: my current idea: Expose gc functions via GC_subsystem (gc-refactor branch); Implement compacting of ATTRibutes; (Don't compact PMC* by itself); Use mprotect to get cheap "old-to-new" pointers tracing. | 23:12 | |
| NotFound | PackFile segments direct usage are planned to be replace by his PMC counterparts? | 23:13 | |
| bacek | NotFound: TT#504. | ||
| darbelo | cotto: Not a big deal, really. It's just removing stuff. I'm good at that :) | ||
| Whiteknight | bacek: I don't think that gets us anything, we don't sweep the attributes pools, so we don't need to move items to be faster for sweeping | 23:14 | |
| compacting the attributes pools won't help anything | |||
| bacek | Whiteknight: it will. (more) | ||
|
23:15
Hunger joined
|
|||
| bacek | If we compact "old" ATTRibutes into single set of pages we can mprotect them for writing (more) | 23:15 | |
| When someone will try to write into protected attribute we'll mark page with "dirty" flag | 23:16 | ||
| NotFound | The coredumps at exit seems to be all double destruction of PackFile, there is no much point in add workarounds if this will change soon. | ||
| bacek | In "mark" phase we will just ignore "clean" old pages. | ||
| Whiteknight | bacek: but the PMCs aren't marked like that, and we don't mark attributes | 23:17 | |
| darbelo | NotFound: fsvo soon... | ||
| bacek | Whiteknight: we do mark attributes. Every custom Foo.mark marking attributes | 23:18 | |
| NotFound | darbelo: sooner if we work on that instead of in the problems caused for no having that. | ||
| Whiteknight | bacek: we don't mark the attributes structure itself, we mark the thigs that it points to | ||
| bacek | Whiteknight: ah. Yes. | ||
| darbelo | NotFound: True. | 23:19 | |
| bacek | So, when "attributes structure" belong to "clean old" page we can skip marking of pointers. | ||
| cotto | This is charming. After splitting the profiling runcore off into a separate file, it appears to run rakudo hello world 10x slower. | ||
| Somehow it's also running about 10x more instructions. | 23:20 | ||
| Whiteknight | bacek: but the PMCs are located in a different page, and they still need to get marked somehow | ||
| NotFound | cotto: Lack of global inlining ability of the compiler? | ||
| bacek | Whiteknight: yes. I'm not going to remove this phase. | ||
| cotto | NotFound, that wouldn't explain why it's running 10x more PIR instructions. | 23:21 | |
| NotFound | cotto: uh... no | 23:22 | |
| bacek | Whiteknight: anyway, first thing is expose current GC functions via GC_subsystem to decouple GC. Then we can break underlying stuff. | 23:23 | |
| Whiteknight | bacek: agreed | ||
| bacek | And it's $dayjob time. | ||
|
23:28
hercynium joined
|
|||
| cotto | It's odd because that commit did nothing but copy a couple files and delete some lines, apart from the makefile updates. | 23:29 | |
| darbelo | cotto: a change in rakudo maybe? | 23:30 | |
| cotto | nope. I've been testing against the same rakudo version. | 23:31 | |
| s/version/revision/ | |||
|
23:31
kyle_l5l joined
23:32
kid51 joined
|
|||
| darbelo | ghosts? | 23:33 | |
| purl | In this room where shadows live / And ghosts that failed learned time forgives / Welcome friends, please stay awhile / Our story start with one small child ... | ||
| pmichaud | maybe some change to vtable handling? | 23:34 | |
| i.e., things that weren't being handled by PIR vtables in one runcore are being handled that way in another? | |||
| (yes, I'm grasping at straws) | |||
| cotto | I'm seeing if I can nail it down to a single revision, before which profiling is fast and after which it's slow. | 23:35 | |
| pmichaud | oh yes, I was going to see how parrot changes since 1.5.0 have affected rakudo spectest timings | 23:36 | |
| I'll do that real quick | |||
| chromatic | I have an idea about PMC recycling in generated code, but that'll be an experiment on my part.... | 23:37 | |
| cotto | ok. it looks like the slowdown happens in the revision before I split out the profiling runcore | 23:39 | |
| this'll be fun | |||
| darbelo | cotto: which rev is that? | 23:40 | |
| cotto | darbelo, r41150 | ||
| kid51 | smolder down again? | 23:42 | |
| dalek | rrot: r41179 | mikehh++ | trunk/src/pmc_freeze.c: codetest failure - pod syntax |
||
| darbelo | "* Move SQLite3.pir from ext/ to library/ so it can be installed"? That r41150? | 23:43 | |
| cotto | darbelo, that's the revision right *before* I split off the runcore. | 23:45 | |
| darbelo | Oh, I was asking about the slowdown. It happens before splitting, right? | 23:46 | |
| cotto | darbelo, that's what I'm trying to figure out. | 23:47 | |
| darbelo | cotto: do you build optimized? | 23:49 | |
| cotto | darbelo, no, but the difference isn't attributable to that. --optimize speeds profiled rakudo hw from ~3m to ~2m | 23:50 | |
| (when the slowdown is in effect) | 23:51 | ||
| darbelo | That's r41140 off the hook then. | ||
| cotto | ? | 23:53 | |
| oic | |||
| darbelo | or maybe not, I have no clue when NDEBUG is (or isn't) #defined. | 23:56 | |
| cotto | I'll find out. | 23:57 | |
| 41120 is fast | |||
| NotFound | pmichaud: exception handlers must be run in the context where the exception was thrown in order to be able to acces his lexicals? | 23:58 | |
|
23:58
skv_ joined
|
|||