Click Here
home features news forums classifieds faqs links search
6071 members 
Amiga Q&A /  Free for All /  Emulation /  Gaming / (Latest Posts)
Login

Nickname

Password

Lost Password?

Don't have an account yet?
Register now!

Support Amigaworld.net
Your support is needed and is appreciated as Amigaworld.net is primarily dependent upon the support of its users.
Donate

Menu
Main sections
» Home
» Features
» News
» Forums
» Classifieds
» Links
» Downloads
Extras
» OS4 Zone
» IRC Network
» AmigaWorld Radio
» Newsfeed
» Top Members
» Amiga Dealers
Information
» About Us
» FAQs
» Advertise
» Polls
» Terms of Service
» Search

IRC Channel
Server: irc.amigaworld.net
Ports: 1024,5555, 6665-6669
SSL port: 6697
Channel: #Amigaworld
Channel Policy and Guidelines

Who's Online
18 crawler(s) on-line.
 116 guest(s) on-line.
 0 member(s) on-line.



You are an anonymous user.
Register Now!
 MickJT:  5 mins ago
 pixie:  10 mins ago
 kiFla:  36 mins ago
 matthey:  36 mins ago
 OneTimer1:  54 mins ago
 Matt3k:  1 hr 15 mins ago
 zipper:  1 hr 32 mins ago
 AmigaPapst:  1 hr 35 mins ago
 Torque:  2 hrs 30 mins ago
 Seiya:  3 hrs 1 min ago

/  Forum Index
   /  Amiga OS4.x \ Workbench 4.x
      /  The consistently curious case of the constantly crashing computer
Register To Post

PosterThread
Hypex 
The consistently curious case of the constantly crashing computer
Posted on 10-Apr-2024 6:35:25
#1 ]
Elite Member
Joined: 6-May-2007
Posts: 11226
From: Greensborough, Australia

Hello every one.

I present the consistently curious case of the constantly crashing computer.

So it all started around two weeks ago. I wanted to load up Odyssey on my X1000 OS4 machine but my Internet dock went missing. This is something that has randomly occurred every few years. When a dock would suddenly disappear with no clue as to why and no sign when checking the settings. So I decided to just leave it. Ten tabs open does slow it down.

I then took my X1000 to a friends place for the weekend so he could compare with his Sam system. Soon after he had found some 68K software crashed on my system that worked on his. He also found my video players were old and not good at playing common videos. Guess I never noticed for a while. So he set about rectifying this and installed both 68K and OS4 software. Shogo however played well. But Spencer crashed on load for some reason so I couldn't show that. Even though it had been working fine so this surprised me.

I took my X1000 back home and set it up again. For two nights I just edited files in Cubic IDE and compiled in shell. Pretty boring I suppose given it could play videos again. So I had no issues at that point. The next night I try and open a text file, a crash log as it happens, when ironically doing so instantly crashes! It had crashed MultiViewer. I'd never seen that just crash on a text file. So saved the log and examined it. Some 68K program at the top of stack track which was nameless had crashed which was strange. How did a 68K program get called from native code?

Here's the rogue code from the crash log I needed to trace:


68k disassembly:
620649ae: 6038 bra.b 0x620649e8
620649b0: 2041 movea.l d1,a0
620649b2: 22680014 movea.l 0x14(a0),a1
*620649b6: 2029007c move.l 0x7c(a1),d0
620649ba: 0c8000001b00 cmpi.l #0x1b00,d0



So I set about checking files and not knowing it would become an extensive search. I first wanted to compare to backup files. So tried to run CompareDirs and then that crashed! How was the system even usable? Well it wasn't now! I then loaded DirOpus. I compared libs, classes, and devices and couldn't see any major differences apart from extra binaries added. I ran a program I wrote that lists 68K binaries and gathered a list of 68K programs on my system. Checked with DirOpus and again nothing stands out. So in the crash log I decided to copy out a section of the 68K code and do a search. I modified another program I wrote that searched for hex codes to search only in 68K binaries. So ran it over the whole Workbench to catch what 68K program contained it. I plugged in $2029007c from the crash line. Nothing showed up!

