Change Set Date Downloads Comment
55001
by IPyTeam
Thu at
3:52 PM
5 --------------------------------------------------------------------------------
Changeset Id: 950981
Date: 6/17/2009 2:10:25 PM

(dinov) Implements support for generic method type inference. Mostly a DLR outer layer change with some tweaks to IronPython and IronRuby.

Python changes:
We no longer need to eagerly detect when we’re calling a method w/ only generics. We also add support for inferring types for Lambda arguments based upon a Python Function’s arity. Finally there’s one fix where we make sure to create the correct kind DMO instead of just the base DynamicMetaObject type. A few tests are also updated as there are some minor changes in results when overloaded by both a generic method and a non-generic method. Finally lots of new tests are added.

Ruby changes:
Ruby’s MethodGroupInfo was doing MakeGenericMethod and then returning the generic method. But the types it’s passing in are all generic parameters – so the end result is Ruby produces a method for which .IsGenericMethodDefinition is false but it contains all of the original generic method parameters. Now we return the original target so IsGenericMethodDefinition remains true. Also updated MissingBlockArgBuilder so we can know that it doesn’t really prodive any parameters. Finally the small set of tests verifying exceptions are throw are updated to expect successful inference.

DLR changes:
This is the bulk of the changes. Added a new TypeInferer class which performs the actual type inference. Added a new CallFailureReason for noting when we failed to perform type inference. Updated the ArgBuilder’s so we can clone them w/ a new ParameterInfo. This is used for replacing the existing ArgBuilder’s built for the generic method w/ new ArgBuilders which have been specialized to the specific generic type. Fixed a couple of spots where we were creating base DynamicMetaObject’s instead of getting them from their values. Added support for MethodCandidate’s to track additional restrictions with themselves – this is necessary because the type inference can result in new type checks when inferring based ...

(Shelveset: GenericMethodTypeInferenceFinal2;REDMOND\dinov | SNAP CheckinId: 8720)
54926
by IPyTeam
Wed at
3:54 PM
8 --------------------------------------------------------------------------------
Changeset Id: 948506
Date: 6/16/2009 11:12:36 AM

