Anarchos has quit [Quit: Vision[0.9.7-H-090423]: i've been blurred!]
hongboz has quit [Remote host closed the connection]
munga has quit [Ping timeout: 260 seconds]
mfp has quit [Read error: Connection reset by peer]
madroach has quit [Ping timeout: 265 seconds]
madroach has joined #ocaml
mfp has joined #ocaml
scri has joined #ocaml
scri has quit [Remote host closed the connection]
hongboz has joined #ocaml
mattrepl has joined #ocaml
hongboz has quit [Remote host closed the connection]
maufred has quit [Read error: Operation timed out]
maufred has joined #ocaml
mattrepl has quit [Quit: mattrepl]
emmanuelux has quit [Ping timeout: 246 seconds]
ankit9 has joined #ocaml
Progster has quit [Ping timeout: 245 seconds]
ulfdoz has joined #ocaml
sivoais has quit [Read error: Connection reset by peer]
sivoais has joined #ocaml
ulfdoz has quit [Ping timeout: 245 seconds]
ulfdoz has joined #ocaml
eni has joined #ocaml
ankit9 has quit [Quit: Leaving]
sgnb` is now known as sgnb
ulfdoz has quit [Ping timeout: 246 seconds]
fschwidom has joined #ocaml
Tobu has quit [Ping timeout: 260 seconds]
eni has quit [Ping timeout: 265 seconds]
ankit9 has joined #ocaml
Tobu has joined #ocaml
cago has joined #ocaml
mika1 has joined #ocaml
pango is now known as pangoafk
djcoin has joined #ocaml
Yoric has joined #ocaml
bddn has quit [Quit: No Ping reply in 180 seconds.]
hkBst has joined #ocaml
hkBst has quit [Changing host]
hkBst has joined #ocaml
Yoric has quit [Ping timeout: 240 seconds]
Tobu has quit [Ping timeout: 272 seconds]
Tobu has joined #ocaml
fschwidom has quit [Ping timeout: 240 seconds]
eikke has joined #ocaml
Tobu_ has joined #ocaml
Tobu has quit [Ping timeout: 260 seconds]
munga has joined #ocaml
Tobu_ has quit [Ping timeout: 260 seconds]
Tobu has joined #ocaml
Tobu has quit [Ping timeout: 260 seconds]
Tobu has joined #ocaml
Cyanure has joined #ocaml
ontologiae has joined #ocaml
Tobu has quit [Ping timeout: 272 seconds]
Tobu has joined #ocaml
ocp has joined #ocaml
Tobu has quit [Read error: Connection reset by peer]
Tobu has joined #ocaml
sepp2k has joined #ocaml
<yezariaely>
official ocaml.vim plugin: When I print the type with <LocalLeader>t then it prints the type correctly, but immediately clears the screen and the type is gone. So if I keep pressing the hotkey, I can finally read the type. Anyone knows a better solution for that?
twigmorewelsh has joined #ocaml
Snark has joined #ocaml
dsheets has quit [Ping timeout: 240 seconds]
<fx_>
what is an official ocaml.vim plugin?
micro___ has joined #ocaml
micro___ is now known as micro`
eni has joined #ocaml
Chambart has joined #ocaml
ocp has quit [Quit: Leaving.]
ocp1 has joined #ocaml
<yezariaely>
fx_ maybe it is not that official. Thought so.
<yezariaely>
however, this now redirects to a bitbucket repo
UncleVasya has joined #ocaml
paolooo has joined #ocaml
samposm_ has joined #ocaml
jonafan_ has joined #ocaml
samposm has quit [Ping timeout: 240 seconds]
jonafan has quit [Ping timeout: 240 seconds]
Sablier has quit [Ping timeout: 240 seconds]
strlen has quit [Ping timeout: 240 seconds]
Derander has quit [Ping timeout: 240 seconds]
pou has quit [Ping timeout: 240 seconds]
pou_ has joined #ocaml
Sablier has joined #ocaml
strlen has joined #ocaml
<fx_>
yezariaely, I am using that plugin and it works ok
<fx_>
but ftplugin, not indent
Derander has joined #ocaml
samposm_ is now known as samposm
osa1 has joined #ocaml
<yezariaely>
fx_: maybe there is a conflict with another plugin. I refer to the ftplugin. So you press \t and it shows you the type of the expression in the status line
ontologiae has quit [Read error: Connection reset by peer]
<yezariaely>
?
<fx_>
yes
<fx_>
try upgrading vim
ontologiae has joined #ocaml
<yezariaely>
this is already the newest one :/
<yezariaely>
what plugins do you use?
<yezariaely>
can you paste your version of ocaml.vim? maybe there is something differnet?
<fx_>
mine is probably different because I didn't update it for long and it has some local mods, but nothing to do with \t handling
ontologiae has quit [Read error: Connection reset by peer]
ontologiae has joined #ocaml
eikke has quit [Ping timeout: 260 seconds]
eni has quit [Ping timeout: 246 seconds]
Yoric has joined #ocaml
fschwidom has joined #ocaml
ontologi1e has joined #ocaml
ontologiae has quit [Read error: Connection reset by peer]
tib has joined #ocaml
bddn has joined #ocaml
Anarchos has joined #ocaml
dsheets has joined #ocaml
dsheets has quit [Ping timeout: 244 seconds]
ontologiae has joined #ocaml
ontologi1e has quit [Read error: Connection reset by peer]
eni has joined #ocaml
eikke has joined #ocaml
Progster has joined #ocaml
ontologiae has quit [Ping timeout: 244 seconds]
_andre has joined #ocaml
tib has quit [Quit: Quitte]
osa1 has quit [Ping timeout: 268 seconds]
<yezariaely>
I have a vsplitted screen. Can I easily switch to a horizontal split?
<yezariaely>
If yes, how?
ontologiae has joined #ocaml
osa1 has joined #ocaml
ontologiae has quit [Read error: Connection reset by peer]
ontologiae has joined #ocaml
BiDOrD has quit [Read error: Operation timed out]
eni has quit [Read error: No route to host]
eni has joined #ocaml
Kakadu has joined #ocaml
<Harzilein>
is there any nice example for interaction between several inputs/outputs through lwp?
<Harzilein>
basically what i'm trying to do is extend the echo server so i can enumerate client connections in a readline ui and send stuff out to them
<Harzilein>
s/echo server/& example/
eni has quit [Ping timeout: 256 seconds]
<Harzilein>
s/lwp/lwt/
UncleVasya has quit [Ping timeout: 260 seconds]
Anarchos has quit [Quit: back to real life instead of programming in MMIX]
munga has quit [Remote host closed the connection]
<Harzilein>
(i asked this in #ocsigen as well btw)
wtetzner has quit [Remote host closed the connection]
Kakadu_ has joined #ocaml
Kakadu has quit [Ping timeout: 260 seconds]
osa1 has quit [Ping timeout: 264 seconds]
<_andre>
i have my code in src/ and i'm writing a test program in test/ for one of the modules of the application
<_andre>
is there a way to make oasis find the module?
<_andre>
the code in src/ is not a library, so there's no findlib name for it
<Harzilein>
oh, sorry, someone in #ocsigen pointed out there'Ãs no echo server example in lwt, what i meant was an example in ocaml-lwip :/
<Harzilein>
as i guess that's too exotic to ask much about, i basically want to find out first how i can enumerate the other running threads.
<hcarty>
Harzilein: utop or one of it's libraries may have something you can use as a reference
<Harzilein>
hcarty: i'll have a look, thanks
<hcarty>
Harzilein: One of its dependencies that is
<Harzilein>
uhm, what should i look for in the dependencies?
<hcarty>
Something related to Lwt? :-)
<Harzilein>
or what part of its code would use it
<flux>
harzilein, curious project, what are you going to use it for?
<hcarty>
flux: It took me a lot longer to get to than I had hoped, but ZMQ is now updated in oasis-db/odb. Which is nice because it means that lwt-zmq is installable again :-)
<flux>
hcarty, great :)
<flux>
I ended up not needing ZMQ at the moment though :). but it looks quite interesting, should I need to have a system with tons of connections..
<flux>
what I ended up with was a stomp server. well, where I currently am at least..
eni has joined #ocaml
<flux>
I wonder how big a minimal ipv6 (only) stack would be..
osa1 has joined #ocaml
<hcarty>
Harzilein: I haven't read the utop code but I know it uses Lwt to parse input for display and supporting context-sensitive completion in the toplevel.
<Harzilein>
flux: the openconnect manpage has long proposed a userspace handler for its ethernet output and i found it sad that such a thing does not seem to exist yet: −S,−−script−tun: Pass traffic to ’script’ program over a UNIX socket, instead of to a kernel tun/tap device. This allows the VPN IP traffic to be handled entirely in userspace, for example by a program which uses lwIP to provide SOCKS access into the VPN.
<Harzilein>
flux: so i want to make a nice interface that allows to bind/unbind port forwarders
<Harzilein>
and it would be nice if one could drop individual connections too
<flux>
harzilein, sounds like a good project!
<flux>
harzilein, do you plan on releasing early?-)
<Harzilein>
flux: i plan on learning ocaml while dping it, so i guess i won't have something to show for quite a while
<Harzilein>
doing*Ã
<flux>
it would probably work with ssh tunneling as well
<flux>
well, actually not sure if it would be of any benefit :)
<Harzilein>
nah, ssh tunneling is on the application layer, while anyconnect forwards layer 2
<flux>
a tool for easily setting up iptables rules would be more prudent
<Harzilein>
it's so i can connect to my uni's vpn from unprivileged accounts
<Harzilein>
for this particular case (getting a main campus address instead of one from my department) there's no ssh alternative
<flux>
harzilein, btw, are you familiar with the pre-historic tool called slirp?
<Harzilein>
flux: yes. i looked at its code. i don't want to hack on it ;)
<Harzilein>
flux: implementing socks inside it would be hard i think
<flux>
hacking 20 years old C code can be daunting :)
<Harzilein>
flux: for example they set the endpoint for port forwardings when the forwarding is set up, no easy way to make it dynamic
UncleVasya has joined #ocaml
<Harzilein>
flux: there's an allegedly easier codebase derived from it based on lwipv6 instead of 4.4bsd, but i don't like lwipv6 as it enforces native threads.
<flux>
harzilein, quite a strange requirement for an ip stack..
<flux>
it should basically be a state machine, right?
<Harzilein>
yeah. maybe it's about timers and handling the tap device.
<flux>
but its main target is embedded machines.. first you get to implement threads on it, then the actual app. seems quite a waste.
<flux>
hopefully it atleast has made developing lwipv6 easier :)
<Harzilein>
lwip is for embedded, lwipv6 is for simulation and educational use
<flux>
ah, ok
<Harzilein>
as in "academic" use. i think academic use correlates slightly with frivolous use of threads ;)
Kakadu_ has quit [Quit: Leaving]
paolooo has quit [Quit: Page closed]
paolooo has joined #ocaml
ankit9 has quit [Quit: Leaving]
<Harzilein>
hmm
<Harzilein>
let conns = Array.make 0 None gives me
<Harzilein>
Error: The type of this expression, '_a option array,
<Harzilein>
contains type variables that cannot be generalized
<Harzilein>
do i need to make a type annotation?
hongboz has joined #ocaml
Anarchos has joined #ocaml
<Yoric>
Harzilein: Basically, yes.
<Yoric>
Your declaration is actually not precise enough that OCaml can determine automatically the type of |conns|.
<flux>
harzilein, well, if you make use of the 'conns' at some point elsewhere in the module, it'll turn out ok
<flux>
harzilein, alternatively you may create an interface file that doesn't export conns
<flux>
for example, in the case of the main module that isn't used from other modules, an empty .mli-file will do
Submarine has joined #ocaml
<Harzilein>
oh?
<Harzilein>
nice, that worked :)
<flux>
harzilein, btw, explicitly 0-element arrays are useles.. an array cannot be resized :)
<Harzilein>
so no mutable arrays for me?
mattrepl has joined #ocaml
<Harzilein>
oh wait, they are mutable, but cannot be resized?
<thelema>
Harzilein: BatVect is a good choice, there's other solutions as well
<flux>
the typical data structure for an ocaml program would be a list, in this case a list packaged inside a mutable record. you could make your array dereferenced as well with let conns = ref (Array.make ..) in
<flux>
advanced level: don't use mutable data structures at all ;)
<Harzilein>
i guess if performance is not important i could just assign the array to a ref, right?
<Harzilein>
ah, right
<flux>
harzilein, btw, are you planning on indexing the structure by certain index numbers?
<thelema>
although batvect is immutable, so you'll still have to use refs to vect.t
<Harzilein>
flux: yes
<flux>
harzilein, never mind then, carry on :). (of course, there's Map for efficiently expressing object->object-mappings in a functional fashion, but you can get to it later ;))
Cyanure has quit [Remote host closed the connection]
<Harzilein>
thats my beef with example code in some libraries btw, they seem to be chosen as to not require "ugly" solutions ;)
<Harzilein>
so it's not always clear a non-ugly solution exists
<Harzilein>
i guess i'll go with an array ref for now and see how it turns out
<Harzilein>
hmm
<Harzilein>
the scope of "in" in this expression:
<Harzilein>
lwt buf = TCP.read pcb in
<Harzilein>
lwt wr = TCP.write pcb buf in
<Harzilein>
g ();
<Harzilein>
does not extend past the ;, right?
<Harzilein>
i could not write conns <- Array.append conns Array.of_list (Some pcb)?
<Harzilein>
(after it i mean)
<Harzilein>
should i just stick another in after the g ();?
<flux>
well.. do you make use of ;; ?
<Harzilein>
uh?
<flux>
to answer your question: it does extend past the ;
<Harzilein>
oh, btw, i guess it should be Array.append conns Array.of_list [Some pcb], i guess just appending an element is not possible?
<flux>
and ; is a separator, not an terminator
<flux>
harzilein, correct
<flux>
harzilein, do you make use of the interactive toplevel?
<Harzilein>
yes
<flux>
well, there you terminate everything with ;;
<thelema>
Array.append conns [|Some pcb|]
<flux>
do you use that in code as well?
<Harzilein>
no
<flux>
well, great, as it's not required at all :)
<Harzilein>
thelema: thanks :)
<flux>
harzilein, Array.append takes two arrays, appends them together, and returns a new array
<flux>
so your code probably looks like: conns := Array.append !conns [|Some pcb|]
<Harzilein>
oh, it was :=, not <-
<flux>
:= is actually an operator that does leftside.contents <- rightside
<Harzilein>
and i totally forgot about dereferencing conns
<Harzilein>
heh, the appending was easy... now i remember i need to remove the respective pcb on connection close -.-
<flux>
harzilein, do you use Batteries?
<thelema>
let array_append arr x = arr := Array.append !arr [|x|]
<thelema>
but this code will have quadratic complexity if you append many many elements
<Harzilein>
flux: so far i don't
<flux>
harzilein, well, I should tell you that its Array module has some functions such as filter and filteri that might be useful for you. of course, writing them is half the fun?-)
<Harzilein>
flux: well, regarding the "fun" of writing conventient stuff missing in the standard library ocaml sometimes makes me think of forth ;)
<flux>
harzilein, then perhaps Batteries is for you :)
<Harzilein>
what's the relation between ocamlcore and batteries?
<flux>
none
<flux>
batteries builds on an older standard library replacement called extlib
<flux>
ocamlcore is janestreet's originally internal standard library replacement
<flux>
I don't know, but I think ocamlcore maybe applies some philosophy about, say, arguments orders more consistently than extlib/batteries
<flux>
but on the other hand extlib/batteries build more on the ocaml standard library (with its quirks..)
<flux>
someone can chime in if this is an inaccurate representation of the situation :)
<flux>
also I think batteries was probably publically available before janestreet's core was
<Harzilein>
hm, builds more on the standard library is a plus in my book, when i first read about batteries i imagined a kitchen sink...
<flux>
I think it's likely that has core been published earlier, there might not be batteries. but batteries is great :)
<Yoric>
Thanks :)
<Yoric>
(well, I haven't contributed to Batteries in ages)
<flux>
yoric, do you think you would have started it had janestreet's core been out?-)
<Harzilein>
apt-get install ocaml-batteries-included says it wants to put another 64M on my system :/
<Harzilein>
oh well, i guess if c++ people use boost, i can use batteries ;)
<hongboz>
Harzilein: yes, it's quite big, that's why I just copy some files from it
<Harzilein>
hongboz: heh, that's the forth approach of adding "things i consider standard" with your code ;)
<Harzilein>
are the array enhancements in extlib as well? debian seems to still have it
<flux>
some of them are there no doubt
<flux>
it is still being maintained, at least as to keep it compiling with recent ocaml versions, probably not otherwise..
<Harzilein>
does ocsigen use batteries?
<Harzilein>
there's some CPAN like thing i could use to find that out, right?
<flux>
I don't think ocsigen uses batteries..
<flux>
apt-cache showpkg maybe :)
<flux>
actually if I were to write a library actually for others to use, I might steer away from such a big dependency. sadly..
<flux>
but with applications I don't mind :)
<Harzilein>
well, my code is in main right now and i guess it'd need a different approach (for example regarding complexity of recreating arrays) if used as general purpose code anyway
<hcarty>
If installing Batteries pulls 64 megbytes down then it sounds like there may be some dependency bloat in the Debian packages...
<hcarty>
*megabytes
<Harzilein>
it pulls 15 megabytes that install to 64
<hcarty>
Is that just for the Batteries package? Or other dependencies as well?
<Harzilein>
and i was explicitely going after the metapackage which also includes camomile
<flux>
libbatteries-ocaml-dev package itself is 22 megabytes
<hcarty>
Wow
hkBst has quit [Quit: Konversation terminated!]
<flux>
it doesn't seem it has that much excess in it
<flux>
batteries.cma is 4 megabytes, batteries_uni.cma 3.4 M, it builds up pretty fast..
<hcarty>
27 megabytes here in the installed Batteries tree from odb, so I guess I shouldn't be so shocked.
<flux>
so when do we get dynamic linking with proper support for backwards compatibility regarding interfaces?-)
<Harzilein>
ah, forgot about it having to deliver both cma and cmx
<Harzilein>
i guess 32M is reasonable, again, if compared to boost ;)
ssbr- has quit [Quit: Missingno, I choose you! ... wait, no, shi-]
<Harzilein>
okay, got my shiny new batteries, now to look for the battery receptacle ;)
UncleVasya has quit [Quit: UncleVasya]
mika1 has quit [Quit: Leaving.]
<Harzilein>
is using lwt with batteries a strange combo?
<Harzilein>
ah, i guess i want to use Batteries_uni
cago has quit [*.net *.split]
Obfuscate has quit [*.net *.split]
yezariaely has quit [*.net *.split]
patronus has quit [*.net *.split]
hcarty has quit [*.net *.split]
jonathandav__ has quit [*.net *.split]
<Harzilein>
ah, so i write module Array = BatArray
<Harzilein>
Error: This function is applied to too many arguments; maybe you forgot a `;'
ontologiae has quit [Read error: Connection reset by peer]
<Harzilein>
oh
<Harzilein>
argh, i indeed forgot a ; -.-
<Anarchos>
Harzilein it happens...
hongboz has quit [Remote host closed the connection]
ontologiae has joined #ocaml
osa1 has joined #ocaml
<Harzilein>
hmm...
UncleVasya has joined #ocaml
<Harzilein>
i either get Unbound value Array.make with module Array = BatArray or i get a Reference to undefined global `Batteries' when linking while using module Array = Batteries.Array :/
<flux>
harzilein, there are two solutions to this problem..
<flux>
harzilein, either you pass -thread while compiling, or you use Batteries_uni instead of Batteries
<Harzilein>
ah!
ontologi1e has joined #ocaml
ontologiae has quit [Read error: Connection reset by peer]
<Harzilein>
could i omit the braces in
<Harzilein>
with TCP.Connection_closed -> (print_endline "process_connection: closed"; return ())
<Harzilein>
by putting a newline behind the ->?
<flux>
hmm
<flux>
yes you can
<flux>
although the newline has nothing to do with it
ftrvxmtrx has joined #ocaml
<Harzilein>
i don't trust vim's ocaml indentation at all :/
tane has joined #ocaml
<Harzilein>
sigh, guess i have to write some c code to check two pcbs for equality
<Harzilein>
or does something exist that would let me compare the pointers?
mart has quit [Ping timeout: 245 seconds]
<Harzilein>
hm, maybe just pretending = works and looking at the output will give me a clue
<Harzilein>
File "main.ml", line 61, characters 4-20:
<Harzilein>
Error: This expression has type unit Lwt.t
<Harzilein>
but an expression was expected of type unit
<Harzilein>
also i don't know how to make a no-op for the None match to get rid of the warning about the match not being exhaustive
<Qrntz>
| None -> ()
<Harzilein>
but won't i need another ; outside the match to eat it up?
<thelema>
Harzilein: or () around match
<thelema>
(match !conns with Some c -> ... | None -> () ); return ()
<Harzilein>
it the "this expression" in the error referring to the part before the in or that after?
<thelema>
after
<thelema>
the expression is literally what's identified by the error; line 61, characters 4-20
<Harzilein>
character 4 is a blank, actually
<thelema>
That whole thing is a single expression, and for some reason it's being used as both `unit Lwt.t` and `unit`
<Harzilein>
vim was eating the "-20" bit
<thelema>
columns are counted starting at 0
<Harzilein>
i can't actually imagine a unit Lwt.t. unit -> Lwt.t yes...
<thelema>
type +'a t: The type of threads returning a result of type 'a.
<thelema>
Lwt threads can return a value
<Harzilein>
oh, right, hmm...
<thelema>
ah, the problem is a () problem with the match on line 42
<thelema>
line 47 is part of the | Some theconns -> branch on line 45
<thelema>
opposite what your indenting implies
<thelema>
; doesn't end a match
willb has quit [Ping timeout: 245 seconds]
<thelema>
solutions: make a function to append to an array option ref
<thelema>
or use () around lines 42-46
<Harzilein>
should i omit the ; in the function?
jave_ has quit [Read error: Connection reset by peer]
<thelema>
you should omit the ; on line 44
<thelema>
and move the one on line 46 after the ), if you go that route
<thelema>
; isn't a "statement terminator" as in many languages, it's an expression-chainer
<thelema>
more like , in C
jave has joined #ocaml
dsheets has joined #ocaml
willb has joined #ocaml
Yoric has joined #ocaml
<Harzilein>
is there some short way to combine is_our_pcb with not? it became quite a misnomer when i had to change == to !=
ocp1 has left #ocaml []
<thelema>
let remove_array_element arr x = let i = Array.findi x arr in Array.init (fun j -> if j >= i then arr.(j-1) else arr.(j)) (Array.length arr - 1)
<thelema>
argument order untested, probably wrong
<thelema>
to answer your question more directly, (is_our_pcb |- not)
<Harzilein>
woo, that looks fancy :D
<Qrntz>
by the way, sorry if this question was answered before, but what's INRIA's stance on inlining functions passed as arguments to HOFs?
<thelema>
Qrntz: they won't write a more advanced inlining routine for the compiler, but would be happy for one to be contributed
<Qrntz>
oh, that's something. thanks.
Ptival has joined #ocaml
djcoin has quit [Quit: WeeChat 0.3.2]
Chambart has joined #ocaml
<thelema>
Qrntz: iirc, ocamlpro has done some work on the inliner
<thelema>
anyone who would come
<thelema>
up with a GHC-quality function inliner would be welcome like the Messiah." - Xavier Leroy
<Qrntz>
thelema, compiler programming has always been a kind of black wizardry to me, but thanks for the link — I'll make sure to check it out
pangoafk is now known as pango
<wmeyer`>
possibly, you could directly look at GHC inliner
eikke has joined #ocaml
eikke has quit [Remote host closed the connection]
Yoric has quit [Ping timeout: 268 seconds]
Yoric has joined #ocaml
<hcarty>
thelema: ocaml-re installs nicely under OCaml 4.00.0 from oasis-db. No patching required, thankfully.
<thelema>
nice. it's always great when things work out
<thelema>
if only we could get all software to use oasis and oasis-db
<hcarty>
Indeed.
<wmeyer`>
hcarty: BTW: I tested ocamlbrew on ARM, it works (I had minor problems; e.g. the 512MB was not enough to make ocamlopt compilation happy)
<thelema>
except the scary "development version" notices...
<Harzilein>
so oasis is the caml equivalent to CPAN i was looking for some hours ago?
<hcarty>
thelema: ocamlnet is updated as well, thankfully with minimal patching required
<wmeyer`>
hcarty: now it's being used in full production that is
<hcarty>
wmeyer`: Excellent! I'm glad to hear it :-)
<thelema>
Harzilein: it's one thing like cpan, yes
<Harzilein>
are oasis projects restricted to those that use ocamlbuild?
<thelema>
Harzilein: not at all
<wmeyer`>
thelema: odb.ml also works without flaw (no reasons why it should not)
<wmeyer`>
hcarty: yes, thanks for it :-)
<thelema>
hcarty: hmm, maybe it would have been better to name the library 're'
<hcarty>
wmeyer`: I ran into a similar RAM issue on a VM a short while ago.
<thelema>
hcarty: instead of 'regexp'
<hcarty>
thelema: I agree. Could be a good item for a pull request :-)
<wmeyer`>
hcarty: Thanks for ocamlbrew to be clear - it's much easier to setup a working OCaml that way :-)
<thelema>
wmeyer`: great. Thanks for the feedback.
<hcarty>
wmeyer`: You're welcome, I'm glad it helps
<hcarty>
wmeyer`: thelema and gildor wrote the bulk of the tools that drive it. I just got tired of putting everything together by hand and/or going through the GODI boostrap.
<hcarty>
GODI is a wonderful tool, but it requires all-GODI packages in order to work best.
<hcarty>
thelema: 'odb.ml re' installs ocaml-re, but it's listed as regexp in the oasis-db web viewer
<thelema>
hcarty: yes, this is why the name issue.
<thelema>
maybe I just need to bother gildor to show the first findlib name instead of the package name in the odb listing
<hcarty>
Harzilein: Just a bit of clarification - oasis is a build tool; oasis-db is the CPAN-like system for uploading packages; odb is a command-line client for installing packages which are available from oasis-db
<thelema>
from oasis-db and other sources
<hcarty>
Harzilein: What thelema said. You can setup local repositories or install from a VCS or the lcoal file system.
<thelema>
my latest trick is allowing just a single URL for the tarball or git repo on the command line.
<thelema>
it doesn't always work, but when it does... sweet.
<hcarty>
match odb.ml with `cool -> "Yep"
tane has joined #ocaml
<hcarty>
thelema: That's quite nice
<thelema>
it can get deps only from META files at the moment; the _oasis scraper is pretty poor at the moment
<thelema>
that said, if oasis created a META file, as it usually does, ... :)
<wmeyer`>
thelema: That's (user_friendlines ^ inf), but when it fails is a big hit of disapointement :-D
<wmeyer`>
(or just you picked the wrong package)
<hcarty>
thelema: Maybe there is a trick possible with one of the toplevel-related modules to load and use oasis-based libraries when available.
<hcarty>
thelema: That would likely simplify the _oasis bits and still limit odb's absolute requirements to OCaml + findlib
<thelema>
wmeyer`: yes, some people don't package things according to odb's expectations
<thelema>
hcarty: what I'd like is to add a tool (or some command-line options to the oasis tool) to query all findlib dependencies from an _oasis file
<thelema>
although... maybe I can install oasis and then #require it within the same script...
<thelema>
although is it possible to have a conditional #require? I don't think so...
<wmeyer`>
thelema: you can use topfind api for this
<hcarty>
wmeyer`: That's what I was hoping
<thelema>
wmeyer`: I'll have to dig into that to figure it out. (unless someone sends me a patch that does this)
<hcarty>
thelema: Are you using findlib for META file parsing?
<thelema>
hcarty: nice. now I have to figure out if I can have that code compiled by ... eww, it looks like I'll have to use the ocaml toplevel library to do this...
<thelema>
I can't refer to the oasis code if there's no oasis library, as ocaml will give a compile error
<thelema>
so I have to have that routine as a string that gets passed to the ocaml toplevel
<hcarty>
That sounds unpleasant.
<thelema>
agreed.
<thelema>
I wonder if there's even a way to do that which works in 3.12 as well as 4.00
<hcarty>
The topfind script may have some hints. I think it's the same across both, but I may be wrong.
<wmeyer`>
thelema: perhaps, a package that deals just with your requirments would do
<wmeyer`>
(separated from odb.ml)
<wmeyer`>
I don't know if that solves the general problem, tho
<thelema>
I still think the easiest solution is (unfortunately) to interface with oasis by running an executable
<hcarty>
thelema: An odb.ml-installable executable, of course!
<thelema>
optional dependencies of ocaml executables, even "scripts" like odb.ml, are ... ugly
<thelema>
hcarty: of course. as I said earlier, best if it was just part of oasis package
<hcarty>
That's heading (dangerously?) into the world of making odb.ml into a 90% solution
<flux>
don't worry, you can still leave the email agent out of it
<thelema>
the other thing that would be nice for odb is to re-install dependent libraries.
fschwidom has quit [Ping timeout: 245 seconds]
<thelema>
flux: thank you, I know that's how all "grown-up" programs evolve
<thelema>
and I want odb to stay as the fun kid.
Chambart has joined #ocaml
<wmeyer`>
thelema: it was discussed with Gildor, to provide an oasis dry run option, to get these dependencies, now somebody needs to sit down and write it
<thelema>
wmeyer`: maybe when oasis is converted to git.
<wmeyer`>
perhaps, i did look at it, oasis is huge and complex.
<thelema>
yes, I can't say that gildor applied any principle of "do the simplest thing that could possibly work"
<wmeyer`>
just initially tried to mock up something up, but i spend more than i though just grepping through
<thelema>
that said, oasis' line count is inflated by gildor's programming style, which is almost one token per line
<wmeyer`>
good stuff, but not for evening hack like odb :-)
<thelema>
maybe he has a much bigger monitor than I.
<wmeyer`>
(i suppose that's why odb is lean)
<wmeyer`>
or just use it verticaly
<thelema>
odb has gotten fatter; it's almost 800 LoC now.
<thelema>
and that's pretty dense lines of code.
<thelema>
it goes over the 80 character limit regularly
<ousado>
thelema: nice license :)
<thelema>
ousado: :) thanks
<wmeyer`>
thelema: is there free beer clause too for all the contributors? :)
<thelema>
wmeyer`: any that I meet in person, sure. I'll be at OUD, so find me and claim your beer.
<wmeyer`>
you'd have one already, if you drunk beer :-)
<thelema>
:)
<thelema>
wmeyer`: you're encouraged to drink a beer in my honor, if you feel inclined.
<wmeyer`>
sure :-)
<wmeyer`>
i can do
<hcarty>
thelema: Have fun at OUD. I asked too late to get a trip funded this year, but hopefully next.
<hcarty>
ICFP/CUFP/OUD looks like an interesting mix this year
<Anarchos>
hcarty do you think that if i port ocaml to an exotic assembly, it could interest someone ?
<thelema>
Anarchos: unlikely.
<hcarty>
Anarchos: Anyone with a platform running that exotic assembly and interested in OCaml. Probably not much beyond that.
<Anarchos>
hcarty it is the assembly designed by D. Knuth :)
<wmeyer`>
Anarchos: D-CPU port would be interesting
<hcarty>
There was a port of OCaml to some simple processor.. PIC-8 or something.
<wmeyer`>
Anarchos: yes, he is examples from his book are in this assembler, forgot how it's called
<wmeyer`>
Anarchos: it's a nice exercice, apart from that there is always bytecode interpreter
<Anarchos>
wmeyer` name is MMIX
<wmeyer`>
then you have all the architectures supported by gcc for free
<Anarchos>
i am writing the interpreter in assembly by hand...
<wmeyer`>
Anarchos: right, sorry, weird memory to names
<Anarchos>
hcarty yes i remeber the port to PIC-8
<wmeyer`>
Anarchos: you could, it's a subser of Forth
<wmeyer`>
Anarchos: still you need to wait a bit for arch to do the backend for mmix
Yoric has joined #ocaml
sivoais has joined #ocaml
<wmeyer`>
that's actually what I am working on
<Anarchos>
wmeyer` sorry i could'nt find the description of your project
<wmeyer`>
Anarchos: true
<wmeyer`>
Anarchos: I've not put there anything yet, but will let you know once it's done
<Anarchos>
wmeyer` is it an implementation of the dragon book ?
<wmeyer`>
Anarchos: no, it's a just a name
<Anarchos>
wmeyer` so what it is ?
<wmeyer`>
Anarchos: sort of framework to ease pain to develop languages, you can call it compiler framework (like LLVM) because it's not that different
eni has joined #ocaml
Snark has quit [Quit: Quitte]
ontologiae has joined #ocaml
<Anarchos>
wmeyer` with CSE, register allocation , tail call optimization and so on ?
eni has quit [Ping timeout: 252 seconds]
<wmeyer`>
Anarchos: register allocator is there, rest in progress; current focus is backend generator
ftrvxmtrx has joined #ocaml
<wmeyer`>
Anarchos: currently it's bare minimum to JIT compile a simple language, the plan is to generate backends from a DSL
<wmeyer`>
once I have the infrastructure we can think about passes
<wmeyer`>
and optimisations
<wmeyer`>
the most interestint part is not currently on github
eikke has joined #ocaml
<wmeyer`>
Arch
<Anarchos>
wmeyer` hmmm seems very an ongoing project, i can't rely on that sorry
<Anarchos>
wmeyer` but good luck in your programming !
ontologiae has quit [Ping timeout: 248 seconds]
<wmeyer`>
Anarchos: thanks
ontologiae has joined #ocaml
ftrvxmtrx has quit [Quit: Leaving]
twigmorewelsh has quit [Ping timeout: 264 seconds]
eni has joined #ocaml
Chambart has quit [Ping timeout: 260 seconds]
UncleVasya has quit [Quit: UncleVasya]
Chambart has joined #ocaml
wmeyer` has quit [Quit: ERC Version 5.3 (IRC client for Emacs)]
Pailmaster has joined #ocaml
Pailmaster has left #ocaml []
Yoric has quit [Remote host closed the connection]
Yoric has joined #ocaml
ontologiae has quit [Ping timeout: 240 seconds]
Chambart has quit [Ping timeout: 244 seconds]
eni has quit [Ping timeout: 264 seconds]
tane has quit [Quit: Verlassend]
Yoric has quit [Ping timeout: 244 seconds]
eikke has quit [Ping timeout: 264 seconds]
sepp2k1 has quit [Remote host closed the connection]