Welcome, Guest. Please login or register.

Author Topic: new ixemul V62.1 for 68k.  (Read 10551 times)

Description:

0 Members and 1 Guest are viewing this topic.

Offline bernd_afaTopic starter

  • Sr. Member
  • ****
  • Join Date: Nov 2005
  • Posts: 479
    • Show all replies
Re: new ixemul V62.1 for 68k.
« Reply #29 from previous page: November 17, 2009, 06:10:42 PM »
>Lets see... if I recall correctly ixemul uses tc_UserData for its own purposes. Right/wrong?

Yes, and its tell, when you not use SDL task creation Function and you want create a own amiga sub task you must create before you use a ixemul file or network function with ix_CreateChildData();
the valid data for this task.thats all

if you not do that then your program stop at first try and bring a error message.but when a program not stop at first try, then there is all right and it work forever and stable.

Edit: or do you mean, this is a big problem if this entry is not usable for amiga ?

I think not, does OWB or netsurf or any other with AOS Code enhanced Linux Port use that ?
If yes, see at ixemul source, its possible to change ixemul to use the tc_trap Data field for this.

#ifdef NOTRAP
  printf ("#define USERPTR_OFFSET %ld\n", offsetof (TASK, tc_UserData));
#else  
  printf ("#define USERPTR_OFFSET %ld\n", offsetof (TASK, tc_TrapData));
#endif

there are other unused fields in the process structure, just tell me a place which is better.
i get a better idea.

i see in process structure a field pr_shellprivate.
Is this not for all that create with CreateProc unsused and only for amiga shell used ?
« Last Edit: November 17, 2009, 06:34:24 PM by bernd_afa »
 

Offline bernd_afaTopic starter

  • Sr. Member
  • ****
  • Join Date: Nov 2005
  • Posts: 479
    • Show all replies
Re: new ixemul V62.1 for 68k.
« Reply #30 on: November 18, 2009, 10:24:26 AM »
>Yeah. Problem is that newer GCC versions are quite buggy. There are still newer GCC >versions for MorphOS, I have got all three GCC2, GCC3 and GCC4. GCC2 works for me so I >am using it most of time. No need to use latest stuff always.

But when you want sell a commerciall OS, its not enough that it working by you, the buyer of this OS must be happy with whats here.

The reason to test newest stuff always is for me and other to help make rock solid software.

We test always newest stuff and report Bugs because GCC and ffmpeg support 68k AOS we get help in ML.It can build with configure and make.

ami_stuff do not only port ffmpeg, he report bugs and he help so to make ffmpeg better.same he do on newest GCC too.

I really dont like when people say new Version have Bugs i use older without reporting the Bugs so devs have a chance to fix.when all users do that, then software get never be more features.best is test newer version and when it have bugs, then report it and use old software until fixed

But i think on MOS/OS4 its more a excuse because of the missing man power to do that additional work, but its a real bad excuse.I see the GCC 4.3 and above produce no wrong code.Have you try out 4.3/ 4.4/ or 4.5 on MOS and this are buggy ?

Because the GCC Team make not GGC as opensource so that commercial OS developers port it to their OS to have a compiler but dont want to help to make it better.

thats only a one way thing, only MOS/OS4 side profit from gcc, but gcc do not get any enhance with MOS/OS4.I think a modern OS should also in GGC source support as 68k amigaos.

>>I can say you, that i planed buy a Mac mini and maybe MOS.But now i am sure, i not >>buy or need it, because guys that do that, the feature we not have we need not, i dont >>want suppport with money.
>And I was going to buy Amiga Forever package but I decided to not buy it.

everybody is free what he do, but the compare is too much diffrent.

1. i dont sell amiga forever or get money from it.
2. amiga forever is that system we all learn in the past and know, but its now not market as a future system.so i understand more that you dont want install amigaforever.

but when users change to new system, there must be more advantages to learn a new system.at least it should have more speed than a emulate amiga forever on X86.

and BTW:

