Y
HN Search
Hacker News Search
new
|
comments
|
top
|
jobs
avsm
searching PlanetScale…
1.
▲
2.
▲
3.
▲
4.
▲
5.
▲
6.
▲
20 ms
·
181.
▲
by
avsm
12y ago
OPAM itself compiles on Windows, but most of the package repository doesn't. That's next on our list after the 1.2.0 release comes out (along with cross compilation for targets like iOS, Android and Java, due to the availability
182.
▲
by
avsm
12y ago
We're planning a post after the ICFP rush next week dies down, but there's a rather specific one on the new pinning workflow in OPAM 1.2 here: http://opam.ocaml.org/blog/opam-1-2-pin/ (How to pin a devel
183.
▲
by
avsm
12y ago
> The Git of package management doesn't exist yet We've taken a pretty good shot at this in the OCaml ecosystem the via OPAM package manager ( https://opam.ocaml.org ). * OPAM composes its package universe from a coll
184.
▲
by
avsm
12y ago
The two projects are very complementary. You could easily write a MirageOS rump kernel backend that linked to the kernel device drivers, and build higher level services (HTTP, TLS, XMPP) in OCaml that use the production-quality NetBSD devi
185.
▲
by
avsm
12y ago
We have a feature issue tracking UEFI in Mirage, but noone's written the bootloader code yet: https://github.com/mirage/mirage/issues/187 Interestingly, it looks like the easiest way to support Azure...
186.
▲
by
avsm
12y ago
If you eliminate the hypervisor, you don't have vCPUs at all, so I'm not sure how this is a useful comparison. The question of IPC performance is an interesting one. We've been building up a database of open source results th
187.
▲
by
avsm
12y ago
Regarding GC pauses, remember that you already have them if your application stack is written in (Scala,Java,Go,OCaml,Haskell). But you also have other manual memory management going on everywhere! With Mirage, it's all amortised in o
188.
▲
by
avsm
12y ago
Two answers: scaling through structured distributed systems abstractions is a key aim in Mirage. We deliberately want each VM to be predictable, single vCPU and scale via multiple VMs. It's far more efficient to scale via lots of small
189.
▲
by
avsm
12y ago
This isn't supported yet, but unikernels on Xen don't currently switch address spaces (cr2 on x86). We're thinking about how to increase density by supporting process switching on Xen, which isn't hard, but needs to be d
190.
▲
by
avsm
12y ago
(mirage dev here) Not true -- you can run Mirage Xen kernels directly as EC2 guest VMs by using their AKI feature to boot a custom kernel. Instead of a custom Linux kernel, just boot a unikernel and don't bother with user space :-) Go
191.
▲
by
avsm
12y ago
Mirage is actually not just the Xen ABI. It includes a frontend that swaps in appropriate implementations of module signatures for other backends. For instance, Andy Ray just got a kernel module target working: http://lists.xenp
192.
▲
by
avsm
12y ago
Well, it's always fun to learn a new language, especially one with the 20 year provenance of OCaml! The modularity features that OCaml provides are really key to the core of Mirage. I'd suggest starting with: * OCaml from the ve
193.
▲
by
avsm
12y ago
That's correct, except that an Irmin client could choose not to reconcile if it would conflict, and just continue on with two active branches (presumably hoping for a future event that would help reconciliation). Bayou's a big in
194.
▲
by
avsm
12y ago
Using process checkpointing is indeed one good way to implement fault tolerance. The Irmin style is more explicit -- the heap itself is tree structured, and the application uses it to checkpoint itself to disk/memory as a matter of co
195.
▲
by
avsm
12y ago
The idea is that you can tailor the merge functions for the application problem domain, rather than grabbing an off-the-shelf distributed database with subtly different consistency semantics than the one you really need (e.g. Riak, Dynamo a
196.
▲
by
avsm
12y ago
That's a reasonable way to think about it, except that Git is just one backend option in Irmin, whereas git-annex is obviously specialized for git (and does it very well, too). The Irmin in-memory store, for example, never actually se
197.
▲
by
avsm
12y ago
They are different design philosophies: Irmin is closer to "Sqlite-with-Git-instead-of-SQL", since it's just an OCaml library that lets you build graph-based datastructures that are persisted into memory or Git. Higher-level
198.
▲
by
avsm
12y ago
Woops, that was dropped in a refactoring of the website code. Fixed in https://github.com/mirage/mirage-www/pull/192 and should propagate live soon. Thanks for reporting!
199.
▲
by
avsm
12y ago
We've got an experimental IMAP server using Irmin as a maildir-replacement backend, to give us e-mail provenance and undo for when mass moves go horribly wrong. It's not quite ready for open-sourcing yet, but should be over the s
200.
▲
by
avsm
12y ago
This blog post just introduces the overall architecture and pointers to the source code. There's a getting started guide for those who want to play with it here: https://github.com/mirage/irmin/wiki/Gett
201.
▲
by
avsm
12y ago
> What do you find most useful about talking to core OCaml devs? If you were developing in Java, do you think you would see a similar benefit from talking to core Java devs? OCaml (and Java, and Python, and any other "old" lang
202.
▲
by
avsm
12y ago
Yeah, although I guess it depends if you count Caml or not (1987). The intellectual history of the language can easily be traced back to 70s via the various LCF implementations, although the module system evolved significantly since then.
203.
▲
by
avsm
12y ago
While your mileage will vary depending on the nature of your startup, I can point you to a paper we wrote summarising our experiences using OCaml to build the XenServer toolstack in a startup environment [1]. You should bear in mind that OC
204.
▲
by
avsm
12y ago
GC vs reference counting has nothing to do with determinism. For the same inputs, the same allocation profiles and same GC events will happen. Note that CPython's reference counting is by means automatically simpler than OCaml's
205.
▲
by
avsm
12y ago
watching the error path cleanups in libasn1 in LibreSSL is scary indeed. It's a very complex API indeed, compared to something like the PolarSSL implementation. Undoubtedly more such bugs lurking that will affect routers, printers and
206.
▲
by
avsm
12y ago
A lot of those devices are probably still around and being happily used in production. I wonder for how many years in the future people will still have to fire up their HaskOCamlCoqda 10.4 ASN.1 library to deserialize EBCDIC over an ancient
207.
▲
by
avsm
12y ago
Thanks, that's all very useful feedback. There have been several significant improvements to the module system in 4.02 (including generative functors and module aliases [1] in signatures), so I agree that there's quite a bit more
208.
▲
OCaml-TLS: ASN.1 and notation embedding
(openmirage.org)
87 points
by
avsm
12y ago
|
11 comments
209.
▲
by
avsm
12y ago
Just started a thread on ocaml.org about putting a list of recommended projects for newcomers to look through the code for; https://github.com/ocaml/ocaml.org/issues/497
210.
▲
by
avsm
12y ago
> If any of the RWO authors are reading this, I'd love an expanded version (or another book) with more advanced features of the language -- GADTs, a deeper treatment of the functor/module system, covariant/contravariant ty
More ›