Skip to content

Latest commit

 

History

History
121 lines (121 loc) · 2.44 KB

todo.org

File metadata and controls

121 lines (121 loc) · 2.44 KB

The near term tasks

Compiler

throw/try/catch/finally

Data structures

keyword

requires interning strategy

possibly compiler support for same

string starting with noncharacter code

\uFFFE and \uFFFF are guaranteed noncharacters

use as prefix for keywords and symbols

must test in predicates string? symbol? keyword?

symbol

string starting with noncharacter code

cons cell/list

map

first cut COW, string uniqueness required

vector

first cut, COW, internal array

numbers

js native number is our double

goog.math.Long?

building Long objects defeats fixnum support in JS VMs

but they are 32-bit - some type bits

Abstractions

Clojure’s interfaces

we don’t need all of them

Associative Counted Fn IBlockingDeref IChunk IChunkedSeq IDeref IEditableCollection IFn IKeywordLookup ILookup ILookupSite ILookupThunk IMapEntry IMeta Indexed IndexedSeq IObj IPending IPersistentCollection IPersistentList IPersistentMap IPersistentSet IPersistentStack IPersistentVector IProxy IRecord IReduce IRef IReference ISeq ITransientAssociative ITransientCollection ITransientMap ITransientSet ITransientVector IType MapEquivalence Named Reversible Seqable Sequential Settable Sorted

Naming convention for protocols?

IBlah

equality and hashing

investigate gclosure and GWT

seqable

collection

counted

seq

lookup

associative

indexed

map

set

vector

deref

metadata

Runtime Lib

key missing macros

binding

single threaded

save, set!, finally restore

deps: try/finally primitives in compiler

dotimes

math ops

intrinsify built-ins

handle variadic

core.cljs!

crank through core.clj

Tools

getting set up story

gclosure library

gclosure compiler

V8

optional for now?

REPL

there’s a ticket for this

Integration of gclosure library

how do we reference/load?

REPL runtime behavior of provide/require

versioning issues

just SVN revs

how to bind to version

Testing

anything good in gclosure?

Build

deps

glcosure compiler

invocation via API gives most control

but deps a Python thingy