when the MOS 68k emul is fix, then ixemul should be run wirthout amiga forever
« Last Edit: November 18, 2009, 10:27:14 AM by bernd_afa »
 

Offline bernd_afaTopic starter

  • Sr. Member
  • ****
  • Join Date: Nov 2005
  • Posts: 479
    • Show all replies
Re: new ixemul V62.1 for 68k.
« Reply #31 on: November 18, 2009, 01:36:30 PM »
>I dont know. Do you?

i think you should know if your netsurf store data in this field.its unused but can use in apps, but i know no practice software that use it.

when i remember correct you can count the Unix Ports that are really enhanced with amiga funcs in 1 Hand (i count all MOS AOS und OS4)

I get in mind OWB, flashplayer, netsurf, mplayer.What did i miss ?

so i think there is no program that make problems and the unchanged Feature Unix Ports i think are more than 1500.

So i really see no need wy AOS need two Unix compatible libs and the limit of ixemul dont use tc_userdata if you want use ixemul funcs in the task is not big Limit that make the work usefull to enhance and maintain 2 big unix compatible libs.

>Why? I am not a beta tester and I dont have time for that.

yes i know you and fab are the most important devs to bring applications to MOS.If you and Fab not here, who do this big Ports then. ?

I see nobody that do so much for free for MOS as you both.
From Piru i read only bashes again 68k ixemul, but i see not that he release something free for MOS.Or did i miss some information ?

But if nobody on MOS side is here to help you is also really not good i think, that MOS have actual BugFree Software.

>Excellent news!

Yes and i thank you again that you the unqualified bashes again ixemul V61 begin before MOS Mac Version, so i pay no money.

and btw, what Itix do i understand not as unqualified bashes, because he bring arguments of real Limits and this help to make it better.

The Limits are very small, i see no real reason to spend much work to add in libnix full Unix Features and must keep update 2 lib Versions.

But if MOS release libnix source, a compile that maybe need not more as 1-2 hours to 68k is ok.

ixemul have also some more advantages to libnix.ixtrace is very usefull to find slowdown problems of bad written Unix software.We all know Unix SOftware is most written today on a 2 GHZ fast X86.A dev does not notice any slowdown here.

but when port to slower systems ixtrace or library timer can help to do profiling and see where the programs waste time.

http://aminet.net/package/dev/misc/LibraryTimer

this is a great tool and help me alot.also that ixemul have fast boundcheck to detect memtrashes better.
so you see all libs have some advantages and when i need choose enhance libnix or ixemul because i have not so much time, my choose is clear ixemul have better solutions to develop more easy bugfree and fast Applications.

memory allocator is faster and do less fragment as libnix on 68k.when programs use malloc.tlsf mem do not help.
file seeking is faster on ixemul because libnix delete after a seek always the full filebuffer and read all again( i add cache to it).seeks inside filebuffer work in ixemul more than 200* faster.result is openredalert start 50* faster as compile with old 68k libnix.

But i do a new libnix that have too a cache before i begin with ixemul.but also here openredalert start 2* faster as with libnix on my system.
« Last Edit: November 18, 2009, 02:05:59 PM by bernd_afa »
 

Offline bernd_afaTopic starter

  • Sr. Member
  • ****
  • Join Date: Nov 2005
  • Posts: 479
    • Show all replies
Re: new ixemul V62.1 for 68k.
« Reply #32 on: November 18, 2009, 03:57:08 PM »
>BTW the limitations of the 68k libnix are mostly not present in the MorphOS version. We're

again, where can see what API functions the libnix of MOS have ?

 >not blind, obviously we have taken care of such issues. Funnily enough, under MorphOS >the 68k apps built with 68k libnix have much faster memory allocation than ixemul ones.

sure fabs benchmark it do faster, but dont believe that in real world Linux apps with C++ or programs that use xml2 lib or other that do lots of small memalloc and free.

libnix have only a small first fit allocator 4 kb pool allocator, which do lots fragment and libnix have very small pools that need a lot of free poolsearch when there are programs that use much mem.

See here the code.And i think everybody with programing knowledge should know that a buddy allocator in real world apps is lots faster.



