User:Kevin Reid
From Erights
My posts on the e-lang and cap-talk mailing lists.
Contents |
Projects
Roughly in order of liveness.
- I am currently the semi-official E-on-Java maintainer as Mark Miller is busy with other projects.
- eel/runebot/murepl, the IRC bot etc. project (source not released; currently runs on my personal laptop which is a situation that Really Ought To Be Fixed)
- E-on-CL — E implementation
- E support for TextMate
- Caja-CapTP — adapting CapTP to Caja.
- e-benchmark — benchmarking E implementations.
- E-on-Haskell — E implementation
- kEIO — EIO implementation for E-on-Java
- Den — distributed virtual world platform
- The surprise list.
Scraps
- gendoc.e
- /java3d.e-awt — Java 3D API used from E
- /scribble.e-awt — Simple Swing UI application with custom graphics
Drafts
- /User far proxy — project to allow a human to provide the behavior of a far ref
- /Thoughts on protocol queries — how does one object ask another what protocols it supports reliably?
- /Defining algebraic data types — sketch of a shortcut for defining data structures in the style of Haskell
Nonworking programs
- /Mac open event handler test — Can we have an E-on-Java app that handles Mac open events using the Apple Java extensions? No success yet.
- /ASTPrint.java — Minimal Java program attempting to set up an E-on-Java vat and do something in it. Doesn't work currently (or ever); haven't investigated.
Not even completely written:
- /unification.emaker — Implement unification variables in E: a single object which acts as promise and resolver, and a procedure which makes two values equal by resolving variables if possible. Incomplete code.
Snippets
- Redefine interp.getArgs()
def scope := e`def baseInterp := interp;def interp extends baseInterp { to getArgs() { return [the new args] }}`.evalToPair(privilegedScope.nestOuter())[1]
- Bring a file's definitions into REPL scope
interp.setTopScope(e__quasiParser(myFile.getTwine()).evalToPair(privilegedScope)[1])
Other material
- /JS bookmarks — JavaScript and Caja links.
Todo
This should probably be migrated into an issue tracker. Right now we're nominally using SourceForge, but I, at least, find it tedious to work with.
That said, these are my personal things-which-ought-to-be-done, and not the reflection of any consensus; I'm just dumping them here because it's better than them living in a random file on my hard disk.
E-on-Java work to do
- Security
- Change the default taming policy for no-safej-file classes from ALL to NONE. (2010-02-27)
- Add shortcut syntax to SafeJ files for declaring allow-all, then replace the functionality of ApprovedClassList with safej files using that syntax. (2010-02-27)
- Cleanup
- Documentation, including impl-specific, should go to the wiki. Spec tests go to the wiki (Category:E specification). Impl-specific (features and regression) tests stay in source tree. (2010-02-27)
- Features
- add fromKeysOf and fromValuesOf as ConstList and ConstMap maker methods. also rename fromIteratable to fromAssociationsOf (2008-03-24)
- Make setup.e-awt work on other platforms. (2008-03-24)
- Make setup use powerbox-style operation rather than being unconditionally privileged. (2008-03-24)
- Make TextWriters pass by construction, as provided in E-on-CL. (2008-03-24)
- Make objects print with FQN-prefix components if their local name is _, like they used to. (2008-03-24)
- Make safejTemplate.e into a caplet, if we can make it possible to give a caplet permission to run javap ... oh, my taming-command-line-tools framework (2008-03-24)
- Java subtyping relations should be exposed as Class's implementation of rangeSupersetOf
- ???
- Bug fixes:
- powerboxControllerMakerAuthor.emaker -- JFileChooser usage treats cancel the same as OK (2008-03-24)
- Test fixes:
- makeIOUIssuer.updoc and sugar-demo.e-swt contain hardcoded references to ~/e/src/ which is wrong (2008-03-24)
- esrc/com/opencola/drm/example/MintMaker.updoc contains an expectation of E version (2008-03-24)
- esrc/org/erights/e/elang/interp/makeBootServer.updoc contains an expectation of install path (2008-03-24)
- esrc/org/erights/e/elib/sealing/makeVOCPair.emaker contains an expectation of ~ path (2008-03-24)
- esrc/org/erights/e/elib/slot/lamport.updoc has <_> where is now <everFormula> (2008-03-24)
- esrc/org/erights/e/examples/arith/makeRational.updoc ditto <makeRational> (2008-03-24)
- esrc/org/erights/e/extern/persist/persist.updoc runs out of heap space - ??? (2008-03-24)
- esrc/org/erights/e/facet/makeCaretaker.updoc expectation of cwd path (2008-03-24)
E-on-CL work to do/misc notes
- Old notes from Jul 17 2008:
- eocl r992:993 introduced a slowdown [in executing --updoc tests/captp/introducer.updoc].
- Stuff about custom method specializers in SBCL: [1] [2] [3]
- transparent does NOT imply ok-for-Selfless. transparent can be mutable, e.g. FlexList (w/o value guard?) is transparent. TODO: revise Selfless to drop the independent Selfless auditor, in favor of TransparentSelfless approval, etc. -- because (Selfless+Transparent) isn't sufficient, we need to require immutability as well
- invocation for benchmarking + sprof-tree:
time rlwrap ./clrune -L--eval -L'(require :sb-sprof)' -L--load -L ~/Documents/sbslow-project/sbcl/sprof-tree.lisp -L--eval -L'(setf sb-sprof:*sample-interval* 0.1)' -L--eval -L'(defun sb-sprof::report () (with-open-file (s "sampler-updoc.trace" :direction :output :element-type :default :if-exists :supersede) (sb-sprof::write-sampler-data s)))' -p ../sb-parse-cache.sexp --updoc --profile sb-sprof tests/captp/AnswersTable.updoc
- this may be obsolete due to having profile options in clrune —Kevin Reid 08:56, 6 May 2010 (CDT)
For all implementations
- Take the draft utility library called 'Flow' and publish it, possibly as part of the E standard library
- meta.getState() is to be deprecated and replaced; it has the following flaws:
- Its result should be an Env, not a ConstMap, so as to avoid using any ampersands
- It uses the innermost enclosing object expression, so its presence means that introducing a function has possibly surprising effects; instead, it should take a parameter being the name of the object (i.e.
def foo() { meta.getEnv(foo) }
)
E design work
- Idea: Every directory serves as a root (that is, has the facilities of <file> like optUnget). This allows chrooting and allows updoc tests to be given virtual roots that aren't different in implementation from the real root.(2010-02-27)
- File pathname getting is tamed away, use <myRoot>.optUnget instead. The REPL's printFunc's textWriter has authority to show paths.
- Post as unresolved design issue whether to use E-on-CL's isQuoting and printSame methods in standard E. (2010-02-27)
- ConstList should have an operation analogous to FlexList#replace/5.
Meta
- Post the contents of my 'To be discussed with MarkM' file on the wiki. (2010-02-27)