nit.git
10 years agoMerge: Nitgs optims
Jean Privat [Thu, 3 Apr 2014 20:06:32 +0000 (16:06 -0400)]
Merge: Nitgs optims

Some optimizations on the nitg-s side (low level).

Some use the new call-graph mechanism.

Pull-Request: #372
Reviewed-by: Alexis Laferrière <alexis.laf@xymus.net>

10 years agoballz: rename to `ballz_android` so tests can check it
Jean Privat [Thu, 3 Apr 2014 13:01:38 +0000 (09:01 -0400)]
ballz: rename to `ballz_android` so tests can check it

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

10 years agoMerge: Improvements to Moles
Jean Privat [Thu, 3 Apr 2014 12:51:59 +0000 (08:51 -0400)]
Merge: Improvements to Moles

* Make it playable and somewhat fun.
* Adds traps (after a while Groundhogs are looking for vengeance!)
* Use cuter images!
* Adapt the scale according to screen size on Android. The core module `moles` still use the image resolution as reference.

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

10 years agomoles: lower difficulty
Alexis Laferrière [Wed, 2 Apr 2014 13:03:38 +0000 (09:03 -0400)]
moles: lower difficulty

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

10 years agomoles: add rules to Makefile; android-install and pngs
Alexis Laferrière [Tue, 1 Apr 2014 23:23:14 +0000 (19:23 -0400)]
moles: add rules to Makefile; android-install and pngs

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

10 years agomoles: add traps!
Alexis Laferrière [Tue, 1 Apr 2014 23:21:12 +0000 (19:21 -0400)]
moles: add traps!

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

10 years agomoles: add signs
Alexis Laferrière [Tue, 1 Apr 2014 22:34:33 +0000 (18:34 -0400)]
moles: add signs

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

10 years agomoles: add details to holes
Alexis Laferrière [Tue, 1 Apr 2014 21:28:05 +0000 (17:28 -0400)]
moles: add details to holes

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

10 years agomoles: use a darker background color
Alexis Laferrière [Tue, 1 Apr 2014 21:27:12 +0000 (17:27 -0400)]
moles: use a darker background color

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

10 years agomoles: improve spacing of holes
Alexis Laferrière [Tue, 1 Apr 2014 21:26:47 +0000 (17:26 -0400)]
moles: improve spacing of holes

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

10 years agomoles: set scale according to screen resolution on Android
Alexis Laferrière [Tue, 1 Apr 2014 20:36:13 +0000 (16:36 -0400)]
moles: set scale according to screen resolution on Android

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

10 years agomoles: enable setting scale by platform
Alexis Laferrière [Tue, 1 Apr 2014 20:35:55 +0000 (16:35 -0400)]
moles: enable setting scale by platform

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

10 years agomoles: make number of rows and columns customizable by platform
Alexis Laferrière [Tue, 1 Apr 2014 17:31:27 +0000 (13:31 -0400)]
moles: make number of rows and columns customizable by platform

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

10 years agomoles: fix order of columns and rows
Alexis Laferrière [Tue, 1 Apr 2014 17:30:33 +0000 (13:30 -0400)]
moles: fix order of columns and rows

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

10 years agomoles: cuter images
Alexis Laferrière [Tue, 1 Apr 2014 16:55:19 +0000 (12:55 -0400)]
moles: cuter images

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

10 years agomoles: empty or hit moles do not intercept taps
Alexis Laferrière [Tue, 1 Apr 2014 16:54:21 +0000 (12:54 -0400)]
moles: empty or hit moles do not intercept taps

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

10 years agomoles: improve display scaling
Alexis Laferrière [Tue, 1 Apr 2014 16:52:59 +0000 (12:52 -0400)]
moles: improve display scaling

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

10 years agomoles: improve the documentation
Alexis Laferrière [Tue, 1 Apr 2014 15:22:59 +0000 (11:22 -0400)]
moles: improve the documentation

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

10 years agomoles: improve coding style of mnit_moles
Alexis Laferrière [Tue, 1 Apr 2014 15:19:52 +0000 (11:19 -0400)]
moles: improve coding style of mnit_moles

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

10 years agomnit/numbers: fix use image scale
Alexis Laferrière [Tue, 1 Apr 2014 22:34:12 +0000 (18:34 -0400)]
mnit/numbers: fix use image scale

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

10 years agoMerge: Android Sensors + mnit_ballz
Jean Privat [Tue, 1 Apr 2014 19:03:11 +0000 (15:03 -0400)]
Merge: Android Sensors + mnit_ballz

