Commit Graph
67 Commits
Author SHA1 Message Date
Akos Kiss 8dd5186a0d Re-style fdlibm to conform to jerry guidelines
* First re-style was done automatically by indent to minimize the
  chance of errors during rewrite.

* Manual changes were applied to non-critical places only (comments
  and spaces):
  * Replaced all tabs with spaces.
  * Fixed tab stops in formulae in function comments.
    (Note: ASCII art for math formulae (especially for super- and
    subscripts) is a terrible idea.)
  * Unified the style of function comments.
  * Moved some in-code comments to their right places, which indent
    couldn't handle.
  * Added spaces to formulae of in-code comments to make them more
    readable.
  * Added braces mandated by jerry style guidelines.
  * Added parentheses to multiline #ifdef.

JerryScript-DCO-1.0-Signed-off-by: Akos Kiss [email protected]
2016-04-06 13:45:22 +02:00
Akos Kiss b39474c746 Merge sin/cos/tan and all helper functinos in a single source
* Made helper functions static.
* Changed the signature of __kernel_rem_pio2 not to require the
  ipio2 argument

JerryScript-DCO-1.0-Signed-off-by: Akos Kiss [email protected]
2016-04-06 13:45:22 +02:00
Akos Kiss a72caf1301 Turn simple constants to preprocessor macros
JerryScript-DCO-1.0-Signed-off-by: Akos Kiss [email protected]
2016-04-06 13:45:22 +02:00
Akos Kiss 397dff81ee Specialize fdlibm to jerry
Keep IEEE code paths only:
* removed SVID, XOPEN, POSIX code paths from everywhere.
* deleted s_lib_version.c, as version is only useful if multiple
  standards are supported.
* deleted k_standard.c, as it handles non-IEEE exception cases only.
* renamed the e_{acos,asin,atan2,exp,fmod,log,pow,sqrt}.c sources as
  s_.*, dropped the __ieee754_ prefix from the names of the
  appropriate functions therein, and deleted the
  w_{acos,asin,atan2,exp,fmod,log,pow,sqrt}.c wrapper code.

Keep C99 declaration variants only:
* removed old C-style function declaration variants.
* removed data declaration variants where const qualifier was not
  used.

Clean unused sources/functions:
* removed s_{rint,significand,tanh}.c and the appropriate functions
  defined therein.

JerryScript-DCO-1.0-Signed-off-by: Akos Kiss [email protected]
2016-04-06 13:45:22 +02:00
Akos Kiss 6290b2d236 Remove MEM_HEAP_PTR_64 macro
MEM_HEAP_PTR_64 is duplicating existing information: stdint.h, which
header is already used by the project, defines various _MAX macros
for upper limits of integer types. The comparison of UINTPTR_MAX and
UINT32_MAX can give the same info as encoded in MEM_HEAP_PTR_64.
The stdint.h-based approach has the benefit that jerry can support
any 64-bit architecture without the need for editing the build
system. (With the existing approach, CMakeLists has to know about
every 64-bit architecture to work properly.)

Thus, removing the extraneous macro from the code.

The patch also changes the mem_pools_chunk_t struct, as it turned
out that the struct does not have to be padded to MEM_POOL_CHUNK_SIZE.
(The padding also depended on MEM_HEAP_PTR_64.) It is enough if the
size of the struct is smaller than (or equal to) MEM_POOL_CHUNK_SIZE.

JerryScript-DCO-1.0-Signed-off-by: Akos Kiss [email protected]
2016-03-22 22:14:47 +00:00
Akos Kiss 91b1547fa5 Add unit testing of fdlibm
The project is relying on a variant of fdlibm, which has aleady
been edited but never verified for correctness. This patch adds
unit testing of fdlibm by:

* introducing a test generator that uses a trusted libm
  implementation to calculate correct and expected results of math
  functions
  (tools/gen-test-fdlibm.sh and tools/unit-tests/gen-test-fdlibm.c),
* adding tests created with the generator that stress all publicly
  exported functions of jerry's fdlibm
  (tests/unit/test-fdlibm.inc.h), and
