OSDN Git Service

joypy/Thun.git
17 months agominor cleanup
Simon Forman [Sun, 5 Feb 2023 16:38:15 +0000 (08:38 -0800)]
minor cleanup

17 months agodup
Simon Forman [Sun, 5 Feb 2023 16:37:13 +0000 (08:37 -0800)]
dup

17 months agominor cleanup
Simon Forman [Sun, 5 Feb 2023 16:12:32 +0000 (08:12 -0800)]
minor cleanup

17 months agotruthy
Simon Forman [Sun, 5 Feb 2023 07:45:13 +0000 (23:45 -0800)]
truthy

17 months agoDefinitions.
Simon Forman [Sun, 5 Feb 2023 07:08:39 +0000 (23:08 -0800)]
Definitions.

There are things to like about this implementation and things to
dislike.

Things to like:

- It works.
- The defs are baked into the wordlist.

Cons:

- The def bodies are built at start time by parsing strings.  it would
  be nice to somehow generate initializer literals if possible.  But
  would that mess up the garbage collector?
- It requires manual labor to update the defs when defs.txt changes.  It
  would be nice to have a solution that *make* can use.

17 months agoA first attempt at definitions.
Simon Forman [Sun, 5 Feb 2023 06:58:38 +0000 (22:58 -0800)]
A first attempt at definitions.

17 months agoAlmost truthy...
Simon Forman [Sun, 5 Feb 2023 06:58:16 +0000 (22:58 -0800)]
Almost truthy...

17 months agodiv and mod
Simon Forman [Sun, 5 Feb 2023 03:34:38 +0000 (19:34 -0800)]
div and mod

17 months agoclear
Simon Forman [Sun, 5 Feb 2023 03:21:13 +0000 (19:21 -0800)]
clear

17 months agobranch combinator.
Simon Forman [Sun, 5 Feb 2023 03:19:48 +0000 (19:19 -0800)]
branch combinator.

17 months agoi combinator.
Simon Forman [Sun, 5 Feb 2023 03:05:26 +0000 (19:05 -0800)]
i combinator.

17 months agoDepend on joy.h.
Simon Forman [Sun, 5 Feb 2023 02:59:59 +0000 (18:59 -0800)]
Depend on joy.h.

17 months agoMinor cleanup, print_stack.
Simon Forman [Sun, 5 Feb 2023 02:51:58 +0000 (18:51 -0800)]
Minor cleanup, print_stack.

17 months agoMinor cleanup.
Simon Forman [Sat, 4 Feb 2023 21:46:29 +0000 (13:46 -0800)]
Minor cleanup.

17 months agoExpression is a list-of-lists now.
Simon Forman [Sat, 4 Feb 2023 21:38:28 +0000 (13:38 -0800)]
Expression is a list-of-lists now.

That way we don't have to concatinate quotes onto it all the time.
Instead we amortize in the next_term() function.

17 months agoCmp, comes with GMP.
Simon Forman [Sat, 4 Feb 2023 20:47:45 +0000 (12:47 -0800)]
Cmp, comes with GMP.

17 months agoBoolean singleton values.
Simon Forman [Sat, 4 Feb 2023 19:27:03 +0000 (11:27 -0800)]
Boolean singleton values.

17 months agoBoolean singleton values.
Simon Forman [Sat, 4 Feb 2023 18:25:14 +0000 (10:25 -0800)]
Boolean singleton values.

17 months agoNode head is pointer now.
Simon Forman [Sat, 4 Feb 2023 16:12:30 +0000 (08:12 -0800)]
Node head is pointer now.

17 months agoJoyListPtr too
Simon Forman [Sat, 4 Feb 2023 15:55:11 +0000 (07:55 -0800)]
JoyListPtr too

17 months agoUse JoyListPtr.
Simon Forman [Sat, 4 Feb 2023 15:52:36 +0000 (07:52 -0800)]
Use JoyListPtr.

17 months agosub and mul through judicious (I hope) use of macros.
Simon Forman [Sat, 4 Feb 2023 03:38:18 +0000 (19:38 -0800)]
sub and mul through judicious (I hope) use of macros.

17 months agopop_any(), pop_int(), and add
Simon Forman [Fri, 3 Feb 2023 23:46:52 +0000 (15:46 -0800)]
pop_any(), pop_int(), and add

17 months agoInterpret symbols.
Simon Forman [Fri, 3 Feb 2023 19:48:32 +0000 (11:48 -0800)]
Interpret symbols.

C has function pointers, we can put them in the Gperf wordlist, this
makes the interpreter really simple.  No need for a dictionary (yet).

Implementing the basis functions will be a bit of a slog, and
I still have to implement definitions, but this is starting to shape up
nicely.

