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

Update about.eml #1516

Merged
merged 6 commits into from Sep 10, 2023
Merged

Update about.eml #1516

merged 6 commits into from Sep 10, 2023

Conversation

ShalokShalom
Copy link
Contributor

Really love this page overall.

And I thought it is currently underselling OCaml in significant ways. This PR changes a few minor things:

I rephrased the type inference part, since it did sound before like only the variables would be inferred.

One thing that I removed, is the mention of the Java compiler. That one has received no commit for over 1 1/2 years, and it is unlikely, that it is picked up by anybody, so I changed it to the “actually in active development” ocaml-wasm project.

I also changed a few other things, and like to discuss some potential changes to this site, here in the comments.

Specifically, I think the GC section forgets about the generational nature of the GC, and what impact that has on performance. Garbage collection generally is seens as a performance hog, and I like to make clear, that this isnt the case here.

You dont need to go to Rust, to get proper system level performance ;)
I would like to point out the dual nature of our GC, and how efficient it is.

Really love this page overall. 

I thought it is currently underselling OCaml in significant ways. 
This PR changes a few minor things:

I rephrased the type inference part, since it did sound before like only the variables would be inferred. 

One thing that I removed, is the mention of the Java compiler. 
That one has received no commit for over 1 1/2 years, and it is unlikely, that it is picked up by anybody, so I changed it to the actually in active development happening ocaml-wasm project.

I also changed a few other things, and like to discuss some potential changes to this site here in the comments. 

Specifically, I think the GC is hugely undersold, since we use two different ones, who are both exceeding the expectations of people, who might be used to garbage collection in other languages. I would like to point out the dual nature of our GC, and how efficient it is. 

Real World OCaml does a good job with that.
@sabine
Copy link
Collaborator

sabine commented Sep 4, 2023

Thanks @ShalokShalom!

I think you're right that there should be proof and explanation added about the GC being efficient and reliable.

@ShalokShalom
Copy link
Contributor Author

Wonderful.

How would that proof look like?

@sabine
Copy link
Collaborator

sabine commented Sep 4, 2023

I don't know, maybe there's benchmarks somewhere worth linking to. 🤔

@ShalokShalom
Copy link
Contributor Author

What do you think of this page?
https://ocamlpro.com/blog/2020_03_23_in_depth_look_at_best_fit_gc/

Add article about GC
@ShalokShalom
Copy link
Contributor Author

I did add that.

@sabine
Copy link
Collaborator

sabine commented Sep 7, 2023

I looked around a bit and the best I found is this explanation of the Garbage Collector, however, it doesn't go into details on performance.

There are some benchmarks for the compiler at https://sandmark.ocamllabs.io/, including some stats on the GC. I think that might be a useful resource here.

Final update
@ShalokShalom
Copy link
Contributor Author

So, I am fine how it is now.

I added a second link, and I think it describes it splendid now.
Thanks for working with you!

@ShalokShalom
Copy link
Contributor Author

Go ahead 👍🏻

@sabine sabine merged commit 1a46193 into ocaml:main Sep 10, 2023
3 checks passed
@sabine
Copy link
Collaborator

sabine commented Sep 10, 2023

@ShalokShalom Thank you!

@ShalokShalom ShalokShalom deleted the patch-1 branch September 10, 2023 11:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants