IWETHEY v. 0.3.0 | TODO
1,095 registered users | 0 active users | 0 LpH | Statistics
Login | Create New User
IWETHEY Banner

Welcome to IWETHEY!

New Re: Logistics query re known 'bad' OS components -
So then: if some Hero (or fool?) ran amok, disassembled several of these .dll versions and found the bad logic in "most?" of them - would the programmer generate a filter == add more code to SeaMonkey: that detects the version and self-modifies accordingly? (Would this not also slow things, each time that display dll gets called? Decent tradeoff, perhaps, but more chances for incompatibilities elsewhere?)

I don't know about Mozilla but in my experience there are two popular ways of dealing with this in code. Some applications use a fall back system, where they try method A and if that fails they switch to using method B and so on. This works well can you can detect failures of an interface, but for many of the nasty problem you either can't or by the time you can it is too late. The second is to determine which versions of key DLLs are installed and modify behavior accordingly when the program starts. This works well when you know exactly which DLLs have which problems, but in reality it is often hard to tell.

Most custom built business applications use neither. They just are designed against a specific version of the DLL and if that turns into a problem later it is forced onto the machine as part of the install process. If that can't be done they simply stick with the old version until they have no choice but fix the problem.

The company I'm working for now was running Windows NT on some desktops till this year because a key application wouldn't work on XP.

Jay
New Ahh - thanks.
Tradeoffs understood (..so long as that ap isn't running with another ap which wants a different version.) {sob}

So then (were Doze smarter designed) one might envision:
every executable having a descriptive filename plus its version-determined [unique subname] by which it is IDed in memory. You'd have to get around dupe filenames in directories (or as in the olden days - keep those Only in the ap's launch directory?) but there would be no name confusion, on launch. Ah But - then there's keeping the PATH up-to-date and never Too-long :-/

Jeez Billy, you narcissistic amateur. Not 'The Smartest Guys in the Room', though new hires are told that, I've oft heard. (I realize that *nix can load whatever new/old versions of libs - available simultaneously, as needed. Smart college guys.)

One can only wonder how the moz folk (have, apparently and gradually) solved this particular version roulette which I've watched for some years..
Dear esteemed Mozilla programmer, YPB: HTF did you Do this?

New Side by side on my piano keyboard oh lord why don't we...
Windows XP and later have something called Side-by-Side Assemblies:


Starting with Windows XP, multiple versions of side-by-side assemblies can be used by applications running at the same time. Manifests, and the assembly version number, are used by the loader to determine the correct binding of assembly versions to applications.
...
When an application calls to load the DLL, the side-by-side manager determines whether the application has a version dependence described in a manifest. If there is no relevant manifest, the system loads the default version of the assembly.


-- [link|http://msdn2.microsoft.com/en-us/library/aa376307.aspx|http://msdn2.microso...ary/aa376307.aspx]
--
Chris Altmann
Expand Edited by altmann Aug. 7, 2007, 08:21:46 PM EDT
New Interesting. Of course, being Microsoft, they break it...
[link|http://et.cairene.net/2006/05/03/behavior-change-in-server-2003-sidebyside/|Behavior change in Server 2003 SideBySide?].

DLLs did make some sense in saving memory and load times on slow, memory-constrained machines. But once MS's APIs got ungodly complex, they tied applications into the OS, etc., etc., then it was guaranteed to break. This [link|http://www.geek-central.gen.nz/peeves/shared_libs_harmful.html|rant] from 1998 makes the point pretty well.

Like many of these things, it seems to be [link|http://patft.uspto.gov/netacgi/nph-Parser?Sect1=PTO2&Sect2=HITOFF&p=1&u=%2Fnetahtml%2FPTO%2Fsearch-bool.html&r=1&f=G&l=50&co1=AND&d=PTXT&s1=5708811.PN.&OS=PN/5708811&RS=PN/5708811|IBM's fault]...

Cheers,
Scott.
New Different goal
DLLs where designed for the era when disk space and memory where very limited. The idea was you only ever needed one foo.dll on a system and would ever only load one foo.dll into memory. If another application called foo.dll, Windows just passed a reference to the already loaded copy.

At the time it was a sensible solution, though poorly implemented. Microsoft made two key mistakes from the start, failing to clearly separate system and application DLLs, and not providing a good way of uniquely naming or providing version numbers for DLLs.

What makes it so typical of Microsoft is that they where copying something from Unix, and managed to mess it up. Shared Libraries under Unix are not what I would call elegant. But the system does work and covers all of the major issues.

Jay
     Logistics query re known 'bad' OS components - - (Ashton) - (8)
         programming is the art of linking crap libraries - (boxley) - (1)
             So then - - (Ashton)
         It's more of an art than a science. - (static)
         Re: Logistics query re known 'bad' OS components - - (JayMehaffey) - (4)
             Ahh - thanks. - (Ashton) - (3)
                 Side by side on my piano keyboard oh lord why don't we... - (altmann) - (1)
                     Interesting. Of course, being Microsoft, they break it... - (Another Scott)
                 Different goal - (JayMehaffey)

No Cheesy Chatroom Shite here!
47 ms