void *malloc(unsigned long size)
{
  struct MinNode *node=__memorylist.mlh_Head;
  struct MemHeader *b;
  ULONG size2,*a;

  size+=sizeof(ULONG);
  while(node->mln_Succ) /* yet some memory in my list ? */
  {
    if((a=Allocate((struct MemHeader *)node,size))!=NULL)
    {
      *a++=size;
      return a;
    }
    node=node->mln_Succ;
  }
  size2=sizeof(struct MemHeader)+sizeof(ULONG)+size; /* Total memory needed */
  if(size2<=_MSTEP)
    size2=_MSTEP; /* Allocate a _MSTEP bytes large block if possible */
  size2=(size2+4095)&~4095; /* Blow up to full MMU Page */
  if((b=(struct MemHeader *)AllocMem(size2,MEMF_ANY))!=NULL)
  {
    b->mh_Lower=b->mh_First=(struct MemChunk *)(b+1);
    b->mh_First->mc_Next=NULL;
    b->mh_Free=b->mh_First->mc_Bytes=size2-sizeof(struct MemHeader);
    b->mh_Upper=(char *)b+size2;
    AddHead((struct List *)&__memorylist,&b->mh_Node);
    a=Allocate(b,size); /* It has to work this time */
    *a++=size;
    return a;
  }
  return NULL;
}

>Any Amiga software with a GUI.

I mean only Linux Software that is enhance with amiga OS features

>Some of my Amiga software is using it. Mostly to pass pointers to subtasks.

Was this mostly based on Unix code and need much API Features ?
« Last Edit: November 18, 2009, 04:18:09 PM by bernd_afa »
 

Offline bernd_afaTopic starter

  • Sr. Member
  • ****
  • Join Date: Nov 2005
  • Posts: 479
    • Show all replies
Re: new ixemul V62.1 for 68k.
« Reply #33 on: November 18, 2009, 07:32:52 PM »
in what file you set userdata ?.
I look in source here

http://source.netsurf-browser.org/branches/itix/netsurf/mui/

and btw i see that you open libs by hand also when __MORPHOS__ defines and not with libnix autoinit.so no need for libnix too.

I get also the idea just add the alloced memblock at the beginnung or end of the list tc_MemEntry that contain the userdata.

but i dont know how AOS work and add this allocate memblock to the list and on what place it come and of it is always sure that the block is at 1. or last place when i add it here.

Its also possible to change the process create function so it add additional space for that value.

task cant use dos, so ixemul funcs need no userdata

Its possible to add the iserdata address at the end of stack range.only need not forget when use stackswap to copy this value too.but here can use a function ix_stackswap that work more easy as the AOS func.

so you see no reason to enhance libnix and not use ixemul

if ((MUIMasterBase = OpenLibrary("muimaster.library", 11)))
   if ((CyberGfxBase = OpenLibrary("cybergraphics.library", 41)))
   if (classes_init())
   if (mui_schedule_init())
   if (mui_clipboard_init())
#if defined(__MORPHOS__)
   if ((ZBase = OpenLibrary("z.library", 51)))
   if ((JFIFBase = OpenLibrary("jfif.library", 0)))
#endif
   if ((TTEngineBase = OpenLibrary("ttengine.library", TTENGINE_VERSION)))
   if ((IconBase = OpenLibrary("icon.library", 0)))
   if ((IntuitionBase = (APTR)OpenLibrary("intuition.library", 36)))
   if ((SocketBase = OpenLibrary("bsdsocket.library", 0)))
   if ((AsyncIOBase = OpenLibrary("asyncio.library", 0)))
« Last Edit: November 18, 2009, 07:37:12 PM by bernd_afa »
 

Offline bernd_afaTopic starter

  • Sr. Member
  • ****
  • Join Date: Nov 2005
  • Posts: 479
    • Show all replies
Re: new ixemul V62.1 for 68k.
« Reply #34 on: November 19, 2009, 11:49:24 AM »
>And how about sockets? Can I assume WaitSelect() works?

