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