From: Alexei S. <ale...@gm...> - 2009-02-04 22:18:02
|
If you _really_ want to keep it as one patch, then I'm gonna have to spend more time reviewing your the full set of changes and asking more questions. For one, I don't like the renaming of main.m in PrefsEditor. It seems it poses a restriction on how things are named which can cause subtle problems. Perhaps it would be better have a convention of xyz.ext.o - for example xyz.cpp.o or xyz.m.o. I've seen this convention used before in other projects. This way there's no confusion as to what object file should come from where. -Alexei On Wed, Feb 4, 2009 at 4:43 PM, Alexei Svitkine <ale...@gm...> wrote: > Smaller patches are easier to review because I can look at the code > and at the description of what the patch does and see if it > corresponds. A giant patch of "make things work" is hard to review for > mistakes. > > For example: > > - MacOSX/macos_util_macosx.h MacOSX/extfs_macosx.h \ > + MacOSX/macos_util_macosx.h Unix/cpr.sh \ > > > Why is extfs_macosx.h removed? Is this intentional or a mistake? > > if this was part of a smaller patch that described exactly what's > being added (ex: added cpr.sh to replace cp command), then I would > know for sure its a mistake. But here I don't know - perhaps its > related to your other change. > > I also don't buy your argument of not being able to test it on the > other machine. By that logic no other change to the code should be > made after I add your patch because it's impossible to test on all the > machines! > > I think that its possible to split the patch into incremental changes > while keeping the end result the same (and thus equivalent to the code > you tested that worked). > > Also if one of the changes causes an issue, its easier to roll back > just that change instead of the huge patch... > > -Alexei > > On Wed, Feb 4, 2009 at 2:21 PM, Mike Sliczniak > <bas...@sp...> wrote: >> Hi, >> >> Good catches. >> >> On Tue, 3 Feb 2009, Alexei Svitkine - ale...@gm... wrote: >> >>> Also I don't see the why you're replace cp -f with cpr.sh. It should >>> only replace cp -R. >> >> Resource forks and extended attrs don't need to be conserved. >> >>> Also you have an "i" for some reason after an #undef: >>> >>> +#undef MACH_EXCEPTION_CODES i >> >> I use vim, that was a stray insert when I was already in insert. Get rid >> of that i. Luckily cpp does not care about that, but I got lucky. >> >>> > Also from a quick glance, this makes no sense: >>> > >>> > sigsegv_address_t sigsegv_get_fault_instruction_address(sigsegv_info_t *SIP) >>> > { >>> > #ifdef HAVE_MACH_EXCEPTIONS >>> > +#ifdef HAVE_MACH_EXCEPTIONS >>> > if (!SIP->has_thr_state) { >>> > mach_get_thread_state(SIP); >>> > >>> > SIP->pc = (sigsegv_address_t)SIGSEGV_FAULT_INSTRUCTION; >>> > } >>> > #endif >>> > +#endif >>> > return SIP->pc; >>> > } >> >> That should be #ifdef EMULATED_PPC instead of #ifdef HAVE_MACH_EXCEPTIONS. >> I never tested the sigsegv instruction skipper so that is why I did not >> notice this one. When you are building for a PPC, SIGUSR2 is used for the >> interrrupt trigger and signal handlers instead of the mach exception >> handling. If you do thread_get_state here you get a crash since you are >> getting the state of your own running thread which is not suspended. I >> believe that Gwenole tried to get the signal handlers working together >> with mach exceptions sometime back after I added the mach exception stuff >> to BasiliskII but was not successful and so that is why it is the way it >> is. Also back then I did not understand how SheepShaver (since I never >> needed it) worked so I was no help. One of the things I want to >> investigate is if thread_suspend and mach exception handlers instead of >> signal handlers would be an improvement. >> >> About breaking-up the patches. I would rather not. Also some are in the >> same files, would you like patches that do not patch cleanly or would you >> like me to submit a patch and wait then prepare another? I'm not too >> comfortable with that because like I wrote before, the PPC 10.4 machine I >> had to test and build on has died. I am afraid to perturb too much and >> make a set of patches that do not build or run on 10.4. What I did to >> create this is I made some patches to the code until I got it to compile >> and run on one combination of os and cpu and then I tried it on another. I >> tweaked until it worked on the new one and then I learned that those no >> longer worked on the previous. I had to do that for a few combinations of >> different options for SheepShaver and BasiliskII on three machines. It >> took a lot of trial and error (and time) to get a nice set of patches that >> worked on every combination I had access to. >> >> But here is a description if that helps: >> >> The sdl audio change is easy to see. If you do not want that one, that is >> fine, it only makes things more tolerable on slower machines. (Meaning the >> system beep tends not to break-up.) It is only a change to a single >> file. >> >> The other source code changes are all about getting it to compile under >> Tiger and Leopard. >> >> The cpr.sh was to get .app bundles that worked right on Tiger because if >> they had extra detritus they would not work right. Leopard was much more >> forgiving. >> >> The changes to the autoconf stuff, most of it was to support building with >> a prebuilt SDL framework, it is pretty easy to see what belongs with that. >> Then there is a smidge so that you can have SDL audio if you wish even >> with OS X. The rest are little tweaks to get it to build and link a >> working binary for Tiger and Leopard. >> >> The two new files and the changes to the GUI prefseditor files were for >> the build to continue to work correctly after adding the option of the SDL >> Framework build. >> >> Let me know if you have other concerns especially about the patches to the >> code or want me to do something in a different way like you only want me >> to patch a subset and forget about the rest. >> >> mzs >> >> >> ------------------------------------------------------------------------------ >> Create and Deploy Rich Internet Apps outside the browser with Adobe(R)AIR(TM) >> software. With Adobe AIR, Ajax developers can use existing skills and code to >> build responsive, highly engaging applications that combine the power of local >> resources and data with the reach of the web. Download the Adobe AIR SDK and >> Ajax docs to start building applications today-http://p.sf.net/sfu/adobe-com >> _______________________________________________ >> basilisk-devel mailing list >> bas...@li... >> https://lists.sourceforge.net/lists/listinfo/basilisk-devel >> > |