nit.git
9 years agonitgg: use is_toplevel instead of heuristics to not customize top-level methods
Jean Privat [Thu, 14 Aug 2014 00:25:12 +0000 (20:25 -0400)]
nitgg: use is_toplevel instead of heuristics to not customize top-level methods

Signed-off-by: Jean Privat <jean@pryen.org>

9 years agoMerge: lib: introduce module hash_debug
Jean Privat [Wed, 13 Aug 2014 20:31:00 +0000 (16:31 -0400)]
Merge: lib: introduce module hash_debug

Nit-exclusivity thanks to class refinements, intrude imports and the control of the main function.

Inject behavior analysis to hash-collections (HashMap, HashSet, etc.)
Accesses to hash collections are instrumented, and statistics are automatically displayed at the end of the program.

This module helps to detect, and track bad behavior on hash-collections, especially collisions.

Simple usage:

1. compile your program with `-m hash_debug`
2. execute your program.

Advanced usage:

import `hash_debug` and use the functions `Sys::show_hash_stats` and `Sys::clear_hash_stats` at strategic points.

You can also use some dynamic call-graph tools (like valgrind) and look at callers of `HashCollection::gt_collide` and `HashCollection::st_collide`.

Pull-Request: #664
Reviewed-by: Frédéric Vachon <fredvac@gmail.com>
Reviewed-by: Lucas Bajolet <r4pass@hotmail.com>

9 years agoMerge: Deserialize generics with nitserial
Jean Privat [Wed, 13 Aug 2014 20:30:15 +0000 (16:30 -0400)]
Merge: Deserialize generics with nitserial

nitserial compiles a Nit module after analyzing a Nit program. This module can then be compiled with the program (possibly using `-m`) to support deserializing any alive generic type. Many generated module can be used to support different libraries with hidden serialization logic, or to support exchanges between a client and a server.

Will be used by the RESTful interface of Benitlux.

Pull-Request: #650
Reviewed-by: Lucas Bajolet <r4pass@hotmail.com>
Reviewed-by: Jean Privat <jean@pryen.org>

9 years agoMerge: cleanup --no-check-*
Jean Privat [Wed, 13 Aug 2014 20:30:12 +0000 (16:30 -0400)]
Merge: cleanup --no-check-*

Some people like to live dangerously, they unplug their usb stick without unmounting, they write long comments in a textbox in a browser, they eat pasta with a white t-shirt.
Now, they can also `--no-check-all` to disable all runtime-tests and sweat pure adrenaline.

Some numbers, because people like numbers: `--no-check-all` gives a small 6% boost for compiling nitg.
(for reference, --semi-global is a 20% boost).

Pull-Request: #665
Reviewed-by: Lucas Bajolet <r4pass@hotmail.com>

9 years agoMerge: Optimize usage of the chars of a string
Jean Privat [Wed, 13 Aug 2014 20:29:53 +0000 (16:29 -0400)]
Merge: Optimize usage of the chars of a string

* The first commit, on `html_escape`, improves nitdoc execution on RnR by about 10s, or 6%.
* The second commit _theorically_ improves access to the chars of strings. It _worsen_ the execution of nitdoc on RnR by about 9s.

The overall gain on this specific use case is of 1s. Obviously this PR is not to be merged as is!

Pull-Request: #663
Reviewed-by: Jean Privat <jean@pryen.org>
Reviewed-by: Lucas Bajolet <r4pass@hotmail.com>

9 years agotests: nitg-e doesn't know the full type of generics, expect the error
Alexis Laferrière [Thu, 7 Aug 2014 16:18:44 +0000 (12:18 -0400)]
tests: nitg-e doesn't know the full type of generics, expect the error

Signed-off-by: Alexis Laferrière <alexis.laf@xymus.net>

9 years agotests: test a module generated by `nitserial`
Alexis Laferrière [Wed, 6 Aug 2014 17:19:54 +0000 (13:19 -0400)]
tests: test a module generated by `nitserial`

Signed-off-by: Alexis Laferrière <alexis.laf@xymus.net>

9 years agotests: test nitserial itself
Alexis Laferrière [Wed, 6 Aug 2014 15:20:57 +0000 (11:20 -0400)]
tests: test nitserial itself

Signed-off-by: Alexis Laferrière <alexis.laf@xymus.net>

9 years agotests: extend test_deserialization with generics
Alexis Laferrière [Wed, 18 Jun 2014 17:07:07 +0000 (13:07 -0400)]
tests: extend test_deserialization with generics

Signed-off-by: Alexis Laferrière <alexis.laf@xymus.net>