yes of course it work, when a Amiga program use no Unix socket and amiga sockets instead it work.

this show that the libcurl amigaOSPort and the libcurl Unix Port work well and at same speed on netsurf and ixemul

>So you have to hack the OS.

thats only a enhancement of the AOS.newer AOS need bigger process structures for example for resource tracking, in furtherdevelop of AFA i need sooner or later increase the process structure amd i can then make room for more user data entries.

I think its maybe the easiest way to use the tc_TaskTrap field.thats really must not need in a amiga OS program.i dont know what amiga program use this.debuggers use only tc_ExcpetData

But i look always closer before i change something.thats only some ideas to discuss now.

----

I get also the idea to add for ixemul funcs

SetTaskUserData(slotnum,value) and GetTaskUserData(slotnum,value) and maybe support more than 1 entry(slotnum) and store this then in userdata.depent on what you use libnix or ixemul what this func really do.but when use libnix can only store 1 value.

This is then a enhancement to AOS too and its the correct way to go, when amiga OS go memory Protection.

access of structures direct is bad.
« Last Edit: November 19, 2009, 11:52:20 AM by bernd_afa »
 

Offline bernd_afaTopic starter

  • Sr. Member
  • ****
  • Join Date: Nov 2005
  • Posts: 479
    • Show all replies
Re: new ixemul V62.1 for 68k.
« Reply #35 on: November 19, 2009, 04:39:16 PM »
>Well, at least there's no such problem with MorphOS native libnix.

and no problem with ixemul.mem alloc is fast enough for real world C++ programs and netsurf

with that program you can measure it

http://aminet.net/package/dev/misc/LibraryTimer

malloc/free need around 2-3% of overall CPU usage with netsurf.

but with poolmem you get after longer use much more time

>For fantasy writings I prefer J.R.R. Tolkien.

I watch out for news of Hyperion Secret Project on their Webpage.maybe they do memory protection... ;-)

but anyway, a Function that set and get Task user Pointer is the cleanest solution so nobdy need hack in the task structure.

and it make no problem with ixemul.
« Last Edit: November 19, 2009, 05:48:11 PM by bernd_afa »
 

Offline bernd_afaTopic starter

  • Sr. Member
  • ****
  • Join Date: Nov 2005
  • Posts: 479
    • Show all replies
Re: new ixemul V62.1 for 68k.
« Reply #36 on: November 19, 2009, 05:49:52 PM »
>after you mention it i made tests with two quickie opengl ports i did for 68k. i compile >them usually with -noixemul > libnix but now i linked against bernds ixemul too.

memalloc performance is only important when often mem is alloc and free during program run.you must first find such a program.programs that use xml library (netsurf) or C++ programs are good candidate

>maybe i should try to run netsurf port on chris hodges tlsf. could it make any difference?

no this not help also not with libnix programs that use malloc.malloc is on both libs handled in an internal way.

>Even the AmigaOS 3.x with TLSFMem patch fails to fix it properly: It only changes the >behaviour of the external allocations. Internally the pools still use either list or tree and >
>Allocate/Deallocate for the internal allocations.

there is poolmem prog attached in tlsf mem that fix so pools work fast too.but can not use with AFA because poolmem on AFA is same as MOS and AROS and support MEMF_SEMPROTECT flag to make mempools thread safe.
 

Offline bernd_afaTopic starter

  • Sr. Member
  • ****
  • Join Date: Nov 2005
  • Posts: 479
    • Show all replies
Re: new ixemul V62.1 for 68k.
« Reply #37 on: November 20, 2009, 11:37:21 AM »
>Adding Set/GetTaskUserData() is not going to change anything

it change in that way, that there is no reason to access the task structure direct.
and this is really not more additional work.

normaly you need write

struct Task * task = FindTask(0);
task->tc_UserData = dat;

or write

SetTaskUserData(FindTask(0),dat);

thats really a stupid reason, to do lots work to make a Unix soft working with libnix.and when you accidently destroy userdata by wrong written program is notice soon.

