companion_cube changed the topic of #ocaml to: Discussions about the OCaml programming language | http://www.ocaml.org | OCaml 4.11 release notes: https://caml.inria.fr/pub/distrib/ocaml-4.11/notes/Changes | Try OCaml in your browser: http://try.ocamlpro.com | Public channel logs at http://irclog.whitequark.org/ocaml
zebrag has quit [Quit: Konversation terminated!]
zebrag has joined #ocaml
<dieggsy> how advisable or inadvisable is it to use jane street's Base (instead of the built-in standard library)
<companion_cube> it's pretty ok I think
nfc has joined #ocaml
vicfred has joined #ocaml
<dieggsy> I guess my question is more do you guys consider the feature set to be worth the extra dependency
zebrag has quit [Quit: Konversation terminated!]
zebrag has joined #ocaml
rosterok has quit [Quit: Connection closed for inactivity]
<companion_cube> I do, but with another stdlib :)
<dieggsy> I'm also not entirely clear on the role of semicolons. I've seen it mentioned multiple times that I don't need them at all ? but if i write a code file with some function not terminated by semicolons and then a single un-indented line calling that function, i get errors as if i'm still in the body of the function
<dieggsy> so, if i'm not supposed to use double semicolons, what's the idiomatic way of ending a function ?
<dieggsy> this https://baturin.org/docs/ocaml-faq/#the-double-semicolon seems to suggest to use a let _ = but that seems overly verbose ?
<companion_cube> hmm `let () = …` at the toplevel is only useful for side effects
<companion_cube> which, you know, you shouldn't do that in an actual program
<companion_cube> (not often, I mean. It's mostly for initialization stuff that really requires it)
<dieggsy> companion_cube: I mean, I write a function that 'does and prints something' then i want to call that function.
<dieggsy> do i put a double semicolon after the function definition? do i do let _ = function_call ()
<companion_cube> sure, `let () = main()`
<companion_cube> that's more or less what I do
<companion_cube> `main();;` also works but most people find `;;` ugly outside the toplevel
<dieggsy> interesting
<dieggsy> why let () and not let _ ?
<dieggsy> or is that just preference
<companion_cube> ah! it's a preference, but it's a bit stronger, it forces the result ot be `()`
<companion_cube> if you forget an argument it'll fail with a type error
<dieggsy> oh interesting
<dieggsy> thank you
<companion_cube> like: `let () = main` will fail because you need to give main a parameter
<dieggsy> companion_cube: this is really silly, but what if i want to print "TITLE" and then call main
<dieggsy> ..do i need yet another let in there
hackinghorn has joined #ocaml
<companion_cube> no, not ncessarily
<companion_cube> `let () = print_endline "hello"; main()` works
<dieggsy> Ah.
<dieggsy> companion_cube: you mentioned you use a different stdlib? which one? recommendations?
<hackinghorn> so I want to write a function, do I just have to "let .. = .. in" every line?
<companion_cube> for variables? yep
<companion_cube> dieggsy: containers! but I'm biased, I wrote it :)
zebrag has quit [Quit: Konversation terminated!]
osa1 has quit [Read error: Connection reset by peer]
osa1 has joined #ocaml
sagax has quit [Quit: Konversation terminated!]
mfp has quit [Ping timeout: 265 seconds]
<qwr> ;; main() (* looks like lisp comment *)
layet has quit [Quit: Leaving]
waleee-cl has quit [Quit: Connection closed for inactivity]
narimiran has joined #ocaml
raver has quit [Ping timeout: 265 seconds]
shawnw has quit [Ping timeout: 265 seconds]
mro_name has joined #ocaml
shawnw has joined #ocaml
Haudegen has joined #ocaml
mro_name has quit [Remote host closed the connection]
mro_name has joined #ocaml
mro_name has quit [Ping timeout: 260 seconds]
mro_name has joined #ocaml
olle_ has joined #ocaml
mro_name has quit [Remote host closed the connection]
mro_name has joined #ocaml
tane_ has joined #ocaml
vicfred has quit [Quit: Leaving]
tane_ is now known as tane
bartholin has joined #ocaml
kakadu has joined #ocaml
zebrag has joined #ocaml
kakadu has quit [Remote host closed the connection]
kakadu has joined #ocaml
chripell has joined #ocaml
chripell_ has quit [Ping timeout: 246 seconds]
hackinghorn has quit [Quit: Leaving]
nicoo has quit [Remote host closed the connection]
nicoo has joined #ocaml
mfp has joined #ocaml
Serpent7776 has quit [Read error: Connection reset by peer]
Serpent7776 has joined #ocaml
mro_name has quit [Remote host closed the connection]
mro_name has joined #ocaml
layet has joined #ocaml
mro_name has quit [Remote host closed the connection]
mro_name has joined #ocaml
jsoo has quit [Quit: ZNC 1.8.2 - https://znc.in]
mro_name has quit [Ping timeout: 260 seconds]
jsoo has joined #ocaml
mro_name has joined #ocaml
mro_name has quit [Remote host closed the connection]
mro_name has joined #ocaml
mro_name_ has joined #ocaml
mro_name has quit [Ping timeout: 250 seconds]
<olle_> Question: Would saving a result to a database preserve referential transparency?
<olle_> I feel like it should
<olle_> While loading obviously wouldn't
andreas303 has quit [Remote host closed the connection]
andreas303 has joined #ocaml
sbad has joined #ocaml
jsoo has quit [Remote host closed the connection]
waleee-cl has joined #ocaml
jsoo has joined #ocaml
MavneetK has joined #ocaml
MavneetK has quit [Ping timeout: 240 seconds]
<d_bot> <giltho> Hi !
<d_bot> <giltho> Anybody has advice on how to debug a stack overflow when for some reason the full backtrace is not provided ?
<d_bot> <giltho> All I get is
<d_bot> <giltho> ```
<d_bot> <giltho> Original Backtrace:
<d_bot> <giltho> Raised by primitive operation at file "GillianCore/engine/GeneralSemantics/General/GInterpreter.ml", line 948, characters 10-97
<d_bot> <giltho> Called from file "GillianCore/engine/Abstraction/Verifier.ml", line 440, characters 10-107
<d_bot> <giltho> Called from file "GillianCore/engine/Abstraction/Verifier.ml", line 654, characters 35-52
<d_bot> <giltho> Called from file "list.ml", line 121, characters 24-34
<d_bot> <giltho> Called from file "GillianCore/engine/Abstraction/Verifier.ml", line 653, characters 14-139
<d_bot> <giltho> Called from file "GillianCore/engine/Abstraction/Verifier.ml", line 752, characters 17-67
<d_bot> <giltho> Called from file "GillianCore/logging/logging.ml", line 50, characters 11-17
<d_bot> <giltho> ```
<d_bot> <haochenx> Hi guys, why this does not type check
<d_bot> <haochenx>
<d_bot> <haochenx> ```
<d_bot> <haochenx> module type Greeting = sig
<d_bot> <haochenx> type t
<d_bot> <haochenx> val hello : string
<d_bot> <haochenx> end
<d_bot> <haochenx>
<d_bot> <haochenx> module type MakeGreeting =
<d_bot> <haochenx> (functor (M1 : Greeting)
<d_bot> <haochenx> (M2 : Greeting with type t = M1.t) ->
<d_bot> <haochenx> sig
<d_bot> <haochenx> type t = M1.t
<d_bot> <haochenx> val hello : string
<d_bot> <haochenx> end with type M1.t = M2.t)
<d_bot> <haochenx> ```
<d_bot> <haochenx>
<d_bot> <haochenx> while this does?
<d_bot> <haochenx>
<d_bot> <haochenx> ```
<d_bot> <haochenx> module type Greeting = sig
<d_bot> <haochenx> type t
<d_bot> <haochenx> val hello : string
<d_bot> <haochenx> end
<d_bot> <haochenx>
<d_bot> <haochenx> module type MakeGreeting =
<d_bot> <haochenx> (functor (M1 : Greeting)
<d_bot> <haochenx> (M2 : Greeting with type t = M1.t) ->
<d_bot> <haochenx> sig
<d_bot> <haochenx> type t = M1.t
<d_bot> <haochenx> val hello : string
<zozozo> @haochenx please avoid multiline code fragments and use a paste service please, ^^ (multiline code fragments tends to spam a bit the irc channel)
<olle_> ><
<d_bot> <haochenx> made a gist of my previous question: https://gist.github.com/haochenx/fd4b02deeed88b0d573e6bb8b0eac01b
<d_bot> <octachron> @haochenx , the `with` constraint applies to the `sig ... end` signature, it can only adds equalities to types defined in this signature, not to arbitrary types.
mro_name_ has quit [Remote host closed the connection]
shawnw has quit [Ping timeout: 265 seconds]
gopiandcode has quit [Remote host closed the connection]
mro_name has joined #ocaml
sbad has quit [Remote host closed the connection]
sbad has joined #ocaml
mro_name has quit [Ping timeout: 258 seconds]
mro_name has joined #ocaml
ankit has joined #ocaml
ankit has quit [Quit: Connection closed]
sbad has quit [Ping timeout: 245 seconds]
olle_ has quit [Ping timeout: 246 seconds]
Shreya has joined #ocaml
Shreya has quit [Ping timeout: 258 seconds]
Tuplanolla has joined #ocaml
bartholin has quit [Quit: Leaving]
kakadu has quit [Remote host closed the connection]
vicfred has joined #ocaml
vicfred has quit [Client Quit]
vicfred has joined #ocaml
Shreya has joined #ocaml
curtosis[away] has joined #ocaml
curtosis[away] has quit [Quit: My Mac Mini has gone to sleep. ZZZzzz…]
zebrag has quit [Quit: Konversation terminated!]
zebrag has joined #ocaml
narimiran has quit [Ping timeout: 265 seconds]
olle_ has joined #ocaml
mro_name has quit [Quit: Leaving...]
olle_ has quit [Ping timeout: 265 seconds]
<d_bot> <froyo> interesting that "Text", the package I find the nicest to work with when considering unicode, is considered deprecated
Shreya has quit [Quit: Leaving]
raver has joined #ocaml
tane has quit [Quit: Leaving]
zebrag has quit [Quit: Konversation terminated!]
zebrag has joined #ocaml
rock64 has joined #ocaml
<rock64> There's no language out there with memory safe region-based memory allocation?
rock64 is now known as ollehar
<ollehar> I did found some papers on it
<ollehar> find*
<ollehar> First-class regions, or something? Hm.
* qwr . o O ( PL/I has area type, but of course it was unsafe ;) )
<ollehar> PL/I?
<qwr> that real old algol successor
<ollehar> ah
<ollehar> hehe
<qwr> parasail seems to modern language with region based memory management
<ollehar> parasail?
<ollehar> hm
<ollehar> damn
<ollehar> "end func Hello_World;"
<ollehar> ok.....
<ollehar> Some guys made a complicated system combining regions and ownerships
<ollehar> Maybe a region could be passed to a function and then all allocations use it implicitly? Hm.
<ollehar> And maybe functions can just inherit the region from parent scope. Although that might be dangerous
<ollehar> OCaml never got anything like Clean's uniqueness type, right?
<ollehar> No one attempted it?
Haudegen has quit [Ping timeout: 260 seconds]
curtosis[away] has joined #ocaml
zebrag has quit [Quit: Konversation terminated!]
zebrag has joined #ocaml
vicfred has quit [Quit: Leaving]
curtosis[away] has quit [Quit: My Mac Mini has gone to sleep. ZZZzzz…]