9 years agonitserial: intro a support tool to deserialize generic types
Alexis Laferrière [Sun, 20 Jul 2014 18:46:29 +0000 (14:46 -0400)]
nitserial: intro a support tool to deserialize generic types

Signed-off-by: Alexis Laferrière <alexis.laf@xymus.net>

9 years agolib/json_serialization: support Arrays
Alexis Laferrière [Wed, 18 Jun 2014 17:01:15 +0000 (13:01 -0400)]
lib/json_serialization: support Arrays

Signed-off-by: Alexis Laferrière <alexis.laf@xymus.net>

9 years agolib/string: use indexed access to chars instead of iterators
Alexis Laferrière [Tue, 12 Aug 2014 21:11:38 +0000 (17:11 -0400)]
lib/string: use indexed access to chars instead of iterators

Signed-off-by: Alexis Laferrière <alexis.laf@xymus.net>

9 years agocomp: add --no-check-all
Jean Privat [Wed, 13 Aug 2014 14:12:59 +0000 (10:12 -0400)]
comp: add --no-check-all

Signed-off-by: Jean Privat <jean@pryen.org>

9 years agocomp: rename --no-check-other to --no-check-null, because it is what it does
Jean Privat [Wed, 13 Aug 2014 14:02:35 +0000 (10:02 -0400)]
comp: rename --no-check-other to --no-check-null, because it is what it does

Signed-off-by: Jean Privat <jean@pryen.org>

9 years agonitgg: correclty disable attr check with --no-check-attr-isset
Jean Privat [Wed, 13 Aug 2014 13:59:08 +0000 (09:59 -0400)]
nitgg: correclty disable attr check with --no-check-attr-isset

Signed-off-by: Jean Privat <jean@pryen.org>

9 years agoMerge: Ai search
Jean Privat [Wed, 13 Aug 2014 13:47:48 +0000 (09:47 -0400)]
Merge: Ai search

Second part of the ai library. now with astar (and other search algos)

Look a puzzle.nit for a simple example of usage.

Pull-Request: #660
Reviewed-by: Lucas Bajolet <r4pass@hotmail.com>

9 years agoMerge: Intent: An android API to launch activities and services
Jean Privat [Wed, 13 Aug 2014 13:47:27 +0000 (09:47 -0400)]
Merge: Intent: An android API to launch activities and services

New API for `lib/android` allowing to start/stop activities and services. Intent tests raised new subtle errors in `Bundle`API and `Audio` API that have been fixed in this PR.

Pull-Request: #644
Reviewed-by: Alexis Laferrière <alexis.laf@xymus.net>
Reviewed-by: Lucas Bajolet <r4pass@hotmail.com>
Reviewed-by: Alexandre Terrasa <alexandre@moz-code.org>
Reviewed-by: Jean Privat <jean@pryen.org>

9 years agoMerge: UTF-8 Strings without index
Jean Privat [Wed, 13 Aug 2014 13:47:16 +0000 (09:47 -0400)]
Merge: UTF-8 Strings without index

Another WIP version of UTF-8 Strings, without indexing this time.

This is more likely to become the final implementation, depending on the performance of it. I'll add benches for the versions of UTF-8 to examine their impact and decide a bit later.

This implementation being less rigid than the other, more of the API is supported, still, more work needs to be done.

Pull-Request: #655
Reviewed-by: Jean Privat <jean@pryen.org>

9 years agoMerge: Memcpy -> memmove
Jean Privat [Wed, 13 Aug 2014 13:46:50 +0000 (09:46 -0400)]
Merge: Memcpy -> memmove

As discussed in #655, this PR replaces the uses of memcpy in standard by memmove, a safer alternative while not costing that much more.

Before : 0m15.584s
After : 0m15.748s

Pull-Request: #661
Reviewed-by: Jean Privat <jean@pryen.org>

9 years agoMerge: Finalizing Nit objects on garbage collection
Jean Privat [Wed, 13 Aug 2014 13:46:43 +0000 (09:46 -0400)]
Merge: Finalizing Nit objects on garbage collection

Rules for finalizable objects:

* They must be a standard Nit class (not an extern, nor a universal).
* They must not have any cycles, or else they won't be finalized.
* In practice, they should be used on small Nit objects acting as a thin layer around a resource. In other words, it is to be used in the Nity layer.
* `finalize` may be invoked more than once, and the underlying resources may also be used by other instances. This must be considered when implementing `finalize`.
* The finalizer will be called on garbage collection. It can be forced with `sys.force_garbage_collection`.
* When attempting to aquire a limited resource (for example, a file description) if you hit the limit, it is a good practice to force the garbage collection and try again.

Pull-Request: #659
Reviewed-by: Jean Privat <jean@pryen.org>
Reviewed-by: Lucas Bajolet <r4pass@hotmail.com>
Reviewed-by: Frédéric Vachon <fredvac@gmail.com>

