profile
viewpoint
Ty Overby TyOverby New York City, Ny, USA tyoverby.com compilers are cool

glium/glium 2104

Safe OpenGL wrapper for the Rust language.

ocaml/dune 943

A composable build system for OCaml.

servo/bincode 831

A binary encoder / decoder implementation in Rust.

ocsigen/js_of_ocaml 574

Compiler from OCaml to Javascript.

llogiq/flame 513

An intrusive flamegraph profiling tool for rust.

TyOverby/ares 9

A Lisp made for easy integration with Rust.

ChrisLundquist/CS143-Project 5

A 3d space shooter

TyOverby/.vim 4

A basic (but feature complete) vim configuration.

meyerkizner/gwt-idb 2

IndexedDB for GWT

push eventTyOverby/S

Ty Overby

commit sha c8380bbe878bed3eed2ba6b7eb9f7aa45f64a079

_

view details

push time in 8 minutes

push eventTyOverby/S

Ty Overby

commit sha c304a382f9e7b304708c2e45f926dabeb6ba1b78

_

view details

push time in 2 hours

issue commentjanestreet/incr_dom

ts_gui example build error

Closing due to how old the issue is. If you still have problems getting it installed, please feel free to re-open or create a new issue.

dboris

comment created time in 3 days

issue closedjanestreet/incr_dom

ts_gui example build error

$ dune build example/ts_gui/{main.bc.js,index.html}
File "src/arg_spec.ml", line 55, characters 15-21: Assertion failed
Backtrace:
Raised at file "src/dep_path.ml" (inlined), line 45, characters 24-55
Called from file "src/build_system.ml", line 186, characters 6-48
Called from file "src/fiber/fiber.ml", line 243, characters 6-18
Error: Conflict between the following libraries:
- "incr_dom" in _build/default/src
- "incr_dom" in /Users/boris/.opam/ocsigen/lib/incr_dom
    -> required by library "incr_dom_widgets" in /Users/boris/.opam/ocsigen/lib/incr_dom_widgets
This is not allowed.

Here are the lib versions I have installed:

incr_dom                            v0.11.0  A library for building dynamic weba
incr_dom_widgets                    v0.11.0  A library of libraries and widgets 
incr_map                            v0.11.0  Helpers for incremental operations 
incr_select                         v0.11.0  Handling of large set of incrementa
incremental                         v0.11.0  Library for incremental computation
incremental_kernel                  v0.11.1  Library for incremental computation

closed time in 3 days

dboris

issue commentjanestreet/bonsai

How to build rpc_chat example?

I'm closing this because we currently don't have any plans for open-sourcing the server-side code.

dboris

comment created time in 3 days

issue closedjanestreet/bonsai

How to build rpc_chat example?

Trying to build the rpc_chat client:

