about summary refs log tree commit diff stats
Commit message (Collapse)AuthorAgeFilesLines
* toot-toot: disable ctrl-kKartik K. Agaram2022-03-301-0/+51
| | | | | | | | | Rather than invest LoC in asking for confirmation or an undo feature, just have people restart to clear the page. I fucking suck for how many ways I can come up with to lose data in a text editor. It really should have been fucking obvious that clearing the page so easily was a footgun just waiting to happen.
* some more reorg of the standard libraryKartik K. Agaram2022-03-278-672/+138
| | | | | Now life.tlv and gemini.tlv are also minimizing how much of the standard library they pull in, just to be easy to read.
* helper: count permutationsKartik K. Agaram2022-03-278-10/+400
|
* helper: countKartik K. Agaram2022-03-278-2/+130
|
* reorgKartik K. Agaram2022-03-201-2/+5
|
* disallow all relative paths (./ or ../)Kartik K. Agaram2022-03-204-1/+25
| | | | | | | | | Teliva's model doesn't include any way to change directory. We just have relative paths and absolute paths. Relative paths should not be able to reach into parent directories. The current test is a bit hacky; it also disallows directories ending in a period. Hopefully not an issue.
* graphviz: show topology in multiple linesKartik K. Agaram2022-03-193-12/+91
|
* graphviz: for basic stats, show all nodes orderedKartik K. Agaram2022-03-199-184/+527
| | | | | | The ordering is topological; nodes come before their dependencies. Also some more helpful functions in the template for new apps.
* standardize common helpers across all appsKartik K. Agaram2022-03-199-62/+883
| | | | | In particular, I merged take_out in anagrams.tlv with all_but in graphviz.
* graphviz: second sketch to present the FocusKartik K. Agaram2022-03-191-15/+100
| | | | | In the process we fix some bugs in how we compare tables and count nodes in the graph.
* .Kartik K. Agaram2022-03-181-5/+5
|
* graphviz: draft notion of nodes in 'focus'Kartik K. Agaram2022-03-189-24/+230
| | | | | Now the REPL isn't about deciding what to calculate, but just what nodes to calculate it for.
* idiom: table.insert for appendingKartik K. Agaram2022-03-186-14/+14
| | | | Stop using arr[#arr+1].
* graphviz: tweak data structure slightlyKartik K. Agaram2022-03-181-4/+3
| | | | | | | A node's edges contain an associative array of target nodes rather than a linear array. This way we automatically dedup edges when we load multiple graphs.
* graphviz: read multiple .dot filesKartik K. Agaram2022-03-181-0/+30
| | | | | It's useful to be able to import dependencies for multiple packages at once, so that we can see common dependencies.
* fix a warningKartik K. Agaram2022-03-181-1/+1
|
* graphviz: sketch of the dashboardKartik K. Agaram2022-03-181-0/+83
|
* graphviz: done parsing directed graphsKartik K. Agaram2022-03-181-1/+83
| | | | | This is mostly what I want since I'm interested in parsing the output of debtree.
* graphviz: show error when lacking permissionsKartik K. Agaram2022-03-181-4/+6
|
* graphviz: don't interpret substrings as regexesKartik K. Agaram2022-03-189-5/+41
|
* show current definition being editedKartik K. Agaram2022-03-182-6/+8
| | | | | | | | | | This serves two purposes: - Things get confusing if function being defined doesn't match the definition name. Displaying the current definition helps diagnose this situation. - We're already able to see callers at a glance even if the cursor is below the fold. The name of the current definition is arguably more important in that situation.
* stale references to callerKartik K. Agaram2022-03-181-2/+2
|
* beginnings of a parser for .dot filesKartik K. Agaram2022-03-181-0/+669
| | | | | I'm following https://graphviz.org/doc/info/lang.html. Just tokenization so far.
* fake to stand in for start_reading in testsKartik K. Agaram2022-03-181-0/+44
|
* break.tlv: nascent live-updating stack languageKartik K. Agaram2022-03-176-12/+824
| | | | | | | | | Joint work with Sumeet Agarwal. In the process we discovered several bugs in our fake window helpers for tests. Thanks Sumeet! Previous prototypes: - https://archive.org/details/akkartik-2min-2020-12-06 - https://merveilles.town/@akkartik/105759816342173743
* sandbox os.removeKartik K. Agaram2022-03-171-5/+18
|
* fix some warningsKartik K. Agaram2022-03-171-3/+3
|
* file handles vs file objects, ughKartik K. Agaram2022-03-171-2/+3
|
* function names from globals rather than debug infoKartik K. Agaram2022-03-161-22/+22
| | | | | | | | | | | This reclaims all the slowdown in sieve.tlv, and it also is now smart enough to detect calls to global bindings that pass through variables. On the flip side, we lose names for non-globals. But that's not very useful anyway in Teliva's context. This is still not enough to detect callers through coroutines (intervening anonymous functions), though.
* bring back hack when caller is mainKartik K. Agaram2022-03-161-0/+2
| | | | Partially undoes commit f2d29c22f86a88.
* cache function namesKartik K. Agaram2022-03-161-10/+46
| | | | This brings down the slowdown in sieve.tlv from 50% to 25% (15s).
* standardize some namesKartik K. Agaram2022-03-163-11/+12
|
* stop running task.scheduler by defaultKartik K. Agaram2022-03-165-42/+36
| | | | | sieve.tlv is 50% slower (18s vs 12s) with the new function call instrumentation.
* delete dead codeKartik K. Agaram2022-03-161-25/+0
|
* simplify function call instrumentationKartik K. Agaram2022-03-163-41/+20
| | | | | | | | src/ldo.c now has a minimal diff with Lua 5.1. It might be a bit slower than it was before, but not noticeably so.. This approach doesn't support indirect calls.
* drop a headerKartik K. Agaram2022-03-161-1/+0
|
* drop a forward declKartik K. Agaram2022-03-161-8/+7
|
* start cleaning up function call instrumentationKartik K. Agaram2022-03-161-2/+2
| | | | | | It's a mess. I calculate call-graph depth one way and calculate caller names another way. At least one of the ways fails to work with indirect calls. Hopefully the other way works?
* stop using tasks in start_reading/start_writingKartik K. Agaram2022-03-165-99/+57
| | | | | We just need queues/streams for file I/O. No need to complect concurrency concerns with them.
* Teliva's been broken 2 days while I mess with docsKartik K. Agaram2022-03-151-1/+1
|
* .Kartik K. Agaram2022-03-141-9/+10
|
* drop the lfs libraryKartik K. Agaram2022-03-147-1285/+1
| | | | | I can't feel confident about its sandboxing story yet. And if we can't build a file navigator, what are we even doing with it.
* .Kartik K. Agaram2022-03-141-1/+4
|
* update link to manualKartik K. Agaram2022-03-141-6/+6
|
* typoKartik K. Agaram2022-03-141-1/+1
|
* doc: cursesKartik K. Agaram2022-03-141-8/+260
|
* doc: flesh out tasks and channelsKartik K. Agaram2022-03-141-1/+51
|
* doc: correct and flesh out jsonKartik K. Agaram2022-03-141-4/+44
|
* typoKartik K. Agaram2022-03-141-1/+1
|
* document functions that are sandboxedKartik K. Agaram2022-03-131-0/+13
|
lass="w"> var self/esi: (addr screen-position-state) <- copy _self var tmp/eax: (addr int) <- copy 0 var tmp2/ecx: int <- copy 0 # self->col = self->leftcol tmp <- get self, leftcol tmp2 <- copy *tmp tmp <- get self, col copy-to *tmp, tmp2 # self->row++ tmp <- get self, row increment *tmp # if (self->row > self->botrow) next-page(self) tmp2 <- copy *tmp tmp <- get self, botrow compare tmp2, *tmp { break-if-<= next-page self } } fn next-page _self: (addr screen-position-state) { var self/esi: (addr screen-position-state) <- copy _self # TMP var tmp/eax: (addr int) <- get self, row increment *tmp } fn done-drawing? _self: (addr screen-position-state) -> result/eax: boolean { var self/esi: (addr screen-position-state) <- copy _self # TMP var r/eax: (addr int) <- get self, row var tmp/ecx: (addr int) <- get self, botrow var max/ecx: int <- copy *tmp $done-drawing?:check: { compare *r, max { break-if->= result <- copy 0 # false break $done-drawing?:check } { break-if-< result <- copy 1 # true } } } fn reposition-cursor _self: (addr screen-position-state) { var self/esi: (addr screen-position-state) <- copy _self var r/eax: (addr int) <- get self, row var c/ecx: (addr int) <- get self, col move-cursor 0, *r *c }