Maybe you can help with that MachineStackMarker stuff, i.e those 3 parts of code need os4 analog to make js threading works:
You don't need any changes if you enable WTF_USE_PTHREADS, except for removing the OS(MORPHOS) parts, and with pthreads.library 53.11 or newer you don't need to disable HAVE_PTHREAD_RWLOCK.
You could use AmigaOS specific code instead, but why? The MorphOS code makes no sense, unless it's a workaround for bugs in MorphOS, and it seems to be incomplete. For AmigaOS, and any AmigaOS compatible OS, you don't need PlatformThreadRegisters and can disable getPlatformThreadRegisters() and otherThreadStackPointer(), and use something like
suspendThread() should use IExec->SuspendTask(platformThread, 0) instead of Disable() which makes no sense at all (even for disabling multitasking completely instead of only stopping one task, which is wrong anyway, using IExec->Forbid() would have been enough) and resumeThread() IExec->RestartTask(platformThread, 0).
But since you always only post small, incomplete parts of the sources with which it's impossible to port it to AmigaOS you have to port it yourself if you don't want to use pthreads.
@kas1e Any memory allocated by malloc() is allocated by the C lbraries freed when the program exits. Memory allocated by AllocSysObjectTags() might not be freed unless FreeSysObject() is called before quitting the program. In fact, FreeSysObject() might not free the memory; it might just put it in a list for reuse for all we know. I think it's a non-issue.
This multiple threads part is implemented and enabled in morphos, just so that webkit synchronization and compilation are made easier, but it's actually not used at all in practice (this code is used by external jsc clients, and possibly by webkit2, but not webkit itself). It's also totally unrelated to javascript workers, for instance.
Regarding the code itself, while Forbid() might be enough, I definitely wouldn't recommend Suspend/RestartTask.
@xenic
Of course using malloc() is a non issue, if the underlying clib is properly done. In MorphOS, it internally uses a mempool and all the allocated memory is given back at exit.
On the other hand, i really wouldn't use directly AllocVec*/AllocMem* in WebKit, and especially JSCore, because it tends to leak a lot (due to remaining live js references/objects in allocated blocks), and as a consequence, the leaks wouldn't be recovered at all after program exit.
At least, if you really don't want to use malloc(), at least keep track of your allocation, or better, use a mempool.
Sorry for my impatience, but there are nothing to report since two days. Maybe you have surely other things to do or could this mean we will see a Beta release soon?
@younghippie All done, just waiting for new mui release, because:
1). new version of odyssey want new mui class for autoform filling (which is done and will be released in new version of mui). 2). in new version of mui fixed all bugs related to tabs, so i will set minimum req to that mui on startup as well, so no reports from old mui will be about crashes in tabs. 3). few bugs related to odyssey was fixed too in mui
But in terms of whole port all done (without fullscreen youtube of course, just a window, when it will be done it can be then released as update or with next version of odyssey or something).
In other words waiting for new mui release (when , dunno, but i assume pretty soon)
Sorry for the incredible delay, thanks to my ISP i was offline for atleast 11 days, aka without any internet connection at home
Aniway thanks for the help with the MUI bugs, now i need to recheck them one by one because i mostly forgot anythings after this waiting
Must tell you also that i think to have found a couple of new problems with OWB 1.16, only let me some time to retest them and eventually organize a decent report