profile
viewpoint
If you are wondering where the data of this site comes from, please visit https://api.github.com/users/emillon/events. GitMemory does not store any data, but only uses NGINX to cache data for a period of time. The idea behind GitMemory is simply to give users a better reading experience.

emillon/bulletml 39

Tools to manipulate and interpret shmup patterns

emillon/dmqh 8

2048 clone in ocaml & js_of_ocaml. I'm not even ashamed!

emillon/cookiecutter-jsoo 3

Cookiecutter template for js_of_ocaml projects

emillon/blog.emillon.org 2

My blog, written using Hakyll

emillon/discotex 2

Set of tex macros to make your documents more disco.

emillon/dotxmonad 2

My own XMonad configuration

emillon/bb2mdir 1

A web scraper for various bulletin board systems

emillon/dotvim 1

My .vimrc & .vim/

emillon/dotzsh 1

Configuration for the incredible Z shell

push eventemillon/blog.emillon.org

Etienne Millon

commit sha 78d55884afa58c001cccf52e2ac03e9007ccdac0

Create CNAME

view details

push time in 2 days

delete branch emillon/blog.emillon.org

delete branch : update-action

delete time in 2 days

push eventemillon/blog.emillon.org

Etienne Millon

commit sha 95ca89ce1cba77b7e72d3237dbbc46a4381246fa

Update action

view details

Etienne Millon

commit sha c41206bf0027d506d181ee4e40ab40fdb2781fe5

Deploy to GHP

view details

Etienne Millon

commit sha dc5da20c86755c197f27900d972122d29753e828

Merge pull request #16 from emillon/update-action Update action

view details

push time in 2 days

push eventemillon/blog.emillon.org

Etienne Millon

commit sha 95ca89ce1cba77b7e72d3237dbbc46a4381246fa

Update action

view details

Etienne Millon

commit sha c41206bf0027d506d181ee4e40ab40fdb2781fe5

Deploy to GHP

view details

push time in 2 days

push eventemillon/blog.emillon.org

Etienne Millon

commit sha 177e771faaa2f80f8f60fef5b44642e4195845dc

Deploy to GHP

view details

push time in 2 days

push eventemillon/blog.emillon.org

Etienne Millon

commit sha 2b49d2ae87f1288055771812a5082c7d3c4f525b

Update action

view details

push time in 2 days

push eventemillon/blog.emillon.org

Etienne Millon

commit sha 505ce28db0d999d21c016afe6acd1677604a4439

Update action

view details

push time in 2 days

PR opened emillon/blog.emillon.org

Update action
+2 -11

0 comment

1 changed file

pr created time in 2 days

create barnchemillon/blog.emillon.org

branch : update-action

created branch time in 2 days

Pull request review commentMagnusS/okra

time entries should be a multiple of 0.5

 let is_time_block = function   | _ -> false  let time_block_is_sane s =-  let regexp = Str.regexp "^@[a-zA-Z0-9-]+[ ]+([0-9.]+ day[s]?)$" in+  let regexp =+    Str.regexp+      "^@[a-zA-Z0-9-]+[ ]+(\\(.5\\|[0-9]+\\(.\\(0\\|5\\)\\)?\\) day[s]?)$"

I'd say it's time to switch to Re if you want to validate that using a regexp.

Not sure we need to special case .5 days - if we disallow that short form this keeps a simpler [0-9]+(\.[05])? days? for the last part.