Adding support for the basics android sensors:
accelerometer, magnetic field, gyroscope, light and proximity

and add mnit_ballz, an app testing theses sensors

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

10 years agonitgs: opt_direct_call_monomorph call `before_send` to deal with special cases
Jean Privat [Fri, 28 Mar 2014 13:03:59 +0000 (09:03 -0400)]
nitgs: opt_direct_call_monomorph call `before_send` to deal with special cases

Thus null receiver and other special case are correctly handled in the
optimized path.

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

10 years agonitgs: extract `before_send` from `table_send`
Jean Privat [Fri, 28 Mar 2014 13:02:20 +0000 (09:02 -0400)]
nitgs: extract `before_send` from `table_send`

This isolate all the locally specific behaviors in a helper function

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

10 years agonitgs: add option --invocation-metrics to count things dynamically
Jean Privat [Fri, 28 Mar 2014 01:14:13 +0000 (21:14 -0400)]
nitgs: add option --invocation-metrics to count things dynamically

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

10 years agobenchs: add --inline-some-methods and --direct-call-monomorph to bench_nitg-s_options...
Jean Privat [Thu, 27 Mar 2014 20:34:41 +0000 (16:34 -0400)]
benchs: add --inline-some-methods and --direct-call-monomorph to bench_nitg-s_options-faster

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

10 years agobenchs: add --no-gcc-directive to bench_nitg-s_options-slower
Jean Privat [Thu, 27 Mar 2014 20:36:06 +0000 (16:36 -0400)]
benchs: add --no-gcc-directive to bench_nitg-s_options-slower

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

10 years agobenchs: protect mangle groups of options in `bench_nitg*_options`
Jean Privat [Thu, 27 Mar 2014 18:37:45 +0000 (14:37 -0400)]
benchs: protect mangle groups of options in `bench_nitg*_options`

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

10 years agonitgs: add --direct-call-monomorph and --inline-some-methods
Jean Privat [Thu, 27 Mar 2014 20:33:56 +0000 (16:33 -0400)]
nitgs: add --direct-call-monomorph and --inline-some-methods

These code-generation-level global optimizations allow the separate
compiler to:

* first, use a direct call, instead of a VFT call when RTA gives inform
  that a callsite is monomorph (and that the receiver is a nonnull
  non parametric type)
* second, to inline static call when the mmethoddef is tagged accordingly
  (we reuse the `can_inline` service of the global compiler)

**DISCLAMER**
The point of these optimizations is to evaluate some extreme optimizations,
thus to bound the gain of much less aggressive optimizations.
Real direct call and inlining optimizations SHOULD be applied on the AST
or (some intermediate code level) to be combinable with other optimizations.

Some numbers for `nitg --separate nitg.nit`:

# base (no option)
total number of invocations: 45833
invocations by VFT send:     34556 (75.39%)
invocations by direct call:  9955 (21.72%)
invocations by inlinning:    1322 (2.88%)
user time 0m10.2s

# with --direct-call-monomorph
total number of invocations: 45833
invocations by VFT send:     9259 (20.20%)
invocations by direct call:  35199 (76.79%)
invocations by inlinning:    1375 (3.00%)
user 0m10.1s

# with --direct-call-monomorph and --inline-some-methods
total number of invocations: 46657
invocations by VFT send:     9701 (20.79%)
invocations by direct call:  26239 (56.23%)
invocations by inlinning:    10717 (22.96%)
user 0m10.0s

Discussion about the number:
Something is fishy, while there is a high reduction of VFT or direct calls,
there is no real gain in CPU time. Points to investigate:

* the optimized invocations are not in the hot path
  TODO gather dynamic numbers
* my CPU is very efficient when dealing with direct call and indirect calls
  TODO test on pratchett
* some issues with the measurements or with the measurer
  TODO go to sleep

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

10 years agonitg-s: use is_intern instead of crazy AST stuff
Jean Privat [Thu, 27 Mar 2014 19:34:24 +0000 (15:34 -0400)]
nitg-s: use is_intern instead of crazy AST stuff

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

10 years agomodel: add `MMethodDef::is_intern`
Jean Privat [Wed, 19 Mar 2014 13:39:20 +0000 (09:39 -0400)]
model: add `MMethodDef::is_intern`

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

10 years agonitg-s: collect static statistics about the invocation mechanism used
Jean Privat [Thu, 27 Mar 2014 19:29:04 +0000 (15:29 -0400)]
nitg-s: collect static statistics about the invocation mechanism used

