Welcome, Guest. Please login or register.

Author Topic: NetSurf OS3.x Issues  (Read 38092 times)

Description:

0 Members and 2 Guests are viewing this topic.

Offline nicholas

Re: NetSurf OS3.x Issues
« Reply #269 from previous page: March 08, 2016, 10:29:59 AM »
Quote from: bernd_afa;805565
@Arti. You write in upper post got working non fpu version too. can you post time results, to see how much slower it is ?

Welcome back Bernd! :)
“Een rezhim-i eshghalgar-i Quds bayad az sahneh-i ruzgar mahv shaved.” - Imam Ayatollah Sayyed  Ruhollah Khomeini
 

Offline unusedunused

  • Sr. Member
  • ****
  • Join Date: Nov 2005
  • Posts: 479
    • Show only replies by unusedunused
Re: NetSurf OS3.x Issues
« Reply #270 on: March 08, 2016, 06:00:06 PM »
Quote from: itix;805566
Ixemul has better memory allocator but ixemul.library is not safe from application using native Amiga API.

can you more precise explain what go wrong ? sdl lib use native AOS functions too. so if it is not safe then it is not possible that sdl open a amiga window or amiga screen or use amiga os semaphores or other aos functions.

since version 47(i do not) ixemul use aos semaphores. so its possible to use aos and ixemul together for semaphore protect too

"Added low-level mutex (semaphore) functions: ix_mutex_lock(),
ix_mutex_attempt_lock() and ix_mutex_unlock(). These functions are
wrappers for the AmigaOS or p.OS kernel semaphore functions. See ix.h for
more info. "

i fix all problems, mainly thread safe problems, when more tasks of 1 program use ixemul functions.
it work now over years ok. netsurf is mix of aos function and unix functions.

only small limit is, that it is not possible to create a new task with the aos function, because for ixemul tasks need additional structure. but it crash if not do correct. as far i remember i add function IX_createtask or something that make it easy. have same parameter as aos function but create the structure need for unix functions

here is sdl  code that create a new task using AOS functions
int SDL_SYS_CreateThread(SDL_Thread *thread, void *args)
{
   /* Create the thread and go! */
   char buffer[20];

#ifdef WARPOS
   struct TagItem tags[6];
#endif

#ifdef SHARED_LIB
   extern void *myLibPtr;

   ((thread_args *)args)->LibBase= myLibPtr;
   D(bug("CreateThread: librarybase %lx\n",myLibPtr));
#endif

   D(bug("Sending %lx to the new thread...\n",args));

    sprintf(buffer,"%ld",args);


#ifdef WARPOS
    tags[0].ti_Tag = TASKATTR_CODE;                       tags[0].ti_Data = (ULONG)RunThread;
    tags[1].ti_Tag = TASKATTR_NAME;                        tags[1].ti_Data = (ULONG)"SDL subtask";
    tags[2].ti_Tag = TASKATTR_STACKSIZE;                   tags[2].ti_Data = 100000;
    tags[3].ti_Tag = (args ? TASKATTR_R3 : TAG_IGNORE);    tags[3].ti_Data = (ULONG)args;
    tags[4].ti_Tag = TASKATTR_INHERITR2;                   tags[4].ti_Data = TRUE;
    tags[5].ti_Tag = TAG_DONE;                             tags[5].ti_Data = 0;

    thread->handle=CreateTaskPPC(tags);
#else
   unsigned int stack;
   struct Task *t;
   long *pid;
   
   thread->handle=(struct Task *)CreateNewProcTags(
                    /*NP_Output, Output(),
                    NP_Input, Input(),*/
               NP_Name, (ULONG)"SDL subtask",
               /*NP_CloseOutput, FALSE,
                    NP_CloseInput, FALSE,*/
               NP_StackSize, 100000,
               NP_Entry, (ULONG)RunThread,
               NP_Cli, TRUE,
               NP_Arguments, (ULONG)buffer,
               TAG_DONE);

   /*Delay(1); // its a testhack dont activate
   Disable();
   struct Task *t;
   struct Task *t2;
   APTR *data;
    t = FindTask(0);
    data = t->tc_UserData;
    t2 = thread->handle;
   t2->tc_UserData = data;
   Enable();*/
#endif

   if(!thread->handle)
   {
      SDL_SetError("Not enough resources to create thread");
      return(-1);
   }

   return(0);
}
« Last Edit: March 08, 2016, 06:03:53 PM by bernd_afa »
 

Offline unusedunused

  • Sr. Member
  • ****
  • Join Date: Nov 2005
  • Posts: 479
    • Show only replies by unusedunused