File "web/examples/rpc_chat/client/dune", line 2, characters 25-38:
2 |  (libraries async_kernel async_js_jane core_kernel bonsai_web
                             ^^^^^^^^^^^^^
Error: Library "async_js_jane" not found.
Hint: try: dune external-lib-deps --missing ./main.bc.js

phantom:client boris$ dune external-lib-deps --missing ./main.bc.js
Error: The following libraries are missing in the default context:
- async_js_jane
- vdom_input_widgets
Hint: try: opam install async_js_jane vdom_input_widgets

phantom:client boris$ opam install async_js_jane vdom_input_widgets
[ERROR] No package named async_js_jane found.
[ERROR] No package named vdom_input_widgets found.

What package do I need to install?

closed time in 3 days

dboris

push eventTyOverby/S

Ty Overby

commit sha 631e6b76384f8b4897601723d7e8c5a063afa439

_

view details

push time in 7 days

push eventTyOverby/S

Ty Overby

commit sha 1087c2587bc45f27b2a67459a262b2131856de86

_

view details

push time in 7 days

push eventTyOverby/S

Ty Overby

commit sha c94c4854273332b15f489f54e527def4f97618c3

_

view details

push time in 7 days

push eventTyOverby/S

Ty Overby

commit sha 59060d262d65162d4df5c6d520c51cfddeda8b22

_

view details

push time in 7 days

push eventTyOverby/S

Ty Overby

commit sha 1072233acc9e4c272b4cb3020805aef6d363caf0

_

view details

push time in 7 days

push eventTyOverby/S

Ty Overby

commit sha a1402575ce3ad620210e12b96adfed62dbe7b4b9

_

view details

push time in 7 days

push eventTyOverby/S

Ty Overby

commit sha 9efbd6037a8d29ba467aac84d2880a95e154a206

_

view details

Ty Overby

commit sha 850e1d6a69fed1f0342364e8471b27dac14e9728

_

view details

push time in 7 days

push eventTyOverby/S

Ty Overby

commit sha e9a1881d0eeadfcbec2541deb609d588595e952c

_

view details

push time in 7 days

issue openednotable/notable

OCaml language support

Please add syntax highlighting for the OCaml language.

created time in 18 days

issue commentjanestreet/incr_dom

Building examples from README.md fails

Could you follow these instructions and see if they work? https://dune.readthedocs.io/en/stable/jsoo.html

sj4nes

comment created time in 18 days

startedmkeeter/straylight

started time in 19 days

push eventTyOverby/S

Ty Overby

commit sha 6596e361d3c28940bf829093553fa6a57d800b83

_

view details

push time in 20 days

startedcurv3d/curv

started time in 20 days

push eventTyOverby/S

Ty Overby

commit sha b1adca606e8d2cbf175d06ace583a884d0dc9c4e

_

view details

push time in 21 days

create barnchTyOverby/S

branch : master

created branch time in 21 days

created repositoryTyOverby/S

created time in 21 days

startedmkeeter/mpr

started time in 22 days

push eventllogiq/flame

Zombie110year

commit sha 205b5ec7649845946df47638df6f73ae86955973

HTML template add utf-8 meta tag (#52) maybe someone will use Unicode character such as CJK words as flame comment.

view details

push time in 23 days

PR merged llogiq/flame

HTML template add utf-8 meta tag

maybe someone will use Unicode character such as CJK words as flame comment.

+1 -0

0 comment

1 changed file

zombie110year

pr closed time in 23 days

PR opened mkeeter/erizo

mention the cmake dependency
+9 -1

0 comment

1 changed file

pr created time in 23 days

push eventTyOverby/erizo

Ty Overby

commit sha 44cd709ef3bd92c16785d994ba9874cfdee0a3b2

mention the cmake dependency

view details

push time in 23 days

startedlibfive/libfive

started time in 23 days

push eventTyOverby/bonsai

Ty Overby

commit sha 76e18c78be52aa784a14fed146cf261541ee2e7b

_

view details

push time in a month

push eventTyOverby/bonsai

Ty Overby

commit sha 2ad52caa044c6baaba06dab689be1df7875ce0da

_

view details

push time in a month

push eventTyOverby/bonsai

Ty Overby

commit sha 65b84cf1a42e1247d2e789e925df46ca3b119a32

_

view details

push time in a month

push eventTyOverby/bonsai

Ty Overby

commit sha 1db0bdf4b16a8948944725163841c5b54f1f0466

_

view details

push time in a month

push eventTyOverby/bonsai

Ty Overby

commit sha 593ae26cfd925f26ca7dfd13714400d7812763c0

_

view details

push time in a month

Pull request review commentocsigen/js_of_ocaml

Eliminate allocation of dummy function

+(* Js_of_ocaml compiler+ * http://www.ocsigen.org/js_of_ocaml/+ * Copyright (C) 2020 Hugo Heuzard+ *+ * This program is free software; you can redistribute it and/or modify+ * it under the terms of the GNU Lesser General Public License as published by+ * the Free Software Foundation, with linking exception;+ * either version 2.1 of the License, or (at your option) any later version.+ *+ * This program is distributed in the hope that it will be useful,+ * but WITHOUT ANY WARRANTY; without even the implied warranty of+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the+ * GNU Lesser General Public License for more details.+ *+ * You should have received a copy of the GNU Lesser General Public License+ * along with this program; if not, write to the Free Software+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.+ *)++open Util++module M = struct+  type state = int++  type hash_value = int++  let get_hash_value x = x++  let create () = 42++  let fold_int state i = state + i++  let hash_fold_string state s = state + String.length s++  let hash_fold_list fold state l = List.fold_left fold state l++  type t =+    | Atom of string+    | List of t list++  let rec (hash_fold_t : state -> t -> state) =+    (fun hsv arg ->+       match arg with+       | Atom _a0 ->+           let hsv = fold_int hsv 0 in+           let hsv = hsv in+           hash_fold_string hsv _a0+       | List _a0 ->+           let hsv = fold_int hsv 1 in+           let hsv = hsv in+           hash_fold_list hash_fold_t hsv _a0+      : state -> t -> state)++  and (hash : t -> hash_value) =+    let func arg =+      get_hash_value+        (let hsv = create () in+         hash_fold_t hsv arg)+    in+    fun x -> func x+end++let%expect_test _ =+  let program =+    compile_and_parse+      {|+type state = int+type hash_value = int+let get_hash_value x = x+let create () = 42+let fold_int state i = state + i+let hash_fold_string state s = state + String.length s+let hash_fold_list fold state l = List.fold_left fold state l++let myfun x =+  let module M = struct+    type t =+      | Atom of string+      | List of t list++    let rec (hash_fold_t : state -> t -> state) =+      (fun hsv ->+         fun arg ->+           match arg with+           | Atom _a0 ->+             let hsv = fold_int hsv 0 in+             let hsv = hsv in hash_fold_string hsv _a0+           | List _a0 ->+             let hsv = fold_int hsv 1 in+             let hsv = hsv in hash_fold_list hash_fold_t hsv _a0 : state -> t -> state)+    and (hash : t -> hash_value) =

Could you add a test with functions where none of them get inlined?

hhugo

comment created time in a month

Pull request review commentocsigen/js_of_ocaml

Compiler: rewrite the js parser using menhir incremental api

 open! Stdlib  module Lexer = struct-  type t = Js_token.t list+  type t = Lexing.lexbuf -  let rec until_non_comment acc = function-    | [] -> acc, None-    | x :: xs ->-        if Js_token.is_comment x-        then until_non_comment (x :: acc) xs-        else acc, Some (x, xs)--  let adjust_tokens ?(keep_comment = true) l =-    match until_non_comment [] l with-    | acc, None when keep_comment -> List.rev acc-    | _, None -> []-    | past, Some (first, rest) ->-        let open Js_token in-        let f prev x acc =-          match prev, x with-          (* restricted productions *)-          (* 7.9.1 - 3 *)-          (* When, as the program is parsed from left to right, a token is encountered *)-          (* that is allowed by some production of the grammar, but the production *)-          (* is a restricted production and the token would be the first token for a *)-          (* terminal or nonterminal immediately following the annotation [no LineTerminator here] *)-          (* within the restricted production (and therefore such a token is called a restricted token), *)-          (* and the restricted token is separated from the previous token by at least *)-          (* one LineTerminator, then a semicolon is automatically inserted before the *)-          (* restricted token. *)-          | ( (T_RETURN _ | T_CONTINUE _ | T_BREAK _ | T_THROW _)-            , (T_SEMICOLON _ | T_VIRTUAL_SEMICOLON _) ) ->-              x :: acc-          | (T_RETURN _ | T_CONTINUE _ | T_BREAK _ | T_THROW _), _ ->-              let x' = Js_token.info x in-              let prev' = Js_token.info prev in-              if prev'.Parse_info.line <> x'.Parse_info.line-              then x :: Js_token.T_VIRTUAL_SEMICOLON x' :: acc-              else x :: acc-          | _, _ -> x :: acc-        in-        let rec aux prev acc = function-          | [] -> List.rev acc-          | e :: l ->-              let nprev, nacc =-                if Js_token.is_comment e-                then if keep_comment then prev, e :: acc else prev, acc-                else e, f prev e acc-              in-              aux nprev nacc l-        in-        let past = if keep_comment then past else [] in-        aux first (first :: past) rest--  let lexer_aux ?(rm_comment = true) lexbuf =-    let rec loop lexbuf prev acc =-      let t = Js_lexer.main prev lexbuf in-      match t with-      | Js_token.EOF _ -> List.rev acc-      | _ ->-          let prev = if Js_token.is_comment t then prev else Some t in-          loop lexbuf prev (t :: acc)-    in-    let toks = loop lexbuf None [] in-    (* hack: adjust tokens *)-    adjust_tokens ~keep_comment:(not rm_comment) toks--  let of_file ?rm_comment file : t =+  let of_file file : t =     let ic = open_in file in     let lexbuf = Lexing.from_channel ic in-    let lexbuf =-      { lexbuf with lex_curr_p = { lexbuf.lex_curr_p with pos_fname = file } }-    in-    let lexer = lexer_aux ?rm_comment lexbuf in-    close_in ic;-    lexer--  let of_channel ?rm_comment ci : t =-    let lexbuf = Lexing.from_channel ci in-    lexer_aux ?rm_comment lexbuf--  let of_lexbuf ?rm_comment lexbuf : t = lexer_aux ?rm_comment lexbuf+    { lexbuf with lex_curr_p = { lexbuf.lex_curr_p with pos_fname = file } } -  let fold ~f ~init l = List.fold_left ~f ~init l+  let of_channel ci : t = Lexing.from_channel ci -  let of_list l = adjust_tokens l+  let of_lexbuf lexbuf : t = lexbuf end  exception Parsing_error of Parse_info.t -let parse_aux the_parser toks =-  let state = ref (Js_token.TUnknown ("", Parse_info.zero) :: toks) in-  let lexer_fun _lb =-    match !state with-    | [] -> assert false-    | [ last ] ->-        let info = Js_token.info last in-        Js_token.EOF info-    | _prev :: (curr :: _ as rest) ->-        state := rest;-        curr+let parse_aux the_parser lexbuf =+  let init = the_parser lexbuf.Lexing.lex_start_p in+  let reset lexbuf =+    lexbuf.Lexing.lex_curr_p <- lexbuf.Lexing.lex_start_p;+    lexbuf.Lexing.lex_curr_pos <- lexbuf.Lexing.lex_start_pos+  in+  let fol prev (tok : Js_token.t) =+    match prev with+    | [] -> true+    | p :: _ -> (Js_token.info p).Parse_info.line <> (Js_token.info tok).Parse_info.line+  in+  let rec loop_error prev checkpoint =+    let module I = Js_parser.MenhirInterpreter in+    match checkpoint with+    | I.InputNeeded _env ->+        let checkpoint =+          I.offer+            checkpoint+            ( Js_token.EOF Parse_info.zero+            , lexbuf.Lexing.lex_curr_p+            , lexbuf.Lexing.lex_curr_p )+        in+        loop_error prev checkpoint+    | I.Shifting _ | I.AboutToReduce _ -> loop_error prev (I.resume checkpoint)+    | I.Accepted _ -> assert false+    | I.Rejected -> `Error prev+    | I.HandlingError _ -> loop_error prev (I.resume checkpoint)+  in+  let rec loop prev comments (inputneeded, checkpoint) =+    let module I = Js_parser.MenhirInterpreter in+    match checkpoint with+    | I.InputNeeded _env ->+        let inputneeded = checkpoint in+        let token, comments =+          match prev with+          | (Js_token.EOF _ as prev) :: _ -> prev, comments+          | _ ->+              let rec read_one comments lexbuf =+                match Js_lexer.main lexbuf with+                | (TCommentLineDirective _ | TComment _) as t ->+                    read_one (t :: comments) lexbuf+                | t -> t, comments+              in+              let t, comments = read_one comments lexbuf in+              let t =+                match prev, t with+                (* restricted productions+                 * 7.9.1 - 3+                 * When, as the program is parsed from left to right, a token is encountered+                 * that is allowed by some production of the grammar, but the production+                 * is a restricted production and the token would be the first token for a+                 * terminal or nonterminal immediately following the annotation [no LineTerminator here]+                 * within the restricted production (and therefore such a token is called a restricted token),+                 * and the restricted token is separated from the previous token by at least+                 * one LineTerminator, then a semicolon is automatically inserted before the+                 * restricted token. *)+                | ( (T_RETURN _ | T_CONTINUE _ | T_BREAK _ | T_THROW _) :: _+                  , ((T_SEMICOLON _ | T_VIRTUAL_SEMICOLON _) as t) ) ->+                    t+                | (T_RETURN _ | T_CONTINUE _ | T_BREAK _ | T_THROW _) :: _, t+                  when fol prev t ->+                    reset lexbuf;+                    T_VIRTUAL_SEMICOLON Parse_info.zero+                (* The practical effect of these restricted productions is as follows:+                 * When a ++ or -- token is encountered where the parser would treat it+                 * as a postfix operator, and at least one LineTerminator occurred between+                 * the preceding token and the ++ or -- token, then a semicolon is automatically+                 * inserted before the ++ or -- token. *)+                | _, (T_DECR cpi as tok) when not (fol prev tok) -> Js_token.T_DECR_NB cpi+                | _, (T_INCR cpi as tok) when not (fol prev tok) -> Js_token.T_INCR_NB cpi+                | _, ((T_DIV _ | T_DIV_ASSIGN _) as tok) ->+                    if I.acceptable checkpoint tok lexbuf.Lexing.lex_start_p

What does this condition mean?

hhugo

comment created time in a month

Pull request review commentocsigen/js_of_ocaml

Eliminate allocation of dummy function

 function caml_CamlinternalMod_init_mod(loc,shape) { //Provides: caml_CamlinternalMod_update_mod //Requires: caml_update_dummy function caml_CamlinternalMod_update_mod(shape,real,x) {-  if(typeof shape === "number")-    switch(shape){-    case 0://function-    case 1://lazy-    case 2://class-    default:-      caml_update_dummy(real,x);-    }-  else-    switch(shape[0]){-    case 0://module-      for(var i=1;i<shape[1].length;i++)-        caml_CamlinternalMod_update_mod(shape[1][i],real[i],x[i]);-      break;-      //case 1://Value-    default:-    };-  return 0+  function loop (shape,real,x,parent,i) {+    if(typeof shape === "number")+      switch(shape){+      case 0://function+        parent[i]=x;+        break+      case 1://lazy+      case 2://class+      default:+        caml_update_dummy(real,x);+      }+    else+      switch(shape[0]){+      case 0://module+        for(var i=1;i<shape[1].length;i++)+          loop(shape[1][i],real[i],x[i],real,i);+        break;+        //case 1://Value+      default:+      };+  }+  loop(shape,real,x,undefined,undefined);

Why is there a loop now?

hhugo

comment created time in a month

Pull request review commentocsigen/js_of_ocaml

Eliminate allocation of dummy function

+(* Js_of_ocaml compiler+ * http://www.ocsigen.org/js_of_ocaml/+ * Copyright (C) 2020 Hugo Heuzard+ *+ * This program is free software; you can redistribute it and/or modify+ * it under the terms of the GNU Lesser General Public License as published by+ * the Free Software Foundation, with linking exception;+ * either version 2.1 of the License, or (at your option) any later version.+ *+ * This program is distributed in the hope that it will be useful,+ * but WITHOUT ANY WARRANTY; without even the implied warranty of+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the+ * GNU Lesser General Public License for more details.+ *+ * You should have received a copy of the GNU Lesser General Public License+ * along with this program; if not, write to the Free Software+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.+ *)++open Util++module M = struct+  type state = int++  type hash_value = int++  let get_hash_value x = x++  let create () = 42++  let fold_int state i = state + i++  let hash_fold_string state s = state + String.length s++  let hash_fold_list fold state l = List.fold_left fold state l++  type t =+    | Atom of string+    | List of t list++  let rec (hash_fold_t : state -> t -> state) =+    (fun hsv arg ->+       match arg with+       | Atom _a0 ->+           let hsv = fold_int hsv 0 in+           let hsv = hsv in+           hash_fold_string hsv _a0+       | List _a0 ->+           let hsv = fold_int hsv 1 in+           let hsv = hsv in+           hash_fold_list hash_fold_t hsv _a0+      : state -> t -> state)++  and (hash : t -> hash_value) =+    let func arg =+      get_hash_value+        (let hsv = create () in+         hash_fold_t hsv arg)+    in+    fun x -> func x+end++let%expect_test _ =+  let program =+    compile_and_parse+      {|+type state = int+type hash_value = int+let get_hash_value x = x+let create () = 42+let fold_int state i = state + i+let hash_fold_string state s = state + String.length s+let hash_fold_list fold state l = List.fold_left fold state l++let myfun x =+  let module M = struct+    type t =+      | Atom of string+      | List of t list++    let rec (hash_fold_t : state -> t -> state) =+      (fun hsv ->+         fun arg ->+           match arg with+           | Atom _a0 ->+             let hsv = fold_int hsv 0 in+             let hsv = hsv in hash_fold_string hsv _a0+           | List _a0 ->+             let hsv = fold_int hsv 1 in+             let hsv = hsv in hash_fold_list hash_fold_t hsv _a0 : state -> t -> state)+    and (hash : t -> hash_value) =

I'm not seeing this function in the output. Did it get inlined?

hhugo

comment created time in a month

pull request commentocsigen/js_of_ocaml

Compiler: rewrite the js parser using menhir incremental api

Is the goal with this PR to allow for better regexp parsing?

hhugo

comment created time in a month

Pull request review commentocsigen/js_of_ocaml

Compiler: rewrite the js parser using menhir incremental api

 let update_loc lexbuf ?file ~line ~absolute chars =     pos_bol = pos.pos_cnum - chars;                               } -let tokinfo prev lexbuf =

Why did tokinfo require 'prev' in the past, but no longer needs it?

hhugo

comment created time in a month

push eventTyOverby/nvim

Ty Overby

commit sha ddb11804f7401a0724e58eaaa60afd7ae4de69b6

added more fzf bindings

view details

push time in a month

push eventTyOverby/nvim

Ty Overby

commit sha cca2d539febfb56987e66ab25604089dc5824c9e

_

view details

Ty Overby

commit sha c6bf11df8aebc16175a5af475b67ee0c880a1cc5

Merge branch 'master' of github.com:TyOverby/nvim

view details

push time in a month

issue openedneovim/neovim

Segfault in bufhl_clear_line

  • nvim --version:
NVIM v0.4.2
Build type: RelWithDebInfo
LuaJIT 2.0.4
Compilation: /usr/lib64/ccache/cc -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches  -m64 -mtu
ne=generic -Wp,-U_FORTIFY_SOURCE -Wp,-D_FORTIFY_SOURCE=1 -O2 -g -DMIN_LOG_LEVEL=3 -Og -g -Wall -Wextra -pedantic -Wno-unused-parameter -Wstrict-prototypes -std=gnu99 -Wshado
w -Wconversion -Wmissing-prototypes -Wvla -fstack-protector-strong -fdiagnostics-color=auto -DINCLUDE_GENERATED_DECLARATIONS -D_GNU_SOURCE -DNVIM_MSGPACK_HAS_FLOAT32 -DNVIM_
UNIBI_HAS_VAR_FROM -I/usr/local/home/msmith/rpmbuild/BUILD/neovim-0.4.2/build/config -I/usr/local/home/msmith/rpmbuild/BUILD/neovim-0.4.2/src -I/usr/include -I/usr/include/l
ua-5.1 -I/usr/local/home/msmith/rpmbuild/BUILD/neovim-0.4.2/build/src/nvim/auto -I/usr/local/home/msmith/rpmbuild/BUILD/neovim-0.4.2/build/include

Features: +acl +iconv +tui
  • vim -u DEFAULTS (version: ): The segfault is very rare, I don't know how to reproduce it

Very rarely, when I save a file, neovim segfaults. I finally managed to get a segfault with gdb attached, and captured the following backtrace:

 #0  0x000000000045abdd in bufhl_clear_line ()
 #1  0x0000000000462837 in bufhl_clear_line_range ()
 #2  0x000000000043fab8 in nvim_buf_clear_namespace ()
 #3  0x0000000000442689 in handle_nvim_buf_clear_namespace ()
 #4  0x000000000049a9ec in api_wrapper ()
 #5  0x00000000004a4004 in call_func ()
 #6  0x00000000004a76e7 in get_func_tv ()
 #7  0x00000000004acd2d in ex_call ()
 #8  0x00000000004e1800 in do_one_cmd ()
 #9  0x00000000004e21d6 in do_cmdline ()
 #10 0x00000000004a3901 in call_user_func ()
 #11 0x00000000004a3fa8 in call_func ()
 #12 0x00000000004a76e7 in get_func_tv ()
 #13 0x00000000004acd2d in ex_call ()
 #14 0x00000000004e1800 in do_one_cmd ()
 #15 0x00000000004e21d6 in do_cmdline ()
 #16 0x00000000004a3901 in call_user_func ()
 #17 0x00000000004a3fa8 in call_func ()
 #18 0x00000000004a76e7 in get_func_tv ()
 #19 0x00000000004acd2d in ex_call ()
 #20 0x00000000004e1800 in do_one_cmd ()
 #21 0x00000000004e21d6 in do_cmdline ()
 #22 0x00000000004a3901 in call_user_func ()
 #23 0x00000000004a3fa8 in call_func ()
 #24 0x00000000004a76e7 in get_func_tv ()
 #25 0x00000000004acd2d in ex_call ()
 #26 0x00000000004e1800 in do_one_cmd ()
 #27 0x00000000004e21d6 in do_cmdline ()
 #28 0x00000000004f7e10 in apply_autocmds_group ()
 #29 0x00000000004f8498 in apply_autocmds ()
 #30 0x0000000000622f95 in win_enter_ext ()
 #31 0x0000000000623935 in win_enter ()
 #32 0x0000000000623baa in win_goto ()
 #33 0x0000000000623c60 in win_goto_hor ()
 #34 0x00000000006262bf in do_window ()
 #35 0x000000000054ebde in nv_window ()
 #36 0x0000000000557a0a in normal_execute ()
 #37 0x00000000005e3966 in state_enter ()
 #38 0x0000000000550271 in normal_enter ()
 #39 0x0000000000526be5 in main ()

With the disassembly:

    0x000000000045abb9 <+0>:     push   %rbx
    0x000000000045abba <+1>:     mov    %rdi,%rbx
    0x000000000045abbd <+4>:     mov    0x8(%rdi),%r10
    0x000000000045abc1 <+8>:     test   %esi,%esi
    0x000000000045abc3 <+10>:    jns    0x45ac07 <bufhl_clear_line+78>
    0x000000000045abc5 <+12>:    movq   $0x0,0x8(%rdi)
    0x000000000045abcd <+20>:    jmp    0x45ac1b <bufhl_clear_line+98>
    0x000000000045abcf <+22>:    mov    0x18(%rbx),%r8
    0x000000000045abd3 <+26>:    mov    %rcx,%rax
    0x000000000045abd6 <+29>:    shl    $0x4,%rax
    0x000000000045abda <+33>:    add    %r8,%rax
 => 0x000000000045abdd <+36>:    cmp    %esi,(%rax)
    0x000000000045abdf <+38>:    je     0x45ac01 <bufhl_clear_line+72>
    0x000000000045abe1 <+40>:    cmp    %rdi,%rcx
    0x000000000045abe4 <+43>:    je     0x45abfd <bufhl_clear_line+68>
    0x000000000045abe6 <+45>:    mov    %rdi,%r9
    0x000000000045abe9 <+48>:    shl    $0x4,%r9
    0x000000000045abed <+52>:    mov    0x8(%rax),%rdx
    0x000000000045abf1 <+56>:    mov    (%rax),%rax
    0x000000000045abf4 <+59>:    mov    %rax,(%r8,%r9,1)
    0x000000000045abf8 <+63>:    mov    %rdx,0x8(%r8,%r9,1)
    0x000000000045abfd <+68>:    add    $0x1,%rdi
    0x000000000045ac01 <+72>:    add    $0x1,%rcx
    0x000000000045ac05 <+76>:    jmp    0x45ac11 <bufhl_clear_line+88>
    0x000000000045ac07 <+78>:    mov    $0x0,%ecx
    0x000000000045ac0c <+83>:    mov    $0x0,%edi
    0x000000000045ac11 <+88>:    cmp    %rcx,0x8(%rbx)
    0x000000000045ac15 <+92>:    ja     0x45abcf <bufhl_clear_line+22>
    0x000000000045ac17 <+94>:    mov    %rdi,0x8(%rbx)
    0x000000000045ac1b <+98>:    cmp    %r10,0x8(%rbx)
    0x000000000045ac1f <+102>:   jne    0x45ac28 <bufhl_clear_line+111>
    0x000000000045ac21 <+104>:   mov    $0x0,%eax
    0x000000000045ac26 <+109>:   jmp    0x45ac2d <bufhl_clear_line+116>
    0x000000000045ac28 <+111>:   mov    $0x1,%eax
    0x000000000045ac2d <+116>:   cmpq   $0x0,0x28(%rbx)
    0x000000000045ac32 <+121>:   je     0x45ac52 <bufhl_clear_line+153>
    0x000000000045ac34 <+123>:   test   %esi,%esi
    0x000000000045ac36 <+125>:   js     0x45ac3d <bufhl_clear_line+132>
    0x000000000045ac38 <+127>:   cmp    %esi,0x20(%rbx)
    0x000000000045ac3b <+130>:   jne    0x45ac52 <bufhl_clear_line+153>
    0x000000000045ac3d <+132>:   lea    0x28(%rbx),%rdi
    0x000000000045ac41 <+136>:   callq  0x45ab64 <bufhl_clear_virttext>
    0x000000000045ac46 <+141>:   movl   $0x0,0x20(%rbx)

created time in a month

Pull request review commentocsigen/js_of_ocaml

Change the semantic of MlBytes.toString

 MlBytes.prototype.toString = function(){     }     this.t = 8; /*BYTES | NOT_ASCII*/   case 8: /*BYTES | NOT_ASCII*/-    return caml_utf16_of_utf8(this.c);+    return this.c;

What is the type of this.c?

hhugo

comment created time in a month

pull request commentocsigen/js_of_ocaml

Compiler: cleanup usage of IString (now NativeString) vs String

@hhugo could you add a description to the pull request? What NativeString represents, and what the change accomplishes would be great

hhugo

comment created time in a month

push eventocsigen/js_of_ocaml

Ty Overby

commit sha a9c2fbee68d3ae28bb0d4b78e931559edc4fbd5a

use spread operator

view details

push time in a month

push eventocsigen/js_of_ocaml

Ty Overby

commit sha eb2b7eef84990cb27dd7f27a137caeb10623873a

fixup stdlib_modern

view details

push time in a month

startedmarkedjs/marked

started time in 2 months

push eventTyOverby/nvim

Ty Overby

commit sha 2a38e76e22e2e2489fcc0c65e987e9ed27569b4a

updatae at Tue Apr 7 14:42:24 EDT 2020

view details

Ty Overby

commit sha f0ac5fa2913cccb583f621d12e9ddb4356918638

Merge branch 'update-branch-152a1fbc30b4b2cd0c42c647df6ffeb8f34e6c36-db1f208f8264e8885656be5592410952d86a0a19'

view details

push time in 2 months

startedlpw25/row-subtyping

started time in 2 months

push eventTyOverby/bonsai

Ty Overby

commit sha 7d34a102fda5aea74e2e416f9f2e20f7eaa7c097

_

view details

push time in 2 months

push eventTyOverby/ppx_arrow

Ty Overby

commit sha ecb75e8b20d01ba39ff3dd8af1f80c736da2ff70

_

view details

push time in 3 months

push eventTyOverby/ppx_arrow

Ty Overby

commit sha 0b2b0e95dc152a533390bc7f7c5f996d2c1e40f8

_

view details

push time in 3 months

push eventTyOverby/ppx_arrow

Ty Overby

commit sha 38b28ee5320a782ac1c981fcc050cb8cb927305a

_

view details

push time in 3 months

push eventTyOverby/ppx_arrow

Ty Overby

commit sha 3ed283aba4dd1cc9bb1580dd665958a7139a5b9d

_

view details

push time in 3 months

push eventTyOverby/ppx_arrow

Ty Overby

commit sha 554bda17f4e2ddf023419e4ef5994fff213fcec9

_

view details

push time in 3 months

push eventTyOverby/ppx_arrow

Ty Overby

commit sha a29b1afde83a9ba3c0a98fce01005c1531297998

_

view details

push time in 3 months

push eventTyOverby/ppx_arrow

Ty Overby

commit sha d4fa6dd6c5de8e2afa33a07b2446984d2dc3b66e

_

view details

push time in 3 months

push eventTyOverby/ppx_arrow

Ty Overby

commit sha 74dc3316a1d67404bb6e1189d09d8f0274b96ce2

_

view details

push time in 3 months

push eventTyOverby/ppx_arrow

Ty Overby

commit sha 4ca4eb86d1f2fd5b7d1a499043d300facdbf389a

_

view details

push time in 3 months

push eventTyOverby/ppx_arrow

Ty Overby

commit sha 8b04271dee15d10bfb8e690ef3028a94eda612df

_

view details

push time in 3 months

push eventTyOverby/ppx_arrow

Ty Overby

commit sha 005f86e72b7a9b888e117300d64874de1ed0d197

_

view details

push time in 3 months

push eventTyOverby/ppx_arrow

Ty Overby

commit sha fb4753648d56785ce845746debcfbd3d20b93215

_

view details

push time in 3 months

push eventTyOverby/ppx_arrow

Ty Overby

commit sha 47a00fe5963ad88d32ce380058d0ebd3d2b2fd58

_

view details

push time in 3 months

push eventTyOverby/ppx_arrow

Ty Overby

commit sha 9465bfdb4fa9dde26ce3dcee27a389c9f1843142

_

view details

push time in 3 months

push eventTyOverby/ppx_arrow

Ty Overby

commit sha 62b4b8f2557b5bce412fb6dc08e1666f89251ef7

_

view details

push time in 3 months

push eventTyOverby/ppx_arrow

Ty Overby

commit sha 5c1a64b3d8c6a2502bf4d9d14f5fc53c37583208

_

view details

push time in 3 months

push eventTyOverby/ppx_arrow

Ty Overby

commit sha f8a9d5c96706cba3dd92dbbe357b9922b56edc42

_

view details

push time in 3 months

push eventTyOverby/ppx_arrow

Ty Overby

commit sha 9f71f08b2b331922a9f81aa77878d34aaff965c6

_

view details

push time in 3 months

push eventTyOverby/ppx_arrow

Ty Overby

commit sha a32c757ca286d0593769d4ebb2412e265ffda751

_

view details

push time in 3 months

push eventTyOverby/ppx_arrow

Ty Overby

commit sha 5b78853917566c66f85247976c644edafa939f03

_

view details

push time in 3 months

create barnchTyOverby/ppx_arrow

branch : master

created branch time in 3 months

created repositoryTyOverby/ppx_arrow

created time in 3 months

more