9 years agolib: introduce module hash_debug
Jean Privat [Wed, 13 Aug 2014 03:17:00 +0000 (23:17 -0400)]
lib: introduce module hash_debug

Signed-off-by: Jean Privat <jean@pryen.org>

9 years agolib/android: Removed deprecated `super Serializable`
Frédéric Vachon [Tue, 5 Aug 2014 18:02:19 +0000 (14:02 -0400)]
lib/android: Removed deprecated `super Serializable`

Signed-off-by: Frédéric Vachon <fredvac@gmail.com>

9 years agolib/android: Fixes audio module tests
Frédéric Vachon [Tue, 5 Aug 2014 02:10:30 +0000 (22:10 -0400)]
lib/android: Fixes audio module tests

Signed-off-by: Frédéric Vachon <fredvac@gmail.com>

9 years agolib/android: Bundle API JNI error fix
Frédéric Vachon [Tue, 5 Aug 2014 01:10:02 +0000 (21:10 -0400)]
lib/android: Bundle API JNI error fix

Signed-off-by: Frédéric Vachon <fredvac@gmail.com>

9 years agolib/android: Added Intent API tests to mnit_simple
Frédéric Vachon [Mon, 4 Aug 2014 23:51:09 +0000 (19:51 -0400)]
lib/android: Added Intent API tests to mnit_simple

Signed-off-by: Frédéric Vachon <fredvac@gmail.com>

9 years agolib: use a simple iteration in `html_escape` and move to `string`
Alexis Laferrière [Tue, 12 Aug 2014 21:05:14 +0000 (17:05 -0400)]
lib: use a simple iteration in `html_escape` and move to `string`

Signed-off-by: Alexis Laferrière <alexis.laf@xymus.net>

9 years agotests: test finalization effect
Alexis Laferrière [Fri, 8 Aug 2014 23:18:45 +0000 (19:18 -0400)]
tests: test finalization effect

Signed-off-by: Alexis Laferrière <alexis.laf@xymus.net>

9 years agonitg & lib: intro `Finalizable` to be called when an object is freed
Alexis Laferrière [Fri, 8 Aug 2014 23:18:20 +0000 (19:18 -0400)]
nitg & lib: intro `Finalizable` to be called when an object is freed

Signed-off-by: Alexis Laferrière <alexis.laf@xymus.net>

9 years agolib/ai: add the n-puzzle problem as an example of search
Jean Privat [Mon, 11 Aug 2014 19:09:35 +0000 (15:09 -0400)]
lib/ai: add the n-puzzle problem as an example of search

Signed-off-by: Jean Privat <jean@pryen.org>

9 years agolib/ai: add search.nit as the second module
Jean Privat [Mon, 11 Aug 2014 18:58:31 +0000 (14:58 -0400)]
lib/ai: add search.nit as the second module

Signed-off-by: Jean Privat <jean@pryen.org>

9 years agonitg: Replace memcpy by memmove for safety.
Lucas Bajolet [Tue, 12 Aug 2014 18:56:07 +0000 (14:56 -0400)]
nitg: Replace memcpy by memmove for safety.

Signed-off-by: Lucas Bajolet <r4pass@hotmail.com>

9 years agolib/string_exp/utf8_no_index: Updated README
Lucas Bajolet [Thu, 7 Aug 2014 17:58:49 +0000 (13:58 -0400)]
lib/string_exp/utf8_no_index: Updated README

Signed-off-by: Lucas Bajolet <r4pass@hotmail.com>

9 years agoutf8_noindex/tests: Added a test for utf8 without index variant
Lucas Bajolet [Thu, 7 Aug 2014 16:52:40 +0000 (12:52 -0400)]
utf8_noindex/tests: Added a test for utf8 without index variant

Signed-off-by: Lucas Bajolet <r4pass@hotmail.com>

9 years agolib/string_exp/utf8_no_index: FlatBuffer is compatible with UTF-8
Lucas Bajolet [Thu, 7 Aug 2014 16:59:44 +0000 (12:59 -0400)]
lib/string_exp/utf8_no_index: FlatBuffer is compatible with UTF-8

Signed-off-by: Lucas Bajolet <r4pass@hotmail.com>

9 years agoMerge: AI backtrack
Jean Privat [Mon, 11 Aug 2014 18:06:26 +0000 (14:06 -0400)]
Merge: AI backtrack

The first part of the artificial intelligence library.

This provides a framework for a basic backtracking algorithm.

It is used in a standard 8 queens problem (quite elegant!), but also replace the specific solver in friendz (the new solver is a little faster in fact)

