nit.git
8 years agonitg-g: Fix allocation of NativeArray
Lucas Bajolet [Thu, 28 May 2015 21:09:27 +0000 (17:09 -0400)]
nitg-g: Fix allocation of NativeArray

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

8 years agoMerge: Correct warn on noautoinit
Jean Privat [Thu, 28 May 2015 00:19:25 +0000 (20:19 -0400)]
Merge: Correct warn on noautoinit

Move the analysis of the class annotation `noautoinit` after the inheritance of initializers so the warning is correct, thus fixes #1350

The main commit is mainly moving the code in the same method.

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

8 years agoMerge: Rename the visit function of minilang example.
Jean Privat [Thu, 28 May 2015 00:19:17 +0000 (20:19 -0400)]
Merge: Rename the visit function of minilang example.

This PR rename the visit function of the ```minilang.nit``` file. The previous name was incoherent with the module purpose.

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

8 years agoMerge: Use self in the FFI
Jean Privat [Thu, 28 May 2015 00:19:09 +0000 (20:19 -0400)]
Merge: Use self in the FFI

As requested by everyone, replace the id `recv` by `self` in all Nit FFIs, and their users.

This PR must be integrated before regenerating c_src and using the light FFI in bootstrap critical code.

There is a few commits to update the style of files that caused white space errors.

Pull-Request: #1399
Reviewed-by: Jean Privat <jean@pryen.org>
Reviewed-by: Jean-Philippe Caissy <jpcaissy@piji.ca>
Reviewed-by: Alexandre Terrasa <alexandre@moz-code.org>

8 years agoMerge: Improve internal mechanisms of the nitvm
Jean Privat [Thu, 28 May 2015 00:19:00 +0000 (20:19 -0400)]
Merge: Improve internal mechanisms of the nitvm

This PR fixes a bug that was hidden in the nitvm for a too long time, the recursion in class loading was bad and is now corrected.

Then a more accurate mechanism is introduce to deal with positions of methods and attributes in internal structures of classes and objects.
When a method dispatch is performed, this mechanism allows to ask precisely for a class the position of a block of methods (or attributes). This should increase the proportion of object mechanisms "compiled" in an efficient way.

Finally, the class loading is optimized: an indirectly loaded class is not fully constructed and allocated.
Instead, its identifier is computed to allow subtyping tests.

For now, these more accurate mechanisms need recompilations of callsite. This sould be done in further PR.

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

8 years agoMerge: Markdown location
Jean Privat [Thu, 28 May 2015 00:18:53 +0000 (20:18 -0400)]
Merge: Markdown location

Introduce location in markdown parser so tools can easily retrieve the original position of a block or a token in the input file/string.

Commits:
* 2d139eb introduces de Location concept and update the parser
* fda150d isn't interesting since it only update signature in the test file
* dacc7ba adds some test suites for the locations

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

8 years agoMerge: contrib/header_static: a cog in the toolchains to generate Objcwrapper
Jean Privat [Thu, 28 May 2015 00:18:39 +0000 (20:18 -0400)]
Merge: contrib/header_static: a cog in the toolchains to generate Objcwrapper

### Filters preprocessed C-like header files to remove static code and keep their signatures.

This tool is used in the process of parsing header files to extract
information on the declared services (the functions and structures).
This information is then used to generate bindings for Nit code
to access these services.

The C header sometimes contains static code. It deletes static code of
headers, but keep their signatures. This tool is an extension of
header_keeper. It searches the keyword static to identify
the static code, and ignore the code into their brackets. The result is
printed to sdtout.

~~~sh
cat Pre-Processed/CGGeometry.h | header_static Pre-Processed/CGGeometry.h > Pre-Processed/static_header.h
~~~

This module can also be used as a library.
The main service is the method `header_static`

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

8 years agotests: add alt to base_init_autoinit3 to check warning on `noautoinit`
Jean Privat [Wed, 27 May 2015 15:52:51 +0000 (11:52 -0400)]
tests: add alt to base_init_autoinit3 to check warning on `noautoinit`

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

8 years agomodelize: `noautoinit` check inherited initializes before warning
Jean Privat [Wed, 27 May 2015 15:51:53 +0000 (11:51 -0400)]
modelize: `noautoinit` check inherited initializes before warning

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

