nit.git
8 years agosrc: Added complete FlatString generation from compiler
Lucas Bajolet [Thu, 27 Aug 2015 18:29:25 +0000 (14:29 -0400)]
src: Added complete FlatString generation from compiler

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

8 years agolib/standard: More uses of new FlatString.full when appropriate
Lucas Bajolet [Wed, 26 Aug 2015 20:42:28 +0000 (16:42 -0400)]
lib/standard: More uses of new FlatString.full when appropriate

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

8 years agoMerge: Relocate examples
Jean Privat [Fri, 28 Aug 2015 13:11:06 +0000 (09:11 -0400)]
Merge: Relocate examples

Some short programs in `examples` are related to specific libraries. Therefore to improve coupling and cohesion, these examples are moved into a subdirectory of their associated libs.

Basically, it means moving `examples/foo` into `lib/foo/examples`

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

8 years agogettext: add langannot.pot to the .gitignore
Jean Privat [Fri, 28 Aug 2015 05:22:28 +0000 (01:22 -0400)]
gettext: add langannot.pot to the .gitignore

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

8 years agotests: skip lib/android/examples/src/ui_test.nit on osx and nint
Jean Privat [Fri, 28 Aug 2015 13:09:08 +0000 (09:09 -0400)]
tests: skip lib/android/examples/src/ui_test.nit on osx and nint

because now all examples of lib are tested.

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

8 years agoMerge: Small fix to iOS support
Jean Privat [Fri, 28 Aug 2015 05:24:36 +0000 (01:24 -0400)]
Merge: Small fix to iOS support

Add `ONLY_ACTIVE_ARCH=NO` to the xcode call because it is required by the latest xcode.

For the iOS example, you would expect `AppKit.h` to be included by the imported module. It is, but at the same time it is ignored for performance reason since none of the imported module services are used. This will be fixed in a future PR. For now, we add the include locally as it is a better example and happen to avoid the problem.

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

8 years agotests: update listfull.sh for new examples location
Jean Privat [Fri, 28 Aug 2015 02:45:55 +0000 (22:45 -0400)]
tests: update listfull.sh for new examples location

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

8 years agolib: move `examples/mpi` to `lib/mpi/examples`
Jean Privat [Tue, 25 Aug 2015 19:02:18 +0000 (15:02 -0400)]
lib: move `examples/mpi` to `lib/mpi/examples`

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

8 years agolib: move mpi to its own project directory
Jean Privat [Tue, 25 Aug 2015 19:01:30 +0000 (15:01 -0400)]
lib: move mpi to its own project directory

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

8 years agolib: move `examples/lang*` to `lib/gettext/examples`
Jean Privat [Thu, 27 Aug 2015 15:21:02 +0000 (11:21 -0400)]
lib: move `examples/lang*` to `lib/gettext/examples`

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

8 years agolib: move gettext to its own project directory
Jean Privat [Tue, 25 Aug 2015 18:49:30 +0000 (14:49 -0400)]
lib: move gettext to its own project directory

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

8 years agolib: move `examples/pnacl` to `lib/pnacl/examples`
Jean Privat [Tue, 25 Aug 2015 18:47:02 +0000 (14:47 -0400)]
lib: move `examples/pnacl` to `lib/pnacl/examples`

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

8 years agolib: move pnacl to its own project directory
Jean Privat [Tue, 25 Aug 2015 18:45:46 +0000 (14:45 -0400)]
lib: move pnacl to its own project directory

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

8 years agopnacl: fix whitespaces
Jean Privat [Wed, 26 Aug 2015 19:19:18 +0000 (15:19 -0400)]
pnacl: fix whitespaces

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

8 years agoMerge: Rename `standard` as `core`
Jean Privat [Fri, 28 Aug 2015 02:42:54 +0000 (22:42 -0400)]
Merge: Rename `standard` as `core`

Let's see what will break

Close #1434

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

8 years agoMerge: Work towards an Android testing framework and fix a few bugs
Jean Privat [Fri, 28 Aug 2015 02:42:40 +0000 (22:42 -0400)]
Merge: Work towards an Android testing framework and fix a few bugs

Update check_android.sh to accept any APK file, many files at once, deduce the package name from the APK and accept some command line arguments. Users can manage their own emulator (or device) and they can show the emulator window.

