Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Berry bytes solidification #21558

Merged

Conversation

s-hadinger
Copy link
Collaborator

Description:

Berry is now able to solidify bytes instances, which opens the door for more flash size optimization.

Example:

class DemoBin
    static var b1 = bytes("DEADBEEF")
end

import solidify
solidify.dump(DemoBin)

Output is:

extern const bclass be_class_DemoBin;

/********************************************************************
** Solidified class: DemoBin
********************************************************************/
be_local_class(DemoBin,
    0,
    NULL,
    be_nested_map(1,
    ( (struct bmapnode*) &(const bmapnode[]) {
        { be_const_key(b1, -1), be_const_bytes_instance(DEADBEEF) },
    })),
    (bstring*) &be_const_str_DemoBin
);

As expected, the solidified bytes instance is read-only.

Checklist:

  • The pull request is done against the latest development branch
  • Only relevant files were touched
  • Only one feature/fix was added per PR and the code change compiles without warnings
  • The code change is tested and works with Tasmota core ESP8266 V.2.7.6
  • The code change is tested and works with Tasmota core ESP32 V.3.0.0
  • I accept the CLA.

NOTE: The code change must pass CI tests. Your PR cannot be merged unless tests pass

@s-hadinger s-hadinger merged commit a51c511 into arendst:development Jun 3, 2024
59 checks passed
Jason2866 added a commit to Jason2866/Tasmota that referenced this pull request Jun 5, 2024
* Berry coc parser keeps order of variables (arendst#21542)

* Bugfix: crash when using tjpegd and LVGL (arendst#21544)

* prevent crashes when using tjpegd in other places in Tasmota

* do not use external tjpegd in Tasmota

* Update changelogs

* SML: Allow larger offset when using x to ignore bytes (arendst#21535)

* Allow larger offset when using x to ignore bytes

STW Klagenfurt sends 355 bytes, and the interesting values starts somewhere at position 304. Therefor we need to set a larger uint range to allow more than 255 bytes to ignore.

* Update xsns_53_sml.ino

---------

Co-authored-by: Theo Arends <[email protected]>

* Change GPIOViewer from v1.5.3 to v1.5.4 (No functional change)

* Fix GPIO16 as Transmit enable pin (arendst#21269)

* Support Levoit Core200s (WIP, Feedback requested) (arendst#21502)

* Support Levoit Core 200S

Add berry script to support Levoit Core 200S (and possibly other too
since levoit offers multiple similar devices)

* Core200S: fix comments

* forgotten safety check (arendst#21549)

* Bump v14.1.0.1

* Berry bytes solidification (arendst#21558)

* Berry prepare for bytes() solidification

* Berry solidification of bytes objects

* Berry solidification of `bytes` instances

* Matter support for Air Quality sensors (arendst#21559)

* Add default value for `SetOption151` (arendst#21560)

* Update changelogs

* Remove GPIO_I2S_BCLK_IN,  GPIO_I2S_WS_IN

* add uTouch settings

* uTouch for m5core2

* Berry `input()` returns empty string and does not crash (arendst#21565)

---------

Co-authored-by: s-hadinger <[email protected]>
Co-authored-by: Christian Baars <[email protected]>
Co-authored-by: Theo Arends <[email protected]>
Co-authored-by: Andreas Doppelhofer <[email protected]>
Co-authored-by: blenk92 <[email protected]>
Co-authored-by: Christian Baars <[email protected]>
Co-authored-by: Jason2866 <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant