Skip to content

Instantly share code, notes, and snippets.


Yuan He lenage

Block or report user

Report or block lenage

Hide content and notifications from this user.

Learn more about blocking users

Contact Support about this user’s behavior.

Learn more about reporting abuse

Report abuse
View GitHub Profile


This document was originally written several years ago. At the time I was working as an execution core verification engineer at Arm. The following points are coloured heavily by working in and around the execution cores of various processors. Apply a pinch of salt; points contain varying degrees of opinion.

It is still my opinion that RISC-V could be much better designed; though I will also say that if I was building a 32 or 64-bit CPU today I'd likely implement the architecture to benefit from the existing tooling.

Mostly based upon the RISC-V ISA spec v2.0. Some updates have been made for v2.2

Original Foreword: Some Opinion

The RISC-V ISA has pursued minimalism to a fault. There is a large emphasis on minimizing instruction count, normalizing encoding, etc. This pursuit of minimalism has resulted in false orthogonalities (such as reusing the same instruction for branches, calls and returns) and a requirement for superfluous instructions which impacts code density both in terms of size and

lenage / gist:4b9315654af7064b13b7b037135eaf88
Created Oct 26, 2018 — forked from jimbojsb/gist:1630790
Code highlighting for Keynote presentations
View gist:4b9315654af7064b13b7b037135eaf88

Step 0:

Get Homebrew installed on your mac if you don't already have it

Step 1:

Install highlight. "brew install highlight". (This brings down Lua and Boost as well)

Step 2:

View gist:891ad2dc04d97d012a8520efa3289338
---- darwin
lenage / fnv_example.go
Created Mar 31, 2017
golang fnv example
View fnv_example.go
package main
import (
lenage / ss-ignore.list
Created Jan 4, 2017
Shadowsock ignore list
View ss-ignore.list
lenage / feature.swagger.json
Created Nov 14, 2016
swagger JSON example
View feature.swagger.json
"swagger": "2.0",
"info": {
"title": "feature.proto",
"version": "version not set"
"schemes": [
lenage / dnscrypt.csv
Created Jul 30, 2016
DNScrypt server list
View dnscrypt.csv
We can make this file beautiful and searchable if this error is corrected: It looks like row 5 should actually have 14 columns, instead of 6. in line 4.
Name,Full name,Description,Location,Coordinates,URL,Version,DNSSEC validation,No logs,Namecoin,Resolver address,Provider name,Provider public key,Provider public key TXT record
4armed,4ARMED,DNSCrypt Server provided by,France,,,1,yes,yes,no,,,FD3E:5887:63EA:17A9:1AF8:4325:DE82:1507:6ED0:01AB:2F9E:55DE:689B:F491:4D8E:526E,
cisco,Cisco OpenDNS,Remove your DNS blind spot,Anycast,,,1,no,no,no,,,B735:1140:206F:225D:3E2B:D822:D7FD:691E:A1C3:3CC8:D666:8D0C:BE04:BFAB:CA43:FB79,
cisco-familyshield,Cisco OpenDNS with FamilyShield,Blocks web sites not suitable for children,Anycast,,,1,no,no,no,,,B735:1140:206F:225D:3E2B:D822:D7FD:691E:A1C3:3CC8:D666:8D0C:BE04:BFAB:CA43:FB79,
cisco-ipv6,Cisco OpenDNS over IPv6,Cisco OpenDNS IPv6 sandbox,Anycast,,https://www.op
lenage / qiku360-debug.log
Last active Jul 16, 2016
qiku360 劫持 分析
View qiku360-debug.log
!10013 [11:35:07] ~ $ curl -vvvv -L,basePatch/1.0.0/basePatch.js
* Trying
* Connected to ( port 80 (#0)
> GET /jdf/1.0.0/unit/??base/1.0.0/base.js,basePatch/1.0.0/basePatch.js HTTP/1.1
> Host:
> User-Agent: curl/7.43.0
> Accept: */*
< HTTP/1.1 302 Found
< Connection: close
View replace-bundle-hash.js
'use strict'
var jsonfile = require('jsonfile')
var replace = require('replace-in-file')
var fs = require('fs')
fs.readdir('dist', function(err, files) {
var htmlFiles = []
files.forEach(function(x) {
if (/\.html$/.test(x)) { htmlFiles.push('dist/' + x) }
lenage /
Created Aug 5, 2015
List all Git commit date
git log --format='%ci' --no-merges | awk '{print $1}' | uniq | wc -l
You can’t perform that action at this time.