This is an implementation of Emerald with an added welcome
expression and node discovery mechanism.
Report.pdf
is an edited version of the report containing the new language additions.Welcome_user_guide.pfd
is a detailed document explaining the additions.
- The
welcome
expression - The
welcomable
object prefix - The
mergeWith
-operation in the builtinNode
-object - The
setDiscoveredNodeEventHandler
-operation in theNode
-object - The
getDiscoveredNodes
-operation in theNode
-object - The
getAllDiscoveredNodes
-operation in theNode
-object - Run emx with the option
-D
to make a node discoverable - The debugging-traces
welcome
anddiscovery
make
csh
- 32-bit version of glibc
ed
,sed
,sh
,awk
Tested with:
- intel 64 bit and ARMv7l (32 bit) CPU
- Linux: Debian, Raspbian and WSL2 with Debian and Ubuntu. Also tested on PlanetLab with computers running Fedora 25.
- EMERALDARCH set to i386linux (for 32 bit), x86_64linux (for 64 bit) and armv7l (Raspberry Pi)
Extract and place your emerald project folder where you want to install it.
Copy the following to your ~/.bashrc
file.
EMERALDROOT=PATH/TO/emerald ; export EMERALDROOT
EMERALDARCH=[YOUR ARCH] ; export EMERALDARCH
PATH=$PATH:/$EMERALDROOT/bin/$EMERALDARCH:$EMERALDROOT/bin
-
Valid options for
EMERALDARCH
are equal to the directory names underbin/
andlib/
. -
NOTE: If you have previously installed a version of Emerald, make sure that your changes in
.bashrc
has taken effect ( doestype ec/emx
give a path to your new EMERALDROOT folder?).
- In the Emerald root directory run
make build
. This will compile the Emerald vm. This copy of Emerald also features a stable version of the compiler. emx
: run the Emerald vmec
: run a stable compiler
To compile single parts of Emerald alone, look at the instructions below.
- Navigate to
vm/
and and create a new directory with the same name as$EMERALDARCH
. Navigate to this new directory. - Copy the makefile from
vm/src
into the new dir and create the links:
cp ../src/Makefile . ; emmake links
- Navigate to
ccalls/
and compile the library:
emmake install
- Navigate to vm/$EMERALDARCH and run
emmake
-
Navigate to EC and run
newcompiler
. This will run the following commands:emmake
(Builtins) - Compile builtinsemmake install
(Builtins) - Update lib/Builtins and lib/opoidemmake fffs
- Compile compiler without builtins.newversion
- creates CP_qXXuseversion
- sets the symlink execCP to point to that versionemmake bestCP
- builds a version that understands the builtin types, called bestCPuseversion best
- sets the symlink execCP to point to the bestCP version
-
To run your new compiler use
xemc
If it is desired to replace the stable compiler with the experimental, carefully run make install
in the EC
directory.