nvs_set_blob leaks (IDFGH-6672)

Following up on this issue (https://github.com/espressif/esp-idf/issues/1642) I found a scenario where nvs_set_blob produces a memory leak in the range of 368 to 1480 bytes.
Code to reproduce this issue
#include
#include <freertos/FreeRTOS.h>
#include <freertos/task.h>
#include <nvs.h>
#include
#include "esp_system.h"
#include <esp_log.h>
#include <nvs_flash.h>
#include <string.h>
#define MAIN_TAG "main"
#define BUF_SIZE 10000
#define LOOP_COUNT 10
std::string makeFileName(uint32_t index)
{
std::ostringstream outStr;
outStr << "testname_" << index;
return outStr.str();
}
extern "C" void app_main()
{
uint32_t start_free_heap = esp_get_free_heap_size();
ESP_LOGI(MAIN_TAG, "START, free heap size: %d", start_free_heap);

nvs_flash_init();

esp_err_t error = 0;
int i = 0;
uint32_t length;
nvs_handle nvsHandle;

nvs_open("test2", NVS_READWRITE, &nvsHandle);
ESP_LOGI(MAIN_TAG, "size: %d", BUF_SIZE);

char * buffer = (char *)malloc(BUF_SIZE);
memset(buffer, 0xFF, BUF_SIZE);

char * buffer2 = (char *)malloc(BUF_SIZE);
memset(buffer2, 0x00, BUF_SIZE);

// Set blobb
error = nvs_set_blob(nvsHandle, makeFileName(i).c_str(), buffer, BUF_SIZE);
nvs_commit(nvsHandle);
ESP_LOGI(MAIN_TAG, "set blob @%d, error = %d, error_name = %s, heap = %d", i, error, esp_err_to_name(error), esp_get_free_heap_size());
usleep(10);

// Get blob to prove its really there
length = BUF_SIZE + 1;
error = nvs_get_blob(nvsHandle, makeFileName(i).c_str(), buffer2, &length);
nvs_commit(nvsHandle);
ESP_LOGI(MAIN_TAG, "get blob @%d, error = %d, error_name = %s, heap = %d", i, error, esp_err_to_name(error), esp_get_free_heap_size());
usleep(10);

nvs_close(nvsHandle);

free(buffer);
free(buffer2);

usleep(10);

ESP_LOGI(MAIN_TAG, "START, free heap size: %d", start_free_heap);
ESP_LOGI(MAIN_TAG, "STOP, free heap size: %d", esp_get_free_heap_size());
ESP_LOGI(MAIN_TAG, "START - STOP, memory diff: %d", start_free_heap - esp_get_free_heap_size());

usleep(10000000);

}
SDK:
idf.py --version
ESP-IDF v4.3.2
Steps to reproduce:

run:
idf.py erase_flash
idf.py build
idf.py flash monitor

run(distinct from monitor
idf.py flash monitor

Current behavior:
1.)
heap memory leak: 368 bytes
1st_run.log
2nd_run.log
2.)
heap memory leak: 1480 bytes
Expected behavior:
nvs should not leak heap memory
Debug Logs
1st run:
Chip is ESP32-D0WD-V3 (revision 3)
Features: WiFi, BT, Dual Core, 240MHz, VRef calibration in efuse, Coding Scheme None
Crystal is 40MHz
MAC: 34:ab:95:5d:4e:dc
Uploading stub...
Running stub...
Stub running...
Changing baud rate to 460800
Changed.
Configuring flash size...
Flash will be erased from 0x00008000 to 0x00008fff...
Flash will be erased from 0x00001000 to 0x00007fff...
Flash will be erased from 0x00010000 to 0x00078fff...
Compressed 3072 bytes to 103...
Writing at 0x00008000... (100 %)
Wrote 3072 bytes (103 compressed) at 0x00008000 in 0.0 seconds (effective 509.7 kbit/s)...
Hash of data verified.
Compressed 26096 bytes to 16006...
Writing at 0x00001000... (100 %)
Wrote 26096 bytes (16006 compressed) at 0x00001000 in 0.7 seconds (effective 296.4 kbit/s)...
Hash of data verified.
Compressed 429104 bytes to 209100...
Writing at 0x00010000... (7 %)
Writing at 0x0001af5a... (15 %)
Writing at 0x0002d8b9... (23 %)
Writing at 0x000334f4... (30 %)
Writing at 0x00038aa6... (38 %)
Writing at 0x0003ee99... (46 %)
Writing at 0x00046cd7... (53 %)
Writing at 0x0004e959... (61 %)
Writing at 0x00055ec0... (69 %)
Writing at 0x0005c80d... (76 %)
Writing at 0x00064315... (84 %)
Writing at 0x0006d822... (92 %)
Writing at 0x0007425d... (100 %)
Wrote 429104 bytes (209100 compressed) at 0x00010000 in 5.1 seconds (effective 676.9 kbit/s)...
Hash of data verified.
Leaving...
Hard resetting via RTS pin...
Executing action: monitor
Serial port /dev/ttyUSB1
Connecting....
Detecting chip type... ESP32
Running idf_monitor in directory /home/ubuntu/src/repos/P127/nvs_set_blob_leak
Executing "/home/ubuntu/.espressif/python_env/idf4.3_py3.8_env/bin/python /home/ubuntu/esp/esp-idf-v4.3.2/tools/idf_monitor.py -p /dev/ttyUSB1 -b 115200 --toolchain-prefix xtensa-esp32-elf- /home/ubuntu/src/repos/P127/nvs_set_blob_leak/build/nvs-rw-value.elf -m '/home/ubuntu/.espressif/python_env/idf4.3_py3.8_env/bin/python' '/home/ubuntu/esp/esp-idf-v4.3.2/tools/idf.py'"...
--- idf_monitor on /dev/ttyUSB1 115200 ---
--- Quit: Ctrl+] | Menu: Ctrl+T | Help: Ctrl+T followed by Ctrl+H ---
ets Jul 29 2019 12:21:46
rst:0x1 (POWERON_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:2
load:0x3fff0030,len:7412
load:0x40078000,len:14912
ho 0 tail 12 room 4
load:0x40080400,len:3688
0x40080400: _init at ??:?
entry 0x4008067c
I (29) boot: ESP-IDF v4.3.2 2nd stage bootloader
I (29) boot: compile time 10:46:25
I (29) boot: chip revision: 3
I (32) boot_comm: chip revision: 3, min. bootloader chip revision: 0
I (39) boot.esp32: SPI Speed      : 40MHz
I (44) boot.esp32: SPI Mode       : DIO
I (48) boot.esp32: SPI Flash Size : 2MB
I (53) boot: Enabling RNG early entropy source...
I (58) boot: Partition Table:
I (62) boot: ## Label            Usage          Type ST Offset   Length
I (69) boot:  0 nvs              WiFi data        01 02 00009000 00006000
I (76) boot:  1 phy_init         RF data          01 01 0000f000 00001000
I (84) boot:  2 factory          factory app      00 00 00010000 00100000
I (91) boot: End of partition table
I (96) boot_comm: chip revision: 3, min. application chip revision: 0
I (103) esp_image: segment 0: paddr=00010020 vaddr=3f400020 size=19d5ch (105820) map
I (150) esp_image: segment 1: paddr=00029d84 vaddr=3ffb0000 size=029e4h ( 10724) load
I (154) esp_image: segment 2: paddr=0002c770 vaddr=40080000 size=038a8h ( 14504) load
I (161) esp_image: segment 3: paddr=00030020 vaddr=400d0020 size=40508h (263432) map
I (259) esp_image: segment 4: paddr=00070530 vaddr=400838a8 size=086c0h ( 34496) load
I (274) esp_image: segment 5: paddr=00078bf8 vaddr=50000000 size=00010h (    16) load
I (280) boot: Loaded app from partition at offset 0x10000
I (280) boot: Disabling RNG early entropy source...
I (294) cpu_start: Pro cpu up.
I (294) cpu_start: Starting app cpu, entry point is 0x40081214
0x40081214: call_start_cpu1 at /home/ubuntu/esp/esp-idf-v4.3.2/components/esp_system/port/cpu_start.c:150
I (0) cpu_start: App cpu up.
I (308) cpu_start: Pro cpu start user code
I (308) cpu_start: cpu freq: 160000000
I (308) cpu_start: Application information:
I (313) cpu_start: Project name:     nvs-rw-value
I (318) cpu_start: App version:      1
I (322) cpu_start: Compile time:     Jan 26 2022 10:46:22
I (329) cpu_start: ELF file SHA256:  4162bd82d743830e...
I (334) cpu_start: ESP-IDF:          v4.3.2
I (340) heap_init: Initializing. RAM available for dynamic allocation:
I (347) heap_init: At 3FFAE6E0 len 00001920 (6 KiB): DRAM
I (353) heap_init: At 3FFB4930 len 0002B6D0 (173 KiB): DRAM
I (359) heap_init: At 3FFE0440 len 00003AE0 (14 KiB): D/IRAM
I (365) heap_init: At 3FFE4350 len 0001BCB0 (111 KiB): D/IRAM
I (372) heap_init: At 4008BF68 len 00014098 (80 KiB): IRAM
I (379) spi_flash: detected chip: generic
I (383) spi_flash: flash io: dio
W (387) spi_flash: Detected size(16384k) larger than the size in the binary image header(2048k). Using the size in the binary image header.
I (403) cpu_start: Starting scheduler on PRO CPU.
I (0) cpu_start: Starting scheduler on APP CPU.
I (411) main: START, free heap size: 286400
I (441) main: size: 10000
I (471) main: set blob @0, error = 0, error_name = ESP_OK, heap = 265992
I (511) main: get blob @0, error = 0, error_name = ESP_OK, heap = 265992
I (511) main: START, free heap size: 286400
I (511) main: STOP, free heap size: 286032
I (521) main: START - STOP, memory diff: 368
2nd run:
Chip is ESP32-D0WD-V3 (revision 3)
Features: WiFi, BT, Dual Core, 240MHz, VRef calibration in efuse, Coding Scheme None
Crystal is 40MHz
MAC: 34:ab:95:5d:4e:dc
Uploading stub...
Running stub...
Stub running...
Changing baud rate to 460800
Changed.
Configuring flash size...
Flash will be erased from 0x00008000 to 0x00008fff...
Flash will be erased from 0x00001000 to 0x00007fff...
Flash will be erased from 0x00010000 to 0x00078fff...
Compressed 3072 bytes to 103...
Writing at 0x00008000... (100 %)
Wrote 3072 bytes (103 compressed) at 0x00008000 in 0.0 seconds (effective 512.6 kbit/s)...
Hash of data verified.
Compressed 26096 bytes to 16006...
Writing at 0x00001000... (100 %)
Wrote 26096 bytes (16006 compressed) at 0x00001000 in 0.7 seconds (effective 296.5 kbit/s)...
Hash of data verified.
Compressed 429104 bytes to 209100...
Writing at 0x00010000... (7 %)
Writing at 0x0001af5a... (15 %)
Writing at 0x0002d8b9... (23 %)
Writing at 0x000334f4... (30 %)
Writing at 0x00038aa6... (38 %)
Writing at 0x0003ee99... (46 %)
Writing at 0x00046cd7... (53 %)
Writing at 0x0004e959... (61 %)
Writing at 0x00055ec0... (69 %)
Writing at 0x0005c80d... (76 %)
Writing at 0x00064315... (84 %)
Writing at 0x0006d822... (92 %)
Writing at 0x0007425d... (100 %)
Wrote 429104 bytes (209100 compressed) at 0x00010000 in 5.1 seconds (effective 674.7 kbit/s)...
Hash of data verified.
Leaving...
Hard resetting via RTS pin...
Executing action: monitor
Serial port /dev/ttyUSB1
Connecting.......
Detecting chip type... ESP32
Running idf_monitor in directory /home/ubuntu/src/repos/P127/nvs_set_blob_leak
Executing "/home/ubuntu/.espressif/python_env/idf4.3_py3.8_env/bin/python /home/ubuntu/esp/esp-idf-v4.3.2/tools/idf_monitor.py -p /dev/ttyUSB1 -b 115200 --toolchain-prefix xtensa-esp32-elf- /home/ubuntu/src/repos/P127/nvs_set_blob_leak/build/nvs-rw-value.elf -m '/home/ubuntu/.espressif/python_env/idf4.3_py3.8_env/bin/python' '/home/ubuntu/esp/esp-idf-v4.3.2/tools/idf.py'"...
--- idf_monitor on /dev/ttyUSB1 115200 ---
--- Quit: Ctrl+] | Menu: Ctrl+T | Help: Ctrl+T followed by Ctrl+H ---
ets Jul 29 2019 12:21:46
rst:0x1 (POWERON_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:2
load:0x3fff0030,len:7412
load:0x40078000,len:14912
ho 0 tail 12 room 4
load:0x40080400,len:3688
0x40080400: _init at ??:?
entry 0x4008067c
I (29) boot: ESP-IDF v4.3.2 2nd stage bootloader
I (29) boot: compile time 10:46:25
I (29) boot: chip revision: 3
I (32) boot_comm: chip revision: 3, min. bootloader chip revision: 0
I (39) boot.esp32: SPI Speed      : 40MHz
I (44) boot.esp32: SPI Mode       : DIO
I (48) boot.esp32: SPI Flash Size : 2MB
I (53) boot: Enabling RNG early entropy source...
I (58) boot: Partition Table:
I (62) boot: ## Label            Usage          Type ST Offset   Length
I (69) boot:  0 nvs              WiFi data        01 02 00009000 00006000
I (76) boot:  1 phy_init         RF data          01 01 0000f000 00001000
I (84) boot:  2 factory          factory app      00 00 00010000 00100000
I (91) boot: End of partition table
I (96) boot_comm: chip revision: 3, min. application chip revision: 0
I (103) esp_image: segment 0: paddr=00010020 vaddr=3f400020 size=19d5ch (105820) map
I (150) esp_image: segment 1: paddr=00029d84 vaddr=3ffb0000 size=029e4h ( 10724) load
I (154) esp_image: segment 2: paddr=0002c770 vaddr=40080000 size=038a8h ( 14504) load
I (161) esp_image: segment 3: paddr=00030020 vaddr=400d0020 size=40508h (263432) map
I (259) esp_image: segment 4: paddr=00070530 vaddr=400838a8 size=086c0h ( 34496) load
I (274) esp_image: segment 5: paddr=00078bf8 vaddr=50000000 size=00010h (    16) load
I (280) boot: Loaded app from partition at offset 0x10000
I (280) boot: Disabling RNG early entropy source...
I (294) cpu_start: Pro cpu up.
I (294) cpu_start: Starting app cpu, entry point is 0x40081214
0x40081214: call_start_cpu1 at /home/ubuntu/esp/esp-idf-v4.3.2/components/esp_system/port/cpu_start.c:150
I (0) cpu_start: App cpu up.
I (308) cpu_start: Pro cpu start user code
I (308) cpu_start: cpu freq: 160000000
I (308) cpu_start: Application information:
I (313) cpu_start: Project name:     nvs-rw-value
I (318) cpu_start: App version:      1
I (322) cpu_start: Compile time:     Jan 26 2022 10:46:22
I (329) cpu_start: ELF file SHA256:  4162bd82d743830e...
I (334) cpu_start: ESP-IDF:          v4.3.2
I (340) heap_init: Initializing. RAM available for dynamic allocation:
I (347) heap_init: At 3FFAE6E0 len 00001920 (6 KiB): DRAM
I (353) heap_init: At 3FFB4930 len 0002B6D0 (173 KiB): DRAM
I (359) heap_init: At 3FFE0440 len 00003AE0 (14 KiB): D/IRAM
I (365) heap_init: At 3FFE4350 len 0001BCB0 (111 KiB): D/IRAM
I (372) heap_init: At 4008BF68 len 00014098 (80 KiB): IRAM
I (379) spi_flash: detected chip: generic
I (383) spi_flash: flash io: dio
W (387) spi_flash: Detected size(16384k) larger than the size in the binary image header(2048k). Using the size in the binary image header.
I (403) cpu_start: Starting scheduler on PRO CPU.
I (0) cpu_start: Starting scheduler on APP CPU.
I (411) main: START, free heap size: 286400
I (431) main: size: 10000
I (471) main: set blob @0, error = 0, error_name = ESP_OK, heap = 264880
I (511) main: get blob @0, error = 0, error_name = ESP_OK, heap = 264880
I (511) main: START, free heap size: 286400
I (521) main: STOP, free heap size: 284920
I (521) main: START - STOP, memory diff: 1480

@hkbora Thanks, we'll take a look at this issue!
Please keep in mind that there are holidays in Shanghai due to Chinese New Year, so the work on the issue might be slightly delayed.

Hello,
is there any update in this case?
Regards Hannes

Hi,
i recently got the same issue. Are there any updates yet?
Regards, Bene

Hi @hkbora Sorry for the really long response time!
Are you sure the memory leak comes from the NVS set/get blob functions? I moved the memory tracking functions directly around the nvs_set/get_blob() functions and got only 80 bytes "leak". Then I removed the calls to makeFileName() which allocate a string out of the area and now there is no leak at all.
Furthermore, the nvs_flash_init() call is in between the memory heap size measurement without any call to nvs_flash_deinit(). nvs_flash_init() will allocate heap memory for internal data structures. This is expected.
Btw., I would also not recommend to use the (non-trivial) return value of a function like this: nvs_get_blob(nvsHandle, makeFileName(i).c_str(), buffer2, &length);. I'm not sure if the compiler is able to always detect that some part of the return value of makeFileName() (in this case the internal buffer via .c_str()) will be used later.

@benschmoo Could you please describe the issue in more detail and post some code here? How did you measure the memory leak?

@hkbora @benschmoo Are you still able to reproduce memory leaks when setting NVS blobs or can we close this issue?

@hkbora We'll close this issue. If you find that the problem still persists even when measuring only around nvs_set_blob(), feel free to re-open the issue.


typographic switch

Hey, I'm using your markdown compiler for a while and want to say thank you for it!
 That’s why I’m wondering will you prefer to delegate typography to 3rd party packages and concentrate marked’s development only on parsing and compiling?
if no, it's fine, I understand. If yes, check out this pull-request and feel free to comment and ask me anything. Will look forward for your response.
PS. My origin idea of this pull-request was that compiler should not be responsible for typography, it should do well parsing and compiling and what do you think?

hey, hey =) is anybody here? :ghost:

