Commit Graph

184 Commits

Author SHA1 Message Date
Léa Saviot
0d8cb0123b [python/port] Fix user interruption char set up
print can be user interrupted, so the interruption char needs to be
set for the whole runCode method
2020-02-20 11:43:31 +01:00
Léa Saviot
6dced2d157 [python/test] Do not use such a big python heap 2020-02-12 15:13:27 +01:00
Ruben Dashyan
8d3f86c77f [kandinsky/context] getPixel only if in the clipping rect
Fixes the redrawing of RoundCursorView when its frame overlaps the
clipping rect.
2020-02-12 15:13:24 +01:00
Émilie Feral
18b4514412 [python] port: add a comment abouth how we use setjmp 2020-02-12 15:13:24 +01:00
Émilie Feral
de74aa7e59 [python] Enable PYSTACK for emscripten platform: this "fixes" bug
probably due to gc_collect (we suspect that transpiled C does not have
access to javascript variables preventing it from collecting all
required roots and leading to deleting objects prematuraly). Enabling
PyStack reduces the use of the heap and fixes the bug.
2020-02-12 15:13:24 +01:00
Émilie Feral
58acedfd34 [python] Test: inline code to avoid changing runCode behaviour 2020-02-12 15:13:24 +01:00
Romain Goyet
ad665fba73 [python] Add a simple test 2020-02-12 15:13:23 +01:00
Léa Saviot
86bd4be03e [python/port] Fix gc_collect_root on emscripten
Any data access should be aligned.
2020-02-12 15:13:22 +01:00
Léa Saviot
3dcb40b5d4 [apps/code] Do not call interrupt in printText 2020-02-12 15:13:22 +01:00
Léa Saviot
f47f1f0543 [apps/code] Refresh view in printText 2020-02-12 15:13:22 +01:00
Léa Saviot
42bdf29ead [python] Fix compilation warnings 2020-02-12 15:13:22 +01:00
Léa Saviot
ac6ce97dea [python/modturtle] Allowinterruption during reset
Scenario:
fro m turtle import *
while 1==1:
  reset()