Even though I had gone beyond what should be needed to trace a crash, modifying and writing code to scan files, I still needed to go deeper. So I then set about searching the whole filesystem for this one hex code. But, it was just taking too long, and too many irrelevant files were taking up the search. After filtering them to 68K only had failed. So I decided to get out the all round disk monitor for all occasions--DiskMonTools. I really should have got it out first instead of going down a rabbit hole. So I navigated the Workbench in question to search the whole volume for $2029007c. Boom! It found it! I check and it appears to be embedded in some IFF file which is a strange place for 68K code. I look around the code and it's an IFF datatype file. I check out my datatypes and do another hex search. It's a ZX datatype file from 1996!

So I move it out the way and reboot. MultiViewer, CompareDirs and Spencer now start working! A rogue ZX datatype had crashed them. Strangely, MultiView, the core system program for viewing datatypess, didn't crash. ZX is a Spectrum image datatype. I've never had a Spectrum and no interest in viewing ZX files so no idea how a ZX datatype was installed on my system. At first I thought ZX was some kind of compression format.

This is the one:
http://aminet.net/package/util/dtype/ZX_DataType

Next I set about trying to solve the missing Internet dock issue. I examine the settings and and did a diff of XML setup files. As you can see I'm again going too far to find the issue. But OS4 lacks sophisticated tools to scan and find the problem for you. So does modern OS in a lot of respects. When I clicked on my Internet dock it just showed the grey bar. I've checked the settings and compared it with other subdocks. There's only one difference. One difference I noted was a hidden setting in GUI and XML. But I changed it and it made no difference! In the Misc tab the option "Dock is hidden" is off, while others have it on. Given I want to see it, it's funny it would be missing when hidden is set to off. So I tried setting it to hidden. But it wouldn't save it! It kept turning it off.

Then I found the problem! It was that hidden dock setting. I couldn't get it to work from the check box correctly. And saving didn't make any difference. But I accidentally double clicked the tiny bar below the dock which still showed. The icons came back! Then I checked the hidden setting and it turns it on and off. Suddenly the hidden check mark decides to work. So for hidden setting to work the dock needs to be visible or it doesn't work, while ticking on and off, looking like it does. And you need to double click this tiny grey bar to hide and unhide the dock as well as activating the hidden check mark despite it turning on and off. Seriously who does that!? What sort of stupid design is that?

With my Internet dock now visible again I set about loading up a browser. Only to be greeted by Odyssey crashing. FFS what now?!?

The clue this time was some native code calling a Webkit open file routine:

Symbol info:
Instruction pointer 0x7732434C belongs to module "OWB" (PowerPC)
Symbol: _ZN7WebCore7OWBFile4openEc + 0x27C in section 1 offset 0x000CD328

Stack trace:
OWB:_ZN7WebCore7OWBFile4openEc()+0x27c (section 1 @ 0xCD328)
OWB:_ZN7WebCore7OWBFile4openEc()+0x334 (section 1 @ 0xCD3E0)
OWB:_ZN7WebCore5Image20loadPlatformResourceEPKc()+0x104 (section 1 @ 0xDF910)
OWB:T.2747()+0x14c (section 1 @ 0x7873A4)
native kernel module newlib.library.kmod+0x00000138
native kernel module newlib.library.kmod+0x00002088
native kernel module newlib.library.kmod+0x00002d0c
native kernel module newlib.library.kmod+0x00002ee8
OWB:_start()+0x170 (section 1 @ 0x16C)
native kernel module dos.library.kmod+0x000255c8
native kernel module kernel+0x000420ac
native kernel module kernel+0x000420f4

PPC disassembly:
77324344: 38a00000 li r5,0
77324348: 3cc00001 lis r6,1
*7732434c: 8009004c lwz r0,76(r9)
77324350: 7d234b78 mr r3,r9
77324354: 7c0903a6 mtctr r0