polite ping =)

@chjj is project dead and deprecated?

@matmuchrapna Project is probably dead, given the number of open issues and pull requests.

If you want to pull those modules' code into marked, I'll reconsider it, but I really don't want marked to have that many dependencies since it should be used easily in the browser as well.

All the deps are one-liners, it’s not big deal, it’s even not small deal

on the other side, you will have benefit in form of delegating typography to 3rd party plugins

@iamstarkov, marked has no dependencies for a reason. It shouldn't require a build for the browser. A lot of people just <script src="raw.github.com/.../marked.js> in their html. There shouldn't be any requires. If they're just one-liners that's great. Let's include them inline.

didn’t about how consumers are using marked, seems reasonable.

If they're just one-liners that's great. Let's include them inline.

okay, it will work. how to deal with responsibility delegation here?


Nice project

Hi,
I just ran across your project, I did make something similar but then just to convert HTML to PDF.
You can find my project over here  --> https://github.com/Sicos1977/ChromeHtmlToPdf
My goal was just to make something that could replace wkHtmlToPdf
Greetings,
Kees van Spelde

That's cool Kees! I will definitely take a look at that. I started Puppeteer Sharp for the same reason: wkHtmlToPdf 😝 . But I got excited about the puppeteer project and here I am.

I like the way how you have made everything async and the way you handle the communication with Chrome (with the callback system). I also thought about making something like that but decided it was a little bit overkill because I just wanted to do HTML to PDF conversions. It was also harder to keep everything synchronized that way.

That was quite a challenge, but to be honest, I just followed the original Puppeteer idea.
I want to take a look at your code because there are some many messages going back and forward between the client and chromium itself that I like to know what's the minimum communication needed to print a PDF file.

I borrowed some of your code .... the connection class... hope you don't mind.

No worries @Sicos1977, next beer is on you.

:-) 👍

Where you from if I may ask? Netherlands over here...

The reason why I'm trying out your connection class is because I used supersocket and websocket from nuGet but that one always fails after a while. So I'm trying to figure out if it is an Chrome thinghie or that component.


start LCD in background or as a service

Hi, I wonder is there a way to start the LCD in the background or as a service at boot? Running it in the foreground is a bit annoying...

Hey @rvencu
Apologies for the delay, I have indeed achieved this with a modified service file found at /usr/lib/systemd/system/LCDd.service. Here is how I have it set up:
[Unit]
Description=LCD display daemon
Documentation=man:LCDd(8) http://www.lcdproc.org/

[Service]
User=root
ExecStartPre=bash -c "echo \"255\" > /sys/class/hwmon/hwmon1/pwm3"
ExecStart=/usr/sbin/LCDd -s 1 -f -c /etc/LCDd.conf
ExecStartPost=bash -c "sleep 5 && lcdproc C P M U S K"
ExecStop=bash -c "echo \"128\" > /sys/class/hwmon/hwmon1/pwm3"

[Install]
WantedBy=multi-user.target

This will bring the LCD brightness to 100% and then start lcdproc with a slight delay of 5 seconds in order to allow LCDd to fully start.
When the service is stopped, LCDd stops which in turn kills lcdproc. In addition, it also sets the LCD brightness to 50% which is approx the default after boot.
Please see the lcdproc help menu for info on what lcdproc C P M U S K means, as the characters represent the rotating screens I have selected for display on my system

Great !

FYI if you are running Debian 11, you will need to make sure that you use: 'apt-get install lcdproc lcdproc-extra-drivers' to ensure that you have the extra drivers for hd44780


Create a test for embedded object

We have test for embedded as array (one Author has many Book)
Need to have test for embedded as an object.
Computer <-> Brand. Brand as an embedded of Computer and one computer has one brand.
const computer = {
name: 'Macbook',
brand: {
name: 'Apple'
}
};
Test cases:

Create computer with / without brand
Should not generate crud for brand inside a computer (this will need some actual code not test)
Able to remove brand by set value to null

Remove this line after done     // TODO: Write test for this case and remove "istanbul ignore else"

Similar: https://github.com/dryerjs/dryerjs/blob/36a333ca6b483c717630fb14c029cf5466e7c107/src/e2e/embedded/object-embedded.e2e.spec.ts

https://github.com/dryerjs/dryerjs/pull/130


Update ResNet Architecture

I found some inconsistencies in the implementation of the resnet architecture with its original version. There are 2 types of resnet building blocks: BasicBlock and BottleneckBlock. ResNet1d18 and ResNet1d34 architectures are built from BasicBlock and BottleneckBlock is used for ResNet1d50, ResNet1d101 and ResNet1d152.
In the current version of the project, only 1 block ecglib.models.architectures.resnet1d.ResidualBlock1d is implemented. From its implementation it follows that this is BottleneckBlock.
So, we initialize resnet1d18 with BottleneckBlock which differs from the original implementation.
I propose to implement basic blocks in their classical sense, using https://github.com/hsd1503/resnet1d as a basis

Commits 1ee569add4049f94a966462c81714765aae0ef3c,<PHONE_NUMBER>84201ef6bed252fd8df3c1ab484955, d349e50d553811d1664ddca8696a0835411ad6fd in issue5 fixed the problems.
Due to changes in ResNet architecture, the weights of pre-trained models must be updated in the new release


Suggest renaming GREVI pseduo-instructions to mirror ZIP/UNZIP

