nit.git
6 years agoAdded HTTP METHODS to CurlHTTPRequest
Matthieu Le Guellaut [Thu, 10 May 2018 15:08:40 +0000 (11:08 -0400)]
Added HTTP METHODS to CurlHTTPRequest

Signed-off-by: Matthieu Le Guellaut <leguellaut.matthieu@gmail.com>

6 years agoMerge: lib: expand packages
Jean Privat [Fri, 4 May 2018 19:37:05 +0000 (15:37 -0400)]
Merge: lib: expand packages

I'm currently working on generating README files for packages that don't already have one.
The first step is to create a directory for each package (I call it *expanding* the package).

In this PR, I move all singleton packages to their own directory:
* `lib/a_star.nit` --> `lib/a_star/a_star.nit`
* `lib/x11.nit` --> `lib/x11/x11.nit`
* ...

The `package.ini` file is also moved and renamed.

I used the `nitreadme` bin to do that:

~~~sh
nitreadme --expand lib/
~~~

Next step will be to create the README.md file into the newly created directory.

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

6 years agoMerge: doc/commands: introduce CmdEntityLink command
Jean Privat [Fri, 4 May 2018 19:37:03 +0000 (15:37 -0400)]
Merge: doc/commands: introduce CmdEntityLink command

This PR introduce the CmdEntityLink command.

The link command is used to create a link from the generated documentation file to an external resource.

Command forms:
* `[[popcorn]]` generates a link to the `popcorn` package documentation resource.
* `[[popcorn | text: foo, title: bar]]` allows customization of link text and title.

The resource URL depends on the tool.

For example:
* `nitweb` (when the command is used in `docdown` or in a `README`) renders a link to the HTML documentation page on the server
* `nitdoc` (TODO) renders a link to the static documentation page
* `nitx` replaces the link commands by the comment commands (that contains the file location)

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

6 years agoMerge: Write byte updates
Jean Privat [Fri, 4 May 2018 19:37:01 +0000 (15:37 -0400)]
Merge: Write byte updates

More in the Stream refactor series, this commit adds a low-level byte writing method, to be re-implemented when needed. The read_bytes service can now be defined in writer only, as a wrapper to the lower-level service.

Pull-Request: #2642

6 years agoMerge: doc/commands: add tests for html rendering
Jean Privat [Fri, 4 May 2018 19:37:00 +0000 (15:37 -0400)]
Merge: doc/commands: add tests for html rendering

As mentioned by @R4PaSs in #2641, there is no tests for the HTML rendering of commands.

This PR adds nitunit tests for the `commands_html.nit` module.

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

6 years agoMerge: nitpick: do not warn in not explicitly required modules
Jean Privat [Fri, 4 May 2018 19:36:59 +0000 (15:36 -0400)]
Merge: nitpick: do not warn in not explicitly required modules

The infrastructure was already in toocontext, now nitpick uses it.

Pull-Request: #2645

6 years agoMerge: tests/nitunit: test that private methods are nitunited
Jean Privat [Fri, 4 May 2018 19:36:57 +0000 (15:36 -0400)]
Merge: tests/nitunit: test that private methods are nitunited

The code date from #360

close #1603

Pull-Request: #2646

6 years agoMerge: Remove the binary serialization service
Jean Privat [Fri, 4 May 2018 19:36:56 +0000 (15:36 -0400)]
Merge: Remove the binary serialization service

This PR simply removes the binary::serialization module and its tests. Clients should use `msgpack` instead.

The binary serialization service was mostly a test of the serialization framework, it uses a custom format that is hard to debug, it does not subtype check the data before deserialization, and it has no more clients. In comparison, the msgpack serialization service uses a standardized format, it is debuggable and it is generally more space efficient.

Pull-Request: #2647

6 years agotests: update tests for `c` module
Alexandre Terrasa [Fri, 4 May 2018 16:04:52 +0000 (12:04 -0400)]
tests: update tests for `c` module

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

6 years agotests: add sav for nitpackage
Alexandre Terrasa [Fri, 4 May 2018 16:04:29 +0000 (12:04 -0400)]
tests: add sav for nitpackage

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