Both Odyssey and OWB crashed on the same function. Somehow Timberwolf was able to load. Then it too became unstable. So again I start another investigation. Do things appear in threes?

This time the code was fully native. So I couldn't directly trace it to any rogue 68k code. But why did they both crash inside their own routine? Something had to have infected the system like before but somehow had remained more stealth. Was it hidden in plain sight?

I decided to run Snoopy to assist which can also list library and device open calls as well as typical DOS calls. It's not always obvious what is failing as it's also common for functions to fail in normal use, such as looking for ports and environment variables. However amongst the needles in the hay stack as it were something looked strange. A library interface fail.

Here's the log:

01294 : OWB : o.k. = [exec] OpenLibrary("pthreads.library",0) [20463uS]
01295 : OWB : o.k. = [exec] OpenDevice("timer.device",3,0x570C55E0,0x00000000) = 0 [7uS]
01296 : OWB : o.k. = [exec] OpenLibrary("asyncio.library",0) [16565uS]
01297 : OWB : FAIL = [exec] FindResident("asyncio.library.main") [10uS]
01298 : ramlib : FAIL = [exec] FindResident("asyncio.l.main") [3uS]
01299 : AmiDock : Delay(1) [22128uS]
01300 : OWBLauncher : Delay(1) [22297uS]
01301 : OWBLauncher : FAIL = [exec] FindPort("OWB") [3uS]
01302 : OWBLauncher : FAIL = [exec] FindPort("OWB.1") [0uS]
01303 : ramlib : FAIL = Lock("LIBS:asyncio.l.main",SHARED) [15114uS]
01304 : ramlib : FAIL = Lock("CLASSES:asyncio.l.main",SHARED) [19uS]
01305 : ramlib : FAIL = Lock("CURRDIR:asyncio.l.main",SHARED) [12uS]
01306 : ramlib : FAIL = Lock("CURRDIR:Libs/asyncio.l.main",SHARED) [18uS]
01307 : ramlib : FAIL = Lock("CURRDIR:Classes/asyncio.l.main",SHARED) [9uS]
01308 : ramlib : FAIL = Lock("PROGDIR:asyncio.l.main",SHARED) [8uS]
01309 : ramlib : FAIL = Lock("PROGDIR:Libs/asyncio.l.main",SHARED) [9uS]
01310 : ramlib : FAIL = Lock("PROGDIR:Classes/asyncio.l.main",SHARED) [9uS]
01311 : OWB : FAIL = [exec] FindResident("asyncio.library.main") [5uS]


The "library.main" and "l.main" suffix are a vestige from when libraries were not fully OS4 native and OS4 interfaces were split into additional library files. Why was it looking for and failing to find an OS4 interface?

So I again compared against a backup. I was familiar with "asyncio" from years ago but it wasn't in my backup. I check my local copy and then it all comes to light. It's a 68k library dated to 1997! What the?! What on earth is that doing there!?

This one here:
http://aminet.net/package/dev/c/AsyncIO

So I found this one there:
http://os4depot.net/?function=showfile&file=utility/misc/asyncio.lha

I copied that in and rebooted. Suddenly everything is working again! Unbelievable!

As i side note part of the issue is the above OpenLibrary() calls are using 0 as version. This is unacceptable on OS4, and since the 90's even, as programs are required to specify a minimum library version. A 0 will default to any version. To be coded correctly for OS4 and above it should use 50 as version which would have caught the above case.

I've never seen a system come unstuck suddenly from a few old rogue files that took ages to track down. It happened over Easter and it was like three days and three nights all over again. Freak file accident. I've looked through my recent downloads and just cannot track down where it came from. Not that I was doing much lately so one reason I didn't get tripped on it sooner. Glad it's over now.

Well, I hope you enjoyed reading the consistently curious case of the constantly crashing computer, as much as I enjoyed writing it, and didn't enjoy experiencing it!

 Status: Offline