8 years agoFix incoherent name function in minilang
Mehdi [Wed, 27 May 2015 13:25:50 +0000 (09:25 -0400)]
Fix incoherent name function in minilang

Signed-off-by: Mehdi <overpex@gmail.com>

8 years agoMerge: sepcomp: fix hardening related to the instantiation of dead types
Jean Privat [Wed, 27 May 2015 10:12:32 +0000 (06:12 -0400)]
Merge: sepcomp: fix hardening related to the instantiation of dead types

The bug was revelated by #1385

Pull-Request: #1402
Reviewed-by: Lucas Bajolet <r4pass@hotmail.com>

8 years agoMerge: `Int::times`: clean nitunit and expose negative behavior
Jean Privat [Wed, 27 May 2015 00:55:15 +0000 (20:55 -0400)]
Merge: `Int::times`: clean nitunit and expose negative behavior

I tried to use `Int::times` but the nitunit wasn't clear enough on the expected behavior.

Thanks at @BlackMinou for is moral support on this.

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

8 years agoMerge: Rename all REAMDE to README.md
Jean Privat [Wed, 27 May 2015 00:55:03 +0000 (20:55 -0400)]
Merge: Rename all REAMDE to README.md

Close #1382

Pull-Request: #1383
Reviewed-by: Alexandre Blondin Massé <alexandre.blondin.masse@gmail.com>
Reviewed-by: Alexis Laferrière <alexis.laf@xymus.net>
Reviewed-by: Romain Chanoir <chanoir.romain@courrier.uqam.ca>
Reviewed-by: Alexandre Terrasa <alexandre@moz-code.org>

8 years agoMerge: Intro an unrolled linked list, and fix `List::insert`
Jean Privat [Wed, 27 May 2015 00:54:56 +0000 (20:54 -0400)]
Merge: Intro an unrolled linked list, and fix `List::insert`

An unrolled list is a sequence implemented by a linked list of arrays.

I use this list for a very long FIFO. `Array::shift` is very slow and a large `List` can create too many small nodes for the GC.

The test compares the behavior of `UnrolledList` with `List` on random data sets. It allowed me to find a bug in `List::insert`.

Pull-Request: #1379
Reviewed-by: Jean Privat <jean@pryen.org>
Reviewed-by: Lucas Bajolet <r4pass@hotmail.com>
Reviewed-by: Alexandre Terrasa <alexandre@moz-code.org>
Reviewed-by: Romain Chanoir <chanoir.romain@courrier.uqam.ca>

8 years agoMerge: Binary/Octal literal Ints
Jean Privat [Wed, 27 May 2015 00:54:46 +0000 (20:54 -0400)]
Merge: Binary/Octal literal Ints

For long now we could express an `Int` in both decimal and hexadecimal form, however binary and octal forms were lacking.

This PR fixes it.

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

8 years agotests: remove utf_noindex_tests
Alexis Laferrière [Tue, 26 May 2015 22:37:41 +0000 (18:37 -0400)]
tests: remove utf_noindex_tests

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

8 years agotests: update expected results of nitpretty on the FFI
Alexis Laferrière [Tue, 26 May 2015 20:18:55 +0000 (16:18 -0400)]
tests: update expected results of nitpretty on the FFI

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

8 years agolib: update more libs to use `self`
Alexis Laferrière [Tue, 26 May 2015 18:29:06 +0000 (14:29 -0400)]
lib: update more libs to use `self`

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

8 years agotests: update tests using the FFI
Alexis Laferrière [Mon, 25 May 2015 19:44:47 +0000 (15:44 -0400)]
tests: update tests using the FFI

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

8 years agolib/mongodb: fix invalid FFI code
Alexis Laferrière [Tue, 26 May 2015 20:24:36 +0000 (16:24 -0400)]
lib/mongodb: fix invalid FFI code

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

8 years agolib: update other libs to use `self` from C and C++ code
Alexis Laferrière [Tue, 26 May 2015 15:53:46 +0000 (11:53 -0400)]
lib: update other libs to use `self` from C and C++ code

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

8 years agolib/java: update to use `self` from Java code
Alexis Laferrière [Mon, 25 May 2015 19:30:11 +0000 (15:30 -0400)]
lib/java: update to use `self` from Java code

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

