Compare commits

..

No commits in common. "49e2df75ca1f773eba8b5fd44bd11d59a17c7976" and "c93b0b493b8955fc631c8e4d2a828d64dc502c92" have entirely different histories.

7 changed files with 37 additions and 60 deletions

View File

@ -1,9 +1,8 @@
function main() {
let socket = new WebSocket("ws://localhost:8764");
let socket = new WebSocket("ws://localhost:8765");
var ids = [];
socket.onopen = function(e) {
console.log("[LOG] sending client ping")
socket.send("client ping");
}
@ -12,9 +11,8 @@ function main() {
console.log(message.message)
if (message.message === "clear") {
console.log("[LOG] removing expressions from the graph");
for(i in ids) {
console.log(`[LOG] removing expression ${ids[i]}`)
console.log("removing")
Calc.removeExpression({
id: ids[i],
})
@ -22,13 +20,13 @@ function main() {
ids = [];
} else if (message.message === "expression") {
console.log(`[LOG] adding expression ${message.payload} as id ${message.id}`);
Calc.setExpression({
type: "expression",
latex: message.payload,
id: message.id,
})
ids.push(message.id)
console.log(ids)
} else if (message.message === "ticker") {
var state = Calc.getState();
@ -40,7 +38,9 @@ function main() {
Calc.setState(JSON.stringify(state))
} else {
console.log(`[LOG] couldn't parse message ${e.data}`)
console.log("unknown message type.")
}
console.log(message);
}
} main();
}

View File

@ -37,8 +37,6 @@ id testing : B = [1, 4, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
: ibl(addr, b, c) = {less = 1 : ijmp(addr, 0, 0), jumped -> 1}
: isto(v, addr) = setlistval(addr, v)
: imov(from, target) = setlistval(target, B[from])
: ipsto(value, ptr) = setlistval(B[ptr], value)
# registers
# instruction pointer
@ -67,22 +65,20 @@ id testing : B = [1, 4, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
paramtwo -> B[addr + 2], \
paramthree -> B[addr + 3]
: exec = { \
inst = sto : isto(paramone, paramtwo), \
inst = psto : ipsto(paramone, paramtwo), \
inst = mov : imov(paramone, paramtwo), \
inst = add : iadd(paramone, paramtwo, paramthree), \
inst = cmp : icmp(paramone, paramtwo, paramthree), \
inst = eld : ield(paramone, paramtwo), \
inst = gld : igld(paramone, paramtwo), \
inst = lld : illd(paramone, paramtwo), \
inst = jmp : ijmp(paramone, paramtwo, paramthree), \
inst = be : ibe(paramone, paramtwo, paramthree), \
inst = bne : ibne(paramone, paramtwo, paramthree), \
inst = bg : ibg(paramone, paramtwo, paramthree), \
inst = bl : ibl(paramone, paramtwo, paramthree), \
inst = sub : isub(paramone, paramtwo, paramthree), \
inst = mul : imul(paramone, paramtwo, paramthree), \
inst = div : idiv(paramone, paramtwo, paramthree) \
inst = sto : isto(paramone, paramtwo), \
inst = add : iadd(paramone, paramtwo, paramthree), \
inst = cmp : icmp(paramone, paramtwo, paramthree), \
inst = eld : ield(paramone, paramtwo), \
inst = gld : igld(paramone, paramtwo), \
inst = lld : illd(paramone, paramtwo), \
inst = jmp : ijmp(paramone, paramtwo, paramthree), \
inst = be : ibe(paramone, paramtwo, paramthree), \
inst = bne : ibne(paramone, paramtwo, paramthree), \
inst = bg : ibg(paramone, paramtwo, paramthree), \
inst = bl : ibl(paramone, paramtwo, paramthree), \
inst = sub : isub(paramone, paramtwo, paramthree), \
inst = mul : imul(paramone, paramtwo, paramthree), \
inst = div : idiv(paramone, paramtwo, paramthree) \
}
: incip = {jumped = 0 : ip -> ip + instwidth[inst] + 1}
@ -95,8 +91,6 @@ id testing : B = [1, 4, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
: main = loopaction, loop
: sto = 1
: psto = 16
: mov = 17
: add = 2
: cmp = 3
: eld = 4
@ -112,4 +106,4 @@ id testing : B = [1, 4, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
: div = 14
: rst = 15
: instwidth = [2,3,1,1,1,1,1,1,1,1,3,3,3,3,0,2,2]
: instwidth = [2,3,1,1,1,1,1,1,1,1,3,3,3,3,0]

View File

@ -9,20 +9,15 @@ def get_overrides(file):
fd.close()
return data
def define_args(parser):
parser.add_argument('--copy', action="store_true", help="copy the client side JS to clipboard")
parser.add_argument('--assemble', nargs=2, help="assemble the file INFILE and write the resultant overrides to OUTFILE")
parser.add_argument('--run', help="specify file to start the desmos server for")
parser.add_argument('--overrides', help="specify file that contains overrides for desmos expressions")
def entry():
parser = argparse.ArgumentParser(
prog="desmosisa",
description="a smörgåsbord of utilities for desmos, including some implementations of an desmos-based isa",
prog="desmos-sync",
description="Synchronize from local file to Desmos calculator",
)
define_args(parser)
parser.add_argument('--copy', action="store_true", help="copy the client side JS to clipboard")
parser.add_argument('--run', help="specify file to start the desmos server for")
parser.add_argument('--overrides', help="specify file that contains overrides for desmos expressions")
args = parser.parse_args()
if args.overrides:

View File

View File

@ -96,10 +96,8 @@ async def serv(websocket, file, overrides={}):
)
async def start_server(file, overrides):
print("starting server")
wrapper = functools.partial(serv, file=file, overrides=overrides)
async with serve(wrapper, "localhost", 8764):
print("starting server for realz")
async with serve(wrapper, "localhost", 8765):
await asyncio.Future()
def main(file, overrides):

View File

@ -1,16 +0,0 @@
import setuptools
setuptools.setup(
name='desmos-sync',
version='0.1',
author='Ryan Marina',
description='synchronize Desmos expressions between the local filesystem and the web calculator',
packages=["desmossync"],
entry_points = {
"console-scripts": [ "desmos-sync=desmossync.cli.entry" ]
},
install_requires=[
'setuptools',
'websockets',
'watchdog'
]
)

View File

@ -1,4 +1,10 @@
{ pkgs ? import <nixpkgs> {} }:
pkgs.mkShell {
nativeBuildInputs = with pkgs.python311Packages; [ websockets watchdog pyperclip ];
}
let
my-python-packages = ps: with ps; [
pip
pkgs.python311Packages.websockets
pkgs.python311Packages.watchdog
pkgs.python311Packages.pyperclip
];
my-python = pkgs.python3.withPackages my-python-packages;
in my-python.env