profile
viewpoint
If you are wondering where the data of this site comes from, please visit https://api.github.com/users/trefis/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.
Thomas Refis trefis Taridès Paris

ocaml/dune 1135

A composable build system for OCaml.

ocaml-ppx/ppxlib 150

Base library and tools for ppx rewriters

ocaml/vim-ocaml 76

Vim runtime files for OCaml

let-def/ocaml-recovery-parser 8

A simple fork of OCaml parser with support for error recovery

trefis/Facade 8

A small search UI for mopidy

yurug/coq 4

Coq is a formal proof management system. It provides a formal language to write mathematical definitions, executable algorithms and theorems together with an environment for semi-interactive development of machine-checked proofs.

trefis/deques 1

TRE: a Coq implementation of Tarjan & Kaplan "Real-Time Deques with Catenation"

trefis/existentialism 1

is a humanism

PullRequestReviewEvent

Pull request review commentocaml/ocaml

Normalize type_expr nodes on access

 let rec extract_label_aux hd l = function  let extract_label l ls = extract_label_aux [] l ls -                   (**********************************)-                  (*  Utilities for backtracking    *)+                  (*  Utilities for level-marking   *)                   (**********************************) -let undo_change = function-    Ctype  (ty, desc) -> Private_type_expr.set_desc ty desc-  | Ccompress  (ty, desc, _) -> Private_type_expr.set_desc ty desc-  | Clevel (ty, level) -> Private_type_expr.set_level ty level-  | Cscope (ty, scope) -> Private_type_expr.set_scope ty scope-  | Cname  (r, v) -> r := v-  | Crow   (r, v) -> r := v-  | Ckind  (r, v) -> r := v-  | Ccommu (r, v) -> r := v-  | Cuniv  (r, v) -> r := v--type snapshot = changes ref * int-let last_snapshot = s_ref 0--let log_type ty =-  if ty.id <= !last_snapshot then log_change (Ctype (ty, ty.desc))-let link_type ty ty' =-  log_type ty;-  let desc = ty.desc in-  Private_type_expr.set_desc ty (Tlink ty');-  (* Name is a user-supplied name for this unification variable (obtained-   * through a type annotation for instance). *)-  match desc, ty'.desc with-    Tvar name, Tvar name' ->-      begin match name, name' with-      | Some _, None -> log_type ty'; Private_type_expr.set_desc ty' (Tvar name)-      | None, Some _ -> ()-      | Some _, Some _ ->-          if ty.level < ty'.level then-            (log_type ty'; Private_type_expr.set_desc ty' (Tvar name))-      | None, None   -> ()-      end-  | _ -> ()-  (* ; assert (check_memorized_abbrevs ()) *)-  (*  ; check_expans [] ty' *)-(* TODO: consider eliminating set_type_desc, replacing it with link types *)-let set_type_desc ty td =-  if td != ty.desc then begin-    log_type ty;-    Private_type_expr.set_desc ty td-  end-(* TODO: separate set_level into two specific functions: *)-(*  set_lower_level and set_generic_level *)- let set_level ty level =-  if level <> ty.level then begin-    if ty.id <= !last_snapshot then log_change (Clevel (ty, ty.level));-    Private_type_expr.set_level ty level-  end-(* TODO: introduce a guard and rename it to set_higher_scope? *)-let set_scope ty scope =-  if scope <> ty.scope then begin-    if ty.id <= !last_snapshot then log_change (Cscope (ty, ty.scope));-    Private_type_expr.set_scope ty scope-  end-let set_univar rty ty =-  log_change (Cuniv (rty, !rty)); rty := Some ty-let set_name nm v =-  log_change (Cname (nm, !nm)); nm := v-let set_row_field e v =-  log_change (Crow (e, !e)); e := Some v-let set_kind rk k =-  log_change (Ckind (rk, !rk)); rk := Some k-let set_commu rc c =-  log_change (Ccommu (rc, !rc)); rc := c--let snapshot () =-  let old = !last_snapshot in-  last_snapshot := !new_id;-  (!trail, old)--let rec rev_log accu = function-    Unchanged -> accu-  | Invalid -> assert false-  | Change (ch, next) ->-      let d = !next in-      next := Invalid;-      rev_log (ch::accu) d--let backtrack (changes, old) =-  match !changes with-    Unchanged -> last_snapshot := old-  | Invalid -> failwith "Btype.backtrack"-  | Change _ as change ->-      cleanup_abbrev ();-      let backlog = rev_log [] change in-      List.iter undo_change backlog;-      changes := Unchanged;-      last_snapshot := old;-      trail := changes--let rec rev_compress_log log r =-  match !r with-    Unchanged | Invalid ->-      log-  | Change (Ccompress _, next) ->-      rev_compress_log (r::log) next-  | Change (_, next) ->-      rev_compress_log log next--let undo_compress (changes, _old) =-  match !changes with-    Unchanged-  | Invalid -> ()-  | Change _ ->-      let log = rev_compress_log [] changes in-      List.iter-        (fun r -> match !r with-          Change (Ccompress (ty, desc, d), next) when ty.desc == d ->-            Private_type_expr.set_desc ty desc; r := !next-        | _ -> ())-        log--(* Mark a type. *)--let not_marked_node ty = ty.level >= lowest_level+let not_marked_node ty = get_level ty >= lowest_level     (* type nodes with negative levels are "marked" *) -let flip_mark_node ty = Private_type_expr.set_level ty (pivot_level - ty.level)-let logged_mark_node ty = set_level ty (pivot_level - ty.level)+let flip_mark_node ty =+  let ty = Transient_expr.repr ty in

This looks like a bug. At the very least, it goes against the documentation of the function in the mli, which explicitly states "No [repr]'ing".

garrigue

comment created time in 2 days

PR opened fpottier/pprint

Don't leave unintentional trailing whitespaces

I'm proposing to buffer whitespaces coming from indentation or a use of blank (but only those) until something is printed after them on the line (and drop them otherwise).

The change is observable on the single test available in the repository.

+65 -32

0 comment

1 changed file

pr created time in 4 days

create barnchtrefis/pprint

branch : trailing-ws

created branch time in 4 days

push eventtrefis/okra

Thomas Gazagnaire

commit sha 3da5260f57531d69de5295bed6de845e1faabf9f

better internal structure for reports

view details

Thomas Gazagnaire

commit sha 68586f44da498e5d259a5db428931f5f055f6c06

Add broken example

view details

Thomas Refis

commit sha 4027af826e89162b54c7761d215d898715cc1f18

more minimal diff

view details

Thomas Refis

commit sha afb551f29df59cce7a348627de18daa751851383

Mouais

view details

push time in 4 days

push eventtrefis/okra

Thomas Refis

commit sha eaee8289cff7da378361666083b8cd4fa903e8ea

more minimal diff

view details

push time in 5 days

PR opened samoht/okra

don't interleave string printing with AST printing
+99 -81

0 comment

3 changed files

pr created time in 5 days

push eventtrefis/okra

Thomas Refis

commit sha c9703f457e1f0edfe6d560ea1f0ad31fa470af4c

don't interleave string printing with AST printing

view details

push time in 5 days

fork trefis/okra

OKR report aggregation tool

fork in 5 days

PullRequestReviewEvent

issue commentocaml/merlin

Emacs: highlight matching {begin,struct,sig}…end blocks

Merlin doesn't do any highlighting, you'll want to have a look at https://github.com/ocaml/tuareg I believe.

MisterDA

comment created time in 13 days

pull request commentocaml/ocaml

Fix unused module warning for modules extended with `with module`

I think I agree with you, but I'll let @alainfrisch defend is view (if it hasn't changed).