* adding a unit test file to drive the generated tests
  (tests/unit/test-fdlibm.c).

Note: The test generator is not expected to be executed often, thus
it is not wired into the build system. If it gets edited, it must
be used locally to re-generate the .inc.h file.

During development, it turned out that tests/unit/test-common.h
included the system header math.h, which was only a bad smell until
now but became a real header conflict issue with the introduction
of the fdlibm unit test. Thus, this patch also changes the include
to fdlibm-math.h.

JerryScript-DCO-1.0-Signed-off-by: Akos Kiss [email protected]
2016-03-21 09:21:48 +01:00
Akos Kiss 48dca0af35 Fix: code-related vera++ rules should not be enforced in comments
JerryScript-DCO-1.0-Signed-off-by: Akos Kiss [email protected]
2016-03-21 08:51:26 +01:00
Akos Kiss 57db5ca918 Fix regexp character classes with \uNNNN and \xNN code points
Currently, if a regexp contains a character class and that
character class contains a hex-specified code point -- either
\uNNNN or \xNN --, then the character 'u' or 'x' is added to the
character class as well. This patch fixes the error and also adds
a regression test covering the issue.

Fixes #962

JerryScript-DCO-1.0-Signed-off-by: Akos Kiss [email protected]
2016-03-20 13:52:14 +01:00
Akos Kiss 69291e2dc4 Remove exec mode from non-executable files
JerryScript-DCO-1.0-Signed-off-by: Akos Kiss [email protected]
2016-03-20 12:24:05 +01:00
Akos Kiss ea2f0e44fb Fix terminology of snapshot saving in literals and main
In case of literals and in main, snapshot saving is incorrectly
named dumping. Elsewhere in the code, 'dump' functions output debug
data (even literals have a `lit_dump_literals` debug function). To
help distinction and to align terminologies, snapshot saving
functions of literals and command line options of main are also
re-named 'save'.

JerryScript-DCO-1.0-Signed-off-by: Akos Kiss [email protected]
2016-03-16 11:26:46 +01:00
Akos Kiss 2a5d17e736 Fix SCCS IDs in fdlibm
Most of the legacy version control IDs in fdlibm are already simple
comments at the beginning of the source files. However, in some
files, there are leftover global variables and pragmas. (The global
variable in e_pow.c even increases the .data section in both debug
and release builds.) This patch turns all legacy IDs to comments of
unified style.

JerryScript-DCO-1.0-Signed-off-by: Akos Kiss [email protected]
2016-03-16 09:32:50 +01:00
Akos Kiss 3e02e792b6 Fix .size longjmp in the linux port of jerry-libc
Fixing a typo, which resulted in an undefined (but harmless) symbol
in jerry-asm.

JerryScript-DCO-1.0-Signed-off-by: Akos Kiss [email protected]
2016-03-12 00:34:34 +01:00
Akos Kiss 66c94b7d9b Refactor the printing of memory usage statistics
Make the internal heap and pools memory usage statistics APIs more
similar: how the print functions are named, where they are
implemented, and which parts of them are guarded by `MEM_STATS`.
Also, adapt unit tests to the changes.

JerryScript-DCO-1.0-Signed-off-by: Akos Kiss [email protected]
2016-03-11 10:51:40 +01:00
Akos Kiss 011dacd1a7 Fix initialization from incompatible pointer type error in re_dump_bytecode
JerryScript-DCO-1.0-Signed-off-by: Akos Kiss [email protected]
2016-03-11 09:02:06 +01:00
Akos Kiss a9c77b49ee Improve the dumping of literals
* Guard `lit_dump_literals` with `JERRY_ENABLE_LOG` (both in source
  and in header).
* Change `printf`s to `JERRY_DLOG`.
* Make `lit_dump_literals` be called in `lit_finalize` (it was dead
  code).
* Remove its duplicate declaration from lit-literal.h

JerryScript-DCO-1.0-Signed-off-by: Akos Kiss [email protected]
2016-03-11 08:48:29 +01:00
Akos Kiss 6e687fa6b7 Remove support for per-instruction memory statistics
The new CBC interpreter does not support it anymore, thus removing
related code.

