Skip to content

Instantly share code, notes, and snippets.

View ShalokShalom's full-sized avatar
🐉
Garuda

ShalokShalom ShalokShalom

🐉
Garuda
View GitHub Profile
@ShalokShalom
ShalokShalom / gist:335c7aafd8a93b0e0c65cb6ff86b418d
Created February 19, 2025 00:03
The transparency of programming
Semantic transparency
Examples:
-- Multiple dispatch - ECS
-- Lambda principle - Lisp interpreter
An implementation can match the semantics of the architecture of the underlying system.
The tool ideally matches the product.
If CVEs in C++ code were 98% lower (2% of today) in the four key buckets -- initialization safety, type safety, bounds safety, and lifetime safety -- then we wouldn't be having this conversation. There would be no problem.
Cpp2 today has
guaranteed initialization safety (better than C# or Java),
guaranteed type safety (via safe is type queries and as casts),
bounds safety (via subscript checking, banning pointer arithmetic, and safe-by-construction iteration such as range-for) except for naked use of raw STL iterators, and
--Rich Hickey's infamous transducers, demonstrating reversed function composition.
--Look closely.
function transduce(tf, rf, init, iter)
for i in iter do
init = tf(rf)(init, i)
end
return init
end
@ShalokShalom
ShalokShalom / multiple-dispatch.hx
Created January 2, 2025 15:56
Haxe (multiple dispatch)
// Type definitions for method signatures and dispatch information
private typedef MethodSignature = {
var paramTypes:Array<Class<Dynamic>>;
var method:Dynamic;
}
// Dispatcher implementation that could be used by a transpiler
class GenericDispatcher {
// Static registry for all multi-methods
private static var methodRegistry:Map<String, Array<MethodSignature>> = new Map();
@ShalokShalom
ShalokShalom / lix_install
Last active February 15, 2025 14:07
Quick installation of Lix + Homemanager
We couldn’t find that file to show.
@ShalokShalom
ShalokShalom / multi_methods.rb
Created January 2, 2025 09:22 — forked from unworthyEnzyme/multi_methods.rb
Multi-methods/multiple dispatch implemented in ruby
class Type
attr_accessor :name
attr_accessor :supertype
def initialize(name, supertype = nil)
@name = name
@supertype = supertype
end
def is?(type)
@ShalokShalom
ShalokShalom / .logic
Created December 8, 2024 07:24
Logic Programming Language (LPL)
Implemented in Terra
Transpiler from Logic to Terra
Using the Julia type system and type checker through the C API
https://youtube.com/shorts/tc0i10gVw38
He came later. I was Already seeing Justice In Minneapolis, Boys Noize and Ed Banger crew. R.I.P. to DJ Mehdi. Henry Riton, Feadz, Sebastian, Kavinsky, Busy P(Daft Punks former Manager) They were More entertaining and way better DJ's than Skrillex. Don't get me wrong he had some cool tracks, but he was more pop to me than anything. Mr. oizo, Shadow dancer, Boyz Noize, DJ Mehdi, Surkin, Sebastian, Kavinsky, Justice, Burial etc all had these Massive Albums full of tracks that hit from start to finish in the Mid 2000's. The best time for Electronic music and the LAST time you'd see and hear a Renaissance that big.
@ShalokShalom
ShalokShalom / gist:8092a7f10af87ee49aac6040ab22f5a0
Created September 15, 2024 11:49
productive procrastination
https://www.reddit.com/r/haskell/comments/5dxovr/julia_vs_haskell_type_system/