Skip to content

Commit e558dfd

Browse files
authored
Merge pull request #1 from espruino/master
updTo186
2 parents 4f76bd6 + a1e4a3f commit e558dfd

File tree

3,049 files changed

+475311
-365234
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

3,049 files changed

+475311
-365234
lines changed

.gdbinit

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ define jsvTrace
55
print jsvTrace(execInfo.root, 0)
66
end
77
define whereami
8-
print jslPrintTokenLineMarker(jsiConsolePrintString, 0, execInfo.lex, execInfo.lex->tokenStart, 0)
8+
print jslPrintTokenLineMarker(jsiConsolePrintString, 0, lex, lex->tokenStart, 0)
99
end
1010
define typeof
1111
if (($arg0)->flags&JSV_VARTYPEMASK)>=JSV_NAME_STRING_0 && (($arg0)->flags&JSV_VARTYPEMASK)<=JSV_NAME_STRING_MAX

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,3 +26,4 @@ node_modules
2626
/build/
2727
esp_iot_sdk_v1.5.0
2828
xtensa-lx106-elf
29+
*.c#

.travis.yml

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,15 +8,15 @@ language: c
88
#addon:
99
# apt:
1010
# sources:
11-
# - ppa:terry.guo/gcc-arm-embedded
11+
# - ppa:team-gcc-arm-embedded/ppa
1212
# packages:
13-
# - libsdl1.2-dev gcc-arm-none-eabi
13+
# - libsdl1.2-dev gcc-arm-embedded
1414

1515
before_install:
16-
- sudo add-apt-repository -y ppa:terry.guo/gcc-arm-embedded
16+
- sudo add-apt-repository -y ppa:team-gcc-arm-embedded/ppa
1717
- sudo apt-get update
18-
- sudo apt-get install libsdl1.2-dev gcc-arm-none-eabi
19-
- curl -Ls http://s3.voneicken.com/xtensa-lx106-elf.tgx | tar Jxf -
18+
- sudo apt-get install libsdl1.2-dev gcc-arm-embedded
19+
- curl -Ls http://s3.voneicken.com/xtensa-lx106-elf-20160330.tgx | tar Jxf -
2020
- curl -Ls http://s3.voneicken.com/esp_iot_sdk_v1.5.0.tgx | tar Jxf -
2121

2222
before_script:
@@ -31,6 +31,7 @@ after_script:
3131
curl -Ls https://github.com/rlmcpherson/s3gof3r/releases/download/v0.5.0/gof3r_0.5.0_linux_amd64.tar.gz | tar zxf - gof3r_0.5.0_linux_amd64/gof3r;
3232
mv gof3r*/gof3r .;
3333
ls *.tgz | xargs -I {} ./gof3r put -b $S3_BUCKET -k espruino/{} --acl public-read -p {};
34+
ls *.tgz | xargs -I {} echo \"URL: http://$S3_BUCKET/espruino/{}\";
3435
fi"
3536

3637
compiler:
@@ -60,6 +61,7 @@ env:
6061
- NUCLEOF411RE=1
6162
- LCTECH_STM32F103RBT6=1
6263
- LINUX_BUILD=1
64+
- EFM32GGSTK=1
6365
script: make
6466

6567
notifications:

ChangeLog

