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

ocaml-multicore/ocaml-multicore 663

Multicore OCaml

ocaml-multicore/ocaml-uring 36

Bindings to io_uring for OCaml

ctk21/ocaml-multicore 1

Multicore OCaml

ocaml-bench/ocamlspeed 1

A web application to monitor and analyze the performance of your code

ctk21/capstone 0

Capstone disassembly/disassembler framework: Core (Arm, Arm64, BPF, EVM, M68K, M680X, MOS65xx, Mips, PPC, RISCV, Sparc, SystemZ, TMS320C64x, Web Assembly, X86, X86_64, XCore) + bindings.

ctk21/FStar 0

Verification system for effectful programs

ctk21/irmin 0

Irmin is a distributed database that follows the same design principles as Git

ctk21/ocaml 0

The core OCaml system: compilers, runtime system, base libraries

ctk21/ocaml.org 0

Implementation of the ocaml.org website.

pull request commentocaml-bench/sandmark

Addition of nqueens benchmark to multicore-numerical

Now rebased and with a run config file. We need #253 to get things building for the parallel benchmarks.

ctk21

comment created time in 4 hours

push eventocaml-bench/sandmark

Tom Kelly

commit sha 34bf87f539a89a7a227b010227202ed2f1620025

addition of nqueens to parallel and serial run configs

view details

push time in 4 hours

push eventocaml-bench/sandmark

Tom Kelly

commit sha 1925905bdb79e167d290e0bca52103a20d758bc9

Addition of nqueens benchmark to multicore-numerical

view details

push time in 6 hours

push eventocaml-bench/sandmark

Shakthi Kannan

commit sha 8831795180ec1965c702928e05fcef03108ddba4

Remove Stdio orun dependency for trunk

view details

Shakthi Kannan

commit sha b1cc5d30d741fd725376267d0423930e91b9d07d

Remove Base dependency in orun

view details

Tom Kelly

commit sha 1d5ed993cf0226b5934a1ae99114dae4cfa92973

Remove necessity to run benchmarks with sudo for chrt; document setcap method for chrt in README

view details

Tom Kelly

commit sha 394ad78394c84fd0b02b2889b0e681437034c5db

move chrt -r 1 to an independent orunchrt wrapper for multicore benchmarks

view details

Tom Kelly

commit sha bb97703914ba233f926711c749d04684f9da8f57

Be explicit about the RUN_CONFIG_JSON and RUN_BENCH_TARGET at the point we launch the benchmarks

view details

KC Sivaramakrishnan

commit sha 9f75700ce4bf56ba2ad79297c95a691cfd268db7

Merge pull request #174 from ocaml-bench/cleanup_sudo_chrt Cleanup our use of sudo for chrt

view details

Sadiq Jaffer

commit sha cbb1eccf79d17a08971fb3d34f9741d304d18a8d

Merge pull request #172 from shakthimaan/dev/remove-stdio-orun-dependency Remove Base, Stdio orun dependency for trunk

view details

Sadiq Jaffer

commit sha 9e72fa01f9ab211be3a34cd3d6f90ef49af2d6ae

Remove kernel2 and kernel3 as macro benchmarks We should ensure they run for much longer and then add them back

view details

Tom Kelly

commit sha 9909ed3d69541c9c5a35ae0e50f086dccce9cb67

Fix typo in ping pong parallel params

view details

Sudha Parimala

commit sha e665e1968fda56bd051bed426e43b0c52839801e

change to new Domain.DLS API with initializer

view details

Sudha Parimala

commit sha e9e88574d75e9f91410c432e125c047f6d08d020

Apply suggestions from code review Co-authored-by: KC Sivaramakrishnan <kc@kcsrk.info>

view details

KC Sivaramakrishnan

commit sha 2c4d9eec1332b5b267842830ef3fb9d05be0e806

Merge pull request #178 from Sudha247/dls-new-api change to new Domain.DLS API with initializer

view details

Shakthi Kannan

commit sha e60df309d14d1cf7c23781a6d5a6325a3f663db3

Use crout_decomposition for numerical analysis

view details

shubhamkumar13

commit sha cf1993151f2c61d639089bb78015553fc9a37949

