{"id":418,"date":"2011-12-18T19:40:35","date_gmt":"2011-12-18T17:40:35","guid":{"rendered":"http:\/\/lallafa.de\/blog\/?p=418"},"modified":"2011-12-18T19:40:35","modified_gmt":"2011-12-18T17:40:35","slug":"building-a-real-project-on-vamos-running-sas-c","status":"publish","type":"post","link":"https:\/\/lallafa.de\/blog\/2011\/12\/building-a-real-project-on-vamos-running-sas-c\/","title":{"rendered":"Building a &#8220;real&#8221; Project on vamos running SAS C"},"content":{"rendered":"<p>In the last post I showed you that <a title=\"amitools\" href=\"http:\/\/lallafa.de\/blog\/amitools\/\">vamos<\/a> is already able to call the SAS C Compiler 6.58 and compile some example source files. In the last few days I added the missing parts to vamos to support smake, too. Namely, calling sub processes with SystemTagList() was added and lots of bugs fixed. With smake at hand I am able to compile some real SAS C projects with an smakefile describing the build.<\/p>\n<p>In this post I will show you how you can build the <a href=\"http:\/\/aminet.net\/comm\/net\/magPLIP38.1.lha\">magPLIP<\/a> network driver I used in my <a title=\"plip2slip\" href=\"http:\/\/lallafa.de\/blog\/plip2slip\/\">plip2slip<\/a> project directly on your Mac without using an Amiga machine emulator like P-UAE&#8230;<\/p>\n<h3><!--more-->1. Setup Build Environment<\/h3>\n<ul>\n<li>I assume that you have installed the SAS C compiler ready to use for vamos as described in my <a title=\"Running the Amiga SAS C 6.58 compiler with vamos\" href=\"http:\/\/lallafa.de\/blog\/2011\/12\/running-the-amiga-sas-c-6-58-compiler-with-vamos\/\">last post<\/a><\/li>\n<li>The netword driver we will compile needs the Amiga Network Driver Includes (i.e. SANA-II headers)\n<ul>\n<li>Download the <a href=\"http:\/\/aminet.net\/comm\/tcp\/AmiTCP-SDK-4.3.lha\">AmiTCP-SDK-4.3.lha<\/a> from aminet<\/li>\n<li>You can unpack it on your Mac with the lha command available in <a href=\"http:\/\/www.macports.org\/\">MacPorts<\/a> (call: <strong>sudo port install lha<\/strong> if the tool is still missing on your machine):<\/li>\n<\/ul>\n<\/li>\n<pre>&gt; cd ~\/amiga\/src\r\n&gt; lha x ~\/Downloads\/AmiTCP-SDK-4.3.lha<\/pre>\n<\/ul>\n<ul>\n<li>Now we need to setup assigns in vamos so the build can reach the new network includes. My <strong>~\/.vamosrc<\/strong> config file looks like this:<\/li>\n<\/ul>\n<pre>[volumes]\r\nwb310=~\/amiga\/wb310\r\nsc=~\/amiga\/shared\/sc\r\nnet=~\/amiga\/src\/AmiTCP-SDK-4.3\r\n\r\n[assigns]\r\ninclude=sc:include\r\nlib=sc:lib\r\nt=root:tmp\r\nc=wb310:c\r\nnetinclude=net:netinclude\r\nnetlib=net:netlib\r\nincludeasm=sc:include\r\n\r\n[path]\r\npath=sc:c,wb310:c\r\n\r\n[vamos]\r\nquiet=True\r\nram_size=2048<\/pre>\n<p>What&#8217;s new here?<\/p>\n<ul>\n<li>First I added a new volume in vamos called <strong>net:<\/strong> where the SANA-II includes reside. It points to the native path we just unpacked.<\/li>\n<li>Some new assigns were added: <strong>netinclude<\/strong> and <strong>netlib<\/strong> point inside our new net: volume<\/li>\n<li>Another assign called <strong>includeasm:<\/strong> was necessary as the following build requires it. It simply points directly to the include directory in the SAS C installation.<\/li>\n<li>Finally, a new section called <strong>vamos<\/strong> was introduced. This section holds defaults for common option that were currently only available via command line:\n<ul>\n<li>The <strong>quiet<\/strong> switch is similar to the -q command line option and suppresses information about un-implemented Amiga OS calls in vamos<\/li>\n<li>The <strong>ram_size<\/strong> sets the RAM for the AmigaOS emulation of vamos to 2 MiB. Similar to the -m command line option. This ensures that we do not run out of memory during compilation.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h3>2. Grab the Source<\/h3>\n<ul>\n<li>Next we download the source for <a title=\"magPLIP38.1\" href=\"http:\/\/aminet.net\/comm\/net\/magPLIP38.1.lha\">magPLIP<\/a> from aminet<\/li>\n<li>I unpacked the source in a build directory:<\/li>\n<\/ul>\n<pre>&gt; mkdir ~\/build\r\n&gt; cd build\r\n&gt; lha x ~\/magPLIP38.1.lha\r\n&gt; ls\r\nmagplip\/\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 magplip.info<\/pre>\n<ul>\n<li>I also downloaded the <a href=\"https:\/\/www.lallafa.de\/files\/plip2slip\/plip2slip-0.1.zip\">plip2slip-0.1<\/a> source archive because it contains a patch for the driver we are going to build<\/li>\n<li>Unpack this, too:<\/li>\n<\/ul>\n<pre>&gt; unzip ~\/Downloads\/plip2slip-0.1.zip\r\n&gt; ls\r\nmagplip\/\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 magplip.info\u00c2\u00a0\u00c2\u00a0 plip2slip-0.1\/<\/pre>\n<ul>\n<li>Next, we patch the source:<\/li>\n<\/ul>\n<pre>&gt; patch -p0 &lt; plip2slip-0.1\/contrib\/magplip\/magplip.patch \r\npatching file magplip\/source\/magplip_rev.h\r\npatching file magplip\/source\/magplip_rev.i\r\npatching file magplip\/source\/magport.asm\r\npatching file magplip\/source\/server.c\r\npatching file magplip\/source\/smakefile<\/pre>\n<ul>\n<li>That&#8217;s it, now the source is ready to be compiled!<\/li>\n<\/ul>\n<h3>3. Perform the Build<\/h3>\n<ul>\n<li>The build itself is now rather unspectacular&#8230; It simply works \ud83d\ude42<\/li>\n<\/ul>\n<pre>&gt; cd magplip\/source\r\n&gt; vamos smake all_opt\r\nSAS\/C_SMAKE 6.58 (27.12.96)\r\nCopyright (c) 1988-1995 SAS Institute, Inc.\r\n sc:c\/sc INCDIR=\"INCLUDEASM:\" INCDIR=\"include:\" INCDIR=\"netinclude:\" VERBOSE DEFINE MAGPLIP=1 OBJECTNAME MAGrt.o rt.asm\r\nNo default scoptions file found\r\nSAS\/C Amiga Compiler 6.58\r\nCopyright (c) 1988-1995 SAS Institute Inc.\r\n\r\nasm \"-dMAGPLIP=1\" -iINCLUDEASM: -iinclude: -inetinclude: -oMAGrt.o rt.asm\r\n...\r\n\r\nSLINK Complete - Maximum code size = 8824 ($00002278) bytes\r\n\r\nFinal output file size = 8940 ($000022ec) bytes\r\n<\/pre>\n<ul>\n<li>If everything went fine then the resulting binary resides in the <strong>magplip\/devs\/networks<\/strong> folder:<\/li>\n<\/ul>\n<pre>&gt; ls ..\/devs\/networks\/magplip.device.000\r\n-rwxr-xr-x\u00c2\u00a0 1 chris\u00c2\u00a0 staff\u00c2\u00a0 8940 18 Dez 18:16 ..\/devs\/networks\/magplip.device.000*<\/pre>\n<ul>\n<li>Ah! A fresh build of the driver&#8230; Now let&#8217;s create a 68020 version, too:<\/li>\n<\/ul>\n<pre>&gt; vamos smake CPUSUFFIX=020 all_opt\r\n...\r\n&gt; ls ..\/devs\/networks\/magplip.device.020\r\n-rwxr-xr-x\u00c2\u00a0 1 chris\u00c2\u00a0 staff\u00c2\u00a0 8872 18 Dez 18:21 ..\/devs\/networks\/magplip.device.020*<\/pre>\n<ul>\n<li>Finally, you can compare your new builds with the reference compiles I did on P-UAE and that are available in the plip2slip release:<\/li>\n<\/ul>\n<pre>&gt; cmp ..\/devs\/networks\/magplip.device.000 ..\/..\/plip2slip-0.1\/contrib\/magplip\/magplip.device.000\r\n&gt; cmp ..\/devs\/networks\/magplip.device.020 ..\/..\/plip2slip-0.1\/contrib\/magplip\/magplip.device.020<\/pre>\n<ul>\n<li>It really works! Same output generated on vamos!!<\/li>\n<li>Now its time to read the plip2slip docs on how to actually use the driver on your real machine&#8230;<\/li>\n<\/ul>\n<h3>4. Some additional Notes<\/h3>\n<ul>\n<li>While vamos now supports the typical builds on SAS C even with smakefiles, there are still things missing. Most notably, the internal Shell commands like Echo are not emulated yet. So the default\/help rule in our project&#8217;s smakefile does not work. But the internal Shell commands and a more complete support for the typical CLI commands will be the next on my TODO list&#8230;<\/li>\n<li>Compared to last vamos versions I optimized the loading of native libraries (most notably sc1.library and sc2.library of sc) and that gave a real speed boost when calling the compiler.<\/li>\n<li>To better judge where the bottlenecks in the vamos emulation are, I added <strong>profiling support<\/strong> for the library calls. You can use the new <strong>-P<\/strong> switch and give the libraries you want to get detailed information for:<\/li>\n<\/ul>\n<pre>&gt; vamos smake clean # first clean our build again\r\n...\r\n&gt; vamos -v -P exec,dos smake all_opt # now build with profiling on\r\n...\r\n18:34:09.103\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 prof:\u00c2\u00a0\u00c2\u00a0 INFO:\u00c2\u00a0 'dos.library' Function Call Profile\r\n18:34:09.103\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 prof:\u00c2\u00a0\u00c2\u00a0 INFO:\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 Close: #\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 251\u00c2\u00a0 total=\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 0.0115\u00c2\u00a0 per call=\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 0.0000\r\n18:34:09.103\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 prof:\u00c2\u00a0\u00c2\u00a0 INFO:\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 CurrentDir: #\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 45\u00c2\u00a0 total=\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 0.0009\u00c2\u00a0 per call=\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 0.0000\r\n18:34:09.103\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 prof:\u00c2\u00a0\u00c2\u00a0 INFO:\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 DateStamp: #\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 9\u00c2\u00a0 total=\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 0.0005\u00c2\u00a0 per call=\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 0.0001\r\n18:34:09.103\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 prof:\u00c2\u00a0\u00c2\u00a0 INFO:\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 DeleteFile: #\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 12\u00c2\u00a0 total=\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 0.0033\u00c2\u00a0 per call=\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 0.0003\r\n18:34:09.103\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 prof:\u00c2\u00a0\u00c2\u00a0 INFO:\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 DupLock: #\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 3\u00c2\u00a0 total=\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 0.0003\u00c2\u00a0 per call=\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 0.0001\r\n18:34:09.103\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 prof:\u00c2\u00a0\u00c2\u00a0 INFO:\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 Examine: #\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 85\u00c2\u00a0 total=\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 0.0158\u00c2\u00a0 per call=\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 0.0002\r\n18:34:09.104\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 prof:\u00c2\u00a0\u00c2\u00a0 INFO:\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 FilePart: #\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 3\u00c2\u00a0 total=\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 0.0002\u00c2\u00a0 per call=\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 0.0001\r\n18:34:09.104\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 prof:\u00c2\u00a0\u00c2\u00a0 INFO:\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 FreeArgs: #\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 6\u00c2\u00a0 total=\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 0.0017\u00c2\u00a0 per call=\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 0.0003\r\n18:34:09.104\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 prof:\u00c2\u00a0\u00c2\u00a0 INFO:\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 FreeDeviceProc: #\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 3\u00c2\u00a0 total=\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 0.0005\u00c2\u00a0 per call=\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 0.0002\r\n18:34:09.104\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 prof:\u00c2\u00a0\u00c2\u00a0 INFO:\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 GetDeviceProc: #\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 3\u00c2\u00a0 total=\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 0.0008\u00c2\u00a0 per call=\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 0.0003\r\n18:34:09.104\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 prof:\u00c2\u00a0\u00c2\u00a0 INFO:\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 Input: #\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 20\u00c2\u00a0 total=\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 0.0001\u00c2\u00a0 per call=\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 0.0000\r\n18:34:09.104\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 prof:\u00c2\u00a0\u00c2\u00a0 INFO:\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 IoErr: #\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 94\u00c2\u00a0 total=\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 0.0006\u00c2\u00a0 per call=\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 0.0000\r\n18:34:09.104\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 prof:\u00c2\u00a0\u00c2\u00a0 INFO:\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 Lock: #\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 77\u00c2\u00a0 total=\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 0.0163\u00c2\u00a0 per call=\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 0.0002\r\n18:34:09.104\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 prof:\u00c2\u00a0\u00c2\u00a0 INFO:\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 MatchEnd: #\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 6\u00c2\u00a0 total=\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 0.0019\u00c2\u00a0 per call=\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 0.0003\r\n18:34:09.104\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 prof:\u00c2\u00a0\u00c2\u00a0 INFO:\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 MatchFirst: #\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 6\u00c2\u00a0 total=\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 0.0055\u00c2\u00a0 per call=\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 0.0009\r\n18:34:09.104\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 prof:\u00c2\u00a0\u00c2\u00a0 INFO:\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 MatchNext: #\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 6\u00c2\u00a0 total=\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 0.0002\u00c2\u00a0 per call=\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 0.0000\r\n18:34:09.104\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 prof:\u00c2\u00a0\u00c2\u00a0 INFO:\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 Open: #\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 352\u00c2\u00a0 total=\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 0.0850\u00c2\u00a0 per call=\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 0.0002\r\n18:34:09.104\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 prof:\u00c2\u00a0\u00c2\u00a0 INFO:\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 Output: #\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 37\u00c2\u00a0 total=\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 0.0003\u00c2\u00a0 per call=\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 0.0000\r\n18:34:09.104\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 prof:\u00c2\u00a0\u00c2\u00a0 INFO:\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 ParentDir: #\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 62\u00c2\u00a0 total=\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 0.0061\u00c2\u00a0 per call=\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 0.0001\r\n18:34:09.104\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 prof:\u00c2\u00a0\u00c2\u00a0 INFO:\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 ParsePattern: #\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 3\u00c2\u00a0 total=\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 0.0006\u00c2\u00a0 per call=\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 0.0002\r\n18:34:09.104\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 prof:\u00c2\u00a0\u00c2\u00a0 INFO:\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 PutStr: #\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 9\u00c2\u00a0 total=\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 0.0005\u00c2\u00a0 per call=\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 0.0001\r\n18:34:09.104\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 prof:\u00c2\u00a0\u00c2\u00a0 INFO:\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 Read: #\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 617\u00c2\u00a0 total=\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 0.0273\u00c2\u00a0 per call=\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 0.0000\r\n18:34:09.105\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 prof:\u00c2\u00a0\u00c2\u00a0 INFO:\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 ReadArgs: #\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 6\u00c2\u00a0 total=\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 0.0038\u00c2\u00a0 per call=\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 0.0006\r\n18:34:09.105\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 prof:\u00c2\u00a0\u00c2\u00a0 INFO:\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 Rename: #\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 3\u00c2\u00a0 total=\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 0.0013\u00c2\u00a0 per call=\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 0.0004\r\n18:34:09.105\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 prof:\u00c2\u00a0\u00c2\u00a0 INFO:\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 Seek: #\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 155\u00c2\u00a0 total=\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 0.0048\u00c2\u00a0 per call=\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 0.0000\r\n18:34:09.105\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 prof:\u00c2\u00a0\u00c2\u00a0 INFO:\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 SetIoErr: #\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 3\u00c2\u00a0 total=\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 0.0000\u00c2\u00a0 per call=\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 0.0000\r\n18:34:09.105\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 prof:\u00c2\u00a0\u00c2\u00a0 INFO:\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 SetProtection: #\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 4\u00c2\u00a0 total=\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 0.0009\u00c2\u00a0 per call=\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 0.0002\r\n18:34:09.105\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 prof:\u00c2\u00a0\u00c2\u00a0 INFO:\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 SystemTagList: #\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 16\u00c2\u00a0 total=\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 0.0486\u00c2\u00a0 per call=\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 0.0030\r\n18:34:09.105\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 prof:\u00c2\u00a0\u00c2\u00a0 INFO:\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 UnLock: #\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 108\u00c2\u00a0 total=\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 0.0026\u00c2\u00a0 per call=\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 0.0000\r\n18:34:09.105\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 prof:\u00c2\u00a0\u00c2\u00a0 INFO:\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 Write: #\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 277\u00c2\u00a0 total=\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 0.0152\u00c2\u00a0 per call=\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 0.0001\r\n18:34:09.105\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 prof:\u00c2\u00a0\u00c2\u00a0 INFO:\u00c2\u00a0 sum total=0.2570\r\n18:34:09.105\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 main:\u00c2\u00a0\u00c2\u00a0 INFO:\u00c2\u00a0 done 3218549052 cycles in host time 14.9556s -&gt; 174.60 MHz m68k CPU\r\n18:34:09.106\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 main:\u00c2\u00a0\u00c2\u00a0 INFO:\u00c2\u00a0 code time 14.9556s (81.13 %), trap time 3.4781s (18.87 %) -&gt; total time 18.4337s\r\n18:34:09.106\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 main:\u00c2\u00a0\u00c2\u00a0 INFO:\u00c2\u00a0 exit code=0\r\n18:34:09.107\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 prof:\u00c2\u00a0\u00c2\u00a0 INFO:\u00c2\u00a0 'exec.library' Function Call Profile\r\n18:34:09.107\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 prof:\u00c2\u00a0\u00c2\u00a0 INFO:\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 AllocMem: #\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 1266\u00c2\u00a0 total=\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 0.1440\u00c2\u00a0 per call=\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 0.0001\r\n18:34:09.107\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 prof:\u00c2\u00a0\u00c2\u00a0 INFO:\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 AllocVec: #\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 39\u00c2\u00a0 total=\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 0.0024\u00c2\u00a0 per call=\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 0.0001\r\n18:34:09.107\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 prof:\u00c2\u00a0\u00c2\u00a0 INFO:\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 CloseLibrary: #\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 85\u00c2\u00a0 total=\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 0.0129\u00c2\u00a0 per call=\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 0.0002\r\n18:34:09.107\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 prof:\u00c2\u00a0\u00c2\u00a0 INFO:\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 FindTask: #\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 137\u00c2\u00a0 total=\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 0.0024\u00c2\u00a0 per call=\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 0.0000\r\n18:34:09.107\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 prof:\u00c2\u00a0\u00c2\u00a0 INFO:\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 Forbid: #\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 137\u00c2\u00a0 total=\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 0.0004\u00c2\u00a0 per call=\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 0.0000\r\n18:34:09.107\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 prof:\u00c2\u00a0\u00c2\u00a0 INFO:\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 FreeMem: #\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 1318\u00c2\u00a0 total=\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 0.4038\u00c2\u00a0 per call=\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 0.0003\r\n18:34:09.107\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 prof:\u00c2\u00a0\u00c2\u00a0 INFO:\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 FreeVec: #\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 39\u00c2\u00a0 total=\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 0.0059\u00c2\u00a0 per call=\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 0.0002\r\n18:34:09.107\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 prof:\u00c2\u00a0\u00c2\u00a0 INFO:\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 GetMsg: #\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 650\u00c2\u00a0 total=\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 0.0082\u00c2\u00a0 per call=\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 0.0000\r\n18:34:09.107\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 prof:\u00c2\u00a0\u00c2\u00a0 INFO:\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 OpenLibrary: #\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 85\u00c2\u00a0 total=\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 0.1304\u00c2\u00a0 per call=\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 0.0015\r\n18:34:09.107\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 prof:\u00c2\u00a0\u00c2\u00a0 INFO:\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 Permit: #\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 137\u00c2\u00a0 total=\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 0.0004\u00c2\u00a0 per call=\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 0.0000\r\n18:34:09.107\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 prof:\u00c2\u00a0\u00c2\u00a0 INFO:\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 PutMsg: #\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 650\u00c2\u00a0 total=\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 0.0794\u00c2\u00a0 per call=\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 0.0001\r\n18:34:09.108\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 prof:\u00c2\u00a0\u00c2\u00a0 INFO:\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 RawDoFmt: #\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 11\u00c2\u00a0 total=\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 0.0006\u00c2\u00a0 per call=\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 0.0001\r\n18:34:09.108\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 prof:\u00c2\u00a0\u00c2\u00a0 INFO:\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 SetSignal: #\u00c2\u00a0 103942\u00c2\u00a0 total=\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 0.9651\u00c2\u00a0 per call=\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 0.0000\r\n18:34:09.108\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 prof:\u00c2\u00a0\u00c2\u00a0 INFO:\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 StackSwap: #\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 34\u00c2\u00a0 total=\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 0.0030\u00c2\u00a0 per call=\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 0.0001\r\n18:34:09.108\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 prof:\u00c2\u00a0\u00c2\u00a0 INFO:\u00c2\u00a0 sum total=1.7587\r\n<\/pre>\n<ul>\n<li>That&#8217;s it for today! Enjoy vamos and if you already use it for doing your own &#8220;cross&#8221;-compiles then I&#8217;d really like to hear from your projects&#8230;<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>In the last post I showed you that vamos is already able to call the SAS C Compiler 6.58 and compile some example source files. In the last few days I added the missing parts to vamos to support smake, &hellip; <a href=\"https:\/\/lallafa.de\/blog\/2011\/12\/building-a-real-project-on-vamos-running-sas-c\/\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"ngg_post_thumbnail":0,"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[11,6,9,12],"tags":[],"class_list":["post-418","post","type-post","status-publish","format-standard","hentry","category-amiga","category-mac-stuff","category-software","category-vamos"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_shortlink":"https:\/\/wp.me\/piBMF-6K","jetpack_sharing_enabled":true,"jetpack_likes_enabled":true,"jetpack-related-posts":[],"_links":{"self":[{"href":"https:\/\/lallafa.de\/blog\/wp-json\/wp\/v2\/posts\/418","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/lallafa.de\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/lallafa.de\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/lallafa.de\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/lallafa.de\/blog\/wp-json\/wp\/v2\/comments?post=418"}],"version-history":[{"count":9,"href":"https:\/\/lallafa.de\/blog\/wp-json\/wp\/v2\/posts\/418\/revisions"}],"predecessor-version":[{"id":427,"href":"https:\/\/lallafa.de\/blog\/wp-json\/wp\/v2\/posts\/418\/revisions\/427"}],"wp:attachment":[{"href":"https:\/\/lallafa.de\/blog\/wp-json\/wp\/v2\/media?parent=418"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/lallafa.de\/blog\/wp-json\/wp\/v2\/categories?post=418"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/lallafa.de\/blog\/wp-json\/wp\/v2\/tags?post=418"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}