Skip to content

Instantly share code, notes, and snippets.

View waywardmonkeys's full-sized avatar

Bruce Mitchener waywardmonkeys

View GitHub Profile

Keybase proof

I hereby claim:

  • I am waywardmonkeys on github.
  • I am bmitchener (https://keybase.io/bmitchener) on keybase.
  • I have a public key ASA2knFEGp-JKEzYbeYnG-fIAlZ_fPia7MHMtZ3QTu_fdQo

To claim this, I am signing this object:

@waywardmonkeys
waywardmonkeys / notes.md
Last active February 6, 2016 05:17
Front end for Network Spaces

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

@waywardmonkeys
waywardmonkeys / enumeration.dylan
Created December 5, 2015 04:27
enumeration in 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 June 8, 2015 08:12
First shot at some SDL2 bindings
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 14:03
fib in Dylan and the LLVM backend
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 April 5, 2015 14:58
Factorial in Dylan using singleton types
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 August 29, 2015 14:16
Some LLVM output
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
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
@waywardmonkeys
waywardmonkeys / int.dylan
Created September 29, 2014 03:57
inliner bug
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 April 28, 2014 01:50
Multiline text using a parser expansion
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>)