I still ask several times and i still have no link see of ffmpeg for MOS to see how much work it was or where can download a list of functions MOS libnix support.then we can see how much more functions ixemul V62 support.

A good api should always have a list of functions it support when there is no source here so can see in source what functions it support.ANd that a OS need register to download a SDK is also bad.

I think changing a big Unix program to work with libnix is lots more work than use a function

SetTaskUserData(FindTask(0),dat);

or so.

also i told you ixemul can easy change to use tc_taskTrap instead of tc_TaskUserData.

Then i maybe do that so tc_userdata is free.

>is no way you could add non-co-operative memory protection, there is no way you could >get existing software support new APIs

but when enhance a Unix program to use AOS its a new program and so can very easy avoid to use tc_userdata.there need lots more programing work to get a Big unix program with libnix MOS working i think.

You still have not told where in netsurf you access tc_userdata.I find no place when i search whole files
« Last Edit: November 20, 2009, 12:04:52 PM by bernd_afa »
 

Offline bernd_afaTopic starter

  • Sr. Member
  • ****
  • Join Date: Nov 2005
  • Posts: 479
    • Show all replies
Re: new ixemul V62.1 for 68k.
« Reply #38 on: November 20, 2009, 03:53:17 PM »
>Another big problem is porting dependencies which sometimes takes over five minutes. >Five hours if I create shared library out of it.

there is ixlibray that allow easy automatic create of Unix libs.have not done it yet, because static is most time ok when there is no free time.megacz have done a new ixlibrary sdk and do some libs.see here.

http://megacz.back2roots.org/portsbttr.html

make a unix lib for MOS seem lots work.OS4 support sobj, dont know if that work fully automatic, but when look OS4 seem have most unix dynamic link libs.

>The list of supported functions is available in the headers and link libs. And the SDK is >available for download on morphos-files.net.

You mean here ?

http://www.morphos-files.net/categories/development/C

I see no headers for this.i search for atanf not find.

I find some defines but i hope the MOS devs know, this defines do not work with offical C++ stdlibc++.

they need the real thing because they do undef all

#define LOG10       ((double) 2.302585092994046)
#define FPTEN       ((double) 10.0)
#define FPONE       ((double) 1.0)
#define FPHALF      ((double) 0.5)
#define FPZERO      ((double) 0.0)
#define trunc(x)    ((int) (x))
#define round(x)    ((int) ((x) + 0.5))
#define itof(i)     ((double) (i))

#define fabs        IEEEDPAbs
#define floor       IEEEDPFloor
#define ceil        IEEEDPCeil

#define tan         IEEEDPTan
#define atan        IEEEDPAtan
#define cos         IEEEDPCos
#define acos        IEEEDPAcos
#define sin         IEEEDPSin
#define asin        IEEEDPAsin
#define exp         IEEEDPExp
#define pow(a,b)    IEEEDPPow((b),(a))
#define log         IEEEDPLog
#define log10       IEEEDPLog10
#define sqrt        IEEEDPSqrt

#define sinh        IEEEDPSinh
#define cosh        IEEEDPCosh
#define tanh        IEEEDPTanh

see cmath file

#include

// Get rid of those macros defined in in lieu of real functions.
#undef abs
#undef div
#undef acos
#undef asin
#undef atan
#undef atan2
#undef ceil
#undef cos
#undef cosh
#undef exp
#undef fabs
#undef floor
#undef fmod
#undef frexp
#undef ldexp
#undef log
#undef log10
#undef modf
#undef pow
#undef sin
#undef sinh
#undef sqrt
#undef tan
#undef tanh

>Usually problems lie on path handling. They default to /usr/ or parse paths in Unix way.

and again, do you not think its easy possible to switch this file translation off ?
I think it can easy done.
 

Offline bernd_afaTopic starter

  • Sr. Member
  • ****
  • Join Date: Nov 2005
  • Posts: 479
    • Show all replies
Re: new ixemul V62.1 for 68k.
« Reply #39 on: November 20, 2009, 05:21:05 PM »
I donwload also the file for vbcc.

