nit.git
10 years agonitls: parse options before instantiating modelbuilder
Jean Privat [Fri, 25 Apr 2014 02:25:47 +0000 (22:25 -0400)]
nitls: parse options before instantiating modelbuilder

Because things, eg paths, may depend on options,

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

10 years agotests: update nitls
Jean Privat [Tue, 22 Apr 2014 20:30:59 +0000 (16:30 -0400)]
tests: update nitls

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

10 years agonitls: use `-P` for `--project`. `-p` is already used for `--path`
Jean Privat [Fri, 25 Apr 2014 01:36:56 +0000 (21:36 -0400)]
nitls: use `-P` for `--project`. `-p` is already used for `--path`

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

10 years agonitls: option `-M` aliases `-d`, `-p` and `-s`
Jean Privat [Tue, 22 Apr 2014 20:04:24 +0000 (16:04 -0400)]
nitls: option `-M` aliases `-d`, `-p` and `-s`

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

10 years agonitls: can use `--depends` with others options.
Jean Privat [Tue, 22 Apr 2014 20:03:45 +0000 (16:03 -0400)]
nitls: can use `--depends` with others options.

~~~
$ nitls ../examples/hello_world.nit ../examples/calculator.nit -d
calculator (../examples/calculator.nit)
gtk (../lib/gtk.nit)
gtk3_4 (../lib/gtk3_4)
hello_world (../examples/hello_world.nit)
standard (../lib/standard)
~~~

~~~
$ nitls ../examples/hello_world.nit ../examples/calculator.nit -d -t -p
../examples/calculator.nit
`--../examples/calculator.nit
../lib/gtk.nit
`--../lib/gtk.nit
../lib/gtk3_4
|--../lib/gtk3_4/gdk_enums.nit
|--../lib/gtk3_4/gtk3_4.nit
|--../lib/gtk3_4/gtk_assistant.nit
|--../lib/gtk3_4/gtk_core.nit
|--../lib/gtk3_4/gtk_dialogs.nit
|--../lib/gtk3_4/gtk_enums.nit
`--../lib/gtk3_4/gtk_widgets_ext.nit
../examples/hello_world.nit
`--../examples/hello_world.nit
../lib/standard
|--../lib/standard/environ.nit
|--../lib/standard/exec.nit
|--../lib/standard/file.nit
|--../lib/standard/gc.nit
|--../lib/standard/kernel.nit
|--../lib/standard/math.nit
|--../lib/standard/posix.nit
|--../lib/standard/standard.nit
|--../lib/standard/stream.nit
|--../lib/standard/string.nit
|--../lib/standard/string_search.nit
|--../lib/standard/time.nit
`--../lib/standard/collection
   |--../lib/standard/collection/abstract_collection.nit
   |--../lib/standard/collection/array.nit
   |--../lib/standard/collection/collection.nit
   |--../lib/standard/collection/hash_collection.nit
   |--../lib/standard/collection/list.nit
   |--../lib/standard/collection/range.nit
   `--../lib/standard/collection/sorter.nit
~~~

10 years agonitls: add option --path to force the output of paths only
Jean Privat [Tue, 22 Apr 2014 19:53:02 +0000 (15:53 -0400)]
nitls: add option --path to force the output of paths only

Otherwise, a couple `name (filepath)` is displayed for each entry

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

10 years agoMerge: Inkscape tools
Jean Privat [Tue, 22 Apr 2014 13:35:53 +0000 (09:35 -0400)]
Merge: Inkscape tools

Intro 2 tools based on Inkscape.

__svg_to_png_and_nit__ reads a SVG file and outputs 2 files:
* A single png file
* A Nit source file and class, with attributes pointing to all objects with IDs beginning with 0.

__svg_to_icons__ Generates PNG files from a SVG file. It can output the format expected by Android projects.

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

10 years agocontrib/inkscape_tools: update to use a nested module
Alexis Laferrière [Fri, 18 Apr 2014 18:16:26 +0000 (14:16 -0400)]
contrib/inkscape_tools: update to use a nested module

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

10 years agoMerge branch 'master' into inkscape-tool
Alexis Laferrière [Fri, 18 Apr 2014 18:18:14 +0000 (14:18 -0400)]
Merge branch 'master' into inkscape-tool