The pseudo-instructions defined for GREVI (BREV.P, PSWAP.N, etc.) are like the ZIP and UNZIP pseudo-instructions in that they move "units" of a power-of-two size within "components" of a larger power-of-two size.  For the ZIP/UNZIP pseudo-instructions, there is a simple pattern of
ZIP<unit-size><component-suffix>
UNZIP<unit-size><component-suffix>

In this system, <unit-size> is either empty, meaning 1 bit, or is a decimal number of bits ("2", "4", "8", or "16"); and <component-suffix> is either empty, meaning the full register size (XLEN), or is one of the suffixes '.N', '.B', '.H', or '.W'.
It would aid comprehension if the GREVI pseudo-instructions followed the same system.  I propose
REV<unit-size><component-suffix>

This would rename all of the GREVI pseudo-instructions as follows:
BREV.P  -> REV.P
PSWAP.N -> REV2.N
BREV.N  -> REV.N
NSWAP.B -> REV4.B
PSWAP.B -> REV2.B
BREV.B  -> REV.B
BSWAP.H -> REV8.H
NSWAP.H -> REV4.H
PSWAP.H -> REV2.H
BREV.H  -> REV.H
HSWAP.W -> REV16.W
BSWAP.W -> REV8.W
NSWAP.W -> REV4.W
PSWAP.W -> REV2.W
BREV.W  -> REV.W
WSWAP   -> REV32
HSWAP   -> REV16
BSWAP   -> REV8
NSWAP   -> REV4
PSWAP   -> REV2
BREV    -> REV

If the name "BSWAP" is so entrenched that we feel we must have this mnemonic, then BSWAP can be made another pseudo-instruction alias for REV8.

It would aid comprehension if the GREVI pseudo-instructions followed the same system.

That must be the first time some says anything along the lines of "if only GREV would be as easy to understand as ZIP". Usually it's the other ways around..  :)

If the name "BSWAP" is so entrenched that we feel we must have this mnemonic, then BSWAP can be made another pseudo-instruction alias for REV8.

That's a very complicated thing for me to assess, because in the end naming things is about aesthetics, and I'm already so used the the existing naming scheme that everything new feels alien..
I'll raise the issue on the mailing list.

REV<unit-size><component-suffix>

I personally would read REV8 as "Revision 8", which I would find a bit confusing.
But I'm not opposed to to the <unit-size><component-suffix> approach.
However, tbh, I'm not even sure if there should be that many pseudo ops for all the different GREV/SHFL/UNSHFL control values. Originally I've just added them because I though it might make it easier to understand what kind of operations those instructions could perform.
The most often used ones are definitely BSWAP (-8), BREV (-1), ZIP (-1), and UNZIP (-1), followed by BREV.P (1) and ZIP.N (1). Maybe a better solution would be to find good descriptive names for BREV.P and ZIP.N and not bother with other pseudo-ops? Idk..
The spec document would certainly be improved if it contained some information on how to come up with the GREVI/SHFLI/UNSHFLI control values, so nobody needs to look them up in a table.
I mean on RV32, GREVI rd, rs, 16 is equivalent to RORI rd, rs, 16. The former has a special name, HSWAP, but giving a name to the latter would be a bit ridiculous. And I think the reason is that most programmers have a very good understanding of what RORI rd, rs, 16 does on a 32-bit machine, but in GREVI rd, rs, 16 the 16 is just a magic number.

or is one of the suffixes '.N', '.B', '.H', or '.W'.

Or '.P' or course. :) This suffix doesn't exist for shuffle because you need at least four elements for a shuffle, but reversal works with two elements as well.

I've changed the grevi pseudo-instruction naming scheme to revN.S in the latest draft spec.


any way to build train and save pd file on Android?

It seems no API of C++ to train and save graph,is there any way to run python API of Tensroflow on Android?

Is the C++ API described here [1] not sufficient to you for some reason?
[1] https://www.tensorflow.org/versions/r0.7/api_docs/cc/index.html


Dropped Inputs On Update 0.6.3

I'm noticing multiple different boards with the new update 0.6.3 is experiencing dropped inputs. Tested On TheTrain V4 , ArcadePCBs Type C Board and My Embedded Mini All-button Controller. Going back to 0.6.2 fixes this on each board. Each board was flash nuked before update. Quickly Pressing a button will show the issue.

Yes, I have the same problem 0.6.3

Hi @troytroy22 and @fangxiang-gan ,
We have rolled back v0.6.3 due to this issue as well as a few other issues.
We will re-release when we are able to resolve those issues.
Thank you for the report.


How to use verifier crate?

I am trying to use the stand-alone (verifier)[https://github.com/0xPolygonMiden/miden-vm/tree/next/verifier], but I am having trouble creating all the inputs to the verify function.  The miden-verifier crate doesn't seem to export eg ProgramInfo?  Are we supposed to depend on more crates, instead of just the stand-alone one?
Could we perhaps put a worked example somewhere?  With Rust source and Cargo.toml etc?
Thanks for your help!

My current attempt looks roughly like this (just to get it to compile):
[package]
name = "verify"
version = "0.1.0"
edition = "2021"

[dependencies]

miden-verifier = { git = "https://github.com/0xPolygonMiden/miden-vm.git", branch = "next" }
miden = { git = "https://github.com/0xPolygonMiden/miden-vm.git", branch = "next" }

use miden::utils::{Deserializable, SliceReader};
use miden::{Digest, Kernel, ProgramInfo, StackInputs, StackOutputs, StarkProof};
use miden_verifier::verify;

fn main() {
    let mut program_hash_slice = SliceReader::new(&[]);
    let digest = Digest::read_from(&mut program_hash_slice)
        .unwrap();

    let kernel: Kernel = Kernel::new(&[]);
    let program_info = ProgramInfo::new(digest, kernel);
    let stack_inputs: StackInputs = StackInputs::new(vec![]);
    let stack_outputs: StackOutputs = StackOutputs::new(vec![], vec![]);
    let proof = StarkProof::from_bytes(&[]).unwrap();
    verify(program_info, stack_inputs, stack_outputs, proof).unwrap();
}

Yeah - that's an omission. midne-verifier crate should re-export all relevant structs.

OK, thanks!  I guess we should make a test to ensure this in future?

Closed by #683.


fix builds in privilege restricted environments like builder

Attempts to fix Builder builds currently failing because they occur in a privilege restricted environment and cannot change owner or group based on the archive metadata.
This should introduce a new behavior where owner/group archive metadata is ignored.
Discussion: https://github.com/habitat-sh/builder/issues/365
Signed-off-by: Jeremy J. Miller<EMAIL_ADDRESS>

@irvingpop I agree, I think your idea will move us forward so I've gone ahead and added the customization of the nokogiri gem build.


Need to write some scripts to setup AWS EKS to deploy the Litmus E2E components

Need to write AWS EKS setup script

Create/Delete of Node Group.
Create/Delete of Cluster

Able to run all litmus experiment (openebs, generic) in AWS EKS.

@rajdas98 If we will use onperm for the target cluster then why do we need to setup EKS for Litmus components?

As of now, Onprem is only to run the gitlab runners

The target cluster is set up in an on-prem cluster.
PR for ref.
generic experiment pipeline - https://github.com/litmuschaos/litmus-e2e/pull/137
openebs experiment pipeline - https://github.com/litmuschaos/litmus-e2e/pull/138

@rajdas98 Can we close this issue for now?

Available here: https://github.com/litmuschaos/test-tools/pull/183


Recaptcha V2 just spins

Issue description
I have a problem with recaptcha v2. It has stopped working without having changed anything. When checking, it only rotates and does not verify.
Environment

OS name and version: APACHE
PHP version: 5.3.29
Web server name and version: Linux 2.6.32-642.1.1.el6.x86_64
google/recaptcha version: V2
Browser name and version: ALL

Reproducing the issue

URL (optional): https://www.autohispania.com/contact_us.php

This should be conflict with mootools - https://stackoverflow.com/questions/77473778/google-recaptcha-keeps-on-loading
Compatability bind, that could have worked earlier (https://github.com/google/recaptcha/issues/374#issuecomment-729881795) also stop working.

Thanks for your answer!
how can i solve this????? I don't found the solution :-(

What version of Mootools do you use? 1.6.0 resolves some Array.from related issues.

I can confirm problem on mootools 1.4.2

the problem happens with both 1.4.2 and 1.6.
I have managed to solve the problem by not loading mootools in the urls where the captcha loads. It is the only radical way by which I have been able to do it.

1.6.0 without comp. layer is working for me

The problematic code in compatibility mode is:
/<1.5compat>/
Array.from = Array.convert;
/</1.5compat>/
and in 1.5.1 and earlier version Array.from implementation which doesn't handle objects like MapIterate and Set.

For me it's worked in template index.php after <jdoc:include type="head"/> :
<?php unset($this->_scripts[$this->baseurl.'/media/system/js/mootools-core.js']); ?>

For me it's worked in template index.php after <jdoc:include type="head"/> : <?php unset($this->_scripts[$this->baseurl.'/media/system/js/mootools-core.js']); ?>

it removes core of mootools which can be used somewhere in your site. for example in my case it is used in virtuemart users/orders pages. removing it may lead to other issues.

1.6.0 without comp. layer is working for me

for me it resolves problem with recaptcha but brings problems in admin part of site (e.g. on pages with availability to sort entities: articles, orders, etc). enabling compat layer even with fix form #374 brokes recaptcha.

For me it's worked in template index.php after <jdoc:include type="head"/> : <?php unset($this->_scripts[$this->baseurl.'/media/system/js/mootools-core.js']); ?>

it removes core of mootools which can be used somewhere in your site. for example in my case it is used in virtuemart users/orders pages. removing it may lead to other issues.

I agree with you. This leads to other problems on the site. Spoilers and sliders break

Unfortunately, this is the only option currently used.
_scripts[$this->baseurl.'/media/system/js/mootools-core.js']);}
 ?>

Using @sleemanj's original bind compatibility approach and the Array.from hint from @dimov-cz I've come up with the following which seems to be working for me (mootools 1.4.5):
// Add this BEFORE mootools is loaded

Function.prototype._nativeBind = Function.prototype.bind;
Array._nativeFrom = Array.from;

// Add this AFTER mootools is loaded

var isRecaptcha = function() {
	var stack = new Error().stack;
	if (!stack) {
		try {
			throw new Error();
		} catch (e) {
			stack = e.stack;
		}
	}
	return stack.match(/recaptcha/);
}

Function.prototype._mootoolsBind = Function.prototype.bind;
Array._mootoolsFrom = Array.from;

Function.prototype.bind = function (...args) {
	return isRecaptcha() ? this._nativeBind(...args) : this._mootoolsBind(...args);
};
Array.from = function (...args) {
	return isRecaptcha() ? this._nativeFrom(...args) : this._mootoolsFrom(...args);
};

I've not tested this thoroughly yet and there could be issues with it! Improvements welcome.

Okay, I have a much elegant solution for this....
Change this part of code
Array.from = function(item){ 	if (item == null) return []; 	return (Type.isEnumerable(item) && typeof item != 'string') ? (typeOf(item) == 'array') ? item : slice.call(item) : [item]; };
with this
Array.from = function(item){ 	if(new Error().stack.indexOf('recaptcha') >= 0) return [].slice.call(item); 	if (item == null) return []; 	return (Type.isEnumerable(item) && typeof item != 'string') ? (typeOf(item) == 'array') ? item : slice.call(item) : [item]; };
I can upload patched files if anyone needs....

post the file if it works please

post the file if it works please

Edited and uploaded in thread above ;)

Does not work for Joomla version 3.10
Please look at the files of Joomla version 3.10
Please
Joomla3.10.zip

It was in the Joomla cache or in the browser cache. I cleaned both there and there. Works thanks!

thx all ;_)
pinta83-us (dev) dimov-cz (dev) SaintAnd-us (sql) jacksleight-us (j.s) AlexSmetaninGB-ru (dev, bug report)

