Leonidas changed the topic of #ocaml to: Discussion about the OCaml programming language | http://www.ocaml.org | OCaml 5.1.1 released: https://ocaml.org/releases/5.1.1 | Try OCaml in your browser: https://try.ocamlpro.com | Public channel logs at https://libera.irclog.whitequark.org/ocaml/
Tuplanolla has quit [Ping timeout: 260 seconds]
rgrinberg has joined #ocaml
rgrinberg has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
waleee has quit [Ping timeout: 264 seconds]
trev has joined #ocaml
rgrinberg has joined #ocaml
pi3ce has joined #ocaml
pi3ce has quit [Quit: https://quassel-irc.org - Chat comfortably. Anywhere.]
pi3ce has joined #ocaml
rgrinberg has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
<discocaml> <struktured> Has anyone run into getting an "incomplete" frame with https://github.com/vbmithr/ocaml-websocket ? It's a new problem for me, but when the payload size exceeds 2048 bytes the message gets truncated. I suppose it's possible the websocket service I'm connecting to changed but I doubt it.
rgrinberg has joined #ocaml
rgrinberg has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
rgrinberg has joined #ocaml
<greenbagels> It gets truncated instead of split into multiple frames?
pi3ce has quit [Quit: https://quassel-irc.org - Chat comfortably. Anywhere.]
pi3ce has joined #ocaml
pi3ce has quit [Quit: No Ping reply in 180 seconds.]
andrzejku has joined #ocaml
pi3ce has joined #ocaml
andrzejku has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
andrzejku has joined #ocaml
andrzejku has quit [Client Quit]
andrzejku has joined #ocaml
andrzejku has quit [Ping timeout: 245 seconds]
azimut has joined #ocaml
<discocaml> <lukstafi> Hi! Why is my `index.mld` file highlighted top-to-bottom as OCaml code, could we avoid that? Makes it harder to notice unclosed `[...]` "inline" code blocks. (And also maybe `[...]` should be limited to truly being inline.)
mima has joined #ocaml
rgrinberg has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
mima has quit [Ping timeout: 252 seconds]
bartholin has joined #ocaml
azimut has quit [Remote host closed the connection]
<discocaml> <lukstafi> Unrelated: what's your usual representation for a constant string set? Hashtable vs. regular expression.
azimut has joined #ocaml
bartholin has quit [Quit: Leaving]
Tuplanolla has joined #ocaml
waleee has joined #ocaml
azimut has quit [Remote host closed the connection]
azimut has joined #ocaml
waleee has quit [Ping timeout: 245 seconds]
waleee has joined #ocaml
rgrinberg has joined #ocaml
rgrinberg has quit [Client Quit]
rgrinberg has joined #ocaml
azimut has quit [Ping timeout: 240 seconds]
waleee has quit [Ping timeout: 256 seconds]
<discocaml> <lukstafi> My first time encountering labels defeat parametricity in the wild: `This expression has type
<discocaml> <lukstafi> loc:location -> structure_item list -> structure_item
<discocaml> <lukstafi> but an expression was expected of type 'a -> 'b`
<rage> is it bad to use Thread.delay inside of a Domain.spawn? should I be using something else?
<discocaml> <lukstafi> My first time encountering labels defeat parametricity in the wild: `This expression has type
<discocaml> <lukstafi> loc:location -> structure_item list -> structure_item
<discocaml> <lukstafi> but an expression was expected of type 'a -> 'b` (ETA: solving it with eta-expansion.)
<discocaml> <struktured> <greenbagels> The first frame does not have the full message, I guess. I'm trying to aggregate frames now but the async pipe mysteriously stops after the first one currently. Debugging it.
struktured has joined #ocaml
<discocaml> <lukstafi> My first time encountering labels defeat parametricity in the wild: `This expression has type
<discocaml> <lukstafi> loc:location -> structure_item list -> structure_item
<discocaml> <lukstafi> but an expression was expected of type 'a -> 'b` (ETA: -solving it with eta-expansion- err, solved it by trial-and-error, not sure how the types actually expand.)
<discocaml> <lukstafi> My first time encountering labels defeat parametricity in the wild: `This expression has type
<discocaml> <lukstafi> loc:location -> structure_item list -> structure_item
<discocaml> <lukstafi> but an expression was expected of type 'a -> 'b` (ETA: --solving it with eta-expansion-- err, solved it by trial-and-error, not sure how the types actually expand.)
<companion_cube> rage : I don't think it's a problem to use thread.delay no
<discocaml> <darrenldl> @leostera can i compose `App.t` in Minttea? or do a widget system of sort where each component has its own update function etc
<discocaml> <leostera> yup! if you look at most of the components that’s how they are designed
<discocaml> <darrenldl> how does it decide which one is in focus though?
azimut has joined #ocaml
<discocaml> <intgrah> Is there a reason for the difference between
<discocaml> <intgrah> ```ocaml
<discocaml> <intgrah> type t = |
<discocaml> <intgrah> type t' = ..
<discocaml> <intgrah> type t''
<discocaml> <intgrah> ``` which all represent the empty type?
<discocaml> <intgrah> Only `t` can be matched with only a refutation case `function _ -> .` and is also the only one which is extensible by `type t += Foo`
<discocaml> <intgrah> Is there a reason for the difference between
<discocaml> <intgrah> ```ocaml
<discocaml> <intgrah> type t = |
<discocaml> <intgrah> type t' = ..
<discocaml> <intgrah> type t''
<discocaml> <intgrah> ``` which all represent the empty type?
<discocaml> <intgrah> Only `t` can be matched with only a refutation case `let never : t -> int = function _ -> .` and is also the only one which is extensible by `type t += Foo`
<rage> companion_cube: thanks
<discocaml> <leostera> that’s up to you! not every TUI is built the same so the concept of focus doesn’t apply uniformly
<discocaml> <_ggole> Only the first of those is actually the empty type
<discocaml> <_ggole> `type t = ..` is an extensible type, and `type t` is abstract, not empty
<discocaml> <leostera> for example you could keep a tabulation index and move the focus around
<discocaml> <leostera> but most likely you’ll still want to call the update call on many other things (animated components for example)
<discocaml> <darrenldl> yeah fair, i was thinking of mimicking mouse support from nottui
<discocaml> <intgrah> what does an abstract type do? you can write this outside of module signatures too
<discocaml> <darrenldl> fwiw i think ill most likely still stick with nottui (self adjusting computation sits bit better in my mind) but to either riot or miou
<discocaml> <darrenldl> thanks for answering!
<discocaml> <_ggole> Abstract doesn't allow the type checker to assume which values the type can and can't range over, unlike the empty type
<discocaml> <intgrah> Ah I see, thank you
<discocaml> <_ggole> For an example, see `stdlib.ml`, where there's `type in_channel` and `type out_channel`, and the only way to get values of those types is to call the provided primitives
<discocaml> <_ggole> You might think of it as naming a type without giving any of the means to construct one
azimut has quit [Ping timeout: 240 seconds]
rgrinberg has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
waleee has joined #ocaml
azimut has joined #ocaml
<discocaml> <froyo> yea even `t = ..` is inhabited (with constructors that are defined later)
<discocaml> <froyo> of these three only `t = |` is empty
mima_ has joined #ocaml
bartholin has joined #ocaml
rgrinberg has joined #ocaml
waleee has quit [Ping timeout: 268 seconds]
waleee has joined #ocaml
rgrinberg has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
rgrinberg has joined #ocaml
rgrinberg has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
mima_ has quit [Ping timeout: 276 seconds]
azimut has quit [Remote host closed the connection]
azimut has joined #ocaml
azimut has quit [Remote host closed the connection]
azimut has joined #ocaml
trev has quit [Quit: trev]
random-jellyfish has joined #ocaml
random-jellyfish has quit [Client Quit]
<discocaml> <struktured> For anyone curious, it turns out ocaml-websockets does not handle the frame continuation case which may occur here: https://github.com/vbmithr/ocaml-websocket/blob/master/async/websocket_async.ml#L172
<discocaml> <struktured> I'm considering just switching to this instead: https://github.com/janestreet/async_websocket
<companion_cube> Remember to open an issue at least :)
<companion_cube> Awesome, thanks :). See if vbmithr fixes it...
<struktured> I'm not certain of the this alternative janestreet package will work yet for me, if it doesn't I'll just fix it myself.
<struktured> vbmithr redirected me to use this instead: https://github.com/deepmarker/ocaml-fastws
<companion_cube> Hu first time I read of this
<struktured> Not released on opam either, for that matter
<struktured> Finally settled on https://github.com/janestreet/cohttp_async_websocket/tree/master, got it working in about 45 minutes
bartholin has quit [Quit: Leaving]