Blind eye
GavinWraith (26) 1563 posts |
I think of all the intellectual energy used, and possibly wasted, in RISC OS land. The ambitious projects coded in ARM assembler, the languages ported, or even created from scratch, by dedicated enthusiasts, the hours of refining the documentation; how much has seeped into the sand, never to be used or adopted by more than a handful of devotees. The RISC OS landscape is littered with noble relics; they may have given their creators many hours of happy coding, and taught them valuable lessons, but few, I think, have brought fame or fortune, not that fame or fortune were often sought. Guttorm Vik once wrote poignantly of his efforts with StrongED, but at least StrongED is useful to many. |
Peter Nowosad (530) 31 posts |
I would recommend writing the code you wish to run on the VFP directly in Charm using the real data type and leaving the compiler to do the tricky part of generating equivalent VFP assembler instructions for you! |
Rick Murray (539) 13850 posts |
Sadly, the likes of SourceForge and GitHub didn’t exist in the hey-day of RISC OS. I cry when I think of so much work that has simply disappeared. I think one poignant tragedy is Impression. I have always believed that when one has finished exploiting a work (no longer selling it, no longer planning to support it), then what do you have to lose by tidying up the source code (mainly checking to make sure there aren’t any weird comments that might offend!) and then releasing it to the world.
The time I spent on a video indexing program that was decided as not being something to bother selling (even at cost price) is unreal. I would have made – I think I calculated – about eight grand if paid minimum wage. A sobering thought. But I learned all sorts of stuff, and it was a way to pass time when I had nothing better to do.
I’m certainly not in it for fame or fortune. Furthermore, having been on the periphery of professional coders, all of their knowledge and skill was routinely ignored by management. If management wanted something done and they wrote an ass-backwards specification, that specification was to be followed even if the processor or OS offers a hundred better ways. I enjoy programming. I am taking a break from writing something right now! But if I was in such a soul-destroying position, I would no longer enjoy it, I wouldn’t be able to do things at my own pace or feel free to experiment to see if there’s a better way than the one I thought up first. I would come home from work and view my computer as a mere tool for watching animé or checking the notoriously inaccurate weather report.
A lot of hobbyist programmers work on the principle of “scratching a personal itch”. In other words, they write something that resolves a particular problem of theirs.
Some!?! (^_^)
Whoa – wait… You might say it was Acorn’s inaction on this too. Once Acorn folded, there was no need to support the anachronism of 26 bit PC+PSR. Newer ARM processors didn’t support it, period. This is why ROL stuck for so long with RiscPC class systems and why cloned RISC OS boxes were supposed to be based around the ARM7500 chip. The simple reason is everybody could see the 26/32 bit problem and everybody went “lalalalala-I can’t hear you” until Castle finally stepped up and got a build of RISC OS running. In The Register today was an article that the Linux kernel is now officially dumping support for the 80386 with the words “Good riddance”. Times change, things move on. An ARM architecture that only supports up to 64MiB addressing makes no sense whatsoever in today’s world. We had to go 32 bit to survive.
This should have been a non-issue. I don’t understand why the compiler wanted to load an unaligned word and shift when it is just as many instructions to load an aligned word and shift or mask.
You know, we aren’t unique in this respect. My PVR runs Debian. One version of the firmware takes SWIs passed by number in the instruction while a different version of the firmware takes SWIs passed in a register (because jumping back to read the instruction to pull apart the SWI number from the opcode trashes the cache and is an expensive operation). Now early programs will apparently work on the later firmware (I’m not sure how…), but this is not the same in reverse.
True.
What you meant to say was:
That’s probably a good thing. VFP is pretty slow on the Beagle/OMAP3. You would be better off dropping some precision and using the NEON unit instead. Oh, and for what it is worth, you get all these problems both in ARM and x86 land. Example: Look at something like MoboPlayer or MXPlayer for an Android phone and notice the collection of associated codecs. My phone has codecs for an ARMv7-NEON. You don’t tend to see this as it happens in the background. On the PC… AVIDemux. Should it accelerate with MMX? MMX2? MMXEXT? 3DNOW? 3DNOWEXT? SSE? SSE2? SSE3? SSSE3? So the lesson here, perhaps, is if you want to write FP code for RISC OS these days, you ought to do it several times over (let’s see, there’s FPE and there’s VFP and there’s NEON and…?).
…which means that non-VFP systems will fail with the code. Is the Beagle and Pi VFP the same? How about OMAP4?
I think I ought to bring your attention to the following from Wikipedia (my emphasis): The VFP architecture was intended to support execution of short “vector mode” instructions but these operated on each vector element sequentially and thus did not offer the performance of true single instruction, multiple data (SIMD) vector parallelism. This vector mode was therefore removed shortly after its introduction,34 to be replaced with the much more powerful NEON Advanced SIMD unit. I guess it depends a lot on the application. The thing I’m writing now doesn’t need FP ops (most of the maths is integer-based multiply, addition, subtraction, and shift), so it’s a non-issue for me… |
GavinWraith (26) 1563 posts |
Real numbers have always been a ! in the * for computing. The way maths is taught these days very few people ever get to understand what they are. The popularity of the IEEE formats mean that most people forget that, as with all datatypes, there are other possible formats each with their own virtues, faults and compromises. |
Rick Murray (539) 13850 posts |
It’s simple. Real numbers are actual tangible numbers, like how much petrol costs.
Fixed point maths? It’s a good compromise when you need to deal with non-integers but without going the slow/complicated route. |