OK, turing.

<- leave blank

Sat Jul 14 02:08:03 EDT 2018

trait sad @a =
	ree : (a : @a -> void)
;;

type foo = union
	`Foo
	`Bar
;;

impl sad foo =
	ree = {a
	}
;;

type bar = foo

const asbar = {r : foo
	-> (r : bar)
}

impl sad bar =
	ree = {a
	}
;;

impl sad int =
	ree = {a
	}
;;

const main = {
	var a = ree(`Foo)
	// var b = ree((`Foo : foo))
	// var c = ree(asbar(`Foo))
	// var d = ree(1)
}

/*
Process 37943 stopped
* thread #1, queue = 'com.apple.main-thread', stop reason = breakpoint 1.1
    frame #0: 0x00000001000343a0 6m`putdcl(st=0x0000000100202cd0,
    s=0x0000000100303e60) at stab.c:418
   415 {
   416 Node *old;
   417
-> 418 st = findstab(st, s->decl.name);
   419 old = htget(st->dcl, s->decl.name);
   420 if (!old)
   421 forcedcl(st, s);
Target 0: (6m) stopped.
(lldb) p s->decl.name->name
(Node::(anonymous struct)) $5 = (ns = <no value available>, name =
"ree$$n$foo$$fv$$n$foo$")
(lldb) c
Process 37943 resuming
Process 37943 stopped
* thread #1, queue = 'com.apple.main-thread', stop reason = breakpoint 2.1
    frame #0: 0x000000010003237b 6m`specializedcl(gnode=0x0000000100500c80,
    param=0x0000000100301b40, to=0x0000000100207160, name=0x00007ffeefbff1f8) at
    specialize.c:551
   548 st = file->file.globls;
   549 if (!st)
   550 fatal(n, "Can't find symbol table for %s.%s", n->name.ns,
   n->name.name);
-> 551 d = getdcl(st, n);
   552 if (d)
   553 return d;
   554 if (gnode->decl.trait) {
Target 0: (6m) stopped.
(lldb) p n->name
(Node::(anonymous struct)) $6 = (ns = <no value available>, name =
"ree$$u50$$fv$$u50$")
*/

Fri Jul 13 20:10:30 EDT 2018
Run mod/edsamp, hold down the right mouse button and drag all the way
to the right so that the whole window is purple.  The bottom row
should now read vis [00000,00020) | sel [00000,00020), which means
that 32 bytes are visible, and we just selected all 32.

Now press 6 to add a triangle wave to the selection.  You can
experiment with the prompts later; for now hit Enter for the defaults.
The waveform that appears is shaded grey because it is not part of the
sample.  Press (lowercase) s: the waveform goes black and the top row
now reads sample [00000,00020).

If we play this back we'll just hear a quick blip; we need to loop it.
Press (uppercase) S: the waveform goes dark purple and the top row now
says replen 20.  Samples are played straight through once, then if
replen is greater than 2 it is looped between rep and rep + replen.

Press Space and you will hear the triangle wave.  Press Esc or Enter
to stop playback.  The top row tells us playback is at note C-2 +0,
which means C natural in the second octave with finetune 0.  You can
cycle the octave by pressing Tab, change the finetune by pressing t
and entering a number between -8 and +7, and change the note with the
following pseudo-keyboard layout:

key: y u o p [
key: g h j k l ; '
note: C C♮ D D♮ E F F♮ G G♮ A A♮ B

Now we write the sample to disk by pressing w and giving it a name.
The repeat information is not saved, so it is prefilled into the
filename prompt, but 0 and 20 are easy to remember.

Now press Backspace to clear the selection and repeat with a few more
waveforms, saving them to different names.  The mnemonic for wave
forms is: ~ sine, ^ triangle, / ramp (saw), because those characters
kind of look like the waveforms, but the same keys work whether or not
shift is held down.  If you want to make a square wave, enter exponent
0 for any of the other forms.

Now let's try a chord (okay, a ditone).  Press Backspace to clear the
last selection.  Press ↓ to zoom out to vis [00000,00040) and extend
the selection to the whole screen again with the right mouse button.
Now we are playing with 64 bytes.  Now create two waveforms on top of
each other, one with 2 cycles and one with 3, both with amplitude 0.5.
Make sure you press s and S again to set the new sample/loop length.
Now you have a root note and a perfect fifth.  Experiment with
different combinations of waveforms & read up on Pythagorean tuning to
extend the concept.


Fri Jul 13 19:25:33 EDT 2018
What

Fri Jul 13 15:50:17 EDT 2018
What is this?

Fri Jul 13 09:12:13 EDT 2018
ESLint compromised, may have stolen your credentials

Thu Jul 12 22:11:50 EDT 2018
#!/bin/rc
unmount /mnt/plumb
label todo
bind /dev/null /dev/label
acme -c1 /mnt/term/home/jeremy/Sync/todo.txt


Thu Jul 12 22:05:33 EDT 2018
#!/bin/rc

. $home/bin/rc/startmail

window -r 0 117 620 519 rc $home/bin/rc/todo

window -r 621 117 1920 519 acme

window -r 621 0 1366 55 winwatch

echo 'label matrix
bind /dev/null /dev/label
vt -xc $home/bin/ssh/core
' >/tmp/.vt
window -r 0 520 1920 1080 rc /tmp/.vt

echo hide >/dev/wctl


Thu Jul 12 22:05:06 EDT 2018


Thu Jul 12 20:50:42 EDT 2018
Suck my dick.

Thu Jul 12 18:12:24 EDT 2018
cd /mnt/wsys; e
cons cursor label screen wctl window winname
consctl kbd mouse text wdir winid wsys/
cd /mnt/wsys; echo 'echo test' >>text
echo test
cd /mnt/wsys; echo 'echo test' >>cons
echo test


Thu Jul 12 14:50:28 EDT 2018
diff --git a/lib/std/sleq.myr b/lib/std/sleq.myr
index c91f826d..30f49d51 100644
--- a/lib/std/sleq.myr
+++ b/lib/std/sleq.myr
@@ -28,7 +28,7 @@ generic sleq = {a, b

 impl equatable @a[:] =
	eq = {a, b
- if a.len == b.len
+ if a.len != b.len
			-> false
		;;
		/* can't use memeq because of padding */
diff --git a/lib/std/strsplit.myr b/lib/std/strsplit.myr
index af34838b..7ab22117 100644
--- a/lib/std/strsplit.myr
+++ b/lib/std/strsplit.myr
@@ -103,7 +103,7 @@ const dostrtok = {toks, s, grow
			;;
			idx++
		;;
- i = j
+ i = j + 1
	;;
	-> toks#[:idx]
 }

prev | next