Versions

IRIX/Nekoware development, porting and related topics.
Forum rules
Any posts concerning pirated software or offering to buy/sell/trade commercial software are subject to removal.
User avatar
jimmer
Donor
Donor
Posts: 470
Joined: Tue Oct 12, 2004 3:54 pm
Location: London, Ingerlund

Re: Versions

Unread postby jimmer » Fri Jul 24, 2015 5:49 am

hamei wrote:
yetanother**ixuser wrote:
commodorejohn wrote:Hell, it's basically Lennart Poettering's entire reason for existing...

He-who-must-not-be-named :twisted:

Jesus. I didn't know anything about all this, did ten minutes' research.


Well, now I guess you understand the context of my rant at viewtopic.php?f=8&t=16727998 a little better...
:Fuel: redbox 800Mhz 4Gb V12
:O2: bluebox 200Mhz 256Mb AV1+O2Cam

User avatar
GL1zdA
Donor
Donor
Posts: 417
Joined: Thu Dec 31, 2009 3:18 pm
Location: Warsaw, PL

Re: Versions

Unread postby GL1zdA » Fri Jul 24, 2015 8:06 am

hamei wrote:
GL1zdA wrote:And in the end the providers of the library will suffer. Imagine a client, whose program works on your OS with your library version A. You are providing the upgrade, which upgrades the library to version B. Now the clients program breaks, because you modified some of the libraries undocumented behavior. Who do you think will be blamed?

I disagree, and perhaps this illustrates a difference between people of the past and tomorrow's young whippersnappers.

In the early nineteenth century there were a gazillion railroads with a gazillion track gauges. This obviously impeded interaction between railroads, so they got together and developed a standard. Now any railcar could go on any railroad (with the exception of some isolated narrow gauge lines.) If a car builder sold a boxcar with a non-standard wheel width, the railroad did not "get the blame." If any company had been stupid enough to provide non-standard trucks, that company would have been quickly bankrupted by pissed-off customers. Not the railroad, which was adhering to the standards. The company which insisted on doing something in a non-compliant way.


The problem is, libraries are more complicated than tracks and railcars. People rarely get them right the first time they try, so the APIs/ABIs have to evolve.
:PI: :Indigo: :Indigo: :Indigo: :Indy: :Indy: :Indigo2: :Indigo2IMP: :Octane: :Fuel: :540:

User avatar
guardian452
Donor
Donor
Posts: 3429
Joined: Tue Aug 21, 2007 10:12 pm
Location: United States
Contact:

Re: Versions

Unread postby guardian452 » Fri Jul 24, 2015 12:20 pm

hamei wrote:What would happen if I started selling blenders that ran on 93 volts, 35 hz ac ? "Well, once upon a time in Bumfuck, Idaho, the electricity used that voltage and frequency ..." Yeah right. Good luck with that, Bunky.

Well, then, you are expected to include at no extra cost a power supply that can provide that. :mrgreen:

User avatar
vishnu
Donor
Donor
Posts: 3176
Joined: Sun Mar 18, 2007 3:25 pm
Location: Minneapolis, Minnesota USA

Re: Versions

Unread postby vishnu » Fri Jul 24, 2015 3:09 pm

guardian452 wrote:
hamei wrote:What would happen if I started selling blenders that ran on 93 volts, 35 hz ac ? "Well, once upon a time in Bumfuck, Idaho, the electricity used that voltage and frequency ..." Yeah right. Good luck with that, Bunky.

Well, then, you are expected to include at no extra cost a power supply that can provide that. :mrgreen:

That's pretty much what took Apollo 13 out of their mission plan... :shock:
Project:
Temporarily lost at sea...
Plan:
World domination! Or something...

:Tezro: :Octane2:

User avatar
uunix
Donor
Donor
Posts: 1795
Joined: Sun Mar 27, 2011 12:48 pm
Location: Stourbridge / England / UK

Re: Versions

Unread postby uunix » Fri Jul 24, 2015 3:33 pm

I think Kevin Bacon pressed the wrong button
-----------------------------------------------------------------------
Hey Ho! Pip & Dandy!
:Octane2: :O2: :Indigo: :Indy:
-----------------------------------------------------------------------

User avatar
vishnu
Donor
Donor
Posts: 3176
Joined: Sun Mar 18, 2007 3:25 pm
Location: Minneapolis, Minnesota USA

Re: Versions

Unread postby vishnu » Fri Jul 24, 2015 4:12 pm

uunix wrote:I think Kevin Bacon pressed the wrong button

Nah... How could he have? ;)
Attachments
ad019.gif
Project:
Temporarily lost at sea...
Plan:
World domination! Or something...

:Tezro: :Octane2:

User avatar
uunix
Donor
Donor
Posts: 1795
Joined: Sun Mar 27, 2011 12:48 pm
Location: Stourbridge / England / UK

Re: Versions

Unread postby uunix » Fri Jul 24, 2015 4:24 pm

