summaryrefslogtreecommitdiff
path: root/README
diff options
context:
space:
mode:
Diffstat (limited to 'README')
-rw-r--r--README90
1 files changed, 90 insertions, 0 deletions
diff --git a/README b/README
new file mode 100644
index 0000000..b0deab2
--- /dev/null
+++ b/README
@@ -0,0 +1,90 @@
+Embryo 1.7.0
+
+******************************************************************************
+
+ FOR ANY ISSUES PLEASE EMAIL:
+ enlightenment-devel@lists.sourceforge.net
+
+******************************************************************************
+
+Requirements:
+-------------
+
+Must:
+ eina
+ libc
+
+WARNING: gcc compatibility!!!
+There seems to be some bug (or disagreement) between embryo and gcc 3.2.x
+where IEEE floating point format encoding does not "agree" with embryo's own
+hand-made tests. embryo_cc may not work if you compile using gcc 3.2.x. gcc
+3.3.x is known to work fine. we are not 100% sure whose fault this is yet, so
+we won't be jumping up and down, but be warned - gcc 3.2.x does not agree
+with embryo.
+
+To view the API docs, run ./gendoc and view doc/html/index.html.
+
+OK a lot of people ask this. What is Embryo?
+
+Embryo is primarily a shared library that gives you an API to load and control
+interpreted programs compiled into an abstract machine bytecode that it
+understands. This abstract (or virtual) machine is similar to a real machine
+with a CPU, but it is emulated in software. The architecture is simple and is
+the same as the abstract machine (AMX) in the
+<a href=http://www.compuphase.com/pawn>PAWN</a> language (formerly called
+SMALL) as it is based on exactly the same code. Embryo has modified the code
+for the AMX extensively and has made it smaller and more portable. It is VERY
+small. The total size of the virtual machine code AND header files is less
+than 2500 lines of code. It includes the floating point library support by
+default as well. This makes it one of the smallest interpreters around, and
+thus makes is very efficient to use in code.
+
+Embryo also uses the PAWN compiler from the same code base. This code has
+barely been touched and so suffers from lots of portability issues. It has
+been partially fixed and now works on both big and little endian but the code
+still need to be gone over and really cleaned up . It does work, but it's only
+just working. It has been called embryo_cc and compiled a subset of PAWN
+binary outputs. It does not support packed strings, variable alignment, or
+debugging output. It does not support many features of the full PAWN
+compiler because the Embryo AMX does not support these either. You will find
+the Embryo codebase to work much better on Linux (and BSD and MacOS X) and
+other UNIX operating systems as it has been developed and tested on them. IT
+is known to work on:
+ gcc Linux (x86-32)
+ gcc Linux (PPC)
+ gcc MacOS X (PPC)
+
+And will likely work on more combinations. IT currently has problems on 64bit
+SPARC CPUs. Other 64bit systems are untested. It is the aim to fix the code
+so it works on all commonly used architectures (32, 64bit, big and little
+endian, alignment forgiving/unforgiving). So far 64bit support is the major
+issue.
+
+For more documentation please see the Language guide here:
+
+<a href=http://www.compuphase.com/pawn>Pawn Language Booklet</a>
+
+This documents the PAWN language and is 100% relevant for Embryo and the
+syntax of files it can compile (.sma files).
+
+Any help is appreciated in helping clean and port this code, so feel free to
+send patches to the Enlightenment development lists.
+
+The main aim of Embryo is to provide an easy to use library for running
+compiled PAWN programs and giving them access to the calling program and
+any API it exports to the PAWN script. PAWN programs/scripts are completely
+sand-boxed. They cannot access any system or function calls other than the
+ones provided by the calling application to the Embryo API. This means a
+PAWN script cannot open or write to, delete or load files. It is fairly
+harmless and this also keeps Embryo small.
+
+This is a work in progress, so please be patient if things don't work for you
+- and patches and help in fixing it is very much appreciated.
+
+------------------------------------------------------------------------------
+COMPILING AND INSTALLING:
+
+ ./configure
+ make
+(as root unless you are installing in your users directories):
+ make install