They are displayed on `-v -v`.

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

10 years agoversion 0.6.4 v0.6.5
Jean Privat [Tue, 1 Apr 2014 12:44:45 +0000 (08:44 -0400)]
version 0.6.4

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

10 years agoexamples: Adding mnit_ballz, a game using android_sensor API
Romain Chanoir [Tue, 25 Mar 2014 17:32:59 +0000 (13:32 -0400)]
examples: Adding mnit_ballz, a game using android_sensor API

Signed-off-by: Romain Chanoir <chanoir.romain@courrier.uqam.ca>

10 years agomnit_android: changes android_app to support android_sensor
Romain Chanoir [Tue, 25 Mar 2014 17:31:41 +0000 (13:31 -0400)]
mnit_android: changes android_app to support android_sensor

Signed-off-by: Romain Chanoir <chanoir.romain@courrier.uqam.ca>

10 years agoMerge: Incremental Improvements to Dino
Jean Privat [Mon, 31 Mar 2014 18:25:39 +0000 (14:25 -0400)]
Merge: Incremental Improvements to Dino

Many minor changes...

* Fixes the infamous exploit of running around the cavemen to group them on a single point!
* You will now know you score!
* A dead dino is no longer a murderous dino
* Bushes!

Pull-Request: #374

10 years agodino: javelins on ground have different angles
Alexis Laferrière [Tue, 18 Feb 2014 14:15:00 +0000 (09:15 -0500)]
dino: javelins on ground have different angles

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

10 years agodino: reset level after death
Alexis Laferrière [Wed, 12 Feb 2014 15:07:20 +0000 (10:07 -0500)]
dino: reset level after death

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

10 years agodino: draw a darker background
Alexis Laferrière [Wed, 12 Feb 2014 14:11:10 +0000 (09:11 -0500)]
dino: draw a darker background

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

10 years agodino: break items on ground when run over
Alexis Laferrière [Wed, 12 Feb 2014 00:08:17 +0000 (19:08 -0500)]
dino: break items on ground when run over

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

10 years agodino: add bushes!
Alexis Laferrière [Mon, 31 Mar 2014 01:59:34 +0000 (21:59 -0400)]
dino: add bushes!

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

10 years agodino: keep track of the score and display it
Alexis Laferrière [Tue, 11 Feb 2014 15:55:08 +0000 (10:55 -0500)]
dino: keep track of the score and display it

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

10 years agodino: add digits to assets
Alexis Laferrière [Tue, 11 Feb 2014 15:50:41 +0000 (10:50 -0500)]
dino: add digits to assets

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

10 years agodino: set rand seed at the number of cavemen
Alexis Laferrière [Tue, 11 Feb 2014 15:52:09 +0000 (10:52 -0500)]
dino: set rand seed at the number of cavemen

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

10 years agodino: each caveman has a random speed
Alexis Laferrière [Mon, 10 Feb 2014 15:24:38 +0000 (10:24 -0500)]
dino: each caveman has a random speed

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

10 years agodino: each caveman flee in different angles
Alexis Laferrière [Mon, 10 Feb 2014 15:04:34 +0000 (10:04 -0500)]
dino: each caveman flee in different angles

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

10 years agodino: each caveman has a predisposition for a hunting pattern
Alexis Laferrière [Mon, 10 Feb 2014 15:04:07 +0000 (10:04 -0500)]
dino: each caveman has a predisposition for a hunting pattern

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

10 years agodino: cavemen do not get run over by dead dino
Alexis Laferrière [Mon, 10 Feb 2014 15:02:57 +0000 (10:02 -0500)]
dino: cavemen do not get run over by dead dino

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

10 years agodino: display text under the hearts
Alexis Laferrière [Tue, 11 Feb 2014 15:54:47 +0000 (10:54 -0500)]
dino: display text under the hearts

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

10 years agodino: move down hearts according to platform
Alexis Laferrière [Mon, 31 Mar 2014 01:53:46 +0000 (21:53 -0400)]
dino: move down hearts according to platform

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

10 years agomnit_android: Adding android_sensor module
Romain Chanoir [Tue, 25 Mar 2014 17:31:08 +0000 (13:31 -0400)]
mnit_android: Adding android_sensor module

Signed-off-by: Romain Chanoir <chanoir.romain@courrier.uqam.ca>