8 years agolib/standard: update to use `self` in C code
Alexis Laferrière [Mon, 25 May 2015 19:29:35 +0000 (15:29 -0400)]
lib/standard: update to use `self` in C code

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

8 years agolib/standard: update style of doc and fix whitespace in `bitset`
Alexis Laferrière [Mon, 25 May 2015 19:29:02 +0000 (15:29 -0400)]
lib/standard: update style of doc and fix whitespace in `bitset`

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

8 years agolib/ios: update Objective-C code to use `self`
Alexis Laferrière [Tue, 26 May 2015 12:23:35 +0000 (08:23 -0400)]
lib/ios: update Objective-C code to use `self`

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

8 years agolib/cocoa: update Objective-C code to use `self`
Alexis Laferrière [Mon, 25 May 2015 19:26:02 +0000 (15:26 -0400)]
lib/cocoa: update Objective-C code to use `self`

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

8 years agolib/gtk: update to use `self` from C code
Alexis Laferrière [Mon, 25 May 2015 19:25:32 +0000 (15:25 -0400)]
lib/gtk: update to use `self` from C code

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

8 years agolib/android: clean up whitespace errors in `bundle`
Alexis Laferrière [Tue, 26 May 2015 18:34:57 +0000 (14:34 -0400)]
lib/android: clean up whitespace errors in `bundle`

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

8 years agolib/android: update to use `self` in Java code
Alexis Laferrière [Mon, 25 May 2015 19:24:54 +0000 (15:24 -0400)]
lib/android: update to use `self` in Java code

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

8 years agonitvm: Optimize the loading of classes
Julien Pagès [Thu, 21 May 2015 14:29:34 +0000 (16:29 +0200)]
nitvm: Optimize the loading of classes

Signed-off-by: Julien Pagès <julien.projet@gmail.com>

8 years agonitvm: Deleting absolute offset for properties
Julien Pagès [Wed, 13 May 2015 13:28:29 +0000 (15:28 +0200)]
nitvm: Deleting absolute offset for properties

Signed-off-by: Julien Pagès <julien.projet@gmail.com>

8 years agonitvm: Optimizing subtyping tests with new mechanisms
Julien Pagès [Tue, 26 May 2015 09:32:15 +0000 (11:32 +0200)]
nitvm: Optimizing subtyping tests with new mechanisms

Signed-off-by: Julien Pagès <julien.projet@gmail.com>

8 years agonitvm: The positions of methods and attributes are now more accurate
Julien Pagès [Tue, 26 May 2015 13:06:19 +0000 (15:06 +0200)]
nitvm: The positions of methods and attributes are now more accurate

Signed-off-by: Julien Pagès <julien.projet@gmail.com>

8 years agonitvm: Bug fixe in the recursion of class loading
Julien Pagès [Tue, 5 May 2015 15:16:29 +0000 (17:16 +0200)]
nitvm: Bug fixe in the recursion of class loading

Signed-off-by: Julien Pagès <julien.projet@gmail.com>

8 years agosepcomp: fix hardening related to the instantiation of dead types
Jean Privat [Tue, 26 May 2015 18:43:16 +0000 (14:43 -0400)]
sepcomp: fix hardening related to the instantiation of dead types

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

8 years agoRename REAMDE to README.md
Jean Privat [Tue, 26 May 2015 17:52:49 +0000 (13:52 -0400)]
Rename REAMDE to README.md

And a small whitespace fix

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

8 years agotests: update sav of nitserial to latest changes
Alexis Laferrière [Tue, 26 May 2015 17:16:45 +0000 (13:16 -0400)]
tests: update sav of nitserial to latest changes

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

8 years agolib/android: fix style of `shared_preferences_api10|11.nit`
Alexis Laferrière [Mon, 25 May 2015 19:23:47 +0000 (15:23 -0400)]
lib/android: fix style of `shared_preferences_api10|11.nit`

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

8 years agoexamples: fix style of FFI examples
Alexis Laferrière [Mon, 25 May 2015 19:39:32 +0000 (15:39 -0400)]
examples: fix style of FFI examples

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

8 years agoexamples: update FFI examples to use `self`
Alexis Laferrière [Mon, 25 May 2015 19:20:32 +0000 (15:20 -0400)]
examples: update FFI examples to use `self`

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

8 years agocontrib: update contribs to use `self` in FFI
Alexis Laferrière [Mon, 25 May 2015 19:19:51 +0000 (15:19 -0400)]
contrib: update contribs to use `self` in FFI

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