(As a side-effect, `jerry_flag_t` has been refactored from
`uint32_t` and associated defines to an enum.)

JerryScript-DCO-1.0-Signed-off-by: Akos Kiss [email protected]
2016-03-10 13:19:36 +01:00
Akos Kiss 7a07e55411 Unify the naming scheme of all header defines
There have been several renamings of header files but the
ifndef/define/endif preprocessor directives did not always follow
the file name changes (or perhaps never followed a unified naming
scheme). This patch gets all headers aligned with the style of the
majority.

JerryScript-DCO-1.0-Signed-off-by: Akos Kiss [email protected]
2016-03-10 11:26:14 +01:00
Akos Kiss a19f63f4a5 Check unit tests with vera++ & fix reported issues
Cppcheck has already been used for checking unit test sources
statically but vera++ style-checking of unit tests was left out,
most probably only by mistake. This patch adds unit tests to the
set of style-checked sources and also fixes the stlye issues that
were present in the test code.

(Extra: since the project is pure C now, not trying to collect
*.cpp files anymore.)

JerryScript-DCO-1.0-Signed-off-by: Akos Kiss [email protected]
2016-03-10 11:13:47 +01:00
Akos Kiss 81d4c97a3a Add ARM cross build and QEMU user space emulated tests to the CI
JerryScript-DCO-1.0-Signed-off-by: Akos Kiss [email protected]
2016-03-09 10:07:00 +01:00
Akos Kiss 25b0750756 Fix problems arising from incorrect use of various size types
E.g.,
* `ssize_t` was used where `lit_utf8_size_t` or `jerry_api_size_t`
  would have been correct,
* `lit_utf8_size_t` was used where `ecma_length_t` would have been
  correct.

Note, the patch also includes internal and public API changes:
* `ecma_string_to_utf8_string` does not return negative value if
   output buffer is not large enough to contain the string; the
   buffer is expected to be large enough. (`ecma_string_get_size`
   can be used to retrieve the required size.)
* `jerry_api_string_to_char_buffer` adapts the same logic (and
  `jerry_api_get_string_size` can be used to determine the
  required size of the buffer).

Related issue: #942

JerryScript-DCO-1.0-Signed-off-by: Akos Kiss [email protected]
2016-03-08 15:22:07 +01:00
Akos Kiss e926aa7d69 Remove dead macros from memory management code
JerryScript-DCO-1.0-Signed-off-by: Akos Kiss [email protected]
2016-03-07 14:05:35 +01:00
Akos Kiss d4650bc75c Change pool-based allocation to heap-based allocation in jerry.c
There was an abuse of memory pools in jerry.c: `compiled_code_map_entry_t`
is not an ECMA data model object but was still alocated/freed via
mem pool functions. Changed the appropriate calls to heap-related
functions.

JerryScript-DCO-1.0-Signed-off-by: Akos Kiss [email protected]
2016-03-07 13:31:42 +01:00
Akos Kiss 212aa34331 Remove memory management-related dead code
JerryScript-DCO-1.0-Signed-off-by: Akos Kiss [email protected]
2016-03-07 11:00:59 +01:00
Akos Kiss c0f3a9f7fb Add STRIP_RELEASE_BINARY option to Makefile
It is already supported by CMakeLists, might be useful to allow it
to be passed through Makefile.

JerryScript-DCO-1.0-Signed-off-by: Akos Kiss [email protected]
2016-03-04 15:19:59 +01:00
Akos Kiss b6af308d3f Add full profile to MCU build targets
JerryScript-DCO-1.0-Signed-off-by: Akos Kiss [email protected]
2016-03-04 15:05:27 +01:00
Akos Kiss 86cdc4b482 Remove the prerequisites installation and MCU build steps from Travis CI
The repeated downloads of the STM packages cause a huge slow-down
of Travis, especially when the source site becomes irresponsive
(which even causes Travis to report errors when the build would
work fine otherwise). Unfortunately, the license of the STM
packages does not allow their inclusion in the repository. (Note:
locally executed `make precommit` still builds MCU targets.)