To get import of nested modules.

10 years agoMerge: add NativeArray::length
Jean Privat [Fri, 18 Apr 2014 17:36:53 +0000 (13:36 -0400)]
Merge: add NativeArray::length

Add and implement native methods `NativeArray::length` and `NativeArray::to_a`

The length could be available but was not for historial reasons.
`to_a` is trivial once `length` is defined.

A future series will add `NativeArray::new` and depreciate the ugly `calloc_array`.

Note: because of a bug in nitg, the compiler in `c_src` seems to return 0 on `length` instead of aborting.

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

10 years agotests: add test_native_array.nit
Jean Privat [Fri, 18 Apr 2014 16:48:57 +0000 (12:48 -0400)]
tests: add test_native_array.nit

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

10 years agoniti: implements `NativeArray::length`
Jean Privat [Thu, 17 Apr 2014 02:20:10 +0000 (22:20 -0400)]
niti: implements `NativeArray::length`

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

10 years agonitg: implements `NativeArray::length`
Jean Privat [Thu, 17 Apr 2014 02:19:35 +0000 (22:19 -0400)]
nitg: implements `NativeArray::length`

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

10 years agotests: add inkscape_tools to testfull.sh
Alexis Laferrière [Thu, 17 Apr 2014 17:04:49 +0000 (13:04 -0400)]
tests: add inkscape_tools to testfull.sh

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

10 years agocontrib/inkscape_tools: add test for icons
Alexis Laferrière [Thu, 17 Apr 2014 12:45:24 +0000 (08:45 -0400)]
contrib/inkscape_tools: add test for icons

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

10 years agocontrib/inkscape_tools: intro the svg_to_icons tool
Alexis Laferrière [Thu, 17 Apr 2014 12:45:07 +0000 (08:45 -0400)]
contrib/inkscape_tools: intro the svg_to_icons tool

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

10 years agolib: adds support lib for svg_to_png_and_nit tool
Alexis Laferrière [Sun, 6 Apr 2014 16:30:04 +0000 (12:30 -0400)]
lib: adds support lib for svg_to_png_and_nit tool

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

10 years agocontrib: intro the svg_to_png_and_nit project
Alexis Laferrière [Sun, 6 Apr 2014 03:31:26 +0000 (23:31 -0400)]
contrib: intro the svg_to_png_and_nit project

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

10 years agolib: add `NativeArray::length`
Jean Privat [Thu, 17 Apr 2014 02:17:06 +0000 (22:17 -0400)]
lib: add `NativeArray::length`

Engines should be able to store the allocated size.
Unlike `NativeString` that is a char*, `NativeArray` is a special Nit
opaque structure.

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

10 years agolib: opts add OptionFloat
Alexis Laferrière [Sun, 6 Apr 2014 15:58:37 +0000 (11:58 -0400)]
lib: opts add OptionFloat

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

10 years agoMerge: Shoot for android
Jean Privat [Tue, 15 Apr 2014 23:01:10 +0000 (19:01 -0400)]
Merge: Shoot for android

Enable control with the pointer
Compile to android
Scale view port

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

10 years agoMerge: Modernize syntax
Jean Privat [Tue, 15 Apr 2014 20:02:44 +0000 (16:02 -0400)]
Merge: Modernize syntax

Lot of cleanup and modernization in the syntax of Nit

* depreciate old FFI syntax: `extern` without `class` and non-dotted extern notation (quad or space)
* reduce the usage of old style getters and setters (they will be disabled soon)
* remove the shortcut `=` for one-liner function
* hexadecimal literals `var x = 0x7F`

Conflicts: lib/jvm.nit
Pull-Request: #401
Reviewed-by: Lucas Bajolet <r4pass@hotmail.com>

10 years agotests: remove `base_return_assing`
Jean Privat [Tue, 15 Apr 2014 17:20:26 +0000 (13:20 -0400)]
tests: remove `base_return_assing`

The syntax is removed

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

10 years agosrc: remove old-style attribute from src/ (except parser)
Jean Privat [Tue, 15 Apr 2014 13:52:01 +0000 (09:52 -0400)]
src: remove old-style attribute from src/ (except parser)

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

