Sorry I was not being more specific with regards to referencing monolithic Amiga Browsers and Ports,Not wrong but you don't get the point. Are you sure browsers are still monolithic?Belxjander wrote: ↑Tue Nov 17, 2020 9:32 am
am I wrong?
You can already replace some parts e.g. https://stackoverflow.com/a/52383997/1430535
(TimberWolf's build as an example comes off as *very* monolithic at runtime due to the Shared Objects all being dynamicly linked in as part of the executable image at load and NOT shared with other appliactions which may use them, I personally see this as only one example of being monolithic)
As for WebKit and other "Web Render Engines"... pick one and wrap it in a DataType, that is what I actually have in mind.
as for Wayfarer being Objective-C... GCC has an ObjC compilation as part of the build process... what is needed to make that functionality work in addition to the C and C++ build chains within GCC using the Amiga Compiler Patches for the GCC project?
We already have GCC "port"ed... it does have Objective-C support as an option (I haven't seen this added to build options though?... something extra needed?)
We do have a working build toolchain for C and C++, what "out there"(projects for other platforms...) can we actually build with the tools we have?
can we then proceed to step-by-step build the resources and update DataTypes to include what is required for a more "modern" browser experience?
As for a DataType doing HTML+CSS specifically... it can then have a JavaScript specific set of methods in addition to the base DataTypes setup so that JavaScript and other scripting languages can bind and modify "Web Page" Objects as required by scripting elements...
This also divides the pre-requisite "Web Render" and "JavaScript" engines into being separated... along with the "Browser Application" also being separated... (can become individual projects for each element)...
as you pointed out with the StackOverflow URL (see above)... "modern"(non-Amiga) Web Browsers have already done this...
and the main issues with the other platforms in regards to Endianness of the JIT engines is actually in the JavaScript JIT from what little I have seen... is this incorrect?
I'm not stating to "start from scratch"... I'm more looking at a hybrid of AmigaOS specific engineering (DataTypes, Libraries and Application as separate binaries and truly dynamic ABI linking using the AmigaOS shared library mechanisms not the ELF/SO and MS/PE style) along with "Unix philosophy"(one tool to do the job and do it well) reworked for AmigaOS (one component to do a job and do it well) so that we can then
proceed with picking what works for our platform and only making the ?minimal? changes needed for it to work and wrapped as the specific component we need.
"HTML/CSS Rendering Engine" can be made into a DataType, at least a starting step maybe?
"JavaScript Engine" can be made into a Library (whats needed for a Library to use an .so and share the API maybe?)
"Application" can then use the above DataType+Library pair for those functionalities... and focus on the User Interface around it.
building a specific AmigaOS specific engine isn't requred as long as we can fill in a DataType or Library with an engine (even ported and wrapped for this?) that can then be used by multiple Applications as a shared DataType and Library set.
Would this breaking down of larger projects into smaller steps and then putting pieces into place actually work instead of needing whole "large" projects ported and built with a massive effort each time?
once the DataType is in place... upgrading the DataType would upgrade the HTML handling...
once the JavaScript Library is in place... we can upgrade the JavaScript support...
and we can proceed with the above *independent* of what the actual Browser support is...
doesn't this make things easier at all?