Commit Graph

46 Commits

Author SHA1 Message Date
Léa Saviot
9d6bab092f [poincare/parser] Identifier is not already function -> symbol
We check the context: if an identifier is already a function, we
interpret it as such, otherwise it is a symbol.
This way, in the Equation app, x(x+1) is interpreted as x*(x+1)
2020-02-12 15:13:21 +01:00
Léa Saviot
4ffcace024 [ion/storage] Add TODO about code optimization 2020-02-12 15:13:16 +01:00
Léa Saviot
5853e96947 [apps/code] Remove EditorController::m_areaBuffer
This was a very large buffer that took a lot of RAM space (the size of
the storage). Instead of having it, we just move the available space of
the storage at the end of the edited script, and move it back when the
edition finishes.
This is slower but saves a lot of space.
2020-02-12 15:13:16 +01:00
Léa Saviot
5f7692686f [ion/storage] Fix memoization dirtying when renaming a record
Don't forget to update the CRC32 of the record
Scenario : New funciton f(x) = 1, change it to parametric, rename it
a(t), creae a new function -> instead of being empty, it is has a
"ghost" value of [t 1].
2019-11-25 17:32:43 +01:00
Émilie Feral
77304040ad [ion] Storage: fix crash due to wrong assertion
Python tries to import files without extension, it should not crash but
return an empty Record.
2019-09-02 16:55:39 +02:00
Léa Saviot
5235f74852 [ion/storage] Memoize last retrieved record
Faster Graph navigation
2019-08-30 10:47:15 +02:00
Léa Saviot
380ac52cd8 [ion/crc32] crc32Byte and crc32Word 2019-04-25 17:11:06 +02:00
Émilie Feral
58f9a59d6e [ion] Move Storage extensions declaration in Storage class 2019-04-12 15:16:52 +02:00
Émilie Feral
adc30a8dcd [ion] Add Macro to log the storage content 2019-04-12 15:16:52 +02:00
Léa Saviot
ccc1d51634 [ion/storage] fix use of unicode method 2019-04-12 15:16:51 +02:00
Léa Saviot
784381bd33 [unicode] Use unicode when dealing with chars - Part 1 2019-04-12 15:16:51 +02:00
Émilie Feral
66fe9baa7d [ion] Storage: clean implementation (do not re-code strlen) 2019-01-23 16:14:34 +01:00
Léa Saviot
34b22298c4 [ion/storage] Add assertion on dot in record name 2019-01-10 11:42:04 +01:00
Léa Saviot
de339c44ae [apps] Handle StorageFunction::m_color unaligned read on emscripten 2018-12-12 17:49:51 +01:00
Émilie Feral
0a9437e8dc [ion] Storage: add a method destroyAllRecords 2018-11-23 12:04:10 +01:00
Émilie Feral
34e2524a83 [ion] Storage: use strncmp instead of strcmp
When building with -fsanitize=address, strcmp is wrapped in a version
that returns only +1, -1 or 0.
2018-11-23 12:04:09 +01:00
Léa Saviot
0670057f90 [apps/graph] Destroy variable record with same name when renaming func 2018-11-23 12:04:06 +01:00
Léa Saviot
91d6955ddf [apps] The apps displays a warning when storage is full 2018-11-23 12:04:04 +01:00
Léa Saviot
9bfaed583d [apps/escher/ion] Remove Graph memoized models on storage change 2018-11-23 12:04:03 +01:00
Léa Saviot
38f3c5b16d [ion] Storage delegate gets notified of storage changes 2018-11-23 12:04:03 +01:00
Léa Saviot
34f5f0262b [ion] Return just after destroying the record, do not finish the scan 2018-11-23 12:04:03 +01:00
Léa Saviot
d869be7782 [apps/ion] Escapes cases when records/ strings are null 2018-11-23 12:04:01 +01:00
Léa Saviot
2442627e3c [apps] Remove attributes from StorageExpressionModel and derivates 2018-11-23 12:04:00 +01:00
Léa Saviot
dfe573c66e [ion/storage] Handle nullptr name when looking for a record 2018-11-23 12:04:00 +01:00
Léa Saviot
354b6e9c72 [apps] First attempt at bridging Funciton app with the shared storage 2018-11-23 12:04:00 +01:00
Léa Saviot
1830070a95 [ion] Method to destroy all records with given extension in Storage 2018-11-23 12:03:59 +01:00
Léa Saviot
5a5deedb84 [ion] Coding style of static functions in Storage 2018-11-23 12:03:59 +01:00
Léa Saviot
4465cb48f6 [poincare] Use strcmp instead of strncmp 2018-11-23 12:03:59 +01:00
Léa Saviot
91774aff83 [poincare] Escape case in Storage::destroyRecord 2018-11-23 12:03:59 +01:00
Léa Saviot
f71773bb8d [ion] Fix Storage:fullNameCompliant 2018-11-23 12:03:59 +01:00
Léa Saviot
1fe6881171 [ion] Fix coputation of Record name crc32 2018-11-23 12:03:59 +01:00
Léa Saviot
868f17c1c7 [ion] Add method implementation in Storage 2018-11-23 12:03:58 +01:00
Léa Saviot
52a21198a4 [apps/ion] Use the new storage API 2018-11-23 12:03:58 +01:00
Léa Saviot
a4868c8b09 [poincare] Ion::Storage handles fullnames and basenames with extensions 2018-11-23 12:03:58 +01:00
Émilie Feral
9a1ecec322 [ion] Storage: fix crc32 2018-09-26 16:53:55 +02:00
Émilie Feral
eadc493f48 [ion] Storage: fix regex describing compliant names 2018-09-21 17:13:12 +02:00
Émilie Feral
08077cb141 [ion] Storage: make Storage::nameCompliant less restrictive (accepts
.*\.[a-z]+). But Script::nameCompliant is stricted: [a-z_0-9.]*
2018-09-13 11:33:15 +02:00
Émilie Feral
db3cd16128 [ion] Storage: get rid of dynamic allocation 2018-09-11 17:03:04 +02:00
Émilie Feral
0bc2594489 [ion] Storage: deferencing nullptr? 2018-05-15 11:02:35 +02:00
Émilie Feral
235ec73e8e [emscripten] Fix alignment issue
Emscripten expects 32 and 16-bit memory accesses to be aligned.
2018-04-18 11:20:39 +02:00
Romain Goyet
2f1ebf7310 [emscripten] Work around alignment issues
Emscripten expects 32 and 16-bit memory accesses to be aligned.
This happens automatically most of the time, but in the case of our
Storage class, where we happen to read uint16_t out of a char array,
memory accesses might not be aligned. In that case, we rebuild the
uint16_t manually out of two bytes.
2018-04-18 10:04:18 +02:00
Romain Goyet
628992680b [ion] Ion::Storage is not a global variable anymore 2018-04-10 15:09:30 +02:00
Émilie Feral
f1ddf1dbf4 Valgrind: uninitialized value, memory leak 2018-03-28 10:02:09 +02:00
Émilie Feral
845fc7c979 [ion] Typo: NoEnough -> NotEnough 2018-03-22 14:01:38 +01:00
Émilie Feral
36e6851c21 [ion] Storage: change rule on record name compliance 2018-03-22 14:01:38 +01:00
Émilie Feral
b0ede47d55 [ion] Change Storage design (former kallax) 2018-03-22 14:01:38 +01:00