This repository contains `clojure-mode`, an Emacs major mode for editing Clojure, ClojureScript, and related languages. The system provides syntax highlighting (font-lock), indentation, navigation, and a suite of refactoring commands directly in the editor. The architecture is a single large Emacs Lisp file (`clojure-mode.el`) with an additional extra font-locking package. It defines a base `clojure-mode` derived from `prog-mode`, plus derived modes for ClojureScript, ClojureC, ClojureDart, Joker, Jank, and EDN data files. Key entry points are the mode activation functions and interactive commands like `clojure-align`, `clojure-thread`, `clojure-cycle-privacy`, etc. The indentation engine uses a backtracking algorithm that walks up the sexp tree to apply contextual indent specs (shared with `clojure-ts-mode`). Font-locking is regex-based and extensible, with special handling for docstrings, discard macros, and character literals. The package depends only on standard Emacs libraries (`cl-lib`, `imenu`, `align`, `subr-x`) and requires Emacs 27.1+.
LIPS is a Scheme (R7RS/R5RS) interpreter written in JavaScript, designed to run in browsers, Node.js, and Web Workers. The core interpreter (lexer, parser, evaluator, environments, types, serialization) lives in a monolithic `src/lips.js` (~10k+ lines), while roughly half the standard library is written in Scheme itself (`lib/`), including R7RS base procedures, SRFI implementations, and a bootstrap library. The system is self-hosting: the standard library is compiled to a binary CBOR+LZJB format (`dist/std.xcb`) for fast loading. The interpreter features both unhygienic macros (`define-macro`) and hygienic macros (`syntax-rules` with `free-identifier=?`), first-class continuations with tail-call optimization, a full numeric tower (complex numbers, exact rationals), and deep JavaScript interop (dot access, `new`, Promises, ES modules, `require`). It ships with a REPL (terminal and browser), a CLI (`bin/lips.js`), and a Docusaurus documentation site with an interactive interpreter. The codebase is actively maintained (last commit Sept 2026) with a comprehensive test suite including R7RS conformance tests, snapshot tests for parser output, and Scheme-level test files. Known limitations include some failing tests (marked `test.failing`), a monolithic core that is hard to navigate, and dual macro systems that can confuse contributors. The project is in beta with frequent breaking changes (documented in CHANGELOG.md).
Smartparens is a mature Emacs minor mode for intelligent handling of parentheses, brackets, quotes, and other delimiters. It provides automatic pair insertion, wrapping, slurping/barfing (like Paredit), navigation by balanced expressions, and a strict mode that enforces structural balance. The core functionality is implemented in `smartparens.el`, with language-specific support modules for over 20 major modes (Python, Ruby, Rust, LaTeX, Clojure, etc.) that define custom pairs, skip-match predicates, and context-sensitive actions. The architecture is modular: the core exports a pair definition system (`sp-pair`, `sp-local-pair`) with fine-grained action hooks, context predicates, and prefix/suffix handling, while each language module registers its own configurations. The package is heavily customizable via `defcustom` and exposes interactive commands for everyday editing. The test suite is extensive, with over 60 test files using ERT and a custom macro framework that makes writing buffer-level behavior tests concise. The codebase demonstrates solid Emacs Lisp craftsmanship, with thoughtful use of macros, memoization, and backward-compatibility hacks. However, it shows signs of accumulated complexity, with some deprecated aliases, `defadvice` usage, and version-conditional code. The CI pipeline covers multiple Emacs versions and runs byte-compilation checks, indicating ongoing maintenance despite these legacy patterns. This is a well-known, actively developed package relied on by thousands of users. Its primary value is as an Emacs library, though patterns like the pair configuration system and test helper macros could inspire similar designs in other editor extensions or text-processing tools.
Bob is a Scheme language implementation consisting of a Python interpreter, compiler, and virtual machine (VM), plus an optional C++ VM implementation (BareVM). The system compiles Scheme source code to custom bytecode, which can be executed by either the Python VM or the C++ BareVM. It includes features like bytecode serialization/deserialization and WebAssembly compilation. The architecture is modular with clear separation of concerns: parser, compiler, bytecode handling, VM execution, built-in functions, expression representation, and environment management. Key entry points are in bob/cmd.py (command-line interface) and example scripts demonstrating interpretation, compilation, and execution workflows.
This repository is a curated list of interesting open source projects organized by programming language. It contains markdown files with links and descriptions for each language. There is no application code, data pipelines, or analytical models. It serves as a reference directory for developers seeking open source projects to contribute to or learn from. The repository is well-maintained with recent updates and a large community following.
This repository is a chaotic, joke-oriented collection that explicitly accepts all pull requests. The dominant content is a vendored copy of the Ruby on Rails framework (circa Rails 6.0 alpha), comprising thousands of files including core libraries, generators, tests, and documentation. Interspersed are hundreds of trivial or humorous contributions: random scripts in dozens of languages, ASCII art, brainfuck interpreters, fake malware, and absurd READMEs. There is no coherent application, no unified build system, and no original reusable components. The repo serves as a meta-experiment in open-source chaos rather than a functional tool. It is not suitable for production use or as a dependency.