6 years agoshare/man: add manpage for `nitpackage`
Alexandre Terrasa [Wed, 2 May 2018 19:59:56 +0000 (15:59 -0400)]
share/man: add manpage for `nitpackage`

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

6 years agolib/: expand all packages in their own directories
Alexandre Terrasa [Tue, 1 May 2018 17:08:26 +0000 (13:08 -0400)]
lib/: expand all packages in their own directories

Using `nitreadme lib/ --expand`

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

6 years agolib/core: add low-level byte writing method
Lucas Bajolet [Tue, 1 May 2018 21:36:06 +0000 (17:36 -0400)]
lib/core: add low-level byte writing method

Akin to the read without overhead, this commit adds a low-level service
to write bytes to a Writer stream.

Signed-off-by: Lucas Bajolet <lucas.bajolet@gmail.com>

6 years agobinary: remove the serialization service, clients should use msgpack
Alexis Laferrière [Fri, 4 May 2018 14:54:20 +0000 (10:54 -0400)]
binary: remove the serialization service, clients should use msgpack

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

6 years agotests/nitunit: test that private methods are nitunited
Jean Privat [Fri, 4 May 2018 00:39:32 +0000 (20:39 -0400)]
tests/nitunit: test that private methods are nitunited

The code date from #360

close #1603

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

6 years agoMerge: parse_examples: minor fixes
Jean Privat [Thu, 3 May 2018 23:15:49 +0000 (19:15 -0400)]
Merge: parse_examples: minor fixes

This PR fixes two things:
1. call `visit_all` so statements are all visited
2. also count newly instanciated mclasses

Pull-Request: #2639

6 years agonitpick: do not warn in not explicitly required modules
Jean Privat [Thu, 3 May 2018 19:11:01 +0000 (15:11 -0400)]
nitpick: do not warn in not explicitly required modules

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

6 years agoparse_examples: count new on classes
Alexandre Terrasa [Thu, 3 May 2018 15:20:36 +0000 (11:20 -0400)]
parse_examples: count new on classes

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

6 years agoMerge: No intrude rope stream
Jean Privat [Thu, 3 May 2018 13:46:32 +0000 (09:46 -0400)]
Merge: No intrude rope stream

Two things happening here, in two commits:

* the first commit moves the definition of `decoder` into Stream, and renames it to `codec` since both coding/decoding will be used by streams when dealing with String semantics.
* the second commit removes the `intrude inport ropes` from stream as this was not necessary, and performance-wise did not matter sufficiently to justify this

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

6 years agoMerge: Read byte rewrite
Jean Privat [Thu, 3 May 2018 13:44:24 +0000 (09:44 -0400)]
Merge: Read byte rewrite

As part of the stream refactor series, this patches cleanup msgpack a bit and introduce a lower-level `read_byte` implementation on which `read_byte(s)` will rely for reading data from a source.

In the future, the lowest-level interface to read bytes, and the only one required for implementing a new stream will be the `raw_read_byte(s)` functions.

A cleanup of the current streams will be needed for this to be used properly, coming in the next few PRs.

Note: The first two commits have already been submitted under #2632, therefore disregard them for this PR.

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

6 years agoMerge: nitmetrics: metrics about ReadMe files
Jean Privat [Thu, 3 May 2018 13:44:21 +0000 (09:44 -0400)]
Merge: nitmetrics: metrics about ReadMe files

This PR add an option `--readme` to extract metrics about ReadMe / Markdown files.

Running the following command:

~~~sh
nitmetrics --readme tests/test_prog
~~~

Will produce the following output:

~~~md
*** METRICS ***

# ReadMe metrics

 ## package test_prog (test_prog/README.md)
  * has_package 1
  * has_readme 1
  * md_lines 12
  * nb_section 0
  * md_blocks 14
  * BlockParagraph 4
  * BlockUnorderedList 1
  * BlockListItem 4
  * SpanCode 4
  * Image 1
~~~

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

6 years agoMerge: Some lib/graph love
Jean Privat [Thu, 3 May 2018 13:44:19 +0000 (09:44 -0400)]
Merge: Some lib/graph love

I needed an Eulerian circuit so I implemented a quick and dirty one

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