thx all ;_) pinta83-us (dev) dimov-cz (dev) SaintAnd-us (sql) jacksleight-us (j.s) AlexSmetaninGB-ru (dev, bug report)

pinta83-WO (dev)
dimov-cz (dev)
SaintAnd- ru (sql) Andrew Gospodin
jacksleight-United Kingdom (j.s) Jack Sleight
AlexSmetaninGB-ru (dev, bug report) AlexSmetanin

Note that you may need to clear the browser cache for this to work.

This works without having to run a script before mootools is loaded:
(function fixMooToolsAndRecaptchaMapsIssueIffy() {
// Add this AFTER mootools is loaded

// restore Native Array.from by getting the native implemenation from a new frame.
var frame = document.createElement('iframe');
frame.sandbox = 'allow-same-origin';
document.body.appendChild(frame);
Array._nativeFrom = frame.contentWindow.Array.from
Function.prototype._nativeBind= frame.contentWindow.Function.prototype.bind
frame.remove();
var isRecaptchaOrMaps = function() {
	var stack = new Error().stack;
	if (!stack) {
		try {
			throw new Error();
		} catch (e) {
			stack = e.stack;
		}
	}
	return stack.match(/recaptcha/) || stack.match(/maps\.google\.com/);
}

Function.prototype._mootoolsBind = Function.prototype.bind;
Array._mootoolsFrom = Array.from;

Function.prototype.bind = function (...args) {
	return isRecaptchaOrMaps () ? this._nativeBind(...args) : this._mootoolsBind(...args);
};
Array.from = function (...args) {
	return isRecaptchaOrMaps () ? this._nativeFrom(...args) : this._mootoolsFrom(...args);
};
})();


Fix gem requires

Add require_relative to expose bot and shared storage classes
Update README

Pull Request Test Coverage Report for Build<PHONE_NUMBER>3
Details

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 100.0%

Totals

Change from base Build<PHONE_NUMBER>7:
0.0%

Covered Lines:
387

Relevant Lines:
387

💛  - Coveralls


Create the galaxy class

In this class, the necessary methods that are previous to the dynamic decomposition have to be added later.

This closes with #40


Fixed base time used to calculate the triggering time of the first run

@yuchaoran2011 can you rebuild and push the image tagged lightbend/sparkoperator:2.3.1 used by hte Helm Charts? This contains a bug fix and a change that makes the PR for fixing the namespace in the chart repo unnecessary.

@liyinan926 Sounds good. Done.

Thanks! @yuchaoran2011.


Artificial Neural Networks

Hey DCP participants, good to see you here
This issue will helps readers in giving all the guidance that one needs to learn about Introduction to Artificial Neural Networks. Tutorial to Artificial Neural Networks and how it's applied using sample code.
"Project Title" should be the "Issue Title" mentioned here.
If you like to work on this issue, follow the given guidelines for code as well as for the README. You have to be as elaborative as possible. Make sure you also maintain the project structure provided. Just comment and get it assigned. Issues are alloted on FCFS basis.
The main intention of this repo is to educate beginners with all the concepts related to datascience so that they could feel confident to apply these things learnt in practical exposure.
Enjoy your open source journey ahead. 😎

@prathimacode-hub , can you please assign me this

Define You:

[x] Hacktoberfest2021 Participant
[ ] Contributor

Is your feature request related to a problem? Please describe.

I would like to contribute to ANN with Feature Extraction using Homer Bart dataset which I will upload.

Describe the solution you'd like...
Steps:

Import Dataset and Libraries
Train Test Split
Build Model
Compile And Train Model
Evaluate on test data
Save Model
Load Model
Test with single Image

@prathimacode-hub
I would love to contribute as a participant of hacktoberfest2021.
I will model using ANN.
please assign this to me

Kindly add proper issue template. @tanvideshmukh29

@avinash-218 one after other.

@prathimacode-hub
I would love to contribute as a participant of hacktoberfest2021.
please assign this to me

Any issues assigned to you. @tanvideshmukh29

@prathimacode-hub  Can I start working on it mam.


Command key

Is there any support to trigger the command key on Mac?
I can't find anything about that in the documentation.
Thanks!

Try using the key string "META"

That does work!
Thanks for your help!


fix indentation on annotation_typing docs

annotation_typing is currently indented in a way which I don't think is intentional.

Thanks


Improve performance by 500% using built-in javascript methods

Hey there I noticed this code is super inefficient and can be improved by using native javascript functions. Here's a benchmark for the improvements:
const originalIP = function(n) {
  return toString.call(n) === "[object Number]" && n > 0;
};

const nativeIP = n => Math.sign(n) > 0;

const lim = 100000000;

console.time("string");
for (let i = 0; i < lim; i++) {
  originalIP(i);
}
console.timeEnd("string");

console.time("native");
for (let i = 0; i < lim; i++) {
  nativeIP(i);
}
console.timeEnd("native");

And the output(on my machine):
$ node bench.js
string: 4178.983ms
native: 767.517ms

Also your tests are wrong, if you're following JS standards than '1' should return true.

your tests are wrong

No. Keep the existing tests passing.

@shinnn in that case you should still modify the function to not do weird string testing and make use of Math.sign.

@btnwtn Learn Git and you can see the intent of the current code.


[Multiverse-Core] "Multiverse-Core v4.3.1-b861" has registered a listener for org.bukkit.event.entity.EntityCreatePortalEvent on method "public void com.onarandombox.MultiverseCore.listeners.MVPortalListener.entityPortalCreate(org.bukkit.event.entity.EntityCreatePortalEvent)", but the event is Deprecated. "Server performance will be affected"; please notify the authors [dumptruckman, Rigby, fernferret, lithium3141, main--].[Bug]:

/mv version -p output
https://paste.gg/94b10dde291f4e2b94154734c56611e4
Server logs
https://mclo.gs/4ca0kso
Server Version
[15:48:07 INFO]: This server is running Paper version git-Paper-386 (MC: 1.19.3) (Implementing API version 1.19.3-R0.1-SNAPSHOT) (Git: 4da844f)

Bug Description
Was reading through the logs and seen the warning to report to devs
Steps to reproduce
Started server
Agreements

[X] I have searched for and ensured there isn't already an open or resolved issue(s) regarding this.
[X] I was able to reproduce my issue on a freshly setup and up-to-date server with the latest version of Multiverse plugins with no other plugins and with no kinds of other server or client mods.

.. and right on the line after this warning message, you see this:
[15:30:07 INFO]: [Multiverse-Core] §aWe are aware of the warning about the deprecated event. There is no alternative that allows us to do what we need to do and performance impact is negligible. It is safe to ignore.

This event does not have a noticeable performance impact with the way that Multiverse uses it. This is also addressed in the Discord, under #deprecated-event. MV staff have been aware of it, and we just have to live with it for right now until a better solution comes around.

#2000


Postgres fixes

This PR includes the following updates:

Code changes for Postgres compatibility in order to address Issue #23
Added CircleCi testing for disabled vars
Updates to custom schema in dbt_project.yml and README
Package upgrade to v0.3.1

Before this PR is merged the dbt_fivetran_utils PR needs to be approved and merged for Postgres macro compatibility.

@fivetran-kristin @fivetran-jamie I was able to make appropriate updates to the zendesk__ticket_field_history model so the query does not exceed compute if a customer chose to include all (or most) fields within their variables. The changes I made are confined to the below models:

int_zendesk__field_history_pivot
int_zendesk__field_history_scd
zendesk__ticket_field_history

To help zone in on my changes and why I made them you can reference this Loom video where I go over the updates. Let me know if you have questions!


[Question] about account id in input

Hi all,
As an official document, we only need to create OU (step 1) and account for AFT management (step 2). After that, this tf module (step 3) will create the remaining accounts like log, audit, ... But in the example (https://github.com/aws-ia/terraform-aws-control_tower_account_factory/blob/main/examples/github%2Btf_oss/main.tf), I see that we need to input account id of these accounts. So where could I take these account id? This makes me really confused. Hope anyone could explain. Thanks.
Best regards,

Hi, the audit and log archive accounts are created automatically when you provision a Control Tower landing zone. You can find their account IDs in the Control Tower console from within your Control Tower management account (not the AFT management account).
https://docs.aws.amazon.com/controltower/latest/userguide/accounts.html#special-accounts


manage user session, ie wizard

Hi there.
Which proper way to manage user session with the library? I want something like wizard with inline_keyboard, i don't know how to track in which node current user is in.
for example:

bot shows select "enter name" or "enter number", for example user push "enter name" button
user type his name and send as usual message
then bot shows select "option1" or "option2", "back button"
and so on...

You can use redis or use an in memory map:
// pseudocode
const memStore = {
    userId: step (type int)
}

bot.on("message", msg => {
  if (msg.user.id in memStore) {
    // check step and send appropriate message or save result depending on step
    return
  }

   // new user send welcome message
})

Alternatively you can use forfuturellc/mau (unmaintained, but can do the job)


Function button doesn't work in Outlook 2016 desktop

When I click the function button nothing gets inserted, only a throbber appears above the "Send" button with a message saying "Add-in Command Demo is working on your Insert default message request".

Sorry to hear! This can happen for a number of reasons, but most commonly will happen if the code being executed hits an exception and fails to call event.completed(). Which button are you clicking to reproduce this, and have you modified the code at all?

The "Insert default message" button. I have not modified the code, simply cloned the repo and ran gulp serve-static.
Before testing with this demo project, I had also tried creating a new add-in project from within VS. This resulted in the same behavior, even when the function was directly in a <script> section in the head of the function file and did nothing but call event.completed().

Ah. I wonder if this is a problem with the SSL certificate used by the gulp web server. Can you open https://localhost:8443/AppCompose/Home/Home.html in a browser and see if you have any certificate trust warnings?

Just wanted to check if you were able to look into the SSL thing.

Sorry, I won't have time to check this until April 25.

No problem, just didn't want to leave you hanging.

Yes, I get a certificate trust warning. However, I have successfully built a custom pane Outlook add-in based off the VS project template which runs locally in IIS Express (port 44300). I have also tried creating a command add-in project from VS but the behavior is the same.

Outlook disables scripts and such if the cert isn't trusted. You'll need to trust the cert that the gulp-webserver uses: https://github.com/OfficeDev/generator-office/blob/master/docs/trust-self-signed-cert.md

That solved it. Thanks.


Badge sizes

Provide a general summary of the feature here
For the Magister SL-Badge recently a new version was published and the old one set to deprecated. In the new version, however, there are only two sizes.
🤔 Expected Behavior?
The smallest badge size (sm) is missing, which we used as indicators for i.e. new notifications.
😯 Current Behavior

💁 Possible Solution
Add an sm size badge to be used as indicator.
🔦 Context
The main purpose for us is indicators
💻 Examples
No response
🧢 Your Product/Team
Magister

@ftakuipers There still is a small version? See https://storybook.sanomalearning.design/?path=/story/components-badge--all

Hi, sorry stupid of me but I forgot to mention this issue is in Figma, not storybook.
https://www.figma.com/design/YZeBneflpJkX3KXSyvMrqP/Magister-Light-mode?node-id=2267-1529&t=q5RHi2pLETkFJ6bP-4

Hi Floor, we don't want to facilitate the small badge anymore in our design system due to accessibility issues. There can't be used any text or icons within the badge and that's not enough. It sounds like you want to use the badge more like an indicator, see this component in spectrum for example: https://opensource.adobe.com/spectrum-web-components/components/status-light/. Is this what you want? Please describe it or give an example of how you want to use it in combination with notifications, we probably need to create a new component for it.

Hi Danielle, that's good to know! Perhaps it is not necessary for you guys to create a new component for it, we just use it as an indicator sometimes.

@ftakuipers We would like to know where you are using it :) So we can better think about what course of actions we should take in the SLDS :)

Sure, we want to use it as an indicator of i.e. a new message/notification or an event in a calendar

@ftakuipers Hi Floor, do you have some time today to discuss the screenshots above?


How do I pass a value to markdown?

