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

ESP8266: Simplify platform.c task handling #3101

Closed
wants to merge 76 commits into from

Conversation

jpeletier
Copy link
Contributor

Make sure all boxes are checked (add x inside the brackets) when you submit your contribution, remove this sentence before doing so.

  • This PR is for the dev branch rather than for master.
  • This PR is compliant with the other contributing guidelines as well (if not, please describe why).
  • I have thoroughly tested my contribution.
  • The code changes are reflected in the documentation at docs/*.

This PR simplifies platform.c handling of tasks to avoid having to keep an array of callbacks. Interface is left intact and code is cleaner.

TerryE and others added 30 commits July 23, 2019 19:16
Lua 5.1 to 5.3 realignement phase 1
The internal implementation already preferentially forwards to the
encoder module, so we should just remove these functions as they confuse
people into thinking that we don't have their inverses (see the feature
request nodemcu#2907).

Update the docs to refer to the encoder version and add deprecation
warnings to the runtime implementations.
* clean effects library
* Fix several issues in ws2812 and effects
* Implement working way of calling shift from callback
* Remove app/include/netif/wlan_lwip_if.h

This file appears to be unused in our tree.

* New `net.if.info` call to show LwIP information

This is a generalization of `wifi.sta`'s and `wifi.ap`'s `getip` and
`getmac` calls.  I don't propose to deprecate those, but perhaps we
should, in the documentation, point users at this function instead.

The direct motivation is to permit continued use of DHCP-provided NTP
servers in a future where
nodemcu#2819 has landed, now
that nodemcu#2709 is in the
tree.  But rather than exposing just that information, a more general
interface seems useful.
* Remove stale putative MD2 support

This hasn't worked in a while, presumably since one of our upstream
merges.  Don't bother making it work, since MD2 is generally considered
insecure.

* Land mbedtls 2.16.3-77-gf02988e57

* TLS: remove some dead code from espconn_mbedtls

There was some... frankly kind of scary buffer and data shuffling if
ESP8266_PLATFORM was defined.  Since we don't, in fact, define that
preprocessor symbol, just drop the code lest anyone (possibly future-me)
be scared.

* TLS: espconn_mbedtls: run through astyle

No functional changes

* TLS: espconn_mbedtls: put the file_params on the stack

There's no need to malloc a structure that's used only locally.

* TLS: Further minor tidying of mbedtls glue

What an absolute shitshow this is.  mbedtls should absolutely not
be mentioned inside sys/socket.h and app/mbedtls/app/lwIPSocket.c is not
so much glue as it as a complete copy of a random subset of lwIP; it
should go, but we aren't there yet.

Get rid of the mysterious "mbedlts_record" struct, which housed merely a
length of bytes sent solely for gating the "record sent" callback.

Remove spurious __attribute__((weak)) from symbols not otherwise
defined and rename them to emphasize that they are not actually part of
mbedtls proper.

* TLS: Rampage esp mbedtls glue and delete unused code

This at least makes the shitshow smaller

* TLS: lwip: fix some memp definitions

I presume these also need the new arguments

* TLS: Remove more non-NodeMCU code from our mbedtls

* TLS: drop support for 1.1

Depending on who you ask it's either EOL already or EOL soon, so
we may as well get rid of it now.
* Add missing globals from luacheck config

* Fix luacheck warnings in all lua files

* Re-enable luacheck in Travis

* Speed up Travis by using preinstalled LuaRocks

* Fix more luacheck warnings in httpserver lua module

* Fix DCC module and add appropriate definitions to luacheck config.

* Change inline comments from ignoring block to only ignore specific line

* Add Luacheck for Windows and enable it for both Windows and Linux

* Change luacheck exceptions and fix errors from 1st round of polishing

* Add retry and timeout params to wget
Also clean-up a nasty `ow` module example.
TerryE and others added 15 commits April 27, 2020 01:13
-  Lots of minor but nasty bugfixes to get all tests to run clean
-  core lua and test suite fixes to allow luac -F to run cleanly against test suite
-  next tranch to get LFS working
-  luac.cross -a options plus fixes from feedback
-  UART fixes and lua.c merge
-  commit of wip prior to rebaselining against current dev
-  more tweaks
Co-authored-by: Matsievskiy S.V <matsievskiysv@gmail.com>
* fix build

* poor mans link which also works on docker under windows

* Delete espconn.h

* resurecting it as regular file

* Add missing newline

Co-authored-by: Marcel Stör <marcelstoer@users.noreply.github.com>
Correct typo in Lua export from updateDispla() to updateDisplay()
* Net_info module exposing ping function initial commit
* Ping as a part of net module
* Sent callback implemented
* Add NET_PING_ENABLE macro

Authored-by: vsky <blue205@centrum.cz> with support from TerryE
@nwf
Copy link
Member

nwf commented May 12, 2020

I am not competent to review the ESP32 version of this (#3087) and only barely competent to review this ESP8266 one...

If I read this right, we were needlessly maintaining an array of objects that the underlying "not an RTOS we swear" was willing to queue for us anyway?

@jpeletier
Copy link
Contributor Author

This is an attempt to simplify the code whereupon instead of storing the callback function pointer in an array and handing over the index of that array, the handle is the pointer, thus making the code cleaner.

This has the advantage of simpler and easier to understand code and a tiny little bit of performance, but has the drawback of making things harder to debug in case somebody task_post() posts with a corrupt handle/pointer. Discussion is taking place in #3087

@TerryE
Copy link
Collaborator

TerryE commented Jul 8, 2020

I am not sure what is going on here but at the moment committing this looks like it looks it would change 546 files not the few need to implement this change, and thus back out lots of other essential changes. This would be disastrous. We need to sort this out after we've completed this current round of core update, and possibly rebaseline and force push this again. I will add the blocked label in the meantime.

@TerryE TerryE added the blocked Waiting on another PR to land label Jul 8, 2020
@marcelstoer
Copy link
Member

at the moment committing this looks like it looks it would change 546 files not the few need to implement this change

The changes simply need to be rebased on the current dev.

@marcelstoer marcelstoer added enhancement and removed blocked Waiting on another PR to land labels Sep 27, 2020
@marcelstoer marcelstoer added this to the Next release milestone Sep 27, 2020
@marcelstoer marcelstoer removed this from the Next release milestone Nov 3, 2020
@stale
Copy link

stale bot commented Apr 16, 2022

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

@stale stale bot added the stale label Apr 16, 2022
@stale stale bot closed this Apr 30, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.