<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
<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.
<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