8 years agocontrib/jwrapper: generate FFI code using `self`
Alexis Laferrière [Mon, 25 May 2015 19:19:38 +0000 (15:19 -0400)]
contrib/jwrapper: generate FFI code using `self`

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

8 years agosrc: update Java and C++ FFI to use `self`
Alexis Laferrière [Mon, 25 May 2015 19:18:51 +0000 (15:18 -0400)]
src: update Java and C++ FFI to use `self`

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

8 years agosrc: update core FFI to use `self` instead of `recv` in C
Alexis Laferrière [Mon, 25 May 2015 19:18:26 +0000 (15:18 -0400)]
src: update core FFI to use `self` instead of `recv` in C

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

8 years agotests: Added tests for literal bases
Lucas Bajolet [Mon, 25 May 2015 20:34:58 +0000 (16:34 -0400)]
tests: Added tests for literal bases

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

8 years agosrc/literal: Support for the new binary and octal literals
Lucas Bajolet [Mon, 25 May 2015 20:33:09 +0000 (16:33 -0400)]
src/literal: Support for the new binary and octal literals

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

8 years agosrc/parser: Regenerated parser
Lucas Bajolet [Mon, 25 May 2015 20:32:51 +0000 (16:32 -0400)]
src/parser: Regenerated parser

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

8 years agosrc/parser: Updated grammar and parser_nodes
Lucas Bajolet [Mon, 25 May 2015 20:32:39 +0000 (16:32 -0400)]
src/parser: Updated grammar and parser_nodes

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

8 years agolib/standard/string: Added to_oct and to_bin functions to Text
Lucas Bajolet [Mon, 25 May 2015 20:13:14 +0000 (16:13 -0400)]
lib/standard/string: Added to_oct and to_bin functions to Text

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

8 years agoMerge: Binary over network
Jean Privat [Tue, 26 May 2015 10:12:35 +0000 (06:12 -0400)]
Merge: Binary over network

Add services to write strings in binary streams and better support for binary in network modules.

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

8 years agoMerge: nitx: finish migration to new nitdoc architecture
Jean Privat [Tue, 26 May 2015 10:12:01 +0000 (06:12 -0400)]
Merge: nitx: finish migration to new nitdoc architecture

`nitx` is now part of the `doc` group using the same architecture as `nitdoc`.

This PR also add two new features:
* locate calls to a MProperty
* search pieces of code

Fixes #262

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

8 years agoMerge: Nitiwiki next
Jean Privat [Tue, 26 May 2015 12:37:54 +0000 (08:37 -0400)]
Merge: Nitiwiki next

Some fixes for `nitiwiki`.

Preparing for nitlanguage.org migration from ikiwiki to nitiwiki.

Pull-Request: #1367
Reviewed-by: Jean Privat <jean@pryen.org>
Reviewed-by: Lucas Bajolet <r4pass@hotmail.com>
Reviewed-by: Romain Chanoir <chanoir.romain@courrier.uqam.ca>

8 years agoMerge: Apply serialization in calculator, a_star, more_collections, Couple and Container
Jean Privat [Tue, 26 May 2015 10:09:51 +0000 (06:09 -0400)]
Merge: Apply serialization in calculator, a_star, more_collections, Couple and Container

Use `auto_serialize` in the calculator example, and remove the old custom JSON serialization.

The `a_star` module needed special care and could not rely only on `auto_serialize`. This was to avoid serializing graphs as a deep tree, instead we serialize the nodes first, then the links and we rebuild the graph at deserialization.

Besides that, more collections support the serialization.

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

8 years agoMerge: File and Bytes
Jean Privat [Tue, 26 May 2015 10:09:33 +0000 (06:09 -0400)]
Merge: File and Bytes

A bit of a fix in the context of issues #1267 and #1262.

The bytes module has a `ByteBuffer` class, while it is still working with `Int` at the moment, when Nit correctly supports `Bytes`, we can change it to a real `ByteBuffer`

This class is highly recommended when working with byte streams and collections.

As such, file operations are related to this module since most of the operations are working on bytes, what they mean is up to the end-user to figure.

