<Tekk_>
Does opam require any sort of bootstrapping? I decided to see if I can build it on cygwin, and I was able to get it to mostly install, but I get a failure on "searching for valid remotes" on opam init
<Tekk_>
There's a failure during make install itself, but it's just in removing temporary files since you can't unlink open files on windows
sepp2k has quit [Quit: Leaving.]
struktured has quit [Ping timeout: 256 seconds]
milosn has joined #ocaml
swgillespie has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
struktured has joined #ocaml
swgillespie has joined #ocaml
swgillespie has quit [Max SendQ exceeded]
swgillespie has joined #ocaml
swgillespie has quit [Client Quit]
struktured has quit [Ping timeout: 265 seconds]
The_Mad_Pirate has quit [Excess Flood]
The_Mad_Pirate has joined #ocaml
struktured has joined #ocaml
struktured has quit [Remote host closed the connection]
struktured has joined #ocaml
<struktured>
Tekk_: stlil trying cygwin install?
rgrinberg1 has quit [Ping timeout: 264 seconds]
<Tekk_>
struktured: Not actively, I was stuck and unsure if I was able to proceed
<Tekk_>
why?
jonh has joined #ocaml
rgrinberg1 has joined #ocaml
The_Mad_Pirate has quit [Excess Flood]
inf-gropeoid is now known as pyon
The_Mad_Pirate has joined #ocaml
rgrinberg1 has quit [Ping timeout: 250 seconds]
darkf has joined #ocaml
<struktured>
Tekk_: I'm interested in this as well. I have a little bootstrapping script that layers on top of opam's script. Been meaning to try with cygwin but haven't. I could give a shot in a little bit
<Tekk_>
struktured: The thing that's catching me right now is the "looking for remotes" thing
<Tekk_>
I had to make some small changes anyway, to opam.install
<Tekk_>
because windows uses .exe
<struktured>
Tekk_: how are you doing it? using make cold with opam source?
<Tekk_>
yeah
<Tekk_>
pulled opam source, did configure/make
<Tekk_>
had to edit opam.install for make install to work
rgrinberg1 has joined #ocaml
<struktured>
ok let me try..one sec..gotta login to a wor kmachine remotely
<Tekk_>
the cannot remove stuff is just windows being windows, if I had to guess
<Tekk_>
I can remove the files just fine after the process closes itself
<struktured>
why doesn't /bin/sh work ?
<struktured>
I feel like that usually works in cygwin
<Tekk_>
it does work
<Tekk_>
I wonder if I can..
<Tekk_>
what I'm guessing though
<Tekk_>
is that the remote was supposed to pull a shell script
<Tekk_>
and it tries to execute /bin/sh on a file that doesn't exist
<struktured>
oh yeah I see, the that device busy thing is root cause
<struktured>
is it a permission thing?
<Tekk_>
lemme pull up procomon and watch the process though
<Tekk_>
oh..
<Tekk_>
okay
* Tekk_
will brb but he has part of it
<Tekk_>
Okay
<Tekk_>
so it's looking for C:\bin\sh
<struktured>
yuck...and this is why I hate cygwin. hmm..wish my install would finish so I can try some things out
teiresias has quit [Quit: leaving]
<Tekk_>
I made some initial fixes
<Tekk_>
building opam now
teiresias has joined #ocaml
<Tekk_>
ugh
<Tekk_>
lib-ext is written wrong
<Tekk_>
the makefile target
<struktured>
wrong in general, or wrong for cygwin?
paarth has quit [Quit: Leaving]
<Tekk_>
wrong in general, it breaks on -j n
<Tekk_>
which means dependencies are wrong somewhere
deavidsedice has quit [Ping timeout: 265 seconds]
<struktured>
easy to fix at least
<struktured>
but taking out j param, which I'm sure u are trying now
<struktured>
*but/by
<Tekk_>
yeah, I did
<Tekk_>
it was just annoying because that target takes a while
<Tekk_>
now opam-install decided that it doesn't know how paths work
<Tekk_>
which is weird
systmkor has quit [Quit: Leaving]
<Tekk_>
it's trying to copy src\opam.exe to /usr\bin\opam.exe
<Tekk_>
maybe something to do with me passing --prefix..
gabemc has quit [Ping timeout: 246 seconds]
<Tekk_>
struktured: I'm going to warn you now
<Tekk_>
this is a pointless task, I'd bet
<Tekk_>
mostly pointless anyway
<Tekk_>
as soon as I get opam working, I'm going to find that pretty much all of the builds for opam packages assume unixy things that can't be assumed
<Tekk_>
so then not only are we going to need a patchset for opam itself
<Tekk_>
but a repository of patches to the packages
sdothum has quit [Quit: ZNC - 1.6.0 - http://znc.in]
swgillespie has joined #ocaml
swgillespie has quit [Client Quit]
<Tekk_>
no, okay
deavid has joined #ocaml
<Tekk_>
So somewhere it's trying to be cross platform and use \
<Tekk_>
even though / has worked with microsoft since like
<Tekk_>
dos 3
<struktured>
so..verdict is what then?
<Tekk_>
that I need to play with it
<struktured>
ok, please take good notes :)
ygrek has quit [Ping timeout: 252 seconds]
The_Mad_Pirate has quit [Quit: Konversation terminated!]
mort___ has joined #ocaml
kushal has joined #ocaml
pyon has quit [Quit: I have irrefutable proof that D < 0. It follows trivially from 2D > 3D, which is obviously true.]
mort___ has quit [Quit: Leaving.]
walter|r has quit [Remote host closed the connection]
walter|r has joined #ocaml
keen___________6 has joined #ocaml
keen___________5 has quit [Ping timeout: 246 seconds]
walter|r has quit [Ping timeout: 246 seconds]
<Tekk_>
okay, so
<Tekk_>
with the patch stuff I did
<Tekk_>
if I make
<Tekk_>
and then manually copy opam.exe into the cygwin path
inf-gropeoid has joined #ocaml
<Tekk_>
it then errors out differently, complaining that I don't have rsync, wget, git, etc.
deavid has quit [Ping timeout: 272 seconds]
<Tekk_>
which means it's not respecting PATH from cygwin
deavid has joined #ocaml
nullcat has joined #ocaml
<Tekk_>
or path at all, apparently
<Tekk_>
struktured: okay, so I think this is ocaml's fault
kushal has quit [Quit: Leaving]
nullcat has quit [Quit: gone...]
slash^ has joined #ocaml
<Tekk_>
struktured: so what I think is happening is that it's using the right PATH
<Tekk_>
but it's parsing it as a unix path
nullcat has joined #ocaml
<Tekk_>
I may be wrong, but there'd be some non-trivial amount of porting involved in getting opam to run on windows
<Tekk_>
In brighter news, I see no reason why opam wouldn't work under Haiku
<struktured>
can you humor me and send the patches, or put on gists/github, whatever
<Tekk_>
I saw a post recently about a another similar library for C#
<Tekk_>
so maybe I'd look into that too
<Drup>
Tekk_: technically, F# is usable with unity
<Tekk_>
interesting, but unity's overkill for what I do
<Drup>
I don't think there is such thing as overkill when you are building a game.
<MercurialAlchemi>
why do I feel such dread at the prospect of an owebl "suite"?
<Drup>
MercurialAlchemi: the fact that owebl still doesn't have .mlis, maybe ? :3
<tane>
lol, at least this guy seems very active
<Tekk_>
"humps does not rely on releases"
<MercurialAlchemi>
Drup: I wish this was the main sticking point
<Tekk_>
*immediately shows the spec file where almost everything is tagged to a release*
<Drup>
MercurialAlchemi: let's just call it a symptom
<MercurialAlchemi>
well, at least there is some realism when he says "better suited for development"
<MercurialAlchemi>
that said, I haven't really figured out what problem it's supposed to solve that OPAM doesn't solve better
<MercurialAlchemi>
so you need to specify all your transitive dependencies in order to get an environment?
<Drup>
MercurialAlchemi: "I couldn't bother to look what opam pin is doing"
<MercurialAlchemi>
Drup: as you know, real men don't RTFM
<MercurialAlchemi>
they reinvent the wheel but make it square
<MercurialAlchemi>
well, at least it makes for good entertainment
<MercurialAlchemi>
I just hope not too many inexperienced people will confuse this "suite" with quality software
<Drup>
MercurialAlchemi: it's not on the mailing list yet, that would be better for the entertainment value :D
<MercurialAlchemi>
:)
<Drup>
apparently it's not on the ocaml planet either
<Drup>
funny, nobody added it.
<rgrinberg1>
lol
Snark has quit [Read error: Connection reset by peer]
rgrinberg1 is now known as rgrinberg
<rgrinberg>
i wonder how does a newcomer to ocaml suddenly get the urge to reinvent an stdlib, a package manager, and a web framework all at once
<MercurialAlchemi>
If I was mean, I'd say the product eatonphil's consultancy work will likely be a source of lucrative consulting work later
<MercurialAlchemi>
"product of"
<MercurialAlchemi>
er, I'm not sure I'd characterize this thing as a package manager
psy_ has joined #ocaml
ggole has quit []
<MercurialAlchemi>
rgrinberg: considering the quality of the work ('lightweight' web framework forking at every request, right), I'd say a combination of hubris and inexperience
<MercurialAlchemi>
also, marketing
<rgrinberg>
i think somebody should just tell the guy politely about opam pins
<MercurialAlchemi>
rgrinberg: the only sane answer to the situation is as usual provided by Randall Munroe: https://xkcd.com/927/
tmtwd has joined #ocaml
MrScout_ has joined #ocaml
<rgrinberg>
MercurialAlchemi: luckily this one doesn't stand much of a chance competing :/
<rgrinberg>
it might distract noobs though
<MercurialAlchemi>
maybe
<MercurialAlchemi>
they'll probably notice it has a grand total of about 10 functions, no documentation and probably bugs, and flee to something better
<MercurialAlchemi>
or they will have read RWO and won't even try
idegen has joined #ocaml
<rgrinberg>
MercurialAlchemi: yeah but 1st impressions are kind of important
<rgrinberg>
IMO ocaml doesn't give the best 1st impression already and this doesn't help
<rgrinberg>
anyway, it's pointless to worry about this. might as well get a laugh out of this
<MercurialAlchemi>
Finally, we have begun our experimental transition to camel-casing functions. We do this in order to increase readability. Without explicit function tokens, OCaml source code can be very difficult to read. We have begun to adopt and will soon put forth a series of OCaml best-practices for writing actually legible source code. We are only beginning to transition toward this and look forward to input
<MercurialAlchemi>
from the community.
<MercurialAlchemi>
...
<dtscode>
So TIL utop throws a fit if I don't set eval `opam config env`
<Drup>
well, that's to be expected
<Drup>
MercurialAlchemi: I find the argument about code readability delicious
<Drup>
I should find again the paper about the scientific study that shows that snake_case is always easier to read, but I don't event want to bother :p
<MercurialAlchemi>
I need some popcorn, I'm sure the set of "best practices" will be entertaining
<MercurialAlchemi>
(I have to say, however, that the weird capitalized snake case for modules *is* an abomination in my eyes)
<rgrinberg>
MercurialAlchemi: you mean X_y?
<MercurialAlchemi>
yes
<Drup>
and for constructors
<rgrinberg>
at least everyone more or less follows it
<Drup>
I must say, I'm not consistent in the matter
<MercurialAlchemi>
except for all the people using CamelCase
<MercurialAlchemi>
Drup: that's probably a hint it's a bad convention
<rgrinberg>
MercurialAlchemi: nobody uses that
<Drup>
yeah
<rgrinberg>
which reminds me you should rename yourself :P
<Drup>
rgrinberg: for constructors ? I have seen it several time
<MercurialAlchemi>
eh, I'll miss even more letters if I camel case myself
<MercurialAlchemi>
irc discriminates against long names
<Drup>
s/Mercurial/Hg/ ? :3
<MercurialAlchemi>
haha
<MercurialAlchemi>
I admit, I use git
<MercurialAlchemi>
my nick is inspired by Culture ship names
<Drup>
It's not really related to the CVS
<Drup>
just standard short name for chemical element
<MercurialAlchemi>
HgAlchemist isn't that funny
<rgrinberg>
Hg_alchemist dammit
<Drup>
MercurialAlchemi: Is it a real ship name ? I don't recall that one
<Drup>
It's too short anyway
<Drup>
A Culture Mind's name is at least a full sentence
<Drup>
there are exceptions, yes, like "Grey area", but this one is a special kind of exception :3
<MercurialAlchemi>
(wikipedia is wonderful)
<Drup>
note that most of them are actually the shorten ones
struktured has quit [Remote host closed the connection]
<MercurialAlchemi>
yeah, not many full sentences
<MercurialAlchemi>
though note that the table has also non-Culture ships
<Drup>
they are easy to spot, in the middle of terrible jokes :D
<MercurialAlchemi>
shame we won't see more of them
mengu has joined #ocaml
<Drup>
:(
<Drup>
the comedy aspect of most names is lost without the actual personality/role of the ship.
<MercurialAlchemi>
yes
<MercurialAlchemi>
his non sci-fi is pretty good too
<MercurialAlchemi>
especially The Bridge
<Drup>
Is "Inversion" non-sci-fi ? :3
<Drup>
I read his non-culture sci-fi, but not the non-sci-fi
<MercurialAlchemi>
er, well, it has knife missiles, so you decide
<Drup>
I don't remember knife missiles, but yeah, it was a joke
<MercurialAlchemi>
there is a scene where the doctor is captured
<Drup>
we might want to avoid spoilers here. :3
<MercurialAlchemi>
funny with all these left-wing scifi writers
<MercurialAlchemi>
from scotland
<Drup>
which others you have in mind ?
<MercurialAlchemi>
Charlie Stross, Ken Macleod
* Drup
adds to the TOREAD list
<MercurialAlchemi>
don't know about Rajaniemi
<Drup>
do you recommend a particular book to start ?
<MercurialAlchemi>
Accelerando will blow your mind
<MercurialAlchemi>
(from Stross)
<MercurialAlchemi>
haven't read that much Macleod
<MercurialAlchemi>
and you need to read Rajaniemi's Jean Le Flambeur trilogy if you fancy Arsene Lupin in space with quantum tech and godlike posthumans
<Drup>
I could like that.
<MercurialAlchemi>
Stross' Laundry Files are pretty funny too
<MercurialAlchemi>
British Intelligence bureaucracy vs Cthullu
gabemc has joined #ocaml
swgillespie has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
nullcat has joined #ocaml
amnn_ has quit [Read error: Connection reset by peer]
amnn has joined #ocaml
<nullcat>
so quiet here
<nullcat>
everyone is watching soccer?
badon has quit [Ping timeout: 256 seconds]
<MercurialAlchemi>
watching sense8
<Drup>
hot to spot an American 101: he says "soccer"
<Drup>
:]
<MercurialAlchemi>
well, it disambiguates in a channel with US and non-US people
mort___ has joined #ocaml
ollehar has quit [Ping timeout: 252 seconds]
<nicoo>
Drup: I might have heavily recommended you some of Stross' books already :P
* nicoo
doesn't rate high enough to land in Drup's to-read list ;_;
badon has joined #ocaml
<Drup>
nicoo: the atrocity archive was already in my toread list
<Drup>
so, yes, you do :p
<nicoo>
MercurialAlchemi: « real men don't RTFM, they reinvent the wheel but make it square » -> Don't say that where companion_cube might hear :>
<nicoo>
\o/
<nicoo>
Drup: Ok. Check out also Glasshouse, if I didn't recomment it already
<nicoo>
And the Merchent Princes seem to be awesome, even though I hadn't time to read beyond T1
<rgrinberg>
nicoo: companion_cube is pretty good at polishing off edges :P
<Drup>
MercurialAlchemi: not enough dimensions, obviously
<MercurialAlchemi>
Merchant Prince isn't bad, but missing a little something
<MercurialAlchemi>
I need to remember to get the last book as interlibrary loan
Anarchos has joined #ocaml
<Drup>
nicoo: I don't need multiple books from the same author, I'll get the style with the first one and see by myself if it suits me
<MercurialAlchemi>
he also wrote one which deals with interstellar economy when you don't have FTL, that sounded fascinating
mort___ has quit [Quit: Leaving.]
pgomes has joined #ocaml
hbar has joined #ocaml
idegen has quit [Quit: Leaving.]
idegen has joined #ocaml
nullcat has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
nullcat_ has joined #ocaml
<Drup>
rgrinberg: I'm wondering about furl's ppx
<Drup>
The particular issue I'm hitting right now is that "?" should be the optional element, but can't be used in path
slash^ has quit [Read error: Connection reset by peer]
ollehar has joined #ocaml
tane has quit [Quit: Verlassend]
Haudegen has quit [Ping timeout: 255 seconds]
rgrinberg_ has quit [Quit: Connection closed for inactivity]
swgillespie has joined #ocaml
Simn has quit [Quit: Leaving]
gabemc has quit [Ping timeout: 245 seconds]
nullcat_ has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
contempt has quit [Ping timeout: 265 seconds]
contempt has joined #ocaml
Haudegen has joined #ocaml
amnn has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
badon has quit [Disconnected by services]
badon_ has joined #ocaml
badon_ is now known as badon
MrScout_ has quit [Remote host closed the connection]
amnn has joined #ocaml
amnn has quit [Read error: Connection reset by peer]
amnn has joined #ocaml
Gama11_ has quit [Read error: Connection reset by peer]
robink_ is now known as robink
paarth has joined #ocaml
Anarchos has quit [Ping timeout: 255 seconds]
Anarchos has joined #ocaml
Anarchos has quit [Client Quit]
sh0t has joined #ocaml
pgomes has quit [Quit: Leaving]
The_Mad_Pirate has quit [Quit: Konversation terminated!]
struktured has joined #ocaml
<paarth>
how do people feel about the use of exceptions vs. option/some custom result?
badon_ has joined #ocaml
badon has quit [Disconnected by services]
<thizanne>
it depends on people
badon_ is now known as badon
<thizanne>
but it seems that most of them do think that a result type is often better
rgrinberg has quit [Ping timeout: 258 seconds]
<Drup>
it depends of what you are doing too
<thizanne>
especially for exceptions you do want to be able to catch, or if you are on the raising side, that you want people to potentially catch
<Drup>
basically, how "exceptional" the failure is
amnn has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
<thizanne>
to continue with Drup, I think there was a mail in the caml list a year ago which said that exceptional exceptions were faster, but commonly used error constructors were faster
<paarth>
So for potential errors continue with a result type but for exceptions that indicate some deeper level don't feel guilty for moving forward with them?
<paarth>
some deeper level of failure*
<thizanne>
it depends on what you mean by deeper
badon has quit [Excess Flood]
<thizanne>
if your exception is like Not_found for List.assoc (or Map, or...), (some) people usually find it better to use option
<thizanne>
if your exception is like Division_by_zero or Out_of_memory (extreme case), you don't want to add an extra layer of types to indicate this
badon has joined #ocaml
<Drup>
(Out_of_memory is a special kind, because just allocating the error variant might be an issue :D)
<thizanne>
(probably - again, if you expect your code do try a lot of divisions by zero, maybe it's worth acknowledging it at the type level)
<thizanne>
anyway, don't feel guilty for using exceptions. Some people will blame you, but they will blame you for the name of your functions or the order of your parameters anyway (and changing it will make the other class of people blame)
<paarth>
thizanne, honesty I don't really like exceptions either. I think they're too easy to overlook and I would rather the type system force someone to handle a common error
<paarth>
but honestly putting all of that into the type level I've realized does get tiresome
<Drup>
well, there is a thing though: implementing an option function in term of an exception functions is rather expansive and badly optimized. The other way around is less of an issue
<thizanne>
then you've got the exact point: the answer is in finding the good compromise
MercurialAlchemi has quit [Ping timeout: 265 seconds]
<paarth>
I'm having trouble placing what I would say for plain old invalid input
<paarth>
so I'm parsing things into a data structure and I get content that's the string "hello"
Kakadu has quit [Read error: Connection reset by peer]
<paarth>
or some other garbage
badon has quit [Read error: Connection reset by peer]
badon_ has joined #ocaml
<paarth>
is that exception worthy or is that worth codifying with an invalid_input error code
badon_ is now known as badon
<thizanne>
do you expect to often parse invalid content or not ?
<Drup>
paarth: provide both.
<paarth>
Drup, how so?
<paarth>
_exn version?
<Drup>
yes
<thizanne>
yes
<paarth>
*shrug* fair enough
<paarth>
thanks
<thizanne>
if you find it cumbersome, maybe with an WithException module which provides the exception raising functions
<thizanne>
(or an ExceptionLess, as you prefer)
<Drup>
I think option is a much better default most of the time
mcc has quit [Quit: This computer has gone to sleep]
<paarth>
Drup, I think I'd agree. What I've gotten from this conversation is to go ahead and do option type unless I've got a very good reason not to and if I can't decide, just do both
systmkor has joined #ocaml
mengu has quit [Remote host closed the connection]
Haudegen has quit [Ping timeout: 276 seconds]
swgillespie has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
ygrek has quit [Ping timeout: 264 seconds]
badon has quit [Ping timeout: 265 seconds]
badon has joined #ocaml
rgrinberg has joined #ocaml
ollehar1 has joined #ocaml
<rgrinberg>
Drup: to me that's not an issue. because i don't intend to use ? in the path :P
jabesed has joined #ocaml
<Drup>
rgrinberg: I'm actively wondering if it was a good idea to begin with
ollehar has quit [Ping timeout: 256 seconds]
<Drup>
It will never support url's corner cases and it will probably be annoying to maintain
<Drup>
rgrinberg: you said you would prefer the combinators ?
<rgrinberg>
Drup: yep to url's corner cases
<rgrinberg>
what do you mean 'prefer te combinators'
<Drup>
to build furls
madroach has quit [Ping timeout: 264 seconds]
<rgrinberg>
oh. yes i do
<Drup>
I'm talking about the ppx, like "://foo.com/%s/"
<rgrinberg>
Yes, i would prefer not to use ppx unless forced to
madroach has joined #ocaml
Haudegen has joined #ocaml
<Drup>
Yeah, I wonder if you are an exception on that
<Drup>
one point on which the ppx could provide a big improvement is group naming
<Drup>
I think the syntax would be match .. with "://foo.com/{thing:%s}/" -> ... thing ...
<rgrinberg>
what do you mean group naming?
gabemc has joined #ocaml
badon has quit [Ping timeout: 246 seconds]
<Drup>
it would name a part of the url and you could use the name if the url is matched
<Drup>
instead of going through a function and hoping the order is the right one
<rgrinberg>
oh ok
<Drup>
that would be a good feature but the syntax I have in mind feels clumsy
<rgrinberg>
so you mean like labelled arguments?
<Drup>
like the example I gave earlier, really
<rgrinberg>
yeah but i'm not sure what ... thing ... means
<Drup>
well, it's a name
<Drup>
and it will be bind to what %s match
<Drup>
if you give the url "foo.com/blabla"
<Drup>
then let thing = "blabla"
<rgrinberg>
ok but how will this identifier pop into existence
<Drup>
ppx maagic
ollehar1 has quit [Quit: ollehar1]
<rgrinberg>
i thought it would be (fun thing -> .. )
<Drup>
that what it is without ppx
<rgrinberg>
ok if it's ppx then that's a little yucky for me
<rgrinberg>
although i might consider taking some ppx pixie dust to have the params passed as (fun ~thing ~etc -> ...)
<Drup>
that's also a possibility, yes
<Drup>
the issue with this kind of magic is that it's fairly limited, since it's purely syntactic
<Drup>
like, "Furl.eval ..." would work
<Drup>
but not "let my_furl = ... in Furl.eval my_furl"