Pull-Request: #642
Reviewed-by: Lucas Bajolet <r4pass@hotmail.com>
Reviewed-by: Alexis Laferrière <alexis.laf@xymus.net>

9 years agofriendz: add solver_cmd for solve from command line
Jean Privat [Tue, 5 Aug 2014 02:57:35 +0000 (22:57 -0400)]
friendz: add solver_cmd for solve from command line

Signed-off-by: Jean Privat <jean@pryen.org>

9 years agofriendz: use ai::backtrack instead of the ad-hoc solver
Jean Privat [Tue, 5 Aug 2014 02:56:50 +0000 (22:56 -0400)]
friendz: use ai::backtrack instead of the ad-hoc solver

Signed-off-by: Jean Privat <jean@pryen.org>

9 years agolib/ai: add the eight-queen problem as an example
Jean Privat [Tue, 5 Aug 2014 02:34:49 +0000 (22:34 -0400)]
lib/ai: add the eight-queen problem as an example

Signed-off-by: Jean Privat <jean@pryen.org>

9 years agolib/ai: introduce the ai library with `backtrack` as the first module
Jean Privat [Tue, 5 Aug 2014 02:31:05 +0000 (22:31 -0400)]
lib/ai: introduce the ai library with `backtrack` as the first module

For information, the logic is extracted from the solver of friendz.

Signed-off-by: Jean Privat <jean@pryen.org>

9 years agolib/android: Intro of the Android Intent API
Frédéric Vachon [Mon, 4 Aug 2014 23:50:11 +0000 (19:50 -0400)]
lib/android: Intro of the Android Intent API

Signed-off-by: Frédéric Vachon <fredvac@gmail.com>

9 years agoMerge: Compare arrays
Jean Privat [Fri, 8 Aug 2014 22:41:27 +0000 (18:41 -0400)]
Merge: Compare arrays

Improve comparaisons in arrays

Pull-Request: #658
Reviewed-by: Alexandre Terrasa <alexandre@moz-code.org>
Reviewed-by: Lucas Bajolet <r4pass@hotmail.com>

9 years agoMerge: lib/trees: improve bintrees efficiency
Jean Privat [Fri, 8 Aug 2014 17:30:31 +0000 (13:30 -0400)]
Merge: lib/trees: improve bintrees efficiency

First, comment potential slow asserts in the hot-path.
These asserts are needed only to check that the implementation is
correct.

Second, use a single `<=>` instead of doing multiple comparisons.
So reduce the total number of comparisons.

On a real instance (IA-related problems), the gain is the following:

RBTreeMap, 8738 insertions, 24855 accesses
Before: 2.54s
After: 0.07s (so, in the noise)

Pull-Request: #653
Reviewed-by: Alexis Laferrière <alexis.laf@xymus.net>
Reviewed-by: Lucas Bajolet <r4pass@hotmail.com>
Reviewed-by: Alexandre Terrasa <alexandre@moz-code.org>

9 years agoMerge: Improve Floats perfs
Jean Privat [Fri, 8 Aug 2014 17:30:28 +0000 (13:30 -0400)]
Merge: Improve Floats perfs

Improve perf for those who do not need excessive boxing of floats

Pull-Request: #656
Reviewed-by: Alexandre Terrasa <alexandre@moz-code.org>

9 years agoMerge: Reactivate shortcut range
Jean Privat [Fri, 8 Aug 2014 17:30:18 +0000 (13:30 -0400)]
Merge: Reactivate shortcut range

Since transform.nit and the Numeric class (that renamed Discrete::succ into something else) the optimization that shortcut range was innefective.

After reactivating them, Perf increase is approx 5%.

Pull-Request: #657
Reviewed-by: Alexandre Terrasa <alexandre@moz-code.org>

9 years agotests: update because line changes in errors.
Jean Privat [Fri, 8 Aug 2014 17:26:48 +0000 (13:26 -0400)]
tests: update because line changes in errors.

Signed-off-by: Jean Privat <jean@pryen.org>

9 years agolib/std: add ArrayCmp to easily compare arrays of comparable elements.
Jean Privat [Fri, 8 Aug 2014 17:23:50 +0000 (13:23 -0400)]
lib/std: add ArrayCmp to easily compare arrays of comparable elements.

Signed-off-by: Jean Privat <jean@pryen.org>

9 years agolib/std: add fast implementation for Array::==
Jean Privat [Fri, 8 Aug 2014 17:23:13 +0000 (13:23 -0400)]
lib/std: add fast implementation for Array::==

Signed-off-by: Jean Privat <jean@pryen.org>

9 years agotransform: do not transform rranges in for; this reactivates the short-range optimisation
Jean Privat [Fri, 8 Aug 2014 04:17:59 +0000 (00:17 -0400)]
transform: do not transform rranges in for; this reactivates the short-range optimisation

