adrien changed the topic of #ocaml to: Discussions about the OCaml programming language | http://www.ocaml.org | OCaml 4.07.0 release notes: https://caml.inria.fr/pub/distrib/ocaml-4.07/notes/Changes | Try OCaml in your browser: http://try.ocamlpro.com | Public channel logs at http://irclog.whitequark.org/ocaml | Due to ongoing spam, you must register your nickname to talk on the channel
ziyourenxiang has joined #ocaml
alienated has joined #ocaml
alienated has quit [Ping timeout: 260 seconds]
kvda has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
__idiot__ has joined #ocaml
__idiot__ has quit [Killed (Sigyn (Spam is off topic on freenode.))]
AnLog has quit [Ping timeout: 276 seconds]
kvda has joined #ocaml
neatonk has joined #ocaml
xaimus_ has quit [Ping timeout: 244 seconds]
xaimus has joined #ocaml
moei has quit [Ping timeout: 244 seconds]
FreeBirdLjj has joined #ocaml
neatonk has quit [Ping timeout: 240 seconds]
pathfinder5 has joined #ocaml
pathfinder5 has quit [Killed (Sigyn (Spam is off topic on freenode.))]
mfp has quit [Ping timeout: 268 seconds]
Jesin has joined #ocaml
Fare has quit [Ping timeout: 260 seconds]
jao has quit [Ping timeout: 240 seconds]
FreeBirdLjj has quit [Remote host closed the connection]
jao has joined #ocaml
Haudegen has quit [Remote host closed the connection]
FreeBirdLjj has joined #ocaml
FreeBirdLjj has quit [Remote host closed the connection]
FreeBirdLjj has joined #ocaml
kvda has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
silver has quit [Read error: Connection reset by peer]
FreeBirdLjj has quit [Ping timeout: 244 seconds]
xaimus has quit [Ping timeout: 268 seconds]
xaimus has joined #ocaml
Fare has joined #ocaml
cobreadmonster has joined #ocaml
ben_ has quit [Remote host closed the connection]
jao has quit [Ping timeout: 240 seconds]
sophiag has joined #ocaml
quipa_ has joined #ocaml
quipa_ has quit [Remote host closed the connection]
quipa_ has joined #ocaml
quipa has quit [Ping timeout: 248 seconds]
tormen_ has joined #ocaml
tormen has quit [Ping timeout: 256 seconds]
quipa_ is now known as quipa
ygrek has quit [Ping timeout: 255 seconds]
kvda has joined #ocaml
quipa has quit [Quit: Leaving]
kvda has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
BitPuffin has quit [Remote host closed the connection]
neatonk has joined #ocaml
tvn2 has joined #ocaml
<sophiag> i created a variant that's a lot like option, except None is a constructor for unit, the purpose being so i can abstract over different data structures that are both immutable and mutable: e.g. `type 't option = None of unit | Some of 't` `val set : 'a t option -> int -> 'a -> 'a t option`. is there a better way to do this? obviously if i keep using this type i will change the name and that of the constructors...
tvn2 has quit []
ben_ has joined #ocaml
ben_ has quit [Remote host closed the connection]
ben_ has joined #ocaml
tvn2 has joined #ocaml
tvn2 has quit []
jbrown has quit [Ping timeout: 240 seconds]
TheSilentLink4 has joined #ocaml
TheSilentLink4 has quit [Killed (Sigyn (Spam is off topic on freenode.))]
cobreadmonster has quit [Quit: Connection closed for inactivity]
Faylite2 has joined #ocaml
ben_ has quit [Remote host closed the connection]
Faylite2 has quit [Remote host closed the connection]
justJanne10 has joined #ocaml
justJanne10 has quit [Killed (Sigyn (Spam is off topic on freenode.))]
neatonk has quit [Ping timeout: 248 seconds]
Pidgeotto21 has joined #ocaml
Pidgeotto21 has quit [Killed (Sigyn (Spam is off topic on freenode.))]
ygrek has joined #ocaml
theShirbiny has joined #ocaml
theShirbiny has quit [Killed (Sigyn (Spam is off topic on freenode.))]
jeggott25 has joined #ocaml
jeggott25 has quit [Killed (Sigyn (Spam is off topic on freenode.))]
swapgs25 has joined #ocaml
swapgs25 has quit [Killed (Sigyn (Spam is off topic on freenode.))]
Warped28 has joined #ocaml
Warped28 has quit [Killed (Sigyn (Spam is off topic on freenode.))]
shakalaka has quit [Ping timeout: 240 seconds]
sagotch has joined #ocaml
ben_ has joined #ocaml
caltelt has quit [Ping timeout: 240 seconds]
ben_ has quit [Ping timeout: 248 seconds]
Fare has quit [Ping timeout: 260 seconds]
zolk3ri has joined #ocaml
<Drup> sophiag: how is that any different than normal option ?
ygrek has quit [Ping timeout: 244 seconds]
zolk3ri has quit [Ping timeout: 250 seconds]
zolk3ri has joined #ocaml
deedra9 has joined #ocaml
deedra9 has quit [Killed (Sigyn (Spam is off topic on freenode.))]
ByronJohnson28 has joined #ocaml
ByronJohnson28 has quit [Killed (Sigyn (Spam is off topic on freenode.))]
webshinra has quit [Remote host closed the connection]
webshinra has joined #ocaml
jaar has joined #ocaml
webshinra has quit [Ping timeout: 256 seconds]
webshinra has joined #ocaml
mfp has joined #ocaml
Bronsa has joined #ocaml
pierpal has quit [Quit: Poof]
pierpal has joined #ocaml
ben has joined #ocaml
ben has quit [Ping timeout: 240 seconds]
TheLemonMan has joined #ocaml
bigpresh26 has joined #ocaml
bigpresh26 has quit [Killed (Sigyn (Spam is off topic on freenode.))]
<discord> <nardward> greetings trying to get ocaml and utop up and running on arch linux
<discord> <andreypopp> @nardward I've found the easiest way to use utop during dev is to use dune and then dune utop
silenc3r has joined #ocaml
andreypopp has joined #ocaml
<discord> <nardward> i install opam and ocaml via pacman, and initialized opam with opam init --compiler=4.07.0. because with 4.06.0 there were some issues installing base, ocaml-compiler-libs and some other package.
<silenc3r> does OCaml have context managers like Python (with keyword)?
<discord> <nardward> but the problem now is the following error Cannot load required shared library dllcore_stubs. Reason: /home/smotti/.opam/4.07.0/lib/stublibs/dllcore_stubs.so: /home/smotti/.opam/4.07.0/lib/stublibs/dllcore_stubs.so: undefined symbol: makedev. when starting utop. which means i can't use anything from Core :/
<discord> <nardward> @andreypopp what exactly do you mean by that. i'm new to all this.
<discord> <andreypopp> @nardward there's dune https://dune.readthedocs.io a build system for OCaml. It's not strictly required for using utop with OCaml but if you are going to use OCaml seriously you have to use it anyway.
<discord> <nardward> so you mean building the latest utop version via dune?
<discord> <andreypopp> nope, I mean you setup a project with dune with needed dependencies (core in your case) and then run dune utop which launches utop with all dependencies (core included) available.
<discord> <andreypopp> @nardward although in your case it seems like you have a broken opam switch?
<discord> <nardward> hm but what if i just want to dabble a little bit
<discord> <andreypopp> ignore me in this case, I just really like dune and how it makes things easy
<discord> <nardward> @andreypopp i don't know. started from scratch. neither straight out of box works: pacman -S opam ocaml; opam init with compiler being 4.06.0, which already fails at installing some important packages.
<discord> <andreypopp> @nardward paths in your error message indicate that you have 4.07.0 compiler version
<discord> <nardward> thus i, removed ~/.opam and initialized it with a newer version.
<discord> <andreypopp> ah ok
<discord> <nardward> by the way i had the same error with 4.06.0
<discord> <nardward> :/. kind of disappointing. find the language interesting and something build on top of it. but can't even start out properly when right at the beginning there are such obstacles :/
<discord> <andreypopp> this is why I recommended Dune
<discord> <nardward> but what if i just want to dabble a little bit in a REPL
<discord> <nardward> without setting up a whole project
<ZirconiumX> Either download `utop` from opam, or just use `ocaml`
<discord> <Christophe> What does opam switch give @nardward ?
<discord> <nardward> system C system System compiler (4.06.0)
<discord> <nardward> note i just started from scratch again
<discord> <nardward> that's why a different version
Thorne3 has joined #ocaml
Thorne3 has quit [Killed (Sigyn (Spam is off topic on freenode.))]
<discord> <nardward> $ dune utop Don't know how to build .utop/utop.exe :/
<octachron> nardward, you should first install the full ocaml package with `pacman -S ocaml-compiler-libs` then install utop with `opam install utop`
<discord> <Christophe> Probably a problem with using the system switch, try to create your ow switch maybe
<discord> <nardward> @Christophe did that already. @octachron hm i guess i actually just did that, but can try again.
mrkirby15323 has joined #ocaml
mrkirby15323 has quit [Killed (Sigyn (Spam is off topic on freenode.))]
AnLog has joined #ocaml
HepaR13 has joined #ocaml
<discord> <Christophe> what I have installed is ocaml, ocaml-ctypes, ocamlbuild and ocaml-num, and then opam-git from aur. And i'm sure that only "ocaml" is relevant here
<discord> <rgrinberg> @andreypopp would be nice if esy could setup utop repl's as well btw. Kind of like how stack works
<discord> <rgrinberg> you select a list of packages and it will create a sandbox for you and run ghci in it
<discord> <Christophe> I don't have "ocaml-compiler-libs"
<discord> <andreypopp> @rgrinberg good idea, we had this feature before actually, but it wasn't used that much
<discord> <nardward> hm nope still not working :/
<discord> <rgrinberg> @andreypopp yeah, i don't use dune utop often either. But when I need it, it's 💯
<discord> <andreypopp> exactly
<discord> <nardward> @Christophe if i use the system compiler (installed via pacman ocaml) opam fails to install standard required packages, if ocaml-compiler-libs isn't installed via pacman. that is not the case if opam is initialized with a different compiler version
<discord> <Christophe> What the hell did I do back then 🤔
<discord> <rgrinberg> @andreypopp note the kind of problems nardward is having, i hope that esy will fix these issues
<discord> <rgrinberg> I believe opam is hopeless in this aspect
jaar has quit [Ping timeout: 276 seconds]
HepaR13 has quit [Ping timeout: 244 seconds]
<discord> <andreypopp> I agree that esy could step up and provide this feature.
<octachron> nardward, what is the first error that you encounter?
<discord> <nardward> @octachron Cannot load required shared library dllcore_stubs. Reason: /home/smotti/.opam/4.07.0/lib/stublibs/dllcore_stubs.so: /home/smotti/.opam/4.07.0/lib/stublibs/dllcore_stubs.so: undefined symbol: makedev. Note it doesn't seem to matter what compiler version is used
<octachron> Did you forget to run "eval $(opam env)"?
<discord> <nardward> nope
<discord> <Christophe> Just tried in a container, the minimum I needed to have utop up and running was : pacman -Sy --needed ocaml opam patch m4 make binutils gcc ocaml-compiler-libs && opam init && evalopam config env&& opam install utop
jaar has joined #ocaml
<discord> <nardward> but can you use things from core?
<discord> <Christophe> Well I haven't installed core, wait ...
silver has joined #ocaml
<discord> <Christophe> No indeed, damn I thought it was an error in the install ...
<discord> <andreypopp> is it opam 2?
sagotch has quit [Quit: Leaving.]
kvda has joined #ocaml
<discord> <nardward> @andreypopp tried with opam 1.2.2 and 2.0.0
<discord> <Christophe> Interesting : opam switch 4.06.0 =-=- Installing compiler 4.06.0 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= [default.comp] https://github.com/ocaml/ocaml/archive/4.06.0.tar.gz downloaded Now compiling OCaml. This may take a while, please bear with us... Done. =-=- Gathering sources =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= =-=- Processing actions
<discord> -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= -> installed base-bigarray.base -> installed base-threads.base -> installed base-unix.base Done. # To setup the new switch in the current shell, you need to run: eval `opam config env` [root@0c465efa4ccf /]# eval `opam config env` [WARNING] Running as root is not recommended bash: �CAML_LD_LIBRARY_PATH=/root/.opam/4.06.0/lib/stublibs: No such file or directory
<discord> <Christophe> (root is obviously because i'm in a container)
<discord> <Christophe> and yet the folder is there but empty
<discord> <Christophe> [root@0c465efa4ccf ~]# ls /root/.opam/4.06.0/lib/ base-bigarray base-threads base-unix ocaml stublibs toplevel [root@0c465efa4ccf ~]# ls /root/.opam/4.06.0/lib/stublibs [root@0c465efa4ccf ~]#
<discord> <nardward> hm it's kind of weird that autocomplete still works in utop for stuff in Core but: utop # Core.Filename.concat;; Error: Reference to undefined global `Core__Core_filename'
<discord> <Christophe> @nardward can you also use core_kernel correctly ?
AnLog has quit [Remote host closed the connection]
<discord> <nardward> seems like it: utop # Core_kernel.String.make;; - : int -> char -> string = <fun>
<discord> <Christophe> Seems like dllcore_stubs.so is the one that is not properly installed, it's strange
kvda has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
<discord> <nardward> But could it really have something to do with not being able to use certain things from Core?
<discord> <nardward> dllcore_stubs.so is present in my case
<discord> <nardward> though it misses the symbol makedev
<discord> <nardward> where do those stubs come from in the first place?
<discord> <nardward> i guess they ship with the compiler?
<discord> <Christophe> Ah yes true you had a different error message ...
<octachron> no they are Core C stubs
kvda has joined #ocaml
Bronsa has quit [Remote host closed the connection]
Bronsa has joined #ocaml
quipa has joined #ocaml
AnLog has joined #ocaml
quipa has quit [Quit: Leaving]
<xvilka> Is it possible that if there is an exception the stacktrace would not show the line like "Lwt_main.run mymainfunc" but the precise place in the "mymainfunc" or its children?
andreypopp has quit [Quit: Connection closed for inactivity]
<discord> <nardward> hm no success. i guess i just move on to reason+bucklescript :/.
<discord> <andreypopp> @nardward you can try https://esy.sh it's an alternative workflow for opam.
<discord> <nardward> or don't use certain parts of core and instead use those parts from base (caml)
<discord> <nardward> the question is if that really helps. it seems like some system issue and compiling these c stubs.
<octachron> andreypopp, since the issue is an distribution integration issue I doubt that esy will help except if it has a good integration with archlinux
<octachron> (and I have no trouble at all running Core on archlinux)
<discord> <andreypopp> @octachron what kind of integration esy needs to do with archlinux? I think it should work nicely, it sandboxes properly, I believe, not to depend on the host OS (of cource not entirely, but core should work).
nullifidian_ has quit [Read error: Connection reset by peer]
sagotch has joined #ocaml
nullifidian_ has joined #ocaml
<Armael> isn't opam2 doing sandboxing as well?
apetresc15 has joined #ocaml
apetresc15 has quit [Killed (Sigyn (Spam is off topic on freenode.))]
<discord> <andreypopp> not that kind of sandboxing, esy constructs isolated environment for build systems
nullifidian_ has quit [Read error: Connection reset by peer]
nullifidian_ has joined #ocaml
<octachron> andreypopp, esy still depends on the host C compiler, isn'it? And since the issue seems to be the cstub compilation, I am not sure how esy is supposed to help
<discord> <andreypopp> @octachron you are right, if the issue is the host compiler then esy probably won't help, we don't supply C compiler at the moment
<discord> <andreypopp> though I haven't seen arch linux failures with esy
<discord> <andreypopp> is there a docker image I can try with esy?
Haudegen has joined #ocaml
<octachron> nardward, your issue is https://github.com/janestreet/core/pull/114
<discord> <nardward> @octachron thanks a lot. i was just looking at the issues to see if someone has the same problem.
<discord> <nardward> and the repo search doesn't list results in issues/pull requests :/
_andre has joined #ocaml
cryptocat1094 has joined #ocaml
pierpal has quit [Quit: Poof]
pierpal has joined #ocaml
ben has joined #ocaml
ben has quit [Ping timeout: 240 seconds]
neatonk has joined #ocaml
spew has joined #ocaml
Fare has joined #ocaml
FreeBirdLjj has joined #ocaml
jbrown has joined #ocaml
moei has joined #ocaml
<discord> <nardward> Oo #=== ERROR while compiling core.v0.11.2 =======================================# # context 2.0.0 | linux/x86_64 | ocaml-base-compiler.4.07.0 | pinned(git+file:///home/smotti/Projects/OCaml/core#makedev#c08302f5) # path ~/.opam/4.07.0/.opam-switch/build/core.v0.11.2 # command ~/.opam/opam-init/hooks/sandbox.sh build jbuilder build -p core -j 3 # exit-code 1 # env-file
<discord> ~/.opam/log/core-10159-d8a4ae.env # output-file ~/.opam/log/core-10159-d8a4ae.out ### output ### # Error: The implementation src/iobuf_debug.pp.ml # [...] # val compare : t -> t -> int # val sexp_of_t : t -> Ppx_sexp_conv_lib.Sexp.t # val window : ('a, 'b) Core__.Iobuf.t -> Core__.Iobuf.Lo_bound.t # val restore : # Core__.Iobuf.Lo_bound.t -> # ('a,
<discord> Core__.Iobuf_intf.seek) Core__.Iobuf.t -> # Core_kernel__.Import.unit # val limit : ('a, 'b) Core__.Iobuf.t -> Core__.Iobuf.Lo_bound.t # end # is not included in # (module Core__Iobuf.Lo_bound)
<discord> <nardward> Error: The implementation src/iobuf_debug.pp.ml does not match the interface src/.core.objs/core__Iobuf_debug.cmi:
Jesin has quit [Remote host closed the connection]
Jesin has joined #ocaml
zaratustra9 has joined #ocaml
zaratustra9 has quit [Killed (Sigyn (Spam is off topic on freenode.))]
<octachron> nardward, this sounds like the test generation failing (due to some missing build dependencies?)
<discord> <nardward> the first error that: - File "src/core_time_intf.ml", line 10, characters 17-43: - Error: Unbound module type Time.S_kernel_without_zone - ocamlc src/.core.objs/core__Iobuf_debug.{cmo,cmt} (exit 2)
AnLog has quit [Read error: Connection reset by peer]
AnLog has joined #ocaml
<octachron> nardward, you should use the v0.11.2 tag not master
be_______ has joined #ocaml
<discord> <nardward> @octachron i cloned https://github.com/dark/core/tree/makedev/src
<discord> <nardward> and pinned that in opam
Fare has quit [Ping timeout: 256 seconds]
Fare has joined #ocaml
<octachron> then you can do "git checkout v0.11.2 -b 0.11 && git cherry-pick c08302"
be_______ has quit [Ping timeout: 240 seconds]
Cajs19 has joined #ocaml
Cajs19 has quit [Remote host closed the connection]
<discord> <nardward> still the same
<octachron> even after a make clean to reset the state?
<discord> <nardward> awesome that worked. thanks a lot @octachron
<discord> <nardward> i thought that opam will create a temp build directory
<octachron> it depends on the pinning mode
<discord> <nardward> i see
neatonk has quit [Ping timeout: 260 seconds]
silenc3r has quit [Quit: Leaving]
quipa has joined #ocaml
kvda has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
jao has joined #ocaml
quipa has quit [Quit: Leaving]
sagotch has quit [Quit: Leaving.]
neatonk has joined #ocaml
TheLemonMan has quit [Quit: "It's now safe to turn off your computer."]
FreeBirdLjj has quit [Remote host closed the connection]
FreeBirdLjj has joined #ocaml
Fare has quit [Ping timeout: 256 seconds]
Alucard4200 has joined #ocaml
Alucard4200 has quit [Killed (Sigyn (Spam is off topic on freenode.))]
erwounn has quit [Ping timeout: 268 seconds]
erwounn has joined #ocaml
Haudegen has quit [Ping timeout: 244 seconds]
<reynir> @andreypopp#8075 Often the problem with archlinux is due to the rolling release - opam and other package managers don't expect system libraries to change, usually
Haudegen has joined #ocaml
Jesin has quit [Remote host closed the connection]
Fare has joined #ocaml
pierpal has quit [Quit: Poof]
pierpal has joined #ocaml
be_______ has joined #ocaml
Jesin has joined #ocaml
Bronsa has quit [Ping timeout: 240 seconds]
be_______ has quit [Ping timeout: 240 seconds]
RoBz21 has joined #ocaml
RoBz21 has quit [Killed (Sigyn (Spam is off topic on freenode.))]
roygbiv has joined #ocaml
ygrek has joined #ocaml
Fare has quit [Ping timeout: 240 seconds]
jaar has quit [Quit: Leaving]
Fare has joined #ocaml
FreeBirdLjj has quit [Remote host closed the connection]
moolc has joined #ocaml
pierpal has quit [Quit: Poof]
pierpal has joined #ocaml
pierpal has quit [Client Quit]
pierpal has joined #ocaml
kvda has joined #ocaml
kvda has quit [Ping timeout: 244 seconds]
parcs has quit [Ping timeout: 260 seconds]
parcs has joined #ocaml
codebam11 has joined #ocaml
codebam11 has quit [Killed (Sigyn (Spam is off topic on freenode.))]
quipa has joined #ocaml
roygbiv has quit [Quit: ™]
kakadu has joined #ocaml
moolc has quit [Quit: ERC (IRC client for Emacs 27.0.50)]
tarptaeya has joined #ocaml
neatonk has quit [Ping timeout: 240 seconds]
neatonk has joined #ocaml
tharkun6 has joined #ocaml
tharkun6 has quit [Killed (Sigyn (Spam is off topic on freenode.))]
nullifidian_ is now known as nullifidian
roygbiv has joined #ocaml
cryptocat1094 has quit [Quit: later]
pierpal has quit [Quit: Poof]
pierpal has joined #ocaml
TheLemonMan has joined #ocaml
Haudegen has quit [Ping timeout: 256 seconds]
pierpal has quit [Quit: Poof]
pierpal has joined #ocaml
pierpa has joined #ocaml
jnavila has joined #ocaml
jnavila has quit [Ping timeout: 240 seconds]
Haudegen has joined #ocaml
jnavila has joined #ocaml
neatonk1 has joined #ocaml
neatonk has quit [Ping timeout: 272 seconds]
Guest43926 has joined #ocaml
Guest43926 has quit [Killed (Sigyn (Spam is off topic on freenode.))]
spew has quit [Quit: going home]
ben has joined #ocaml
benzrf has left #ocaml ["WeeChat 2.2"]
ben has quit [Ping timeout: 272 seconds]
Maxdaman1us has joined #ocaml
Maxdaman1us has joined #ocaml
Maxdaman1us has quit [Changing host]
Maxdamantus has quit [Ping timeout: 240 seconds]
neatonk1 has quit [Ping timeout: 240 seconds]
benoliver9992 has joined #ocaml
benoliver9992 has quit [Killed (Sigyn (Spam is off topic on freenode.))]
Maxdaman1us is now known as Maxdamantus
tarptaeya has quit [Remote host closed the connection]
tarptaeya has joined #ocaml
Erynnn24 has joined #ocaml
Erynnn24 has quit [Killed (Sigyn (Spam is off topic on freenode.))]
trqx13 has joined #ocaml
trqx13 has quit [Killed (Sigyn (Spam is off topic on freenode.))]
tarptaeya has quit [Quit: Konversation terminated!]
Fare has quit [Ping timeout: 256 seconds]
Fare has joined #ocaml
jnavila has quit [Remote host closed the connection]
Jesin has quit [Remote host closed the connection]
caltelt has joined #ocaml
TheLemonMan has quit [Quit: "It's now safe to turn off your computer."]
caltelt has quit [Ping timeout: 272 seconds]
Jesin has joined #ocaml
AnLog has quit [Remote host closed the connection]
ben has joined #ocaml
kakadu has quit [Remote host closed the connection]
ben has quit [Ping timeout: 256 seconds]
ozy11 has joined #ocaml
ozy11 has quit [Killed (Sigyn (Spam is off topic on freenode.))]
jrslepak22 has joined #ocaml
jrslepak22 has quit [Ping timeout: 240 seconds]