NetSurf on ARMv7 platforms
by John-Mark Bell
Afternoon,
So, NetSurf runs mostly ok on ARMv7 platforms with their backwards
incompatible unaligned LDR behaviour turned on. Tinct, however, appears
to perform some LDRs from unaligned addresses, resulting in crashes.
Here's a backtrace:
> Fatal signal received: Segmentation fault
>
> Stack backtrace:
>
> Running thread 0x59e53c
> ( 5a7ee0) pc: 462860 lr: 74f4c sp: 5a7ee4 __write_backtrace()
> ( 5a7f10) pc: 74d64 lr: 463298 sp: 5a7f14 ^ro_gui_signal()
> ( 5a7f38) pc: 463288 lr: 462f58 sp: 5a7f3c __unixlib_exec_sig()
> ( 5a7fa0) pc: 462a18 lr: 463870 sp: 5a7fa4 __unixlib_raise_signal()
> ( 5a7fb0) pc: 463774 lr: 5a6c48 sp: 5a6c04 __h_cback()
>
> Register dump at 005a7fb4:
>
> a1: 12f a2: 2d a3: 1f4 a4: 0
> v1: 0 v2: 0 v3: 202513b4 v4: 1
> v5: 3d5 v6: 0 sl: 41b78d39 fp: 67197124
> ip: 20248394 sp: 5a6c04 lr: 5a6c48 pc: 2024609c
> cpsr: 80000113
>
> 20246088 : .p.â : e21a7003 : ANDS R7,R10,#3
> 2024608c : .... : 0a000008 : BEQ &202460B4
> 20246090 : .àgâ : e267e003 : RSB R14,R7,#3
> 20246094 : ..^á : e15e0000 : CMP R14,R0
> 20246098 : .à Á : c1a0e000 : MOVGT R14,R0
> 2024609c : .??å : e59a9000 : LDR R9,[R10,#0]
> 202460a0 : ..@Ð : d040000e : SUBLE R0,R0,R14
> 202460a4 : ..?Ò : d2800003 : ADDLE R0,R0,#3
> 202460a8 : ..?À : c0800007 : ADDGT R0,R0,R7
>
> Invalid pc address bebeec
For reference, Tinct is loaded at 202416B4.
J.
13 years, 6 months
Trunk behaviour and the road to 2.6
by Daniel Silverstone
Hi,
We rushed *hard* to get 2.5 out, and unfortunately it wasn't all we'd hoped it
would be. As such we're calling a moratorium on committing feature changes to
trunk so that we can *all* concentrate on bug-fixes.
This means that all the frontend enhancement development, the core-treeview
branch, etc, should all be backburnered so that we can fix bugs in the core,
and any frontend bugs which mean that 2.5 is damaged-goods.
Everyone should be capable of helping in this process.
We need to find memory leaks, track down allocation issues, find sites which
trigger these things reliably, along with any crashers anyone can find.
Basically stress-test the browser and then find ways to easily reproduce issues
so that we can track them down and fix them.
So, to reiterate, only bug-fixes on trunk for now please. Someone needs to
remove the PDF export bit of the RISC OS menu (or fix PDF export, but I think
that's too much for this phase to be honest).
Feature development can continue on branches if you truly feel you cannot
contribute to the bug-fix effort.
We will release 2.6 when we feel it won't be another disappointment; and at
that point, trunk will be reopened to development.
D.
--
Daniel Silverstone http://www.netsurf-browser.org/
PGP mail accepted and encouraged. Key Id: 3CCE BABE 206C 3B69
13 years, 7 months
RISC OS and the Core Treeview branch
by Steve Fryatt
As it's probably more relevant to folk here than on the users list, I've put
a Todo list up on the Wiki covering the RISC OS frontend: specifically (at
present) the outstanding work and issues in the core treeview branch WRT
RISC OS.
http://wiki.netsurf-browser.org/Todo/RISC_OS_frontend
It covers the items in my own list that I was maintaining here, and it's
almost certainly incomplete: comments, amendments, additions welcome. I'm
finding that I didn't use several affected areas of the browser that much,
so there will be things (like URL Suggest) that I've overlooked or got wrong
in re-implementation.
I'm hoping that I should have some more free time available for NetSurf now
that Wakefield is out of the way, so with any luck I'll be able to start
working through the items on the list again.
Now that 2.5 is out of the way, what is the plan for the branch and is there
any firm timescale set for when it will be merged?
--
Steve Fryatt - Leeds, England
http://www.stevefryatt.org.uk/
13 years, 7 months
Re: NetSurf 2.5 still steals memory
by Rob Kendrick
On Mon, 26 Apr 2010 11:16:32 +0100
Gavin Wraith <gavin(a)wra1th.plus.com> wrote:
> I am not au fait with RISC OS's memory-management, but I would like
> to know more about it (an article in Archive one day?). I take the
> point that till now most tasks have been insufficiently complex to
> show up its defects. The memory-management system I am frequently
> using is that of Lua, which only handles the memory that the RISC OS
> task- manager assigns to it. I have often wondered, perhaps naively,
> if there were a way of exploiting it more widely in RISC OS. Perhaps
> the RISC OS task-manager's memory-management is bound too tightly
> to the hardware for something as generic as Lua's system to be
> exploited more widely?
Hi Gavin,
I've CCed the netsurf-dev list with this, as it might be interesting
for the non-RISC OS developers, as an insight into restrictions we have
to keep in mind if we want to continue supporting RISC OS. I hope you
don't mind.
The issue is that RISC OS's memory management system is both complex,
and old-fashioned. It makes mistakes that were solved in UNIX in the
1970s. It has three main "arenas" in which memory can be allocated;
the WIMP slot, the Relocatable Module Area, and the Dynamic Area area.
(UNIX has two; it traditionally chops the memory map in to [commonly
3GB/1GB]. You have user process [3GB], and kernel memory [1GB].)
The main issue is that memory allocations under RISC OS are always
contiguous. The secondary issue is that if you want to store more than
28MB of data (and/or have good task swapping performance), you need to
store your data in Dynamic Areas that use a single global pool of
virtual address space, and that space for the DA must be reserved when
it created.
The first problem means that should you have, say, 4MB of allocated
data, and you free the middle 2MB, that 2MB of memory cannot be
returned to the operating system. The memory literally becomes
fragmented. While NetSurf may have DAs amounting up to 100MB, it may
actually only have 20MB of data in them. But it has no way of
returning that free memory back to the OS. Historically, RISC OS
applications have used "sliding heaps", where you can move blocks of
data around to free up space at the end, allowing you to shrink the DA.
Unfortunately, this means that all data you store must be accessed via
an "anchor", that never moves. (ie, when the memory heap is
reshuffled, it updates all the anchors.). While this solves one
problem, it causes several others: All data access has to be
indirected, meaning more reads from memory for the same job, as well as
reducing the effectiveness of the memory cache. Secondly, it greatly
complicates the application, making it more difficult to debug.
The second problem causes the "NetSurf is running out of memory"
problem, when there is clearly free memory. The problem isn't that
it's running out of memory, but it's running out of memory address
space. When you create a DA, you tell the OS how large it is permitted
to grow to. RISC OS keeps all DAs in a fixed-size region of memory
map. This means that if the memory map is completely allocated, new
DAs cannot be created, because there is nowhere they would fit.
There are solutions to these problems (short of rewriting RISC OS to
have a modern memory system). The first problem could be significantly
mitigated by using a feature available in RISC OS 3.7 onwards (I
believe) called "Sparse Dynamic Areas". These allow you to punch holes
in DAs such that RISC OS can use the pages of RAM that represent the
hole elsewhere. This means you could have a huge DA with only a tiny
amount of data in them. You'll still have problem two, which is
running out of address space, but it does mean the memory would be
available for other applications to use. This would require massive
re-engineering of UnixLib's memory allocator, and is not a trivial job
by any stretch of the imagination.
The solution to the second problem has already been defined by RISC
OS's reference manuals, but has never been implemented. There is a bit
you can set in the flags field you pass when creating a dynamic area
that means "This DA is local to this WIMP task". It allows the DAs to
be swapped out at the same time as the WIMP task they are associated
with. This means that the pages of the memory map they consume can be
used by other WIMP tasks too, and the memory is not visible to the
other WIMP tasks. Unfortunately, as I said, RISC OS ignores this flag,
and hardly any applications set it. Additionally, for such a scheme
to work anyway, some of the memory map would have to be reserved for
such DAs, meaning that its implementation would actually make matters
worse for existing applications.
This is just two of the problems; there are others. Hope this clears
things up a bit.
B.
13 years, 7 months
Re: NetSurf 2.5 still steals memory
by Gavin Wraith
Rob
> I've CCed the netsurf-dev list with this, as it might be interesting
> for the non-RISC OS developers, as an insight into restrictions we have
> to keep in mind if we want to continue supporting RISC OS. I hope you
> don't mind.
Absolutely not. What you wrote is very helpful; just what I needed.
Am I being fanciful if I say that BBC BASIC's DIM reflects how
RISC OS handles memory-allocation (memory descriptors are offsets
from a single base), whereas Lua's table-creation system reflects a
more abstract approach?
--
Gavin Wraith (gavin(a)wra1th.plus.com)
Home page: http://www.wra1th.plus.com/
13 years, 7 months
AGM and Society membership
by Daniel Silverstone
Hello,
The AGM for the NetSurf Project Society is due and has been set for the day of
the 2010 Wakefield Show. This is the 24th April 2010. The AGM will be held on
the #netsurf channel on the Freenode IRC network at 13:00 UTC (Note that is
14:00 UK local time, 15:00 France time).
Membership of the society is governed by the constitution of the society which
can be found at http://wiki.netsurf-browser.org/Society/Constitution
particularly points 2 through 7.
The society membership over the past year has been:
Committee Members:
Michael Drake, Chair
John-Mark Bell, Treasurer
Daniel Silverstone, Secretary
Non-Committee Members:
Rob Kendrick
Andi Sidwell
Chris Young
Vincent Sanders
Bo Yang
François Revel
John Tytgat
As things currently stand, Andi Sidwell is no longer a member of the society,
by point 7.2. However, the following people are now eligible to become members
if they follow point 5 of the constitution and send me an email indicating
their desire to be a member of the society:
Adrian Lees
Ilkka Lehtoranta
Steve Fryatt
James Bursa
James Shaw
Paweł Blokus
Mark Benjamin
If non-trivial contributions are received by others (including Andi Sidwell)
before the 24th, then they will also become eligible to be members of the
society for this meeting.
I will now also entertain nominations for the committee for the society.
Please note that I must receive nominations and proposals for motions by the
end of Friday 16th April in order that they be in-time to be considered for the
meeting. The agenda will be posted between the 17th and the 20th April.
Regards,
Daniel Silverstone,
Secretary, NetSurf Project Society
--
Daniel Silverstone http://www.netsurf-browser.org/
PGP mail accepted and encouraged. Key Id: 3CCE BABE 206C 3B69
13 years, 7 months
Vintage Computer Fair/Festival
by Chris Young
Hi all
I have been provisionally offered a table at the VCF in Bletchley Park
this June. It is a two-day event over a weekend (19th/20th if memory
serves), and I intend to use the table - if I go ahead - to show
NetSurf on AmigaOS 4.1.
I think this event will be good promotion for the NetSurf project if
it can be shown running on sufficiently updated "vintage" computers
alongside the "non-vintage" GTK.
I can't do it on my own (I can show the OS4 version on my own, but the
table'll be a bit empty and besides which I'd quite like to look
around without leavng the table unmanned), so I was wondering if there
was any wider interest in putting together a proper NetSurf table on
one or both days?
Regards
Chris
13 years, 7 months
NetSurf Society Financial Report
by John-Mark Bell
NetSurf Society Financial Report, April 2010
============================================
Overview
--------
This is a summary of the society's financial status as of 2010-04-23.
As agreed when we formed the society, all remaining funds held by myself
have been transferred to the society bank account.
The sole income over the last 12 months has been the receipt of the GSoC
2009 organisation payment.
All outgoings have been in the form of reimbursements for
project-related activities.
Detail
------
Balance carried forward: 759.26
Income:
GSoC 2009 organisation payment 969.01
Expenditure:
Rob Kendrick, for MUG show[1] (40.20)
Daniel Silverstone, Wakefield show stand[2] (40.00)
John-Mark Bell, 410 miles RDG->MAN->SOU
for hackfest @10ppm[2,3] (41.00)
Remaining Funds: 1607.07
Notes
-----
1. I mistyped when setting up the transfer.
Rob owes the society 20 pence.
2. Reimbursements pending.
3. Do we want to revise our per-mile reimbursement amount?
13 years, 7 months
2.5 Release
by Vincent Sanders
I have apparently misunderstood both the release process and role of
release manager. This has caused a loss of confidence of the other
NetSurf developers in making the 2.5 release.
Accordingly I shall participate no further in this release and wish
whoever takes up this role more success.
--
Vincent Sanders
13 years, 7 months