Signed-off-by: Jean Privat <jean@pryen.org>

9 years agotests: update sav related to lines in kernel
Jean Privat [Fri, 8 Aug 2014 03:11:06 +0000 (23:11 -0400)]
tests: update sav related to lines in kernel

Signed-off-by: Jean Privat <jean@pryen.org>

9 years agocomp: shortcut-range work also on closed ranges
Jean Privat [Fri, 8 Aug 2014 04:15:46 +0000 (00:15 -0400)]
comp: shortcut-range work also on closed ranges

Signed-off-by: Jean Privat <jean@pryen.org>

9 years agocomp: fix shortcut-range (succ was removed)
Jean Privat [Fri, 8 Aug 2014 04:15:08 +0000 (00:15 -0400)]
comp: fix shortcut-range (succ was removed)

Signed-off-by: Jean Privat <jean@pryen.org>

9 years agolib/std: Float has their own `==` and Comparable-related methods
Jean Privat [Fri, 8 Aug 2014 03:09:24 +0000 (23:09 -0400)]
lib/std: Float has their own `==` and Comparable-related methods

Signed-off-by: Jean Privat <jean@pryen.org>

9 years agolib/string_exp/utf8_no_index: Bytelen now defined in Text
Lucas Bajolet [Thu, 7 Aug 2014 16:58:12 +0000 (12:58 -0400)]
lib/string_exp/utf8_no_index: Bytelen now defined in Text

Signed-off-by: Lucas Bajolet <r4pass@hotmail.com>

9 years agolib/string_exp/utf8_no_index: Adapted String methods to UTF-8 string
Lucas Bajolet [Wed, 6 Aug 2014 15:18:14 +0000 (11:18 -0400)]
lib/string_exp/utf8_no_index: Adapted String methods to UTF-8 string

Signed-off-by: Lucas Bajolet <r4pass@hotmail.com>

9 years agolib/string_exp/utf8_no_index: Added char_at, does the same as [] but with UnicodeChar.
Lucas Bajolet [Mon, 4 Aug 2014 16:54:03 +0000 (12:54 -0400)]
lib/string_exp/utf8_no_index: Added char_at, does the same as [] but with UnicodeChar.

Signed-off-by: Lucas Bajolet <r4pass@hotmail.com>

9 years agolib/string_exp/utf8_no_index: Added new constructor for UnicodeChar
Lucas Bajolet [Mon, 4 Aug 2014 16:53:26 +0000 (12:53 -0400)]
lib/string_exp/utf8_no_index: Added new constructor for UnicodeChar

Signed-off-by: Lucas Bajolet <r4pass@hotmail.com>

9 years agolib/string_exp/utf8_no_index: Introducing utf8 variant without indexes
Lucas Bajolet [Mon, 4 Aug 2014 16:52:56 +0000 (12:52 -0400)]
lib/string_exp/utf8_no_index: Introducing utf8 variant without indexes

Signed-off-by: Lucas Bajolet <r4pass@hotmail.com>

9 years agoMerge: jwrapper: New features added
Jean Privat [Thu, 7 Aug 2014 11:07:08 +0000 (07:07 -0400)]
Merge: jwrapper: New features added

This may be considered as the first release of jwrapper. Here's a list of the new implemented features since the last PR:
* Grep into `lib/android` to retrieve already wrapped classes
* Auto-generate licence
* Basic user interface added
* Choice between :
  * Auto-wrap unknown types
  * Comment methods containing unknown types

Pull-Request: #641
Reviewed-by: Alexis Laferrière <alexis.laf@xymus.net>
Reviewed-by: Jean Privat <jean@pryen.org>
Reviewed-by: Lucas Bajolet <r4pass@hotmail.com>

9 years agolib/trees: improve bintrees efficiency
Jean Privat [Thu, 7 Aug 2014 02:04:46 +0000 (22:04 -0400)]
lib/trees: improve bintrees efficiency

First, comment potential slow asserts in the hot-path.
These asserts are needed only to check that the implementation is
correct.

Second, use a single `<=>` instead of doing multiple comparisons.
So reduce the total number of comparisons.

On a real instance (IA-related problems), the gain is the following:

RBTreeMap, 8738 insertions, 24855 accesses
Before: 2.54s
After: 0.07s (so, in the noise)

Signed-off-by: Jean Privat <jean@pryen.org>

9 years agoMerge: Sys.run
Jean Privat [Thu, 7 Aug 2014 01:24:03 +0000 (21:24 -0400)]
Merge: Sys.run

