Skip to content

Instantly share code, notes, and snippets.

@Lovesan
Lovesan / sb-net-core-crash.lisp
Created July 1, 2019 16:12
A test case for the issue of SBCL crashes should it load .Net Core runtime on Linux
;;; This file reproduces tha fact that SBCL crashes
;;; while .Net runtime is loaded
;;; .Net Core SDK must be installed
;;; run the file like 'sbcl --script sb-net-core-crash.lisp'
(defun version-compare (left right)
(labels ((parse (c)
;; Given .Net version naming convention,
;; 3.0.0 is actually greater then 3.0.0-rc1
@Lovesan
Lovesan / get-active-object.lisp
Last active March 7, 2020 01:57
usage of bike and cffi libraries for instantiation of active COM objects
(eval-when (:compile-toplevel :load-toplevel :execute)
(cffi:define-foreign-library oleaut32
(t "oleaut32.dll"))
(cffi:use-foreign-library oleaut32))
(cffi:defcfun ("GetActiveObject"
%get-active-object
:library oleaut32
@Lovesan
Lovesan / call_ec.js
Created March 27, 2020 08:37
call/ec implemented in JS
function call_ec(f) {
var tag = new EvalError('Continuation block no loger exists');
try {
f(function(rv) {
tag.rv = rv;
throw tag;
});
} catch(obj) {
if(obj === tag) {
return tag.rv;
@Lovesan
Lovesan / ffexample.c
Last active June 6, 2020 07:13
FFmpeg-based console audio/video player (e.g. ffplay analogue)
// build like e.g.
// cl.exe /nologo /O2 /I../ffmpeg-3.2.2-win64-lgpl/include /I../SDL2-2.0.5/include /MT ffexample.c SDL2.lib avcodec.lib avdevice.lib avformat.lib avutil.lib swresample.lib swscale.lib /link /libpath:../SDL2-2.0.5/lib/x64 /libpath:../ffmpeg-3.2.2-win64-lgpl/lib
#define __STDC_CONSTANT_MACROS
#ifndef UNICODE
#define UNICODE
#endif
#ifndef _UNICODE
@Lovesan
Lovesan / sehtest.lisp
Created June 6, 2019 15:39
SBCL test for SEH-utilizing C++ or .NET library
(sb-alien:load-shared-object "sehlib.dll")
(sb-alien:define-alien-routine
("catches_fn" catches-fn)
sb-alien:void)
(defun test-seh ()
(handler-case
(progn (catches-fn)
(format *error-output*
(set-macro-character #\→ (lambda (s c)
(declare (ignore s c))
(error "Unexpected '→'")))
(set-macro-character #\λ
(lambda (s c)
(declare (ignore c))
(loop :with arg = (read s t nil t)
:for next = (peek-char t s t nil t)
:until (eql next #\→)
using namespace System.IO;
$ErrorActionPreference = 'Stop'
function VideoToGif{
Param(
[Parameter(Mandatory=$true)][string] $InFile,
[Parameter(Mandatory=$true)][string] $OutFile,
[int]$Width=320,
[int]$Height=-1,
[double]$Start=0.0,
#overall:
#gmp
#mpfr
#mpc
#isl
#binutils
#mingw-w64
#gcc
#zlib (optional, only native)
@Lovesan
Lovesan / simd-pack-single.lisp
Last active March 15, 2022 05:05
SBCL SSE operations on single-float vectors
(in-package #:sb-vm)
(eval-when (:compile-toplevel :load-toplevel :execute)
(defknown %m128+ ((simd-pack single-float) (simd-pack single-float))
(simd-pack single-float)
(movable foldable flushable always-translatable)
:overwrite-fndb-silently t)
(define-vop (%m128+)
@Lovesan
Lovesan / get-commits.sh
Created March 19, 2019 15:12
Get your commits for a repo
#!/bin/bash
set -e
DATE_START=`date +%Y-%m-01`
DATE_END=`date +%Y-%m-%d`
USER_NAME=`git config user.name`
REPO_DIR=`realpath ./`
BRANCH_NAME='origin/master'
if [ -t 0 -a -t 1 ]; then