Skip to content

Instantly share code, notes, and snippets.

View chessai's full-sized avatar

chessai chessai

View GitHub Profile
this file was empty, this line exists because github complained at me
I am admittedly unsure of how GHC's optimisation benchmarks are currently implemented/carried out, but I feel as though this paper and its findings could be relevant to GHC devs:
http://cis.upenn.edu/~cis501/papers/producing-wrong-data.pdf
Basically, according to this paper, the cache effects of changing where the stack starts based on the number of environment variables are huge for many compiler benchmarks, and adjusting for this effect shows that gcc -O3 is only in actuality 1% faster than gcc -O2.
Some further thoughts, per http://aftermath.rocks/2016/04/11/wrong_data/ :
"The question they looked at was the following: does the compiler’s -O3 optimization flag result in speedups over -O2? This question is investigated in the light of measurement biases caused by two sources: Unix environment size, and linking order.
to the total size of the representation of Unix environment variables (such as PATH, HOME, etc.). Typically, these variables are part of the memory image of each process. The call stack beg
{-# LANGUAGE DataKinds #-}
{-# LANGUAGE DeriveDataTypeable #-}
{-# LANGUAGE DeriveFoldable #-}
{-# LANGUAGE DeriveFunctor #-}
{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE DeriveTraversable #-}
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE GeneralizedNewtypeDeriving #-}
{-# LANGUAGE InstanceSigs #-}
{-# LANGUAGE KindSignatures #-}

These are libraries that I have worked on but not released. Almost all of them are nearly to the point of being ready for release. If I aim for one release a day, I think the quality of releases will be good and maintainable.

wizard

proxy

freq

eigen:
- no statitically checked dimensions
- make this a newtype wrapper, a functor,
so the underlying thing can be anything
- no kronecker product
- express certain properties of a matrix at
the type level (positive-definite, etc)
- encode things like:
- 'a `transpose` a' for
- any real invertible matrix 'a' is positive-definite
[nix-shell:~/development/freq]$ cabal new-build
Build profile: -w ghc-8.4.1 -O1
In order, the following will be built (use -v for more details):
- freq-0.1.0.0 (lib) (file src/Freq/Internal.hs changed)
- freq-0.1.0.0 (exe:freq-train) (configuration changed)
Preprocessing library for freq-0.1.0.0..
Building library for freq-0.1.0.0..
[1 of 2] Compiling Freq.Internal ( src/Freq/Internal.hs, /home/dcartwright/development/freq/dist-newstyle/build/x86_64-linux/ghc-8.4.1/freq-0.1.0.0/build/Freq/Internal.o )
[2 of 2] Compiling Freq ( src/Freq.hs, /home/dcartwright/development/freq/dist-newstyle/build/x86_64-linux/ghc-8.4.1/freq-0.1.0.0/build/Freq.o ) [Freq.Internal changed]
Configuring executable 'freq-train' for freq-0.1.0.0..
me: she flipped my life on its head
therapist: im sorry
me: my world was turned upside down
therapist: mmhmm
me: so id like to take a minute, just sit right there
therapist: dont
me: ill tell you how i became the prince
therapist: we talked about this
me: of a town called despair
In file included from eigen3/Eigen/Core:464:0: error:
0,
from cbits/eigen-dense.cpp:2:
eigen3/Eigen/src/Core/MatrixBase.h:331:35: error:
warning: inline function ‘const Eigen::Inverse<Derived> Eigen::MatrixBase<Derived>::inverse() const [with Derived = Eigen::Map<Eigen::Matrix<float, -1, -1>, 0, Eigen::Stride<0, 0> >]’ used but never defined
inline const Inverse<Derived> inverse() const;
^~~~~~~
|
331 | inline const Inverse<Derived> inverse() const;
1. add Foldable1 to base
2. export (#.) and (.#) from base
#!/bin/bash
set -e
declare -a semigroupoids_reverse_deps =
(
"semigroupoids"
# "active"
"adjunctions"
"algebra"
# "apart"