Rename mnit_simple to mnit_test with 2 alternatives on Android: minimal and complete. Also fix what was broken in the complete test and the lib. The complete test still doesn't work because of a bug in `android::audio` fixed by #1587 which is not yet merged.

Consider this PR as the first part for integrating Android test in jenkins. It will be easier to tweak the integration with already the script in master.

This PR does not fix the issue with some Android apps where they crash after about 30 seconds, but it could help prevent future regressions.

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

8 years agonitc: add ONLY_ACTIVE_ARCH to the xcodebuild invokation
Alexis Laferrière [Tue, 25 Aug 2015 15:53:43 +0000 (11:53 -0400)]
nitc: add ONLY_ACTIVE_ARCH to the xcodebuild invokation

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

8 years agolib/cocoa: cocoa_message_box import AppKit.h as it doesn't use app_kit
Alexis Laferrière [Tue, 25 Aug 2015 15:39:24 +0000 (11:39 -0400)]
lib/cocoa: cocoa_message_box import AppKit.h as it doesn't use app_kit

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

8 years agolib: move `examples/emscripten` to `lib/emscripten/examples`
Jean Privat [Tue, 25 Aug 2015 18:42:30 +0000 (14:42 -0400)]
lib: move `examples/emscripten` to `lib/emscripten/examples`

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

8 years agolib: move lib/emscripten to its own project directory
Jean Privat [Tue, 25 Aug 2015 18:41:28 +0000 (14:41 -0400)]
lib: move lib/emscripten to its own project directory

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

8 years agoemscripten: fix whitespaces
Jean Privat [Wed, 26 Aug 2015 19:22:06 +0000 (15:22 -0400)]
emscripten: fix whitespaces

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

8 years agotests: update thing to `core` (instead of `standard`)
Jean Privat [Thu, 27 Aug 2015 02:18:58 +0000 (22:18 -0400)]
tests: update thing to `core` (instead of `standard`)

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

8 years agonitunit: special case in on `core` now
Jean Privat [Wed, 26 Aug 2015 19:01:42 +0000 (15:01 -0400)]
nitunit: special case in on `core` now

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

8 years agonitmetrics: kill unused functions `is_standard`
Jean Privat [Wed, 26 Aug 2015 19:01:13 +0000 (15:01 -0400)]
nitmetrics: kill unused functions `is_standard`

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

8 years agoloader: load `core` by default
Jean Privat [Wed, 26 Aug 2015 19:00:45 +0000 (15:00 -0400)]
loader: load `core` by default

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

8 years agocode: update references to `standard`
Jean Privat [Wed, 26 Aug 2015 19:00:15 +0000 (15:00 -0400)]
code: update references to `standard`

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

8 years agolib: add placebo `standard` to enable the bootstrap.
Jean Privat [Wed, 26 Aug 2015 18:58:04 +0000 (14:58 -0400)]
lib: add placebo `standard` to enable the bootstrap.

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

8 years agolib: rename `standard` as `core`
Jean Privat [Wed, 26 Aug 2015 18:53:03 +0000 (14:53 -0400)]
lib: rename `standard` as `core`

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

8 years agolib/standard: fix whitespaces before renaming
Jean Privat [Wed, 26 Aug 2015 20:14:08 +0000 (16:14 -0400)]
lib/standard: fix whitespaces before renaming

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

8 years agotests: remove orphaned savs
Alexis Laferrière [Tue, 25 Aug 2015 12:20:39 +0000 (08:20 -0400)]
tests: remove orphaned savs

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

8 years agolib/android: fix `Bundle::string` behavior on null strings from Java
Alexis Laferrière [Mon, 24 Aug 2015 17:29:54 +0000 (13:29 -0400)]
lib/android: fix `Bundle::string` behavior on null strings from Java

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

8 years agolib/android: use a global reference for `Bundle::native_bundle`
Alexis Laferrière [Mon, 24 Aug 2015 17:26:31 +0000 (13:26 -0400)]
lib/android: use a global reference for `Bundle::native_bundle`

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

8 years agolib/android: apply audio hook on portable methods
Alexis Laferrière [Sun, 23 Aug 2015 16:16:14 +0000 (12:16 -0400)]
lib/android: apply audio hook on portable methods

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

8 years agocontrib/mnit_test: add icons
Alexis Laferrière [Mon, 24 Aug 2015 16:41:40 +0000 (12:41 -0400)]
contrib/mnit_test: add icons

Using the PNG version to simplify the compilation process which is much
more complex from an SVG file. And I misplaced the source...

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