Clear and concise description of the problem
I want to be able to dynamically pass a value to markdown. What should I do? is there any way to let vue manipulate the frontmatter property?
我想要能够动态地传一个值进去给到markdown，请问我该怎么做，有什么方法能让vue操作frontmatter属性吗？
Suggested solution
It would be great to provide an entry to manipulate frontmatter attributes in vue3. If you already have it, can you write it in readme? thank you very much.
如果能提供一个在vue3里面操作frontmatter属性的入口就非常棒了，如果已经有了能麻烦写进readme吗，非常感谢
Alternative
No response
Additional context
No response
Validations

[X] Follow our Code of Conduct
[X] Read the Contributing Guide.
[X] Check that there isn't already an issue that request the same feature to avoid creating a duplicate.

Hi. I’ve created a pull request to add support for passing values to the Markdown component via props.
Please checkout this PR: #57


feat(db): implement BusinessProfileInterface for MockDb

Implement the missing implementation of MockDb for business profiles.
Closes #2039
Type of Change

[ ] Bugfix
[ ] New feature
[x] Enhancement
[ ] Refactoring
[ ] Dependency updates
[ ] Documentation
[ ] CI/CD

Description

Additional Changes

[ ] This PR modifies the API contract
[ ] This PR modifies the database schema
[ ] This PR modifies application configuration/environment variables

Motivation and Context

How did you test it?

Checklist

[x] I formatted the code cargo +nightly fmt --all
[x] I addressed lints thrown by cargo clippy
[x] I reviewed the submitted code
[ ] I added unit tests for my changes where possible
[ ] I added a CHANGELOG entry if applicable

I have addressed the suggestions.

Done. I have changed to use format!() for error messages.


Add experimental robolectric support

Part of #189
Closes #926

Currently I didn't find any good way to test this other than trying to run tests in my own projects, so IDK how to validate this idea.
Help wanted on this experimental approach

@sksamuel
I don't think there's a lot to discuss on this. I think you're very up-to-date on what this extension is about, so I'll merge it to allow a snapshot build for people to test it.

Cool
On Sat, 28 Sep 2019, 15:29 Leonardo Colman Lopes<EMAIL_ADDRESS>wrote:

Merged #1014 https://github.com/kotlintest/kotlintest/pull/1014 into
master.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/kotlintest/kotlintest/pull/1014?email_source=notifications&email_token=AAFVSGTTIQXGICFT5TNNDXTQL65CNA5CNFSM4I3ANFY2YY3PNVWWK3TUL52HS4DFWZEXG43VMVCXMZLOORHG65DJMZUWGYLUNFXW5KTDN5WW2ZLOORPWSZGOT4YLVFQ#event-2670770838,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAFVSGWRUFGRRXUG7ZTWYM3QL65CNANCNFSM4I3ANFYQ
.

@Kerooker , could you please give an example of how to use this extension?

Sure!

Create a ProjectConfig (guide here)
override the extensions method to include RobolectricExtension
Use the annotation RobolectricTest to any class that you need Robolectric support


Use newtypes to clarify Image structure in all places

Sure! You're right.

Do not forget do "git pull" in "main" branch before you create you PR branch plz


[Question] How can I select all text on console to copy it to a local file?

I want to copy all output text then copy to a local file to do searching/filtering purpose. How can I do that?
Currently the only way I can use is to use mouse to select text and scroll all the way top to down bottom of the console screen, then copy it by CTRL+C.
I've tried CTRL+A but it does not take any effect.
If possible, Search Box or Save Output button feature would be great

Use pipe to redirect it to a file, then send the file with lrzsz.


Error when running the tool

Hey , i am running this tool in windows 10
Go installed with version 1.13+
Error: open /etc/resolv.conf: The system cannot find the path specified.
Please help me resolving it , because this path is contained in linux.

Hi @Droidzzzio - Thanks for pointing out the issue! Windows compatibility will be added shortly in the next commit. The tool is still in BETA so your input is highly appreciated!

@Droidzzzio this should be fixed now!

Let me check for once....
Thanks for the reply .I will give the feedback ASAP
On Sun, 5 Apr, 2020, 11:14 pm Mzack9999<EMAIL_ADDRESS>wrote:

@Droidzzzio https://github.com/Droidzzzio this should be fixed now!
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/projectdiscovery/dnsprobe/issues/4#issuecomment-609454693,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AIIF3D2QNREPBD7MF3RDJXDRLC7OBANCNFSM4L76XIEA
.

i have checked and sorry to say but still it is not working and i am getting the same error, update done

2020/04/06 13:38:15 Error: open /etc/resolv.conf: The system cannot find the path specified.

C:\Users\MASTERCASE DF-500\go\src\github.com\projectdiscovery\dnsprobe>cat 1.txt | dnsprobe.exe
www.hackerone.com <IP_ADDRESS>
www.hackerone.com <IP_ADDRESS>
docs.hackerone.com <IP_ADDRESS>
docs.hackerone.com <IP_ADDRESS>
docs.hackerone.com <IP_ADDRESS>
docs.hackerone.com <IP_ADDRESS>

C:\Users\MASTERCASE DF-500\go\src\github.com\projectdiscovery\dnsprobe>cat 1.txt | dnsprobe.exe -r cname
docs.hackerone.com hacker0x01.github.io.

C:\Users\MASTERCASE DF-500\go\src\github.com\projectdiscovery\dnsprobe>

C:\Users\MASTERCASE DF-500\go\src\github.com\projectdiscovery\dnsprobe>go version
go version go1.13.6 windows/amd64

I can confirm this works for me on windows 10 @Droidzzzio @Mzack9999

@Droidzzzio I also confirm this is working on a fresh installation of Windows. I think that probably your local codebase isn't updated. I suggest to clone the repository again, or anyway ensure that the latest local git commit matches the latest of this repo. This is particularly true for https://github.com/projectdiscovery/retryabledns which is the library used by this tool. Let me know if you still meet any problem, I'd be glad to help. Thanks!

Thanks for the update and yeah I can assume where the problem lies ,
actually after installing it with go command and executing the next command
which is go build . Is creating a exe file of dnsprobe in the same
directory .
.
.and my gopath is already set in environment variables path
So the problem lying here is that whenever I am calling dnsprobe from any
directory it is picking up the go file of the main program rather than the
exe file of dnsprobe
.
So the simple solution is that if I change the directory of dnsprobe.exe or
if I call specifically dnsprobe.exe rather than dnsprobe then surely it
will work as expected .
I am totally relying on this perception although I will check once and let
you know ASAP
Thank you
On Mon, 6 Apr, 2020, 4:40 pm Mzack9999<EMAIL_ADDRESS>wrote:

@Droidzzzio https://github.com/Droidzzzio I also confirm this is
working on a fresh installation of Windows. I think that probably your
local codebase isn't updated. I suggest to clone the repository again, or
anyway ensure that the latest local git commit matches the latest of this
repo. This is particularly true for
https://github.com/projectdiscovery/retryabledns which is the library
used by this tool. Let me know if you still meet any problem, I'd be glad
to help. Thanks!
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/projectdiscovery/dnsprobe/issues/4#issuecomment-609729216,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AIIF3D2HIRDKR726WTHV2QTRLG2BBANCNFSM4L76XIEA
.

Thank You  for the guide, the tool is now absolutely working fine i guess the problem was with installing dnsprobe with the older version of git .. I updated git and then again installed it with go command and now the tool is running without any issue
thanks a lot, it was nice talking to you

Thanks for the feedback @Droidzzzio. Shortly the tool will be finalized and build automated. Don't hesitate to reach out if we can provide any help!


feat: add plot_ prefix back to plotting methods

Closes #211.
Summary of Changes
Now that plotting functionality is implemented as methods of Table and Column, it makes sense to group them together by prepending plot_ to the method names.

🦙 MegaLinter status: ✅ SUCCESS

Descriptor
Linter
Files
Fixed
Errors
Elapsed time

✅ PYTHON
black
8
0
0
0.77s

✅ PYTHON
mypy
8

0
1.62s

✅ PYTHON
ruff
8
0
0
0.05s

✅ REPOSITORY
git_diff
yes

no
0.03s

See detailed report in MegaLinter reports
Set VALIDATE_ALL_CODEBASE: true in mega-linter.yml to validate all sources, not only the diff
MegaLinter is graciously provided by

:tada: This PR is included in version 0.11.0 :tada:
The release is available on:

v0.11.0
GitHub release

Your semantic-release bot :package::rocket:


Update zio to 1.0.4

Updates dev.zio:zio from 1.0.0-RC21 to 1.0.4.
GitHub Release Notes - Version Diff
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

Ignore future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "dev.zio", artifactId = "zio" } ]

labels: library-update, semver-pre-release

Superseded by #174.


[$500] mWeb/Chrome - Profile setting - The autofill field remains when scrolling the page

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

Action Performed:

Go to URL https://staging.new.expensify.com/
Login with any account
Go to Settings->Profile
Focus on the name input field (first or last name)
Scroll the page

Expected Result:
The autofill field should be hidden
Actual Result:
The autofill field remains
Workaround:
Unknown
Platform:

Where is this issue occurring?

Mobile Web

Version Number: <IP_ADDRESS>
Reproducible in staging?: Yes
Reproducible in production?: Yes
Email or phone of affected tester (no customers): any
Logs: https://stackoverflow.com/c/expensify/questions/4856
Notes/Photos/Videos: Any additional supporting documentation
https://user-images.githubusercontent.com/93399543/192529923-4a82354a-56d4-4971-869f-162b25da8ab0.mp4
Expensify/Expensify Issue URL:
Issue reported by: Applause - internal Team
Slack conversation:
View all open jobs on GitHub

I was able to reproduce this one on production too. Looking at other sites, the autofill pop-up disappears when the user scrolls down/up the page.

Proposal
Problem
The default behavior of removing autofill is when we scroll window. Unfortunately, our form stays inside other container so when we scroll, this container scroll not window.
ref: https://stackoverflow.com/a/45446880
Solution
My suggestion is to remove and restore from the active input field in a form's onScroll event
in https://github.com/Expensify/App/blob/1bed3e5bc8c895eb630206e19c0aa82970f890f1/src/pages/settings/Profile/ProfilePage.js
+
+    onScroll(){
+       const a = document.activeElement;
+        a.blur();
+       a.focus();
+   }

                <Form
                    style={[styles.flexGrow1, styles.ph5]}
                    formID={CONST.PROFILE_SETTINGS_FORM}
                    validate={this.validate}
                    onSubmit={this.updatePersonalDetails}
                    submitButtonText={this.props.translate('common.save')}
+                  onScroll={this.onScroll}
                >

In https://github.com/Expensify/App/blob/1bed3e5bc8c895eb630206e19c0aa82970f890f1/src/components/Form.js
    onSubmit: PropTypes.func.isRequired,

    children: PropTypes.node.isRequired,

+    onScroll: PropTypes.func,

                <ScrollView
                    style={[styles.w100, styles.flex1]}
                    contentContainerStyle={styles.flexGrow1}
                    keyboardShouldPersistTaps="handled"
+                  onScroll={this.props.onScroll}
                >

https://user-images.githubusercontent.com/113963320/192963260-67aba93e-5c88-4ce8-9a0a-05104d51eda5.mp4

Waiting for better proposals.

@tienifr Pardon my ignorance on the topic, but I feel there must be a better way to handle this. We're using RN components and I don't think we should be modify the scroll event, especially with a window object.
What do you think? @marcochavezf

Yeah, using window and scrollEventThrottle looks a bit hacky for me. I think the problem could be related to one HTML property or something, I don't think other sites solve this issue by modifying the scroll event.

I'm sorry but I don't know who I'm talking to regarding this project. @getusha or @mananjadhav ?

@AmroElzeiny You're talking to me at the moment or everyone assigned to the issue on the top right.
But we always welcome contributors to propose solutions on the job, share feedback, etc.

I have only one question, Mr Manan, you want the autofill menu to remain in its position stuck to the input, right?