6 years agoMerge: model_collect: collect all modules from a package
Jean Privat [Thu, 3 May 2018 13:44:18 +0000 (09:44 -0400)]
Merge: model_collect: collect all modules from a package

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

Pull-Request: #2638

6 years agoMerge: lib/msgpack: unify several cases for deserialization
Jean Privat [Thu, 3 May 2018 13:44:16 +0000 (09:44 -0400)]
Merge: lib/msgpack: unify several cases for deserialization

Some cases were treated independently while retaining mostly the same
code.

This commit tries to unite such cases into a single branch.

Doing so helps readability, reduces code duplication and should
hopefully improve performance as the number of tests to be performed is
lower.

Signed-off-by: Lucas Bajolet <lucas.bajolet@gmail.com>

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

6 years agodoc/api: allow entity url customization
Alexandre Terrasa [Wed, 2 May 2018 22:54:55 +0000 (18:54 -0400)]
doc/api: allow entity url customization

Also update tests for HTML since the URLs are different.

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

6 years agodoc/commands: DocDown accept CmdEntityLink commands
Alexandre Terrasa [Tue, 1 May 2018 19:34:51 +0000 (15:34 -0400)]
doc/commands: DocDown accept CmdEntityLink commands

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

6 years agodoc/commands: term accept CmdEntityLink commands
Alexandre Terrasa [Tue, 1 May 2018 19:33:56 +0000 (15:33 -0400)]
doc/commands: term accept CmdEntityLink commands

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

6 years agodoc/commands: do not accept empty CmdEntity names
Alexandre Terrasa [Tue, 1 May 2018 19:33:35 +0000 (15:33 -0400)]
doc/commands: do not accept empty CmdEntity names

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

6 years agodoc/commands: parse CmdEntityLink command strings
Alexandre Terrasa [Tue, 1 May 2018 19:33:14 +0000 (15:33 -0400)]
doc/commands: parse CmdEntityLink command strings

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

6 years agodoc/commands: generate CmdEntityLink command to HTML
Alexandre Terrasa [Tue, 1 May 2018 19:32:43 +0000 (15:32 -0400)]
doc/commands: generate CmdEntityLink command to HTML

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

6 years agodoc/commands: generate CmdEntityLink to JSON
Alexandre Terrasa [Tue, 1 May 2018 19:30:41 +0000 (15:30 -0400)]
doc/commands: generate CmdEntityLink to JSON

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

6 years agodoc/commands: parse CmdEntityLink commands from http
Alexandre Terrasa [Tue, 1 May 2018 19:30:11 +0000 (15:30 -0400)]
doc/commands: parse CmdEntityLink commands from http

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

6 years agodoc/commands: introduce CmdEntityLink command
Alexandre Terrasa [Tue, 1 May 2018 19:29:46 +0000 (15:29 -0400)]
doc/commands: introduce CmdEntityLink command

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

6 years agodoc/commands: fix linearization warnings for commands HTML rendering
Alexandre Terrasa [Wed, 2 May 2018 22:40:52 +0000 (18:40 -0400)]
doc/commands: fix linearization warnings for commands HTML rendering

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

6 years agodoc/commands: fix HTML rendering for CmdEntity
Alexandre Terrasa [Wed, 2 May 2018 22:40:19 +0000 (18:40 -0400)]
doc/commands: fix HTML rendering for CmdEntity

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

6 years agodoc/commands: add tests for commands_html
Alexandre Terrasa [Wed, 2 May 2018 22:39:54 +0000 (18:39 -0400)]
doc/commands: add tests for commands_html

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

6 years agonitreadme: introduce `nitreadme` a tool to manage README files
Alexandre Terrasa [Tue, 1 May 2018 17:06:51 +0000 (13:06 -0400)]
nitreadme: introduce `nitreadme` a tool to manage README files

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

6 years agolib/core: add no-overhead read_bytes implementation
Lucas Bajolet [Wed, 25 Apr 2018 20:27:31 +0000 (16:27 -0400)]
lib/core: add no-overhead read_bytes implementation

read_bytes as a simple interface is relevant, but may hinder
performances in case a chunk is repeatedly read and discarded as for
each read operation, a buffer is re-allocated.

A secondary read operation is introduced to read directly to a CString,
using closer-to-C semantics.