-> This script cannot be interrupted
2020-02-12 15:13:21 +01:00
Émilie Feral
37061b9cb5 [python] Fix gc_collect to be sure to get unaligned pointers 2020-02-12 15:13:16 +01:00
Émilie Feral
4b58efbc0a [python] Fix stack boundary on the device 2020-02-12 15:13:16 +01:00
Émilie Feral
d1e93a2918 [python] Python stack: fix limit 2020-02-12 15:13:16 +01:00
Léa Saviot
d0a65b01c0 py/qstr: Raise exception in qstr_from_strn if str to intern is too long. 2020-02-12 15:13:16 +01:00
Léa Saviot
c9d337d536 py/builtinimport: Raise exception on empty name. 2020-02-12 15:13:16 +01:00
Ruben Dashyan
389fbbca3a [python/port] Support for unicode strings 2020-01-06 15:15:19 +01:00
Émilie Feral
070d362f15 [python] Improve comment 2019-12-12 14:16:13 +01:00
Émilie Feral
49aa58446b [python] modkandinsky: fill_rect and draw_string calls might take some
time. As "micropython_port_vm_hook_loop" is not called while we are
executing module code, we add an extra check for user interruption in
module functions.
2019-12-04 11:27:32 +01:00
Émilie Feral
0db66f1784 [python] Turtle: add TODO 2019-12-04 11:27:32 +01:00
Émilie Feral
59b6dbd74e [python] micropython_port_interruptible_msleep should always call micropython_port_interrupt_if_needed even if the delay is small 2019-12-04 11:27:32 +01:00
Romain Goyet
7607c4cba4 [python/modion] Use constants to identify keys 2019-11-19 10:08:16 +01:00
Romain Goyet
9d66b23848 [python] Add an ion module 2019-11-19 10:08:16 +01:00
Romain Goyet
190e31ef4a [python] Fix source file names 2019-11-19 10:08:16 +01:00
Léa Saviot
577e7db8dd [python/port] Use msleep (not millis) in micropython_port_interruptible_msleep 2019-10-15 16:06:34 +02:00
Léa Saviot
9759bd91d0 [python] MicroPython upgrade checklist file 2019-08-21 11:21:26 +02:00
Léa Saviot
c421cf709d [python] Generated moduledefs.h file 2019-08-21 11:13:13 +02:00
Léa Saviot
ff833536dd [python] Clean and update port/genhdr/qstrdefs.in.h 2019-08-21 10:58:26 +02:00
Léa Saviot
a31eabed47 [python] Fix comment typo 2019-08-21 10:58:12 +02:00
Léa Saviot
0975ba0f10 [python] Upgrade to micropython 1.11 2019-08-21 10:58:12 +02:00
Émilie Feral
059c596a80 Makefiles: avoid building all sources for each target; introduce more
modularity
2019-08-08 17:22:01 +02:00
Léa Saviot
a450ce3855 Merge branch 'master' into f7 2019-08-06 17:40:14 +02:00
Léa Saviot
95403c8a91 [python/port] Increase stack limit on emscripten, simulator...
The value is quite arbitrary, we just do not want to outperfom the
device but still provide more recursion depth.
2019-06-25 08:37:47 -04:00
Émilie Feral
d07b3382e9 Merge branch 'master' into f7 2019-06-14 13:38:02 -04:00
Émilie Feral
b485319e76 [python] Clean gc_collect and comment to explain potential address
sanitize error
2019-06-14 13:37:11 -04:00
Émilie Feral
c0da810ea1 [python] Turtle module: fix modturtle_gc_collect from stack-buffer-overflow 2019-06-14 13:37:11 -04:00
Émilie Feral
927b69067c Merge branch 'version-11' into f7 2019-05-03 17:25:53 +02:00
Léa Saviot
3a390111d8 [python/urandom] Use Ion::random to seed urandom 2019-05-03 15:54:20 +02:00
Léa Saviot
447c2f63e1 [python/urandom] Add init method to seed the Yasmarang generator.
This commit should disappear as it will be in one of the next stable
micropython versions
2019-05-03 15:54:20 +02:00
Léa Saviot
352850e481 [python] Fix typo 2019-05-03 15:54:20 +02:00
Léa Saviot
e8b3db76b2 [python/turtle] Fix rounding errors
Some horizontal/vertical lines were not properly drawn
Example script:
from math import *
from turtle import *
def a():
  def carre(n):
    fd(n)
    right(90)
    fd(n)
    right(90)
    fd(n)
    right(90)
    fd(n)
    right(90)
  penup()
  goto(-158,109)
  pendown()
  carre(100)
  for j in range(10):
    for i in range(26):
      penup()
      fd(2)
      pendown()
      carre(10)
      penup()
      fd(10)
      pendown()
    penup()
    goto(-158,109-10*(j+1))
    pendown()
2019-05-03 15:53:21 +02:00
Émilie Feral
9e962874b6 Merge branch 'version-11' into HEAD 2019-04-29 18:00:17 +02:00
Romain Goyet
42f72eee77 [python/kandinsky] draw_string takes two optional colors (text/bg) 2019-04-26 17:44:27 +02:00
Romain Goyet
ec50e75a3a [python/kandinsky] Bubble-up input errors before switching to draw mode 2019-04-26 17:44:27 +02:00
Romain Goyet
926b96cafb [python/kandinsky] Expose the fill_rect method
Which allows for *much* faster graphics
2019-04-26 17:44:27 +02:00
Romain Goyet
bb89ae9211 [python/kandinsky] Color can now be passed as a tuple
The values are expected to be integers between 0 and 255
2019-04-26 17:44:27 +02:00
Léa Saviot
03bb81215e [python/urandom] Use Ion::random to seed urandom 2019-04-17 11:46:01 +02:00
Léa Saviot
f73951865e [python/urandom] Add init method to seed the Yasmarang generator.
This commit should disappear as it will be in one of the next stable
micropython versions
2019-04-17 11:46:00 +02:00
Léa Saviot
f9e2fc6974 [python] Fix typo 2019-04-17 11:46:00 +02:00