17 months agoYet more minor cleanup.
Simon Forman [Fri, 3 Feb 2023 17:39:02 +0000 (09:39 -0800)]
Yet more minor cleanup.

17 months agoMore minor cleanup.
Simon Forman [Fri, 3 Feb 2023 17:30:11 +0000 (09:30 -0800)]
More minor cleanup.

17 months agoMinor cleanup.
Simon Forman [Fri, 3 Feb 2023 17:27:30 +0000 (09:27 -0800)]
Minor cleanup.

17 months agonewJoyList
Simon Forman [Fri, 3 Feb 2023 17:18:32 +0000 (09:18 -0800)]
newJoyList

17 months agoCan haz function pointers in my worldist.
Simon Forman [Fri, 3 Feb 2023 16:13:57 +0000 (08:13 -0800)]
Can haz function pointers in my worldist.

17 months agotypedef for the win!
Simon Forman [Fri, 3 Feb 2023 04:45:28 +0000 (20:45 -0800)]
typedef for the win!

17 months agomake clean rule
Simon Forman [Fri, 3 Feb 2023 01:02:55 +0000 (17:02 -0800)]
make clean rule

17 months agoUse gperf to save memory.
Simon Forman [Fri, 3 Feb 2023 00:58:44 +0000 (16:58 -0800)]
Use gperf to save memory.

We check terms to see if they're in the wordlist, if they are we reuse
the string from the wordlist instead of allocating a new one.

(I've always wanted to use Gperf so I'm pretty stoked about this!)

17 months agoIgnore object files.
Simon Forman [Fri, 3 Feb 2023 00:14:11 +0000 (16:14 -0800)]
Ignore object files.

17 months agominor cleanup
Simon Forman [Fri, 3 Feb 2023 00:13:15 +0000 (16:13 -0800)]
minor cleanup

17 months agoGperf.
Simon Forman [Fri, 3 Feb 2023 00:12:59 +0000 (16:12 -0800)]
Gperf.

17 months agoMinor cleanup.
Simon Forman [Thu, 2 Feb 2023 21:22:11 +0000 (13:22 -0800)]
Minor cleanup.

17 months agoTrue and False values.
Simon Forman [Thu, 2 Feb 2023 21:06:07 +0000 (13:06 -0800)]
True and False values.

17 months agoCopyright, etc.
Simon Forman [Thu, 2 Feb 2023 19:14:58 +0000 (11:14 -0800)]
Copyright, etc.

17 months agoFix bug with no trailing spaces.
Simon Forman [Thu, 2 Feb 2023 18:58:03 +0000 (10:58 -0800)]
Fix bug with no trailing spaces.

Gotta update that pointer, eh?

17 months agoI was post-incrementing when I should have been pre-incrementing!
Simon Forman [Thu, 2 Feb 2023 16:52:27 +0000 (08:52 -0800)]
I was post-incrementing when I should have been pre-incrementing!

D'oh!

17 months agoSimple terms work. Problem is with sub-lists.
Simon Forman [Thu, 2 Feb 2023 16:36:13 +0000 (08:36 -0800)]
Simple terms work. Problem is with sub-lists.

17 months agoParsing isn't this hard?
Simon Forman [Thu, 2 Feb 2023 16:32:45 +0000 (08:32 -0800)]
Parsing isn't this hard?

17 months agoUm, don't do that.
Simon Forman [Thu, 2 Feb 2023 04:36:18 +0000 (20:36 -0800)]
Um, don't do that.

I wonder where the data was winding up?

17 months agoMinor cleanup.
Simon Forman [Thu, 2 Feb 2023 04:34:49 +0000 (20:34 -0800)]
Minor cleanup.

17 months agoRemove separate parser code.
Simon Forman [Thu, 2 Feb 2023 04:34:04 +0000 (20:34 -0800)]
Remove separate parser code.

17 months agoPrint true, false, and lists.
Simon Forman [Thu, 2 Feb 2023 04:33:04 +0000 (20:33 -0800)]
Print true, false, and lists.

17 months agoPrint ints.
Simon Forman [Thu, 2 Feb 2023 04:28:24 +0000 (20:28 -0800)]
Print ints.

17 months agoPrint list.
Simon Forman [Thu, 2 Feb 2023 04:09:03 +0000 (20:09 -0800)]
Print list.

17 months agoText to expr coming along.
Simon Forman [Thu, 2 Feb 2023 03:26:50 +0000 (19:26 -0800)]
Text to expr coming along.

17 months agoNeed to be able to store a string.
Simon Forman [Thu, 2 Feb 2023 02:37:10 +0000 (18:37 -0800)]
Need to be able to store a string.

