companion_cube changed the topic of #ocaml to: Discussion about the OCaml programming language | http://www.ocaml.org | OCaml 4.12 released: https://ocaml.org/releases/4.12.0.html | Try OCaml in your browser: https://try.ocamlpro.com | Public channel logs at https://libera.irclog.whitequark.org/ocaml/
<d_bot> <aolko> i maybe can....until i decide to use some other library
<d_bot> <thangngoc89> Don’t use library’s
<d_bot> <thangngoc89> Libraries are bloated
<d_bot> <Alistair> Hand roll your own libraries
<d_bot> <aolko> not that knowledgeable 😛
<d_bot> <aolko> so my scope would be limited there
waleee has quit [Ping timeout: 255 seconds]
<d_bot> <aolko> asking people works the same though, they'll just spit es6 in return
<d_bot> <theangryepicbanana> sounds like you're stuck then
<d_bot> <thangngoc89> Because it’s easier
<d_bot> <thangngoc89> Es6+ is less key strokes
<d_bot> <aolko> scripts don't run strictly in the browser anymore technically where they belong
<d_bot> <theangryepicbanana> I don't see how that's related
<d_bot> <aolko> via V8 or similar js engine
<d_bot> <Alistair> Where do scripts belong?
<d_bot> <aolko> strictly in the browser
<d_bot> <theangryepicbanana> I wouldn't want to open up my browser just to run a script
<d_bot> <aolko> you had to
<d_bot> <aolko> and it was fine
<d_bot> <theangryepicbanana> that's no longer the case though, and it's still fine
<d_bot> <Alistair> Hmmmm not too sure about that one
<d_bot> <aolko> try to remember 2000s
<d_bot> <Alistair> I was born in 2001...
<d_bot> <theangryepicbanana> mood
<d_bot> <aolko> till ~2009
<d_bot> <Alistair> We didn’t have internet till 2010ish
<d_bot> <theangryepicbanana> also friendly reminder that JS would've left the browser anyways because of Flash
<d_bot> <theangryepicbanana> (which uses ActionScript, aka ES4)
<d_bot> <aolko> AS3 was the latest
<d_bot> <theangryepicbanana> AS2 was still js
<d_bot> <theangryepicbanana> as was AS1
<d_bot> <aolko> and it was great
<d_bot> <theangryepicbanana> it's still js lmao
<d_bot> <theangryepicbanana> does the higher version number scare you?
<d_bot> <thangngoc89> Sadly there isn’t ES7
<d_bot> <thangngoc89> Only ES2015+
<d_bot> <aolko> TC39 ditched numbers for years
<d_bot> <aolko> since es6
<d_bot> <theangryepicbanana> I don't see how that affects the language
<d_bot> <thangngoc89> To shame browsers not implementing new features fast enough
<d_bot> <aolko> no, since ES4 was technically cancelled
<d_bot> <theangryepicbanana> and yet it was still implemented
<d_bot> <aolko> ehh..not as much of a standard
<d_bot> <thangngoc89> My first browser was IE5
<d_bot> <aolko> same
<d_bot> <thangngoc89> Windows ME
<d_bot> <aolko> 98
<d_bot> <thangngoc89> With dial up
rgrinberg has joined #ocaml
<d_bot> <thangngoc89> My first windows was 95
<d_bot> <thangngoc89> But we didn’t have internet back then
<d_bot> <aolko> remember those "funny cursors"?
<d_bot> <aolko> that was js was used for
<d_bot> <thangngoc89> Wiggling cursor
<d_bot> <aolko> and it was absolutely fine
<d_bot> <thangngoc89> Ditching ie for Firefox 2 was like opening a new chapter for browser the web
<d_bot> <aolko> js script scope was bound to the current html page
<d_bot> <thangngoc89> Well. Whatever you say, JS isn’t bound to html anymore. It generates HTML now
<d_bot> <thangngoc89> But those quirks are still there
<d_bot> <aolko> and that's not great
<d_bot> <thangngoc89> node with id are available in global scope
<d_bot> <thangngoc89> Unless you have use strict
<d_bot> <aolko> i mean, i can't even opt out of es6
<d_bot> <aolko> without breaking anything
<d_bot> <Alistair> Make a time machine?
<d_bot> <aolko> no, a js fork
<d_bot> <thangngoc89> There are several js interpreter that isn’t in a browser
<d_bot> <thangngoc89> Something starts with Be from the author of FFMPEG
<d_bot> <NULL> Can you bring the subject back to OCaml ? Or go to #random🎲
<d_bot> <aolko> sounds great, ↪#random🎲
<d_bot> <NULL> (sorry to those who muted #general but not #random🎲 )
favonia has quit [Ping timeout: 240 seconds]
favonia has joined #ocaml
favonia has quit [Ping timeout: 255 seconds]
Stumpfenstiel has quit [Ping timeout: 265 seconds]
vicfred has joined #ocaml
favonia has joined #ocaml
Haudegen has quit [Ping timeout: 272 seconds]
favonia has quit [Ping timeout: 252 seconds]
favonia has joined #ocaml
rgrinberg has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
rgrinberg has joined #ocaml
gravicappa has joined #ocaml
zebrag has quit [Quit: Konversation terminated!]
favonia has quit [Ping timeout: 255 seconds]
favonia has joined #ocaml
ralu has quit [Ping timeout: 252 seconds]
ralu has joined #ocaml
rgrinberg has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
favonia has quit [Ping timeout: 252 seconds]
favonia has joined #ocaml
rgrinberg has joined #ocaml
fluxm has quit [*.net *.split]
marinelli[m] has quit [*.net *.split]
daimrod has quit [*.net *.split]
nore has quit [*.net *.split]
daimrod has joined #ocaml
nore has joined #ocaml
favonia has quit [Ping timeout: 246 seconds]
mro has joined #ocaml
favonia has joined #ocaml
mro has quit [Ping timeout: 246 seconds]
hackinghorn has quit [Ping timeout: 252 seconds]
favonia has quit [Ping timeout: 246 seconds]
favonia has joined #ocaml
hackinghorn has joined #ocaml
favonia has quit [Ping timeout: 246 seconds]
favonia has joined #ocaml
Serpent7776 has joined #ocaml
<d_bot> <Cyclomatic Complexity> I'm sure it's not trivial, but `ppx show` doesn't work in case where you define a type in a recursive module signature, and refer to it within the module to avoid copy-pasting it
vicfred has quit [Quit: Leaving]
favonia has quit [Ping timeout: 240 seconds]
favonia has joined #ocaml
labor[m] has quit [Quit: Bridge terminating on SIGTERM]
smondet[m] has quit [Quit: Bridge terminating on SIGTERM]
krnkktz has quit [Quit: Bridge terminating on SIGTERM]
inkbottle[m] has quit [Quit: Bridge terminating on SIGTERM]
schube[m] has quit [Quit: Bridge terminating on SIGTERM]
brettgilio has quit [Quit: Bridge terminating on SIGTERM]
krnkktz has joined #ocaml
fluxm has joined #ocaml
labor[m] has joined #ocaml
brettgilio has joined #ocaml
inkbottle[m] has joined #ocaml
smondet[m] has joined #ocaml
schube[m] has joined #ocaml
marinelli[m] has joined #ocaml
rgrinberg has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
jtck has quit [Read error: Connection reset by peer]
mro has joined #ocaml
mro has quit [Remote host closed the connection]
favonia has quit [Ping timeout: 246 seconds]
favonia has joined #ocaml
mro has joined #ocaml
mro has quit [Remote host closed the connection]
mro has joined #ocaml
mro has quit [Remote host closed the connection]
cedric has joined #ocaml
bartholin has joined #ocaml
mro has joined #ocaml
mro has quit [Remote host closed the connection]
favonia has quit [Ping timeout: 240 seconds]
favonia has joined #ocaml
favonia has quit [Ping timeout: 240 seconds]
favonia has joined #ocaml
favonia has quit [Ping timeout: 240 seconds]
favonia has joined #ocaml
yoctocell has joined #ocaml
Haudegen has joined #ocaml
mro has joined #ocaml
mro has quit [Client Quit]
favonia has quit [Ping timeout: 240 seconds]
favonia has joined #ocaml
favonia has quit [Ping timeout: 240 seconds]
favonia has joined #ocaml
favonia has quit [Ping timeout: 240 seconds]
jtck has joined #ocaml
bartholin has quit [Ping timeout: 272 seconds]
bartholin has joined #ocaml
bartholin has quit [Ping timeout: 258 seconds]
bartholin has joined #ocaml
bartholin has quit [Ping timeout: 268 seconds]
_tjr_ has quit [Quit: quitting]
_tjr_ has joined #ocaml
bartholin has joined #ocaml
mbuf has joined #ocaml
bartholin has quit [Ping timeout: 272 seconds]
bartholin has joined #ocaml
favonia has joined #ocaml
waleee has joined #ocaml
berberman_ has quit [Ping timeout: 240 seconds]
berberman has joined #ocaml
Stumpfenstiel has joined #ocaml
bartholin has quit [Ping timeout: 268 seconds]
bartholin has joined #ocaml
zebrag has joined #ocaml
mbuf has quit [Quit: Leaving]
mbuf has joined #ocaml
bartholin has quit [Ping timeout: 272 seconds]
bartholin has joined #ocaml
mro has joined #ocaml
bartholin has quit [Quit: Leaving]
mro has quit [Ping timeout: 255 seconds]
Tuplanolla has joined #ocaml
scoobybejesus has joined #ocaml
mbuf has quit [Quit: Leaving]
<scoobybejesus> On freebsd 12.2-RELEASE, I am trying to get opam to install lame. The system has `/usr/local/include/lame/lame.h`, but from `opam install lame` i get `fatal error: 'lame/lame.h' file not found`. I looks like the path where it looks is auto-generated. I tried to set `export CPPFLAGS=-I/usr/local/include` and `export LDFLAGS=-L/usr/local/lib` and `export OCAMLMKLIB_FLAGS=-L/usr/local/lib`, but no change. I'm stuck
<scoobybejesus> The very end of the output, of course, is: `The packages you requested declare the following system dependencies. Please make sure they are installed before retrying: lame`. But, like I said, the system has it. .. I tried to edit src/config/discover.ml, but it appears that's generated in each build automatically. Hm. I don't know ocaml.
hackinghorn has quit [Quit: Leaving]
rgrinberg has joined #ocaml
<scoobybejesus> If relevant, what i'm trying to do is install liquidsoap. It is no longer in ports, so the recommended way is to use opam. I couldn't get the 4.08.0 compiler to compile on 13.0-RELEASE, so i tried 12.2. Then opam got hung up on taglib and mad, but after a pkg install taglib libmad, they installed fine with opam. Everything else installed fine. Lame is the last thing that opam is stuck on before it can install liquidsoap
<scoobybejesus> after trying again after `export OCAMLLIB=-L/usr/local/include`, now I get https://bsd.to/njgD. Without that exported, it's: https://bsd.to/6rtx . I will lurk, in case anyone has tips for me. Thanks
<Absalom> May I ask what is this d_bot thing? It looks like most messages are echoed from somewhere else... Another network?
<d_bot> <g_w1> discord bot
<d_bot> <g_w1> what irc is this?
<companion_cube> it bridges Libera with discord
<companion_cube> it's a mattermost instance iirc
<companion_cube> ask @Bluddy
<d_bot> <g_w1> #ocaml on libera?
<xenu> yes
g-w1 has joined #ocaml
<g-w1> hello from irc :)
<Absalom> I understand, most users are on Matrix, then
g-w1 has left #ocaml [ill be on discord]
mro has joined #ocaml
gravicappa has quit [Ping timeout: 272 seconds]
<d_bot> <RegularSpatula> Speaking of parsers writing parsers in OCaml, is there ever a good reason not to use Menhir? Like would you ever need to roll your own recursive descent parser for some reason?
<zozozo> Well, it's easier to write nice syntax error messages with a handwritten recursive descent parser
<zozozo> But I don't think it's worth the cost of writing it by hand instead of using Menhir
<zozozo> And you can get good enough euros messages with menhir of you invest some time
<zozozo> *error messages
<d_bot> <theangryepicbanana> menhir is LR(1) iirc, which doesn't work with every language's grammar
<d_bot> <theangryepicbanana> like for my language Star, it flat-out not possible because of certain precedence rules for operators and subscripts
<d_bot> <g_w1> i'm doing that, to learn
<d_bot> <Alistair> Yeah, LR(1) is a strict subset of all CFLs
<d_bot> <Alistair> If you're using a CFL that isn't LR(1) then either use a greater lookahead e.g. LR(2), etc or parser combinators
<d_bot> <theangryepicbanana> (not sure what I *actually* ended up with, but imma assume it's like LR(3) or something)
<d_bot> <theangryepicbanana> source is here for anybody who's bored <https://github.com/ALANVF/star/blob/master/src/parsing/Parser.hx>
<d_bot> <theangryepicbanana> as a side note, you could probably still use ocamllex for lexing without menhir
<d_bot> <Alistair> It looks like a recursive decent parser, so probably LL(k) for some k I guess?
Serpent7776 has quit [Read error: Connection reset by peer]
Serpent7776 has joined #ocaml
yoctocell has quit [Ping timeout: 268 seconds]
mro has quit [Read error: Connection reset by peer]
mro_ has joined #ocaml
mro_ has quit [Quit: Leaving...]
<d_bot> <theangryepicbanana> hmm maybe, but I didn't think it was LL
<d_bot> <theangryepicbanana> oh the type syntax probably does that huh
<d_bot> <Alistair> LL = Left to right parsing, leftmost CFG derivation (topdown parsing)
<d_bot> <theangryepicbanana> yeah probably then
<d_bot> <theangryepicbanana> probably wouldn't be if `A[B[C] ...]` wasn't valid syntax lmao
<d_bot> <Alistair> Does `...` mean something like `A[B[C[ ... Y[Z] ...]]]`?
cedric has quit [Quit: Konversation terminated!]
Stumpfenstiel has quit [Ping timeout: 265 seconds]
<d_bot> <theangryepicbanana> basically `B[C]` is a generic type `B` called with `C`, and `A[...]` is a static method call that looks something along the lines of this `sender=( <type> '[' | '[' <type> ) category=<type>? args=( <name> | ( <label> <expr> )+ ) ']'`
<d_bot> <theangryepicbanana> it's ambiguous here because both rules can start with `A[B`, which isn't allowed with LR(1) since `<type> '[' <type> <deciding_token>` requires you to look ahead *2* rules instead of the 1 that LR(1) allows
Haudegen has quit [Ping timeout: 268 seconds]
Tuplanolla has quit [Quit: Leaving.]
rgrinberg has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
rgrinberg has joined #ocaml