summaryrefslogtreecommitdiff
path: root/old/README.embryo
diff options
context:
space:
mode:
authorVincent Torri <vincent.torri@gmail.com>2012-10-26 09:01:52 +0000
committerVincent Torri <vincent.torri@gmail.com>2012-10-26 09:01:52 +0000
commit5bdb5d376373dab8bf624388cac520094be95b63 (patch)
treee494c3a000eeb506e63cd55a77f310767633e0d8 /old/README.embryo
parent124e0d4afdff0937d8be8014f4dea5f78aa9f76f (diff)
merge: add embryo
please check and report problems (not cosmetic ones) someone should update the efl.spec.in file, i don't know that stuff SVN revision: 78512
Diffstat (limited to 'old/README.embryo')
-rw-r--r--old/README.embryo90
1 files changed, 90 insertions, 0 deletions
diff --git a/old/README.embryo b/old/README.embryo
new file mode 100644
index 0000000000..a434404b2c
--- /dev/null
+++ b/old/README.embryo
@@ -0,0 +1,90 @@
1Embryo 1.7.99
2
3******************************************************************************
4
5 FOR ANY ISSUES PLEASE EMAIL:
6 enlightenment-devel@lists.sourceforge.net
7
8******************************************************************************
9
10Requirements:
11-------------
12
13Must:
14 eina
15 libc
16
17WARNING: gcc compatibility!!!
18There seems to be some bug (or disagreement) between embryo and gcc 3.2.x
19where IEEE floating point format encoding does not "agree" with embryo's own
20hand-made tests. embryo_cc may not work if you compile using gcc 3.2.x. gcc
213.3.x is known to work fine. we are not 100% sure whose fault this is yet, so
22we won't be jumping up and down, but be warned - gcc 3.2.x does not agree
23with embryo.
24
25To view the API docs, run ./gendoc and view doc/html/index.html.
26
27OK a lot of people ask this. What is Embryo?
28
29Embryo is primarily a shared library that gives you an API to load and control
30interpreted programs compiled into an abstract machine bytecode that it
31understands. This abstract (or virtual) machine is similar to a real machine
32with a CPU, but it is emulated in software. The architecture is simple and is
33the same as the abstract machine (AMX) in the
34<a href=http://www.compuphase.com/pawn>PAWN</a> language (formerly called
35SMALL) as it is based on exactly the same code. Embryo has modified the code
36for the AMX extensively and has made it smaller and more portable. It is VERY
37small. The total size of the virtual machine code AND header files is less
38than 2500 lines of code. It includes the floating point library support by
39default as well. This makes it one of the smallest interpreters around, and
40thus makes is very efficient to use in code.
41
42Embryo also uses the PAWN compiler from the same code base. This code has
43barely been touched and so suffers from lots of portability issues. It has
44been partially fixed and now works on both big and little endian but the code
45still need to be gone over and really cleaned up . It does work, but it's only
46just working. It has been called embryo_cc and compiled a subset of PAWN
47binary outputs. It does not support packed strings, variable alignment, or
48debugging output. It does not support many features of the full PAWN
49compiler because the Embryo AMX does not support these either. You will find
50the Embryo codebase to work much better on Linux (and BSD and MacOS X) and
51other UNIX operating systems as it has been developed and tested on them. IT
52is known to work on:
53 gcc Linux (x86-32)
54 gcc Linux (PPC)
55 gcc MacOS X (PPC)
56
57And will likely work on more combinations. IT currently has problems on 64bit
58SPARC CPUs. Other 64bit systems are untested. It is the aim to fix the code
59so it works on all commonly used architectures (32, 64bit, big and little
60endian, alignment forgiving/unforgiving). So far 64bit support is the major
61issue.
62
63For more documentation please see the Language guide here:
64
65<a href=http://www.compuphase.com/pawn>Pawn Language Booklet</a>
66
67This documents the PAWN language and is 100% relevant for Embryo and the
68syntax of files it can compile (.sma files).
69
70Any help is appreciated in helping clean and port this code, so feel free to
71send patches to the Enlightenment development lists.
72
73The main aim of Embryo is to provide an easy to use library for running
74compiled PAWN programs and giving them access to the calling program and
75any API it exports to the PAWN script. PAWN programs/scripts are completely
76sand-boxed. They cannot access any system or function calls other than the
77ones provided by the calling application to the Embryo API. This means a
78PAWN script cannot open or write to, delete or load files. It is fairly
79harmless and this also keeps Embryo small.
80
81This is a work in progress, so please be patient if things don't work for you
82- and patches and help in fixing it is very much appreciated.
83
84------------------------------------------------------------------------------
85COMPILING AND INSTALLING:
86
87 ./configure
88 make
89(as root unless you are installing in your users directories):
90 make install