Commit Graph

1690 Commits

Author SHA1 Message Date
coolreader18
0ac0432a53 Run cargo fmt 2018-12-26 18:23:40 -06:00
coolreader18
80573b0544 Format PyObject's correctly and nicely 2018-12-26 18:09:49 -06:00
coolreader18
d1a584f0fd Don't allocate a new string for each new type for the ExceptionZoo 2018-12-26 14:19:19 -06:00
coolreader18
a77b7e0ce4 Have json.* throw an exception instead of panicking 2018-12-26 14:18:15 -06:00
coolreader18
c38796bb49 Add some documentation for functions on the demo site 2018-12-26 13:25:56 -06:00
coolreader18
94d6a91873 Fix js_to_py with JS undefined 2018-12-26 13:21:29 -06:00
coolreader18
e0959b9384 Implement error conversion for js_to_py 2018-12-26 11:21:45 -06:00
coolreader18
132930ec82 Allow passing closures from JS to python via vars 2018-12-26 01:59:15 -06:00
coolreader18
63b3f3e71b Fix blanket impl of RustPyFunc 2018-12-24 15:51:54 -06:00
coolreader18
d1d958516d Change the instances of Fn(..) -> PyResult to a RustPyFunc trait alias 2018-12-24 15:45:45 -06:00
coolreader18
ffcd40b435 Remove conflicting files 2018-12-24 15:35:50 -06:00
coolreader18
24507de3b1 Re-add conflicting files 2018-12-24 15:34:52 -06:00
coolreader18
ab23f2c940 Use str.format for the demo 2018-12-24 15:28:49 -06:00
coolreader18
840c5072fb Improve UX for demo 2018-12-24 15:28:49 -06:00
coolreader18
d54d2b1c03 Make scripts executable 2018-12-24 15:28:49 -06:00
coolreader18
2ea9dca40c Add example, change some stuff in the demo to align with example 2018-12-24 15:28:49 -06:00
coolreader18
ca30ebcf5d Genericize the wasm lib to not be specifically for the demo
This included changing RustObjectKind::RustFunction.function to be
a `Box<Fn()>` instead of a `fn()` to support closures.
2018-12-24 15:28:49 -06:00
coolreader18
4c32693c7b Switch to using one workspace, move profile to root Cargo.toml 2018-12-24 15:28:49 -06:00
Windel Bouwman
946df53077 Merge pull request #237 from johndaniels/add-star-import
Add 'from x import *' syntax.
2018-12-23 17:55:34 +01:00
Gitea
ac3da8b453 Add 'from x import *' syntax.
This is a separate opcode in CPython so I added it as such here.
2018-12-22 22:40:02 -05:00
Windel Bouwman
366f3e2b13 Merge pull request #236 from coolreader18/proper-dict
Make `dict()` work like it does in cpython
2018-12-22 16:05:31 +01:00
coolreader18
427ce4347e Add test for dicts 2018-12-22 00:04:13 -06:00
coolreader18
f1784236af Finish revamping dict_new() 2018-12-21 23:35:45 -06:00
Shing Lyu
71ba5019bf Merge pull request #230 from coolreader18/master
Improve wasm demo website
2018-12-21 16:22:34 +01:00
coolreader18
e77f223538 Add documentation for eval_py() and update error message handling
Also, switch from iterating over the values of js_injections and
serializing each of them individually to asserting it's an object and
then just stringifying the whole thing.
2018-12-18 19:03:04 -06:00
coolreader18
03c619f79e Rearrange website directory and change webpack config 2018-12-18 18:22:30 -06:00
coolreader18
bdc80dc75b dict() now should work properly
e.g.
``` dict(a=2, b=3) == {"a": 2, "b": 3} ```
2018-12-18 01:34:00 -06:00
Windel Bouwman
950dbd1a77 Use new_list when constructing multiplied list. 2018-12-17 12:14:29 +01:00
Windel Bouwman
bbe333d6c7 Merge pull request #233 from rossjones/232-impl-mul-for-list
Implements __mul__ for lists
2018-12-17 11:55:44 +01:00
Windel Bouwman
8aaadb16c0 Merge pull request #234 from johndaniels/indentation
Handle mixed spaces and tabs.
2018-12-17 11:55:20 +01:00
Windel Bouwman
1b13b0c4e2 Merge pull request #231 from johndaniels/format
Add format builtin and String formatting stuff.
2018-12-17 11:50:14 +01:00
Gitea
9468b657d2 Run cargo fmt. 2018-12-16 17:40:25 -05:00
Gitea
c74cd90d8e Handle mixed spaces and tabs.
This allows the parser to handle tabs and spaces. Currently it
requires that spaces come after any tabs, which is slightly more
strict than python3. It also requires that neighboring indentation
levels have either both more spaces and tabs or less spaces and
tabs so that tab size can't make perception of indentation
differ from what the parser interprets.

I didn't opt to implement PartialOrd on IndentationLevel because I
wasn't sure that the comparison logic would meet the logical
requirements for that trait. One could easily switch to having it
implement PartialOrd though. This would necessitate switching to
manually implementing PartialEq so that it's behavior 'matches'.
It's unclear from the docs what 'matches' exactly means so for
now I'm avoiding implementing the traits.
2018-12-16 17:11:37 -05:00
Gitea
95d4073dd8 Add newline to end of file.
The parser currently doesn't handle missing newline gracefully.
2018-12-16 16:21:40 -05:00
Gitea
a6288acd22 Cargo format. 2018-12-16 15:48:59 -05:00
Gitea
bbe4844f6c Fix snippet to not use tab.
We should add support for '\t', but that should probably be a separate ticket.
2018-12-16 15:43:07 -05:00
Ross Jones
ae2f7ed1cb Implements __mul__ for lists
Implements __mul__ for lists so that it is possible to do things like

```
s = [1, 2,] * 3
s == [1, 2, 1, 2, 1, 2]
```
2018-12-16 12:22:31 +00:00
Gitea
b726e675ff Add format builtin and String formatting stuff.
This includes everything needed to call str.format with integers
as positional and keyword parameters.
2018-12-15 19:46:09 -05:00
coolreader18
a796b134a5 Allow injecting JS variables into python with eval_py()
eval_py(`return js_vars["a"]`, { a: 9 }) == 9
2018-12-15 12:20:03 -06:00
coolreader18
e78a25132e Remove dependency on num_bigint 2018-12-15 11:38:08 -06:00
coolreader18
3be6fee737 Clarify names of wasm builtins 2018-12-15 11:36:53 -06:00
coolreader18
921efd4d14 Switch to using json.dumps for py_to_js() 2018-12-15 11:33:37 -06:00
coolreader18
2ae1df590e Rename run_code() to run_from_textbox() 2018-12-15 01:41:25 -06:00
coolreader18
f8cce25f69 Formatting; move the + '\n' hack to eval(). 2018-12-15 01:31:44 -06:00
coolreader18
b428f2e3b3 Improve demo site 2018-12-15 00:49:47 -06:00
Windel Bouwman
62c53d8e5d Try to make it simpler to switch dict storage types. 2018-12-13 20:38:09 +01:00
Windel Bouwman
521f664e16 Merge pull request #229 from AgentMacklin/master
Added some of the missing str methods
2018-12-13 20:31:45 +01:00
Austen LeBeau
7ac22d96d1 update and added more functions 2018-12-13 12:02:18 -06:00
Windel Bouwman
a29e882bc1 Store dict key as pyobject into hashmap. 2018-12-13 17:05:01 +01:00
Windel Bouwman
e657633e51 Move set_item to context struct. 2018-12-12 22:27:28 +01:00