thrift/lib/erl/TODO
Christopher Piro 93a0664aff [thrift] spruce up Erlang binding for tonight's release
Summary:
 * got rid of most of the otp_base jonx ... save that for a future release unfortunately
 * cleaned up the tutorial server, added -erl to tutorial.thrift's shebang
 * made better README and TODO

Test Plan: checked out a copy, read my directions, built and ran the tutorial, and pretended that it didn't blow


git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@665273 13f79535-47bb-0310-9956-ffa450edef68
2007-09-18 06:23:33 +00:00

36 lines
1.9 KiB
Plaintext

make thrift a proper OTP application
* app-wide configuration (do DNS lookups?)
* default protocols / transports (forget this factory business)
* factor for elegance
tutorial client
make all methods effectful, remove the special casing (optionally, implement monads for Erlang)
change objects from {record_tag, ...} to {oop_object, {record_tag, ...}, other_useful_stuff}
so 1) we know exactly what's an object (can write is_object/1) e.g.
is the tuple {tTransportException, ...} an object or a tuple that happens to start with that atom?
we can't check this using is_record/2 without include every header file
also, this makes it easy to pick objects out of deep tuples
2) we can build more functionality into oop later if need be
carry around the class/superclasses so is_a(Object, ClassOrSuperclass) is easy
3) maybe hack up io:format and friends to run objects through oop:inspect automatically
Currently we can't distingish a method exiting in the middle with an undef or function_clause from a method not being defined in a module. Big example: if the generated code can't be called at tErlProcessor.erl:63, it will exit with a missing_method not because tErlProcessor:process/3 is undefined, but because GP:process/3 is undefined, but the error makes it seem like the former happened. The oop code needs to be smarter -- I think it's possible to either a) hook into Erlang's missing function handler or b) do some introspection to determine directly whether a function is defined, rather than trying to infer from the exit.
test suites
move as much (program logic) as possible out of thrift_logger
make thrift_logger 100% robust
thrift_logger detects term width?
undisgustify codegen
move away from thrift_oop_server shim to straight-up gen_servers
move away from Factories
move away from ?L0, ?M0, and friends ... make calls in oop or individual modules (like gen_servers should be)