17 months agoMinor cleanup.
Simon Forman [Thu, 2 Feb 2023 02:35:11 +0000 (18:35 -0800)]
Minor cleanup.

17 months agoMinor cleanup.
Simon Forman [Thu, 2 Feb 2023 01:39:37 +0000 (17:39 -0800)]
Minor cleanup.

Don't pass NULL to strpbrk().

17 months agoHandle stretches of blanks.
Simon Forman [Thu, 2 Feb 2023 01:25:54 +0000 (17:25 -0800)]
Handle stretches of blanks.

Don't create zero-length strings.

17 months agoNice skeleton of parser.
Simon Forman [Thu, 2 Feb 2023 01:17:35 +0000 (17:17 -0800)]
Nice skeleton of parser.

17 months agoAlmost there on parsing.
Simon Forman [Thu, 2 Feb 2023 00:57:46 +0000 (16:57 -0800)]
Almost there on parsing.

17 months agotrim_leading_blanks
Simon Forman [Thu, 2 Feb 2023 00:40:14 +0000 (16:40 -0800)]
trim_leading_blanks

17 months agoLet's parse.
Simon Forman [Thu, 2 Feb 2023 00:02:19 +0000 (16:02 -0800)]
Let's parse.

17 months agoDon't version the binary.
Simon Forman [Wed, 1 Feb 2023 23:26:07 +0000 (15:26 -0800)]
Don't version the binary.

17 months agoI think I'm doing this right?
Simon Forman [Wed, 1 Feb 2023 23:25:21 +0000 (15:25 -0800)]
I think I'm doing this right?

17 months agominor style glitch
Simon Forman [Wed, 1 Feb 2023 22:56:11 +0000 (14:56 -0800)]
minor style glitch

17 months agoMinor cleanup.
Simon Forman [Wed, 1 Feb 2023 22:55:21 +0000 (14:55 -0800)]
Minor cleanup.

17 months agoSome notebooks.
Simon Forman [Wed, 1 Feb 2023 22:54:07 +0000 (14:54 -0800)]
Some notebooks.

17 months agoMessing around with C.
Simon Forman [Wed, 1 Feb 2023 22:23:54 +0000 (14:23 -0800)]
Messing around with C.

21 months agoReadline support would be nice.
Simon Forman [Tue, 18 Oct 2022 00:51:12 +0000 (17:51 -0700)]
Readline support would be nice.

21 months agoThis and that.
Simon Forman [Sun, 16 Oct 2022 03:04:27 +0000 (20:04 -0700)]
This and that.

21 months agoCleanup and refactoring.
Simon Forman [Sat, 15 Oct 2022 18:05:17 +0000 (11:05 -0700)]
Cleanup and refactoring.

Bug when subtracting identical numbers.  It gives

    [false 0]

When it should be

    [false]

or better yet

    [true]

eh?

21 months agoThat seems to work: addition and subtraction.
Simon Forman [Sat, 15 Oct 2022 16:52:58 +0000 (09:52 -0700)]
That seems to work: addition and subtraction.

21 months agoMostly done with addition and subtraction.
Simon Forman [Sat, 15 Oct 2022 04:01:18 +0000 (21:01 -0700)]
Mostly done with addition and subtraction.

21 months agoNot quite as smooth as I'd hoped.
Simon Forman [Sat, 15 Oct 2022 03:36:50 +0000 (20:36 -0700)]
Not quite as smooth as I'd hoped.

21 months agoSubtraction seems to work now.
Simon Forman [Sat, 15 Oct 2022 00:52:31 +0000 (17:52 -0700)]
Subtraction seems to work now.

21 months agoProgress.
Simon Forman [Fri, 14 Oct 2022 06:10:41 +0000 (23:10 -0700)]
Progress.

21 months agoAdding like-sign bigints in Joy.
Simon Forman [Tue, 11 Oct 2022 18:37:38 +0000 (11:37 -0700)]
Adding like-sign bigints in Joy.

21 months agoMisc stuff.
Simon Forman [Tue, 11 Oct 2022 05:28:50 +0000 (22:28 -0700)]
Misc stuff.

21 months agoMinor cleanup.
Simon Forman [Tue, 11 Oct 2022 05:23:19 +0000 (22:23 -0700)]
Minor cleanup.

21 months agoAdd two lists of digits.
Simon Forman [Tue, 11 Oct 2022 03:32:57 +0000 (20:32 -0700)]
Add two lists of digits.

21 months agoI think I got it.
Simon Forman [Tue, 11 Oct 2022 03:26:59 +0000 (20:26 -0700)]
I think I got it.

Whew!  Think slow and steady FTW.  Don't get ahead of yourself.  Put the
non-recursive parts in the non-recursive branch, duh.