Profile     Report this post  
Gebrochen 
Re: The consistently curious case of the constantly crashing computer
Posted on 11-Apr-2024 19:26:21
#2 ]
Super Member
Joined: 23-Nov-2008
Posts: 1430
From: Australia

@Hypex

Perhaps your friend can help you with updating all your libraries and kickstart items?

Sounds like he utilises his machine as a user rather than a programmer would.

Albeit, I would have thought a programmer would have all the latest libraries though.



As for Odyssey, Im using it now with 8 tabs open no crashing, no dramas.. lol

Do you full screen your Odyssey or do you like to have it smaller so you can also do other things inbetween without using the switch screen mode?



Sounds like Spencer by Entwickler may have left some self checking in the programming out?


I've had the Ami Dock disappear in the past, but for a long time now its been stable thus far, I think just be careful or vigilant what your clicking with you mouse button.
Do you use the mini arrow at the bottom right corner for other dockies?

I have mine set up like this
Default
Design / Photo
Office
Sound / Video
Misc
Strategy
Action
GamesMayLike
Board
FPS / RPG

As you can see, if I were to loose my Docky it would possibly be even more frustrating experience.
I think you can make a copy of your current docky, forget where I did this, been a while now.


And no, those are not subdocks, I only have Extras, internet and players under default as sub docks.



Hopefully next time you see your friend he gives you more things that you seem to be missing. You said something about a video player? I would have assumed everybody would have atleast MPlayer and AmiTube to be able to listen and watch music videos in the corner while using a art program or in your case programming?

Good to see it's all fixed now.

_________________
Courtesy of SAM440Flex & Amiga OS4.1 only
Flex is 800mhz
A1000 with Classic 520 Amiga OS3.2.1
AmiKit 12
MorphOS PowerBook G4 (which can play youtube vids)

https://blitterwolf.blogspot.com

 Status: Offline
Profile     Report this post  
klx300r 
Re: The consistently curious case of the constantly crashing computer
Posted on 12-Apr-2024 1:57:04
#3 ]
Elite Member
Joined: 4-Mar-2008
Posts: 3837
From: Toronto, Canada

@Hypex

thanks for letting us know and please post this on amigans.net as it’ll reach a lot more OS4 users than here nowadays

_________________
____________________________
c64-2sids, A1000, A1200T-060@50(finally working!),A4000-CSMKIII
! My Master Miggies- Amiga 1000 & AmigaOne X1000 !
mancave-ramblings
X1000 I BELIEVE

 Status: Offline
Profile     Report this post  
Cool_amigaN 
Re: The consistently curious case of the constantly crashing computer
Posted on 12-Apr-2024 8:58:01
#4 ]
Super Member
Joined: 6-Oct-2006
Posts: 1227
From: Athens/Greece

@Hypex

Yeah, mixing old 68k libs on MorphOS can lead to system instability too. I also use Snoopium if I find a program that used to run, now experiences crashes and always look for a 68k suffix of a lib. Taking down the OS though is extremely rare, plus, we have MOSSYS which is always clean, so my first place to look for an error is strictly sys/c or sys/libs instead of the actual OS components which is very useful for the overall stability of the system (for example the native asyncio.library on MorphOS is "isolated" on MOSSYS/libs). However, if one dives to really dated 68k software (before say '95-'94), like I enjoy to do so, some 68k progs might require different 68k lib versions, which makes things even messier. But all in all, if one knows what he is doing and inspects manually the libs and commands that an old 68k prog installs, then he will avoid many similar situations beforehand. I just checked my sys/libs and out of 276 libs, 178 are 68k while the system is rock solid and old 68k progs work flawless.

_________________

 Status: Offline
Profile     Report this post  
NutsAboutAmiga 
Re: The consistently curious case of the constantly crashing computer
Posted on 12-Apr-2024 17:46:08
#5 ]
Elite Member
Joined: 9-Jun-2004
Posts: 12820
From: Norway