Also start using codec lookahead as source for reading bytes.

Signed-off-by: Lucas Bajolet <lucas.bajolet@gmail.com>

6 years agotests: add test for --readme option from nitmetrics
Alexandre Terrasa [Tue, 1 May 2018 15:34:36 +0000 (11:34 -0400)]
tests: add test for --readme option from nitmetrics

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

6 years agonitmetrics: extract metrics about Readme/Markdown files
Alexandre Terrasa [Tue, 1 May 2018 15:34:14 +0000 (11:34 -0400)]
nitmetrics: extract metrics about Readme/Markdown files

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

6 years agolib/msgpack: unify several cases for deserialization
Lucas Bajolet [Mon, 30 Apr 2018 22:23:39 +0000 (18:23 -0400)]
lib/msgpack: unify several cases for deserialization

Some cases were treated independently while retaining mostly the same
code.

This commit tries to unite such cases into a single branch.

Doing so helps readability, reduces code duplication and should
hopefully improve performance as the number of tests to be performed is
lower.

Signed-off-by: Lucas Bajolet <lucas.bajolet@gmail.com>

6 years agolib/core: remove ropes intrude import in stream
Lucas Bajolet [Fri, 6 Apr 2018 05:57:29 +0000 (01:57 -0400)]
lib/core: remove ropes intrude import in stream

The intrude import of ropes in lib/core/stream was only due to the
ropification of the read_all_bytes.

As the leaves were too small to have a positive impact with the actual
threshold value being chosen here, we remove the ropification in the
read_all function.

This simplifies code a lot, and keeps out the intrude import of the
ropes module.

We also take advantage of this modification to start using codecs here
to decode the string.

Signed-off-by: Lucas Bajolet <lucas.bajolet@gmail.com>

6 years agostream: move decoder to stream and rename as codec
Lucas Bajolet [Fri, 6 Apr 2018 02:15:28 +0000 (22:15 -0400)]
stream: move decoder to stream and rename as codec

Since every stream will need to pass through a codec to code/decode to
and from textual data, the former 'decoder' attribute is now moved to
Stream and renamed to better reflect its use.

Signed-off-by: Lucas Bajolet <lucas.bajolet@gmail.com>

6 years agolib/core: remove ropes intrude import in stream
Lucas Bajolet [Fri, 6 Apr 2018 05:57:29 +0000 (01:57 -0400)]
lib/core: remove ropes intrude import in stream

The intrude import of ropes in lib/core/stream was only due to the
ropification of the read_all_bytes.

As the leaves were too small to have a positive impact with the actual
threshold value being chosen here, we remove the ropification in the
read_all function.

This simplifies code a lot, and keeps out the intrude import of the
ropes module.

We also take advantage of this modification to start using codecs here
to decode the string.

Signed-off-by: Lucas Bajolet <lucas.bajolet@gmail.com>

6 years agostream: move decoder to stream and rename as codec
Lucas Bajolet [Fri, 6 Apr 2018 02:15:28 +0000 (22:15 -0400)]
stream: move decoder to stream and rename as codec

Since every stream will need to pass through a codec to code/decode to
and from textual data, the former 'decoder' attribute is now moved to
Stream and renamed to better reflect its use.

Signed-off-by: Lucas Bajolet <lucas.bajolet@gmail.com>

6 years agoparse_examples: visit all statements
Alexandre Terrasa [Tue, 1 May 2018 17:47:25 +0000 (13:47 -0400)]
parse_examples: visit all statements

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

6 years agomodel_collect: collect all modules from a package
Alexandre Terrasa [Tue, 1 May 2018 17:44:08 +0000 (13:44 -0400)]
model_collect: collect all modules from a package

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

6 years agolib/graph: add `Digraph::eulerian_path`
Jean Privat [Tue, 1 May 2018 15:41:53 +0000 (11:41 -0400)]
lib/graph: add `Digraph::eulerian_path`

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

6 years agolib/graph: add MutableDigraph::add_graph
Jean Privat [Tue, 1 May 2018 15:40:52 +0000 (11:40 -0400)]
lib/graph: add MutableDigraph::add_graph

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