lpw25

comment created time in 17 days

push eventocaml/ocaml

hhugo

commit sha 7317226e4c1769f753cf9036309f441add5c0ef9

Small refactoring in predef.ml when computing the initial environment (#10597) Rewrite predef with pipes

view details

push time in 17 days

PR merged ocaml/ocaml

Small refactoring in predef.ml when computing the initial environment no-change-entry-needed
  • avoid nested function calls (and its closing parens ))))))))))))))))))))))))))))
  • sort entries alphabetically instead of the current pseudo-random order I don't know whether changing the order of construction requires a bootstrap or not.
  • (bonus) the new layout behaves much better when using formatting tools (ocp-indent, ocamlformat)
+51 -46

0 comment

1 changed file

hhugo

pr closed time in 17 days

PullRequestReviewEvent

pull request commentocaml/ocaml

Fix unused module warning for modules extended with `with module`

Hmmm … perhaps not. I'll think about it more later. But regardless, I think it'd be good to add examples / tests for destructive substitutions too.

lpw25

comment created time in 17 days

pull request commentocaml/ocaml

Fix unused module warning for modules extended with `with module`

The change for "with type" seems to revert a change introduced for #5632

lpw25

comment created time in 17 days

PullRequestReviewEvent

push eventocaml/merlin

Thomas Refis

