Jean Privat [Sun, 22 Feb 2015 09:09:34 +0000 (16:09 +0700)]
benches: replace niti test_parser task by two niti tasks (nitcc and queens)
Signed-off-by: Jean Privat <jean@pryen.org>
Jean Privat [Sun, 22 Feb 2015 03:42:36 +0000 (10:42 +0700)]
benches: add markdown as a task in bench_engines
Signed-off-by: Jean Privat <jean@pryen.org>
Alexis Laferrière [Sat, 21 Feb 2015 12:51:56 +0000 (07:51 -0500)]
lib/github: deactivate assert in broken nitunit
Signed-off-by: Alexis Laferrière <alexis.laf@xymus.net>
Jean Privat [Sat, 21 Feb 2015 06:05:02 +0000 (13:05 +0700)]
Merge: Support Android on 2 different ARMs, x86 and even MIPS
Tested on ARM v7 and x86. MIPS on Android is more rare but it is used on some low-cost phones.
Each extra architecture use less than 1 mo in the release APK, but MIPS is the largest one. I could add an annotation or something else if we ever need smaller APK files. Mineit VR release with the 4 architectures and its textures takes only 2.5 mo.
Pull-Request: #1164
Reviewed-by: Jean Privat <jean@pryen.org>
Jean Privat [Sat, 21 Feb 2015 06:04:31 +0000 (13:04 +0700)]
Merge: class annotation `autoinit` to explicitly lists initializers.
A suggestion of @Morriar is to use a class-level annotation `autoinit` to list initializers.
It should ne rarely used, in case of conflict for instance, or to restrict the number of initializers (but this could be fragile).
A step towards #785
~~~nit
class A
var a: Int
var b: String
end
class B
autoinit c, b, a
super A
var c: Bool
end
var a = new A(10, "foo")
var b = new B(true, "foo", 10)
~~~
Some issues remains, I my require your input on these
* why I am required to put `autoinit` before the `super` clause?
because the grammar is ugly.
Maybe I should find a way to enable the `autoinit` clause everywhere in the body of the class?
This is a grammar issue that can be solved independently I think.
* what are the validity of initializers?
The first commit is used to discriminate properties that are initializers and those that are not.
I am not sure if restricting what can be used an initializer makes sense. In fact I really do not know what is the best expressive-but-safe policy here. See the last point for a related issue
* what about clearing the full list of initializers (so no parameters in the new)?
The annotation `noautoinit` will do the trick.
* what about setters?
when one writes `class A var x: Int`, in fact the initializer is not the getter `x` but the setter `x=`. It is obvious once one understand that `var a = new A(10)` is just `var a = alloc A; a.x = 10; a.init`.
However, I chose to implicitly try to search the setter first when given `x` as an element of the `autoinit` clause, so that one can write `autoinit x` instead of the less POLA `autoinit x=` (that also works by the way).
Unfortunately this kind of heuristic makes the specification more complex, but also prevents one to use a method `x` as an initializer if a method `x=` exists.
Pull-Request: #1158
Reviewed-by: Lucas Bajolet <r4pass@hotmail.com>
Reviewed-by: Alexandre Terrasa <alexandre@moz-code.org>
Jean Privat [Sat, 21 Feb 2015 02:56:54 +0000 (09:56 +0700)]
parser: add `ASTDump` and `ANode::dump_tree`
Signed-off-by: Jean Privat <jean@pryen.org>
Alexis Laferrière [Fri, 20 Feb 2015 16:34:30 +0000 (11:34 -0500)]
nitunit: fix executing last test which was previously ignored
Signed-off-by: Alexis Laferrière <alexis.laf@xymus.net>
Alexis Laferrière [Fri, 20 Feb 2015 14:42:01 +0000 (09:42 -0500)]
nitc/android: compile Android projects for x86, mips and 2 versions of arm
Signed-off-by: Alexis Laferrière <alexis.laf@xymus.net>
Alexis Laferrière [Fri, 20 Feb 2015 03:47:58 +0000 (22:47 -0500)]
share/libgc: compile libgc for Android on more than arm: x86 and mips
Signed-off-by: Alexis Laferrière <alexis.laf@xymus.net>
Jean Privat [Fri, 20 Feb 2015 05:42:18 +0000 (12:42 +0700)]
tests: update some `base_init` to use noautoinit instead of noinit
Signed-off-by: Jean Privat <jean@pryen.org>
Jean Privat [Tue, 10 Feb 2015 10:51:07 +0000 (17:51 +0700)]
tests: add base_init_autoinit3.nit
Signed-off-by: Jean Privat <jean@pryen.org>
Jean Privat [Fri, 20 Feb 2015 05:38:58 +0000 (12:38 +0700)]
modelize: add class annotation `noautoinit` to clear the list of initializers
Signed-off-by: Jean Privat <jean@pryen.org>
Jean Privat [Fri, 20 Feb 2015 05:20:12 +0000 (12:20 +0700)]
modelize: accepts `noautoinit` the new name of `noinit`.
Signed-off-by: Jean Privat <jean@pryen.org>
Jean Privat [Tue, 10 Feb 2015 05:05:34 +0000 (12:05 +0700)]
modelize: add class-annotation `autoinit` to explicitly list the initializers
Signed-off-by: Jean Privat <jean@pryen.org>
Jean Privat [Thu, 19 Feb 2015 01:53:28 +0000 (08:53 +0700)]
Merge: Misc commits to android, json::dynamic and more_collections
The gamepad events are based on 2 different gamepads. They will probably need to be revisited with different layouts.
Pull-Request: #1163
Reviewed-by: Alexandre Terrasa <alexandre@moz-code.org>
Reviewed-by: Lucas Bajolet <r4pass@hotmail.com>
Alexandre Terrasa [Tue, 17 Feb 2015 18:45:48 +0000 (19:45 +0100)]
src/doc: move remaining services from `doc_model` to `doc_base` and delete the module
Signed-off-by: Alexandre Terrasa <alexandre@moz-code.org>
Alexandre Terrasa [Tue, 17 Feb 2015 18:39:32 +0000 (19:39 +0100)]
src/doc: move HTML output related services from `doc_model` to `html_model`
So HTML related things are only imported by the HTML rendering phase.
Next commit will finish the `doc_model` cleaning by merging remaining services into `doc_base`.
Signed-off-by: Alexandre Terrasa <alexandre@moz-code.org>
Alexandre Terrasa [Tue, 17 Feb 2015 18:39:04 +0000 (19:39 +0100)]
src/doc: use `nitdoc_name` rather than `nitdoc_id` for debug name.
Signed-off-by: Alexandre Terrasa <alexandre@moz-code.org>
Alexandre Terrasa [Tue, 17 Feb 2015 18:17:57 +0000 (19:17 +0100)]
src/doc: introduce `html_templates` group.
This group will be used to store all the HTML output related things.
Next commit will extract HTML related services from module `doc_model`.
Signed-off-by: Alexandre Terrasa <alexandre@moz-code.org>
Alexandre Terrasa [Tue, 17 Feb 2015 17:50:36 +0000 (18:50 +0100)]
src/doc: make ImportationListSection and InheritanceListSection two MEntity articles since the lists are about a specific MEntity
Signed-off-by: Alexandre Terrasa <alexandre@moz-code.org>
Alexandre Terrasa [Tue, 17 Feb 2015 17:49:42 +0000 (18:49 +0100)]
src/doc: make GraphArticle a MEntity article since the graph is about a specific MEntity
Signed-off-by: Alexandre Terrasa <alexandre@moz-code.org>
Alexandre Terrasa [Tue, 17 Feb 2015 18:11:32 +0000 (19:11 +0100)]
src/doc: rename `DocComposite::add` into `add_child` to avoid conflict with `Template::add`
Signed-off-by: Alexandre Terrasa <alexandre@moz-code.org>
Alexis Laferrière [Fri, 9 Jan 2015 14:52:33 +0000 (09:52 -0500)]
lib/android: add the gamepad module
Signed-off-by: Alexis Laferrière <alexis.laf@xymus.net>
Alexis Laferrière [Mon, 16 Feb 2015 19:23:22 +0000 (14:23 -0500)]
lib/android: move all android annotations to the `aware` submodule
Signed-off-by: Alexis Laferrière <alexis.laf@xymus.net>
Alexis Laferrière [Sat, 14 Feb 2015 19:29:02 +0000 (14:29 -0500)]
lib/more_collections: add `clean` to `HashMap[23]`
Signed-off-by: Alexis Laferrière <alexis.laf@xymus.net>
Alexis Laferrière [Thu, 12 Feb 2015 01:51:57 +0000 (20:51 -0500)]
lib/json: converting JsonValue to float or int casts between numerics
Signed-off-by: Alexis Laferrière <alexis.laf@xymus.net>
Jean Privat [Fri, 13 Feb 2015 08:34:41 +0000 (15:34 +0700)]
Merge: Nitrpg: introduce game events
Events allow us to keep track of the history.
Pull-Request: #1162
Reviewed-by: Lucas Bajolet <r4pass@hotmail.com>
Reviewed-by: Jean Privat <jean@pryen.org>
Jean Privat [Wed, 11 Feb 2015 07:35:18 +0000 (14:35 +0700)]
Merge: Nitrpg: minor fixes
Some fixes before next feature.
Pull-Request: #1160
Reviewed-by: Jean Privat <jean@pryen.org>
Reviewed-by: Lucas Bajolet <r4pass@hotmail.com>
Jean Privat [Wed, 11 Feb 2015 06:26:36 +0000 (13:26 +0700)]
Merge: Nitrpg: minor fixes
Some fixes before next feature.
Pull-Request: #1160
Reviewed-by: Jean Privat <jean@pryen.org>
Reviewed-by: Lucas Bajolet <r4pass@hotmail.com>
Jean Privat [Wed, 11 Feb 2015 04:12:05 +0000 (11:12 +0700)]
Merge: Rename Streams
Since #466 is not closed yet, here's the follow-up to PR #932.
This one focuses only on introducing new names for Streams, IOS and its derivatives were judged as confusing, so here's a proposition of names for the different Streams of the standard library.
Please let me know if some names are not very explicit, I'll change them if necessary.
Pull-Request: #1153
Reviewed-by: Alexandre Terrasa <alexandre@moz-code.org>
Reviewed-by: Jean Privat <jean@pryen.org>
Reviewed-by: Alexis Laferrière <alexis.laf@xymus.net>
Jean Privat [Wed, 11 Feb 2015 04:11:52 +0000 (11:11 +0700)]
Merge: lib/glesv2: intro framebuffer related services and try a new style
The main point of this PR is to try a new naming convention for the glesv2 module.
Ideas behind this convention:
1. Be as close as possible to the C API: use the same function and macro names.
2. Modify those names only for compatibility with the Nit language: the macros cannot begin with `GL_` so use `gl_` instead.
3. Apply types and other Nity features when they can help and don't interfere with the original API.
It differs from the previous convention of renaming all entities to the Nit style. It is not heavier in the module definition but should be easier for the users.
In practice, to convert OpenGL ES C code to Nit you would need to change the prefix `GL_` to `gl_`, and remove `;`.
In C:
~~~
glBindFramebuffer(GL_FRAMEBUFFER, my_fbo);
glBindRenderbuffer(GL_RENDERBUFFER, my_renderbuffer);
return glCheckFramebufferStatus(GL_FRAMEBUFFER) == GL_FRAMEBUFFER_COMPLETE;
~~~
In Nit:
~~~
glBindFramebuffer(gl_FRAMEBUFFER, my_fbo)
glBindRenderbuffer(gl_RENDERBUFFER, my_renderbuffer)
return glCheckFramebufferStatus(gl_FRAMEBUFFER) == gl_FRAMEBUFFER_COMPLETE
~~~
What do you think of the new naming convention? I would convert the whole module to it.
Pull-Request: #1157
Reviewed-by: Jean Privat <jean@pryen.org>
Reviewed-by: Alexandre Terrasa <alexandre@moz-code.org>
Alexandre Terrasa [Sat, 7 Feb 2015 00:47:46 +0000 (01:47 +0100)]
contrib/nitpg: make player list more easy to read
Signed-off-by: Alexandre Terrasa <alexandre@moz-code.org>
Alexandre Terrasa [Fri, 6 Feb 2015 22:48:41 +0000 (23:48 +0100)]
contrib/nitrpg: introduce `link` service in some GameEntities
This should lighten html strings
Signed-off-by: Alexandre Terrasa <alexandre@moz-code.org>
Alexandre Terrasa [Sat, 7 Feb 2015 00:06:43 +0000 (01:06 +0100)]
contrib/nitrpg: display events in home and player page
Signed-off-by: Alexandre Terrasa <alexandre@moz-code.org>
Alexandre Terrasa [Fri, 6 Feb 2015 22:38:02 +0000 (23:38 +0100)]
contrib/nitrpg: move logging to `listener`
Signed-off-by: Alexandre Terrasa <alexandre@moz-code.org>
Alexandre Terrasa [Sat, 7 Feb 2015 00:05:01 +0000 (01:05 +0100)]
contrib/nitrpg: PlayerReactor generate events
Signed-off-by: Alexandre Terrasa <alexandre@moz-code.org>
Alexandre Terrasa [Fri, 6 Feb 2015 22:15:02 +0000 (23:15 +0100)]
contrib/nitrg: fix link to puller in `PlayerReviewsPanel`
Signed-off-by: Alexandre Terrasa <alexandre@moz-code.org>
Alexandre Terrasa [Sat, 7 Feb 2015 00:04:04 +0000 (01:04 +0100)]
contrib/nitrpg: introduce `GameEvent`
Signed-off-by: Alexandre Terrasa <alexandre@moz-code.org>
Alexandre Terrasa [Fri, 6 Feb 2015 22:49:43 +0000 (23:49 +0100)]
contrib/nitrpg: introduce Game::save_in
Also changes the Game::save documentation
Signed-off-by: Alexandre Terrasa <alexandre@moz-code.org>
Alexandre Terrasa [Wed, 11 Feb 2015 01:09:58 +0000 (02:09 +0100)]
contrib/nitrpg: also reward player for merged commits.
Signed-off-by: Alexandre Terrasa <alexandre@moz-code.org>
Alexandre Terrasa [Fri, 6 Feb 2015 22:48:41 +0000 (23:48 +0100)]
contrib/nitrpg: introduce `link` service in some GameEntities
This should lighten html strings
Signed-off-by: Alexandre Terrasa <alexandre@moz-code.org>
Lucas Bajolet [Mon, 9 Feb 2015 16:51:58 +0000 (11:51 -0500)]
lib/standard: Updated documentation of Streams to fit new names.
Signed-off-by: Lucas Bajolet <r4pass@hotmail.com>
Lucas Bajolet [Tue, 10 Feb 2015 18:18:41 +0000 (13:18 -0500)]
lib/standard/stream: Renamed streams for more explicit denomination
Signed-off-by: Lucas Bajolet <r4pass@hotmail.com>
Jean Privat [Tue, 10 Feb 2015 05:04:32 +0000 (12:04 +0700)]
model: add MProperty::is_autoinit to identify method used as initializer
Signed-off-by: Jean Privat <jean@pryen.org>
Jean Privat [Tue, 10 Feb 2015 03:32:29 +0000 (10:32 +0700)]
Merge: Vim omnifunc diffentiate between types, class declaration and instanciation
The main improvement is the knowledge of constructors. They will be suggested along with their class after a `new`, ex: `new Arr`, it will autocomplete to `Array[E]`, `Array[E].with_items`, etc. It will also show their corresponding documentation.
Also detect the keywords `isa` and `as`.
Pull-Request: #1156
Reviewed-by: Jean Privat <jean@pryen.org>
Reviewed-by: Lucas Bajolet <r4pass@hotmail.com>
Jean Privat [Tue, 10 Feb 2015 03:32:23 +0000 (10:32 +0700)]
Merge: Link boost
Follow up of #1093
This time some vft optimizations with the option `--substitute-monomorph` that replaces monomorphic trampolines with direct call.
Late-binding is implemented with *trampolines*, that are small functions that just select and jump the to right implementations.
If, at link-time, is it known that the target will always by the same implementation then all calls to the trampoline are replaced by direct calls to this single implementation.
Note that using trampolines as indirection slows down the executable.
However, it is expected that the gain of monomorphic direct-calls overcompensates the additional indirections in polymorphic trampoline-calls.
This PR first implements trampoline then build the substitute thing on it.
For times (nitc/nitc/nitc)
* default: 0m7.216s
* --link-boost: 0m7.024s (-2,7%)
Not that impressive in fact :( but anyway this PR is still required for the next round of link-time optimizations
Pull-Request: #1155
Reviewed-by: Alexis Laferrière <alexis.laf@xymus.net>
Reviewed-by: Lucas Bajolet <r4pass@hotmail.com>
Jean Privat [Tue, 10 Feb 2015 03:25:53 +0000 (10:25 +0700)]
fixup tramp
Signed-off-by: Jean Privat <jean@pryen.org>
Jean Privat [Sat, 7 Feb 2015 15:53:22 +0000 (22:53 +0700)]
bench_engines: add `bench_linkboost` to bench --link-boost optimizations
Signed-off-by: Jean Privat <jean@pryen.org>
Jean Privat [Sun, 8 Feb 2015 03:07:08 +0000 (10:07 +0700)]
sep_compiler: add alias option --link-boost
Signed-off-by: Jean Privat <jean@pryen.org>
Jean Privat [Sun, 8 Feb 2015 02:56:11 +0000 (09:56 +0700)]
sep_compiler: table_send take the original entity instead of the color
Signed-off-by: Jean Privat <jean@pryen.org>
Jean Privat [Sat, 7 Feb 2015 15:52:42 +0000 (22:52 +0700)]
sep_compiler: add option --substitute-monomorph to substitute monomorph trampoline calls at link-time
Signed-off-by: Jean Privat <jean@pryen.org>
Jean Privat [Sat, 7 Feb 2015 15:45:28 +0000 (22:45 +0700)]
sep_compiler: optionally use a trampoline before the vft call
Signed-off-by: Jean Privat <jean@pryen.org>
Jean Privat [Mon, 9 Feb 2015 03:59:35 +0000 (10:59 +0700)]
sep_compiler: SeparateRuntimeFunction save its arguments
Signed-off-by: Jean Privat <jean@pryen.org>
Alexis Laferrière [Sun, 8 Feb 2015 21:45:26 +0000 (16:45 -0500)]
lib/glesv2: add glCheckFramebufferStatus
Signed-off-by: Alexis Laferrière <alexis.laf@xymus.net>
Alexis Laferrière [Sun, 8 Feb 2015 21:21:08 +0000 (16:21 -0500)]
lib/glesv2: add glHint
Signed-off-by: Alexis Laferrière <alexis.laf@xymus.net>
Alexis Laferrière [Sun, 8 Feb 2015 21:19:19 +0000 (16:19 -0500)]
lib/glesv2: add glBindFramebuffer and glBindRenderbuffer
Signed-off-by: Alexis Laferrière <alexis.laf@xymus.net>
Alexis Laferrière [Sun, 8 Feb 2015 18:06:43 +0000 (13:06 -0500)]
misc/vim: update README with latest features
Signed-off-by: Alexis Laferrière <alexis.laf@xymus.net>
Alexis Laferrière [Sat, 7 Feb 2015 16:54:54 +0000 (11:54 -0500)]
misc/vim: use shorter … char
Signed-off-by: Alexis Laferrière <alexis.laf@xymus.net>
Alexis Laferrière [Sat, 7 Feb 2015 13:22:31 +0000 (08:22 -0500)]
misc/vim: use separately class types, constructors and class declarations
Signed-off-by: Alexis Laferrière <alexis.laf@xymus.net>
Alexis Laferrière [Sat, 7 Feb 2015 13:20:54 +0000 (08:20 -0500)]
nitpick autocomplete: differenciate between class types, constructors and class declarations
Signed-off-by: Alexis Laferrière <alexis.laf@xymus.net>
Alexis Laferrière [Sat, 7 Feb 2015 13:19:49 +0000 (08:19 -0500)]
nitpick autocomplete: do not list properties beginning with @ or _
Signed-off-by: Alexis Laferrière <alexis.laf@xymus.net>
Jean Privat [Sat, 7 Feb 2015 16:03:37 +0000 (23:03 +0700)]
Merge: nitrpg: more statistics
Some changes on the stats API and new stats for Players.
Pull-Request: #1154
Reviewed-by: Jean Privat <jean@pryen.org>
Reviewed-by: Lucas Bajolet <r4pass@hotmail.com>
Jean Privat [Sat, 7 Feb 2015 15:44:16 +0000 (22:44 +0700)]
sep_compiler: add RuntimeFunction::c_fun_ptr
Signed-off-by: Jean Privat <jean@pryen.org>
Jean Privat [Sat, 7 Feb 2015 13:46:15 +0000 (20:46 +0700)]
Merge: Detect covariance
After a slow cleanup time, publication of the tool to detect and categorize the static usage of covariance in Nit programs.
@jpages yeah!
Pull-Request: #1151
Reviewed-by: Alexandre Terrasa <alexandre@moz-code.org>
Jean Privat [Sat, 7 Feb 2015 13:43:54 +0000 (20:43 +0700)]
Merge: Regen c_src without libunwind
The last `c_src` is 3 month old, it seems to be usual to have 3 to 4 months between updates.
This update also did not depends on libunwind: so no stacktrace but can compile on rasperry pi. so fix #1149
Note that the following steps of the initial make will still implicitly include libunwind, so on raspberry, either do the next steps manually with `--stacktrace none` or edit `src/Makefile` to add `--stacktrace none` to both `NITCOPT` and `OLDNITCOPT` (at the begin of the file)
Pull-Request: #1152
Reviewed-by: Alexis Laferrière <alexis.laf@xymus.net>
Reviewed-by: Alexandre Terrasa <alexandre@moz-code.org>
Jean Privat [Sat, 7 Feb 2015 13:43:24 +0000 (20:43 +0700)]
Merge: Vim omnifunc for Nit
Alternative autocompletion for Nit. This one is triggered by a call to
the omnitfunc, usually `ctrl-x ctrl-o`. It will show context
appropriated modules, classes and properties. It shows all properties,
but it does not use static types to show the methods available on the
specific receiver. It also displays some doc!
It uses `nitpick` to generate metadata files analyzed by the Vim plugin.
So in combination with `syntastic`, each time you save, and the program
is valid, it updates the metadata files.
Pull-Request: #1146
Reviewed-by: Jean Privat <jean@pryen.org>
Reviewed-by: Lucas Bajolet <r4pass@hotmail.com>
Reviewed-by: Alexandre Terrasa <alexandre@moz-code.org>
Jean Privat [Fri, 6 Feb 2015 09:16:30 +0000 (16:16 +0700)]
tests: update sav/test_test_phase_args1.res
Signed-off-by: Jean Privat <jean@pryen.org>
Jean Privat [Fri, 6 Feb 2015 05:51:07 +0000 (12:51 +0700)]
tests: update sav/nitmetrics_args*.res
Signed-off-by: Jean Privat <jean@pryen.org>
Jean Privat [Fri, 6 Feb 2015 16:13:21 +0000 (23:13 +0700)]
metrics: rename title of detect_variance_constraints
Signed-off-by: Jean Privat <jean@pryen.org>
Jean Privat [Fri, 6 Feb 2015 01:09:22 +0000 (08:09 +0700)]
metrics: add --detect-covariance
Signed-off-by: Jean Privat <jean@pryen.org>
Alexandre Terrasa [Fri, 6 Feb 2015 22:38:02 +0000 (23:38 +0100)]
contrib/nitrpg: move logging to `listener`
Signed-off-by: Alexandre Terrasa <alexandre@moz-code.org>
Alexandre Terrasa [Fri, 6 Feb 2015 16:39:04 +0000 (17:39 +0100)]
contrib/nitrpg: remove magic numbers from reactors.
Signed-off-by: Alexandre Terrasa <alexandre@moz-code.org>
Alexandre Terrasa [Thu, 5 Feb 2015 00:50:51 +0000 (01:50 +0100)]
contrib/nitrpg: clean stats display in panels
Signed-off-by: Alexandre Terrasa <alexandre@moz-code.org>
Alexandre Terrasa [Fri, 6 Feb 2015 22:15:02 +0000 (23:15 +0100)]
contrib/nitrg: fix link to puller in `PlayerReviewsPanel`
Signed-off-by: Alexandre Terrasa <alexandre@moz-code.org>
Alexandre Terrasa [Fri, 6 Feb 2015 17:26:07 +0000 (18:26 +0100)]
contrib/nitrpg: also reward player for merged commits.
Alexandre Terrasa [Fri, 6 Feb 2015 22:29:48 +0000 (23:29 +0100)]
contrib/nitrpg: do stats on players
Signed-off-by: Alexandre Terrasa <alexandre@moz-code.org>
Alexandre Terrasa [Fri, 6 Feb 2015 22:29:35 +0000 (23:29 +0100)]
contrib/nitrpg: do not save Game for all received events
Signed-off-by: Alexandre Terrasa <alexandre@moz-code.org>
Alexandre Terrasa [Fri, 6 Feb 2015 22:24:51 +0000 (23:24 +0100)]
contrib/nitrpg: do stats on merged commits
Signed-off-by: Alexandre Terrasa <alexandre@moz-code.org>
Alexandre Terrasa [Thu, 5 Feb 2015 00:46:59 +0000 (01:46 +0100)]
contrib/nitrpg: move statistics to GameEntity
Signed-off-by: Alexandre Terrasa <alexandre@moz-code.org>
Alexandre Terrasa [Fri, 6 Feb 2015 22:23:58 +0000 (23:23 +0100)]
contrib/nitrpg: extends GameStats API with Counter
Also makes it redef `game` like other GameEntity.
Signed-off-by: Alexandre Terrasa <alexandre@moz-code.org>
Alexis Laferrière [Thu, 5 Feb 2015 21:20:17 +0000 (16:20 -0500)]
misc: update README on info for the Nit omnifunc
Signed-off-by: Alexis Laferrière <alexis.laf@xymus.net>
Alexis Laferrière [Wed, 4 Feb 2015 17:01:57 +0000 (12:01 -0500)]
misc/vim: use the metadata files for a better autocompletion
Signed-off-by: Alexis Laferrière <alexis.laf@xymus.net>
Alexis Laferrière [Wed, 4 Feb 2015 17:01:24 +0000 (12:01 -0500)]
nitpick: generate metadata files for the Vim plugin
Signed-off-by: Alexis Laferrière <alexis.laf@xymus.net>
Jean Privat [Thu, 5 Feb 2015 14:38:02 +0000 (21:38 +0700)]
test_test_phase: count projects, classdefs and methods
Signed-off-by: Jean Privat <jean@pryen.org>
Jean Privat [Thu, 5 Feb 2015 14:29:26 +0000 (21:29 +0700)]
modelbuilder: add `check_subtype` and `check_sametype`
Signed-off-by: Jean Privat <jean@pryen.org>
Alexis Laferrière [Wed, 4 Feb 2015 11:03:06 +0000 (06:03 -0500)]
misc/vim: always use the standard library for autocompletion
Signed-off-by: Alexis Laferrière <alexis.laf@xymus.net>
Jean Privat [Fri, 6 Feb 2015 11:50:27 +0000 (18:50 +0700)]
c_src: regenerate
Signed-off-by: Jean Privat <jean@pryen.org>
Jean Privat [Fri, 6 Feb 2015 11:49:34 +0000 (18:49 +0700)]
mkcsrc: temporally disable stacktrace (libunwind) for c_src
Signed-off-by: Jean Privat <jean@pryen.org>
Jean Privat [Fri, 6 Feb 2015 01:14:55 +0000 (08:14 +0700)]
Merge: Generalize instance creation service so FFI can use it
Move up instance creation from ANew to AbstractCompilerVisitor so they can be used from the FFI implementation. Allows to call extern constructors of extern classes from extern code, and fix #1145.
Pull-Request: #1150
Reviewed-by: Lucas Bajolet <r4pass@hotmail.com>
Reviewed-by: Alexandre Terrasa <alexandre@moz-code.org>
Reviewed-by: Jean Privat <jean@pryen.org>
Jean Privat [Fri, 6 Feb 2015 01:14:49 +0000 (08:14 +0700)]
Merge: GitHub merge: some improvements
Pull-Request: #1148
Reviewed-by: Alexandre Terrasa <alexandre@moz-code.org>
Jean Privat [Fri, 6 Feb 2015 01:14:36 +0000 (08:14 +0700)]
Merge: Makefile: initial make use --semi-global
The produced tools in bin/ should be faster to use then.
Pull-Request: #1147
Reviewed-by: Alexandre Terrasa <alexandre@moz-code.org>
Jean Privat [Fri, 6 Feb 2015 01:14:25 +0000 (08:14 +0700)]
Merge: Global for filenames
This PR remove the remaining big variability for nitc when generating separate files: the path of nit module in runtime error messages.
When compiling a same module but from different current working directories, the relative path of the module changed. Thus causing unnecessary difference in the generated C source code that made ccache unhappy.
Before
~~~
$ ccache -C
$ time nitc src/nitc.nit
user 2m8.264s
$ cd src
$ time nitc nitc.nit
user 2m8.676s
~~~
After
~~~
$ ccache -C
$ time nitc src/nitc.nit
user 2m9.180s
$ cd src
$ time nitc nitc.nit
user 0m9.812s
~~~
Note: some files are still different after the PR
* main.c because it contains the real filepath
* c_function_hash.c same
* _ffi.? because the pragma lines indicate the original relative file
Note 2: `.nit_compile` directories are still created by default in the current directory and let unclean. cf #792
Pull-Request: #1144
Reviewed-by: Lucas Bajolet <r4pass@hotmail.com>
Reviewed-by: Alexandre Terrasa <alexandre@moz-code.org>
Jean Privat [Fri, 6 Feb 2015 01:14:19 +0000 (08:14 +0700)]
Merge: String memory fixes
Another step towards the closure of #1106 and #69, this PR removes several calls to `malloc` in `lib/standard` C code and replaces them by some of the solutions proposed in #1106 to handle the allocation of Strings.
@xymus: Your review is more than welcome since we're dealing with extern code, it might be a good time to specify and document how to properly allocate extern data structures to avoid leaking code such as the ones we had.
Pull-Request: #1140
Reviewed-by: Alexandre Terrasa <alexandre@moz-code.org>
Reviewed-by: Alexis Laferrière <alexis.laf@xymus.net>
Reviewed-by: Jean Privat <jean@pryen.org>
Jean Privat [Fri, 6 Feb 2015 01:14:13 +0000 (08:14 +0700)]
Merge: nitdoc: introduces phases
This serie of commit introduces the concept of DocPhase.
The first commit introduces new concepts that are used by the other commits to move code.
For each phase, related code is extracted from `doc_pages` to the corresponding `doc_phases`.
No code is actually deleted from `doc_pages` between steps. The complete module is deleted at the end.
Refactoring is kept at a minimal level in this PR (just enough to get compatibility between old `doc_model` and new `doc_phases`).
Some hacks are used to preserve a minimum of differences in the generated HTML.
Further commits will continue the cleaning / refactoring but also change the outputed HTML, so I prefer wait for a new PR.
Demo (wait for Jenkins): http://gresil.org/jenkins/job/CI-nitdoc/
Pull-Request: #1135
Reviewed-by: Jean Privat <jean@pryen.org>
Reviewed-by: Lucas Bajolet <r4pass@hotmail.com>
Alexis Laferrière [Thu, 5 Feb 2015 15:11:54 +0000 (10:11 -0500)]
tests: test calling extern constructors from extern code
Signed-off-by: Alexis Laferrière <alexis.laf@xymus.net>
Alexis Laferrière [Thu, 5 Feb 2015 14:59:55 +0000 (09:59 -0500)]
nitc: fix calling extern constructors from extern code in separate compiler
Signed-off-by: Alexis Laferrière <alexis.laf@xymus.net>
Lucas Bajolet [Thu, 5 Feb 2015 15:53:02 +0000 (10:53 -0500)]
niti: Fixed method NativeString::copy_to in intern_call
Signed-off-by: Lucas Bajolet <r4pass@hotmail.com>
Lucas Bajolet [Tue, 3 Feb 2015 21:47:39 +0000 (16:47 -0500)]
lib/standard/time: Fixed String-related memory leak
Signed-off-by: Lucas Bajolet <r4pass@hotmail.com>
Lucas Bajolet [Tue, 3 Feb 2015 20:53:01 +0000 (15:53 -0500)]
lib/standard/string: Removed Float.to_precision_native
Signed-off-by: Lucas Bajolet <r4pass@hotmail.com>
Lucas Bajolet [Mon, 2 Feb 2015 18:16:44 +0000 (13:16 -0500)]
lib/standard/string: Fixed leaking Int.to_s method
Signed-off-by: Lucas Bajolet <r4pass@hotmail.com>