adrien changed the topic of #ocaml to: Discussions about the OCaml programming language | http://www.ocaml.org | Current MOOC: https://huit.re/ocamlmooc | OCaml 4.04.0 release notes: http://ocaml.org/releases/4.04.html | Try OCaml in your browser: http://try.ocamlpro.com | Public channel logs at http://irclog.whitequark.org/ocaml
<cheater> is there a way to launch utop with the modules available in my project available in utop?
mengu has quit [Remote host closed the connection]
<Algebr> i think you make a top file or something like that
orbifx has quit [Ping timeout: 240 seconds]
wtetzner has joined #ocaml
larhat has quit [Quit: Leaving.]
KV has joined #ocaml
<copy`> You write an .ocamlinit file, for example https://github.com/c-cube/ocaml-containers/blob/master/.ocamlinit
KV has quit [Ping timeout: 240 seconds]
arc- has joined #ocaml
agarwal1975 has joined #ocaml
silver has quit [Read error: Connection reset by peer]
mengu has joined #ocaml
mengu has quit [Ping timeout: 240 seconds]
sz0 has joined #ocaml
al-damiri has quit [Quit: Connection closed for inactivity]
mfp has quit [Ping timeout: 248 seconds]
FreeBirdLjj has joined #ocaml
FreeBirdLjj has quit [Ping timeout: 256 seconds]
KV has joined #ocaml
nomicflux has joined #ocaml
KV has quit [Ping timeout: 252 seconds]
<cheater> hey guys
<cheater> what are .merlin files?
tane_ has joined #ocaml
tane has quit [Ping timeout: 240 seconds]
mengu has joined #ocaml
mengu has quit [Ping timeout: 248 seconds]
<cheater> copy`: nice, thanks
<cheater> Algebr: check out copy`'s file
mengu has joined #ocaml
<cheater> hey guys, i have run into an issue. in some places in my project, I can use the Lwt_io module, whereas in other places I have the compiler telling me it's an unbound module. I can't open the module by name either. what gives? do i need to somehow make the Lwt_io module accessible to the modules / files where it doesn't work by default?
average has quit [Remote host closed the connection]
<cheater> oh i see, in this one place they do some sort of weird mli based magic which only gives the programmer access to non-io functions and other safe stuff...
mengu has quit [Ping timeout: 260 seconds]
KV has joined #ocaml
tane_ has quit [Quit: Leaving]
KV has quit [Ping timeout: 255 seconds]
jao has quit [Ping timeout: 252 seconds]
mengu has joined #ocaml
mengu has quit [Ping timeout: 276 seconds]
nomicflux has quit [Quit: nomicflux]
jeffmo has quit [Quit: jeffmo]
wtetzner has quit [Remote host closed the connection]
KV has joined #ocaml
jerme has joined #ocaml
KV has quit [Ping timeout: 255 seconds]
snhmib has quit [Ping timeout: 248 seconds]
ygrek_ has quit [Ping timeout: 255 seconds]
sz0 has quit [Quit: Connection closed for inactivity]
snhmib has joined #ocaml
tonyle has joined #ocaml
tonyle has quit [Client Quit]
FreeBirdLjj has joined #ocaml
FreeBirdLjj has quit [Ping timeout: 240 seconds]
KV has joined #ocaml
KV has quit [Ping timeout: 276 seconds]
copy` has quit [Quit: Connection closed for inactivity]
govg has joined #ocaml
MercurialAlchemi has joined #ocaml
FreeBirdLjj has joined #ocaml
snhmib has quit [Read error: Connection reset by peer]
mengu has joined #ocaml
mengu has quit [Ping timeout: 240 seconds]
KV has joined #ocaml
KV has quit [Ping timeout: 260 seconds]
mengu has joined #ocaml
Mercuria1Alchemi has joined #ocaml
MercurialAlchemi has quit [Ping timeout: 240 seconds]
mengu has quit [Ping timeout: 240 seconds]
FreeBirdLjj has quit [Remote host closed the connection]
govg has quit [Ping timeout: 258 seconds]
snhmib has joined #ocaml
zpe has joined #ocaml
manizzle has joined #ocaml
snhmib has quit [Ping timeout: 240 seconds]
KV has joined #ocaml
KV has quit [Ping timeout: 258 seconds]
snhmib has joined #ocaml
FreeBirdLjj has joined #ocaml
ygrek_ has joined #ocaml
mengu has joined #ocaml
mengu has quit [Ping timeout: 252 seconds]
mengu has joined #ocaml
ygrek_ has quit [Ping timeout: 240 seconds]
william-s has quit [Quit: WeeChat 1.7]
zpe has quit [Remote host closed the connection]
zpe has joined #ocaml
jnavila has joined #ocaml
Simn has joined #ocaml
zpe has quit [Ping timeout: 255 seconds]
dhil has joined #ocaml
Rome has quit [Ping timeout: 245 seconds]
KV has joined #ocaml
KV has quit [Ping timeout: 256 seconds]
<Leonidas> I don't really know what you mean. your buildscripts might be messing up?
kakadu has joined #ocaml
orbifx has joined #ocaml
dhil has quit [Ping timeout: 240 seconds]
<freehck> cheater: .merlin files are used for merlin ocaml text editor (end therefore for emacs' merlin-mode). This file describes where merlin shall look for sources and build files. It needs it for auto-completion and type inference while coding.
<freehck> cheater: if the module is not accessible it means you omit some compiler options. If you use ocamlbuild you can try to add -use-ocamlfind and -package lwt.unix (or lwt.syntax, or what you need)
<freehck> for lwt syntax it could be sane also to add -syntax camlp4o
govg has joined #ocaml
larhat has joined #ocaml
mami has quit [Ping timeout: 240 seconds]
mami has joined #ocaml
<companion_cube> johnelse: the irc-client auto-reconnection works perfectly, btw ;-)
AltGr has joined #ocaml
KV has joined #ocaml
Rome has joined #ocaml
KV has quit [Ping timeout: 276 seconds]
mengu has quit [Remote host closed the connection]
<johnelse> companion_cube: oh nice :)
<companion_cube> and so far, no pb with TLS
<companion_cube> have you seen the IRC bot framework used for ocabot_?
<johnelse> ah, calculon? :D
<johnelse> I got confused because all ocabot's code had disappeared, but there wasn't anything new in the opam file
<companion_cube> indeed, my bad
dhil has joined #ocaml
<reynir> !history 3
<johnelse> looks good though!
<reynir> Cool! It includes the !history 3 line though :P
<companion_cube> yes indeed
<companion_cube> but (at least after I restart it) it will not include query messages :D
<reynir> \o/
<companion_cube> so anyway, it's pretty nice to add plugins, imho
KV has joined #ocaml
Algebr has quit [Ping timeout: 240 seconds]
<orbitz> Is it possible to make one module have the same type as another module but make a type in it private?
mengu has joined #ocaml
<flux> maybe not. my first stab was module B : module type of A with type t = private int = struct type t = private int end, but it didn't stick
KV has quit [Ping timeout: 252 seconds]
<companion_cube> !manual
zpe has joined #ocaml
mfp has joined #ocaml
dfeldman[m] has left #ocaml ["Kicked by @appservice-irc:matrix.org"]
<Leonidas> oh, multicore won't be part of 4.05 or 4.06 :|
<companion_cube> even then, I think that it won't be very good after the first release
<companion_cube> it will probably take some time to mature
<companion_cube> like flambda
<companion_cube> I'm more annoyed by the fact that changes I wanted to make to the stdlib aren't going to make it into 4.05 :-(
<Leonidas> what is going into 4.05 then?
<companion_cube> the changelog is linked in the reddit post
<companion_cube> !changelog_4.05 = https://github.com/ocaml/ocaml/blob/trunk/Changes
<ocabot_> OK.
<reynir> Can you delete factoids?
<companion_cube> you can erase them
<companion_cube> why?
<reynir> !history = evil user
<reynir> heh
<companion_cube> shouldn't work
<companion_cube> !history 10
<reynir> Yea, it mesaged me and said "oops!"
<companion_cube> :D
<companion_cube> it's because it couldn't interpret this as a !history command
<reynir> heh
<reynir> ok yea that makes sense
dhil has quit [Ping timeout: 248 seconds]
dhil has joined #ocaml
KV has joined #ocaml
balod has quit [Remote host closed the connection]
FreeBirdLjj has quit [Remote host closed the connection]
Onemorenickname has joined #ocaml
<Onemorenickname> Hi people
<Onemorenickname> I have a big functor
<Onemorenickname> basically, it takes a module with a type t in it
<Onemorenickname> and functions in my functor are parametrized with this type
<Onemorenickname> classic sofar
hio has joined #ocaml
<hio> is ocaml any good?
<Onemorenickname> i have a part of this functor i want to move to an other file
<Onemorenickname> how can i do so without writing a whole sub-functor and including it ?
<hio> i want a language that is fast and has great c ffi, great intellisense in an IDE and debugging
<Onemorenickname> hio, what's wrong with C++ for you ?
<hio> idk, it's such a pain in the ass to set it up, to link the libraries, to debug memory problems
<Onemorenickname> i see
<hio> also compile times
<Drup> hio: ocaml is very good :3
<Drup> Onemorenickname: you can't
<hio> the syntax seems weird, this is one of those 'functional' ones huh
<Onemorenickname> Drup, meeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeh
<Onemorenickname> so i have to make a whole sub-functor, i have to open/include a file with the signature of the argument and so on
<Drup> It's only 2 or 3 more lines that what you would normaly do, is that such an issue ?
<Onemorenickname> it's boilerplate code
<Onemorenickname> if this action requiers 4 lines of code, and an other one requires 3 lines of code, and I do them regularly, I get several dozens lines of code I have to write for no reason
<Drup> Then keep everything inside the body of the functor. You have to specify your dependencies somehow. inclusion in OCaml is not unchecked syntactic inclusion
<Drup> it's a wee bit stricter than that, and that's a good thing
srenatus[m] has quit [Remote host closed the connection]
M-jimt has quit [Remote host closed the connection]
M-ErkkiSeppl has quit [Remote host closed the connection]
timclassic has quit [Remote host closed the connection]
M-Illandan has quit [Remote host closed the connection]
aspiwack[m] has quit [Write error: Connection reset by peer]
M-martinklepsch has quit [Write error: Connection reset by peer]
barkmadley[m] has quit [Read error: Connection reset by peer]
Bluddy[m] has quit [Write error: Connection reset by peer]
na9da[m] has quit [Write error: Connection reset by peer]
ktosiek[m] has quit [Write error: Connection reset by peer]
<Onemorenickname> Drup, a syntactif inclusion could be useful sometimes
<Drup> Onemorenickname: and what happens if you include said file in another module ?
<Drup> Welcome to C's template, I guess
balod has joined #ocaml
<Drup> It's not a good road to go down
<Drup> (you can do it, of course, with camlp4 or other preprocessor)
<Onemorenickname> Drup, i don't mind templating for incompressible boilerplate code
<Onemorenickname> as long as it's clear, i don't see the problem
MercurialAlchemi has joined #ocaml
<Onemorenickname> well, at least, ocaml module system is coherent
<Onemorenickname> with a few boilerplate code, i could copy-paste everything, and "make" without error
aspiwack[m] has joined #ocaml
hio has left #ocaml ["Leaving"]
<mengu> does anyone know if core will be available for 4.04?
KV has quit [Ping timeout: 240 seconds]
Sim_n has joined #ocaml
Simn has quit [Ping timeout: 255 seconds]
FreeBirdLjj has joined #ocaml
Bluddy[m] has joined #ocaml
M-jimt has joined #ocaml
na9da[m] has joined #ocaml
M-martinklepsch has joined #ocaml
timclassic has joined #ocaml
srenatus[m] has joined #ocaml
M-Illandan has joined #ocaml
ktosiek[m] has joined #ocaml
barkmadley[m] has joined #ocaml
M-ErkkiSeppl has joined #ocaml
silver has joined #ocaml
ggole has joined #ocaml
KV has joined #ocaml
sepp2k has joined #ocaml
w1gz has joined #ocaml
FreeBirdLjj has quit [Remote host closed the connection]
KV has quit [Ping timeout: 248 seconds]
malc_ has joined #ocaml
ggole_ has joined #ocaml
ggole has quit [Ping timeout: 260 seconds]
dhil has quit [Ping timeout: 248 seconds]
Onemorenickname has quit [Read error: Connection reset by peer]
ggole__ has joined #ocaml
kakadu has quit [Quit: Konversation terminated!]
ggole_ has quit [Ping timeout: 240 seconds]
freehck has quit [Ping timeout: 260 seconds]
nomicflux has joined #ocaml
agarwal1975 has quit [Quit: agarwal1975]
ggole__ has quit [Quit: ggole__]
KV has joined #ocaml
KV has quit [Ping timeout: 240 seconds]
govg has quit [Ping timeout: 255 seconds]
rwmjones has quit [Ping timeout: 248 seconds]
nomicflux has quit [Quit: nomicflux]
larhat has quit [Quit: Leaving.]
mengu has quit [Remote host closed the connection]
mengu has joined #ocaml
freehck has joined #ocaml
mengu has quit [Ping timeout: 240 seconds]
govg has joined #ocaml
dhil has joined #ocaml
agarwal1975 has joined #ocaml
mengu has joined #ocaml
mengu has quit [Remote host closed the connection]
mengu has joined #ocaml
<cheater> hi
<cheater> are ocaml lists like haskell lists in that if i match against a list using x :: xs then xs is shared with the original list?
<cheater> or are x and xs new values?
<freehck> no
<freehck> they are new bindings
<Drup> cheater: they are shared
<freehck> well I think in haskell they are new too
mengu has quit [Ping timeout: 255 seconds]
<freehck> Drup: maybe I didn't got what shared means? There's no way to modify them anyway.
<freehck> Ah, the question was about memory allocation, right?
<freehck> yup, sorry, Drup's right.
zpe has quit [Remote host closed the connection]
zpe has joined #ocaml
KV has joined #ocaml
zpe has quit [Ping timeout: 255 seconds]
KV has quit [Ping timeout: 240 seconds]
freehck has quit [Ping timeout: 260 seconds]
shinnya has joined #ocaml
infinity0_ has joined #ocaml
infinity0 is now known as Guest3853
infinity0 has joined #ocaml
infinity0_ is now known as infinity0
Guest3853 has quit [Killed (verne.freenode.net (Nickname regained by services))]
infinity0 has quit [Remote host closed the connection]
infinity0 has joined #ocaml
infinity0 has quit [Remote host closed the connection]
silver has quit [Read error: Connection reset by peer]
sh0t has joined #ocaml
kakadu has joined #ocaml
infinity0 has joined #ocaml
infinity0 has quit [Remote host closed the connection]
th5 has joined #ocaml
infinity0 has joined #ocaml
rwmjones has joined #ocaml
freehck has joined #ocaml
hcarty has quit [Ping timeout: 255 seconds]
orbifx has quit [Ping timeout: 255 seconds]
<flux> so, mSAT. how difficult is it to convert a sat-solver to answer set programming solver and be applicaple for opam?
<Drup> well, you need solving under optimisation objectives
<companion_cube> ^
<companion_cube> sadly, it's a difficult problem
<Drup> (you want "the most recent version of package X"
<Drup> (not just "any package X")
<Drup> Z3 does it, that's the only (foss) one, afaik, and it's quite difficult
<Drup> (and the next question is "is it efficient" ...)
<Drup> (and honestly, if I have to choose between aspcud and z3, i'm choosing aspcud)
<companion_cube> :D
<companion_cube> why so? ins't z3 better supported and with fewer dependencies?
<zozozo> well, sat are primarily for satsifiability, not optimisation
<Drup> companion_cube: until we have z3 pre-built in all package distribution, meeeh
<Drup> z3 is ... not nice to package/build
<Drup> I mean, yes, it has fewer dependencies, it only takes 30 to 40 minutes to build
orbifx has joined #ocaml
<Drup> zozozo: I disagree, it's just a slightly distinct community, and the problem is usually called ASP, but that's still "SAT under optim"
KV has joined #ocaml
<zozozo> you're right
<zozozo> actually, one solution would be to encode the constraints into sat, try and find and model, and if one has been found re-try adding a constraint to force the sat to chose a newer version for at least one package
yomimono has joined #ocaml
<Drup> Z3's way is to use simplex-like phase in the middle of the smt solving
KV has quit [Ping timeout: 245 seconds]
<companion_cube> Drup: hu, z3 is packaged on more distributions than aspcud, I think
<Drup> the issue is that, sometimes, you need to jump from one polyhedron to the next, simplex doesn't help for that
rwmjones has quit [Ping timeout: 264 seconds]
<Drup> only in testing on debian, not in arch, only in ubuntu since the last version
<Drup> (and yes, it will be in all distros eventually, I agree)
rwmjones has joined #ocaml
<flux> can I use z3 instead of aspcud already?
<flux> ie. does it work with cudf
<Drup> not as far as I know, you need to make the encoding
<flux> z3 cudf gave me zip on google :)
shinnya has quit [Ping timeout: 252 seconds]
<companion_cube> so anyway, msat is not designed for this kind of stuff
<companion_cube> we're not closer to have a pure-ocaml opam
<flux> ;-((
orbifx has quit [Ping timeout: 240 seconds]
orbifx has joined #ocaml
jao has joined #ocaml
abeaumont has quit [Read error: Connection reset by peer]
sepp2k has quit [Quit: Leaving.]
copy` has joined #ocaml
w1gz has quit [Quit: WeeChat 1.6]
infinity0 has quit [Remote host closed the connection]
ziyourenxiang has quit [Quit: Leaving]
KV has joined #ocaml
orbifx has quit [Ping timeout: 252 seconds]
w1gz has joined #ocaml
KV has quit [Ping timeout: 276 seconds]
FreeBirdLjj has joined #ocaml
FreeBirdLjj has quit [Ping timeout: 255 seconds]
w1gz has left #ocaml ["WeeChat 1.6"]
yomimono has quit [Ping timeout: 240 seconds]
mfp has quit [Ping timeout: 240 seconds]
yomimono has joined #ocaml
hcarty has joined #ocaml
infinity0 has joined #ocaml
AltGr has left #ocaml [#ocaml]
average has joined #ocaml
william-s has joined #ocaml
malc_` has joined #ocaml
malc_ has quit [Ping timeout: 255 seconds]
KV has joined #ocaml
KV has quit [Ping timeout: 240 seconds]
<seliopou> yoyoyo
mfp has joined #ocaml
snowcrshd has joined #ocaml
jnavila has quit [Quit: It was time]
<snowcrshd> I'm using (trying) topkg to build a small library, but I ran into a problem: After I successfully build with topkg and opam install, when I go to utop and try to #require "library", I get a reference error. The "library.ml" file contains an `open Internal_module`
<snowcrshd> and this is where I get the error
<snowcrshd> Why is `Internal_module` not available when I #require "library" ?
<companion_cube> if it's not in some foo.mllib, it's probably not linked in the library?
<companion_cube> (assuming you use topkg on top of ocamlbuild)
<companion_cube> otoh maybe topkg handles that for you, don't know
<snowcrshd> companion_cube: yeah, I was expecting it to be the later, but doesn't seem to be the case :P
ygrek_ has joined #ocaml
KV has joined #ocaml
<hcarty> seliopou: Hello
<hcarty> companion_cube: \o
<hcarty> companion_cube: containers 1.0 is looking quite promising! :-)
<companion_cube> yay \o/
octachron has joined #ocaml
FreeBirdLjj has joined #ocaml
P4Titan has joined #ocaml
<P4Titan> Hi all. Is there a way I can create a type `Bytes`, but have it be a pre-specified, constant length?
FreeBirdLjj has quit [Ping timeout: 240 seconds]
<P4Titan> somthing like "uint8_t[32] hash;" in C
<justin_smith> Bytes.create N
<P4Titan> but can that be somehow bound to the type though>
yomimono has quit [Ping timeout: 240 seconds]
<justin_smith> oh, I see what you mean now
<P4Titan> or how could I implement something that prevents overwriting or expanding this type
<P4Titan> for example?
<P4Titan> I want hashes to guarentee 32 byte arrays for instance
KV has quit [Ping timeout: 252 seconds]
kakadu has quit [Quit: Konversation terminated!]
<justin_smith> I think you might need dependent types for that?
<P4Titan> what does that imply?
<companion_cube> P4Titan: you can make a private alias somewhere, and only build 32-bytes-long strings
<justin_smith> oh, right, hide the implementation and expose something that returns an opaque instance
<companion_cube> module Bytes32 : sig type t = private bytes val make : char -> t end = struct type t = bytes let create c = Bytes.make 32 c end
<companion_cube> not necessarily opaque, juste a private alias
<justin_smith> ahh, thanks for clarifying
<companion_cube> so you can upcast to bytes
<companion_cube> but since you can't downcast, it's safe
<P4Titan> I'll look into this
<P4Titan> thanks!
<companion_cube> the invariant is not enforced by the type system, but you can enforce it yourself
<P4Titan> invariant?
<companion_cube> assuming Bytes32 is correct, the invariant will hold in the rest of the program
<companion_cube> that Bytes32.t has length 32
<justin_smith> and with dependent typing we could express that directly, if I understand correctly
<companion_cube> this will be true if you write Bytes32 properly (i.e. only building instances of the correct length)
<companion_cube> justin_smith: maybe, yes
<companion_cube> but that's really too complicated for OCaml
dhil has quit [Ping timeout: 256 seconds]
al-damiri has joined #ocaml
ciniglio has quit [Ping timeout: 255 seconds]
dhil has joined #ocaml
average has quit [Ping timeout: 245 seconds]
yomimono has joined #ocaml
axon has joined #ocaml
average has joined #ocaml
_andre has quit [Quit: leaving]
KV has joined #ocaml
Xadnem has joined #ocaml
fraggle_ has quit [Remote host closed the connection]
kakadu has joined #ocaml
KV has quit [Ping timeout: 252 seconds]
malc_` has quit [Quit: ERC (IRC client for Emacs 25.0.50.2)]
orbifx has joined #ocaml
snowcrshd has quit [Ping timeout: 264 seconds]
jnavila has joined #ocaml
yomimono has quit [Ping timeout: 240 seconds]
fraggle_ has joined #ocaml
yomimono has joined #ocaml
Soni is now known as CTCP-S
CTCP-S is now known as Go-Away-OC
Go-Away-OC is now known as APNG
APNG is now known as Soni
<Xadnem> ktosiek[m] reynir zv
<Xadnem> n/
<companion_cube> ?
KV has joined #ocaml
zpe has joined #ocaml
fraggle_ has quit [Read error: Connection reset by peer]
KV has quit [Ping timeout: 258 seconds]
mengu has joined #ocaml
mengu has quit [Remote host closed the connection]
mengu has joined #ocaml
axon has quit [Ping timeout: 255 seconds]
mengu has quit [Remote host closed the connection]
fraggle_ has joined #ocaml
mengu has joined #ocaml
mengu has quit [Remote host closed the connection]
mengu has joined #ocaml
mengu has quit [Remote host closed the connection]
mengu has joined #ocaml
<pitastrudl> we are taking ocaml at a uni course soon, my 2nd attempt ;_;
<companion_cube> good luck! hold on it, it's not that hard :)
MercurialAlchemi has quit [Ping timeout: 240 seconds]
zpe has quit [Remote host closed the connection]
mengu has quit [Remote host closed the connection]
mengu has joined #ocaml
axon has joined #ocaml
FreeBirdLjj has joined #ocaml
<Drup> hum, the visitor package, I wanted to write that for quite some time
KV has joined #ocaml
<Armael> the 28pages documentation :D
<Armael> François
<Armael> ™
<Drup> true, but the documentation is very nice to read
<Armael> but I'm not complaining !
<Armael> I think its remarkable
<companion_cube> so it's a ppx deriving visitor?
<Drup> companion_cube: yes
<Drup> with lot's of options
<Drup> it looks extremly well made
FreeBirdLjj has quit [Ping timeout: 240 seconds]
<companion_cube> good for the users
KV has quit [Ping timeout: 240 seconds]
fraggle_ has quit [Remote host closed the connection]
fraggle_ has joined #ocaml
octachron has quit [Quit: Leaving]
jao has quit [Remote host closed the connection]
th5 has quit []
jnavila has quit [Remote host closed the connection]
kakadu has quit [Remote host closed the connection]
dhil has quit [Ping timeout: 240 seconds]
wtetzner has joined #ocaml
KV has joined #ocaml
KV has quit [Ping timeout: 248 seconds]
jao has joined #ocaml
<reynir> Xadnem: huh?
Xadnem has quit [Quit: leaving]
shinnya has joined #ocaml
axon has quit [Quit: Leaving]
Sim_n has quit [Read error: Connection reset by peer]
KV has joined #ocaml
FreeBirdLjj has joined #ocaml
KV has quit [Ping timeout: 240 seconds]
FreeBirdLjj has quit [Ping timeout: 255 seconds]