Add functions to display the raw baseline numbers in normalized graphs

view details

shubhamkumar13

commit sha 1dc6fd66de440774b142c2ca7e89ff5cc5c931e3

make raw-baseline numbers correspond to the specific metric for that normalized graph

view details

shubhamkumar13

commit sha 19dfe3538b9ac3065acaa4b53de5f9d79a73894b

move redundant dataframe creation inside normalized function

view details

shubhamkumar13

commit sha d59ac1a81cf88688c9aedf766e1cd4ccdccd6792

PEBKAC : add topic instead of time_secs which isn't a generic

view details

shubhamkumar13

commit sha 849c1612883cfbc157aa8ed52fb262085192c18e

refactoring names to make it more generic

view details

shubhamkumar13

commit sha 9024430a90ef2629cf0986b899009c8acf6219dd

add raw baseline changes to interactive version of the sequential notebook

view details

KC Sivaramakrishnan

commit sha 0dbf7b91b6f1f55f41310565451c93fb2062b394

Update README.md

view details

push time in 6 hours

push eventocaml-multicore/ocaml-multicore

Enguerrand Decorne

commit sha 2f307ad817a11d57e4da2edccbbb762cb7012bdc

move str state to thread local storage

view details

Enguerrand Decorne

commit sha 8f551d2185c883f6c5714f143b9f965c31eeed7a

otherlibs: prev_domain_stop_hook was not set in str

view details

Enguerrand Decorne

commit sha f2a91ad404a332eba02b78d4608f7d7f5c2cf906

testsuite: add a simple str parallel testcase

view details

Tom Kelly

commit sha d9d5c2a3337fd1d26c7209ae4645af2945d7e5c0

Merge pull request #635 from Engil/make_str_domain_safe Make lib-str domain safe

view details

push time in a day

PR merged ocaml-multicore/ocaml-multicore

Make lib-str domain safe

This PR moves the usage of global variables in str to thread local storage.

The one weird part revolves around freeing the resources on domain shutdown. It make use of the previously introduced domain_stop_hook (for systhreads).

There's also the alternative route of allocating str's internal data structures as custom blocks and letting the GC take care of these, though I'm not quite sure it is a cleaner solution.

I think adding a testcase that does some str computations in parallel would be useful, I will add some in the coming days.

+128 -4

1 comment

4 changed files

Engil

pr closed time in a day

PullRequestReviewEvent

Pull request review commentocaml-multicore/ocaml-multicore

