nit.git
9 years agonitunit: remove a deprecated TODO
Jean Privat [Fri, 18 Jul 2014 00:58:50 +0000 (20:58 -0400)]
nitunit: remove a deprecated TODO

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

9 years agoMerge: Toward the kill of oldstyle attributes
Jean Privat [Thu, 17 Jul 2014 19:28:39 +0000 (15:28 -0400)]
Merge: Toward the kill of oldstyle attributes

The transition from old-style to new-style attributes is a mess (cf. #280)
So in order to facilitate the transition, this patch enable the access to the internal attribute previously hidden by then new_style attribute.

Therefore, the transition path is simpler since one can move declaration from old-style to new-style but some access can still use the old `_foo` notation.

Note, the `_foo` access is not mean to be publicized bu only made available for specific short-term workarounds and transitions.

Practically, internal attribute named are prefixed with `_` and made visible (but private)

~~~
class A
   var foo: Int # introduce `foo`, `foo=` and, now, `_foo`
   fun bar do print _foo # Valid, it is a direct access to the real attribute behind the service `foo`
end
~~~

Note: because of bootstrap issues (in lib and parser), the remaining old-style attribute declarations remain and will be nuked in a future point after the regeneration of c_src

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

9 years agoMerge: Some more syntax
Jean Privat [Thu, 17 Jul 2014 19:28:31 +0000 (15:28 -0400)]
Merge: Some more syntax

Just a preparation for the next c_src where new syntax is injected.

The only one fully implemented is anonymous label

~~~.rb
do
   for i in coll do if i == 0 then break label
   stuff
end label
~~~

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

9 years agoMerge: Multiple compilation
Jean Privat [Thu, 17 Jul 2014 19:28:25 +0000 (15:28 -0400)]
Merge: Multiple compilation

This (long?) PR has a simple goal, enable the compilation of multiple main programs in a single `nitg` execution.

~~~
$ bin/nitg src/nit*.nit --dir bin
~~~

The point is to factorize the shared frontend parts.
The previous single command takes 49s, so it is nice improvement on the current 1m10s total required to compile each one independently.

Under the hood, only the frontend (parsing, model, typing, etc.) is shared.
It means that a full code generation phase (`run_global_phase`) is executed for each main modules.
This allows to mix platforms or having global optimizations specific to each main program.

~~~
$ bin/nitg contrib/pep8analysis/src/pep8analysis.nit contrib/pep8analysis/src/pep8analysis_web.nit
~~~

This PR is long because some issues in the current code needed to be solved first:
* some parts in coloration assumed that all entities of the model belong to the compiled programs.
* some parts in the ffi attach some compilation inforrmation to the model or ast objects
* some platform-related things modified values in the command-line options in toolcontext

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

9 years agotests: remove remaining old-style attributes declarations
Jean Privat [Tue, 15 Jul 2014 20:13:57 +0000 (16:13 -0400)]
tests: remove remaining old-style attributes declarations

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

9 years agoMerge: Phasify nitdoc
Jean Privat [Thu, 17 Jul 2014 15:17:04 +0000 (11:17 -0400)]
Merge: Phasify nitdoc

Launch nitdoc as a global phase (like metrics or nitg)

First commit is a cleanup that really detach doc/* from the modelbuilder.

Then some cleanup on `is_fictive`

Following commit remove the class NitdocContext and use ToolContext instead.

Last commit create add NitdocPhase that just instantiate and run Nitdoc.

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

9 years agoMerge: Test nitvm
Jean Privat [Thu, 17 Jul 2014 15:16:17 +0000 (11:16 -0400)]
Merge: Test nitvm

Add the engine `nitvm` in tests.sh so the developers of the vm can rely on the complex test framework.

1. compile nitvm (put it in src/ or bin/)
2. `$ cd tests`
3. `$ ./tests.sh --engine nitvm base*.nit` for some tests
4. `$ ./testfull.sh --engine nitvm` for all tests (long!)

Note: currently some tests (typing related) fails.
Note2: once the vm pass all tests, a new PR is needed so it is automatically built and tested.

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

9 years agonitdoc: use global phase (process_mainmodule)
Jean Privat [Thu, 17 Jul 2014 01:50:35 +0000 (21:50 -0400)]
nitdoc: use global phase (process_mainmodule)

9 years agonitdoc: replace NitdocContext by ToolContext
Jean Privat [Thu, 17 Jul 2014 01:29:11 +0000 (21:29 -0400)]
nitdoc: replace NitdocContext by ToolContext

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

9 years agomodelbuilder: automatic mainmodule from run_global_phases is fictive
Jean Privat [Thu, 17 Jul 2014 14:00:15 +0000 (10:00 -0400)]
modelbuilder: automatic mainmodule from run_global_phases is fictive

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

9 years agomodel: promote `is_fictive` from doc_model
Jean Privat [Thu, 17 Jul 2014 13:58:21 +0000 (09:58 -0400)]
model: promote `is_fictive` from doc_model

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

9 years agodoc: use `is_fictive` instead of relying on the module name
Jean Privat [Thu, 17 Jul 2014 13:52:21 +0000 (09:52 -0400)]
doc: use `is_fictive` instead of relying on the module name

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

9 years agomarkdown: privately import things and uptate clients
Jean Privat [Thu, 17 Jul 2014 01:48:23 +0000 (21:48 -0400)]
markdown: privately import things and uptate clients

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

9 years agotests.sh: introduce new engine nitvm
Jean Privat [Thu, 17 Jul 2014 01:09:04 +0000 (21:09 -0400)]
tests.sh: introduce new engine nitvm

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

9 years agotests.sh: use variable isinterpret instead of hard-coded checks
Jean Privat [Thu, 17 Jul 2014 01:08:02 +0000 (21:08 -0400)]
tests.sh: use variable isinterpret instead of hard-coded checks

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

9 years agoMerge: xdg_basedir
Jean Privat [Thu, 17 Jul 2014 00:40:08 +0000 (20:40 -0400)]
Merge: xdg_basedir

Will also be used to implement #559.

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

9 years agotests: update test_parser
Jean Privat [Wed, 16 Jul 2014 21:01:58 +0000 (17:01 -0400)]
tests: update test_parser

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

9 years agotests: add base_label_while2.nit for anonymous labels
Jean Privat [Mon, 14 Jul 2014 15:09:06 +0000 (11:09 -0400)]
tests: add base_label_while2.nit for anonymous labels

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

9 years agoscope: correcty handle anonynous labels
Jean Privat [Mon, 14 Jul 2014 15:08:22 +0000 (11:08 -0400)]
scope: correcty handle anonynous labels

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

9 years agoparser: regenerate with new last grammar changes
Jean Privat [Mon, 14 Jul 2014 14:36:05 +0000 (10:36 -0400)]
parser: regenerate with new last grammar changes

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

9 years agogrammer: accept redef and visibility in front of annotation
Jean Privat [Mon, 14 Jul 2014 14:25:12 +0000 (10:25 -0400)]
grammer: accept redef and visibility in front of annotation

~~~
var foo is public bar
fun baz is
   # doc
   redef private foobar
end
~~~

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

9 years agogrammar: accept redef and visibility on module declaration
Jean Privat [Thu, 26 Jun 2014 09:37:49 +0000 (05:37 -0400)]
grammar: accept redef and visibility on module declaration

The visibility on modules will hide thing inter-projects

The redef is accepted only for convenience, and could
be rejected on a latter analysis.

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

9 years agogrammar: accept annotations in implicit extern methods
Jean Privat [Wed, 18 Jun 2014 19:57:14 +0000 (15:57 -0400)]
grammar: accept annotations in implicit extern methods

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

9 years agogrammar: add elipsys notation to pass an expression in a vararg parameter
Jean Privat [Wed, 18 Jun 2014 02:17:58 +0000 (22:17 -0400)]
grammar: add elipsys notation to pass an expression in a vararg parameter

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

9 years agogrammar: accept annonymous label
Jean Privat [Wed, 18 Jun 2014 01:51:35 +0000 (21:51 -0400)]
grammar: accept annonymous label

Often, a single label is needed, for aborting some neested loops for
instance. But the programmer was forced to still gives a name to a
label. This yielded to crasy or useless names,

The proposal is to allow anonymous label.

Eg. in the following, the break breaks the x loop
~~~
for x in xs do
  for y in ys do
    stuff
    if something then break label
  end
  stuff
end label
~~~

Note: by the way, valued breaks and continues are removed.

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

9 years agogrammar: accept `public` as a valid visibility
Jean Privat [Wed, 18 Jun 2014 01:13:12 +0000 (21:13 -0400)]
grammar: accept `public` as a valid visibility

It has the same semantic than no explicit visibility, but
will allows a simpler transition to a new visibility level.

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

9 years agomodelize_property: enable the access of the internal attributes
Jean Privat [Tue, 15 Jul 2014 20:10:44 +0000 (16:10 -0400)]
modelize_property: enable the access of the internal attributes

The transition from old-style to new-style attributes is a mess.
So in order to facilitate the transition, this patch enable
the access to the internal attribute previously hidden by then
new_style attribute.

Therefore, the transition path is simpler since one can move declaration
from old-style to new-style but some access can still use the old `_foo`
notation.

Note, the `_foo` access is not mean to be publicized bu only made available
for specific short-term workarounds and transitions.

Practically, internal attribute named are prefixed with `_` and
made visible (but private)

9 years agosrc: use multicompile to fasten the initial make
Jean Privat [Wed, 16 Jul 2014 17:08:36 +0000 (13:08 -0400)]
src: use multicompile to fasten the initial make

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

9 years agotests: multicompile with nitg
Jean Privat [Wed, 16 Jul 2014 15:52:41 +0000 (11:52 -0400)]
tests: multicompile with nitg

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

9 years agotests: update base_simple_import.nit so the result difers from base_simple.nit
Jean Privat [Wed, 16 Jul 2014 15:47:57 +0000 (11:47 -0400)]
tests: update base_simple_import.nit so the result difers from base_simple.nit

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

9 years agocomp: enable multi-compilation, ie multiple main programs
Jean Privat [Tue, 15 Jul 2014 16:10:57 +0000 (12:10 -0400)]
comp: enable multi-compilation, ie multiple main programs

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

9 years agoffi: reset FFI compilation result attached to the module
Jean Privat [Tue, 15 Jul 2014 16:05:35 +0000 (12:05 -0400)]
ffi: reset FFI compilation result attached to the module

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

9 years agoffi: move guard in the AbstractCompiler
Jean Privat [Wed, 16 Jul 2014 15:40:11 +0000 (11:40 -0400)]
ffi: move guard  in the AbstractCompiler

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

9 years agoffi: move guard into the MModule to simplify management
Jean Privat [Wed, 16 Jul 2014 15:38:43 +0000 (11:38 -0400)]
ffi: move guard  into the MModule to simplify management

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

9 years agocomp: compilers do not modify opt_stacktace, it is a global info
Jean Privat [Wed, 16 Jul 2014 15:33:34 +0000 (11:33 -0400)]
comp: compilers do not modify opt_stacktace, it is a global info

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

9 years agocomp: use a local `no_main` variable
Jean Privat [Wed, 16 Jul 2014 15:18:06 +0000 (11:18 -0400)]
comp: use a local `no_main` variable

Instead of modifing the global opt_no_main option

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

9 years agocolo: rewrite build_{meth,attr}_tables
Jean Privat [Wed, 16 Jul 2014 02:50:06 +0000 (22:50 -0400)]
colo: rewrite build_{meth,attr}_tables

The current implementation has two issues.

First, it relies on the full model instead of just the main module
eg. `mproperty.mpropdefs` is full-model information

Second, the order of the refienements is fragile and may be distinct form the
one given by the model.

Therefore, this commit just remplaces the code with one that just fill
slots with information given by the model (instead of recomputed in a
fragile way)

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

9 years agocolo: Colorize only class in the module, not all in the model
Jean Privat [Tue, 15 Jul 2014 16:01:31 +0000 (12:01 -0400)]
colo: Colorize only class in the module, not all in the model

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

9 years agocolo: `MModule::properties` does no give properties is does not have
Jean Privat [Wed, 16 Jul 2014 15:35:39 +0000 (11:35 -0400)]
colo: `MModule::properties` does no give properties is does not have

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

9 years agoMerge: Fixes for attributes
Jean Privat [Wed, 16 Jul 2014 15:15:43 +0000 (11:15 -0400)]
Merge: Fixes for attributes

Some fixes and improvements in modelize_property.nit on the attributes side.

* redef optional on the `writable` part (see #270)
* fix signature check
* enable the inheritance of the type when a var redef a fun

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

9 years agoMerge: Some minor improvements to Sqlite3
Jean Privat [Wed, 16 Jul 2014 13:30:30 +0000 (09:30 -0400)]
Merge: Some minor improvements to Sqlite3

Will be used to implement #559 under Linux.

Pull-Request: #569
Reviewed-by: Jean Privat <jean@pryen.org>
Reviewed-by: Lucas Bajolet <r4pass@hotmail.com>
Reviewed-by: Alexandre Terrasa <alexandre@moz-code.org>

9 years agosqlite3: use sqlite3_close_v2
Alexis Laferrière [Wed, 16 Jul 2014 13:16:15 +0000 (09:16 -0400)]
sqlite3: use sqlite3_close_v2

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

9 years agolib/sqlite3: implement Sqlite3::is_valid
Alexis Laferrière [Fri, 11 Jul 2014 19:30:43 +0000 (15:30 -0400)]
lib/sqlite3: implement Sqlite3::is_valid

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

9 years agotests: test untyped attributes in base_attr5
Jean Privat [Tue, 15 Jul 2014 19:58:26 +0000 (15:58 -0400)]
tests: test untyped attributes in base_attr5

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

9 years agoMerge: lib/android: Typo fix for shared_preferences module
Jean Privat [Wed, 16 Jul 2014 01:32:54 +0000 (21:32 -0400)]
Merge: lib/android: Typo fix for shared_preferences module

Fixed typo and added import to shared_preferences_api11 module

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

Pull-Request: #580
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 agoMerge: lib/curl: clean and sort options
Jean Privat [Wed, 16 Jul 2014 00:08:03 +0000 (20:08 -0400)]
Merge: lib/curl: clean and sort options

Clean and sort options, also enable new ones.

Signed-off-by: Alexandre Terrasa <alexandre@moz-code.org>

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

9 years agoMerge: Symetric [] & []= in android::shared_preferences
Jean Privat [Tue, 15 Jul 2014 21:59:56 +0000 (17:59 -0400)]
Merge: Symetric [] & []= in android::shared_preferences

Now SharedPreferences[]= always serialize, and [] deserialize. This would be the default dehavior for a Nit application. The other getter/setter for primitive types are still available but must be used directly.

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

9 years agolib/android: Added import and fixed typo
Frédéric Vachon [Tue, 15 Jul 2014 21:10:24 +0000 (17:10 -0400)]
lib/android: Added import and fixed typo

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

9 years agoMerge: Splay ropes
Jean Privat [Tue, 15 Jul 2014 20:19:25 +0000 (16:19 -0400)]
Merge: Splay ropes

Added Splay tree operations on ropes (see [Splay tree](http://en.wikipedia.org/wiki/Splay_tree)).

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

9 years agomodelize_properties: attributes inherit the static type of the getter
Jean Privat [Tue, 15 Jul 2014 19:50:17 +0000 (15:50 -0400)]
modelize_properties: attributes inherit the static type of the getter

so, one could write

~~~
interface A
  fun foo: String
end

class B
  super A
  redef var foo # var foo is a String!
end
~~~

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

9 years agoandroid/shared_preferences: []= always serialize to be symetric with the new []
Alexis Laferrière [Fri, 11 Jul 2014 19:32:44 +0000 (15:32 -0400)]
android/shared_preferences: []= always serialize to be symetric with the new []

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

9 years agomodelize_property: do not crash if mtype is null in check_visibility
Jean Privat [Tue, 15 Jul 2014 19:15:44 +0000 (15:15 -0400)]
modelize_property: do not crash if mtype is null in check_visibility

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

9 years agomodelize_property: correctly check signature for getter and setter
Jean Privat [Tue, 15 Jul 2014 19:14:09 +0000 (15:14 -0400)]
modelize_property: correctly check signature for getter and setter

Some clone of bug 855796228e2ea1234246990c68741ccffbce93ae

9 years agoandroid/shared_preferences: import json_serialization privately
Alexis Laferrière [Fri, 11 Jul 2014 19:32:04 +0000 (15:32 -0400)]
android/shared_preferences: import json_serialization privately

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

9 years agonitcc_runtime: force static type of Nodes::children
Jean Privat [Tue, 15 Jul 2014 19:09:53 +0000 (15:09 -0400)]
nitcc_runtime: force static type of Nodes::children

We want a mutable sequence here!

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

9 years agolib/curl: clean and sort options
Alexandre Terrasa [Fri, 11 Jul 2014 05:40:53 +0000 (01:40 -0400)]
lib/curl: clean and sort options

Also enable new ones

Signed-off-by: Alexandre Terrasa <alexandre@moz-code.org>

9 years agoMerge: Nitdoc standalone
Jean Privat [Tue, 15 Jul 2014 18:37:59 +0000 (14:37 -0400)]
Merge: Nitdoc standalone

Make `nitdoc` able to generate documentation only with a Model.

This will enable other clients than the actual `ModelBuilder` based one like from DB connector.

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

9 years agotests: update base_attr5 for redef policy
Jean Privat [Tue, 15 Jul 2014 17:39:20 +0000 (13:39 -0400)]
tests: update base_attr5 for redef policy

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

9 years agomodelize_property: the `redef` on writable is now optional
Jean Privat [Tue, 15 Jul 2014 17:38:49 +0000 (13:38 -0400)]
modelize_property: the `redef` on writable is now optional

fixes #270

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

9 years agoMerge: lib: introduces ini config file reader/writter
Jean Privat [Tue, 15 Jul 2014 16:14:01 +0000 (12:14 -0400)]
Merge: lib: introduces ini config file reader/writter

To handle ini files.

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

9 years agocompiler: add `--dir` to just change the output directory
Jean Privat [Tue, 15 Jul 2014 14:29:19 +0000 (10:29 -0400)]
compiler: add `--dir` to just change the output directory

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

9 years agoandroid_platform: use `outfile` instead of its own stuff
Jean Privat [Tue, 15 Jul 2014 14:25:45 +0000 (10:25 -0400)]
android_platform: use `outfile` instead of its own stuff

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

9 years agocompiler: `add MakefileToolchain::outfile` to compute outnames
Jean Privat [Tue, 15 Jul 2014 14:22:22 +0000 (10:22 -0400)]
compiler: `add MakefileToolchain::outfile` to compute outnames

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

9 years agoMerge: Structs
Jean Privat [Tue, 15 Jul 2014 13:22:56 +0000 (09:22 -0400)]
Merge: Structs

More standard data structures and algorithms

closes #512

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

9 years agoMerge: Java FFI with Java generics
Jean Privat [Tue, 15 Jul 2014 11:59:29 +0000 (07:59 -0400)]
Merge: Java FFI with Java generics

To support extern classes of Java generic types, we remove all the parameters of generic types in the JNI signature format.

Example:

    extern class QueueOfString in "Java" `{ java.util.Queue<String> `}

Pull-Request: #572
Reviewed-by: Jean Privat <jean@pryen.org>
Reviewed-by: Frédéric Vachon <fredvac@gmail.com>
Reviewed-by: Alexandre Terrasa <alexandre@moz-code.org>

9 years agonitdoc: extract NitdocContext from Nitdoc generation
Alexandre Terrasa [Tue, 15 Jul 2014 05:53:58 +0000 (01:53 -0400)]
nitdoc: extract NitdocContext from Nitdoc generation

Signed-off-by: Alexandre Terrasa <alexandre@moz-code.org>

9 years agonitdoc: clean output_dir option selection
Alexandre Terrasa [Tue, 15 Jul 2014 05:38:18 +0000 (01:38 -0400)]
nitdoc: clean output_dir option selection

Signed-off-by: Alexandre Terrasa <alexandre@moz-code.org>

9 years agonitdoc: limit dependency to `model`
Alexandre Terrasa [Tue, 15 Jul 2014 05:30:33 +0000 (01:30 -0400)]
nitdoc: limit dependency to `model`

Signed-off-by: Alexandre Terrasa <alexandre@moz-code.org>

9 years agomodel_utils: limit dependency to `model`.
Alexandre Terrasa [Tue, 15 Jul 2014 05:27:07 +0000 (01:27 -0400)]
model_utils: limit dependency to `model`.

Also update tools importing `model_utils`

Signed-off-by: Alexandre Terrasa <alexandre@moz-code.org>

9 years agolib: introduce Heap and PriorityQueue in standard::collection
Alexandre Terrasa [Tue, 15 Jul 2014 04:47:36 +0000 (00:47 -0400)]
lib: introduce Heap and PriorityQueue in standard::collection

Signed-off-by: Alexandre Terrasa <alexandre@moz-code.org>

9 years agolib: introduces ini config file reader/writter
Alexandre Terrasa [Tue, 15 Jul 2014 04:17:10 +0000 (00:17 -0400)]
lib: introduces ini config file reader/writter

Signed-off-by: Alexandre Terrasa <alexandre@moz-code.org>

9 years agotests: test generics in Java FFI
Alexis Laferrière [Mon, 14 Jul 2014 15:14:29 +0000 (11:14 -0400)]
tests: test generics in Java FFI

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

9 years agoJava FFI: support generic Java types in extern class foreign type
Alexis Laferrière [Mon, 14 Jul 2014 15:14:07 +0000 (11:14 -0400)]
Java FFI: support generic Java types in extern class foreign type

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

9 years agotests: add test for xdg_basedir
Alexis Laferrière [Fri, 11 Jul 2014 20:40:00 +0000 (16:40 -0400)]
tests: add test for xdg_basedir

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

9 years agolib: intro xdg_basedir
Alexis Laferrière [Fri, 11 Jul 2014 14:32:37 +0000 (10:32 -0400)]
lib: intro xdg_basedir

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

9 years agolib/sqlite3: implement Statement::reset & finalize
Alexis Laferrière [Fri, 11 Jul 2014 16:12:34 +0000 (12:12 -0400)]
lib/sqlite3: implement Statement::reset & finalize

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

9 years agolib/sqlite3: add some doc
Alexis Laferrière [Fri, 11 Jul 2014 16:12:00 +0000 (12:12 -0400)]
lib/sqlite3: add some doc

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

9 years agolib/sqlite3: implement column_blob
Alexis Laferrière [Fri, 11 Jul 2014 16:11:39 +0000 (12:11 -0400)]
lib/sqlite3: implement column_blob

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

9 years agolib/sqlite3: no need for a directory anymore
Alexis Laferrière [Fri, 11 Jul 2014 15:57:26 +0000 (11:57 -0400)]
lib/sqlite3: no need for a directory anymore

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

9 years agoMerge: tests: move the check of exec.skip to detect compilation error
Jean Privat [Fri, 11 Jul 2014 11:15:04 +0000 (07:15 -0400)]
Merge: tests: move the check of exec.skip to detect compilation error

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

9 years agoMerge: String: Added four new methods to string.nit
Jean Privat [Fri, 11 Jul 2014 11:14:23 +0000 (07:14 -0400)]
Merge: String: Added four new methods to string.nit

Four new methods have been added to abstract class Text : is_upper, is_lower, to_snake_case, to_camel_case. The latter two relies on the two others in their implementation. Converting case may be useful for code generation, especially when wrapping extern classes in order to conform to snake case nit standard.

Pull-Request: #549
Reviewed-by: Lucas Bajolet <r4pass@hotmail.com>
Reviewed-by: Jean Privat <jean@pryen.org>
Reviewed-by: Alexandre Terrasa <alexandre@moz-code.org>

9 years agolib: introduce Stack in standard::collection
Alexandre Terrasa [Fri, 11 Jul 2014 02:01:16 +0000 (22:01 -0400)]
lib: introduce Stack in standard::collection

Signed-off-by: Alexandre Terrasa <alexandre@moz-code.org>

9 years agolib: introduce Queue in standard::collection
Alexandre Terrasa [Fri, 11 Jul 2014 02:00:50 +0000 (22:00 -0400)]
lib: introduce Queue in standard::collection

Signed-off-by: Alexandre Terrasa <alexandre@moz-code.org>

9 years agolib/standard: Added to_snake_case and to_camel_case to string.nit
Frédéric Vachon [Fri, 11 Jul 2014 04:17:47 +0000 (00:17 -0400)]
lib/standard: Added to_snake_case and to_camel_case to string.nit

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

9 years agolib/standard: Added is_upper and is_lower to string.nit
Frédéric Vachon [Fri, 11 Jul 2014 04:16:34 +0000 (00:16 -0400)]
lib/standard: Added is_upper and is_lower to string.nit

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

9 years agotests: move the check of exec.skip to detect compilation error
Jean Privat [Fri, 11 Jul 2014 03:49:30 +0000 (23:49 -0400)]
tests: move the check of exec.skip to detect compilation error

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

9 years agolib: move union_find to collection
Alexandre Terrasa [Fri, 11 Jul 2014 02:00:14 +0000 (22:00 -0400)]
lib: move union_find to collection

Signed-off-by: Alexandre Terrasa <alexandre@moz-code.org>

9 years agoMerge: Bundle: Nit API wrapping Bundle class
Jean Privat [Thu, 10 Jul 2014 19:02:33 +0000 (15:02 -0400)]
Merge: Bundle: Nit API wrapping Bundle class

The Bundle class is an Android API custom mapping class. It maps `String` to various value types. This class is used by a lot of android callbacks and classes in general. It is mainly used to communicate data between application entities.

Required by the `Intent` API

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

Pull-Request: #507
Reviewed-by: Alexis Laferrière <alexis.laf@xymus.net>
Reviewed-by: Jean Privat <jean@pryen.org>
Reviewed-by: Romain Chanoir <chanoir.romain@courrier.uqam.ca>

9 years agolib/android: Added simple_android as UNDEFINED in sav/nitg-sg
Frédéric Vachon [Thu, 10 Jul 2014 18:47:08 +0000 (14:47 -0400)]
lib/android: Added simple_android as UNDEFINED in sav/nitg-sg

Signed-off-by: Frédéric Vachon <fredvac@Pratchett.(none)>

9 years agoMerge: Android assets, resources, and audio
Jean Privat [Thu, 10 Jul 2014 16:51:46 +0000 (12:51 -0400)]
Merge: Android assets, resources, and audio

Android assets and resources Management API, plus audio management and some java io for advanced purposes. The Audio API can use the assets and resources. Audio, assets and resources can use java io.

The assets and resources API introduces a "resource_manager" and an "asset_manager" in the "App" that can be used to retrieve files or values from both resources or assets folder.

The audio API introduces Sound class representing a sound that can be play by a SoundPool or a MediaPlayer. The SoundPool is designed for playing small sound and can play different streams simultaneously and the MediaPlayer is prefered for long sounds or musics and can't play sounds simultaneously. Also the API provides 4 methods in "App" to get a sound from assets or from resources, and from a MediaPlayer or a SoundPool.

The java io part of this pull request is needed for some advanced use and is already improved by @xymus to help managing the Bitmaps.

Some classes are still only a wrapper to the Java class, this may be improved in a future version

Also modifying android_platform so the user can add his own resources in the android project without compiling it a first time. If there is a res folder in the 'nit part' of the project, it will rewrite the one generated by default by android. When the user adds it's own resources, he needs to create at least a "res/values/strings.xml" file where he needs to put a string resource with the name "app_name" and the value he wants.

The tests are implemented in the mnit_simple example application

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

9 years agoMerge: precedence and other things to nitcc
Jean Privat [Thu, 10 Jul 2014 14:52:26 +0000 (10:52 -0400)]
Merge: precedence and other things to nitcc

A lot of small things.
The best part is the introduction of syntactic precedence.

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

9 years agotests: update sav/nitcc_parser_gen.res
Jean Privat [Wed, 9 Jul 2014 20:26:09 +0000 (16:26 -0400)]
tests: update sav/nitcc_parser_gen.res

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

9 years agonitcc: add prerecence in the README
Jean Privat [Wed, 9 Jul 2014 15:37:59 +0000 (11:37 -0400)]
nitcc: add prerecence in the README

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

9 years agonitcc: update examples to use precedence
Jean Privat [Wed, 9 Jul 2014 15:36:40 +0000 (11:36 -0400)]
nitcc: update examples to use precedence

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

9 years agonitcc/tests: some update of error messages
Jean Privat [Wed, 9 Jul 2014 15:23:38 +0000 (11:23 -0400)]
nitcc/tests: some update of error messages

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

9 years agonitcc/tests: add re.sablecc to test precedences
Jean Privat [Wed, 9 Jul 2014 15:20:55 +0000 (11:20 -0400)]
nitcc/tests: add re.sablecc to test precedences

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

9 years agonitcc: add precedence on the grammar
Jean Privat [Wed, 9 Jul 2014 15:07:23 +0000 (11:07 -0400)]
nitcc: add precedence on the grammar

This use a special syntax where alternatives ar grouped in classes of
precedences that goes from the most priority to the least priority.

Those classes starts with the keyword `Left`, `Right` or `Unary` and
groups the alternatives that follows.

eg:

~~~
e =
{int:} int |
{par:} '(' e ')'
Unary
{neg:} '-' e
Right
{pow:} e '^' e
Left
{mul:} e '*' e |
{div:} e '/' e
Left
{add:} e '+' e |
{sub:} e '-' e ;
~~~

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

9 years agonitcc: add Alternative::phony for those in the AST but not in the automaton
Jean Privat [Wed, 9 Jul 2014 13:56:30 +0000 (09:56 -0400)]
nitcc: add Alternative::phony for those in the AST but not in the automaton

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

9 years agonitcc: does not crash if a production has no alternatives
Jean Privat [Wed, 9 Jul 2014 13:55:30 +0000 (09:55 -0400)]
nitcc: does not crash if a production has no alternatives

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

9 years agonitcc: Accept special token End, but implement it as an epsilon
Jean Privat [Tue, 8 Jul 2014 20:11:03 +0000 (16:11 -0400)]
nitcc: Accept special token End, but implement it as an epsilon

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