Further improvements to the autoconf scripting.
[cycript.git] / todo.txt
index 0aaa39694fe3e0ef880f5f5e5942b31ec2448e76..5d73856aca3d80fd82df5dfb7cfbb8c88ff30257 100644 (file)
--- a/todo.txt
+++ b/todo.txt
@@ -1,12 +1,12 @@
+lol
 unicode identifier support (native and \u)
 support unions (right now 0-1 fields parsed as struct)
 unicode identifier support (native and \u)
 support unions (right now 0-1 fields parsed as struct)
-\\\n escapes in strings aren't handled in the console
 look into what String is, and whether to bridge it
 think about bridging NSNumber with Number prototype
 some JS callbacks don't use exception pointers at all...
 a newline needs to not be allowed after a unary *
 finish implementing default xml namespace statement
 look into what String is, and whether to bridge it
 think about bridging NSNumber with Number prototype
 some JS callbacks don't use exception pointers at all...
 a newline needs to not be allowed after a unary *
 finish implementing default xml namespace statement
-encode newlines in history for later reply (psql uses ^A)
+encode newlines in history for later replay (psql uses ^A)
 
 consider replacing regex literals with constructors
   https://bugzilla.mozilla.org/show_bug.cgi?id=98409
 
 consider replacing regex literals with constructors
   https://bugzilla.mozilla.org/show_bug.cgi?id=98409
@@ -27,5 +27,92 @@ special work needs to be done to correctly handle the "arguments" symbol: Declar
 at the Program level I seem to be eating away all of the var statements
 function pointers are ?; note that blocks are currently block_P = '?'
 I should probably attempt to use the auto_ flag somehow to not do contexts_ push when compiling
 at the Program level I seem to be eating away all of the var statements
 function pointers are ?; note that blocks are currently block_P = '?'
 I should probably attempt to use the auto_ flag somehow to not do contexts_ push when compiling
+Object_callAsFunction_toCYON should be implemented
 
 
-autocompleting a selector should maybe add the space or not or something, but should make up its mind
+[NSString stringWithString:""] crashes, on linux, not on mac
+GS #defines should be _finline
+
+replace procmod g+s with gdb's macosx_get_task_for_pid_rights
+non-local return prologue is not being Replace()d: multipass compiler!
+interpretation of documentation comments should be compiler-only and off by default
+don't ever generate $ CYWith, in particular for CYLet... use CYFunctionExpression
+
+semi-colon insertion warnings should mark after the previous token, not on the current one: makes a /lot/ more sense
+new for pools should take a reference, not a pointer
+
+output errors during Trampoline to some kind of log file
+
+there is a reinterpret_cast<> that I replaced with an old-style cast on the output of dladdr
+
+why do I never deallocate ffi closures?
+
+make a reference holder for namearrays
+rename names to accumulator when it is a name accumulator, and retake names for subset
+I believe calls to mutableCopy will leak memory
+consider pointerTo instead of toPointer
+store the last exception in a variable
+should WebUndefined be @undefined?
+
+if something is a function, it should be output differently
+evaluate usages of CYTry in ObjectiveC/Library for CYObjectiveTry
+verify name targets of "incorrect number of arguments to"
+maybe support __objc_{yes,no} intrinisic primitives
+
+support new objective-c subscript notation:
+  id key = ...;
+  id value = object[key];
+  -> id value = [object objectForKeyedSubscript:key];
+  object[key] = newValue;
+  -> [object setObject:newValue forKeyedSubscript:key];
+and:
+  NSUInteger idx = ...;
+  id value = object[idx];
+  -> id value = [object objectAtIndexedSubscript:idx];
+  object[idx] = newValue;
+  -> [object setObject:newValue atIndexedSubscript:idx];
+
+use JSObjectMakeError to build exception objects
+replace cy$getProperty's return value with JSValueRef
+flatten compound expressions made up of compound expressions
+
+cy# {{5,6};6;{7;{8;5}}}
+got: {5,6;6;{7;8,5}}
+wanted: 5,6,6,7,8,5
+
+cy# for each (var i = 9 in [1, 2]) system.print(i);
+got: {i=9;(function(e,t){for(t in e){i=e[t];system.print(i)}})([1,2])}
+wanted: i=9,function(e,t){for(t in e)i=e[t],system.print(i)}([1,2])
+
+with is being translated in a manner that doesn't handle variables
+cy# function b() { for each (var t in a) {} }
+function b(){var e,t,n;with({t:a,n:undefined})for(n in t)e=t[n]}
+
+[[self description] cy$toCYON:] seems like a poor implementation of toCYON
+implement cy$toJSON:inContext: for NSDictionary and NSArray
+
+the non-local transform used for let is ludicrous... :( :(
+
+cy# function q(e) { }
+function q(e){var e}
+
+CYCompound needs to be able to replace itself away without causing multiple Replace
+fat arrows are currently output with too much verbosity
+
+CYJSString <- wrap JavaScript strings and provide them back to Objective-C
+ruby blocks need to return their last thing
+Objective-C strings might should be cyonified using double-quotes
+
+apparently you can have random escape sequences in strings, like \!
+cycript -p with processes that have spaces doesn't work
+CYDriver uses std::istream, but it should use std::streambuf
+the mechanism I used to autodetect readline is horrible: use autoconf
+
+constant flags on types are encoded using something horribly wrong
+http://developer.apple.com/library/ios/#documentation/Cocoa/Conceptual/ObjCRuntimeGuide/Articles/ocrtTypeEncodings.html
+http://gcc.gnu.org/onlinedocs/gcc/Type-encoding.html
+http://gcc.gnu.org/onlinedocs/gcc/Legacy-type-encoding.html
+
+using .withName from the grammar is a horrible hack that makes other uses impossible
+
+blocks should be allowed to return blocks/functions: ModifiedType needs to go
+  instead, TypedParameterList should be folded into a TypeModifier with the other types