(dfugate) The workaround for a known PowerShell stdout/stderr redirection issue (see see http://www.leeholmes.com/blog/WorkaroundTheOSHandlesPositionIsNotWhatFileStreamExpected.aspx) doesn't affect the PowerShell 2.0 CTP which a few people are already using.


(Shelveset: POWERSHELL_1_0_HACK;REDMOND\dfugate | SNAP CheckinId: 8704)
54862
by IPyTeam
Tue at
3:53 PM
5 --------------------------------------------------------------------------------
Changeset Id: 947161
Date: 6/15/2009 5:30:14 PM

(dinov) DLR outer ring only: Fix case insensitivity of SymbolIDs.

Our current case insensitive story for SymbolIDs doesn’t really work. There are 2 problems:
1. Case insensitive IDs won’t compare equal to normal case sensitive IDs. This means you can’t create a case insensitive ID and use it for lookup in an IAttributesCollection.
a. This is just updating SymbolID to do the right comparisons and hashing and getting rid of some useless APIs here.
2. When we store the IDs in the SymbolTable there is no way to disambiguate between an all upper case symbol and the “invariant” symbol.
a. Here we need a separate table to store the invariant IDs. I’ve also gotten rid of the ToUpper call and replaced it with a case invariant dictionary. Now we have a separate table for the invariant IDs and it stores the latest case-version.

There’s also a bunch of cleanup – replaced the magic numbers with 2 constants and added some missing locking on our ToString and Contains APIs.




(Shelveset: SymbolIdFix;REDMOND\dinov | SNAP CheckinId: 8701)
--------------------------------------------------------------------------------
Changeset Id: 946342
Date: 6/15/2009 10:42:17 AM

(dinov) 4566 codecs.escape_encode returns a string instead of a tuple and the string has the wrong value
Fixed our implementation to match CPython
17541 IronPython compiler throws an exception on syntax warnings
Replace throwing with a report to the warnings.showwarning function. We no longer set the error code on warnings either.
1717 ironpython issues less number of "syntaxwarning"'s compared to cpython
We report less warnings because we throw on the 1st warning. We no longer throw and instead actually report a warning. Also updated the error messages to match CPython.
21483 str.ljust does not properly handle width=int.MinValue
If we get a negative value return the original string

I’m also adding some restrictions which are missing for purposes of x-lang interop. When VB is talking to us neither of us will restrict when we both should restrict. Python needs to restrict because we generate a type test, VB needs to restrict for whether it’s handling an IDMOP or not.




(Shelveset: FixSyntaxWarningsFinal;REDMOND\dinov | SNAP CheckinId: 8694)
--------------------------------------------------------------------------------
Changeset Id: 946270
Date: 6/15/2009 9:55:51 AM

(dinov) Fixes various issues related to dir(). This change removes the get member names call site and replaces this with just a normal non-callsite based implementation of dir. It also fixes sorting of GetAttrNames in some cases so that a few tests had to be updated to handle the changed results.


22456 Unexpected instance variables on subclass when __dir__ implemented
PythonType now adds all of the members (including non-string keys) and this is avoided when we do __dir__. Then PythonOps.GetAttrNames no longer needs to add non-string keys.
22832 dir(new-class) overlooks methods inherited from old-style classes PythonType updated to handle old-classes. This causes a number of tests (specifically one string formatting and a bunch of codecs tests) to start running that previously didn’t. I’ve disabled these tests and opened bugs. I’ve also added a start of the required codecs support but ifdef’d it out keep things simple here.
11883 Calling help() on a .NET Framework class causes it to show up twice in dir() output This seems to be fixed already – just adding a regression test
20957 dir(expando_inst) doesn't show dyn members We now manifest a __dir__ method on non-Python IDynamicMetaObjectProvider instances. Then our normal handling for __dir__ picks this up and gets the member name.s
22536 dir() fails for some generic CLR types We need to handle the case where the Type is a generic type definition which does not return a name.




(Shelveset: DirFixesFinal;REDMOND\dinov | SNAP CheckinId: 8693)
54584
by IPyTeam
Jun 12 at
3:52 PM
52 --------------------------------------------------------------------------------
Changeset Id: 941816
Date: 6/11/2009 9:22:19 AM

(dinov) Fixes these two issues:

22692 - compile() incompatibility with CPython
12907 - Missing PyCF_DONT_IMPLY_DEDENT compile Flag

Also moves all error reporting out of the AST generator and into the Parser. This will enable total lazy transformation of the trees if we want to do it. It also means that editors using our Parser for syntax highlighting will see all errors instead of missing things like break outside of a loop. This is just removing the places in transform into explicit virtual calls (CheckAssign, CheckDelete, CheckAugmentedAssign) that we call and if we get a string back we report that string as the error.

Most of the change is about tracking blank lines and reporting them from the tokenizer as NL tokens. This isn’t what the documentation says we should be doing (all blank lines are to be ignored) but it matches what CPython’s tokenize module is doing and presumably what CPython’s actual tokenizer is doing as well. Certainly it’s hard to imagine otherwise how code that only differs by new lines could report different exceptions.

So do this the tokenizer now needs to keep track whether it just gave out a newline and if so when it will give out another one it should instead give out a NL token. Don’t imply dedent is also updated to look at this state and yield a real newline (if we don’t have one, for example consider “def f(): return 2”) and then yield the pending dedent(s).

Also there’s a fun little hack to match CPython’s behavior where it differs on how it reports errors w/ “compile()” vs an imported file. If we are doing a “compile” (we have interactive code or statements) then re-indenting at turns into an error ("def Foo():\n\n pass\n\n "). But if this is just some random source file that we’re bringing in via import then this is perfectly fine.

I’ve also updated most of the test_syntax tests to run on both CPython and IronPython – we still differ on some of the errors.



(Shelveset: ReallySignificantWhitespaceFinal;REDMOND\dinov | SNAP CheckinId: m9439)
54434
by IPyTeam
Jun 10 at
3:52 PM
24
54341
by IPyTeam
Jun 9 at
3:53 PM
14 --------------------------------------------------------------------------------
Changeset Id: 935634
Date: 6/8/2009 10:01:18 AM

(dfugate) Added sanity test for -X:NoAdaptiveCompilation.


(Shelveset: NoAdaptiveCompilation_Sanity;REDMOND\dfugate | SNAP CheckinId: 8644)
54235
by IPyTeam
Jun 8 at
3:52 PM
15
54033
by IPyTeam
Jun 5 at
3:52 PM
24
53897
by IPyTeam
Jun 4 at
3:52 PM
6 --------------------------------------------------------------------------------
Changeset Id: 929550
Date: 6/3/2009 2:28:54 PM

(dfugate) Hardens a couple of Internet-based tests (to a degree).


(Shelveset: HARDEN_NETWORK_TESTS;REDMOND\dfugate | SNAP CheckinId: 8592)
53794
by IPyTeam
Jun 3 at
3:52 PM
9
53680
by IPyTeam
Jun 2 at
3:52 PM
11
53528
by IPyTeam
Jun 1 at
3:53 PM
11
53173
by IPyTeam
May 29 at
3:52 PM
19 --------------------------------------------------------------------------------
Changeset Id: 921161
Date: 5/28/2009 5:26:52 PM

(dinov) 21947 1 High None + '' IronPython\2.6 Beta 2
Add [NotNull] attribute to string addition operators
19561 Medium _MCLWEB dfugate_cp IronPython\2.6 2.6: str.translate can accept None and do identity translation
21919 Medium _MCLWEB IronPython\2.6 Beta 1 "...".translate(None) should work
Accept null for translation value and only perform deletions
19656 1 High Module Name Lookup Broken IronPython\2.6 Beta 2 dinov_cp
Fixed, just adding test case to regressions.py
20956 1 High Scoping inside classes is broken IronPython\2.6 Beta 2
Fixing the error message so when a global lookup fails we report the same error as CPython
8736 1 Medium array.array does not support slice assignment properly IronPython\2.6
Neither does list – fixed both of them.
16519 1 Medium Setting attribute "Dict" on a Python module fails
Fixing the test so that it works under silverlight where we don’t have a __main__ module.
21379 1 Medium b'...'.find/rfind/index/rindex should accept "None" for start/end integer parameters
Allow passing a string wherever we prohibit passing a List for IList<byte>
20845 1 Medium Recent checkin seems to have introduced slice indexing site bug
Appears to be fixed, enabling the test
22007 1 Medium Number formatting IronPython\2.6
Just a partial fix, floating point still needs some work



(Shelveset: MoreBeta2BugsFinal;REDMOND\dinov | SNAP CheckinId: 8518)
--------------------------------------------------------------------------------
Changeset Id: 920821
Date: 5/28/2009 2:43:36 PM

(dfugate) Keep a copy of the .NET interop test plan stored in IronPython\Tests\plans\.


(Shelveset: NETPLAN02;REDMOND\dfugate | SNAP CheckinId: 8515)
--------------------------------------------------------------------------------
Changeset Id: 920424
Date: 5/28/2009 11:36:28 AM

(dfugate) Moved IronPython .NET Interop test plan from a Word doc directly into the pydoc strings of the interop.net test package.

iptest:
- now has a logger, l, available to the rest of the iptest modules. Changes to a number of test files were necessary as a result (e.g., method.py)
- supports "--help", "--plan", and "--no_testing" flags. --plan is a new feature used to generate test plans based on pydoc found in the tests. --no_testing does what its name implies and is useful with --plan

iptest.assert_util: support the new --no_testing flag

iptest.runner: added changes necessary to support the --plan flag

interop.net: moved the most recent IronPython .NET Interop Test Plan directly into this test package as pydoc comments



(Shelveset: NETPLAN;REDMOND\dfugate | SNAP CheckinId: 8511)
53083
by IPyTeam
May 28 at
3:53 PM
13 --------------------------------------------------------------------------------
Changeset Id: 918179
Date: 5/27/2009 10:36:35 AM

(dfugate) Renamed "IPY_OPTIONS" environment variable to "TEST_OPTIONS" which is a bit more IronRuby friendly.


(Shelveset: TEST_OPTIONS;REDMOND\dfugate | SNAP CheckinId: m9247)
--------------------------------------------------------------------------------
Changeset Id: 918178
Date: 5/27/2009 10:35:23 AM

(dinov) Tfpt review /shelveset:LotsOfPythonBugs;dinov

Python + 1 DLR Interpreter Change

First the DLR interpreter change – this is fixing a stack trace issue reported by Curt. When we have a mixed interpreted/compiled stack we’re getting the wrong result. This is because of few reasons:
1. We need to clear the stack back trace we’ve calculated for Python when we re-throw the exception otherwise we’ll re-use it. I’ve made the rethrow in WithStatement now throw through our helper and updated the interpreter to do nothing special w/ repros making it closer to the compiled code path.
2. Over in ExceptionHelpers we are combining the saved stacks + the new stacks in the incorrect order when reverse frames is true. This causes us to get confused and lose frames.

20634 hex_codec needs to be imported before hex decode can happen
15428 ".". does not generate a SyntaxError in interactive sessions
15348 TypeError thrown for IronPython.Compiler.Ast.ErrorExpression cast failure in interactive sessions
20302 codecs.lookup errors with uppercase encoding names
20051 Re-raising exception causes loss of traceback
22259 len(buffer) is incorrect
4565 Support all encodings CPython does for _codecs.encode and _codecs.decode
21929 os.listdir does not accept empty path
20603 Trivial: os.walk(‘’) doesn’t work
2169 test_isinstance incompatibilities with CPython
17235 dir(System.ArgIterator) broken
20039 struct.pack('L', -1) is stricter than in CPython
19484 Error with timeit.py module
19005 Strange issues with BOM?
10816 -X:MaxRecursion N<=1 broken
19278 Confusing Error Message when using in operator
13912 TypeError: Could not create instance of <type 'Visual'> Improve the error message – we now include that the type is abstract

Also assigning to MemoryHolder’s size as caught in code review, fixing build.bat to run w/ frames enabled.


(Shelveset: LotsOfPythonBugsFinal2;REDMOND\dinov | SNAP CheckinId: m9247)
52819
by IPyTeam
May 27 at
3:53 PM
17 --------------------------------------------------------------------------------
Changeset Id: 917406
Date: 5/26/2009 10:05:15 PM

(dfugate) - enabled nzmath's testFactorEcm. No clue why this was ever disabled...
- adjusted prior changes to test_ctypes.py. Turns out these didn't quite work under 32-bit XP
- added misc. test cases to regressions.py after examining the latest code coverage report
- test_nt.py. Two new bugs on waitpid. One new bug on system
- test_stdconsole.py. Added a (disabled) regression for nt.abort => need a better way to automate this test case. Added a test for nt._exit(...)


(Shelveset: COV01;REDMOND\dfugate | SNAP CheckinId: 8487)
51820
by IPyTeam
May 22 at
8:29 PM
58
51753
by IPyTeam
May 22 at
3:53 PM
14 --------------------------------------------------------------------------------
Changeset Id: 903837
Date: 5/21/2009 4:25:28 PM

Added trivial 'dynamic' test to help us validate CTP releases of IronPython under .NET 4.0. This test is quite intentionally not being hooked into SNAP.

--------------------------------------------------------------------------------
Changeset Id: 902916
Date: 5/21/2009 12:44:49 PM

(dfugate) - increased the GenericTest timeout for test_array_cpy. This test timed out under x64 Vista during 2.6B1 signoff
- "ipy -h" output is different depending upon whether we're using Release or Debug binaries. Adjusted ConsoleFlags.ps1 accordingly
- increased the maximum expected memory usage by a case in test_memory.py under x64
- try to force a CLR garbage collection in CPython's test_tarfile.py before exiting the process. Detected a number of sporadic failures of this test during 2.6B1 signoff


(Shelveset: CP60;REDMOND\dfugate | SNAP CheckinId: m9187)
51538
by IPyTeam
May 21 at
3:54 PM
13
51333
by IPyTeam
May 20 at
3:52 PM
18
51129
by IPyTeam
May 19 at
3:53 PM
27
50943
by IPyTeam
May 18 at
3:52 PM
41
50535
by dinov
May 15 at
5:44 PM
33 --------------------------------------------------------------------------------
Changeset Id: 870956
Date: 5/13/2009 4:39:31 PM

(dinov) Adds sys._getframe support, updates our version numbers for the upcoming beta release, and adds a –X:Python30 flag for features which should be like Python 3k (currently just bytes indexing).

_getframe support is implemented as 2 command line options. The first –X:Frames enables light-weight frames which can be used to walk the stack. The 2nd, -X:FullFrames, enables frames w/ locals also available and therefore has a much higher performance cost.

The frames tracking logic it’s self gets inserted into the generated function bodies. We maintain a thread local object which tracks the frames inside a List<FunctionStack> where FunctionStack is a struct. This means the usual case of pushing a new frame will run allocation free once a thread has reached it’s normal maximum operating depth. Long term we can combine frames w/ recursion enforcement but this change does not do that. Frames get added to functions, classes, and modules. For classes and modules we currently don’t have a code object associated with the frame – just the locals/globals. We also don’t currently track the line number in the frame (it’s a little tricky given that we are storing the frames in a struct). When the user calls _getframe we actually go ahead and create a linked list of TracebackFrame objects on-demand. _getframe is now unavailable entirely unless one of these command line options is passed – this means the namedtuple usage of getframe no longer breaks us. We also get tons of new attributes on our traceback frame objects. A number of tests are also updated to use –X:Frames when running because they require sys._getframe to be available.

Also fixing CallTarget0 and friends so that Michael’s book will not be broken. This is just removing PythonFunction from them, killing all of them except for CallTarget0, and switching over to using Func<> for all Python call targets.



(Shelveset: AddFrameSupportFinal;REDMOND\dinov | SNAP CheckinId: m9101)
--------------------------------------------------------------------------------
Changeset Id: 870839
Date: 5/13/2009 3:51:19 PM

(dfugate) * CP21976 (test_pyc.ps1) - fully enabled regression
* CP22259 (test_buffer.py) - extended regression. Not fixed
* test_builtinfunc.py (test_zip) - extended regression
* CP22017 (test_cStringIO.py) - moved regression to its own test case
* test_file.py (test_write_buffer) - cleaned up
* test_tuple.py (test_compare_to_none) - extended regression


(Shelveset: CP59;REDMOND\dfugate | SNAP CheckinId: 8354)
--------------------------------------------------------------------------------
Changeset Id: 869226
Date: 5/12/2009 7:10:04 PM

(dfugate) * CP19675 (regressions.py) - extended regression
* test_cliclass.py - extended a regression
* test_doc.py - small refactoring and added a regression for CP21360
* test_methoddispatch.py - improved test_security_crypto a bit
* CP20956 (test_namebinding.py) - extended regression. Not fixed
* test_set.py:
- moved 'isPython25' definition to iptest.test_env
- improved test_equality
* test_str.py - improved test_subclass_ctor


(Shelveset: CP58;REDMOND\dfugate | SNAP CheckinId: 8328)
--------------------------------------------------------------------------------
Changeset Id: 869126
Date: 5/12/2009 6:04:15 PM

(dinov) This fixes an import bug reported by Harry related to pygments – when we do an import we currently resolve the module and then return it. We’re supposed to go back into sys.modules and lookup the module again. This enables a module to publish a new object back into sys.modules under the modules name and have that object returned from the import machinery. This change is the change in the importer where we’re tracking “finalName” and the final import look which used to be “now import the b.c” and is now “now import the a.b.c”.

Also adding support for __package__ (PEP 366 http://www.python.org/dev/peps/pep-0366/, codeplex work item #19541 - 2.6: add __package__ attribute to modules). This is automatically set when an explicit relative import happens and it is consulted when doing any form of a relative import. It also gets set via imp.new_module and on built-in modules.

Tests in test_import are fixed as is CodePlex bug #21912 (Relative imports from functions should throw ValueError, not SyntaxError). Test_import fixes include detecting recursive reload and “from .x import *” is now legal.

We also now match the exception CPython reports when trying to import a filename – this fixes 2.6 work item 19586 (2.6: __import__ shouldn't allow filenames).

To pass a reasonable amount of the test_import bugs I had to made some tweaks to _warnings. First formatwarning/showwarning aren’t part of the C module so I’ve made these internal. We still have an implementation of these simply for when we’re running w/o CPython’s warnings.py. Today this still occurs w/ our test_warnings.py test. Then I’ve changed it to look up showwarnings in the actual warnings module. Finally I needed to make PerformModuleReload only create it’s state once – Cpython’s test_warnings imports this multiple times and gets the same filters list.

Also renaming ReflectedPackageOps -> NamespaceTrackerOps.


(Shelveset: FixImportAndAddPackageFinal;REDMOND\dinov | SNAP CheckinId: 8326)
--------------------------------------------------------------------------------
Changeset Id: 867352
Date: 5/11/2009 8:10:04 PM

(dinov) DLR outer layer (just making a couple of helpers more accessible) & IronPython

Implements instance binding for common instance members which we can easily support pre-compiled rules for:
This EXCLUDES com objects and IDOs and any strongly typed literals other than List/string (we hit list and string during startup), types w/ GetBoundMember/GetCustomMember dynamic lookups
It includes methods, events, properties (using reflected caller). Fields are always compiled still.
The biggest win is obviously methods in that for say “l = []; l.append” we no longer need to generate code.

Also fixes Seo’s problem w/ interactive code vs. statements and Jeff’s problem w/ >= 14 arguments all w/ defaults.



(Shelveset: FastInstanceBindingFinal2;REDMOND\dinov | SNAP CheckinId: 8310)
--------------------------------------------------------------------------------
Changeset Id: 867020
Date: 5/11/2009 4:49:17 PM

(dfugate) * Dev10 409920 (test_namebinding.py) - non-repro with today's bits
* Dev10 148342 (test_sys.py) - partially fixed. Still missing sys.__excepthook__
* iptest.assert_util - preserve_syspath was misspelled
* renamed Modes.ps1 to ConsoleFlags.ps1 and enhanced the "ipy.exe -h" test
* test_dict.py - added verification for test_dict_inherit
* CodePlex 20251 (test_doc.py) - added a regression test. Fixed
* test_math.py - added test_log_neg
* test_namebinding.py - enabled a block of code under -X:Interpret mode
* interop.com.apps.word - minor refactoring plus a regression test for test_word_basic
* moved/renamed test_mode_20.GenericTest


(Shelveset: CP57;REDMOND\dfugate | SNAP CheckinId: 8309)
50318
by IPyTeam
May 14 at
4:11 PM
19 --------------------------------------------------------------------------------
Changeset Id: 870956
Date: 5/13/2009 4:39:31 PM

(dinov) Adds sys._getframe support, updates our version numbers for the upcoming beta release, and adds a –X:Python30 flag for features which should be like Python 3k (currently just bytes indexing).

_getframe support is implemented as 2 command line options. The first –X:Frames enables light-weight frames which can be used to walk the stack. The 2nd, -X:FullFrames, enables frames w/ locals also available and therefore has a much higher performance cost.

The frames tracking logic it’s self gets inserted into the generated function bodies. We maintain a thread local object which tracks the frames inside a List<FunctionStack> where FunctionStack is a struct. This means the usual case of pushing a new frame will run allocation free once a thread has reached it’s normal maximum operating depth. Long term we can combine frames w/ recursion enforcement but this change does not do that. Frames get added to functions, classes, and modules. For classes and modules we currently don’t have a code object associated with the frame – just the locals/globals. We also don’t currently track the line number in the frame (it’s a little tricky given that we are storing the frames in a struct). When the user calls _getframe we actually go ahead and create a linked list of TracebackFrame objects on-demand. _getframe is now unavailable entirely unless one of these command line options is passed – this means the namedtuple usage of getframe no longer breaks us. We also get tons of new attributes on our traceback frame objects. A number of tests are also updated to use –X:Frames when running because they require sys._getframe to be available.

Also fixing CallTarget0 and friends so that Michael’s book will not be broken. This is just removing PythonFunction from them, killing all of them except for CallTarget0, and switching over to using Func<> for all Python call targets.



(Shelveset: AddFrameSupportFinal;REDMOND\dinov | SNAP CheckinId: m9101)
--------------------------------------------------------------------------------
Changeset Id: 870839
Date: 5/13/2009 3:51:19 PM

(dfugate) * CP21976 (test_pyc.ps1) - fully enabled regression
* CP22259 (test_buffer.py) - extended regression. Not fixed
* test_builtinfunc.py (test_zip) - extended regression
* CP22017 (test_cStringIO.py) - moved regression to its own test case
* test_file.py (test_write_buffer) - cleaned up
* test_tuple.py (test_compare_to_none) - extended regression


(Shelveset: CP59;REDMOND\dfugate | SNAP CheckinId: 8354)
50138
by IPyTeam
May 13 at
3:52 PM
38 --------------------------------------------------------------------------------
Changeset Id: 869226
Date: 5/12/2009 7:10:04 PM

(dfugate) * CP19675 (regressions.py) - extended regression
* test_cliclass.py - extended a regression
* test_doc.py - small refactoring and added a regression for CP21360
* test_methoddispatch.py - improved test_security_crypto a bit
* CP20956 (test_namebinding.py) - extended regression. Not fixed
* test_set.py:
- moved 'isPython25' definition to iptest.test_env
- improved test_equality
* test_str.py - improved test_subclass_ctor


(Shelveset: CP58;REDMOND\dfugate | SNAP CheckinId: 8328)
--------------------------------------------------------------------------------
Changeset Id: 869126
Date: 5/12/2009 6:04:15 PM

(dinov) This fixes an import bug reported by Harry related to pygments – when we do an import we currently resolve the module and then return it. We’re supposed to go back into sys.modules and lookup the module again. This enables a module to publish a new object back into sys.modules under the modules name and have that object returned from the import machinery. This change is the change in the importer where we’re tracking “finalName” and the final import look which used to be “now import the b.c” and is now “now import the a.b.c”.

Also adding support for __package__ (PEP 366 http://www.python.org/dev/peps/pep-0366/, codeplex work item #19541 - 2.6: add __package__ attribute to modules). This is automatically set when an explicit relative import happens and it is consulted when doing any form of a relative import. It also gets set via imp.new_module and on built-in modules.

Tests in test_import are fixed as is CodePlex bug #21912 (Relative imports from functions should throw ValueError, not SyntaxError). Test_import fixes include detecting recursive reload and “from .x import *” is now legal.

We also now match the exception CPython reports when trying to import a filename – this fixes 2.6 work item 19586 (2.6: __import__ shouldn't allow filenames).

To pass a reasonable amount of the test_import bugs I had to made some tweaks to _warnings. First formatwarning/showwarning aren’t part of the C module so I’ve made these internal. We still have an implementation of these simply for when we’re running w/o CPython’s warnings.py. Today this still occurs w/ our test_warnings.py test. Then I’ve changed it to look up showwarnings in the actual warnings module. Finally I needed to make PerformModuleReload only create it’s state once – Cpython’s test_warnings imports this multiple times and gets the same filters list.

Also renaming ReflectedPackageOps -> NamespaceTrackerOps.


(Shelveset: FixImportAndAddPackageFinal;REDMOND\dinov | SNAP CheckinId: 8326)
49967
by IPyTeam
May 12 at
3:53 PM
19 --------------------------------------------------------------------------------
Changeset Id: 867352
Date: 5/11/2009 8:10:04 PM

(dinov) DLR outer layer (just making a couple of helpers more accessible) & IronPython

Implements instance binding for common instance members which we can easily support pre-compiled rules for:
This EXCLUDES com objects and IDOs and any strongly typed literals other than List/string (we hit list and string during startup), types w/ GetBoundMember/GetCustomMember dynamic lookups
It includes methods, events, properties (using reflected caller). Fields are always compiled still.
The biggest win is obviously methods in that for say “l = []; l.append” we no longer need to generate code.

Also fixes Seo’s problem w/ interactive code vs. statements and Jeff’s problem w/ >= 14 arguments all w/ defaults.



(Shelveset: FastInstanceBindingFinal2;REDMOND\dinov | SNAP CheckinId: 8310)
--------------------------------------------------------------------------------
Changeset Id: 867020
Date: 5/11/2009 4:49:17 PM

(dfugate) * Dev10 409920 (test_namebinding.py) - non-repro with today's bits
* Dev10 148342 (test_sys.py) - partially fixed. Still missing sys.__excepthook__
* iptest.assert_util - preserve_syspath was misspelled
* renamed Modes.ps1 to ConsoleFlags.ps1 and enhanced the "ipy.exe -h" test
* test_dict.py - added verification for test_dict_inherit
* CodePlex 20251 (test_doc.py) - added a regression test. Fixed
* test_math.py - added test_log_neg
* test_namebinding.py - enabled a block of code under -X:Interpret mode
* interop.com.apps.word - minor refactoring plus a regression test for test_word_basic
* moved/renamed test_mode_20.GenericTest


(Shelveset: CP57;REDMOND\dfugate | SNAP CheckinId: 8309)


1-25 of 612Change Sets < Previous 1 2 3 4 5 6 7 8 9 10 ... Next >
Updating...
© 2006-2009 Microsoft | About CodePlex | Privacy Statement | Terms of Use | Code of Conduct | Version 2009.6.1.15196