nit.git
9 years agolib & src: name Android API version annotations
Alexis Laferrière [Sat, 9 May 2015 01:58:42 +0000 (21:58 -0400)]
lib & src: name Android API version annotations

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

9 years agolib/android: make `ui` a group and clean doc
Alexis Laferrière [Tue, 5 May 2015 17:28:54 +0000 (13:28 -0400)]
lib/android: make `ui` a group and clean doc

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

9 years agosrc/ffi: avoid duplicating visibility attributes of JNI native functions in C
Alexis Laferrière [Sat, 9 May 2015 02:31:19 +0000 (22:31 -0400)]
src/ffi: avoid duplicating visibility attributes of JNI native functions in C

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

9 years agosrc/c_tools: revamp doc and style of some `CCompilationUnit` services
Alexis Laferrière [Sat, 9 May 2015 02:28:23 +0000 (22:28 -0400)]
src/c_tools: revamp doc and style of some `CCompilationUnit` services

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

9 years agoMerge: Autoinit abstract attributes
Jean Privat [Sat, 9 May 2015 01:23:47 +0000 (21:23 -0400)]
Merge: Autoinit abstract attributes

Fix #1316

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

9 years agoMerge: Add missing nodes in the AST
Jean Privat [Sat, 9 May 2015 01:23:39 +0000 (21:23 -0400)]
Merge: Add missing nodes in the AST

Originally, the AST was very abstract and included only node that useful semantically, thus dropped most keywords and symbols during the AST transformation done by sablecc.

After all these years, I was a very bad idea that cause useless complexity for preople that wanted to program precise error messages or develop tools like nitlight or nitpretty.

So, this PR add back most of these nodes in the AST. Future PR may simplify the code of the tools to deal we a more complete AST thus remove heuristics to retrieve the missing tokens.

Pull-Request: #1320
Reviewed-by: Ait younes Mehdi Adel <overpex@gmail.com>
Reviewed-by: Alexandre Terrasa <alexandre@moz-code.org>
Reviewed-by: Lucas Bajolet <r4pass@hotmail.com>

9 years agoMerge: i18n annot: superstrings
Jean Privat [Sat, 9 May 2015 01:23:37 +0000 (21:23 -0400)]
Merge: i18n annot: superstrings

Added the support of superstrings in the i18n annotation.

The first commit introduces a string format to use when replacing superstrings.
The second and third commits are updates to the i18n annotation and the test that goes along with it.

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

