4 ms·
Hi! Is your implementation available for use? I'm curious - how did you test it for compatibility with the main K implementation?
by bazookajoes 12y ago
Hi! Is your implementation available for use?
I'm curious - how did you test it for compatibility with the main K implementation?
- RodgerTheGreat 12y agoSure, here's the repository: https://github.com/JohnEarnest/ok https://github.com/JohnEarnest/ok I don't have a rigorous approach for testing compatibility at present; My starting point was the K2 manual, and I've tried to get as many examples from that working as possible. I have been learning the language as I go, so often I don't realize functionality is missing until I stumble across an existing K program that doesn't work properly. I'm targeting K5, which is unreleased, so there's a great deal of speculation. I think I have a decent subset of the functionality working now, but most of the time when I write new programs using it I still shake out bugs and unhandled edge cases.
- srpeck 12y agoAwesome. I started building a toy C interpreter to the k5 spec (http://kparc.com/k.txt http://kparc.com/k.txt) based on the k4 data structures (http://kx.com/q/c/c/k.h http://kx.com/q/c/c/k.h) and documentation (http://code.kx.com/wiki/Cookbook/InterfacingWithC http://code.kx.com/wiki/Cookbook/InterfacingWithC). That k2 manual is a good find.
- RodgerTheGreat 12y agoCool! Nice to know that I'm not the only person trying to implement K5 from scraps and speculation.
- srpeck 12y agoIt is certainly a fun puzzle; hopefully kOS is released soon to application developers. Since you are playing in JS, you might also have a look at c.js (http://kx.com/q/c/c.js http://kx.com/q/c/c.js), which is the tool KX uses to translate between JS objects and k objects through web socket IPC with a k process (http://code.kx.com/wiki/Cookbook/Websocket http://code.kx.com/wiki/Cookbook/Websocket). Might be useful to see how Arthur envisioned the k data structure in JS. Also, it would be kind of interesting to have a k5 process running in the browser talking with a k4 process running locally in the 32bit trial...