Giter VIP home page Giter VIP logo

kinoma / kinomajs Goto Github PK

View Code? Open in Web Editor NEW
440.0 39.0 72.0 65.91 MB

A JavaScript runtime optimized for the applications that power IoT devices.

Home Page: http://kinoma.com

C++ 11.77% C 76.01% Makefile 1.31% Java 0.42% XS 1.15% Objective-C 1.88% TeX 0.78% Perl 0.02% Groff 0.05% Assembly 0.60% HTML 0.01% Shell 0.05% JavaScript 5.43% CMake 0.23% SAS 0.01% Batchfile 0.01% Python 0.02% M4 0.01% Ragel in Ruby Host 0.15% PHP 0.13%

kinomajs's Introduction

#KinomaJS Open Source README

This repository contains the source code and documentation of the Kinoma software platform. For a high-level overview of what you'll find here, see this document. Links to specific sections of this repository are provided below.

Additional resources, including our blog and developer forum, can be found on the Kinoma website.


##Build system

The build system for KinomaJS open source software supports building for Mac OS X, iOS, Android, Linux GTK, Embedded Linux, and Windows targets. The build system runs on Mac OS X (Yosemite and later), Windows (7+) and Linux (Ubuntu 14.04).

            

###Documentation

  • Build instructions: describes the host build environment required to build KinomaJS for each supported target platform and the commands used to build an application

##XS6

Kinoma's XS6 library implements a JavaScript virtual machine optimized for devices with limited resources. This virtual machine conforms to the 6th edition of the ECMAScript specification (ECMAScript 2015).

The JavaScript application frameworks (discussed later in this document) used on Kinoma Create, Kinoma Element, desktops, and mobile devices are designed to run efficiently on top of XS6.

###Documentation

###Source code

  • The sources folder contains the native implementations of ES6 features.
  • The extensions folder contains important platform features that are not standard to ECMAScript, such as cryptography.

###xsbug

xsbug is a full-featured debugger for developers building standalone KinomaJS applications, shells, and tools on all devices running XS. xsbug supports over-the-air debugging of concurrent targets running on different devices. Similar to other debuggers, xsbug supports setting breakpoints, browsing source code, the call stack and variables. For more information about xsbug refer to the xsbug documentation. Instructions for building xsbug are included in the platform-specific build instructions.


##KinomaJS application framework

The KinomaJS application framework can be used to deliver applications on a wide range of consumer electronic products, including Kinoma Create, iOS and Android devices, and desktops. The primary programming interface to KinomaJS is a JavaScript API of global constructors, functions, and objects that define the containment hierarchy, appearance, behavior, and flow of applications and shells.

###Documentation highlights

  • The KinomaJS Overview provides a conceptual overview of KinomaJS that will put the documentation and tutorials listed below in context. Read this first!
  • The KinomaJS JavaScript Reference provides details on the objects that define the KinomaJS API.
  • The KinomaJS Tutorials provide sample code and more detailed explanations of the objects defined in the KinomaJS JavaScript Reference.
  • Many of the sample applications in the KPR-examples repository are built using KinomaJS.

Note: These resources are also available in the Develop Tab on the Kinoma website

###Source code and additional documentation

The KinomaJS source code is located in ./kinoma/kpr. For an extended description of what is there and links to relevant documentation and tutorials, see this document.


##Kinoma Create resources

Kinoma Create uses the KinomaJS application framework, so all source code, tutorials, and documentation listed above can be used as references for Kinoma Create developers.

The following resources are specific to Kinoma Create.

###Programming with hardware

###Device management

./kinoma/kpr/notes/create-notes/ contains the following references to help developers set up and properly use Kinoma Create:


##Kinoma Element resources

Kinoma Element's form factor and resources demand the use of a lighter application framework than Kinoma Create. It therefore does not use the KinomaJS application framework detailed above. However, Kinoma Element and Kinoma Create offer many of the same software APIs so developers will often be able to re-use their code that communicates with pins, as well as many modules they create.

###Documentation highlights

###Programming with hardware

###Source code

The source code for Kinoma Element is located in ./xs6/sources/mc/.


##Kinoma Code

Kinoma Code is our IDE for scripting apps for IoT devices. You can download it from the Kinoma website or build it by following the instructions in the build instructions document.

###Documentation

###Source code

The source for Kinoma Code (originally called xsedit) is located in ./xs6/xsedit.


##KinomaJS Blocks

KinomaJS Blocks is a visual code editor designed to help developers build starter projects for Kinoma Create and Kinoma Element. The project is built on Angular 2(RC7) and runs in a web browser. The live version is hosted using Google App Engine, but you can modify and build it yourself by following the instructions in this document.

###Documentation


##KPL

The Kinoma Porting Layer (KPL) is the bottom of the KinomaJS stack. It is a very light portability layer, modeled, as much as practical, on POSIX. Because KinomaJS runs on a wide variety of operating systems, the goal is to isolate all direct calls to the host operating in KPL. Some RTOS hosts do not support the full ANSI C library, so it cannot even be safely assumed that functions like printf are available. To avoid surprises with the size of types, a portable-type system modeled on that used by QuickTime is used.

KinomaJS builds for Linux-based systems use KPL. For historical reasons, the iOS, Mac OS X, Android, and Windows builds do not. They rely instead on conditional compilation. It is strongly recommended that newly developed ports of the Kinoma Platform be based on KPL rather than the older method.

###Documentation

  • Kinoma Porting Layer: discusses how to build new ports of the Kinoma platform using the Kinoma Porting Layer, including a list of all functions required for the KPL API.