@marcochavezf @mananjadhav
go to https://staging.new.expensify.com/ on the login page

zoom in until you get the scroll bar
focus the email text field
scroll and you see the tooltip hides

The autofill hides itself when it detects a scroll on the body ( not custom overflows on div )
I have a fix for this but the outcome is it completely removes focus from the input is that okay?

Proposal

This is the best and the _only solution in RN Applications

..........

src/pages/settings/Profile/ProfilePage.js

//save the targeted input field to a state
setFocusedInput(focused){
    this.setState({focusedInput: focused.target})
}

<Form
// focusedInput prop passes the targeted input field
   focusedInput={this.state.focusedInput} >

<TextInput
// set focusedInput state depending on the focused input field
   onFocus={(focused)=>{this.setFocusedInput(focused)}}

src/components/Form.js

onScroll={()=>{
   this.props.focusedInput.blur()
   this.props.focusedInput.focus()
}}

Final Result
https://user-images.githubusercontent.com/75031127/194609325-8c4dfa17-1ed2-4439-817b-bd9941ffbad5.mp4

using window is not acceptable way of approaching this problem, the above implementation fixes the issue perfectly with the right way

@marcochavezf thoughts?

I went through @aimane-chnaif's proposal and I am almost inclined to agree with it. I haven't tested it. But I would want someone from the @Expensify/design  team to see if there's any issue with changing the cardStyle here.

The proposal seems good and thorough but given that it has larger implications, we should really test it out on all flows.
Where else is cardStyle used? Also, that name is so generic it's hard to understand what cardStyle even refers to.

I went through @aimane-chnaif's proposal and I am almost inclined to agree with it. I haven't tested it. But I would want someone from the @Expensify/design team to see if there's any issue with changing the cardStyle here.

Yeah, the proposal also looks promising to me, and I agree that the solution should be tested on all AuthScreens (I wonder why height: 100% was set manually before).

@aimane-chnaif any update?

Ah just to follow the established process, @mananjadhav do you agree with the solution? Can we consider it as C+ reviewed?

I went through @aimane-chnaif's proposal and I am almost inclined to agree with it. I haven't tested it. But I would want someone from the @Expensify/design team to see if there's any issue with changing the cardStyle here.

Yeah we can consider this C+ Reviewed for @aimane-chnaif's proposal

Cool, thanks for the clarification @mananjadhav! Assigning @aimane-chnaif 🚀

Thanks for the update @aimane-chnaif

Waiting for an update here @aimane-chnaif

@aimane-chnaif Been two weeks waiting on this one. Please provide an update.

@aimane-chnaif Please send us an update within 24 hours, else we'll have to rescind the job here.

Sorry for late but it took much efforts to test and fix all regressions for all auth screens on all platforms. Especially all modal pages with transition animations and with input autoFocus enabled. I raised PR. Since this is navigation card and animation styles refactor, all screens need to be throughly tested throughout the app in all devices and all platforms.

Thanks for the update @aimane-chnaif and also thanks for testing it thoughtfully! Next time just a minor update like "still testing", "found x issue" or a list of what you have been testing work for us. We understand there are a lot of places that could be impacted by this change :)

Issue not reproducible during KI retests. (First week)

Can we get an update here @mananjadhav @aimane-chnaif

Reviewed the PR. Raised some questions and asked for videos instead of images. Will test once @aimane-chnaif responds.

Issue not reproducible during KI retests. (Second week)

@dylanexpensify This is pending with me, I am currently testing it.

Any ETA on when you'll be done @mananjadhav ?

Targeting to finish this by EOD today

Apologies for the time taken to review. Required testing across multiple screens. This is C+ reviewed now and approved.

Reported by @Puneet-here , the PR https://github.com/Expensify/App/pull/12366 caused the regressions:

https://github.com/Expensify/App/issues/13011

https://github.com/Expensify/App/issues/13008

@aldo-expensify the Next button was missing on split bill page.
This shouldn't have passed QA, right? Maybe we should write automated tests for this since it made to production.

I think it is a good call, we should review our manual tests because this could have been catch. I don't think it would be easy to do as an automated test because the button is not completely missing, it is just at the bottom of the list instead of at the bottom of the screen (fixed).

@isagoico can we make sure that in the manual test for the split bill we test:

on mobile web, using a "high traffic account" (with enough contacts to have scrolling), make sure that the "Next" button appears fixed at the bottom of the screen after selecting the first participant?

@aimane-chnaif Can we look into the reported regressions and fix up with a new PR?

@aimane-chnaif Can we look into the reported regressions and fix up with a new PR?

@aimane-chnaif Did you get a chance to look at the comment?

Okay. Thanks for the update.

Working on this now to discuss Regression testing steps

Posted in internal channel on how to align on regression steps (cc @JmillsExpensify).
@aimane-chnaif when can we expect an updated PR?

Proposal
How about this
https://github.com/Expensify/App/blob/bcdb1413fab510ee97c38928aba053b37b1d46d9/src/components/Form.js#L248-L252
<ScrollView
     ...
+    keyboardDismissMode={this.props.keyboardDismissMode}
/>

https://github.com/Expensify/App/blob/bcdb1413fab510ee97c38928aba053b37b1d46d9/src/pages/settings/Profile/ProfilePage.js#L231-L238
<Form
     ...
+    keyboardDismissMode={'on-drag'}
/>

@marcochavezf @mananjadhav thoughts on @aimane-chnaif's comment?

Yeah it's a weird issue, because in the SignIn page is working fine (RootStack/Public screen):
https://user-images.githubusercontent.com/6829422/205416127-9f1382b3-8896-4bee-afed-7930177af2d2.mov
I think we'd need to come up with a holistic solution to standardize the card styles for both ModalStackNavigator and RootStack screens, but I agree that solving this issue is more a "nice to have" (I initially thought the solution was going to be simple). IMO we can close this one atm to focus on other significant issues and re-open it if there are more issues related.

Sounds good, let's close!


Question about obda:isCanonicalIRIOf with R2RML mapping file

I just discovered obda:isCanonicalIRIOf and I'm wondering now whether it is expected to work with materialization via R2RML file? Any hints would be appreciated.

Got it to work. Great!


update replacing mods

Lamp used to be able to recognize when I drop an update for a zip and just replace the old one with it.
It's not anymore :D
Nothing too important but I wonder why that feature has vanished.

Sadly we got alot of problems from the system being wrong more than right, such as mods with almost identical names overwriting each other so the feature was removed until we can implement a better system.


Load custom DSDL

Hi,
I am trying to debug code that uses custom messages on UAVCAN, and I would like a way to load custom DSDL types in the GUI. Currently I did an ugly patch to do it (see below) but I would be interested in implementing a more complete feature if needed by others.
commit 2bc955ece0d4c699ac75755e6381cd7c2e1c1f09
Author: Antoine Albertelli<EMAIL_ADDRESS>Date:   Wed Mar 29 15:59:26 2017 +0200

    Ugly hack to load custom datatypes

diff --git a/uavcan_gui_tool/widgets/bus_monitor/window.py b/uavcan_gui_tool/widgets/bus_monitor/window.py
index 8b755ae..a5803d0 100644
--- a/uavcan_gui_tool/widgets/bus_monitor/window.py
+++ b/uavcan_gui_tool/widgets/bus_monitor/window.py
@@ -11,6 +11,7 @@ import time
 import os
 from functools import partial
 import uavcan
+uavcan.load_dsdl('.')
 from uavcan.driver import CANFrame
 from PyQt5.QtWidgets import QMainWindow, QHeaderView, QLabel, QSplitter, QSizePolicy, QWidget, QHBoxLayout, \
     QPlainTextEdit, QDialog, QVBoxLayout, QMenu, QAction

Thanks Antoine, it is needed by others. Please do implement that. ;)
There have been attempts to implement this feature in the past, but IIRC they ended up being unsuccessful.
How are you planning to implement that exactly? Are you perhaps going to add an environment variable specifying the look up paths, or is it going to be a GUI element where the user can specify the look up path manually? I think both approaches make sense.

I am not sure of the best way to implement it. I am not very familiar with (Py)Qt, so I think an environment variable would probably be the easiest for me, but not the most user friendly.
Also do you think having it in the bus monitor is enough or is there any other place where it could be useful ?

environment variable would probably be the easiest for me, but not the most user friendly.

Fine. Do you think it makes sense to implement that on the level of PyUAVCAN? We have a line here where the default DSDL definitions are loaded: https://github.com/UAVCAN/pyuavcan/blob/master/uavcan/init.py#L183. We could extend that code so that it queries the environment variable and loads DSDL from the locations specified in the variable.

Also do you think having it in the bus monitor is enough or is there any other place where it could be useful ?

Having it only in the bus monitor is definitely not enough. There are other parts of the application, such as the plotter, the subscriber tool, and the console, where the user may need access to the custom definitions. Implementing the support for environment variable on the level of PyUAVCAN will take care of that.

I have just discovered an undocumented feature in PyUAVCAN. Have a look:
paths = [os.path.join(dsdl_path, "uavcan")] + paths
custom_path = os.path.join(os.path.expanduser("~"), "uavcan_vendor_specific_types")
if os.path.isdir(custom_path):
    paths += [f for f in [os.path.join(custom_path, f) for f in os.listdir(custom_path)]
              if os.path.isdir(f)]

Missing documentation entries have been added to the GUI Tool and PyUAVCAN docs.
That said, we still very much want the capability to point the location where to load the custom DSDL from via GUI.

Interesting. It should be good enough for my application, thanks!

Solved in #27


Drag stops short on Nexus 2013 and Galaxy Tab 3

We are experiencing problems with dragend / release firing prematurely on these two devices.  The Nexus is Android 4.3 and the Tab is 4.1.2.  Both devices are using Chrome as the browser.
The user attempts to drag and can only drag it a very short distance in our application with either of these devices.  It looks like a touchcancel is triggering the dragend.  We can reproduce this easily with the events.html sample on the nexus, but the Tab will not reproduce the problem there.

Im going to close this since drag was removed in v2


Home LAN (and WAN) flaky, ping dropping 5+% pkgs

I saw it happening on many devices, not just on the hosts in my office that is in a subnet/hub. So I guess it was happening at the BB router level. Even pinging to it dropped packets.
Saw on BB router's log this every hour:
2020-10-26, 08:21:30	Critical (3) 	Started Unicast Maintenance Ranging - No Response received - T3 time-out;CM-MAC=44:a5:6e:af:95:48;CMTS-MAC=00:01:5c:ae:6a:7f;CM-QOS=1.1;CM-VER=3.0;

Pinging to BB router averaged 100+ ms, which is 10 times or longer than usual.
Rebooting the BB router seems to have resolved. Classic.


Configure Azure Pipelines

This pipeline configuration builds the application and produces a build for the Release configuration.

This pipeline configuration builds the application and produces a build for the Release configuration.

This pipeline configuration builds the application and produces a build for the Release configuration.


[Compiler]: Using Located instead of std::pair<SourceLoc, T>

Created Located struct in swift/Basic
Updated usages throughout the compiler

https://bugs.swift.org/browse/SR-11889
@varungandhi-apple

Thanks for the PR! I've made some suggestions for changes. The == overload is fine, I just didn't think of it when writing the issue. Could you run a string search for std::pair<SourceLoc, (maybe you already did this and I missed it)? I think there are some places which have the type parameters the other way around and it would be to replace those usage sites too.
@swift-ci please smoke test

Updated for pairs like std::pair<SourceLoc, ...>

@swift-ci please smoke test

Sorry, I didn't pick this up earlier, but I think we should have the field names in PascalCase, so Item and Loc, for consistency with the rest of codebase.

@varungandhi-apple  Changed Located field names in PascalCase, Item and Loc.

