Þ   briarpig  » thorn


The top page previously found here is now an intro so this page can index þ C++ interfaces and commentary. A "mu-babel" license page now details your rights — few compared to other open source licenses. It has a right to use (not alter) freely if no changes are distributed.

     The name BriarPig is understood as a pseudonym for the present owner of the briarpig.com domain.

index

     This section itemizes pages under this þ; I'm a kind of guy who likes starting in story middle — try demos if you are too.

     Warning: many pages may be mostly empty stubs for a while.

  • intro - original þ introduction
  • why - why describe þ and explain code?
  • ideas - overview of þ ideas and concepts
  • style - code style patterns in work & play
  • demos - motivation by organic example
  • types - basic and complex types
  • terms - categories in terminology
  • tricks - theory-flawed practical techniques
  • index - names, symbols, & topics links
  • rights - terms of the "mu-babel" license

     Soon a page will be added that indexes the location of classes and other symbol names mentioned. (That new page will resemble the index of a book, where you can find topics by appearance on pages.)

headers

     Source file structure is accidental complexity of very little interest. So all APIs shown for þ will pretend a single header file is used to hold all declarations, inlines, and templates. This fictitious header is named mu.h and looks something like this (mu-babel license):

// Copyright (c) 1993-2008 BriarPig (mu-babel license) #ifndef mu_h #define mu_h 1 // misc other headers included here namespace mu { // scope for mu }; // namespace mu #endif /*mu_h*/

     þ is designed for rewrites and no standards, so any local copy of þ sources in real use will be organized according to whatever practical purpose suits a dev. Knock yourself out.

     The license (details pending) will forbid a standard library installation, so all use is embedded only.

license

     All this code is available only under the BriarPig mu-babel license described fully on the rights page. You do not have permission to reprint this page in any way. Neither feeds nor repackaging is allowed. You can link this page if you want folks to read it.

demos

     A large number of pages are accumulating under the demos page, and completion progress is indicated on the todo page, which should spare you blindly loading pages that are only stubs.

     The general naming scheme for classes in þ is covered on names in that section. Here's a copy of the menu from the demos page:


     thorn « Þ, todo, names, iovec, assert, log, run, hex, crc, buf, in, out, quote, escape, compare, file, deck, cow, slice, rand, time, stat, heap, node, primes, page, book, pile, stack, atomic, lock, mutex, thread, map, list, iter, ctype

     (mu, toy, peg, imm, tag, box, symbol, token, number, bigint, class, method, reader, writer, eval, env, vm, gc, world, pcode, compiler, asm, lathe, lisp, smalltalk, design, weight, jar, card, harp, debug, profile)

     Some demos are stubs: todo is a demo guide. See toy for mu updates on language pages; names introduces naming schemes.


Fictional developers are used as a writing device for clarity. The story and background pages say more about it. All þ docs simply assume you grasp named characters are personas for convenience in telling stories.

     Wil speaks as the primary author of code; a few other personas play minor roles as foils to stimulate competing perspectives Wil must consider. Questions are great. But little care and attention is given to others. Instead, conversation often shows Wil has no desire to care what anyone else thinks. Wil doesn't care if you use thorn.

     Mean-spirited dialog comes from Ira, who acts as an associate protecting Wil from nuisances. Ira hates impudent young whippersnappers — his first impulse: telling Dex to shut the hell up. Ira favors abusive forms of expression. This aims to be funny, contrasting with solicitous online material often used to court new devs. Ira sneers at your needs.

     Dex is a classic know-it-all geek who's never wrong in his own mind, who expects everything must go as he likes, or at least the way he has come to know. Dex thinks developers should toe all lines of convention, and forbids improvisation in each breath. To spare you past epic battles, we skip dialogs where Ira shuts down Dex on STL and Boost; just assume it happened. Dex is only polite because Ira can be vicious. Dex no longer thinks he can chivvy Wil by social pressure, so his comments are more cursory and factual.

     Stu is a fairly unbiased dev with no particular agenda, asking questions to fill in blanks he sees. Stu might puzzle through code resembling þ, or he might consider using þ himself. Either way, Stu is only barely curious enough to seek info.

     Other minor characters may appear — sometimes Zé who collaborates, and sometimes Ulf who wants to market thorn against the wishes of Wil and Zé. (Only Ulf cares if thorn appeals to you.) Hal is a junior C++ developer who is puzzled by any deviation from common practice. Wil only helps Hal when otherwise he might get into trouble.