21 months agoDang it...
Simon Forman [Tue, 11 Oct 2022 01:39:35 +0000 (18:39 -0700)]
Dang it...

21 months agoMinor cleanup.
Simon Forman [Fri, 7 Oct 2022 01:11:24 +0000 (18:11 -0700)]
Minor cleanup.

21 months agoJust for me...
Simon Forman [Thu, 6 Oct 2022 22:36:16 +0000 (15:36 -0700)]
Just for me...

(That's how you look all clever, but it's a dick move removing the
commentary like that.)

21 months agoBisect for the win!
Simon Forman [Thu, 6 Oct 2022 22:34:34 +0000 (15:34 -0700)]
Bisect for the win!

21 months agofind_greatest()
Simon Forman [Thu, 6 Oct 2022 22:31:24 +0000 (15:31 -0700)]
find_greatest()

I think it's ready to use...

21 months agoFinish lil_divmod.
Simon Forman [Thu, 6 Oct 2022 15:04:54 +0000 (08:04 -0700)]
Finish lil_divmod.

21 months agoOne more lil bug squash.
Simon Forman [Wed, 5 Oct 2022 19:31:35 +0000 (12:31 -0700)]
One more lil bug squash.

Subsidiary functions...

Fuzz FTW.

21 months agoDiv Mod of same sign ints.
Simon Forman [Wed, 5 Oct 2022 19:21:46 +0000 (12:21 -0700)]
Div Mod of same sign ints.

That seems to be that.

21 months agoFlush out and squash some bugs.
Simon Forman [Wed, 5 Oct 2022 19:19:39 +0000 (12:19 -0700)]
Flush out and squash some bugs.

21 months agoI think I figured something out...
Simon Forman [Wed, 5 Oct 2022 17:16:47 +0000 (10:16 -0700)]
I think I figured something out...

21 months agoKinda sorta not really working,
Simon Forman [Wed, 5 Oct 2022 16:15:41 +0000 (09:15 -0700)]
Kinda sorta not really working,

as in broken.

This is getting out of hand.

21 months agoAlmost got it...
Simon Forman [Wed, 5 Oct 2022 15:49:35 +0000 (08:49 -0700)]
Almost got it...

21 months agoDivmod, yeah?
Simon Forman [Wed, 5 Oct 2022 15:27:01 +0000 (08:27 -0700)]
Divmod, yeah?

21 months agoMinor cleanup.
Simon Forman [Wed, 5 Oct 2022 05:21:58 +0000 (22:21 -0700)]
Minor cleanup.

I almost can't believe I did it.  I guess I thought it would be harder
or more involved.  Maybe divmod will be a pill?

Kinda relaxing after wasting the weekend nerd-sniped by curses.

21 months agoCopyright and executable bit
Simon Forman [Wed, 5 Oct 2022 05:19:14 +0000 (22:19 -0700)]
Copyright and executable bit

21 months agoMinor cleanup.
Simon Forman [Wed, 5 Oct 2022 05:18:22 +0000 (22:18 -0700)]
Minor cleanup.

21 months agoMinor cleanup; multiplication.
Simon Forman [Wed, 5 Oct 2022 05:06:49 +0000 (22:06 -0700)]
Minor cleanup; multiplication.

I forgot to commit after cleanup but before implementing multiplication
so this commit is kind of a mess.

Anyway, it works.  :D

21 months agotest_Subtraction_large_from_small
Simon Forman [Tue, 4 Oct 2022 23:41:09 +0000 (16:41 -0700)]
test_Subtraction_large_from_small

21 months agoI guess subtraction works!?
Simon Forman [Tue, 4 Oct 2022 23:28:43 +0000 (16:28 -0700)]
I guess subtraction works!?

21 months agoAdding two negative numbers.
Simon Forman [Tue, 4 Oct 2022 19:10:32 +0000 (12:10 -0700)]
Adding two negative numbers.

21 months agoThat was easy! Add BigInts of the same sign.
Simon Forman [Tue, 4 Oct 2022 19:05:41 +0000 (12:05 -0700)]
That was easy!  Add BigInts of the same sign.

21 months agoRed... (Green, Refactor)
Simon Forman [Tue, 4 Oct 2022 18:37:55 +0000 (11:37 -0700)]
Red... (Green, Refactor)

TDD FTW!

21 months agoNot using ctypes; test_twice_min
Simon Forman [Tue, 4 Oct 2022 18:31:40 +0000 (11:31 -0700)]
Not using ctypes; test_twice_min

21 months agoMinor cleanup.
Simon Forman [Tue, 4 Oct 2022 18:21:07 +0000 (11:21 -0700)]
Minor cleanup.