Pull-Request: #1309
Reviewed-by: Alexandre Terrasa <alexandre@moz-code.org>
Reviewed-by: Jean Privat <jean@pryen.org>
Reviewed-by: Romain Chanoir <chanoir.romain@courrier.uqam.ca>
Reviewed-by: Ait younes Mehdi Adel <overpex@gmail.com>
Reviewed-by: Alexis Laferrière <alexis.laf@xymus.net>

8 years agolib/markdown: add MDLocation tests
Alexandre Terrasa [Tue, 26 May 2015 02:44:33 +0000 (22:44 -0400)]
lib/markdown: add MDLocation tests

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

8 years agolib/markdown: fix tests
Alexandre Terrasa [Tue, 26 May 2015 02:44:09 +0000 (22:44 -0400)]
lib/markdown: fix tests

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

8 years agolib/markdown: introduce MDLocation
Alexandre Terrasa [Tue, 26 May 2015 02:43:44 +0000 (22:43 -0400)]
lib/markdown: introduce MDLocation

MDLocation is defined on MDBlocks and Tokens to help tool retrieve the location of an element in the original input.

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

8 years agorange: better nitunit on `Int::times`
Alexandre Terrasa [Mon, 25 May 2015 16:20:09 +0000 (12:20 -0400)]
range: better nitunit on `Int::times`

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

8 years agolib/serialization: intro the shortcut `CachingSerializer::link`
Alexis Laferrière [Mon, 25 May 2015 15:42:08 +0000 (11:42 -0400)]
lib/serialization: intro the shortcut `CachingSerializer::link`

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

8 years agolib/serialization: intro DuplexCache
Alexis Laferrière [Mon, 25 May 2015 15:41:45 +0000 (11:41 -0400)]
lib/serialization: intro DuplexCache

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

8 years agolib/serialization: extract caches from json_serialization
Alexis Laferrière [Sat, 23 May 2015 19:31:50 +0000 (15:31 -0400)]
lib/serialization: extract caches from json_serialization

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

8 years agotests: test UnrolledList
Alexis Laferrière [Fri, 22 May 2015 15:37:23 +0000 (11:37 -0400)]
tests: test UnrolledList

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

8 years agolib/more_collections: intro `UnrolledLinkList`
Alexis Laferrière [Thu, 21 May 2015 17:08:18 +0000 (13:08 -0400)]
lib/more_collections: intro `UnrolledLinkList`

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

8 years agorange: remove white space in license
Alexandre Terrasa [Mon, 25 May 2015 16:20:26 +0000 (12:20 -0400)]
range: remove white space in license

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

8 years agolib/binary: intro read/write strings as blocks
Alexis Laferrière [Sun, 24 May 2015 17:24:33 +0000 (13:24 -0400)]
lib/binary: intro read/write strings as blocks

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

8 years agolib/binary: intro services to read/write null terminated strings
Alexis Laferrière [Sun, 24 May 2015 17:24:10 +0000 (13:24 -0400)]
lib/binary: intro services to read/write null terminated strings

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

8 years agolib/socket: fix `NativeSocket::write_byte`
Alexis Laferrière [Sun, 24 May 2015 17:26:46 +0000 (13:26 -0400)]
lib/socket: fix `NativeSocket::write_byte`

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

8 years agolib/libevent: implement `write_byte`
Alexis Laferrière [Sun, 24 May 2015 17:25:52 +0000 (13:25 -0400)]
lib/libevent: implement `write_byte`

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

8 years agolib/libevent: `Connection` subclass `Writer`
Alexis Laferrière [Sun, 24 May 2015 17:25:16 +0000 (13:25 -0400)]
lib/libevent: `Connection` subclass `Writer`

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

8 years agolib/serialization: optimize `StrictHashMap` as a subclass of `HashMap`
Alexis Laferrière [Sat, 23 May 2015 17:51:57 +0000 (13:51 -0400)]
lib/serialization: optimize `StrictHashMap` as a subclass of `HashMap`

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

8 years agolib/serialization: intro `serialization_hash` to complement `is_same_serialized`
Alexis Laferrière [Sat, 23 May 2015 17:51:19 +0000 (13:51 -0400)]
lib/serialization: intro `serialization_hash` to complement `is_same_serialized`

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

8 years agolib/json: fix json serialization to play well with other engines
Alexis Laferrière [Wed, 20 May 2015 19:54:03 +0000 (15:54 -0400)]
lib/json: fix json serialization to play well with other engines

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

