Build system changes

1 view
Skip to first unread message

Elliott Slaughter

unread,
Jun 19, 2011, 3:10:48 PM6/19/11
to blackthorn-eng...@googlegroups.com
I think the dust has finally settled on the build system changes I've been making in the last week or so. I reset res in the process and also changed a lot of the other subrepos, so you'll need to do a fresh clone of the repository in order to avoid painful merges.

If you previously depended on the builtin Lisp compilers, you now have to run

./build/get-dependencies.sh

to get everything installed. (You might have to run it twice (logging in an out between attempts) if you don't have SBCL installed because the installer doesn't flush the environment variables properly.)

Now on to code refactoring...

--
Elliott Slaughter

"Don't worry about what anybody else is going to do. The best way to predict the future is to invent it." - Alan Kay

Patrick Stein

unread,
Jun 23, 2011, 7:31:56 PM6/23/11
to Blackthorn Engine 3D

I hadn't used SDL on my Mac in a few years. I deleted the old
frameworks that I had and built the needed libs from sources.
Unfortunately, this made libraries instead of frameworks. So, I had
to tweak some of the CFFI library stuff. Basically, where there was
(:darwin (:framework "FOO")), I made them (:darwin (:or (:framework
"FOO") (:default "libFOO"))) in src/blackthorn3d/utils/library.lisp
and in a couple of the lispbuilder libraries.

I'm assuming I'd need to send a patch for the lispbuilder libraries to
someone else.

Is the Mercurial workflow based on patches or do I need to set up a
repo someone can pull from somewhere?

Thanks,
Patrick

Elliott Slaughter

unread,
Jun 24, 2011, 1:22:20 AM6/24/11
to blackthorn-eng...@googlegroups.com
On Thu, Jun 23, 2011 at 4:31 PM, Patrick Stein <p...@nklein.com> wrote:

I hadn't used SDL on my Mac in a few years.  I deleted the old
frameworks that I had and built the needed libs from sources.
Unfortunately, this made libraries instead of frameworks.  So, I had
to tweak some of the CFFI library stuff.  Basically, where there was
(:darwin (:framework "FOO")), I made them (:darwin (:or (:framework
"FOO") (:default "libFOO"))) in src/blackthorn3d/utils/library.lisp
and in a couple of the lispbuilder libraries.

I'm assuming I'd need to send a patch for the lispbuilder libraries to
someone else.


Is the Mercurial workflow based on patches or do I need to set up a
repo someone can pull from somewhere?

Mercurial itself is agnostic. Google Code is able to host clones for you, so I think that's what we'll go with.


Thanks,
Patrick

Patrick Stein

unread,
Jun 28, 2011, 12:30:34 AM6/28/11
to Blackthorn Engine 3D
Okay, so I started a clone then and created a 'mac-sdl-enhancement'
branch. The only diff in the branch is several lines in src/
blackthorn3d/utils/library.lisp that allow it to use either frameworks
(as it was before) or shared libaries on MacOSX.

http://code.google.com/r/patrickwonders-blackthorn-dev/source/browse/?name=mac-sdl-enhancement

ttyl,
Patrick

Elliott Slaughter

unread,
Jun 28, 2011, 1:52:44 AM6/28/11
to blackthorn-eng...@googlegroups.com
A couple of comments:

Your name in the revision showed up as patrickwonders. Please create a file named .hgrc in your home directory. Here's an example (with the email obfuscated):

$ cat ~/.hgrc 
[ui]
username=Elliott Slaughter <exa...@email.address>

Also, would mind reapplying the patch without creating a branch? Unlike git, mercurial treats history religiously so mercurial won't, for example, squash a bunch of commits into one, and keeps the original branch name, even after it's been merged into the main branch. I'd also like to avoid any situation where the repository ever acquired more than one head. And clones are cheap on Google Code, so there's not too much disadvantage to doing this.

Thanks.

