nit.git
9 years agoMerge: nitiwiki: introduce wikilinks
Jean Privat [Mon, 11 May 2015 23:22:25 +0000 (19:22 -0400)]
Merge: nitiwiki: introduce wikilinks

Nitiwiki now understand the wikilink format using double brackets.

Examples:
`[[foo]]`: link to the page named `foo`
`[[foo/bar]]`: link to the page named `bar` in `foo`
`[[/foo/bar]]`: link to the page located exactly here

It's also possible to add a custom name:
`[[foo|My cute custom name <3]]`: link to the page named `foo`

And to use anchors:
`[[foo#bar]]`: link to the page named `foo`

nitiwiki will display warnings if a link seems broken.

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

9 years agoMerge: contrib: Introduce refund
Jean Privat [Mon, 11 May 2015 23:22:19 +0000 (19:22 -0400)]
Merge: contrib: Introduce refund

`refund` is a tool developped for the correction of the course INF2015: Développement de logiciels dans un environnement Agile.

Its purpose is to parse a reclamation sheet submitted by an insurrance client in Json format then to compute the allowed refunds depending on the policy contracted by the client.

Even if this program is not really usefull for the Nit project, it makes a concrete example on how we can use the language in the real world, so I submit it.

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

9 years agoMerge: lib: introduce MongoDB wrapper
Jean Privat [Mon, 11 May 2015 23:22:16 +0000 (19:22 -0400)]
Merge: lib: introduce MongoDB wrapper

This is my first real use of the FFI, @xymus you input on that?

Also poking @BlackMinou because he likes to review C code.

Pull-Request: #1303
Reviewed-by: Lucas Bajolet <r4pass@hotmail.com>
Reviewed-by: Jean Privat <jean@pryen.org>
Reviewed-by: Alexis Laferrière <alexis.laf@xymus.net>

9 years agolib: introduce MongoDB wrapper
Alexandre Terrasa [Wed, 6 May 2015 23:53:03 +0000 (19:53 -0400)]
lib: introduce MongoDB wrapper

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

9 years agolib/c: introduce char** wrapper
Alexandre Terrasa [Mon, 11 May 2015 00:18:48 +0000 (20:18 -0400)]
lib/c: introduce char** wrapper

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

9 years agocontrib/refund: add refund tmp files to gitignore.
Alexandre Terrasa [Wed, 6 May 2015 17:10:17 +0000 (13:10 -0400)]
contrib/refund: add refund tmp files to gitignore.

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

9 years agocontrib/refund: add Makefile
Alexandre Terrasa [Wed, 6 May 2015 17:09:57 +0000 (13:09 -0400)]
contrib/refund: add Makefile

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

9 years agocontrib/refund: add tests
Alexandre Terrasa [Wed, 6 May 2015 17:09:41 +0000 (13:09 -0400)]
contrib/refund: add tests

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

9 years agocontrib/nitiwiki: update README
Alexandre Terrasa [Thu, 7 May 2015 05:57:45 +0000 (01:57 -0400)]
contrib/nitiwiki: update README

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

9 years agocontrib/nitiwiki: update tests
Alexandre Terrasa [Thu, 7 May 2015 14:06:11 +0000 (10:06 -0400)]
contrib/nitiwiki: update tests

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

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

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

9 years agocontrib: introduce `refund` calculator
Alexandre Terrasa [Wed, 6 May 2015 17:08:48 +0000 (13:08 -0400)]
contrib: introduce `refund` calculator

This project was used to the correction of the course
INF2015: Développement de logiciels dans un environnement Agile"

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

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 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 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 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 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>

9 years agopretty: add `visit_args` to factorize the processing of arguments
Jean Privat [Fri, 24 Apr 2015 11:01:58 +0000 (18:01 +0700)]
pretty: add `visit_args` to factorize the processing of arguments

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

9 years agoversion 0.7.4 v0.7.4
Jean Privat [Mon, 4 May 2015 13:45:46 +0000 (09:45 -0400)]
version 0.7.4

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