6 years agolib/graph: remove unneeded import in docunits
Jean Privat [Tue, 1 May 2018 15:39:48 +0000 (11:39 -0400)]
lib/graph: remove unneeded import in docunits

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

6 years agolib: rename graphs to graph
Jean Privat [Tue, 1 May 2018 15:01:30 +0000 (11:01 -0400)]
lib: rename graphs to graph

plurial in packagename is weird

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

6 years agoMerge: core/stream: change read_byte return type to Int
Jean Privat [Fri, 27 Apr 2018 16:19:33 +0000 (12:19 -0400)]
Merge: core/stream: change read_byte return type to Int

A read_byte used to return a nullable Byte, which could cause
unnecessary boxings, and thus could harm performance.

This commit changes its return to Int, and adopts a closer-to-C api,
returning a negative value when an error occurs.

Signed-off-by: Lucas Bajolet <lucas.bajolet@gmail.com>

Pull-Request: #2631

6 years agocore/stream: change read_byte return type to Int
Lucas Bajolet [Thu, 29 Mar 2018 19:57:22 +0000 (15:57 -0400)]
core/stream: change read_byte return type to Int

A read_byte used to return a nullable Byte, which could cause
unnecessary boxings, and thus could harm performance.

This commit changes its return to Int, and adopts a closer-to-C api,
returning a negative value when an error occurs.

Signed-off-by: Lucas Bajolet <lucas.bajolet@gmail.com>

6 years agoMerge: nitc: do not autocast primitive types
Jean Privat [Fri, 6 Apr 2018 02:04:37 +0000 (22:04 -0400)]
Merge: nitc: do not autocast primitive types

Fix #2629

Pull-Request: #2630

6 years agoMerge: tests: fix locale issue on non-Debian linux
Jean Privat [Fri, 6 Apr 2018 02:04:36 +0000 (22:04 -0400)]
Merge: tests: fix locale issue on non-Debian linux

The C.UTF-8 locale is Debian-specific and causes issues on other
platforms.

To avoid setlocale error messages, the LC_ALL export will default on C
if C.UTF-8 is unavailable on the target platform.

Signed-off-by: Lucas Bajolet <lucas.bajolet@gmail.com>

Pull-Request: #2628

6 years agoMerge: gitignore: ignore nit_compile folders and contents
Jean Privat [Fri, 6 Apr 2018 02:04:36 +0000 (22:04 -0400)]
Merge: gitignore: ignore nit_compile folders and contents

nit_compile are a series of generated intermediate C files that should
not be versioned.

We therefore add them to the .gitignore to eliminate them from the
index.

Signed-off-by: Lucas Bajolet <lucas.bajolet@gmail.com>

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

6 years agoMerge: console: don't color output when stdout is not a TTY (by default)
Jean Privat [Fri, 6 Apr 2018 02:04:35 +0000 (22:04 -0400)]
Merge: console: don't color output when stdout is not a TTY (by default)

Change the behavior of the `console` package to ignore color commands like `Text::green` when stdout is not a TTY. You can override this behavior by setting `force_console_colors = true`.

I made this change to color the output of nitpm, however, it can be useful to other tools to support stdout redirection by default.

Pull-Request: #2626

6 years agoMerge: Extend nitpm (formerly picnit) to support package versions and dependencies
Jean Privat [Fri, 6 Apr 2018 02:01:35 +0000 (22:01 -0400)]
Merge: Extend nitpm (formerly picnit) to support package versions and dependencies

Rename picnit to nitpm and intro 4 main new features.

### Install package versions

Install specific versions of a package using the following command:

~~~
nitpm install gamnit=0.5
~~~

The version string (the `0.5` in the above example) must be a Git branch or tag, it will be used when cloning the package locally. The package will be downloaded to `~/.local/lib/nit/gamnit=0.5/`, allowing multiple versions of the same package to be installed concurrently.

### Dependencies in package.ini

Packages should now declare dependencies to other nitpm packages in the `package.ini` at the `import` key:

~~~
[package]
name=my_package
import=hello_nitpm, gamnit=0.5
~~~

The dependencies can then be installed automatically with `nitpm install` from the root of the package.

