Skip to content

Instantly share code, notes, and snippets.

View radgeRayden's full-sized avatar
🤔

Westerbly Snaydley radgeRayden

🤔
View GitHub Profile
#!/bin/fish
set -l MONTH (date +"%B")
set -l YEAR (date +"%Y")
set -l SSDIR "$HOME/Pictures/Screenshots/$YEAR-$MONTH"
mkdir -p $SSDIR
if test "$argv[1]" = "display"
if maim /tmp/screenshot.png
xclip -selection clipboard -t image/png -i /tmp/screenshot.png
set -l SSPATH $SSDIR/(date +%s)-(identify -format '%wx%h' /tmp/screenshot.png).png
@radgeRayden
radgeRayden / sc_cloc.sh
Last active October 1, 2020 16:59
Count lines of Scopes code in a directory
find . -name "*.sc" -print0 | xargs -0 -n 1 -I{} cat {} | pcregrep -Mv "^(?<pad> *)#.*\n( (?=\k<pad>).+\n)*" | pcregrep "^[ ]*.+?\$" | wc -l
sugar let (bindings body...)
let bindings =
fold (result = '(embed)) for binding in (bindings as list)
sugar-match (binding as list)
case (name expr)
cons
qq [let] [name] = [expr]
result
default
error "invalid let syntax"
@radgeRayden
radgeRayden / gl.sc
Created October 1, 2020 01:32
Scopes GLFW/OpenGL example
# import C functions and sanitize the scope
vvv bind glad
do
let glad =
include
options
.. "-I" module-dir "/glad/include"
"glad/src/glad.c"
do
using glad.extern
@radgeRayden
radgeRayden / main.lisp
Last active October 5, 2020 00:32
reverse polish notation lisp (from scopes)
(('(1 2 3) 'reverse) print)
("hello world" print)
(((4 5 +) 2 >) print)
(module-name print)
((5 87 +) print)
((true false and) print)
@radgeRayden
radgeRayden / c2.txt
Last active November 30, 2020 17:06
semantically-bind-types
semantically-bind-types c2.v vec2
inline "conv-to" (self)
vec2 self.x self.y
inline "conv-from" (other)
c2.v (unpack other)
#!/bin/fish
# vim ft=fish
set -l MONTH (date +"%m")
set -l YEAR (date +"%Y")
set -l SSDIR "$HOME/Pictures/Screenshots/$YEAR-$MONTH"
mkdir -p $SSDIR
if test "$argv[1]" = "display"
if maim /tmp/screenshot.png
xclip -selection clipboard -t image/png -i /tmp/screenshot.png
using import Map
using import Array
using import struct
inline table-lookup (t k)
let kT = (typeof k)
let a m =
Struct.__getattr t 'a
Struct.__getattr t 'm
using import struct
# You generally want to use plain structs either to interface with C, or
# to store some pure data (commonly called POD object) that doesn't need any management
struct A plain
a : i32
struct B
b : i32
inline __drop (self)
@radgeRayden
radgeRayden / dummy-raymarching.sc
Created January 25, 2021 17:30
Raymarching for Dummies in Scopes
#
// "ShaderToy Tutorial - Ray Marching for Dummies!"
// by Martijn Steinrucken aka BigWings/CountFrolic - 2018
// License Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License.
//
// This shader is part of a tutorial on YouTube
// https://youtu.be/PGtv-dBi2wE
Scopes version by Westerbly (radgeRayden) Snaydley.
let MAX_STEPS = 100