Skip to content

Commit 5dd4cba

Browse files
committed
Added tags to all content
1 parent e961943 commit 5dd4cba

34 files changed

+137
-2
lines changed

content/about.md

+3
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
1+
---
2+
tags: [meta]
3+
---
14
# About OCamlverse
25

36
OCamlverse is essentially a *modern wiki*, with the advantage that it's based on git and github's resources. Anyone can ask for contribution rights, and like a wiki, small-to-medium changes can be made instantaneously (for larger changes, a PR is required). We therefore get the low-latency advantage of wikis combined with the reliability and history of git.

content/best_practices.md

+6-2
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,14 @@
1+
---
2+
tags: [learning]
3+
---
4+
15
# Best Practices
26

37
Here is a collection of best practices for successful programming in OCaml.
48
You should be using **ocp-indent** (see below) for your code formatting.
59

610
## Coding Style Tooling
7-
Rather than spending precious time worrying about the correct format for syntax, it's much more convenient to have
11+
Rather than spending precious time worrying about the correct format for syntax, it's much more convenient to have
812
tooling that will automatically lay out the code for you in a canonical manner. While ocp-indent used to be the clear
913
choice for automatic coding style, ocamlformat is a recent arrival that, inspired by ReasonML's `refmt` tool, uses
1014
a more comprehensive approach of end-to-end parsing and printing. Both tools can be integrated into editors to automatically lay out code as you write it.
@@ -19,7 +23,7 @@ is that even partially-compiling files can be indented, as can code fragments.
1923