8 years agocontrib/mnit_test: improve documentation of `test_audio`
Alexis Laferrière [Mon, 24 Aug 2015 17:45:26 +0000 (13:45 -0400)]
contrib/mnit_test: improve documentation of `test_audio`

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

8 years agocontrib/mnit_test: deactivate the test reading `long` from shared_preferences
Alexis Laferrière [Mon, 24 Aug 2015 17:28:24 +0000 (13:28 -0400)]
contrib/mnit_test: deactivate the test reading `long` from shared_preferences

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

8 years agocontrib/mnit_test: deactivate the res/strings test to enable app_name
Alexis Laferrière [Mon, 24 Aug 2015 13:22:12 +0000 (09:22 -0400)]
contrib/mnit_test: deactivate the res/strings test to enable app_name

Defining a custom res/values/strings.xml prevents nitc from generating a
custom one with the annotation app_name as the resource app_name. This
kept use from having different launcher names for the minimal and
complete test versions.

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

8 years agocontrib/mnit_test: update the fdroid metadata file
Alexis Laferrière [Mon, 24 Aug 2015 13:06:26 +0000 (09:06 -0400)]
contrib/mnit_test: update the fdroid metadata file

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

8 years agocontrib/mnit_test: compile 2 versions of mnit_simple for Android
Alexis Laferrière [Mon, 24 Aug 2015 12:59:33 +0000 (08:59 -0400)]
contrib/mnit_test: compile 2 versions of mnit_simple for Android

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

8 years agocontrib/mnit_test: move mnit_simple to contrib/mnit_test
Alexis Laferrière [Mon, 24 Aug 2015 13:05:43 +0000 (09:05 -0400)]
contrib/mnit_test: move mnit_simple to contrib/mnit_test

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

8 years agocontrib/crazy_moles: update Makefile to use the new check-android.sh
Alexis Laferrière [Mon, 24 Aug 2015 17:58:41 +0000 (13:58 -0400)]
contrib/crazy_moles: update Makefile to use the new check-android.sh

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

8 years agoMerge: New loader policy that features project.ini
Jean Privat [Wed, 26 Aug 2015 18:27:03 +0000 (14:27 -0400)]
Merge: New loader policy that features project.ini

This introduce the new loader policy by adapting the existing loader.
The API it still as bad as before but the behavior is expected to be better. Close #1250

The changes impact two decisions made by the loader:

* how to find the project a module belongs to? ie get the root project of an arbitrary file.
* how to find a named module in a project? ie get (and load) the module named `foo` in a mproject object.

The new loader use a recursive directory search for both answers, whereas the older loader only looked at some specific paths.
By the way, the new code use `String::files` and `String::file_stat` (they where unneeded by the previous loader, life was simpler back then). The light FFI used by the bootstrap make this possible.

Here is a detail of the new policy:

* A project is a directory identified with a `project.ini` file.
  Only the existence of the `.ini` file matter, the content is not used yet.
* A group is just a sub-directory of a project; there is no more naming or structural convention (ie hack).
* A module either belongs to a project, or is a standalone module (also called singleton project). This one is not new.

To know the project a module belongs to, its directory is recursively searched up to the `/` directory.
If a project is found, then the module belongs to it.
If no project is found, then the module is a standalone module.

Note: to simplify the migration from the previous loader, a special file `projects.ini` (with a plural) in a directory indicates that sub-directories are projects, even without a `project.ini` file.
These files simplify the PR as only some `projects.ini` files are needed (eg `lib/projects.ini`)

To search for a module in a project, the named module is searched in the directory and subdirectories of the project.

This PR also expose some vocabulary for the end user. Maybe some terms could be improved before the PR is merged. Some propositions:

* rename `project` as `package` (so `package.ini` instead of `project.ini`). Might be non-POLA from people coming from a Java ecosystem.
* rename `group` as `directory`. With the new policy, groups are more transparent than ever and are only here for the programmer to group modules as he prefers.

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

8 years agoinscape_tool: isolate the test directory since generated files are broken
Jean Privat [Tue, 25 Aug 2015 19:37:57 +0000 (15:37 -0400)]
inscape_tool: isolate the test directory since generated files are broken

See #1657

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

8 years agoplatform/android: the root group is no more src, thus no need to `..` from it.
Jean Privat [Tue, 25 Aug 2015 18:29:29 +0000 (14:29 -0400)]
platform/android: the root group is no more src, thus no need to `..` from it.

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

