Skip to content

Instantly share code, notes, and snippets.

Avatar

Sam Tobin-Hochstadt samth

View GitHub Profile
View synth.rkt
#lang rosette/safe
(require rosette/lib/synthax) ; Require the sketching library.
(define-grammar (bsl-nums x) ; Grammar of int32 expressions over two inputs:
[expr
(choose x (?? integer?) #;(/ (?? integer?) (?? integer?)) ; <expr> := x | y | <32-bit integer constant> |
((bop) (expr) (expr)) ; (<bop> <expr> <expr>) |
((uop) (expr)))] ; (<uop> <expr>)
View compile-time.rkt
#lang racket
(require (for-meta 2 racket/base racket/file))
(define-syntax (define-compile-time-bytes stx)
(syntax-case stx ()
[(_ id f)
#`(begin
(begin-for-syntax
(define-syntax (gen _)
@samth
samth / doc.md
Created April 19, 2022 18:08
annotated Racket disassembly
View doc.md

Annotations by @mflatt.

For the function (define (add m n) (+ m n)), in Aarch64:

 0: ff0a00f1         (subs xzr x23 #x2)          ; are there two arguments?
 4: 01040054         (b.ne (+ pc #x80)) ; => 84  ; jump to slow path if not
 8: 1e0001aa         (orr x30 x0 x1)             ; "or" to combine mask bits
 c: df0b40f2         (ands xzr x30 #x7)          ; zero low bits => both are fixnums
10: a1000054         (b.ne (+ pc #x14)) ; => 24  ; jump to slow path if not
View covid-data.rkt
#lang racket
(require sawzall data-frame json graphite racket/runtime-path)
(require pict)
(require (only-in plot date-ticks) gregor threading)
(define-runtime-path here ".")
(define fips-codes (delay (~> (df-read/csv (build-path here "state_and_county_fips_master.csv"))
(where (state) (equal? state "IN")))))
View serve.rhm
#lang rhombus
// Note: needs comment-out support in DrR
// Note: we should start building up this library now
import:
rhombus/macro: no_prefix
expr.rule '(loop: $body ...):
'(begin:
fun lp():
View bundle.js
'use strict';
function _get(target, property, receiver) { if (typeof Reflect !== "undefined" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(receiver); } return desc.value; }; } return _get(target, property, receiver || target); }
function _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; }
function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
View bundle.js
'use strict';
function _get(target, property, receiver) { if (typeof Reflect !== "undefined" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(receiver); } return desc.value; }; } return _get(target, property, receiver || target); }
function _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; }
function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
View Aug-30-21-075230.csv
Position M_D_YYYY TIME[HH:mm:ss] CO2[ppm] Temp[F] RH[%]
1 8/30/2021 07:52:05 702 75.8 62.1
2 8/30/2021 07:52:10 701 75.8 61.9
3 8/30/2021 07:52:15 701 75.9 61.7
4 8/30/2021 07:52:20 701 75.9 61.6
5 8/30/2021 07:52:25 699 75.9 61.7
6 8/30/2021 07:52:30 691 75.9 61.7
7 8/30/2021 07:52:35 619 75.9 61.6
8 8/30/2021 07:52:40 620 76.0 61.4
9 8/30/2021 07:52:45 623 76.0 61.3
@samth
samth / http-client.rkt
Created May 31, 2012 15:40
A simple http client in Racket by p4bl0
View http-client.rkt
#lang racket/base
;; By http://www.reddit.com/user/p4bl0 at http://paste.fulltxt.net/FZ4-HeULc
;; `racket -il readline -t http-client.rkt`
;; then you can use (M "/path/...") where M can be get, post, put, delete.
;; When authenticated, you can logout using (logout).
;; The host and port can be changed using set!.
(require racket/tcp