Nit tools read the local `package.ini` to redirect imports of `gamnit` inside this package to this specific version. So for `my_package` described above, all references to `gamnit` will use the implementation `gamnit=0.5`.

### Recursive installation

nitpm installs dependencies recursively, so if `gamnit` requires `glesv2`, after an explicit command to install `gamnit` nitpm will also install `glesv2`. This implementation is minimal, it could be improved by precalculating all dependencies and asking for confirmation.

### Customizable install directory

You can now use the env var `NITPM_PATH` to set the path where libraries are installed. This will override the default path at `~/.local/lib/nit/`.

### Others

* `nitpm uninstall` can uninstall many packages at once, it is safer and it accepts the -f option to skip the confirmation.
* `nitpm list` lists packages in alphabetical order.

Pull-Request: #2622
Reviewed-by: Romain Chanoir <romain.chanoir@viacesi.fr>
Reviewed-by: Jean Privat <jean@pryen.org>

6 years agonitc: do not autocast primitive types
Jean Privat [Thu, 5 Apr 2018 18:05:46 +0000 (14:05 -0400)]
nitc: do not autocast primitive types

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

6 years agotests: fix locale issue on non-Debian linux
Lucas Bajolet [Thu, 29 Mar 2018 19:53:46 +0000 (15:53 -0400)]
tests: fix locale issue on non-Debian linux

The C.UTF-8 locale is Debian-specific and causes issues on other
platforms.

To avoid setlocale error messages, the LC_ALL export will default on
C.UTF-8, the system utf-8 locale if unavailable, and on C if no better
choice is available.

Signed-off-by: Lucas Bajolet <lucas.bajolet@gmail.com>

6 years agogitignore: ignore nit_compile folders and contents
Lucas Bajolet [Thu, 29 Mar 2018 03:20:12 +0000 (23:20 -0400)]
gitignore: ignore nit_compile folders and contents

nit_compile are a series of generated intermediate C files that should
not be versioned.

We therefore add them to the .gitignore to eliminate them from the
index.

Signed-off-by: Lucas Bajolet <lucas.bajolet@gmail.com>

6 years agotests: remove colors from savs of nitls, nitlight, etc.
Alexis Laferrière [Thu, 29 Mar 2018 14:47:52 +0000 (10:47 -0400)]
tests: remove colors from savs of nitls, nitlight, etc.

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

6 years agorubix: force console colors because it makes no sense without it
Alexis Laferrière [Thu, 29 Mar 2018 14:51:14 +0000 (10:51 -0400)]
rubix: force console colors because it makes no sense without it

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

6 years agoconsole: only color outputs if stdout isa TTY
Alexis Laferrière [Fri, 16 Mar 2018 14:42:22 +0000 (10:42 -0400)]
console: only color outputs if stdout isa TTY

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

6 years agoMerge: Make the `do catch` great again
Jean Privat [Thu, 29 Mar 2018 00:11:33 +0000 (20:11 -0400)]
Merge: Make the `do catch` great again

This PR removes some of the limitations of the `do catch` :
* Hard-coded limit of 100 jumping environments is gone, the array is now dynamic
* The structure for managing jump environments is now lazy initialized
* Now using gcc's `__thread` specifier so that each thread has it's own jumping stack

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

6 years agoMerge: share: shallow clone bdwgc for Android and iOS
Jean Privat [Thu, 29 Mar 2018 00:11:32 +0000 (20:11 -0400)]
Merge: share: shallow clone bdwgc for Android and iOS

When compiling a Nit app for Android, a specific branch of bdwgc/libgc/boehm-gc is cloned locally. Using a shallow clone only fetches the last commit, for a faster download and to use less disk space.

Closes #2621.

Pull-Request: #2624
Reviewed-by: Romain Chanoir <romain.chanoir@viacesi.fr>

6 years agoMerge: curl: basic Unix domain socket support
Jean Privat [Thu, 29 Mar 2018 00:11:31 +0000 (20:11 -0400)]
Merge: curl: basic Unix domain socket support

Support using a Unix socket to send an HTTP request.

~~~
var request = new CurlHTTPRequest("http://localhost/")
request.unix_socket_path = "/tmp/nginx.sock"
var response = request.execute
~~~

@matthmsl Is this what you needed for #2623?