9 years agoMerge: vim: look for `{ in deciding to highlight ffi language name. eg "C".
Jean Privat [Sat, 9 May 2015 01:23:29 +0000 (21:23 -0400)]
Merge: vim: look for `{ in deciding to highlight ffi language name. eg "C".

so `"C"` is now contextually highlighted.

Note: `\ze` means the end mark. What follows is looked for to be matched but is not considered in the token (some kind of lookahead)

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

9 years agoMerge: GTK clean up and a few new features
Jean Privat [Sat, 9 May 2015 01:23:20 +0000 (21:23 -0400)]
Merge: GTK clean up and a few new features

You should read this PR commit by commit as the style update touches almost every line. The style update adds and removes spaces, and it removes empty and commented methods. It does not touch the documentation, there is still a lot of work to do there.

Please read the commit description of "lib/gtk: ignore deprecated warnings" for the rationale of the change.

GTK will be used to implement the abstract UI on GNU/Linux.

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

9 years agoexamples/mnit_simple: update to latest `Intent` API
Alexis Laferrière [Fri, 8 May 2015 21:18:50 +0000 (17:18 -0400)]
examples/mnit_simple: update to latest `Intent` API

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

9 years agovim: look for `{ in deciding to highlight ffi language name. eg "C".
Jean Privat [Fri, 8 May 2015 20:40:17 +0000 (16:40 -0400)]
vim: look for `{ in deciding to highlight ffi language name. eg "C".

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

9 years agoexamples: langannot example updated with superstring capabilities
Lucas Bajolet [Thu, 7 May 2015 15:05:46 +0000 (11:05 -0400)]
examples: langannot example updated with superstring capabilities

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

9 years agosrc/frontend: i18n phase updated to support superstrings in a correct way
Lucas Bajolet [Thu, 7 May 2015 14:50:40 +0000 (10:50 -0400)]
src/frontend: i18n phase updated to support superstrings in a correct way

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

9 years agolib/standard/string: Added function to format a String using a new notation
Lucas Bajolet [Thu, 7 May 2015 14:50:17 +0000 (10:50 -0400)]
lib/standard/string: Added function to format a String using a new notation

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

9 years agolib/android/ui: move up some services the extern classes hierarchy
Alexis Laferrière [Tue, 5 May 2015 20:32:00 +0000 (16:32 -0400)]
lib/android/ui: move up some services the extern classes hierarchy

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

9 years agolib/android: make `ui` a group and clean doc
Alexis Laferrière [Tue, 5 May 2015 17:28:54 +0000 (13:28 -0400)]
lib/android: make `ui` a group and clean doc

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

9 years agolib/android: the `vibration` module only needs `dalvik`
Alexis Laferrière [Fri, 8 May 2015 18:23:18 +0000 (14:23 -0400)]
lib/android: the `vibration` module only needs `dalvik`

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

9 years agolib/android: the `toast` module only needs `dalvik`
Alexis Laferrière [Fri, 8 May 2015 18:23:12 +0000 (14:23 -0400)]
lib/android: the `toast` module only needs `dalvik`

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

9 years agolib/android: `Intent` do not need a context and update its constructor
Alexis Laferrière [Fri, 8 May 2015 18:42:19 +0000 (14:42 -0400)]
lib/android: `Intent` do not need a context and update its constructor

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

9 years agolib/android: move intent launching services out of `Intent`
Alexis Laferrière [Fri, 8 May 2015 18:17:16 +0000 (14:17 -0400)]
lib/android: move intent launching services out of `Intent`

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

9 years agolib/android: shared preferences only need `dalvik`
Alexis Laferrière [Fri, 8 May 2015 16:27:42 +0000 (12:27 -0400)]
lib/android: shared preferences only need `dalvik`

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

9 years agolib/android: rename android_data_store to data_store
Alexis Laferrière [Fri, 8 May 2015 17:59:23 +0000 (13:59 -0400)]
lib/android: rename android_data_store to data_store

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

9 years agolib/linux: rename linux_data_store to data_store
Alexis Laferrière [Fri, 8 May 2015 16:24:01 +0000 (12:24 -0400)]
lib/linux: rename linux_data_store to data_store

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

9 years agotests: add base_attr_abstract2.nit
Jean Privat [Fri, 8 May 2015 01:28:16 +0000 (21:28 -0400)]
tests: add base_attr_abstract2.nit

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

9 years agomodelize: abstract attributes included in autoinit signature
Jean Privat [Fri, 8 May 2015 01:26:34 +0000 (21:26 -0400)]
modelize: abstract attributes included in autoinit signature

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

9 years agonitrpg: use is_ack
Jean Privat [Fri, 8 May 2015 18:21:10 +0000 (14:21 -0400)]
nitrpg: use is_ack

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

9 years agolib/github: add `Comment::is_ack` to detect acknowledgments
Jean Privat [Fri, 8 May 2015 18:20:33 +0000 (14:20 -0400)]
lib/github: add `Comment::is_ack` to detect acknowledgments

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

9 years agotests: update sav with new location on error messages
Jean Privat [Fri, 8 May 2015 01:05:18 +0000 (21:05 -0400)]
tests: update sav with new location on error messages

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

9 years agoparser: regenerate
Jean Privat [Tue, 5 May 2015 01:03:41 +0000 (21:03 -0400)]
parser: regenerate

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

9 years agoastbuilder: inject non-nullable token for AIfExpr creation
Jean Privat [Tue, 5 May 2015 01:03:24 +0000 (21:03 -0400)]
astbuilder: inject non-nullable token for AIfExpr creation

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

9 years agogrammar: add missing nodes in the AST
Jean Privat [Tue, 5 May 2015 01:01:57 +0000 (21:01 -0400)]
grammar: add missing nodes in the AST

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

9 years agosrc/nith: activate light FFI in nith
Alexis Laferrière [Fri, 8 May 2015 13:08:19 +0000 (09:08 -0400)]
src/nith: activate light FFI in nith

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

9 years agosrc/ffi: add the light_only FFI compiler
Alexis Laferrière [Fri, 8 May 2015 13:12:43 +0000 (09:12 -0400)]
src/ffi: add the light_only FFI compiler

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

9 years agosrc/ffi: add a check before compiling FFI methods to see if supported
Alexis Laferrière [Fri, 8 May 2015 13:07:19 +0000 (09:07 -0400)]
src/ffi: add a check before compiling FFI methods to see if supported

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

9 years agosrc/nitni: add indirection for the C type name of normal nit classes
Alexis Laferrière [Fri, 8 May 2015 12:58:24 +0000 (08:58 -0400)]
src/nitni: add indirection for the C type name of normal nit classes

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

9 years agosrc/ffi: restrict importations in extern_classes
Alexis Laferrière [Fri, 8 May 2015 13:07:55 +0000 (09:07 -0400)]
src/ffi: restrict importations in extern_classes

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

9 years agosrc/ffi: separate compiler_ffi in light/full modules
Alexis Laferrière [Wed, 6 May 2015 11:47:52 +0000 (07:47 -0400)]
src/ffi: separate compiler_ffi in light/full modules

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

9 years agosrc/ffi: separate ffi::ffi in light/full version
Alexis Laferrière [Fri, 8 May 2015 13:10:55 +0000 (09:10 -0400)]
src/ffi: separate ffi::ffi in light/full version

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

9 years agosrc/ffi: separate ffi::c in light/full modules
Alexis Laferrière [Fri, 8 May 2015 12:52:51 +0000 (08:52 -0400)]
src/ffi: separate ffi::c in light/full modules

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

9 years agosrc/ffi: separate ffi::ffi_base in light/full modules
Alexis Laferrière [Fri, 8 May 2015 12:53:10 +0000 (08:53 -0400)]
src/ffi: separate ffi::ffi_base in light/full modules

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

9 years agoMerge: Nitdoc: some fixes and cleaning
Jean Privat [Fri, 8 May 2015 02:11:24 +0000 (22:11 -0400)]
Merge: Nitdoc: some fixes and cleaning

* Fixes the topmenu brand display
* Update bootstrap version to v3.3.4
* Avoid nesting of DefinitionArticle to facilitate tabular display (next PR)

Demos are ready: [stdlib](http://gresil.org/jenkins/job/CI-nitdoc/ws/doc/stdlib/index.html) [nitc](http://gresil.org/jenkins/job/CI-nitdoc/ws/doc/nitc/index.html)

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

9 years agoMerge: Fix calls on primitive receivers
Jean Privat [Fri, 8 May 2015 02:11:21 +0000 (22:11 -0400)]
Merge: Fix calls on primitive receivers

Fix #1301

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

9 years agotests: add base_primitive_recv.nit
Jean Privat [Thu, 7 May 2015 14:17:37 +0000 (10:17 -0400)]
tests: add base_primitive_recv.nit

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

9 years agocompiler: use `adapt_signature` to simplify and clean `table_send`
Jean Privat [Thu, 7 May 2015 14:11:40 +0000 (10:11 -0400)]
compiler: use `adapt_signature` to simplify and clean `table_send`

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

9 years agocontrib/nitiwiki: extract link handling in its own module
Alexandre Terrasa [Thu, 7 May 2015 05:39:55 +0000 (01:39 -0400)]
contrib/nitiwiki: extract link handling in its own module

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

9 years agocontrib/nitiwiki: avoid crash on `WikiArticle.md` with auto generated articles
Alexandre Terrasa [Thu, 7 May 2015 05:35:09 +0000 (01:35 -0400)]
contrib/nitiwiki: avoid crash on `WikiArticle.md` with auto generated articles

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

9 years agocontrib/nitiwiki: move `render` to `wiki_base`
Alexandre Terrasa [Thu, 7 May 2015 05:34:05 +0000 (01:34 -0400)]
contrib/nitiwiki: move `render` to `wiki_base`

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

9 years agocontrib/nitiwiki: better logging
Alexandre Terrasa [Thu, 7 May 2015 05:31:26 +0000 (01:31 -0400)]
contrib/nitiwiki: better logging

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

9 years agocontrib/nitiwiki: display status if no other option requested
Alexandre Terrasa [Thu, 7 May 2015 05:30:03 +0000 (01:30 -0400)]
contrib/nitiwiki: display status if no other option requested

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

9 years agolib/markdown: fix whitespaces and indent
Alexandre Terrasa [Thu, 7 May 2015 05:44:27 +0000 (01:44 -0400)]
lib/markdown: fix whitespaces and indent

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

9 years agoMerge: Semicolumn
Jean Privat [Thu, 7 May 2015 01:56:10 +0000 (21:56 -0400)]
Merge: Semicolumn

Propose that `;` is usable as a hard line break. While this is not really nit-ish, the only need is in fact to be able to write short one-line scripts in environment where linefeeds are not an option.

~~~sh
$ ./nit -e 'for line in stdin.each_line do; var xs = line.split(":"); if xs.not_empty then print xs.first; end' < /etc/passwd
~~~

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

9 years agoMerge: Balanced brackets
Jean Privat [Thu, 7 May 2015 01:56:08 +0000 (21:56 -0400)]
Merge: Balanced brackets

The PR started as a simple implementation for the task http://rosettacode.org/wiki/Balanced_brackets but some improvements on the lib and tests.sh where also added

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

9 years agoexamples & tests: update users of the gtk module
Alexis Laferrière [Tue, 5 May 2015 10:08:45 +0000 (06:08 -0400)]
examples & tests: update users of the gtk module

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

9 years agonitdoc: do not nest DefinitionArticle
Alexandre Terrasa [Fri, 24 Apr 2015 15:58:33 +0000 (11:58 -0400)]
nitdoc: do not nest DefinitionArticle

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

9 years agonitdoc: update bootstrap version
Alexandre Terrasa [Fri, 24 Apr 2015 15:50:42 +0000 (11:50 -0400)]
nitdoc: update bootstrap version

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

9 years agonitdoc: fixes double span on topmenu brand
Alexandre Terrasa [Fri, 24 Apr 2015 03:24:39 +0000 (23:24 -0400)]
nitdoc: fixes double span on topmenu brand

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

9 years agolib/json: add pretty printing services on Jsonable instances
Alexandre Terrasa [Wed, 6 May 2015 17:05:03 +0000 (13:05 -0400)]
lib/json: add pretty printing services on Jsonable instances

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

9 years agolib/gtk: revamp `GtkWindow::new`
Alexis Laferrière [Tue, 5 May 2015 12:37:06 +0000 (08:37 -0400)]
lib/gtk: revamp `GtkWindow::new`

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

9 years agolib/gtk: add more services to GtkBox
Alexis Laferrière [Tue, 5 May 2015 11:24:56 +0000 (07:24 -0400)]
lib/gtk: add more services to GtkBox

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

9 years agolib/gtk: add a constructor to GtkBox
Alexis Laferrière [Tue, 5 May 2015 10:08:28 +0000 (06:08 -0400)]
lib/gtk: add a constructor to GtkBox

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

9 years agolib/gtk: intro the interface GtkOrientable
Alexis Laferrière [Tue, 5 May 2015 10:08:13 +0000 (06:08 -0400)]
lib/gtk: intro the interface GtkOrientable

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

9 years agolib/gtk: update coding style
Alexis Laferrière [Tue, 5 May 2015 10:00:35 +0000 (06:00 -0400)]
lib/gtk: update coding style

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

9 years agolib/gtk: fix GdkColor to produce something other than red
Alexis Laferrière [Tue, 5 May 2015 09:56:01 +0000 (05:56 -0400)]
lib/gtk: fix GdkColor to produce something other than red

This service is deprecated, but it is still worth updating it for
consistency.

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

9 years agolib/gtk: remove unimplemented GdkRGBA::new
Alexis Laferrière [Tue, 5 May 2015 09:51:48 +0000 (05:51 -0400)]
lib/gtk: remove unimplemented GdkRGBA::new

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

9 years agolib/gtk: remove unused parameters from the GtkGrid constructor
Alexis Laferrière [Tue, 5 May 2015 09:38:21 +0000 (05:38 -0400)]
lib/gtk: remove unused parameters from the GtkGrid constructor

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

9 years agolib/gtk: ignore deprecated warnings
Alexis Laferrière [Tue, 5 May 2015 09:37:02 +0000 (05:37 -0400)]
lib/gtk: ignore deprecated warnings

Previously, all programs using the GTK module were compiled using global
compilation to silence deprecated warnings. However, separate compilation
would raise warnings even on unused code.

There are more and more deprecated warnings as the local GTK library
gets updated. However, we cannot remove all the usage of the deprecated
services as their replacement are not yet available on each computers
using this library.

We could do it entirely by class refinement and never call the
deprecated services on precise, more recent version of the lib.
However, the deprecated error would still remain in separate
compilation. Global compilation would be fine as the unreachable C code
is not be generated.

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

9 years agotests: update sav/nitunit_args6.res because `;` is no more a bad character
Jean Privat [Tue, 5 May 2015 19:23:33 +0000 (15:23 -0400)]
tests: update sav/nitunit_args6.res because `;` is no more a bad character

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

9 years agotests: add syntax_semi*.nit
Jean Privat [Mon, 4 May 2015 19:42:37 +0000 (15:42 -0400)]
tests: add syntax_semi*.nit

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

9 years agomisc_analysis: warn on superfluous `;`
Jean Privat [Wed, 6 May 2015 01:21:33 +0000 (21:21 -0400)]
misc_analysis: warn on superfluous `;`

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

9 years agoparser: regenerate
Jean Privat [Mon, 4 May 2015 19:27:28 +0000 (15:27 -0400)]
parser: regenerate

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

9 years agogrammar: distinguish `nd` for doc and `no` for optional eol
Jean Privat [Mon, 4 May 2015 19:26:18 +0000 (15:26 -0400)]
grammar: distinguish `nd` for doc and `no` for optional eol

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

9 years agogrammar: add `;` as an alternative hard line-break
Jean Privat [Mon, 4 May 2015 19:25:21 +0000 (15:25 -0400)]
grammar: add `;` as an alternative hard line-break

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

9 years agoMerge: nitdoc: migrate the DocPage rendering to composite rendering
Jean Privat [Wed, 6 May 2015 01:29:03 +0000 (21:29 -0400)]
Merge: nitdoc: migrate the DocPage rendering to composite rendering

Also delete old nitdoc components.

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

9 years agoexample/rosettacode: add task balanced_brackets
Jean Privat [Tue, 5 May 2015 18:27:57 +0000 (14:27 -0400)]
example/rosettacode: add task balanced_brackets

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

9 years agolib/math: add `Collection::to_shuffle` and `Array::shuffle`
Jean Privat [Tue, 5 May 2015 18:24:41 +0000 (14:24 -0400)]
lib/math: add `Collection::to_shuffle` and `Array::shuffle`

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

9 years agolib/math: nitunit `Collection::rand`
Jean Privat [Tue, 5 May 2015 18:23:57 +0000 (14:23 -0400)]
lib/math: nitunit `Collection::rand`

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

9 years agolib/mnit: remove `MNIT_SRAND` and use `NIT_SRAND` instead
Jean Privat [Tue, 5 May 2015 18:23:29 +0000 (14:23 -0400)]
lib/mnit: remove `MNIT_SRAND` and use `NIT_SRAND` instead

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

9 years agolib/standard: use `NIT_SRAND` envvar to control the random number generator
Jean Privat [Tue, 5 May 2015 18:22:53 +0000 (14:22 -0400)]
lib/standard: use `NIT_SRAND` envvar to control the random number generator

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

9 years agosrc/doc: fix anchor url following the rendering migration
Alexandre Terrasa [Fri, 24 Apr 2015 03:02:18 +0000 (23:02 -0400)]
src/doc: fix anchor url following the rendering migration

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

9 years agosrc/doc: clean old components
Alexandre Terrasa [Tue, 24 Feb 2015 13:47:04 +0000 (14:47 +0100)]
src/doc: clean old components

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

9 years agosrc/doc: migrate showsource links to new templates
Alexandre Terrasa [Tue, 24 Feb 2015 13:28:42 +0000 (14:28 +0100)]
src/doc: migrate showsource links to new templates

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

9 years agosrc/doc: move linearization list to `doc_phases`
Alexandre Terrasa [Tue, 24 Feb 2015 13:18:47 +0000 (14:18 +0100)]
src/doc: move linearization list to `doc_phases`

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

9 years agosrc/doc: migrate Index page rendering to `doc_phases`
Alexandre Terrasa [Tue, 24 Feb 2015 13:01:25 +0000 (14:01 +0100)]
src/doc: migrate Index page rendering to `doc_phases`

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

9 years agosrc/doc: migrate Overview page to `doc_phases`
Alexandre Terrasa [Tue, 24 Feb 2015 12:55:16 +0000 (13:55 +0100)]
src/doc: migrate Overview page to `doc_phases`

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

9 years agosrc/doc: move rendering from old templates to new phases
Alexandre Terrasa [Sat, 25 Apr 2015 13:34:33 +0000 (09:34 -0400)]
src/doc: move rendering from old templates to new phases

Next commits will do some fixups:
* redo showlinks
* redo Overview
* redo FullIndex page

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

9 years agosrc/doc: migrate sidebar custom lists to new templates
Alexandre Terrasa [Tue, 24 Feb 2015 13:43:42 +0000 (14:43 +0100)]
src/doc: migrate sidebar custom lists to new templates

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

9 years agosrc/doc: migrate sidebar to new templates
Alexandre Terrasa [Tue, 24 Feb 2015 01:15:23 +0000 (02:15 +0100)]
src/doc: migrate sidebar to new templates

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

9 years agoMerge: Prettier pretty printing
Jean Privat [Tue, 5 May 2015 01:10:25 +0000 (21:10 -0400)]
Merge: Prettier pretty printing

Some bugfixes, improvements and workaround for nitprettty.

The two options `--no-inline` and `--line-width` allow to control some rules about line-breaks.
This can be useful especially for people that want more relaxed rules.

~~~sh
$ ./nitpretty --check ../lib | wc -l
224
$ ./nitpretty --check ../lib --line-width 0 --no-inline | wc -l
188
~~~

So 36 more files are identical to their pretty printing with those relaxed rules.

For information, the tool crashed on some files in lib with the version before the PR.

Note that a lot of more work is still needed, one can see very strange and inconsistent results if the line width is forced to 1.

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

9 years agoMerge: Fix a bit of everything: typos, doc, android, bucketed_game and vim
Jean Privat [Tue, 5 May 2015 01:10:09 +0000 (21:10 -0400)]
Merge: Fix a bit of everything: typos, doc, android, bucketed_game and vim

Fix typos in doc and help, improve doc, fix error in Android projects, clean up bucketed_game and add an option for #1300.

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

9 years agoMerge: nitdoc: start using DocComponent rendering
Jean Privat [Tue, 5 May 2015 01:09:57 +0000 (21:09 -0400)]
Merge: nitdoc: start using DocComponent rendering

This PR starts the migration of HTML rendering from old components to new DocComposite rendering.

Some minor differences can be seen in the output.

Démos: [stdli](http://gresil.org/jenkins/job/CI-nitdoc/ws/doc/stdlib/index.html) and [nitc](http://gresil.org/jenkins/job/CI-nitdoc/ws/doc/nitc/index.html).

Pull-Request: #1299
Reviewed-by: Lucas Bajolet <r4pass@hotmail.com>
Reviewed-by: Romain Chanoir <chanoir.romain@courrier.uqam.ca>

9 years agoMerge: Filereader fix
Jean Privat [Tue, 5 May 2015 01:09:50 +0000 (21:09 -0400)]
Merge: Filereader fix

Since 39fcf4a75aaec646f0b60d404dfcc5cb63dcb473 and because people prefer the Python/Ruby semantic to the C semantic, eof is blocking.

This PR rewrite `BufferedReader.read` to follow the Python/Ruby semantic: if there is 1 character in the system buffer, and that the programmer asks for 2, the program will wait to have 1 more character, that can block the whole program if we are waiting the missing character from some keyboard, pipe or tcp connection.

Here a comparaison of the various specifications:

The protocol is the following: I `read(4)` bytes from stdin and print them. On stdin, I write `ab\n` (3 bytes) then `cd\n` (3 other bytes) and see when the the read does Its job.
In the following, I only give the outputs since the input will be the same and adding it will require to distinguish them with the output.

~~~sh
$ ./nit_old -e 'print sys.stdin.read(4)'
a
~~~

WTF? Why only char `a` was printed? OK the implementation before the PR was more buggy than expected.

~~~sh
$ ./nit_new -e 'print sys.stdin.read(4)'
ab
c
~~~

As I expected, nothing is printed after the first `ab\n` because exactly 4 bytes are waited for, then printed. Thus we get `ab\nc`. The extra `d\n` are lost in the buffer of Nit.

~~~sh
$ ruby -e 'puts $stdin.read(4)'
ab
c
$ d
bash: d : commande introuvable
~~~

Same behavior with Ruby, so nothing is printed after the first `ab\n`.
Nice surprise however, the extra `d\n` are not lost but kept in system buffer, so still available (and read) when the shell take back the control. I am not really sure which behavior I prefer. The Ruby one might be saner from an OS point of view; but since I was surprised, one can assume that the POLA level is not that high.

~~~sh
$ python <(echo 'import sys;print(sys.stdin.read(4))')
ab
c
~~~

So exactly the same behavior than Nit with this PR.

Close #1264

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

9 years agoMerge: i18n annotation
Jean Privat [Tue, 5 May 2015 01:09:46 +0000 (21:09 -0400)]
Merge: i18n annotation

So here's the POC of a new annotation for the compiler: i18n !

Right now, you can append it to a module declaration with the locale of your choice.

It then generates a .pot template file and a .po file for the language you chose when defining your module.

The generation of the corresponding .mo (using msgfmt) file is still of the responsability of the user.

There's still several modifications to do for real usability, namely the support of superstrings, the possibility to untranslate a literal string via some kind of notranslate annotation (though if no translation is found, the key is kept as argument, so this should not be an issue).

So now, when using another value for the $LANGUAGE environment value, a different message will be printed when executing a Nit program, have fun !

NOTE: I have not yet added a test since I'm not sure how we should proceed. I guess we could just try to generate a .po file and .mo file for the example with a bash script and change the locale on the test server, I'm not sure how to do so, if you have an idea, please let me know.

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

9 years agonitpretty: use parse_full to allow groups and cie
Jean Privat [Fri, 24 Apr 2015 16:10:43 +0000 (23:10 +0700)]
nitpretty: use parse_full to allow groups and cie

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

9 years agopretty: force newline before a tab (or else things are ugly)
Jean Privat [Fri, 24 Apr 2015 16:01:05 +0000 (23:01 +0700)]
pretty: force newline before a tab (or else things are ugly)

There is still issues but this is more usable anyway.

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

9 years agonitpretty: new option --no-inline
Jean Privat [Fri, 24 Apr 2015 14:48:03 +0000 (21:48 +0700)]
nitpretty: new option --no-inline

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

9 years agonitpretty: new option --line_width
Jean Privat [Fri, 24 Apr 2015 13:54:17 +0000 (20:54 +0700)]
nitpretty: new option --line_width

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

9 years agopretty: workaround a bug with a missing `else`
Jean Privat [Fri, 24 Apr 2015 11:19:21 +0000 (18:19 +0700)]
pretty: workaround a bug with a missing `else`

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

9 years agopretty: handle typed literal arrays
Jean Privat [Fri, 24 Apr 2015 11:08:28 +0000 (18:08 +0700)]
pretty: handle typed literal arrays

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

9 years agopretty: skip commas in ANodes
Jean Privat [Fri, 24 Apr 2015 11:06:52 +0000 (18:06 +0700)]
pretty: skip commas in ANodes

I do not know why and by who the comma is skipped but in some case it
is still here. So force its removal if any.

For instance

~~~nit
foo(a, [b])
~~~

caused some issue

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

9 years agopretty: add consume_comment to process optional comments
Jean Privat [Fri, 24 Apr 2015 11:03:46 +0000 (18:03 +0700)]
pretty: add consume_comment to process optional comments

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