@kitaisreal there are some merge conflicts. So you might want to rebase on top of latest master, fixing that conflict.
When you rebase, you'll pick up a patch I got merged recently (commit: https://github.com/apple/swift/pull/28479/commits/fb59293fe160556eb43e96fe70bb373b905237d7), which introduces a struct Convention -- that has two fields StringRef ClangType and SourceLoc ClangTypeLoc.  It would be better to represent it as one field Located<StringRef> ClangType instead and change downstream code appropriately. If you could adjust that as well, that'd be awesome. But yeah, not strictly necessary for the scope of your changes -- if you don't feel like doing it, feel free to skip that 😄.

@varungandhi-apple fixed conflicts, also updated Convention to use Located.

Awesome. I'm traveling for the next ~2 days, I'll get back to reviewing after that.
@swift-ci please smoke test

@varungandhi-apple currently the build from utils/build-script is passing without any errors. But on CI we are trying to build a toolchain and it is failing in lldb ? Can I reproduce such build error without trying to build a toolchain ?

You can use build-script to build LLDB as well. Here's one example:
./swift/utils/build-script \
  --lldb \
  --release-debuginfo \
  --test \
  -- \
  --skip-build-benchmarks \
  --lldb-use-system-debugserver \
  --skip-test-swift

Mostly LGTM but you'll need to resolve the merge conflicts and address the failing LLDB compilation. Feel free to @ me or Robert (CodaFi) to run the tests.

Hi, @varungandhi-apple, @CodaFi I added specialization with DenseMapInfo but It did not solve the problem with default constructor. Currently we have code in DenseMap
  value_type& FindAndConstruct(const KeyT &Key) {
    BucketT *TheBucket;
    if (LookupBucketFor(Key, TheBucket))
      return *TheBucket;

    return *InsertIntoBucket(TheBucket, Key) /**HERE*//;
  }

  ValueT &operator[](const KeyT &Key) {
    return FindAndConstruct(Key).second;
  }

Here is code of InsertIntoBucket and we are calling it without any agruments.
template <typename KeyArg, typename... ValueArgs>
  BucketT *InsertIntoBucket(BucketT *TheBucket, KeyArg &&Key,
                            ValueArgs &&... Values) {
    TheBucket = InsertIntoBucketImpl(Key, Key, TheBucket);

    TheBucket->getFirst() = std::forward<KeyArg>(Key);
    ::new (&TheBucket->getSecond()) ValueT(std::forward<ValueArgs>(Values)...);
    return TheBucket;
  }

And if we follow rule of five, it will not help in such case.
I was able to make minimum reproduced example with https://godbolt.org/ compiler explorer, and LLVM library here https://godbolt.org/z/rrbpvh. It won't compile without providing a default constructor for Located.

@CodaFi, @varungandhi-apple could you please rerun tests ?

@swift-ci please test

@swift-ci please test

Build failed
Swift Test OS X Platform
Git Sha - 646e9ac77f779cbf4e77e34372a35e9beb357702

Build failed
Swift Test Linux Platform
Git Sha - 646e9ac77f779cbf4e77e34372a35e9beb357702

Hi, @CodaFi @varungandhi-apple I was able to sucessfully build lldb locally, but small changes were introduced in this repository https://github.com/apple/llvm-project. How should I push it ? Should I create pull request with the same name in https://github.com/apple/llvm-project. How will CI test two branches in two repositories together ?

Branch from swift/master and submit your changes to Apple/llvm-project targeting swift/master.  We can trigger CI with paired pull requests and manually merge them as well once the holiday lock is over.

@CodaFi, @varungandhi-apple create pull request https://github.com/apple/llvm-project/pull/522.

apple/llvm-project#522
@swift-ci please test

Build failed
Swift Test OS X Platform
Git Sha - 646e9ac77f779cbf4e77e34372a35e9beb357702

Build failed
Swift Test Linux Platform
Git Sha - 646e9ac77f779cbf4e77e34372a35e9beb357702

@kitaisreal can you look at the test failures? It looks like DiagnosticConsumerTests.cpp is missing a #include "swift/Basic/Located.h".
/Users/buildnode/jenkins/workspace/swift-PR-osx/branch-master/swift/unittests/AST/DiagnosticConsumerTests.cpp:20:30: error: no template named 'Located'
  using ExpectedDiagnostic = Located<StringRef>;
                             ^

@varungandhi-apple Sure. Updated.

apple/llvm-project#522
@swift-ci please test

Build failed
Swift Test Linux Platform
Git Sha - 646e9ac77f779cbf4e77e34372a35e9beb357702

Build failed
Swift Test OS X Platform
Git Sha - 646e9ac77f779cbf4e77e34372a35e9beb357702

I think that this may have caused a build break for the Windows builds:
https://compnerd.visualstudio.com/swift-build/_build/results?buildId=23654&view=logs&j=3ee06e05-ce1c-5a30-d930-cdd7bd1c5236&t=c7be90c7-ae5e-5e2a-a2ec-6669b9e2ba36&l=3435

Additional breakage here: https://ci-external.swift.org/job/oss-swift-windows-x86_64/2363/

@compnerd yes, this is related. I merged it after the tests were passing for Linux and macOS. Is this an MSVC bug? Don't understand why it is complaining about a duplicate, there is exactly one operator == present.

I dion't think that this is a bug at all.  I think that the compiler is identifying an issue with the code.  The warning is documented here https://docs.microsoft.com/en-us/cpp/error-messages/compiler-errors-2/compiler-error-c2995?view=vs-2019 .  The template is getting instantiated multiple times.  I think I have a fix for this, I'll push up a change.

See #29032 29032

I tried compiling this locally and I saw the same error with Clang. Wondering how it got through in CI. 😕

This fails to build on Fedora 31 (x86_64) and I'm surprised this builds at all. I can't find a declaration or definition of operator<<(llvm::raw_ostream &, const SourceLoc &) anywhere. How does this compile? Can we revert this? Or add the output operator? Or remove the offending line?
/home/dave/s/u/swift/lib/Basic/Located.cpp:23:6: error: invalid operands to binary expression ('llvm::raw_ostream' and 'const swift::SourceLoc')
  os << Loc << " " << Item;
  ~~ ^  ~~~
/home/dave/s/u/llvm/include/llvm/Support/raw_ostream.h:202:16: note: candidate function not viable: no known conversion from 'const swift::SourceLoc' to 'const void *' for 1st argument; take the address of the argument with &
  raw_ostream &operator<<(const void *P);
               ^
/home/dave/s/u/llvm/include/llvm/ADT/Optional.h:431:14: note: candidate function not viable: no known conversion from 'const swift::SourceLoc' to 'llvm::NoneType' for 2nd argument
raw_ostream &operator<<(raw_ostream &OS, NoneType);
             ^
