Skip to content

Instantly share code, notes, and snippets.

Avatar

Jiří Maršík jirkamarsik

View GitHub Profile
@jirkamarsik
jirkamarsik / graaljs.patch
Created Jul 23, 2019
Porting Talkyard from Nashorn to GraalVM JavaScript
View graaljs.patch
diff --git a/app/debiki/Nashorn.scala b/app/debiki/Nashorn.scala
index 13f9f2eb4..bdc2604a7 100644
--- a/app/debiki/Nashorn.scala
+++ b/app/debiki/Nashorn.scala
@@ -22,8 +22,7 @@ import java.io.{BufferedWriter, FileWriter}
import com.debiki.core._
import com.debiki.core.Prelude._
import java.{io => jio}
-
-import javax.{script => js}
@jirkamarsik
jirkamarsik / selectsort
Created Jul 24, 2016
Select sort in Human Resource Machine assembly
View selectsort
-- HUMAN RESOURCE MACHINE PROGRAM --
COMMENT 4
COPYFROM 24
COPYTO 19
BUMPUP 19
BUMPUP 19
COMMENT 3
a:
COPYFROM 24
@jirkamarsik
jirkamarsik / bubblesort
Created Jul 24, 2016
Bubblesort in Human Resource Machine assembly
View bubblesort
-- HUMAN RESOURCE MACHINE PROGRAM --
COMMENT 0
a:
COPYFROM 24
COPYTO 20
COPYFROM 24
COPYTO 23
b:
c:
@jirkamarsik
jirkamarsik / heapsort
Created Jul 24, 2016
Heapsort in Human Resource Machine assembly.
View heapsort
-- HUMAN RESOURCE MACHINE PROGRAM --
COMMENT 4
COPYFROM 24
COPYTO 19
BUMPUP 19
BUMPUP 19
COMMENT 3
a:
COPYFROM 24
@jirkamarsik
jirkamarsik / Main.purs
Created Aug 13, 2015
Testing the patch function in purescript-virtual-dom
View Main.purs
module Main where
import Prelude
import Data.DOM.Simple.Document
import Data.DOM.Simple.Element
import Data.DOM.Simple.Window
import qualified VirtualDOM as VD
import qualified VirtualDOM.VTree as VT
foreign import isoTS :: DOM.Node -> Data.DOM.Simple.Types.HTMLElement
@jirkamarsik
jirkamarsik / dynamic_scoping3.clj
Created Dec 19, 2012
Collecting traces from algorithms using dynamic Vars, second version.
View dynamic_scoping3.clj
(def ^:dynamic *fix-tree-adjunctions*)
(defn record-adjunct
"Records an adjunction performed within fix-tree."
[phrase adjunct]
(if (thread-bound? #'*fix-tree-adjunctions*)
(set! *fix-tree-adjunctions* (conj *fix-tree-adjunctions*
{:phrase phrase
:adjunct adjunct}))))
@jirkamarsik
jirkamarsik / dynamic_scoping2.clj
Created Dec 19, 2012
Collecting traces from algorithms using dynamic Vars, first version.
View dynamic_scoping2.clj
(def ^:dynamic *fix-tree-adjunctions*)
(def ^:dynamic *fix-tree-current-name*)
(defn record-adjunct
"Records an adjunction performed within fix-tree."
[phrase adjunct]
(if (thread-bound? #'*fix-tree-adjunctions*)
(let [record {:phrase phrase
:adjunct adjunct}
record (if (thread-bound? #'*fix-tree-current-name*)
@jirkamarsik
jirkamarsik / dynamic_scoping.clj
Created Dec 18, 2012
Dynamic scoping in action!
View dynamic_scoping.clj
(def ^:dynamic *current-tree-name*)
(defn record-adjunct
"Records an adjunction performed by our rules."
[phrase adjunct]
(swap! adjunctions conj {:name *current-tree-name*
:phrase phrase
:adjunct adjunct}))
(def fixed-trees
View lexical_scoping.clj
(defn record-adjunct
"Records an adjunction performed by our rules."
[phrase adjunct]
(swap! adjunctions conj {:name name
:phrase phrase
:adjunct adjunct}))
(def fixed-trees
"A map from tree filenames to their fixed versions."
(into {} (for [[name tree] trees]
@jirkamarsik
jirkamarsik / transformo.clj
Created Dec 18, 2012
A macro for collecting all predicates of a given class from my namespace and wrapping them in a disjunction.
View transformo.clj
(defmacro transformo
"Is satisfied when out-tree is a normalized version of the in-tree
node. Tries to use any goal annotated with ::rule."
[in-tree out-tree]
`(conde ~@(for [[sym var] (ns-interns *ns*)
:when (::rule (meta var))]
[(list sym in-tree out-tree)])))