10 years agomnit_android: Adding SensorEvent in input_event module
Romain Chanoir [Tue, 25 Mar 2014 17:30:33 +0000 (13:30 -0400)]
mnit_android: Adding SensorEvent in input_event module

Signed-off-by: Romain Chanoir <chanoir.romain@courrier.uqam.ca>

10 years agoMerge: CallSite on AFor and ARange
Jean Privat [Fri, 28 Mar 2014 22:13:12 +0000 (18:13 -0400)]
Merge: CallSite on AFor and ARange

Use CallSite to resolve and type some implicit services.
Subsequent phases will like them!

Currenlty: all the AFor and ARange services are converted and tools updated.
TODO: Array and SuperString

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

10 years agotests: update error messages
Jean Privat [Fri, 28 Mar 2014 00:37:31 +0000 (20:37 -0400)]
tests: update error messages

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

10 years agolib/sha1: fix nitunit
Jean Privat [Fri, 28 Mar 2014 00:08:46 +0000 (20:08 -0400)]
lib/sha1: fix nitunit

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

10 years agoMerge: lib: added sha1 on String
Jean Privat [Fri, 28 Mar 2014 00:04:47 +0000 (20:04 -0400)]
Merge: lib: added sha1 on String

Added function to compute the SHA-1 of a String in both its Binary and to hex form.

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

10 years agonitg: Use gcc special attributes and directives.
Jean Privat [Thu, 27 Mar 2014 16:58:24 +0000 (12:58 -0400)]
nitg: Use gcc special attributes and directives.

`noreturn` tags `show_backtrace` as no return
ie. `__attribute__ ((noreturn))`

`likely` tags runtime error checks with `unlikely`
ie. `__builtin_expect((x),0)`

These special C annotations can be disabled with --no-gcc-directive
The additional `--no-gcc-directive correct-likely` invert the
`__builtin_expect` target.

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

10 years agolib: added sha1 on String
Lucas Bajolet [Thu, 27 Mar 2014 20:33:42 +0000 (16:33 -0400)]
lib: added sha1 on String

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

10 years agoMerge: Fix visibility importation
Jean Privat [Thu, 27 Mar 2014 20:15:28 +0000 (16:15 -0400)]
Merge: Fix visibility importation

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

10 years agoMerge: Opt disable phase
Jean Privat [Thu, 27 Mar 2014 17:44:17 +0000 (13:44 -0400)]
Merge: Opt disable phase

`--disable-phase` to disable phase and broke tools :)

The point is to improve testing and comparison with and without specific (optional) phases

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

10 years agoMerge branch 'strings'
Jean Privat [Thu, 27 Mar 2014 06:25:49 +0000 (02:25 -0400)]
Merge branch 'strings'

10 years agoMerge: Callgraph
Jean Privat [Thu, 27 Mar 2014 01:04:53 +0000 (21:04 -0400)]
Merge: Callgraph

Quick patches so that RTA can give two new pieces of information.

1. what are the live CallSites? `RTA::live_callsites`
2. for each live CallSite, what are the live targets (MMethodDef) `RTA::live_targets`

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

10 years agophase: add option --disable-phase
Jean Privat [Thu, 27 Mar 2014 01:00:56 +0000 (21:00 -0400)]
phase: add option --disable-phase

Can be used to desactivate specific phases when testing and debugging.
The option can also lists the sequence of phases and their dependencies.

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

10 years agophase: use a better name on output
Jean Privat [Thu, 27 Mar 2014 00:47:15 +0000 (20:47 -0400)]
phase: use a better name on output

By defaut this uses the lowercased prefix of the classname.
But specific phases can redefine `to_s` if required.

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

10 years agoMerge: Fix ffi null service
Jean Privat [Wed, 26 Mar 2014 23:55:49 +0000 (19:55 -0400)]
Merge: Fix ffi null service

With nitg-g, the linker could fail when the same two piece of code will be in distinct files,
since the #ifndef trick does not cross compilation units.

This merge is just a workaroud where we use a global flag to avoid multiple definition.
While it works (thus is an improvement) it is ugly and broke the separate compilation concerns.

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

10 years agotyping: add `ARangeExpr::init_callsite` and use it everywhere
Jean Privat [Wed, 26 Mar 2014 20:08:05 +0000 (16:08 -0400)]
typing: add `ARangeExpr::init_callsite` and use it everywhere

One more callsite, and less method got manually

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

