Position Independent Source Code

Artifact Content
Login
Wiki page [todo] by yumaikas 2017-07-05 15:30:49.

Artifact 414733bc66a18818399080aeb9ebb346a89e065b:


D 2017-07-05T15:30:49.902
L todo
N text/x-markdown
P 128736d256efea645be495b8a6af37e1ab941395
U yumaikas
W 1919
## TODO

### Math

- Add trig math words like `sin` and `cos`. [Remaining functions](https://pisc.junglecoder.com/home/apps/fossil/PISC.fossil/wiki?name=List+of+Math+Functions)
- Add exp math function
- (TODO) Add support for bignums

### Vector utilites

 Look into adding vector shuffling words like the ones used in Jelly.

### Error handling

 - Make sure that all "panic" type errors exit the script as they should.

### Testing

- Build a test runner (done)
- Write tests for words (WIP)

### Borrow Lua's pattern matching syntax
  This will be simpler to implement, and will be easier to fit into the eventual opcode budgeting that I'd like to do in the future.


### On Hold: Regex handlings

- Add regex words
- Possibly add a regex ~ :PRE word

### IO

- More IO words. The bare basics have now been covered

### Strings and Parsing

- `>upper`
- `>lower`
- `int>string`
- `double>string`

### Collections

- A generic way to work with collections for things like `each` and so on that can replace the likes of `each-vec` and so on.

### IRC framework integration

Figure out a way to tie PISC into an IRC framework to make it easier to build a chat-bot server that can be scripted by PISC down the line.

(Note: IRCKit is a start here)

### Some kind of lite IDE in the browser

> I have some ideas around creating a IDE-lite dev enviroment for PISC that can be sandboxed and exposed to the internet for use in developing IRC bots

While it's not for IRC bots, the [playground](https://pisc.junglecoder.com/playground/) is a start on a PISC IDE-lite. 

- Save/edit files local to browser (via localstorage)
- Expose XHR to PISC for scripty purposes

### Termbox bindings

If PISC is going to be used for console applications, binding to something like
[https://github.com/nsf/termbox-go](https://github.com/nsf/termbox-go) could be very useful. 
Z 573c372862d3864d29dd573f0c5de697