@Hypex

We need a “Norton Doctor” tool for sure, so we can keep track of the changes,
this kind of thing happens, quite often.

if you using old installer, or can happen quite often that install scripts do not check versions, I never use install scripts, I always copy the files manually with Dopus4 as it will ask if like to replace files or not.

“#?.1.main” stuff in the Snoopy log is a dead giveaway, that something is wrong. This files are only used when a PowerPC programs needs to use a old 68K library, and some how need to add the interface to it. I forgot where the how to make “.1.main” files document is/pdf. So I make native powerpc .libraries instead when something is not working like powerpacker.library.

Last edited by NutsAboutAmiga on 12-Apr-2024 at 10:39 PM.

_________________
http://lifeofliveforit.blogspot.no/
Facebook::LiveForIt Software for AmigaOS

 Status: Offline
Profile     Report this post  
redfox 
Re: The consistently curious case of the constantly crashing computer
Posted on 12-Apr-2024 17:55:01
#6 ]
Elite Member
Joined: 7-Mar-2003
Posts: 2067
From: Canada

@Hypex

Great detective work.

Thanks for sharing.


redfox


 Status: Offline
Profile     Report this post  
Karlos 
Re: The consistently curious case of the constantly crashing computer
Posted on 12-Apr-2024 18:25:50
#7 ]
Elite Member
Joined: 24-Aug-2003
Posts: 4405
From: As-sassin-aaate! As-sassin-aaate! Ooh! We forgot the ammunition!

AmigaOS should consider moving towards a semantic versioning model. Obviously this would still have to support the old model, which could be semantically classed as major version 1. Perhaps even major version 0 for anything pre PowerPC.

Thus, I under semantic versioning, v50.2 of an existing library becomes 1.50.2 and perhaps, v40.3 of something is considered 0.40.3

For those unfamiliar, once in place, you follow the simple rules:

Bugfixes increment the last number (the patch version).
New, non-breaking feature changes increment the middle number number (the feature version) and reset the last number back to 0, assuming that the new feature version already contains all bugfixes of the precious feature versions.

New, incompatible versions increment the first number and reset the previous two to zero.

This is why existing 68K libraries might be considered 0.x.x and their PPC descendents 1.x.x because the latter are incompatible with existing 68k systems due to the incomparable binary.

I don't find the legacy versioning mechanism helpful, especially with the potential for overlapping ranges between completely different architectures.

_________________
Doing stupid things for fun...

 Status: Offline
Profile     Report this post  
Hypex 
Re: The consistently curious case of the constantly crashing computer
Posted on 14-Apr-2024 13:41:48
#8 ]
Elite Member
Joined: 6-May-2007
Posts: 11226
From: Greensborough, Australia

@Gebrochen

Most Workbench volumes have the latest updates. I held my main one back as Update 2 froze on my R7 250. I somehow have a rare talent of a picking hardware that will in future crash in an OS4 update.

My Odyssey runs full screen on its own screen.

Spencer was caught up in the 68K ZX datatype conspiracy.

Yes I use the AmiDock arrow to open up Edit option.

AmiTube? Is it difficult? No I don't run any sound or videos in background. That would too distracting. It might crash.

 Status: Offline
Profile     Report this post  
Hypex 
Re: The consistently curious case of the constantly crashing computer
Posted on 14-Apr-2024 13:42:54
#9 ]
Elite Member
Joined: 6-May-2007
Posts: 11226
From: Greensborough, Australia

@klx300r

Done.

 Status: Offline
Profile     Report this post  
Hypex 
Re: The consistently curious case of the constantly crashing computer
Posted on 14-Apr-2024 13:54:25
#10 ]
Elite Member
Joined: 6-May-2007
Posts: 11226
From: Greensborough, Australia

@Cool_amigaN