Patrick Stein

unread,
Jun 28, 2011, 10:46:23 AM6/28/11
to blackthorn-eng...@googlegroups.com

Okay, I'll fix the username and do it all branchless tonight.

I'm confused about the general workflow.  Say that I spend a few days making sure the LKCAS-specific network code isn't mingled with the generic network code.  If others make changes to the trunk while I am working on my clone of it, how would that work?  Would I pull those from the trunk as I work? Or, would I wait until I am all done and leave any merging to whoever merges my stuff into the trunk?  Should I make a new clone for each task and nuke the clone once it's merged or abandoned?

Thanks...

-- Patrick <p...@nklein.com>

Elliott Slaughter

unread,
Jun 28, 2011, 11:50:12 AM6/28/11
to blackthorn-eng...@googlegroups.com
On Tue, Jun 28, 2011 at 7:46 AM, Patrick Stein <p...@nklein.com> wrote:

Okay, I'll fix the username and do it all branchless tonight.

I'm confused about the general workflow.  Say that I spend a few days making sure the LKCAS-specific network code isn't mingled with the generic network code.  If others make changes to the trunk while I am working on my clone of it, how would that work?  Would I pull those from the trunk as I work? Or, would I wait until I am all done and leave any merging to whoever merges my stuff into the trunk?

If something in trunk changes that you want to merge against sooner rather than later, than I'd say yes, go ahead and merge. For long lived clones, then it would be good to do this regularly as well. Otherwise there is no need to merge until the end.

Should I make a new clone for each task and nuke the clone once it's merged or abandoned?

For long lived lines of development which can't coexist in trunk, definitely. For faster, single-patch changes, I'd probably keep a single clone around to avoid the overhead. Alternatively I could grant you commit access and you could push directly to the repository instead for such patches.

So far we've gotten away with using trunk for almost everything. I had one questionable change which went into a clone (and is still living there at this point), but besides that, everything has been pushed straight to trunk from a local repo.

Thanks...

I hope that makes sense (and is hopefully not too insane).

-- Patrick <p...@nklein.com>

On Jun 28, 2011, at 12:52 AM, Elliott Slaughter <elliotts...@gmail.com> wrote:

On Mon, Jun 27, 2011 at 9:30 PM, Patrick Stein <p...@nklein.com> wrote:
Okay, so I started a clone then and created a 'mac-sdl-enhancement'
branch.  The only diff in the branch is several lines in src/
blackthorn3d/utils/library.lisp that allow it to use either frameworks
(as it was before) or shared libaries on MacOSX.

http://code.google.com/r/patrickwonders-blackthorn-dev/source/browse/?name=mac-sdl-enhancement

A couple of comments:

Your name in the revision showed up as patrickwonders. Please create a file named .hgrc in your home directory. Here's an example (with the email obfuscated):

$ cat ~/.hgrc 
[ui]
username=Elliott Slaughter <exa...@email.address>

Also, would mind reapplying the patch without creating a branch? Unlike git, mercurial treats history religiously so mercurial won't, for example, squash a bunch of commits into one, and keeps the original branch name, even after it's been merged into the main branch. I'd also like to avoid any situation where the repository ever acquired more than one head. And clones are cheap on Google Code, so there's not too much disadvantage to doing this.

Thanks.

--
Elliott Slaughter

"Don't worry about what anybody else is going to do. The best way to predict the future is to invent it." - Alan Kay

Patrick Stein

unread,
Jun 28, 2011, 9:02:14 PM6/28/11
to Patrick Stein, blackthorn-eng...@googlegroups.com

Elliott Slaughter

unread,
Jun 29, 2011, 12:12:25 AM6/29/11
to blackthorn-eng...@googlegroups.com, Patrick Stein
Ok, pushed to trunk.

Next time you make a change, either reset or delete and recreate your clone because I think the old branch is still floating around.
Reply all
Reply to author
Forward
0 new messages