10 years agoparser: regenerate parser files
Jean Privat [Tue, 15 Apr 2014 13:51:24 +0000 (09:51 -0400)]
parser: regenerate parser files

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

10 years agoparser: add AHexIntExpr
Jean Privat [Tue, 15 Apr 2014 13:50:49 +0000 (09:50 -0400)]
parser: add AHexIntExpr

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

10 years agoparser: split `AIntExpr` and `ADecIntExpr`
Jean Privat [Tue, 15 Apr 2014 13:49:52 +0000 (09:49 -0400)]
parser: split `AIntExpr` and `ADecIntExpr`

next commit will introduce AHexIntExpr

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

10 years agoparser: force new style FFI in syntax.
Jean Privat [Tue, 15 Apr 2014 13:30:38 +0000 (09:30 -0400)]
parser: force new style FFI in syntax.

`extern class` + dotted extern call notations.

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

10 years agoparser: disable unused `=` shortcut for functions
Jean Privat [Tue, 15 Apr 2014 13:29:28 +0000 (09:29 -0400)]
parser: disable unused `=` shortcut for functions

So simplify the grammar.

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

10 years agoparser: allow top-level methods between class definitions
Jean Privat [Tue, 15 Apr 2014 13:28:41 +0000 (09:28 -0400)]
parser: allow top-level methods between class definitions

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

10 years agoparser: parentheses in `.as` are optional
Jean Privat [Tue, 15 Apr 2014 13:26:56 +0000 (09:26 -0400)]
parser: parentheses in `.as` are optional

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

10 years agoparser: add 'public' keyword
Jean Privat [Tue, 15 Apr 2014 13:26:01 +0000 (09:26 -0400)]
parser: add 'public' keyword

to reserve it :)

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

10 years agotests: remove usage of old-style getters and setters
Jean Privat [Tue, 15 Apr 2014 13:22:19 +0000 (09:22 -0400)]
tests: remove usage of old-style getters and setters

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

10 years agolib: remove usage of old-style getters and setters
Jean Privat [Tue, 15 Apr 2014 12:59:55 +0000 (08:59 -0400)]
lib: remove usage of old-style getters and setters

old-style attributes are still available but getters and setters are manual.
This encourage the use of new-style attributes.

Support for old style attributes will be removed eventually.

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

10 years agosyntax: remove last usages of `=` in one liner function
Jean Privat [Tue, 15 Apr 2014 12:57:22 +0000 (08:57 -0400)]
syntax: remove last usages of `=` in one liner function

This optional syntax is largely unused and no so KISS.
I will drop it in a future grammar.

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

10 years agoffi: update code with last syntax
Jean Privat [Tue, 15 Apr 2014 12:52:43 +0000 (08:52 -0400)]
ffi: update code with last syntax

use `extern class` and dotted notation for extern call and casts.

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

10 years agotests: update sav/shoot_logic.res
Jean Privat [Tue, 15 Apr 2014 12:51:26 +0000 (08:51 -0400)]
tests: update sav/shoot_logic.res

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

10 years agotests: add sav/shoot_android.res
Jean Privat [Mon, 14 Apr 2014 20:13:20 +0000 (16:13 -0400)]
tests: add sav/shoot_android.res

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

10 years agoshoot: use a scale factor to compute the game dimentions
Jean Privat [Mon, 14 Apr 2014 20:10:55 +0000 (16:10 -0400)]
shoot: use a scale factor to compute the game dimentions

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

10 years agoshoot: add scene to sprites and use it to gather global width and height
Jean Privat [Mon, 14 Apr 2014 20:09:28 +0000 (16:09 -0400)]
shoot: add scene to sprites and use it to gather global width and height

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

10 years agoshoot: specialize scene to add witdth and height
Jean Privat [Mon, 14 Apr 2014 20:07:19 +0000 (16:07 -0400)]
shoot: specialize scene to add witdth and height

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

10 years agoMerge: FFI with Java
Jean Privat [Mon, 14 Apr 2014 20:16:16 +0000 (16:16 -0400)]
Merge: FFI with Java

Supports:

* Implementing Nit methods in Java
* Associating a Nit extern class to a Java type
* Callback Nit from Java code

