Skip to content

Instantly share code, notes, and snippets.

===============================================
PRK Firmware 0.9.20 (20230419 revision 21c7662)
PICORUBY_NO_MSC: false
prk-conf: ::
===============================================
STATS 92032/204800
Init Keyboard
Init GPIO
Configured as a split-type Anchor
@shugo
shugo / keymap.rb
Created April 19, 2023 11:02
Runner3680 keymap
kbd = Keyboard.new
kbd.split = true
kbd.init_pins(
[ 4, 5, 6, 7, 8 ],
[ 28, 27, 26, 22, 20, 23, 21 ]
)
kbd.add_layer :default, %i[
#!/bin/sh
export PATH="/bin:/usr/bin:/sbin:/usr/sbin"
if on_ac_power; then
powerprofilesctl set performance
else
powerprofilesctl set power-saver
fi
<html>
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/browser.script.iife.js"></script>
<button id="start">Start</button>
<div id="counter">0</div>
<script type="text/ruby">
require "js"
def start_counter
@shugo
shugo / test.html
Last active December 17, 2022 00:06
<html>
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/browser.script.iife.js"></script>
<script type="text/ruby">
require "js"
document = JS.global[:document]
window = JS.global[:window]
start = document.getElementById("start")
counter = document.getElementById("counter")
$ cat b2.rb
require 'forwardable'
require 'pp'
require 'benchmark/ips'
class Obj
extend Forwardable
attr_accessor :other
diff --git a/extlib/coru/coru_platform.c b/extlib/coru/coru_platform.c
index fb64002..bab7041 100644
--- a/extlib/coru/coru_platform.c
+++ b/extlib/coru/coru_platform.c
@@ -68,8 +68,8 @@ __asm__ (
// we startup a coroutine.
void coru_plat_prologue(void);
__asm__ (
- ".globl coru_plat_prologue \n"
- "coru_plat_prologue: \n"
excelsior:test$ ./cobench
[0x10b4e3600] measuring co_create+co_delete performance ...
[0x10b4e3600] 0.186263 usec
[0x10b4e3600] measuring switch performance ...
zsh: segmentation fault ./cobench
@shugo
shugo / gist:4a535cea6a3a2bdab7c2225326a080bd
Last active October 25, 2022 01:26
Perfume Coroutine Test
excelsior:perfume$ cat t.prfm
set c [coro {
println "1st step";
pause;
println "2nd step";
}];
$c next; # → "1st step"
$c next; # → "2nd step"
$c release;
excelsior:perfume$ perfumesh t.prfm
def evaluate(expr)
case expr
in ["value", x]
x
in ["+", x, y]
evaluate(x) + evaluate(y)
in ["-", x, y]
evaluate(x) - evaluate(y)
in ["*", x, y]
evaluate(x) * evaluate(y)