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/
<d_bot> <morpheus> blinded by the light ~
<d_bot> <cod1r> do you have like a browser extension that changes colors?
rgrinberg has joined #ocaml
rgrinberg has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
rgrinberg has joined #ocaml
rgrinberg has quit [Client Quit]
spip has quit [Ping timeout: 240 seconds]
spip has joined #ocaml
Tuplanolla has quit [Quit: Leaving.]
zebrag has quit [Quit: Konversation terminated!]
waleee has quit [Ping timeout: 248 seconds]
x88x88x has joined #ocaml
tizoc has quit [Quit: Coyote finally caught me]
tizoc has joined #ocaml
brettgilio has joined #ocaml
<brettgilio> Anybody read the HN comments about the new website?
<companion_cube> no, but please share!
rgrinberg has joined #ocaml
rgrinberg has quit [Read error: Connection reset by peer]
<brettgilio> Correct me if i'm wrong, but the OCaml Discord is bridged here, right?
<gopiandcode> is the .eml format really that popular for building html in OCaml? I've found tyxml in general to be a lot more idiomatic, and as the components are normal OCaml functions, I can easily write my own HTML DSL for my projects by writing more OCaml functions
<companion_cube> brettgilio: yes, it is
<companion_cube> gopiandcode: is .eml the dream template thing? it sounds pretty new
<companion_cube> combinators are nice, imho
<gopiandcode> companion_cube: yes, I thought it was just a thing made to simplify the dream examples, but I guess the new ocaml website's html is constructed using it: https://github.com/ocaml/ocaml.org/blob/main/src/ocamlorg_frontend/components/header.eml
<companion_cube> ah, no, it ships with dream
<companion_cube> I don't think you have to use it though
<gopiandcode> yup, thankfully it seems not - I guess I'll just stick to OCaml functions/functors for a more idiomatic experience
gentauro has quit [Read error: Connection reset by peer]
gentauro has joined #ocaml
<brettgilio> Do we have an update ETA on 5
<brettgilio> Probably not, but just curious
<brettgilio> I just assumed that the new website would be timed to coincide with 5, but there are still plenty of blocking problems
<d_bot> <cod1r> I am excited for 5
<d_bot> <cod1r> really excited
Sankalp has quit [Ping timeout: 276 seconds]
shawnw has joined #ocaml
Sankalp has joined #ocaml
gravicappa has joined #ocaml
Haudegen has joined #ocaml
mro has joined #ocaml
dextaa4 has joined #ocaml
<d_bot> <Ambika E.> Anything stopping you from just using it?
mro has quit [Remote host closed the connection]
mro has joined #ocaml
mro has quit [Remote host closed the connection]
mro has joined #ocaml
olle has joined #ocaml
mro has quit [Remote host closed the connection]
mro has joined #ocaml
Serpent7776 has joined #ocaml
mro has quit [Remote host closed the connection]
bartholin has joined #ocaml
Tuplanolla has joined #ocaml
chrisz has quit [Ping timeout: 248 seconds]
waleee has joined #ocaml
dextaa4 has quit [Remote host closed the connection]
chrisz has joined #ocaml
dextaa4 has joined #ocaml
Anarchos has joined #ocaml
Anarchos has quit [Quit: Vision[]: i've been blurred!]
dextaa4 has quit [Remote host closed the connection]
dextaa4 has joined #ocaml
<d_bot> <danielo515> I'm asking about desktop, but I could accept a ocaml backend with a bundled front-end that opens a browser, as long as it is a single binary
bartholin has quit [Ping timeout: 276 seconds]
olle has quit [Ping timeout: 246 seconds]
mro has joined #ocaml
bartholin has joined #ocaml
mro has quit [Ping timeout: 276 seconds]
spip has quit [Quit: Konversation terminated!]
spip has joined #ocaml
<d_bot> <orbitz> That is quite possible in ocaml
Anarchos has joined #ocaml
xenu has quit [Read error: Connection reset by peer]
xenu has joined #ocaml
kakadu has quit [Ping timeout: 250 seconds]
azimut has quit [Ping timeout: 240 seconds]
azimut has joined #ocaml
Anarchos has quit [Quit: Vision[]: i've been blurred!]
mro has joined #ocaml
xgqt has quit [Remote host closed the connection]
xgqt has joined #ocaml
<d_bot> <danielo515> nobody uses revery then? it was very promising
<d_bot> <VPhantom> Revery is that kind of web service as far as I know.
<d_bot> <danielo515> nope, that is rescript, revery is what is used for onivim 2 cross platform gui
<d_bot> <danielo515> also, is there any predominant and/or standard for interactive cli? Ala nurses? I know there is Nottui and Lwd, but maybe there is something more popular /more developed?
<d_bot> <VPhantom> Quoting the Revery README itself: "Revery is kind of like super-fast, native code Electron - with bundled React-like/Redux-like libraries and a fast build system - all ready to go!"
<d_bot> <VPhantom> Really seems to be similar to me: a web back-end and some kind of front-end served from it.
<d_bot> <danielo515> electron is for desktop apps. It is like electron core part, not web part
<d_bot> <VPhantom> So there's nothing client-side in Revery? Interesting.
<d_bot> <danielo515> nope, it is all native, kind of reason + react native
hsw has quit [Quit: Leaving]
<d_bot> <VPhantom> It's not clear from their readme how they end up interacting with the user. There's a WebGL "version" which hints that there may be others.
bartholin has quit [Ping timeout: 272 seconds]
<d_bot> <VPhantom> (Ah, SDL. I see.)
<d_bot> <VPhantom> So instead of binding to say GTK, they wrote their own framework and widgets from scratch. Quite ambitious!
<d_bot> <danielo515> yes, VERY ambitious, because they were developing at the same time as a full blown IDE using it
<d_bot> <VPhantom> The best way to develop that kind of thing is to have something specific to use it with. I like that. Less chances of ending up as an abandoned experiment.
bartholin has joined #ocaml
mro has quit [Remote host closed the connection]
mro has joined #ocaml
spip has quit [Ping timeout: 246 seconds]
spip has joined #ocaml
shawnw has quit [Ping timeout: 272 seconds]
zebrag has joined #ocaml
kakadu_ has joined #ocaml
<d_bot> <Patate> Hello, was wondering if there was an elegant solution to do the equivalent of writing in some files, and then cat them into one file.
<d_bot> <Patate> I'll write in each of them in an unknown order, so I cannot just write file1, then file2, ...
<d_bot> <Patate> Was thinking of just using accumulators, for simplicity, but I know it would become a problem with large files
kakadu_ has quit [Remote host closed the connection]
kakadu has joined #ocaml
vicfred has joined #ocaml
kakadu has quit [Ping timeout: 240 seconds]
mro has quit [Remote host closed the connection]
bartholin has quit [Ping timeout: 246 seconds]
olle has joined #ocaml
<d_bot> <danielo515> do you know of any example?
<d_bot> <danielo515> what do you mean by elegant?
<d_bot> <Patate> @danielo515 I mean something that has been made for this, maybe it exists
bartholin has joined #ocaml
mro has joined #ocaml
<d_bot> <cod1r> is it already out?
<d_bot> <cod1r> or is it `ocaml-multicore`
<d_bot> <cod1r> oh fk
<d_bot> <cod1r> it is
<d_bot> <NULL> There's only 5.00+trunk aka the dev version for now
mro has quit [Remote host closed the connection]
<d_bot> <danielo515> do you mean an API to write to temporary files? I may not be understanding your use case well, but for me it seems that just streaming to the files, then close and stream each one to a final destination will be the best solution if you expect big data
<d_bot> <danielo515> You can integrate Dream into a fully self-contained binary, or run it in large deployments behind proxies. Dream assumes no databases, environment variables, or configuration files, and requires no setup beyond installing the one package, dream.
vicfred has quit [Quit: Leaving]
mro has joined #ocaml
mro has quit [Remote host closed the connection]
mro has joined #ocaml
<d_bot> <orbitz> You can use crunch to include static content too
mro has quit [Remote host closed the connection]
mro has joined #ocaml
slbtty has quit [Read error: Connection reset by peer]
bartholin has quit [Remote host closed the connection]
bartholin has joined #ocaml
kakadu has joined #ocaml
rgrinberg has joined #ocaml
Sankalp- has joined #ocaml
Sankalp has quit [Ping timeout: 276 seconds]
Sankalp- is now known as Sankalp
mro has quit [Remote host closed the connection]
bartholin has quit [Ping timeout: 272 seconds]
wingsorc has quit [Remote host closed the connection]
wingsorc has joined #ocaml
rgrinberg has quit [Ping timeout: 260 seconds]
mro has joined #ocaml
mro has quit [Ping timeout: 260 seconds]
bartholin has joined #ocaml
rgrinberg has joined #ocaml
wingsorc__ has joined #ocaml
wingsorc has quit [Read error: Connection reset by peer]
<d_bot> <josé> Does ocaml have pattern guards?
<d_bot> <josé> or any alternative to pattern guards at least?
<d_bot> <octachron> OCaml has clause guards
<d_bot> <octachron> aka the guards is on the whole clause rather than on a pattern (which matter in presence or or-patterns)
<d_bot> <octachron> ` | A (C x| D x) | B (A x) when pred x -> ... `
Anarchos has joined #ocaml
mro has joined #ocaml
kakadu has quit [Remote host closed the connection]
<d_bot> <josé> I can't make sense of that, how is that an alternative to pattern guards?
Anarchos has quit [Ping timeout: 256 seconds]
<d_bot> <josé> https://opam.ocaml.org/packages/ppx_pattern_guard/ I guess not hence the existance of this ppx, thats unfortunate.
mro has quit [Ping timeout: 276 seconds]
<d_bot> <octachron> Hm, yes; that was a name collision. No OCaml does not have Haskell's "pattern guards".
<d_bot> <Patate> What I want to do is write a .ml file's content. It is divided in modules, that can be themselves divided into modules, ...
<d_bot> <Patate> So the file I write looks like a tree of modules. The problem is that what has to be written in each module is determined without order. I can have something that has to go in M.A, then something in M.B, and something back in M.A.
<d_bot> <Patate> And yes, if I plan on going big, I thing I will create a directory that is the root of the .ml I want to generate, with sub-directories and temporary files for each sub-module
<d_bot> <octachron> It is probably easier to build first your tree of submodules first and then print it at once.
<d_bot> <Patate> But for now, I will just fit this in a data structure
<d_bot> <Patate> Yes, that's what I am going to do, was just curious if there was a nice method that can be scaled for this kind of job
<d_bot> <octachron> It might be possible to compute the tree nodes lazily but that sounds like premature optimisation.
bartholin has quit [Ping timeout: 246 seconds]
dextaa4 has quit [Read error: Connection reset by peer]
dextaa4 has joined #ocaml
Sankalp has quit [Ping timeout: 246 seconds]
dstein64- has joined #ocaml
Sankalp has joined #ocaml
dstein64 has quit [Ping timeout: 260 seconds]
dstein64- is now known as dstein64
bartholin has joined #ocaml
<d_bot> <Patate> Problem is it is not really computation, I parse a file, and depending on what I find, write the result in another
mro has joined #ocaml
dhil has joined #ocaml
zebrag has quit [Quit: Konversation terminated!]
rgrinberg has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
mro has quit [Remote host closed the connection]
mro has joined #ocaml
gravicappa has quit [Ping timeout: 272 seconds]
rgrinberg has joined #ocaml
<d_bot> <sim642> Interesting, I recently wrote a ppx for view patterns (https://github.com/sim642/ppx_viewpattern) out of curiosity. I guess it's not exactly the same thing, but maybe I could swallow ppx_pattern_guard's features since there might be similar transformations at play.
Sankalp has quit [Ping timeout: 272 seconds]
Sankalp has joined #ocaml
zebrag has joined #ocaml
<d_bot> <cod1r> hi
Serpent7776 has quit [Quit: leaving]
olle has quit [Ping timeout: 272 seconds]
bartholin has quit [Quit: Leaving]
mro has quit [Quit: Leaving...]
hyphen has quit [Ping timeout: 240 seconds]
hyphen has joined #ocaml
zebrag has quit [Quit: Konversation terminated!]
kaph has quit [Read error: Connection reset by peer]
<brettgilio> hello cod1r
<brettgilio> the build time graph on the website is lacking a unit (seconds, minutes, years?) and it is driving me crazy.
<brettgilio> Anybody have thoughts on OCaml as a replacement for C in limited usecases?
<drakonis> eh, why not?
<drakonis> is there any arguments against using it?
<brettgilio> Im sure somebody can come up with some arguments against it.
<brettgilio> That is what im curious about
<d_bot> <nave01314> what are the use cases
bastienleonard has quit [Quit: WeeChat 3.5]