To do next:

* Write the manual
* Support callbacks to super and casts (which also implies have static types in Java)
* Support Java code on Android
* Add more complexe examples, such as using an external .jar

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

10 years agolib/java: improve documentation
Alexis Laferrière [Mon, 14 Apr 2014 15:09:11 +0000 (11:09 -0400)]
lib/java: improve documentation

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

10 years agolib/java: intro JavaObject::new/release_global_ref
Alexis Laferrière [Sat, 12 Apr 2014 18:32:50 +0000 (14:32 -0400)]
lib/java: intro JavaObject::new/release_global_ref

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

10 years agolib/jvm: rename JObject class to JavaObject
Alexis Laferrière [Sat, 12 Apr 2014 16:09:02 +0000 (12:09 -0400)]
lib/jvm: rename JObject class to JavaObject

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

10 years agolib/jvm: change a C function to a Nit extern method
Alexis Laferrière [Thu, 10 Apr 2014 16:47:35 +0000 (12:47 -0400)]
lib/jvm: change a C function to a Nit extern method

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

10 years agotests: adds a test for java strings
Alexis Laferrière [Thu, 10 Apr 2014 14:45:26 +0000 (10:45 -0400)]
tests: adds a test for java strings

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

10 years agolib/java: add services to support Java strings
Alexis Laferrière [Thu, 10 Apr 2014 14:46:30 +0000 (10:46 -0400)]
lib/java: add services to support Java strings

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

10 years agoshoot: control player with `PointerEvent`
Jean Privat [Mon, 14 Apr 2014 14:43:05 +0000 (10:43 -0400)]
shoot: control player with `PointerEvent`

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

10 years agoshoot: add Player::going_target
Jean Privat [Mon, 14 Apr 2014 14:42:46 +0000 (10:42 -0400)]
shoot: add Player::going_target

A simple target used to control player with pointers.

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

10 years agoshoot: make android
Jean Privat [Mon, 14 Apr 2014 14:26:48 +0000 (10:26 -0400)]
shoot: make android

But the game is unplayable yet without keyboard, see next patches

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

10 years agoMerge: Correct detection of property name conflicts
Jean Privat [Mon, 14 Apr 2014 12:57:55 +0000 (08:57 -0400)]
Merge: Correct detection of property name conflicts

Fixes #395
Pull-Request: #398

10 years agotests: add error_prop_name*
Jean Privat [Fri, 11 Apr 2014 13:07:50 +0000 (09:07 -0400)]
tests: add error_prop_name*

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

10 years agotests: update base_virtual_type_redef.res
Jean Privat [Fri, 11 Apr 2014 01:56:35 +0000 (21:56 -0400)]
tests: update base_virtual_type_redef.res

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

10 years agomodelbuilder: correctly detect property name conflicts
Jean Privat [Fri, 11 Apr 2014 01:40:56 +0000 (21:40 -0400)]
modelbuilder: correctly detect property name conflicts

The tricky part is the handling of existing constructors.

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

10 years agoMerge: Qualified import
Jean Privat [Thu, 10 Apr 2014 20:41:57 +0000 (16:41 -0400)]
Merge: Qualified import

Enable `import foo::bar`

Pull-Request: #391
Reviewed-by: Alexis Laferrière <alexis.laf@xymus.net>

10 years agotests: intro tests for the FFI with Java
Alexis Laferrière [Thu, 13 Mar 2014 04:10:05 +0000 (00:10 -0400)]
tests: intro tests for the FFI with Java

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

10 years agonitg: support compilation of Java files to .jar
Alexis Laferrière [Fri, 14 Mar 2014 22:00:53 +0000 (18:00 -0400)]
nitg: support compilation of Java files to .jar

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

10 years agonitg: intro of the FFI with java
Alexis Laferrière [Wed, 12 Mar 2014 21:47:30 +0000 (17:47 -0400)]
nitg: intro of the FFI with java

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

10 years agoMerge: Clean generated parser
Jean Privat [Thu, 10 Apr 2014 15:13:50 +0000 (11:13 -0400)]
Merge: Clean generated parser

This series reduce the size of the generated parser.

* First, factorize generated clones (the first commit)
* Second, reduce inlining in the grammar (the other commits)

