ollehar has quit [Read error: Connection reset by peer]
ollehar has joined #ocaml
<bernardofpc>
BatFingerTree is faster than my avl hack for n = 100
<bernardofpc>
(but not too much: for n = 1500, I get 13.067 vs 14.889
psy_ has quit [Ping timeout: 264 seconds]
psy_ has joined #ocaml
psy_ has quit [Read error: No route to host]
psy_ has joined #ocaml
jwatzman|work has quit [Quit: jwatzman|work]
meteo has quit [Ping timeout: 276 seconds]
keen__ has quit [Read error: Connection reset by peer]
keen__ has joined #ocaml
BitPuffin has quit [Ping timeout: 246 seconds]
badkins has quit []
MrScout has quit [Remote host closed the connection]
MrScout has joined #ocaml
AltGr has joined #ocaml
meteo has joined #ocaml
milosn has quit [Ping timeout: 240 seconds]
claudiuc has quit [Remote host closed the connection]
s1n4 has joined #ocaml
Algebr has joined #ocaml
shinnya has quit [Ping timeout: 272 seconds]
<Algebr>
cohttp is hanging for me and i have no idea how to debug this.
badkins has joined #ocaml
Kakadu has quit [Ping timeout: 246 seconds]
<cmtptr>
print()
<Algebr>
right. print isn't much help when the code doesn't excute.
badkins has quit []
<Algebr>
and nothing is timing out either, this is very upsetting.
darkf has joined #ocaml
Nijiko has quit [Remote host closed the connection]
Nijiko has joined #ocaml
c74d has quit [Ping timeout: 276 seconds]
Algebr has quit [Remote host closed the connection]
Nijiko has quit [Remote host closed the connection]
Nijiko has joined #ocaml
c74d has joined #ocaml
michael_lee has joined #ocaml
ygrek_ has joined #ocaml
sdothum has quit [Quit: ZNC - 1.6.0 - http://znc.in]
idegen has quit [Quit: Leaving.]
araujo_ has joined #ocaml
MrScout has quit [Remote host closed the connection]
araujo has quit [Ping timeout: 264 seconds]
jonludlam has quit [Ping timeout: 250 seconds]
matason has joined #ocaml
ggole has joined #ocaml
matason has quit [Ping timeout: 245 seconds]
matason has joined #ocaml
psy_ has quit [Ping timeout: 250 seconds]
psy_ has joined #ocaml
Nijiko has quit [Ping timeout: 250 seconds]
mengu has joined #ocaml
moei has quit [Quit: Leaving...]
avsm has joined #ocaml
avsm has quit [Quit: Leaving.]
mengu has quit [Remote host closed the connection]
c74d has quit [Remote host closed the connection]
c74d has joined #ocaml
araujo_ has quit [Quit: Leaving]
A1977494 has joined #ocaml
A1977494 has left #ocaml [#ocaml]
psy_ has quit [Ping timeout: 248 seconds]
MercurialAlchemi has joined #ocaml
<mcc>
If I'm submitting something to OPAM, it's probably considerate to host it on github rather than bitbucket, right?
psy_ has joined #ocaml
<mcc>
Also should the "long description" in an opam descr file adhere to any particular guidelines regarding word wrapping
s1n4 has quit [Ping timeout: 256 seconds]
<AltGr>
mcc: there is no problem at all with hosting your OPAM package wherever you want; Github only has the bonus of allowing easier cross-referencing for the issues.
<mcc>
AltGr: Yeah, I am asking about social protocol rather than technical limitations.
<mcc>
also, uh...
<mcc>
what exactly is the meaning of the "opam-version" file?
<mcc>
this is "the version of opam i am running, right this instant"?
<AltGr>
No guidelines on the long description, but it's printed as-is, so there _should_ be a guideline to wrap at 80 cols :)
<AltGr>
field ?
<AltGr>
It's the base version of OPAM required for this file, it's safe to put "1.2" there
matason has quit [Ping timeout: 255 seconds]
<mcc>
ok so, i put "1.0"
<mcc>
and when i tried to submit i put: "[ERROR] In /Users/mcc/work/gh/ppx_const/ppx_const.1.0/opam: - Field 'opam-version' doesn't match the current version, validation may not be accurate"
<mcc>
should i just put 0.2 in that particular opam file and resubmit?
<mcc>
i just copy-and-pasted from one of whitequark's opam packages :)
<AltGr>
You can check locally with `opam lint`
<AltGr>
it's not really wrong to put `1.0` there, but we didn't implement a mechanism for verifying that your description is _indeed_ compatible with 1.0
<mcc>
i see
<mcc>
one more question
<AltGr>
also, 1.2 opam files are automatically rewritten for 1.1, so you won't lose compatibility
<mcc>
well, i just... i didn't target 1.2.
<AltGr>
(and support for 1.0 is discontinued anyway)
<mcc>
ok
<mcc>
So I have my source dir, /Users/mcc/work/gh/ppx_const
<mcc>
it contains an opam file
<mcc>
this is checked into version control
<mcc>
i ran opam-publish, it created a /Users/mcc/work/gh/ppx_const/ppx_const.1.0 directory. it contains a new opam file
<AltGr>
hm, if ppx_const was currently pinned to that dir, it should have picked up the opam file
<mcc>
so, that is the interesting part
<mcc>
they are similar but not identical
<mcc>
it appears to have removed a line or two, and also removed my license line and replaced it with "public domain"
kdef has joined #ocaml
<AltGr>
ah, it's probably been parsed and re-printed
milosn has joined #ocaml
<mcc>
ok
<AltGr>
Uhhh... that's troubling!
<mcc>
should it be considered a bug it changed the license :P
<mcc>
i mean, it does not matter in this case, as the license is CC0
tane has joined #ocaml
<mcc>
however, i think that, if someone didn't notice that, and submitted with THAT opam file containing "public domain", and the one IN the repository containing "GPL"... a bad thing could happen?
<AltGr>
I don't see how that could happen... maybe there was a different opam file in a repository that got picked up instead ?
pyon has quit [Quit: I have irrefutable proof that D < 0. It follows trivially from 2D > 3D, which is obviously true.]
<mcc>
find ./* | grep opam says no
<mcc>
should i try again and see if it's reproducible?
<AltGr>
`opam show ppx_const --where` might give a hint
<AltGr>
That should'nt ever happen, license is just a string and no given license is hardcoded
<mcc>
"~/.opam/system/overlay/ppx_const/opam" which is delivering the pinned opam
<mcc>
--oh
<AltGr>
(I pondered for a while putting the most used license in the template, but decided it was a bad idea to put any)
<AltGr>
There is no clear standard, but I believe keeping common abbreviations in the opam files is best for sorting afterwards
<AltGr>
that would easily allow sorting by license on http://opam.ocaml.org/packages/, and we could add links to the given licenses
<mcc>
ok... i do not see a way to get licenses on that page. but you are suggesting adding a way?
Sorella has quit [Quit: Connection closed for inactivity]
jonludlam has joined #ocaml
mengu has joined #ocaml
<mcc>
ok so... based on what you are telling me, i think this is what i should do: - trash the 1.0 directory in progress - edit the opam file, make it opam-version 1.2.0 - set license to "Creative Commons Zero" - make this the new v1.0 tag - push to github again - do the opam-publish prepare again?
<mcc>
oh, and opam lint before i commit/push anything...?
<mcc>
(thanks for the help on this, i have never done this before :O
testcocoon has quit [Quit: Coyote finally caught me]
ygrek_ has quit [Ping timeout: 250 seconds]
Simn has joined #ocaml
avsm has joined #ocaml
testcocoon has joined #ocaml
<AltGr>
opam-version should be `1.2` rather than `1.2.1`, because format isn't supposed to change for patch versions ; otherwise, sounds all good! Note however that you can directly change the opam in the prepared directory, if you don't want to change your tag.
<AltGr>
Also, `opam publish submit` does lint for you before submitting anything :)
<mcc>
okay... it seems like it would be bad for the opam in the repository and the opam submitted to be different? is that not actually bad?
<mcc>
i decided to go ahead with calling the license "Creative Commons Zero" instead of "CC0"
<mcc>
ok. i think i know what is happening with the "license" field
mengu has quit [Remote host closed the connection]
ontologiae has joined #ocaml
octachron has joined #ocaml
<mcc>
OK, PR submitted!! thank you for the help :O
jonludlam has quit [Ping timeout: 276 seconds]
antkong_ has quit [Quit: antkong_]
ontologiae has quit [Ping timeout: 250 seconds]
matason has joined #ocaml
ygrek_ has joined #ocaml
matason has quit [Ping timeout: 244 seconds]
matason has joined #ocaml
contempt has quit [Ping timeout: 240 seconds]
contempt has joined #ocaml
xificurC has joined #ocaml
psy_ has quit [Remote host closed the connection]
testcocoon has quit [Quit: Coyote finally caught me]
mengu has joined #ocaml
testcocoon has joined #ocaml
avsm has quit [Quit: Leaving.]
Haudegen has quit [Ping timeout: 246 seconds]
johnelse is now known as johnel_away
thomasga has joined #ocaml
johnel_away is now known as johnelse
oscar_toro has quit [Ping timeout: 250 seconds]
Haudegen has joined #ocaml
avsm has joined #ocaml
thomasga has quit [Quit: Leaving.]
mcc has quit [Quit: This computer has gone to sleep]
oscar_toro has joined #ocaml
mort___ has joined #ocaml
mort___ has quit [Client Quit]
Kakadu has joined #ocaml
octachron has quit [Ping timeout: 272 seconds]
milosn has quit [Ping timeout: 272 seconds]
inr_ has quit [Remote host closed the connection]
inr has joined #ocaml
mengu has quit [Remote host closed the connection]
freling has joined #ocaml
<AltGr>
It's not bad: OPAM ignores the bundled opam file when installing from the repo. It kicks in when the package is pinned, and it's expected that the opam file for the development version may differ from the release one. It's also quite common that the opam file in the repo gets fixed after the release (e.g. to add an `ocaml-version < 4.04` constraing), and it's cool we don't need to change the archives.
dsheets has quit [Ping timeout: 256 seconds]
A1977494 has joined #ocaml
A1977494 has left #ocaml [#ocaml]
_2can has quit [Remote host closed the connection]
_2can has joined #ocaml
<Drup>
AltGr: you (or thomasga ?) mentionned opam-eval-switch at some point, what is it ?)
<AltGr>
it's a shell function sourced with the opam init scripts (~/.opam/opam-init/switch_eval.sh)
<AltGr>
that way you don't have to _see_ the eval
<AltGr>
of course the real solution to avoid eval is to do `. <(opam config env)`
antkong has joined #ocaml
<AltGr>
sourcing from a pipe has absolutely nothing to do with eval()uating from a string :D
<Drup>
*cough*
<Drup>
no point for me then, since I'm dynamically switching ...
<Drup>
while we are at it, is there a nice way to upgrade all the switches ?
<AltGr>
for dynamic switching (or rather, switch-dispatching), you may want to check out opam-manager
<Drup>
ocp-manager ?
<AltGr>
ah yes, I think opam-manager was the new version but it may not be out yet (or they finally didn't change the name)
<Leonidas>
OCaml Pro has managers written in ocaml? neat, certainly better than human ones :)
<AltGr>
a manager ? What is that :D
A19774941 has joined #ocaml
A19774941 has left #ocaml [#ocaml]
<Drup>
AltGr: is it just to share tools ?
<AltGr>
that includes the compiler suite and ocamlfind, so you may have different directories that transparently use different switches
dsheets has joined #ocaml
<Drup>
I kinda prefer per-terminal than per-directory
<Drup>
transparent switching to some other switch when entering a directory is precisely what I don't want :D
<AltGr>
oh, `eval $(opam config env --switch xxx)` then
<Drup>
sure
<Drup>
that's what I do all the time
<Drup>
I have 5/6 switches and I juggle with them like that, I'm quite happy with it, was just wondering if you had some more convenient tools :p
<AltGr>
hm, no, the best improvement I could suggest is shell aliases ;)
<Drup>
yeah, I do practice that too :D
<AltGr>
I've got aliases or `opam config exec` in quite a few compiler versions
antkong has quit [Ping timeout: 248 seconds]
<Drup>
yes, exactly
oscar_toro has quit [Ping timeout: 265 seconds]
ollehar has quit [Ping timeout: 240 seconds]
<Drup>
I wonder if the setup should be documented somewhere, like in opam tips
ollehar has joined #ocaml
<Drup>
AltGr: btw, how is the stuff for easy editor installation going ?
<AltGr>
Haven't touched it lately, but I've been using it without trouble
<Drup>
cool, I should try it with my emacs
<AltGr>
the latest version tries to be quite clever by using tools from your current switch when they are available, but from the switch opam-user-setup was installed from when not _and_ if the tool supports it (eg ocp-indent, tuareg, but not merlin)
<Drup>
oooh
<Drup>
brb, installing that
<Drup>
It's going to save my life when hacking on trunk
<AltGr>
(yep, just got back to maintaining my tools today, done opam-depext, ocp-index is close on the list)
<Drup>
yay!
araujo has joined #ocaml
araujo has joined #ocaml
nojb has joined #ocaml
keen___ has joined #ocaml
keen__ has quit [Ping timeout: 246 seconds]
avsm has quit [Quit: Leaving.]
milosn has joined #ocaml
tashjash has joined #ocaml
octachron has joined #ocaml
milosn has quit [Read error: Connection reset by peer]
milosn has joined #ocaml
avsm has joined #ocaml
nojb has quit [Quit: nojb]
moei has joined #ocaml
larhat has joined #ocaml
nojb has joined #ocaml
waneck has joined #ocaml
milosn has quit [Read error: Connection reset by peer]
milosn has joined #ocaml
nojb has quit [Client Quit]
waneck has quit [Quit: Leaving]
milosn has quit [Ping timeout: 245 seconds]
freling has quit [Quit: Leaving.]
BitPuffin has joined #ocaml
thomasga has joined #ocaml
TheLemonMan has joined #ocaml
milosn has joined #ocaml
jonludlam has joined #ocaml
milosn has quit [Read error: Connection reset by peer]
milosn has joined #ocaml
reshtnk7 has joined #ocaml
mengu has joined #ocaml
reshtnk7 has quit [Quit: Leaving.]
_andre has joined #ocaml
sdothum has joined #ocaml
milosn has quit [Read error: Connection reset by peer]
Haudegen has quit [Ping timeout: 245 seconds]
milosn has joined #ocaml
larhat1 has joined #ocaml
milosn has quit [Ping timeout: 272 seconds]
larhat has quit [Ping timeout: 265 seconds]
araujo has quit [Quit: Leaving]
Haudegen has joined #ocaml
lordkryss has joined #ocaml
pyon has joined #ocaml
ygrek_ has quit [Ping timeout: 245 seconds]
Submarine has joined #ocaml
Submarine has joined #ocaml
BitPuffin has quit [Ping timeout: 265 seconds]
milosn has joined #ocaml
tane has quit [Quit: Verlassend]
milosn has quit [Read error: Connection reset by peer]
Submarine has quit [Remote host closed the connection]
milosn has joined #ocaml
freling has joined #ocaml
thomasga has quit [Quit: Leaving.]
nojb has joined #ocaml
Simn has quit [Quit: Leaving]
AltGr has left #ocaml [#ocaml]
<nicoo>
companion_cube: The point could be made the Go is designed for people who are not willing to understand polymorphism (which is sad), but then how could you expect them to understand concurrency
<companion_cube>
how could you expect them to understand anything related to programming?
<nicoo>
Also, yet
<companion_cube>
"basic" polymorphism is so simple it's been included in Java, which goes to great length to ensure the language can be learnt by anyone
<nicoo>
It is trolling to state (and honnestly believe) that Go is a dumbly designed language for dumb programmers ?
milosn has quit [Ping timeout: 246 seconds]
<bernardofpc>
1companion> how could you expect them to understand anything related to programming? -> don't start dismissing people's understanding based on your preconceptions...
<nicoo>
companion_cube: BTW, for the hash-consed AVL stuff, I wanted to find again a reference about them being unique (for a given set of keys), and I cannot put my hand on it again
<nicoo>
Very frustrating
<nicoo>
I have poked at the latice stuff, in the meantime
<bernardofpc>
you have just succumbed to the same level of people that talk only in category terms
<companion_cube>
bernardofpc: seriously, polymorphism (I don't mean typeclasses or dependent types) is *really* simple
<companion_cube>
even python is going to have them in their typing annotation
<companion_cube>
don't tell me GVR is a type theory guru
<bernardofpc>
it's not about being simple or hard, is about being necessary / useful / the only game in town that I think you're misrepresenting things
<nicoo>
bernardofpc: Understanding that it is possible to do things that deal with lists, regardless of whether they are lists of apples, bananas or bottles is pretty basic, I would say
<nicoo>
And extremely useful in terms of writing reusable code
<companion_cube>
I was answering to nicoo's argument "The point could be made the Go is designed for people who are not willing to understand polymorphism
<dmbaturin>
>Having written it a couple of years ago, I haven't had occasion to use it once. Instead, I just use "for" loops.
milosn has joined #ocaml
Sorella has joined #ocaml
<nicoo>
companion_cube: “people who learnt java couldn't understand polymorphism” -> No one claimed that. I'm just sad that the main 2 things that Go has are its stdlib, and pleasing people who don't want to lean polymorphism (and instead prefer to mess around with runtime reflexion ...)
<nicoo>
dmbaturin: I think it says something sad about Go ... :(
<Hannibal_Smith>
dmbaturin, a nice quote from Pike "The key point here is our programmers are Googlers, they’re not researchers. They’re typically, fairly young, fresh out of school, probably learned Java, maybe learned C or C++, probably learned Python. They’re not capable of understanding a brilliant language but we want to use them to build good software. So, the language that we give them has to be easy for th
<Hannibal_Smith>
em to understand and easy to adopt."
<dmbaturin>
If they understand generics, it should imply they can understand polymorphism. :)
<dmbaturin>
Hannibal_Smith: I wonder if it implies that people from schools like CMU or upenn don't come to google.
avsm has quit [Quit: Leaving.]
<Hannibal_Smith>
dmbaturin, really hard to say, seems like that as like as MS, every people inside it has a really different point of view on what their workplace is
<dmbaturin>
One of the most amusing things about Go, as of me, is deviation from K&R indent style made a parse error.
reshtnk7 has left #ocaml [#ocaml]
<Hannibal_Smith>
dmbaturin, to is is see some people who I consider experienced, with a solid background in programming...happy with Go
<Hannibal_Smith>
To be fair, their primary language is C
<Leonidas>
So the quote implies that either new Googlers are stupid or university students are
<Hannibal_Smith>
For sure one have to give for grant that having a good theory is different to be able to solve problems using a programming language
<Leonidas>
I have somehow stopped admiring Rob Pike et al, because I disagree so much with them.
<Leonidas>
"Go, designed by the people who brought you C" is not exactly the best advertisement I can think of
<haesbaert>
it actually is, if you consider that those people brought you C in the 60s
<Leonidas>
Hannibal_Smith: that's true, I know many people who understand algorithms better than they could code them. But that is university, where such a thing is pretty ok
<companion_cube>
"Go, designed by the people who brought you C and ignored all PL research since"
<Leonidas>
Hannibal_Smith: C came from 1972. ML from 1973.
<Leonidas>
must have been a crazy amount of research happening in this one year
<Leonidas>
to go from C to ML so fast
<Leonidas>
companion_cube: hey, C 89 is I think still the most commonly used C variant.
<dmbaturin>
The (in)famous Multics was written in PL/I, an actual high level language.
<companion_cube>
Algol was higher-level than C, I think
<Leonidas>
there was a funny comparison between a mystery language and go
<dmbaturin>
I'm not advocating PL/I of course, neither I'm advocating Multics, but the fact remains, Multics installation served the military until early 2000's, with little downtime, and it was B1 certified.
<companion_cube>
Leonidas: heh I remember that
<Leonidas>
I mean there are some things that Go got right.
<ggole>
Let's bring back call-by-name, it'd be fun
<Leonidas>
It just seems the mob moving from Java to Ruby to JS is moving to Go now and next to something else nonsensival
finBitPuf has joined #ocaml
<ggole>
Channels in OCaml would be interesting
<companion_cube>
bbbr, call-by-name with effects...
<Leonidas>
yes, indeed
<companion_cube>
ggole: indeed!
<ggole>
Of course, there's jocaml, which never really went anywhere
<nojb>
how are they different from Lwt_streams ?
<companion_cube>
if the multicore GC works some day, channels might be interesting to have
<Leonidas>
isn't it a forked ocaml?
<ggole>
I think so, yes
<companion_cube>
jocaml is quite unintuitive imho
<ggole>
I haven't used it. Only skimmed the docs.
<Leonidas>
me too. looked confusing
<Leonidas>
go channels look easy.
<companion_cube>
I tried a bit, but it's quite strange
<Hannibal_Smith>
Leonidas, my personal opinion about Pike point of view is simply that he thinks that his experience with many years with "the working programmers" is more important that the kind of research that is made by people who are actually studying PL theory. One can argue that also people who are PL researcher valuate a lot the relationship between CS and math background behind a PL language and "the working programmer"
milosn has quit [Read error: Connection reset by peer]
<Hannibal_Smith>
But for sure what his experience bought is Go, that is completely different from a language such as like OCaml
<Leonidas>
Hannibal_Smith: yes, that sounds accurate. I just disagree that his experience as working programmer is overly relevant to most working programmers now.
<Leonidas>
which is why I like how Rust evolves
milosn has joined #ocaml
avsm has joined #ocaml
<Leonidas>
maybe something like lwt streams with some syntactic support
<companion_cube>
Hannibal_Smith: there's also a large number of programmers who think anything from academia is disconnected from practical problems
<reynir>
the Lwt_streams api seems a bit more complicated
<companion_cube>
so, necessarily, ignoring academia implies the language is a «pragmatic» one
<companion_cube>
nojb: Lwt_stream isn't really blocking, is it?
<Hannibal_Smith>
Keep in mind that I remember some rants by Robert Harper on how Rust "core team" is not really made by PL researcher. He after give his excuses because Rust team has also people like Aaron Turon
<companion_cube>
the good thing about Go's channels is the ability to "wait" on several channels, and branch depending on which channel did receive a value
<companion_cube>
a bit like a pattern-matching
<ousado>
that's like C# async Tasks
milosn has quit [Read error: Connection reset by peer]
<reynir>
companion_cube: I think you can use Lwt_stream.choose for that
<ousado>
which translate to continuations implemented as state-machines
<reynir>
It's not immediately obvous that's how you do it, I think
finBitPuf has quit [Ping timeout: 245 seconds]
<companion_cube>
I'm not sure, the semantics of Lwt_stream is not completely clear to me
<companion_cube>
especially when used as a queue
<nojb>
you can simulate it by taking streams, say s_1, s_2 and creating a new stream (s, push) and iterating on s_1 and s_2 pushing their elements to s. Then reading from s amounts to reading from s1 or s2 at the same time without worrying about exact semantics of cancellation of Lwt_stream.next ...
<companion_cube>
hmmmmm
<companion_cube>
I'd rather have a blocking queue
<companion_cube>
(I have written one for fun, but not sure if it works well)
<dmbaturin>
companion_cube: The fun part is that languages people borrow concepts from are invariably designed by people with academic background. :)
milosn has joined #ocaml
milosn has quit [Ping timeout: 250 seconds]
mengu has quit [Remote host closed the connection]
thomasga has quit [Quit: Leaving.]
milosn has joined #ocaml
idegen has joined #ocaml
cdidd_ has joined #ocaml
cdidd has quit [Ping timeout: 245 seconds]
thomasga has joined #ocaml
troydm has quit [Quit: What is hope? That all of your wishes and all of your dreams come true? (C) Rau Le Creuset]
<dmbaturin>
Configuration "true: quiet, debug, tests", line 1, characters 20-25:
<dmbaturin>
Warning: the tag "tests" is not used in any flag declaration, so it will have no effect; it may be a typo. Otherwise use `mark_tag_used` in your myocamlbuild.ml to disable this warning.
<dmbaturin>
What does this ocamlbuild warning mean?
BitPuffin has joined #ocaml
<nojb>
it means that is ocamlbuild does not know any rule that uses the flag "tests" so that setting it will have no effect
troydm has joined #ocaml
sivoais_ is now known as sivoais
sivoais has joined #ocaml
sivoais has quit [Changing host]
badkins has joined #ocaml
milosn has quit [Ping timeout: 272 seconds]
Gama11 has joined #ocaml
ldopa has joined #ocaml
nojb has quit [Quit: nojb]
milosn has joined #ocaml
reshtnk7 has joined #ocaml
reshtnk7 has quit [Quit: Leaving.]
ollehar has quit [Quit: ollehar]
djellemah has joined #ocaml
freling has quit [Quit: Leaving.]
Haudegen has quit [Remote host closed the connection]
Haudegen has joined #ocaml
djellemah_ has joined #ocaml
lordkryss has quit [Quit: Connection closed for inactivity]
Haudegen has quit [Ping timeout: 246 seconds]
djellemah has quit [Ping timeout: 246 seconds]
djellemah_ is now known as djellemah
milosn has quit [Ping timeout: 245 seconds]
xificurC has quit [Remote host closed the connection]
Haudegen has joined #ocaml
mengu has joined #ocaml
Haudegen has quit [Ping timeout: 255 seconds]
mengu__ has joined #ocaml
mengu has quit [Read error: Connection reset by peer]
darkf has quit [Quit: Leaving]
tane has joined #ocaml
Haudegen has joined #ocaml
mengu__ has quit [Remote host closed the connection]
michael_lee has quit [Remote host closed the connection]
larhat1 has quit [Quit: Leaving.]
larhat has joined #ocaml
<Drup>
Hannibal_Smith: It's funny because, when someone arrives and say "I feel like the last 2 centuries of medecine are irrelevant and I don't believe in doctors, so I prefer to do X" (with X of your choice)
<Drup>
everyone's bullshitmeter explode
<Drup>
but, for some reason, it's acceptable for computer scientist and the last 50 years.
<n3ss3s>
Hey. I'm just getting started out, I have my .ocamlinit set up so that I can "open Core" from utop and the toplevel, but if I do it in a file and try to call the interpreter (e.g. ocaml blah.ml), I get unbound module core. Halp?
<Armael>
you can call utop on your file to interpret it
avsm has quit [Quit: Leaving.]
n3ss3s has quit [Read error: Connection reset by peer]
larhat has quit [Quit: Leaving.]
n3ss3s has joined #ocaml
matason has quit [Ping timeout: 250 seconds]
zoetus has joined #ocaml
<zoetus>
hello all!
<zoetus>
i have a question about first-class modules and including
<zoetus>
suppose I have a module M, that declares some type t
<zoetus>
then i want to include in M a module that I make by calling some function that returns a first-class module back to me
<zoetus>
e.g. `include (val (func_that_makes_a_module ...))`
<zoetus>
but the module returned by that function has a signature that also includes a type t
<zoetus>
so then the compiler complains about multiple bindings for t
Hannibal_Smith has quit [Read error: Connection reset by peer]
<Drup>
is it the same type t ?
<zoetus>
how do you fix that?
kdef has joined #ocaml
<zoetus>
yes, same type
<Drup>
we can start by doing "module M = (val (func_that_makes_a_module ...))"
<Drup>
then "include M with type t := t
<Drup>
that should work
Hannibal_Smith has joined #ocaml
<n3ss3s>
Hey. I'm just getting started out, I have my .ocamlinit set up so that I can "open Core" from utop and the toplevel, but if I do it in a file and try to call the interpreter (e.g. ocaml blah.ml), I get unbound module core. Halp?
<zoetus>
ah, got it -- thanks!
<zoetus>
so there isn't any easy way to do that in one line, right?
<Drup>
maybe you can, not sure, but it's clearer that way anyway
<companion_cube>
n3ss3s: I'm not sure ocaml foo.ml does read the .ocamlinit
<zoetus>
hmm, i get a syntax error when i do that although it looks right to me
milosn has joined #ocaml
<zoetus>
"Parse error: "end" expected after [str_items] (in [module_expr])
Simn has joined #ocaml
martintrojer has quit [Ping timeout: 256 seconds]
Hannibal_Smith has quit [Ping timeout: 245 seconds]
martintrojer has joined #ocaml
matason has joined #ocaml
<Drup>
the thing is, I'm not sure you have the right to use first class functions here
<Drup>
let me do some tests.
<zoetus>
ah, that makes sense
<zoetus>
it somehow seems to be thinking i need an `end` there because that application is a module expression
lordkryss has joined #ocaml
<zoetus>
i've done `include (val (...))`, so i'm pretty sure that works
<Drup>
include ((val f()) : S with type t := t)
<Drup>
with S the module type
<Drup>
the with type is on the module type, obviously, sorry.
TheLemonMan has quit [Quit: "It's now safe to turn off your computer."]
thomasga has quit [Quit: Leaving.]
<zoetus>
ah that's awesome!! thanks so much Drup!
MrScout has joined #ocaml
shinnya has joined #ocaml
freling has joined #ocaml
thomasga has joined #ocaml
asQuirreL has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
s1n4 has joined #ocaml
asQuirreL has joined #ocaml
A1977494 has joined #ocaml
A1977494 has left #ocaml [#ocaml]
ldopa has quit [Ping timeout: 252 seconds]
<reynir>
I just discovered opam install -d
<zoetus>
what does that do?
Haudegen has quit [Ping timeout: 244 seconds]
<reynir>
it builds the package documentation. I should probably have said --build-doc instead
<reynir>
I just can't find where it put the lambda-term documentation... heh
octachron has quit [Quit: Leaving]
<Drup>
not all packages have documentation build rules
<Drup>
there is also -t, which runs tests
<reynir>
the lambda-term readme mentions building the documentation
matason has quit [Ping timeout: 265 seconds]
avsm has joined #ocaml
avsm has quit [Client Quit]
badkins has quit [Read error: Connection reset by peer]
avsm has joined #ocaml
mort___ has joined #ocaml
s1n4 has quit [Ping timeout: 264 seconds]
Jefffrey has joined #ocaml
slash^ has joined #ocaml
shinnya has quit [Ping timeout: 245 seconds]
Haudegen has joined #ocaml
thomasga has quit [Quit: Leaving.]
<nicoo>
Leonidas: Go channels are much like jocaml (Disclaimer: last time I poked at JOCaml was 5+ years ago), except that the untypedness is less startling in Go