Commit Graph

13 Commits

Author SHA1 Message Date
Kartik Agaram 01ce563dfe 4262 - literal 'null' 2018-06-17 15:57:37 -07:00
Kartik Agaram b89b822439 4260 - make address coercions explicit
'deaddress' is a terrible name. Hopefully I'll come up with something
better.
2018-06-16 23:19:59 -07:00
Kartik K. Agaram 67c10a1737 4224 - fill an old hole in static dispatch
Resolve ambiguous calls when copying (overloaded) recipe literals to variables.
2018-03-14 23:19:47 -07:00
Kartik K. Agaram 090cad5c1b 4223 2018-03-14 00:59:41 -07:00
Kartik K. Agaram 816ffe20eb 4214 2018-02-21 20:49:04 -08:00
Kartik K. Agaram acce384bcc 4179 - experiment: rip out memory reclamation
I have a plan for a way to avoid use-after-free errors without all the
overheads of maintaining refcounts. Has the nice side-effect of
requiring manual memory management. The Mu way is to leak memory by
default and build tools to help decide when and where to expend effort
plugging memory leaks. Arguably programs should be distributed with
summaries of their resource use characteristics.

Eliminating refcount maintenance reduces time to run tests by 30% for
`mu edit`:

              this commit                 parent
  mu test:         3.9s                        4.5s
  mu test edit:  2:38                        3:48

Open questions:
  - making reclamation easier; some sort of support for destructors
  - reclaiming local scopes (which are allocated on the heap)
    - should we support automatically reclaiming allocations inside them?
2018-01-03 00:44:09 -08:00
Kartik K. Agaram 5059f32d0d 4160 - named marks for delimited continuations
Hypothesis: this is needed to build McCarthy's amb operator.
  https://rosettacode.org/wiki/Amb
2017-12-15 00:15:47 -08:00
Kartik K. Agaram 07de3e9536 4151 - specializing calls returning continuations 2017-12-07 16:00:02 -08:00
Kartik K. Agaram 640d43bb7d 4145 - specializing recipe literals in `call` 2017-12-07 13:24:27 -08:00
Kartik K. Agaram f4f26d5878 4144 2017-12-07 10:53:42 -08:00
Kartik K. Agaram a87118d989 4137 - perform specialization on indirect calls
https://lobste.rs/s/esqphf/what_are_you_working_on_this_week#c_ajgfim
2017-12-04 10:24:50 -08:00
Kartik K. Agaram 504292f6f1 4106 2017-11-03 18:01:59 -07:00
Kartik K. Agaram bb4aa1b5a4 3991 - start work on making continuations safe
Plan:
1. Fix a hole where addresses are shared between routines when passed in
as arguments to `start-running`.
2. Switch to a new approach to refcount management: instead of updating
refcounts when writing products of instructions by default, increment
refcounts inside instructions by default and decrement refcounts in
caller. More details in future when I actually implement this.
3. Now we shouldn't need a distinction between `new-default-space` and
`local-scope`, and all functions can simply decrement refcounts of
their default-space, consistently handling any refcounts in the space.

At this point if all goes well, continuations should be safe!

This commit is just preparation for step 1.
2017-09-10 09:56:51 -07:00