nit.git
8 years agoMerge: nitc: fix --typing-test-metrics by using correct tags in FFI
Jean Privat [Tue, 15 Sep 2015 07:37:01 +0000 (03:37 -0400)]
Merge: nitc: fix --typing-test-metrics by using correct tags in FFI

Just fix `--typing-test-metrics` that was broken.

A future PR (still wip) will ensure that the option will be no more broken

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

8 years agoMerge: gamnit: portable services to setup an OpenGL ES 2.0 display
Jean Privat [Tue, 15 Sep 2015 03:08:47 +0000 (23:08 -0400)]
Merge: gamnit: portable services to setup an OpenGL ES 2.0 display

Intro portable services to setup and use an OpenGL ES 2.0 display: `GamnitDisplay, setup, close, flip`. These services can be used standalone when importing `gamnit::display`, or integrated in `app.nit` by importing the whole `gamnit`.

This is an important step for Gamnit as it allows to develop portable games and will simplify building new graphic APIs gradually. However, some very useful services are still missing: textures loading, input events, full app life-cycle support (pause/resume), etc.

The display still depends on the same libraries as mnit (sdl, egl, native_app_glue, etc.), but it is much cleaner and changing the libs should be easier.

You may notice that the examples duplicate a lot of code between themselves and with `lib/glesv2/examples/opengles2_hello_triangle.nit`. All 3 examples are very useful to understand and debug the different abstraction levels, and even if they are pretty long, they are pretty much the shortest possible OpenGL ES 2.0 program I could write. I plan on keeping this duplication to keep these debugging tool, but I may move one of them (standalone) to a test folder as to not attract unwanted attention to it.

The first 3 commits are from #1708 but they are each required by either the examples or the Android support.

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

8 years agoMerge branch 'master' into gamnit
Alexis Laferrière [Tue, 15 Sep 2015 01:39:01 +0000 (21:39 -0400)]
Merge branch 'master' into gamnit

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

8 years agonitc: fix --typing-test-metrics by using correct tags inf FFI
Jean Privat [Tue, 15 Sep 2015 00:01:33 +0000 (20:01 -0400)]
nitc: fix --typing-test-metrics by using correct tags inf FFI

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

8 years agoMerge: android: skip signing the APK if KEY_ALIAS env var is not set
Jean Privat [Mon, 14 Sep 2015 20:23:05 +0000 (16:23 -0400)]
Merge: android: skip signing the APK if KEY_ALIAS env var is not set

This allows to manually sign your release APK file.

As requested by @privat.

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

8 years agoMerge: glesv2: more services from OpenGL ES 2.0 to prepare for gamnit
Jean Privat [Mon, 14 Sep 2015 20:23:01 +0000 (16:23 -0400)]
Merge: glesv2: more services from OpenGL ES 2.0 to prepare for gamnit

This PR adds a few services to the low-level graphics modules to prepare for gamnit.

This is the 2nd PR to use a new style for the glesv2 module. The old code has not yet been fully updated, so the style may vary in the same module. The new style try to stay as close as possible to the names and signatures used by the OpenGL ES 2.0 C API and by webgl.

As usual with this module, for more documentation please refer to the official doc at https://www.khronos.org/opengles/sdk/docs/man/.

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

8 years agoMerge: Fix Music loading bug for friendz
Jean Privat [Mon, 14 Sep 2015 20:22:55 +0000 (16:22 -0400)]
Merge: Fix Music loading bug for friendz

Added "music.ogg" to the res folder, android is aparently not able to load a .ogg from the assets.
I will investigate on the problem for a next PR

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

8 years agotests: OS X ignores test using EGL
Alexis Laferrière [Mon, 14 Sep 2015 15:24:39 +0000 (11:24 -0400)]
tests: OS X ignores test using EGL

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

8 years agolib/glesv2: intro glVertexAttribPointer
Alexis Laferrière [Sat, 12 Sep 2015 15:49:21 +0000 (11:49 -0400)]
lib/glesv2: intro glVertexAttribPointer

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

