{"id":13782919,"url":"https://github.com/jordemort/embryo","last_synced_at":"2025-05-15T18:11:54.696Z","repository":{"id":71300451,"uuid":"11677325","full_name":"jordemort/embryo","owner":"jordemort","description":"SMALL-based abstract machine (AMX) bytecode interpreter","archived":false,"fork":false,"pushed_at":"2013-07-26T04:06:08.000Z","size":3464,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-05-10T09:52:37.595Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jordemort.png","metadata":{"files":{"readme":"README","changelog":"ChangeLog","contributing":null,"funding":null,"license":"COPYING","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2013-07-26T04:05:29.000Z","updated_at":"2018-08-27T22:21:32.000Z","dependencies_parsed_at":"2023-02-21T15:30:56.305Z","dependency_job_id":null,"html_url":"https://github.com/jordemort/embryo","commit_stats":null,"previous_names":[],"tags_count":24,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jordemort%2Fembryo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jordemort%2Fembryo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jordemort%2Fembryo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jordemort%2Fembryo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jordemort","download_url":"https://codeload.github.com/jordemort/embryo/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254394726,"owners_count":22063984,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-03T18:01:48.029Z","updated_at":"2025-05-15T18:11:54.678Z","avatar_url":"https://github.com/jordemort.png","language":"C","funding_links":[],"categories":["C"],"sub_categories":[],"readme":"Embryo 1.7.4\n\n******************************************************************************\n\n FOR ANY ISSUES PLEASE EMAIL:\n enlightenment-devel@lists.sourceforge.net\n  \n******************************************************************************\n  \nRequirements:\n-------------\n\nMust:\n  eina\n  libc\n\nWARNING: gcc compatibility!!!\nThere seems to be some bug (or disagreement) between embryo and gcc 3.2.x\nwhere IEEE floating point format encoding does not \"agree\" with embryo's own\nhand-made tests. embryo_cc may not work if you compile using gcc 3.2.x. gcc\n3.3.x is known to work fine. we are not 100% sure whose fault this is yet, so\nwe won't be jumping up and down, but be warned - gcc 3.2.x does not agree\nwith embryo.\n\nTo view the API docs, run ./gendoc and view doc/html/index.html.\n\nOK a lot of people ask this. What is Embryo?\n\nEmbryo is primarily a shared library that gives you an API to load and control\ninterpreted programs compiled into an abstract machine bytecode that it\nunderstands.  This abstract (or virtual) machine is similar to a real machine\nwith a CPU, but it is emulated in software.  The architecture is simple and is\nthe same as the abstract machine (AMX) in the \n\u003ca href=http://www.compuphase.com/pawn\u003ePAWN\u003c/a\u003e language (formerly called\nSMALL) as it is based on exactly the same code. Embryo has modified the code\nfor the AMX extensively and has made it smaller and more portable.  It is VERY\nsmall.  The total size of the virtual machine code AND header files is less\nthan 2500 lines of code.  It includes the floating point library support by\ndefault as well.  This makes it one of the smallest interpreters around, and\nthus makes is very efficient to use in code.\n\nEmbryo also uses the PAWN compiler from the same code base. This code has\nbarely been touched and so suffers from lots of portability issues. It has\nbeen partially fixed and now works on both big and little endian but the code\nstill need to be gone over and really cleaned up . It does work, but it's only\njust working.  It has been called embryo_cc and compiled a subset of PAWN\nbinary outputs.  It does not support packed strings, variable alignment, or\ndebugging output.  It does not support many features of the full PAWN\ncompiler because the Embryo AMX does not support these either. You will find\nthe Embryo codebase to work much better on Linux (and BSD and MacOS X) and\nother UNIX operating systems as it has been developed and tested on them. IT\nis known to work on:\n  gcc Linux   (x86-32)\n  gcc Linux   (PPC)\n  gcc MacOS X (PPC)\n\nAnd will likely work on more combinations. IT currently has problems on 64bit\nSPARC CPUs. Other 64bit systems are untested. It is the aim to fix the code\nso it works on all commonly used architectures (32, 64bit, big and little\nendian, alignment forgiving/unforgiving).  So far 64bit support is the major\nissue.\n\nFor more documentation please see the Language guide here:\n\n\u003ca href=http://www.compuphase.com/pawn\u003ePawn Language Booklet\u003c/a\u003e\n  \nThis documents the PAWN language and is 100% relevant for Embryo and the\nsyntax of files it can compile (.sma files).\n\nAny help is appreciated in helping clean and port this code, so feel free to\nsend patches to the Enlightenment development lists.\n\nThe main aim of Embryo is to provide an easy to use library for running\ncompiled PAWN programs and giving them access to the calling program and\nany API it exports to the PAWN script.  PAWN programs/scripts are completely\nsand-boxed. They cannot access any system or function calls other than the\nones provided by the calling application to the Embryo API. This means a\nPAWN script cannot open or write to, delete or load files. It is fairly\nharmless and this also keeps Embryo small.\n\nThis is a work in progress, so please be patient if things don't work for you\n- and patches and help in fixing it is very much appreciated.\n\n------------------------------------------------------------------------------\nCOMPILING AND INSTALLING:\n\n  ./configure\n  make\n(as root unless you are installing in your users directories):\n  make install\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjordemort%2Fembryo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjordemort%2Fembryo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjordemort%2Fembryo/lists"}