Skip to content

Instantly share code, notes, and snippets.

@splinterofchaos
splinterofchaos / Makefile
Created October 6, 2014 21:13
Uv stdout and stderr
a.out : err.c
gcc err.c
@splinterofchaos
splinterofchaos / log
Created August 30, 2014 04:54
neovim log on segfault
2014/08/30 00:51:15 [debug @ requeue_deferred_events:209] 7437 - Number of deferred events: 0
2014/08/30 00:51:15 [debug @ requeue_deferred_events:219] 7437 - Number of deferred events: 0
2014/08/30 00:51:15 [debug @ process_from:185] 7437 - Processed 0 events
2014/08/30 00:51:15 [debug @ loop:237] 7437 - Enter event loop
2014/08/30 00:51:15 [debug @ read_cb:271] 7437 - Received 1 bytes from RStream(address: 0x277dc10, source: 0x277dc10)
2014/08/30 00:51:15 [debug @ loop:239] 7437 - Exit event loop
2014/08/30 00:51:15 [debug @ process_from:185] 7437 - Processed 0 events
2014/08/30 00:51:15 [debug @ requeue_deferred_events:209] 7437 - Number of deferred events: 1
2014/08/30 00:51:15 [debug @ requeue_deferred_events:216] 7437 - Re-queueing event
2014/08/30 00:51:15 [debug @ requeue_deferred_events:219] 7437 - Number of deferred events: 1
@splinterofchaos
splinterofchaos / clang.s
Last active August 29, 2015 14:05
concat_fnames assembly
movl %edx, %r15d
movq %rsi, %r14
movq %rdi, %rbp
# kill: RDI<def> RBP<kill>
callq strlen
movq %rax, %rbx
movq %r14, %rdi
callq strlen
leaq 3(%rbx,%rax), %rdi
callq xmalloc
@splinterofchaos
splinterofchaos / nvim -c ':cd .. | :fin vim.h | :cd tmp | :q!'
Created August 8, 2014 00:02
Profiling of :find from the /tmp directory.
Flat profile:
Each sample counts as 0.01 seconds.
% cumulative self self total
time seconds seconds calls s/call s/call name
83.86 66.13 66.13 42180 0.00 0.00 ff_check_visited
7.16 71.78 5.65 776266823 0.00 0.00 os_file_id_equal
2.05 73.40 1.62 6152021 0.00 0.00 addstate
1.22 74.36 0.96 421636 0.00 0.00 nfa_regmatch
0.82 75.01 0.65 42291 0.00 0.00 os_get_file_id
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} --coverage")
set(CMAKE_EXE_LINKER_FLAGS "${SMAKE_EXE_LINKER_FLAGS} --coverage")
set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} --coverage")
add_library(Alloc alloc.c)
add_executable(Main, main.c)
target_link_libraries(Main, Alloc)
@splinterofchaos
splinterofchaos / cargs.hs
Created March 20, 2014 15:31
Comand line arguments as a StateT.
{-# LANGUAGE TemplateHaskell, Rank2Types, NoMonomorphismRestriction #-}
import Data.List
import Data.Maybe
import Data.Monoid
import Control.Monad.State
import Control.Monad.Trans.State (state)
import Control.Monad.Identity
import Control.Monad
import Control.Monad.Writer
import Control.Applicative
@splinterofchaos
splinterofchaos / main.cpp
Created February 4, 2014 19:48
clang 3.4 tests
#include <iostream>
#include <vector>
#include <list>
#include <algorithm>
#include <string>
#include <cmath>
#include <future>
diff --git a/include/ftl/function.h b/include/ftl/function.h
index 1911efa..c9ccc54 100644
--- a/include/ftl/function.h
+++ b/include/ftl/function.h
@@ -350,13 +350,30 @@ namespace ftl {
template<typename R, typename P1, typename P2, typename...Ps>
struct curried<R,P1,P2,Ps...> {
-
- function<R(P2,Ps...)> operator() (P1 p1) const {
diff --git a/include/ftl/function.h b/include/ftl/function.h
index 1911efa..605db4f 100644
--- a/include/ftl/function.h
+++ b/include/ftl/function.h
@@ -331,6 +331,7 @@ namespace ftl {
/* TODO: Make currying work even when we give N > 1, N < Nparams
* arguments to a function of Nparams parameters.
*/
+
template<typename...>
@splinterofchaos
splinterofchaos / nary.cpp
Created January 23, 2013 14:21
N-ary curry.
#include <iostream>
#include <utility>
using namespace std;
template< class F, class X >
struct Part {
F f = F();
X x;