http://www.morphos-files.net/remote/VBCC,_MorphOS_target

this also contain only very few API funcs.for example math.h is only this

/* math.h - PowerPC */

#ifndef __MATH_H
#define __MATH_H 1

extern const char __infinity[];
#define HUGE_VAL (*(const double *)(const void *)__infinity)

double sin(double);
double cos(double);
double tan(double);
double sinh(double);
double cosh(double);
double tanh(double);
double asin(double);
double acos(double);
double atan(double);
double exp(double);
double log(double);
double log10(double);
double pow(double,double);
double sqrt(double);
double ceil(double);
double floor(double);
double fabs(double);
double atan2(double,double);
double ldexp(double,int);
double frexp(double,int *);
double modf(double,double *);
double fmod(double,double);

#ifndef __NOINLINE__
double __asm_fabs(__reg("f1") double) = "\tfabs\t1,1";
#define fabs(x) __asm_fabs(x)
#endif

#endif
 

Offline bernd_afaTopic starter

  • Sr. Member
  • ****
  • Join Date: Nov 2005
  • Posts: 479
    • Show all replies
Re: new ixemul V62.1 for 68k.
« Reply #40 on: November 20, 2009, 07:21:59 PM »
Here is math.h what ixemul support

__BEGIN_DECLS
double   acos __P((double));
double   asin __P((double));
double   atan __P((double));
double   atan2 __P((double, double));
double   ceil __P((double));
double   cos __P((double));
double   cosh __P((double));
double   exp __P((double));
double   fabs __P((double));
double   floor __P((double));
double   fmod __P((double, double));
#define fmodl fmod
double   frexp __P((double, int *));
double   ldexp __P((double, int));
double   log __P((double));
double   log10 __P((double));
double   modf __P((double, double *));
double   pow __P((double, double));
double   sin __P((double));
double   sinh __P((double));
double   sqrt __P((double));
float   sqrtf __P((float));
double   tan __P((double));
double   tanh __P((double));

#if !defined(_ANSI_SOURCE) && !defined(_POSIX_SOURCE)
double   acosh __P((double));
double   asinh __P((double));
double   atanh __P((double));
double   cabs();      /* we can't describe cabs()'s argument properly */
//double   cbrt __P((double));
double   copysign __P((double, double));
double   drem __P((double, double));
double   erf __P((double));
double   erfc __P((double));
double   expm1 __P((double));
int   finite __P((double));
double   hypot __P((double, double));
#if defined(vax) || defined(tahoe)
double   infnan __P((int));
#endif
double   j0 __P((double));
double   j1 __P((double));
double   jn __P((int, double));
double   lgamma __P((double));
double   log1p __P((double));
double   logb __P((double));
double   rint __P((double));
double   scalb __P((double, int));
double   y0 __P((double));
double   y1 __P((double));
double   yn __P((int, double));
long lrintf __P((float));
long lrint __P((double));
float roundf __P((float));
double round __P((double));
double   log2 __P((double));
float truncf __P((float));
double trunc __P((double));
__math_decl int lroundf(float x)
__math_decl int lround(double x)
__math_decl float ceilf(float x)
__math_decl float floorf(float x)
__math_decl float frexpf(float x,int * exp)
__math_decl float ldexpf(float x,int exp)

#define signbit(x) ((x) < 0)
__math_decl float powf(float x,float y)
__math_decl float sinf(float x)
__math_decl float cosf(float x)
__math_decl float fmodf(float x,float y)
__math_decl float atan2f(float x,float y)
__math_decl float atanf(float x)
__math_decl double cbrt(double x)
__math_decl float cbrtf(float x)
 

Offline bernd_afaTopic starter

  • Sr. Member
  • ****
  • Join Date: Nov 2005
  • Posts: 479
    • Show all replies
Re: new ixemul V62.1 for 68k.
« Reply #41 on: November 21, 2009, 11:30:58 AM »
>What about downloading the actual SDK instead of VBCC?

You mean at this link ?

http://www.morphos-files.net/remote/MorphOS_includes

