Logic, Computer Graphics, OCaml, Rust, etc.| blag.cedeela.fr
I've been working for years on | blag.cedeela.fr
(original title: "Curry Howard is a scam". See below.)| blag.cedeela.fr
I've decided I want to resume blogging. So without further ado,| blag.cedeela.fr
The glamorous world of SAT| blag.cedeela.fr
Last October, I moved in Nancy to start working as an engineer with| blag.cedeela.fr
Greating, earthlings! Today I will present an exciting new OCaml library| blag.cedeela.fr
A quick note about my current OCaml setup, in my last project, Nunchaku.| blag.cedeela.fr
I have been hacking on the OCaml compiler recently; in particular, I added some support for coloring warning/error messages. At some point during the discussion over this pull request, it became clear that colored output should only be enabled if stderr was an interactive terminal (in opposition to a regular file handle or whatnot). The compiler does not link with the Unix library, so I finally decided to add a primitive caml_sys_is_interactive. My purpose here is to explain how it works (fro...| The Blag — Logic And Graphics
For more than one year, vulnerabilies in software (especially pervasive C software) have been disclosed at an alarmingly high rate. I love OCaml, which is definitely safer, but still has gaps left open. I believe formal verification, albeit a very powerful tool, is not mature enough for most programmers (too difficult to use, requires too much efforts), so I'm thinking about alternative solutions that would be more lightweight to define and use, but would still increase the confidence in sour...| The Blag — Logic And Graphics
My PhD work is centered around automated theorem proving in first-order logic. This is obviously a very cool topic (otherwise I wouldn't have focused on it), so this post is a crash course (but the program won't crash because I use OCaml) on one of the most classic method to prove (some) theorems automatically. I named... resolution! The goal is to prove some (not too complicated) theorems automatically. In other words, we want a program that reads a bunch of axioms and a formula that we conj...| The Blag — Logic And Graphics
Some very common (and useful) operations, including the classic map, filter, and flat_map, traverse their whole argument and return another collection. When several such operations are composed, intermediate collections will be created and become useless immediately after. Languages like Haskell sometimes perform optimizations that merge together the operations so as to minimize the number of intermediate collections : map f . map g == map (f . g) Sadly, the OCaml compiler performs very few o...| The Blag — Logic And Graphics
A quick survey of Lazy in OCaml I remember having heard that Jane Street had its own implementation of Lazy values, and that it was faster than the standard one. So I played a bit with several ways of managing lazy values in OCaml.| The Blag — Logic And Graphics
TL;DR: combinators and GADTs allow to describe types in abstract enough a way that they can be converted into/from various serialization formats. Edit: the code is now available in its own repository on github, and on my opam repository under the name CConv. Optional interfaces to Yojson, Sexplib and Bencode are also provided.| The Blag — Logic And Graphics
I've recently read an interesting article which shows an example of concurrency implemented in 3 differenet languages, namely Go, Erlang and C++. While the Erlang and Go examples seemed clear and concise, the C++ one looks long and hard to understand. The reason behind this complexity is that C++ does not provide a simple message passing primitive such as Go channels.| The Blag — Logic And Graphics
... is how you were born| The Blag — Logic And Graphics
Hi, I am shuba, and I'll be using this blog to dicuss various computer graphics topics I find interesting. I might also disgress on C++, which is my main programming language. For my first article, I'll try and answer a question that's not as simple as it seems: onto what did I click? How did the program know what I clicked on? We're used to be able to click on various kinds of button, rectangular or circular. But when using image editing software such as The Gimp or Inkscape, we want to sele...| The Blag — Logic And Graphics
The List.map function of the OCaml standard lib is not implemented tail-recursively. The current version (as of 4.00 on my computer) is let rec map f = function [] -> [] | a::l -> let r = f a in r :: map f l| The Blag — Logic And Graphics
Rationale I'm starting a PhD on first-order automated theorem proving, which is the reason I'm writing an experimental theorem prover in OCaml. Theorem provers are full of complicated algorithms (that I plan to write on later), and my usual techniques for debugging are twofold: Writing a lot of assert to make sure invariants are not broken Printing debug information on stdout, if required, to get an idea of what the prover is doing. This allows me to choose the level of detail of what is prin...| The Blag — Logic And Graphics
Hi there, here is the first post on this blag! There will (or should, at least) be posts on technical subjects by several authors :| blag.cedeela.fr
I've written, and am using, an OCaml module (see the documentation) that is heavily inspired from Haskell's QuickCheck.| blag.cedeela.fr