The disc cache has proved problematic on some operating systems where
disc operations are slow.
After a great deal of testing and benchmarking it has been determined
the principle slowdown on many of these platforms comes from the
system overheads creating the forest of directories and small files
that hold the cached data.
This overhead when coupled with the very slow synchronous write out of
some operating systems (like RISC OS) causes the "slow writer" message
and cache disablement to occur.
In an attempt to address this I have recently reworked the handling of
small files within the cache. There are now a small number of
relatively large files into which all small objects are placed. This
has resulted in the majority of objects (>70%) being held in these blocks
rather than in separate files on disk.
The resulting cache directories have a correspondingly smaller number
of files and directories within them and should (I hope) exhibit
greatly superior performance.
Of course all this is theoretical and it may not help at all, my
previous attempts at improving this situation have not been very
There is one drawback, the new scheme has changed the cache layout in
an incompatible way. While this will not be an issue at run time and
the cache will reinitialise itself at first start of CI builds after
#2688 it will leave the entire contents of any old cache behind and
never expire data from it. Therefore I advise the removal of the
contents of the NetSurf cache before running any of these CI builds.
I've been scouring the interwebs for far too long trying to find an
existing library to enable me to parse web pages (html) and then use CSS
selectors against the DOM to pick out elements and modify/remove them.
Basically, I'm looking for the functionality provided by
I've been downloading the libs linked on the website such as libCSS/ hubbub
and so on, but as you note, there isn't an API reference (not complaining,
just saying). So I thought I'd just ask here to see if such functionality
exists. Thanks for your time.
First of all, I'd like to thank you for your efforts in making really
light and fast web browser. I enjoy using it.
I'm writing you because I want to propose a fix for a segfault I faced
Steps to reproduce:
1. Run `./nsgtk --ca_path=""`
2. Press 'Edit->Preferences'
3. Press 'Close'
Netsurf will segfault.
The proposed patch is attached to this email. It's for version 3.2 or
3.3. I hope you will push it to upstream.
The patch attached to my previous email contained an error. Somehow I'd
inadvertently removed the 'x' from an xwimp call which I didn't intend
I've used git to revert the changes and then (once again) removed the
xwimp_create_menu(WIMP_CLOSE_MENU,0,0) call from
ro_gui_send_datasave--the change I originally intended to make. So the
patch attached here should be sufficient on its own.
Thanks to Jeremy Nicoll for pointing this out.
I've looked at Bug 2182 and made appropriate modifications to
riscos/save.c. This wasn't *too* tricky since the identifier of the bug
also suggested how it might be solved.
I've tested the fix and it appears to have resolved the issue and not
caused any other problems.
Once again I've attached the patch in what I hope is the correct
format. It's the result of two separate commits since before testing
the revised version I commented out the code I was going to remove but
forgot to actually remove the commented out code before doing the first
As before, please tell me whether or not the format of the patch is
The Shared Unix Library was indeed still out-of-date in the current
version of !Netsurf. I have updated the file (SharedULib,ffa in
riscos/distribution/!System/310/Modules) in my workspace.
I've also created a patch using git format-patch which I've attached to
this email. Please let me know if the format is OK--if it is, I can
post as to how I did it!
Having managed to get everything set up and working, including an
installation of RPCEmu/RO5.20 as well as the Netsurf build tools, I
was thinking about tackling bug 2182 over the next few days--unless
Glen is already working on it.
I have managed to reproduce the bug as follows:
1. Select text in !Netsurf
2. Do Selection|Copy to Clipboard
3. Start !StrongED and open a new text file.
4. Do Block|Clipboard|Paste To Text, clicking on Paste to Text with
The menu tree should stay open, but closes.
This does not happen if another clipboard-aware application is used
instead of !Netsurf.