this i download too, see post of files above

>And what the f*ck with ixlibrary and shared objects. If you want an unix clone, why don't >you switch to the real thing. At least it will work properly.

I avoid long times to use Linux Soft(i begin only in sept 2008 to enhance ixemul and SDL and build new GCC), but if nobody do AOS software, then its better to run that on AOS instead of linux.linux is very complicate to handle and develop.windows is much more easy, but windows progs cant port so easy to AOS and enhance with Features.

also i like to use this linux libraries in amiblitz because i dont like code in C.

On MOS/OS4 there is more than 90% of native Software Linux Ports (please count the programs), without more features as on Linux, but still much software miss here.

So i think its better when it is more easy to Port Unix Software, when nobody write amiga programs that offer the functions.and when ypou can port a linux prog in 1 hour instead of 20 hours, yxou have 19 hours left to add amiga Features to it, or port more.

change to Linux is a no go for me, because i want use dopus magellan as desktop and the amiga dev tools.also i use lots 68k Software and Linux UAE is not so good.

I also want run windows games from time to time.
« Last Edit: November 21, 2009, 11:34:25 AM by bernd_afa »
 

Offline bernd_afaTopic starter

  • Sr. Member
  • ****
  • Join Date: Nov 2005
  • Posts: 479
    • Show all replies
Re: new ixemul V62.1 for 68k.
« Reply #42 on: November 21, 2009, 04:05:43 PM »
>It is basicly the same as in that ixlibrary package you posted above and if you had used it >in more complex projects you would know why ixlibraries also need lot of work >sometimes ;-)

ixlibraries are create out of scripts, maybe it fail sometimes, but this can enhance.
I dont know, is there any script on MOS here to make a amiga library automatic ?

Still nobody post a link to full MOS sdk so can see how much and what functions MOS libnix have.so can see whats miss in libnix but ixemul have
« Last Edit: November 21, 2009, 06:10:29 PM by bernd_afa »
 

Offline bernd_afaTopic starter

  • Sr. Member
  • ****
  • Join Date: Nov 2005
  • Posts: 479
    • Show all replies
Re: new ixemul V62.1 for 68k.
« Reply #43 on: November 22, 2009, 12:37:30 PM »
You mean the libnix update ?
but thats no offical page.

math.h (which contain some C99 funcs) is from 2004 and now 5 years old.In linux land much is enhance in last 5 years.because linux is free linux devs use sooner new features.

also this math.h in MOS seem from ixemul math.h and enhanced, but it still have no full C99 support.but ixemul 68k have this too not, i am too lazy to do that.

When a dev on 68k miss a function in ixemul he report me that and i update it in libc of ixemul.this take normaly not more than 5 days.But if the last update of MOS libnix is years back, so the chances to a full C99 support on libnix look not very good.

What i still not see, how libnix on MOS handle socket for Linux.I see no socket.h file

amiga bsdsockets are lots diffrent to Unix sockets.functions are same but the datatypes are diffrent.

So there need all Unix programs lots change that they work with amiga bsdsocket.
unix sockets or amiga sockets do no speed diffrence, i see with libcurl.

here is declare of Unix socket func bind und send

int     bind __P((int, const struct sockaddr *, int));  
ssize_t send __P((int, const void *, size_t, int));

here is declare of amiga bsdsocket bind send. you see long and int is diffrent, this give compiler errors on more strict compiler settings some programs use.ffmpeg compile for example as default with C99 Compiler flag set and compile correct in this mode with ixemul

#define bind(s, name, namelen) \
   LP3(0x24, LONG, bind, LONG, s, d0, const struct sockaddr *, name, a0, LONG, namelen, d1, \
   , SOCKET_BASE_NAME)

#define send(s, msg, len, flags) \
   LP4(0x42, LONG, send, LONG, s, d0, const UBYTE *, msg, a0, LONG, len, d1, LONG, flags, d2, \
   , SOCKET_BASE_NAME)
« Last Edit: November 22, 2009, 12:41:50 PM by bernd_afa »