GithubHelp home page GithubHelp logo

emerald / welcome Goto Github PK

View Code? Open in Web Editor NEW
2.0 2.0 0.0 10.83 MB

Implementing a WELCOME construct in Emerald

Objective-C 6.15% MATLAB 37.29% Makefile 3.23% Shell 1.35% Yacc 2.25% Mathematica 0.45% Roff 0.04% M 0.12% Limbo 0.10% Batchfile 0.01% Mercury 0.05% TeX 7.08% C 40.73% C++ 0.16% Modula-2 0.22% AMPL 0.02% Python 0.18% Assembly 0.57%

welcome's Introduction

W E L C O M E

About

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.

Added features

  • The welcome expression
  • The welcomable object prefix
  • The mergeWith-operation in the builtin Node-object
  • The setDiscoveredNodeEventHandler-operation in the Node-object
  • The getDiscoveredNodes-operation in the Node-object
  • The getAllDiscoveredNodes-operation in the Node-object
  • Run emx with the option -D to make a node discoverable
  • The debugging-traces welcome and discovery

Requirements

  • 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)

Project setup

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 under bin/ and lib/.

  • NOTE: If you have previously installed a version of Emerald, make sure that your changes in .bashrc has taken effect ( does type ec/emx give a path to your new EMERALDROOT folder?).

Building the project

  • 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 vm
  • ec: run a stable compiler

To compile single parts of Emerald alone, look at the instructions below.

Setup links

  • 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

ccalls

  • Navigate to ccalls/ and compile the library:
emmake install

Compiling the runtime system

  • Navigate to vm/$EMERALDARCH and run emmake

Compiling a new compiler

  • Navigate to EC and run newcompiler. This will run the following commands:

    • emmake (Builtins) - Compile builtins
    • emmake install (Builtins) - Update lib/Builtins and lib/opoid
    • emmake fffs - Compile compiler without builtins.
    • newversion - creates CP_qXX
    • useversion - sets the symlink execCP to point to that version
    • emmake bestCP - builds a version that understands the builtin types, called bestCP
    • useversion 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.

welcome's People

Stargazers

 avatar  avatar

Watchers

 avatar  avatar

welcome's Issues

X and XForms [Question]

how would one get the graphics working? i was trying to use the premade u.m file in XForms(which just seems to be a demo) and it kept raising errors like fl_up_box doesnt exist. and when i compile it next to X.m it just switches to CCALLS unknown

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.