A JavaScript implementation of SOM, a minimal Smalltalk for teaching and research.

Related tags

Frameworks ohm-som
Overview

ohm-som

A JavaScript implementation of SOM, a minimal Smalltalk for teaching and research. Just a hobby, won't be big and professional like TruffleSOM.

Status

2021-05-23: โš ๏ธ Under construction โš ๏ธ , but it now passes the majority of the SOM test suite.

Usage

Example:

node bin/som.mjs --classpath test/data HelloWorld

Scripts

  • npm test runs the smaller unit / integration tests (should all pass)
  • npm run som-test-suite runs the SOM test suite (not expected to pass yet)

Debugging

There are two environment variables you can set to make debugging easier.

Use DEBUG_GENERATED_CLASSES=true to write out the generated JS code for all SOM classes as they are loaded. These are written to the same directory as the original SOM source. E.g., for Array.som, the generated code will be written to Array.som.js.

If you set USE_PREGENERATED_CLASSES=true, the runtime will use the pre-generated JS code from the appropriate .som.js file if it exists. This allows you to easily insert console.log statements, etc. into the JavaScript code, making it easier to debug runtime issues.

You might also like...

Knockout makes it easier to create rich, responsive UIs with JavaScript

Knockout Knockout is a JavaScript MVVM (a modern variant of MVC) library that makes it easier to create rich, desktop-like user interfaces with JavaSc

Jan 4, 2023

Lightweight MVC library for building JavaScript applications

Spine Spine is a lightweight MVC library for building JavaScript web applications. Spine gives you structure and then gets out of your way, allowing y

Jan 4, 2023

A JavaScript Framework for Building Brilliant Applications

mithril.js What is Mithril? Installation Documentation Getting Help Contributing What is Mithril? A modern client-side JavaScript framework for buildi

Dec 26, 2022

Blazing fast Apple TV application development using pure JavaScript

atvjs Blazing fast Apple TV application development using pure JavaScript. Philosophy What's included Getting Started Basic Examples Creating Pages Ad

Dec 14, 2022

:fire: An extremely fast, React-like JavaScript library for building modern user interfaces

:fire: An extremely fast, React-like JavaScript library for building modern user interfaces

Inferno is an insanely fast, React-like library for building high-performance user interfaces on both the client and server. Description The main obje

Jan 3, 2023

JavaScript UI library for data-driven web applications

Road to 2.0 The master branch has new, in-progress version of w2ui. You might want to consider 1.5 branch that is stable and supports older browsers.

Jan 3, 2023

A no-dependency, intuitive web framework from scratch in Javascript

Poseidon ๐Ÿ”ฑ Intro Poseidon is, to use a nice description by Reef, an anti-framework. It's a a no-dependency, component-based Javascript framework for

Nov 14, 2022

hell.js ๐Ÿš€ ๐Ÿš€ A JavaScript framework for the ๐Ÿ”ฅ next ๐Ÿ”ฅ generation. ๐Ÿš€

hell.js ๐Ÿš€ ๐Ÿš€ A JavaScript framework for the ๐Ÿ”ฅ next ๐Ÿ”ฅ generation. ๐Ÿš€

Oct 3, 2022

An HTML5/CSS3 framework used at SAPO for fast and efficient website design and prototyping

Welcome to Ink Ink is an interface kit for quick development of web interfaces, simple to use and expand on. It uses a combination of HTML, CSS and Ja

Dec 15, 2022
Comments
  • Upgrade to Ohm v16 pre-release

    Upgrade to Ohm v16 pre-release

    • Fix semantic actions that were relying on the default _iter action to explicitly map over the iter node's children. For example, someIter.toJS() is changed to someIter.children.map(c => c.toJS()).
    • Use the new @ohm-js/cli package to generate a recipe for the grammar, which is a standalone module from which we can directly import and instance of the grammar.
    opened by pdubroy 0
Owner
Patrick Dubroy
Patrick Dubroy
A rugged, minimal framework for composing JavaScript behavior in your markup.

Alpine.js Alpine.js offers you the reactive and declarative nature of big frameworks like Vue or React at a much lower cost. You get to keep your DOM,

Alpine.js 22.5k Dec 30, 2022
Super minimal MVC library

Espresso.js Espresso.js is a tiny MVC library inspired by Backbone and React with a focus on simplicity and speed. We've aimed to bring the ideas of u

TechLayer 534 Dec 11, 2022
A framework for real-time applications and REST APIs with JavaScript and TypeScript

A framework for real-time applications and REST APIs with JavaScript and TypeScript Feathers is a lightweight web-framework for creating real-time app

Feathers 14.2k Dec 28, 2022
NativeScript empowers you to access native api's from JavaScript directly. Angular, Vue, Svelte, React and you name it compatible.

NativeScript empowers you to access native APIs from JavaScript directly. The framework currently provides iOS and Android runtimes for rich mobile de

NativeScript 22k Jan 4, 2023
The most popular HTML, CSS, and JavaScript framework for developing responsive, mobile first projects on the web.

Bootstrap Sleek, intuitive, and powerful front-end framework for faster and easier web development. Explore Bootstrap docs ยป Report bug ยท Request feat

Bootstrap 161.1k Jan 4, 2023
HTML Framework that allows you not to write JavaScript code.

EHTML (or Extended HTML) can be described as a set of custom elements that you can put on HTML page for different purposes and use cases. The main ide

Guseyn Ismayylov 171 Dec 29, 2022
Ember.js - A JavaScript framework for creating ambitious web applications

Ember.js is a JavaScript framework that greatly reduces the time, effort and resources needed to build any web application. It is focused on making yo

Ember.js 22.4k Jan 8, 2023
Meteor, the JavaScript App Platform

Meteor is an ultra-simple environment for building modern web applications. With Meteor you write apps: in modern JavaScript that send data over the w

Meteor 43.2k Jan 4, 2023
๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

Supporting Vue.js Vue.js is an MIT-licensed open source project with its ongoing development made possible entirely by the support of these awesome ba

vuejs 201.7k Jan 8, 2023