An alternative with less regexp work is to move that check to when the Time value is constructed: instead of passing the raw string, check that it represents a valid amount of days. (I'm not familiar with that code but it must be converted to a number later)

patricoferris

comment created time in 3 days

PullRequestReviewEvent
PullRequestReviewEvent

pull request commentocamllabs/opam-monorepo

Make OpamSwitchState load files lazily (makes lock 4x faster)

I couldn't reproduce this after upgrading to opam 2.1 but I think that's because my opam2.1 setup used a different OPAMROOT and this setting was ignored.

emillon

comment created time in 3 days

Pull request review commentocaml-ppx/ocamlformat

Use current-bench to benchmark 'format' and 'numeric' features

+open Bechamel+open Toolkit+open Ocamlformat_lib++type range = int * int++type input =+  { name: string+  ; input_name: string+  ; kind: Syntax.t+  ; source: string+  ; conf: Conf.t+  ; action: [`Format | `Numeric of range] }++let source_from_file f =+  Stdio.In_channel.with_file f ~f:Stdio.In_channel.input_all++let inputs =+  let source_ml = source_from_file "test/passing/tests/source.ml" in

also is you read that file at runtime make sure to register it as a dependency otherwise the benchmark won't get reexecuted and things like dune clean; dune build @runbench won't work

gpetiot

comment created time in 3 days

PullRequestReviewEvent

Pull request review commentocaml-ppx/ocamlformat

Use current-bench to benchmark 'format' and 'numeric' features

+open Bechamel+open Toolkit+open Ocamlformat_lib++type range = int * int++type input =+  { name: string+  ; input_name: string+  ; kind: Syntax.t+  ; source: string+  ; conf: Conf.t+  ; action: [`Format | `Numeric of range] }++let source_from_file f =+  Stdio.In_channel.with_file f ~f:Stdio.In_channel.input_all++let inputs =+  let source_ml = source_from_file "test/passing/tests/source.ml" in

this means that your benchmark will move everytime you add things to that file. that can make it difficult to track what's going on across versions.

gpetiot

comment created time in 3 days

PullRequestReviewEvent

Pull request review commentocaml-ppx/ocamlformat

Use current-bench to benchmark 'format' and 'numeric' features

+open Bechamel+open Toolkit+open Ocamlformat_lib++type range = int * int++type input =+  { name: string+  ; input_name: string+  ; kind: Syntax.t+  ; source: string+  ; conf: Conf.t+  ; action: [`Format | `Numeric of range] }++let source_from_file f =+  Stdio.In_channel.with_file f ~f:Stdio.In_channel.input_all

that's In_channel.read_file

gpetiot

comment created time in 3 days

PullRequestReviewEvent

Pull request review commentocaml-ppx/ocamlformat

Use current-bench to benchmark 'format' and 'numeric' features

+(executable+ (name bench)+ (public_name bench)+ (package ocamlformat-bench)+ (libraries bechamel bechamel-js ocamlformat_lib stdio))++(rule+ (alias runbench)+ (action+  (run ./bench.exe)))++(rule+ (alias runtest)+ (package ocamlformat-bench)+ (deps bench.exe)+ (action (progn)))

I think you can remove the action. That will just record bench.exe as a dependency to @runtest.

An alternative that I'm using sometimes is to check for argv in the executable, do nothing if there are no arguments, and run the bench otherwise. That way you can use a (test) stanza (running dune runtest will build the test but do nothing) and a runbench action that calls it with an argument.

gpetiot

comment created time in 3 days

PullRequestReviewEvent

delete branch emillon/dune

delete branch : which-command-v

delete time in 3 days

push eventocaml/dune

Etienne Millon

commit sha 317e653ab1c748f1e6572c36e777274eb5521be4

Use command -v instead of which (#4935) In the latest Debian release, this prints a warning that makes the expect test fail. It recommends using `command -v` which is the portable way to do so. Signed-off-by: Etienne Millon <me@emillon.org>

view details

push time in 3 days

PR merged ocaml/dune

Use command -v instead of which

In the latest Debian release, this prints a warning that makes the expect test fail. It recommends using command -v which is the portable way to do so.

+1 -1

0 comment

1 changed file

emillon

pr closed time in 3 days

issue openedocaml/dune

test stanza with C stubs raises an exception

Hi!

(the body of this issue is a cram test)

I'm noticed that trying to attach C stubs to a test raises an exception:

This is an executable with C stubs attached:

$ touch e.ml stubs.c
$ cat > dune << EOF
> (executable
>  (name e)
>  (modes exe)
>  (foreign_stubs
>   (language c)
>   (names stubs)))
> EOF

The build works:

$ dune build

But with a test stanza, it crashes:

$ sed -e s/executable/test/ -i dune

$ dune build
Internal error, please report upstream including the contents of _build/log.
Description:
  ("Map.find_exn: failed to find key", { key = "e"; keys = [] })
Raised at Stdune__Code_error.raise in file
  "otherlibs/stdune-unstable/code_error.ml", line 11, characters 30-62
Called from Fiber.O.(>>|).(fun) in file "src/fiber/fiber.ml", line 288,
  characters 36-41
Called from Fiber.Execution_context.apply in file "src/fiber/fiber.ml", line
  182, characters 9-14
Re-raised at Stdune__Exn.raise_with_backtrace in file
  "otherlibs/stdune-unstable/exn.ml", line 36, characters 27-56
Called from Fiber.Execution_context.run_jobs in file "src/fiber/fiber.ml",
  line 204, characters 8-13
Re-raised at Stdune__Exn.raise_with_backtrace in file
  "otherlibs/stdune-unstable/exn.ml", line 36, characters 27-56
Called from Fiber.Execution_context.run_jobs in file "src/fiber/fiber.ml",
  line 204, characters 8-13
Re-raised at Stdune__Exn.raise_with_backtrace in file
  "otherlibs/stdune-unstable/exn.ml", line 36, characters 27-56
Called from Fiber.Execution_context.run_jobs in file "src/fiber/fiber.ml",
  line 204, characters 8-13
-> required by ("load-dir", In_build_dir "default")
-> required by ("build-alias", { dir = "default"; name = "default" })

I must not crash.  Uncertainty is the mind-killer. Exceptions are the
little-death that brings total obliteration.  I will fully express my cases. 
Execution will pass over me and through me.  And when it has gone past, I
will unwind the stack along its path.  Where the cases are handled there will
be nothing.  Only I will remain.
[1]

created time in 4 days

create barnchemillon/dune

branch : which-command-v

created branch time in 4 days

PR opened ocaml/dune

Use command -v instead of which

In the latest Debian release, this prints a warning that makes the expect test fail. It recommends using command -v which is the portable way to do so.

+1 -1

0 comment

1 changed file

pr created time in 4 days

pull request commentrealworldocaml/mdx

Do not use patch_env anymore

Technically the changelog entry is unnecessary anymore since no user-visible behaviour should change anymore

Note that removing patch_env has visible consequences on all OCaml versions. But this workaround is not necessary anymore with the bumped ocaml dependency, so we can restore the vanilla output.

emillon

comment created time in 4 days

PullRequestReviewEvent