This was a tidy process because each slight modification in the grammar yields to numerous conflicts often
difficult to understand. But the results worth the pain:

Time of `nitg nitg.nit`
before: 0m10.784s
after: 0m7.956s
gain: 26%

Number of subclasses of `ReduceAction`
before: 780
after: 376
gain: 52%

Pull-Request: #388
Reviewed-by: Alexis Laferrière <alexis.laf@xymus.net>

10 years agonitg-g: use nitstack by default
Jean Privat [Thu, 10 Apr 2014 12:37:35 +0000 (08:37 -0400)]
nitg-g: use nitstack by default

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

10 years agoMerge: Gperf fix
Jean Privat [Thu, 10 Apr 2014 12:36:33 +0000 (08:36 -0400)]
Merge: Gperf fix

Since gperf was slow, better replace it with a slow to call solution at
runtime but fast to generate, it's not like we'll be generating
stacktraces often in the life cycle of a program.

Surprisingly enough, even on nitg, the stacktrace does not take long
to generate, which is a good thing.

For comparison :

~~~
$ time nitg nitg.nit --stacktrace libunwind
user 0m19.720s

$ time nitg nitg.nit --stacktrace nitstack
user 0m19.820s
~~~

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

10 years agoMerge: Fix nitdbg_websocket_server
Jean Privat [Thu, 10 Apr 2014 12:32:30 +0000 (08:32 -0400)]
Merge: Fix nitdbg_websocket_server

Regression tests did not catch that `nitdbg_websocket_server` was broken.
Fix that

Pull-Request: #390

10 years agonitunit: updade usage of get_mmodule_by_name
Jean Privat [Wed, 9 Apr 2014 21:56:34 +0000 (17:56 -0400)]
nitunit: updade usage of get_mmodule_by_name

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

10 years agotest: test qualified importations
Jean Privat [Wed, 9 Apr 2014 20:36:42 +0000 (16:36 -0400)]
test: test qualified importations

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

10 years agomodelbuilder: use qualified name in imports to import things
Jean Privat [Wed, 9 Apr 2014 20:35:54 +0000 (16:35 -0400)]
modelbuilder: use qualified name in imports to import things

    import foo::bar

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

10 years agomodelbuilder: split `search_mmodule_by_name` from `get_mmodule_by_name`
Jean Privat [Wed, 9 Apr 2014 20:35:10 +0000 (16:35 -0400)]
modelbuilder: split `search_mmodule_by_name` from `get_mmodule_by_name`

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

10 years agomodelbuilder: search_module_in_paths return ModulePath
Jean Privat [Wed, 9 Apr 2014 20:34:17 +0000 (16:34 -0400)]
modelbuilder: search_module_in_paths return ModulePath

Instead of a simple String

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

10 years agotests: add sav/nitdbg_websocket_server.res
Jean Privat [Wed, 9 Apr 2014 20:10:57 +0000 (16:10 -0400)]
tests: add sav/nitdbg_websocket_server.res

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

10 years agonitdbg_websocket_server: fix write
Jean Privat [Wed, 9 Apr 2014 20:10:30 +0000 (16:10 -0400)]
nitdbg_websocket_server: fix write

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

10 years agomodelbuilder: get_mmodule_by_name get a mgroup as context
Jean Privat [Wed, 9 Apr 2014 19:01:15 +0000 (15:01 -0400)]
modelbuilder: get_mmodule_by_name get a mgroup as context

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

10 years agoMerge: lib/socket: Bugfix
Jean Privat [Wed, 9 Apr 2014 18:08:07 +0000 (14:08 -0400)]
Merge: lib/socket: Bugfix

Bug introduced in pull request #377, in the read function of FFSocket, a free is called on a static variable, which provokes a warning and probably bugs at runtime.

Pull-Request: #389

10 years agonitg: Removed references to gperf in documentation and code
Lucas Bajolet [Wed, 9 Apr 2014 17:50:11 +0000 (13:50 -0400)]
nitg: Removed references to gperf in documentation and code

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

10 years agonitg: Overridden gperf since it was slow to generate.
Lucas Bajolet [Wed, 9 Apr 2014 15:50:32 +0000 (11:50 -0400)]
nitg: Overridden gperf since it was slow to generate.

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

