Skip to content

Instantly share code, notes, and snippets.

Avatar

Bruce Mitchener waywardmonkeys

View GitHub Profile
@waywardmonkeys
waywardmonkeys / notes.md
Last active Feb 6, 2016
Front end for Network Spaces
View notes.md

A front-end UI for network spaces

I think a lot about what I'd like to see in a front-end for network spaces and related applications.

I would like to have a user interface that permits mixing a command line interface with a GUI. One example of this from the past is that of CLIM, the Common Lisp Interface Manager and the Symbolics Dynamic Windows framework, which was a predecessor to CLIM.

This is not intended to be a completely general application framework (at least at the outset) or to create any sort of user interface. At the outset, it will be limited intentionally to a class of applications and interface styles.

CLIM

View enumeration.dylan
Module: posix-sockets
Synopsis: Auto-generated bindings for the POSIX sockets API.
Author: Bruce Mitchener, Jr.
Copyright: See LICENSE file in this distribution.
define primary class <enumerated-value> (<object>)
constant slot enumerated-value :: <integer>,
required-init-keyword: value:;
constant slot enumerated-name :: <string>,
required-init-keyword: name:;
@waywardmonkeys
waywardmonkeys / calvino-sdl2.dylan
Created Jun 8, 2015
First shot at some SDL2 bindings
View calvino-sdl2.dylan
module: calvino-sdl2
synopsis: bindings for the SDL2 library
author: Bruce Mitchener, Jr.
copyright: See LICENSE file in this distribution.
define constant <uint32-t> = <C-unsigned-int>;
define constant <Uint32> = <uint32-t>;
define inline C-function SDL-Init
@waywardmonkeys
waywardmonkeys / fib.S
Created May 7, 2015
fib in Dylan and the LLVM backend
View fib.S
libfib.dylib`KfibVfibI:
0x100003e40 <+0>: pushq %rbp
0x100003e41 <+1>: movq %rsp, %rbp
0x100003e44 <+4>: pushq %r14
0x100003e46 <+6>: pushq %rbx
0x100003e47 <+7>: movq %rdi, %rbx
0x100003e4a <+10>: cmpq $0x9, %rbx
0x100003e4e <+14>: jl 0x100003e7b ; <+59> at fib.dylan:10
0x100003e50 <+16>: movq %rbx, %rdi
0x100003e53 <+19>: subq $0x4, %rdi
@waywardmonkeys
waywardmonkeys / factorial.dylan
Created Apr 5, 2015
Factorial in Dylan using singleton types
View factorial.dylan
define method factorial (n == 0) 1 end;
define method factorial (n == 1) 1 end;
define method factorial (n)
n * factorial(n - 1)
end;
format-out("%d", factorial(10));
@waywardmonkeys
waywardmonkeys / format.dfm
Last active Aug 29, 2015
Some LLVM output
View format.dfm
METHOD format-to-string (control-string :: <byte-string>, #next next-method, #rest args) => (result :: <byte-string>)
t10 := [METHOD-CALLi ^{<&method> make (singleton(<byte-string>))}(^{<&class> <byte-string>}, ^#[], ^' ', ^32)]
Vt15 := [STACK-VECTOR (^#"contents", t10, ^#"direction", ^#"output")]
*t15(1) := [CONGRUENT-CALLi ^{<&method> <byte-string-stream> constructor (<class>)}(^{<&class> <byte-string-stream>}, Vt15, ^#unbound-slot-value, ^{<&class> <object>}, ^#f, t10)]
t16 := *t15(1) [0]
[METHOD-CALLi ^{<&method> format (<stream>, <byte-string>)}(t16, {{ control-string }}, {{ args }})]
*t14(1) := [METHOD-CALLi ^{<&method> stream-contents (<sequence-stream>)}(t16, ^#[], ^#t)]
*t7(1) := multiple-value-check-type *t14(1) :: ^{<&class> <byte-string>}
return *t7(1)
END
View lb.dylan
batavia:sources bruce (master) $ ./main
batavia:sources bruce (master) $ echo $?
1
batavia:sources bruce (master) $ ./main 2 3 4
batavia:sources bruce (master) $ echo $?
4
batavia:sources bruce (master) $ ls -alt main
-rwxr-xr-x 1 bruce staff 4312 Jan 28 15:33 main
View int.dylan
Module: int
Synopsis:
Author:
Copyright:
define inline function exit(#key s :: one-of(#"a", #"b") = #"a")
let status =
if (s = #"a")
0
elseif (s == #"b")
@waywardmonkeys
waywardmonkeys / foo.dylan
Created Apr 28, 2014
Multiline text using a parser expansion
View foo.dylan
Module: foo
Synopsis:
Author:
Copyright: See LICENSE file in this distribution.
define function text-parser (text :: <string>) => (text :: <string>)
text
end;
define function main (name :: <string>, arguments :: <vector>)
@waywardmonkeys
waywardmonkeys / Makefile
Last active Aug 29, 2015
Embedding Dylan - An example of calling Dylan from C
View Makefile
all: build
.PHONY: build test
LIB_SOURCES = $(wildcard *.dylan) \
embed-dylan.lid
build: $(LIB_SOURCES)
mkdir -p _build/bin
dylan-compiler -build embed-dylan.lid