Pull-Request: #2625
Reviewed-by: Romain Chanoir <romain.chanoir@viacesi.fr>

6 years agoconsole: move up services from String to Text, and update doc
Alexis Laferrière [Fri, 16 Mar 2018 14:40:44 +0000 (10:40 -0400)]
console: move up services from String to Text, and update doc

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

6 years agoconsole: fix typos and doc
Alexis Laferrière [Fri, 16 Mar 2018 14:39:41 +0000 (10:39 -0400)]
console: fix typos and doc

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

6 years agotests: niti skips nitpm because it doesn't support curl callbacks
Alexis Laferrière [Mon, 5 Mar 2018 20:37:24 +0000 (15:37 -0500)]
tests: niti skips nitpm because it doesn't support curl callbacks

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

6 years agotests: updates test for nitpm with new services
Alexis Laferrière [Mon, 5 Mar 2018 15:54:18 +0000 (10:54 -0500)]
tests: updates test for nitpm with new services

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

6 years agoshare: update picnit man page
Alexis Laferrière [Sat, 3 Mar 2018 20:53:20 +0000 (15:53 -0500)]
share: update picnit man page

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

6 years agonitpm: tweak -h and -v to please check_manpages.sh
Alexis Laferrière [Mon, 5 Mar 2018 20:56:47 +0000 (15:56 -0500)]
nitpm: tweak -h and -v to please check_manpages.sh

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

6 years agonitpm: protect uninstall from deleting parent folders
Alexis Laferrière [Sun, 4 Mar 2018 21:47:21 +0000 (16:47 -0500)]
nitpm: protect uninstall from deleting parent folders

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

6 years agonitpm: uninstall accepts many packages and can be forced
Alexis Laferrière [Mon, 5 Mar 2018 15:54:50 +0000 (10:54 -0500)]
nitpm: uninstall accepts many packages and can be forced

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

6 years agonitpm: list packages in alphabetical order
Alexis Laferrière [Sun, 4 Mar 2018 20:48:29 +0000 (15:48 -0500)]
nitpm: list packages in alphabetical order

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

6 years agonitpm: rename from picnit
Alexis Laferrière [Sat, 3 Mar 2018 23:27:43 +0000 (18:27 -0500)]
nitpm: rename from picnit

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

6 years agonitpm: keep going if a package is already installed
Alexis Laferrière [Sat, 3 Mar 2018 13:27:03 +0000 (08:27 -0500)]
nitpm: keep going if a package is already installed

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

6 years agonitpm/loader: use NITPM_PATH
Alexis Laferrière [Sat, 3 Mar 2018 13:24:49 +0000 (08:24 -0500)]
nitpm/loader: use NITPM_PATH

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

6 years agoloader: search for the package version declared in package.ini
Alexis Laferrière [Mon, 26 Feb 2018 19:22:18 +0000 (14:22 -0500)]
loader: search for the package version declared in package.ini

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

6 years agonitpm: recursively install imported packages
Alexis Laferrière [Fri, 2 Mar 2018 23:51:57 +0000 (18:51 -0500)]
nitpm: recursively install imported packages

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

6 years agonitpm: support installing a specific package version
Alexis Laferrière [Fri, 2 Mar 2018 23:51:45 +0000 (18:51 -0500)]
nitpm: support installing a specific package version

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

6 years agonitpm: install packages listed in package.ini by default
Alexis Laferrière [Sat, 3 Mar 2018 21:11:04 +0000 (16:11 -0500)]
nitpm: install packages listed in package.ini by default

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

6 years agonitpm: intro service to parse the import line in package.ini
Alexis Laferrière [Mon, 26 Feb 2018 21:19:09 +0000 (16:19 -0500)]
nitpm: intro service to parse the import line in package.ini

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

6 years agoadditional tests for `do catch` structure
Romain Chanoir [Wed, 24 Jan 2018 20:37:21 +0000 (21:37 +0100)]
additional tests for `do catch` structure

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

6 years agoabstract_compiler: Multi threaded and dynamic `do catch` mecanism
Romain Chanoir [Wed, 24 Jan 2018 20:36:46 +0000 (21:36 +0100)]
abstract_compiler: Multi threaded and dynamic `do catch` mecanism

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