10 years agoMerge: Streamable and Pattern update
Jean Privat [Wed, 9 Apr 2014 15:50:22 +0000 (11:50 -0400)]
Merge: Streamable and Pattern update

Upgrade on Streamable and Pattern, they will now work with any kind of Text instead of just String.

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

10 years agolib/socket: Bugfix, tried to free a static variable, this provoked a warning when...
Lucas Bajolet [Tue, 8 Apr 2014 19:33:10 +0000 (15:33 -0400)]
lib/socket: Bugfix, tried to free a static variable, this provoked a warning when compiling.

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

10 years agoparser: regenerate with changes in the grammar and file generation
Jean Privat [Wed, 9 Apr 2014 14:47:54 +0000 (10:47 -0400)]
parser: regenerate with changes in the grammar and file generation

Before:

~~~~
$ time nitg nitg.nit
user 0m10.784s
$ wc parser/parser.nit
29702  93153 922785
$ grep 'super ReduceAction' parser/parser.nit -c
780
~~~~

After:

~~~~
$ time nitg nitg.nit
user 0m7.956s
$ wc parser/parser.nit
10660  32841 319408
$ grep 'super ReduceAction' parser/parser.nit -c
376
~~~~

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

10 years agoparser: new nullable production `typing_o`
Jean Privat [Wed, 9 Apr 2014 15:03:19 +0000 (11:03 -0400)]
parser: new nullable production `typing_o`

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

10 years agoparser: new production `qclassid` to factorize `qualified? classid`
Jean Privat [Wed, 9 Apr 2014 15:02:48 +0000 (11:02 -0400)]
parser: new production `qclassid` to factorize `qualified? classid`

See previous commit for details.

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

10 years agoparser: new production `qid` to factorize `qualified? id`
Jean Privat [Wed, 9 Apr 2014 15:01:42 +0000 (11:01 -0400)]
parser: new production `qid` to factorize `qualified? id`

`qid` is still transformed into an simple `id` (thus the qualified is lost).
Latter the qualification should be preserved in the AST.

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

10 years agoparser: accepts `kwredef` in front of importation clauses
Jean Privat [Wed, 9 Apr 2014 14:59:42 +0000 (10:59 -0400)]
parser: accepts `kwredef` in front of importation clauses

OK, this is crazy.
The point is to avoid the inlining of the production `redef`.
Because `redef` is used a lot, the gain worth the crazyness.

TODO: catch the usage of `redef` and crash after parsing.

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

10 years agoparser: remove useless production `writable2`
Jean Privat [Wed, 9 Apr 2014 14:56:29 +0000 (10:56 -0400)]
parser: remove useless production `writable2`

just accepts visibility in all versions

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

10 years agoparser: new nullable production `qualified_o`
Jean Privat [Wed, 9 Apr 2014 14:54:44 +0000 (10:54 -0400)]
parser: new nullable production `qualified_o`

Somme `qualified?` remain (yet) because of conflicts, see next commits.

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

10 years agoparser: new nullable production `extern_code_block_o`
Jean Privat [Wed, 9 Apr 2014 14:52:06 +0000 (10:52 -0400)]
parser: new nullable production `extern_code_block_o`

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

10 years agoparser: new nullable production `annotations_o`
Jean Privat [Wed, 9 Apr 2014 14:51:48 +0000 (10:51 -0400)]
parser: new nullable production `annotations_o`

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

10 years agoparser: production `annotation_withend` is nullable
Jean Privat [Wed, 9 Apr 2014 14:39:23 +0000 (10:39 -0400)]
parser: production `annotation_withend` is nullable

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

10 years agoparser: production `params` is nullable
Jean Privat [Wed, 9 Apr 2014 14:38:04 +0000 (10:38 -0400)]
parser: production `params` is nullable

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

10 years agoparser: production `extern_calls` is nullable
Jean Privat [Wed, 9 Apr 2014 14:37:07 +0000 (10:37 -0400)]
parser: production `extern_calls` is nullable

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

10 years agoparser: new nullable production `string_o` to factorize `string?`
Jean Privat [Wed, 9 Apr 2014 14:33:05 +0000 (10:33 -0400)]
parser: new nullable production `string_o` to factorize `string?`

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