One thing MOS has is system isolation from user installed libraries and files. It is useful I can see. On OS4 I usually install C commands to a separate C folder. I used to do this on my A1200 as well. I don't like things polluting up the system. Installers tended to install files to system folders. Some things didn't need to be as they can be loaded locally. AmigaOS is like OSX in that dependencies can be bundled with the program. This one, a datatype, was harder to track. And it was strange because nothing would have been loading a ZX file. But the way the system must work is to load in all datatypes and so that took it down.

 Status: Offline
Profile     Report this post  
Hypex 
Re: The consistently curious case of the constantly crashing computer
Posted on 14-Apr-2024 14:19:54
#11 ]
Elite Member
Joined: 6-May-2007
Posts: 11226
From: Greensborough, Australia

@NutsAboutAmiga

I tend to use the OS4 installer that was hidden. As older installers have bugs and think the system is too old. I also use expert mode as I like to know what's going on but even then and today some software doesn't correctly implement expert mode.

Even so, I hadn't used it to install anything lately, at least not that I can recall.

The "main" lines was good to find as otherwise I wouldn't have seen it so easily, But, just like the datatype fiasco, the library just being there caused it. It seems to be picked up by something when loading libraries. The programs work fine without it.

 Status: Offline
Profile     Report this post  
Hypex 
Re: The consistently curious case of the constantly crashing computer
Posted on 14-Apr-2024 14:21:24
#12 ]
Elite Member
Joined: 6-May-2007
Posts: 11226
From: Greensborough, Australia

@redfox

 Status: Offline
Profile     Report this post  
NutsAboutAmiga 
Re: The consistently curious case of the constantly crashing computer
Posted on 14-Apr-2024 14:58:05
#13 ]
Elite Member
Joined: 9-Jun-2004
Posts: 12820
From: Norway

@Hypex

Quote:
picked up by something when loading libraries.


its because it’s not a PowerPC library, it tries to load that.

Quote:
The programs work fine without it.


Only if they are 68K programs. As you seen you get crashes, if it’s not.

Last edited by NutsAboutAmiga on 14-Apr-2024 at 02:59 PM.

_________________
http://lifeofliveforit.blogspot.no/
Facebook::LiveForIt Software for AmigaOS

 Status: Offline
Profile     Report this post  
Hypex 
Re: The consistently curious case of the constantly crashing computer
Posted on 14-Apr-2024 15:18:22
#14 ]
Elite Member
Joined: 6-May-2007
Posts: 11226
From: Greensborough, Australia

@Karlos

I think the version triplet makes sense. Even if the "maths" looks wrong with an extra decimal point. A problem that exists is that only major version is checked for libraries and the coder must then check revision to be sure of any conflict.

I do this myself as there is bug in AllocSysObject() before a certain revision. Now these days it would be unlikely in use and the code is rather vestige now. But rather than supporting only newer releases like is common in the wild I just leave the code there which just activates extra tags anyway.

For OS4 however, it is specified as being 50 and above. A native default should be 50 and above and especially for the OS4 OpenLibrary() function. But, there is transparency across architectures and perhaps too much. Once feature that made OS4 attractive to the end user was the transparency of running 68K code. But, in the system it allows native code to back call 68K code or libraries, and 68K code can make use of native code where it exists. It also helped move from 68K to PPC with this system integration in place including code that lacks OS4 ports.

When I bought a wifi router (DG834G IIRC) I found out it put wired and wireless clients on the same list. I didn't like that. To me they were different and should be separated. But, to the internal firmware, they were all just clients. I compare this to OS4 PPC programs, as although they are different to 68K, the system bunches them all together on the same process list. Even though the code is different. On OS4 however, each 68K task does have a native OS4 process running it, since an emulator process is spawned for each 68K program.

In the case of asyncio though, it's a strange one, as code crashed by it doesn't need it. But some how it was getting wrapped up. Whether I replace it with a native version or rename it out of the way the programs can still load up.

 Status: Offline