Re: NetSurf OS3.x Issues
« Reply #271 on: March 09, 2016, 04:48:19 PM »
I look in history and there are add many functions that increase compatibility to amiga OS. It is possible to switch from a program to amiga path mode.

* Add ix_UseAmigaPaths(mode) func.
   When mode = 1 then amiga Path Mode is used.
   For example when current dir is sys:wbstartup
   ix_UseAmigaPaths(1);
   h = fopen("/tools.info","r");
   work

That it is possible to create amiga tasks with the amiga function, this function add the needed structure so all is 100% compatible

* ix_CreateChildData function add in libc.a.This create correct Userdata structure ixemul need
     to store filehandles and used memlist of current task when a task is create with amiga OS create Task.
 

Offline itix

  • Hero Member
  • *****
  • Join Date: Oct 2002
  • Posts: 2380
    • Show only replies by itix
Re: NetSurf OS3.x Issues
« Reply #272 on: March 09, 2016, 08:10:07 PM »
Quote from: wawrzon;805567
i have never understood whats not safe about it..


To my understanding it is use of tc_SigExcept and Exec exception handlers. I dont havei nterest to fully analyze what ixemul is doing there but it seems it is used to catch CTRL-C and abort program execution immediately. If you are not prepared to that memory leaks can occur. If you are not prepared to that and you are executing critical OS call you crash and burn. It can be fixed by disabling signals before making an OS call, at least ixemul is internally disabling signals when making such OS calls.
My Amigas: A500, Mac Mini and PowerBook
 

Offline unusedunused

  • Sr. Member
  • ****
  • Join Date: Nov 2005
  • Posts: 479
    • Show only replies by unusedunused
Re: NetSurf OS3.x Issues
« Reply #273 on: March 10, 2016, 04:04:06 PM »
Quote from: itix;805674
To my understanding it is use of tc_SigExcept and Exec exception handlers. I dont havei nterest to fully analyze what ixemul is doing there but it seems it is used to catch CTRL-C and abort program execution immediately. If you are not prepared to that memory leaks can occur. If you are not prepared to that and you are executing critical OS call you crash and burn. It can be fixed by disabling signals before making an OS call, at least ixemul is internally disabling signals when making such OS calls.

the ctrl c exception handler is only used on programs start from shell. a program that is start from wb (netsurf)do not do anything when press CTRL C, i have check it now, press and hold ctrl+c when netsurf run, do nothing. maybe other can too press ctrl+c if they can bring to crash netsurf. if so of course ixemul can fix. most users do not use ctrl+c. so best is for netsurf, switch it off
« Last Edit: March 10, 2016, 04:06:15 PM by bernd_afa »
 

Offline unusedunused

  • Sr. Member
  • ****
  • Join Date: Nov 2005
  • Posts: 479
    • Show only replies by unusedunused
Re: NetSurf OS3.x Issues
« Reply #274 on: March 10, 2016, 04:28:09 PM »
I test netsurf start on shell window. many single ctrl+c presses do not do anything, but press and hold ctrl+c down more than 10 sec close the netsurf window and let freeze amiga. so better is CTRL+c signal deactivate for netsurf. in ixemul docu stand how this can do
 

Offline wawrzon

Re: NetSurf OS3.x Issues
« Reply #275 on: March 10, 2016, 05:07:38 PM »
ixemul programs are in many cases not very responsive to keyboard input. especially on real hardware.
 

Offline unusedunused

  • Sr. Member
  • ****
  • Join Date: Nov 2005
  • Posts: 479
    • Show only replies by unusedunused
Re: NetSurf OS3.x Issues
« Reply #276 on: March 14, 2016, 12:38:23 PM »
thats because desktop Linux programs that were later 1995 are never test at a 50 MHZ CPU. I have a cheap tablet 2* 1GHZ, this is slow as hell. often when press a key it need 2 or more sec until key is show. i disable name completion, but still slow. I only use for banking app. seem unix interrupt on general is slow.
 

Offline utri007

Re: NetSurf OS3.x Issues
« Reply #277 on: April 01, 2016, 07:58:24 PM »
Chris :

Tabs do work but they have some layout problems?
Sometimes when browser window is moved buttons doesn't refresh/show up again.
Prefs works just fine, but there is layout problem in screenmode page.
ACube Sam 440ep Flex 800mhz, 1gb ram and 240gb hd and OS4.1FE
A1200 Micronic tower, OS3.9, Apollo 060 66mhz, xPert Merlin, Delfina Lite and Micronic Scandy, 500Gb hd, 66mb ram, DVD-burner and WLAN.
A1200 desktop, OS3.9, Blizzard 060 66mhz, 66mb ram, Ide Fix Express with 160Gb HD and WLAN
A500 OS2.1, GVP+HD8 with 4mb ram, 1mb chip ram and 4gb HD
Commodore CDTV KS3.1, 1mb chip, 4mb fast ram and IDE HD
 