9 years agosrc/android: remove configChange section from XML, it is defined by libs
Alexis Laferrière [Tue, 28 Apr 2015 17:25:55 +0000 (13:25 -0400)]
src/android: remove configChange section from XML, it is defined by libs

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

9 years agomisc/vim: add option to disable omnifunc
Alexis Laferrière [Tue, 28 Apr 2015 03:51:47 +0000 (23:51 -0400)]
misc/vim: add option to disable omnifunc

Fix #1300.

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

9 years agolib/collection: better doc for Iterator
Alexis Laferrière [Tue, 14 Apr 2015 20:55:48 +0000 (16:55 -0400)]
lib/collection: better doc for Iterator

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

9 years agolib/java: fix typo
Alexis Laferrière [Tue, 14 Apr 2015 20:54:55 +0000 (16:54 -0400)]
lib/java: fix typo

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

9 years agosrc/frontend: fix typo
Alexis Laferrière [Tue, 14 Apr 2015 20:55:06 +0000 (16:55 -0400)]
src/frontend: fix typo

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

9 years agolib/bucketed_game: revamp constructor of `Buckets`
Alexis Laferrière [Tue, 28 Apr 2015 02:58:10 +0000 (22:58 -0400)]
lib/bucketed_game: revamp constructor of `Buckets`

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

9 years agoexamples: Added i18n example and po files for several languages
Lucas Bajolet [Fri, 24 Apr 2015 14:51:22 +0000 (10:51 -0400)]
examples: Added i18n example and po files for several languages

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

9 years agocompiler: Added i18n phase and annotation
Lucas Bajolet [Tue, 21 Apr 2015 20:24:39 +0000 (16:24 -0400)]
compiler: Added i18n phase and annotation

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

9 years agolib: Added gettext basic support
Lucas Bajolet [Tue, 21 Apr 2015 20:17:14 +0000 (16:17 -0400)]
lib: Added gettext basic support

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

9 years agodoc/src: GraphArticle use new templates
Alexandre Terrasa [Tue, 24 Feb 2015 00:06:43 +0000 (01:06 +0100)]
doc/src: GraphArticle use new templates

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

9 years agoMerge: Named arguments
Jean Privat [Sat, 25 Apr 2015 02:19:15 +0000 (09:19 +0700)]
Merge: Named arguments

Named arguments allows the caller to specify some subset of arguments it wants to call.
This PR introduce a syntax for callers inspired from the Python one (the Ruby one uses columns that clashes with types declaration).

~~~nit
format(linewidth=80, separator=":", indent=true)
~~~

The specification tries to be as simple as possible

* Only default parameters can be passed by name; because the other are mandatory.
  This restriction is also useful to avoid to specify additional rules, like the last parameter of assignment methods, because the ones on default arguments apply.

~~~nit
fun foo(a,b: nullable Int) do ...
foo(b=1)
foo(null,1) # equivalent
~~~

* Named arguments can appear anywhere (not necessarily at the end)

~~~nit
fun foo(a: Int, b: nulable Int)
foo(b=1,2)
foo(2,1) # equivalent
~~~

* The order of evaluation is the order of the arguments (not the order of the parameters).
  I think this is more POLA this way.

* The names to use are the one of the statically designated method declaration (not the introduction).
  This one is problematic because the language permit the name of parameters to change in redefinitions.
  But in case of errors or in a IDE it is often more useful to point the most precise method definition.

The implementation was trivial because the hard work was already done in the previous PR.

This PR was unlocked by #1280

Pull-Request: #1281
Reviewed-by: Alexis Laferrière <alexis.laf@xymus.net>
Reviewed-by: Alexandre Terrasa <alexandre@moz-code.org>
Reviewed-by: Etienne M. Gagnon <egagnon@j-meg.com>
Reviewed-by: Lucas Bajolet <r4pass@hotmail.com>
Reviewed-by: Romain Chanoir <chanoir.romain@courrier.uqam.ca>