TrillionEuroNote has quit [Ping timeout: 245 seconds]
TrillionEuroNote has joined #ocaml
sim642 has quit [K-Lined]
sim642 has joined #ocaml
kakadu has quit [Quit: Konversation terminated!]
<discocaml>
<cemerick> companion_cube: `yield` is in Lwt_unix, and is just an alias for `Lwt.pause`
<discocaml>
<cemerick> sorry, not an alias, but a vestigial predecessor
mouseghost has quit [Quit: mew wew]
mouseghost has joined #ocaml
<discocaml>
<Ada> i write in both and unless you have a background in functional programming golang is easier for sure
<discocaml>
<Ada> go is a really simple language, for better or for worse
<discocaml>
<Ada> ocaml is the opposite
<discocaml>
<Ada> i'd say its worth learning ocaml tho, it's a very interesting lang and now that concurrency support is picking up it's as practical as go
<discocaml>
<xavierm02_> Is there a parser library that allows defining several grammars and to decide how to combine them at runtime?
<discocaml>
<xavierm02_> With backtracking
mouseghost has quit [Quit: mew wew]
<discocaml>
<xavierm02_> pacomb looks like it might work, I'll try it
<discocaml>
<xavierm02_> The order of libraries in the dune stanza is important 😮
<discocaml>
<cemerick> angstrom is a quality parser combinator library, and pretty heavily used
<discocaml>
<xavierm02_> Running this script with bash gives me the "No implementations" error, while the same script with the pacomb and unix libraries swapped does not
Serpent7776 has quit [Quit: WeeChat 1.9.1]
<discocaml>
<sim642> Sounds like a pacomb bug that it misses a dependency maybe
<discocaml>
<amaro_amaro> Windows (or Cygwin?) question: it seems that, when loading `.cmxs` files under Cygwin, the execute bit of the file must be set, otherwise I get a `Permission denied` error. On Linux, this is not necessary, even if for some reason *most* `.cmxs` installed in my opam's `lib` directory do have the bit set.
<discocaml>
<amaro_amaro>
<discocaml>
<amaro_amaro> But a few of them don't, which causes all kinds of unexpected issues in Cygwin... for instance, `lib/ocaml/nums.cmxs` does *not* have its bit set. But `str.cmxs` and `unix.cmxs`, in the same directory, do. A few libraries (`logs`, `bos`, `rresult`, `why3`) don't have it, but almost everyone else does (I guess `dune`-based installations have it set by default).
<discocaml>
<amaro_amaro>
<discocaml>
<amaro_amaro> Is this supposed to be uniform? Is this difference in behavior expected, or acknowledged, when under Cygwin? Is there something we could do to make sure things become more normalized?
John_Ivan_ has quit [Remote host closed the connection]
John_Ivan_ has joined #ocaml
<discocaml>
<xavierm02_> @sim642 Ah right. I just checked, and unix is listed as a dependency for tests and benchmarks but nowhere else
John_Ivan_ has quit [Remote host closed the connection]
TrillionEuroNote has quit [Ping timeout: 252 seconds]
TrillionEuroNote has joined #ocaml
bartholin has joined #ocaml
John_Ivan has joined #ocaml
John_Ivan has quit [Remote host closed the connection]
John_Ivan has joined #ocaml
<discocaml>
<kakadu18> Have you encountered a situation, where `ppx_expect` replaces `{|...|}` by `"..."` on promotion? How to prevent that from happening?
John_Ivan has quit [Remote host closed the connection]
John_Ivan has joined #ocaml
John_Ivan has quit [Remote host closed the connection]
John_Ivan has joined #ocaml
Serpent7776 has joined #ocaml
<discocaml>
<sim642> Maybe a bug? I think the parsetree should distinguish them but maybe ppx_expect forgets
mouseghost has joined #ocaml
Serpent7776 has quit [Ping timeout: 245 seconds]
bartholin has quit [Ping timeout: 260 seconds]
bartholin has joined #ocaml
Serpent7776 has joined #ocaml
oisota5 has joined #ocaml
energizer_ has joined #ocaml
alexherbo2 has joined #ocaml
grobe0ba_ has joined #ocaml
nfc_ has joined #ocaml
henrytill has quit [*.net *.split]
nfc has quit [*.net *.split]
oisota has quit [*.net *.split]
mstevens has quit [*.net *.split]
energizer has quit [*.net *.split]
grobe0ba has quit [*.net *.split]
oisota5 is now known as oisota
grobe0ba_ is now known as grobe0ba
henrytill has joined #ocaml
mstevens has joined #ocaml
neuroevolutus has joined #ocaml
<discocaml>
<agarwal1975> These could be deleted for now. There a couple of issues. Dune and opam need to support writing and reading those files from a subdirectory. The purpose of them is that we are considering releasing 300 packages to opam. Then end users wouldn't have to depend on the code generator, but just use the published packages. Of course, that is a lot of packages, so we also want to talk to the opam team before doing anything like that.
<discocaml>
<agarwal1975> It is considered better practice to have one findlib library per opam package.
<discocaml>
<agarwal1975> Some of the ml files that are generated are huge. The ocaml compiler ends up having trouble. We have a solution in mind, but it is not yet implemented.
<discocaml>
<agarwal1975> That is indeed the case. You are not locked in to cohttp nor any particular concurrency framework. The awsm-async and awsm-lwt packages are minimal. You could implement an alternate yourself. The core generated code makes no mention of cohttp nor async or lwt.
<discocaml>
<anmonteiro> now I'm interested. I saw `cohttp` in the `awsm` dependencies and noped out. I suppose that's only for the code generator
<discocaml>
<sim642> 300 packages with versions of each to come is a lot. I wouldn't be surprised if it started affecting opam solver performance at one point
MarvelousWololo has quit [Ping timeout: 258 seconds]
<discocaml>
<agarwal1975> The generated code is supposed to have zero dependencies, but we haven't quite achieved that. The coder generator's dependencies could perhaps be reduced also, but we don't particularly care about that. If we publish the generated packages, then it shouldn't matter. But yes, publishing 300 packages is not something we can do without discussion with the broader community.
<discocaml>
<agarwal1975> The generated code is supposed to have zero dependencies, but we haven't quite achieved that. The code generator's dependencies could perhaps be reduced also, but we don't particularly care about that. If we publish the generated packages, then it shouldn't matter. But yes, publishing 300 packages is not something we can do without discussion with the broader community.
<discocaml>
<sim642> There's 4379 packages right now, it'll be quite a percentage
mouseghost has quit [Quit: mew wew]
<discocaml>
<agarwal1975> The number of packages probably isn't a problem. I think the issue might be that whenever there is an update, all of them will get updated. Anyway, just managing that release process would be a ton of work, and we don't have the bandwidth for that right now.
<discocaml>
<anmonteiro> I agree. I think it will only be a problem if there are many revdeps, which doesn't seem to be the case
<discocaml>
<sim642> If they're all from the same repository, releasing shouldn't be that difficult. As long as dune-release/opam-publish are up for the package count
<discocaml>
<anmonteiro> they're all pretty independent
<discocaml>
<sim642> Revdeps is one thing, but 300 packages × dozens of opam CI configs is another
<discocaml>
<sim642> Although compiler releases possibly spawn more jobs