8 years agodebugger: remove dependency to `nitx`
Alexandre Terrasa [Mon, 25 May 2015 15:23:50 +0000 (11:23 -0400)]
debugger: remove dependency to `nitx`

Since the debugger is broken, we will redo the nitx command when it will be fixed.

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

8 years agonitiwiki: use `InlineDecorator` for markdown titles in TOC
Alexandre Terrasa [Thu, 21 May 2015 18:12:24 +0000 (14:12 -0400)]
nitiwiki: use `InlineDecorator` for markdown titles in TOC

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

8 years agomarkdown: add misc decorators
Alexandre Terrasa [Thu, 21 May 2015 18:11:44 +0000 (14:11 -0400)]
markdown: add misc decorators

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

8 years agoexamples/calculator: use serialization
Alexis Laferrière [Sun, 17 May 2015 01:58:24 +0000 (21:58 -0400)]
examples/calculator: use serialization

This becomes a good example of a normal extra simple use of the
`auto_serializable` with `app::data_store`.

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

8 years agolib/serialization: support serializing Couple and Container
Alexis Laferrière [Wed, 20 May 2015 11:46:01 +0000 (07:46 -0400)]
lib/serialization: support serializing Couple and Container

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

8 years agolib/more_collections: update classes as serializable
Alexis Laferrière [Mon, 18 May 2015 18:38:51 +0000 (14:38 -0400)]
lib/more_collections: update classes as serializable

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

8 years agolib/a_star: update `a_star` to be serializable
Alexis Laferrière [Mon, 18 May 2015 18:34:30 +0000 (14:34 -0400)]
lib/a_star: update `a_star` to be serializable

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

8 years agolib/collections: fix `List::insert` to insert at the right index
Alexis Laferrière [Fri, 22 May 2015 14:36:14 +0000 (10:36 -0400)]
lib/collections: fix `List::insert` to insert at the right index

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

8 years agoMerge: metrics: `--nullables` distinguishes safe and unsafe calls on `null`
Jean Privat [Sat, 23 May 2015 01:01:37 +0000 (21:01 -0400)]
Merge: metrics: `--nullables` distinguishes safe and unsafe calls on `null`

In reaction of recent updates on #394 I wanted to have some up-to-date numbers.

`nitmetrics --nullable` can count the sends on nullable receivers but safe and unsafe calls where merged. Note: safe calls on nullable are things like `x == null`, that is safe even if `x` is a nullable thing.
So this PR distinguishes safe and unsafe calls.

Some numbers:

~~~
nitmetrics --nullables ../lib ../src/nit*.nit
Total number of sends: 60262
Number of sends on a unsafe nullable receiver: 1750 (2.90%)
Number of sends on a safe nullable receiver: 2639 (4.37%)
~~~

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

8 years agoMerge: model: introduce the bottom type
Jean Privat [Sat, 23 May 2015 01:01:31 +0000 (21:01 -0400)]
Merge: model: introduce the bottom type

An old branch that was on some disk that I forgot to PR.

While the bottom type is useless now, it should be useful on future PR.
Type theorists and lattice fanboys might like it.

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

8 years agoMerge: Markdown: some improvement and fixes
Jean Privat [Sat, 23 May 2015 01:01:25 +0000 (21:01 -0400)]
Merge: Markdown: some improvement and fixes

Misc modification to markdown lib to facilitate custon Markdown parsing from external tools.

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

8 years agoMerge: Missing a unboxing when compiling a call to `new NativeArray`
Jean Privat [Sat, 23 May 2015 01:01:18 +0000 (21:01 -0400)]
Merge: Missing a unboxing when compiling a call to `new NativeArray`

In the following code,

~~~nit
var i
i = 4
var na = new NativeArray[Object](i)
~~~

the declaration type of `i` is `nullable Object`, so the C-type of `i` is `val*` (and not `int`).
Therefore, in the `new NativeArray`, it should be unboxed because the C signature expect a `int`.

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

8 years agoMerge: lib/standard: reimplement `files` with light FFI
Jean Privat [Sat, 23 May 2015 01:01:14 +0000 (21:01 -0400)]
Merge: lib/standard: reimplement `files` with light FFI