Profile     Report this post  
Hypex 
Re: The consistently curious case of the constantly crashing computer
Posted on 14-Apr-2024 15:27:34
#15 ]
Elite Member
Joined: 6-May-2007
Posts: 11226
From: Greensborough, Australia

@NutsAboutAmiga

Quote:
its because it’s not a PowerPC library, it tries to load that.


Well it shouldn't be, but it did fail on PPC interface, which it may not check fail for.

Quote:
Only if they are 68K programs. As you seen you get crashes, if it’s not.


In this case I wasn't trying to run 68K, but PPC. Somehow Odyssey and OWB crashed because a 68K library was on the system. One which they don't need to run but try and load if its there.

 Status: Offline
Profile     Report this post  
Karlos 
Re: The consistently curious case of the constantly crashing computer
Posted on 14-Apr-2024 16:24:01
#16 ]
Elite Member
Joined: 24-Aug-2003
Posts: 4405
From: As-sassin-aaate! As-sassin-aaate! Ooh! We forgot the ammunition!

@Hypex

Quote:

I think the version triplet makes sense. Even if the "maths" looks wrong with an extra decimal point. A problem that exists is that only major version is checked for libraries and the coder must then check revision to be sure of any conflict.


Semantic versioning is a pretty established practise. Comparing versions is pretty easy, you just do it segment by segment.

See: https://semver.org/

_________________
Doing stupid things for fun...

 Status: Offline
Profile     Report this post  
Hypex 
Re: The consistently curious case of the constantly crashing computer
Posted on 15-Apr-2024 5:45:23
#17 ]
Elite Member
Joined: 6-May-2007
Posts: 11226
From: Greensborough, Australia

@Karlos

Generally speaking AmigaOS would follow this format with Version.Release.Minor but only Version and Release are supported directly. Given it would be X.Y in this regard against X.Y.Z it's still compatible with semantic versioning. Since the X and Y in the same place would have the same meaning.

The only caveat is that Amiga APIs are expected to be backward compatible. But some have had major changes in later versions. However no standard exists for software when it really needs a specific API to work exactly the same and specify that. On top of this you can only specify Version when opening an API and not Revision.

OS4 attempts to deal with this by introducing interfaces. The interfaces would then act as your idea proposes. Each interface version offers an exact compatible API. For any major changes breaking compatibility a new interface is created. This does somewhat mess up the current system as then there is I.X.Y with Interface.X.Y and X.Y is pushed over so incompatible versioning. Or it could be as X.Y.I but then the I is a major API version. For 68K there is no interface level so has a default in place.

 Status: Offline
Profile     Report this post  
NutsAboutAmiga 
Re: The consistently curious case of the constantly crashing computer
Posted on 16-Apr-2024 21:15:39
#18 ]
Elite Member
Joined: 9-Jun-2004
Posts: 12820
From: Norway

@Hypex

Interfaces works best a namespace, or as reference to a plugin, if many plugins using exactly the same functions, I can pass the pass reference to functions around.
I know some use .so objects that way, but not sure how that works exactly, perhaps it works same but different.

That’s the way I like to use it anyway.

so I use -D__USE_INLINE__ by default.

and then I undefine __USE_INLINE__ before including proto types for libraries I need name spaces for.

In ExceSG you have 3 names spaces, main, debug, and expiation, here its used as grouping, not for revisions.

I think it can be nice use it for different CPU architectures.
so for example if you had a ARM program, you trap it and emulate it ARM interface.

Last edited by NutsAboutAmiga on 16-Apr-2024 at 09:19 PM.
Last edited by NutsAboutAmiga on 16-Apr-2024 at 09:18 PM.

_________________
http://lifeofliveforit.blogspot.no/
Facebook::LiveForIt Software for AmigaOS

 Status: Offline
Profile     Report this post  

[ home ][ about us ][ privacy ] [ forums ][ classifieds ] [ links ][ news archive ] [ link to us ][ user account ]
Copyright (C) 2000 - 2019 Amigaworld.net.
Amigaworld.net was originally founded by David Doyle