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