_why [Fri, 26 Jun 2009 14:34:12 +0000 (07:34 -0700)]
* core/number.c: the `step` method.
_why [Fri, 26 Jun 2009 06:28:55 +0000 (23:28 -0700)]
* doc/start.textile: listing some patterns in the code.
_why [Fri, 26 Jun 2009 04:01:36 +0000 (21:01 -0700)]
* core/pn-scan.rl: working on better error messages for missing tokens.
_why [Thu, 25 Jun 2009 23:45:12 +0000 (16:45 -0700)]
Merge branch 'master' of orleans.hobix.com:~/git/potion
_why [Thu, 25 Jun 2009 23:43:37 +0000 (16:43 -0700)]
* core/compile.c: fixing method queries.
_why [Thu, 25 Jun 2009 21:13:35 +0000 (16:13 -0500)]
* Makefile: fix warnings on 32-bit freebsd.
_why [Thu, 25 Jun 2009 20:59:35 +0000 (13:59 -0700)]
* core/pn-gram.y: assignment math combo operations.
_why [Thu, 25 Jun 2009 18:09:52 +0000 (11:09 -0700)]
* test/classes/monkey.pn: illustrate placing a value in the method table.
_why [Thu, 25 Jun 2009 18:06:14 +0000 (11:06 -0700)]
* test/classes/monkey.pn: how to override core classes, which isn't strictly banned.
_why [Thu, 25 Jun 2009 17:11:35 +0000 (10:11 -0700)]
* core/potion.c: fix the repl to handle syntax errors okay.
* core/pn-scan.rl: bug in reporting character number on the first line.
* core/objmodel.c: the `exit` method.
_why [Thu, 25 Jun 2009 16:59:35 +0000 (09:59 -0700)]
* core/pn-scan.rl: show an excerpt of error-causing code. identifying non-UTF8 characters in syntax errors.
_why [Thu, 25 Jun 2009 16:38:46 +0000 (09:38 -0700)]
* core/pn-scan.rl: working on getting some readable syntax errors.
_why [Thu, 25 Jun 2009 14:32:03 +0000 (07:32 -0700)]
* README: updating the feature list, correcting some things.
_why [Thu, 25 Jun 2009 14:13:19 +0000 (07:13 -0700)]
* core/vm.c: allow potion_vm_proto to unpack arguments properly.
_why [Thu, 25 Jun 2009 14:05:00 +0000 (07:05 -0700)]
* core/number.c: the `times` method.
_why [Thu, 25 Jun 2009 13:49:20 +0000 (06:49 -0700)]
* core/compile.c: basic block arguments.
_why [Thu, 25 Jun 2009 06:20:09 +0000 (23:20 -0700)]
* doc: the short potion pamphlet.
_why [Thu, 25 Jun 2009 04:11:58 +0000 (21:11 -0700)]
* core/file.c: a tiny `read` method wrapping fgets.
* core/potion.c: and a tiny repl to go with it. (doesn't keep track of locals yet.)
_why [Wed, 24 Jun 2009 22:36:52 +0000 (15:36 -0700)]
* core/primitive.c: casting booleans and nil to numbers.
_why [Wed, 24 Jun 2009 16:29:35 +0000 (09:29 -0700)]
* core/compile.c: merging code for `loop` and `while`.
* core/vm-x86.c: fixing backwards jumps.
_why [Wed, 24 Jun 2009 15:38:37 +0000 (08:38 -0700)]
* example/fannkuch.pn: using callset.
_why [Wed, 24 Jun 2009 14:25:08 +0000 (07:25 -0700)]
* core/vm-x86.c: unneeded mov of the counter arg in call op.
_why [Wed, 24 Jun 2009 14:23:50 +0000 (07:23 -0700)]
* core/vm-x86.c: support for callset in the jit.
_why [Wed, 24 Jun 2009 14:21:16 +0000 (07:21 -0700)]
* test/objects: test of callset.
_why [Wed, 24 Jun 2009 14:18:27 +0000 (07:18 -0700)]
* core: callset op. (such as: ary (0) = x)
_why [Wed, 24 Jun 2009 06:51:40 +0000 (23:51 -0700)]
* example: speedier gc benchmarks using classes.
_why [Wed, 24 Jun 2009 06:49:36 +0000 (23:49 -0700)]
* core/objmodel.c: place object in the write barrier if an ivar is updated.
_why [Wed, 24 Jun 2009 06:24:37 +0000 (23:24 -0700)]
* core/compile.c: place `self` before any call to `class`, to clear the first register.
_why [Wed, 24 Jun 2009 06:11:43 +0000 (23:11 -0700)]
* core/compile.c: bug in compilation of the upval/local attachments to each proto.
_why [Wed, 24 Jun 2009 05:29:56 +0000 (22:29 -0700)]
* core/vm-x86.c: the closure is already available on the stack, no need to use register 1.
_why [Wed, 24 Jun 2009 04:24:21 +0000 (21:24 -0700)]
* core/gc.c: track the type catalog and use the write barrier for type changes.
_why [Wed, 24 Jun 2009 04:05:21 +0000 (21:05 -0700)]
* core/gc.c: mark type constructors.
_why [Wed, 24 Jun 2009 03:42:40 +0000 (20:42 -0700)]
* core/vm-x86.c: support for DEF op in the jit.
_why [Wed, 24 Jun 2009 02:04:41 +0000 (20:04 -0600)]
* core/vm-x86.c: get the type jumps right for CALL op. nix superfluous X86_PRE macros.
_why [Wed, 24 Jun 2009 01:39:07 +0000 (19:39 -0600)]
* core/vm-x86.c: use rcx for loading of 32-bit argument slots, since most of the other jit code uses rax or rdx.
_why [Tue, 23 Jun 2009 23:09:03 +0000 (16:09 -0700)]
* core/vm-x86.c: calling of the constructor during OP_CALL in the jit.
_why [Tue, 23 Jun 2009 18:01:56 +0000 (11:01 -0700)]
* core/vm-x86.c: jit'd class op.
_why [Tue, 23 Jun 2009 17:43:30 +0000 (10:43 -0700)]
* core/vm-x86.c: code for jit'd GETPATH and SETPATH.
_why [Tue, 23 Jun 2009 17:39:10 +0000 (10:39 -0700)]
* core/vm.c: uniting the bytecode layout for table and path ops.
_why [Tue, 23 Jun 2009 14:37:06 +0000 (07:37 -0700)]
* core: stubbing out OP_DEF in the jit.
_why [Tue, 23 Jun 2009 14:34:26 +0000 (07:34 -0700)]
* test/classes/def.pn: test of defining methods.
_why [Tue, 23 Jun 2009 14:32:09 +0000 (07:32 -0700)]
* core: adding OP_DEF for defining methods.
_why [Tue, 23 Jun 2009 05:37:26 +0000 (22:37 -0700)]
* core/compile.c: let all constructors return self.
_why [Tue, 23 Jun 2009 05:06:04 +0000 (22:06 -0700)]
* test/classes/sub.pn: unbelievable.
_why [Tue, 23 Jun 2009 05:02:27 +0000 (22:02 -0700)]
* core/string.c: must use malloc for potion_str2, since modifying the string... well sometimes that string is going to be stored in the strings table and the hashes could be close.
_why [Tue, 23 Jun 2009 04:11:22 +0000 (21:11 -0700)]
* core/compile.c: compile initializer properly.
_why [Mon, 22 Jun 2009 19:13:37 +0000 (12:13 -0700)]
* core/objmodel.c: the `about` method.
_why [Mon, 22 Jun 2009 05:15:52 +0000 (22:15 -0700)]
* core: calling of object constructors in the vm.
_why [Mon, 22 Jun 2009 04:00:20 +0000 (21:00 -0700)]
* core/objmodel.c: store constructor in the type.
_why [Mon, 22 Jun 2009 03:40:57 +0000 (20:40 -0700)]
* core: working on inheritance.
_why [Sun, 21 Jun 2009 21:58:59 +0000 (14:58 -0700)]
* core/compile.c: working on GETPATH and SETPATH ops.
_why [Sun, 21 Jun 2009 21:12:03 +0000 (14:12 -0700)]
* core/compile.c: beginning compilation into the CLASS op.
_why [Sat, 20 Jun 2009 23:02:26 +0000 (16:02 -0700)]
* core/opcodes.h: added CLASS op.
* core/internal.c: potion_class function.
_why [Sat, 20 Jun 2009 19:50:03 +0000 (12:50 -0700)]
* core/vm-x86.c: move ivar lookup table compiler into platform file.
_why [Sat, 20 Jun 2009 19:22:20 +0000 (14:22 -0500)]
* core/objmodel.c: fix jmp in the ivar lookup for 32-bit.
_why [Sat, 20 Jun 2009 19:10:33 +0000 (12:10 -0700)]
* core/objmodel.c: working on assembled version of the ivar lookup. straight-forward jumping is simpler/faster than the binary search.
_why [Sat, 20 Jun 2009 15:53:34 +0000 (08:53 -0700)]
* core/gc.h: suppress remaining warnings.
_why [Sat, 20 Jun 2009 15:51:09 +0000 (08:51 -0700)]
* core/objmodel.c: beginning work on instance variables. using a list of instance variable names, sorted by PNUniq id.
_why [Sat, 20 Jun 2009 14:58:02 +0000 (07:58 -0700)]
* core: some new table and inspection functions.
_why [Sat, 20 Jun 2009 06:26:10 +0000 (23:26 -0700)]
* core/table.c: including insertion sort and binary search for tuples, which will be used in the instance variable list on each class.
_why [Fri, 19 Jun 2009 18:32:16 +0000 (11:32 -0700)]
* example/binarytrees.pn: larger test of allocator, taken from the shootout.
* core/pn-scan.rl: fixing tab escape.
_why [Fri, 19 Jun 2009 18:04:36 +0000 (11:04 -0700)]
* example/gcbench.pn: print description for each allocation stage.
_why [Fri, 19 Jun 2009 14:45:55 +0000 (07:45 -0700)]
* core/gc.c: type size for bignums.
_why [Fri, 19 Jun 2009 14:41:08 +0000 (09:41 -0500)]
* core/vm-x86.c: fix for 32-bit LOADK op. (Potion *) must be the first argument to any call, due to potion_x86_c_arg.
_why [Fri, 19 Jun 2009 06:15:02 +0000 (23:15 -0700)]
* core/vm-x86.c: X86_MOVL is factored out, no static pointers any more.
_why [Fri, 19 Jun 2009 06:14:13 +0000 (23:14 -0700)]
* core/vm-x86.c: allocate new closure during the PROTO op.
_why [Fri, 19 Jun 2009 05:54:49 +0000 (22:54 -0700)]
* example/gcbench.pn: a translation of test/api/gc-bench.c into potion syntax.
_why [Fri, 19 Jun 2009 04:56:32 +0000 (21:56 -0700)]
* core/vm-x86.c: bug in LOADK op. since gc may move around a compiled routine's list of values (strings), the list must be looked up dynamically, using the closure value stored in the (Potion, cl, self) registers.
_why [Thu, 18 Jun 2009 23:29:24 +0000 (16:29 -0700)]
* core/vm-x86.c: bug in placing upvals in the PNClosure struct during OP_PROTO call.
_why [Thu, 18 Jun 2009 17:38:41 +0000 (10:38 -0700)]
* core/gc.c: mark the various kinds of tables in circulation.
* core/potion.h: allow protected memory region to be placed in the write barrier.
_why [Thu, 18 Jun 2009 06:10:57 +0000 (23:10 -0700)]
* core: place tables in the write barrier any time they're altered.
_why [Thu, 18 Jun 2009 06:02:37 +0000 (23:02 -0700)]
* core/gc.c: scan the protected memory space, including the main state struct and the string table during the major phase.
_why [Thu, 18 Jun 2009 05:42:55 +0000 (22:42 -0700)]
* core/string.c: no need to store pairs in the string table.
_why [Thu, 18 Jun 2009 05:40:23 +0000 (22:40 -0700)]
* core/string.c: switching main string table to store PN as key, allowing gc to move it around.
_why [Thu, 18 Jun 2009 05:16:25 +0000 (00:16 -0500)]
* core/potion.h: 32-bit ints hash as themselves. this is lame, i'd like to see nice distribution on all objects, even though strings are the most common to hash.
_why [Thu, 18 Jun 2009 04:40:25 +0000 (21:40 -0700)]
* core: trying out a change of object hashing. got this idea from steve dekorte's blog. <dekorte.com/blog/blog.cgi?do=item&id=4003> mostly i'm just trying to hold off from writing hash functions for every individual class type. it incurs a 4 byte hit per object on 32-bit, so i'm not sure if it's permanent yet.
_why [Wed, 17 Jun 2009 23:11:00 +0000 (16:11 -0700)]
* core/mt19937ar.c: including mersenne twister.
_why [Tue, 16 Jun 2009 18:19:44 +0000 (11:19 -0700)]
* core/potion.h: fixing up all boolean tests to accept nil as false.
* core/vm-x86.c: ditto (for the TEST, NOT, TESTJMP and NOTJMP ops.)
_why [Tue, 16 Jun 2009 16:14:33 +0000 (09:14 -0700)]
* core/lick.c: add `string` method to licks.
_why [Tue, 16 Jun 2009 15:57:58 +0000 (08:57 -0700)]
* core/lick.c: adding attributes to the lick-style data.
_why [Tue, 16 Jun 2009 05:52:25 +0000 (22:52 -0700)]
* test/data/html.pn: nil at end, since it's all `print` calls right now.
_why [Tue, 16 Jun 2009 05:48:01 +0000 (22:48 -0700)]
* core/lick.c: methods `licks` and `text`.
* test/data/html.pn: test of using lick to build html.
_why [Tue, 16 Jun 2009 05:37:57 +0000 (22:37 -0700)]
* core: lick.
_why [Mon, 15 Jun 2009 23:32:36 +0000 (16:32 -0700)]
* test/closures/named.pn: test of named method args.
_why [Mon, 15 Jun 2009 23:26:54 +0000 (16:26 -0700)]
* core/compile.c: fix message/variable lookup. if a message name occurs past the beginning of an expression, it's not a variable.
_why [Mon, 15 Jun 2009 23:15:31 +0000 (16:15 -0700)]
* core/compile.c: working on named args for method calls.
* core/vm.c: rearranging the OP_CALL register to order to match the layout of PN_F. (PN cl, PN self, ...)
_why [Mon, 15 Jun 2009 19:52:24 +0000 (12:52 -0700)]
* core/gc.c: fix potion_type_size for plain PNObject types.
_why [Mon, 15 Jun 2009 19:47:42 +0000 (12:47 -0700)]
* test/api/gc-test.c: fix GC tests to use updated api.
_why [Mon, 15 Jun 2009 19:32:59 +0000 (14:32 -0500)]
* core/vm-x86.c: 32-bit fix for named arguments in the jit.
_why [Mon, 15 Jun 2009 19:25:41 +0000 (12:25 -0700)]
* core: added NAMED operation for assigning a named argument, before a CALL. also, potion_sig_find for determining the order of named arguments.
_why [Mon, 15 Jun 2009 15:24:40 +0000 (08:24 -0700)]
* core/compile.c: i want macros gone in the compiler.
_why [Sun, 14 Jun 2009 13:44:31 +0000 (06:44 -0700)]
* core/table.c: an `each` method for lists.
_why [Sat, 13 Jun 2009 14:36:12 +0000 (09:36 -0500)]
* core: beginning to add instance variables to classes. working the gc benchmark around it.
_why [Sat, 13 Jun 2009 06:09:59 +0000 (23:09 -0700)]
* Makefile: move the gc benchmark into `make bench`.
* test/api/gc-bench.c: no tests in the benchmark and use the same output as the boehm GCBench.
_why [Fri, 12 Jun 2009 16:30:21 +0000 (09:30 -0700)]
* core: starting work on method signatures.
_why [Wed, 10 Jun 2009 22:33:20 +0000 (15:33 -0700)]
* test/closures/upvals.pn: test use of setlocal with non-upvals.
_why [Wed, 10 Jun 2009 16:44:26 +0000 (09:44 -0700)]
* INTERNALS: summary of the garbage collector.
_why [Wed, 10 Jun 2009 16:08:28 +0000 (09:08 -0700)]
* core: removing use of PN_FWEAK. it's an optimization that's rare and complicates the stack scanner and the VM. anyway, turns out the JIT code is slightly simplified this route.
_why [Wed, 10 Jun 2009 06:10:05 +0000 (23:10 -0700)]
* core/vm-x86.c: store upvals with the PN_FWEAK flag, like in the bytecode vm.
_why [Wed, 10 Jun 2009 03:35:27 +0000 (20:35 -0700)]
* core/gc.c: ack, finished the job on the segfault from last commit.