10 years agonit: use callsites in AFor instead re-resolving stuff
Jean Privat [Wed, 26 Mar 2014 19:46:20 +0000 (15:46 -0400)]
nit: use callsites in AFor instead re-resolving stuff

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

10 years agorta: use callsites in AFor instead re-resolving stuff
Jean Privat [Wed, 26 Mar 2014 19:45:50 +0000 (15:45 -0400)]
rta: use callsites in AFor instead re-resolving stuff

The code is so much simple now

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

10 years agotyping: AFor store services as CallSite (instead of MMethod)
Jean Privat [Wed, 26 Mar 2014 19:44:46 +0000 (15:44 -0400)]
typing: AFor store services as CallSite (instead of MMethod)

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

10 years agotyping: AFor remove old `iterate` case
Jean Privat [Wed, 26 Mar 2014 19:43:41 +0000 (15:43 -0400)]
typing: AFor remove old `iterate` case

They where for old closures

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

10 years agoMerge: More on Pipeline
Jean Privat [Wed, 26 Mar 2014 19:25:36 +0000 (15:25 -0400)]
Merge: More on Pipeline

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

10 years agotests: update sav/nitmetrics_args1.res for RTA-callsite info
Jean Privat [Wed, 26 Mar 2014 19:01:57 +0000 (15:01 -0400)]
tests: update sav/nitmetrics_args1.res for RTA-callsite info

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

10 years agometrics/rta: add callsite_info to display things
Jean Privat [Wed, 26 Mar 2014 18:39:47 +0000 (14:39 -0400)]
metrics/rta: add callsite_info to display things

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

10 years agorta: add live_callsites and live_callsites
Jean Privat [Wed, 26 Mar 2014 18:25:24 +0000 (14:25 -0400)]
rta: add live_callsites and live_callsites

In a callgraph it is useful to be able to compute the live target of any
callsite

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

10 years agocallsite: add `mmodule` and `anchor` to the callsite objects
Jean Privat [Wed, 26 Mar 2014 18:21:42 +0000 (14:21 -0400)]
callsite: add `mmodule` and `anchor` to the callsite objects

This simplify the job of its users since more model information is
available.

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

10 years agocompiler_ffi: factorize code in compile_extern_helper_functions
Jean Privat [Wed, 26 Mar 2014 13:32:52 +0000 (09:32 -0400)]
compiler_ffi: factorize code in compile_extern_helper_functions

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

10 years agocompiler_ffi: ifndef does not protect multiple definition of symbols
Jean Privat [Wed, 26 Mar 2014 13:32:09 +0000 (09:32 -0400)]
compiler_ffi: ifndef does not protect multiple definition of symbols

`#ifndef` trick can work on the compiler, but not on the linker.

Do not use buggy pragma to protect multiple definition

10 years agotests: update sav/nitg-e/base_class_name.res because FlatString is the name
Jean Privat [Wed, 26 Mar 2014 08:29:39 +0000 (04:29 -0400)]
tests: update sav/nitg-e/base_class_name.res because FlatString is the name

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

10 years agocontrib/nitcc: use FlatBuffer instead of Buffer
Jean Privat [Wed, 26 Mar 2014 08:27:29 +0000 (04:27 -0400)]
contrib/nitcc: use FlatBuffer instead of Buffer

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

10 years agolib/string: remove redefinition of CHARVIEW that exposes private types
Jean Privat [Wed, 26 Mar 2014 00:51:53 +0000 (20:51 -0400)]
lib/string: remove redefinition of CHARVIEW that exposes private types

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

10 years agoMerge origin/master to prepare the integration
Jean Privat [Wed, 26 Mar 2014 00:46:23 +0000 (20:46 -0400)]
Merge origin/master to prepare the integration

Conflicts:
lib/standard/file.nit

10 years agolib/pipeline: add basic functional-like filer processing (map&select)
Jean Privat [Mon, 24 Mar 2014 18:56:57 +0000 (14:56 -0400)]
lib/pipeline: add basic functional-like filer processing (map&select)

Because Nit is not functional, worse, there is no anonymous classes, the
use is complex.
However, I tried to have the syntax as light as it could be currently.

I still suspect that for most cases, a `for` loop can perform
enough map&select style. Therefore, consider this commit as an
experimentation.

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

10 years agostdlib/strings: Minor style fix
Lucas Bajolet [Mon, 24 Mar 2014 18:13:27 +0000 (14:13 -0400)]
stdlib/strings: Minor style fix

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

