Skip to content

Instantly share code, notes, and snippets.

@SaitoAtsushi
SaitoAtsushi / cyclone-bootstrap-msys2.patch
Created January 26, 2017 07:03
Patch of cyclone-bootstrap to build on msys2.
diff --git a/Makefile b/Makefile
index 0d31152..d09b1df 100644
--- a/Makefile
+++ b/Makefile
@@ -6,10 +6,16 @@
include Makefile.config
+UNAME = $(shell uname -a)
COBJ = scheme/base scheme/read scheme/write scheme/case-lambda scheme/char scheme/complex scheme/cxr scheme/eval scheme/file scheme/inexact scheme/lazy scheme/load scheme/process-context scheme/time scheme/cyclone/common scheme/cyclone/libraries scheme/cyclone/macros scheme/cyclone/transforms scheme/cyclone/ast scheme/cyclone/cps-optimizations scheme/cyclone/cgen scheme/cyclone/util scheme/cyclone/test scheme/cyclone/pretty-print scheme/cyclone/primitives srfi/1 srfi/2 srfi/9 srfi/18 srfi/27 srfi/69 srfi/106 srfi/111 srfi/113 srfi/117 srfi/128 srfi/132 srfi/133
@SaitoAtsushi
SaitoAtsushi / q6.scm
Last active February 8, 2017 08:17
第25回シェル芸勉強会 Q6 -- UTF-16LE
#!r6rs
;; 第25回シェル芸勉強会 Q6 -- UTF-16LE
;; http://qiita.com/nakataSyunsuke/items/339965853684dd11e755
(import (rnrs)
(rnrs mutable-strings))
(define (transcoded-from-hexstring-port in)
(define temporary (make-string 4))
(define (read-cp)
(let* ((h (get-string-n! in temporary 2 2))
#include <iostream>
#include <cstdint>
class digit_t {
friend std::istream& operator>>(std::istream&, digit_t&);
friend std::ostream& operator<<(std::ostream&, digit_t&);
private:
using value_type = uint_least64_t;
value_type data;
unsigned int check_digit;
@SaitoAtsushi
SaitoAtsushi / makefile
Created January 18, 2018 22:46
ISLISP 処理系 KISS 用の makefile
SRCS := $(wildcard *.c)
OBJS := $(patsubst %.c,%.o,$(SRCS))
DOBJS := $(addprefix debug/,$(OBJS))
POBJS := $(addprefix profile/,$(OBJS))
CC = gcc
CFLAGS = -Wall -O3
LDFLAGS =
LIBS = -lm -lgmp
@SaitoAtsushi
SaitoAtsushi / PKGBUILD
Last active April 9, 2018 04:05
patch of gdbm-1.14 for MinGW
pkgbase=mingw-w64-gdbm
pkgname=("${MINGW_PACKAGE_PREFIX}-gdbm")
pkgver=1.14
pkgrel=1
pkgdesc="GNU database library"
arch=('i686' 'x86_64')
url="https://www.gnu.org/software/gdbm/gdbm.html"
license=('GPL3')
depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs")
makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "make" "patch")
@SaitoAtsushi
SaitoAtsushi / explode.c
Created October 1, 2018 21:09
PHP の explode みたいなやつを C でやってみる遊び。 これの別解を考えてみた。 → https://qiita.com/1000VICKY/items/7456cf7f75b9b34dc3bd
#include <string.h>
#include <stdlib.h>
#include <iso646.h>
#include "explode.h"
static char** helper(char* str, const char* delim, size_t delim_size, size_t depth) {
char* matched_str = strstr(str, delim);
char** result;
if(matched_str) {
@SaitoAtsushi
SaitoAtsushi / makefile
Created October 14, 2018 09:35
プログラミングパズル的なアレ → http://nabetani.sakura.ne.jp/hena/ordf09rotbox/
OBJS = solver.o test.o
f90 : $(OBJS)
$(CXX) $(LDFLAGS) $^ -o $@
$(OBJS): %.o: %.cpp
$(CXX) -c $(CFLAGS) $< -o $@
clean:
@SaitoAtsushi
SaitoAtsushi / bitcount.cpp
Created October 22, 2018 09:18
元記事の趣旨とは違うけど、コンパイル時にテーブル生成をするのをやってみた。 これの件 → https://qiita.com/Kogia_sima/items/f47ea613d5274ab65ead
#include <cstdint>
#include <array>
using bitcount_table_t = std::array<int, 256>;
template<int n>
struct make_bitcount_table_helper {
constexpr static auto bitcount(std::uint8_t x) noexcept -> uint8_t {
return x==1 or x==0 ? x : (x bitand 1) + bitcount(x>>1);
}
@SaitoAtsushi
SaitoAtsushi / average.sls
Created October 30, 2018 15:38
効率的に平均を計算するマクロ
#!r6rs
(library (average)
(export average)
(import (rnrs))
(define (%average . args)
(/ (apply + args)
(length args)))
(define-syntax average
@SaitoAtsushi
SaitoAtsushi / defer.cpp
Created April 2, 2019 06:27
Go の defer っぽいものを C++ でやってみる遊び
#include <functional>
class defer_t {
private:
std::function<void(void)> f;
public:
defer_t(std::function<void(void)> f);
~defer_t(void);
};