| Commit message (Collapse) | Author | Age |
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This new config option sets how many fixed-number-of-bytes to use to
store the length of each qstr. Previously this was hard coded to 2,
but, as per issue #1056, this is considered overkill since no-one
needs identifiers longer than 255 bytes.
With this patch the number of bytes for the length is configurable, and
defaults to 1 byte. The configuration option filters through to the
makeqstrdata.py script.
Code size savings going from 2 to 1 byte:
- unix x64 down by 592 bytes
- stmhal down by 1148 bytes
- bare-arm down by 284 bytes
Also has RAM savings, and will be slightly more efficient in execution.
|
| |
|
| |
|
|
|
|
|
| |
Script is equivalent, but now also runs under ancient Python 2.6.
Goes part way to addressing issue #847.
|
| |
|
|
|
|
|
|
|
|
|
| |
The original parsing would error out on any C declarations that are not typedefs
or extern variables. This limits what can go in mpconfig.h and mpconfigport.h,
as they are included in qstr.h. For instance even a function declaration would be
rejected and including system headers is a complete no-go.
That seems too limiting for a global config header, so makeqstrdata now
ignores everything that does not match a qstr definition.
|
| |
|
| |
|
|
|
|
| |
I was too hasty. Still a one-liner though.
|
|
|
|
| |
A one-liner, added especially for @pfalcon :)
|
| |
|
| |
|
|
|
|
|
| |
These largely duplicate str() & bytes() constructors' functionality,
but can be used to achieve Python2 compatibility.
|
|
|
|
|
| |
This is alternative implementation of supporting conditionals in qstrdefs.h,
hard to say if it's much cleaner than munging #ifdef's in Python code...
|
|
|
|
|
|
| |
This reverts commit acb133d1b1a68847bd85c545312c3e221a6f7c0b.
Conditionals will be suported using C preprocessor.
|
|
|
|
| |
Syntax is usual C #if*/#endif, but each qstr must be wrapped individually.
|
| |
|
| |
|
| |
|
|
|
|
|
| |
This is compatible with what search path was before sys.path refactor,
with addition of module library path ("0:/lib").
|
|
|
|
|
|
| |
Ultimately all static strings should be qstr. This entry in the type
structure is only used for printing error messages (to tell the type of
the bad argument), and printing objects that don't supply a .print method.
|
|
|
|
|
| |
Want common qstrs to be first in the list so they have the lowest ids,
so that in the byte code they take up the least room.
|
|
|
|
|
| |
Also, add qstr's for string appearing in unix REPL loop, gross effect
being less allocations for each command run.
|
| |
|
|
Can now have null bytes in strings. Can define ROM qstrs per port using
qstrdefsport.h
|