10 years agostdlib/strings: Repaired hash for Buffers.
Lucas Bajolet [Fri, 7 Mar 2014 16:56:54 +0000 (11:56 -0500)]
stdlib/strings: Repaired hash for Buffers.

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

10 years agostdlib/strings: Added cache on Buffer.
Lucas Bajolet [Mon, 24 Mar 2014 16:55:49 +0000 (12:55 -0400)]
stdlib/strings: Added cache on Buffer.

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

10 years agostdlib/strings: Abstracted hash (breaks hash on Buffer temporarily)
Lucas Bajolet [Mon, 24 Mar 2014 18:03:43 +0000 (14:03 -0400)]
stdlib/strings: Abstracted hash (breaks hash on Buffer temporarily)

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

10 years agostdlib/strings: Added cache for efficency when calling to_cstring on FlatTexts.
Lucas Bajolet [Tue, 25 Mar 2014 19:42:09 +0000 (15:42 -0400)]
stdlib/strings: Added cache for efficency when calling to_cstring on FlatTexts.

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

10 years agostdlib/strings: Added reversed service on Text and subclasses.
Lucas Bajolet [Mon, 24 Mar 2014 16:00:34 +0000 (12:00 -0400)]
stdlib/strings: Added reversed service on Text and subclasses.

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

10 years agostdlib/strings: Generalized to_cstring to all Text representations.
Lucas Bajolet [Tue, 25 Mar 2014 19:39:42 +0000 (15:39 -0400)]
stdlib/strings: Generalized to_cstring to all Text representations.

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

10 years agostdlib/strings: Added flatten service.
Lucas Bajolet [Fri, 7 Mar 2014 15:22:29 +0000 (10:22 -0500)]
stdlib/strings: Added flatten service.

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

10 years agostdlib/strings: Modified constructor for Buffer, now works with any kind of text.
Lucas Bajolet [Tue, 25 Mar 2014 19:31:24 +0000 (15:31 -0400)]
stdlib/strings: Modified constructor for Buffer, now works with any kind of text.

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

10 years agostdlib/strings: Fixed behaviour for substring_from, returns an empty string instead...
Lucas Bajolet [Fri, 7 Mar 2014 20:02:00 +0000 (15:02 -0500)]
stdlib/strings: Fixed behaviour for substring_from, returns an empty string instead of crashing when from < 0.

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

10 years agostdlib/strings: Moved String as abstract, FlatString now the name for array-based...
Lucas Bajolet [Mon, 24 Mar 2014 15:58:55 +0000 (11:58 -0400)]
stdlib/strings: Moved String as abstract, FlatString now the name for array-based Strings.

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

10 years agostdlib/strings: Moved append to Buffer, now works on all known variants of Text.
Lucas Bajolet [Tue, 25 Mar 2014 19:29:48 +0000 (15:29 -0400)]
stdlib/strings: Moved append to Buffer, now works on all known variants of Text.

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

10 years agostdlib/strings: Abstracted functions common to all Text representations.
Lucas Bajolet [Tue, 25 Mar 2014 19:28:09 +0000 (15:28 -0400)]
stdlib/strings: Abstracted functions common to all Text representations.

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

10 years agoMerge: check signature visibility
Jean Privat [Tue, 25 Mar 2014 19:08:29 +0000 (15:08 -0400)]
Merge: check signature visibility

A public API property cannot expose a private type.

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

10 years agonitunit: use `--ignore-visibility` when executon tests
Jean Privat [Tue, 25 Mar 2014 19:04:20 +0000 (15:04 -0400)]
nitunit: use `--ignore-visibility` when executon tests

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

10 years agomodelbuilder: add option `--ignore-visibility`
Jean Privat [Tue, 25 Mar 2014 19:03:54 +0000 (15:03 -0400)]
modelbuilder: add option `--ignore-visibility`

This option will allow `nitunit` to execute tests that use
protected methods.

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

10 years agotests: update nitmetrics
Jean Privat [Mon, 24 Mar 2014 19:32:37 +0000 (15:32 -0400)]
tests: update nitmetrics

Because public things are different (not correct) I think.

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

10 years agotests: extends `base_prot` to check more visibility configuration
Jean Privat [Mon, 24 Mar 2014 15:13:10 +0000 (11:13 -0400)]
tests: extends `base_prot` to check more visibility configuration

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

10 years agotests: update base_attr3
Jean Privat [Fri, 21 Mar 2014 18:59:28 +0000 (14:59 -0400)]
tests: update base_attr3

updates ate related to fixed visibility and the new error message of protected access

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