Add `Sys::run` as the new entry point of programs.
So some modules (eg. platforms) can more easily inject code before or after the execution of programs.

Pull-Request: #652
Reviewed-by: Lucas Bajolet <r4pass@hotmail.com>

9 years agocontrib/jwrapper: Added jwrapper.res to sav
Frédéric Vachon [Mon, 4 Aug 2014 01:42:01 +0000 (21:42 -0400)]
contrib/jwrapper: Added jwrapper.res to sav

Signed-off-by: Frédéric Vachon <fredvac@gmail.com>

9 years agoMerge: Improve hash perfs
Jean Privat [Thu, 7 Aug 2014 01:24:01 +0000 (21:24 -0400)]
Merge: Improve hash perfs

Some improvements.

## nitg nitg.nit
before: 0m9.688s
after: 0m9.172s

## ./nit naive_interpreter.nit
usage of HashCollection before:
average length: 128.41
average capacity: 294.06 (229.01%)
average number of collisions: 113571 (35.27%)
average length of collision: 3.74

usage of HashCollection after:
average length: 128.40
average capacity: 327.42 (255.00%)
average number of collisions: 62608 (19.44%)
average length of collision: 2.29

All this is needed for the ai library

Pull-Request: #651
Reviewed-by: Lucas Bajolet <r4pass@hotmail.com>

9 years agocontrib/jwrapper: Added README
Frédéric Vachon [Mon, 4 Aug 2014 01:25:29 +0000 (21:25 -0400)]
contrib/jwrapper: Added README

Signed-off-by: Frédéric Vachon <fredvac@gmail.com>

9 years agocontrib/jwrapper: Auto-generate licence
Frédéric Vachon [Mon, 4 Aug 2014 01:52:03 +0000 (21:52 -0400)]
contrib/jwrapper: Auto-generate licence

Signed-off-by: Frédéric Vachon <fredvac@gmail.com>

9 years agoMerge: tests: remove duplicated contrib tests from testfull
Jean Privat [Thu, 7 Aug 2014 01:23:49 +0000 (21:23 -0400)]
Merge: tests: remove duplicated contrib tests from testfull

The previous globs already get them

Pull-Request: #648
Reviewed-by: Lucas Bajolet <r4pass@hotmail.com>

9 years agoMerge: A few Java and Android fixes
Jean Privat [Thu, 7 Aug 2014 01:23:21 +0000 (21:23 -0400)]
Merge: A few Java and Android fixes

Pull-Request: #649
Reviewed-by: Jean Privat <jean@pryen.org>
Reviewed-by: Lucas Bajolet <r4pass@hotmail.com>

9 years agocontrib/jwrapper: Added basic UI
Frédéric Vachon [Mon, 4 Aug 2014 01:24:02 +0000 (21:24 -0400)]
contrib/jwrapper: Added basic UI

Signed-off-by: Frédéric Vachon <fredvac@gmail.com>

9 years agocontrib/jwrapper: Retrieves existing extern classes using grep
Frédéric Vachon [Mon, 4 Aug 2014 01:22:48 +0000 (21:22 -0400)]
contrib/jwrapper: Retrieves existing extern classes using grep

Signed-off-by: Frédéric Vachon <fredvac@gmail.com>

9 years agotests: update sav because line changes in standard::array
Jean Privat [Thu, 7 Aug 2014 00:19:51 +0000 (20:19 -0400)]
tests: update sav because line changes in standard::array

Signed-off-by: Jean Privat <jean@pryen.org>

9 years agolib/std: improve implementation of `Set.hash` and `Sequence.hash`
Jean Privat [Wed, 6 Aug 2014 19:44:25 +0000 (15:44 -0400)]
lib/std: improve implementation of `Set.hash` and `Sequence.hash`

Signed-off-by: Jean Privat <jean@pryen.org>

9 years agolib/std: better policy for enlarging HashCollection
Jean Privat [Wed, 6 Aug 2014 19:32:55 +0000 (15:32 -0400)]
lib/std: better policy for enlarging HashCollection

Signed-off-by: Jean Privat <jean@pryen.org>

9 years agotests: update because line changes in kernel.nit
Jean Privat [Wed, 6 Aug 2014 23:56:13 +0000 (19:56 -0400)]
tests: update because line changes in kernel.nit

Signed-off-by: Jean Privat <jean@pryen.org>

9 years agotests: add base_redef_run
Jean Privat [Wed, 6 Aug 2014 20:17:21 +0000 (16:17 -0400)]
tests: add base_redef_run

Signed-off-by: Jean Privat <jean@pryen.org>

9 years agolib/kernel: introduce `Sys::run` as the entry point of programs
Jean Privat [Wed, 6 Aug 2014 20:14:47 +0000 (16:14 -0400)]
lib/kernel: introduce `Sys::run` as the entry point of programs

