OS X build regularly reports some 39 warnings falling in 3 major categories: * "static function '...' is used in an inline function with external linkage [-Wstatic-in-inline]": Some semantics around `inline` have changed between C89 and C99, and gcc and clang seem to disagree on how strict they should be about them. Solution chosen is to use `-Wnostatic-in-inline` command line option for clang. * "implicit conversion turns floating-point number into integer: 'double' to 'bool' [-Wfloat-conversion]": `if (fmod (..., ...))` was used at different places, which is not nice anyway, thus the return value is compared explicitly against `ECMA_NUMBER_ZERO`. * "format string is not a string literal [-Wformat-nonliteral]": Console and log port I/O functions have a printf-like interface, and the default implementations actually pass both format string and the remaining arguments to a vfprintf. However, clang is strict about the format string parameter of vfprintf and expects a literal there. By annotating the port I/O functions with `__attribute__ ((format (printf, ..., ...)))`, clang will check the format string being a literal string earlier, when the port functions are called, and will not complain within them when vfprintf is called. (Actually, this has revealed an incorrect format string, which has been fixed as well.) (There were also some single conversion errors not listed above.) The patch was tested on OS X (where all warnings disappeared), but it should help clang compilation on other OS's as well. JerryScript-DCO-1.0-Signed-off-by: Akos Kiss akiss@inf.u-szeged.hu
JerryScript: JavaScript engine for the Internet of Things
JerryScript is a lightweight JavaScript engine for resource-constrained devices such as microcontrollers. It can run on devices with less than 64 KB of RAM and less than 200 KB of flash memory.
Key characteristics of JerryScript:
- Full ECMAScript 5.1 standard compliance
- 160K binary size when compiled for ARM Thumb-2
- Heavily optimized for low memory consumption
- Written in C99 for maximum portability
- Snapshot support for precompiling JavaScript source code to byte code
- Mature C API, easy to embed in applications
Additional information can be found on our project page and Wiki.
IRC channel: #jerryscript on freenode
Mailing list: jerryscript-dev@gna.org, you can subscribe here and access the mailing list archive here.
Quick Start
Getting the sources
git clone https://github.com/Samsung/jerryscript.git
cd jerryscript
Building JerryScript
python tools/build.py
For additional information see Getting Started.
Documentation
License
JerryScript is Open Source software under the Apache License 2.0. Complete license and copyright information can be found in the source code.
Copyright 2015 Samsung Electronics Co., Ltd.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