He clicked the windows exit X.. there's 6 to pick from. Easy mistake.

That is one awesome dashboard though.
-----------------------------------------------------------------------
Hey Ho! Pip & Dandy!
:Octane2: :O2: :Indigo: :Indy:
-----------------------------------------------------------------------

User avatar
hamei
Posts: 10433
Joined: Tue Feb 24, 2004 4:10 pm
Location: over the rainbow

Re: Versions

Unread postby hamei » Sat Jul 25, 2015 6:33 pm

jimmer wrote:Well, now I guess you understand the context of my rant at viewtopic.php?f=8&t=16727998 a little better...

Yeah :( I was laughing before just because of my grief with gtk2 et al but I never thought that the cancer had spread to the entire Loonix organism. Took ten minutes at lunch to casually search Mr Pottering, holy shee-it. Pages and pages and pages of childish whining, bitching, and pointless trivial squabbling. I don't think I saw more than one or two remarks about the actual merits of systemd.

It's as if the software is now merely an excuse to act like three year olds.

I've never used systemd and never will, cuz I'm never gonna use Loonix. Ever. But smf works well on Solaris. Probably a lot of the bitching is because Mr Pottering's work is shit.

Personally, I think they are all barking up the wrong tree. IBM had it right in 1990. Server systems have one set of requirements, clients another. So split the operating system accordingly. Client Loonix, Server Loonix. Then everyone can get what they want/need without pissing off the other group of users.

But these guys - almost all of them - would rather bicker about "the license ! ooh, the license !" and multitudes of other extraneous crap, than actually solve the problem.

It's appalling. Even worse than I ever imagined.
I spent a fortune on booze, birds, and fast cars ... the rest I just squandered

User avatar
miod
Posts: 508
Joined: Fri Oct 09, 2009 2:44 am
Location: Clermont-Ferrand (France)
Contact:

Re: Versions

Unread postby miod » Fri Jul 31, 2015 12:47 pm

Sorry to be late to the party.

hamei wrote:Within major versions they are supposed to be the same. If you have a library swahili-tagalog 1.1, and come out with an improved version 1.1a then it should do exactly the same thing but maybe with better spelling. So you should be able to replace 1.1 with 1.1a directly, is that not correct ?
No, not necessarily.

The major/minor versions of a library can mean two things:
  • either the major/minor version of the software they are part of, which can be anything and only has a human meaning.
  • or the major/minor version of the library interface embedded in the libfoo.so file (also known as the `soname').

What matters here, in order to get consumers of the library to keep working, is to take care of changing the major/minor versions only when needed, because keeping the existing tuple would actually break applications.

The usual rules, since the SunOS 4 days, are as simple as this:
  • every time you add a new visible interface, you need to increment the minor version. This way, existing binaries linked against libfoo.so.42.0 will still run when linked against libfoo.so.42.1, and in fact the dynamic linker will prefer libfoo.so.42.1 over libfoo.so.42.0, but your new application using the new symbol will explicitely require libfoo.so.42.>=1 and will not run on a machine where you have not upgraded libfoo.so.42.0 to at least libfoo.so.42.1.
  • every time you make an incompatible change to an existing interface (change the number of parameters of a function, change the layout of a public structure used by this function, remove a function), you need to increment the major version. This will prevent applications requiring libfoo.so.43.0 semantics to run with libfoo.so.42.* - they would be likely to dump core with this version.

Unfortunately, many shared library maintainers use the current project release as the soname, even if there are no interface changes, or, worse, even if there are interface changes requiring a major number change in a maintainance release. To be fair, most users don't understand this either, and getting angry ``why does your bollocks 4.38 release install libbollocks.so.72.0 and not libbollocks.so.4.38?'' is only funny the first two times.

In the `release early, release often' state of mind, interface changes will happen very often, and will theoretically require many different library versions. With a good packaging system able to remove orphaned libraries, this is bearable. The use of ELF symbol visibility, on ELF systems with modern toolchains, also help a lot, as this allows the visible interface to a library to be shrunk as much as possible.

Still, as long as software evolves, shared library version numbers will continue to evolve as well. And there is IMO nothing bad with this... as long as the versioning rules are understood and followed.
:Indigo:R3000 (alas, dead) :Indigo:R4000 x4 :Indigo2:R4400 :Indigo2IMP:R4400 x2 :Indigo2:R8000 :Indigo2IMP:R10000 :Indy:R4000PC :Indy:R4000SC :Indy:R4400SC :Indy:R4600 :Indy:R5000SC :O2:R5000 x3 :O2:RM7000 :Octane:2xR10000 :Octane:R12000 :O200:2xR12000 :O200: - :O200:2x2xR10000 :Fuel:R16000 :O3x0:4xR16000 :A350:
among more than 150 machines : Apollo, Data General, Digital, HP, IBM, MIPS before SGI, Motorola, NeXT, SGI, Solbourne, Sun...


Return to “SGI: Development”

Who is online

Users browsing this forum: No registered users and 2 guests