Skip to content

Instantly share code, notes, and snippets.

@samrat
samrat / gist:84fdb2ffb683a9d0bc50b1b41ab265c6
Last active March 5, 2019 03:34 — forked from jdh30/gist:bc1794232ac584db9baa
List-based n-queens solver with mark-sweep GC written in C++
#include <vector>
#include <iostream>
#include <stdio.h>
#include <tchar.h>
#include <windows.h>
#include "Allocator.h"
#include "MarkSweep.h"
#define OPTIMIZED
#define SHADOWSTACK
@samrat
samrat / gist:fe9ec27ec1f9e3640632b542d7c5ff7a
Created July 21, 2017 02:40
Tiva C launchpad (GDB + OpenOCD)
Start OpenOCD in a separate terminal:
openocd -f /usr/share/openocd/scripts/board/ek-lm4f120xl.cfg
$ cat gdb.cmd
target remote localhost:3333
set arm abi APCS
monitor reset halt
file main.elf
load
@samrat
samrat / hl.sh
Last active October 12, 2018 10:18
Using hledger with an Enchive encrypted file
#!/bin/bash
JOURNAL_DIR=~/code/ledger
JOURNAL_PATH=${JOURNAL_DIR}/hledger.journal
ENC_JOURNAL_PATH=${JOURNAL_PATH}.enchive
echo "Decrypting journal file..."
enchive extract $ENC_JOURNAL_PATH
digest_before=$(md5 ${JOURNAL_PATH})
@samrat
samrat / trapezium.py
Created August 27, 2011 07:40
Definite integration using the trapezium rule
from __future__ import division
def trapezium(f, n, a, b):
'''
f- function [f(x)]
n- number of trapeziums
a- lower limit
b- upper limit
Returns definite integral of f(x) from range a to b
'''

Keybase proof

I hereby claim:

  • I am samrat on github.
  • I am samrat (https://keybase.io/samrat) on keybase.
  • I have a public key ASDAdhJJ4_BQOj6cV92Mh7yINIEZSUwasgwdGKfkCXh0SAo

To claim this, I am signing this object:

;; ->>HEADER<<- opcode: QUERY, rcode: NOERROR, id: 59794
;; flags: qr rd ra ; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;; smingh.org. IN A
;; ANSWER SECTION:
smingh.org. 10523 IN A 104.198.14.52
;; AUTHORITY SECTION:
rm -f myutop.top
ocamlbuild -clean
ocamlbuild -r -use-ocamlfind -tag thread -package extlib,utop -I src/ myutop.top
ocamlfind ocamldep -package extlib,utop -modules src/instr.ml > src/instr.ml.depends
ocamlfind ocamldep -package extlib,utop -modules src/util.ml > src/util.ml.depends
ocamlfind ocamldep -package extlib,utop -modules src/qbe_lexer.mli > src/qbe_lexer.mli.depends
ocamlfind ocamlc -c -thread -package extlib,utop -I src -o src/qbe_lexer.cmi src/qbe_lexer.mli
ocamlfind ocamldep -package extlib,utop -modules src/qbe_lexer.ml > src/qbe_lexer.ml.depends
ocamlfind ocamlc -c -thread -package extlib,utop -I src -o src/instr.cmo src/instr.ml
ocamlfind ocamlc -c -thread -package extlib,utop -I src -o src/util.cmo src/util.ml
function d $foo(d %m) {
@start
%v3 =d div d_4.2, %m
ret %v3
}
function w $foo(w %x) {
@start
jnz %x, @cond, @end
@cond
%B0 =l alloc4 8
%B1 =l add %B0, 4
storew 12, %B0
storew 111, %B1
%v5 =w add 1, %x
ret %B0
@samrat
samrat / etc-linux.c.patch
Last active August 18, 2016 10:04
Building lcc on x64 Linux
diff --git a/etc/linux.c b/etc/linux.c
index 5df6059..f039d69 100755
--- a/etc/linux.c
+++ b/etc/linux.c
@@ -17,18 +17,18 @@ char *cpp[] = { LCCDIR "gcc/cpp",
"$1", "$2", "$3", 0 };
char *include[] = {"-I" LCCDIR "include", "-I" LCCDIR "gcc/include", "-I/usr/include", 0 };
char *com[] = {LCCDIR "rcc", "-target=x86/linux", "$1", "$2", "$3", 0 };
-char *as[] = { "/usr/bin/as", "-o", "$3", "$1", "$2", 0 };
+char *as[] = { "/usr/bin/as", "--32", "-o", "$3", "$1", "$2", 0 };