kinomajs's People

Contributors

archite avatar bfriedk1 avatar fantomjac avatar markwharton avatar mkellner avatar phoddie avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

kinomajs's Issues

Latest version of the source?

I wanted to debug some CoAP code but it looks like the version of the code on this repo does not include latest additions like CoAP? I am looking for e.g kprCoAP.c...

Thanks!

xsr6 missing information about options

There is no documentation about any command line options for xsr6 besides the '-p' flag. At least I would request '-h', '--help' flag to be implemented to give some direction about usage. Neither did I find any info about if xsr6 recognizes any environment variables, so I must assume it doesn't. Especially inability to give modules paths/lacking documentation about it makes xsr6 unusable for me. Compare to node.js for which I would use NODE_PATH.

Building a static library of xs6 runtime

Hi, I am trying to build a static library with kinoma implementation of ES6 javascript engine for embedding into my application, but don't quite understand how to do that: I see xs6/sources/fsk/xs6Host.c is the only file containing implementation of fxNewMachine API function, but could not see it being compiled or referenced in any way in any of CMake scripts, so it is never gets included into any library being built by cmake. What I am missing?

balls built, what's next?

I'm on an x86 64bit Arch Linux and I've successfully built the
kinomajs/bin/linux/gtk/Release/balls/balls
binary ... however, if I launch it, nothing happens, it just hangs there.

I was hoping to be able to test some ES6 goodness provided by this engine but I'm apparently unable to do anything with this binary. Not even --help did anything, not sure what I am doing wrong.

Thanks for any sort of hint/clarification

job not released and crash in setTimeout

If you execute this code

function a( ) {}
setTimeout( a, 100 );

you will crash at the end of the program in debug mode.
This is due to the unreleased job in fx_setTimeoutCallback

2 missing object release

void fx_setTimeoutCallback(txJob* job)
{
	txMachine* the = job->the;
	fxBeginHost(the);
	{
		mxPush(job->argument);
		/* ARGC */
		mxPushInteger(1);
		/* THIS */
		mxPushUndefined();
		/* FUNCTION */
		mxPush(job->function);
		fxCall(the);
		the->stack++;
	}
	fxEndHost(the);

	// >>>>>>>>>> here:
       fxForget(the, &(job->argument));
       // >>>>>>>>>> and here:
       fxForget(the, &(job->function));
}

error in mxIs<XXX>

In the file xsAll,
lines 961 to 979 there is a strange code in mxIsFunction, mxIsArray, mxIsString, mxIsBoolean, mxIsNumber, mxIsDate, mxIsRegExp, mxIsSymbol, mxIsHost, mxIsProxy

(/* (THE_SLOT) && */ ((THE_SLOT)->next) && ((THE_SLOT)->next->flag && XS_INTERNAL_FLAG) && ((THE_SLOT)->next->kind == XS_STRING_KIND) || ((THE_SLOT)->next->kind == XS_STRING_X_KIND))

look at the && instead of &

(THE_SLOT)->next->flag && XS_INTERNAL_FLAG)
                       ^^ here

kinoma.com DNS

Disclaimer! I understand that this repo is not directly related to the kinoma.com domain nor website. However, I am unable to find another contact method as the previously-provided support link on the Kinoma website goes to forum.kinoma.com, which is unavailable.

Neither kinoma.com, nor www.kinoma.com nor forum.kinoma.com resolve for me or most of my colleagues across the US. A couple of colleagues are able to intermittently access the kinoma.com website, but only sometimes. This has been the case since at least last week.

I have a book, JavaScript on Things, going into production right now (scheduled publish December). In it, I have a section on the Kinoma Element, citing/linking to Kinoma documentation and information on kinoma.com. It's important that I determine whether or not Kinoma's site still exists and will continue to exist for at least the near future. Any help appreciated. Thanks!

Android build fails because README file is now called "SDK Readme.txt" on Mac OS 10.10.4

The Android build.xml uses the $ANDROID_SDK/README file to check for the existence of the Android SDK. In the latest version of the SDK, the file is now called "SDK Readme.txt" on Mac OS 10.10.4 and hence the build fails.

The build proceeds after moving / copying the file to README.

Might be better to check for the existence of the SDK using some other property?

Android build fails with missing resource error (@drawable/splashscreen)

Mac OS 10.10.4
$ git status
On branch master
Your branch is up-to-date with 'origin/master'.
nothing to commit, working directory clean

kinomajs/tmp/android/Release/balls/ndk/project/res/layout/splashscreen.xml:27: error: Error: No resource found that matches the given name (at 'src' with value '@drawable/splashscreen').

Test in a browser?

I'd love to run the es5-shim and es6-shim tests (which cover things not in the compat tables, and not in test262) against kinoma. How can I go about doing this?

The instructions on the site aren't very clear - I'd assume there's a command line binary I can interact with just like node.

Can not find the Raspberry Pi EmbedShell by KinomaCode.

Hello all,
I try to build RaspberryPi KinomaJS.
I have some problem.
Please see following.

1)Running RPi Balls application result is good.
2)Running RPi EmbedShell, looks like is good.(RPi connecting display result)
(Please don't care IP address. This address is example)
Following address is KinomaCode and RPi Display screen shot.
https://twitter.com/At_Zamasu_Zansu/status/756011266242547712
$ ./EmbedShell/lib/mdnsd
$ sudo ./EmbedShell/EmbedShell
3)But, can not find RPi from KinomaCode.

If you have any advice, please tell me.

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.