Lines changed: 86 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,93 @@
1+
1v87 : Add support for compiling with float-abi=hard (even if it doesn't give us real-world benefits)
2+
Add shortcut for quick execution of common call types
3+
Fix BBC micro:bit save() regression from 1v86
4+
Fix 'lock overflow' when calling methods with 'this' bound (fix #870, fix #885)
5+
Fix jsvStringIteratorGetCharOrMinusOne for zero-length strings
6+
Allow tab-completion straight after '.'
7+
Make sure execution stops for native functions if there's an error when parsing arguments
8+
NRF5x: remove setName and add functionality to setAdvertising, along with advertising interval
9+
NRF5x: allow raw advertising data in setAdvertising
10+
Add E.setPassword - allows Espruino console to be locked
11+
Fix pin header numbering for BBC micro:bit (it changed for the production version) (fix #896)
12+
13+
1v86 : Compile Telnet server into linux by default, Add '--telnet' command-line option to enable it
14+
Fix lock 'leak' in Telnet when Telnet is turned off
15+
Add Telnet serial device to allow redirection
16+
Create errors for unterminated expressions (fix #814)
17+
Remove Espruino's built-in strcpy/etc
18+
Remove Espruino's built-in maths
19+
Add basic Taylor series sin and atan for when we're trying to save memory
20+
Refactoring to use global var for lexer - save some memory and increase parse speed
21+
Add .removeListener (fix #30)
22+
Added better micro:bit `show()` that works well with Graphics
23+
Add `require("Flash").getFree()` as multiplatform way to find free flash pages (fix #815)
24+
Add the ability to set clock frequencies on STM32F4 chips (like Pico) with E.setClock (fix #52)
25+
`jsvEvaluate` now uses memory area for execution of JS strings (fix #817)
26+
Add `E.setBootCode` to allow JS scripts to be run without being in RAM (fix #740)
27+
'Expecting a number or something iterable, got X' changed to exception rather than warning (gives stack trace)
28+
Drop '.init' and '.fini' symbols, allowing GCC 5.x compilation on STM32
29+
Ensure that pinMode/digitalWrite is re-constituted properly by dump() and save() (fix #833)
30+
ESP8266: add stack dump on fatal exception, ./targets/esp8266/printstack can extract a backtrace
31+
ESP8266: move JswSymPtr and JswSymList to flash to free up gobs of RAM, bump jsvars to 1600
32+
Fix write to flash when BLE connected on nRF51/2
33+
Fix potential variable corruption issue when copying objects/arrays containing packed ints
34+
Fix ESP8266 printLog memory leak (fix #852)
35+
When parsing from a Native String (E.memoryArea), use Native String for function code too.
36+
Added built-in Promise implementation
37+
Fix broken Object.keys/getOwnPropertyNames caused by ESP8266 RAM saving tweaks
38+
Add Object.g/setPrototypeOf (fix #856)
39+
Fix memory leak when executing bound function with 'this'
40+
Fix missing PBKDF2 & AES libs on Pico + Linux caused by an untested ESP8266 commit
41+
Fix negative Date to string code (fix #854)
42+
Convert type warnings to exceptions (to provide stack traces for problems)
43+
Add uncaughtException event (fix #846)
44+
Stop eval in a switch statement from confusing parsing (Fix #845)
45+
Fix regression in 'mode' argument of SPI.setup (allows custom CC3000 pins to work)
46+
Fix '.on' with long event names
47+
Enable F4Discovery button pull-down. Newer boards don't seem to have one fitted
48+
Add 'force' to 'Serial.setConsole' - you can force the console to stay in one place
49+
Fix micro:bit compass problems (fix #864)
50+
Ensure that Pico can properly enter deep sleep even if USB is never used
51+
Only inline the very basic variable iterator functions (save enough space to allow Espruino board build again)
52+
Don't include Promises on devices where flash memory of Scarce (fix Olimexino compile)
53+
Fix glitches in PWM output when updating Software PWM quickly (fix #865)
54+
Added `E.kickWatchdog()` to allow you to keep your JavaScript running - not just the interpreter (fix #859)
55+
Ensure all pins set to AIN on startup
56+
Fix regression where setWatch would remove pulldown from button if called after reset()
57+
Reduce amount of flash available for saved code on Original Espruino (until we can get code size down)
58+
159
1v85 : Ensure HttpServerResponse.writeHead actually sends the header right away
260
- enables WebSocket Server support from JS
361
Fix issue where GC'd objects referencing non-GC'd data wouldn't unreference it
462
Add E.memoryArea to allow memory addresses to be treated as variables
63+
Fix STM32F4 LSI clock frequency - should make the Pico's RTC a lot more accurate (fix #776)
64+
Added HeatShrink compression to saved code (instead of RLE)
65+
If saving fails, delete command history and try again.
66+
Make sure `reset()` resets the sleep and busy indicator pins
67+
Now escape characters >=127 as well (fix #780)
68+
Add decodeURIComponent (fix #779)
69+
Allow reset();save() on one line
70+
Fix potential issue parsing HTTP headers when more data is sent after the header (fix #783)
71+
Fix broken storage of floating point values when <255 variables
72+
Fix regression where DACs didn't work on Original Espruino Board
73+
Improve tab complete's memopry usage
74+
Added Tab complete and Debug to low-end Nordic uCs
75+
Limit the number of events processed each time around the idle loop to the number that were in it at the start
76+
- helps to fix issues with out of memory when receiving big files over ESP8266 serial connection
77+
Allow different types of network to have different buffer sizes - enlarge JS, Linux and WIZnet buffers
78+
Fix bug where clearInterval() and setWatch with debounce could cause setWatch to momentarily stop working
79+
Make HTTP server only close connection after Content-Length bytes received
80+
Speed up jsvNewFlatStringOfLength by combining it with updating the free var list
81+
Update the free var list when garbage collecting (makes allocation at the start of memory more likely)
82+
Don't zero the contents of memory when freeing - speeds up deallocation
83+
Removal of un-needed zero initialisations for variables
84+
Only garbage collect on idle if we're low on memory (fix #767)
85+
Improve malloc behaviour for crypto lib (try and free all command history is first alloc fails)
86+
Improve HTTPS error messages
87+
Add READ_FLASH_UINT8, allowing ESP8266 to read&exec strings stored in Flash with E.memoryArea
88+
Start the RTC up running off LSI, and switch after a few seconds if the LSE has started correctly
89+
Allow JSV_GET_AS_CHAR_ARRAY to get a pointer to memory in ArrayBuffers or memoryAreas
90+
Reset PinStateIsManual in reset (fix #765)
591

692
1v84 : Fix device initialisation flags not working when the device number is above 32 (fix #751, #748)
793
- this fixes broken SPI when not on standard pins

Dockerfile-esp8266

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
FROM ubuntu:14.04
2+
3+
RUN apt-get update && apt-get install -y software-properties-common && apt-get update \
4+
&& add-apt-repository ppa:terry.guo/gcc-arm-embedded \
5+
&& apt-get update \
6+
&& apt-get install -y git gcc-arm-none-eabi build-essential python curl
7+
8+
RUN git clone https://github.com/espruino/Espruino espruino
9+
10+
RUN curl -Ls http://s3.voneicken.com/xtensa-lx106-elf.tgx | tar Jxf -
11+
RUN curl -Ls http://s3.voneicken.com/esp_iot_sdk_v1.5.0.tgx | tar Jxf -
12+
13+
WORKDIR /espruino
14+
15+
ENV ESP8266_BOARD=1
16+
ENV ESP8266_SDK_ROOT=/esp_iot_sdk_v1.5.0
17+
ENV RELEASE=1
18+
19+
#ENV PICO_1V3 1
20+
21+
ENV PATH "/xtensa-lx106-elf/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games"
22+
23+
CMD ["make"]

0 commit comments

Comments
 (0)