2006-11-19 Igor Zelmanovich <igorz@mainsoft.com>
[mono.git] / mcs / class / System.Web / System.Web.Compilation / ChangeLog
1 2006-11-19 Igor Zelmanovich <igorz@mainsoft.com>
2
3         * TemplateControlCompiler.cs: fixed:
4         When <%# Bind(...) %>-expression is used more then once for same control
5         The variable associated with this control is declared only once.
6
7 2006-11-18  Marek Habersack  <grendello@gmail.com>
8
9         * AppResourceFilesCompiler.cs: Fixed an exception thrown when
10         files with names like File.resources or File.resx are found in the
11         resource directories.
12
13 2006-11-16  Marek Habersack  <grendello@gmail.com>
14
15         * ForceCopyBuildProvider.cs: Added the build provider for
16         copy-only files.
17
18         * MasterPageBuildProvider.cs: Added the build provider for Master
19         Pages.
20
21         * IgnoreFileBuildProvider.cs: Make the class sealed.
22
23         * AppCodeCompiler.cs: Fixed BuildProvider creation for a path. Now
24         correctly uses the BuildProviderCollection to retrieve the
25         appropriate builder and maps the physical input file path into
26         application relative path when setting the virtual path of the
27         build provider.
28
29 2006-11-13  Marek Habersack  <grendello@gmail.com>
30
31         * AssemblyBuilder.cs: Added referenced assemblies support. Added a
32         constructor with just the CodeDomProvider argument. CreateCodeFile
33         now uses the code provider's file extension. Added internal method
34         to add pre-generated source code files. Added a BuildAssembly
35         overload that takes no virtual path as  the
36         parameter. BuildAssembly now uses an array of source files instead
37         of compile units and also handles embedded resources and
38         referenced assemblies. BuildAssembly deletes the temporary files
39         if MONO_ASPNET_NODELET isn't set in the environment.
40
41         * AppCodeCompiler.cs: Use the FileUtils methods for temporary file
42         creation. Use the build providers collection to build unknown
43         files in App_Code. Use AssemblyBuilder to compile the assembly.
44
45         * AppResourceFilesCompiler.cs: Use the FileUtils methods for
46         temporary file creation.
47
48         * WebHandlerBuildProvider.cs: Added the BuildProviderAppliesTo
49         attribute.
50
51         * UserControlBuildProvider.cs: Added the BuildProviderAppliesTo
52         attribute.
53
54         * PageBuildProvider.cs: Added the BuildProviderAppliesTo
55         attribute.
56
57         * WebServiceBuildProvider.cs: Added the BuildProviderAppliesTo
58         attribute.
59
60         * IgnoreFileBuildProvider.cs: Added the BuildProviderAppliesTo
61         attribute.
62
63 2006-11-08  Marek Habersack  <grendello@gmail.com>
64
65         * BuildProvider.cs: Implemented the GetCustomString
66         method. Removed the necessity to retrieve the CompilationSection
67         twice when GetDefaultCompilerType is called.
68
69         * AppResourcesCompiler.cs: Added resource compiler results
70         handling.
71
72         * AppCodeCompiler.cs: The App_Code compiler classes
73
74         * BuildManager.cs: Implement the CodeAssemblies property.
75         Added an internal TopLevelTypes property to be used in the custom
76         GetType methods. Implemented the GetCompiledCustomString method.
77         Implemented the GetType method overloads. Implemented the
78         GetVirtualPathDependencies method.
79
80         * BaseCompiler.cs: Reference the assemblies from App_Code, if any
81
82 2006-10-18  Marek Habersack  <grendello@gmail.com>
83
84         * TemplateControlCompiler.cs: add support for resource
85         expressions in tag attributes.
86
87         * ResourceExpressionBuilder.cs: add support for resource
88         expressions in tag attributes.
89
90         * BaseCompiler.cs: add global/local resource assemblies to
91         compilation references, if present.
92
93         * AppResourcesCompiler.cs: global/local resources compiler.
94
95         * AppResourceFilesCompiler.cs: compiler of resource files.
96
97 2006-10-03 Igor Zelmanovich <igorz@mainsoft.com>
98
99         * TemplateControlCompiler.cs: fixed: Bind functions (Data-Binding Syntax).
100         At run time, the Bind method calls the Eval method, if there is DataItem
101         != null to bind to.
102         If there is DataItem == null (like InsertItemTemplate in FormView) Bind
103         method don't raise exception and works properly to extract data from
104         bounded controls on postback.
105                 
106 2006-09-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
107
108         * AspGenerator.cs: if we are tracking non-server tags for
109         well-formedness, handle tags that do not need to be closed (br, img,...)
110         Fixes bug #79437.
111
112 2006-09-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
113
114         * PageCompiler.cs: support the EnableEventValidation attribute.
115
116 2006-09-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
117
118         * AspGenerator.cs: after parsing an include file, don't error out if we
119         still have opened tags unless this was the last file to parse. Fixes
120         bug #79318.
121
122 2006-09-05  Konstantin Triger <kostat@mainsoft.com>
123
124         * ParseException.cs: Ensure the source file stream is closed.
125
126 2006-08-25  Kornél Pál  <kornelpal@gmail.com>
127
128         * AppSettingsExpressionBuilder.cs: Use assembly name constants.
129         * ConnectionStringsExpressionBuilder.cs: Use name reference
130           constants.
131         * ResourceExpressionBuilder.cs: Use assembly name constants.
132
133 2006-08-20  Vladimir Krasnov  <vladimirk@mainsoft.com>
134
135         * ThemeDirectoryCompiler.jvm.cs: implemented GetCompiledInstance
136
137 2006-08-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
138
139         * ClientBuildManager.cs: handle domain shutdown and unload.
140         Implemented some properties. Commented.
141
142 2006-08-10  Andrew Skiba  <andrews@mainsoft.com>
143
144         * ThemeDirectoryCompiler.cs: render css path as a virtual path.
145
146 2006-08-08  Vladimir Krasnov  <vladimirk@mainsoft.com>
147
148         * added ThemeDirectoryCompiler.jvm.cs
149
150 2006-07-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
151
152         * PageThemeCompiler.cs: Don't generate a 'Items.Clear ()' call if
153         the property Items does not exist. Patch by Marek Habersack that fixes
154         bug #78971.
155
156 2006-07-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
157
158         * TemplateControlCompiler.cs: support assigning nullable types.
159         Patch by Marek Habersack that fixes bug #78970.
160
161 2006-07-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
162
163         * TemplateControlCompiler.cs: make password work again.
164
165 2006-06-21 Juraj Skripsky <js@hotfeet.ch>
166
167         * AspTokenizer.cs (ReadAttValue), AspParser.cs (GetAttributes):
168         MS.NET handles nested quotes differently for server controls and
169         for "normal" controls. Add a property "AlternatingQuotes" to the
170         tokenizer and let the parser decide whether it is well-formed or not.
171
172 2006-06-20 Andrew Skiba <andrews@mainsoft.com>
173
174         * PageThemeCompiler.cs, TemplateControlCompiler.cs: take care of
175         UrlPropertyAttribute.
176
177 2006-06-18 Andrew Skiba <andrews@mainsoft.com>
178
179         * TemplateControlCompiler.cs: check IsWritablePropertyOrField before
180         generating code for assignment statement and DataBind event.
181         
182 2006-06-15 Juraj Skripsky <js@hotfeet.ch>
183
184         * AspTokenizer.cs (ReadAttValue), AspParser.cs (GetAttributes):
185         Don't allow an attribute value to contain the same quote characters
186         as the ones used for delimiting the value itself. Add a token
187         NOTWELLFORMED to signal that case to AspParser. Fixes bug #78643.
188
189 2006-06-08      Konstantin Triger <kostat@mainsoft.com>
190
191         * ThemeDirectoryCompiler.cs: use physical path instead of virtual path.
192
193 2006-04-24  Andrew Skiba  <andrews@mainsoft.com>
194
195         * ThemeDirectoryCompiler.cs: use UrlUtils.Combine to combine pathes
196
197 2006-04-23  Andrew Skiba  <andrews@mainsoft.com>
198
199         * PageThemeCompiler.cs: initialize __linkedStyleSheets field with the
200         array of style sheets from the parser
201         * ThemeDirectoryCompiler.cs: scan *.css files in theme directory and
202         put them in LinkedStyleSheets of PageThemeParser
203
204 2006-04-20  Chris Toshok  <toshok@ximian.com>
205
206         * BaseCompiler.cs: for 2.0, emit the correct namespace and class
207         names in the case where you use "NS.ClassName" in the Inherits
208         attribute.  Fixes bug #78135.
209
210 2006-04-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
211
212         * CachingCompiler.cs: no need to play the Wait/PulseAll game, as we
213         already acquired the lock even when we might have not created the 'key'
214         to the compilation ticket.
215
216 2006-04-16  Andrew Skiba <andrews@mainsoft.com>
217
218         * ThemeDirectoryCompiler.cs: add to the directory parser all the
219         assemblies found by PageThemeFileParsers
220
221 2006-04-12  Lluis Sanchez Gual <lluis@novell.com>
222
223         * TemplateControlCompiler.cs: Properly read all content of
224         string properties.
225
226 2006-04-11  Andrew Skiba <andrews@mainsoft.com>
227
228         * TemplateControlCompiler.cs : fix for partial parsers
229
230 2006-04-11  Andrew Skiba <andrews@mainsoft.com>
231
232         * ThemeDirectoryCompiler.cs : map the virtual path to the physical
233         path
234
235 2006-04-08  Miguel de Icaza  <miguel@novell.com>
236
237         * TemplateControlCompiler.cs: An attempt to fix the regression
238         introduced in r58505 (a bug fix for 77762).   This was reported in
239         the mailing list with a batch of new 2.0 failures.
240
241         We really need a test suite in NUnit to check on ASP.NET aspx
242         changes.
243
244 2006-03-27  Robert Jordan  <robertj@gmx.net>
245
246         * CachingCompiler.cs:  change the compilation locking scheme
247         from "one mcs per process" to "one mcs per file".
248
249 2006-03-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
250
251         * System.Web.Compilation/TemplateControlCompiler.cs: handle the new
252         StringPropertyBuilder.
253
254 2006-03-24  Chris Toshok  <toshok@ximian.com>
255
256         * BaseCompiler.cs (GetCompiledType): fall back to CodeDomProvider
257         if system.web/compilation doesn't list a compiler for our
258         language.
259
260 2006-03-13  Chris Toshok  <toshok@ximian.com>
261
262         * TemplateControlCompiler.cs (InitMethod): when generating the
263         call to ApplyStyleSheetSkin, don't just blindly pass "this" as the
264         argument to it.  Only do that if the class we're compiling is
265         actually a subclass of Page.  If it's not, pass this.Page.
266
267 2006-03-07  Chris Toshok  <toshok@ximian.com>
268
269         * AspGenerator.cs: refactor the parsing code so that we can
270         initiate parsing from outside this class.
271
272         * PageCompiler.cs (PrependStatementsToFrameworkInitialize): new
273         method, add our StyleSheetTheme assignment here.
274         (AppendStatementsToFrameworkInitialize): rename AddStatements* to
275         this.
276
277         * TemplateControlCompiler.cs (EnsureID): make protected.
278         (CreateAssignStatementsFromAttributes): same
279         (AddChildCall): same.
280         (CreateControlTree): same.
281         (CreateFrameworkInitializeMethod): change
282         "AddStatementsToFrameworkInitialize" to
283         "AppendStatementsToFrameworkInitialize", and add call to
284         "PrependStatementsToFrameworkInitialize" before the generation of
285         "base.FrameworkInitialize()."
286
287         * PageThemeCompiler.cs (CreateControlSkinMethod): remove spew.
288
289 2006-03-07  Chris Toshok  <toshok@ximian.com>
290
291         * ThemeDirectoryCompiler.cs: new file.
292
293         * PageThemeCompiler.cs: new file.
294
295 2006-03-07  Chris Toshok  <toshok@ximian.com>
296
297         * BaseCompiler.cs: fix typo in "initialize" in multiple places.
298         (Init): move the CreateMethods call here.
299
300 2006-03-02  Chris Toshok  <toshok@ximian.com>
301
302         * TemplateControlCompiler.cs (InitMethod): emit an assignment for
303         SkinID just after the creation of our object, and right after that
304         call "_ctrl.ApplyStyleSheetSkin (page)".
305         (CreateAssignStatementsFromAttributes): split out the majority of
306         this code to CreateAssignStatementFromAttribute, and change this
307         method to simply a loop over the attribute keys.  In the 2.0 case,
308         skip the SkinID property, since that's handled explicitly in
309         InitMethod.
310
311         * PageCompiler.cs (AddStatementsToInitMethod): emit assignments
312         for Theme and StyleSheetTheme.
313
314 2006-02-23  Chris Toshok  <toshok@ximian.com>
315
316         * TemplateControlCompiler.cs (AddContentTemplateInvocation): track
317         change from ContentControlBuilderInternal to
318         ContentBuilderInternal.
319         (AddCodeRender): same.
320
321 2006-02-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
322
323         * AssemblyBuilder.cs:
324         * BuildManager.cs: compile the assembly from AssemblyBuilder and use
325         GetGeneratedType() on the BuildProvider instead of loading the assembly
326         and trying a wild guess at the type name.
327
328 2006-02-14 Gonzalo Paniagua Javier <gonzalo@ximian.com>
329
330         * GlobalAsaxCompiler.cs:
331         * PageCompiler.cs:
332         * TemplateControlCompiler.cs: CreateMethods is now internal.
333
334         * WebServiceBuildProvider.cs:
335         * PageBuildProvider.cs:
336         * UserControlBuildProvider.cs:
337         * WebHandlerBuildProvider.cs: new build providers.
338
339         * BuildProvider.cs: add assemblies.
340
341         * BaseCompiler.cs: expose the provider and the compile unit through
342         properties.
343
344 2006-02-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
345
346         * CompilerType.cs: implemented.
347
348         * AssemblyBuilder.cs: implemented most of it.
349
350         * WebServiceCompiler.cs:
351         * CachingCompiler.cs: update 2.0 compiler instance creation code.
352
353         * ClientBuildManager.cs: implemented some of its methods. Not yet
354         ready.
355
356         * BuildManager.cs: the more interesting methods are implemented now.
357
358         * BaseCompiler.cs: delete the temporary files in case of error.
359
360         * BuildProvider.cs: implemented the Get*Compiler* protected methods.
361
362 2006-02-07  Chris Toshok  <toshok@ximian.com>
363
364         * TemplateControlCompiler.cs (AddParsedSubObjectStmt): append the
365         calls to AddParsedSubObject to a special statement collection --
366         builder.flushOutputStatements -- not to builder.method.Statements.
367         (InitMethod): initially, set flushOutputStatements to
368         method.Statements.  If we're dealing with a ContentPlaceHolder,
369         set flushOutputStatements to be the else block of a conditional we
370         create.  This causes the compiled control to fall back to the
371         ContentPlaceHolder's child controls in case there's no
372         corresponding Content template.
373         (AddChildCall): use methodStatements instead of method.Statements.
374         (CreateControlTree): same.
375
376         * PageCompiler.cs (CreatePropertyAssign): factor out the
377         string,string implementation and add one that also takes a
378         CodeExpression; make the string,string implementation call the
379         three arg one with thisRef.
380         (AddStatementsToInitMethod): make use of the 3-arg form of
381         CreatePropertyAssign to reduce code.  Also, add support for
382         setting the page's Title from the parser's Title.
383
384 2006-02-07  Chris Toshok  <toshok@ximian.com>
385
386         * UserControlCompiler.cs (AddStatementsToInitMethod): emit code to
387         assign __ctrl.MasterPageFile to our master page, if we have one.
388
389         * PageCompiler.cs (CreateContructor): remove the MasterPageFile
390         assignment from here.
391         (AddStatementsToInitMethod): and move it here.
392         
393         * TemplateControlCompiler.cs (InitMethod): in the case where
394         builder is a RootBuilder (we're building the __BuildControlTree
395         method), call a virtual method so that subclasses can add their
396         own statements to the method (used by both Page and MasterPage);
397         Also, in the RootBuilder case, the argument should be the
398         parser.ClassName type (the class we're building); lastly, expand
399         the ContentPlaceHolder logic to include all the
400         ContentTemplates/InstantiateIn magic.
401         (AddStatementsToInitMethod): empty virtual method.
402         (AddContentTemplateInvocation): ContentControlBuilder ->
403         ContentControlBuilderInternal.
404         (CreateControlTree): same.
405         (CallBaseFrameworkInitialize): new function, create call to
406         base.FrameworkInitialize.
407         (CreateFrameworkInitializeMethod): call CallBaseFrameworkIniitialize.
408
409 2006-02-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
410
411         * IgnoreFileBuildProvider.cs: it's not public.
412         * BuildProvider.cs: mostly implemented.
413
414 2006-02-01  Chris Toshok  <toshok@ximian.com>
415
416         * WebServiceCompiler.cs: CONFIGURATION_2_0 => NET_2_0, and use
417         GetSection instead of GetWebApplicationSection.
418
419         * CachingCompiler.cs: same.
420
421         * AspGenerator.cs: same.
422
423         * BaseCompiler.cs: same.
424         
425 2006-01-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
426
427         * AspGenerator.cs: ignore 'thead'. Fixes bug #77326.
428
429 2006-01-22  Chris Toshok  <toshok@ximian.com>
430
431         * IgnoreFileBuildProvider.cs: build provider which does nothing.
432
433 2006-01-22  Chris Toshok  <toshok@ximian.com>
434
435         * AspComponentFoundry.cs (.ctor): use a 2.0 friendly form of the
436         Hashtable ctor to silence a couple of warning.
437         (CompoundFoundry.ctor): same
438
439         * Directive.cs (InitHash): use a 2.0 friendly form of the
440         Hashtable ctor to silence a couple of warning.
441
442         * TagAttributes.cs (MakeHash): use a 2.0 friendly form of the
443         Hashtable ctor to silence a warning.
444         (GetDictionary): same.
445
446 2006-01-22  Chris Toshok  <toshok@ximian.com>
447
448         * AppSettingsExpressionBuilder.cs: implement this, patterning it
449         after an example on msdn.  Also, enable the ExpressionEditor
450         attribute, but use the string rather than the Type overload so we
451         won't have yet another circular dep.
452
453         * ConnectionStringsExpressionBuilder.cs: partial implementation.
454         Same deal with the ExpressionEditor attribute.
455
456         * ResourceExpressionBuilder.cs: same deal with the
457         ExpressionEditor attribute.
458         
459 2006-01-20  Chris Toshok  <toshok@ximian.com>
460
461         * ResourceExpressionBuilder.cs (ParseExpression): implement.
462
463         * ResourceExpressionFields.cs: implement.
464
465 2006-01-20  Chris Toshok  <toshok@ximian.com>
466
467         * ClientBuildManagerParameter.cs: implement.
468
469         * ClientBuildManagerCallback.cs: this class contains an empty
470         default implementation.
471
472 2006-01-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
473
474         * AspGenerator.cs: add support for 'src' in <script runat="server">.
475         Fixes bug #77150.
476
477 2006-01-04  Chris Toshok  <toshok@ximian.com>
478
479         * WebServiceCompiler.cs (GetCompiledType): add CONFIGURATION_2_0
480         code.
481
482         * AspGenerator.cs (CheckLanguage): add CONFIGURATION_2_0 code.
483
484 2005-12-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
485
486         * AspGenerator.cs: fix yesterday's fix.
487
488 2005-12-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
489
490         * AspGenerator.cs: only do special processing for <script> if it has
491         the runat="server" attribute. Fixes bug #76918.
492
493 2005-12-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
494
495         * TemplateControlCompiler.cs: treat LightGrey as a synonym of LightGray.
496         Fixes bug #76677.
497
498 2005-11-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
499
500         * TemplateControlCompiler.cs: handle data bound attributes for html
501         controls. Fixes bug #76785.
502
503 2005-11-28  Chris Toshok  <toshok@ximian.com>
504
505         * CachingCompiler.cs (Compile): CONFIGURATION_2_0 work.
506
507         * BaseCompiler.cs (GetCompiledType): CONFIGURATION_2_0 work.
508
509 2005-11-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
510
511         * WebServiceCompiler.cs: fixed caching for web handlers.
512
513 2005-11-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
514
515         * AspParser.cs: don't change case for verbatim IDs.
516         Fixes bug #76657.
517
518 2005-09-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
519
520         * AspParser.cs: when processing verbatim input, throw if we reach EOF
521         before the expected end of the data.
522
523 2005-09-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
524
525         * CachingCompiler.cs: 
526         * WebServiceCompiler.cs: when caching a type loaded from an assembly
527         that we didn't compile, make it depend on the file itself, not on a
528         non-existing cache key. This problem affected performance of web
529         services and .ashx, making unnecessary extra calls to LoadFrom every
530         time the cache was cleared.
531
532 2005-09-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
533
534         * BaseCompiler.cs: set the domain's DynamicBase property instead of
535         guessing it in BaseCompiler.
536
537 2005-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
538
539         * WebServiceCompiler.cs: apply the same fix as in r45440 that fixed bug
540         75146 for pages/controls.
541
542 2005-08-09  Miguel de Icaza  <miguel@novell.com>
543
544         * WebServiceCompiler.cs: Use the new DynamicDir method.
545
546         * BaseCompiler.cs: Use the DynamicBase property as a hint, but
547         since this value is null most of the time, compute the real value.
548
549         Added Bonus: if the directory has some kind of permission problem,
550         try a different directory name.
551
552 2005-07-13  Miguel de Icaza  <miguel@novell.com>
553
554         * AspGenerator.cs (AspGenerator.CheckLanguage): Use
555         BaseParser.Context for the context. 
556
557 2005-06-26 Gonzalo Paniagua Javier <gonzalo@ximian.com>
558
559         * TagAttributes.cs:
560         * AspParser.cs:
561         * TemplateControlCompiler.cs: use invariant culture versions of starts/
562         endswith.
563
564 2005-06-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
565
566         * TemplateControlCompiler.cs: comparison between member name and the
567         first part of the id provided by the user should also be
568         case-insensitive. Fixes bug #75379.
569
570 2005-06-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
571
572         * CachingCompiler.cs: use cache.InsertPrivate.
573         * AspGenerator.cs: use cache.InsertPrivate. Removed extra call to
574         AddDependency.
575
576 2005-06-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
577
578         * CachingCompiler.cs: create the assemly in the DynamicBase directory,
579         as all the others, when compiling an assembly from a Src file. Fixes
580         bug #75371.
581
582 2005-06-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
583
584         * TemplateControlCompiler.cs: if the property is not found, don't forget
585         about trying the field.
586
587 2005-06-13  Lluis Sanchez Gual <lluis@novell.com>
588
589         * Directive.cs: Register the MasterType directive.
590         * PageCompiler.cs: If a MasterType is specified, add a type specific
591         Master property. All this fixes bug #75192.
592
593 2005-06-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
594
595         * TemplateControlCompiler.cs: when mapping an attribute name to a field
596         or property name, there's no need to try with every property and field,
597         but just the one found when searching by name (no case). There was one
598         call to ProcessPropertiesAndFields per property or field until found,
599         now only one if the property/field is found, none otherwise.
600
601 2005-06-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
602
603         * TemplateControlCompiler.cs: allow more than 2 levels when looking for
604         properties of fields for an attribute like "Prop1-Prop2-Prop3". Fixes
605         bug #75234.
606
607 2005-06-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
608
609         * BaseCompiler.cs: when the OutputAssembly is null, we can still have
610         the assembly file there and be able to load it. Thanks to Rogerio and
611         Mark.
612
613 2005-06-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
614
615         * AspParser.cs: InvariantCulture love.
616
617 2005-06-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
618
619         * TemplateControlCompiler.cs: use the Page AddContentTemplate method,
620         as the one in Master is protected. Fixes bug #75157.
621
622 2005-05-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
623
624         * AspComponentFoundry.cs: tagnames have precedence over types in
625         assemblies when they use the same prefix. Fixes bug #71855.
626
627 2005-05-03  Lluis Sanchez Gual <lluis@novell.com>
628
629         * WebServiceCompiler.cs: Create the temp directory before
630         creating the web service source code file.
631
632 2005-04-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
633
634         * AspGenerator.cs: when checking languages, try to match other aliases
635         too (ie, 'cs' == 'c#').
636
637 2005-04-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
638
639         * BaseCompiler.cs: check that DynamicBase directory exists before
640         creating the TempFileCollection.
641
642 2005-04-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
643
644         * AspGenerator.cs: use a stack for non-server tags even before getting
645         to a form. Fixes bug #70274.
646
647 2005-04-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
648
649         * AspParser.cs: don't error out on ill formed tags if it's not a server
650         tag (ie, allow something like '<table align="left cellpadding="0">' to
651         work, as MS does. Fixes bug #67909.
652
653 2005-04-20 Rafael Teixeira <rafaelteixeirabr@hotmail.com>
654         * BaseCompiler.cs: do the bridge of Explicit/Strict attributes from
655         @Page/@Control directives to CodeDOM (VB.NET support)
656
657 2005-04-19  Lluis Sanchez Gual <lluis@novell.com>
658
659         * AspParser.cs: Fixed parsing of data binding tags in server
660         tag attributes. Allow <%...%> blocks not assigned to
661         attributes in client tags.
662         * TagAttributes.cs: Make sure that data binding blocks in server
663         tags are always assigned to attributes.
664
665 2005-04-15  Lluis Sanchez Gual <lluis@novell.com>
666
667         * TemplateControlCompiler.cs: Implemented support for two-way
668         binding.
669
670 2005-04-14  Lluis Sanchez Gual <lluis@novell.com>
671
672         * TemplateControlCompiler.cs: Use the new BindingContainerType
673         property to find the type of the binding container. 
674         
675 2005-04-07  Lluis Sanchez Gual <lluis@novell.com>
676
677         * TemplateControlCompiler.cs: Avoid using the GetConverter() trick
678         for primitive types. Parse an empty color string as Color.Empty.
679         Get the converter for a property using its PropertyDescriptor.
680         
681 2005-04-05  Lluis Sanchez Gual <lluis@novell.com>
682
683         * TemplateControlCompiler.cs: Don't autogenerate IDs for
684         controls inside Content template.
685
686 2005-03-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
687
688         * TemplateControlCompiler.cs: make typedesc.aspx work again.
689
690 2005-02-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
691
692         * ExpressionBuilderContext.cs:
693         * ExpressionBuilder.cs: implemented.
694
695 2005-02-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
696
697         * AspGenerator.cs: don't fail on <tbody runat=server>. Fixes bug #71856.
698
699 2005-01-28  Lluis Sanchez Gual <lluis@novell.com>
700
701         * TemplateControlCompiler.cs: When generating a property value,
702         check for TypeConverterAttribute in the PropertyInfo, not only in the
703         property type.
704         Implemented code generation using InstanceDescriptor, when the type
705         converter supports conversion to that type.
706
707 2005-01-21  Lluis Sanchez Gual <lluis@novell.com>
708
709         * Directive.cs: Added MASTER directive.
710         * AspGenerator.cs: Use UserControlCompiler for compiling master pages.
711         * PageCompiler.cs: Set the master file name when generating the page.
712         * TemplateControlCompiler.cs: When generating the method for a
713         content holder, register the content holder in the base MasterPage.
714         Added method for registering a Content control for a MasterPage.
715         Generate code for Content controls.
716
717 2005-01-10  Lluis Sanchez Gual <lluis@novell.com>
718
719         * TemplateControlCompiler.cs: Get the container type from the
720         template (if it was defined using TemplateContainerAttribute.
721
722 2004-10-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
723
724         * AspGenerator.cs: correctly process script tags that self-closing.
725         Fixes bug #69657.
726
727 2004-10-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
728
729         * CachingCompiler.cs: when compiling a single .cs file, add the file
730         itself to dependencies. Fixes bug #68788.
731
732 2004-09-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
733
734         * ControlBuilder.cs: don't close server tags when we get to a closing
735         tag that is not applied to a server control. Fixes bug #60323.
736
737 2004-09-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
738
739         * WebServiceCompiler.cs: fix buglet in my last commit.
740
741 2004-09-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
742
743         * BaseCompiler.cs:
744         * CachingCompiler.cs:
745         * WebServiceCompiler.cs: correctly cache Type instead of the assembly
746         for ashx/asmx. Otherwise we need to open the file and check for the
747         class name in there. Thanks to Ben for pointing this out.
748
749 2004-09-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
750
751         * AspParser.cs:
752         * AspTokenizer.cs: prevent quotes from being swallowed when we're 
753         inside a server tag and they are the next non-whitespace character.
754         Fixes bug #63451.
755
756 2004-09-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
757
758         * CachingCompiler.cs: don't try to watch for changes in system
759         assemblies. Fixes bug #64871.
760
761 2004-09-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
762
763         * AspGenerator.cs: handle builders that need to process inner text
764         with tags.
765
766         * Location.cs: added setters for the properties.
767
768 2004-08-02  Duncan Mak  <duncan@ximian.com>
769
770         * BuildProviderResultFlags.cs:  
771         * IImplicitResourceProvider.cs: 
772         * ImplicitResourceKey.cs:
773         * IResourceReader.cs: Added.
774
775 2004-07-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
776
777         * AspGenerator.cs: the path for file was treated as virtual, but it's
778         physical. Fixes bug #61524.
779
780 2004-07-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
781
782         * AspParser.cs: fixed case-sensitivity issues with #include and its
783         attributes. Closes #61429.
784
785 2004-07-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
786
787         * BaseCompiler.cs:
788         * WebServiceCompiler.cs: really create the dlls under DynamicBase
789
790 2004-06-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
791
792         * TemplateControlCompiler.cs: for system colors, use SystemColors class
793         instead of Color. Fixes bug #60249.
794
795 2004-06-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
796
797         * BaseCompiler.cs: try getting the Type from the cache before doing the 
798         real work. Remove temporary files right after successful compilation.
799
800         * CachingCompiler.cs: added GetTypeFromCache.
801
802         * UserControlCompiler.cs: nothing interesting.
803
804         * WebServiceCompiler.cs: try getting the Type from the cache before
805         doing anything else. Remove temp files on sucessful compilation.
806
807 2004-06-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
808
809         * AspGenerator.cs:
810         * CachingCompiler.cs: use a different prefix when caching compiler
811         results or Types.
812
813 2004-06-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
814
815         * BaseCompiler.cs: dynamicBase is now protected. Check
816         MONO_ASPNET_NODELETE here.
817
818         * TemplateControlCompiler.cs: if the type is not known but has a 
819         TypeConverter, invoke ConvertFromString in the generated code.
820
821         * WebServiceCompiler.cs: it used a hardcoded C# compiler, now it gets
822         the compiler from the configuration. Also handle MONO_ASPNET_NODELETE.
823
824         * CachingCompiler.cs: updated compilation of web services and simple
825         web handlers.
826
827 2004-06-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
828
829         * CSCompiler.cs: removed.
830
831         * CachingCompiler.cs: language independent compilation for single files.
832
833 2004-06-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
834
835         * BaseCompiler.cs:
836         * WebServiceCompiler.cs: adapted to the 'new' CachingCompiler.
837         * CachingCompiler.cs: use HttpRuntime.Cache.
838
839 2004-06-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
840
841         * PageCompiler.cs: fixed Trace and add support for Buffer.
842
843 2004-06-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
844
845         * PageCompiler.cs: override CreateConstructor to add assignment for
846         ClientTarget.
847         
848 2004-06-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
849
850         * TemplateControlCompiler.cs: use CodeDelegateCreateExpression instead
851         of CodeObjectCreateExpression for the render method delegate. Thanks
852         to Jochen Wezel.
853
854 2004-05-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
855
856         * BaseCompiler.cs: use DynamicBase for the output assemblies.
857
858 2004-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
859
860         * AspGenerator.cs: ObjectTagBuilder do not override HasBody now.
861
862 2004-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
863
864         * AspParser.cs: indent a few lines.
865         * AspTokenizer.cs: added ungetc() used when we read a '/' in an unquoted
866         attribute value. This way we can simulate reading 2 characters ahead
867         (one in ungetc and the other in Peek) and work with values like
868         text/javascript. Fixes bug #57302.
869
870 2004-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
871
872         * AspParser.cs: ignore whitespace after directives. Fixes bug #58057.
873
874 2004-04-02  Lluis Sanchez Gual  <lluis@ximian.com>
875
876         * TemplateControlCompiler.cs: Fixed build for net_1_0 profile.
877
878 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
879
880         * GlobalAsaxCompiler.cs: removed Imports and Assemblies properties.
881
882 2004-02-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
883
884         * AspGenerator.cs: error out when <object> server tag is not closed.
885         Ignore any content inside it.
886
887 2004-02-10  Jackson Harper <jackson@ximian.com>
888
889         * AspTokenizer.cs: Collect discarded characters that might be used
890         in client side scripts. Patch by Liyu Liu.
891         * AspParser.cs: Add discarded characters. Patch by Liyu Liu.
892         
893 2004-02-10  Jackson Harper <jackson@ximian.com>
894
895         * BaseCompiler.cs: Use the TempDirectory for compilation. Fixes
896         bug #54117.
897         
898 2004-01-30  Jackson Harper <jackson@ximian.com>
899
900         * TemplateControlCompiler.cs: Call ToString on the types hashcode,
901         the build method takes strings not ints.
902         
903 2004-01-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
904
905         * AspGenerator.cs: handle more possible errors in global.asax file.
906
907         * BaseCompiler.cs: added utility methods for creating <object> related
908         properties and fields.
909
910         * GlobalAsaxCompiler.cs: keep around applications and session scope
911         objects builders. Also a list of imports and assemblies added in
912         global.asax.
913
914         * TemplateControlCompiler.cs: use base class methods for <object> stuff.
915
916 2004-01-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
917
918         * AspGenerator.cs: use the Cache to store compiled Types. Don't parse
919         pages more than once. Thanks to Eric Lindvall for pointing this out.
920
921 2004-01-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
922
923         * TemplateControlCompiler.cs: allow handling subproperties for other
924         types than Style and Font. Fixes bug #53217.
925
926 2004-01-16  Jackson Harper <jackson@ximian.com>
927
928         * TagAttribute.cs: attributes can be stored as encoded html so we
929         decode them here.
930         
931 2004-01-14  Jackson Harper <jackson@ximian.com>
932
933         * TemplateControlCompiler.cs: Is a user control is cached and
934         shared use the controls type hashcode for the GUID so it will be
935         the same across instances.
936         
937 2004-01-13  Jackson Harper <jackson@ximian.com>
938         
939         * TemplateControlCompiler.cs: If an item has the partial caching
940         attribute build a PartialCachingControl in the parents __Build method.
941         * BaseCompiler.cs: Add a method for adding class attributes to the
942         class.
943         * UserControlCompiler.cs: If caching is enabled on a user control
944         add the PartialCachingAttribute to it.
945         
946 2004-01-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
947
948         * PageCompiler.cs: invoke Request.ValidateInput if required.
949
950 2004-01-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
951
952         * AspGenerator.cs: don't rely on GC to close the files parsed. Fixes bug
953         #52521. Patch by liyul@hotmail.com.
954
955 2003-12-25  Jackson Harper <jackson@ximian.com>
956
957         * AspGenerator.cs: Allow scriptlets in javascript. This fixes bug
958         #52522.
959         
960 2003-12-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
961
962         * PageCompiler.cs: assign the ErrorPage property if provided.
963
964 2003-12-15  Jackson Harper <jackson@ximian.com>
965
966         * PageCompiler.cs: Add Trace and TraceMode to framework initialize
967         method if they are set.
968         
969 2003-12-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
970
971         * AspGenerator.cs: ignore <tbody> when we're inside a server table and
972         fail when runat="server" is applied to <tbody> with a parse error
973         instead of waiting for a compilation error. Fixes bug #52157.
974
975 2003-12-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
976
977         * AspGenerator.cs: basic checking of ID validity.  Throw a
978         ParseException when mixing languages.
979
980 2003-11-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
981
982         * PageCompiler.cs: assign LCID, Culture and/or UICulture in
983         FrameworInitialize() if provided in @Page.
984
985         Fixes bug #51511.
986
987 2003-11-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
988
989         * TemplateControlCompiler.cs: support for expressions of
990         System.Drawing.Size type. Allow getting Color from comma separated
991         numbers, which is not allowed by ColorConverter.
992
993         This makes http://www.codeproject.com/aspnet/asppopup.asp work.
994
995 2003-11-13  Jackson Harper <jackson@ximian.com>
996
997         * PageCompiler.cs: Call InitOutputCache when the OutputCache
998         directive is set.
999         
1000 2003-11-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1001
1002         * AspGenerator.cs: use fileEncoding from configuration files.
1003
1004         * PageCompiler.cs: add assign statements for ContentType,
1005         ResponseEncoding and CodePage if supplied.
1006
1007 2003-10-21  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1008
1009         * TemplateControlCompiler.cs: fix bug #42994. Now we don't generate
1010         a return statement for user controls with 'void' return type.
1011
1012 2003-10-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1013
1014         * AspParser.cs: fixed bug #49627.
1015
1016 2003-10-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1017
1018         * BaseCompiler.cs: now gets the CodeCompiler from configuration files.
1019
1020 2003-10-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1021
1022         * Directive.cs: new attribute for @Page directive in 1.1.
1023
1024 2003-10-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1025
1026         * AspParser.cs:
1027         * TagAttributes.cs: allow duplicated runat=server attributes and display
1028         error page when duplicated attributes and runat is specified.
1029
1030 2003-10-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1031
1032         * AspTokenizer.cs: moved token numbers above unicode.
1033
1034 2003-09-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1035
1036         * AspGenerator.cs: don't process code render tags inside scripts. Check
1037         the language of the script and treat javascript as verbatim input.
1038         Fixes bug #48592.
1039
1040 2003-09-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1041
1042         * TemplateControlCompiler.cs: fixed bug #48212.
1043
1044 2003-09-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1045
1046         * WebServiceCompiler.cs: remove the temporary files here too.
1047
1048 2003-08-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1049
1050         * AspGenerator.cs: fixed bug #46429.
1051
1052 2003-08-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1053
1054         * Directive.cs: support @WebHandler.
1055         
1056 2003-07-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1057
1058         * TemplateControlCompiler.cs: support string []. Fixes bug #46415.
1059
1060 2003-07-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1061
1062         * BaseCompiler.cs: first look for cached items, then generate the tree.
1063         This should speed things up.
1064
1065         * CachingCompiler.cs: when compiling web services, use the full path of
1066         the .asmx file as key when caching.
1067
1068         * WebServiceCompiler.cs: first look for cached items, then generate
1069         the source file.
1070
1071 2003-07-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1072
1073         * AspParser.cs: more useful error information,
1074
1075         * BaseCompiler.cs:
1076         * CachingCompiler.cs: honor the debug="true" option.
1077
1078         * TemplateControlCompiler.cs: small fixes for templates.
1079
1080 2003-07-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1081
1082         * BaseCompiler.cs: made Compiler property virtual.
1083
1084         * CachingCompiler.cs: added support for compiling web services.
1085
1086         * WebServiceCompiler.cs: implemented.
1087
1088 2003-05-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1089
1090         * CachingCompiler.cs: fixed bug #43477.
1091
1092 2003-05-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1093
1094         * AspParser.cs:
1095         * AspTokenizer.cs: fixed bugs #43206 and #43371.
1096
1097 2003-05-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1098
1099         * TemplateControlCompiler.cs: duh! Generate SupportAutoEvents instead
1100         of AutoEventWireup (which is internal). Thanks to Stuart Ballard for
1101         reporting.
1102
1103 2003-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1104
1105         * CompilationException.cs: don't add duplicated lines in the case that
1106         mcs reports several errors for the same one.
1107
1108 2003-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1109
1110         * AspGenerator.cs: fully support including files, ie., treat them just
1111         as C treats #includes.
1112
1113 2003-05-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1114
1115         * AspGenerator.cs:
1116         * AspParser.cs:
1117         * TagType.cs: Added support for server side includes.
1118
1119 2003-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1120
1121         * CSCompiler.cs: actually add the list of referenced assemblies to the
1122         compiler options. Throw a CompilationException if there's an error.
1123
1124         * CachingCompiler.cs: added a method to compile directly from a source
1125         file.
1126         
1127 2003-05-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1128
1129         * AspGenerator.cs: copy the location before setting the value for the
1130         control builders.
1131
1132         * BaseCompiler.cs: changed parameters for CompilationException.
1133
1134         * CompilationException.cs: it takes now line numbers and error
1135         descriptions from the CompilerErrorCollection.
1136
1137         * Location.cs: used when a copy of an ILocation is needed.
1138
1139         * ParseException.cs: implemented new methods to provide line numbers
1140         and souce file.
1141
1142         * TemplateControlCompiler.cs: throw a ParseException where appropiate.
1143
1144 2003-05-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1145
1146         * AspGenerator.cs: also support data bind syntax inside tags not
1147         processed as controls. Added debugging method.
1148
1149         * TemplateControlCompiler.cs: reset the number of data binding handlers 
1150         in the proper place. Small fix when getting the container type.
1151
1152 2003-04-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1153
1154         * TemplateControlCompiler.cs: correctly set the TemplateSourceDirectory 
1155         value.
1156
1157 2003-04-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1158
1159         * AspGenerator.cs: handle code render syntax in tag attributes.
1160
1161         * AspParser.cs: the constructor now takes a TextReader.
1162
1163         * TemplateControlCompiler.cs: removed comment.
1164
1165 2003-04-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1166
1167         * TemplateControlCompiler.cs: added support for data bound properties.
1168
1169 2003-04-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1170
1171         * AspComponentFoundry.cs: simplified it a lot by using Type and Assembly
1172         instead of their names.
1173
1174         * AspElements.cs: removed. No longer needed.
1175
1176         * AspGenerator.cs: this file is now in charge of interfacing between
1177         the parser and the compiler. It manages the creation of the
1178         ControlBuilder tree and the compilation of the CodeDOM tree.
1179
1180         * AspParser.cs: tag handling is simpler now.  Instead of a whole bunch
1181         of different Types, tags are just and id and a set of attributes.
1182         Implement ILocation interface.
1183         
1184         * AspTokenizer.cs: added a few methods to help the parser implementing
1185         ILocation.
1186
1187         * BaseCompiler.cs: handles the portions of the CodeDOM tree that are
1188         common to appliaction, page and user control, including the actual
1189         compilation and error handling.
1190
1191         * CSCompiler.cs: compiles C# files using CodeDOM interfaces.
1192
1193         * CachingCompiler.cs: simplified to use the new interfaces.
1194
1195         * CompilationException.cs: it's now using CompilationResult to report
1196         errors.
1197
1198         * CompilationResult.cs: Removed file.
1199
1200         * Directive.cs: to check for the validity of a directive.
1201
1202         * GlobalAsaxCompiler.cs: simplified a lot, as most of the work is done
1203         in BaseCompiler.
1204
1205         * ILocation.cs: interface used to now the exact place where a parse
1206         error happens.
1207
1208         * PageCompiler.cs: generates a couple of methods that are only used in
1209         pages.
1210
1211         * ParseException.cs: use the ILocation interface.
1212
1213         * TagAttributes.cs: handles the attributes of the tags parsed.
1214
1215         * TagType.cs: an enum for the different kinds of tags.
1216
1217         * TemplateControlCompiler.cs: this is the one that does most of the
1218         conversion from teh ControlBuilder tree into a CodeDOM tree.
1219
1220         * UserControlCompiler.cs: simplified as most of the work is done in
1221         its base classes.
1222
1223         * WebServiceCompiler.cs: dummy.
1224
1225 2003-04-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1226
1227         * AspComponentFoundry.cs: added GetComponentType method.
1228
1229 2003-03-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1230
1231         * AspTokenizer.cs: allow quotes inside server tags that are part of
1232         attribute values.
1233         
1234         * CachingCompiler.cs: no more 'FileNotFound' exceptions when the
1235         compilation fails.
1236
1237 2003-03-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1238
1239         * AspGenerator.cs: generate correct appbase path. It was working with
1240         mcs but not with csc.
1241
1242         * BaseCompiler.cs: quote arguments and removed GetRandomFileName.
1243
1244         * CachingCompiler.cs: quote source file.
1245
1246 2003-03-26  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1247
1248         * AspGenerator.cs: now the Inherits attribute works as expected for
1249         global.asax file.
1250
1251 2003-03-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1252
1253         * CompilationException.cs:
1254         * ParseException.cs: display the correct line number in error messages.
1255
1256         * AspElements.cs: added TargetSchema attribute for control. It's
1257         ignored.
1258
1259 2003-03-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1260
1261         * BaseCompiler.cs: fixed the hack to work under windows.
1262         * CachingCompiler.cs: under windows, try 'mcs.bat' and then 'mcs'.
1263
1264 2003-03-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1265
1266         * BaseCompiler.cs: hacks to work-around our buggy System.Uri.
1267
1268 2003-03-17 George Kodinov <gkodinov@openlinksw.co.uk>
1269
1270         * BaseCompiler.cs: Removed a FIXME: and added a correct calculation of
1271         app's private bin path
1272
1273 2003-03-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1274
1275         * AspGenerator.cs:
1276         * BaseCompiler.cs:
1277         * CachingCompiler.cs:
1278         * CompilationResult.cs:
1279         * GlobalAsaxCompiler.cs:
1280         * PageCompiler.cs:
1281         * UserControlCompiler.cs: recompile the page if dependencies change.
1282
1283 2003-02-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1284
1285         * AspGenerator.cs: corrected typo and wrong fix.
1286
1287 2003-02-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1288
1289         * AspGenerator.cs: fixed code generation for Table/TableRow/TableCell
1290         when used explicitly.
1291
1292 2003-02-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1293
1294         * AspElements.cs: get the property Type for controls that use
1295         ParseChildren with a property name.
1296
1297         * AspGenerator.cs: generate correct signature for the method that
1298         adds controls to the default property in ParseChildren.
1299
1300 2003-02-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1301
1302         * AspGenerator.cs: rethrow exceptions that may come from parsing or 
1303         compilation if a user control.
1304
1305 2003-02-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1306
1307         * AspGenerator.cs: throw ParseException on parse
1308         error.
1309
1310         * AspParser.cs: added Line and Column props.
1311
1312         * CompilationException.cs: derives now from HtmlizedException.
1313
1314         * CompilationResult.cs: added fileName field.  Fixed set_ExitCode.
1315
1316         * GlobalAsaxCompiler.cs:
1317         * PageCompiler.cs:
1318         * UserControlCompiler.cs: pass the file name in the CompilationResult.
1319
1320         * ParseException.cs: new exception.
1321
1322
1323 2003-02-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1324
1325         * AspGenerator.cs: remove "file://" from the private bin path. Fixes
1326         bug #37628.
1327
1328 2003-02-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1329
1330         * AspParser.cs: the parser fires events when it parses an element.
1331
1332         * GlobalAsaxCompiler.cs:
1333         * PageCompiler.cs:
1334         * UserControlCompiler.cs:
1335         * AspElements.cs: modified to use the new parser interface.
1336
1337         * AspGenerator.cs: modified to use the new parser. Merge multiple text
1338         strings into one single LiteralControl.
1339
1340         * AspTokenizer.cs: added Line and Column properties.
1341
1342 2003-01-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1343
1344         * AspParser.cs: fixed bug #36929.
1345
1346 2003-01-21  Tim Haynes <thaynes@openlinksw.com>
1347
1348         * AspGenerator.cs:
1349         * BaseCompiler.cs:
1350         * CachingCompiler.cs: changes to work around spaces and
1351         directory-separators in the local filesystem.
1352
1353 2003-01-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1354
1355         * AspGenerator.cs: make the generated file compile with csc after last
1356         change.
1357
1358 2003-01-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1359
1360         * AspGenerator.cs: removed unused variable. Added support for
1361         properties/fields of type string [].
1362
1363 2003-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1364
1365         * AspGenerator.cs: modified loading of the parent type now that
1366         Type.GetType is fixed.
1367
1368 2003-01-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1369
1370         * AspGenerator.cs: cast to Control if the container does not implement
1371         INamingContainer.
1372
1373 2003-01-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1374
1375         * AspGenerator.cs: fixed a couple of thinkos related to IsSubclassOf.
1376
1377 2003-01-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1378
1379         * AspElements.cs: attributes without value lacked a space afterwards.
1380
1381 2003-01-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1382
1383         * AspGenerator.cs: functions for columns don't return anything. Fixed
1384         typo.
1385
1386 2003-01-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1387
1388         * AspGenerator.cs: add data bound controls to code render function.
1389
1390 2003-01-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1391
1392         * AspComponentFoundry.cs: reworked to allow same prefix for multiple
1393         controls. You can register 1 assembly plus any number of user controls
1394         under the same prefix.
1395
1396         * AspGenerator.cs: don't add duplicate 'using' for the same namespace.
1397         Hack to allow @Register access to assemblies in other places than bin
1398         directory.
1399
1400 2003-01-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1401
1402         * AspElements.cs: added 'codebehind' attribute for page, control and
1403         application. It's ignored by MS, but allowed. Fixed typo.
1404
1405 2003-01-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1406
1407         * AspGenerator.cs: fixed EnableSesssionState handling.
1408
1409 2003-01-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1410
1411         * AspGenerator.cs: don't generate instance fields for pages/controls
1412         when the base class specified in the Inherits attribute already has
1413         them. Closes bug #36262.
1414
1415 2002-12-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1416
1417         * AspGenerator.cs: generate code like 'control.XXX = value' also for
1418         public fields (properties were being handled in that way too).
1419
1420 2002-12-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1421
1422         * AspGenerator.cs: now it uses the current HttpContext when creating
1423         user controls. TemplateSourceDirectory is no longer a dummy value.
1424
1425         * GlobalAsaxCompiler.cs:
1426         * PageCompiler.cs:
1427         * UserControlCompiler.cs: set the context which will be used to locate
1428         the files.
1429         
1430 2002-12-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1431
1432         * AspGenerator.cs: added support for AutoEventWireup attribute in
1433         @Page and @Control.
1434
1435         * CompilationResult.cs:
1436         * GlobalAsaxCompiler.cs:
1437         * PageCompiler.cs:
1438         * UserControlCompiler.cs: store the options.
1439
1440 2002-12-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1441
1442         * AspElements.cs: new method Tag.GetElements
1443         used to parse the inner contents of a tag looking for data binding or 
1444         code render tags.
1445         
1446         New property HtmlControlTag.ParseChildren allows
1447         differentiation of a couple of HtmlControls that has children as
1448         properties (namely HtmlTable and HtmlTableRow).
1449
1450         * AspGenerator.cs: fixed container semantics to
1451         match BindingContainer one. Implemented Inherits attribute for page and
1452         control.
1453
1454         Support HtmlControls that has ChildrenAsProperties.
1455         
1456         Generate code for data binding functions that matches the semantic of
1457         Container.
1458
1459         Handle data bound and code render attribute values.
1460
1461         Set proper value return for TemplateSourceDirectory. Should be relative
1462         to appPath.
1463         
1464         * BaseCompiler.cs: moved CompilerOptions and
1465         References handling here.
1466
1467         * CachingCompiler.cs: copy result of compilation.
1468
1469         * CompilationException.cs: simple ToString () implementation.
1470
1471         * CompilationResult.cs: implemented CopyFrom and ToString.
1472
1473         * GlobalAsaxCompiler.cs:
1474         * PageCompiler.cs:
1475         * UserControlCompiler.cs: removed CompilerOptions as it's now handled
1476         in the base class. Get all the types in the generated assembly and
1477         look for one that derives from the correct Type.
1478         
1479 2002-11-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1480
1481         * AspElements.cs: added @Application directive.
1482
1483         * AspGenerator.cs: make it work also with application files. We
1484         currently generate an extra private function.
1485
1486 2002-11-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1487
1488         * GlobalAsaxCompiler.cs: compiler for global.asax file. If the file
1489         exists, it will be compiled into an HttpApplication derived class
1490         (directly or through a user-provided class).
1491
1492 2002-11-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1493
1494         * AspGenerator.cs: fixed target file name and generated class name.
1495         * BaseCompiler.cs: reference assemblies in PrivateBinPath.
1496
1497 2002-11-26  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1498
1499         * AspGenerator.cs: reworked user control
1500         compilation. Provide the options as a Hashtable for use in compilation.
1501         Create the user controls in the private bin path of the domain.
1502
1503         * BaseCompiler.cs: base class for the various compiler types.
1504
1505         * CachingCompiler.cs: actually executes mcs and do some poor caching
1506         (it will use Cache when finished).
1507
1508         * CompilationException.cs: this exception has enough information to
1509         generate a nice error page.
1510         * CompilationResult.cs: used in caching.
1511
1512         * PageCompiler.cs: now derives from BaseCompiler
1513
1514         * TemplateFactory.cs: no longer needed.
1515
1516         * UserControlCompiler.cs: new class used when compiling user controls.
1517         * WebServiceCompiler.cs: derives from BaseCompiler.
1518
1519 2002-11-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1520
1521         * AspElements.cs: added ServerComment class.
1522         * AspParser.cs: ignore ServerComments tags. Remove server comments when 
1523         in verbatim mode.
1524
1525         Fixes #33482.
1526
1527         * PageCompiler.cs: check if the type is already cached before generating
1528         the C# file.
1529         * TemplateFactory.cs: if csFile parameter is null, only checks if we
1530         already have the page compiled.
1531
1532 2002-11-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1533
1534         * AspGenerator.cs: undo one-liner change.
1535
1536 2002-10-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1537
1538         * AspGenerator.cs: removed a few hacks no longer needed.
1539
1540 2002-10-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1541
1542         * PageCompiler.cs: tracing.
1543         * TemplateFactory.cs: cache compiled types and tracing.
1544         * WebServiceCompiler.cs: new parameter in GetTypeFromsource,
1545
1546 2002-10-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1547
1548         * AspComponentFoundry.cs: fixed typo.
1549         * TemplateFactory.cs: use csc style options.
1550         * AspGenerator.cs: don't use FileDependencies property of base class.
1551
1552 2002-09-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1553
1554         * System.Web.Compilation/AspElements.cs:
1555         * System.Web.Compilation/AspGenerator.cs:
1556         * System.Web.Compilation/AspParser.cs:
1557         * System.Web.Compilation/PageCompiler.cs:
1558         * System.Web.Compilation/TemplateFactory.cs: we are now able to compile
1559         pages and use HttpApplication, HttpRuntime and SimpleWorkerRequest.
1560
1561 2002-09-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1562
1563         * AspElements.cs: added WebService directive.
1564         * WebServiceCompiler.cs: New file.
1565
1566 2002-08-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1567
1568         * PageCompiler.cs: fixed compilation.
1569
1570 2002-08-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1571
1572         * PageCompiler.cs: generate C# file using AspGenerator.
1573
1574 2002-08-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1575
1576         * AspComponentFoundry.cs: LookupFoundry now returns bool.
1577         * AspGenerator.cs: New file.
1578
1579 2002-08-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1580
1581         * AspComponentFoundry.cs: New file.
1582         * AspElements.cs: renamed Component to Aspcomponent.
1583
1584 2002-08-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1585
1586         * AspElements.cs:
1587         * AspParser.cs:
1588         * AspTokenizer.cs:
1589         * ChangeLog:
1590         * PageCompiler.cs:
1591         * TemplateFactory.cs: first steps to move xsp into System.Web.
1592