2024
## Coding Style Guidelines
2125
* [OCaml programming guidelines at ocaml.org](http://www.ocaml.org/learn/tutorials/guidelines.html)
22-
* [XEN – OCaml Best Practices for Developers](http://wiki.xen.org/wiki/OCaml_Best_Practices_for_Developers)
26+
* [XEN – OCaml Best Practices for Developers](http://wiki.xen.org/wiki/OCaml_Best_Practices_for_Developers)
2327
* [Jane Street Style](https://opensource.janestreet.com/standards/)
2428

2529
## Documentation Best Practices

content/build_systems.md

+4
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
---
2+
tags: [ecosystem]
3+
---
4+
15
# OCaml Package Management
26

37
* [OPAM](http://opam.ocaml.org/) is the modern package manager for OCaml. If you want to publish a library in OCaml, OPAM is your best and only option, taking care of package dependency and invoking the build system as needed.

content/code_tools.md

+4
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
---
2+
tags: [ecosystem]
3+
---
4+
15
# Code Tools
26

37
## Editor Tools

content/community.md

+4
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
---
2+
tags: [community]
3+
---
4+
15
# Community
26
OCaml has quite a few places where you can go to communicate with the community and learn about the language:
37

content/compiler.md

+4
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
---
2+
tags: [compiler]
3+
---
4+
15
# Compiler
26

37
The OCaml compiler is a complicated software artifact. Below is an attempt to document information that could not fit easily into the codebase, including relevant papers. Feel free to break this up into pages as the need arises.

content/compilers.md

+4
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
---
2+
tags: [ecosystem]
3+
---
4+
15
# Compilers, Typecheckers, and Parsers
26

37
Because OCaml is one of the best tools for creating compilers, typecheckers, etc, you'll find a wide variety of projects made in OCaml.

content/contrib.md

+4
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
---
2+
tags: [meta]
3+
---
4+
15
# Contributing
26

37
You want to contribute? That's great. There are just a few rules to follow so we all get along.

content/databases.md

+4
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
---
2+
tags: [ecosystem]
3+
---
4+
15
# Databases
26

37
## Bindings

content/ecosystem.md

+4
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
---
2+
tags: [ecosystem]
3+
---
4+
15
# Ecosystem
26

37
This page describes the current state of the OCaml ecosystem. Please help keep it up to date.

content/ffi.md

+4
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
---
2+
tags: [ecosystem]
3+
---
4+
15
# Foreign Function Interface
26

37
Interop with C is the most natural for OCaml, since the runtime is partially written in C.

content/file_formats.md

+4
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
---
2+
tags: [ecosystem]
3+
---
4+
15
# File Formats
26

37
## Serialization

content/frp.md

+4
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
---
2+
tags: [ecosystem]
3+
---
4+
15
# Functional Reactive Programming
26

37
Functional Reactive Programming is a model for programming that tries to adapt state-heavy programming such as UIs or games to the functional programming world. For example, the normal mode of operation for asynchronous event-driven programming is to use callbacks everywhere. However, this requires mutating state, since the user's code is not driving the program but is being 'driven' via events. This model is common in GUIs and in Javascript.

content/graphics.md

+4
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
---
2+
tags: [ecosystem]
3+
---
4+
15
# Graphics
26

37
## 2D

content/hardware_design.md

+4
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
---
2+
tags: [ecosystem]
3+
---
4+
15
# Hardware Design
26

37
Ocaml has recently started to be used in the hardware design space:

content/learning.md

+4
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
---
2+
tags: [learning]
3+
---
4+
15
# Learning
26

37
## Why OCaml?

content/metaprogramming.md

+4
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
---
2+
tags: [ecosystem]
3+
---
4+
15
# Metaprogramming
26

37
## PPX Syntax Extensions

content/missing_pieces.md

+4
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
---
2+
tags: [ecosystem]
3+
---
4+
15
# Missing Pieces
26
This page details the things most lacking in the current ecosystem -- the things we wish we had. Hopefully this will direct some users to try create these things.
37

content/mobile.md

+4
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
---
2+
tags: [ecosystem]
3+
---
4+
15
# Mobile
26

37
## Development

content/monadic-parsers-angstrom.md

+4
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
---
2+
tags: [learning, ecosystem]
3+
---
4+
15
# Quick and Dirty Guide to Monadic Parsers and Angstrom
26

37
Author: Metin Akat @loxs

content/ocaml_platform.md

+4
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
---
2+
tags: [ecosystem]
3+
---
4+
15
# OCaml Platform
26

37
[Status of the Platform 2017](https://speakerdeck.com/avsm/ocaml-platform-2017)

content/parallelism.md

+4
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
---
2+
tags: [ecosystem]
3+
---
4+
15
# Concurrency, Parallelism, and Distributed Systems
26

37
Concurrency refers to running multiple computations more-or-less simultaneously, whereas parallelism refers to using multiple cores or OS-level threads to coordinate computation. We now know that the former is relatively safe and easy to reason about, whereas the latter is extremely difficult and causes many subtle bugs. OCaml currently supports concurrency elegantly, but parallelism support is not built in to the runtime.

content/ppx.md

+4
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
---
2+
tags: [learning, ecosystem]
3+
---
4+
15
# A Guide to PreProcessor eXtensions
26

37
Author: Perry Metzger @pmetzger

content/projects.md

+4
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
---
2+
tags: [learning]
3+
---
4+
15
# Projects
26

37
A list of projects written in OCaml, useful for learning and for gaining inspiration.

content/protocols.md

+4
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
---
2+
tags: [ecosystem]
3+
---
4+
15
# Protocols
26

37
* [ocaml-zmq](https://github.com/issuu/ocaml-zmq) – ZeroMQ bindings for OCaml.

content/scientific.md

+4
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
---
2+
tags: [ecosystem]
3+
---
4+
15
# Scientific Computing, Data Science, Machine Learning
26

37
## Numerical Computing

content/searching.md

+4
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
---
2+
tags: [ecosystem]
3+
---
4+
15
# Searching
26

37
# String Search

content/software_verification.md

+4
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
---
2+
tags: [ecosystem]
3+
---
4+
15
# Formal Software Verification
26

37
* [Coq](http://coq.inria.fr/) – Coq is a formal proof management system. It provides a formal language to write mathematical definitions, executable algorithms and theorems together with an environment for semi-interactive development of machine-checked proofs.

content/static_analysis.md

+4
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
---
2+
tags: [ecosystem]
3+
---
4+
15
# Static Analysis
26

37
Like compilation, static analysis is another domain where OCaml excels.

content/systems_programming.md

+4
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
---
2+
tags: [ecosystem]
3+
---
4+
15
# Systems Programming
26

37
## Mirage OS

content/testing.md

+4
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
---
2+
tags: [ecosystem]
3+
---
4+
15
# Testing
26

37
* [ppx_expect](https://github.com/janestreet/ppx_expect) : a Cram-like framework for OCaml

content/ui.md

+4
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
---
2+
tags: [ecosystem]
3+
---
4+
15
# User Interface
26

37
## GUI

content/web_networking.md

+4
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
---
2+
tags: [ecosystem]
3+
---
4+
15
# Web and Networking
26

37
## Example Projects:

content/windows_support.md

+4
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
---
2+
tags: [learning]
3+
---
4+
15
# Windows Support
26

37
Many projects, including the OCaml compiler itself, rely on the Unix shell and its various utilities.

0 commit comments

Comments
 (0)