sz0 has quit [Quit: Connection closed for inactivity]
freyr has joined #ocaml
mbuf has joined #ocaml
TheLemonMan has joined #ocaml
FreeBirdLjj has quit [Remote host closed the connection]
ygrek has joined #ocaml
AltGr has joined #ocaml
sgnb has quit [Remote host closed the connection]
samrat_ has joined #ocaml
andreas__ has joined #ocaml
dakk has joined #ocaml
TarVanimelde has joined #ocaml
kerrhau has quit [Ping timeout: 240 seconds]
oh_lawd has joined #ocaml
nicoo has quit [Remote host closed the connection]
nicoo has joined #ocaml
mfp has joined #ocaml
samrat_ has quit [Ping timeout: 255 seconds]
malina has quit [Remote host closed the connection]
kolko has quit [Ping timeout: 250 seconds]
<ome>
reynir: Thanks! Knowing the 'preview' version is good still :)
<ome>
I am kinda sad that there isn't an officially sanctioned or at least defacto standard library.
<ome>
Basically OCaml with Golang quality standard library would be my dream language.
TarVanimelde has quit [Quit: TarVanimelde]
<orbifx[m]>
companion_cube: are you about?
ziyourenxiang has joined #ocaml
donryudragoni has joined #ocaml
<oh_lawd>
hi, I need to start writing some ocaml at work and I'm wondering is there any good oasis templates in github or something related to Rust's `cargo new`?
<oh_lawd>
just to boostrap a project
samrat_ has joined #ocaml
donryudragoni has quit [Quit: WeeChat 1.9.1]
zolk3ri has joined #ocaml
<reynir>
ome: yea, right. On the other hand I think there are *some* benefits to the diversity, too :-)
<orbifx[m]>
oh_lawd: have you considered jbuilder?
<oh_lawd>
nope, just started reading documentation yesterday
<oh_lawd>
I need to form some kind of opinion how do we start building our project
dakk has quit [Remote host closed the connection]
infinity0 has quit [Ping timeout: 240 seconds]
nomicflux has joined #ocaml
sh0t has joined #ocaml
jbrown has joined #ocaml
sh0t has quit [Ping timeout: 255 seconds]
nomicflux has quit [Quit: nomicflux]
<orbifx[m]>
oh_lawd: then consider using jbuilder, which I think you will find easier, compared to oasis.
<oh_lawd>
yup, read the readme already, installed and reading more docs
<oh_lawd>
it's funny how fast I can learn ocaml when coming from rust
<orbifx[m]>
:)
<oh_lawd>
and god how nice the emacs integration is BY DEFAULT
<oh_lawd>
uh, superb
<orbifx[m]>
Cargo also does installations and package management I think, which is done by opam for ocaml projects.
<oh_lawd>
yeah, there is this nice `cargo new`, which creates the basic project structure with a build config and directories
<orbifx[m]>
So what brings you to OCaml after Rust?
<oh_lawd>
we need to write a compiler
<oh_lawd>
so it's a known good tool to build those
<oh_lawd>
and I don't care about GC here
<oh_lawd>
it's ok to have one, makes things easier
<oh_lawd>
and of course there are other successful compiler projects done with ocaml, so it's a good choice
<zolk3ri>
Heh, cargo is being abused by most Rust projects, depending on more than 100+ (!) small libraries unnecessarily, and building them manually using cargo is just a matter of fetching the packages and compiling them. Once the build failed on one of the 100 packages and after running the same command again, it somehow passed and built the final project... after of course it tried to rebuild all of it, except
<zolk3ri>
the next time it somehow worked, pretty odd.
<zolk3ri>
This particular instance was with parity.
<oh_lawd>
I try to stay away from ethereum stuff until I seriously need, been reading their papers and wrote enough of solidity to be quite horrified
<oh_lawd>
but there is money in there
<zolk3ri>
https://streamable.com/nbk7z <- too bad I didn't record how it failed and after running the same command it miraculously passed. :D
<oh_lawd>
some rust libs depend on system C libs, especially openssl
<oh_lawd>
so they might fail if you miss them or they're the wrong version
<zolk3ri>
And what is the explanation for it failing the first time, but passing the second right after?
<oh_lawd>
but I've never had a non-deterministic build failures with cargo, and I've been writing rust as my profession for almost two years now
dhil has joined #ocaml
<zolk3ri>
And it didn't even remember the previous state, it just rebuilt some of the already built packages...
<oh_lawd>
several highly functional services to our platform
<oh_lawd>
but would be easier to answer if I saw the error :)
<zolk3ri>
I'm trying to look for it. :P
Duns_Scrotus has joined #ocaml
<zolk3ri>
Nah, I'd have to rebuild it. It took about 20 minutes. :D
<oh_lawd>
yeah, luckily our rust projects compile faster than our c++ projects
<oh_lawd>
the borrow checker takes time, but for development process using `cargo check` is much faster than `cargo build`
<oh_lawd>
so it's not that slow
<oh_lawd>
and of course when you compile the dependencies once, you don't need to recompile them when you rebuild
<zolk3ri>
I did "cargo build --release" twice, first time it failed on a dependency after having fetched all of it, and built many, then the second time it seemingly built many of the previously built packages, and this time it didn't fail. I don't know why, as nothing else has changed, I ran the command right after, without doing anything else. :D
<zolk3ri>
But it's certainly being abused, you don't need 100+ dependencies... "void", "itoa", "byteorder", whatever.
<oh_lawd>
lots of those libs are pretty useful though, it's not like with nodejs anyways
<oh_lawd>
bytes is a very efficient byte handling lib
<oh_lawd>
and they have uniform types, same with having special libs h1, h2 and http_types just to have uniform request/response/connection forming/header types to build clients
<zolk3ri>
OK, I just checked. It depends on 344 libraries. :D
<oh_lawd>
dependencies of dependencies counted, I guess?
<oh_lawd>
it's a big project and reading the Cargo.toml file I don't see that many weird small libs in there
<zolk3ri>
Well, doing cargo build fetches all 344 of them, and compiles them. :P
<zolk3ri>
And ultimately you will be dependent on all 344 of them.
<oh_lawd>
and it uses tokio, which as an async framework, and being rust, it's modularized into smaller libs
<oh_lawd>
but I guess firefox also has a big list of dependencies
<zolk3ri>
It's not Firefox (or any other bloated browser), it's a self-claimed lightweight ETH client. :P
<oh_lawd>
which does lots of things
<oh_lawd>
also has a vm in it
<oh_lawd>
you can mine with it
mbuf has quit [Quit: Leaving]
sh0t has joined #ocaml
sh0t has quit [Remote host closed the connection]
MercurialAlchemi has quit [Ping timeout: 260 seconds]
Soni has quit [Ping timeout: 240 seconds]
Soni has joined #ocaml
freyr has quit [Remote host closed the connection]
johnelse has quit [Ping timeout: 268 seconds]
FreeBirdLjj has joined #ocaml
mehdib has joined #ocaml
sz0 has joined #ocaml
Jesin has joined #ocaml
mbuf has joined #ocaml
donryudragoni has joined #ocaml
ziyourenxiang has quit [Ping timeout: 268 seconds]
sh0t has joined #ocaml
ShalokShalom has joined #ocaml
<companion_cube>
orbifx[m]: I'm here now :p
<orbifx[m]>
companion_cube: I wanted to ask about the design principles of Containers, whether and when it favours mutability over purity, etc. Is that written somewhere? Otherwise can you tell me a bit about it?
<companion_cube>
oh. it's designed to be 1/ an extension of the stdlib (not replacement) 2/ modular (no crazy inter-module deps) 3/ decently efficient (following the stdlib)
<companion_cube>
so wrt mutability it keeps the decision from the stdlib, mostly :)
zmt00 has joined #ocaml
<zolk3ri>
Hmm, about to read "Purely Functional Data Structures".
<companion_cube>
Okasaki's?
<zolk3ri>
yes
<companion_cube>
it's nice!
kakadu__ has quit [Quit: Konversation terminated!]
samrat_ has quit [Ping timeout: 248 seconds]
johnelse has joined #ocaml
AltGr has left #ocaml [#ocaml]
donryudragoni has quit [Quit: WeeChat 1.9.1]
mbuf has quit [Quit: Leaving]
FreeBirdLjj has quit [Remote host closed the connection]
jimmyrcom has joined #ocaml
TheLemonMan has quit [Quit: "It's now safe to turn off your computer."]
Soni has quit [Ping timeout: 248 seconds]
FreeBirdLjj has joined #ocaml
Soni has joined #ocaml
bruce_r has joined #ocaml
kakadu has joined #ocaml
FreeBirdLjj has quit [Ping timeout: 268 seconds]
FreeBirdLjj has joined #ocaml
sh0t has quit [Remote host closed the connection]
sh0t has joined #ocaml
zv has joined #ocaml
parataxis__ has joined #ocaml
parataxis__ is now known as parataxis
Soni has quit [Ping timeout: 255 seconds]
Soni has joined #ocaml
dhil has quit [Ping timeout: 248 seconds]
samrat[m] has quit [Ping timeout: 276 seconds]
aantron has quit [Ping timeout: 276 seconds]
timclassic has quit [Ping timeout: 276 seconds]
M-jimt has quit [Ping timeout: 276 seconds]
BitPuffin|osx has joined #ocaml
aantron has joined #ocaml
rostero has joined #ocaml
orbifx has joined #ocaml
mk9_ has joined #ocaml
samrat[m] has joined #ocaml
timclassic has joined #ocaml
M-jimt has joined #ocaml
mk9 has joined #ocaml
orbifx has quit [Ping timeout: 255 seconds]
bruce_r has quit [Ping timeout: 255 seconds]
mk9_ has quit [Ping timeout: 268 seconds]
mk9 has quit [Quit: mk9]
mk9 has joined #ocaml
aziem has quit [Ping timeout: 268 seconds]
<orbifx[m]>
thans companion_cube
<orbifx[m]>
thanks*
aziem has joined #ocaml
ygrek has quit [Ping timeout: 255 seconds]
silver has joined #ocaml
ShalokShalom has quit [Remote host closed the connection]
malina has joined #ocaml
mk9 has quit [Quit: mk9]
mk9 has joined #ocaml
malina has quit [Ping timeout: 260 seconds]
mk9 has quit [Quit: mk9]
orbifx has joined #ocaml
<orbifx>
when matching exceptions, does it matter if the exception case comes before or after the catch all case?
parataxis has quit [Quit: Connection closed for inactivity]
BitPuffin|osx has quit [Ping timeout: 248 seconds]
<orbifx>
ok seems it doesn't matter
malina has joined #ocaml
ygrek has joined #ocaml
eni has joined #ocaml
<Leonidas>
Drup: congrats on your PhD!
<orbifx>
:)
<orbifx>
companion_cube: are there string processing containers?