adrien changed the topic of #ocaml to: Discussions about the OCaml programming language | http://www.ocaml.org | OCaml 4.06.0 release notes: https://caml.inria.fr/pub/distrib/ocaml-4.06/notes/Changes | Try OCaml in your browser: http://try.ocamlpro.com | Public channel logs at http://irclog.whitequark.org/ocaml
<discord2> <mars0i> I am a Garamondi
<discord2> <mars0i> Meant to say Garamond-lover--that was a typo--but I'll coin it as a synonym.
<discord2> <mars0i> Not Apple Garamond.
<discord2> <mars0i> EB Garamond is beautiful. I use it for my papers sometimes. But it is very OldStyle-ey. More than Adobe or URW. Also, does EB have a boldface yet? Georg Duffner, the designer, hadn't gotten to it yet last I checked.
<discord2> <mars0i> I'm not sure EN Garamond is the best look for OCaml. Look at Owl's docs in a browser for an Old Style font doc look. Not sure what that font is.
<discord2> <mars0i> But a gool
<discord2> <mars0i> But a good overall design is more important than just the right font. Copying an existing desighn with small mods seems like a good idea unless there is a real designer who can take it on. (@Perry, you can decide whether you qualify.)
<discord2> <mars0i> "EBGaramond12-Bold: Bold font for design size 12pt (very rough/unusable; not included in releases)" https://github.com/georgd/EB-Garamond
sh0t has quit [Remote host closed the connection]
fare__ has quit [Ping timeout: 260 seconds]
<discord2> <Perry> EB Garamond currently has a full gamut (bold, italic, roman, not sure about small caps or book figures.)
isd has quit [Ping timeout: 240 seconds]
<discord2> <Perry> We are mostly stealing design principles. The goal is not to innovate. That said, it is hard for us to steal everything, but I think the general goal is theft. Ultimately I think the general model (though not all the font choices etc.) is the Racket docs, though we won't be a complete ripoff.
Algebr has quit [Ping timeout: 264 seconds]
<discord2> <Perry> I happen to be partial to the use of Old Style over Didone fonts for readability on a screen. If there was a good open version of Adobe Jenson or Caslon I'd take 'em.
<discord2> <Perry> I also think that we'll be tuning this over a year or even two.
silver_ has joined #ocaml
silver has quit [Ping timeout: 264 seconds]
<discord2> <Perry> BTW, it may turn out that another choice is better than EB Garamond, and I'm not 100% sold on Fira Sans for the headings (though it isn't bad so far, I think it clashes a bit with the body face, though that may be lack of familiarity on my part), but generally, all of this is a side show. There are many choices that would work. The things that are kind of not-optional are wide line spacing, relatively short lines, relatively large type, enough
<discord2> rhythm and contrast between things like code samples and headings and paragraphs to keep the eye oriented on the page, etc.
<discord2> <Perry> We need good fonts, but there are a number of choices on each. (I'm very against keeping the browser defaults for a number of reasons, including the fact that it means we get no control over appearance because different browsers pick different ones.)
<discord2> <Perry> And no, I'm not a professional designer, I'm a computer scientist, but I'm not bad at the high level stuff, and if needed I can get a friend or two who do real design to tune it.
<discord2> <mars0i> Oh , not Didones!
<discord2> <mars0i> Horrible reading fonts.
<discord2> <mars0i> But those arent the only options.
<discord2> <mars0i> Yes on most of the other stuff. Thanks for articulating all that.
<discord2> <Perry> Extreme Didone fonts were kind of a Victorian folly I think, but note that Computer Modern is a Didone. Not too extreme, but also Not Really What You Want.
<discord2> <mars0i> I forget the terms for non Didone serifs with less slantyness han Old style
<discord2> <Perry> The only reason I'm fond of documents written in Computer Modern Roman is that the font is a sort of shibboleth. Everyone knows that if the document is in CMR, the author knows TeX and is therefore One Of Our Crowd.
<discord2> <Perry> So my resume is in CMR.
<discord2> <Perry> The Victorians realized that with modern printing technology they could do really contrasty Didone fonts for the first time and went nuts on it.
<discord2> <Perry> People think of Victorian typography as being all swirly but in fact it's all nutty Didone fonts, plus Egyptian slab serifs.
<discord2> <Perry> (I do not get why "Egyptian" fonts are thought of as Egyptian. There's nothing Egyptian about slab serifs at all.)
<discord2> <mars0i> I agree about CM. It was an odd design choice by Knuth. ok right not horrible but not good.
<discord2> <Perry> He knew how to design a font representation system but not how to design a font, even with Hermann Zapf helping him.
shinnya has quit [Ping timeout: 240 seconds]
ctrlsbstr has joined #ocaml
<discord2> <Perry> (If it says anything, my favorite font modernish designers are Zapf and Spiekermann.)
silver_ has quit [Quit: rakede]
<discord2> <Perry> That said, Knuth's Concrete Roman isn't too bad.
<discord2> <Perry> If there is a monospace Concrete Roman available, that might not be a bad thing to try out in place of Source Code Pro.
<discord2> <Perry> Anyway, as I said, this will be slow and will require a bunch of trial and error and experimentation. And people will need to keep in mind that CSS files are easily changed and that bits are not set in stone, so if we pick something people hate we aren't stuck with it until the end of time.
ctrlsbstr has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
<discord2> <mars0i> I dont remeber who designed what, often. I know there are some Zapf fonts I like. not the dingbats...
<discord2> <mars0i> Not familiar with Concrete Roman.
<discord2> <Perry> Zapf is best known for Aldus, Palatino, Optima, Melior and a few others.
<discord2> <Perry> He designed maybe 30 or 40 in his lifetime.
<discord2> <mars0i> Ah. I use Otima for undergraduate syllabi. Very nonthreatening at that size.
<discord2> <Perry> Also was responsible for some really good work on computer assisted typography. Like he invented microtypography I think.
<discord2> <mars0i> Optima.
<discord2> <Perry> Optima is one of the sans serif fonts I really like in the world. 😃
<discord2> <mars0i> Everyone knows Palatino.
<discord2> <Perry> Palatino is a bit of a cliche at this point but I'm still setting my academic work in it because I like it.
<discord2> <mars0i> Aparantly it is disdained by typographers as the lotin bottle font.
<discord2> <mars0i> lotion
<discord2> <mars0i> Can't really go wrong with Palatino for writing.
<discord2> <mars0i> ie Optima for lotions
<discord2> <mars0i> R
<discord2> <mars0i> Are we going to get kcked out of IRC for extended off topic discussion?
<discord2> <Perry> Meh.
<discord2> <mars0i> gotta run
jao has quit [Ping timeout: 256 seconds]
cbot_ has joined #ocaml
hdon has quit [Ping timeout: 256 seconds]
cbot has quit [Ping timeout: 240 seconds]
keep_learning has joined #ocaml
mfp has quit [Ping timeout: 265 seconds]
theglass has quit [Ping timeout: 240 seconds]
cbot_ has quit [Ping timeout: 260 seconds]
theglass has joined #ocaml
theglass has joined #ocaml
theglass has quit [Changing host]
tarptaeya has joined #ocaml
cbot_ has joined #ocaml
isd has joined #ocaml
tarptaeya has quit []
tarptaeya has joined #ocaml
tormen_ has joined #ocaml
tormen has quit [Ping timeout: 240 seconds]
ygrek has quit [Ping timeout: 240 seconds]
fare__ has joined #ocaml
tarptaeya has quit [Remote host closed the connection]
tarptaeya has joined #ocaml
tarptaeya has quit [Remote host closed the connection]
jbrown has quit [Ping timeout: 260 seconds]
fare__ has quit [Ping timeout: 240 seconds]
<keep_learning> I have written some javabindings (https://github.com/mukeshtiwari/learnjbuild/blob/master/lib/bindingocaml/srcs/javaocamlbinding.ml) which is very similar to example from ocaml-java test directory (https://github.com/Julow/ocaml-java/blob/master/tests/test_ml/test_ppx.ml)
<keep_learning> The jbuild file in ocaml-java (https://github.com/Julow/ocaml-java/blob/master/tests/test_ml/jbuild#L11) has command (preprocess (pps (ppx))) (https://github.com/Julow/ocaml-java/tree/master/ppx)
<keep_learning> but when I am adding the same line in my jbuild file to preprocess my binding file (https://github.com/mukeshtiwari/learnjbuild/blob/master/lib/bindingocaml/srcs/javaocamlbinding.ml)
<keep_learning> I am getting Error: Library "ppx" not found.
unyu has quit [Quit: Reboot.]
<keep_learning> Any hint would be great.
fare__ has joined #ocaml
unyu has joined #ocaml
fare__ has quit [Ping timeout: 268 seconds]
pierpa has quit [Quit: Page closed]
malina has joined #ocaml
fare__ has joined #ocaml
fare__ has quit [Ping timeout: 240 seconds]
Algebr has joined #ocaml
govg has joined #ocaml
<engil> Khady: I'm mostly ripped off ocaml-yaml
<engil> s/'m//
<engil> it's a fairly good base to write ctypes bindings nowadays with jbuilder I think
jimt has quit [Quit: jimt]
<Khady> cc Leonidas: ^
Muzer has quit [Ping timeout: 265 seconds]
muelleme has joined #ocaml
noitakomentaja has quit [Ping timeout: 255 seconds]
muelleme has quit [Ping timeout: 268 seconds]
mbuf has joined #ocaml
Algebr has quit [Remote host closed the connection]
hdon has joined #ocaml
noitakomentaja has joined #ocaml
cbot_ has quit [Quit: Leaving]
hdon has quit [Ping timeout: 268 seconds]
muelleme has joined #ocaml
MercurialAlchemi has joined #ocaml
isd has quit [Quit: Leaving.]
muelleme has quit [Ping timeout: 240 seconds]
ctrlsbstr has joined #ocaml
jimmyrcom_ has joined #ocaml
Haudegen has joined #ocaml
Haudegen has quit [Ping timeout: 256 seconds]
Haudegen has joined #ocaml
zolk3ri has joined #ocaml
ctrlsbstr has quit [Ping timeout: 264 seconds]
muelleme has joined #ocaml
<Leonidas> Khady engil: thanks!
<Leonidas> Perry: me too, but I still would not consider myself as an authority on type design. Grolier Club sounds like a cool place.
<Leonidas> Perry: I like EB Garamond for print a lot, but not sure about display :|
<Leonidas> Perry: my CV is in "normal fonts" except the mention of "LaTeX" which is in LM to signify I am One Of These People :D
muelleme has quit [Ping timeout: 276 seconds]
ncthbrt has joined #ocaml
Muzer has joined #ocaml
argent_smith has joined #ocaml
jao has joined #ocaml
jao has quit [Ping timeout: 240 seconds]
shinnya has joined #ocaml
ncthbrt has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
argent_smith1 has joined #ocaml
hdon has joined #ocaml
dhil has joined #ocaml
argent_smith has quit [Ping timeout: 248 seconds]
ncthbrt has joined #ocaml
ncthbrt has quit [Client Quit]
ncthbrt has joined #ocaml
ncthbrt has quit [Ping timeout: 248 seconds]
cheesy has quit [Quit: Connection closed for inactivity]
muelleme has joined #ocaml
exarkun has quit [Read error: Connection reset by peer]
muelleme has quit [Ping timeout: 264 seconds]
exarkun has joined #ocaml
mfp has joined #ocaml
hdon has quit [Ping timeout: 240 seconds]
<discord2> <loxs> whats the practical difference between Base.Array.sort and stable_sort? When would one use one and when the other?
<octachron> loxs, stable_sorts behaves better for nearly sorted input data.
<discord2> <Christophe> A stable sort in general leaves elements that compare equally in the same order. EG if you sort on first letter, [aca, bca, abc] would guarantee to be [aca, abc, bca] and not [abc, aca, bca]
dtornabene has joined #ocaml
<discord2> <Christophe> Look at bucket sort for an example
<discord2> <loxs> hm, in my case I start from a stack-list which means that my entries are almost guaranteed to be in reverse order... it's probably not a great idea to use an array at all...
jimmyrcom_ has quit [Ping timeout: 260 seconds]
<discord2> <loxs> wonder what to use if I need to be able to 1. sort, then 2. find (and take/remove) elements until they are over. Search will be in order and entries will usually be near the beginning of the "list"
<discord2> <loxs> probably just using lists will be faster than coversion to array
<steenuil> do the two operations need to be in that order?
<discord2> <loxs> yeah, as initially order is not guaranteed
<discord2> <loxs> of course, searching and taking from unordered data structure is an option too, though I can't use something like a set as I may have duplicates, which I need to find and account for
ziyourenxiang_ has joined #ocaml
ziyourenxiang_ has quit [Remote host closed the connection]
steenuil_ has joined #ocaml
<discord2> <Christophe> Can you sort and select at the same time? e.g. insertion sort where you don't insert if you want to drop the value
<discord2> <loxs> Yeah, I guess I can do something like this
steenuil has quit [Ping timeout: 240 seconds]
<discord2> <Christophe> Though if the order is not relevant for filtering it could make sense to first filter then sort, as it would lower the computation needed for sorting
steenuil_ is now known as steenuil
dmbaturin_ is now known as dmbaturin
jbrown has joined #ocaml
Toru has joined #ocaml
<discord2> <loxs> Can I define a list that only accepts a subset of a variant type? Like if I have | Addition | Subtraction | Mult | Div, can I define a list that only accepts Mult and Div for example?
kakadu has joined #ocaml
<steenuil> you can do that with polymorphic variants
<discord2> <loxs> how?
<steenuil> you can have type x = [ `Mult | `Div ] and type y = [ x | `Addition | `Subtraction ]
<discord2> <loxs> oh wow, that's cool, thank you
noitakom1 has joined #ocaml
<steenuil> you should take a look at this section http://caml.inria.fr/pub/docs/manual-ocaml/lablexamples.html#sec46
noitakomentaja has quit [Ping timeout: 255 seconds]
TarVanimelde has joined #ocaml
noitakom2 has joined #ocaml
noitakom1 has quit [Ping timeout: 255 seconds]
<discord2> <loxs> already read this, but I still can't make the connection between different things and what is appropriate when
<steenuil> well, yours is a good use case probably
<steenuil> I just linked you to that chapter because there's some pitfalls when using polymorphic variants and that chapter explains them well
TarVanimelde has quit [Quit: TarVanimelde]
Toru has quit [Quit: Page closed]
ziyourenxiang has joined #ocaml
<discord2> <loxs> I already knew them and I think I'll not use polymorphic variants, as my code is already quite good like it is... adding one more variant type to accommodate my case won't be a huge deal
<discord2> <loxs> instead of rewriting everything with polymorphic variants
jbrown has quit [Ping timeout: 240 seconds]
<steenuil> good point
noitakom2 has quit [Quit: WeeChat 2.0.1]
noitakomentaja has joined #ocaml
sz0 has quit [Quit: Connection closed for inactivity]
Anarchos has joined #ocaml
Haudegen has quit [Remote host closed the connection]
exarkun has left #ocaml [#ocaml]
jnavila has joined #ocaml
freyr has joined #ocaml
steenuil_ has joined #ocaml
<freyr> Is there an Lwt function of type `'a Lwt.t list -> 'a list Lwt.t` which waits for all threads to resolve?
steenuil has quit [Ping timeout: 264 seconds]
dhil has quit [Ping timeout: 256 seconds]
tarptaeya has joined #ocaml
<Drup> freyr: look at the Lwt_list module
mbuf has quit [Quit: Leaving]
gareppa has joined #ocaml
pierpal has joined #ocaml
gareppa has quit [Quit: Leaving]
sh0t has joined #ocaml
<freyr> There are no such functions
<Drup> freyr: `map_p/s (fun x -> x)` :)
<freyr> indeed
Anarchos has quit [Quit: Vision[0.10.2]: i've been blurred!]
Anarchos has joined #ocaml
Haudegen has joined #ocaml
pierpal has quit [Read error: Connection reset by peer]
Anarchos has quit [Remote host closed the connection]
navaja has joined #ocaml
silver has joined #ocaml
jnavila has quit [Ping timeout: 240 seconds]
jbrown has joined #ocaml
jbrown has quit [Remote host closed the connection]
mk9 has joined #ocaml
mk9 has quit [Client Quit]
mk9 has joined #ocaml
spew has quit [Disconnected by services]
navaja is now known as spew
jbrown has joined #ocaml
gtrak has joined #ocaml
sh0t has quit [Remote host closed the connection]
pierpal has joined #ocaml
pierpal has quit [Ping timeout: 260 seconds]
pierpal has joined #ocaml
noitakomentaja has quit [Ping timeout: 255 seconds]
dhil has joined #ocaml
jnavila has joined #ocaml
spew has quit [Ping timeout: 240 seconds]
jnavila has quit [Ping timeout: 255 seconds]
mk9 has quit [Quit: mk9]
ncthbrt has joined #ocaml
cbot has joined #ocaml
fare__ has joined #ocaml
ncthbrt has quit [Client Quit]
ncthbrt has joined #ocaml
mk9 has joined #ocaml
fare__ is now known as Fare
<discord2> <Perry> Leonidas: I'm open to suggestions to fonts other than EB Garamond. Strangely, what I'd really want is Georgia (don't look at me that way, it's a nice font for displays!) but it isn't available as an open font. In fact, there aren't many good serif open fonts.
ncthbrt has quit [Ping timeout: 260 seconds]
<discord2> <Perry> Leonidas: As I said in that thread, I don't think any choices are set in stone, especially since CSS can be modified with any text editor. 😃
<Leonidas> That is certainly true :)
sh0t has joined #ocaml
<discord2> <Christophe> Perry, you might want to look at what font are dyslexia-friendly; serif fonts are not 😃
<discord2> <Christophe> (although very pretty I'll give you that ^^)
<discord2> <Perry> It has nothing to do with serifs vs. sans serif. dyslexia friendliness is about font symmetry.
<discord2> <Perry> Most fonts have too much symmetry in things like p and q to by dyslexia friendly.
<discord2> <Perry> There are special fonts in which no letter is a symmetric partner of another.
<discord2> <Perry> We aren't going to do monospaced either, FWIW.
freyr has quit [Remote host closed the connection]
<discord2> <Christophe> This study finds that (for dyslexic people) the reading time is not affected by serif or not, but the eye needs to fixate longer the same spots, which means lower readability
<discord2> <Christophe> But in any case, they suggest some good fonts 😃
<discord2> <Perry> There are fonts with very high readability for dyslexics, like: https://www.dyslexiefont.com/en/typeface/ and https://www.opendyslexic.org/
<discord2> <Perry> They're designed to have fewer symmetries etc.
<discord2> <Perry> Generally, though, I think we literally cannot accommodate every possible set of constraints. It might ultimately be reasonable, as with the Rust docs, to allow people to pick between several sets of fonts.
dedgrant_ has quit [Ping timeout: 256 seconds]
<discord2> <Christophe> I find those fonts for dyslexia disturbingly more readable, thank you for the link
<discord2> <Perry> Are you dyslexic?
<discord2> <Perry> There are several other designs out there, you can find them by googling.
<discord2> <Perry> Most are open font designs so they can be used by anyone.
<discord2> <Christophe> Not that I know of, henec the "disturbingly"
JeanMax has joined #ocaml
<discord2> <Perry> I don't find them more readable (less actually) so maybe this is of significance.
<discord2> <Perry> Regardless, if this is of interest to you, I think some javascript (which can be stolen from other projects, mind you) to allow people to change the font and style would probably be welcome. That would allow any one of several sets of choices to accommodate different readers, and would reduce the number of arguments we have about style. I think our defaults (which would also be what you would see if you didn't use javascript) should be
<discord2> reasonable.
<discord2> <Christophe> Indeed 😃
dtornabene has quit [Quit: Leaving]
<discord2> <khady> Sad to have to use javascript to support what is here by default :/
MercurialAlchemi has quit [Ping timeout: 256 seconds]
spew has joined #ocaml
mk9 has quit [Quit: mk9]
spew has quit [Ping timeout: 260 seconds]
noitakomentaja has joined #ocaml
Fare has quit [Ping timeout: 240 seconds]
shinnya has quit [Ping timeout: 240 seconds]
mk9 has joined #ocaml
jnavila has joined #ocaml
noitakomentaja has quit [Ping timeout: 255 seconds]
spew has joined #ocaml
Arno has joined #ocaml
spew has quit [Client Quit]
dhil has quit [Ping timeout: 260 seconds]
jnavila has quit [Ping timeout: 240 seconds]
Fare has joined #ocaml
Algebr has joined #ocaml
Fare has quit [Quit: Leaving]
<discord2> <Perry> By default we can't have two different fonts for the same words. If you can't read anything but the dyslexic font and I can't read the dyslexic font, we can't both have the default.
dhil has joined #ocaml
Haudegen has quit [Remote host closed the connection]
Arno has quit [Quit: Page closed]
_andre has joined #ocaml
steenuil_ is now known as steenuil
yomimono has joined #ocaml
nullifidian has quit [Remote host closed the connection]
spew has joined #ocaml
muelleme has joined #ocaml
navaja has joined #ocaml
nullifidian has joined #ocaml
spew has quit [Ping timeout: 246 seconds]
hdon has joined #ocaml
hdon has quit [Ping timeout: 255 seconds]
govg has quit [Ping timeout: 260 seconds]
mk9 has quit [Quit: mk9]
mk9 has joined #ocaml
mk9 has quit [Quit: mk9]
dhil has quit [Ping timeout: 246 seconds]
muelleme has quit [Ping timeout: 255 seconds]
demonimin has joined #ocaml
Haudegen has joined #ocaml
sz0 has joined #ocaml
dedgrant_ has joined #ocaml
moei has quit [Quit: Leaving...]
sveit has quit [Ping timeout: 276 seconds]
sveit has joined #ocaml
exarkun has joined #ocaml
tarptaeya has quit [Quit: Konversation terminated!]
jnavila has joined #ocaml
hdon has joined #ocaml
<discord2> <mars0i> @Perry , if you really want a Garamond for docs, maybe consider URW Garamond, hoch is an old Stempel Garamond that's been open source for a while now. Not as beautiful, aesthetically, but not as quirky, imo.
<discord2> <Perry> URW isn't open source.
<discord2> <Perry> Or at least, wasn't when I last checked. Is it really open source?
<discord2> <Perry> But I remember really preferring EB Garamond when I last checked. I could look again.
<discord2> <Perry> There are so many Garamond fonts it's hard to remember all of them.
redmarble has joined #ocaml
<discord2> <mars0i> I have been under that impression for a while. I researched the issue sveral years ago, so I don't know where the info is from.
<discord2> <mars0i> I use EB and then print a document for others and think ot looks too precious, even though I like it. URW isn't as extreme.
dhil has joined #ocaml
<discord2> <Perry> Also not as nice. But we can do a side by side comparison.
<discord2> <Perry> (Side by side is probably the best way to judge the results.)
<discord2> <mars0i> No, not as nice in many ways. However, depends on context--size, background, medium, etc.--I'm sure you agree. I should say that what bothers me about EB sometimes is lessened on a screen, and is more of an issue on paper. So maybe EB Garamond would be good. We're not really worrying about people printing OCaml docs on paper, although they could, but that would be rare.
<discord2> <mars0i> Not something to worry about.
<discord2> <mars0i> Maybe I'm fussing for now reason. 😃
<discord2> <mars0i> Just thought URW Garamond should be an option if Gararmonds are in the mix.
<discord2> <Perry> URW Garamond does indeed seem to be available under a free license.
<discord2> <Perry> I'll have a look at some point.
hdon has quit [Changing host]
hdon has joined #ocaml
<octachron> mars0i, for printing the manual on paper, the pdflatex version of the manual seems like a much better fit
<discord2> <mars0i> You know more about type than I do. (Probably more about types, too. :-))
rostero has joined #ocaml
<discord2> <Perry> octachron: yah, for paper one wants a totally different design.
<discord2> <mars0i> @octachron, oh I see--that's a separate design domain? Yeah, I guess so--HTML vs LaTeX. Got it.
<discord2> <mars0i> Well, some fonts might work well for both. That's not a very strong reason to choose a font for HTML, though.
nullifidian has quit [Remote host closed the connection]
<Drup> Perry: Well, you got what you wanted: https://github.com/maranget/hevea :p
<discord2> <Perry> Drup: Excellent!
<companion_cube> (oh dear)
<discord2> <Perry> Now, I feel weird about doing a pull request for Octachron's change (even though it is small), but if he would request it (or I can do it with his permission.)
<discord2> <Perry> Wow. The code is all in one directory...
<Drup> As they say, be carefull what you wish for
* companion_cube waits for the moment Perry realizes some projects have one big directory with all source and objects files and a makefile
<octachron> Perry, I would probably do a pull request later this week. But I was wondering about the copyright attribution for the svg arrows
<Drup> and not out-of-tree build
<companion_cube> yeah, that's the worse
exarkun has left #ocaml [#ocaml]
sveit has quit [Ping timeout: 246 seconds]
navaja is now known as spew
<discord2> <Perry> I can give you the copyright for them. It's the Apache license and it's Google's copyright.
<discord2> <Perry> You will note that the license text is several hundred times longer than the icons. I suspect it will be considered sufficient to include it in the OCaml or Hevea sources. 😃
ygrek has joined #ocaml
sveit has joined #ocaml
<discord2> <Perry> (If this is considered too much, I can probably whip up some public domain SVG arrows.)
kakadu has quit [Quit: Konversation terminated!]
<octachron> Perry, it might be an option to consider.
<discord2> <Perry> Up to you.
sveit has quit [Ping timeout: 246 seconds]
sveit has joined #ocaml
jao has joined #ocaml
diginet_ has joined #ocaml
diginet has quit [Quit: diginet has quit!]
diginet_ is now known as diginet
<discord2> <Perry> Everything on this page (except for the deceptively placed ad) claims to be CC0, aka public domain. https://publicdomainvectors.org/en/search/arrow
<steenuil> the ones on the last row in page two aren't so bad
<discord2> <Perry> The front page has a few very plain black arrows that can easily have their colors changed
<discord2> <Perry> <path id="path3486" style="fill:#000000" d="m0.213 180.2l180.2-180.2 180.2 180.2v118.85l-137.07-137.06v269.33h-87.22v-268.38l-136.32 136.32 0.213-119.06z" />
<discord2> <Perry> Change the fill to whatever.
<discord2> <Perry> the file it is in already has inkscape metadata. It's trivial to edit. 😃
<steenuil> you can just change that by replacing the style attribute
<discord2> <Perry> oh, yah, that was why I said "change the fill to whatever"
<steenuil> and they look like the kind of arrows you'd see on street signals
<discord2> <Perry> But if you want to stretch them or round them or make them outlines or whatever it's trivial.
shinnya has joined #ocaml
<discord2> <Perry> Remember the goal anyway. Arrows are circa 1999 navigation anyway. The goal is to make it less obvious by getting rid of the circa 1997 GIFs. 😃
<discord2> <Perry> Someday there will be an index column on the left, but for now this cleans things up a touch.
<steenuil> I know, I just think something like this would be more appropriate https://publicdomainvectors.org/en/free-clipart/Arrow-pointer-right-vector-clip-art/26531.html
<discord2> <Perry> I'm cool with that. Maybe make the outline and center slightly contrasting colors. Note I wouldn't pick that one myself, it's a bit more cool than I'm into, but I also wouldn't mind it.
jimmyrcom_ has joined #ocaml
<discord2> <Perry> I care more that the arrows are modernized than that I get some arbitrary style. Unlike font size or line length, it isn't like this will make it easier or harder to read, it will just make it look more modern.
nullifidian has joined #ocaml
<steenuil> also, another thing that would be useful: maybe add a pound sign (#} in front of headings that links to them?
<steenuil> *to that section, that is
<discord2> <Perry> I don't understand what you meant by that, rephrase perhaps?
<discord2> <Perry> Another CC0 clip art site: https://openclipart.org/search/?query=arrow
Arno has joined #ocaml
<Arno> Hello all
<Arno> I have a problem to install ocaml 4.06.1 with opam
<steenuil> every heading has an ID on the page already, so for example instead of "16.1.1 Invocation" it should be "16.1.1 Invocation <a href="#sec338">#</a>"
<Arno> Ocaml 4.06.1 is not in the list of switch even when I use the --all option
<Arno> My version of opam is 1.2.0 with debian 8.
<Arno> And I hope this is the correct channel to ask this kind of question.
<discord2> <Perry> It's a reasonable channel for it.
<octachron> Arno, did you run "opam update" ?
<Arno> Yes I <octachron> did run opam update
<Arno> By the way when I run the update I get [ERROR] At /data/opam/repo/default/packages/i3ipc/i3ipc.0.1.1/opam:8:52:Unsupported protocol git+https
<octachron> Arno, what is your version of opam?
<Arno> <octachron> Is is version 1.2.0.
shinnya has quit [Ping timeout: 250 seconds]
<Arno> But OK the problem is probably with this error when I update opam not with the switch by itself.
ygrek has quit [Ping timeout: 250 seconds]
Algebr has quit [Ping timeout: 246 seconds]
FreeBirdLjj has joined #ocaml
<steenuil> @Perry: for example in the Rust docs the headings link to themselves, so if you want to link to a specific section it's easy to do so https://doc.rust-lang.org/book/second-edition/
<discord2> <Perry> Why do they link to themselves? I am not sure I understand the utility? (I do see why every section should be an anchor so you can link to it.)
<octachron> Perry, this is very useful to link specific section to other peoples
<steenuil> ^
<octachron> I do that quite often... by looking at the source code of the page
<octachron> having a visible link would make it possible to avoid this last step
<discord2> <Perry> Ah. That seems useful, yes. I didn't understand but it makes sense.
<discord2> <Perry> Yah, lets do that. I don't know how to do it in the generated Hevea code but is there a simple way?
<steenuil> I'm not sure
<discord2> <Perry> BTW, I wish the anchors weren't random tags but were based on the name of the section more.
<steenuil> I don't think you can change that unless hevea is patched
FreeBirdLjj has quit [Remote host closed the connection]
<discord2> <Perry> Like instead of "#sec349" "#sec16-2" (real example.)
FreeBirdLjj has joined #ocaml
malina has quit [Remote host closed the connection]
<Drup> +1 for the anchor links
<Drup> that's insanely useful, and it's very annoying not to have it
<companion_cube> ^
<discord2> <Perry> Then lets figure out how to fix it. Sadly I really know nothing about Hevea other than that it turns latex to html and is written in ocaml. (and all the source is in one directory.)
jack5638 has quit [Ping timeout: 256 seconds]
<Drup> crash an opam travis job with an OOM: ✓
FreeBirdLjj has quit [Ping timeout: 255 seconds]
<discord2> <Perry> I am irritated with Travis. But that might just be that the MacPorts people have to use their Mac facilities which are overloaded.
<Drup> Yeah, we had the same issues with opam for a while
<Drup> it's a bit better nowadays, but we're still progressively moving away from travis towards some more dedicated things
<Drup> (we = the ocaml/opam community, I'm only loosely related to the team handling that :p)
jack5638 has joined #ocaml
<discord2> <Perry> I'm technically a committer for opam/opam but I never have actually committed anything.
dhil has quit [Ping timeout: 260 seconds]
<discord2> <Perry> pardon, ocaml/opam-packages
<discord2> <Perry> pardon, ocaml/opam-repository
<discord2> <Perry> (you see how closely I follow that repo, I can't even remember the name. 😦 )
<companion_cube> did you just betray your franchouillardise? :p
muelleme has joined #ocaml
JeanMax has quit [Remote host closed the connection]
kakadu has joined #ocaml
kakadu has quit [Ping timeout: 250 seconds]
kakadu_ has joined #ocaml
clockish has quit [Ping timeout: 256 seconds]
clockish has joined #ocaml
yomimono has quit [Ping timeout: 260 seconds]
Haudegen has quit [Read error: Connection reset by peer]
noitakomentaja has joined #ocaml
kakadu_ has quit [Remote host closed the connection]
<discord2> <Perry> Was that directed at me or at Drup?
<companion_cube> you :p
<Drup> I can't possibly betray what is blindly obvious x)
<companion_cube> blindigly? :D
<companion_cube> erk
<companion_cube> blindingly*
pierpal has quit [Read error: Connection reset by peer]
pierpal has joined #ocaml
matclayton has joined #ocaml
bairui_ has joined #ocaml
<matclayton> /msg alis LIST ocaml
muelleme has quit [Ping timeout: 255 seconds]
matclayton has left #ocaml [#ocaml]
<companion_cube> try again
bairui has quit [Ping timeout: 248 seconds]
govg has joined #ocaml
jnavila has quit [Ping timeout: 250 seconds]
pierpal has quit [Ping timeout: 260 seconds]
Guest91631 has joined #ocaml
pierpal has joined #ocaml
<gtrak> is the inhabitedtype/ocaml-aws project still in active development? If not, wondering what's making it difficult to improve.
<discord2> <Perry> gtrak: no idea, but you could ask the maintainer.
<discord2> <hcarty> gtrak: I don't think it's abandoned but I'm pretty sure it's not actively developed
<discord2> <hcarty> The developer is working at Jane Street now
<discord2> <Perry> Usually things get stalled because people don't have enough time. It's often reasonable to submit pull requests etc.
<gtrak> ah, interesting. yea, a few have languished, that's why I'm asking.
<discord2> <hcarty> As Perry suggested. PRs are likely to be welcome. I think most of what's there is generated but I'm not at all familiar with the repo
<discord2> <hcarty> Or the update details. Spiros can probably offer some guidance if you ask though
<discord2> <Perry> gtrak: this is the natural order of things in open source. People build things, they move on, other people get irritated and take them over. 😃
_andre has quit [Quit: leaving]
pierpal has quit [Ping timeout: 255 seconds]
<gtrak> yea, just seems like the point of generating the bindings is to be more likely to avoid this problem :-)
yomimono has joined #ocaml
jao has quit [Remote host closed the connection]
jao has joined #ocaml
<discord2> <Perry> Even if bindings are generated, someone has to do it, and maybe you're the someone! 😃
Algebr has joined #ocaml
jao has quit [Remote host closed the connection]
jao has joined #ocaml
pierpa has joined #ocaml
shinnya has joined #ocaml
pierpal has joined #ocaml
moei has joined #ocaml
bairui_ is now known as bairui
<discord2> <struktured> sigh, if only I could opensource the aws library we are using :|. maybe some day
gtrak has quit [Ping timeout: 240 seconds]
zlsyx has joined #ocaml
<discord2> <hcarty> There is also https://github.com/andersfugmann/aws-s3 which, as the name implies, only covers S3
Arno has quit [Quit: Page closed]
Guest91631 is now known as Haudegen
zolk3ri has quit [Quit: Lost terminal]
Algebr has quit [Read error: Connection reset by peer]
<discord2> <struktured> good news, everybody. just talked to my boss, I think we can opensource our aws library very very soon
<companion_cube> :D
<companion_cube> nice
<discord2> <Perry> @struktured Woot!
<discord2> <struktured> it's pretty badass, honestly. code generates basically every single service
<discord2> <Perry> That is awesome.
<discord2> <struktured> we are currently using cognito, s3, athena, sts, sqs, ec2, ecs, succesfully, for instance
<discord2> <Bluddy> cool!
<discord2> <Perry> and presumably code could generate more services if people started to want them and did a bit of work?
<discord2> <struktured> it probably can code gen almost everything already, but we don't because its a bit expensive to compile
<discord2> <struktured> gtrak: so if we did opensource yet, you could be a contributor maybe 😃
<discord2> <Perry> Maybe just have a build flag so you can try the other things out?
<discord2> <struktured> sure, its just adding a jbuilder target for each service at the moment
<discord2> <Perry> BTW, I hate asking this again, but, if any of you had to build a primitive GUI tomorrow that was either somewhat cross platform or worked on a Mac, what would you use? I've asked this before on discourse and the answers were always "we don't really know, the following things reputedly still work".
<companion_cube> (I mean, who writes GUIs in OCaml? :/
<companion_cube> )
kakadu has joined #ocaml
<discord2> <struktured> Perry: well besides just making a web app, you could consider https://github.com/Kakadu/lablqml
<discord2> <struktured> I always enjoyed writing qt guis back in my C++ days at least, haven't seriously tried the ocaml bindings though
<discord2> <Perry> I don't want to have to learn Qt is the thing, and it looks like I'd have to (and learn QML)
<kakadu> Folks, can you remind me a default opam 2 repo url?
<discord2> <Perry> In the old days, I could just use Tk for primitive crap and it was okay. Now it's so much hassle.
* kakadu is moving to a new SSD
<discord2> <struktured> perry: then I guess all of these are not a good choice either for you: https://github.com/rizo/awesome-ocaml#user-interface
<kakadu> companion_cube: many thanks
<steenuil> I think GUI is a pain point for all languages
<steenuil> with a few exceptions like Racket
<discord2> <Perry> steenuil: absolutely. Everything is rotting these days except the web.
<discord2> <Perry> Is labltk maintained enough to try?
<discord2> <Perry> that was for struktured.
<discord2> <Perry> I really don't need anything more than quite primitive.
<discord2> <struktured> oh sorry perry I don't know if it is or not
<kakadu> steenuil: Is Racket better?
<steenuil> yeah, Racket has a gui library in its stdlib
<steenuil> and it's used to write DrRacket, which the language ships with
<steenuil> so it's guaranteed to be maintained and work well
<discord2> <Perry> Racket made a point of making their UI tools work. They're not astonishing but it's where they build the GUIs they ship with Racket.
<discord2> <Perry> Generally these days, no one seems to care about anything other than Electron, which is awful. 😦
<companion_cube> :-(
<steenuil> hey, at least it's declarative
<discord2> <Perry> I kind of wonder if we couldn't build something better. Instead of Node at the back end, have OCaml at the back end, but still use Chrome/V8 for the UI.
<discord2> <Perry> Maybe it wouldn't be as bad as straight Electron.
<companion_cube> and immediately consume hundreds of megabytes :/
<discord2> <Perry> Well, half the number of hundreds of megabytes because Node would be gone.
<kakadu> Can Qt/QML be better?
<companion_cube> Qt is much leaner, isn't it?
<discord2> <Perry> Another option: maybe one could manipulate the Chrome DOM without using JavaScript by binding to it at a lower level?
<kakadu> at least developing experience should be better....
<discord2> <Perry> I know nothing about QML.
<steenuil> or you could just use bucklescript/js_of_ocaml
<discord2> <Perry> Explaining my last notion more (and I'm really thinking of this 100% off the cuff), imagine having OCaml bindings directly to the Chrome DOM so you don't use the JavaScript layer at all.
<companion_cube> that sounds so wrong, to ship OCaml as js where it could be native :/
<discord2> <Perry> It would get rid of loads of fuss.
<discord2> <Perry> And then using that to build UIs.
<discord2> <struktured> companion_cube: even more silly is that no one uses ocaml/reason on both front end and back end. its always one or the other
<discord2> <Perry> But I have absolutely positively no idea if this could be done, would be practical, etc.
<companion_cube> ah, there's `efl`
<companion_cube> not sure it works on macOS tho
<discord2> <Perry> efl?
<discord2> <Perry> Enlightenment.
<companion_cube> yes
<companion_cube> no sure if it's up to date
<steenuil> all the stuff done with that toolkit I've ever seen looks ugly as sin
<discord2> <Perry> Actually, that reminds me of something else that could work. A UI that talks directly to OpenGL.
<companion_cube> can't be worse than tk
<kakadu> Perry: QML is a declarative JSON like language with modules, ecmascript for simple GUI manipulations, reactive programming out of box and ability to call (or define widgets in ) C++ if you need speed or something very clever
<discord2> <Perry> OpenGL bindings for OCaml + some OpenGL widgets.
<steenuil> it's like straight out of 2000s ricing
<steenuil> @Perry: there's a few C libraries that do that
<companion_cube> what about https://github.com/andlabs/libui ?
<discord2> <Perry> steenuil: yes, which is why I thought, maybe we could bind to such a thing.
<pierpa> Factor has has OpenGL binding, and its IDE is based on it. Could serve as inspiration.
<discord2> <Perry> to one of the opengl UIs
<kakadu> hey, QML draws itself using OpenGL too
<discord2> <Perry> Hrm, LibUI looks interesting.
Haudegen has quit [Remote host closed the connection]
<discord2> <Perry> companion_cube: how did you find libui?
<companion_cube> I think I heard about it from the rust community where GUI bindings are still mostly work in progress
<companion_cube> or maybe it was a golang blog post, whatever
<steenuil> I think I have a few libraries like that in my github stars
<discord2> <Perry> companion_cube: i've never tried building OCaml bindings to C code but this might not be too bad.
<companion_cube> well I suppose that in this case the C API must be relatively simple, so it might be worth trying
<companion_cube> it's not going to be a nightmare like lablgtk
<companion_cube> (I mean, a nightmare to maintain)
<discord2> <Perry> I can but play with it and see. Maybe I can use some method for mostly generating the bindings too.
<steenuil> I've also found this https://github.com/vurtun/nuklear
<steenuil> seems like it's used in a few games
<steenuil> or not
<octachron> Perry, take a module name in the stdlib, grep for it in stdlib.etex, see that it appears thrice, and add Bigarray to each corresponding section?
Algebr has joined #ocaml
rostero has quit [Quit: Connection closed for inactivity]
cbot has quit [Ping timeout: 256 seconds]
<discord2> <Perry> So it's really only only a few things? I'll try right now.
Algebr` has joined #ocaml
<octachron> Perry, the smallest fix is indeed just stdlib.etex, then there is the update of the compatibility bigarray library description, the update of the Bigarray module introduction, and finally the language extension section, in order of importance
Algebr has quit [Read error: Connection reset by peer]
<octachron> (decreasing order)
marblefish has joined #ocaml
<discord2> <Perry> I just finished stdlib.etex, it was literally three lines.
<discord2> <Perry> where do I find the compatibility bigarray library description?
spew has quit [Ping timeout: 255 seconds]
redmarble has quit [Ping timeout: 256 seconds]
<octachron> the current file is manual/library/libbigarray.etex
Algebr` has quit [Ping timeout: 255 seconds]
<discord2> <Perry> and there's also Bigarray.tex, which is generated?
<octachron> but as I commented it contains three parts, a description of the bigarray module, how to link the library, and how to write C/Fortran interface
<octachron> Bigarray.tex is generated from bigarray.mli
<discord2> <Perry> I thought so.
<discord2> <Perry> Okay, so I see what's in libbigarray.etex, but how do you want the text transformed?
<discord2> <Perry> I should move the introduction into the documentation comments of Bigarray?
<octachron> yes, at first glance, I think merging the two introduction is a godd idea
<discord2> <Perry> I think maybe I leave the language extension section to a project during the Documentation Jam, where we might get rid of much of the extension section.
<octachron> then the c/fortran interface part can go to cmds/c-intf.etex
kakadu has quit [Remote host closed the connection]
<octachron> if you feel fancy you could add a new file and include it with \input{}.
<discord2> <Perry> So there are three files here:
<discord2> <Perry> ./otherlibs/bigarray/bigarray.mli ./stdlib/bigarray.mli ./ocamldoc/stdlib_non_prefixed/bigarray.mli
<discord2> <Perry> Which of them do I touch? I have no idea how the sources are laid out.
<octachron> and then the libbigarray.etex should just contain a short description of the compatibility library and maybe how to link it
<octachron> stdlib/bigarray.mli is the main module
<octachron> otherlibs/... is the compatibilit version with one more function than the main module
<octachron> the last one is generated
<discord2> <Perry> Do I have to edit both stdlib and otherlibs manually?
jimmyrcom_ has quit [Ping timeout: 250 seconds]
<discord2> <Perry> back in a bit.
<octachron> Perry, good question; probably.
pierpal has quit [Ping timeout: 255 seconds]
Algebr` has joined #ocaml
gtrak has joined #ocaml
cheesy has joined #ocaml
<discord2> <Perry> octachron: I'm going to post my patch to stdlib.etex and figure out the rest over the next few hours or tomorrow AM.
<discord2> <Perry> Drup?
<discord2> <Perry> octachron (or anyone), when the Bigarray docs say: "Float arrays are limited to 2097151 elements on a 32-bit platform, other array types to 4194303 elements", that means for Bigarrays, not for normal arrays, yes?
Algebr` has quit [Ping timeout: 250 seconds]
<octachron> Perry, the limitation is for normal arrays (which store their size as a part of their block tag)
<discord2> <Perry> So that should really say, "by contrast, normal float arrays are limited to... and normal arrays of other types are limited to..." in order to make that clear. I'll make that change.
<discord2> <Perry> You will need to carefully proofread my text!
<discord2> <Perry> BTW, is indexing a bigarray of 8 bit ints as efficient as indexing a string? (I ask this because we're currently using strings as arrays of 8 bit ints in sedlex for "efficiency" and I was wondering, reading this, if I could switch to bigarrays and have somewhat less ugly notation.)
<octachron> I don't know.
<discord2> <Perry> Fair answer. 😃
argent_smith1 has quit [Quit: Leaving.]
<discord2> <Perry> Is this what you had in mind?
<octachron> Perry, it looks like what I had in mind indeed. I would have to read it more carefully :)
<discord2> <Perry> Okay, so I'm going to add that to the other version of the file. I'm not sure what you have in mind for the middle and end though. If I handle this part, can you give me a bit more direction on the rest?
<discord2> <Perry> Okay, there is no documentation at all in otherlibs/bigarray/bigarray.mli so I'm not touching that.
<discord2> <Perry> you say ocamldoc/stdlib_non_prefixed/bigarray.mli is generated so I won't touch that.