Author Topic: A question on biffing.  (Read 9564 times)

Offline Ascension64

  • Planewalker
  • *****
  • Posts: 472
Re: A question on biffing.
« Reply #25 on: February 23, 2006, 11:29:11 PM »
I guess I am fine with the bigg adding MAKE_BIFF to WeiDU provided that he says something along the lines of Weimer-spiel's "Do not ever ever ever for your whole entire life and afterlife use this." and make people drink too much.  In the practical context, it is not necessarily that someone's f00bared code will segfault WeiDU to the point that the installation goes down the drain.  Rather, the current situation is that mods will be made, and other mods will also be made that will not be intended to have compatibility with the former set of mods.  Incompatibilities of this kind, of which adventerous people will love to try out due to mis- or non-information of the inherent risks of installing a mod in the first place, sets up a prone environment for WeiDU failure.  At this stage, I do agree that MAKE_BIFF in WeiDU will likely cause problems if used.

MAKE_BIFF cannot really compare to --make-biff.  If you use MAKE_BIFF, and WeiDU segfaults after this command, some modding illiterate people will find it very hard to manually add the appropriate entry to WeiDU.log and restore their installation the easy way.  I would believe that more people would feel suspicious about leftover data to even trust such an uninstallation process.  If you use --make-biff, and DOS segfaults and quits cmd after this command, people can STILL UNINSTALL the WeiDU mod without problems.  This is if, of course, chitin.key is backed up appropriately.  I do strongly agree that people are warned, either generally or specifically, about the risks of handling a mod in the first place, but I do not think that a special warning is necessary for even the most sensitive commands.  In fact, people should treat the most minor vulnerability as a worst-case scenario.  For example, a generic radioactive sign is put in places where radioactivity MAY be used.  The radioactivity used is often contained in a separate room, and much of the time is relatively harmless.  But whenever anyone enters the room, or uses radioactivity, it is treated as if it could cause permanent damage.

People may not agree about BIFFing anything, but in BGT-WeiDU I provide ample support for and warranty against this kind of failure.  If you do not know already, the cmdweidu.exe segfaults on --biff-get-rest, and as far as I know, this hasn't even been investigated at the OCamL code level.  But, you can STILL UNINSTALL.  I list potential code vulnerabilities and resolutions here (as of BGT-WeiDU v1.00 internal test):
  1. AT_NOW.  If DOS/cmdweidu.exe segfaults, WeiDU will still run through the rest of the installation, but FAIL is used to protect against any of the functions falling apart.  Note that this section evokes biff-get-rest and --traify-tlk into directories that don't exist in a vanilla BG2:ToB installation, so segfaulting only leaves behind junk that won't affect the game.
  2. --biff-get-rest during AT_INTERACTIVE_EXIT.  Known crashes and problems when IE-related CDs are in drives, or even when no CDs are in drives.  Described above - you can still uninstall.
  3. --make-biff during AT_INTERACTIVE_EXIT. No reported problems.  If there is a segfault during .biffing and chitin.key gets corrupt, again you can still uninstall.  chitin.key is restored.
  4. dialog.tlk corruption due to anything.  A manual backup is provided.  Uninstallation will prompt users to restore dialog.tlk.  Failing that, the readme has a whole FAQ question dedicated to restoring dialog.tlk.  All troubleshooting sections ask manual restoration of dialog.tlk.  The instructions are transparent.
  5. AT_UNINSTALL.  WeiDU will continue uninstallation even if DOS segfaults.  A number of junk will remain in certain game folders (i.e. data\).  chitin.key is still restored, and dialog.tlk is still prompted for restoration
  6. Disclaimer.  I note explicitly that users are downloading, opening, extracting, running, using the modification I release at their own risk.  I also state that I will not be responsible for any damage done to software, hardware, life as a result of any of the above actions performed on the modification.  If people think that --make-biff will compromise anything, then it is up to them to use it.  If people are such procrastinators that they do not take time to read the readme, then there is nothing I can do about them.  How many people read the commercial disclaimer in its entirety before pressing the next button during the installation of any commercially released software?  How many people do the same with EULA?  How many even read the installed readme?
  7. WeiDU uninstall segfault.  If the segfault occurs before AT_UNINSTALL (which runs after uninstallation of patched/copied files), then the net result is nothing happened.  If WeiDU segfaults during final outputting of dialog.tlk, a manual backup can be restored.  In most cases, since WeiDU updates WeiDU.log near the very end of uninstallation, a failed uninstall will still allow the user to uninstall anyway.