Signed-off-by: Jean Privat <jean@pryen.org>

9 years agoengines: the entry point is `sys.run` or else `sys.main`
Jean Privat [Wed, 6 Aug 2014 20:07:35 +0000 (16:07 -0400)]
engines: the entry point is `sys.run` or else `sys.main`

Signed-off-by: Jean Privat <jean@pryen.org>

9 years agolib/std: more efficient Collection::to_a
Jean Privat [Wed, 6 Aug 2014 19:32:12 +0000 (15:32 -0400)]
lib/std: more efficient Collection::to_a

Signed-off-by: Jean Privat <jean@pryen.org>

9 years agolib/java: move up `to_java_string` from `String` to `Text`
Alexis Laferrière [Sat, 2 Aug 2014 04:06:23 +0000 (00:06 -0400)]
lib/java: move up `to_java_string` from `String` to `Text`

Signed-off-by: Alexis Laferrière <alexis.laf@xymus.net>

9 years agojava: allow code block inside generated class (works only on Android)
Alexis Laferrière [Tue, 5 Aug 2014 15:16:01 +0000 (11:16 -0400)]
java: allow code block inside generated class (works only on Android)

Signed-off-by: Alexis Laferrière <alexis.laf@xymus.net>

9 years agoandroid: compile C code with an "infinity" of threads (~12% faster)
Alexis Laferrière [Tue, 5 Aug 2014 15:15:42 +0000 (11:15 -0400)]
android: compile C code with an "infinity" of threads (~12% faster)

Signed-off-by: Alexis Laferrière <alexis.laf@xymus.net>

9 years agoandroid: fix min/max/taget_api_version annotation reduce
Alexis Laferrière [Mon, 4 Aug 2014 19:24:43 +0000 (15:24 -0400)]
android: fix min/max/taget_api_version annotation reduce

Signed-off-by: Alexis Laferrière <alexis.laf@xymus.net>

9 years agotests: remove duplicated contrib tests from testfull
Jean Privat [Wed, 6 Aug 2014 03:13:36 +0000 (23:13 -0400)]
tests: remove duplicated contrib tests from testfull

The previous globs already get. them

Signed-off-by: Jean Privat <jean@pryen.org>

9 years agoMerge: vim: allow spell check on string literals and comments.
Jean Privat [Tue, 5 Aug 2014 19:37:07 +0000 (15:37 -0400)]
Merge: vim: allow spell check on string literals and comments.

Just `:set spell` to see errors, and `z=` on highlighted words to see
suggestions.

Pull-Request: #643
Reviewed-by: Lucas Bajolet <r4pass@hotmail.com>
Reviewed-by: Alexis Laferrière <alexis.laf@xymus.net>
Reviewed-by: Frédéric Vachon <fredvac@gmail.com>
Reviewed-by: Alexandre Terrasa <alexandre@moz-code.org>

9 years agovim: allow spell check on string literals and comments.
Jean Privat [Tue, 5 Aug 2014 14:35:02 +0000 (10:35 -0400)]
vim: allow spell check on string literals and comments.

Just `:set spell` to see errors, and `z=` on highlighted words to see
suggestions.

Signed-off-by: Jean Privat <jean@pryen.org>

9 years agolib/realtime: Add Timespec::to_f (and to_s) so one can print them easyly
Jean Privat [Tue, 5 Aug 2014 02:27:15 +0000 (22:27 -0400)]
lib/realtime: Add Timespec::to_f (and to_s) so one can print them easyly

Signed-off-by: Jean Privat <jean@pryen.org>

9 years agoMerge: sendmail & detect programs in path (also used in Inkscape)
Jean Privat [Mon, 4 Aug 2014 16:21:36 +0000 (12:21 -0400)]
Merge: sendmail & detect programs in path (also used in Inkscape)

Pull-Request: #636
Reviewed-by: Jean Privat <jean@pryen.org>
Reviewed-by: Alexandre Terrasa <alexandre@moz-code.org>

9 years agoMerge: lib/standard: rework and factorise queues and heaps.
Jean Privat [Mon, 4 Aug 2014 16:21:21 +0000 (12:21 -0400)]
Merge: lib/standard: rework and factorise queues and heaps.

Rewrite most of the queue and head data-structures.

1. move them is their own module (instead of the end of the collection files)
2. make Queue the abstract queuing interface (I need this for my IA library)
3. faster Heap implementation

Pull-Request: #639
Reviewed-by: Alexandre Terrasa <alexandre@moz-code.org>
Reviewed-by: Lucas Bajolet <r4pass@hotmail.com>

