00:01
rgrinberg has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
00:04
Soni has quit [Ping timeout: 276 seconds]
00:06
rgrinberg has joined #ocaml
00:20
williewillus has joined #ocaml
00:42
dextaa has quit [Read error: Connection reset by peer]
00:44
dextaa has joined #ocaml
00:45
dextaa has quit [Read error: Connection reset by peer]
00:47
dextaa has joined #ocaml
00:50
dextaa has quit [Read error: Connection reset by peer]
00:53
dextaa has joined #ocaml
00:55
waleee has quit [Ping timeout: 255 seconds]
00:55
dextaa has quit [Read error: Connection reset by peer]
00:58
dextaa has joined #ocaml
00:58
dextaa has quit [Read error: Connection reset by peer]
01:01
dextaa has joined #ocaml
01:01
dextaa has quit [Read error: Connection reset by peer]
01:04
dextaa has joined #ocaml
01:13
Soni has joined #ocaml
01:38
Sankalp- has joined #ocaml
01:38
Sankalp has quit [Ping timeout: 240 seconds]
01:38
Sankalp- is now known as Sankalp
02:49
chrisz has quit [Ping timeout: 240 seconds]
02:51
chrisz has joined #ocaml
03:33
bobo_ has joined #ocaml
03:34
spip has quit [Ping timeout: 240 seconds]
04:21
azimut has quit [Remote host closed the connection]
04:21
azimut has joined #ocaml
04:22
trev has joined #ocaml
04:52
QDX45_ has quit [Ping timeout: 240 seconds]
05:04
zebrag has quit [Quit: Konversation terminated!]
05:09
xd1le has joined #ocaml
05:20
mbuf has joined #ocaml
05:34
kurfen_ has joined #ocaml
05:35
kurfen has quit [Ping timeout: 272 seconds]
05:41
rgrinberg has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
05:54
williewillus has quit [Quit: Leaving]
06:43
fastru has quit [Ping timeout: 244 seconds]
06:44
fastru has joined #ocaml
06:49
Haudegen has joined #ocaml
06:56
salkin has joined #ocaml
07:17
gopiandcode has quit [Read error: Connection reset by peer]
07:23
gopiandcode has joined #ocaml
07:28
andreypopp has joined #ocaml
07:33
Serpent7776 has joined #ocaml
07:40
Tuplanolla has joined #ocaml
07:59
azimut has quit [Ping timeout: 268 seconds]
08:26
kakadu has joined #ocaml
09:19
Anarchos has joined #ocaml
09:48
<
d_bot >
<p0lunin> Hi, I'm reading Menhir docs about positions:
09:48
<
d_bot >
<p0lunin>
*A position consists mainly of an offset (the position’s pos_cnum field), but also holds information about the current file name, the current line number, and the current offset within the current line*
09:48
<
d_bot >
<p0lunin> Did I understand correctly this type?
09:48
<
d_bot >
<p0lunin> ```
09:48
<
d_bot >
<p0lunin> type position = {
09:48
<
d_bot >
<p0lunin> ...
09:48
<
d_bot >
<p0lunin> pos_lnum : int; (* current offset within the line *)
09:48
<
d_bot >
<p0lunin> pos_bol : int; (* current line numer *)
09:48
<
d_bot >
<p0lunin> }
09:48
<
d_bot >
<p0lunin> ```
10:17
<
Anarchos >
p0lunin i thought that pos_bol was beginning of line, so the offset of the beginning of the line within the whole file
10:24
bartholin has joined #ocaml
10:26
Anarchos has quit [Quit: Vision[]: i've been blurred!]
10:41
wingsorc has quit [Quit: Leaving]
10:49
bartholin has quit [Ping timeout: 240 seconds]
10:49
bartholin has joined #ocaml
11:07
Serpent7776 has quit [Ping timeout: 244 seconds]
11:18
amk has quit [Ping timeout: 240 seconds]
11:20
amk has joined #ocaml
11:21
fastru has quit [Changing host]
11:21
fastru has joined #ocaml
11:21
dnh has joined #ocaml
11:23
fastru has joined #ocaml
11:24
salkin has quit [Remote host closed the connection]
11:26
salkin has joined #ocaml
11:45
<
companion_cube >
hum, seems like a bug in the docs then
11:54
adanwan has quit [Remote host closed the connection]
11:54
jpds1 has quit [Read error: Connection reset by peer]
11:54
Serpent7776 has joined #ocaml
11:55
adanwan has joined #ocaml
11:55
jpds1 has joined #ocaml
12:09
adanwan has quit [Remote host closed the connection]
12:09
adanwan has joined #ocaml
12:24
xd1le has quit [Quit: xd1le]
12:31
adanwan has quit [Remote host closed the connection]
12:31
adanwan has joined #ocaml
13:30
motherfsck has joined #ocaml
13:47
jpds1 has quit [Remote host closed the connection]
13:47
jpds1 has joined #ocaml
14:47
rgrinberg has joined #ocaml
15:34
spip has joined #ocaml
15:34
bobo_ has quit [Ping timeout: 272 seconds]
15:35
Serpent7776 has quit [Read error: Connection reset by peer]
16:09
bartholin has quit [Quit: Leaving]
16:16
gwizon has joined #ocaml
16:28
waleee has joined #ocaml
16:30
gwizon has quit [Quit: leaving]
16:33
trev has quit [Remote host closed the connection]
17:06
Serpent7776 has joined #ocaml
17:38
azimut has joined #ocaml
17:44
zebrag has joined #ocaml
18:17
Haudegen has quit [Quit: No Ping reply in 180 seconds.]
18:19
Haudegen has joined #ocaml
18:23
<
d_bot >
<Bluddy> I really need someone to make sense of the ppx ecosystem for me. Which ppxs are compatible and which aren't is
*so* confusing.
18:34
<
companion_cube >
hmmm most ppxes that use ppxlib should be compatible, I think
18:34
<
companion_cube >
that's most of them nowadays, excluding magic like ppx_import
18:41
mbuf has quit [Quit: Leaving]
18:42
orbifx has joined #ocaml
18:54
<
d_bot >
<Bluddy> bleh. tries to switch ppx_deriving.show in my project to ppx_show and it breaks
18:54
<
d_bot >
<Bluddy> *tried
18:54
<
d_bot >
<Bluddy> and I love ppx_import
18:54
<
d_bot >
<Bluddy> it's too valuable to let go
19:10
<
rgrinberg >
companion_cube why is ppx_import incompatible?
19:10
<
companion_cube >
I mean, it has to go into its own stage, no?
19:10
<
companion_cube >
you know mor ethan me
19:11
<
rgrinberg >
it shouldn't make it incompatible - just slower
19:12
<
d_bot >
<Bluddy> in general we want to direct people away from ppx_deriving-based ppxs now, right?
19:12
<
d_bot >
<Bluddy> (assuming the alternatives work)
19:12
<
rgrinberg >
yes, there's no advantage in using the ppx_deriving api
19:13
<
companion_cube >
and there again, if only ppx_deriving.std was moved to ppxlib
19:13
<
companion_cube >
if only
19:13
<
sim642 >
companion_cube, there is some attempt under the ocaml-ppx organization to rewrite it or something
19:13
<
companion_cube >
good, I just hope it works
19:13
<
sim642 >
Not much progress though, it was some Outreachy thing
19:15
<
rgrinberg >
it's not the most interesting project indeed
19:15
<
d_bot >
<Bluddy> it's quite essential though
19:15
<
companion_cube >
it's incredibly important
19:16
<
companion_cube >
so important that it's basically the only ppx who has an equivalent in rust's
*stdlib*
19:17
<
rgrinberg >
half of ppx_deriving.std has equivalent janestreet ppxlib derivers
19:17
<
rgrinberg >
and it's basically the important subset of them
19:17
<
companion_cube >
but don't the janestreet ppx pull half the universe with them?
19:18
<
rgrinberg >
no, just base usually
19:18
<
companion_cube >
ppx_deriving has the attractive properties that it doesn't have deps and is
*stable*
19:18
<
companion_cube >
and it has a tiny runtime dep
19:18
<
rgrinberg >
ppx_deriving pulls findlib and cppo
19:19
<
companion_cube >
findlib is… ok?? cppo is a build dep
19:19
<
companion_cube >
I mean, are you going to argue that base is as small and stable as ppx_deriving.runtime? :/
19:20
<
rgrinberg >
no, but i find both more heavy than they should be
19:21
<
d_bot >
<Bluddy> as mentioned in that thread?
19:22
<
d_bot >
<anmonteiro> I haven't had time to play with it, but my eternal complaint is: it'd be nice if it were hygienic
19:22
<
companion_cube >
rgrinberg: ah, sure. In my dream world, ppx_deriving's derivers would be in the stdlib… no deps
19:22
<
d_bot >
<Bluddy> yeah they really need to be
19:23
<
rgrinberg >
i wish that metapp didn't rely on findlib
19:23
<
companion_cube >
didn't realize you dislike findlib that much :)
19:24
<
rgrinberg >
well, it's an issue for the monorepo effort
19:24
<
d_bot >
<Bluddy> we desperately need something like metapp/ppx_stage that is typed i.e. a metaprogramming language in ocaml
19:24
<
d_bot >
<anmonteiro> sounds like
_you_ desperately need it 😛
19:25
<
d_bot >
<Bluddy> well you can see the demand is there
19:25
<
rgrinberg >
tbh, dbuenzli's suggestion for reflection in the compiler is more conservative and compelling to me.
19:25
<
d_bot >
<Bluddy> ppx is esoteric and is converging on small modifications rather than the global scope it allows for
19:26
<
rgrinberg >
all of these constexpr pretenders are far less attractive without deeper build system integration
19:27
<
d_bot >
<Bluddy> not to mention the repeated pain of maintaining ppx since it doesn't have a user-facing api
19:29
<
rgrinberg >
ppx does have a user facing api
19:29
<
rgrinberg >
what's ppxlib if not that?
19:30
<
companion_cube >
yeah, a third party library
19:31
<
companion_cube >
what's Dbuenzli's suggestion? can't remember that one
19:31
<
d_bot >
<Bluddy> I mean that's finally changing and ppx is becoming a sort-of user-facing api. but the problem was precisely that it wasn't use-facing
19:32
<
d_bot >
<Bluddy> question: is the output of rust's metaprogramming facility type-checked?
19:32
<
companion_cube >
sure
19:32
<
companion_cube >
it's all macros
19:33
<
d_bot >
<Bluddy> right so that's a big advantage
19:33
<
companion_cube >
I mean, ppx is typechecked too?
19:33
<
d_bot >
<Bluddy> but I was thinking of something like metapp
19:34
<
companion_cube >
same, no? you get a parsetree that's later typechecked
19:34
<
d_bot >
<Bluddy> yeah ok
19:35
<
companion_cube >
well, it's on the caller of the ppx to ensure they produce well-typed ASTs
19:36
<
companion_cube >
whereas with metaocaml/ppx_stage(?) you get a more principled staging system
19:36
<
companion_cube >
I think?
19:37
<
d_bot >
<Bluddy> I guess so... confusing
19:40
<
d_bot >
<Bluddy> it's very cool though. the example Thierry provides for my request is essentially a full-on macro system
19:42
<
rgrinberg >
consider something like let i : int = [%meta .. ] vs. let i : int = Ppx_stage.run [%code .. ]
19:43
<
rgrinberg >
the former will rely on ocamlc to give you the type error after the preprocessing
19:43
<
rgrinberg >
while the latter should error before running anything if the quotation isn't of type int code
19:44
<
d_bot >
<Bluddy> I see. thanks!
19:45
<
d_bot >
<Bluddy> So the latter should be a little easier to debug
19:47
<
rgrinberg >
a lot easier in some cases. debugging type errors in large generated code can be quite hard
20:10
orbifx has quit [Ping timeout: 272 seconds]
20:15
<
companion_cube >
rgrinberg: what's the dbuenzli reflection proposal?
20:23
salkin has quit [Quit: salkin]
20:28
<
companion_cube >
oh, the runtime type representation?
20:28
<
companion_cube >
that's useful, but not exactly a replacement for ppx_deriving in all cases
20:28
<
companion_cube >
(like, the performance profile will be quite different)
20:30
<
companion_cube >
(I'm thinking about deriving eq/ord in particular)
20:30
<
rgrinberg >
at the same time, it gives a fallback to pretty much all possible uses of deriving without ppx
20:30
<
companion_cube >
all those that are not performance critical, yeah
20:30
<
companion_cube >
I guess if it were combined with staging, it'd be as fast potentially… but that's a lot to ask for :(
20:35
Anarchos has joined #ocaml
21:10
<
Anarchos >
i needed help to compile dune/..../otherlibs/stdune/wait3_stubs.c with a -lbsd linker flag
21:19
ente is now known as ente`
21:20
rgrinberg has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
21:43
Anarchos has quit [Ping timeout: 240 seconds]
22:25
Tuplanolla has quit [Quit: Leaving.]
22:25
dnh has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
22:46
Haudegen has quit [Ping timeout: 240 seconds]
22:51
rgrinberg has joined #ocaml
23:03
fastru has quit [Ping timeout: 244 seconds]
23:11
fastru has joined #ocaml
23:24
dextaa has quit [Read error: Connection reset by peer]
23:27
dextaa has joined #ocaml
23:28
wingsorc__ has joined #ocaml