Wiki
Download
Manual
Eggs
API
Tests
Bugs
show
edit
history
You can edit this page using
wiki syntax
for markup.
Article contents:
== brev [[toc:]] Scheme is a beautiful minimalist language, the barest of building blocks that can make anything. So let's make anything. I just want to sand down every edge. I'm sick of boilerplate and of re-typing things that the compiler should do. In other words, I love anaphora, clojurian, miscmacros and similar. I sometimes wish I could use a language where all that stuff was just built-in right away. Hence brev. It depends on and reexports the following extensions as is: * (chicken file posix) * (chicken file) * (chicken io) * (chicken pathname) * (chicken port) * (chicken pretty-print) * (chicken process-context posix) * (chicken process-context) * (chicken random) * (chicken string) * anaphora * acetone * brev-separate * clojurian * define-options * dwim-sort * fix-me-now * html-parser * http-client * logical-combinators * miscmacros * scsh-process * srfi-1 * srfi-42 * srfi-69 * strse * sxml-serializer From {{sxml-transports}} it reexports {{pre-post-order*}} and {{pre-post-order-splice*}}, from {{sxpath}} it rexeports the eponymous {{sxpath}} procedure, and from {{bi-combinators}} it reexports the exceptionally useful {{bi-each}} combinator. From {{uri-common}} it reexports everything but from some (not all!) of the procedures it removes "uri-" or "-uri" from the name, as follows: (rename uri-common (uri-reference reference) (absolute-uri absolute) (uri-path path) (uri-query query) (uri-fragment fragment) (uri-host host) (uri-reference? reference?) (absolute-uri? absolute?) (uri-path-absolute? path-absolute?) (uri-path-relative? path-relative?) (uri-relative-to relative-to) (uri-relative-from relative-from)) From srfi-1, to prevent collisions with {{sequences}}, it adds a {{-list}} suffix to {{filter}}, {{take-while}}, {{drop-while}} and {{span}}. From {{sequences}}, in order to match srfi-1, it renames {{take}} and {{drop}} to {{take-while}} and {{drop-while}} respectively, and {{split}} to {{span}}. It renames {{index}} to {{seq-index}} to remove a collision with SRFI-42. It also changes the semantics of {{filter}} to have both a triadic variant (like the upstream {{sequences}} egg) and a biadic variant (to match srfi-1). It removes {{is?}} and {{empty?}} in favor of the ones from {{brev-separate}}. This egg also contains the {{mdg}} extension (short for "match define generics"), which imports {{define-dx}} from {{match-generics}} and renames it {{define}}, so you can have [[https://idiomdrottning.org/mdg|the fanciest define of all time]]. It's a separate extension to work around a since-fixed bug in older versions of Chicken. It'll become oart of {{brev}} instead (and the {{mdg}} extension deprecated) when the new Chicken becomes part of Debian stable. === Compiling brev code {{.brev}} files are scheme files that have an implicit {{(import brev mdg)}} at the start of them. On zsh you can use csc -prologue <(echo "(import brev mdg)") your-file-name.brev to compile them. On POSIX, you can use this shell script: #!/bin/sh echo "(import brev mdg)" > /tmp/brev-prol.scm csc -prologue /tmp/brev-prol.scm "$@" This is provided in the egg repo with the name {{brev}}. It also passes through any other flags you add, like {{-O3}} or whatever. brev -O3 your-file-name.brev This is great for quick little apps and pocs and explorations. If you are making modules (especially if you are making eggs), instead please just make them as normal {{.scm}} files that import only the modules they actually need, including {{brev-separate}} if needed. There is a {{brev2scm}} program included that helps you do that. === .brev files in Emacs Just add (add-to-list 'auto-mode-alist '("\.brev$" . scheme-mode)) in your init file to load .brev files with scheme-mode. (Or change to taste if you like other modes for your scheming.) === Source code git clone https://idiomdrottning.org/brev === License Brev is just a meta package so it's up to the license of stuff it links in. The meta-package itself is just public domain. The new stuff in {{brev-separate}} is BSD 1-clause.
Description of your changes:
I would like to authenticate
Authentication
Username:
Password:
Spam control
What do you get when you subtract 16 from 0?