10 years agoparser: new nullable production `kwend_o` to factorize `kwend?`
Jean Privat [Wed, 9 Apr 2014 14:32:15 +0000 (10:32 -0400)]
parser: new nullable production `kwend_o` to factorize `kwend?`

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

10 years agoparser: production `formaldefs` is nullable
Jean Privat [Wed, 9 Apr 2014 14:31:14 +0000 (10:31 -0400)]
parser: production `formaldefs` is nullable

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

10 years agoparser: production `implicit_main_class` is nullable
Jean Privat [Wed, 9 Apr 2014 14:30:52 +0000 (10:30 -0400)]
parser: production `implicit_main_class` is nullable

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

10 years agoparser: clean and factorize services in parser_prod
Jean Privat [Wed, 9 Apr 2014 15:05:02 +0000 (11:05 -0400)]
parser: clean and factorize services in parser_prod

Mainly, generalize cloned services in the class ANodes
Also rationalize the generated nit code.

The diff seems big because some reindentation

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

10 years agostdlib/streams: Streamable now working on any Text type instead of just String.
Lucas Bajolet [Mon, 7 Apr 2014 16:09:30 +0000 (12:09 -0400)]
stdlib/streams: Streamable now working on any Text type instead of just String.

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

10 years agostdlib/pattern: Rendered Pattern compatible with all Text representations instead...
Lucas Bajolet [Tue, 8 Apr 2014 21:21:09 +0000 (17:21 -0400)]
stdlib/pattern: Rendered Pattern compatible with all Text representations instead of just String.

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

10 years agoMerge: nitg: use libunwind instead of gperf by default for stacktraces
Jean Privat [Tue, 8 Apr 2014 18:37:22 +0000 (14:37 -0400)]
Merge: nitg: use libunwind instead of gperf by default for stacktraces

f54e52e activate gperf by default, but gperf is in fact quite slow.
It was unnoticed since time regressions are
tracked by valgrind (and gperf was unmonitored because run in a subprocess).

However, the effect was noticeable:

~~~
$ time nitg nitg.nit --stacktrace gperf
user 1m13.377s

$ time nitg nitg.nit --stacktrace libunwind
user 0m14.189s
~~~

Pull-Request: #386

10 years agonitg: use libunwind instead of gperf by default for stacktraces
Jean Privat [Tue, 8 Apr 2014 18:12:58 +0000 (14:12 -0400)]
nitg: use libunwind instead of gperf by default for stacktraces

f54e52e activate gperf by default, but gperf is in fact quite slow.
It was unnoticed since time regressions are
tracked by valgrind (and gperf was unmonitored because run in a subprocess).

However, the effect was noticeable:

~~~
$ time nitg nitg.nit --stacktrace gperf
user 1m13.377s

$ time nitg nitg.nit --stacktrace libunwind
user 0m14.189s
~~~

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

10 years agotests: update base_gen_reassign for nitg-e
Jean Privat [Tue, 8 Apr 2014 15:52:08 +0000 (11:52 -0400)]
tests: update base_gen_reassign for nitg-e

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

10 years agoMerge: Numeric, a super-class to Int and Float
Jean Privat [Fri, 4 Apr 2014 19:22:56 +0000 (15:22 -0400)]
Merge: Numeric, a super-class to Int and Float

Will be used by my implementation of the Bentley-Ottmann algorithm,
allowing to be used on either Int or Float. Could also be used to
revamp the API of mnit::Display and to implement QuadTree.

Pull-Request: #344
Reviewed-by: Jean Privat <jean@pryen.org>
Reviewed-by: Lucas Bajolet <r4pass@hotmail.com>
Reviewed-by: Julien Pagès <julien.m.pages@gmail.com

10 years agoMerge: nitg: activate nit-stacktrace by default
Jean Privat [Mon, 7 Apr 2014 20:42:24 +0000 (16:42 -0400)]
Merge: nitg: activate nit-stacktrace by default

The C stack-trace only is unreadable for most users.

The dependence on gperf is fine since it is packaged if Debian.
the option `--stacktrace` can be used to override the default behavior.

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