8 years agolib/glesv2: intro glVertexAttrib*f and glUniform*i
Alexis Laferrière [Sat, 12 Sep 2015 15:49:03 +0000 (11:49 -0400)]
lib/glesv2: intro glVertexAttrib*f and glUniform*i

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

8 years agolib/glesv2: move some services out of `VertexArray` as per the new style
Alexis Laferrière [Sat, 12 Sep 2015 14:30:25 +0000 (10:30 -0400)]
lib/glesv2: move some services out of `VertexArray` as per the new style

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

8 years agolib/glesv2: update GLTextureTarget to the new contructor-less style
Alexis Laferrière [Sat, 12 Sep 2015 14:17:03 +0000 (10:17 -0400)]
lib/glesv2: update GLTextureTarget to the new contructor-less style

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

8 years agolib/glesv2: intro glTexImage2D
Alexis Laferrière [Sat, 12 Sep 2015 14:14:20 +0000 (10:14 -0400)]
lib/glesv2: intro glTexImage2D

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

8 years agolib/glesv2: intro glFramebufferTexture2D
Alexis Laferrière [Sat, 12 Sep 2015 14:01:00 +0000 (10:01 -0400)]
lib/glesv2: intro glFramebufferTexture2D

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

8 years agolib/glesv2: intro glPixelStorei
Alexis Laferrière [Sat, 12 Sep 2015 13:59:26 +0000 (09:59 -0400)]
lib/glesv2: intro glPixelStorei

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

8 years agolib/glesv2: intro glRenderbufferStorage
Alexis Laferrière [Sat, 12 Sep 2015 13:41:15 +0000 (09:41 -0400)]
lib/glesv2: intro glRenderbufferStorage

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

8 years agolib/glesv2: intro glBindBuffer
Alexis Laferrière [Sat, 12 Sep 2015 13:33:30 +0000 (09:33 -0400)]
lib/glesv2: intro glBindBuffer

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

8 years agolib/glesv2: intro glGenerateMipmap
Alexis Laferrière [Sat, 12 Sep 2015 13:27:27 +0000 (09:27 -0400)]
lib/glesv2: intro glGenerateMipmap

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

8 years agolib/glesv2: intro glIsTexture and glBindTexture
Alexis Laferrière [Sat, 12 Sep 2015 13:25:04 +0000 (09:25 -0400)]
lib/glesv2: intro glIsTexture and glBindTexture

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

8 years agolib/glesv2: wrap glFramebufferRenderbuffer and GLAttachment
Alexis Laferrière [Sat, 12 Sep 2015 12:53:50 +0000 (08:53 -0400)]
lib/glesv2: wrap glFramebufferRenderbuffer and GLAttachment

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

8 years agolib/glesv2: add a Nity wrapper to the NativeGLfloatArray
Alexis Laferrière [Sat, 12 Sep 2015 12:49:54 +0000 (08:49 -0400)]
lib/glesv2: add a Nity wrapper to the NativeGLfloatArray

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

8 years agosrc/android: skip signing the APK if KEY_ALIAS env var is not set
Alexis Laferrière [Mon, 14 Sep 2015 17:44:57 +0000 (13:44 -0400)]
src/android: skip signing the APK if KEY_ALIAS env var is not set

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

8 years agolib/gamnit: add a portable version of the triangle example
Alexis Laferrière [Sun, 13 Sep 2015 15:18:22 +0000 (11:18 -0400)]
lib/gamnit: add a portable version of the triangle example

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

8 years agolib/gamnit: intro App integration and Android support
Alexis Laferrière [Mon, 14 Sep 2015 00:51:55 +0000 (20:51 -0400)]
lib/gamnit: intro App integration and Android support

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

8 years agolib/gamnit: intro the standalone triangle example for desktop only
Alexis Laferrière [Sat, 18 Apr 2015 16:03:29 +0000 (12:03 -0400)]
lib/gamnit: intro the standalone triangle example for desktop only

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

