I got my Amiga SDK 10th of July 2000, right on my Birthday, I was probably the first in Sweden to get one, or at least the first that was sent from Sweden. I bought my copy from GGS-Data, and got it a few days later.
In this site I will post some of my and other people ideas and toughs about the newly released Amiga SDK, this page is a live document, and will probably change from now and then. All info of this page is considered "as it is", it can be false, but I try not to be.
If you have something special you wonder about the amiga SDK please let me know, so I kan test it for you, or if you have any benchmarking java/c programs that I can test.
2000-07-12 Page created.
2000-07-13 Added info under Shell and Java.
2000-07-15 Spelling correction.
2000-07-18 Added info under Shell and Java. Added amigasdk.zingo.org to the nameservers
2000-07-19 Java speed test
2000-07-20 More Java speed test
2000-07-26 More Java info again
2000-07-29 Java mp3 benchmark
2000-08-01 Added test from jdk 1.2.2 and IBM 1.1.8 jvm
2000-08-09 Added a Programming C section
2000-08-18 Added info about program porting
2000-08-23 Debuging info
2000-08-24 .lib problem solved, updated Bash progress
The package comes in a standard "computer game" box. I contains a Book, a CD, a few notes and a car bumper sticker. The book has a simple and clean design, It has the "Constructing Boingball" on the front. The CD has the same picture on the box, and the CD itself has a white surface filled with boingballs. The bumper sticker is also with white boingballs.
My first impression was positive, I did not have my redhat installation quite up yet so I started to read the book. The book has a simple layout, chapters could be more clearly marked and most of the pictures looks like they needed some more work. But the context of the book seems well suited for developers with some experiences. The language is simple and easy to understand (for me that is anyway).
Installation was easy, just executing a setup program on the CD, it opens up a small window. During the installation you need web access, to get some Developer ID and a unlock code to install your copy.
The intent shell is started with "intent_shell" from a linux shell prompt, this start the "Amiga 1.0" shell. The shell was easy to use and not in the way like DOS is. After a mater of minutes I manage to find the freeball example and start it. It opened up a new graphical window were a nice old boing ball bounced around. From this window I manage to start all the nice programs that you have seen on the other screen shots.
Shell is a zsh look alike. I found it very intuitive and easy to use. Some commands differ from the old amiga like
| Operation | New Amiga | Classic | Unix | MSDos |
| Benchmark | speed | n/a | n/a | n/a |
| Concatenate files | cat | join,type | cat | type |
| Copy text to stdio | echo | echo | echo | echo |
| display date | date | date | date | date,time |
| Exit shell | exit | endcli | exit | exit |
| List files | ls,dir | list,dir | ls | dir |
| Reboot | shutdown | Ctrl+Am+Am | shutdown,reboot | Ctrl+Alt+Del |
| Run java | jcode | n/a | java | java |
| Help | help,html | n/a | man,info | help ? |
Amiga 1.0:/demo/example/j$ speed VP MIOPS = 678.730032 VP MLOPS = 161.562613 VP MFOPS = 71.482173 VP MDOPS = 39.633851 Amiga 1.0:/demo/example/j$And the manual explains: "The rows show how many millions of these fundamental integer, long, floating and double operations can be performed every second."
Running things in the same directoyr is done with a ./ before the command, this indicates that the current path "." should be searched for the command. The concept of searchpath does not seem to work, everything is almost done via the "root" entry in the filesystem, this I hope will change realy soon.
In this section Ill try to explain some info as a port a linux program to elate/amiga.
The C compiler is a version of GCC that has been ported and changed to output VP Asm as its
object format, this means that the .o files are readeble by an ordinay texteditor, I even
manage resolve a an missing function error during linking, by looking into the .o file for
the requested function. This should have been harder if the .o files were in the usual
binnary format since the function was hidden in a macro. I miss som good document on
the standard C function that are supported. You could do a "help
Another problem I discovered is that I had problem running the configure scripts, but since I have no big experience in shell scripts, I did a configure on the linux side of things for the moment. This gave me a lot of porblem since the configure script on the linux side generated a config.h file that was full of error. Man idea was to port gnome so that all gnome programs like gimp could bu ported easyly later, but since gnome is made of a few diffrent projects like glib, gtk+, gdk and everytime I had to generate new makefiles and change the config.h file this was not a very clean port, so I decided that I should start over from scrach using the lates sources from the CVS repository. To make the port as clean al posible I should have perl ported also since it is used to generate some stuff in the gnome sourcetree, so I downloaded perl and again I can not run the configure script. I decided that I had it with the elate-zsh lookalike and started to port bash to see if this helps. And again I can not run the configure script as bash needs a sh/bash shell as stated above. Why cant people make plain makescripts that are not generated. Well right now I have compiled bash but it crashes when I run it. To create arcives of .o files there is a version of the unix ar called vpar.
Debuging is right now a pain in the ass, I have not found a good way to debug on sourcelevel, and the included ebug seems to debug on the x86 level which makes it a little to lo-level for me. right now I use printf() statements to debug, if anyone have a better method please let me know.
Amiga Java supports the Personal Java 1.1 libraries, (1.1.6 API) java programs is started with the command jcode. Compiling java programs are done with javac and it works as the javac command from the JDK.
Big and nice differences from other Java technologys out there is that the Tao/Amiga java translate rather than interprets the Java byte code, and it does it at load time rather than run-time as other JIT/virtual machines does. The garbage collector is interruptable, which makes java more useful under real time operations. It should also use less memory since it uses the individual tools rather than classes. There is also a command call translate that seems to translate java byte code to VP byte code.
I have not got a list of differences in the class library of Personal Java compared to the Java 2 platform. But keep in mind that there probably are small differences, meaning that this version will not run all Java programs out there, but this is not confirmed yet.
I hade a problem to run the java compiler this seems not to be included in the package, to solve this I put a note on this at the Amiga FAQ-o-matic. and a while later I got this reply:
"I was also able to get this to work by installing the classes contained in the classes.zip, however, I only extracted those classes contained in the sun.tools package. The classes contained in the java.* packages were already in place and pre-translated into VP bytecode which presumably will perform better when used by other classes at runtime. I gather from the printed documentation that the included Java development environment is based on 1.1.6. So to be on the safe side I downloaded the JDK v1.1.6 from Blackdown (www.blackdown.com). Note that Sun is now distributing 1.3 (1.1.6 is over a year old now)."
Puting the sun/tools in your user cataloge will make then show up under the amiga environment. This worked for me. Now I manage to use the compiler to compile a simple Hello world kind of program. I alos used the translete tool to tranform the Hello.class file to VP code and the following showed up in a direcotory with the same name:
demo/example/j/Hello.java demo/example/j/Hello.class demo/example/j/Hello/class.00 demo/example/j/Hello/data.00 demo/example/j/Hello/fixup.00
To be sure that the transformed VP code was run I renamed Hello.class and typed
jcode demo/example/j/HelloAnd it still worked.
I manage to run the CaffeineMark 3.0 thanks to Softmetal (Vesa Tuomiare) at http://www.devicetop.com for pointing this test out for me. My test result was 3354, but his was little better at 7259 points.
| Linux Redhat 6.1 | Windows 98 | |||||
| Test | Amiga SDK 16bit | Amiga SDK 24bit | JDK 1.2.2 RC4 24bit | IBM 1.1.8 24 bit | Netscape | IE |
| Sieve: | 5974 | 5985 | 4770 | 7151 | 5033 | 5995 |
| Loop: | 13922 | 15404 | 6238 | 21874 | 14922 | 21859 |
| Logic: | 9440 | 9465 | 9366 | n/a | 8760 | 149630 |
| String: | 17133 | 16496 | 3558 | 8891 | 1059 | 4355 |
| Float: | 4669 | 5042 | 3486 | 17963 | 12416 | 24268 |
| Method: | 9694 | 9731 | 7153 | 17220 | 7161 | 9794 |
| Graphics: | 1115 | 600 | 1216 | 2089 | 969 | 907 |
| Image: | 2052 | 1310 | 181 | 977 | 638 | 593 |
| Dialog: | 340 | 97 | 153 | 161 | 208 | 303 |
| Total score: | 4271 | 3354 | 2111 | n/a | 2713 | 5301 |
| Comment: | I did not manage to run the test under kaffe, and under netscape it crached halfways. | |||||
From: Rudi Chiarito
To: amigasdk@zingo.org
I read your review of the SDK. There's a couple of things that I would
point out about CaffeineMark, which I learnt from Tao when I mailed them
similar results a few months ago:
a) Loop/Logic. One of the tests (or both, I can't recall the details
right now) is supposed to measure how good the JVM is at optimizing away
some redundant operations. Tao's JVM scores poorly at it (or, again, at
both) because in real life such optimizations are useless, as any decent
Java compiler will have already performed them when generating the
bytecode.
b) the x86 translator currently shipped is not optimized, as it's just a
development version (other translators are more mature and thus perform
better). In particular, the floating point code is sub-optimal and this
shows in the "Float" test. A new generation of the translator is in the
works and you should be able to get higher performance.
Furthermore, the difference between "SDK 16 bit" and "SDK 24bit" can be
explained, I think, by the fact that the SDK as shipped works on a 16bit
buffer (this is not a limitation, it's just the way it is configured by
default). On a 24bit setup, of course, this introduces a further step
when doing the final rendering to the X buffer. I suppose that you could
get better results in 24 bits if intent itself were configured to run at
the same colour depth (I haven't checked yet - too much work lately,
even for such a simple thing).
As to Netscape, it has one of the buggiest JVMs around. It crashes on me
at least four times a day. Sometimes I leave a window open on a page with
a Java scrolling banner and it crashes by itself after 30 minutes or
so. ;)
Thanks for listening. :)
Here is another test done by Denis Tumpic (dtumpic at devicetop.com) comparing Linux/Solaris and SUN/Elate and the JIT from IBM.
| Linux 2.2.12 XFree86 4.0 16 bit | Solaris 8 Xsun 8 bit | |||
| Test | Amiga SDK 1.1.6 | SUN JVM 2.0 | IBM JIT 2.0 | SUN JIT 2.0 |
| Sieve: | 4463 | 589 | 5746 | 3654 |
| Loop: | 11526 | 493 | 41197 | 7504 |
| Logic: | 6381 | 586 | 501884 | 8084 |
| String: | 13531 | 1001 | 17765 | 8591 |
| Float: | 3786 | 522 | 37979 | 4724 |
| Method: | 7297 | 548 | 20284 | 6046 |
| Graphics: | 858 | 951 | 1187 | 850 |
| Image: | 1644 | 128 | 170 | 97 |
| Dialog: | 273 | 141 | 113 | 163 |
| Total score: | 3306 | 457 | 6934 | 2080 |
Amiga 1.0:/$ speed VP MIOPS = 509.455904 VP MLOPS = 124.948903 VP MFOPS = 49.953047 VP MDOPS = 30.583368 Amiga 1.0:/$
I also decided to make a more numbercrunching test so I downloaded JavaLayer a MP3 decruncher from www.javazoom.net i used version 0.0.7.
| MP3 | Amiga SDK | Kaffe 1.0b4 | JDK 1.2.2 RC4 sunwjit | IBM 1.1.8 |
| frames | 8472 | 8472 | 8472 | 8472 |
| time (ms) | 194485 | 507670 | 632523 | 208635 |
| ms per frame | 22 | 59 | 74 | 24 |
I liked the documentation, I have only read a few pages, but the level of the documentation is perfect, it seems to explain rather complex thinks easy, that will be good both for the advanced user and the beginner. Remember that I have only read a few pages. I have not yet checked the manuals on the CD.
I got everything install very late yesterday so had only a few minutes to play with it, but in a mater of minutes I manage to find the freeball example (Boingball) it started the gfx and therefrom I manage to start all stuff as seen in the other screen shots from a menu. All the window effects are cool, I cant wait for the mp3-player skins.
I will start to test it more, like starting some java programs. Ill try to update this site soon. Right now I would like to test the same algorithm min both java and c and maybe in VP, on both linux native and inside the amiga environment. If you have any Idea for a small benchmark programs, please let me know. I you have some thing you like tested please let me know, but keep in mind that I does this on my free time and will only do things that I want and in my own speed.
Im a Computer Consultant working at Enea Realtime AB, mostly working with OSE (an RTOS) for customers. I have a long background from Amiga, I bought my first A500 in 1987, and still turns on my A4000 now and then. My education a degree in "Master of Science in Computer Science and Engineering" at University of Lund and LTH. Some of my old work can be found on my web site http://www.zingo.org.
You can mail me about this site at amigasdk@zingo.org.
http://www.amiga.com Amiga Inc
http://www.amiga.com/faq.html Amiga Inc Faq, with a lots of info on problems and solutions.
http://www.devicetop.com Nice page with some forums
http://www.amigactive.com Amiga Magazine
CaffeineMark 3.0 A Java test used.