c_src: Fix uname in Makefile

Signed-off-by: Jean Privat <jean@pryen.org>
gitignore: ingore all bin/ and doc/ in examples/

Signed-off-by: Jean Privat <jean@pryen.org>
nitcc: generate info files with .out instead of .txt

Signed-off-by: Jean Privat <jean@pryen.org>
nitcc: .gitignore .out files

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

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

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

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

Signed-off-by: Jean Privat <jean@pryen.org>
examples/mnit_*: add Makefile recipe to build svg_to_icons

Signed-off-by: Jean Privat <jean@pryen.org>
examples/mnit_*: add icon in .gitignore

Signed-off-by: Jean Privat <jean@pryen.org>
Makefile: add recipe `full` to build examples and programs.

Signed-off-by: Jean Privat <jean@pryen.org>
lib/string: redefine [] for FlatString and FlatBuffer without using chars

Signed-off-by: Jean Privat <jean@pryen.org>
lib/stream: BufferedIStream.read_all use Buffer[j] instead of Buffer.chars[]

Signed-off-by: Jean Privat <jean@pryen.org>
parser: Lexer.get_token use String[j] instead of String.chars[]

Signed-off-by: Jean Privat <jean@pryen.org>
Makefile: clean the clean recipes

And remove the useless dist-clean recipe

Signed-off-by: Jean Privat <jean@pryen.org>
contrib/sort_downloads: use relative nitg binary

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

The various Makefile need some love. So, a new recipe `full` can be used to build programs from examples and contrib.

The `clean` recipe is also updated to work and clean stuff.

However, some questions:

1. Should the `clean` recipe clean the binaries? I did not fine a definitive answer on the Internet.
2. Should the binaries be .gitignored?

Note: In a near future, Jenkins may also check that all the Makefile, and their `clean` work as expected.

Pull-Request: #687
Reviewed-by: Lucas Bajolet <r4pass@hotmail.com>
Reviewed-by: Alexandre Terrasa <alexandre@moz-code.org>
Merge: Less char boxings

Because of the way the boxing is done in nitg-s, the services in the `Text::chars` view cause unnecessary boxing of chars.

After profiling, we found that the biggest consumers of such boxing are `Lexer::get_token` and `BufferedIStream::read_all`.

Thus, the idea is to implement a efficient `Text::[]` method that do not use the `chars` view. Then to update the two consumers to use it instead.

With `nitg nitg.nit`, the total gain is approx 5%, and the number of boxes of char is reduced by 70% (from 4.8Mboxes to 1.4Mboxes).

Note: this is only an easy workaround until the boxing is done better in nitg (mid-term goal)

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