/home/dave/s/u/llvm/include/llvm/Support/raw_ostream.h:146:16: note: candidate function not viable: no known conversion from 'const swift::SourceLoc' to 'char' for 1st argument
  raw_ostream &operator<<(char C) {
               ^
/home/dave/s/u/llvm/include/llvm/Support/raw_ostream.h:153:16: note: candidate function not viable: no known conversion from 'const swift::SourceLoc' to 'unsigned char' for 1st argument
  raw_ostream &operator<<(unsigned char C) {
               ^
/home/dave/s/u/llvm/include/llvm/Support/raw_ostream.h:160:16: note: candidate function not viable: no known conversion from 'const swift::SourceLoc' to 'signed char' for 1st argument
  raw_ostream &operator<<(signed char C) {
               ^
/home/dave/s/u/llvm/include/llvm/Support/raw_ostream.h:167:16: note: candidate function not viable: no known conversion from 'const swift::SourceLoc' to 'llvm::StringRef' for 1st argument
  raw_ostream &operator<<(StringRef Str) {
               ^
/home/dave/s/u/llvm/include/llvm/Support/raw_ostream.h:182:16: note: candidate function not viable: no known conversion from 'const swift::SourceLoc' to 'const char *' for 1st argument
  raw_ostream &operator<<(const char *Str) {
               ^
/home/dave/s/u/llvm/include/llvm/Support/raw_ostream.h:189:16: note: candidate function not viable: no known conversion from 'const swift::SourceLoc' to 'const std::string' (aka 'const basic_string<char, char_traits<char>, allocator<char> >') for 1st argument
  raw_ostream &operator<<(const std::string &Str) {
               ^
/home/dave/s/u/llvm/include/llvm/Support/raw_ostream.h:194:16: note: candidate function not viable: no known conversion from 'const swift::SourceLoc' to 'const SmallVectorImpl<char>' for 1st argument
  raw_ostream &operator<<(const SmallVectorImpl<char> &Str) {
               ^
/home/dave/s/u/llvm/include/llvm/Support/raw_ostream.h:198:16: note: candidate function not viable: no known conversion from 'const swift::SourceLoc' to 'unsigned long' for 1st argument
  raw_ostream &operator<<(unsigned long N);
               ^
/home/dave/s/u/llvm/include/llvm/Support/raw_ostream.h:199:16: note: candidate function not viable: no known conversion from 'const swift::SourceLoc' to 'long' for 1st argument
  raw_ostream &operator<<(long N);
               ^
/home/dave/s/u/llvm/include/llvm/Support/raw_ostream.h:200:16: note: candidate function not viable: no known conversion from 'const swift::SourceLoc' to 'unsigned long long' for 1st argument
  raw_ostream &operator<<(unsigned long long N);
               ^
/home/dave/s/u/llvm/include/llvm/Support/raw_ostream.h:201:16: note: candidate function not viable: no known conversion from 'const swift::SourceLoc' to 'long long' for 1st argument
  raw_ostream &operator<<(long long N);
               ^
/home/dave/s/u/llvm/include/llvm/Support/raw_ostream.h:204:16: note: candidate function not viable: no known conversion from 'const swift::SourceLoc' to 'unsigned int' for 1st argument
  raw_ostream &operator<<(unsigned int N) {
               ^
/home/dave/s/u/llvm/include/llvm/Support/raw_ostream.h:208:16: note: candidate function not viable: no known conversion from 'const swift::SourceLoc' to 'int' for 1st argument
  raw_ostream &operator<<(int N) {
               ^
/home/dave/s/u/llvm/include/llvm/Support/raw_ostream.h:212:16: note: candidate function not viable: no known conversion from 'const swift::SourceLoc' to 'double' for 1st argument
  raw_ostream &operator<<(double N);
               ^
/home/dave/s/u/llvm/include/llvm/Support/raw_ostream.h:229:16: note: candidate function not viable: no known conversion from 'const swift::SourceLoc' to 'const llvm::format_object_base' for 1st argument
  raw_ostream &operator<<(const format_object_base &Fmt);
               ^
/home/dave/s/u/llvm/include/llvm/Support/raw_ostream.h:232:16: note: candidate function not viable: no known conversion from 'const swift::SourceLoc' to 'const llvm::FormattedString' for 1st argument
  raw_ostream &operator<<(const FormattedString &);
               ^
/home/dave/s/u/llvm/include/llvm/Support/raw_ostream.h:235:16: note: candidate function not viable: no known conversion from 'const swift::SourceLoc' to 'const llvm::FormattedNumber' for 1st argument
  raw_ostream &operator<<(const FormattedNumber &);
               ^
/home/dave/s/u/llvm/include/llvm/Support/raw_ostream.h:238:16: note: candidate function not viable: no known conversion from 'const swift::SourceLoc' to 'const llvm::formatv_object_base' for 1st argument
  raw_ostream &operator<<(const formatv_object_base &);
               ^
/home/dave/s/u/llvm/include/llvm/Support/raw_ostream.h:241:16: note: candidate function not viable: no known conversion from 'const swift::SourceLoc' to 'const llvm::FormattedBytes' for 1st argument
  raw_ostream &operator<<(const FormattedBytes &);
               ^
/home/dave/s/u/llvm/include/llvm/ADT/Optional.h:435:14: note: candidate template ignored: could not match 'Optional<type-parameter-0-0>' against 'const swift::SourceLoc'
raw_ostream &operator<<(raw_ostream &OS, const Optional<T> &O) {
             ^
1 error generated.

There are two fundamental problems here:

This code doesn't compile with top-of-tree clang, which is more reliable about emitting templated functions that are marked "used", i.e. what SWIFT_DEBUG_DUMP does among other things. This same bug was tripped over when the SWIFT_DEBUG_DUMP macro was introduced.
operator<< on a SourceLoc is arguably meaningless. One also needs a SourceManager reference and a buffer ID in order to extract the line and column information.

I'm just going to comment the problematic line out, since older clangs don't emit the function anyway and @varungandhi-apple seemingly did not notice. I'll update this comment with a pull request reference soon.


minimist update (security vulnerability)

This PR updates Jest to the latest version. This will also update the minimist package to the latest patched version against vulnerabilities.
This won't fix the kind-of dependency issue as several nested dependencies are still yet to be updated. (more here: https://github.com/facebook/jest/issues/9666)

 swagger-mod-security security alerts 2020-05-12


add kernelName to kernelOptions in README.md

The current config doc having only kernelOptions.name is a bit confusing. It lets user think that by simply change the name to something like R will enable a R kernel (at least that is what I thought). To run other language, I found that kernelOptions.kernelName is what I needed. Including this in the doc I believe will help a lot of people.
The kernelName is passed to @jupyterlab/services and here is where kernelName is defined.

I think this is a good fix, as I agree it's currently misleading. I'll merge this and open another issue about whether we remove the "name" configuration as well, since I'm not sure whether it's used.


feat: port LinearAlgebra.AffineSpace.FiniteDimensional

decide! tactic didn't exist, so I used fin_cases instead

todo:

[ ] affineIndependent_iff_not_collinear_of_ne unknown tactic decide!

Is this awaiting review?


Support bf16 vector columns

We need to be able to roundtrip bf16 vector columns.
We can remove this line to enable testing this:
https://github.com/lancedb/lance/blob/e77eabfaadb5801a3fe3d28eaec935e18fc55f61/python/python/tests/test_tf.py#L444
The error we get right now is:
pyo3_runtime.PanicException: called `Result::unwrap()` on an `Err` value: Schema { message: "Unsupported logical type: fixed_size_list:fixed_size_binary:2:6", location: Location { file: "/Users/willjones/Documents/lance/rust/lance-core/src/datatypes.rs", line: 200, column: 39 } }

The problem is Lance writes data types as strings, and so we need to decide a string representation here.

Option 1: we create a special string serialization for bfloat16.
Option 2: we allow fixed size list to take arbitrary child types. This would be the most flexible, but would require being able to serialize the extension type and all that of children.

I tested out option 1 here: https://github.com/lancedb/lance/compare/wjones127/straw-man-schema-fix
I don't think this is a great solution. I think we should refactor how schemas are serialized instead.

TODO:

[ ] Make list fields materialized
[ ] Create migration function
[ ] Test that field ids are preserved
[ ] Create a feature flag for list fields


x/website: outdated featured elasticsearch package

What is the URL of the page with the issue?
https://go.dev/
https://go.dev/solutions/webdev
https://go.dev/solutions/cloud
What is your user agent?

Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/<IP_ADDRESS> Safari/537.36
Screenshot

What did you do?

Went to https://go.dev/, and checked out the "Popular Packages" under Web Development.
What did you expect to see?
Non-deprecated Elasticsearch client.
What did you see instead?
Links to olivere/elastic, which is deprecated (see the sidebar in the repo) in favor of the official Elasticsearch client elastic/go-elasticsearch. As explained by the main author under "UPDATE 2022-07-13" at https://github.com/olivere/elastic/issues/1533, olivere/elastic will no longer be updated for newer Elasticsearch versions.

Submitted a patch: https://go-review.googlesource.com/c/website/+/476156


SideNav improvements

There is an issue with the sidenav the way it actually works:
The sideNav function can only get a px value as a width: $(".button-collapse").sideNav({menuWidth: 280}). But the .drag-target element which is used to open and close the sideNav has a width: 50%; added  with JS when the drawer is open. A tap on that element closes the sideNav.
That means we have two different cases where this approach will not have the expected behavior:
Case 1: on a small screen
On a small screen, for example 320px, with a sideNav width of 280px, the .drag-target element will have a 160px width. It starts to the right, but that means that it overflows of 120px on the sideNav. So, if the user taps on the right of the sideNav, it will actually tap on the .drag-target and then close the sideNav instead of clicking on what's there in the sideNav.
Case 2: on a big screen
At the opposite, if the screen is big, let's say 800px, then the .drag-target element starts at 400px on the middle of the screen. So, there is 120px between the end of the sideNav and the beginning of the .drag-target, which means that if the user taps here, the sideNav will not be closed.
The solution to this problem is obvious: the width of .drag-target has to be body width minus the sideNav width. It can still overflow a little bit on the side nav to allow the user to close it swipping.
Btw, performance wise, the side nav should be open with a translate3D, not with JavaScript, which causes a lot of repaint.

+1 to this as I just encountered Case 2

Up, is the issue clear? What do you need to work on that?

#1735

Closed due inactivity, please reopen this if you're still having problems
thanks


Promote for big file gives a 500 error

Hi @janko-m
I'm having this weird error when i'm trying to upload a 360mb zip file and when the promotion happens the aws spits a 500 error that i can't figure out where it's from.
This is the sidekiq data:
{
context: Job raised exception,
job: {
args: [
{
action: u'store',
attachment: u'{"id":"4c07e574fb1766740ba2c6fe8a7d813e.zip","storage":"cache","metadata":{"size":360504494,"filename":"Those Icons+iconset.zip","mime_type":"application/zip"}}',
name: u'download_file',
phase: u'store',
record: [u'Item', u'64'],
shrine_class: u'ItemFileUploader'
}
],
class: ShrineUploadJob,
created_at:<PHONE_NUMBER>.1513112,
enqueued_at:<PHONE_NUMBER>.464602,
error_class: Aws::S3::Errors::Http500Error,
error_message: ,
failed_at:<PHONE_NUMBER>.095714,
jid: e72e78aa3589137e26d720fc,
queue: default,
retried_at:<PHONE_NUMBER>.6104991,
retry: True,
retry_count: 2
},
jobstr: {"class":"ShrineUploadJob","args":[{"attachment":"{\"id\":\"4c07e574fb1766740ba2c6fe8a7d813e.zip\",\"storage\":\"cache\",\"metadata\":{\"size\":360504494,\"filename\":\"Those Icons+iconset.zip\",\"mime_type\":\"application/zip\"}}","record":["Item","64"],"name":"download_file","shrine_class":"ItemFileUploader","action":"store","phase":"store"}],"retry":true,"queue":"default","jid":"e72e78aa3589137e26d720fc","created_at":1501072429.1513112,"enqueued_at":1501242872.464602,"error_message":"","error_class":"Aws::S3::Errors::Http500Error","failed_at":1501072526.095714,"retry_count":1,"retried_at":1501072607.923976}
}

And this is the error:
https://sentry.io/share/issue/3133343238302e333136393630343435/
S3 tries to copy the file over but a 500 error happens :(

@Chocksy It's hard to know why is that copy failing if we don't know the error message that AWS S3 returned (we only know that the status code is 500). Given that in https://github.com/janko-m/shrine/issues/176 I posted a self-contained script which uploads to temporary and then copies to permanent S3 storage a 100MB file without any problems, I cannot image what could be a problem here. It's very unlikely that it has something to do with the type of the file, because S3 doesn't care about that.
I would need a self-contained example that reproduces the error, you can use the mentioned script as a template. Because I need to be able to reproduce the problem locally before I can attempt to fix it.

@janko-m i was thinking you might know how i can get a message out of that 500 error because i can't get it. I tried to go into the code and debug but i can't get anything but the 500 message above.
I'll try again and see what is going on with a separate script.
Here is what i have in my shrine.rb:
require 'shrine'
require 'shrine/storage/file_system'
require 'shrine/storage/s3'
require 'shrine/plugins/activerecord'

s3_options = {
  access_key_id:     ENV['AWS_ACCESS_KEY_ID'],      # "xyz"
  secret_access_key: ENV['AWS_SECRET_ACCESS_KEY'],  # "abc"
  region:            ENV['AWS_REGION'],             # "eu-west-1"
  bucket:            ENV['AWS_BUCKET'],             # "my-app"
}

upload_options = {
  acl: 'public-read',
  cache_control: "public, max-age=#{30.days}"
}

url_options = {
  host: ENV['AWS_CLOUD_URL'],
  public: true
}

if Rails.env.development?
  s3_options[:region] ||= 'us-east-1'
  s3_options[:bucket] ||= 'pxls'
  s3_options[:access_key_id] ||= '123'
  s3_options[:secret_access_key] ||= 'abc'
  s3_options[:endpoint] = ENV['AWS_ENDPOINT'] || 'http://localhost:10001'
  s3_options[:force_path_style] = true
  # remove host unless we set it for development
  url_options.slice!(:host) unless ENV['AWS_CLOUD_URL'].present?
end

Shrine.storages = {
  cache: Shrine::Storage::S3.new(prefix: 'shrine/cache', upload_options: upload_options, **s3_options),
  download_file_store: Shrine::Storage::S3.new(prefix: 'downloads/item', upload_options: { acl: 'private' }, **s3_options)
}

Shrine.plugin :logging, logger: Rails.logger
Shrine.plugin :activerecord
Shrine.plugin :backgrounding
Shrine.plugin :default_url_options,
              cache: url_options,
              download_file_store: { public: false, expires_in: 60 }
Shrine.plugin :restore_cached_data
Shrine.plugin :cached_attachment_data # for forms
Shrine.plugin :remote_url, max_size: 20 * 1024 * 1024

Shrine::Attacher.promote { |data| ShrineUploadJob.perform_in(30, data) }
Shrine::Attacher.delete { |data| ShrineDeleteJob.perform_async(data) }

and the uploader is like this
class ItemFileUploader < Shrine
  plugin :default_storage, store: :download_file_store
  plugin :parsed_json
  plugin :determine_mime_type
  plugin :validation_helpers
  plugin :versions
  plugin :processing
  plugin :hooks

  plugin :direct_upload, max_size: 1.gigabyte, presign: -> (r) do
    r.params['fields'] || {}
  end

  Attacher.validate do
    validate_max_size 1.gigabyte, message: 'is too large (max is 1GB)'
    validate_mime_type_inclusion [
      'application/octet-stream',
      'application/zip'
    ], message: 'This file type is not allowed.'
  end

  def before_store(_io, context)
    context[:record].skip_review_change = true
  end

  process(:store) do |io, context|
    io
  end
end

@janko-m ok so it seems my issue somehow was related to fakes3. But i can swear i actually got the same thing on production but probably i'm mistaken. So indeed it does work shrine does copy the file over so i'm going to close this.
Thanks.


Terminal with Remote - SSH is terribly slow for some outputs

Does this issue occur when all extensions are disabled?: Yes/No
No, it requires the Remote-SSH extension

VS Code Version:
1.57.1
OS Version:
Linux 5.10.28
Steps to Reproduce:

Connect to a remote SSH host
Maximize the terminal (it's slower with a larger pane)
Configure git to use the 'delta' pager: https://github.com/dandavison/delta
Navigate to a git repo, and do:> git show (some commit hash with a bunch of diffs)

It takes almost 5 seconds to scroll a single page.
Some things to note:

A gnome-terminal SSH-ing to the same host can scroll a page with no visible delay.
A local vscode terminal session doesn't seem to have the same problem.
Paging through a diff without the 'delta' pager is only a bit sluggish in comparison.

Did this performance issue start happening recently?

I just tested some old versions. It's always been a bit sluggish, but 1.54.0 and before was significantly faster than 1.55.0

Changing terminal.integrated.gpuAcceleration from the default value(auto?) to "on" speeds things up considerably.

There is also the new canvas value you can set that to in the upcoming version to see if that helps. Looks like you've worked around the problem though, it was likely due to a linux/chromium/driver problem.