6 years agocurl: intro `CurlHTTPRequest::unix_socket_path`
Alexis Laferrière [Sun, 25 Mar 2018 12:49:59 +0000 (08:49 -0400)]
curl: intro `CurlHTTPRequest::unix_socket_path`

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

6 years agoshare: shallow clone bdwgc for Android and iOS
Alexis Laferrière [Sun, 25 Mar 2018 14:06:38 +0000 (10:06 -0400)]
share: shallow clone bdwgc for Android and iOS

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

6 years agocurl: cleanup, remove a typo and a callback from C to Nit
Alexis Laferrière [Sun, 25 Mar 2018 12:48:59 +0000 (08:48 -0400)]
curl: cleanup, remove a typo and a callback from C to Nit

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

6 years agoloader: fix typo in `search_module_by_amodule_name`
Alexis Laferrière [Mon, 26 Feb 2018 19:21:47 +0000 (14:21 -0500)]
loader: fix typo in `search_module_by_amodule_name`

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

6 years agoMerge: Fix regressions in make
Jean Privat [Sat, 3 Mar 2018 21:35:57 +0000 (16:35 -0500)]
Merge: Fix regressions in make

* nitc_0 is rebuild when needed
* tools are spited into two groups to lighten the initial build

Close #2619

Pull-Request: #2620

6 years agomakefile: split tools into 2 groups
Jean Privat [Sat, 3 Mar 2018 19:30:59 +0000 (14:30 -0500)]
makefile: split tools into 2 groups

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

6 years agomakefile: force dependency on all .nit file of src
Jean Privat [Sat, 3 Mar 2018 19:30:13 +0000 (14:30 -0500)]
makefile: force dependency on all .nit file of src

It is a good approximation of tool changes I suppose.

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

6 years agomakefile: nitc is in ../bin/
Jean Privat [Sat, 3 Mar 2018 19:21:45 +0000 (14:21 -0500)]
makefile: nitc is in ../bin/

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

6 years agoMerge: Improve lib/html and nitlight
Jean Privat [Fri, 2 Mar 2018 19:16:56 +0000 (14:16 -0500)]
Merge: Improve lib/html and nitlight

Various improprement in the whole nitlight chain.

Before: nitlight --keep-going -d tmp ../lib/ ../src
* Elapsed (wall clock) time: 28.71
* User time (seconds): 47.25
* System time (seconds): 1.05
* Maximum resident set size (Gbytes): 2.1311

After: nitlight --keep-going -d tmp ../lib/ ../src
* Elapsed (wall clock) time: 22.97 (-20%)
* User time (seconds): 34.42  (-27%)
* System time (seconds): 1.06
* Maximum resident set size (Gbytes): 1.8924 (-11%)

After + new option: nitlight --keep-going -d tmp ../lib/ ../src --no-infobox
* Elapsed (wall clock) time: 10.71 (-63%)
* User time (seconds): 14.49 (-69%)
* System time (seconds): 0.83
* Maximum resident set size (Gbytes): 1.6713 (-20%)

Pull-Request: #2618

6 years agosrc/nitlight: add option --no-infobox
Jean Privat [Fri, 2 Mar 2018 15:40:50 +0000 (10:40 -0500)]
src/nitlight: add option --no-infobox

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

6 years agosrc/htmlight: Do not create the whole infobox unless needed
Jean Privat [Fri, 2 Mar 2018 15:40:21 +0000 (10:40 -0500)]
src/htmlight: Do not create the whole infobox unless needed

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

6 years agolib/core::Text::html_escape: better implementation.
Jean Privat [Fri, 2 Mar 2018 14:53:37 +0000 (09:53 -0500)]
lib/core::Text::html_escape: better implementation.

But it is shortcut anyway by the implementation in Flat anyway :(

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

6 years agolib/html: really implements Writable::write_to
Jean Privat [Fri, 2 Mar 2018 14:51:05 +0000 (09:51 -0500)]
lib/html: really implements Writable::write_to

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

6 years agolib/html: use Array as it improve performances
Jean Privat [Fri, 2 Mar 2018 14:50:17 +0000 (09:50 -0500)]
lib/html: use Array as it improve performances

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