This is an implementation of Emerald with an added welcome expression and node discovery mechanism.
Report.pdfis an edited version of the report containing the new language additions.Welcome_user_guide.pfdis a detailed document explaining the additions.
- The
welcomeexpression - The
welcomableobject 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
-Dto make a node discoverable - The debugging-traces
welcomeanddiscovery
makecsh- 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
EMERALDARCHare equal to the directory names underbin/andlib/. -
NOTE: If you have previously installed a version of Emerald, make sure that your changes in
.bashrchas taken effect ( doestype ec/emxgive 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/srcinto 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.