_why [Wed, 12 Aug 2009 05:52:29 +0000 (22:52 -0700)]
* test/flow/except.pn: use safe `to` syntax until i decide how to remedy.
_why [Wed, 12 Aug 2009 05:48:13 +0000 (22:48 -0700)]
* tools/compile.c: parser tool fix. memory corruption due to an inflexible buffer.
_why [Tue, 11 Aug 2009 18:36:41 +0000 (11:36 -0700)]
* tools/greg: suppress warning about unused 'sig', since it's a parse_from rule.
_why [Tue, 11 Aug 2009 18:21:15 +0000 (11:21 -0700)]
* core: rename pn-ast.c to ast.c and so on, since the parser has shrunk and the pn- prefix has gone away.
_why [Tue, 11 Aug 2009 18:08:45 +0000 (11:08 -0700)]
* core/table.c: fix Tuple(put) to allow negative numbers or pushing onto the end of the array.
* core/potion.c: avoid use of the multiline ending, since it hasn't been introduced yet in the new parser.
_why [Tue, 11 Aug 2009 18:08:06 +0000 (11:08 -0700)]
* doc: adding a description of lick unquoted values and updating the numbers section.
_why [Tue, 11 Aug 2009 14:48:22 +0000 (09:48 -0500)]
* core/syntax.g: reset P->source after every parse.
_why [Tue, 11 Aug 2009 14:33:04 +0000 (07:33 -0700)]
* core/string.c: expand byte buffers a bit extra in advance, to avoid so much reallocation.
_why [Tue, 11 Aug 2009 14:04:54 +0000 (07:04 -0700)]
* core/syntax.g: no need to alloc PNAsm buffer for potion_sig.
_why [Tue, 11 Aug 2009 13:58:58 +0000 (06:58 -0700)]
* core/syntax.g: merging sig.g here. updating to use reentrant code. still need to get all parser structs stored in gc.
_why [Mon, 10 Aug 2009 21:13:59 +0000 (14:13 -0700)]
* test: mark some tests as broken that have outdated syntax.
* core/syntax.g: allow braces and parens to start on a newline.
_why [Mon, 10 Aug 2009 21:04:56 +0000 (16:04 -0500)]
* Makefile: bsd rule for .g -> .c.
_why [Mon, 10 Aug 2009 20:55:18 +0000 (13:55 -0700)]
* core/sig.g: grammar for method signatures in C.
_why [Mon, 10 Aug 2009 20:54:40 +0000 (13:54 -0700)]
* core: removing ragel and lemon, switching exclusively to peg/leg.
_why [Mon, 10 Aug 2009 18:18:37 +0000 (11:18 -0700)]
* core/syntax.g: improve nesting of brackets and parens within unquoted licks.
_why [Mon, 10 Aug 2009 17:56:31 +0000 (10:56 -0700)]
* core/syntax.g: make assignment and prefix operators right-recursive. fix logic operators.
_why [Mon, 10 Aug 2009 16:52:07 +0000 (09:52 -0700)]
* core/syntax.g: operator precedence. path fixes.
_why [Mon, 10 Aug 2009 15:39:53 +0000 (08:39 -0700)]
* core/syntax.g: fix number-related parsings.
* test/numbers/neg.pn: parser isn't going to allow multiple prefix operators for now.
_why [Mon, 10 Aug 2009 05:06:16 +0000 (22:06 -0700)]
* core/syntax.g: escape codes in strings. newlines swallowed after non-terminal characters.
_why [Mon, 10 Aug 2009 04:48:47 +0000 (21:48 -0700)]
* core: working to consolidate PNAsm and PNBytes into a single structure.
_why [Sun, 9 Aug 2009 05:17:47 +0000 (22:17 -0700)]
* tools/: add reentrant peg/leg.
_why [Sun, 9 Aug 2009 05:14:57 +0000 (22:14 -0700)]
* core/syntax.g: tuple building problems.
* core/potion.c: -G flag for using the new parser.
_why [Sat, 8 Aug 2009 15:57:54 +0000 (08:57 -0700)]
* core/syntax.g: method calls and unquoted licks.
_why [Fri, 7 Aug 2009 05:14:56 +0000 (22:14 -0700)]
* core/syntax.g: a lot of operators, assignment, keyed tables.
_why [Thu, 6 Aug 2009 18:48:51 +0000 (11:48 -0700)]
* core/syntax.g: beginning a new parser using a reentrant, hacked peg/leg.
_why [Wed, 5 Aug 2009 17:20:19 +0000 (10:20 -0700)]
* core/vm-x86.c: optimizing addition, subtration, multiplication and bit negation.
_why [Thu, 30 Jul 2009 23:58:29 +0000 (16:58 -0700)]
* test/api/potion-test.c: broken eval test. needed to pass closure in as the second arg.
_why [Thu, 30 Jul 2009 23:45:04 +0000 (16:45 -0700)]
* core/compile.c: fixing `make JIT=0`.
_why [Thu, 30 Jul 2009 23:35:55 +0000 (16:35 -0700)]
* test/flow/except.pn: evidence that the counter is incrementing.
_why [Thu, 30 Jul 2009 23:32:34 +0000 (18:32 -0500)]
* core/vm-x86.c: pad the stack 8 bytes on 32-bit, since the `self` slot is getting clobbered.
_why [Thu, 30 Jul 2009 23:16:17 +0000 (16:16 -0700)]
* core/callcc.c: eliminating use of a register, some 32-bit platforms don't have so many GENERAL_REGS.
_why [Wed, 29 Jul 2009 05:10:37 +0000 (22:10 -0700)]
* test/classes/creature.pn: another test of subclasses and methods.
_why [Wed, 29 Jul 2009 05:05:40 +0000 (22:05 -0700)]
* core/gc.c: deleting strings from the table that have fallen out of use.
_why [Tue, 28 Jul 2009 20:27:49 +0000 (13:27 -0700)]
* core: allow safe compilation on non-x86, although continuations and jit will not function for now.
_why [Sat, 18 Jul 2009 15:23:29 +0000 (08:23 -0700)]
* core: object inspection methods may use byte strings within, but ultimately return UTF-8 strings.
_why [Fri, 17 Jul 2009 14:09:29 +0000 (07:09 -0700)]
* core/callcc.c: bug in continuations. needed to send back `self` rather than `cl` from the yield.
* test: a few tests of continuations.
_why [Fri, 17 Jul 2009 07:16:30 +0000 (00:16 -0700)]
* core/callcc.c: remaining callee-saved registers on 64-bit. cool, bytecode vm is working!
_why [Fri, 17 Jul 2009 07:11:27 +0000 (02:11 -0500)]
* core/callcc.c: place callee-saved registers in the continuation.
_why [Fri, 17 Jul 2009 06:03:05 +0000 (01:03 -0500)]
* test/flow/callcc.pn: remove the test until it works with the bytecode vm.
_why [Fri, 17 Jul 2009 06:00:48 +0000 (23:00 -0700)]
* core/table.c: `push` and `append` for lists.
* core/objmodel.c: renamed `callcc` to `here`.
_why [Thu, 16 Jul 2009 23:06:37 +0000 (18:06 -0500)]
* core: simplifying the forwarding of P->strings and vt->methods lookup tables. anyway, bug in reallocation of vt->methods, needed to be touched.
_why [Thu, 16 Jul 2009 21:59:33 +0000 (14:59 -0700)]
* core/callcc.c: unused variable `n`.
_why [Thu, 16 Jul 2009 21:47:18 +0000 (14:47 -0700)]
* test: changing some test numbers with precision problems while floats are in effect.
_why [Thu, 16 Jul 2009 21:42:16 +0000 (14:42 -0700)]
* core/gc.c: keep continuations constantly in the write barrier, since their contents can change without notice.
_why [Thu, 16 Jul 2009 17:05:51 +0000 (12:05 -0500)]
* core/gc.c: continuations are scanned just like the normal stack.
* core/callcc.c: giving continuations their own class.
_why [Thu, 16 Jul 2009 15:25:01 +0000 (08:25 -0700)]
* core/pn-scan.rl: comments eat ending newlines.
_why [Thu, 16 Jul 2009 14:51:24 +0000 (07:51 -0700)]
* core/callcc.c: had the 64-bit #if conditional wrong. eliminated use of %4 in the asm.
_why [Thu, 16 Jul 2009 14:49:54 +0000 (09:49 -0500)]
* core/callcc.c: continuations for 32-bit.
_why [Thu, 16 Jul 2009 06:31:39 +0000 (23:31 -0700)]
* core/callcc.c: return the continuation from `yield`, to be sure it is stored in the variable again.
* core/table.c: `pop` method for lists.
_why [Thu, 16 Jul 2009 06:10:24 +0000 (23:10 -0700)]
* core/callcc.c: working on improving the callcc code to honor stack direction.
_why [Wed, 15 Jul 2009 03:39:32 +0000 (20:39 -0700)]
* core/string.c: fwd byte strings before converting to intern'd strings.
_why [Tue, 14 Jul 2009 19:25:22 +0000 (12:25 -0700)]
* core/vm-x86.c: fix 4+ argument functions on x86_64.
* test/closures/long.pn: test of 14 arguments (the present limit.)
_why [Tue, 14 Jul 2009 18:29:08 +0000 (11:29 -0700)]
* core/string.c: put state in the write barrier if the string table moves.
_why [Tue, 14 Jul 2009 15:56:05 +0000 (08:56 -0700)]
* core/string.c: Bytes `string` method converts to a UTF-8 string.
* core/vm-x86.c: fix for callset op.
_why [Mon, 13 Jul 2009 21:02:07 +0000 (14:02 -0700)]
* core/vm.c: the bytecode vm math is now equivalent to the jit's math.
* core/number.c: simplifying potion_decimal.
_why [Mon, 13 Jul 2009 18:36:39 +0000 (11:36 -0700)]
* core/number.c: eliminating arprec code to focus on a double-based struct. may switch to _Decimal64 after some benchmarking. and then will remerge the arprec stuff.
_why [Mon, 13 Jul 2009 17:15:11 +0000 (10:15 -0700)]
* core/number.c: importing more arprec math.
_why [Sun, 12 Jul 2009 05:41:15 +0000 (22:41 -0700)]
* core: beginning a little decimal representation based on arprec. <crd.lbl.gov/~dhbailey/mpdist/>
_why [Fri, 10 Jul 2009 20:42:54 +0000 (13:42 -0700)]
* core/vm-x86.c: trimming down the ADD and SUB ops by switching edx and eax.
_why [Fri, 10 Jul 2009 05:29:37 +0000 (22:29 -0700)]
* core/gc.c: first phase should be a minor phase. allocate a rough old area first and then kick it off.
_why [Thu, 9 Jul 2009 19:07:20 +0000 (12:07 -0700)]
* example/recursive.pn: an (old?) shootout example testing recursion. need to do floats.
_why [Thu, 9 Jul 2009 17:18:33 +0000 (10:18 -0700)]
* core: added WAVY bitwise negation operator.
_why [Thu, 9 Jul 2009 16:52:43 +0000 (09:52 -0700)]
* core: finessing the compiler to do normal binding in the case of no arguments present. previous checkin had problems with optional arguments.
_why [Thu, 9 Jul 2009 16:33:20 +0000 (09:33 -0700)]
* core: when calling messages, allow immediate dispatch if the message receives no arguments. (avoiding use of: table () ('key') syntax)
_why [Thu, 9 Jul 2009 15:37:49 +0000 (08:37 -0700)]
* core/vm-x86.c: removing the jit's inline cache, the code is so irrelevant i'll need to start over.
_why [Thu, 9 Jul 2009 13:44:32 +0000 (06:44 -0700)]
* core/gc.h: small scripts don't need megs. estimate a good birth size based on amount needed and size of the older gen.
_why [Thu, 9 Jul 2009 04:51:42 +0000 (21:51 -0700)]
* core/pn-scan.rl: fix for table-only lick nodes.
_why [Thu, 9 Jul 2009 04:43:34 +0000 (21:43 -0700)]
* core/pn-scan.rl: allowing flexible unquoted strings in licks.
* test/data/grammar.pn: rough sketch of a peg-style grammar done in unquoted strings.
_why [Mon, 6 Jul 2009 04:51:00 +0000 (21:51 -0700)]
* core/compile.c: empty closures and tables bug. thanks, @henkboom!
_why [Mon, 6 Jul 2009 04:36:11 +0000 (21:36 -0700)]
* core: eliminating the inline method cache from C. i'll get back to this once methods can be stored in a fixed memory area.
_why [Sat, 4 Jul 2009 22:48:09 +0000 (15:48 -0700)]
* core/file.c: load environment variables in the Env table.
_why [Sat, 4 Jul 2009 13:46:42 +0000 (06:46 -0700)]
* core/vm-x86.c: fix for LOADK op in the jit. problems reaching beyond 10 or so entries in the `values` array.
_why [Fri, 3 Jul 2009 14:34:48 +0000 (07:34 -0700)]
* core/khash.h: the last malloc departs.
_why [Fri, 3 Jul 2009 06:17:56 +0000 (23:17 -0700)]
* core/pn-gram.y: allow a newline or separator before a square bracket.
_why [Fri, 3 Jul 2009 06:01:46 +0000 (23:01 -0700)]
* core/pn-scan.rl: passing syntax errors through an Error object.
* core/potion.c: print errors from the interactive mode and script run.
_why [Fri, 3 Jul 2009 05:08:10 +0000 (22:08 -0700)]
* core/string.c: another malloc gone. added potion_str_format for building strings from c using printf's syntax.
_why [Thu, 2 Jul 2009 22:47:16 +0000 (15:47 -0700)]
* core/string.c: fixing the `at` method to use `slice`. a bug when using strings as functions.
_why [Thu, 2 Jul 2009 22:42:22 +0000 (15:42 -0700)]
* core/gc.c: two bugs found in the new table code. first, hashes weren't being checked for forwarding pointers in the gc. second, the string table wasn't being updated with its new pointer. with these changes in place, my rigorous test of table allocation is passing.
* example/gcbench-table.pn: a test of allocation a few hundred megs of tables.
_why [Thu, 2 Jul 2009 22:01:14 +0000 (15:01 -0700)]
* core: hi, everybody. this work i'm checking in surrounds the representation of hash tables in memory. i'm trying to squeeze down the size they take up. potion has three different types of hash tables: the basic table, the method table, and the strings table. this is the last object structure to be moved into gc (there are only two small malloc calls left in Potion.) previously, a basic hash table would take up 48 bytes of overhead on 64-bit. in addition, the table object was split into two parts: the immutable table object and a mutable table array. with this code, the table overhead is 24 bytes and the objects are combined. this means every table object is mutable and will move about in memory (like lists already do.) the total cost of a hashtable is now: 24 bytes + 4 bytes for every 16 pairs + each pair (8 bytes * 2). for comparison, a list is 16 bytes + each item (8 bytes).
_why [Thu, 2 Jul 2009 17:33:12 +0000 (12:33 -0500)]
* core/vm-x86.c: incorrect jump on x86.
_why [Thu, 2 Jul 2009 16:29:12 +0000 (09:29 -0700)]
* core/khash.h: reworking hashes to keep the pairs in potion's heap.
_why [Thu, 2 Jul 2009 07:12:19 +0000 (00:12 -0700)]
* core/objmodel.c: moving the jit mcache into the x86 code.
_why [Thu, 2 Jul 2009 05:00:53 +0000 (22:00 -0700)]
* core: stubbed out operator overloading in the jit. anything that isn't an integer goes through method dispatch.
_why [Wed, 1 Jul 2009 19:37:40 +0000 (12:37 -0700)]
* doc/start.textile: some notes on paths, conditionals.
_why [Tue, 30 Jun 2009 23:07:26 +0000 (16:07 -0700)]
* doc/start.textile: a note about whitespace.
_why [Tue, 30 Jun 2009 22:03:07 +0000 (17:03 -0500)]
* core/number.c: the `times` and `to` methods return how many times they ran the block.
* core/string.c: broken PN_ATOI call.
_why [Tue, 30 Jun 2009 21:51:39 +0000 (14:51 -0700)]
* core/compile.c: a ?query call should return nil if no message is found.
_why [Tue, 30 Jun 2009 21:45:38 +0000 (14:45 -0700)]
* core/pn-scan.rl: parsing hex numbers. changing the single quote escape char to ''. allowing space after the question mark in a query call.
* doc/start.textile: beginning the section on syntax details.
_why [Tue, 30 Jun 2009 16:39:20 +0000 (09:39 -0700)]
* core: retrieve the ast for a closure using `cl code tree`. still need to work on methods for modifying and re-compiling.
_why [Tue, 30 Jun 2009 14:33:36 +0000 (07:33 -0700)]
* core/objmodel.c: store function signatures with the closure, display the signature on Function#string.
_why [Sat, 27 Jun 2009 15:50:58 +0000 (08:50 -0700)]
* core/compile.c: allow values to be called directly as functions.
_why [Sat, 27 Jun 2009 15:21:06 +0000 (08:21 -0700)]
* test/numbers/to.pn: test variable use.
_why [Sat, 27 Jun 2009 15:18:55 +0000 (08:18 -0700)]
* core/pn-gram.y: an awkward way of doing mixed block/args.
* core/number.c: the `to` method.
_why [Sat, 27 Jun 2009 14:38:27 +0000 (09:38 -0500)]
* core/vm-x86.c: further jump fixes on 32-bit.
_why [Sat, 27 Jun 2009 14:29:28 +0000 (09:29 -0500)]
* core/vm-x86.c: fixing up new jumps in the call op.
_why [Sat, 27 Jun 2009 14:14:32 +0000 (07:14 -0700)]
* core/table.c: the `first` and `last` methods.
* test/tutorial: all examples from the pamphlet.
_why [Sat, 27 Jun 2009 13:52:43 +0000 (06:52 -0700)]
* core: restructure call and callset to allow keyword args.
_why [Sat, 27 Jun 2009 05:53:44 +0000 (22:53 -0700)]
* doc/doc.css: text colors.
_why [Fri, 26 Jun 2009 17:01:26 +0000 (10:01 -0700)]
* doc/start.textile: fixing license spacing.
_why [Fri, 26 Jun 2009 16:46:36 +0000 (09:46 -0700)]
* doc/start.textile: breaking up the pamphlet with titles.