JerryScript-DCO-1.0-Signed-off-by: Akos Kiss [email protected]
2016-03-02 16:54:45 +01:00
Akos Kiss f2bdf08511 Remove default handling of build options from Makefile
The handling of option defaults is already done in CMakeLists, it
is no good practice to duplicate the logic in the Makefile.

JerryScript-DCO-1.0-Signed-off-by: Akos Kiss [email protected]
2016-03-02 12:12:40 +01:00
Akos Kiss 3d6339bbf4 Remove unused EXTERNAL_ variables from Makefile
They have been kept when the build system was refactored but it
turns out that they are not used at all (they are not passed on to
cmake).

JerryScript-DCO-1.0-Signed-off-by: Akos Kiss [email protected]
2016-02-29 23:31:40 +01:00
Akos Kiss c9f5950e15 Replace bit field manipulation functions with macros
JerryScript-DCO-1.0-Signed-off-by: Akos Kiss [email protected]
2016-02-29 12:21:23 +01:00
Akos Kiss 235a5b1329 Refactor ECMA builtin template
Avoid sorting the array of property magic string IDs and make it
const, thus ensuring that it gets placed in .rodata. Replace the
binary search in the array (which would not work anymore because
of unsortendness) with function that returns the index of the
looked-after magic string ID using a switch-based logic (we rely
on compiler optimization to generate optimal code from that
switch).

Extras:
* Getting rid of the superfluous macro argument from routine names.
* Fixing the list of undef'd macros
* Fixing related comments

JerryScript-DCO-1.0-Signed-off-by: Akos Kiss [email protected]
2016-02-22 13:47:45 +01:00
Akos Kiss 866ef5bcf3 Add some more consts to get data moved from .data to .rodata
We already had some `const`s but it was still not enough.

JerryScript-DCO-1.0-Signed-off-by: Akos Kiss [email protected]
2016-02-22 13:04:34 +01:00
Akos Kiss d857fe095f Improve the usability of test runner scripts
* First of all, remove the counter-intuitive "OUT_DIR" second
  argument of run-test-suite.sh. This, way, the invocation of the
  script becomes easier to remember:
  `tools/runners/run-test-suite.sh <engine> <testsuite>`
  However, this also means that all output files (lists of
  executed, passed, and failed tests) are generated in the current
  working directory.

* Align the behaviour of run-unittests.sh with the above, i.e.,
  don't try to guess where to put output files but write them in
  the CWD.

* Adapt Makefile to the change in the use of the test runner
  scripts: create and change to "check" directories before invoking
  test runner scripts.

Extras:
* tools/runners/run-test-suite.sh collected fail tests from
  directories twice. This does no harm but is inefficient, thus
  removing.
* tools/runners/run-test-suite.sh was too permissive on the
  contents of test suite list files. Better to accept those lines
  only which really contain paths to JS test files.