Have I put forward enough of a case to allow support for --make-biff in BGT-WeiDU?  I will not be using MAKE_BIFF.

BIFFing is important for the low-end user.  It can be as drastic as reducing download size.  Many people in the community may not experience any performance increase when BIFFing files.  Other people might find a performance increase.  It is not necessarily the method the game engine uses to read resources that determines this (although I don't dispute that there is an element of engine behaviour in this phenomenon), but also hardware, and even software, bottlenecks can determine the change.  I can refer to disk fragmentation to be one of them, hardware combinations as another, and software running in the background as yet another.  We don't have any right to tell people that they must defragment their disk, or disable antivirus software, or whatever.  We do have, however, have the option of telling people that they could experience performance issues if they don't do these things.  At a commercial level, it is more important to widen the target audience by providing support for idiots (not necessarily the complete idiots).  Since this is a hobby, the onus is much more on the user of the mods, but still, how much satisfaction would you get if you made a brilliant mod that nobody could use, no matter how exaggerated this example is?  I biff because of the slightest possibility that some users out there will have increased performance and so will increase the fanbase somewhat, but I also biff with the necessary precautions (as above).

Finally, just because we do/don't see reports of multi-coloured failures due to, or the good/bad effects of, BIFFing, or even other things, it doesn't mean that they aren't/are happening.  Active users will post on the forums.  New users may register and post on the forums.  Others may just read, not care, find their own way out of it, or whatever other solution.  I don't think you can justify the presence/absence of something just by having no reports on it, while sometimes you can't even justify the same thing because it (didn't) happen(ed) to you.  So, we can say that anything is possible, but you can at least try to make life easier for others by BIFFing, or introducing safeguards, or whatever.

At the end of the day, if the bigg wants to release MAKE_BIFF, then it is up to him.  Do whatever.  :)

Offline King Diamond

  • Planewalker
  • *****
  • Posts: 101
Re: A question on biffing.
« Reply #26 on: February 24, 2006, 03:12:11 AM »
Quote
MAKE_BIFF cannot really compare to --make-biff.  If you use MAKE_BIFF, and WeiDU segfaults after this command, some modding illiterate people will find it very hard to manually add the appropriate entry to WeiDU.log and restore their installation the easy way.  I would believe that more people would feel suspicious about leftover data to even trust such an uninstallation process.  If you use --make-biff, and DOS segfaults and quits cmd after this command, people can STILL UNINSTALL the WeiDU mod without problems. 

As far as I understand  ;) MAKE_BIFF is controlled by WeiDU for 100% that means that if something is going wrong and WeiDU is not able to complete that command successfully it will just rollback all the modifications (as it's being done in all faults in other actions right now) and finish with an initial prompt. So what this discussion is all about?  How to prevent user from launching "format c:"?  ::)

Offline Ascension64

  • Planewalker
  • *****
  • Posts: 472
Re: A question on biffing.
« Reply #27 on: February 24, 2006, 03:15:29 AM »
WeiDU crashes, KD, not fails installation.

Offline the bigg

  • The Avatar of Fighter / Thieves
  • Moderator
  • Planewalker
  • *****
  • Posts: 3804
  • Gender: Male
Re: A question on biffing.
« Reply #28 on: February 24, 2006, 07:49:26 AM »
As a note: segfaults mean that there has been a problem in the OCaml compiler, since OCaml itself doesn't have pointers/manual memory assignment, and as such any hard crash is officially Not My (or Weimer's) Fault.

