• R/O
  • HTTP
  • SSH
  • HTTPS

提交列表

标签
No Tags

Frequently used words (click to add to your profile)

javac++androidlinuxc#windowsobjective-ccocoa誰得qtpythonphprubygameguibathyscaphec計画中(planning stage)翻訳omegatframeworktwitterdomtestvb.netdirectxゲームエンジンbtronarduinopreviewer

A categorical programming language


RSS
Rev. 时间 作者
06d54b6 master 2024-11-25 06:23:56 Corbin

Allow pairing of domains.

I'm so pissed that I couldn't do this in a nice generic fashion. This
works, but it's ugly and verbose.

c29e69c 2024-11-24 16:54:49 Corbin

Convert to final encoding.

This means the end of cammylib.arrows, which only existed for the
dispatch of the type-checking and CAM-compilation domains together in a
tuple. For now, we can just parse twice.

Final encoding is shorter than initial encoding! The Arrow class
hierarchy took up a lot of room and insisted on immutability; it turns
out that at least some arrows, injections and projections, have less
runtime data than type-checking data.

The compiler thankfully can use the same pending-arrow logic as before,
except that we no longer care at all about equality of arrows. If we
want to deduplicate bytecode, then we'll do it by comparing bytecode!

This was a little bit of a pain to debug. If a method verb is typo'd,
RPython offers little recourse. It will silently compile an
always-crashing method instead.

0c80c02 2024-11-13 11:24:51 Corbin

bk: With a flag, allow updating refs.

I was able to use this to programmatically update all of the demo
animation refs to use the new API.

4ad8a59 2024-11-13 11:04:48 Corbin

bk: Parse S-expressions.

Obviously cribbed from cammylib. Same parser.

Also I implemented substitution. It works; I can use `apply anim-tuple
demo/anim/...` to upgrade any of the old animations to the new API.

68c4802 2024-10-30 09:21:36 Corbin

bk: Correctly extract templates.

I don't know why the cognitive weight of JSON vs S-expressions is so
heavy, but it really does seem to suck part of my attention at all
times, and I'd like for it to be better.

2db0900 2024-10-29 12:21:41 Corbin

bk: Hack together a basic insertion command.

It works, I suppose?

d3fcc59 2024-10-29 09:43:27 Corbin

cammylib/pixel: Make RGB sampling work again.

d269da5 2024-10-29 09:43:06 Corbin

bk: Spit out a big list of names.

505caa1 2024-10-27 08:52:43 Corbin

Save inputs for AFL.

6bcb067 2024-10-27 08:52:08 Corbin

Further harden the parser.

This is enough to cause afl-fuzz to find nothing after 10 cycles.

d018872 2024-10-27 07:19:18 Corbin

Use afl to harden the parser and disassembler.

The first rounds of fuzzing mostly just showed that our exception
handling isn't very clean.

8fa9e07 2024-10-25 15:03:35 Corbin

Use regexes to parse inject/project/nats/ords.

d2a2f00 2024-10-25 05:19:45 Corbin

Implement ordinal points.

I need to figure out how to designate the ordinal-to-sum-of-points and
ordinal-to-nat functions to make this useful.

817c449 2024-10-25 03:42:02 Corbin

Implement injections and weak sums.

I'm not using the exact bytecode names from traditional CAM papers
because, just like with gotoRight, we're creating a new gotoTag bytecode
that better fits our memory layout. The way this works is via inspection
of the tag value, as before, but now the tag can be any nat
(practically, any machine-sized unsigned int) instead of a bool. Since
we can't encode a nat as control flow without exploding the size of the
code, we instead do something like classic CAM untagging instructions
along with a jump table. Our gotoTag instruction untags the term op and
uses the tag to do a computed goto from the jump table; each instance of
the instruction is associated with its own jump table. These are the
`tagTables` of the compiler.

cee3255 2024-10-24 13:17:24 Corbin

cammy: Weaken products.

This could be a little iffy. I think I got it right, though. Existing
hive expressions will have to be explicitly re-nested, but the
transformation can be done mechanically, like with weakening
composition.

385e701 2024-10-24 11:25:50 Corbin

cammylib: Weaken composition.

Fairly easy compared to what's next.

47fcca6 2024-10-24 11:24:46 Corbin

Unhaunt git's pager.

The core of the problem was that busybox's implementation of `less` is
fucky, and that was fairly easy to fix!

338e963 2024-10-24 05:45:13 Corbin

cammylib: Add new syntax for nat constants.

67c6b1e 2024-10-24 05:06:46 Corbin

Go all-in on RPython.

We're going to do as much stuff in RPython as possible. To that end,
we're not just going to think of this codebase as a sampler; it also
contains a full implementation of the type system and an extensible
parser.

d9aad8c 2024-10-24 04:48:36 Corbin

Save some old stuff.

Also, remove jelly. Sorry but it's too expensive and doesn't get enough
done. I need a proper proof language instead.

bb566ff 2024-10-01 03:15:57 Corbin

Put documentation on the sampler REPL's commands.

647dff3 2024-10-01 02:24:20 Corbin

Use rpypkgs.

973b48e 2024-10-01 01:23:47 Corbin

Remove v2 hive and movelist.

Gotta cut down on old stuff that I can't move forward. In the case of
the v2 hive, there's now a v3 hive instead. When it comes to movelist,
all of the functionality is either elsewhere or too slow to be useful.
Like, djinn and fibre are cool toys, but they're not sufficiently quick
or property-driven for real applications.

c761066 2024-09-29 02:25:18 Corbin

Try to evict some ghosts from the repo.

For some reason, the pager is still wonky. I might have to globally
configure a decent pager.

9431641 2024-06-30 10:09:30 Corbin

Add a sort of Maxwell's-laws presentation.

I don't personally put much stock in this sort of thing, but Alan Kay
and Douglas Crockford think it's essential.

b0644bd 2024-05-30 11:14:08 Corbin

Clarify some notes.

97a7a3e 2024-05-24 14:09:14 Corbin

jelly: Fix the problematic rule.

539486b 2024-05-24 12:52:47 Corbin

Add jets, resolve type-occurs issue.

I think that we're finally done with the discovery phase of the issue.

eaf6455 2024-05-23 06:55:10 Corbin

Remove a couple old scripts.

b388cf3 2024-05-12 15:26:57 Corbin

bk: Polish extraction and jet listing.

As a result, shared code is emerging.