Commit Graph
7308 Commits
Author SHA1 Message Date
Daniel Chiquito bf461cdebc Use CPython hash algorithm for frozenset
The original hash algorithm just XOR'd all the hashes of the elements of
the set, which is problematic. The CPython algorithm is required to pass
the tests.

- Replace `PyFrozenSet::hash` with CPython's algorithm
- Remove unused `hash_iter_unorded` functions
- Add `frozenset` benchmark
- Enable tests
- Lower performance expectations on effectiveness test
- Adjust `slot::hash_wrapper` so that it doesn't rehash the computed
  hash value in the process of converting PyInt to PyHash.
2024-02-09 21:02:40 -05:00
Daniel Chiquito 43d7c71a68 Fix integer rounding
The [docs](https://docs.python.org/3/library/functions.html#round)
specify that calling `round` with a negative precision removes
significant digits, so that `round(12345, -2) == 12300`. The
implementation was simply returning the original integer.

Additionally, `round(a, b)` is implemented as `(a / 10^b) * 10^b`, using
half-even rounding during the division.
2024-02-07 14:19:17 -05:00
Alin-Ioan Alexandru 3eda1cf3b4 Deprecation warning fix for __complex__ (#5152) 2024-01-25 14:54:06 +09:00
kenny the :/ aaae566231 Raise error on power with negative number (#5143) 2024-01-12 21:16:53 +09:00
NakanoMikuandJeong, YunWon 28f0fa48a4 Fix abc error messages (#5140)
Co-authored-by: Jeong, YunWon <jeong@youknowone.org>
2024-01-11 17:48:56 +09:00
Noa 602015fca1 Update nix and socket2 2024-01-09 20:53:58 +09:00
Evan Rittenhouse 1ab133dae8 None.__ne__(None) should be NotImplemented (#5124) 2024-01-08 15:03:57 +09:00
Jeong, YunWon 7236109d75 Merge pull request #5144 from youknowone/clippy
Fix 1.75 clippy warnings
2023-12-30 13:16:10 +09:00
Jeong YunWon 506c8a633e Fix redox and nightly 2023-12-30 12:53:57 +09:00
Jeong YunWon a309cb5d2c Fix 1.75 clippy warnings 2023-12-30 11:48:40 +09:00
Jeong, YunWon 4729ca3af0 Drop winapi from rustpython-vm 2023-12-28 23:44:47 +09:00
Jeong, YunWon cccfb08835 replace winbase winnt to windows-sys 2023-12-28 22:40:49 +09:00
Jeong, YunWon d01909a524 replace handleapi to windows-sys 2023-12-28 22:28:49 +09:00
Jeong, YunWon ee128eac7c replace errorhandling to windows-sys 2023-12-28 22:28:33 +09:00
Jeong, YunWon 6df9732965 replace wincon to windows-sys 2023-12-28 22:28:33 +09:00
Jeong, YunWon 8a84a479f1 remove processthreadsapi 2023-12-28 22:28:33 +09:00
Jeong, YunWon 7513017e21 replace sysinfoapi to windows-sys 2023-12-28 22:28:33 +09:00
Jeong, YunWon adf0788895 bump up windows{-sys} 2023-12-28 22:28:33 +09:00
Jeong, YunWon fc91cd8bc7 clean up winapi features (#5141) 2023-12-28 21:51:26 +09:00
ChenyG dc4f6994fb Support slice hash (#5123)
* make slice object hashable

* Update test_slice.py from CPython v3.12

* remove TODO

* remove outdated tests
2023-11-25 13:11:17 +09:00
Noa 068249196f Use new 1.74 features (#5118) 2023-11-17 13:01:05 +09:00
Noa 87cf891e50 Make PyMethodDef construction const (#5117)
* Make PyMethodDef construction const

* Remove iter_chain![]

Obsolete since arrays now impl IntoIterator
2023-11-15 12:52:47 +09:00
Jeong, YunWonandCPython developers af884cb284 First step for Python 3.12 support (#5078)
* Mark 3.12

* Update importlib from Python 3.12.0

* Update test_importlib from Python3.12

* Mark failings tests from importlib

* Update test.support from Python3.12

* Fix unsupported parser feature

* mark failing test

* Update functools from Python 3.12

* manual type annotation

* slice behavior changed in 3.12

* empty unittest.main returns non-zero

* test_decimal from CPython 3.12

* Mark failing tests

* Update test_unicode from CPython 3.12

* Update test_functools from Python 3.12

* Update enum from Python 3.12

* enum

* Doc format changed

* Update test_module from CPython

---------

Co-authored-by: CPython developers <>
2023-10-22 19:19:05 -07:00
Jeong, YunWon a75f26b922 Fake PEP-0695 with empty __type_params__ (#5098) 2023-10-22 18:01:06 -07:00
Jonas Zaddach d32cb7efdd Add missing 'sysinfoapi' feature for winapi (#5094) 2023-10-19 18:04:11 -07:00
Dan Näsman 03576615e4 fix type_check (#5097) 2023-10-19 18:03:34 -07:00
Dan Näsman 0e72ba8819 implement PyObject_Type and PyObject_TypeCheck (#5091) 2023-10-17 16:22:10 -07:00
Dan Näsman 4e6172b99d Add object protocol correspoinding to PyObject_GetAIter (#5090) 2023-10-16 10:39:29 -07:00
Amuthan Mannar 9241e2e5d5 [VM] Object pickling implementation for product object (python itertools) (#5089)
* Implemented __reduce__, __setstate__ in product object
2023-10-12 20:12:33 +09:00
Dan Näsman 830389f62c implement dir for ByObjectRef (#5088) 2023-10-09 15:16:38 +09:00
Jeong, YunWon 4a61eba58e rustpython_vm::windows 2023-10-07 03:02:56 +09:00
Jeong, YunWon 58df09b492 GetLastError 2023-10-07 03:02:56 +09:00
Yaminyam 6313e4c9fb windows-sys attrs
Copied from https://github.com/RustPython/RustPython/pull/4086
2023-10-07 03:02:56 +09:00
Jeong, YunWon 0f3a9311e0 port winbase 2023-10-07 03:02:19 +09:00
Jeong, YunWon 987d50c092 port to windows-rs (#5080)
* Fix OpenSSL in windows CI

* bump windows-rs

* prepare windows-sys 0.48

* CloseHandle

* DuplicateHandle

* CreatePipe

* GetFileType

* GetExitCodeProcess

* TerminateProcess

* GetStdHandle

* GetCurrentProcess

* DeleteProcThreadAttributeList

* WaitForSingleObject

* CreateProcessW

* InitializeProcThreadAttributeList

* UpdateProcThreadAttribute

* clean up helpers
2023-10-07 03:01:42 +09:00
Jeong, YunWon 4135da42ac Fix clippy (#5083)
* Fix clippy

* Fix nightly clippy
2023-10-06 03:17:03 +09:00
Jeong, YunWon d975c51b96 implement more warnings (#5077) 2023-10-04 23:42:37 +09:00
Jeong, YunWon 23bf5c42ca bump up and sync dependencies with rustpython-parser (#5075) 2023-10-04 23:42:07 +09:00
Jelmer Vernooij 39169de63a bump is-macro to 0.3 (#5066) 2023-09-23 01:06:47 +09:00
Jeong YunWon 1208416b92 0.3.0 release 2023-09-06 18:49:55 +09:00
Reid00 b864e5da1f feat: Implement _imp._frozen_module_names (#5062) 2023-09-03 21:33:42 +09:00
Jeong, YunWonandCPython Developers 77939d2ca5 Update platform from CPython 3.11.5 (#5060)
* Update platform and test from CPython 3.11.5

* sys.dllhandle (=0)

* Unmark fixed test of test_sysconfig

---------

Co-authored-by: CPython Developers <>
2023-09-01 13:55:28 +09:00
Jeong, YunWon 9cf18a8bdc feature encodings is dependency of stdlib (#5061) 2023-09-01 01:44:05 +09:00
Reid00 3900a086b8 update imp.py from CPython 3.11 (#5054) 2023-08-31 17:44:31 +09:00
Jeong, YunWonandfanninpm 64c66e00d6 Fix encodings related error messages to be less confusing (#5049)
* Move cwd setup to interpreter code

* rework import encodings failure message

* try import_encodings only when `path_list` is set

* std::mem::take instead of drain(..).collect()

* Add empty path_list warnings to import_encodings

* Prepend current working directory when !safe_path

Co-authored-by: fanninpm <fanninpm@miamioh.edu>
2023-08-30 21:45:36 +09:00
Jeong, YunWonandfanninpm 4ba2892168 Better tips for Interpreter & InterpreterConfig (#5047)
Co-authored-by: fanninpm <fanninpm@miamioh.edu>
2023-08-30 20:00:07 +09:00
Jeong, YunWon aee68d20bb Fix freeze-stdlib + Interpreter::without_stdlib (#5051)
* Fix pylib invalidation config

* Fix Interpreter::without_stdlib with frozen-stdlib feature
2023-08-30 19:50:20 +09:00
Junho LeeandJeong YunWon d4be55c2ea Add command line parameter -P (#4611)
* Add command line parameter -P

* Modify the value of safe_path to be set

---------

Co-authored-by: Jeong YunWon <jeong@youknowone.org>
2023-08-30 19:32:27 +09:00
Jeong, YunWon 93d731cc4b Merge pull request #5029 from LucaSforza/main
added __reduce__ method for itertools.permutations
2023-08-27 03:19:37 +09:00
LucaSforza 94029386ae added __reduce__ method for itertools.permutations 2023-08-27 02:13:44 +09:00