Skip to content

Instantly share code, notes, and snippets.

View osa1's full-sized avatar

Ömer Sinan Ağacan osa1

View GitHub Profile
@osa1
osa1 / dataflow.hs
Last active October 10, 2016 19:41
monotone framework
{-# OPTIONS_GHC -Wall #-}
{-# LANGUAGE BangPatterns #-}
{-# LANGUAGE DeriveAnyClass #-}
{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE ScopedTypeVariables #-}
{-# LANGUAGE ViewPatterns #-}
-- | Definition of a lattice, as described in section 4.2.
@osa1
osa1 / lib.rs
Last active September 30, 2016 15:56
mod macros;
#[macro_use]
pub mod reply;
#[cfg(test)]
mod tests {
#[test]
fn it_works() {
}
@osa1
osa1 / demo.c
Last active March 26, 2025 19:07
ncurses alt, ctrl etc. key events
// It turns out people don't really know how to handle Alt+ch, or F[1, 12] keys
// etc. in ncurses apps. Even StackOverflow is full of wrong answers and ideas.
// The key idea is to skip ncurses' key handling and read stuff from the stdin
// buffer manually. Here's a demo. Run this and start typing. ESC to exit.
//
// To compile:
//
// $ gcc demo.c -o demo -lncurses -std=gnu11
#include <ncurses.h>
@osa1
osa1 / ac7541b
Last active August 8, 2016 09:37
Glasgow Haskell Compiler, Version 8.1.20160805, stage 2 booted by GHC version 8.0.1
Using binary package database: /home/omer/haskell/ghc_2/inplace/lib/package.conf.d/package.cache
loading package database /home/omer/haskell/ghc_2/inplace/lib/package.conf.d
wired-in package ghc-prim mapped to ghc-prim-0.5.0.0
wired-in package integer-gmp mapped to integer-gmp-1.0.0.1
wired-in package base mapped to base-4.9.0.0
wired-in package rts mapped to rts
wired-in package template-haskell mapped to template-haskell-2.11.0.0
wired-in package ghc mapped to ghc-8.1
wired-in package dph-seq not found.
typedef struct {
StgInt closure_type_off;
StgInt closure_desc_off;
} StgProfInfo;
extern StgWord16 closure_flags[];
typedef struct {
StgWord size;
StgWord bitmap[];
==================== STG syntax: ====================
2016-06-06 08:13:50.663576479 UTC
Main.$WCons [InlPrag=INLINE]
:: forall a_art. a_art -> Main.List a_art -> Main.List a_art
[GblId[DataConWrapper],
Arity=2,
Caf=NoCafRefs,
Str=DmdType <S,U><S,U>m1,
find . -iname "*.o" | xargs nm -A | grep -E "*cvA3_info*"
[section ""data" . $wsum_closure" {
$wsum_closure:
const $wsum_info;
},
$wsum_entry() // [R2]
{ info_tbl: [(cMo,
label: block_cMo_info
rep:StackRep []),
(cMv,
label: $wsum_info
// When highlighting nicks in messages, we search words in the `nicks` set. To
// be able to highlight substrings, we need offsets of chars, but
// `SplitWhitespace` doesn't provide that. Also, our separators are actually a
// set of characters, like {'<', '(', etc} instead of a fixed character or
// whitespace.
struct WordIdxs<'s> {
/// The whole thing, not a shrinking slice.
str : &'s str,
pub struct TrieNode {
vec : Vec<(char, Box<TrieNode>)>,
word : bool,
}
impl TrieNode {
pub fn new() -> TrieNode {
TrieNode {
vec: vec![],
word: false,