Commit Graph
963 Commits
Author SHA1 Message Date
Bob Nystrom f2c5c804a4 Refactor out a lot of boilerplate in core. 2015-03-21 14:57:43 -07:00
Bob Nystrom 1301410142 Merge branch 'num_methods' of git://github.com/bjorn/wren into bjorn-num_methods 2015-03-21 12:54:08 -07:00
Bob Nystrom b522f35b0a Ensure step is always initialized. 2015-03-21 12:32:31 -07:00
Bob Nystrom 3445c6a2cb Finish making code for working with lists use unsigned ints. 2015-03-21 12:22:04 -07:00
Bob Nystrom 98dbde5b1b Merge branch 'int-types' of git://github.com/verpeteren/wren into verpeteren-int-types 2015-03-21 08:46:01 -07:00
Bob Nystrom f6cf78c175 Assert instead of silently handling freed VM. 2015-03-20 08:00:52 -07:00
Bob Nystrom 1883ae81cd Merge branch 'free-vm' of git://github.com/verpeteren/wren into verpeteren-free-vm 2015-03-20 07:56:32 -07:00
Thorbjørn Lindeijer 07951bbeae Added Num.pi and some tests 2015-03-19 21:12:50 +01:00
Thorbjørn Lindeijer 94804fe1a0 Added Sequence.count(predicate)
Returns the number of elements in the sequence that pass the
`predicate`.

It could also have been implemented as:

  count(f) { reduce(0) {|a, b| f.call(b) ? a + 1 : a } }

But I considered the simple version more readable.

Also documented Sequence.count.
2015-03-19 21:10:05 +01:00
Bob Nystrom 5e1ddb7db5 Hash entire string. 2015-03-19 07:38:05 -07:00
Bob Nystrom 30367fcdd2 Merge branch 'master' of https://github.com/munificent/wren 2015-03-19 07:29:07 -07:00
Bob Nystrom 1b6a2684e2 Do a little clean-up/reorganization on wren_value.h. 2015-03-19 07:28:53 -07:00
Bob Nystrom a3abf31da0 Merge pull request #222 from bjorn/sequence_contains
Moved List.contains to Sequence.contains, added tests and docs
2015-03-18 07:54:55 -07:00
Bob Nystrom be11d09bd8 Store hash code in strings.
Makes string equality and string map keys much faster.
Also did some other general string clean-up.
2015-03-18 07:09:03 -07:00
Bob Nystrom b80ba29b0e Merge branch 'master' of https://github.com/munificent/wren 2015-03-17 07:01:09 -07:00
Bob Nystrom b4fa4acce1 Handle empty string map keys. 2015-03-17 07:00:54 -07:00
Peter Reijnders bc52292b6d Changed int-fields in ObjList to match the uint32_t-types in ObjMap
Both ObjList and ObjMap have the same fields (capacity and count). Therefor it makes sense to make them the same type.
2015-03-17 07:29:19 +01:00
Peter Reijnders 9f32de7047 Added -Wextra to compile flags
-Wextra does several extra checks during the compiling. Unfortunately one of the extra check is for unused parameters.
Several functions have unused parameters (mostly the WrenVM* vm).
2015-03-17 07:29:09 +01:00
Peter Reijnders 26586bfa11 Added a check for allready freed in wrenFreeVm.
If wrenFreeVm was called twice, this would lead to an error, because the memory was allready freed.
The used check is rather naive, suggesting that a valid vm does have at least one methodName set.
2015-03-17 07:28:50 +01:00
Bob Nystrom b9f034b398 Merge pull request #224 from bjorn/list_insert_args
Reverse the argument order of List.insert
2015-03-16 09:18:59 -07:00
Bob Nystrom 91a23da5b0 Move CLI script running to a separate file.
(This is set up to reuse this code for API tests.)
2015-03-16 07:42:45 -07:00
Bob Nystrom aedf9a8571 Move CLI file loading code to separate file. 2015-03-16 07:22:52 -07:00
Bob Nystrom 09f266c23f Fix typo in wrenDumpObject().
Thanks, Michel!
2015-03-16 07:05:40 -07:00
Bob Nystrom cd0a0da36f Add some missing arguments. 2015-03-15 23:17:08 -07:00
Bob Nystrom 9764b165b4 Try different expansion for CONST_STRING macro. 2015-03-15 23:07:20 -07:00
Bob Nystrom 034ab3c2af Clean up code for creating strings in the VM. 2015-03-15 22:32:20 -07:00
Thorbjørn Lindeijer d7a91117ac Reverse the argument order of List.insert
The previous order, insert(element, index), was counter-intuitive.
I'm not aware of any list API that uses this order. I've checked:

