00:01
Haudegen has quit [Ping timeout: 240 seconds]
00:16
amiloradovsky has quit [Remote host closed the connection]
00:17
amiloradovsky has joined #ocaml
00:17
mxns has joined #ocaml
00:19
Jesin has quit [Remote host closed the connection]
00:21
Jesin has joined #ocaml
00:22
mxns has quit [Ping timeout: 272 seconds]
00:22
zebrag has quit [Read error: Connection reset by peer]
00:23
zebrag has joined #ocaml
00:39
amiloradovsky has quit [Remote host closed the connection]
00:45
mxns has joined #ocaml
00:50
mxns has quit [Ping timeout: 264 seconds]
00:55
borne has quit [Ping timeout: 264 seconds]
01:06
olle has quit [Ping timeout: 240 seconds]
01:09
runawayfive has quit [Ping timeout: 260 seconds]
01:11
remexre has quit [Ping timeout: 240 seconds]
01:12
remexre has joined #ocaml
01:15
runawayfive has joined #ocaml
01:17
olle has joined #ocaml
01:18
mxns has joined #ocaml
01:18
smazga has quit [Ping timeout: 246 seconds]
01:23
mxns has quit [Ping timeout: 260 seconds]
01:23
sleepydog has joined #ocaml
01:29
mxns has joined #ocaml
01:37
mxns has quit [Ping timeout: 260 seconds]
01:38
steenuil has quit [Read error: Connection reset by peer]
01:38
mxns has joined #ocaml
01:45
smazga has joined #ocaml
01:50
smazga has quit [Ping timeout: 272 seconds]
01:53
kini has quit [Ping timeout: 264 seconds]
01:53
krkini has joined #ocaml
02:05
mxns has joined #ocaml
02:18
mxns has quit [Ping timeout: 272 seconds]
02:22
ome has joined #ocaml
02:33
mxns has joined #ocaml
02:42
mxns has quit [Ping timeout: 264 seconds]
02:47
mxns has joined #ocaml
02:52
mxns has quit [Ping timeout: 260 seconds]
02:55
mxns has joined #ocaml
03:22
zebrag has quit [Quit: Konversation terminated!]
03:23
zebrag has joined #ocaml
03:36
smazga has joined #ocaml
03:39
waleee-cl has quit [Quit: Connection closed for inactivity]
03:41
smazga has quit [Ping timeout: 256 seconds]
03:46
krkini has quit [Remote host closed the connection]
03:48
kini has joined #ocaml
03:50
mxns has quit [Ping timeout: 272 seconds]
03:56
mxns has joined #ocaml
04:18
smazga has joined #ocaml
04:19
mxns has joined #ocaml
04:20
sagax has quit [Quit: Konversation terminated!]
04:21
mfp has quit [Ping timeout: 272 seconds]
04:22
zebrag has quit [Quit: Konversation terminated!]
04:23
zebrag has joined #ocaml
04:23
smazga has quit [Ping timeout: 256 seconds]
04:24
mxns has quit [Ping timeout: 265 seconds]
04:28
mxns has joined #ocaml
04:40
mxns has quit [Ping timeout: 256 seconds]
04:41
mxns has joined #ocaml
04:47
mxns has joined #ocaml
04:55
dborisog has joined #ocaml
05:18
smazga has joined #ocaml
05:22
zebrag has quit [Quit: Konversation terminated!]
05:23
zebrag has joined #ocaml
05:25
zebrag has quit [Client Quit]
05:42
mxns has quit [Ping timeout: 260 seconds]
05:49
mxns has joined #ocaml
05:53
smazga has quit [Ping timeout: 256 seconds]
05:59
mxns has quit [Ping timeout: 272 seconds]
06:07
kini has quit [Remote host closed the connection]
06:09
kini has joined #ocaml
06:41
jlr has joined #ocaml
06:41
jlr has quit [Disconnected by services]
06:43
jlr has joined #ocaml
06:43
jlr has quit [Disconnected by services]
06:45
narimiran has joined #ocaml
06:45
jlr has joined #ocaml
06:46
jlr has quit [Disconnected by services]
06:46
jlr has joined #ocaml
06:46
jlr has quit [Disconnected by services]
06:47
jlr has joined #ocaml
06:47
jlr has quit [Disconnected by services]
06:47
jlr has joined #ocaml
06:47
jlr has quit [Disconnected by services]
06:48
jlr has joined #ocaml
06:48
jlr has quit [Disconnected by services]
06:50
smazga has joined #ocaml
06:50
jlr has joined #ocaml
06:50
jlr has quit [Disconnected by services]
06:51
jlr has joined #ocaml
06:52
jlr has quit [Disconnected by services]
06:55
jlr has joined #ocaml
06:55
jlr has quit [Disconnected by services]
06:56
smazga has quit [Ping timeout: 260 seconds]
07:01
decentpenguin has quit [Read error: Connection reset by peer]
07:02
jlr has joined #ocaml
07:02
jlr has quit [Disconnected by services]
07:03
jlr has joined #ocaml
07:03
jlr has quit [Disconnected by services]
07:03
decentpenguin has joined #ocaml
07:09
jlr has joined #ocaml
07:09
jlr has quit [Disconnected by services]
07:10
jlr has joined #ocaml
07:10
jlr has quit [Disconnected by services]
07:10
jlr has joined #ocaml
07:10
jlr has quit [Disconnected by services]
07:11
jlr has joined #ocaml
07:11
jlr has quit [Disconnected by services]
07:13
jlr has joined #ocaml
07:13
jlr has quit [Disconnected by services]
07:15
jlr has joined #ocaml
07:15
jlr has quit [Disconnected by services]
07:16
jlr has joined #ocaml
07:16
jlr has quit [Disconnected by services]
07:17
jlr has joined #ocaml
07:17
jlr has quit [Disconnected by services]
07:20
jlr has joined #ocaml
07:20
jlr has quit [Disconnected by services]
07:22
jlr has joined #ocaml
07:22
jlr has quit [Disconnected by services]
07:23
smazga has joined #ocaml
07:26
jlr has joined #ocaml
07:26
jlr has quit [Disconnected by services]
07:27
jlr has joined #ocaml
07:27
jlr has quit [Disconnected by services]
07:28
smazga has quit [Ping timeout: 260 seconds]
07:29
jlr has joined #ocaml
07:29
jlr has quit [Disconnected by services]
07:31
jlr has joined #ocaml
07:31
jlr has quit [Disconnected by services]
07:32
jlr has joined #ocaml
07:32
jlr has quit [Disconnected by services]
07:32
jlr has joined #ocaml
07:33
olle has quit [Read error: Connection reset by peer]
07:41
ome has quit [Quit: Connection closed for inactivity]
07:47
amiloradovsky has joined #ocaml
07:51
Serpent7776 has joined #ocaml
07:59
amiloradovsky has quit [Ping timeout: 260 seconds]
08:05
jlr has quit [Ping timeout: 240 seconds]
08:15
smazga has joined #ocaml
08:21
smazga has quit [Ping timeout: 256 seconds]
08:25
Haudegen has joined #ocaml
08:26
mro_name has joined #ocaml
08:45
shawnw has joined #ocaml
08:51
borne has joined #ocaml
09:08
mro_name has quit [Remote host closed the connection]
09:12
smazga has joined #ocaml
09:14
olle has joined #ocaml
09:16
smazga has quit [Ping timeout: 240 seconds]
09:25
mro_name has joined #ocaml
09:27
bartholin has joined #ocaml
09:33
smazga has joined #ocaml
09:38
smazga has quit [Ping timeout: 256 seconds]
09:42
sagax has joined #ocaml
09:45
noonien5 has joined #ocaml
09:46
noonien has quit [Ping timeout: 264 seconds]
09:46
noonien5 is now known as noonien
09:47
ArthurStrong has joined #ocaml
09:58
vicfred has quit [Quit: Leaving]
10:20
smazga has joined #ocaml
10:25
smazga has quit [Ping timeout: 265 seconds]
10:28
hnOsmium0001 has quit [Quit: Connection closed for inactivity]
10:36
noonien9 has joined #ocaml
10:37
noonien has quit [Ping timeout: 265 seconds]
10:37
noonien9 is now known as noonien
10:47
smazga has joined #ocaml
10:52
smazga has quit [Ping timeout: 272 seconds]
10:52
xenu has quit [Read error: Connection reset by peer]
10:53
xenu has joined #ocaml
11:30
smazga has joined #ocaml
11:34
mbuf has joined #ocaml
11:34
smazga has quit [Ping timeout: 265 seconds]
11:59
smazga has joined #ocaml
12:00
mro_name has quit [Remote host closed the connection]
12:01
cantstanya has quit [Remote host closed the connection]
12:04
smazga has quit [Ping timeout: 272 seconds]
12:08
cantstanya has joined #ocaml
12:10
mro_name has joined #ocaml
12:12
mro_name has quit [Client Quit]
12:15
steenuil has joined #ocaml
12:27
<
d_bot >
<dj charlie> any way to easily print the sexp form of a gadt?
12:30
ArthurStrong has quit [Ping timeout: 265 seconds]
12:31
ArthurStrong has joined #ocaml
12:39
smazga has joined #ocaml
12:49
mfp has joined #ocaml
12:49
<
d_bot >
<octachron> You can start with the code generated by a deriver and fix it.
13:01
borne has quit [Ping timeout: 264 seconds]
13:03
borne has joined #ocaml
13:09
smazga has quit [Ping timeout: 256 seconds]
13:22
<
d_bot >
<dj charlie> 🤔 hmm
13:22
<
d_bot >
<dj charlie> thanks
13:26
Haudegen has quit [Quit: Bin weg.]
13:28
mbuf has quit [Ping timeout: 265 seconds]
13:36
osa1 has quit [Quit: osa1]
13:36
osa1 has joined #ocaml
13:44
osa1 has quit [Quit: osa1]
13:44
osa1 has joined #ocaml
13:54
smazga has joined #ocaml
13:59
smazga has quit [Ping timeout: 240 seconds]
14:14
shawnw has quit [Ping timeout: 264 seconds]
14:30
Haudegen has joined #ocaml
14:30
<
olle >
companion_cube: going back to value types and GC references, would &val be safe if it's read-only? I have a feeling it would. xD
14:31
<
olle >
read-only, does that include to not be part of collections etc?
14:31
<
olle >
maybe "not owned" is a better description than read-only
14:31
<
olle >
wait, borrow
14:31
zebrag has joined #ocaml
14:32
<
olle >
Which is exactly how Rust works...
14:34
<
companion_cube >
you'll have a hard time finding a system that fits the same bill as rust, while being simpler
14:34
<
olle >
Yes, it won't fit
_exactly_ the same bill.
14:35
<
companion_cube >
yeah, you'll have more restrictions
14:35
<
olle >
It depends a little bit which one is easier - opt-in GC or opt-out GC?
14:35
<
olle >
companion_cube: yeah
14:36
<
olle >
Rust and C++ is some kind of "manual GC", with smart pointers etc etc
14:36
<
companion_cube >
look at nim, what else can I say
14:36
<
companion_cube >
or recent stuff like Perceus
14:36
<
olle >
companion_cube: no, you can't mix two strategies in one "module", I think
14:37
<
companion_cube >
no, but the trend is to have Arc/Orc, with opt-in move semantics, and there are value types too
14:37
<
olle >
oh cool, lobster is a rust spinoff?
14:37
<
companion_cube >
no
14:37
<
olle >
because rust use crabs ^^
14:37
<
companion_cube >
it's a weird language but apparently the refcounting scheme is interesting
14:38
<
olle >
alright, good tip, thanks!
14:39
zebrag has quit [Quit: Konversation terminated!]
14:39
zebrag has joined #ocaml
14:42
<
olle >
companion_cube: is that a research language or just one man's love child?
14:45
ArthurStrong has quit [Quit: leaving]
14:49
<
companion_cube >
one man's thing I think
14:57
<
olle >
great, will read later +1
15:05
dinosaure has joined #ocaml
15:10
<
olle >
Oh shit, koka has a version 2 now, that's awesome
15:10
zebrag has quit [Quit: Konversation terminated!]
15:11
zebrag has joined #ocaml
15:11
<
olle >
but you still can't ENFORCE stack allocation, goddamnit
15:12
tane has joined #ocaml
15:17
<
Armael >
it's still not clear to me why you want stack allocation
15:18
<
olle >
Armael: speed? pretty clear to me :)
15:18
<
olle >
to be more precise: predictable speed
15:33
<
companion_cube >
even just using a native language with decent memory management will be much faster than php
15:33
<
companion_cube >
just saying
15:33
<
companion_cube >
(but yes, koka 2 seems absolutely amazing)
15:36
<
Drup >
olle: a generational gc like ocaml's already provide very fast allocations of short-lived objects in the minor heap, stack allocations don't provide much, as was already explained on discuss.
15:37
<
companion_cube >
up to a point, still, cause if you allocate too many small objects some of them will live to reach the major heap
15:41
<
Drup >
yeah, but would you be able to put so many objects on the stack freely ? :p
15:41
<
companion_cube >
probably, a lot of them would be shorter lived
15:41
<
companion_cube >
like intermediate tuples and options
15:50
<
flux >
I solved one program's real time problems (drawing screen 60 fps) by increasing GC collection size. I think this tells me that if your memory usage pattern has a certain form, then a stack like allocator can beat the GC handily, even if allocating the memory is fast.
15:50
<
olle >
Drup: yes, but language benchmark games says otherwise. I want to compare n-body benchmark with binary tree benchmark in one language with opt-in GC (or opt-out GC)
15:51
<
companion_cube >
as the name indicates, it's a game
15:51
<
companion_cube >
it shows max theoretical performance, not actual performance in a real program
15:51
<
companion_cube >
e.g. ATS is super fast in it
15:51
<
companion_cube >
but in practice it's not because no one can write a program at all
15:54
smazga has joined #ocaml
15:58
smazga has quit [Ping timeout: 240 seconds]
15:59
<
olle >
companion_cube: of course
16:00
smazga has joined #ocaml
16:00
<
olle >
but it does show that scripting languages are slower than compiled languages, for example
16:00
<
Drup >
not all that much
16:01
<
Drup >
it shows you can write C-like in many languages.
16:01
<
Drup >
oh rather, it shows this extends in which you can write C programs in different languages
16:03
<
companion_cube >
yes all that much
16:03
<
companion_cube >
unless you mean by using C extensions, of course
16:04
<
sleepydog >
for silly benchmarking games i'm pretty sure you can do some unreasonable things in ocaml to avoid heap allocations
16:04
waleee-cl has joined #ocaml
16:04
<
Drup >
you can, and those are mostly done in the benchmark game implementations
16:05
<
sleepydog >
the ASM.ocaml blog post from a few years ago comes to mind
16:05
<
dinosaure >
if you are aware about performance
16:06
madroach has quit [Ping timeout: 256 seconds]
16:08
<
companion_cube >
honestly my takeaway from optimizing OCaml is: don't do it too much
16:08
<
companion_cube >
you don't have many tools for it, just use good algorithms and pay attention to not use too much memory where it matters
16:08
<
companion_cube >
unrolling and stuff only works in flambda, which is not even really practical as a main switch right now
16:09
<
olle >
Drup: The binary tree benchmark is designed to hit GC
16:10
<
olle >
Most of the others are numerical calc, I think
16:10
<
olle >
So maybe it's mostly about how much you can optimize a tight loop in language X ;)
16:11
<
olle >
which DOES matter in some domains
16:11
<
companion_cube >
sure, but not representative of problems where you don't have just one single super hot loop
16:12
<
companion_cube >
which is most problems, afaict
16:12
<
olle >
yes, benchmark design is hard :d
16:13
<
companion_cube >
and not that useful anyway
16:13
<
companion_cube >
like, OCaml is reasonably fast, it just can't be as fast as C on some problems
16:13
<
companion_cube >
(in which case it's probably better to use C, or rust)
16:14
<
sleepydog >
companion_cube: why is flambda impractical right now?
16:15
<
companion_cube >
some packages won't compile with it
16:15
<
companion_cube >
it can take a lot of RAM to compile some stuff
16:15
<
olle >
I think it's useful to know the performance of languages, nevermind it being approx
16:16
<
olle >
maybe it's nerd macho culture
16:20
<
theblatte >
flambda has been my main switch for years, very practical :)
16:21
<
companion_cube >
I used to, theblatte, and then I tried to install dose
16:21
<
companion_cube >
(which sadly is in the deps of opam-publish)
16:21
<
Drup >
I still have no idea what's the issue is with dose, why is it the only package that explodes on flambda ?
16:22
<
companion_cube >
I have no idea either
16:22
<
companion_cube >
it may not be the only one, but it's the one that breaks the deal for me
16:23
tryte has quit [Remote host closed the connection]
16:23
tryte has joined #ocaml
16:27
<
d_bot >
<EduardoRFS> Obj.magic stuff?
16:29
<
d_bot >
<EduardoRFS> why can't we do this on normal OCaml?
16:29
<
d_bot >
<EduardoRFS> ```ocaml
16:29
<
d_bot >
<EduardoRFS> let show (module S: Show) v = S.show v
16:29
<
d_bot >
<EduardoRFS> ```
16:30
<
companion_cube >
you probably need `(module S : show with type t = 'a) (v:'a) = …` ?
16:30
<
companion_cube >
sth like that
16:30
<
d_bot >
<EduardoRFS> yeah I know, I'm just wondering why doesn't OCaml can infer this?
16:31
<
d_bot >
<EduardoRFS> Same, on why can't we do?
16:31
<
d_bot >
<EduardoRFS> ```ocaml
16:31
<
d_bot >
<EduardoRFS> val show: (module S: Show) -> S.t -> string
16:31
<
d_bot >
<EduardoRFS> ```
16:31
<
d_bot >
<EduardoRFS> probably the first one isn't possible, because this /\ isn't possible
16:31
<
Drup >
yes, that's more or less the reason
16:32
<
Drup >
it's something we should lift in the short-medium-ish term
16:32
<
Drup >
(see the "modular explicit" PR)
16:32
<
d_bot >
<EduardoRFS> full discussion, why isn't FCM enough to satisfy implicits?
16:33
<
companion_cube >
what is FCM -_-
16:34
<
Drup >
Fuli Culi Madness
16:34
<
Drup >
(ah! that's it, I'm rewatching FLCL this week)
16:36
<
d_bot >
<EduardoRFS> first-class modules, no, I don't know where I saw someone saying FC
16:36
<
companion_cube >
ah I see.
16:36
<
Drup >
(also Football Club of Manchester)
16:36
olle has quit [Ping timeout: 265 seconds]
16:36
<
Drup >
(or Madrid, etc)
16:38
<
d_bot >
<EduardoRFS> btw explicits is pretty cool
16:43
borne has quit [Ping timeout: 244 seconds]
16:43
<
d_bot >
<Kakadu> Merlin experts, please, help!
16:45
chripell has joined #ocaml
16:46
Haudegen has quit [Quit: Bin weg.]
16:59
hnOsmium0001 has joined #ocaml
17:10
smazga has quit [Ping timeout: 240 seconds]
17:12
smazga has joined #ocaml
17:16
smazga has quit [Ping timeout: 246 seconds]
17:16
Jesin has quit [Ping timeout: 256 seconds]
17:19
mxns has joined #ocaml
17:26
smazga has joined #ocaml
17:34
bartholin has quit [Quit: Leaving]
17:45
mbuf has joined #ocaml
17:57
Haudegen has joined #ocaml
18:08
landonf has joined #ocaml
18:16
jnavila has joined #ocaml
18:17
shmibs has quit [Quit: leaving =o]
18:17
shmibs has joined #ocaml
18:19
mbuf has quit [Quit: Leaving]
18:25
amiloradovsky has joined #ocaml
18:33
Jesin has joined #ocaml
18:39
jnavila has quit [Quit: Konversation terminated!]
18:40
jnavila has joined #ocaml
19:04
smazga has quit [Ping timeout: 256 seconds]
19:07
jnavila has quit [Quit: Konversation terminated!]
19:13
smazga has joined #ocaml
19:15
Tuplanolla has joined #ocaml
19:15
vicfred has joined #ocaml
19:16
jnavila has joined #ocaml
19:20
smazga has quit [Ping timeout: 246 seconds]
19:25
borne has joined #ocaml
19:26
jnavila has quit [Quit: Konversation terminated!]
19:27
jnavila has joined #ocaml
19:29
jnavila has quit [Client Quit]
19:30
jnavila has joined #ocaml
19:34
smazga has joined #ocaml
19:35
amiloradovsky has quit [Remote host closed the connection]
19:35
amiloradovsky has joined #ocaml
19:39
smazga has quit [Ping timeout: 240 seconds]
19:44
smazga has joined #ocaml
19:48
mxns has quit [Ping timeout: 240 seconds]
19:49
smazga has quit [Ping timeout: 265 seconds]
19:49
mxns has joined #ocaml
20:03
jnavila has quit [Remote host closed the connection]
20:08
vicfred has quit [Read error: Connection reset by peer]
20:08
amiloradovsky has quit [Remote host closed the connection]
20:09
amiloradovsky has joined #ocaml
20:11
l1x has joined #ocaml
20:11
smazga has joined #ocaml
20:15
smazga has quit [Ping timeout: 246 seconds]
20:18
mxns has quit [Ping timeout: 240 seconds]
20:19
mxns has joined #ocaml
20:43
smazga has joined #ocaml
20:45
jnavila has joined #ocaml
20:48
smazga has quit [Ping timeout: 264 seconds]
20:48
dborisog has quit [Ping timeout: 264 seconds]
20:51
narimiran has quit [Ping timeout: 256 seconds]
20:52
amiloradovsky has quit [Remote host closed the connection]
20:52
amiloradovsky has joined #ocaml
20:57
steenuil has quit [Read error: Connection reset by peer]
20:59
steenuil has joined #ocaml
20:59
amiloradovsky has quit [Remote host closed the connection]
21:00
amiloradovsky has joined #ocaml
21:02
smazga has joined #ocaml
21:17
amiloradovsky has quit [Remote host closed the connection]
21:17
amiloradovsky has joined #ocaml
21:22
zebrag has quit [Quit: Konversation terminated!]
21:23
zebrag has joined #ocaml
21:26
smerdyakov has left #ocaml ["The Lounge"]
21:32
Serpent7776 has quit [Quit: leaving]
21:55
jnavila has quit [Quit: Konversation terminated!]
21:58
vicfred has joined #ocaml
22:03
motherfsck has joined #ocaml
22:18
borne has quit [Ping timeout: 264 seconds]
22:18
amiloradovsky has quit [Remote host closed the connection]
22:22
zebrag has quit [Quit: Konversation terminated!]
22:23
zebrag has joined #ocaml
22:35
borne has joined #ocaml
23:01
tane has quit [Quit: Leaving]
23:01
mxns has quit [Ping timeout: 246 seconds]
23:01
mxns has joined #ocaml
23:11
mxns has quit [Ping timeout: 260 seconds]
23:22
zebrag has quit [Quit: Konversation terminated!]
23:23
zebrag has joined #ocaml
23:42
mxns has joined #ocaml
23:48
mxns has quit [Ping timeout: 272 seconds]
23:55
mxns has joined #ocaml