8 years agotests: update some error messages because of the new loader policy
Jean Privat [Mon, 24 Aug 2015 20:27:54 +0000 (16:27 -0400)]
tests: update some error messages because of the new loader policy

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

8 years agotests: improve loader test with a more complex project1 directory
Jean Privat [Mon, 24 Aug 2015 20:04:23 +0000 (16:04 -0400)]
tests: improve loader test with a more complex project1 directory

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

8 years agoloader: change get_mgroup policy and search for a `project.ini` in parent directories
Jean Privat [Mon, 24 Aug 2015 19:57:45 +0000 (15:57 -0400)]
loader: change get_mgroup policy and search for a `project.ini` in parent directories

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

8 years agoCreate empty `projects.ini` and `project.ini` for the new loader policy
Jean Privat [Mon, 24 Aug 2015 20:08:45 +0000 (16:08 -0400)]
Create empty `projects.ini` and `project.ini` for the new loader policy

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

8 years agoloader: get_mgroup check and assign the `project.ini` file to projects
Jean Privat [Mon, 24 Aug 2015 19:55:11 +0000 (15:55 -0400)]
loader: get_mgroup check and assign the `project.ini` file to projects

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

8 years agoloader: get_mgroup filter out non-directories
Jean Privat [Mon, 24 Aug 2015 19:49:17 +0000 (15:49 -0400)]
loader: get_mgroup filter out non-directories

This was implicit because non-directories do not match the heuristics

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

8 years agoloader: projects might have a ini file associated
Jean Privat [Mon, 24 Aug 2015 19:46:40 +0000 (15:46 -0400)]
loader: projects might have a ini file associated

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

8 years agoloader: identify_file distinguishes singleton projects in the verbose message
Jean Privat [Mon, 24 Aug 2015 19:47:28 +0000 (15:47 -0400)]
loader: identify_file distinguishes singleton projects in the verbose message

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

8 years agomisc/jenkins: improve check-android
Alexis Laferrière [Sun, 23 Aug 2015 16:16:32 +0000 (12:16 -0400)]
misc/jenkins: improve check-android

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

