casastortaAway has quit [Quit: ZNC 1.10.1 - https://znc.in]
casastorta has joined #ocaml
casastortaAway has joined #ocaml
casastorta has quit [Ping timeout: 244 seconds]
deavmi has quit [Ping timeout: 248 seconds]
casastortaAway has quit [Quit: ZNC 1.10.1 - https://znc.in]
casastorta has joined #ocaml
casastortaAway has joined #ocaml
bartholin has joined #ocaml
Tuplanolla has joined #ocaml
shwouchk has quit [Quit: WeeChat 4.5.2]
deavmi has joined #ocaml
deavmi has quit [Ping timeout: 260 seconds]
deavmi has joined #ocaml
shwouchk has joined #ocaml
toastal has quit [Ping timeout: 276 seconds]
deavmi has quit [Ping timeout: 244 seconds]
Haudegen has joined #ocaml
toastal has joined #ocaml
deavmi has joined #ocaml
YuGiOhJCJ has quit [Quit: YuGiOhJCJ]
<discocaml>
<deepspacejohn> I noticed there are no warnings for unused object instance variables or methods. Is that not possible to implement due to their structural nature?
Haudegen has quit [Quit: No Ping reply in 180 seconds.]
Haudegen has joined #ocaml
marijanp has left #ocaml [Error from remote client]
inline has quit [Quit: Leaving]
<discocaml>
<sim642> There seems to be an unused-field warning
<discocaml>
<sim642> But I guess it might only be triggered when explicitly setting an object type to your object or whatnot
<discocaml>
<sim642> If it's exposed, such that it could be accessed from another module, then the compiler cannot say it's unused because it won't know that
humasect has joined #ocaml
Haudegen has quit [Quit: Bin weg.]
inline has joined #ocaml
<discocaml>
<asadun5771> does anyone here have any experience with hardcaml?
<discocaml>
<asadun5771> namely to program FPGA (in this case I have Arty A7-100T)
Serpent7776 has joined #ocaml
tomku has quit [Ping timeout: 252 seconds]
tomku has joined #ocaml
olle_ has joined #ocaml
olle_ has quit [Ping timeout: 248 seconds]
<discocaml>
<deepspacejohn> @sim642 that warning is for unused record fields, not object instance variables, right?
<discocaml>
<deepspacejohn> There aren't any warnings for the unused variables or methods
euphores has quit [Quit: Leaving.]
euphores has joined #ocaml
<discocaml>
<sim642> Hmm, I must've misread then
<discocaml>
<deepspacejohn> I'm sure this is not a hot take to anyone here, but every once in a while when I experiment with using OCaml objects I always feel like I'm just doing a huge downgrade. I need more type annotations, there's no LSP go-to-definition for methods, no warnings for unused methods, bundle size gets bigger (for JSOO), and all kinds of other rough edges.
<humasect>
try Modules ?
<humasect>
not sure about LSP for ocaml, but merlin is *awesome*
<discocaml>
<sim642> It's not surprising, objects are quite rarely used. Although it's a feedback loop: they're also used less because they're less optimized
<discocaml>
<sim642> But I'm surprised about needing more type annotations for objects
<discocaml>
<sim642> I thought annotations weren't necessary there at all
<discocaml>
<deepspacejohn> I assumed the lack of go-to-definition for objects was more due to their fundamentally dynamic nature. In many cases there's no "definition" for a method.
<discocaml>
<sim642> That probably doesn't help the issue indeed
<humasect>
because objects are dynamic
<humasect>
modules are static
<discocaml>
<deepspacejohn> Any time a class does anything polymorphic, including a polymorphic method, you usually need type annotations.
<discocaml>
<sim642> Right, polymorphism is explicit there
<discocaml>
<deepspacejohn> anyway, I'm just being grumpy. I have no special need to use objects except that once a year or so I get curious and decide to try them out.
<discocaml>
<deepspacejohn> maybe I'll find a use case for them this time? (typically not)