8 years agolib/gamnit: intro GNU/Linux support
Alexis Laferrière [Sun, 19 Apr 2015 14:03:25 +0000 (10:03 -0400)]
lib/gamnit: intro GNU/Linux support

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

8 years agolib/gamnit: intro the abstract display
Alexis Laferrière [Tue, 14 Apr 2015 22:26:11 +0000 (18:26 -0400)]
lib/gamnit: intro the abstract display

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

8 years agolib/linux: move simulating the lifecycle of an app from mnit to app.nit
Alexis Laferrière [Sun, 13 Sep 2015 19:09:03 +0000 (15:09 -0400)]
lib/linux: move simulating the lifecycle of an app from mnit to app.nit

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

8 years agolib/glesv2: move some services out of `VertexArray` as per the new style
Alexis Laferrière [Sat, 12 Sep 2015 14:30:25 +0000 (10:30 -0400)]
lib/glesv2: move some services out of `VertexArray` as per the new style

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

8 years agolib/glesv2: fix read_pixels having hardcoded args
Alexis Laferrière [Sat, 12 Sep 2015 12:48:34 +0000 (08:48 -0400)]
lib/glesv2: fix read_pixels having hardcoded args

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

8 years agolib/glesv2: fix misplaced mipmap filters and update style
Alexis Laferrière [Tue, 17 Feb 2015 20:51:05 +0000 (15:51 -0500)]
lib/glesv2: fix misplaced mipmap filters and update style

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

8 years agolib/c: contructors `from` for native arrays accept `SequenceRead`
Alexis Laferrière [Sat, 12 Sep 2015 14:00:22 +0000 (10:00 -0400)]
lib/c: contructors `from` for native arrays accept `SequenceRead`

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

8 years agolib/android: add ANativeWindow::set_buffers_geometry
Alexis Laferrière [Sun, 19 Apr 2015 13:34:46 +0000 (09:34 -0400)]
lib/android: add ANativeWindow::set_buffers_geometry

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

8 years agolib/egl: intro egl_default_display
Alexis Laferrière [Sun, 19 Apr 2015 13:34:27 +0000 (09:34 -0400)]
lib/egl: intro egl_default_display

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

8 years agoMerge: misc/vim: update the vim plugin to use core instead of standard
Jean Privat [Thu, 10 Sep 2015 18:55:07 +0000 (14:55 -0400)]
Merge: misc/vim: update the vim plugin to use core instead of standard

The plugin was not updated with the new name for the `core` library, but it's never too late.

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

8 years agoMerge: jwrapper: prevent nitls to parse the generated files
Jean Privat [Thu, 10 Sep 2015 18:54:54 +0000 (14:54 -0400)]
Merge: jwrapper: prevent nitls to parse the generated files

Prevent nitls to parse the generated files by adding an empty `packages.ini` file to the examples folder. This slowed down calls to `make` as nitls is used to detect the dependancies of Nit programs and it took a while to parse the huge generated files.

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

8 years agoMerge: nitiwiki: external highlighter
Jean Privat [Thu, 10 Sep 2015 18:53:56 +0000 (14:53 -0400)]
Merge: nitiwiki: external highlighter

This is a cleaned up version of what is currently doing the code highlighting and the table in the deployed http://nitlanguage.org

The basic idea here is to delegate the job to some other program. The program has to be configured in the config.ini under the key `wiki.highlighter`

This approach, while not pure nit, makes it quite easy to use whatever highlighter program the user prefer with whatever options (instead of hard-coding a specific external program in the nit source code).

An advanced way is to delegate to a shell script that checks arguments then dispatches to a real program.

ping maintainer: @Morriar

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

8 years agoMerge: nitcatalog: content and options
Jean Privat [Thu, 10 Sep 2015 18:53:52 +0000 (14:53 -0400)]
Merge: nitcatalog: content and options

Two improvements:

