Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

NO MERGE: tracing support #1

Open
wants to merge 62 commits into
base: v0.11
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
62 commits
Select commit Hold shift + click to select a range
cb50560
v0.11.117.00+101
trefis Mar 29, 2018
b148007
v0.11.117.03+59
trefis Apr 19, 2018
20bf2e2
v0.11.117.06+24
trefis May 10, 2018
1a7befd
v0.11.117.06+166
trefis May 14, 2018
7c2b1d6
v0.11.117.07+142
xclerc May 17, 2018
c3c417a
v0.11.117.08+54
xclerc May 23, 2018
da9ccdf
v0.11.117.10+09
xclerc Jun 7, 2018
e17d2e8
v0.11.117.14+23
xclerc Jul 12, 2018
c46cbfe
v0.11.117.17+10
xclerc Aug 7, 2018
29066dd
v0.11.117.19+55
xclerc Aug 10, 2018
c570a9d
v0.11.117.19+179
xclerc Aug 13, 2018
87d9eac
v0.11.118.00+46
xclerc Aug 15, 2018
8e74f62
v0.11.119.01+06
xclerc Aug 28, 2018
a1606ec
v0.11.120.00+23
xclerc Sep 5, 2018
52823b2
v0.11.120.00+64
xclerc Sep 6, 2018
a0f37f6
v0.11.120.00+145
xclerc Sep 10, 2018
edf7da0
v0.11.120.01+07
xclerc Sep 11, 2018
8c2c4d5
v0.11.120.01+53
xclerc Sep 12, 2018
1afcec6
v0.11.120.02+84
xclerc Sep 20, 2018
f38f1a7
v0.11.120.02+158
xclerc Sep 25, 2018
07969e6
v0.11.120.03+52
xclerc Sep 27, 2018
6bc49f2
v0.11.120.03+129
xclerc Oct 2, 2018
b3f8a20
v0.11.120.04+92
xclerc Oct 4, 2018
646a514
v0.11.120.04+143
xclerc Oct 5, 2018
2a7f1ff
v0.11.120.05+43
xclerc Oct 10, 2018
efbe4f4
v0.11.120.07+143
xclerc Oct 29, 2018
5c8f8eb
v0.11.120.08+153
xclerc Nov 6, 2018
a043bab
v0.11.120.09+196
xclerc Nov 13, 2018
0b6a727
v0.12-preview.120.18+252
xclerc Jan 16, 2019
7f65a83
v0.12-preview.120.19+118
xclerc Jan 17, 2019
96c847c
v0.12-preview.120.21+190
xclerc Feb 1, 2019
d5043e0
v0.12-preview.120.22+10
xclerc Feb 5, 2019
7b66aaa
v0.12-preview.120.22+229
xclerc Feb 8, 2019
1ba3ad4
v0.12-preview.120.22+294
xclerc Feb 12, 2019
76c9db1
v0.12.0
xclerc Feb 13, 2019
66d3963
context switch tracing
Nov 7, 2018
54458bb
add trace_new_thread
Nov 7, 2018
86a7c46
Use explicit thread ids
Nov 7, 2018
2086d99
correctly account for cycle starts
Nov 10, 2018
061bce0
stop caring about cycles where we only do work on tid 0
Nov 13, 2018
733c46e
fix tracing around cycle boundaries
Feb 14, 2019
3a1da7f
fix rebase error
Apr 12, 2019
4727cb2
make Tracing module visible
May 13, 2019
aeaabdb
Merge pull request #2 from CodaProtocol/fix/tracing-module-visible
psteckler May 14, 2019
8911a7a
add long_cycles_with_context (#3)
psteckler Sep 19, 2019
dca8c1b
long job tracking
Oct 17, 2019
4251a24
clear long job list between cycles
Oct 21, 2019
cb27218
move state mutation
Oct 22, 2019
bc76a73
Expose field in monitors
psteckler May 5, 2021
c969856
Merge pull request #6 from MinaProtocol/feature/expose-monitor-here
psteckler May 5, 2021
5ecdc33
Merge v0.13.0 from Jane Street, for OCaml 4.11.2
psteckler May 13, 2021
6f4a21a
rm extra defn of Execution_context
psteckler May 13, 2021
df77b05
Expose val t
psteckler May 13, 2021
069b704
expose long_{cycles,jobs} with context
psteckler May 17, 2021
a165243
README for Mina
psteckler May 18, 2021
b7b8a31
Merge pull request #7 from MinaProtocol/feature/ocaml-4.11.2
psteckler May 18, 2021
7a91a08
Update tracing interface
nholland94 Feb 4, 2022
68a92d3
More liberal scheduler hook calls
nholland94 Feb 9, 2022
5f041b0
Rework tracing hooks
nholland94 Feb 22, 2022
760b8dd
Merge pull request #8 from MinaProtocol/tracing-2
nholland94 Mar 17, 2022
1e536a8
Merge v14 into current
Firobe May 17, 2022
bf02e69
Merge pull request #9 from Firobe/upgrade-to-14
mrmr1993 May 18, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
_build
*.install
*.merlin
_opam

27 changes: 26 additions & 1 deletion CHANGES.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,26 @@
## git version

- Deprecated `Deferred.choice` type alias. Use `Deferred.Choice.t`
instead.

- Removed deprecated `ignore` functions from `Deferred`,
`Deferred.Result`, and `Deferred.Or_error` (and the corresponding
`Eager_deferred` modules).

- `Deferred.Memo` no longer requires the key to be `of_sexp`'able.

- rename paramater of `Pipe.merge` from `cmp` to `compare`.

- Added `Pipe.fork` function, to transfer the read values into two
freshly-created readers

- Deprecate `Synchronous_time_source.alarm_upper_bound` in favor of
`Synchronous_time_source.max_allowed_alarm_time`.

- Add `get_bind_to_interface` function to read current status of SO_BINDTODEVICE socket
option. Make both `bind_to_interface` and `get_bind_to_interface` use new type
`Bound_interface_name.t` for its argument/return value.

## v0.11

- Removed a number of modules from `Async_kernel.Async_kernel_private`.
Expand All @@ -7,6 +30,8 @@
+ `Require_explicit_time_source`
(as `Async_kernel_require_explicit_time_source`)

- Changed the return types in `Deferred_memo` to emphasis the correct
staging, using the type `'a Staged.t`.

## v0.10

Expand Down Expand Up @@ -133,7 +158,7 @@
to reliably go in the direction you don't want:

$ cat pipes.ml
#!/j/office/app/jane-script/prod/113.34/jane-script run
#!/some/path/jane-script run
open Core.Std
open Async.Std

Expand Down
67 changes: 67 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
This repository contains open source software that is developed and
maintained by [Jane Street][js].

Contributions to this project are welcome and should be submitted via
GitHub pull requests.

Signing contributions
---------------------

We require that you sign your contributions. Your signature certifies
that you wrote the patch or otherwise have the right to pass it on as
an open-source patch. The rules are pretty simple: if you can certify
the below (from [developercertificate.org][dco]):

```
Developer Certificate of Origin
Version 1.1

Copyright (C) 2004, 2006 The Linux Foundation and its contributors.
1 Letterman Drive
Suite D4700
San Francisco, CA, 94129

Everyone is permitted to copy and distribute verbatim copies of this
license document, but changing it is not allowed.


Developer's Certificate of Origin 1.1

By making a contribution to this project, I certify that:

(a) The contribution was created in whole or in part by me and I
have the right to submit it under the open source license
indicated in the file; or

(b) The contribution is based upon previous work that, to the best
of my knowledge, is covered under an appropriate open source
license and I have the right under that license to submit that
work with modifications, whether created in whole or in part
by me, under the same open source license (unless I am
permitted to submit under a different license), as indicated
in the file; or

(c) The contribution was provided directly to me by some other
person who certified (a), (b) or (c) and I have not modified
it.

(d) I understand and agree that this project and the contribution
are public and that a record of the contribution (including all
personal information I submit with it, including my sign-off) is
maintained indefinitely and may be redistributed consistent with
this project or the open source license(s) involved.
```

Then you just add a line to every git commit message:

```
Signed-off-by: Joe Smith <[email protected]>
```

Use your real name (sorry, no pseudonyms or anonymous contributions.)

If you set your `user.name` and `user.email` git configs, you can sign
your commit automatically with git commit -s.

[dco]: http://developercertificate.org/
[js]: https://opensource.janestreet.com/
21 changes: 21 additions & 0 deletions LICENSE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
The MIT License

Copyright (c) 2008--2020 Jane Street Group, LLC <[email protected]>

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
202 changes: 0 additions & 202 deletions LICENSE.txt

This file was deleted.

11 changes: 5 additions & 6 deletions Makefile
Original file line number Diff line number Diff line change
@@ -1,18 +1,17 @@
INSTALL_ARGS := $(if $(PREFIX),--prefix $(PREFIX),)

# Default rule
default:
jbuilder build @install
dune build

install:
jbuilder install $(INSTALL_ARGS)
dune install $(INSTALL_ARGS)

uninstall:
jbuilder uninstall $(INSTALL_ARGS)
dune uninstall $(INSTALL_ARGS)

reinstall: uninstall reinstall
reinstall: uninstall install

clean:
rm -rf _build
dune clean

.PHONY: default install uninstall reinstall clean
10 changes: 10 additions & 0 deletions README-MinaProtocol.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
# Changes for MinaProtocol

`async_kernel` was forked from `janestreet/async_kernel`. The first changes
for MinaProtocol were made atop tag v0.12.0 in branch `tracing`.

For OCaml 4.11.2, the Jane Street code at v0.13.0 was merged into the fork.
Atop that, these changes were made:

- in `Async_kernel_scheduler`, expose `t`, `long_cycles_with_context`, and
`long_jobs_with_context`
10 changes: 10 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
"Async_kernel"
==============

`Async_kernel` contains `Async`'s core data structures, like `Deferred`.
`Async_kernel` is portable, and so can be used in JavaScript using Async_js. In
principle it could also be used on Windows, but no scheduler has been written
for Async on Windows as of yet.

API documentation for the latest release can be found
[here][https://ocaml.janestreet.com/ocaml-core/latest/doc/async/index.html].
Loading