Offline chris

Re: NetSurf OS3.x Issues
« Reply #278 on: April 02, 2016, 12:11:58 AM »
Quote from: utri007;806662

Tabs do work but they have some layout problems?
.


Have you tried closing them?
"Miracles we do at once, the impossible takes a little longer" - AJS on Hyperion
Avatar picture is Tabitha by Eric W Schwartz
 

Offline utri007

Re: NetSurf OS3.x Issues
« Reply #279 on: April 03, 2016, 10:18:54 AM »
Closing tabs has random problems, sometimes it works, sometimes it gives Netsurf error, sometimes it just crash.

Do you have any use those error codes?
ACube Sam 440ep Flex 800mhz, 1gb ram and 240gb hd and OS4.1FE
A1200 Micronic tower, OS3.9, Apollo 060 66mhz, xPert Merlin, Delfina Lite and Micronic Scandy, 500Gb hd, 66mb ram, DVD-burner and WLAN.
A1200 desktop, OS3.9, Blizzard 060 66mhz, 66mb ram, Ide Fix Express with 160Gb HD and WLAN
A500 OS2.1, GVP+HD8 with 4mb ram, 1mb chip ram and 4gb HD
Commodore CDTV KS3.1, 1mb chip, 4mb fast ram and IDE HD
 

Offline chris

Re: NetSurf OS3.x Issues
« Reply #280 on: April 03, 2016, 01:06:37 PM »
Quote from: utri007;806743
Closing tabs has random problems, sometimes it works, sometimes it gives Netsurf error, sometimes it just crash.

Do you have any use those error codes?


Not really, I know it's broken and can reproduce it easily enough.
"Miracles we do at once, the impossible takes a little longer" - AJS on Hyperion
Avatar picture is Tabitha by Eric W Schwartz
 

Offline chris

Re: NetSurf OS3.x Issues
« Reply #281 on: April 16, 2016, 03:19:21 PM »
NetSurf 3.5 BETA for AmigaOS 3.5+ is now available here: http://aminet.net/package/comm/www/netsurf_os3

Don't ask me what's changed, I can't remember :)
"Miracles we do at once, the impossible takes a little longer" - AJS on Hyperion
Avatar picture is Tabitha by Eric W Schwartz
 

Offline Retrofan

  • Hero Member
  • *****
  • Join Date: Mar 2010
  • Posts: 507
    • Show only replies by Retrofan
Re: NetSurf OS3.x Issues
« Reply #282 on: April 16, 2016, 08:46:01 PM »
Great !

It runs very well and fast. A couple of things though:

- Couldn't it use the FPPrefs?
- Can't it be done without FPU needed?
« Last Edit: April 16, 2016, 08:50:10 PM by Retrofan »
A1200, Lateral 32GB CF, internal Dvd, ACA 1230/56 with an MKII Fast ATA at 9,5Mb/s, another A1200 BPPC project in progress (more or less), and posting from my own/better C64x in my Tv using Hdmi.
 

Offline chris

Re: NetSurf OS3.x Issues
« Reply #283 on: April 16, 2016, 09:30:05 PM »
Quote from: Retrofan;807286
Great !

It runs very well and fast.


Cool!

Quote

- Couldn't it use the FPPrefs?


I have no idea what that is.

Quote

- Can't it be done without FPU needed?


Probably, if I could figure out how to force gcc to use certain compiler switches by default.
"Miracles we do at once, the impossible takes a little longer" - AJS on Hyperion
Avatar picture is Tabitha by Eric W Schwartz
 

Offline Retrofan

  • Hero Member
  • *****
  • Join Date: Mar 2010
  • Posts: 507
    • Show only replies by Retrofan
Re: NetSurf OS3.x Issues
« Reply #284 on: April 16, 2016, 09:57:57 PM »
About using the FPPrefs I was wondering if the images couldn't have some treatment and use the palette you are using, or at least some other. IBrowse for example looks much better -compared- when you use few colors. I believe that's because a option of MUI that IBrowse uses though.
« Last Edit: April 16, 2016, 10:09:38 PM by Retrofan »
A1200, Lateral 32GB CF, internal Dvd, ACA 1230/56 with an MKII Fast ATA at 9,5Mb/s, another A1200 BPPC project in progress (more or less), and posting from my own/better C64x in my Tv using Hdmi.