companion_cube changed the topic of #ocaml to: Discussion about the OCaml programming language | http://www.ocaml.org | OCaml 4.14.0 released: https://ocaml.org/releases/4.14.0.html | Try OCaml in your browser: https://try.ocamlpro.com | Public channel logs at https://libera.irclog.whitequark.org/ocaml/
pfharlock has quit [Ping timeout: 240 seconds]
rgrinberg has joined #ocaml
rgrinberg has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
wingsorc has joined #ocaml
rgrinberg has joined #ocaml
Haudegen has quit [Ping timeout: 246 seconds]
rgrinberg has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
<greenbagels> im the opposite, but im hoping to get there in good time :D
<brettgilio> greenbagels what language are you coming from?
<greenbagels> brettgilio: C++, and a little bit of julia lately
<brettgilio> how long been up on the ocaml game?
<greenbagels> i tried it out a tiny bit a few years back, just came back to it last week
<greenbagels> so just past hello world tier i guess :D
<brettgilio> How do you like it?
rgrinberg has joined #ocaml
<greenbagels> i like it, the only bad taste i have is from not knowing it well
zebrag has quit [Quit: Konversation terminated!]
mjacob has quit [Ping timeout: 260 seconds]
mjacob has joined #ocaml
zebrag has joined #ocaml
waleee has quit [Ping timeout: 260 seconds]
<greenbagels> yeah, basically how i feel
chrisz has quit [Ping timeout: 248 seconds]
chrisz has joined #ocaml
zebrag has quit [Quit: Konversation terminated!]
rgrinberg has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
rgrinberg has joined #ocaml
rgrinberg has quit [Client Quit]
vicfred has joined #ocaml
gravicappa has joined #ocaml
gereedy has joined #ocaml
gereedy has quit [Quit: gereedy]
Tuplanolla has joined #ocaml
Haudegen has joined #ocaml
Serpent7776 has joined #ocaml
gravicappa has quit [Ping timeout: 244 seconds]
cedric has joined #ocaml
cedric has quit [Quit: Konversation terminated!]
bartholin has joined #ocaml
gravicappa has joined #ocaml
wingsorc has quit [Quit: Leaving]
olle has joined #ocaml
bartholin has quit [Ping timeout: 276 seconds]
bartholin has joined #ocaml
azimut has quit [Remote host closed the connection]
azimut has joined #ocaml
bobo has joined #ocaml
spip has quit [Ping timeout: 276 seconds]
hackinghorn has quit [Changing host]
hackinghorn has joined #ocaml
<brettgilio> Anybody know where to find the most recent RWOC pdf? You used to be able to find it, but Idk where it is at now.
gravicappa has quit [Ping timeout: 260 seconds]
<d_bot> <leviroth> I know it’s a joke, but please don’t use the shiny Discord features to post images implying self-harm.
<brettgilio> ok
bartholin has quit [Ping timeout: 246 seconds]
<d_bot> <leviroth> Thanks!
bartholin has joined #ocaml
gravicappa has joined #ocaml
Sankalp has quit [Ping timeout: 244 seconds]
Sankalp has joined #ocaml
waleee has joined #ocaml
azimut has quit [Ping timeout: 240 seconds]
azimut_ has joined #ocaml
rgrinberg has joined #ocaml
rgrinberg has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
rak has quit [Quit: Segmentation fault (core recycled)]
rak has joined #ocaml
<d_bot> <Mary Jane> hey is anyone interested in a paid project. It's only the last part of a project the rest is done it's just optimization. It takes a maximum of 30 minutes. Sorry for the inconvenience. Have a nice day
waleee has quit [Ping timeout: 260 seconds]
rgrinberg has joined #ocaml
<Corbin> Kind of rude to solicit contract work without a price.
rak has quit [Quit: Segmentation fault (core recycled)]
rgrinberg has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
rak has joined #ocaml
rak has quit [Client Quit]
rak has joined #ocaml
bartholin has quit [Ping timeout: 260 seconds]
hyphen has quit [Ping timeout: 246 seconds]
<d_bot> <Mary Jane> oh sorry but i just don't wanted to spam with the project it's 30 dollars for 30 minutes
<d_bot> <Bluddy> I'm not sure how much optimization can be done in 30 minutes...
hyphen has joined #ocaml
bartholin has joined #ocaml
hyphen has quit [Ping timeout: 246 seconds]
hyphen has joined #ocaml
<brettgilio> ocamlopt and call it a day. *shrug*
<sim642> Updating the opam switch to the flambda variant might fit into 30min
gravicappa has quit [Ping timeout: 244 seconds]
<d_bot> <Mary Jane> it's just one thing to change like this is not about the whole project what needs to be done is on the subject
hyphen has quit [Ping timeout: 260 seconds]
zebrag has joined #ocaml
hyphen has joined #ocaml
hyphen has quit [Ping timeout: 244 seconds]
hyphen has joined #ocaml
hyphen has quit [Ping timeout: 246 seconds]
hyphen has joined #ocaml
gravicappa has joined #ocaml
aspe has joined #ocaml
<brettgilio> What is the story on EIO? Will it ever be part of the OCaml standard distribution, or will it always be external?
<brettgilio> companion_cube do you know?
rgrinberg has joined #ocaml
jpds has quit [Remote host closed the connection]
jpds has joined #ocaml
rgrinberg has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
bartholin has quit [Read error: Connection reset by peer]
bobo has quit [Read error: Connection reset by peer]
Haudegen has quit [Quit: No Ping reply in 180 seconds.]
bobo has joined #ocaml
Haudegen has joined #ocaml
bartholin has joined #ocaml
hyphen has quit [Ping timeout: 272 seconds]
hyphen has joined #ocaml
<d_bot> <Et7f3 (@me on reply)> Have you identified bottleneck and you want someone to fix it ?
hyphen has quit [Ping timeout: 248 seconds]
hyphen has joined #ocaml
rgrinberg has joined #ocaml
<d_bot> <Bluddy> berttgilio: I don't believe anyone thinks it'll be part of OCaml. There is hope among some that it'll take off as the new standard concurrency library like lwt.
<companion_cube> it'll be external at first
rgrinberg has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
hexology has quit [Ping timeout: 248 seconds]
octachron has quit [Ping timeout: 250 seconds]
nfc has quit [Ping timeout: 256 seconds]
mro has joined #ocaml
mro has quit [Remote host closed the connection]
rgrinberg has joined #ocaml
nfc has joined #ocaml
octachron has joined #ocaml
<brettgilio> My concern is that if we don't put it in the stdlib we will end up in a rust situation, where there are 40 different competing standards for concurrency
<brettgilio> I'd really like to see OCaml adopt something like r7rs scheme, a small and large implementation.
hexology has joined #ocaml
<brettgilio> It'd really be nice if OCaml had a dedicated standard library team. I do not think the current stdlib is bad by any means, and can get a lot of mileage out of it. But it would be a nice selling point for bringing in a wider community if there was something like companion_cube's containers getting official support from a dedicated team.
azimut_ has quit [Remote host closed the connection]
azimut has joined #ocaml
mro has joined #ocaml
<sim642> Luckily OCaml is small enough that there are only two (now three) competing concurrency standards and I doubt the pre-eio ones will be going away any time soon
<sim642> It might actually be a good thing to keep eio, domainslib, etc as separate libraries such that they are decoupled from the compiler
<brettgilio> Yeah, compared to Rust's... 40?
<sim642> Having them coupled makes it annoying if you need new features, since it's inevitably bound to a compiler release
<brettgilio> I just think that people coming from other languages that have arguably... "complete" concurrency routines will be looking for something, and the story for OCaml in this regard is confusing.
<sim642> And the same compiler release might then have syntax additions, possibly breaking ppx compatibility
<sim642> And then you end up not being able to use a new eio feature because 5 ppx-es are lagging behind
<brettgilio> That is where I thought some model like r7rs small and large could be useful
<brettgilio> The small release moving slower than the large one
<d_bot> <Ambika E.> I kind of enjoy that the "built-in" way to do most things with OCaml is the C/Unix way, and that if I want to go for something higher level I always have that option at very little inconvenience to me by seeking out an external library
bartholin has quit [Ping timeout: 272 seconds]
<Corbin> brettgilio: It's worth reflecting on how languages like Java or Python have had multiple standard concurrency packages in their standard libraries. Python is just now deprecating asyncore, but I think Java still supports its classic I/O.
<Corbin> (I think GHC still supports lazy I/O, even!)
<brettgilio> Ambika E: I am with you, I like that the "build-in" way is very C/Unixy. However, I still think a kind of blessed stack of sorts could go a long way to bringing people in.
<d_bot> <Ambika E.> Maybe so, I don't disagree
<brettgilio> like a networking set could be nice. (though I imagine that will ruffle some feathers)
mro has quit [Remote host closed the connection]
<brettgilio> like a smaller ocsigen but built-in
<sim642> I think eio might go in the direction of becoming the de facto standard, being the closest to the language itself, but it'll just take time
<brettgilio> Yeah, I see that too.
waleee has joined #ocaml
<brettgilio> Something I proposed to a friend was that if OCaml were to ever have a dedicated standard library specification committee, then `ocaml-base-compiler` could continue to be the small (current) stdlib whereas `ocaml-compiler` could be the large superset (something like companion_cube's containers but with official support).
<brettgilio> I'm thinking of people who might come from Go or something that has a more curated stdlib. But honestly, I don't see the current stdlib for OCaml and the one for Go being all that different in featureset. It is mostly just a few things.
<Corbin> It's worth contrasting their philosophies. Using the batteries-included metaphor, Go aims to give a standard blessing for each niche of battery usage, in order to avoid competing standards. OCaml aims to let users define any sort of battery that they might want to use, in order to allow lightweight extensibility.
<brettgilio> Don't you think that causes ecosystem fractionality?
<Corbin> I imagine a universe where OCaml packages are content-addressed, and the "blessed stdlib" is merely a particular top-level reference.
<Corbin> I think that it's up to a language to have syntax (and a platform to have tooling) which enables refactoring. Languages with nominal typing and type encapsulation, like OCaml, choose to make code deduplication difficult; the payoff is in debugging and readability, I guess.
<brettgilio> That is fair.
<Corbin> If your language makes it hard to detect that packages X and Y are isomorphic, then *any* package manager is going to have trouble permitting only X or only Y, including a distributed ecosystem of package authors.
<brettgilio> Do you think there is a merit to OCaml having a dedicated working group for the in-built stdlib? There kind of is one, but not distinct from the compiler team.
<octachron> Concerning eio/domainslib and OCaml 5.0, an point to keep in mind is that OCaml 5.0 is meant to be partially experimental. It is expected that it would take some point to settle on the right concurrency or parallelism libraries.
<Corbin> Yes (Conway's Law), but also no (Conway's Law and Goodhart's Law).
<brettgilio> octachron I think I am just hoping that the OCaml community will "cash in" so-to-speak on the opportunity to attract more people due to this advancement
<octachron> Another point to keep in mind is that the compiler team is small (and most people only partially work on the compiler).
mro has joined #ocaml
smarton has joined #ocaml
<octachron> That's one of the reason why the stdlib tends to only integrate change that are universally consensual, it is often better to let designs evolve outside of the stdlib.
<octachron> And it perfectly fine for people to organize in group to work on alternative or potential evolution of the standard library. That's kind of how batteries, extlib, base, or containers were born.
mro has quit [Remote host closed the connection]
smarton is now known as brown121407`
brown121407` is now known as smarton
smarton is now known as brown121407
<brettgilio> I forgot about extlib
<brettgilio> the possible downside to this model is the duplication of efforts
<companion_cube> brettgilio: I'd love for OCaml to have an extended stdlib team
<brettgilio> companion_cube I'd like for you to be on it
<brettgilio> lol
<companion_cube> but there's a divide between the core team, the community, and JST
<companion_cube> so it's not really reconciliable imho
<companion_cube> (divide might just mean "not the same goals", note)
<brettgilio> I think you can find those kinds of divides in any programming language community
<brettgilio> I don't think OCaml is particularly unique in that regard
<companion_cube> not a lot of languages have a player of the (relative) weight of JST, afaik
<companion_cube> a 3rd party player I mean
<octachron> Is it really duplication of efforts when the design goals are not really aligned?
<brettgilio> octachron fair point
<companion_cube> exactly
<companion_cube> base and the stdlib do not have the same goals
<Corbin> Some languages have multiple players with that relative weight. Other languages with just one outsized corporate contributor include Clojure, Rust, and PHP.
<brettgilio> who is that for PHP?
<companion_cube> for rust: what would that contributor be?!
<brettgilio> Mozilla I would guess
<companion_cube> for php I imagine it's FB… wait, wordpress… wait
<brettgilio> Mozilla for rust*
<companion_cube> meh, it's not even on the radar anymore
<companion_cube> if anything now it's amazon
<brettgilio> Amazon uses Rust?
<brettgilio> (I don't keep on up corporate adoption)
<companion_cube> yes, and employs a lot of contributors now
<Corbin> PHP's outsized contributor is not well-known for anything besides PHP: https://en.wikipedia.org/wiki/Zend_(company)
<brettgilio> Rust has a dedicated stdlib team, tho, right?
<brettgilio> (Yes, I recognize the rust stability issue is not a good reference for Ocaml to adopt)
<brown121407> brettgilio: Yeah they have. Also a lot more other teams: https://www.rust-lang.org/governance
<companion_cube> rust has a dedicated stdlib team
<companion_cube> I think the equivalence for rust is not the stdlib, but the async runtime
<companion_cube> (where Tokio might be similar to, say, Core)
<companion_cube> (although it's more dominant than Core is in OCaml)
xgqt has quit [Ping timeout: 272 seconds]
<brettgilio> companion_cube if there were a dedicated stdlib team for ocaml, what would their goal be in your mind?
<brettgilio> I'm thinking of what I said, having two distributions of OCaml, a small and a large variant.
xgqt has joined #ocaml
<brettgilio> in my mind, they would be working on the large variant, and the compiler team would manage the compiler and the small variant
<brettgilio> I shared this with brown121407 recently
<companion_cube> brettgilio: merge containers :p
<companion_cube> jk
<brettgilio> i dont disagree lol
<companion_cube> the stdlib is doing better these days
<brettgilio> I also agree with that
<companion_cube> I think a standard type for fibers would be pretty useful though, async is a place where fragmentation has been historically bad
<companion_cube> that'll have to wait a few years though
<brettgilio> It seems like every language these days has a built in webserver.
<companion_cube> oh that
<brettgilio> I was just thinking
<companion_cube> well, rust doesn't, and Ocaml is definitely in the "small stdlib" camp
<brettgilio> Not super relevant to the discussion
<companion_cube> also you can't have a std webserver without a std fiber + async IO
<brettgilio> just a tangent
<companion_cube> I mean I agree it's useful
<companion_cube> but it depends on other things
<companion_cube> otoh, the stdlib should have at least: hex, base64, json, sha*
<companion_cube> gzip
<companion_cube> we have enough datastructures
<brettgilio> yeah I noticed go has archive procedures
<Corbin> A standard equivalent to e.g. Haskell's Async monad would be great. I've been thinking about this in a pure context, but it would be nice in OCaml too. A standard fiber type would suffice, given multicore.
<companion_cube> probably a type + some std effects
<brettgilio> honestly, containers seems to get more love and attention than base and core
<companion_cube> base seems pretty active? but it's more tied to JST's release cycle I think
<companion_cube> it's a different philosophy
<brettgilio> companion_cube thoughts on ocamlformat? I noticed containers still uses ocp-indent
<companion_cube> conflicting thoughts
<companion_cube> I'm starting to use it more at work, I found a config that works kind of ok for me
<companion_cube> but it's not 1.0 and we almost got some options we use deprecated under us
<companion_cube> (well, they're un-deprecated now, I should say)
<brettgilio> What is the config you are using?
<brettgilio> thx for the share
brown121407 has quit [Ping timeout: 276 seconds]
mro has joined #ocaml
brown121407 has joined #ocaml
Haudegen has quit [Quit: No Ping reply in 180 seconds.]
Haudegen has joined #ocaml
brown121407 has quit [Remote host closed the connection]
brown121407 has joined #ocaml
gravicappa has quit [Ping timeout: 246 seconds]
azimut has quit [Ping timeout: 240 seconds]
azimut has joined #ocaml
mro has quit [Quit: Leaving...]
brown121407 has quit [Remote host closed the connection]
<sleepydog> is anyone using dune's new cstubs generation? I'm finding that my gcc doesn't find the ocaml_integers.h path so I think it's missing an -I directive somewhere and I'm not sure how to fix it yet
jpds has quit [Ping timeout: 240 seconds]
azimut has quit [Remote host closed the connection]
azimut has joined #ocaml
jpds has joined #ocaml
olle has quit [Ping timeout: 256 seconds]
waleee has quit [Ping timeout: 260 seconds]
waleee has joined #ocaml
Tuplanolla has quit [Quit: Leaving.]
waleee has quit [Ping timeout: 260 seconds]
Haudegen has quit [Ping timeout: 240 seconds]
rgrinberg has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
wingsorc has joined #ocaml