#182 Brainstorming Notes 21 Mar 08

brian Fri 21 Mar 2008

Session Review:

  • should consider how session init/cleanup maps to external storage (such as shopping cart)

Uri:

  • Four forms: encoded (% URL), standard (only : / # ? & escaped using \), locale (\ removed), os path
  • All Uri methods, segments exist in standard form (\#) , except encode, toLocale, osPath (which are strings)
  • Standard form can continue to use things like spaces unescaped: app dir
  • Make sure we are using uri.encode in our web, wisp, and webapp APIs

Curry:

  • Even though pedantics call curry a partial apply, we're continue to call it currying
  • Need Func.curry
  • &f(...) on a Func instance is syntax sugar for f.curry(...)

Thread:

  • Add onStart, onStop callbacks
  • Timer APIs:
    Obj sendLater(Duration, Obj, Bool repeat := true)  // returns ticket for cancel
    Void cancelLater(Obj ticket)

Service Lookup:

  • Some brief ideas on looking up service by uri or by type
  • /sys/services/sidewalk

brian Sat 22 Mar 2008

Uri changes are checked in:

  • Docs updated to use the terms standard form and encoded form
  • Compiler and Uri parsing code enhanced to deal with backslash
  • Local and Zip files correctly escape general delimiters
  • Didn't add toLocale (will wait until we see a need)
  • Test suite updated

Thread changes are checked in:

  • Added the onStart and onStop callbacks
  • Added sendLater and cancelLater
  • Threading chapter updated with sendLater example
  • Test suite updated

brian Tue 25 Mar 2008

Curry changes:

  • I added the Func.curry method
  • The & operator now routes to Func.curry when target is a Func rather than method
  • I updated the tests and docs

Note on method functions: previously Method.params and Method.func.params used to be the same. This wasn't correct - a Method.func.params should include the implicit this so that it can participate cleanly in the functional model (such as currying). But it also seemed incorrect from an OO perspective for Method.params to include the this parameter. So I decided to make them different: Method.params never includes this, but Method.func.params does include this. Do you guys agree with that design?

The punchlist above now complete.

Login or Signup to reply.