commit sha 844f98cee0680cf593c2c83431e7453f4feecc6e

layout improvements

view details

push time in a month

pull request commentocaml/merlin

Update quick setup instructions for emacs

Thanks!

ScriptDevil

comment created time in a month

push eventocaml/merlin

Ashok Gautham

commit sha 260899522ac85821ac3e79d52f72a0a48ef9b8cd

Update quick setup instructions for emacs opam config var was deprecated in version 2.1 of the opam CLI. Use opam var instead.

view details

Thomas Refis

commit sha 30e437f65ffca48b962c023b0c9570ad8acd7647

Merge pull request #1380 from ScriptDevil/patch-1 Update quick setup instructions for emacs

view details

push time in a month

PR merged ocaml/merlin

Update quick setup instructions for emacs

opam config var was deprecated in version 2.1 of the opam CLI. Use opam var instead.

+1 -1

0 comment

1 changed file

ScriptDevil

pr closed time in a month

create barnchocaml/merlin

branch : neocamlformat

created branch time in a month

PullRequestReviewEvent

push eventocaml/merlin

Thomas Refis

commit sha 9961a1daab7c58f1b7fcaf5d2cff45c43df30837

type-enclosing: show issue with [@merlin.hide]

view details

Thomas Refis

commit sha 6047d1f6bd600a414040588336b06b84aa923a5d

Mbrowse.select_leaf: correctly ignore merlin.hide

view details

Thomas Refis

commit sha 05e620161d74a2c6d493a99ce396847d1b0f0db2

Changes

view details

push time in 2 months

push eventocaml/merlin

Thomas Refis

commit sha c610cd83391e086ba48c146b698f3e19ff2b32df

Changes

view details

push time in 2 months

PR opened ocaml/merlin

Reviewers
Mbrowse.select_leaf: correctly ignore merlin.hide

@lpw25 reported that type-enclosing would fail when called on x in

type t = { x : asdfasd } [@@deriving equal]

This PR fixes that.

+4 -1

0 comment

1 changed file

pr created time in 2 months

create barnchocaml/merlin

branch : select_leafs_fix

created branch time in 2 months

push eventocaml/ocaml

Nicolás Ojeda Bär

commit sha 80482ed60b9c3459595f3df4e124744a2eb79993

parser.mly: location fixes for type constraints and punning (#10555) - do not use ghost locations for type constraints - better locs for type constr in record expr/patterns - give correct location to punned label in record expr - mark punned label as ghost in object clone expr - mark punned labels locs as ghost

view details

push time in 2 months

PR merged ocaml/ocaml

parser.mly: do not use ghost locations for type constraints

It seems these expressions correspond to actual source code so the locations should not be marked as ghost.

One point I'm not sure about (but is not strictly speaking related to the issue in this PR) is that the location used in the calls to mk{exp,pat}_opt_constraint which is used to build the AST for record expressions and patterns seems a bit too large, as it includes the label as well as the actual type constraint.

Fixes #10554

+1042 -1002

5 comments

5 changed files

nojb

pr closed time in 2 months