9 years agoMerge: introduce and use MModuleData
Jean Privat [Mon, 4 Aug 2014 16:21:08 +0000 (12:21 -0400)]
Merge: introduce and use MModuleData

This introduces a helper module `mmodule_data` to store and retrieve arbitrary data trough module hierarchies.
Then `annotation` helper is extended to simplify the retrieval of annotations trough hierarchies of moduledecl
This allows the simplification of `android_annotations` by the use of the new services.

user-declared annotations in then implemented annotations (closes #623)

Pull-Request: #633
Reviewed-by: Alexis Laferrière <alexis.laf@xymus.net>
Reviewed-by: Alexandre Terrasa <alexandre@moz-code.org>

9 years agotests: base_user_annotation4 for multiple annotation declaration
Jean Privat [Thu, 31 Jul 2014 13:03:05 +0000 (09:03 -0400)]
tests: base_user_annotation4 for multiple annotation declaration

Signed-off-by: Jean Privat <jean@pryen.org>

9 years agocheck_annotation: warn if a module declares again annotation
Jean Privat [Thu, 31 Jul 2014 13:01:28 +0000 (09:01 -0400)]
check_annotation: warn if a module declares again annotation

Signed-off-by: Jean Privat <jean@pryen.org>

9 years agotests: updates for user-declated annotations
Jean Privat [Thu, 31 Jul 2014 05:59:22 +0000 (01:59 -0400)]
tests: updates for user-declated annotations

Signed-off-by: Jean Privat <jean@pryen.org>

9 years agolib: add user-declared annotations on some modules
Jean Privat [Thu, 31 Jul 2014 05:38:12 +0000 (01:38 -0400)]
lib: add user-declared annotations on some modules

Signed-off-by: Jean Privat <jean@pryen.org>

9 years agosrc: new phase check_annotation
Jean Privat [Thu, 31 Jul 2014 05:36:47 +0000 (01:36 -0400)]
src: new phase check_annotation

Signed-off-by: Jean Privat <jean@pryen.org>

9 years agoandroid: remove priority_annotation_on_modules and use lookup_annotation_on_modules...
Jean Privat [Thu, 31 Jul 2014 03:31:37 +0000 (23:31 -0400)]
android: remove priority_annotation_on_modules and use lookup_annotation_on_modules instead

Signed-off-by: Jean Privat <jean@pryen.org>

9 years agoannotation: add lookup_annotation_on_modules and related methods
Jean Privat [Thu, 31 Jul 2014 03:28:37 +0000 (23:28 -0400)]
annotation: add lookup_annotation_on_modules and related methods

Signed-off-by: Jean Privat <jean@pryen.org>

9 years agolib/standard: rework and factorise queues and heaps.
Jean Privat [Fri, 1 Aug 2014 18:22:48 +0000 (14:22 -0400)]
lib/standard: rework and factorise queues and heaps.

Rewrite most of the queue and head data-structures.

1. move them is their own module (instead of the end of the collection files)
2. make Queue the abstract queuing interface (I need this for my IA library)
3. faster Heap implementation

Signed-off-by: Jean Privat <jean@pryen.org>

9 years agolib: intro the sendmail module
Alexis Laferrière [Fri, 25 Jul 2014 23:14:20 +0000 (19:14 -0400)]
lib: intro the sendmail module

Signed-off-by: Alexis Laferrière <alexis.laf@xymus.net>

9 years agoversion 0.6.7 v0.6.7
Jean Privat [Mon, 4 Aug 2014 14:47:10 +0000 (10:47 -0400)]
version 0.6.7

Signed-off-by: Jean Privat <jean@pryen.org>

9 years agoMerge: Add and icon, an app name and a version for Ballz & fix version for Moles
Jean Privat [Mon, 4 Aug 2014 14:44:14 +0000 (10:44 -0400)]
Merge: Add and icon, an app name and a version for Ballz & fix version for Moles

Pull-Request: #635
Reviewed-by: Jean Privat <jean@pryen.org>
Reviewed-by: Alexandre Terrasa <alexandre@moz-code.org>

9 years agoMerge: Minor fixes to the Android support
Jean Privat [Mon, 4 Aug 2014 14:44:11 +0000 (10:44 -0400)]
Merge: Minor fixes to the Android support

Pull-Request: #634
Reviewed-by: Jean Privat <jean@pryen.org>
Reviewed-by: Alexandre Terrasa <alexandre@moz-code.org>

9 years agoinkscape_tools: detect if inkscape is installed
Alexis Laferrière [Fri, 1 Aug 2014 13:47:32 +0000 (09:47 -0400)]
inkscape_tools: detect if inkscape is installed

Signed-off-by: Alexis Laferrière <alexis.laf@xymus.net>