* Ruby Array.insert(index, obj...)
* JavaScript array.splice(start, deleteCount[, item1[, item2[, ...]]])
* C++ / QList::insert(int i, const T & value)
* C++ / std::vector::insert
* Lua table.insert (list, [pos,] value)
* C# List<T>.Insert(int index, T item)
* Java Interface List<E>.add(int index, E element)
* Python list.insert(i, x)

So it seemed to me more like an oversight in Wren.
2015-03-15 22:51:24 +01:00
Bob Nystrom 287c611260 Clean up debug dump code. 2015-03-15 10:09:43 -07:00
Bob Nystrom 1616df63d2 Clean up file loading code. 2015-03-15 10:09:22 -07:00
Thorbjørn Lindeijer 1099c75c77 Added Num.atan(x)
Maps to the C function atan2.
2015-03-15 16:43:02 +01:00
Thorbjørn Lindeijer 42dd7cdad4 Added more goniometry Num methods
Num.acos
Num.asin
Num.atan
2015-03-15 16:29:56 +01:00
Thorbjørn Lindeijer 09bcf5ad98 Added Num.tan
Strange omission with Num.sin and Num.cos already available.
2015-03-15 16:29:56 +01:00
Thorbjørn Lindeijer fc1dc4c54b Moved List.contains to Sequence.contains, added tests and docs 2015-03-15 15:59:42 +01:00
Bob Nystrom 92c17e81f6 Reorganize source files.
This makes it clear which files are part of the VM (i.e. the Wren library)
and which are part of the CLI. Makes a directory for the latter so it has
some room to grow.

This probably totally broke the VS project. If you can fix that, send me
a PR!
2015-03-14 15:00:50 -07:00
Bob Nystrom 5459993857 Add Class.supertype.
Thanks, Michel!
2015-03-14 09:48:45 -07:00
Bob Nystrom 26fb5eb525 Simplify WrenVM initialization. 2015-03-14 09:36:27 -07:00
Bob Nystrom 34213ddc8a Clean up debug trace macros.
Thanks, Michel!
2015-03-14 09:29:17 -07:00
Bob Nystrom 69567c5eb5 Control string representation of infinity. 2015-03-13 07:35:10 -07:00
Bob Nystrom 3ac7d80af5 Cast size_t arguments to printf(). 2015-03-13 07:27:11 -07:00
Bob Nystrom 46aaff03bc Clean up debug header preamble. 2015-03-13 07:26:42 -07:00
Bob Nystrom 48163087de Merge pull request #215 from gsmaverick/spelling-fix
Fix spelling on error.
2015-03-12 07:26:29 -07:00
Bob Nystrom b4e029fbf3 Pass char* to error(). 2015-03-11 07:31:18 -07:00
Gavin Schulz 4895c78f9d Fix incorrect comment. 2015-03-08 18:22:17 -07:00
Gavin Schulz 28268f19ba Fix spelling on error. 2015-03-08 17:44:24 -07:00
Bob Nystrom 72baefe497 Clean up some outdated TODOs. 2015-03-07 14:10:34 -08:00
Bob Nystrom b36b71d3c6 Merge pull request #212 from soveran/io-read-eof
Change IO.read to return null on EOF
2015-03-07 13:47:07 -08:00
Bob Nystrom 98c5e04f9a Clean up internal Map API.
Thanks, Michel!
2015-03-07 12:41:18 -08:00
Bob Nystrom 05ba7d9fbf Add fiber features needed for to write an external scheduler:
- Allow yielding the main fiber. This exits the interpreter. The
  host can resume it by calling a method.
- Allow getting a reference to the current fiber.
2015-03-07 12:32:11 -08:00
Michel Martens 542a783cb4 Change IO.read to return null on EOF 2015-03-07 09:10:18 +00:00
Bob Nystrom 7aacf02a00 Tweak num methods a bit. 2015-03-06 22:52:42 -08:00