-
Notifications
You must be signed in to change notification settings - Fork 524
Open
Description
Requiring Pierre opinion (3):
- Which solution do you prefer for addMethod ?
Added generateArgs() function #2308 (comment) - Your opinion on making fake prototype chains.
Class and inheritance properties lost in JS <=> Brython conversions #2253 (comment) - Your opinion on 2 suggestions to better handle None, null, and undefined ?
null/undefined/None comparisons, and None Bry=>JS conversion. #2272 (comment)
Current tasks for Denis (3)
- Add a addMethod for
list.__init__
(require Pierre input for next step).
[OPTIMISATION] Python method implemented in JS: improving them ? #2306 - Add output mode options for Brython AOT (ES6 module, keep Python, etc).
[Project] Produce standalone ES6 modules. #2292 - Test alternative position encoding on performances.
[OPTIMISATION] Optimisations for DEBUG informations (easily done, big performances) #2270 (comment)
Bugs (1)
- JS Array aren't lists (should it convert ?)
isinstance not working with JS arrays #2325
Brython features requests (3)
- Allow to choose Brython version in the Editor/Console.
[Project] Produce standalone ES6 modules. #2292 (comment) - Add an option to auto-import the content of JS
window
into Brythonglobals()
. - Add "JS vs Brython API vs CPython vs Emscriptem CPython vs Brython JS-DOM API vs Brython preconverted into JS" benchmarks+test results ?
(I can get students on it for a project)
Brython-Javascript interactions (5)
- Make a fake prototype chain for Brython objects.
Class and inheritance properties lost in JS <=> Brython conversions #2253 - Better handling of None, null, and undefined (2 solutions suggested).
null/undefined/None comparisons, and None Bry=>JS conversion. #2272 (comment) - Keep symmetric Brython <=> JS conversions.
window.Date == window.Date returns False [Potential HUGE performances increase] #2249
[OPTIMISATION] Implements str as string with prototype replacement. #2269
[CODE CLEANING/OPTI/BUG FIX] Improve List/Tupple/Array conversions #2299 - Use BigInt to implement int.
Implements Integer as a BigInt ? #2268 - AOT for Brython (with watch mode).
[Project] Produce standalone ES6 modules. #2292
Improve JS code generated by AST (5)
- Rewrite generated code related to conditions and booleans.
[OPTIMISATION] Better conditions transcriptions from AST inside if/while/!/bool() #2274 - Optimize function calls
[OPTIMISATION] improve performances upon fct call #2275 - Optimize argument parsing
[OPTIMISATION] Improving argument parsing #2283 - Alternative position encoding (+ set it as first arg ?)
[OPTIMISATION] Optimisations for DEBUG informations (easily done, big performances) #2270 - Replace concat by spread operator in arguments
[List] Several HUGE performances optimisations. #2260 (comment)
Optimise Brython code written in JS (6)
Requires to rewrite JS files by hand little by little (50k+ lines).
- Optimize function calls
[OPTIMISATION] improve performances upon fct call #2275 - Optimize argument parsing
[OPTIMISATION] Improving argument parsing #2283 - Use native JS functions instead of re-implementing them
- For strings
- Use string encode/decode in bytes.js ?
str.replace : well... why not using JavaScript's string replace ? #2267
- Factorize checks
Factorize assertions + Option "checks-mode=unsafe" to optimize runtime #2266 - Several other suggestions
[OPTIMISATION] Python method implemented in JS: improving them ? #2306 - Good practices (search in code)
- Pre-allocate array when possible
- use
++i
instead ofi++
when possible - use string template litteral
- optimise algos
- handle errors firsts
- use new Brython functions
- use
let
/const
[List] Several HUGE performances optimisations. #2260 (comment)
[List] Several HUGE performances optimisations. #2260
Brython helpers (3)
- New API for correct and safe use of Webcomponent
Safe use of Web Component #2265 - Modify browser.template for safer use (code given)
browser.template.Template should NOT render the outer HTML #2240 (comment) - browser.template throws "TypeError" when done on body (object doesn't support selection by selector).
Documentation suggestions
See #2257
Unsolved issues (16 + 2PR)
Open PR:
- Added generateArgs() function #2308
- Use JS/Python prototype instead of conditions to choose the correct JS <=> Brython conversion method #2300
Open issues:
- isinstance not working with JS arrays #2325
- [OPTIMISATION] Python method implemented in JS: improving them ? #2306
- [CODE CLEANING/OPTI/BUG FIX] Improve List/Tupple/Array conversions #2299
- [Project] Produce standalone ES6 modules. #2292
- [OPTIMISATION] Improving argument parsing #2283
- [FEATURE] Suggestions to improve imports #2276
- [OPTIMISATION] improve performances upon fct call #2275
- [OPTIMISATION] Better conditions transcriptions from AST inside if/while/!/bool() #2274
- null/undefined/None comparisons, and None Bry=>JS conversion. #2272
- [OPTIMISATION] Optimisations for DEBUG informations (easily done, big performances) #2270
- [OPTIMISATION] Implements str as string with prototype replacement. #2269
- str.replace : well... why not using JavaScript's string replace ? #2267
- Factorize assertions + Option "checks-mode=unsafe" to optimize runtime #2266
- Safe use of Web Component #2265
- Class and inheritance properties lost in JS <=> Brython conversions #2253
- window.Date == window.Date returns False [Potential HUGE performances increase] #2249
- browser.template.Template should NOT render the outer HTML #2240
List of closed issues
Temporary closed issues:
Closed PR:
- Using generate_args0 : -20% exec time??? #2316
- Fixing $B.args0 #2319
- Fix bugs for Brython AOT #2314
- Use sys.executable as per schmave suggestion #2302
- Fix CGI server #2301
- Tried to fix issue 2249 #2298
- Fix issue #1913 (server open to outside world by default) by adding new --ip option to server.py #2297
- Fix base not being search recursivelly in webcomponent.define() #2295
- Improve arguments parsing (see #2283) #2287
Closed issues:
- Python error message not properly shown #2326
- [Feature/Opti] Using Python module written in C inside Brython #2296
- [FEATURE] Authorize top level await by default (equiv to python -m asyncio by default?) ? #2279
- Errors in brython.info test suites #2273
- Bests practices for Safe interactions between JS/Brython ? #2263
- Too much recursion in arrays #2262
- Array of Array not properly synchronized (JS => Brython) ! #2261
- Improve print() when printing HTMLElement #2255
- async/defer on brython.js : ModuleNotFoundError: No module named 'browser.webcomponent' #2252
- Creating async callbacks in Brython for JS function (need aio.create_task ?) #2251
- TypeError: obj is null when importing windows to globals() [Dangerous null/undefined/None conversions ?] #2248
- When doing inheritance : bases[0].$js_func is undefined #2247
- DOMStringMap should returns "None" instead of raising "AttributeError" when key does not exist #2245
- Direct inheritance of window.HTMLElement = bug, indirect inheritance = OK ? #2244
- webcomponent.define() is missing a third parameter #2239
- browser.template + webcomponent.define() = infinite loop #2236
- Documentation doesn't show how to customize built-in elements + attachShadow = bug on customized built-in elements #2234
Metadata
Metadata
Assignees
Labels
No labels