30 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
			
		
		
	
	
			30 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
| * Recognize calls to call-with-values where the second argument is a
 | |
|   case-lambda and handle them sensibly.
 | |
| 
 | |
| * Guardians:
 | |
| CHECK  - Implement guardians. 
 | |
| CHECK  - clean up after file ports are dead by flushing/closing the
 | |
|          underlying file handle.
 | |
|   - Flush and close output-port on exit.
 | |
| 
 | |
| * Interrupts:
 | |
| CHECK  - pcb should have an engine-counter field that's decremented on
 | |
|     every procedure call.
 | |
| CHECK  - a do-event procedure must be called when the counter goes
 | |
|     negative.  It should capture the current continuation and
 | |
|     reschedule the process.
 | |
| CHECK  - figure out what to do when a process gets interrupted while
 | |
|     reading from a file.
 | |
| CHECK  - Implement [CTRL-C] keyboard interruption with the ability to
 | |
|     resume the computation, reset to the repl, or terminate the
 | |
|     program (at least for now).
 | |
| 
 | |
| * FFI: 
 | |
|   - provide a general mechanism for calling foreign procedures
 | |
|     without having to extend the VM.
 | |
|     (foreign-call void: FOO int32: x char*: y ptr: z)
 | |
|   - may dump the bignum stuff in the VM and move it to scheme.
 | |
| 
 | |
| CHECK * Read-invariant gensym.
 | |
| 
 |