Make lib-str domain safe

 struct re_group { /* Record positions reached during matching; used to check progress    in repeated matching of a regexp. */ #define NUM_REGISTERS 64-static unsigned char * re_register[NUM_REGISTERS];+static pthread_key_t re_register_key;++/* The initial backtracking stack key */+static pthread_key_t initial_stack_key;++static void free_backtrack_stack(struct backtrack_stack *);++static struct backtrack_stack *get_backtrack_stack()+{+  struct backtrack_stack *stack = pthread_getspecific(initial_stack_key);++  if (stack == NULL) {+    stack = caml_stat_alloc(sizeof(struct backtrack_stack));+    stack->previous = NULL;+    pthread_setspecific(initial_stack_key, stack);+    return stack;+  }+  else+    return stack;+}++static unsigned char **get_re_register()+{+  unsigned char **re_register = pthread_getspecific(re_register_key); -/* The initial backtracking stack */-static struct backtrack_stack initial_stack = { NULL, };+  if (re_register == NULL) {+    re_register =  caml_stat_alloc(sizeof(unsigned char *) * NUM_REGISTERS);

it's been pointed out that the error handling is at least how it is for the rest of the file. we can leave it and merge this PR as is.

Engil

comment created time in a day

push eventocaml-multicore/ocaml-multicore

Enguerrand Decorne

commit sha 2f22ae49708db7dabe1a8f9b631965067c49052b

github: first shot at improving Multicore issue template

view details

Engil

commit sha 2a2e58ac0f2ab72e371d70417d5862291dd13541

Apply suggestions from code review Co-authored-by: Sudha Parimala <sudharg247@gmail.com>

view details

Tom Kelly

commit sha c474eeaa5ea8b78a90c7c83670cda0fb20962d58

Merge pull request #647 from Engil/issue_template_improvements Improving Multicore's issue template

view details

push time in 2 days

PR merged ocaml-multicore/ocaml-multicore

Improving Multicore's issue template

This PR is an attempt at providing a better issue template for the ocaml-multicore repository.

It adds a few useful datapoints that the user may be able to provide us with.

The template itself links to a wiki page where the bulk of the information is, because some steps are a bit hairy and I was afraid that adding everything within the template itself makes it difficult to parse correctly and may be a bit discouraging.

Though is if it feels nicer to anyone else I can inline the relevant information instead.

https://github.com/ocaml-multicore/ocaml-multicore/wiki/Report-an-issue-to-the-bugtracker

+26 -8

1 comment

1 changed file

Engil

pr closed time in 2 days

pull request commentocaml-multicore/ocaml-multicore

Improving Multicore's issue template

It is a good idea to suggest people give us reproductions, versions and if possible execute in debug mode. I support merging this PR.

Engil

comment created time in 3 days

push eventocaml-multicore/ocaml-multicore

Sadiq

commit sha 199dbd1287a0bf20684be6a6da4e2d6bcf58c0ae

make signals safe for multicore

view details

Sadiq

commit sha 832e8b382a5a19737b1fa9480814f6aa51b665f2

remove this unnecessary variable (which, due to a renaming, clashes)

view details

Sadiq

commit sha 9aa4df5db7f09893dc35b0fe2bcbbc71224bccca

sigh, whitespace in disabled tests

view details

Sadiq

commit sha 70b45c237ff770cb39aedc35d0d34baf2ac5e46c

try to ensure asynchronous exceptions can't happen from signal handlers in caml_alloc functions called by C

view details

Sadiq

commit sha 9da78c807411a5b0cf3dd97964f583280010dd4f

revert this

view details

Sadiq

commit sha 8238efec55d30bb1ed5b3df83fe3416a04904d69

disable the eintr tests

view details

Sadiq

commit sha 4ab286dabc6114df4b15b8ff3345b2a3a1c22be6

remove unnecessary header

view details

Sadiq

commit sha c73934d54e01198e240f04fd97d85e0d59465694

nuke old comment

view details

Sadiq

commit sha c5e10d6f241f818f509a435899b50afc8ff121eb

remove prototypes from domain.h that are no longer in domain.c

view details

Sadiq

commit sha c8cae43837e6ef690641fb46657e21281521b3c3

explicitly check for signals in the bytecode intrepreter

view details

Sadiq

commit sha fcf988de13233a074997cf85031ffe291feea39b

add signals header to major_gc.c

view details

Sadiq

commit sha 4add8d94a4554ec233829d0eb9140a67a0a97c63

Revert "remove unnecessary header" This reverts commit 4ab286dabc6114df4b15b8ff3345b2a3a1c22be6.

view details

Sadiq

commit sha 1f9a8ff57c1339b9c752c758e49cef8d9ff91a42

tighten up the relaxed memory orders

view details

Jeremy Yallop

commit sha 378a58d2aeeaeab8e9a481158bf7c304ff4dfe66

Add some injectivity annotations to the standard library.

view details

Sadiq Jaffer

commit sha d93b14ee468e9e7d459e97d06b7ef42db8bebe85

and tighten the rest of the orderings

view details

Sadiq Jaffer

commit sha 4729fe74f4a52a0053e92e746408593168b5a4bb

remove function only necessary for EINTR

view details

KC Sivaramakrishnan

commit sha 2a8b8020b066b7c2d5f8bd146924c16b6b144c6c

Merge pull request #630 from sadiqj/signals_multicore Make signals safe for multicore

view details

KC Sivaramakrishnan

commit sha d91f60cdd9be9f5f55d7a9b5f3e0f4744f663611

Merge pull request #631 from sadiqj/no_async_signal_c_alloc Don't raise asynchronous exceptions from signals in caml_alloc C functions

view details

Tom Kelly

commit sha 3455761b34e87a868ab81e350be51819252d5df0

Merge pull request #638 from kit-ty-kate/injective-atomics Add some injectivity annotations to the standard library.

view details

Sudha Parimala

commit sha c9f93bb901ca0ab097492756b7b868345a7c5f46

Remove deprecated macro Modify

view details

push time in 6 days

Pull request review commentocaml-multicore/ocaml-multicore

Make lib-str domain safe

 struct re_group { /* Record positions reached during matching; used to check progress    in repeated matching of a regexp. */ #define NUM_REGISTERS 64-static unsigned char * re_register[NUM_REGISTERS];+static pthread_key_t re_register_key;++/* The initial backtracking stack key */+static pthread_key_t initial_stack_key;++static void free_backtrack_stack(struct backtrack_stack *);++static struct backtrack_stack *get_backtrack_stack()+{+  struct backtrack_stack *stack = pthread_getspecific(initial_stack_key);++  if (stack == NULL) {+    stack = caml_stat_alloc(sizeof(struct backtrack_stack));+    stack->previous = NULL;+    pthread_setspecific(initial_stack_key, stack);+    return stack;+  }+  else+    return stack;+}++static unsigned char **get_re_register()+{+  unsigned char **re_register = pthread_getspecific(re_register_key); -/* The initial backtracking stack */-static struct backtrack_stack initial_stack = { NULL, };+  if (re_register == NULL) {+    re_register =  caml_stat_alloc(sizeof(unsigned char *) * NUM_REGISTERS);

Should we add error handling if the allocation fails?

Engil

comment created time in 6 days

PullRequestReviewEvent

Pull request review commentocaml-multicore/ocaml-multicore

Make lib-str domain safe

 struct re_group { /* Record positions reached during matching; used to check progress    in repeated matching of a regexp. */ #define NUM_REGISTERS 64-static unsigned char * re_register[NUM_REGISTERS];+static pthread_key_t re_register_key;++/* The initial backtracking stack key */+static pthread_key_t initial_stack_key;++static void free_backtrack_stack(struct backtrack_stack *);++static struct backtrack_stack *get_backtrack_stack()+{+  struct backtrack_stack *stack = pthread_getspecific(initial_stack_key);++  if (stack == NULL) {+    stack = caml_stat_alloc(sizeof(struct backtrack_stack));+    stack->previous = NULL;+    pthread_setspecific(initial_stack_key, stack);+    return stack;+  }+  else+    return stack;+}++static unsigned char **get_re_register()+{+  unsigned char **re_register = pthread_getspecific(re_register_key); -/* The initial backtracking stack */-static struct backtrack_stack initial_stack = { NULL, };+  if (re_register == NULL) {+    re_register =  caml_stat_alloc(sizeof(unsigned char *) * NUM_REGISTERS);+    pthread_setspecific(re_register_key, re_register);+    return re_register;+  }+  else+    return re_register;+}++/* we save the previous domain_stop_hook to setup our own here */+static void (* prev_domain_stop_hook) (void);++/* used to free up resources on domain shutdown */+static void caml_str_domain_stop_hook (void)+{+  unsigned char **reg;+  struct backtrack_stack *stack;++  stack = get_backtrack_stack();++  if (stack != NULL) {+    /* free all stacks in the chaining */+    free_backtrack_stack(stack);+    /* free initial backtrack stack as well */+    caml_stat_free(stack);+    pthread_setspecific(initial_stack_key, NULL);+  }++  reg = get_re_register();++  if (reg != NULL) {+    caml_stat_free(reg);+    pthread_setspecific(re_register_key, NULL);+  }++  prev_domain_stop_hook();

I see prev_domain_stop_hook getting called, but I don't see it being assigned to. Wouldn't we need to initialize this in caml_str_initialize

Engil

comment created time in 6 days

PullRequestReviewEvent

Pull request review commentocaml-multicore/ocaml-multicore

Exposing caml_channel_mutex_* hooks

 CAMLextern intnat caml_really_getblock (struct channel *, char *, intnat);  #define Channel(v) (*((struct channel **) (Data_custom_val(v)))) +/* The locking machinery */++CAMLextern void (*caml_channel_mutex_lock) (struct channel *);+CAMLextern void (*caml_channel_mutex_unlock) (struct channel *);+CAMLextern void (*caml_channel_mutex_unlock_exn) (void);

minor nit, but if we define this here then we should actually implement it in the io.c file.

Engil

comment created time in 6 days

PullRequestReviewEvent
PullRequestReviewEvent

issue commentocaml-multicore/ocaml-multicore

caml_page_table_lookup is not available in ocaml-multicore

I think the merge of #642 should fix this.

kit-ty-kate

comment created time in 8 days

push eventocaml-multicore/ocaml-multicore

KC Sivaramakrishnan

commit sha d773a68338db0adbf647572dbd51b0f0a3f02e4f

Remove the remanents of page table functionality. Multicore OCaml does not use page tables, and the macro and function definitions are no longer used.

view details

Tom Kelly

commit sha 713f8d24fde4bd668203e99409e4b5bbba0da3fb

Merge pull request #642 from ocaml-multicore/kayceesrk/remove-page-table-functions Remove the remanents of page table functionality.

view details

push time in 8 days

PR merged ocaml-multicore/ocaml-multicore

Remove the remanents of page table functionality.

Multicore OCaml does not use page tables, and the macro and function definitions are no longer used. Related to https://github.com/ocaml-multicore/ocaml-multicore/issues/637.

+24 -87

3 comments

2 changed files

kayceesrk

pr closed time in 8 days

pull request commentocaml-multicore/ocaml-multicore

Remove the remanents of page table functionality.

Thanks, LGTM, merging!

kayceesrk

comment created time in 8 days

push eventocaml-multicore/ocaml-multicore

Xavier Leroy

commit sha 7121fd3c9b83e385da4f69f2a8624a272c014988

Add a generic backward dataflow analyzer and use it for liveness analysis (#10404) The analyzer is parameterized by an abstract domain and a transfer function. For recursive handlers, it remembers the latest inferred abstract state and uses it to start the next fixpoint iteration. This avoids behaviors exponential in the nesting of recursive handlers, like we would have if we started every iteration with bottom. This exponential behavior was present in the old implementation of liveness analysis. It is gone in the new implementation that just calls into the generic analyzer.

view details

Sadiq Jaffer

commit sha 6e70f6c03982ac92c683329b06d82f1c3e330d08

add polling at mach layer

view details

Xavier Leroy

commit sha 482b36ebc663266b0dde629f3cbda573cffff758

Reimplement the static analysis that supports poll point insertion Following the dataflow approach discussed with @damiendoligez.

view details

Sadiq Jaffer

commit sha d30966949447f75b30695afc533f5c6f70e1e236

disable test that relies on signal blocking until fixed

view details

Sadiq Jaffer

commit sha a2bc32f83d2b91e6c89f74aa4c0af68c658d3d3d

add deprecated annotation for Domain.Sync.poll

view details

Sadiq Jaffer

commit sha dfdd1e3a71ac0b2564bd74f891a6624a4547a21b

remove manual poll from test

view details

Mark Shinwell

commit sha 691e79d960b7aa14bdf5c83d46b99d208582181d

Introduce Might_not_poll, Always_polls, etc. + documentation

view details

Mark Shinwell

commit sha e2f8596f06876ac530c146e2550a1913fbbec77a

Introduce Safe and Unsafe

view details

Mark Shinwell

commit sha 2feb8639c3f2493ffef54cb8b2b1c2377e94bad6

Use Numbers.Int

view details

Mark Shinwell

commit sha a110d35218b1ffd562b5771387c0924ecd9f554b

Copyright headers

view details

Mark Shinwell

commit sha e184d386c88a5bff311798e6922fd73f0ba2c868

Alter handling of the caml_apply special case

view details

Mark Shinwell

commit sha 12534ed55e055fd16a682d8f40c2bfe225ec064a

Remove fun_suppress_polls

view details

Mark Shinwell

commit sha ece6883e2dd29ac8f163fcd266fce29163041185

Make indentation consistent

view details

Mark Shinwell

commit sha be3ba275fb8bbe029f7798bbb58786341e792b27

Improve comment about ube

view details

Mark Shinwell

commit sha 76859fd719fd80adb5a49f4b667ae8cfaf3db4a5

Exhaustive match for recursive flag

view details

Mark Shinwell

commit sha 7a245d375d20ffb1583a8e232bf298a88c6b498b

Compute contains_polls during the rewriting pass

view details

Mark Shinwell

commit sha 85ba2b6c4e9b53549d6bc633485a5807a6897e37

Comment to clarify which ube is being used

view details

Sadiq

commit sha cc03aa30479ec6ac8bb7a655d9ed82ca75c0296e

rebase and bootstrap

view details

Sadiq

commit sha 1ed7893121bba40bcc3673fba2941906b99b046f

do this in the right place

view details

Sadiq

commit sha 99c200d4ee745c809abb610d95684ffcbf80fd72

polls should get out quick

view details

push time in 10 days

PR merged ocaml-multicore/ocaml-multicore

Backport trunk safepoints PR to multicore

This PR backports https://github.com/ocaml/ocaml/pull/10039 to multicore.

+1117 -405

6 comments

70 changed files

sadiqj

pr closed time in 10 days

push eventocaml-multicore/ocaml-multicore

Jeremy Yallop

commit sha 378a58d2aeeaeab8e9a481158bf7c304ff4dfe66

Add some injectivity annotations to the standard library.

view details

Tom Kelly

commit sha 3455761b34e87a868ab81e350be51819252d5df0

Merge pull request #638 from kit-ty-kate/injective-atomics Add some injectivity annotations to the standard library.

view details

push time in 10 days

PR merged ocaml-multicore/ocaml-multicore

Add some injectivity annotations to the standard library.

This backports https://github.com/ocaml/ocaml/commit/0aa72dd0340fb51dbd412a39440281e4cdde97fd from 4.12.0 This is required to compile stdcompat without any changes:

#=== ERROR while compiling stdcompat.16 =======================================#
# context              2.1.0 | linux/x86_64 | ocaml-variants.4.12.0+domains+channel_mutex | file:///home/opam/opam-repository
# path                 ~/.opam/4.12.0+domains+channel_mutex/.opam-switch/build/stdcompat.16
# command              ~/.opam/opam-init/hooks/sandbox.sh build make all
# exit-code            2
# env-file             ~/.opam/log/stdcompat-20-5b27e5.env
# output-file          ~/.opam/log/stdcompat-20-5b27e5.out
### output ###
# ocamlopt.opt -c  -bin-annot -no-alias-deps -nolabels -I . -alert -deprecated stdcompat__atomic_s.mli -o stdcompat__atomic_s.cmi
# File "stdcompat__atomic_s.mli", line 4, characters 0-24:
# 4 | type !'a t = 'a Atomic.t
#     ^^^^^^^^^^^^^^^^^^^^^^^^
# Error: In this definition, expected parameter variances are not satisfied.
#        The 1st type parameter was expected to be injective invariant,
#        but it is invariant.
# make[1]: *** [Makefile:1651: stdcompat__atomic_s.cmi] Error 2
# make[1]: Leaving directory '/home/opam/.opam/4.12.0+domains+channel_mutex/.opam-switch/build/stdcompat.16'
# make: *** [Makefile:836: all] Error 2
+3 -3

1 comment

3 changed files

kit-ty-kate

pr closed time in 10 days

pull request commentocaml-multicore/ocaml-multicore

Add some injectivity annotations to the standard library.

Looks good, brings us more into line with upstream 4.12. Merging

kit-ty-kate

comment created time in 10 days

pull request commentocaml-multicore/ocaml-multicore

Backport trunk safepoints PR to multicore

I took a look at those two commits, but I couldn't see how they affects young_ptr and young_end are you able to point me in the direction of how that works?

sadiqj

comment created time in 10 days

pull request commentocaml-multicore/ocaml-multicore

Remove the remanents of page table functionality.

I think if we are cleaning up address_class.h we should go further and tidy up the comment:

/* The current runtime supports two different configurations that
   correspond to two different value models, depending on whether
   "naked pointers", that do not point to a well-formed OCaml block,
   are allowed (considered valid values).
   
   ...

We should state that in multicore we are always in stock OCaml's "no naked pointers" mode. We then just need the macros to work as expected for compatibility.

kayceesrk

comment created time in 10 days