Staapl dev log.

This is a day-to-day development log & soundboard.

You probably want:

  home         http://zwizwa.be/staapl
  edited blog  http://zwizwa.be/ramblings/staapl-blog

Related project logs:



Trivial to fix:
- list all commands
- snot forth console

PIC18 features:
- I2C bus monitor
- live access to multiple microcontrollers

PIC18 apps:
- interrupt based CRT display controller
- serial keyboard interface for KBsheep
- PC reset logic connected to WRT54

Possible extensions / Non-trivial things to fix:
- build System09 / rekonstrukt using xilinx tools
- reflective forth bootstrapping on top of staapl (reusing primitives!)
- figure out why it compiles so slowly
- write more documentation
- assembler addressing modes
- dsPIC
- 6809
- Cortex M0
- assembler text output
- external emulator hooks

20170603 usb midi note on aconnect?
restoring old synth files
Linear mixer
formant mode sounds dirty
usb midi
20170531 Midi control of formant synthesis.
20170530 Events
Store CC values?
How does the midi parser work?
midi voice control
Demo? MIDI + sequencing
20170529 Staapl history, code archive history segments
20170523 Synth
20170520 Embedded GR
Usb serial: data ready?
20170519 upgrade breaks old code
20170418 llvm output
20170415 What is a message?
20170414 Protocol oriented programming
Instantiation / refactoring engine
20170413 LLVM
The Central Question
Keep FLUNK presentation for archive, turn it into compiler.scrbl
Rehash - things that sunk in
Why did pic18.rkt disappear?
20170103 1kb challenge
20161208 UBF
20161125 chuck back to ga144
20160904 Watchdog
Reliable reboot on USB?
20160825 Identity crisis
20160818 Bootloaders
current loops vs. rs485
20160817 Remote node wire interface
Remote access
Staapl use
20160816 Protocol adapter
20160815 4-relay-module
20160407 arm roadmap
20160222 Protocol oriented programming
20160214 Protocol oriented programming
20160124 One year gap
20160123 mecrisp
20160122 Why Forth?
20160120 searching for colorforth on arm
20151011 GDB & C
20150718 Niche
20150717 ARM
Structured Procrastination
20150716 Next?
20150224 SLIP vs. prefix coding
20150222 Pots and nets
20150221 A correct language
20150207 PIC vs ARM
20150205 fig notes
20150117 STM32F103C8
20150116 Async USB
20150109 GDB stubs
20150102 Where is this going?
From actors to dataflow
A new language
Forth tasks
Too much
Statically compiling actor networks
A path
State machine compiler
20141231 Assisted mapping: bottom-up code development.
20141229 Next
20141226 Flash size vs. power tradeoff
Huffman decoder
Small C code
20141221 Bootloader
20141120 gdb stub / cortex m
20140810 Threading
20140809 bootstrapping forth
20140803 One poles
CCs for synth
Subroutine return on ARM
ARM stuff
20140801 ARM roadmap
ARM dev
Instantiating static objects
20140731 Master/slave uart
20140730 Loosing track...
Linear interpolation
Simple 1-wire
20140729 stubs for arm
standalone forth
20140728 Debug on bit-banged master SPI
20140727 Faster "empty"
dtc console underscore hack
Interactive dtc
dtc todo
20140726 Interactive dtc
Self hosting?
DTC next?
20140725 DTC running
Simulator: don't throw away original assembly
20140724 Direct threaded forth in dtc.rkt
Using many-register machines
20140723 Parameter mappings
Some things to fix
midi cont
chord.f abort?
Macro quirks
20140722 singletons
20140721 Linked lists - specialized as sorted sets
Stack is growing
20140720 midi-size
reality check
Debugging midi
20140719 Emulator in staaplc
20140717 Emulator cont
20140716 Emulator
20140715 state machine compiler: sm/sm.rkt
20140714 todo
20140713 Buffered input, low-pri I/O
Need buffer?
Midi CC
HW midi
20140712 Next
Polling is working
20140709 aconnect
Analog Monosynth
20140708 Make 'if' work on integers
16bit Forth
Floating point exponentials
20140706 Recursively start interpreter
Envelopes / LFO
18F with DAC
Microchip advanced part selector
Later arch
New modulation structure
New name
factoring route
20140705 Formant stuff
Poll console / midi
HW problems?
route problems
Synth control byte
Synth name
Debug print
20140704 Stack of notes
simple MIDI control working
Comparisons drop vs. nondrop
Trouble with >? etc..
Next: midi control
Timer prescalers
ISR check
Synth on dip40 board 4550.
rack pkg install github : structure changed?
Loop until keyboard input
20140703 MIDI WORKS!
So this is the form I filled out..
Cheap MIDI adapter : lsusb -v
20140702 MIDI docs
raco pkg install --link
MIDI cont
Driver config. Enable multiple endpoints.
Enable multiple endpoints
20140701 Evaluation
(live) vs. (host)
rpn-wrap-dynamic bug
live interaction
20140630 Forth and shallow binding
Application endpoint access
20140629 MIDI
Making USB more generic
Compiling tables
USB descriptor code -> dip40kit.fm
Flat code
20140628 USB descriptors
Hard problems first?
20140625 next
icsp level problems
Ordinary serial on 1220
pk2 driver problem
staaplc device selector
Getting sheepsint to run again
20140517 Siggen with USB?
Boot block & ISRs.
Bug in usb.f : PIR2 USBIP low
This is about getting to know the PIC 18F4550.
Function generator
20140511 A PIC is a piece of hardware
20140509 Compiled macros
Data transfer to host
20140505 Application: synchronous data logger
20140504 OS
20140503 Next?
Powering up PIC-USB-STK using pic-usb-stk.fm
20131221 USB board
20131216 Any Micro
Learning from GA144
Guided ASM programming
Staapl's multi-level approach to the extreme?
Simple AND Useful
20131215 ARM registers
20131214 Staapl next
20131211 ga144 emulator
Greenarrays slave labour
Define protocol-oriented programming
Concurrency, state machines and protocol-oriented programming
20131209 Greenarrays
Forth on ARM
Staapl in haskell
20131119 Flunk presentation
20131118 Rebuilding the demo
20131111 Presentation: what's the point?
20131106 Demo
FLUNK presentation prep
20130922 8bit forth + indirection?
20130914 USB ACM
Just forth again...
20130908 S-expression approach
Eval of multi-chunk
ARM forth?
Artificial problem
s-expression only?
20130907 DTC forth language
Test driven development : chunking
USB fix: >63 byte descriptors
20130906 Huffman coding
16bit forth VM
Other module language
Console / self-hosted?
20130903 New board
20130901 Setup requests + multiple packets
20130831 USB descriptors
Kernel or not?
20130830 Programming with bootloader
20130818 PK2 schematic
Adding application interface
USB serial -> libusb packet interface?
20130817 Debug over USB?
Debug console over USB
Reset at 3.33V ?
USB works? Now what?
Picking up USB
New package manager
TODO: finish USB
20130610 Assembler
20130602 dsPIC
20130530 Converted to GIT to host a standard Racket package on github
20130506 Why work on the stack level as opposed to the syntax level?
FLUNK presentation
20121026 Next
18F2550 voltage
20121022 Next: board powered from USB
Automatic banked access
Indirection for >INx OUTx> ?
Loopback working
Reproducibly stable startup for USB code
20121021 Test primitives
Byte read/write
What's working?
Tools trouble
Status LED
Serial port echo
Fundamental linking question
Simpler, not more complex.
What to save in ISR?
20121020 Next: console on USB SERIAL
20121015 Staapl protocol on virtual serial port.
Standard bootloader
Starting again
20120731 Synth Club
Cheapest PIC18F
20120704 Busy
20120620 GDB stuff
20120619 Cheapest USB PIC18F
20120617 PIC indirect addressing
20120616 PIC and memory buffers (banked access)
20120615 Too Concrete
USB Serial: raw mode by default?
USB midi
Opti stuff
PK2 robustness
Cache target code compilation
Cleanup staaplc
Serial on windows?
20120614 IN transaction
USB Bulk
20120613 Linux USB serial
USB rpc stuff
20120612 USB cont
Struct compiler
More USB debugging
USB linear code
Things to change
Boolean functions
USB cont
20120610 USB next
USB get descriptor + set addres OK
Correct for .. next
RPC context save
20120609 memcpy
20120607 GDB stuff
20120606 Pull commands for dumps
Problem with host commands
do-arrow (vector.ss)
Speed vs. code size
Inlining symbolic constants
20120605 Doing this stuff in GDB
Dynamic binding
Prefix commands
Host commands accessible on target
Flash literals
20120603 Symbolic target words
Disassembler: use "sea" instead of "see"
Fixing RPC
20120530 Electrical problem?
Fixing serial
20120529 What to do with PK2
Resetting PK2
20120520 Basically a whole day of stuff
Printing racket backtrace
Debuggable USB driver
Things to fix
20120519 Future of Staapl
Serial console
Increase visibility
I have no clue
Status USB
SET_ADDRESS: why does lab1.c wait for IN ?
ASM USB example code
DATA 0/1
kernel with USB debug message
USB on scope
20120518 Getting things done
Simple software?
Today's trouble
Can the usbmon be trusted?
Speed vs abstraction: current object?
Old USB code
USB debugging with wireshark
USB debugging
Buffered console log
Analyzing USB traffic
20120517 maybe different approach better
USB stuff
Datastructures (named offsets / addresses)
Notes about starting up
20120515 Loosing >r
20120514 Input stream vs parameter stack
Executing a word by pushing it's instructions on the return stack.
Stream-oriented machine
20120506 Forth is compression
20120504 Next?
20120111 State machines & register allocation
20111119 DIP packages
20111112 Compile a macro into a word
Property based testing
Pulling in word defs
Macros don't support quote
Documenting the new Forth -> Sexpr compiler
Fix documentation
20111110 Python coroutines
Conditionally compiling target words
Shallow Coroutine State
20111109 Wow
Serialzing thread state
PK2 sync
20111108 Where's the other code?
Some sounds
General cleanup
20111107 The Staapl compiler is an Arrow
state machines
20111106 Problem with synth + pk2 solved.
Synth: chaotic oscillator
PK2 slave?
Record definitions from interactive session
20111105 Reliable ping
hex printing
Preparing for release
20111031 Problem: Data Structures
20111006 Console working with app that uses interrupts.
PORTB / ICSP comm?
20110927 Running synth with PK2
20110716 Metalanguages are functional
20110523 Forth as an interface
The Forth community
Forth is not C
20110412 It needs to be faster
20110410 Debug output
New proto board
20110409 ICSP on 8MHz
Parser oriented programming (from busy.txt)
20110408 Test-oriented programming
20110407 Better debug tools
Fixing emit
A clean usb.f
20110406 Streams are cool
a!! bug
USB endpoint register access
PIC18 extended instruction set
20110403 Real problem: no structs
20110402 USB
Chain cutoff problem?
The disassembler
Low-level conditionals
Faster "kb"
Can't rewrite Staapl
Faster program
20110401 Powering target from PK2
Scheme prompt
Sync issues
Console usability issues
20110331 Looking at "kb"
It's working, now make it faster
pk2 ICSP proto monitor
.f files and early binding
20110330 Target-side monitor code
20110329 Packet-based monitor code
The infinite todo list
Clock sync
20110327 Forth syntax
Reading the ICSP proto on PIC
Running the test suite
Protocol changes
20110325 Include files
Use the source luke
20110324 Why is there no unit collection?
Unit unions
Compound units
20110321 PIC18 debug mode
20110320 Safely tucked away?
picstamp.fm back online
Same problem as before, now with working signatures.
Debugging certificates.
Avoiding `syntax-local-value'
Is `syntax->list' the culprit?
Syntax certificates
20110319 What a mess..
Uncertified syntax
A new macro-forth ?
Weird bug
20110318 Backtraces / continuation marks
20110317 Code structure
Assembler broken?
The (ns ...) hack
Ask racket list
Prefix parsers part of signatures
Piggy-back signature macros
20110315 org
Extending `define-signature'
20110312 The new `forth-begin'
Moving forth parsing words to signatures.
Hmm.. still getting weird unknown signature errors
Introducing names
20110311 Next: org-begin org-end
Name change? `macro' is misleading
20110310 Next
20110308 Compiler fixes
Macros in terms of multiple signatures
Compiler not in module?
Roadmap: constant dependencies
20110307 Tension between modules and units
PIC18F constants
picstamp.fm -> picstamp.ss : removing `load' and usining units
20110301 RTS / CTS as reset?
PIC debugging: data over serial connector
20110225 Programming?
20110224 PIC18 debug tools
20110221 New PIC arch
Back to the Stack
20110204 3V input on 5V circuit.
20101231 Object-oriented API
20101230 Retargetting at Schemers
Instantiation and control flow
s-expression only: splitting forth parser and dictionary compiler
20101228 Future of Staapl
20101120 Summary
Just get rid of the damn syntax.
Really unrolling Forth
The Forth -> module parsing is too complicated
20101119 Units
Little annoyances
20101116 The I :: m -> (t -> t) towering
Summary of possible directions
Control flow graph
Linker scriots: eliminating `load'
20101115 Partial evaluation
The module system
More flexible name binding
Picking up again
20101006 Continuous evaluation
20101005 One chip, one model for verification
20101003 Things to fix
20100919 The good thing about microcontrollers ..
20100908 I need a fun project
20100904 Why does Forth lead to small code size?
Staapl heritage: colorForth and Machine Forth
20100824 Targets
20100819 The Staapl Killer App: static data structures -> code
20100518 4550 fatman
Problems with Staapl
20100516 removed log-stx in asm-template-tx
20100412 Lambda vs. Patterns
20100320 Adding static semantics to macros
20100317 Proving rules
Multi-pass : applicative functor?
Test Coverage
Compiler Testing
20100316 Compilation, Interpretation and Staging
20100314 About compilation
Functional representation of stages
Haskell vs. Scheme
20100313 Composing partial state maps
20100309 Dependency analysis
20100307 Hands-on
PIC30 tools
20100306 Graham-Glanville method
GNU Binutils
dsPIC -> ARM
MPLAB and wine
The PIC24 assembler
Recovering static structure of Scheme programs
Assember refactoring: practical
20100305 Assembler expression language
20100303 Correctness and Machine Description
Staapl's substrate
Fixing (limiting) the assembler
20100222 PIC24 assembly
20100221 Offloading high-level components to OCaml/Haskell
20100208 Roadmap
20100115 Haskell on hardware
20091031 Synth: the control layer
20091029 PIC18F1220 with direct speaker attachment
20091020 staapl marketing
20091014 What is an assembly language?
20091012 Staapl in ML?
Giving up on the assembler?
PIC24/30/33 addressing modes
Tool decoupling (embedded ML)
20091011 Z -> C
20091010 spread & cleave
statements/dataflow vs. expressions
20091009 Loop TX
20091008 Linearization
Filter language
20091005 2-level semantics
Constraint cont.
20090930 Filters cont..
20090929 Stream combinators continued
20090927 Stream Combinators : Z
20090924 Constraint Language
20090921 Monads in a concatenative language
20090920 Combinations of 2D filter masks and mappable scalar ops.
MAP is easy, FOLD is not.
Loop TX
20090919 Join libprim and staapl
C extensions using standard syntax.
20090918 Abstract Interpretation: Lattices
Type Checking and Abstract Interpretation
20090917 AI - Summary
Matrix combinators
Echelon form
20090916 Using associativity
20090914 Abstract number domains
Linear equations
20090913 quotation vs. prefix
How the query system works (SICP)
20090911 Prolog
Algebra of Programs
20090910 unify.ss
20090909 Relational programming
Resolution (Logic)
20090908 Prolog and Pattern Matching
A safety monitor
20090907 Ranges
Too much freedom
20090906 Other abstract values
More about rules
20090904 Practical: constraint.ss
20090903 DFL -> LCL -> ?
DFL/CPL : Control flow staging
20090831 Constraint Programming
20090827 Rewriting in a nutshell
20090826 Studying the Factor compiler
20090731 Delimited Continuations in C
linear data structures vs. dataflow communication channels
NEXT: study
20090729 electronics is the world of leaky abstractions
Forth and `singletons'
Extreme Forth
20090723 Scheme's call/cc and C
20090722 DFL next
dfl-compose without eval
20090721 multi-pic debugging
daisy chain buggy?
macro assembler
growing higher level semantics
semantics and static analysis
back to basics
20090720 using the macro-generating-macro trick for dfl
20090719 next
Abstract Interpretation and Higher Order Macros
DFL language implementation : Summary
machine specification
20090716 type checking vs. abstract interpretation
curry-howard correspondence
the relative conditional jump
constraints -> dataflow
split bit fields
PIC18 decoder
DAG sorting
Bijective functions
instruction decoder (asm - dasm - sim)
'instruction-set macro
dsPIC instruction encoding
20090715 Assembler with addressing modes
HCC - AVR Forth (dutch)
Bootstrapping through simulators
20090714 C parsing needs the preprocessor
20090711 multi-pic
20090707 small projects
20090706 complex hardware
20090704 parsers
20090701 Against the Toplevel
20090630 fixing the disassembler
improving build times
blink-a-led and non-interactive code
more errors and warnings
20090629 fix PLaneT package
20090627 further bus bootstrapping
PIC overclocking
20090626 logic analyser
20090625 Component Order Futurlec
IDC debug pinouts
TTL mono
20090624 sheep synth in a cherry ps2 keyboard
DFL + generating C code
20090611 DAN 60
more DFL
20090608 DFL
Emulators & Data Flow
more bootstrapping
20090607 I2C
Neil Franklin's OS ideas
20090606 debugger interface
CRT terminal board
bitbanged serial
Multiple PICs
20090605 is rewriting lowlevel or not?
don't lift everything
metacircular forth unrolling
dictionary files
20090604 Staapler
multiple devices
PIC CRT display controller
next actions
USB sucks
mcf and syntax parameters
hardware want
TI chips
multiple interpretations
20090603 structured procrastination
simpler debugging
TTL video
lifting immediate words to staapl
old comments about bootstrapping
it's a trap!
more bootstrapping
20090602 smarter bootstrapping
more standalone forth
usb next
syntax-directed translation
accessing structures
20090601 usb cont
usb and debugging
20090531 buffered compile working
Simpler DTC
the 14-bit VM
This week
20090530 niche
target-directed to-host offloading
Forth VM next
byte addressess
Forth mode
forth on forth
20090529 vm stuff
list split
20090528 issues to solve
partial evaluation is proper commutation
standard forth
20090527 rc files
more libraries
20090526 comparing two strings -> generators
standard forth
MetaML and future of Staapl
usb.f and indexed addressing
20090525 do what i mean
removed old vm commands
interaction macros: not easily composable
20090524 words in namespace
the synth
icd2 serial
where is the first element on the data stack?
stack size
vectorized receive/transmit
order of instantiation
20090523 the monitor
moving stuff to modules
load/require interference
usb cont.
fixing "load"
20090522 composability
The f and a pointers -- dynamic scope
dynamic image bases vs. static source based development
renaming x -> r
prefix parsers vs. concatenative macros
usb cont
Factor stack effect checker
20090521 usb
lazy bootstrapping
target stack access
simpler live commands
20090520 ltu thread on the future of programming
inline macros vs. partial evaluation
20090519 unit filteres
20090518 preparing for release
20090517 fruit
i can't read documentation
previous introduction
removed front page stuff again..
types are calling conventions
20090516 terminology : partial evaluation
20090515 new documentation
20090514 low-hanging fruit
functional PIC18 language
more algebra
partial evaluation: functions, not macros
only macros?
syntax properties
uniqueness types
20090513 when is eager matching not working?
interpreting generated code as a stack
pe reordering
next: documentation update
full lazyness
20090511 telling people things
tower of interpreters
20090510 eta-reduction on rpn-lambda
macro->data / macro->code
peephole and stack
20090509 Michael Thyer's Thesis about Lazy Specialization
lazy coma
20090508 lazy partial evaluation
20090507 specializer
higher order macros
20090506 lazy partial evaluation
proof that [ a + b + ] == [ a b + + ]
verifying a transformation rule given concrete machine semantics
20090505 Futamura
optimizer / semanitcs
20090504 next
load vs. units
missing code
weird error
making all examples compile
using the machine update macro in compiler-unit.ss
using machine/vm-stx.ss for compiler
non-splitting return
compiler-unit.ss cleanup
macro exit without parameters
20090503 disassembler
minor problems to fix
recursive expansion
require + recursive expand
parser macros again
trouble with locals probably
what is a .fm ?
20090502 jw/false
20090501 things to fix
expand-to-top-form again
code collection
20090430 just cut & paste
units vs. modules
syntax signatures
sometimes it doesn't expand
postprocessing macro using expand-to-top-form
levels again..
the signature
20090429 forth signature
from dynamic to static
macro types
namespaces are properties
ops and op matching
Abstracting parsing words.
units and macros
namespace mapping
20090428 separate parser namespace
what is what..
require + define-syntax
top level coma/forth parser
20090427 prefix macros : term rewriting in Forth code
fixing pic18 forth parsing
forth bootstrap with new rpn parser
dictionary "extra" state
more forth parsing
20090426 the forth parser
CPS + optimization
zipper dictionary
parser idea
ns -> rename transformer
sharing data between macros
regular expressions
Forth parsing
compile time is compile time
identifier -> source path
20090425 next
scat in terms of new rpn syntax
macro continuations
mixing pattern names and variable names
basic parser
n-ary instead of unary ops
20090424 list interpreter
the new scat
rpn compiler
mark: test-pic18.ss / pic18.ss work with console
making qw parametric
syntaxes and units
final test
20090423 next
de-parameterize comp/instantiate.ss
compilation state representation
taking it apart again.
20090422 units as basic block
a lot of backpatching
parameterized control compiler
static dasm
then <-> declarative macros
hierarchical language
the real deal
20090421 expand-to-top-form
Macro transformers
20090420 update: we're still symbolic
now the same for macros?
all pseudo
ns refactoring
big change
20090419 the real problem
compile time bindings
what is an assembly instruction?
moving towards hash-less assembler
20090418 name structure
further cleanup
disassembly address?
next problem
don't mix side-effects and streams..
20090417 asm/dasm cleanup
sequence tools
20090416 restating the question
20090412 static assembler data
more fixes
disassembler types
20090411 Berkely CS61C Machine Structures
combined asm dasm
20090409 transposes
hygiene bug
asm hygiene problems
20090408 assembler incremental changes
imperative module system
20090407 ARM vs. MIPS
20090404 composition and compile time information
values vs CPS
machine specification
transposed notation
20090403 staapl/comp
ideas and confusion
20090401 fine grained multitasking
20090331 instruction-set
bugfixes + regression tests
20090330 static Staapl : core problem?
let and lambda
Staapl vs. MetaOcaml
names in concatenative language
normal numbers / autodiff -> memoized expressions
Shifting the Stage: Staging with Delimited Control
20090329 Forth vs. C
The purpose of Coma
Loops and data structures
20090328 RTL eforth (RISC portability through macros)
Threaded code + control primitives working
20090327 eForth primitives
20090322 openfirmware
Forth and data structures
20090321 DSP target
reading C code
evaluation hardware
20090308 Object code : types or other static information?
20090307 core design documentation
20090221 usb
error messages
20090220 Macros and such
20090217 linux usbmon
20090216 18F extended mode
20090215 dynamic binding
old usb driver
gdb vs. forth
wait a minute..
20090214 next
forget about bitbanged uart
dropping pk2 support
more pk2
20090212 pk2cmd trace
global variables
fixing bugs w. bitbanged serial
20090211 state machines / USB
20090209 hybrid systems
20090130 PIC30 binutils + gcc
20090127 multi-stage semantics
20090126 concurrent
20090123 genoeg gezaagd..
20090104 Staapl definition
20081225 midi
20081219 dorkbot staapl presentation overview
20081217 sync jitter
dorkbot presentation
20081216 redefining names
more forthtv
20081215 forthtv
list of interactive commands
interrupting application
Polling the icd serial port
20081214 Preparing for dorkbot
20081211 demos for dorkbot
20081210 longer cables (pk2 over TCP)
20081206 the problem with writing lowlevel code..
20081123 problems shutting down uart mode
optimization terminology
minilanguage for usb drivers
20081122 full circle
pk2 console works
host + client
Getting rid of namespace management
multiple consoles
20081120 tools ready
20081116 dorkbot - a different angle?
20081111 logic analyser
busy loop timing
basic app config
20081026 distracted
20081022 PicKit2
20081018 higher bandwidth to PC
getting things done
20081012 Staapl selling points
20081010 staapl pickit interactive
20081007 microchip samples
macros at the console
20081005 last couple of weeks
demo / test
20081003 gimple
About code generation and identifiers
Generating 3 addr SSA (GIMPLE)
MetaOcaml bytecomp/trx.ml
bug in interactive console -> testing
20080928 modifying MetaOcaml
Union types
typed vs. untyped metaprog
20080926 Type system for Coma functions
Matlab / Simulink integration
MetaML vs. Template Haskell
more about typed vs. untyped staging
partial evaluation vs. dynamic closures
Texas Instruments TMS320C67
20080923 MetaOcaml
20080922 pickit2 debugging
C code generation
20080921 static asm identifiers
20080920 musing
type classes in scheme
typed scheme
ee vs. cs
more about macros and MetaML
static assembler
20080919 documentating
20080918 loading library code
20080917 algebraic types
20080916 MetaML and Cross-Stage-Persistence
non-orthogonal part
20080915 Break
20080914 How not to sell a language
Can you sell a language?
Trench dwellers
the Transterpreter
20080913 FSM-hume
summary of activity
20080912 towards standard machine architecture
simulator simulator
simplify simulation
Re: DavidP5 (Microchip forum)
20080910 8051
20080909 blink-a-led on the 18F452
concatenative email
old partial evaluation explanation
20080908 make-mzscheme-launcher
Mail from JPC
The 18F452
20080905 blink-a-led
MetaML vs Scheme Macros
remarks about pk2.ss
20080904 more pk2
microchip forum post
pickit disassembler
That safe language
20080902 quasiquotation and staging
more examples
20080830 MetaML
20080829 Applications
PICkit2 UART mode
standard programming cable
two distinct uses of byte code
20080827 demos
20080826 PK2 replies
20080825 prescheme
20080826 USB / model based design?
20080825 PICkit2 + libusb
interoperation and snarfing
20080824 trade magazines
Broad spectrum
machine model
second documentation pass
20080823 planet build problems
abstracting over names
20080822 lazy composition : concatenative vs. compositional
20080819 The s-exp language
Parameterized programming
libusb and FFI
20080818 PicKit2 arrived
20080817 LuT comment
20080815 Architectures: where to draw the line?
20080814 books
Interaction simulator
20080813 Staapler change of plan.
problem with darcs-1 -> darcs-2
Coma code + instantiation
parameterized code
20080812 double debugging
debugger protocol
20080811 Minimal bootstrap
ANS : Forth in Forth + ???
20080810 Revising boot monitor
20080809 Staapler protocol
Staapler roadmap
Staapler programmer
Staapler connector
ICD2 + serial?
Microchip programming protocol
monitor rewrite
20080806 Formalizing Coma
documenting a port
20080805 ANS Forth frontend
return stack
Derived Forth
Data doubling
ANS Forth
20080804 Factor
20080802 tool integration
20080801 control flow analysis
ANS Forth
multiple targets
20080731 meta-pattern
14 bit arch
time for play?
20080730 editing the forth paper
Onwards: concurrency / types / ans
associativity after instantiation
20080729 the state file
20080727 offline compilation example
20080726 cleanup dist + docs
20080725 staapl home
20080724 old web site
packaging + prepare release
20080723 piklab
20080722 the synth
Graph structured lambda calculus, SECD, ...
20080721 done?
project reload
mark & empty
snot repls
Higher order macros
compile/execute vs. run
20080720 pattern matching guards
asm overflow errors
,,geo-seq test case
the synth
the target: language
Staapl pilars
20080719 Reachable vs. Incremental
functional code graphs
incremental upload
Zipper for the parser
20080718 The API
Generating typed programs
Algebraic types
20080717 The Expression Lemma
Walid Taha RAP video
incremental dev
20080716 documentation -> parser itches
20080715 name troubles
control.ss and label.ss
MetaOCaml / MetaScheme
20080714 binary operations
Generating optimal code with confidence
multi-stack Forth support
typed vs. untyped
20080712 writing C
20080711 fold
20080710 functional forms (FP in Coma)
porting old ip.ss
20080709 That DSP language: fanout
about recent changes and insights
20080707 not writing a single line of C code..
20080706 optimizing lists to arrays
20080705 rewrite rules for HOFs
split coma/macro
order of parameters
scheme vs. purrr PE macros
automatic lifting
20080703 image iterators + dont-care regions
20080702 tile problem
that DSP language
datatypes and iterators
Multi Stage Programming: Its Theory and Applications
matlab-like behaviour
20080701 custodian + custom port
20080629 oleg metaprogramming
is interpretation really different?
lambda: why names?
20080627 point-free style and monads
20080626 Backus Turing Awared Lecture
chip bootstrap and monitor protocol
rewrite semantics
2 stage semantics
20080625 them stacks
Automatic instantiation
Swapping the two stacks : using just rewrite primitives?
code registration
Joy and rewriting
20080624 multi-stage programming
interactive compilation
target mode / simulator
playing with generators
booting the monitor
20080623 DSP language
got ihex
enumerators vs. cursors
comprehensions + delimited control
20080621 Parsing combinators.
avoiding O(N^2)
binary data objects
terminology cleanup
20080620 live interaction language
the meta namespace
3 different languages
live parsing words
20080619 data types + HOF
dictionary / namespace
lazy-connect: book vs. conversation
interaction code
back to fixing bugs
doubts about compilation
20080618 code transformations
eliminating intermediates in a concatenative language
about deforestation
20080617 apology
wandering into confusion
20080616 preparing for state shuffling
more input
20080615 partial evaluation of higher order functions
Combining Forms and Higher Order Macros
Purrr control primitives
for .. next
data flow + aspects
array comprehensions
dataflow language
The compiler dictionary structure.
20080614 Don't step on composition.
machine code org
20080613 Toplevel vs. module namespaces
words and chains
20080612 comma
library fallback
Compiler Code Hierarchy
compiler state operations
20080611 org
some slogans..
error reporting
serialization for incremental dev
20080610 meta
local variables
compiling monitor
20080609 new parser driver
fixing load
enough dabbling
base language for simulator description
coming out
base semantics
representing DAGs
strategic overview
monads and computation
concatenative dataflow language
20080608 about that stack
new names
20080607 basic
comping purrr to C
require + toplevel
20080606 command line
Array Processing
20080605 The Dataflow Language
20080603 fixing forth instantiation
20080602 namespace woes
20080601 partial evaluation literature
forth syntax / code instantiation
nobody uses frameworks
rethinking code instantiation
module system
20080531 fix it later?
20080530 Forth syntax, philosophical approach
syntax parameters
the parser again
20080528 rethinking forth parsing
20080527 embedding s-expressions in Forth code
macro instantiation is memoization
parser idea
parser cleanup
20080524 More standard forth syntax
20080523 Single assignment base language
Explicit instantiation and macro assignment.
namespaces and parameterization
redefining names
Community bootstrap
introduction documentation
more juice
20080522 no more juice
another bug in redefine
another layer?
20080521 hooks / late binding and kernel modularity
20080520 bored
constants and the 'parameter' word
use of monads in dsl implementation
strict/lazy and macros
20080519 next
assembler directives
instantiate left-over macros
code annotations
20080518 i need this to be done
quoted macros (the 'address' word)
jump tables
org again
Labels and code
delimited control again
org again
20080517 implementing org using new datastructures
Jump chaining
conditional assembly
implementing 'exit' chunk splitting
redefining words + compiler build log.
20080516 compiler state update
labels and multiple entry points
the Forth parser
20080515 labels
org and fallthrough
20080513 org (non-declarative code)
load vs. require
electronics engineers should learn scheme
20080512 gpasm / mpasm expression syntax
20080511 external tool interface
purrr compile time expressions
target expression language (TEL)
inheritance for state threading
documentation + presentation
20080509 assembler expression language
peephole optimizer
concatenative family (Cat language)
20080508 strict vs lazy
loop bodies and delimited control
simulator generator + specification
metaprogramming in the real world
20080507 base machine: real or virtual
simulator problem definition: generalized interaction mode
machine model / partial evaluation and state management
namespace stuff
wire protocol
simulator and partial evaluation
20080501 next action
20080430 brood is
20080429 shift / reset and for .. next ?
structure types and inheritance
struct macros
20080428 practical mexit
is it possible to implement mexit as a parameter?
simplified sequencer
destructive assignments
next try
20080426 giving up?
20080425 in words: mexit
weird bug
better abstraction
closed or open?
state extensions through shift/reset
20080424 flashforth
20080422 repl during compilation
20080421 string -> language
spread the word
20080419 graphs and FP
20080418 serialization
tools + check
composable continuations
for .. next
compiling the monitor code
new name for purrr
scat progress
parsing C
cps forth
20080416 compiler with breakpoints
multiple compilation paths + memoization
20080415 shift/reset breakpoint draft
20080412 automatic lifting
state.ss / 2stack
reset / shift
20080411 broken functional compiler
struct matcher
20080410 lifting with shift
hiding more stuff in 'data'
composable continuations
conditional jumps
meta eval annotation
mature optimizer
20080409 static vs. dynamic
conditional jumps -> more static assembly rep
words vs macros
multiple compiler passes
assembler bugs
outstanding issues
20080408 .f -> .bin
relative addressing
more assembler
20080407 assembler
optional library code
quoting and meta-code
20080406 the assembler
compiler's NEXT
20080404 poke
beautiful vs. interesting
module instances
what is an extension?
simplifying ns-tx
20080403 uneasy feeling
every macro a parameter?
standardizing interface names
20080402 parameters
purr18 / redefine
20080401 collecting words / incremental compilation.
time to start porting brood
interpolation in ellipsis
20080331 local variables
eliminating the meta language
exit: jump to end
20080329 hindsight
20080327 semicolon
variables again
control structures / contitional jump
dependencies between subprojects
duplicate module instances
forth-tx.ss and macro-lang.ss
20080326 delimited words
name generating words
pattern matcher
splitting scat and forth
20080325 onward
syntax-case implementation
calling transformers directly
the ':' macro
basic structure
20080324 dictionary serialization
lexical syntax annotation
dictionary update
20080323 what is dict?
not currently transforming
syntax: going further
20080322 what is compilation of forth words?
incremental compilation
20080321 forth rep
20080320 definitions
code structure: line or graph?
20080319 forth / macro mode
parsing words
from here
the scat machine model
20080318 dynamic trick
sidestepping the problem
20080317 lifting applicators
20080316 run
typed writer monad
lexical tricks
20080315 quoted programs
the design choices
on with the real work
20080314 carefully tuned api for the compiler
what's in a stx object?
20080313 module path
defining names from macro
20080312 the problem
20080311 more confusion
20080310 getting at the names..
20080309 start from scratch
20080308 modules
20080306 state syntax
language names
20080305 snarfing
for-template and racket/base
20080229 scat without ns
utilities = language ?
BROOD-5: initial move from BROOD-4
20080320 scat ready
20080305 parameterized transformer
20080303 language tower
module namespaces
20080301 eval vs. require
20080228 roadmap
continuation marks
20080226 delimited continuations
20080222 call by need
20080221 expression problem
20080219 plt scheme study
20080215 eliminating the state dialect
big changes
porting to mz v4
20080212 moving more code to scheme in tethered.ss
20080211 more fixes
intermezzo -> snot + interrupt
20080210 state management / the point of prj>
20080209 breaking macro storage
pragmatics of macro namespaces
20080208 stand-alone Forth
CATkit 2
overall design changes
20080206 future CATkit
20080203 reflection
20080202 name change
20080201 macros in dictionary
20080131 caching an association list
declarative namespace + cached linear dictionary
target name space unification
possible cleanups
weird @syntax-case problem
moving to stx objects
20080103 next?
20080102 declaration mode
20080101 rethinking forth-lex.ss
regular expressions
20071223 regular grammar
syntax cleanups
20071218 read-syntax
20071217 inspecting macro output
20071216 future dev
static composition and extension
extensible interactive parsers
interactive mode
20071215 simplex LEDs
20071214 meshy presentation -- technical
meshy finished?
partial reduction
20071213 macro code concatenation
eForth / tail recursion + concatenative VM
dtc remarks
signed/unsigned comparisons
dtc primitives
20071212 then opti
conditional optimization
sane conditionals
incremental static binding
mzscheme slow text
TODO list cleanup
project scheme extensions
20071211 rx/tx interference
more state machines
driving led
dsp language
20071210 RGB led
dtc forth
20071209 local names
krikit -> reflections on Forth and DSP
emergency solution: AM
20071208 lock problems on transition
generic lowpass filters
more questions
first packets: pll and reversals
symbol synchronization
synchronization to modulated carrier
20071207 the problem with the frequency offset
discrete control systems
PLL analysis
simplified PLL
20071206 too much carrier drift
1/8 or 1/4 frequency filter?
20071205 weird LPF output
20071204 costas loop
double notation
better debugging tools
data filter implementation
AM vs PM
20071203 data filter coefficient
triangular window
recording sound
20071202 phase synchronization
matched filter
signal rates revisited
20071201 multiplication again
implementing the filter loop : complex-fir.f
20071130 drop dup
math routines
20071129 direct threaded forth
20071124 got the first carrier on the mic amp
crap.. transistor won't switch off
20071122 the circuit again
standard 16 bit forth
20071121 krikit pins
problem chips
20071120 ditch E2 ?
krikit todo
20071119 shopping
amplifier noise
20071117 fake chaos
20071115 new sheepsint default app
20071112 building the first krikit boards
amp notes
20071111 E2 next
20071110 roadmap
so why not use AM?
BPSK synchronization
transmission bandwidth
a single port for debugging
20071109 more modem design decisions
20071108 RS next order
poke & precompiled loops
how much amplification?
20071107 e2 hub
low impedance signal source
sheep transients
asm rewrite
20071106 redefine
macros and procedure dictionary
20071105 polling E2 interpreter
krikit board design decisions
concatenative introduction email
20071104 embedded programming in 2007
no middle road
20071103 roadmap
separate compilation + name spaces
boot protocol changed
20071102 e2 + interpreter
e2 debugging
instantiating abstract objects
20071101 higher order macros
20071031 name spaces and objects
shopping for opamps
comparators and square waves
a more traditional approach
relaxation problem
20071030 here kitty
fixing the assembler
finite fields
parsing again
the big questions
20071029 hub interface
urgent stuff
about named macro arguments
intermezzo: macro vs. return stack
strong 1
20071028 slave on krikit
eliminating the pullup resistor
comm on catkit
nasty sub bug?
20071027 sheepsint urgent todo
CATkit/krikit debug board
1-wire revisited
hub board
20071026 FM sheep
I2C comm
0= hack
20071025 move
multiple exit points
implementing lambda
20071024 lambda
20071023 locals
locals for macros?
problem in macros defined in forth syntax: quote doesn't work properly
generic functions
20071021 hierarchical time
dynamic words
20071020 the 'i' stack
hierarchical time
re-inventing C++
todo today
message passing interface
20071019 hardware prototyping
20071018 error reporting
forth translation
macro nesting
20071017 PIC write protect
operations on dictionaries
this is a simultaneous fix/todo log for the previous entry
practical stuff : starting a new project
20071015 quoting macros
writing lisp code in emacs
20071014 new ideas from doc
removed from purrr.tex
20071013 the purrr slogan
20071012 quoting macros
debug bus
notes remarks
train notes about syntax, semantics and metaprogramming
Purrr semantics
20071011 no apology!
20071008 self programming 5V
8 bit unsigned mix -> complex 16/24 bit acc
network debugging + pic shopping
frequency decoding
20071006 unsigned demodulator
20071002 type signatures from pattern matching macros
direct threaded forth
20071001 i need closures
purrr reference documentation
structures for music
20070930 misc improvements
deleted from brood.tex
parsing and printing
upload speed
20070929 storing application macros in state file
forth preprocessing
20070928 services
product vision statement
macro cache
20070927 prj.ss
ramp up to purely functional macros
using the ICD2 pins.
boot code
20070926 todo list
capacitance to digital
assembler optimizations / corrections
20070925 quasiquote
core syntax
boot code and incremental upload
state mud
20070924 error reporting
new bootloader fixes
20070923 purrr manual questions + necessary fixes
20070922 work to do
20070920 message passing
parser-tools lexer
20070918 pic network
algebraic data types
20070917 Y combinator
linear structures, variables and cycles
20070916 brood paper
20070915 sticking to forth as basis
20070912 bored
20070907 macro mode
20070906 parser rewrite
linear parser begin
linear parser
20070905 monads and map
on lazy lists
20070902 lazy lists
block structure
language levels
20070901 XY and stack/queue
partial application vs. curry
20070831 linear
stacks and continuations
20070829 curry-howard
compositional and?
20070828 hash consing
20070829 Haskell
20070828 ANS Forth - poke - PF
different primitives
tree rotations
20070827 legal permutations
binary trees
linear memory management
closures & stacks
20070826 state monad
20070825 for-each is left fold
kat monads
monads in scheme
monads in Joy
fully declarative and compositional
paper again..
environment and stack
20070824 so.. what's he most important thing now?
i hate it when this happens
a day in bruges
20070822 set & predicate
phase separation
real compositional language?
monoids and stacks
20070820 brood.tex
distributed programming
no values
20070819 side-effect free macros
cleaning up interaction
eliminating global path variable
dynamic updates and functional programming
phase separation
no phase separation
20070818 state
and so on..
20070817 source annotation
because i can
20070816 if i go static
pff... done coding..
the royal DIP
name mangling
override semantics
compilation syntax
assembler cleanup
literal pattern matching
separate compilation
brood 4
produced first monitor.hex
20070815 predicates->parsers
better error reporting
mission accomplished
20070814 running into #%app trouble again
long run times
default semantics
quoting parsers
20070813 name space trick doesnt work
lazy data structures
20070812 next: namespace
20070811 wordlist search path
20070810 cat name space organisation
pattern transformer extensions
20070809 lexical quoted
symbolic macro names
CPS macros are fun
hygiene and the rewrite-patterns macro
20070808 macro.ss and literal + compile
things that need fixing
20070807 program quoting and lifting
state lifting works
anonymous macros
20070806 mzscheme things to look into
20070805 porting
and beyond
20070803 Conclusion
list operations on code
macro weirdness
base functionality working
20070802 weird macro bug
lot of work
namespace again
cat and #%top / lexical variables?
20070801 got snot working async
20070731 compile time hash
20070727 2 stores
macros really are better
where to store the functions?
control structures
macro expansion
separating syntax from semantics
20070726 the macro way..
20070724 really on top of scheme
BROOD 4 takeoff
20070723 callout
name spaces
new stuff
20070719 the boot block
get off that lazy ass
20070717 human naming nature
20070716 PSK31 and meshing
filter bank on PIC18
boost converter hack
20070711 noise as sync source
20070710 nand synth
macros and cat
noise as osc1
20070706 metaprogramming
20070704 bootsector
AD conversion
transient controller
20070703 fix macro loading
20070701 control timer
control slides
unified namespace and rolling back
20070629 sheepsint core
problem with dup and literals
20070628 loading dtc forth
sheepsint 8 bit interface
vm optimization
assembler bug
20070627 dtc control primitives
bytes or words
updated language path
i want it all
language path
vm compilation: one word to change semantics of parsed code?
multiple passes: pseudo assembly language
20070625 literals : save
vm words and literals
literal stack + compilation stack
parser words
writer macros
compilation stack and word names
20070623 vm macros
20070622 memory model
sheepsint next
forth vs DSP
20070621 multiplication
read/write pattern
20070620 terminal.f
mini module system
application control flow
text interface
sheepsint core todo
20070619 bank select
20070612 forthtv pro
20070606 boot config
20070605 faith, evolution and programming languages
20070603 snotification
monad stuff
bug fixing day
20070528 cache
literal stack
quoting symbols
meta workshop notes
20070526 johannes config bits
20070524 bouncing ball physics
something wrong with XINST
20070523 ram copy
20070522 different macro implementation
the a & f registers
usb debugging
20070521 defer
grounding problems
parsing macros
20070520 back to thinking about the literal stack..
back to debugging -- deferred words
partial evaluation revisited
color macros
late binding
stamp back
20070513 stamp dead
jump bits
state machine or task?
some weird bug with forth parsing
20070512 usb descriptors again
conditionals < and >=
usb device descriptors : usb.ss
20070507 usb debugging
20070506 getting to working usb
20070428 project directory
20070426 fresh install
20070425 erepl
20070423 emacs integration
back in the solder lab
20070405 nested scope
name spaces
persistence & late binding
20070404 alan kay name dropping
from forth to PF
back to sheepsint
aspect oriented programming
20070403 accumulation / values
scheme syntax
inner loop cont
20070401 the inner loop
separation of concerns and exponential growth
20070331 lexical loop addresses
monads and tree accumulation
20070330 thinking error
grid processing
compiler structure
extendin cgen name spaces
20070329 back
downward funargs
20070328 poke
20070327 multimethods
the road to PF
i need something new
20070326 debugging tools
20070325 persistent store
so what is badnop?
20070323 double postpone
macro namespace
modularizing cat
cat as plt language?
compiler compiler
partial evaluator
20070322 modeless interface
hands on pic hacking
20070320 back to dtc
distributed system
language in the morning
a safe language?
where to go from here?
20070318 open files
lazy eval
20070317 parsing
delayed eval in assembler
added robust reloading + logging
20070316 added pattern debug
20070315 16bit threaded forth compiler/interpreter
delayed evaluation forced in assembler
20070314 TODO
20070313 reflection
20070312 platforms
20070309 delayed list interpretation
20070308 essentials
20070305 reflection
20070303 is code composite? run or execute? yin or yang?
standalone forth
20070302 linear languages
direct threading
linear CAT vm
a new PF
no more quotation
20070228 compilation is caching
20070227 linear lists -> PF
analog -> digital
20070226 variables
20070225 alan kay oopsla lecture and stuff
time to do some work
call conventions : de-scheming
state monad
toplevel workflow
20070224 16bit code
syntax macros
interpret mode
20070222 higher order pattern matching
monads again
20070221 getting tired
monitor progress
20070220 monitor update
next actions
dynamic code
20070219 another day over
literals again
20070218 byte continuations
the app
fixing amb
passing state to quotations
time to upload
20070217 tip
reverse accumulate
intelligent then
literal opti
optimization choices
20070216 optimizations - need explicit unlit
forth loading and machine memory buffer
parse time macro definition
more parsing
20070215 ditching interpret mode
forth parser - different pattern
parse extensions (borked)
new badnop control flow
parsing words
20070214 forth lexer + parsing words
bit instructions
backtracking -> an argument against dictionaries as sets
20070213 had this idea
lazy lists
misc ramblings
20070212 bored
next actions
stateful macros
20070211 merging dictionaries
more PIC18 compiler
20070210 PIC18 compiler
asm/dasm cleanup
20070209 values
re re re
lambda again
20070208 monads
lambda again
20070207 assembler working
great success!
screen scraping
lifting problem
20070206 assembler
interpreter cleanup
((dup cons) dup cons)
20070205 tired
remaining problems
pattern language
20070204 syntax transformation
compiling patterns
pattern matching
intermediate language
cat snarf
20070203 now for the meta stuff
more lifting
compositional languages suck
rewrite macros
bind and stuff
dynamic code
macro semantics
do i really need lambda?
20070202 jit compiler + parser
purely compositional approach (joy)
20070129 rewriting
20070128 declarative peephole optimizations
CAT design