So I can use it during the bootstrap (thanks #1323)

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

8 years agoMerge: Nit objects to plain JSON
Jean Privat [Sat, 23 May 2015 01:01:11 +0000 (21:01 -0400)]
Merge: Nit objects to plain JSON

Adds an option to write Nit objects to plain JSON in `JsonSerializer`, and the shortcut `Serializable::to_plain_json`. This format lacks the meta-data necessary for the full deserialization but it is easier to read for non-Nit programs and humans.

You can see an example in the doc of `json::serialization` and here, taken from the tests. The following class uses "complex" Nit data structures and serialize them to the closest available structure in JSON.

~~~nit
class G
auto_serializable

var hs = new HashSet[Int]
var s = new ArraySet[String]
var hm = new HashMap[String, Int]
var am = new ArrayMap[String, String]

init
do
hs.add -1
hs.add 0
s.add "one"
s.add "two"
hm["one"] = 1
hm["two"] = 2
am["three"] = "3"
am["four"] = "4"
end
end
var g = new G
g.to_plain_json # ...
~~~
~~~json
{"hs": [-1, 0], "s": ["one", "two"], "hm": {"one": 1, "two": 2}, "am": {"three": "3", "four": "4"}}
~~~

Of course, when writing to a file or in a socket, it is better to use `JsonSerializer` as the `to_plain_json` version uses a string.

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

8 years agolib/standard: reimplement `files` with basic FFI (so can be used in bootstraped)
Jean Privat [Fri, 22 May 2015 19:25:56 +0000 (15:25 -0400)]
lib/standard: reimplement `files` with basic FFI (so can be used in bootstraped)

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

8 years agolib: Various fixes on lib with the new file and stream API
Lucas Bajolet [Thu, 21 May 2015 18:23:02 +0000 (14:23 -0400)]
lib: Various fixes on lib with the new file and stream API

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

8 years agolib/standard/stream: Doc fixes
Lucas Bajolet [Thu, 21 May 2015 14:49:20 +0000 (10:49 -0400)]
lib/standard/stream: Doc fixes

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

8 years agolib/standard: Updated stream and file to support byte-oriented manipulations
Lucas Bajolet [Thu, 21 May 2015 14:48:58 +0000 (10:48 -0400)]
lib/standard: Updated stream and file to support byte-oriented manipulations

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

8 years agotests: update sav/nitmetrics_args1.res
Jean Privat [Fri, 22 May 2015 19:14:00 +0000 (15:14 -0400)]
tests: update sav/nitmetrics_args1.res

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

8 years agonitx: update man page
Alexandre Terrasa [Mon, 4 May 2015 15:41:29 +0000 (11:41 -0400)]
nitx: update man page

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

8 years agonitx: introduce code search
Alexandre Terrasa [Mon, 4 May 2015 15:04:56 +0000 (11:04 -0400)]
nitx: introduce code search

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

8 years agonitx: introduce search calls to MProperty
Alexandre Terrasa [Mon, 4 May 2015 14:47:07 +0000 (10:47 -0400)]
nitx: introduce search calls to MProperty

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

8 years agonitx: redo search for MType in new calls
Alexandre Terrasa [Mon, 4 May 2015 14:46:36 +0000 (10:46 -0400)]
nitx: redo search for MType in new calls

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

8 years agometrics: `--nullables` distinguishes safe and unsafe calls on `null`
Jean Privat [Thu, 21 May 2015 23:39:22 +0000 (19:39 -0400)]
metrics: `--nullables` distinguishes safe and unsafe calls on `null`

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

8 years agomodel: introduce the bottom type
Jean Privat [Thu, 21 May 2015 23:28:48 +0000 (19:28 -0400)]
model: introduce the bottom type

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

8 years agolib/markdown: force write on current_buffer
Alexandre Terrasa [Thu, 14 May 2015 06:23:12 +0000 (02:23 -0400)]
lib/markdown: force write on current_buffer

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

8 years agolib/markdown: introduce markdown to markdown decorator
Alexandre Terrasa [Thu, 14 May 2015 01:31:20 +0000 (21:31 -0400)]
lib/markdown: introduce markdown to markdown decorator

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

8 years agolib/markdown: use virtual type to make subclassing easier
Alexandre Terrasa [Thu, 14 May 2015 01:30:24 +0000 (21:30 -0400)]
lib/markdown: use virtual type to make subclassing easier

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