8 years agoloader: use `mmodule_paths_by_name` to simplify `search_mmodule_by_name` and `search_...
Jean Privat [Mon, 24 Aug 2015 19:41:15 +0000 (15:41 -0400)]
loader: use `mmodule_paths_by_name` to simplify `search_mmodule_by_name` and `search_module_in_paths`

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

8 years agoloader: introduce `MGroup::mmodule_paths_by_name` to search for modules
Jean Privat [Mon, 24 Aug 2015 19:40:35 +0000 (15:40 -0400)]
loader: introduce `MGroup::mmodule_paths_by_name` to search for modules

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

8 years agoloader: scan_group does not recursively scan in case of nested project
Jean Privat [Mon, 24 Aug 2015 19:37:59 +0000 (15:37 -0400)]
loader: scan_group does not recursively scan in case of nested project

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

8 years agomisc/jenkins: move crazy_moles/check-android.sh to misc/jenkins/
Alexis Laferrière [Mon, 24 Aug 2015 15:42:01 +0000 (11:42 -0400)]
misc/jenkins: move crazy_moles/check-android.sh to misc/jenkins/

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

8 years agoMerge: Beefup check contrib
Jean Privat [Mon, 24 Aug 2015 17:56:56 +0000 (13:56 -0400)]
Merge: Beefup check contrib

This change make the caller pass the additional `make` rules to execute. So now `check` or `android` can be given to mass build projects that expose such rules.

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

8 years agoMerge: Fix app.nit Calc example
Jean Privat [Mon, 24 Aug 2015 17:56:50 +0000 (13:56 -0400)]
Merge: Fix app.nit Calc example

Partial revert of cbbb5225 because the Android version of Calc need only `android::ui` and not `android`. The default entry point of `android` use `native_app_glue` as base activity/framework, whereas UI apps use `nit_activity`. This caused the apk file to show 2 activities in the launch menu.

Also recent changes (probably) make calling `to_i` and thus `to_n` on empty strings crash. I've updated the calculator to avoid this with a new friendlier behavior in such cases.

I've also updated `to_n` to return 0 on empty strings. This preserve the old behavior, it is a neutral fallback value and it fits with `"".is_numeric == true`. I did not touch `to_i`.

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

8 years agoMerge: Report check contrib
Jean Privat [Mon, 24 Aug 2015 17:56:46 +0000 (13:56 -0400)]
Merge: Report check contrib

Thanks to `misc/jenkins/check_contrib.sh`, programs in contrib can be tested for regressions.
Unfortunately, sometime the result of the test is not reported (only printed on screen). This PR update some of these to really report things.

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

8 years agoMerge: Benchmark strings update
Jean Privat [Mon, 24 Aug 2015 17:56:44 +0000 (13:56 -0400)]
Merge: Benchmark strings update

Update on the benchmarks for String, four micro-benchmarks are now available:

* chain_concat: measures the performance of concatenation
* index_bench: measures random access in a String
* iteration_bench: measures the performance of iteration on a string
* substr_bench: measures the performance of substring on a string

The logic for the benches has changed a lot, instead of working locally with the different structures and having a directory with all the variations (more to come in a near future), now a patch directory is included with the benches for Strings, and will work with all the variants one by one on the chosen benchmark.

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

8 years agolib/markdown: ignore generated nitmd command
Jean Privat [Mon, 24 Aug 2015 14:19:07 +0000 (10:19 -0400)]
lib/markdown: ignore generated nitmd command

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

8 years agolib/json: make build nitcc if required
Jean Privat [Mon, 24 Aug 2015 14:17:40 +0000 (10:17 -0400)]
lib/json: make build nitcc if required

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

8 years agolib/standard: `Text::to_n` returns 0 as failsafe when receiver is empty
Alexis Laferrière [Fri, 21 Aug 2015 18:41:12 +0000 (14:41 -0400)]
lib/standard: `Text::to_n` returns 0 as failsafe when receiver is empty

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

8 years agolib/app: add FIXME to the conditional importation of android::ui
Alexis Laferrière [Fri, 21 Aug 2015 18:25:40 +0000 (14:25 -0400)]
lib/app: add FIXME to the conditional importation of android::ui

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

8 years agoexamples/calculator: add a debug option
Alexis Laferrière [Fri, 21 Aug 2015 18:16:38 +0000 (14:16 -0400)]
examples/calculator: add a debug option

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

8 years agoexamples/calculator: avoid crash from call to `to_n` on empty strings
Alexis Laferrière [Fri, 21 Aug 2015 18:16:22 +0000 (14:16 -0400)]
examples/calculator: avoid crash from call to `to_n` on empty strings

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

8 years agoexamples/calculator: fix Android version to use nit_activity only
Alexis Laferrière [Fri, 21 Aug 2015 17:49:29 +0000 (13:49 -0400)]
examples/calculator: fix Android version to use nit_activity only

This is a partial revert of cbbb5225. The entrypoint of `android` use
`native_app_glue`, which led to craming 2 activities in the apk file.

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

8 years agoMerge: Text::is_int bugfix
Jean Privat [Sat, 22 Aug 2015 02:59:08 +0000 (22:59 -0400)]
Merge: Text::is_int bugfix

Fix a bug that caused an assert failed when accessing an empty string in `Text::is_int`

Reported by @xymus with PR #1649

Pull-Request: #1650
Reviewed-by: Alexis Laferrière <alexis.laf@xymus.net>
Reviewed-by: Jean Privat <jean@pryen.org>

8 years agocheck_contrib: additional rules are given by arguments. beefup_check_contrib
Jean Privat [Sat, 22 Aug 2015 02:56:56 +0000 (22:56 -0400)]
check_contrib: additional rules are given by arguments.

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

8 years agocheck_contrib: also check lib
Jean Privat [Sat, 22 Aug 2015 02:54:58 +0000 (22:54 -0400)]
check_contrib: also check lib

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

8 years agoMerge: GitHub nitlang
Jean Privat [Fri, 21 Aug 2015 23:31:44 +0000 (19:31 -0400)]
Merge: GitHub nitlang

Migrate references from https://github.com/privat/nit to https://github.com/nitlang/nit

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

8 years agovarious lib and contrib doc: points to new github repo
Jean Privat [Fri, 21 Aug 2015 21:54:41 +0000 (17:54 -0400)]
various lib and contrib doc: points to new github repo

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

8 years agolib/github: use new github repo nitlang/nit in doc and tests
Jean Privat [Fri, 21 Aug 2015 21:53:34 +0000 (17:53 -0400)]
lib/github: use new github repo nitlang/nit in doc and tests

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

8 years agonitrpg: use new github repo
Jean Privat [Fri, 21 Aug 2015 21:52:17 +0000 (17:52 -0400)]
nitrpg: use new github repo

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

8 years agogithub_merge: use new github repo
Jean Privat [Fri, 21 Aug 2015 21:51:53 +0000 (17:51 -0400)]
github_merge: use new github repo

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

8 years agofdroid: update metadata with new github repo
Jean Privat [Fri, 21 Aug 2015 21:51:26 +0000 (17:51 -0400)]
fdroid: update metadata with new github repo

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

8 years agoMakefile: link generated doc with new github repo
Jean Privat [Fri, 21 Aug 2015 21:50:53 +0000 (17:50 -0400)]
Makefile: link generated doc with new github repo

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

8 years agolib/standard/fixed_ints: Added extra check on is_int to avoid crashing on indexed...
Lucas Bajolet [Fri, 21 Aug 2015 21:22:37 +0000 (17:22 -0400)]
lib/standard/fixed_ints: Added extra check on is_int to avoid crashing on indexed access

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

8 years agobenchs/strings: Makefile update
Lucas Bajolet [Fri, 21 Aug 2015 20:16:32 +0000 (16:16 -0400)]
benchs/strings: Makefile update

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

8 years agogitattributes: Stop watching for whitespaces in patch files
Lucas Bajolet [Wed, 19 Aug 2015 18:02:48 +0000 (14:02 -0400)]
gitattributes: Stop watching for whitespaces in patch files

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

8 years agobenchmarks/string: Added variants of lib to benchmarks
Lucas Bajolet [Tue, 18 Aug 2015 18:50:17 +0000 (14:50 -0400)]
benchmarks/string: Added variants of lib to benchmarks

* linear_substring: old version of String::substring
* buffered_ns: Perl-like over-allocation when concatenating Strings

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

8 years agoMerge: objcwrapper: wrapper generator to access Objective-C services from Nit
Jean Privat [Fri, 21 Aug 2015 19:48:25 +0000 (15:48 -0400)]
Merge: objcwrapper: wrapper generator to access Objective-C services from Nit

This PR introduces *objcwrapper*, a wrapper generator to access Objective-C services from Nit. At this point, *objcwrapper* can parse large Objective-C header files from Apple, and generate valid Nit code to wrap simple classes.

This PR contains the work of @Tagachi (as the first commit), some of my refactoring and new features. Because of this, there is some rewrite between commits. I chose to keep them as-is because it may be useful to debug regressions in the future. Actually, some of the refactoring remove a few features (such as super class declaration parsing), they will be brought back in future PRs.

This is a good base for future work but also a work in progress. Please restrain comments to structural and algorithmic problems, the doc and manual will be completed with the missing features.

Working features:
- [x] Generate a Nit extern class for each Objective-C `@interface` block.
- [x] Generate Nit extern methods to wrap Objective-C methods (`- `).
- [x] Generate getters for attributes `@property`.
- [x] Basic type conversion from Objective-C to Nit.
- [x] Partial detection of supported and unsupported types.

Todo features:
- [ ] Static functions (`+`) as top-level methods.
- [ ] Attribute setter (when not `readonly`).
- [ ] Intro and use an `ObjcType` instead of a `String`.
- [ ] Reproduce class hierarchy.
- [ ] Reuse wrapped classes (serialize the model alongside the wrapper).
- [ ] Deal with incompatible types: function pointers and others.
- [ ] Print a report on unsupported services.
- [ ] Support parsing GNUstep classes.
- [ ] Generate valid Nit code with Apple classes.
- [ ] Merge with *jwrapper*?

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

8 years agoMerge: lib/code/standard: hash no more divides object_id by 8
Jean Privat [Fri, 21 Aug 2015 19:22:36 +0000 (15:22 -0400)]
Merge: lib/code/standard: hash no more divides object_id by 8

Since objects are allocated on 64bit word boundaries, it made scene to remove the three 000 lower bits and increase the entropy of the hashcode.
Unfortunately, primitive objects like low Int values or Bool have a object_id lower than 8. shifting the 3 last bits was thus a bad idea.

Therefore, programs that used Int or Bool as keys (or part of keys) did have a lot of hash collisions.
For instance, before, for lib/ai/examples/puzzle.nit:

* number of collisions: 525428 (84.49%)
* average length of collisions: 12.44

After:

* number of collisions: 256223 (41.20%)
* average length of collisions: 3.16

The change have a limiting effect on programs that mainly use standard objects as keys.

Before, for nitc:

* number of collisions: 661715 (16.18%)
* average length of collisions: 2.24

After:

* number of collisions: 711614 (17.40%)
* average length of collisions: 2.25

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

8 years agonitiwiki: update results and report test error
Jean Privat [Fri, 21 Aug 2015 19:07:01 +0000 (15:07 -0400)]
nitiwiki: update results and report test error

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

8 years agocontrib/objcwrapper: write import only once per file
Alexis Laferrière [Fri, 21 Aug 2015 15:36:36 +0000 (11:36 -0400)]
contrib/objcwrapper: write import only once per file

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

8 years agocontrib/objcwrapper: refactor services and update style of CodeGenerator
Alexis Laferrière [Fri, 21 Aug 2015 15:47:35 +0000 (11:47 -0400)]
contrib/objcwrapper: refactor services and update style of CodeGenerator

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

8 years agocontrib/objcwrapper: revamp the AST visitor
Alexis Laferrière [Fri, 21 Aug 2015 15:29:19 +0000 (11:29 -0400)]
contrib/objcwrapper: revamp the AST visitor

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

8 years agocontrib/objcwrapper: rename a few AST nodes to 'parameter'
Alexis Laferrière [Thu, 20 Aug 2015 20:23:33 +0000 (16:23 -0400)]
contrib/objcwrapper: rename a few AST nodes to 'parameter'

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

8 years agocontrib/objcwrapper: add the -o option to specify the output file
Alexis Laferrière [Thu, 20 Aug 2015 20:02:16 +0000 (16:02 -0400)]
contrib/objcwrapper: add the -o option to specify the output file

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

8 years agocontrib/objcwrapper: intro basic framework for command line options
Alexis Laferrière [Thu, 20 Aug 2015 20:58:20 +0000 (16:58 -0400)]
contrib/objcwrapper: intro basic framework for command line options

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

8 years agocontrib/objcwrapper: refactor `init_with_alloc` as an attribute
Alexis Laferrière [Thu, 20 Aug 2015 20:01:28 +0000 (16:01 -0400)]
contrib/objcwrapper: refactor `init_with_alloc` as an attribute

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

8 years agocontrib/objcwrapper: merge some type-related tokens in grammar
Alexis Laferrière [Thu, 20 Aug 2015 16:30:18 +0000 (12:30 -0400)]
contrib/objcwrapper: merge some type-related tokens in grammar

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

8 years agocontrib/objcwrapper: move header_static to local folders
Alexis Laferrière [Wed, 12 Aug 2015 20:30:39 +0000 (16:30 -0400)]
contrib/objcwrapper: move header_static to local folders

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

8 years agocontrib/objcwrapper: add a new line at the end of the generated file
Alexis Laferrière [Wed, 12 Aug 2015 20:20:08 +0000 (16:20 -0400)]
contrib/objcwrapper: add a new line at the end of the generated file

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

8 years agocontrib/objcwrapper: report parsing errors
Alexis Laferrière [Tue, 11 Aug 2015 22:29:01 +0000 (18:29 -0400)]
contrib/objcwrapper: report parsing errors

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

8 years agocontrib/objcwrapper: add some doc and license
Alexis Laferrière [Tue, 11 Aug 2015 21:11:52 +0000 (17:11 -0400)]
contrib/objcwrapper: add some doc and license

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

8 years agocontrib/objcwrapper: add the check rule with a few tests
Alexis Laferrière [Fri, 7 Aug 2015 16:27:39 +0000 (12:27 -0400)]
contrib/objcwrapper: add the check rule with a few tests

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

8 years agocontrib/objcwrapper: add git structure and Makefile
Alexis Laferrière [Fri, 7 Aug 2015 16:05:35 +0000 (12:05 -0400)]
contrib/objcwrapper: add git structure and Makefile

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

8 years agocontrib/objcwrapper: intro objcwrapper base code
Arthur Delamare [Mon, 13 Apr 2015 22:42:20 +0000 (18:42 -0400)]
contrib/objcwrapper: intro objcwrapper base code

Signed-off-by: Arthur Delamare <arthur.delamare@viacesi.fr>
Signed-off-by: Alexis Laferrière <alexis.laf@xymus.net>