Vitaliy wrote: > Jeremy Lee wrote: >>> You probably know that, but just in case... http://sourceforge.net/ >>> has a pretty complete feature set, while >>> http://code.google.com/hosting/ seems to be really simple to set >>> up. These are probably the ones at the two ends of the spectrum. >> >> Meh, they're OK, but they're more for distribution of files than >> collaborative editing. I've been looking at GITHub, and I'd like it >> better if the code editor had some form of syntax highlighting, but >> it seems to have the main features I was wishing for. I'm not sure, but I think most people who would have the experience to collaborate have their favorite environment (where they feel "at home" and are efficient) and don't have a problem checking out sources from a repo. Those repos are for collaborative work; you need to check out the sources, but that's really not that big of a deal. I'm not sure you would want someone who doesn't want to spend the time to check out some code poke in your code and commit changes -- he probably doesn't want to spend the time to become familiar with the code before committing either. >> What I think I really want is a collaborative _build_ environment, >> where the compiler, linker, and libraries are hosted on a server so >> that no matter who builds the code, it's done with the same compiler >> tools. > > Why? Yup, why? Besides the points Vitaliy raised, the other thing is that whoever will collaborate will do so because he is thinking about using that code with his toolchain -- not with yours. So making potential collaborators work with your toolchain seems like a turnoff for any serious collaborator ("serious" as in "I will use this code for real-world applications"). >> As we know, in the embedded realm using a different compiler can >> seriously throw out your timing loops. IMO timing loops, where necessary, have to be in (embedded) assembly if the code is meant to be reusable. Even with a different version of the same compiler you're not guaranteed the same timing. >> As long as we all have (potentially) different toolchains, we're >> never going to be able to write truly maintainable code. There's no >> consistency, in time or space. That's not true. Many people write code that works with different toolchains, including timing loops. Minor differences in timing or occupied space between compilers and compiler versions don't matter for a library (except for the timing loops, but if they are in assembly, they're not compiler-dependent). > I think your concerns are exaggerated. Wrap your timing loops in a > function or a macro. Make a simplifying assumption ("everyone uses > C30"), but make it a point to avoid relying on platform-specific > stuff. Yup. I think if you want collaborators, you need to think about making the code as toolchain-neutral as possible. One thing that helps is collecting all compiler-dependent code in a separate directory, and wrap it in macros or functions, if possible with a common prefix. > Use Subversion for collaboration, and let everyone use their favorite > editor. Yup. Gerhard -- http://www.piclist.com PIC/SX FAQ & list archive View/change your membership options at http://mailman.mit.edu/mailman/listinfo/piclist