WeiDU v190 and later will be compiled without the --unsafe flag. Installation might be slower (in my tests, it goes somewhat like 5 seconds -> 6 seconds with this change), but chances are there will be less segfaulting.
Author or Co-Author: WeiDU (http://j.mp/bLtjOn) - Widescreen (http://j.mp/aKAiqG) - Generalized Biffing (http://j.mp/aVgw3U) - Refinements (http://j.mp/bLHoCc) - TB#Tweaks (http://j.mp/ba02Eg) - IWD2Tweaks (http://j.mp/98OFYY) - TB#Characters (http://j.mp/ak8J55) - Traify Tool (http://j.mp/g1Ry9A) - Some mods that I won't mention in public
Maintainer: Semi-Multi Clerics (http://j.mp/9UeIwB) - Nalia Mod (http://j.mp/dng9l0) - Nvidia Fix (http://j.mp/aRWjjg)
Code dumps: Detect custom secondary types (http://j.mp/hVzzXG) - Stutter Investigator (http://j.mp/gdtBn8)

If possible, send diffs, translations and other contributions using Git (http://j.mp/aBZFrq).

Offline SimDing0™

  • Back In Black
  • Global Moderator
  • Planewalker
  • *****
  • Posts: 3496
  • Gender: Male
  • Word Enhancer
Re: A question on biffing.
« Reply #29 on: February 24, 2006, 08:14:20 AM »
I guess I am fine with the bigg adding MAKE_BIFF to WeiDU provided that he says something along the lines of Weimer-spiel's "Do not ever ever ever for your whole entire life and afterlife use this."
Weimer's "do not use" labels have always been a running joke since they typically mark the most useful features in WeiDU.

Quote
At the end of the day, if the bigg wants to release MAKE_BIFF, then it is up to him.  Do whatever.  :)
This is the worst thing I have ever heard. It is, in fact, *vastly gayer* than asserting that modmakers can do whatever they feel like, because poor WeiDU updates are detrimental to all of us. I maintain confidence that the_bigg will not make a huge mess of anything, but I suggest that encouraging him to go power mad and balls everything up is not the way to go. :)

Offline devSin

  • Planewalker
  • *****
  • Posts: 1632
  • Gender: Male
Re: A question on biffing.
« Reply #30 on: February 24, 2006, 08:33:16 AM »
As a note: segfaults mean that there has been a problem in the OCaml compiler, since OCaml itself doesn't have pointers/manual memory assignment, and as such any hard crash is officially Not My (or Weimer's) Fault.
There have been segfaults in WeiDU that were definitely Wes' fault, and not just "OMG OCaml sux!!!"

Offline the bigg

  • The Avatar of Fighter / Thieves
  • Moderator
  • Planewalker
  • *****
  • Posts: 3804
  • Gender: Male
Re: A question on biffing.
« Reply #31 on: February 24, 2006, 08:33:55 AM »
I maintain confidence that the_bigg will not make a huge mess of anything, but I suggest that encouraging him to go power mad and balls everything up is not the way to go. :)
The modder uses \ in a wrong position in banterpack\dialogues.

"jokes" aside (har har), I don't believe that allowing people to make biffs in a stabler way is detrimental. So far, KD, A64 et all have used the unreliable AT_*EXIT to make biffs in the main component, which means that in a chain uninstall-reinstall sequence everything is fubared (there are at least 5 threads asking to break backwards compatibility in to AT_*EXIT for biffing purposes).

No matter if it is done via AT_* or via MAKE_BIFF, there is the chance of fubaring an install. However, MAKE_BIFF has the benefit that it works with chain installs/reinstalls. A professional modder will (probably) add a new component with safeguards (EG, instructions to RTFM). If the user doesn't RTFM, then it's his fault.

Finally, let nature take his own course: IF_EVAL died once BUT_ONLY step in, so if MAKE_BIFF is so bad I'm sure it'll die, too. The difference is that MAKE_BIFF doesn't add an additional layer of bugs as IF_EVAL does  ;)
Author or Co-Author: WeiDU (http://j.mp/bLtjOn) - Widescreen (http://j.mp/aKAiqG) - Generalized Biffing (http://j.mp/aVgw3U) - Refinements (http://j.mp/bLHoCc) - TB#Tweaks (http://j.mp/ba02Eg) - IWD2Tweaks (http://j.mp/98OFYY) - TB#Characters (http://j.mp/ak8J55) - Traify Tool (http://j.mp/g1Ry9A) - Some mods that I won't mention in public
Maintainer: Semi-Multi Clerics (http://j.mp/9UeIwB) - Nalia Mod (http://j.mp/dng9l0) - Nvidia Fix (http://j.mp/aRWjjg)
Code dumps: Detect custom secondary types (http://j.mp/hVzzXG) - Stutter Investigator (http://j.mp/gdtBn8)

If possible, send diffs, translations and other contributions using Git (http://j.mp/aBZFrq).

 

With Quick-Reply you can write a post when viewing a topic without loading a new page. You can still use bulletin board code and smileys as you would in a normal post.

Warning: this topic has not been posted in for at least 120 days.
Unless you're sure you want to reply, please consider starting a new topic.

Name: Email:
Verification:
Type the letters shown in the picture
Listen to the letters / Request another image
Type the letters shown in the picture:
What color is grass?:
What is the seventh word in this sentence?:
What is five minus two (use the full word)?: