sod
8 years agosrc/parser/scanner-proto.lisp: Reorder declarations.
Mark Wooding [Sat, 15 Aug 2015 15:19:47 +0000 (16:19 +0100)]
src/parser/scanner-proto.lisp: Reorder declarations.

The `token-scanner' and `token-scanner-place' objects refer to each
other recursively through their slot types.  SBCL's loader objects to
this if `token-scanner-place' -- a structure type -- is first.  Reorder
them so that `token-scanner' -- a CLOS class -- is first, because that
seems to work better.

8 years agosrc/class-output.lisp: Fix docstring grammar.
Mark Wooding [Sat, 15 Aug 2015 15:16:25 +0000 (16:16 +0100)]
src/class-output.lisp: Fix docstring grammar.

8 years agosrc/builtin.lisp: Delete unused variable binding.
Mark Wooding [Sat, 15 Aug 2015 15:15:58 +0000 (16:15 +0100)]
src/builtin.lisp: Delete unused variable binding.

8 years agosrc/foo.sod: Split `Second' off into its own separate chain.
Mark Wooding [Sat, 15 Aug 2015 15:15:16 +0000 (16:15 +0100)]
src/foo.sod: Split `Second' off into its own separate chain.

8 years agolib/sod.h: New macro `SOD_INSTBASE' to find the allocated base address.
Mark Wooding [Sat, 15 Aug 2015 15:14:32 +0000 (16:14 +0100)]
lib/sod.h: New macro `SOD_INSTBASE' to find the allocated base address.

This turns out to be useful, e.g., for freeing dynamically allocated
objects.  A destructor method might usefully say something like

free(SOD_INSTBASE(me));

after actually releasing any other resources.

8 years agoAn actual running implementation, which makes code that compiles. 0.1.0
Mark Wooding [Sat, 15 Aug 2015 02:28:59 +0000 (03:28 +0100)]
An actual running implementation, which makes code that compiles.

I've not tested it very hard yet.  There are probably lots of small
bugs, and maybe some big ones.  There are certainly rough edges in the
error handling, particularly in the class-body parser which will get
cleaned up later.

10 years agoMore WIP.
Mark Wooding [Wed, 24 Jul 2013 21:54:12 +0000 (22:54 +0100)]
More WIP.

10 years agoToday's wip.
Mark Wooding [Tue, 23 Jul 2013 23:49:14 +0000 (00:49 +0100)]
Today's wip.

10 years agoRefactoring more or less complete. Maybe I should test it.
Mark Wooding [Wed, 17 Jul 2013 20:03:27 +0000 (21:03 +0100)]
Refactoring more or less complete.  Maybe I should test it.

10 years agoDaily work in progress.
Mark Wooding [Mon, 15 Jul 2013 00:54:09 +0000 (01:54 +0100)]
Daily work in progress.

10 years agoWork in progress. Mostly bug fixing.
Mark Wooding [Sun, 14 Jul 2013 15:09:22 +0000 (16:09 +0100)]
Work in progress.  Mostly bug fixing.

10 years agoFix formatting badness.
Mark Wooding [Fri, 12 Jul 2013 01:39:37 +0000 (02:39 +0100)]
Fix formatting badness.

10 years agoRemove apparently dead files.
Mark Wooding [Fri, 12 Jul 2013 01:25:39 +0000 (02:25 +0100)]
Remove apparently dead files.

10 years agoDon't write Lisp symbol names in uppercase: use `...' instead.
Mark Wooding [Fri, 12 Jul 2013 01:24:21 +0000 (02:24 +0100)]
Don't write Lisp symbol names in uppercase: use `...' instead.

Otherwise it's too confusing to distinguish them from metavariables.

10 years agoChange naming convention around.
Mark Wooding [Fri, 12 Jul 2013 00:37:09 +0000 (01:37 +0100)]
Change naming convention around.

Put `test', `proto', `impl', `parse', `output' on the end, not the
start.  This keeps pieces of the same chunk of functionality together in
listings.

10 years agoWork in progress, recovered from old crybaby.
Mark Wooding [Fri, 12 Jul 2013 00:22:58 +0000 (01:22 +0100)]
Work in progress, recovered from old crybaby.

13 years agoMassive reorganization in progress.
Mark Wooding [Fri, 2 Jul 2010 09:11:35 +0000 (10:11 +0100)]
Massive reorganization in progress.

The code is a complete disaster area right now.

14 years agoIt lives!
Mark Wooding [Tue, 20 Oct 2009 00:42:17 +0000 (01:42 +0100)]
It lives!

The module parser is more-or-less done.  Output is more-or-less done.
Outstanding.  Now to remove the bugs...

14 years agoAdd .gitattributes file.
Mark Wooding [Sat, 17 Oct 2009 23:41:01 +0000 (00:41 +0100)]
Add .gitattributes file.

14 years agoAnother day, another commit.
Mark Wooding [Sat, 17 Oct 2009 23:05:32 +0000 (00:05 +0100)]
Another day, another commit.

Main highlight is that we now have output of class instances and direct
methods.  Yet to come are effective methods and entries, and vtables.

Today's work has been surprisingly focussed.  Incidental changes are
few; the most significant is probably trimming trailing whitespace from
the last line of a fragment, which eliminates some ugly blank lines in
the output.

14 years agoLots more has happened.
Mark Wooding [Sat, 17 Oct 2009 00:10:34 +0000 (01:10 +0100)]
Lots more has happened.

  * all reserved words are now banished
  * an ilayout now consists of, for each chain, a union of the ichains
    for each class on the chain -- makes referring to the bit which
    represents a superclass instance trivial; not yet hacked the
    effective method codegen to cope
  * unnecessary ichain and vt structures (ones which are copies of a
    superclass's) are suppressed -- we use the original directly
    (must document the new chain-tail tracking stuff); only one new
    ichain and vtable structure per class (though we still need all-new
    vtmsgs for each superclass).
  * header file output is complete and functional

14 years agoMore work. Highlights:
Mark Wooding [Thu, 15 Oct 2009 09:24:32 +0000 (10:24 +0100)]
More work.  Highlights:

  * start using new module import protocol
  * move bootstrapping to separate file
  * eliminated most of the non-C reserved words

Maybe I'll eliminate the C reserved words too.  It'll make the grammar
easier to extend.

14 years agoAnother day.
Mark Wooding [Wed, 14 Oct 2009 22:39:31 +0000 (23:39 +0100)]
Another day.

  * Wrote (but haven't compiled!) C runtime code.
  * Fettled runtime header.
  * Reformatted class definitions.  They don't deserve that much space.

Revamped module protocol to come.

14 years agoVery ragged work-in-progress.
Mark Wooding [Wed, 14 Oct 2009 00:17:21 +0000 (01:17 +0100)]
Very ragged work-in-progress.

Most parts are in place.  Much rearrangement is needed.

14 years agoEarly work-in-progress.
Mark Wooding [Wed, 14 Oct 2009 00:09:19 +0000 (01:09 +0100)]
Early work-in-progress.

Much needs to be done.