JerryScript-DCO-1.0-Signed-off-by: Akos Kiss [email protected]
2016-02-22 12:04:07 +01:00
Akos Kiss aa0b6215fa Replace the EXTERN_C macro with extern "C" { block in fdlibm
Jerry-libc and jerry-core already uses the block-based approach.
Now, removing the last remnant of the macro approach from fdlibm as
well.

Closes issue #900

JerryScript-DCO-1.0-Signed-off-by: Akos Kiss [email protected]
2016-02-22 09:33:10 +01:00
Akos Kiss f088e8c147 Drop unimplemented run context stubs
Run context stubs have been lingering in the code base for almost a
year but they have never been more than unimplemented ideas.
Moreover, they are guarded by a macro that's nowhere defined, thus
the code is never compiled or tested.

Should contexts be implemented in the future, they may or may not
be implemented the way they are sketched now. Thus, it's safe to
remove this dead code from the sources.

JerryScript-DCO-1.0-Signed-off-by: Akos Kiss [email protected]
2016-02-20 21:03:32 +01:00
Akos Kiss b2edaafaa1 Move cppcheck logic from Makefile and CMakeLists.txt to tools/check-cppcheck.sh
The legacy approach executed cppcheck for every build target, which
resulted in a huge number of re-checks of the sources if more than
one targets were built. The main reason behind that was to get the
right macro-guarded code paths analyzed. However, cppcheck can
analyze every configuration of the sources in one go.

(The patch also contains some aesthetic changes around the way
vera++ is called and how errors are reported.)

JerryScript-DCO-1.0-Signed-off-by: Akos Kiss [email protected]
2016-02-19 13:33:15 +01:00
Akos Kiss be1920dc46 Fix tools/check-signed-off.sh to handle PRs not based on HEAD
JerryScript-DCO-1.0-Signed-off-by: Akos Kiss [email protected]
2016-02-19 09:36:05 +01:00
Akos Kiss 5afc0600b4 Add merge commit support to tools/check-signed-off.sh and re-introduce signed-off check to Travis CI
JerryScript-DCO-1.0-Signed-off-by: Akos Kiss [email protected]
2016-02-18 17:06:05 +01:00
Akos Kiss 6107f3599e Change the layout of the doxygen-generated documentation
* Move from index-based layout to treeview-based one.
* Automatically take the first sentence of the documentation as the
  brief doc.
* Always generate both brief and detailed description sections, and
  always sort them alpabetically.
* Disable the generation of huge and overly complex call and caller
  graphs.
* Make the project title title-cased.

JerryScript-DCO-1.0-Signed-off-by: Akos Kiss [email protected]
2016-02-18 16:22:37 +01:00
Akos Kiss 3608f8df86 Refactoring and fixing jerry-libc
Refactor memory and string handling routines
* Potential code size improvements:
  * Most loops don't really need a new incrementing index variable
    running between 0..n-1 but can just loop `while (n--)`, and the
    bodies don't need array indexing but can just use the `*p++`
    idiom.
  * Compare routines are not required to return -1, 0, and +1, but
    any negative, zero, or positive result will do.
  * `strncmp` may follow the other routines and does not have to have
    defined behaviour if any of its args is NULL.
* Fix:
  * `strncmp` did not work correctly if the strings were equal but
    `n` was greater than their length (did not stop at the
    terminating zero character).

Refactor printf
* Merging code duplications, removing dead initialization.

Refactor rand and srand
* Making sure that the type of the state variables is OK
  (`uint32_t` instead of `unsigned int`).
* Getting type conversions OK.
* Fixing `srand` to write all state variables and thus indeed
  generate the same random sequence.

JerryScript-DCO-1.0-Signed-off-by: Akos Kiss [email protected]
2016-02-18 15:40:56 +01:00
Akos Kiss c25d8617a5 Add Travis CI badge to readme
JerryScript-DCO-1.0-Signed-off-by: Akos Kiss [email protected]
2016-02-17 13:48:11 +01:00
Akos Kiss 85365dacfe Quick fix for Travis CI: remove signed-off check
Pull requests creating merge commits don't work well with
tools/check-signed-off.sh.

JerryScript-DCO-1.0-Signed-off-by: Akos Kiss [email protected]
2016-02-17 12:59:32 +01:00
Akos Kiss ad6107b32b Turn some global variables static const
Generally, it helps the optimizing passes of the compiler if global
varibles are `static`, and it is good for RAM usage to have data
marked read-only `const`. Found some globals, which could benefit
from these qualifiers.

JerryScript-DCO-1.0-Signed-off-by: Akos Kiss [email protected]
2016-02-17 10:55:09 +01:00
Akos Kiss b2f3ec225e Get the alpha order of lexer keywords right
Two keywords violate the ordering. Should someone depend on the
alpha order in the future (because the `keyword_length_*` arrays
seem to be ordered)` then this issue will be a nightmare to debug.
Better get this right now.

JerryScript-DCO-1.0-Signed-off-by: Akos Kiss [email protected]
2016-02-17 10:38:47 +01:00
Akos Kiss b18591eb25 Add support for travis integration
Fully fledged checks, builds, and tests on Linux, non-voting native
builds and unit tests on OS X.

JerryScript-DCO-1.0-Signed-off-by: Akos Kiss [email protected]
2016-02-17 10:10:45 +01:00
Akos Kiss 0d7ea70b41 Eliminating doxygen warnings by fixing the documentation
* Fix "end of file while inside a group" doxygen warnings.

* Fix "unknown command" doxygen warnings caused by incorrect
  argument references. Instead of `@foo`, `@a foo` is the proper
  format.

* Fix "unknown command" doxygen warnings caused by incorrect
  parameter direction specifications. Instead of `@in`, `@out`,
  and `@in-out`, `[in]`, `[out]`, and `[in,out]` are the proper
  formats.

* Wrapping special characters in quotes to avoid doxygen
  confusion. Raw pipe, semicolon, dot, backslash, etc. characters
  can drive doxygen into various misinterpretations and warnings.
  E.g.:
  ```
  End of list marker found without any preceding list items
  Found unknown command
  ```
  Putting quotes around such text snipets eliminates the errors.

* Fix the documentation of `ecma_builtin_global_object_print`. Raw
  <> and \ sequences confused doxygen in various ways (it tried to
  interpret them as XML tags and doxygen commands).

* Fix "ignoring title that does not match old title" doxygen
  warnings. At some places, the group titles were out of sync, at
  others, the group names were incorrect.

* Fix "parameters are not documented" doxygen warnings. Fixing
  various typos in the inline parameter documentations (`/*`,
  `/**`, `/** <`, and `/**>` are all considered incorrect, the
  right format is `/**<`).

JerryScript-DCO-1.0-Signed-off-by: Akos Kiss [email protected]
2016-02-16 21:05:58 +01:00
Akos Kiss 7dc065842b Remove jerry_port_ functions from test-common.h
They are identical to the functions with the same name in
jerry-port.cpp and cause duplicate symbol link errors on OS X.

JerryScript-DCO-1.0-Signed-off-by: Akos Kiss [email protected]
2016-02-16 10:39:21 +01:00
Akos Kiss 7f3a10a29d Move Doxyfile to the root directory of the project
Config files are better located in the root of the project tree,
no questions will raise then what the relative paths are relative
to. (E.g., `INPUT` and `OUTPUT_DIRECTORY` in the current case.)

JerryScript-DCO-1.0-Signed-off-by: Akos Kiss [email protected]
2016-02-16 01:28:35 +01:00
Akos Kiss f959ba95a4 Refactoring the build system
* Removed unused or unnecessary parts from various make files
* Eliminated lots of duplications from Makefile with the help of
  macros.
* Split tools/precommit.sh to its independent components:
  * the part that checks the existence of the "signed off" text in
    commit messages
    (this on got factored out to tools/check-signed-off.sh),
  * the part that uses vera++ for style checking (this one got
    factored out to tools/check-vera.sh),
  * the part that invokes targets in the cmake-generated build
    directory, and
  * the part that performs various tests (these latter two got
    moved into the Makefile).
* Moved the functionality of precommit-full-testing.sh into the
  Makefile, too.
* Added ninja build system support (e.g., `make NINJA=1`).
* Updated leading documentation comments (they were somewhat
  stale).
* Tried to keep the target names exactly the same as they were --
  almost succeeded... (some changes are intentional, and are
  subject to personal preferences).
* Simplified console output of `make precommit`
* Unified test runner scripts and their output format
  * Eliminated nothing-to-stdout everything-to-log-file policy:
    info is printed to stdout and it is the caller's
    responsibility to redirect it to a file if needed.
  * Also applied some renaming and coding style unification to
    the scripts.
* Merged the functionality of tools/runners/run-test-suite-jerry*.sh
  into the Makefile
* Merged everything related to a test suite execution in a single
  script.
  * The new script also allows to specify pass and xfail tests in
    a single list file, which was not possible hitherto.
  * Also, the paths of the test cases given in a file are
    interpreted relative to their container files.

JerryScript-DCO-1.0-Signed-off-by: Akos Kiss [email protected]
2016-02-15 18:05:01 +01:00
Akos Kiss 20bec3d73f Remove cppcheck and vera++ from prerequisites
Rely on platform-provided versions. Thus, no need to download and
build them, neither to wrap them with shell scripts. CMake and
precommit updated to call the new tools. Development documentation
also updated/simplified.

PS: On my Ubuntu 14.04.3, cppcheck has version 1.61, while prereq
version was 1.69. The older version reports and fails on a strange
style issue in ecma/builtin-objects/ecma-builtin-helpers.cpp, for
which the only solution found was to suppress the cppcheck errors
with `variableScope` id for that file.

JerryScript-DCO-1.0-Signed-off-by: Akos Kiss [email protected]
2016-02-11 09:58:41 +01:00
Akos Kiss dc84775207 Remove references to non-existent parser/js/bc and parser/js/collections directories
With the merge of the CBC parser, these directories got removed.
The update of the jerry-core/CMakeLists.txt must have been
forgotten, probably because the kept references caused no errors.
Cleaning up now.

JerryScript-DCO-1.0-Signed-off-by: Akos Kiss [email protected]
2016-02-11 09:29:40 +01:00
Akos Kiss 0a83b317c7 Rename docs/Doxygen to docs/Doxyfile
This is a really minuscule change, but it is more idiomatic to name
the config file of doxygen as Doxyfile.

JerryScript-DCO-1.0-Signed-off-by: Akos Kiss [email protected]
2016-02-11 09:13:01 +01:00
Akos Kiss 196e8196fc Eliminate code duplication in memory statistics printing
JerryScript-DCO-1.0-Signed-off-by: Akos Kiss [email protected]
2016-02-09 14:19:28 +01:00
Akos Kiss 9c124e2634 Revive mem_stats.sh
The tool became bitrotten. Bringing it up-to-date to handle the
output of jerry and rss-measure.sh properly.

JerryScript-DCO-1.0-Signed-off-by: Akos Kiss [email protected]
2016-02-09 14:03:16 +01:00
Akos Kiss 4a5a8cbf72 Add generated documentation to gitignore
JerryScript-DCO-1.0-Signed-off-by: Akos Kiss [email protected]
2016-02-09 13:42:01 +01:00
Akos Kiss ab68d093e8 Whitespace cleanup: tab removal in tests directory
Also changed space-based indentation in touched files if they used
4 spaces for indentation (instead of the most-often-used 2).

Also added new line to end of touched files if they did not end
that way.

JerryScript-DCO-1.0-Signed-off-by: Akos Kiss [email protected]
2015-11-28 21:47:37 +01:00
Akos Kiss 133fc6adfd Whitespace cleanup: tab removal in tools directory
JerryScript-DCO-1.0-Signed-off-by: Akos Kiss [email protected]
2015-11-28 21:47:37 +01:00
Akos Kiss 5ffc9abb59 Whitespace cleanup: tab removal in CMakeLists.txt
JerryScript-DCO-1.0-Signed-off-by: Akos Kiss [email protected]
2015-11-28 21:47:37 +01:00
Akos Kiss 8006635636 Pass -Wno-error to linker in case of LTO builds
When linking a release-built command line shell on Linux against
default glibc with LTO enabled, a long-open gcc bug causes spurious
warning to be emitted around a call to fread. The `-Werror` flag
turns this into an error and the build process fails.
Unfortunately, there is no way to selectively disable the warning
with pragmas or `-Wno-error=xxx` flags.

Thus, this patch introduces some helper macros and lists all
warnings explicitly with `-Werror=xxx` instead of covering all
warnings with the `-Werror` flag. This way, warnings enabled by
command line flags do cause errors, but those raised by warning
attributes (which cannot be suppressed by any `-Wno-error=xxx`
flags) don't.

JerryScript-DCO-1.0-Signed-off-by: Akos Kiss [email protected]
2015-11-17 22:20:23 +01:00
Akos Kiss 7022aa26b0 Add a "Hello JerryScript!" program to the tests
The current code base does not contain any "first JavaScript
program" for those who build JerryScript for Linux console. It
does contain a LED-blinking example -- blinky.js -- but that's
only useful on an developer board where LEDs-to-be-blinked are
available. And the rest of the tests are just that: tests, giving
passed/failed information but nothing eye candy.

This patch adds a simple JS script that can act as a warm welcome
to anyone after the first successful build trying to run something
proving that Jerry works.

JerryScript-DCO-1.0-Signed-off-by: Akos Kiss [email protected]
2015-11-11 11:32:08 +00:00
Akos Kiss 6038173e76 Rename make target build_all to $(BUILD_ALL)
The current `Makefile` works "as is" since `$(BUILD_ALL)` is
`build_all`. However, the target `build` depends on `$(BUILD_ALL)`,
so should that variable ever be changed, it will break.

JerryScript-DCO-1.0-Signed-off-by: Akos Kiss [email protected]
2015-07-16 23:39:49 +02:00
Akos Kiss 8d9658913b Get all phony targets declared
It is generally a good practice to have the `.PHONY` declarations
close to the affected targets themselves (instead of declaring them
phony in one group at the end of the `Makefile`) so as not to miss
any. (As it already happened to the `log`, `precommit`,
`build_all`, etc., targets.) Thus, removed the one big declaration
from the end of the file and prepended all phony targets with a
declaration separately.

JerryScript-DCO-1.0-Signed-off-by: Akos Kiss [email protected]
2015-07-16 23:39:48 +02:00
Akos Kiss f8ee565016 Split independent commands in make recipes
Mostly, there is no need for joining commands with `&&` in recipes
since make already applies the exit-on-error functionality to each
executed line, unless there is a shell interdependency between them
(like setting environment variables in one command and using it in
another, or changing the working directory, which would not work
because of the new-subshell-per-line behaviour of make). Thus, some
independent commands can be split in the `Makefile` to improve
readability.

(Some space/tab inconsistensies are also fixed.)

JerryScript-DCO-1.0-Signed-off-by: Akos Kiss [email protected]
2015-07-16 23:39:48 +02:00
Akos Kiss 1a4e66a013 Extend non-quiet make mode with log echo
If `VERBOSE` is defined, cmake, sub-make, and tool logs are also
echoed on stdout. Default behaviour is still quiet mode, however.

JerryScript-DCO-1.0-Signed-off-by: Akos Kiss [email protected]
2015-07-16 23:39:48 +02:00
Akos Kiss f4c24f063d Enable non-quiet make
Replace most of echo-suppressing `@`s with `$(Q)`. `$(Q)` defaults
to `@` to preserve current behaviour, however, should anyone need
or prefer echoed lines, defining `VERBOSE` on the command line for
make makes it possible.

JerryScript-DCO-1.0-Signed-off-by: Akos Kiss [email protected]
2015-07-16 23:39:48 +02:00
Akos Kiss 9d423d9901 Make exit behaviour of jerry_fatal flag-dependent
* Added new flag `JERRY_FLAG_ABORT_ON_FAIL`.
* Added new internal api function `jerry_is_abort_on_fail` to
  check the status of the flag.
* Changed `jerry_fatal` bail-out function to call `abort` when the
  flag is set and exit code is non-zero (i.e., not only for
  assertion failures).
* Added `--abort-on-fail` command line option to linux and nuttx
  apps to set the flag.

JerryScript-DCO-1.0-Signed-off-by: Akos Kiss [email protected]
2015-06-03 17:09:51 +02:00
Akos Kiss 6a607751bf Terminate with signal in case of an assert
Automated debugging is easier if the process terminates with a
signal instead of a regular `exit (code);` call, since in this
latter case the cause of error cannot be automatically backtraced.

JerryScript-DCO-1.0-Signed-off-by: Akos Kiss [email protected]
2015-06-03 12:07:55 +02:00
Akos Kiss d6fb76416a Add abort () to jerry-libc
Added declaration and implementations of `void abort (void)` to
jerry-libc. As the linux implementation relies on the `getpid`
syscall - which has no arguments - `syscall_0` implementations
have been added as well.

`libc_fatal` has been adapted to use the new `abort` function
instead of `exit`. This also made the definition of
`LIBC_FATAL_ERROR_EXIT_CODE` unnecessary.

Finally, the syscall fatal error message was fixed.

JerryScript-DCO-1.0-Signed-off-by: Akos Kiss [email protected]
2015-06-02 18:12:29 +02:00