companion_cube changed the topic of #ocaml to: Discussion about the OCaml programming language | http://www.ocaml.org | OCaml 5.2.0 released: https://ocaml.org/releases/5.2.0 | Try OCaml in your browser: https://try.ocamlpro.com | Public channel logs at https://libera.irclog.whitequark.org/ocaml/
<discocaml> <ripple_carry> as part of testing a typechecker, i'd like to be able to take a string containing ocaml code and run something to spit out the type of the expression i typed. any recommendations for what that might look like? or any other ways i could get some easy-to-compare-against representation of the type of some expression
anpad has quit [Quit: ZNC 1.8.2 - https://znc.in]
terrorjack has quit [Quit: The Lounge - https://thelounge.chat]
terrorjack has joined #ocaml
Mister_Magister has quit [Ping timeout: 246 seconds]
Mister_Magister has joined #ocaml
anpad has joined #ocaml
myrkraverk_ has joined #ocaml
myrkraverk has quit [Ping timeout: 245 seconds]
Serpent7776 has joined #ocaml
bartholin has joined #ocaml
Haudegen has joined #ocaml
<discocaml> <uberpyro181> there's probably a way to do this by using utop as a library <https://ocaml-community.github.io/utop/index.html>
<discocaml> <uberpyro181> or there might be a better way to go about this, i'm not sure
bartholin has quit [Quit: Leaving]
<rustyne> `printf '12 + 34;;\n' | ocaml -noinit -noprompt -no-version`?
dhil has joined #ocaml
Humean has quit [Ping timeout: 252 seconds]
wbooze has joined #ocaml
exfalsoquodlibet has quit [Remote host closed the connection]
sleepydog has quit [Remote host closed the connection]
pluviaq has quit [Remote host closed the connection]
lane has quit [Remote host closed the connection]
immutable has quit [Remote host closed the connection]
ymherklotz has quit [Remote host closed the connection]
b0o has quit [Remote host closed the connection]
seeg has quit [Remote host closed the connection]
ursa-major has quit [Remote host closed the connection]
burley has quit [Remote host closed the connection]
ggb has quit [Remote host closed the connection]
whereiseveryone has quit [Remote host closed the connection]
pmk has quit [Remote host closed the connection]
slondr has quit [Remote host closed the connection]
rustyne has quit [Remote host closed the connection]
richardhuxton has quit [Remote host closed the connection]
eax_ has quit [Remote host closed the connection]
arya_elfren has quit [Remote host closed the connection]
beo has quit [Remote host closed the connection]
_alix has quit [Remote host closed the connection]
philipwhite has quit [Remote host closed the connection]
Ankhers has quit [Remote host closed the connection]
henrytill has quit [Remote host closed the connection]
patrick_ has quit [Remote host closed the connection]
xvilka has quit [Remote host closed the connection]
slondr has joined #ocaml
xvilka has joined #ocaml
philipwhite has joined #ocaml
pmk has joined #ocaml
burley has joined #ocaml
lane has joined #ocaml
beo has joined #ocaml
_alix has joined #ocaml
ggb has joined #ocaml
arya_elfren has joined #ocaml
henrytill has joined #ocaml
patrick_ has joined #ocaml
richardhuxton has joined #ocaml
b0o has joined #ocaml
eax_ has joined #ocaml
sleepydog has joined #ocaml
whereiseveryone has joined #ocaml
immutable has joined #ocaml
ymherklotz has joined #ocaml
exfalsoquodlibet has joined #ocaml
rustyne has joined #ocaml
pluviaq has joined #ocaml
Ankhers has joined #ocaml
seeg has joined #ocaml
ursa-major has joined #ocaml
dhil has quit [Ping timeout: 246 seconds]
Haudegen has quit [Quit: Bin weg.]
dhil has joined #ocaml
mrglow has quit [Quit: ZNC - https://znc.in]
end has quit [Quit: end]
johnel has quit [Ping timeout: 252 seconds]
mrglownr has joined #ocaml
johnel_ has joined #ocaml
ski has joined #ocaml
ski has quit [Ping timeout: 244 seconds]
<discocaml> <gabyfle> Hey, I would like to start building a rather complex GUI (for a DAW-like app) on top of an already pretty big OCaml codebase, and I need that this GUI has a low memory footprint (at least I mean not as big as browser-based GUIs).
<discocaml> <gabyfle>
<discocaml> <gabyfle> I'm currently investigating the options of doing so. The best way of doing this of course would be to write it using OCaml. I came across this :
<discocaml> <gabyfle>
<discocaml> <gabyfle> <https://github.com/Kakadu/lablqml> which are some bindings to QtQuick, but it seems like it's not supported anymore.
<discocaml> <gabyfle>
<discocaml> <gabyfle>
<discocaml> <gabyfle> I also saw a very good project, that is <https://github.com/sanette/bogue>, an OCaml GUI framework built on top of the SDL2, actively maintened, but unfortunately it seems like it lacks some features and I feel like it'd be litteraly an insane amount of work to write from scratch widgets that I need.
<discocaml> <gabyfle>
<discocaml> <gabyfle>
<discocaml> <gabyfle> An other option I thought about was doing the main application GUI using the Qt framework and then call the interesting functions from the C code using the FFI, but in DAW-like apps, everything needs to be near real-time, and I'm afraid that the repetive calls between the OCaml runtime and the C++ code would add lots of overhead.
<discocaml> <gabyfle>
<discocaml> <gabyfle> So... Does anyone has any advice on what to choose, what to go for ? Thanks a lot in advance 🙂
Haudegen has joined #ocaml
<discocaml> <contificate> aren't DAWs almost always custom anyway - like skeuomorphic components everywhere, I'd be tempted to write bindings to raygui or something
<discocaml> <contificate> I can only speculate but I know there's audio-related daemons that are effectively just another process, like fluidsynth - with the right realtime sched privileges, the result is fairy decent, even if another program is communicating with the daemon and the overhead involved in that (which really isn't a lot, but I don't know your requirements and if you can partition the concerns across processes/domains in this way)
end has joined #ocaml
<discocaml> <dubious245> What sort of widget's is it missing?
<discocaml> <dubious245> Some sort of waveform viewer?
<discocaml> <gabyfle> Yes, for example
<discocaml> <contificate> I'd recommend posting your inquiry on the forum instead
<discocaml> <contificate> it will be fleeting here and probably with a smaller audience
<discocaml> <gabyfle> Yes, for example. Also, using sometimes native ways of doing stuff (for example, the menubar on MacOS)
ygrek has joined #ocaml
ygrek has quit [Remote host closed the connection]
Haudegen has quit [Quit: Bin weg.]
euphores has quit [Quit: Leaving.]
euphores has joined #ocaml
bartholin has joined #ocaml
Haudegen has joined #ocaml
<discocaml> <deepspacejohn> oh nice, I just notice that polymorphic comparison functions are moved to their own module in trunk now. (well, copied to, since the old function paths aren't removed yet)
dhil has quit [Ping timeout: 265 seconds]
<discocaml> <dubious245> So I got a simple lexer, parser, and 'compiler' working. Just to proof that I remember that stuff from my classes. Now I guess its time to expand that simple framework out.
<discocaml> <contificate> handwritten or ocamllex, menhir, etc.?
<discocaml> <dubious245> Everything is handwritten.
<discocaml> <contificate> what's the objective
<discocaml> <dubious245> Something low level like c with better type checking that can compile against a raspberry pi 5.
<discocaml> <dubious245> Figured targeting a specific machine, with a specific chip would be easier to implement a compiler for rather than trying to support everything under the sun.
<discocaml> <contificate> depends, that's a trivial pursuit if you just lower to LLVM or something similar
<discocaml> <dubious245> I'd rather not use the LLVM.
<discocaml> <contificate> nice
<discocaml> <contificate> the "better C" language projects are pretty popular these days
ygrek has joined #ocaml
<discocaml> <dubious245> I dont mind low level memory management, I just wish it wasnt so full of bugs and weirdness and the tool chain wasnt a mess.
<discocaml> <dubious245> I also wish c++ didnt try encroaching all over it.
Tuplanolla has joined #ocaml
myrkraverk has joined #ocaml
myrkraverk_ has quit [Ping timeout: 268 seconds]
myrkraverk_ has joined #ocaml
myrkraverk has quit [Ping timeout: 246 seconds]
myrkraverk has joined #ocaml
myrkraverk_ has quit [Ping timeout: 244 seconds]
Humean has joined #ocaml
bartholin has quit [Quit: Leaving]
Serpent7776 has quit [Ping timeout: 252 seconds]
remexre has quit [Ping timeout: 252 seconds]
remexre has joined #ocaml
Guest57 has joined #ocaml
Guest57 has quit [Ping timeout: 240 seconds]
pi3ce has quit [Quit: https://quassel-irc.org - Chat comfortably. Anywhere.]
Haudegen has quit [Quit: Bin weg.]
<discocaml> <edhebi> if you want to do the whole thing handmade you'll have to think about ABI at the very least, and it's probably worth having _some_ sort of intermediate representation, even tho ast straight to machine code is doable it's kind of pain