* content list (example: see end of page <http://nitlanguage.org/catalog/android.html>, section *content*)
* command-line options

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

8 years agoMerge: Ballz improvements
Jean Privat [Thu, 10 Sep 2015 18:39:19 +0000 (14:39 -0400)]
Merge: Ballz improvements

Better concern division into modules, now works on Linux !
forces.nit module is not really used yet but will be.

PS : mnit_simple and mnit_ballz aren't launching on android at the moment, I'll fix this in a further PR

Edit: Fixed Android part

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

8 years agomisc/vim: update the vim plugin to use core instead of standard
Alexis Laferrière [Thu, 10 Sep 2015 18:24:45 +0000 (14:24 -0400)]
misc/vim: update the vim plugin to use core instead of standard

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

8 years agotests: make nitiwiki.args idempotent
Jean Privat [Thu, 10 Sep 2015 17:55:45 +0000 (13:55 -0400)]
tests: make nitiwiki.args idempotent

A second execution of the test fail because arg2 modify things read by arg1.
Solution: clean after arg2

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

8 years agonitiwiki: extends the example with an external highlighter
Jean Privat [Thu, 10 Sep 2015 02:45:55 +0000 (22:45 -0400)]
nitiwiki: extends the example with an external highlighter

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

8 years agonitiwiki: new module `markdown_highlight` to plug in an external highlighter
Jean Privat [Thu, 10 Sep 2015 02:40:42 +0000 (22:40 -0400)]
nitiwiki: new module `markdown_highlight` to plug in an external highlighter

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

8 years agocontrib/jwrapper: prevent nitls to parse the generated files
Alexis Laferrière [Thu, 10 Sep 2015 17:44:48 +0000 (13:44 -0400)]
contrib/jwrapper: prevent nitls to parse the generated files

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

8 years agonitcatalog: do not crash if the dependency poset is empty (--no-parse)
Jean Privat [Wed, 9 Sep 2015 15:59:24 +0000 (11:59 -0400)]
nitcatalog: do not crash if the dependency poset is empty (--no-parse)

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

8 years agonitcatalog: add command-line options
Jean Privat [Wed, 9 Sep 2015 15:58:29 +0000 (11:58 -0400)]
nitcatalog: add command-line options

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

8 years agonitcatalog: add a *content* section with the modules and groups
Jean Privat [Wed, 9 Sep 2015 15:46:22 +0000 (11:46 -0400)]
nitcatalog: add a *content* section with the modules and groups

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

8 years agonitiwiki: change some visibility to allow extensions
Jean Privat [Thu, 10 Sep 2015 02:38:45 +0000 (22:38 -0400)]
nitiwiki: change some visibility to allow extensions

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

8 years agomarkdown: escape the meta information of code block in html
Jean Privat [Thu, 10 Sep 2015 13:25:08 +0000 (09:25 -0400)]
markdown: escape the meta information of code block in html

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

8 years agoMerge: Rename Project to Package
Jean Privat [Thu, 10 Sep 2015 12:27:50 +0000 (08:27 -0400)]
Merge: Rename Project to Package

Before `project.ini` are generalized (and regenerated in `c_src`) we should decide if the renaming worth it.

* a package, in OS and for some programming languages, is a coherent and distributed piece of software.
* a package, in software engineering (UML, Java), is a group of elements. It is used as namespace, and can be nested.
* a project, in IDE (eclipse, XCode) and toolchain (maven) is the organization of source of a software and how to build, test, document, etc.
* a project, in software engineering, is an attempt to produce a piece of software (and often the associated resources and artifacts like source code and people)

Thoughts?

Pull-Request: #1669
Reviewed-by: Lucas Bajolet <r4pass@hotmail.com>
Reviewed-by: Alexis Laferrière <alexis.laf@xymus.net>
Reviewed-by: Etienne M. Gagnon <egagnon@j-meg.com>

8 years agolib/markdown: promote `BlockFence::meta` to `BlockCode` to simplify clients
Jean Privat [Thu, 10 Sep 2015 01:29:30 +0000 (21:29 -0400)]
lib/markdown: promote `BlockFence::meta` to `BlockCode` to simplify clients

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

8 years agolib/markdown: factorize clones `code_from_block` into `BlockCode::raw_content`
Jean Privat [Thu, 10 Sep 2015 01:25:09 +0000 (21:25 -0400)]
lib/markdown: factorize clones `code_from_block` into `BlockCode::raw_content`

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

8 years agocontrib/friendz: adds music to the res folder
BlackMinou [Thu, 10 Sep 2015 10:02:15 +0000 (12:02 +0200)]
contrib/friendz: adds music to the res folder

Signed-off-by: BlackMinou <romain.chanoir@viacesi.fr>

8 years agoAndroid:audio: little fix when loading sound or music
BlackMinou [Thu, 10 Sep 2015 09:28:51 +0000 (11:28 +0200)]
Android:audio: little fix when loading sound or music

Signed-off-by: BlackMinou <romain.chanoir@viacesi.fr>

8 years agoMerge: Fix Opportunity behavior with unicode characters
Jean Privat [Thu, 10 Sep 2015 00:25:20 +0000 (20:25 -0400)]
Merge: Fix Opportunity behavior with unicode characters

Fix #1695. It is already deployed on http://xymus.net/opportunity/ (Take a look at http://xymus.net/opportunity/?meetup_id=B962ECD89E0AE40FF888569AE8D816B36F128E10)

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

8 years agoMerge: UTF-8 Regex
Jean Privat [Thu, 10 Sep 2015 00:25:10 +0000 (20:25 -0400)]
Merge: UTF-8 Regex

This PR closes #1684

Instead of making `byte_to_char_index` public, it has been removed as it had no real reason to live.

Names are corrected and should correctly reflect their use.
Some examples of regular expressions with UTF-8 have been included.

Note however that the C-library underneath does not have UTF-8 semantics, as such, when using repetition operators on UTF-8 strings, capture the problematic characters with parentheses as in the example, or else the result will be erroneous.

Additionally, performances should be a bit better since less allocations and copy_to should be done.

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

8 years agomanpages: nitls talks about packages, not projects
Jean Privat [Wed, 9 Sep 2015 19:16:53 +0000 (15:16 -0400)]
manpages: nitls talks about packages, not projects

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

8 years agocontrib: value for nitserial's `-d` is now `package`
Jean Privat [Fri, 28 Aug 2015 13:21:11 +0000 (09:21 -0400)]
contrib: value for nitserial's `-d` is now `package`

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

8 years agotests: update sav with `package` instead of `project`
Jean Privat [Fri, 28 Aug 2015 13:19:58 +0000 (09:19 -0400)]
tests: update sav with `package` instead of `project`

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

8 years agocode: rename `project[s].ini` files as `package[s].ini`
Jean Privat [Fri, 28 Aug 2015 04:30:24 +0000 (00:30 -0400)]
code: rename `project[s].ini` files as `package[s].ini`

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

8 years agosrc: mass rename project->package
Jean Privat [Fri, 28 Aug 2015 03:49:33 +0000 (23:49 -0400)]
src: mass rename project->package

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

8 years agolib/nitcorn: update path to nitc to compile the examples
Alexis Laferrière [Wed, 9 Sep 2015 17:59:37 +0000 (13:59 -0400)]
lib/nitcorn: update path to nitc to compile the examples

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

8 years agocontrib/opportunity: do not force capitalize names
Alexis Laferrière [Wed, 9 Sep 2015 17:51:46 +0000 (13:51 -0400)]
contrib/opportunity: do not force capitalize names

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

8 years agolib/text: fix to|from_percent_encoding with unicode characters
Alexis Laferrière [Wed, 9 Sep 2015 17:50:15 +0000 (13:50 -0400)]
lib/text: fix to|from_percent_encoding with unicode characters

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

8 years agotests: Updated tests for Regex with more UTF-8 regexps
Lucas Bajolet [Wed, 9 Sep 2015 17:45:10 +0000 (13:45 -0400)]
tests: Updated tests for Regex with more UTF-8 regexps

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

8 years agolib/core: Sub-regular expressions API change from Array[Match] to Array[nullable...
Lucas Bajolet [Wed, 9 Sep 2015 15:42:55 +0000 (11:42 -0400)]
lib/core: Sub-regular expressions API change from Array[Match] to Array[nullable Match]

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

8 years agosrc/interpreter: fast_cstring was broken in interpreter
Lucas Bajolet [Tue, 8 Sep 2015 21:13:33 +0000 (17:13 -0400)]
src/interpreter: fast_cstring was broken in interpreter

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

8 years agoMerge: Better nitcc
Jean Privat [Wed, 9 Sep 2015 15:04:17 +0000 (11:04 -0400)]
Merge: Better nitcc

Some improvements and bugfixes for nitcc.

* Improve code size in C and in Nit
* Produce valid Nit code even in case of R/R, S/R or S/R/R conflicts. Close #1693

Before: compiling objc_test_parser on an old laptop
* 880.58 usertime
* 3GB memory
* produced executable: 50MB (31MB stripped)

after: same grammar, better nitcc
* 337.80usertime
* 788MB memory
* produced executable: 28MB (8,8MB stripped)

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

8 years agoMerge: String Stats
Jean Privat [Wed, 9 Sep 2015 15:04:12 +0000 (11:04 -0400)]
Merge: String Stats

Introducing a statistics module for Text variants usage which keeps trace of the accesses and allocations of Texts in a program.

It works in a similar way to `array_debug` or `hash_debug`, and prints statistics after the execution of a module.

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

8 years agolib/json: regenerate with new nitcc
Jean Privat [Wed, 9 Sep 2015 12:44:55 +0000 (08:44 -0400)]
lib/json: regenerate with new nitcc

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

8 years agonitcc: collect items with conflict (now that there is always a resolution attempt)
Jean Privat [Wed, 9 Sep 2015 12:44:36 +0000 (08:44 -0400)]
nitcc: collect items with conflict (now that there is always a resolution attempt)

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

8 years agonitcc: factorize code of alternative reduction
Jean Privat [Wed, 9 Sep 2015 10:06:55 +0000 (06:06 -0400)]
nitcc: factorize code of alternative reduction

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

8 years agonitcc:: when removing a reduction in S/R, notify the token to not generate the reduce...
Jean Privat [Wed, 9 Sep 2015 09:30:52 +0000 (05:30 -0400)]
nitcc:: when removing a reduction in S/R, notify the token to not generate the reduce action

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

8 years agonitcc: detect S/R even if R/R conflict as a solution is to shift in case of S/R/R
Jean Privat [Wed, 9 Sep 2015 09:28:21 +0000 (05:28 -0400)]
nitcc: detect S/R even if R/R conflict as a solution is to shift in case of S/R/R

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

8 years agonitcc: remove reduction even in non-dangling S/R conflict
Jean Privat [Wed, 9 Sep 2015 09:26:46 +0000 (05:26 -0400)]
nitcc: remove reduction even in non-dangling S/R conflict

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

8 years agonitcc: remove S/R reduction after detection to avoid concurent iteration/mutation...
Jean Privat [Wed, 9 Sep 2015 09:25:49 +0000 (05:25 -0400)]
nitcc: remove S/R reduction after detection to avoid concurent iteration/mutation issues

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

8 years agoandroid/sensors: the example and some whitespace
BlackMinou [Sun, 23 Aug 2015 14:18:42 +0000 (16:18 +0200)]
android/sensors: the example and some whitespace

Signed-off-by: BlackMinou <romain.chanoir@viacesi.fr>

8 years agoandroid/audio: fix infinite recursion
BlackMinou [Sun, 26 Jul 2015 17:33:31 +0000 (19:33 +0200)]
android/audio: fix infinite recursion

Signed-off-by: BlackMinou <romain.chanoir@viacesi.fr>

8 years agomnit_ballz: Objects module
BlackMinou [Mon, 22 Jun 2015 00:02:39 +0000 (02:02 +0200)]
mnit_ballz: Objects module

Signed-off-by: BlackMinou <romain.chanoir@viacesi.fr>

8 years agomnit_ballz: Display module
BlackMinou [Mon, 22 Jun 2015 00:02:17 +0000 (02:02 +0200)]
mnit_ballz: Display module

Signed-off-by: BlackMinou <romain.chanoir@viacesi.fr>

8 years agomnit_ballz: Collision gestion module
BlackMinou [Mon, 22 Jun 2015 00:02:08 +0000 (02:02 +0200)]
mnit_ballz: Collision gestion module

Signed-off-by: BlackMinou <romain.chanoir@viacesi.fr>

8 years agomnit_ballz: Linux module
BlackMinou [Mon, 22 Jun 2015 00:01:55 +0000 (02:01 +0200)]
mnit_ballz: Linux module

Signed-off-by: BlackMinou <romain.chanoir@viacesi.fr>

8 years agomnit_ballz: Assets module
BlackMinou [Mon, 22 Jun 2015 00:01:37 +0000 (02:01 +0200)]
mnit_ballz: Assets module

Signed-off-by: BlackMinou <romain.chanoir@viacesi.fr>

8 years agomnit_ballz: Walls images
BlackMinou [Mon, 22 Jun 2015 00:00:45 +0000 (02:00 +0200)]
mnit_ballz: Walls images

Signed-off-by: BlackMinou <romain.chanoir@viacesi.fr>

8 years agomnit_ballz: Sounds assets for android (in res/raw)
BlackMinou [Mon, 22 Jun 2015 00:00:31 +0000 (02:00 +0200)]
mnit_ballz: Sounds assets for android (in res/raw)

Signed-off-by: BlackMinou <romain.chanoir@viacesi.fr>

8 years agomnit_ballz: game_logic module
BlackMinou [Sun, 21 Jun 2015 23:59:24 +0000 (01:59 +0200)]
mnit_ballz: game_logic module

Signed-off-by: BlackMinou <romain.chanoir@viacesi.fr>

8 years agomnit_ballz: Android module
BlackMinou [Sun, 21 Jun 2015 23:59:08 +0000 (01:59 +0200)]
mnit_ballz: Android module

Signed-off-by: BlackMinou <romain.chanoir@viacesi.fr>

8 years agonitcc: parser&lexer: do notgenerate top-level methods in Object
Jean Privat [Wed, 9 Sep 2015 08:24:44 +0000 (04:24 -0400)]
nitcc: parser&lexer: do notgenerate top-level methods in Object

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

8 years agomnit_ballz: Adds linux target to Makefile
BlackMinou [Sun, 21 Jun 2015 23:58:42 +0000 (01:58 +0200)]
mnit_ballz: Adds linux target to Makefile

Signed-off-by: BlackMinou <romain.chanoir@viacesi.fr>

8 years agotests: Added test for text_stat
Lucas Bajolet [Tue, 8 Sep 2015 18:36:26 +0000 (14:36 -0400)]
tests: Added test for text_stat

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

8 years agolib/: Added statistics module for Text variants
Lucas Bajolet [Mon, 31 Aug 2015 19:14:26 +0000 (15:14 -0400)]
lib/: Added statistics module for Text variants

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

8 years agolib/core/re: Fixed search_in for Regex, should now work with UTF-8
Lucas Bajolet [Tue, 8 Sep 2015 18:19:53 +0000 (14:19 -0400)]
lib/core/re: Fixed search_in for Regex, should now work with UTF-8

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

8 years agolib/core: Fixed documentation in `NativeString::byte_to_char_index_cached`
Lucas Bajolet [Tue, 8 Sep 2015 18:19:28 +0000 (14:19 -0400)]
lib/core: Fixed documentation in `NativeString::byte_to_char_index_cached`

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

8 years agolib/core/text: Deferred utf8_length to native for FlatString
Lucas Bajolet [Tue, 8 Sep 2015 18:18:46 +0000 (14:18 -0400)]
lib/core/text: Deferred utf8_length to native for FlatString

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

8 years agolib/core/text: Removed now useless byte_to_char_index function
Lucas Bajolet [Tue, 8 Sep 2015 18:17:30 +0000 (14:17 -0400)]
lib/core/text: Removed now useless byte_to_char_index function

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

8 years agoMerge: lib/github: fix link to github doc in comment
Jean Privat [Tue, 8 Sep 2015 15:55:07 +0000 (11:55 -0400)]
Merge: lib/github: fix link to github doc in comment

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

8 years agoMerge: contrib/inkscape_tools: use Tinks! art instead of Dino's to test args
Jean Privat [Tue, 8 Sep 2015 15:55:00 +0000 (11:55 -0400)]
Merge: contrib/inkscape_tools: use Tinks! art instead of Dino's to test args

Fix #1657, it was actually the test that was broken as the SVG source file is designed for the bash script that preceded inkscape_tools and not inkscape_tools itself (see examples/mnit_dino/tools/). This PR use Tinks! art instead of Dino's. It was already tested by the Tinks! project but here we use it to test the program arguments.

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

8 years agoMerge: objcwrapper: class methods as top-level methods, generate doc and intro `gen_nit`
Jean Privat [Tue, 8 Sep 2015 15:54:40 +0000 (11:54 -0400)]
Merge: objcwrapper: class methods as top-level methods, generate doc and intro `gen_nit`

Update _objcwrapper_  so it is more useful. It now supports class/top-level methods, it generates basic doc with each methods and moving the preprocessing to Nit allows to easily parse many files at once.

This PR also extracts the Nit keywords list from jwrapper into the new `gen_nit` lib. I may move up other services common to jwrapper and objcwrapper there in the future.

At this point, we parse 89 out of 121 headers from GNUStep. And I have grammar tweaks stashed away that brind it up to 101, but I'm also considering using an existing and complete grammar... The result is not very usable as it still need to reproduce the class hierarch and avoid reintroducing introduced methods between classes.

I've added a pretty print for errors to help debug the grammar, if there is an interest I could move it up to `nitcc_runtime`, here's an example output:
~~~
Syntax Error: Unexpected rpar ')'; is acceptable instead: data_type, more_type, at 70:38-70:39
in /usr/include/GNUstep/Foundation/NSArchiver.h
- (void) serializeHeaderAt: (unsigned)positionInData
                                     ^
Syntax Error: Unexpected id 'autorelease_thread_vars'; is acceptable instead: declaration, structure_core, type, type_annotation, unsigned, data_type, more_type, function_pointer, at 9:16-9:39
in /usr/include/GNUstep/Foundation/NSAutoreleasePool.h
typedef struct autorelease_thread_vars
               ^^^^^^^^^^^^^^^^^^^^^^^
~~~

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

8 years agoMerge: Bench strings
Jean Privat [Tue, 8 Sep 2015 15:54:35 +0000 (11:54 -0400)]
Merge: Bench strings

Update for existing benches since standard was renamed to core and a few PRs have modified the code.

Also added new variant with buffered NativeStrings.

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

8 years agoMerge: lib/opts: accept non-conflicting parameters for OptionString and rename get_er...
Jean Privat [Tue, 8 Sep 2015 15:54:28 +0000 (11:54 -0400)]
Merge: lib/opts: accept non-conflicting parameters for OptionString and rename get_errors to errors

`OptionString` reads the next argument to be used as its parameter. However, to detect errors it did not read parameter beginning with `-`. This PR changes this behavior to only avoid parameters that are the name of a known option in the current `OptionContext`. This should report real errors and accept parameters beginning with `-`, such parameter are useful to forward options to subprograms.

Renaming `OptionContext::get_errors` to `errors` assign the short name to the most commonly used property. `errors` was previously reserved for errors local to the context only. From the Nit repo, only 2 projects correctly used `get_errors`, 8 wrongfully used `errors` and thus did not catch all errors.

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