-
Notifications
You must be signed in to change notification settings - Fork 10
/
Copy pathTODO
161 lines (149 loc) · 8.23 KB
/
TODO
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
* add docs about thread resources and special character support in the character encoding section
* add domain to constant definitions
* implement new calling convention for functions & methods with ignore rv param
* fix class member initialization order to be same as declaration order
(currently is alphabetic)
* make it so that a call ref/closure can be imported as a function in a
Program
* implement warning for the case when an unquoted hash or object key is also a
constant
* implement support for implicit typing in the parser
* implement a mechanism for a thread to sleep until another thread terminates
(join)
* cover case when multiple types could be returned (? : operator, functions,
etc)
* fix memory leaks caused by circular references
* implement support for specifying base class methods like this:
$exp.Base::method()
* implement a new C++ API for adding functions internally, check
BuiltinFunctionList::add*() for duplicates when used by modules
* fix %n and %N to not output private members when called outside the class
* fix parse directives to ignore comments after them
* make sure exit() will exit - may need to interrupt threads (ex: thread
waiting on accept() will not exit)
* fix crash on exit() with running threads on Darwin <- CANNOT REPRODUCE
* optimize object method calls from the same object to avoid the reference and
dereference
* fix broken callstacks - only reports for calls since the try statement
* implement auto-reconnect for pgsql (possibly not needed?)
* implement find_key operator, taking a regular expression to find a key in a
hash
* implement split operator taking regular expression
* add support for ranges [2..9]
* track include files, make sure they are only included once
* have QoreStringNode::getAsString() return a standard empty string ("") when
possible (also should not be reference counted)
* remove QoreNothingNode and use 0 everywhere instead
* add API compatibility info to module data
* update round() to allow the specification of significant digits
* implement public_instanceof operator
* add support for special ::toString() method to serialize an object to a
string (very useful for debugging)
* add support for break and continue arguments to affect outer loops
* add error code to exceptions for XML-RPC fault reporting
* allow customizable QORE_INCLUDE_DIR searches
* implement GZFile and BZFile classes
done 0.8.10:
* do not show module paths (with getModuleHash() for example) and do not allow access to ENV and QORE_ENV with NO_EXTERNAL_INFO
done 0.8.6.1:
* add invalid operation warnings for keys and elements operators with invalid
types
done 0.8.5:
* implement pseudo-methods to run on lists, hashes, and strings as if they
were classes (ex: <hash>.lastKey(), etc)
* add context functions
* implement support for universal references - removed checking for passing a
reference to user code with declared param
* document Datasource::getAutoCommit()
* implement a way to tell if signal handling is enabled or not from qore code
done 0.8.4:
* add context functions
* implement common initialization for global thead-local variables in all
threads
* implement optimized foreach statement for hash key iteration
* add warning for "." and {} operators where operand cannot be converted to a
string
* implement parse options for pushing and restoring formatting options
* implement function class hierarchies for returning different types (bool,
int64, double, node)
done 0.8.3:
* implement parse option for setting the time zone offset/region
done 0.8.1:
* add HTTPClient methods: setUserPassword(), setProxyUserPassword(),
clearUserPassword(), clearProxyUserPassword()
* fix class constant searches from within class code to look in class first
* detect error when a function does not return a value but has a declared
return value type
* fixed $.method() calls to use the optimization like with $obj.method() call
syntax so that calling overridden methods from base classes works
* add $# for list element offset in list operators (map, select)
done 0.8.0:
* allow variants with the "constant" flag be be used in constant expressions
* add warning for local variables that are not referenced/used
* add warning for duplicate hash keys: duplicate-hash-keys
* add warning about supplying extra arguments: excess-args
* add warning about using deprecated functions/features: deprecated
* add function information to parse exceptions (parse_code)
* raise a warning if a function is used that has no effect except returning a value and the return value is ignored: return-value-ignored
* implemented optimization for method calls (save method and compare class at runtime)
* fixed class copying in subprograms; subprograms can no longer modify parent classes
* ensure only one variant for methodGate(), memberGate(), and memberNotification() methods, check signatures
* implemented "extract" operator like splice but returns list elements or characters removed from lists and strings
* implemented "remove" operator like delete but does not destroy objects and also returns value removed from lvalue
* made "delete" an operator instead of a statement
* hard typing for closures
* domain implementation on method variants
* implemented hard typing
* implemented function and method overloading
* implemented default argument values
* verify behavior of private copy methods
* make changes so constructors can be private
* check for illegal arguments to copy methods in self calls ($.copy())
* check object method references at parse time to verify the type of the object expression if available (and then check if the the method exists)
docs:
* add links to HTTPClient::connect() text
* update tibae module docs regarding function class, can be hash lookup or direct class string
* document thread resource tracking
* add examples for modules
* write ncurses module documentation
* document optimizations
done 0.7.4:
* fix signal handling after fork()
* fix crash with printing recursive data structures
done:
* auto-reconnect for sybase, oracle, mysql
done 0.7.0:
* make ThreadResourceList private
* implemented license tagging and checking for the qore library and modules
* implemented auto-reconnect for oracle
* change get/test_*params() to return const values
* make QoreHashNode implementation private
* change getExistingVarValue to take a ReferenceHolder argument instead of a temporary QoreNode * arg
* implement bool_eval(), etc for VarRefNode
* make it so that there is only ever one Nothing and Null object
* eliminate needs_eval() and is_value() as virtual functions, including bitfield bools (when reimplementing QoreType as an 20-bit integer)
* implement -,-= with hash, list of strings to remove lists of hash keys
* update Operator.cc ex: op_plus_eq: use getAsFloat() on evaluated argument instead of convert()
* migrate to "pimpl" approach for exported classes in qore library
* fix QoreSocket.cc to replace spaces with %20 in paths
* fix qt QShortcut to work on dynamic slots by saving the slot and calling the slot when the shortcut's signal is raised
* added support for dereferencing strings with []
* implement a way to modify table names in queries (support table name prefixes, for example)
done in previous releases:
* update QoreString::trim*() functions to trim all whitespace, and not just blanks, with an optional character array giving the character to trim
* fix +=, -= to use the rhs type if the lhs is NOTHING
* fix signal thread to be a special thread with a special thread list entry
* fix %d Datasource specifier to work with floats
* do block allocations of per-thread local variable slots for performance reasons
* add signal constants/infrastructure
* remove thread call stack tracing in non-debugging mode
* make lists of items disabled with parse restrictions
* make a section for each parse restriction
* implement support for regular expressions in case expressions
* implement function and object/method pointers
* fix Queue class (destructor must wake up any sleeping threads)
* add file functions (is_file() is_dir() is_symlink(), etc)
* do not allow global variable initialization at the top level if NO_TOP_LEVEL is set
* allow user to specify sort callback function for sort()
* implement BigIntOperator for more efficient evaluation of operators returning integer values
* implement a forward-compatible/extensible interface for DBI driver registration