fe573217eabd5dd9da3c183115843a8d4eb05f10
[mono.git] / mcs / class / System / System.CodeDom.Compiler / ChangeLog
1 2010-04-01  Jb Evain  <jbevain@novell.com>
2
3         * CodeDomProvider.cs, CompilerInfo.cs: add .net 4.0 overloads.
4
5 2010-03-06  Marek Habersack  <mhabersack@novell.com>
6
7         * CompilerCollection.cs: in the 4.0 profile, the latest C#
8         standard is the compiler's default.
9
10 2008-10-09  Marek Habersack  <mhabersack@novell.com>
11
12         * CompilerCollection.cs: use all the compiler information from
13         config file when adding new CompilerInfo. Fixes bug #433802
14
15 2008-02-26  Marek Habersack  <mhabersack@novell.com>
16
17         * CompilerResults.cs: Output can be set internally.
18
19 2008-02-10  Juraj Skripsky  <js@hotfeet.ch>
20
21         * CodeGenerator.cs: Mark CurrentClass internal for NET_1_1.
22         Add nested Visitor class and member. 
23         GenerateExpression, GenerateStatement, GenerateType: Use visitor.
24         GeneratePrimitiveExpression: Replace if-else chain with switch
25         on TypeCode. 
26
27 2008-01-27  Gert Driesen  <drieseng@users.sourceforge.net>
28
29         * CodeGenerator.cs: Fixed ArgumentException argument names. Indent
30         expression list.
31
32 2007-12-15  Marek Habersack  <mhabersack@novell.com>
33
34         * Compiler.cs: added support for the default collection of
35         <providerOption> child elements and corresponding public
36         properties (ProviderOptions and ProviderOptionsDictionary).
37
38         * CompilerInfo.cs: added ProviderOptions dictionary, to hold
39         values from the <providerOption> collection of the
40         system.codeDom/compilers/compiler/ element.
41         CodeDomProviderType throws an exception if the provider type
42         cannot be found, as per MSDN.
43         CreateProvider uses the new provider constructor which takes
44         provider options dictionary as its parameter, if found in the
45         provider type.
46
47         * CompilerCollection.cs: compiler defaults are initialized using
48         the provider options dictionary, with one option present -
49         "CompilerVersion" set to "2.0".
50         Two dictionaries to map languages and extensions to compiler
51         information objects added.
52
53         * CompilerProviderOption.cs: added - implements the
54         <providerOption> element.
55
56         * CompilerProviderOptionsCollection.cs: added - implements
57         collection for the 2.0sp1 <providerOption> child element of the
58         system.codeDom/compilers/compiler element.
59
60 2007-03-05  Peter Dettman <peter.dettman@iinet.net.au>
61
62         * Codegenerator.cs: I noticed an `unreachable code' warning while
63         building Mono:
64
65         System.CodeDom.Compiler/CodeGenerator.cs(1229,42): warning CS0162:
66         Unreachable code detected
67
68         This turned out to be in the method
69         CodeGenerator.IsValidLanguageIndependentIdentifier, which was
70         broken.
71
72         The following patch contains a unit test to demonstrate the
73         problem (checked against MS.NET), and a fix to CodeGenerator.cs.
74
75 2007-02-22  Marek Habersack  <grendello@gmail.com>
76
77         * CompilerCollection.cs: be case-insensitive with languages and
78         extensions when looking up the compiler.
79
80 2007-01-22  Miguel de Icaza  <miguel@novell.com>
81
82         * CodeDomProvider.cs: Prevent Moma from getting confused.
83
84 2006-11-17  Atsushi Enomoto  <atsushi@ximian.com>
85
86         * TempFileCollection.cs : make it work under non-libc environment.
87
88 2006-11-16  Marek Habersack  <grendello@gmail.com>
89
90         * Compiler.cs: ConfigurationElement to handle the <compiler>
91         sub-element of the <system.codedom> section
92
93         * CodeDomConfigurationHandler.cs: Reimplemented as a
94         ConfigurationSection. Made the class internal.
95
96         * CompilerCollection.cs: Collection of Compiler and CompilerInfo
97         objects. Uses List<CompilerInfo> as we need to be able to store
98         multiple entries for the same language, as .NET does.
99
100         * CodeDomProvider.cs: Changes to use the new
101         CodeDomConfigurationHandler class.
102
103 2006-11-07  Marek Habersack  <grendello@gmail.com>
104
105         * CompilerInfo.cs: Implement the CreateDefaultCompilerParameters API.
106
107         * CodeDomConfigurationHandler.cs: WarningLevel of CompilerInfo
108         should default to -1 if it is absent from the config file, as per
109         MSDN.
110
111 2006-11-06  Marek Habersack  <grendello@gmail.com>
112
113         * CodeDomProvider.cs: IsDefinedLanguage should return true if
114         CompilerInfo for the specified language exists.
115
116         * CodeDomConfigurationHandler.cs: add an instance of CompilerInfo
117         separately for each language name defined in the compiler's
118         definition.
119
120 2006-09-15  LLuis Sanchez Gual  <lluis@novell.com>
121
122         * TempFileCollection.cs: Create files in a temporary subdirectory,
123         for security reasons.
124         * CodeCompiler.cs: Let TempFileCollection choose the temp dir.
125
126 2006-05-04  LLuis Sanchez Gual  <lluis@novell.com>
127
128         * TempFileCollection.cs: Make sure generated file names
129           are unique. Fixes bug #76125 and #78230.
130
131 2006-04-20  Gert Driesen  <drieseng@users.sourceforge.net>
132
133         * CodeGenerator.cs: Output empty line between types if 
134         BlankLinesBetweenMembers option is set.
135
136 2006-03-24  Chris Toshok  <toshok@ximian.com>
137
138         * CompilerInfo.cs (Init): make this internal as well, so
139         CodeDomConfigurationHandler can call it.
140
141         * CodeDomConfigurationHandler.cs (ReadCompilers): we need to call
142         CompilerInfo.Init after setting CompilerInfo.TypeName.
143
144 2006-03-11  Miguel de Icaza  <miguel@novell.com>
145
146         * CodeDomConfigurationHandler.cs: Comment out unused methods. 
147
148         * TempFileCollection.cs: Implement explicitly some interface
149         methods to get rid of the "!" errors on CorCompare.
150
151 2006-02-19  Zoltan Varga  <vargaz@gmail.com>
152
153         * CodeDomProvider.cs: Fix the [ToolboxItem] attribute. Fixes #77513.
154
155 2005-12-07  Gert Driesen  <drieseng@users.sourceforge.net>
156
157         * CodeGenerator.cs: Modified GeneratePrimitiveExpression to throw 
158         ArgumentException for sbyte value, use GenerateSingleFloatValue for 
159         float, GenerateDecimalValue for decimal and GenerateDoubleValue for
160         double. Modified exception message for non-primitive types to match
161         MS.NET.
162         * ICodeCompiler.cs: Set eol-style to native.
163         * CodeCompiler.cs: Set eol-style to native.
164         * CodeDomConfigurationHandler.cs: Set eol-style to native.
165         * CodeDomProvider.cs: Set eol-style to native.
166         * CodeGeneratorOptions.cs: Set eol-style to native.
167         * CodeParser.cs: Set eol-style to native.
168         * CompilerError.cs: Set eol-style to native.
169         * CompilerErrorCollection.cs: Set eol-style to native.
170         * CompilerInfo.cs: Set eol-style to native.
171         * CompilerParameters.cs: Set eol-style to native.
172         * CompilerResults.cs: Set eol-style to native.
173         * Executor.cs: Set eol-style to native.
174         * GeneratorSupport.cs: Set eol-style to native.
175         * ICodeGenerator.cs: Set eol-style to native.
176         * ICodeParser.cs: Set eol-style to native.
177         * LanguageOptions.cs: Set eol-style to native.
178         * TempFileCollection.cs: Set eol-style to native.
179
180 2005-11-30  Gert Driesen  <drieseng@users.sourceforge.net>
181
182         * CodeGenerator.cs: Corrected line endings. Set eol-style to native.
183         * IndentedTextWriter.cs: Indent can no longer become negative.
184
185 2005-11-04  Sebastien Pouliot  <sebastien@ximian.com> 
186
187         * CodeCompiler.cs: Compile now use the Executor class (instead of the
188         Process class). Fixed JoinStringArray.
189         * CompilerResults.cs: Load assembly only when the property is called.
190
191 2005-11-02  Sebastien Pouliot  <sebastien@ximian.com> 
192
193         * Executor.cs: Reworked (for permissions) and fixed ExitCode (must be 
194         called before Close).
195
196 2005-11-01  Sebastien Pouliot  <sebastien@ximian.com> 
197  
198         * CodeGenerator.cs: Added/stubbed missing 2.0 stuff.
199
200 2005-11-01  Sebastien Pouliot  <sebastien@ximian.com>
201
202         CodeDomProvider.cs: Added missing 2.0 methods. Added CAS permissions.
203         Added protection against NullReferenceException when no config is
204         available.
205
206 2005-10-29  Sebastien Pouliot  <sebastien@ximian.com>
207
208         CodeDomProvider.cs: Stubbed a few 2.0 methods to fix API errors in 
209         derived classes.
210
211 2005-10-25  Sebastien Pouliot  <sebastien@ximian.com>
212
213         * CompilerError.cs: Added LinkDemand for Unrestricted before 2.0.
214         * CompilerErrorCollection.cs: Added LinkDemand for Unrestricted before
215         2.0.
216
217 2005-10-25  Sebastien Pouliot  <sebastien@ximian.com> 
218  
219         * CodeGenerator.cs: Fixed OutputAttributeArgument not to assume the
220         default value is null (it's String.Empty).
221
222 2005-10-25  Sebastien Pouliot  <sebastien@ximian.com>
223
224         * CompilerParameters.cs: Added [ComVisible(false)] on the new (2.0)
225         EmbeddedResources and LinkedResources properties.
226         * TempFileCollection.cs: Changed BasePath property to use Path.
227         GetTempPath (Environment check) and added the PathDiscovery check on
228         the combined result. Fixed TempDir so it's value never change (i.e. 
229         imply that it doesn't need any permissions). Fixed SyncRoot to always 
230         return null.
231
232 2005-10-24  Sebastien Pouliot  <sebastien@ximian.com>
233
234         * CodeGeneratorOptions.cs: Fixed how properties are kept inside the
235         IDictionary (which is just like System.Web.dll).
236         * CompilerError.cs: Added [Serializable] attribute for 2.0.
237         * CompilerInfo.cs: Added LinkDemand for Unrestricted. Stubbed new 
238         (2.0) CreateDefaultCompilerParameters method.
239         * CompilerParameters.cs: Added LinkDemand and InheritanceDemand for
240         Unrestricted. Added Demand for ControlEvidence to Evidence property.
241         Added new (2.0) EmbeddedResources and LinkedResources properties.
242         * CompilerResults.cs: Added LinkDemand and InheritanceDemand for 
243         Unrestricted. Added Demand for ControlEvidence to Evidence property.
244         * Executor.cs: Added LinkDemand for Unrestricted. Added support for 
245         userToken (impersonation).
246         * GeneratedCodeAttribute.cs: New. 2.0 attribute for code generated by 
247         tools.
248         * IndentedTextWriter.cs: Added LinkDemand and InheritanceDemand for 
249         Unrestricted.
250
251 2005-10-04  Sebastien Pouliot  <sebastien@ximian.com>
252
253         * TempFileCollection.cs: Added a call to GC.SuppressFinalize in 
254         Dispose.
255
256 2005-07-30 Gert Driesen <drieseng@users.sourceforge.net>
257
258         * CodeGenerator.cs: In OutputMemberScopeModifier, only output 
259         "new" modifier in 2.0 profile.
260
261 2005-07-24 Gert Driesen <drieseng@users.sourceforge.net>
262
263         * CodeGenerator.cs: Threat delegates like any other type.
264
265 2005-07-21 Gert Driesen <drieseng@users.sourceforge.net>
266
267         * CodeGenerator.cs: Fixed IsCurrentClass to return false for delegate.
268
269 2005-06-28 Gert Driesen <drieseng@users.sourceforge.net>
270
271         * CodeGenerator.cs: On 2.0 profile, internal members are also marked
272         virtual. Fixed access modifier for FamilyAndAssembly to match
273         MS.NET.
274
275 2005-06-25 Gert Driesen <drieseng@users.sourceforge.net>
276
277         * CodeGenerator.cs: Fixed bug #75190, GenerateCodeFromCompileUnit
278         generates no code for CodeSnippetCompileUnit.
279
280 2005-06-04 Gert Driesen <drieseng@users.sourceforge.net>
281
282         * IndentedTextWriter.cs: also output tabs in WriteLine () to
283         match MS.NET
284
285 2005-02-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
286
287         * CodeDomProvider.cs: implemented IsDefined* and GetCompilerInfo.
288         * CompilerInfo.cs: implemented.
289         * CodeDomConfigurationHandler.cs: system.codedom section reader.
290
291 2005-01-27  LLuis Sanchez Gual  <lluis@novell.com>
292
293         * CodeGenerator.cs: Write 'f' suffix for float constants.
294
295 2004-09-06  Marek Safar  <marek.safar@seznam.cz>
296
297         * CodeGenerator.cs,
298         * GeneratorSupport.cs : Implemented NET_2_0 extension
299         
300         * CompilerInfo.cs : New NET_2_0 file.
301
302 2004-09-01  Marek Safar  <marek.safar@seznam.cz>
303
304         * CodeGenerator.cs : Added newline after global attributes output.
305         (OutputAttributeDeclaration): Replace '+' with '.' for nested
306         attribute types.
307
308 2004-08-09  Atsushi Enomoto  <atsushi@ximian.com>
309
310         * CodeGenerator.cs :
311           Don't initialize output more than once. TextWriter is wrapped twice.
312
313 2004-07-15  Peter Williams  <peter@newton.cx>
314
315         * CodeGenerator.cs: Have the basic generator create line pragmas
316         for NamespaceImports, SnippetCompileUnits, and TypeMembers, all of
317         which had LinePragma members which were going unused.
318
319 2004-06-17  Jackson Harper  <jackson@ximian.com>
320
321         * CompilerError.cs:
322         * CodeGenerator.cs: Make sure we are using invariant for non
323         culture sensitive operations.
324         
325 2004-06-13  Gert Driesen <drieseng@users.sourceforge.net>
326
327         * IndentedTextWriter.cs: have DefaultTabString correspond with
328         MS.NET (meaning four spaces)
329
330 2004-05-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
331
332         * TempFileCollection.cs: don't create a Random object on every call to
333         BasePath.
334
335 2004-04-26  Atsushi Enomoto  <atsushi@ximian.com>
336
337         * CodeGenerator.cs : delegate was output as usual class.
338
339 2004-03-29  Lluis Sanchez Gual  <lluis@ximian.com>
340
341         * Executor.cs: Implemented.
342
343 2004-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
344
345         * TempFileCollection.cs: fixed typo in Delete. Closes bug #54443.
346
347 2004-02-10  Jackson Harper <jackson@ximian.com>
348
349         * CompilerParameters.cs: TempFiles should never return null.
350         
351 2004-02-04  Jackson Harper <jackson@ximian.com>
352
353         * CodeGenerator.cs (GenerateExpression): Don't allow null
354         expressions. Throw ArgumentException if the expression type is not
355         handled.
356         * CodeGenerator.cs (GenerateStatement): Add line pragmas if they
357         are set. Throw ArgumentException if the expression type is not handled.
358         
359 2003-12-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
360
361         * TempFileCollection.cs: fixed temp path in BaseDir.
362
363 2003-11-21  Gonzalo Paniagua Javier <gonzalo@ximian.com>
364
365         * CodeGenerator.cs: fixed assembly level attribute generation.
366
367 2003-08-08  Lluis Sanchez Gual  <lluis@ximian.com>
368
369         * CodeGenerator.cs: When sorting the members of a type, keep the
370         relative order of the members of the same kind.
371
372 2003-08-05  Lluis Sanchez Gual  <lluis@ximian.com>
373
374         * CodeGenerator.cs: Generate comments for properties and fields.
375           Write a line separator between type declarations.
376
377 2003-07-10  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
378
379         * Executor.cs: Changed abstract to sealed
380
381 2003-07-07  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
382
383         * CodeDomProvider.cs: Removed unneccesary attribute according to corecompare
384         * Executor.cs: Fixed signature with ref calls according to corecompare and made neccessary changes
385
386 2003-06-20  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
387
388         * CodeCompiler.cs: Nearly completely implemented
389         * CodeDomProvider.cs: Added missing Attribute, restyled according to style guidelines
390         * CodeGenerator.cs: Fixed visibilies, added missing members, implemented members, stubbed out missing member, restyled according to style guidelines
391         * CodeParser.cs: Added and implemented (ok no real implementation needed ;)
392         * CompilerErrorCollection.cs: Removed unneeded MonoTODOs, restyled according to style guidelines
393         * CompilerParameters.cs: Fixed wrong properties, Added Initializers, restyled according to style guidelines
394         * CompilerResults.cs: Added Evidence property, added initial values
395         * Executor.cs: Added and partially implemented (should probably be used by CodeCompiler)
396         
397         * CompilerOptions.cs: Deleted this file (such a class does not exist)
398         
399 2003-05-16  Dick Porter  <dick@ximian.com>
400
401         * TempFileCollection.cs: Implement
402
403 2003-04-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
404
405         * CodeGenerator.cs:
406         (GenerateSnippetStatement): use WriteLine instead of Write.
407
408 2003-04-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
409
410         * CodeGenerator.cs:
411         (GenerateCodePrimitive): special case strings and chars (bool was
412         already a special case). Throw an exception if the type is not a
413         primitive type.
414
415 2003-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
416
417         * CodeGenerator.cs: more fixes and sorted the output.
418         
419         * IndentedTextWriter.cs: don't output tabs in WriteLine ().
420
421 2003-04-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
422
423         * CodeGenerator.cs:
424         (GenerateCompileUnitStart):
425         (GenerateCompileUnitEnd): removed debug output.
426         (GeneratePrimitiveExpression): handle null and bool as special cases.
427         (GenerateType): added type constructor and constructor calls.
428
429 2003-02-20  Alfonso Ali <isa@infomed.sld.cu>
430
431         * CodeGenerator.cs: Generates the entry point method.
432
433 2003-01-10  Duncan Mak  <duncan@ximian.com>
434
435         * CompilerErrorCollection.cs: 
436         * CompilerParameters.cs: Patch from Sean Kasun
437         <skasun@azstarnet.com> implementing most of the MonoTODOs in
438         CompilerErrorCollection and the CompilerParameters overloads in CompilerParameters.cs.
439
440 2002-11-30 Jackson Harper <jackson@latitudegeo.com>
441
442         * CodeCompiler.cs: Removed TODO attribute from abstract members
443
444 2002-11-30 Jackson Harper <jackson@latitudegeo.com>
445
446         * CodeCompiler.cs: Added stub
447
448 2002-09-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
449
450         * CodeDomProvider.cs:
451         * IndentedTextWriter.cs: misc. fixes.
452
453 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
454
455         * CompilerError.cs: implemented.
456         * CompilerErrorCollection.cs: stubbed out and fix inheritance.
457         * GeneratorSupport.cs: fixed values.
458
459 2002-05-28  Daniel Stodden <stodden@in.tum.de>
460
461         * CodeDomProvider.cs: added, incomplete
462
463         * CodeGeneratorOptions.cs: added, complete
464
465         * CompilerErrorCollection.cs: added, stub
466
467         * CompilerOptions.cs: added, stub
468
469         * CompilerResults.cs: added, complete
470
471         * GeneratorSupport.cs: added, complete
472
473         * ICodeCompiler.cs: added, complete
474
475         * ICodeParser.cs: added, complete
476
477         * IndentedTextWriter.cs: added, complete
478
479         * LanguageOptions.cs: added, complete
480
481         * TempFileCollection.cs: added, stub
482         
483         * ICodeGenerator.cs: added, complete
484
485 2002-01-05  Ravi Pratap  <ravi@ximian.com>
486
487         * CodeGenerator.cs : Mark bits with MonoTODO.
488
489 2001-07-15  Sean MacIsaac  <macisaac@ximian.com>
490
491         * CodeGenerator.cs: moved using statement out of namespace
492         declaration.
493