ChangeLog 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535
  1. Thu Jan 2 18:46:09 CET 2003 Paolo Molaro <[email protected]>
  2. * ModuleBuilder.cs, TypeBuilder.cs: support global fields and methods.
  3. Thu Dec 19 00:06:57 CET 2002 Paolo Molaro <[email protected]>
  4. * AssemblyBuilder.cs: remove duplicated user string entries.
  5. 2002-12-11 Zoltan Varga <[email protected]>
  6. * FieldBuilder.cs: added 'handle' field which is needed by some new
  7. code in reflection.c.
  8. 2002-12-04 Gonzalo Paniagua Javier <[email protected]>
  9. * TypeBuilder.cs: implemented GetInterfaceMap () when the Type has been
  10. created.
  11. Fri Nov 8 14:53:03 CET 2002 Paolo Molaro <[email protected]>
  12. * ILGenerator.cs: account for the exception object being passed to the
  13. catch handler to calc max_stack.
  14. 2002-09-21 Martin Baulig <[email protected]>
  15. * ModuleBuilder.cs (ModuleBuilder.symbol_writer): Make this
  16. field internal, not private.
  17. (ModuleBuilder.SymWriter_DefineLocalVariable): Removed.
  18. * LocalBuilder.cs (LocalBuilder.SetLocalSymInfo): Use the
  19. ISymbolWriter's DefineLocalVariable() method instead of the
  20. IMonoSymbolWriter hack.
  21. Mon Sep 16 19:02:58 CEST 2002 Paolo Molaro <[email protected]>
  22. * AssemblyBuilder.c: special case some custom attributes.
  23. 2002-09-12 Dick Porter <[email protected]>
  24. * TypeBuilder.cs: Say _which_ Type has already been created
  25. 2002-09-11 Miguel de Icaza <[email protected]>
  26. * ModuleBuilder.cs (GetTypes): Implement.
  27. Tue Sep 10 12:12:51 CEST 2002 Paolo Molaro <[email protected]>
  28. * ConstructorBuilder.cs: added a field to hold the handle.
  29. Mon Sep 9 17:31:12 CEST 2002 Paolo Molaro <[email protected]>
  30. * TypeBuilder.cs: prepare for the real CreateType implementation.
  31. Tue Aug 27 16:57:18 CEST 2002 Paolo Molaro <[email protected]>
  32. * TypeBuilder.cs: remove duplicate code and fix
  33. named field reading in custom attr.
  34. 2002-08-24 Gonzalo Paniagua Javier <[email protected]>
  35. * TypeBuilder.cs: UnspecifiedTypeSize is 0.
  36. Wed Aug 14 17:38:41 CEST 2002 Paolo Molaro <[email protected]>
  37. * TypeBuilder.cs: ReflectedType and CreateType fixes.
  38. Thu Aug 8 10:25:51 CEST 2002 Paolo Molaro <[email protected]>
  39. * AssemblyBuilder.cs: added API to embed managed resources.
  40. 2002-08-03 Martin Baulig <[email protected]>
  41. * TypeBuilder.cs (TypeBuilder.DeclaringType): Implemented.
  42. Thu Jul 25 13:57:46 CEST 2002 Paolo Molaro <[email protected]>
  43. * AssemblyBuilder.cs: support linking external resources.
  44. 2002-07-19 Martin Baulig <[email protected]>
  45. * ILGenerator.cs (Emit (OpCode, LocalBuilder)): Throw an exception
  46. when trying to emit a local that was defined in a different ILGenerator.
  47. * LocalBuilder.cs (LocalBuilder): Added `ILGenetator' argument to
  48. the constructor.
  49. Tue Jul 16 19:32:08 CEST 2002 Paolo Molaro <[email protected]>
  50. * ILGenerator.cs: stack size check fix.
  51. Sat Jul 13 17:30:51 CEST 2002 Paolo Molaro <[email protected]>
  52. * AssemblyBuilder.cs: add also the enum_type for compiling corlib.
  53. * TypeBuilder.cs: complete IsValueType.
  54. Sat Jul 13 15:08:12 CEST 2002 Paolo Molaro <[email protected]>
  55. * TypeBuilder.cs: better IsValueType.
  56. 2002-07-13 Gonzalo Paniagua Javier <[email protected]>
  57. * CustomAttributeBuilder.cs: removed compile warning.
  58. Fri Jul 12 11:34:58 CEST 2002 Paolo Molaro <[email protected]>
  59. * ILGenerator.cs: fixup typebuilder tokens as well.
  60. Tue Jul 9 19:03:03 CEST 2002 Paolo Molaro <[email protected]>
  61. * TypeBuilder.cs: special case SerializarionAttribute.
  62. Tweaks to get correct code in corlib.
  63. 2002-07-06 Miguel de Icaza <[email protected]>
  64. * ILGenerator.cs (ILGenerator.Emit): For doubles and floats, swap
  65. the bytes on big endian systems.
  66. 2002-07-03 Martin Baulig <[email protected]>
  67. * AssemblyBuilder.cs (corlib_object_type, corlib_value_type): Moved
  68. these fields up after the last entry in MonoReflectionAssemblyBuilder
  69. in reflection.h.
  70. * TypeBuilder.cs (IsValueTypeImpl): Use the AssemblyBuilder's
  71. `corlib_value_type' instead of `typeof (System.ValueType)'.
  72. (DefineNestedType): Use the AssemblyBuilder's `corlib_object_type'
  73. instead of `typeof (object)'.
  74. 2002-07-02 Martin Baulig <[email protected]>
  75. * AssemblyBuilder.cs (corlib_object_type, corlib_value_type): New
  76. internal fields. When compiling corlib, they point to the newly
  77. created System.Object and System.ValueType types.
  78. (SetCorlibTypeBuilders): New public function. This will be
  79. dynamically called from MCS when compiling corlib.
  80. * TypeBuilder.cs (DefineInitializedData): Use the AssemblyBuilder's
  81. `corlib_value_type' as parent type instead of `typeof (System.ValueType)'
  82. to make it work when compiling corlib.
  83. * ModuleBuilder.cs (assemblyb): Made this field internal, not private.
  84. Tue Jul 2 18:34:49 CEST 2002 Paolo Molaro <[email protected]>
  85. * TypeBuilder.cs: implemented AssemblyQualifiedName.
  86. * MethodBuilder.cs, ConstructorBuilder.cs: special case custom attr.
  87. Mon Jul 1 16:17:29 CEST 2002 Paolo Molaro <[email protected]>
  88. * TypeBuilder.cs: implemented AddInterfaceImplementation().
  89. 2002-06-28 Martin Baulig <[email protected]>
  90. * MethodBuilder.cs (GetParameters): Return all parameters, not all
  91. but the last one.
  92. 2002-06-27 Martin Baulig <[email protected]>
  93. * ConstructorBuilder.cs (GetParameters): Implemented.
  94. Mon Jun 17 14:55:43 CEST 2002 Paolo Molaro <[email protected]>
  95. * ModuleBuilder.cs, TypeBuilder.cs: fixes for nested types handling.
  96. Fri Jun 14 16:21:54 CEST 2002 Paolo Molaro <[email protected]>
  97. * CustomAttributeBuilder.cs: added custom attribute related internal
  98. helper methods.
  99. * FieldBuilder.cs, ParameterBuilder.cs: handle MarshalAs attribute.
  100. * UnmanagedMarshal.cs: implemented.
  101. Mon Jun 10 18:58:18 CEST 2002 Paolo Molaro <[email protected]>
  102. * PropertyBuilder.cs: implemented ReflectedType and DeclaringType
  103. properties.
  104. 2002-06-07 Martin Baulig <[email protected]>
  105. * TypeBuilder.cs (TypeBuilder): Added `PackingSize packing_size' and
  106. `int type_size' fields to the constructor.
  107. (DefineNestedType): Pass packing_size and type_size to the constructor.
  108. * ModuleBuilder.cs (DefineType): Pass the packing_size and type_size
  109. fields to the TypeBuilder's constructor.
  110. 2002-06-07 Martin Baulig <[email protected]>
  111. * TypeBuilder.cs (DefineNestedType): There is no overload for this
  112. method which takes 5 args in the specs, removed it.
  113. Fri Jun 7 17:04:06 CEST 2002 Paolo Molaro <[email protected]>
  114. * AssemblyBuilder.cs: updates for PE/COFF rewrite.
  115. 2002-05-30 Martin Baulig <[email protected]>
  116. * AssemblyBuilder.cs (methods): Made this internal and don't
  117. initialize it. It will be initialized by the ModuleBuilder's
  118. GetSymbolWriter() method.
  119. (get_next_table_index): Only store the method in the `methods'
  120. array if it's not null.
  121. * ModuleBuilder.cs (GetSymbolWriter): Initialize the AssemblyBuilder's
  122. `methods' field if necessary and pass it as third argument to the
  123. symbol writer's constructor.
  124. 2002-05-25 Martin Baulig <[email protected]>
  125. * TypeBuilder.cs (TypeToken): Implemented.
  126. 2002-05-24 Martin Baulig <[email protected]>
  127. * ModuleBuilder.cs (symwriter_define_local): New private variable.
  128. (GetSymbolWriter): Look for a custom version of "DefineLocalVariable"
  129. and store it in `symwriter_define_local'.
  130. (SymWriter_DefineLocalVariable): New internal method to call the
  131. symbol writer's custom DefineLocalVariable() method. It is safe to
  132. call this method if there's no symbol writer.
  133. * LocalBuilder.cs (SetLocalSymInfo): Use the MethodBuilder'snew
  134. SymWriter_DefineLocalVariable().
  135. * MethodBuilder.cs (GetParameters): Implemented.
  136. 2002-05-22 Martin Baulig <[email protected]>
  137. * ModuleBuilder.cs (GetSymbolWriter): Pass the this pointer to the
  138. symbol writer's constructor.
  139. 2002-05-22 Martin Baulig <[email protected]>
  140. * AssemblyBuilder.cs (methods): New field.
  141. (get_next_table_index): Record all methods and constructors
  142. (table 0x06) in the `methods' array. This is read by the
  143. Mono.CSharp.Debugger.MonoSymbolWriter::get_method interncall to
  144. get the MethodBuilder / ConstructorBuilder back from the token.
  145. * *Builder.cs (get_next_table_index): Added `object obj' argument.
  146. (<constructors>): pass the this pointer to get_next_table_index ().
  147. 2002-05-20 Martin Baulig <[email protected]>
  148. * TypeBuilder.cs (DefineField): Call the new `create_internal_class'
  149. interncall after adding the first field. This is used when creating
  150. enum types to set `klass->enum_basetype'.
  151. Thu May 16 16:09:51 CEST 2002 Paolo Molaro <[email protected]>
  152. * TypeBuilder.cs: complete special acse support for CharSet, Size and
  153. Pack named args in StructLayout attribute.
  154. Tue May 14 17:13:48 CEST 2002 Paolo Molaro <[email protected]>
  155. * MethodBuilder.cs: revert change in accessibility of
  156. GetILGenerator(int).
  157. Tue May 14 13:31:17 CEST 2002 Paolo Molaro <[email protected]>
  158. * FieldBuilder.cs, ParameterBuilder.cs: more special-casing of
  159. attributes.
  160. Fri May 10 20:57:27 CEST 2002 Paolo Molaro <[email protected]>
  161. * CustomAttributeBuilder.cs: expose internal data for use in
  162. reflection.
  163. * FieldBuilder.cs, TypeBuilder.cs: special case FieldOffset and
  164. StructLayout attributes.
  165. Fri May 10 16:30:57 CEST 2002 Paolo Molaro <[email protected]>
  166. * MethodBuilder.cs, ConstructorBuilder.cs: implemented InitLocals
  167. property.
  168. 2002-04-26 Martin Baulig <[email protected]>
  169. * ModuleBuilder.cs (DefineDocument): Implemented.
  170. Tue Apr 16 13:02:28 CEST 2002 Paolo Molaro <[email protected]>
  171. * AssemblyBuilder.cs: pad output file to file alignment.
  172. * FieldBuilder.cs: ReflectedType.
  173. * ModuleBuilder.cs: added guid generation and array method creation.
  174. * MonoArrayMethod.cs: array method support code.
  175. Wed Apr 10 12:57:31 CEST 2002 Paolo Molaro <[email protected]>
  176. * ILGenerator.cs: use a stack to keep track of exception blocks.
  177. Mon Apr 8 06:19:01 2002 Piers Haken <[email protected]>
  178. * ILGenerator.cs: added LabelField.label_base to allow for
  179. arbitrary offsets (for switch statement)
  180. Fri Apr 5 15:41:19 CEST 2002 Paolo Molaro <[email protected]>
  181. * AssemblyBuilder.cs: simpler protocol wih the runtime to
  182. get the assembly data.
  183. Tue Mar 26 20:10:24 CET 2002 Paolo Molaro <[email protected]>
  184. * AssemblyBuilder.cs: use FileMode.Create.
  185. * ILGenerator.cs: optimize localbuilder related opcodes.
  186. Track parameters to adjust maxstack.
  187. * LocalBuilder.cS: use unsigned for position.
  188. 2002-03-23 Miguel de Icaza <[email protected]>
  189. * LocalBuilder.cs: Drop the symbol_writer as LocalBuilder fields.
  190. Do this lazily in SetLocalSymInfo.
  191. 2002-03-24 Martin Baulig <[email protected]>
  192. * ModuleBuilder.cs (GetSymbolWriter): The MonoSymbolWriter's constructor
  193. now takes a `string assembly_filename' argument, pass it our fully
  194. qualified assembly name.
  195. 2002-03-24 Nick Drochak <[email protected]>
  196. * ILGenerator.cs: Use #if-#endif instead of if(false){} to disable
  197. code. This way there is no compiler warning.
  198. * TypeBuilder.cs: Removed the returns that came after the throws.
  199. This removes a few more compiler warnings. Also marked with MonoTODO
  200. all places where we throw NotImplemented exceptions.
  201. 2002-03-23 Martin Baulig <[email protected]>
  202. * SignatureHelper.cs (GetFieldSignatureHelper, GetLocalSignatureHelper):
  203. Implemented.
  204. * LocalBuilder.cs (LocalBuilder): This internal constructor now takes
  205. a ModuleBuilder argument instead of a ISymbolWriter one.
  206. (SetLocalSymInfo): Create and pass type signature to DefineLocalVariable.
  207. 2002-03-23 Martin Baulig <[email protected]>
  208. * ILGenerator.cs (BeginScope, EndScope): Implemented.
  209. 2002-03-20 Martin Baulig <[email protected]>
  210. * ModuleBuilder.cs (GetSymbolWriter): New internal function. Dynamically
  211. loads the default symbol writer, catch all possible exceptions and return
  212. null on failure.
  213. (ModuleBuilder): Added `bool emitSymbolInfo' argument to this internal
  214. constructor; if set, call GetSymbolWriter ().
  215. (GetSymWriter): Implemented.
  216. * LocalBuilder.cs (LocalBuilder): Added ISymbolWriter argument to this
  217. internal method.
  218. (SetLocalSymInfo): Implemented, call ISymbolWriter.DefineLocalVariable ()
  219. if the symbol writer is not null.
  220. * ILGenerator.cs (ILGenerator): Call ModuleBuilder.GetSymWriter () to get
  221. and store the symbol writer.
  222. (DeclareLocal): Pass the symbol writer to LocalBuilder's constructor.
  223. (MarkSequencePoint): Implemented, call ISymbolWriter.DefineSequencePoints ()
  224. if the symbol writer is not null.
  225. * AssemblyBuilder.cs (DefineDynamicModule): Pass the `bool emitSymbolInfo'
  226. to ModuleBuilder's constructor.
  227. Sat Mar 16 19:11:47 CET 2002 Paolo Molaro <[email protected]>
  228. * ModuleBuilder.cs: handle modified types correctly.
  229. Thu Mar 7 17:10:42 CET 2002 Paolo Molaro <[email protected]>
  230. * AssemblyBuilder.cs: allow saving bigger assemblies.
  231. * ILGenerator.cs: add fixup table for fields and methods, since
  232. at the end of the compile they may end up with a different table
  233. index.
  234. * ModuleBuilder.cs: add cache for type names to speed up the type
  235. lookups from the compiler.
  236. * TypeBuilder.cs: GetInterfaces () returns only interfaces in the
  237. current type, not in parents (the docs are wrong).
  238. Tue Mar 5 18:09:34 CET 2002 Paolo Molaro <[email protected]>
  239. * EventBuilder.cs: implemented.
  240. * TypeBuilder.cs: implemented DefineEvent() method and UnderlyingSystemType
  241. property.
  242. Mon Mar 4 20:34:52 CET 2002 Paolo Molaro <[email protected]>
  243. * ILGenerator.cs: make enough room in the byte array for string
  244. tokens.
  245. * TypeBuilder.cs: fixed GetInterfaces().
  246. Mon Mar 4 11:30:40 CET 2002 Paolo Molaro <[email protected]>
  247. * TypeBuilder.cs: implemented GetConstructors(), GetFields(),
  248. GetMethods(), GetProperties().
  249. Thu Feb 28 19:15:10 CET 2002 Paolo Molaro <[email protected]>
  250. * AssemblyBuilder.cs: call into the runtime to init some basic
  251. assembly stuff. Reserve slot 1 of typedef table for .<Module>.
  252. * ModuleBuilder.cs: call into the runtime if we need to create a
  253. modief type, such as arrays, byref etc.
  254. * TypeBuilder.cs: call into the runtime to create the MonoClass
  255. representation for the type. Throw exceptions with not implemented
  256. stuff.
  257. Wed Feb 27 18:48:47 CET 2002 Paolo Molaro <[email protected]>
  258. * ILGenerator.cs: fix nested exception blocks.
  259. Wed Feb 20 22:30:49 CET 2002 Paolo Molaro <[email protected]>
  260. * AssemblyBuilder.cs: upped compiled assembly size limit.
  261. Implemented SetCustomAttribute () methods.
  262. * CustomAttributeBuilder.cs: implemented the needed constructor
  263. stuff.
  264. * Cosntructorbuilder.cs, EnumBuilder.cs, FieldBuilder.cs,
  265. MethodBuilder.cs, ModuleBuilder.cs, ParameterBuilder.cs,
  266. PropertyBuilder.cs, TypeBuilder.cs: Implemented SetCustomAttribute () methods.
  267. Wed Feb 20 14:54:01 CET 2002 Paolo Molaro <[email protected]>
  268. * AssemblyBuilder.cs: add SetCustomAttribute () to keep the compiler
  269. going.
  270. Fri Feb 15 18:15:04 CET 2002 Paolo Molaro <[email protected]>
  271. * ILGenerator.cs: finally block support and fixes.
  272. Thu Feb 14 18:55:52 CET 2002 Paolo Molaro <[email protected]>
  273. * FieldBuilder.cs: Add SetRVAData().
  274. * ILGenerator.cs: speed up code array growth.
  275. * TypeBuilder.cs: fix IsValueTypeImpl(). Add class_size member.
  276. Implement DefineInitializedData().
  277. Tue Jan 22 23:01:11 CET 2002 Paolo Molaro <[email protected]>
  278. * EnumBuilder.cs, TypeBuilder.cs: updates for changes in Type.cs.
  279. * ModuleBuilder.cs: fix lookup of nested types.
  280. Tue Jan 15 22:46:21 CET 2002 Paolo Molaro <[email protected]>
  281. * ILGenerator.cs: implement some of the exception support methods.
  282. Mon Jan 14 17:07:32 CET 2002 Paolo Molaro <[email protected]>
  283. * ModulerBuilder.cs: search also for subtypes in GetTypes().
  284. * TypeBuilder.cs: bugfix in FullName. Implemented DefineNestedType().
  285. Fri Jan 11 19:00:29 CET 2002 Paolo Molaro <[email protected]>
  286. * MethodBuilder.cs, ConstructorBuilder.cs: save parameter info.
  287. Thu Jan 10 21:07:54 CET 2002 Paolo Molaro <[email protected]>
  288. * ILGenerator.cs: handle type tokens (used for box opcode).
  289. Wed Jan 9 19:37:55 CET 2002 Paolo Molaro <[email protected]>
  290. * ILGenerator.cs: emit float and doubles.
  291. * ModuleBuilder.cs: off-by-one error fix and GetType()
  292. implementations.
  293. * TypeBuilder.cs: AttributesImpl added.
  294. * UnmanagedMarshal.cs: stubbed out class.
  295. Sat Jan 5 15:59:05 CET 2002 Paolo Molaro <[email protected]>
  296. * ILGenerator.cs: fix emission of two-bytes opcodes.
  297. Missing slot for locals array. Throw exceptions on unimplemented
  298. methods.
  299. * OpCode.cs: add a comment: the Value property is useless.
  300. * OpCodes.cs: fix name of tail opcode (Tail -> Tailcall).
  301. 2002-01-05 Ravi Pratap <[email protected]>
  302. * ConstructorBuilder.cs : Use the MonoTODO attribute.
  303. * ILGenerator.cs, Label.cs, MethodBuilder.cs, ModuleBuilder.cs,
  304. ParameterBuilder.cs, TypeBuilder.cs : Ditto.
  305. Thu Jan 3 23:26:15 CET 2002 Paolo Molaro <[email protected]>
  306. * ILGenerator.cs: typo fix.
  307. Mon Dec 24 17:21:30 CET 2001 Paolo Molaro <[email protected]>
  308. * TypeBuilder.cs: added DefineMethodOverride().
  309. * MethodBuilder.cs: add override_method member and setter.
  310. Mon Nov 19 13:58:01 CET 2001 Paolo Molaro <[email protected]>
  311. * AssemblyBuilder.cs: add method to register a string in the "#US"
  312. stream.
  313. * EnumBuilder.cs, SignatureHelper.cs: added stubs.
  314. * ILGenerator.cs: more stuff implemented.
  315. * LocalBuilder.cs: keep track of local var index.
  316. Thu Nov 15 18:11:23 CET 2001 Paolo Molaro <[email protected]>
  317. * ConstructorBuilder.cs: implement the interesting methods.
  318. * ILGenerator.cs: adapt for use with both a MethodBuilder and a
  319. ConstructorBuilder.
  320. * MethodBuilder.cs: add ImplAttributes.
  321. * ParameterBuilder.cs: adapt for ConstructorBuilder.
  322. * TypeBuilder.cs: add constructors handling.
  323. Wed Nov 14 17:01:45 CET 2001 Paolo Molaro <[email protected]>
  324. * ConstructorBuilder.cs: added missing stubs and some implementation.
  325. * CustomAttributeBuilder.cs: added.
  326. * EventBuilder.cs: added.
  327. * FieldBuilder.cs: updates.
  328. * MethodBuilder.cs: stuff to implement P/Invoke methods.
  329. * ModuleBuilder.cs: added GetArrayMethod() stub.
  330. * ParameterBuilder.cs, PropertyBuilder.cs: updates.
  331. * TypeBuilder.cs: updates and stubs.
  332. 2001-11-10 Sean MacIsaac <[email protected]>
  333. * TypeBuilder.cs: Added implementation for TypeHandle.
  334. Tue Nov 6 09:13:45 CET 2001 Paolo Molaro <[email protected]>
  335. * AssemblyBuilder.cs: define an internal constructor.
  336. 2001-10-07 Miguel de Icaza <[email protected]>
  337. * AssemblyBuilder.cs: Reformatted.
  338. Added override keywords to those that needed them.
  339. Removed methods that we do not override, but just inherit
  340. Tue Sep 25 16:53:08 CEST 2001 Paolo Molaro <[email protected]>
  341. * TypeBuilder.cs, ConstructorBuilder.cs, ModuleBuilder.cs: added.