Document pipelining of transactional writes

Fixes #3485.
Summary of changes:

Update Writes section of the 'Transaction Layer' doc:

note that as of v2.1 transactional writes are pipelined

Explain the effects / how it works at a high level

Update 'Cluster Settings' page with the new flags (via the
autogenerated docs from the CockroachDB build):

kv.transaction.write_pipelining_enabled
kv.transaction.write_pipelining_max_batch_size

This change is

http://cockroach-docs-review.s3-website-us-east-1.amazonaws.com/9661f7ee65239539286cad3ecef3e22de0f4496e/

Does txn pipelining change any of the information in the paragraphs just prior to this change in the Writing section of the Transaction layer page about txn records, write intents, etc.?

No, transaction records and write intents are not effected.

Does txn pipelining affect any of the information in understanding and avoiding transaction contention?

Nope, there shouldn't be any changes in that regard.

(Apart from the previous questions) Are there additional places in the documentation you think should be updated to mention this? AFAICT it is an optimization but does not necessarily affect things from a user/docs POV except by making things faster (which to be clear is awesome). Therefore, it's not clear what to document other than to note its operation at the txn layer, but I may be missing something.

The only thing I can think of is that transactional pipelining makes parallel statement execution less important and we should probably remove it as a top-level performance suggestion. It can still be used in certain cases to improve performance, but those cases are now a lot more nuanced.
We should talk a bit about this next time you're in though, because it looks like the description here is a little outdated. The idea of "dry run" requests were in the initial design of transactional pipelining, but we don't actually use them anymore. Instead, the approach that will be in 2.1 is more closely in-line with https://github.com/cockroachdb/cockroach/issues/16026#issuecomment-375904032.

http://cockroach-docs-review.s3-website-us-east-1.amazonaws.com/a97732f5c24d726ea6870becb56af438c2085a2d/

Hey @nvanbenschoten I've made some updates based on our conversation.  Mind taking a look again when you get a chance?
Direct links for convenience:

Parallel statement execution - updated with a note stating that it is superseded by txn pipelining for most use cases.  Let me know if the language is too specific about the remaining valid use case, or if it's making too strong a claim.

New section in Transaction Layer describing txn pipelining.  It's reasonably high level (I think?) and hopefully correct.  Happy to update if the information is off base or if there are better ways of describing what is happening.

The cluster settings page has the new flags - this may not need a review since it's generated from the DB code (AFAICT?) but just giving a heads up that it's there.

Oh, and as mentioned in the commit message I've removed parallel statement execution as a suggestion from the SQL performance best practices page based on your earlier comment that

The only thing I can think of is that transactional pipelining makes parallel statement execution less important and we should probably remove it as a top-level performance suggestion. It can still be used in certain cases to improve performance, but those cases are now a lot more nuanced.

http://cockroach-docs-review.s3-website-us-east-1.amazonaws.com/55949e0150c0ab42206f760bbd3065dd69833a87/

http://cockroach-docs-review.s3-website-us-east-1.amazonaws.com/55949e0150c0ab42206f760bbd3065dd69833a87/

http://cockroach-docs-review.s3-website-us-east-1.amazonaws.com/532cdae71ee138ae69fbfbb357f711eaf95726cb/

Hey @jseldess and @sploiselle , do you have any additional comments I should address?  I'd like to merge this if there are no blockers.

http://cockroach-docs-review.s3-website-us-east-1.amazonaws.com/98f7b4178b7137212f33f2ddfa6ae41dceac462b/


feat: Update dependencies

feat!: Upgrade client_common to v1.0.0-beta.17 feat!: Fix api requests (#55)

feat!: Upgrade client_common to v1.0.0-beta.17

:tada: This PR is included in version 1.0.0-beta.94 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:

:tada: This PR is included in version 1.0.0-alpha.1 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


Module 1.1 Assignment

Given what you have learned about Git, why would you want to use Git in your classroom?

To provide a tool to allow them to work in a more professional and collaborative way.


Gateway copy should perform a physical copy

Currently the gateway copy operation is a metadata operation, meaning that after the copy is done both the destination and the source are represented by the same object in the underlying storage.
This behavior will cause problems with the implementation of retention.
We would like to change the copy operation to be a physical operation,
meaning that after the copy command is over, the source and destination keys will be represented by two different objects.

This Issue should Come together with #1933 (At least the part that handles delete commands).
The reason for that is:
When running a spark job it may create many temporary files, copy them and then remove them.
Currently there is no "Garbage" created by that process, All temporary files, are used by the final files due to meta-copy. Once We do physical copy, all the files created will exist twice (one for the temporary one for final).
In order to not create that "Garbage" we need the staging delete command to delete the physical data as well.
*Inserting physical delete before physical copy will cause bugs

Currently the retention handles deduplications. Closing this issue for now.


Add logos to the credits page

What type of suggestions?
Missing Information
What page is concerned?
https://docs.kubefirst.io/k3d/credits
What is the issue?
Add logos to the credits page so it's less boring, and we give back to all those tools that make kubefirst possible.
Code of Conduct

[X] I agree to follow this project's Code of Conduct

They should be SVG, and local.


Goss test fails during build but manually passes within image

I run goss tests within my Dockerfile so that the image doesn't get built if the tests fail. This workflow works fine for most of my images. I'm experiencing a problem in one image where my tests fails during build, but pass if I connect to the container and run the test manually. I am passing in a var file, and I confirmed during build that it contains the correct values. Any insight on why this could happen?

was an issue with the path variable not being set properly on build


Windows Server 2019 Validation

Hi, I'm currently validating the performance of a Windows Server 2019 VM which is managed by LXD (which uses QEMU).
I have been running performance tests and comparing them with an Ubuntu 20.04 VM. The original post on LXD's discuss page can be found here.
The findings indicated that there is a significant performance decrease when it comes to IO operations when comparing the performance values of Linux vs Windows VMs. I wanted to ask for input/validation from members of the community to see if these values are within the norm.
Following is the graph showing the performance ratio (Windows /  Linux VM Performance):

Hi, could you please share your Windows VM configuration (libvirt XML or QEMU command-line) ?

Hi, following is the LXD generated qemu.conf file:
# Machine
[machine]
graphics = "off"
type = "q35"
accel = "kvm"
usb = "off"

[global]
driver = "ICH9-LPC"
property = "disable_s3"
value = "1"

[global]
driver = "ICH9-LPC"
property = "disable_s4"
value = "1"
[boot-opts]
strict = "on"

# Console
[chardev "console"]
backend = "pty"

# Memory
[memory]
size = "15258M"

# CPU
[smp-opts]
cpus = "12"
sockets = "1"
cores = "12"
threads = "1"

[object "mem0"]

qom-type = "memory-backend-memfd"
size = "15258M"
share = "on"

[numa]
type = "node"
nodeid = "0"
memdev = "mem0"

# Firmware (read only)
[drive]
file = "/snap/lxd/current/share/qemu/OVMF_CODE.fd"
if = "pflash"
format = "raw"
unit = "0"
readonly = "on"

# Firmware settings (writable)
[drive]
file = "/var/snap/lxd/common/lxd/virtual-machines/windows-test/qemu.nvram"
if = "pflash"
format = "raw"
unit = "1"

# Qemu control
[chardev "monitor"]
backend = "socket"
path = "/var/snap/lxd/common/lxd/logs/windows-test/qemu.monitor"
server = "on"
wait = "off"

[mon]
chardev = "monitor"
mode = "control"

[device "qemu_pcie0"]
driver = "pcie-root-port"
bus = "pcie.0"
addr = "1.0"
chassis = "0"
multifunction = "on"

# Balloon driver
[device "qemu_balloon"]
driver = "virtio-balloon-pci"
bus = "qemu_pcie0"
addr = "00.0"

multifunction = "on"

# Random number generator
[object "qemu_rng"]
qom-type = "rng-random"
filename = "/dev/urandom"

[device "dev-qemu_rng"]
driver = "virtio-rng-pci"
bus = "qemu_pcie0"
addr = "00.1"

rng = "qemu_rng"

# Input
[device "qemu_keyboard"]
driver = "virtio-keyboard-pci"
bus = "qemu_pcie0"
addr = "00.2"

# Input
[device "qemu_tablet"]
driver = "virtio-tablet-pci"
bus = "qemu_pcie0"
addr = "00.3"

# Vsock
[device "qemu_vsock"]
driver = "vhost-vsock-pci"
bus = "qemu_pcie0"
addr = "00.4"

guest-cid = "14"

# Virtual serial bus
[device "dev-qemu_serial"]
driver = "virtio-serial-pci"
bus = "qemu_pcie0"
addr = "00.5"

# LXD serial identifier
[chardev "qemu_serial-chardev"]
backend = "ringbuf"
size = "16B"

[device "qemu_serial"]
driver = "virtserialport"
name = "org.linuxcontainers.lxd"
chardev = "qemu_serial-chardev"
bus = "dev-qemu_serial.0"

# Spice agent
[chardev "qemu_spice-chardev"]
backend = "spicevmc"
name = "vdagent"

[device "qemu_spice"]
driver = "virtserialport"
name = "com.redhat.spice.0"
chardev = "qemu_spice-chardev"
bus = "dev-qemu_serial.0"

# Spice folder
[chardev "qemu_spicedir-chardev"]
backend = "spiceport"
name = "org.spice-space.webdav.0"

[device "qemu_spicedir"]
driver = "virtserialport"
name = "org.spice-space.webdav.0"
chardev = "qemu_spicedir-chardev"
bus = "dev-qemu_serial.0"

# USB controller
[device "qemu_usb"]
driver = "qemu-xhci"
bus = "qemu_pcie0"
addr = "00.6"

[chardev "qemu_spice-usb-chardev1"]
  backend = "spicevmc"
  name = "usbredir"

[chardev "qemu_spice-usb-chardev2"]
  backend = "spicevmc"
  name = "usbredir"

[chardev "qemu_spice-usb-chardev3"]
  backend = "spicevmc"
  name = "usbredir"

[device "qemu_spice-usb1"]
  driver = "usb-redir"
  chardev = "qemu_spice-usb-chardev1"

[device "qemu_spice-usb2"]
  driver = "usb-redir"
  chardev = "qemu_spice-usb-chardev2"

[device "qemu_spice-usb3"]
  driver = "usb-redir"
  chardev = "qemu_spice-usb-chardev3"

[device "qemu_pcie1"]
driver = "pcie-root-port"
bus = "pcie.0"
addr = "1.1"
chassis = "1"

# SCSI controller
[device "qemu_scsi"]
driver = "virtio-scsi-pci"
bus = "qemu_pcie1"
addr = "00.0"

[device "qemu_pcie2"]
driver = "pcie-root-port"
bus = "pcie.0"
addr = "1.2"
chassis = "2"

# Config drive (9p)
[fsdev "qemu_config"]
fsdriver = "local"
security_model = "none"
readonly = "on"
path = "/var/snap/lxd/common/lxd/virtual-machines/windows-test/config.mount"

[device "dev-qemu_config-drive-9p"]
driver = "virtio-9p-pci"
bus = "qemu_pcie2"
addr = "00.0"
mount_tag = "config"
fsdev = "qemu_config"
multifunction = "on"

# Config drive (virtio-fs)
[chardev "qemu_config"]
backend = "socket"
path = "/var/snap/lxd/common/lxd/logs/windows-test/virtio-fs.config.sock"

[device "dev-qemu_config-drive-virtio-fs"]
driver = "vhost-user-fs-pci"
bus = "qemu_pcie2"
addr = "00.1"
chardev = "qemu_config"
tag = "config"

[device "qemu_pcie3"]
driver = "pcie-root-port"
bus = "pcie.0"
addr = "1.3"
chassis = "3"

# GPU
[device "qemu_gpu"]
driver = "virtio-vga"
bus = "qemu_pcie3"
addr = "00.0"

[device "qemu_pcie4"]
driver = "pcie-root-port"
bus = "pcie.0"
addr = "1.4"
chassis = "4"

# config drive
[drive "lxd_config"]
file = "/var/snap/lxd/common/lxd/virtual-machines/windows-test/config.iso"
format = "raw"
if = "none"
cache = "none"
aio = "native"
discard = "on"
media = "cdrom"
file.locking = "off"
readonly = "off"

[device "dev-lxd_config"]
driver = "scsi-cd"
bus = "qemu_scsi.0"
channel = "0"
scsi-id = "2"
lun = "1"
drive = "lxd_config"
bootindex = "2"

# root drive
[drive "lxd_root"]
file = "/dev/ubuntu-vg/virtual-machines_windows--test.block"
format = "raw"
if = "none"
cache = "none"
aio = "native"
discard = "on"
media = "disk"
file.locking = "off"
readonly = "off"

[device "dev-lxd_root"]
driver = "scsi-hd"
bus = "qemu_scsi.0"
channel = "0"
scsi-id = "0"
lun = "1"
drive = "lxd_root"
bootindex = "0"

[device "qemu_pcie5"]
driver = "pcie-root-port"
bus = "pcie.0"
addr = "1.5"
chassis = "5"

[device "qemu_pcie6"]
driver = "pcie-root-port"
bus = "pcie.0"
addr = "1.6"
chassis = "6"

[device "qemu_pcie7"]
driver = "pcie-root-port"
bus = "pcie.0"
addr = "1.7"
chassis = "7"

[device "qemu_pcie8"]
driver = "pcie-root-port"
bus = "pcie.0"
addr = "2.0"
chassis = "8"
multifunction = "on"

For some extra information, I downloaded WSL on the Windows Server VM to compare some simple dd performance values.
The following commands were executed to test read and write performance:
# Read operation tests
dd if=/root/input of=/dev/null bs="64k" count="400k" iflag=direct

# Write operation tests
dd if=/root/input of=/root/test bs="64k" count="400k"

Following are the average values after 6 runs of each test test:

It seems that for simple file copying operations the performance overhead on the Windows VM is lower when compared to DB operations.

@ye-yng
Do you have hyper-v optimizations enabled?  I'm mostly interested in hv_time flag status.
Can you please run the following utility https://bugzilla.redhat.com/attachment.cgi?id=1824469
inside of your VM and post the results?
Thanks,
Vadim.

@vrozenfe It seems I need prior authorization to access the utility:

@ye-yng
Please check it now? If it still doesn't work then ping me on vrozenfe_at_redhat_dot_com
Vadim.

This seems to be the only output from the utility.

@ye-yng
That's enough for now. Thank you.
It looks as you are using HPET (100MHz) but not hv_time (10 MHz). Most likely this is the reason for the Windows VM under-performing.
I have no experience with LDX, but I guess that when it comes to running Windows VMs it is still the same old kvm+qemu. You need to find out how to activate hyper-v enlightenments supported by kvm and qemu.  "hv_time" is one of the key features that need to be enabled before running any sort of benchmark tests.
Best,
Vadim.

Thanks for the information, I'll look into it and report back with any new findings.

After finding out how to pass the QEMU configuration options via LXD, I executed the less performant tests again with the following hv_* parameters: hv_time and hv_passthrough
The executable output looks like the following with hv_time and hv_passthrough:

Following are the benchmark results:

While the pgbench tests had a significant performance increase, the sqlite test seems to underperform by a significant amount in comparison to Linux based QEMU VMs.
Is this the expected result?

@ye-yng
virtio-blk and virtio-scsi can be a bit slower  on Windows comparing to Linux but probably not as much. I've seen some "fio" results on cnv recently. Windows was almost on pare with Linux in terms of storage performance.

@vrozenfe I installed fio on both the Linux and Windows VM and ran some performance tests. These tests were indeed quite close when it comes to storage performance.
It seems that the database benchmarks remain slower in comparison to file IO benchmarks, following are the final results side by side (with and without hv_passthrough flag):

The database benchmarks (SQLite and pgbench)had a significant increase in performance with the hv_passthrough flag while other tests had a marginal variation.
I will be installing a new server in the near future and will rerun these tests on it and report back any findings.

Hi @ye-yng,
I'm trying to reproduce this issue without LXD. Could you help to tell what's the host kernel and the qemu-kvm version are you using? I see you used OVMF, so could help provide ovmf/edk2 version as well?
And if possible, could you help to provide the qemu command lines? we can find it with command 'ps aux | grep qemu' on the host where instance running~
Thanks a lot~
Peixiu

@ye-yng @vrozenfe
Hi, I tried to reproduce this issue on a win2019 vm and a rhel9.0 vm, tested with a SQLite test, the performance on win2019 indeed slow than on the rhel9.0 vm. But I'm not sure if my configuration is same as customer(@ye-yng ), My test details as follows:
1. For win2019, the sqlite results as follows link:
https://openbenchmarking.org/result/2203285-NE-PEIXIUSQL33

2. For rhel9.0, the sqlite results as follows:

We can see there are large difference between the spent seconds of windows and linux with the same test. Let's diff the 2 results data details, sorry I have not found the diff function on PTS tool, so I manually diff as:
Win2019 performance/RHEL9.0 performance:

Used qemu commands:
/usr/libexec/qemu-kvm
-name 'avocado-vt-vm3'
-machine q35
-nodefaults
-vga std
-device pcie-root-port,port=0x10,chassis=1,id=pci.1,bus=pcie.0,multifunction=on,addr=0x3
-device pcie-root-port,port=0x11,chassis=2,id=pci.2,bus=pcie.0,addr=0x3.0x1
-device pcie-root-port,port=0x12,chassis=3,id=pci.3,bus=pcie.0,addr=0x3.0x2
-device pcie-root-port,port=0x13,chassis=4,id=pci.4,bus=pcie.0,addr=0x3.0x3
-device pcie-root-port,port=0x14,chassis=5,id=pci.5,bus=pcie.0,addr=0x3.0x4
-device pcie-root-port,port=0x15,chassis=6,id=pci.6,bus=pcie.0,addr=0x3.0x5
-device pcie-root-port,port=0x16,chassis=7,id=pci.7,bus=pcie.0,addr=0x3.0x6
-device pcie-root-port,port=0x17,chassis=8,id=pci.8,bus=pcie.0,addr=0x3.0x7
-device virtio-scsi-pci,id=scsi0,bus=pci.3,addr=0x0
-blockdev driver=file,filename=/home/kvm_autotest_root/images/win2019-64-virtio-scsi.qcow2,node-name=libvirt-3-storage,cache.direct=on,cache.no-flush=off,auto-read-only=on,discard=unmap
-blockdev node-name=libvirt-3-format,read-only=off,discard=unmap,detect-zeroes=unmap,cache.direct=on,cache.no-flush=off,driver=qcow2,file=libvirt-3-storage
-device scsi-hd,bus=scsi0.0,channel=0,scsi-id=0,lun=0,device_id=drive-scsi0-0-0-0,drive=libvirt-3-format,id=scsi0-0-0-0,bootindex=0,write-cache=on
-device virtio-net-pci,mac=9a:36:83:b6:3d:05,id=idJVpmsF,netdev=id23ZUK6,bus=pci.3
-netdev tap,id=id23ZUK6,vhost=on
-m 16384
-smp 12,maxcpus=12
-cpu host,hv_stimer,hv_synic,hv_vpindex,hv_reset,hv_relaxed,hv_spinlocks=0x1fff,hv_vapic,hv_time,hv-tlbflush,+kvm_pv_unhalt,hv_passthrough
-cdrom /home/WindowsServer2012Essentials-ADK.iso
-device piix3-usb-uhci,id=usb -device usb-tablet,id=input0
-vnc :6
-rtc base=localtime,clock=host,driftfix=slew
-boot order=cdn,once=c,menu=off,strict=off
-enable-kvm
-qmp tcp:0:4445,server,nowait
-monitor stdio \
Run SQLite test command:
phoronix-test-suite benchmark sqlite
Hi @ye-yng ,
Could you help to check my steps and configuration? I'm not sure if that's same with yours, thanks~
And if possible, I also want to see you used qemu commands as I mentioned on last comment.
Hi @vrozenfe Also please help to check the result, only system disk on both vm, win2019 with 45G disk size, rhel9.0 with 20G disk size, the performance is large different.
Thanks a lot for you~
Peixiu

HI @peixiu , thanks for updating with test results!
As I run qemu through LXD I am not very familiar with it. If you could provide some instructions to check the ovmf/edk2 versions that would be great.
Unfortunately the server I used for testing is currently off the network, but I'll report with the kernel and ovmf/edk2 version as soon as it is functioning again.
Meanwhile I have another server running LXD with a similar Windows Server 19 VM configuration running with the following qemu-kvm command:
/snap/lxd/x1/bin/qemu-system-x86_64 -S
-name windows-server
-uuid d3614689-c5c5-4470-922b-baa398250b54
-daemonize
-cpu host
-nographic
-serial chardev:console
-nodefaults
-no-user-config
-sandbox on,obsolete=deny,elevateprivileges=allow,spawn=deny,resourcecontrol=deny
-readconfig /var/snap/lxd/common/lxd/logs/windows-server/qemu.conf
-spice unix=on,disable-ticketing=on,addr=/var/snap/lxd/common/lxd/logs/windows-server/qemu.spice
-pidfile /var/snap/lxd/common/lxd/logs/windows-server/qemu.pid
-D /var/snap/lxd/common/lxd/logs/windows-server/qemu.log
-smbios type=2,manufacturer=Canonical Ltd.,product=LXD
-runas lxd
-cpu host,hv_passthrough,
-vmx

Hi All,
I tried to test this case with a bare metal system, installed a Win2019 os, hit the similar situation:, follows are SQLite test result on win2019 os which is installed on bare metal system.
https://openbenchmarking.org/result/2205102-NE-BERMETAL262

The bare metal system with 48 Logical processors, 64G memory, and I set the system disk size is 50G.
The VM with  12 vcpus and 16G memory, and the system disk size also is 50G.
The performance of SQLite benchmark test VM/baremetal is about 81%. althrough they have different cpu and memory, I think it's can be acceptable.
For the diff between windows vm and linux vm, I'm not sure the detail reason, I just found SQLite tool is developed base on diff VFS, eg  unix VFS and windows VFS, Reference doc as follows:
https://www.sqlite.org/vfs.html
And BTW, the SQLite tool seems not a block performance tool, it's focus on SQL, the testing content we can refer to this doc:
https://www.sqlite.org/testing.html
Thanks~
Peixiu

@peixiu - in your win 2019 VM, can you run cpuprint.exe and post the output, specifically of the CPUID 0x40000004, 0x00000000: Hypervisor Enlightenment Implementation Recommendations section. I see the bits you posted from your qemu command line, just want to validate how it actually shows up in the guest.
https://skanthak.homepage.t-online.de/cpuid.html

@peixiu - in your win 2019 VM, can you run cpuprint.exe and post the output, specifically of the CPUID 0x40000004, 0x00000000: Hypervisor Enlightenment Implementation Recommendations section. I see the bits you posted from your qemu command line, just want to validate how it actually shows up in the guest.
https://skanthak.homepage.t-online.de/cpuid.html

Hi @JonKohler I tried to download cpuprint.exe from you provide link, but the program was report contained a virus, so was blocked:

And I also did not find another tool to replace this one on windows.
I tried to get the cpuid info with a linux vm(booted with the same cpu flags as win2019 vm) , I'm not sure if it's ok, details as follows:
CPU 0:
vendor_id = "AuthenticAMD"
version information (1/eax):
processor type  = primary processor (0)
family          = Intel Pentium 4/Pentium D/Pentium Extreme Edition/Celeron/Xeon/Xeon MP/Itanium2, AMD Athlon 64/Athlon XP-M/Opteron/Sempron/Turion (15)
model           = 0x1 (1)
stepping id     = 0x2 (2)
extended family = 0x8 (8)
extended model  = 0x0 (0)
(simple synth)  = unknown
miscellaneous (1/ebx):
process local APIC physical ID = 0x0 (0)
cpu count                      = 0x2 (2)
CLFLUSH line size              = 0x8 (8)
brand index                    = 0x0 (0)
brand id = 0x00 (0): unknown
feature information (1/edx):
x87 FPU on chip                        = true
virtual-8086 mode enhancement          = true
debugging extensions                   = true
page size extensions                   = true
time stamp counter                     = true
RDMSR and WRMSR support                = true
physical address extensions            = true
machine check exception                = true
CMPXCHG8B inst.                        = true
APIC on chip                           = true
SYSENTER and SYSEXIT                   = true
memory type range registers            = true
PTE global bit                         = true
machine check architecture             = true
conditional move/compare instruction   = true
page attribute table                   = true
page size extension                    = true
processor serial number                = false
CLFLUSH instruction                    = true
debug store                            = false
thermal monitor and clock ctrl         = false
MMX Technology                         = true
FXSAVE/FXRSTOR                         = true
SSE extensions                         = true
SSE2 extensions                        = true
self snoop                             = false
hyper-threading / multi-core supported = true
therm. monitor                         = false
IA64                                   = false
pending break event                    = false
feature information (1/ecx):
PNI/SSE3: Prescott New Instructions     = true
PCLMULDQ instruction                    = true
64-bit debug store                      = false
MONITOR/MWAIT                           = false
CPL-qualified debug store               = false
VMX: virtual machine extensions         = false
SMX: safer mode extensions              = false
Enhanced Intel SpeedStep Technology     = false
thermal monitor 2                       = false
SSSE3 extensions                        = true
context ID: adaptive or shared L1 data  = false
FMA instruction                         = true
CMPXCHG16B instruction                  = true
xTPR disable                            = false
perfmon and debug                       = false
process context identifiers             = false
direct cache access                     = false
SSE4.1 extensions                       = true
SSE4.2 extensions                       = true
extended xAPIC support                  = true
MOVBE instruction                       = true
POPCNT instruction                      = true
time stamp counter deadline             = true
AES instruction                         = true
XSAVE/XSTOR states                      = true
OS-enabled XSAVE/XSTOR                  = true
AVX: advanced vector extensions         = true
F16C half-precision convert instruction = true
RDRAND instruction                      = true
hypervisor guest status                 = true
cache and TLB information (2):
processor serial number: 0080-0F12-0000-0000-0000-0000
MONITOR/MWAIT (5):
smallest monitor-line size (bytes)       = 0x0 (0)
largest monitor-line size (bytes)        = 0x0 (0)
enum of Monitor-MWAIT exts supported     = true
supports intrs as break-event for MWAIT  = true
number of C0 sub C-states using MWAIT    = 0x0 (0)
number of C1 sub C-states using MWAIT    = 0x0 (0)
number of C2 sub C-states using MWAIT    = 0x0 (0)
number of C3 sub C-states using MWAIT    = 0x0 (0)
number of C4 sub C-states using MWAIT    = 0x0 (0)
number of C5 sub C-states using MWAIT    = 0x0 (0)
number of C6 sub C-states using MWAIT    = 0x0 (0)
number of C7 sub C-states using MWAIT    = 0x0 (0)
Thermal and Power Management Features (6):
digital thermometer                     = false
Intel Turbo Boost Technology            = false
ARAT always running APIC timer          = true
PLN power limit notification            = false
ECMD extended clock modulation duty     = false
PTM package thermal management          = false
HWP base registers                      = false
HWP notification                        = false
HWP activity window                     = false
HWP energy performance preference       = false
HWP package level request               = false
HDC base registers                      = false
digital thermometer thresholds          = 0x0 (0)
ACNT/MCNT supported performance measure = false
ACNT2 available                         = false
performance-energy bias capability      = false
extended feature flags (7):
FSGSBASE instructions                    = true
IA32_TSC_ADJUST MSR supported            = true
SGX: Software Guard Extensions supported = false
BMI instruction                          = true
HLE hardware lock elision                = false
AVX2: advanced vector extensions 2       = true
FDP_EXCPTN_ONLY                          = false
SMEP supervisor mode exec protection     = true
BMI2 instructions                        = true
enhanced REP MOVSB/STOSB                 = false
INVPCID instruction                      = false
RTM: restricted transactional memory     = false
QM: quality of service monitoring        = false
deprecated FPU CS/DS                     = false
intel memory protection extensions       = false
PQE: platform quality of service enforce = false
AVX512F: AVX-512 foundation instructions = false
AVX512DQ: double & quadword instructions = false
RDSEED instruction                       = true
ADX instructions                         = true
SMAP: supervisor mode access prevention  = true
AVX512IFMA: fused multiply add           = false
CLFLUSHOPT instruction                   = true
CLWB instruction                         = false
Intel processor trace                    = false
AVX512PF: prefetch instructions          = false
AVX512ER: exponent & reciprocal instrs   = false
AVX512CD: conflict detection instrs      = false
SHA instructions                         = true
AVX512BW: byte & word instructions       = false
AVX512VL: vector length                  = false
PREFETCHWT1                              = false
AVX512VBMI: vector byte manipulation     = false
UMIP: user-mode instruction prevention   = false
PKU protection keys for user-mode        = false
OSPKE CR4.PKE and RDPKRU/WRPKRU          = false
BNDLDX/BNDSTX MAWAU value in 64-bit mode = 0x0 (0)
RDPID: read processor D supported        = false
SGX_LC: SGX launch config supported      = false
AVX512_4VNNIW: neural network instrs     = false
AVX512_4FMAPS: multiply acc single prec  = false
Direct Cache Access Parameters (9):
PLATFORM_DCA_CAP MSR bits = 0
Architecture Performance Monitoring Features (0xa/eax):
version ID                               = 0x0 (0)
number of counters per logical processor = 0x0 (0)
bit width of counter                     = 0x0 (0)
length of EBX bit vector                 = 0x0 (0)
Architecture Performance Monitoring Features (0xa/ebx):
core cycle event not available           = false
instruction retired event not available  = false
reference cycles event not available     = false
last-level cache ref event not available = false
last-level cache miss event not avail    = false
branch inst retired event not available  = false
branch mispred retired event not avail   = false
Architecture Performance Monitoring Features (0xa/edx):
number of fixed counters    = 0x0 (0)
bit width of fixed counters = 0x0 (0)
x2APIC features / processor topology (0xb):
--- level 0 (thread) ---
bits to shift APIC ID to get next = 0x0 (0)
logical processors at this level  = 0x1 (1)
level number                      = 0x0 (0)
level type                        = thread (1)
extended APIC ID                  = 0
--- level 1 (core) ---
bits to shift APIC ID to get next = 0x1 (1)
logical processors at this level  = 0x2 (2)
level number                      = 0x1 (1)
level type                        = core (2)
extended APIC ID                  = 0
XSAVE features (0xd/0):
XCR0 lower 32 bits valid bit field mask = 0x00000007
XCR0 upper 32 bits valid bit field mask = 0x00000000
XCR0 supported: x87 state            = true
XCR0 supported: SSE state            = true
XCR0 supported: AVX state            = true
XCR0 supported: MPX BNDREGS          = false
XCR0 supported: MPX BNDCSR           = false
XCR0 supported: AVX-512 opmask       = false
XCR0 supported: AVX-512 ZMM_Hi256    = false
XCR0 supported: AVX-512 Hi16_ZMM     = false
IA32_XSS supported: PT state         = false
XCR0 supported: PKRU state           = false
bytes required by fields in XCR0        = 0x00000340 (832)
bytes required by XSAVE/XRSTOR area     = 0x00000340 (832)
XSAVE features (0xd/1):
XSAVEOPT instruction                        = true
XSAVEC instruction                          = true
XGETBV instruction                          = true
XSAVES/XRSTORS instructions                 = true
SAVE area size in bytes                     = 0x00000340 (832)
IA32_XSS lower 32 bits valid bit field mask = 0x00000000
IA32_XSS upper 32 bits valid bit field mask = 0x00000000
AVX/YMM features (0xd/2):
AVX/YMM save state byte size             = 0x00000100 (256)
AVX/YMM save state byte offset           = 0x00000240 (576)
supported in IA32_XSS or XCR0            = XCR0 (user state)
64-byte alignment in compacted XSAVE     = false
hypervisor_id = "Linux KVM Hv"
0x40000001 0x00: eax=0x31237648 ebx=0x00000000 ecx=0x00000000 edx=0x00000000
0x40000002 0x00: eax=0x00003839 ebx=0x000a0000 ecx=0x00000000 edx=0x00000000
0x40000003 0x00: eax=0x00002aff ebx=0x00000030 ecx=0x00000000 edx=0x00080508
0x40000004 0x00: eax=0x00000e24 ebx=0x00000fff ecx=0x00000000 edx=0x00000000
0x40000005 0x00: eax=0x00000400 ebx=0x00000040 ecx=0x00000000 edx=0x00000000
extended processor signature (0x80000001/eax):
family/generation = AMD Athlon 64/Opteron/Sempron/Turion (15)
model             = 0x1 (1)
stepping id       = 0x2 (2)
extended family   = 0x8 (8)
extended model    = 0x0 (0)
(simple synth) = unknown
extended feature flags (0x80000001/edx):
x87 FPU on chip                       = true
virtual-8086 mode enhancement         = true
debugging extensions                  = true
page size extensions                  = true
time stamp counter                    = true
RDMSR and WRMSR support               = true
physical address extensions           = true
machine check exception               = true
CMPXCHG8B inst.                       = true
APIC on chip                          = true
SYSCALL and SYSRET instructions       = true
memory type range registers           = true
global paging extension               = true
machine check architecture            = true
conditional move/compare instruction  = true
page attribute table                  = true
page size extension                   = true
multiprocessing capable               = false
no-execute page protection            = true
AMD multimedia instruction extensions = true
MMX Technology                        = true
FXSAVE/FXRSTOR                        = true
SSE extensions                        = true
1-GB large page support               = true
RDTSCP                                = true
long mode (AA-64)                     = true
3DNow! instruction extensions         = false
3DNow! instructions                   = false
extended brand id (0x80000001/ebx):
raw     = 0x0 (0)
BrandId = 0x0 (0)
AMD feature flags (0x80000001/ecx):
LAHF/SAHF supported in 64-bit mode     = true
CMP Legacy                             = true
SVM: secure virtual machine            = true
extended APIC space                    = false
AltMovCr8                              = true
LZCNT advanced bit manipulation        = true
SSE4A support                          = true
misaligned SSE mode                    = true
3DNow! PREFETCH/PREFETCHW instructions = true
OS visible workaround                  = true
instruction based sampling             = false
XOP support                            = false
SKINIT/STGI support                    = false
watchdog timer support                 = false
lightweight profiling support          = false
4-operand FMA instruction              = false
NodeId MSR C001100C                    = false
TBM support                            = false
topology extensions                    = false
brand = "AMD EPYC 7301 16-Core Processor                "
L1 TLB/cache information: 2M/4M pages & L1 TLB (0x80000005/eax):
instruction # entries     = 0xff (255)
instruction associativity = 0x1 (1)
data # entries            = 0xff (255)
data associativity        = 0x1 (1)
L1 TLB/cache information: 4K pages & L1 TLB (0x80000005/ebx):
instruction # entries     = 0xff (255)
instruction associativity = 0x1 (1)
data # entries            = 0xff (255)
data associativity        = 0x1 (1)
L1 data cache information (0x80000005/ecx):
line size (bytes) = 0x40 (64)
lines per tag     = 0x1 (1)
associativity     = 0x2 (2)
size (KB)         = 0x40 (64)
L1 instruction cache information (0x80000005/edx):
line size (bytes) = 0x40 (64)
lines per tag     = 0x1 (1)
associativity     = 0x2 (2)
size (KB)         = 0x40 (64)
L2 TLB/cache information: 2M/4M pages & L2 TLB (0x80000006/eax):
instruction # entries     = 0x0 (0)
instruction associativity = L2 off (0)
data # entries            = 0x0 (0)
data associativity        = L2 off (0)
L2 TLB/cache information: 4K pages & L2 TLB (0x80000006/ebx):
instruction # entries     = 0x200 (512)
instruction associativity = 4-way (4)
data # entries            = 0x200 (512)
data associativity        = 4-way (4)
L2 unified cache information (0x80000006/ecx):
line size (bytes) = 0x40 (64)
lines per tag     = 0x1 (1)
associativity     = 16-way (8)
size (KB)         = 0x200 (512)
L3 cache information (0x80000006/edx):
line size (bytes)     = 0x40 (64)
lines per tag         = 0x1 (1)
associativity         = 16-way (8)
size (in 512KB units) = 0x20 (32)
Advanced Power Management Features (0x80000007/edx):
temperature sensing diode      = false
frequency ID (FID) control     = false
voltage ID (VID) control       = false
thermal trip (TTP)             = false
thermal monitor (TM)           = false
software thermal control (STC) = false
100 MHz multiplier control     = false
hardware P-State control       = false
TscInvariant                   = false
Physical Address and Linear Address Size (0x80000008/eax):
maximum physical address bits         = 0x30 (48)
maximum linear (virtual) address bits = 0x30 (48)
maximum guest physical address bits   = 0x0 (0)
Logical CPU cores (0x80000008/ecx):
number of CPU cores - 1 = 0x1 (1)
ApicIdCoreIdSize        = 0x1 (1)
SVM Secure Virtual Machine (0x8000000a/eax):
SvmRev: SVM revision = 0x1 (1)
SVM Secure Virtual Machine (0x8000000a/edx):
nested paging                 = true
LBR virtualization            = false
SVM lock                      = false
NRIP save                     = true
MSR based TSC rate control    = false
VMCB clean bits support       = false
flush by ASID                 = false
decode assists                = false
SSSE3/SSE5 opcode set disable = false
pause intercept filter        = false
pause filter threshold        = false
NASID: number of address space identifiers = 0x10 (16):
L1 TLB information: 1G pages (0x80000019/eax):
instruction # entries     = 0x0 (0)
instruction associativity = L2 off (0)
data # entries            = 0x0 (0)
data associativity        = L2 off (0)
L2 TLB information: 1G pages (0x80000019/ebx):
instruction # entries     = 0x0 (0)
instruction associativity = L2 off (0)
data # entries            = 0x0 (0)
data associativity        = L2 off (0)
SVM Secure Virtual Machine (0x8000001a/eax):
128-bit SSE executed full-width = false
MOVU* better than MOVL*/MOVH*   = false
Instruction Based Sampling Identifiers (0x8000001b/eax):
IBS feature flags valid              = false
IBS fetch sampling                   = false
IBS execution sampling               = false
read write of op counter             = false
op counting mode                     = false
branch target address reporting      = false
IbsOpCurCnt and IbsOpMaxCnt extend 7 = false
invalid RIP indication supported     = false
Lightweight Profiling Capabilities: Availability (0x8000001c/eax):
lightweight profiling                  = false
LWPVAL instruction                     = false
instruction retired event              = false
branch retired event                   = false
DC miss event                          = false
core clocks not halted event           = false
core reference clocks not halted event = false
interrupt on threshold overflow        = false
Lightweight Profiling Capabilities: Supported (0x8000001c/edx):
lightweight profiling                  = false
LWPVAL instruction                     = false
instruction retired event              = false
branch retired event                   = false
DC miss event                          = false
core clocks not halted event           = false
core reference clocks not halted event = false
interrupt on threshold overflow        = false
Lightweight Profiling Capabilities (0x8000001c/ebx):
LWPCB byte size             = 0x0 (0)
event record byte size      = 0x0 (0)
maximum EventId             = 0x0 (0)
EventInterval1 field offset = 0x0 (0)
Lightweight Profiling Capabilities (0x8000001c/ecx):
latency counter bit size          = 0x0 (0)
data cache miss address valid     = false
amount cache latency is rounded   = 0x0 (0)
LWP implementation version        = 0x0 (0)
event ring buffer size in records = 0x0 (0)
branch prediction filtering       = false
IP filtering                      = false
cache level filtering             = false
cache latency filteing            = false
Cache Properties (0x8000001d):
--- cache 0 ---
type                            = data (1)
level                           = 0x1 (1)
self-initializing               = true
fully associative               = false
extra cores sharing this cache  = 0x0 (0)
line size in bytes              = 0x3f (63)
physical line partitions        = 0x0 (0)
number of ways                  = 0x1 (1)
number of sets                  = 511
write-back invalidate           = true
cache inclusive of lower levels = false
--- cache 1 ---
type                            = instruction (2)
level                           = 0x1 (1)
self-initializing               = true
fully associative               = false
extra cores sharing this cache  = 0x0 (0)
line size in bytes              = 0x3f (63)
physical line partitions        = 0x0 (0)
number of ways                  = 0x1 (1)
number of sets                  = 511
write-back invalidate           = true
cache inclusive of lower levels = false
--- cache 2 ---
type                            = unified (3)
level                           = 0x2 (2)
self-initializing               = false
fully associative               = false
extra cores sharing this cache  = 0x0 (0)
line size in bytes              = 0x3f (63)
physical line partitions        = 0x0 (0)
number of ways                  = 0xf (15)
number of sets                  = 511
write-back invalidate           = false
cache inclusive of lower levels = false
--- cache 3 ---
type                            = unified (3)
level                           = 0x3 (3)
self-initializing               = true
fully associative               = false
extra cores sharing this cache  = 0x1 (1)
line size in bytes              = 0x3f (63)
physical line partitions        = 0x0 (0)
number of ways                  = 0xf (15)
number of sets                  = 16383
write-back invalidate           = false
cache inclusive of lower levels = true
extended APIC ID = 0
Extended APIC ID (0x8000001e/ebx):
compute unit ID            = 0x0 (0)
cores per compute unit - 1 = 0x0 (0)
Extended APIC ID (0x8000001e/ecx):
node ID             = 0x0 (0)
nodes per processor = 1 node (0)
0x8000001f 0x00: eax=0x00000000 ebx=0x00000000 ecx=0x00000000 edx=0x00000000
(instruction supported synth):
CMPXCHG8B                = true
conditional move/compare = true
PREFETCH/PREFETCHW       = true
(multi-processing synth): multi-core (c=2)
(multi-processing method): AMD
(APIC widths synth): CORE_width=1 SMT_width=0
(APIC synth): PKG_ID=0 CORE_ID=0 SMT_ID=0
(synth) = unknown
Best Regards~
Peixiu

reviewed


HMR does not work when updating HTML

While testing HMR according to this article https://github.com/damienbod/Angular2WebpackVisualStudio/blob/master/HMR.md, I've found our that it works perfectly, but if I change anything in html files, webpage is not updated.
NPM console says that app has been rebuilt, browser console says that app is updated successfully, I see that HRM path file is added, but rendered page is not changed in the browser until you hit refresh.
Is it reproducible for everyone? What could be the problem?

@artstalker I added a commit that should fix the problem.
@damienbod Without the following code:
if (module.hot) {
    module.hot.accept();
}

in the main.ts file, it's just a case that HMR was working. At the moment, I updated only the master branch, waiting for reports.
Greetings,
Roberto

@artstalker thanks for reporting, @robisim74 thanks for the fix

Thanks! That's exactly what I need!

Sorry, where does this module.hot come from? I'm trying to apply the same approach for my own project, but it fails with
 Cannot read property 'hot' of undefined

let module: any; in main.ts and webpack-dev-server --hot --inline --port 8080 in npm start

Yes, I declared exactly as you did in the commit above, but still module is undefined for me and it fails on this line of course:
if (module.hot) {
Do you know why? Who is setting the module variable? Maybe I'm missing some configuration?

webpack-dev-server sets the module. Try to compare the version of the packages, and the webpack configuration. There are no other settings to be set using dev-server.

I found out why it didn't work. Spent numerous amount of time on this...
So,  if you use any devtool except "source-map" (for example, eval-source-map, eval-cheap-module-source-map, eval-cheap-source-map etc), it just didn't work! module variable is always undefined no matter what.
I don't know what causes this issue, but I need to use some of eval-* devtools in order to boost building time in development mode. Haven't found any solution yet.

Guys, I've found where the problem is.
You need to declare module as following:
declare var module: any;
Then it works with ALL devtools. Can you commit this? I just don't have time right now.

Done. @artstalker Thanks for reporting.
Greetings,
Roberto


update 1.9.2

Linter check found the following problems:
The following problems have been found:
ERROR: /tmp/abs_81d9hxk4pj/clone/recipe/meta.yaml:50: missing_license_family: The recipe is missing the about/license_family key.
ERROR: /tmp/abs_81d9hxk4pj/clone/recipe/meta.yaml:50: http_url: http://amueller.github.io/word_cloud/ is not https
Errors were found


Remove AmlCompute.supported_vmsizes from the generated notebook, it creates a lot of un-needed noise:

@wchill
Remove this code from the generated notebook, it creates a lot of un-needed noise:
AmlCompute.supported_vmsizes(workspace = ws)

This will be removed in the next private preview version.

This is fixed now.


Why I can't see hostname ?

    cell.ipLabel.text = device.ipAddress
    cell.macAddressLabel.text = device.macAddress
    cell.hostnameLabel.text = device.hostname
    cell.brandLabel.text = device.brand

In this code there is a hostname section but application doesn't show any value about hostname.

Hi,
See this issue: https://github.com/mavris/MMLanScan/issues/12


Difference in output dimensions

Hello,
First of all thank you very much for the valuable code!
I used your code to convert my Keras model but there is some inconsistency in the output dimensions between the models.
Checking for the original model
model = load_model('keras_model.h5', compile=False)
print(model.output)

I obtained:

[<tf.Tensor 'conv2d_10/BiasAdd:0' shape=(?, ?, ?, 33) dtype=float32>, <tf.Tensor 'conv2d_13/BiasAdd:0' shape=(?, ?, ?, 33) dtype=float32>]

So the output of the model is a list of 2 tensors.
Now for the converted model in Tensorflow:
graph = tf.Graph()
with graph.as_default():
    graph_def = tf.GraphDef()
    with tf.gfile.GFile('tf_model.pb', 'rb') as fid:
        graph_def.ParseFromString(fid.read())
        tf.import_graph_def(graph_def, name='')

        # Print the name of operations in the session
        for op in graph.get_operations():
            print("Operation Name:",op.name)
            print("Tensor Stats:",str(op.values()))

The last few output lines of the above code is:

Operation Name : leaky_re_lu_9/LeakyRelu/mul
Tensor Stats : (<tf.Tensor 'leaky_re_lu_9/LeakyRelu/mul:0' shape=(?, ?, ?, 512) dtype=float32>,)
Operation Name : leaky_re_lu_9/LeakyRelu/Maximum
Tensor Stats : (<tf.Tensor 'leaky_re_lu_9/LeakyRelu/Maximum:0' shape=(?, ?, ?, 512) dtype=float32>,)
Operation Name : conv2d_10/convolution
Tensor Stats : (<tf.Tensor 'conv2d_10/convolution:0' shape=(?, ?, ?, 33) dtype=float32>,)
Operation Name : conv2d_10/BiasAdd
Tensor Stats : (<tf.Tensor 'conv2d_10/BiasAdd:0' shape=(?, ?, ?, 33) dtype=float32>,)
Operation Name : output_node0
Tensor Stats : (<tf.Tensor 'output_node0:0' shape=(?, ?, ?, 33) dtype=float32>,)

The last line is the output, it is a single tensor.
In conclusion, the Keras output is a list of 2 tensors, while the Tensorflow output is a single tensor.
Could you please help?
Thank you very much in advance!

I forgot to set the number of outputs to 2 when running the script, sorry. Problem solved.


Prefer using broadcast_in_dim/squeeze instead of reshape

reshape() is quite powerful, but does not necessarily preserve a notion of axis identity (particularly for axes of length 1). This is problematic for transformation rules that need to preserve a notion of axis identity, such as for masking and a new transformation rule I'm exploring for unraveling pytrees.
This PR adds a new lax.squeeze primitive, and rewrite functions from lax_numpy.py in terms of lax.squeeze/lax.broadcast_in_dim, whenever possible, to ensure a well-defined mapping between input and output axes. In particular, it updates: matmul, various stack functions, the array constructor, broadcasting arithmetic, array indexing, squeeze and reductions with keepdims=True.
I also implemented support for multiple axes in jnp.expand_dims (added in NumPy 1.18), since it was convenient for some of these other functions.
I considered trying to write a masking rule for broadcast_in_dim as well, but it was trickier than I expected and @JuliusKunze has probably already thought about it :)

@shoyer Indeed! I have the masking rule for broadcast_in_dim implemented locally, waiting for https://github.com/google/jax/pull/2922 to be merged before I can PR.

Thanks for the quick review!


Switching session?

So i make server on localhost, i can login etc, but how to connect to another server f.e connect to hypixel.net
I'am trying to connect bot to server and later send packet from bot to player , but i have exception like
"
The connection was terminated by software installed on the host computer"
before i send packet to player i check if player and bot is in SubProtocol.GAME and packet is not LoginSuccess cuz i have errors with unregister outgoing...

Sounds like it might be a connection problem. There is an example in the source if you want to make sure you're doing things correctly.

I fixed this but i have a lot of other errors like:
Caused by: java.lang.IllegalArgumentException: String cannot be null!
at org.spacehq.packetlib.tcp.io.ByteBufNetOutput.writeString(ByteBufNetOutput.java:128)
OR:
Caused by: java.lang.NullPointerException
at org.spacehq.mc.protocol.packet.ingame.server.entity.ServerEntityStatusPacket.write(ServerEntityStatusPacket.java:42)
OR:
Caused by: java.lang.IllegalArgumentException: Invalid packet id: 0
at org.spacehq.packetlib.packet.PacketProtocol.createIncomingPacket(PacketProtocol.java:114)
OR:
Caused by: java.lang.IllegalArgumentException: Invalid packet id: 3
at org.spacehq.packetlib.packet.PacketProtocol.createIncomingPacket(PacketProtocol.java:114)
OR:
Caused by: java.lang.NullPointerException
at org.spacehq.mc.protocol.packet.ingame.server.entity.ServerEntityStatusPacket.write(ServerEntityStatusPacket.java:42)
but when i log in on localhost, or other server withgout plugin or smaller servers all work ;/

Old version are not supported.


Fixed Word Wrap On Edit Mode

Open verse check and make sure the word choice text is not wrapped.

This change is

Reviewed 1 of 1 files at r1.
Review status: all files reviewed at latest revision, 1 unresolved discussion.

Comments from Reviewable


[core] Disable forceBufferSpill when io-manager is null.

io-manager is null, should not invoke spill.

Purpose

Linked issue: close #xxx

Tests

API and Format

Documentation

+1


Hey jordan i fixed js engine

pull this please

This doesn't fix anything. it just deletes the entire engine

WHEEZE

This doesn't fix anything. it just deletes the entire engine
:trollface:

pull this please

hey buddy, did you drop out of first grade so you could make the most effortless thing ever? or did your parents just think you don't need an education because you can't ever grow up to make an effort?

pull this please

hey buddy, did you drop out of first grade so you could make the most effortless thing ever? or did your parents just think you don't need an education because you can't ever grow up to make an effort?

you must be fun at parties - ever heard of a joke?

auricular death 7


FlutterCompass doesn't work in Redmi 6

I get 'E/SensorManager(30827): sensor or listener is null' error while I use FlutterCompass in Redmi 6.
It works in other devices as of now. Is it a known issue?

I get 'E/SensorManager(30827): sensor or listener is null' error while I use FlutterCompass in Redmi 6.
It works in other devices as of now. Is it a known issue?

Did you find a solution for this?

Fixed by #62


🩹  NICE-125 event info + skip music api [b]

Spotify API is kind of like ... not working. So this should be a direct Redis Cache hit in the menatime and something is really making it take forever. We know what the data is. Just set it and forget it until this needs to be dynamic again.

This pull request has been deployed to Vercel.

Latest commit:
c339cd9

✅ Preview:
https://jeromefitzgerald-8a9mwwv2a-j-e-r-o-m-e.vercel.app

🔍 Inspect:
https://vercel.com/j-e-r-o-m-e/jeromefitzgerald/Go7o42dugS83RpkRpAcJeathsTJ4

View Workflow Logs


Update TOC position due to Github design update (compare PR #43 && #55)

Update for PR #43 && #55.

Hey @ottnorml!
Sorry, I forgot about this PR... I'll merge it now.

@Mottie No prob, thanks for merging. :)


Folder name is not correct in demo text

In the CICD file README_CICDDemo.md the text for the Repository files section of:
The Gitea repository will have 4 files. They are linked here, found in the cicdDemoFiles directory in this repository:
Should read cicdDemo as the directory name.

fixed - thanks John!


:bug: server: revert non-standalone VW URL

Summary
Partially reverts logic introduced in #2407 so we don't unconditionally use the external URL - when non-standalone VW mode is used we still need the old behavior, or the loopback client can't access the non-standalone VW server.
This breaks shard bootstrapping (evidently not in our e2e scenarios, but in a real deployment where probes mean the proxy isn't ready until the shard bootstrap is complete)
I suspect further work will be required to make standalone VW mode work when deployed on a real cluster, since AFAICS we're always using the loopback config for the controllers, that should probably respect --logical-cluster-admin-kubeconfig I think?  /cc @p0lyn0mial
In my testing this fixes deployments without standalone VW, provided --shard-virtual-workspace-url is not specified - I'll work on follow-up testing to ensure things work with --shard-virtual-workspace-url and --shard-run-virtual-workspaces=false outside of the e2e tests

/retest

@ncdc FYI - I think this presents a problem for "real" deployments with standalone VW, since if we point ShardVirtualWorkspaceURL at the proxy, we have a chicken/egg issue wrt shard bootstrapping since the proxy isn't available until the shard Service endpoint is exposed (which depends on bootstrapping/readyz)

/hold
e2e-sharded failure does look related e.g
W0124 10:26:12.676402     712 reflector.go:324] k8s.io/client-go@v0.0.0-20230113194502-8f8fb5fa4eea/tools/cache/reflector.go:167: failed to list *v1alpha1.LogicalCluster: Get "https://<IP_ADDRESS>:7445/services/initializingworkspaces/system:apibindings/clusters/%2A/apis/core.kcp.io/v1alpha1/logicalclusters?limit=500&resourceVersion=0": x509: certificate is valid for localhost, <IP_ADDRESS>, not apiserver-loopback-client

#2407 passed so I need to figure out what changed and reproduce locally, currently I'm not clear why this previously worked given that AFAICS the controllers always use the loopback client...

Ok the failure in the previous revision was my mistake, I used ShardVirtualWorkspaceURL which is for shard->vw traffic, we still need to use ExternalAddress in the standalone VW case, so the initializingworkspaces requests hit the proxy.
This should now be ready to land as a first step (enables the integrated-VW case to work again when the shard is deployed behind a Service)
However @ncdc FYI I think we'll have to do further work to enable the standalone-vw case on real clusters - currently the shard bootstrap dependency on ExternalAddress presents a chicken/egg problem given that the proxy isn't available until the shard is ready.

@hardys let's chat tomorrow?

Sure, but we could also consider landing this as an interim measure (to unblock the unstable test environment)

/hold cancel
This could land now to unblock things, but I'll follow-up with @ncdc to discuss the plan for standalone vw - we could also look at reworking sharded-test-server so e2e better replicates the serialized bootstrapping behavior implied by using services and probes in a "real" deployment.

we could also look at reworking sharded-test-server so e2e better replicates the serialized bootstrapping behavior implied by using services and probes in a "real" deployment.

Turns out the proxy startup is already serialized (we wait until the shard is ready), so the main difference is --external-hostname isn't pointing to the proxy in CI, pushed https://github.com/kcp-dev/kcp/pull/2672 so we have a reproducer

Flake #2589
/retest


changes industycat_isic 1992-1996

Hi @gronert-m ,
The update requested for CHL V3,
Best,

@alexandraqn thanks for this! Please delete the branch if no longer needed.


WIP: CAPCOG, TX, USA: updated data url to 2016 and conform

Waiting for openaddresses/machine#681 to be released into prod (it probably has, I need to check)


fix: postcss-minify-gradients, Close #386

Coverage remained the same at 99.582% when pulling 077f118907df7355723a14f968b692590a4f35fb on pigcan:master into b8685a13e8a194af3ee0ad0f0a76d8cbadf0d86f on ben-eb:master.

It seems I made a mistake.
The code may write like this
background:radial-gradient(yellow 50%,purple 40%);

With my logic
it would output
background:radial-gradient(yellow 50%,purple 40%);

but
background:radial-gradient(yellow 50%,purple 0);

is expected.


(AUTOMATIC) opensource update

Avoid unnecessary data allocations in InitRegionData() based on issue #144.
This patch replaces a statically allocated standard library data type inside of region_data_constants.cc with an array of structs of C strings, which reduces the number of atexit destructors. To avoid too much code churn, the API in region_data_constants.h still uses standard library data type for GetRegionData() method, but it no longer returns a constant reference, because the returned value is temporary. This has a small ripple effect on a few places in libaddressinput that must stop using constant references as well.
This patch also updates to the latest metadata.

@sebsg please take a look.


Fix/dockerfile windows

this made it work under windows
but I need a confirmation that this still work under Linux and MacOS as i think it should continue working normally
#853

Please see my comment in the associated issue. The docker file is only intended to be used by our internal build process, and I don't see a reason why we should care about windows paths.

I agree with @paullatzelsperger. Also the change you suggest will break the functionality in all Unix environments.
If you want to make it run on your machine, you can try to use the WSL, which I always recommend when developing on Windows.

Unrelated: please check out our pr guidelines, as your pr violates many of them

thank you @florianrusch-zf for your feedback, i can explain exactly what i did in the build.gradle.kts
I just changed this line buildArgs.put("OTEL_JAR", agentFile.relativeTo(dockerContextDir).path)
into buildArgs.put("OTEL_JAR", agentFile.relativeTo(dockerContextDir).path.replace("\", "/"))
so that will change any backslash into forward slash which will cause no problems in the dockerfile.
From my own experience using linux there wont be any backslash in path strings
when the code inside the build.gradle.kts runs under MacOS or Linux we will get a similiar path to
build/ELEMENT.jar
but under windows
build\ELEMENT.jar
so the replace will only change the \ into /
I would be really grateful if you can tell me what do you mean by that and how?
,,Also the change you suggest will break the functionality in all Unix environments"
explaining more will help me to understand

@paullatzelsperger I think the reason why you should care about windows path and how it should be handled correctly its because windows is the most popular used OS currently.
It can take sometimes hours and days trying to figure out whats wrong and why its not building the projects, so i would prefer that to be written in documentation that its not compatible to be tested and developed under windows because we don't care about it.
it will save us time
thank you for pointing the PR violations i will take it that into consideration for next time.

@paullatzelsperger I think the reason why you should care about windows path and how it should be handled correctly its because windows is the most popular used OS currently.
It can take sometimes hours and days trying to figure out whats wrong and why its not building the projects, so i would prefer that to be written in documentation that its not compatible to be tested and developed under windows because we don't care about it.
it will save us time
thank you for pointing the PR violations i will take that into consideration for next time.

Again, the docker file is not intended for public consumption, as the official deliverables are docker images and helm charts. No point in documenting all unsupported scenarios. Users either stick to the supported ones, or they are on their own, as that would be an advanced use case, such as contributing to the project directly.
Advanced users are expected to figure out such basic build principles.
If for some reason you want to build your own docker image of tx-edc, you should create and maintain your own dockerfile instead of relying an internal tx-edc one.


lubridate cheatsheet

Will there be in the near future a "lubridate" cheatsheet?
It would be greatly appreciated, just as was stringr cheatsheet.
Thank you,
Juan

@jtelleriar Thanks for the recommendation. Lubridate is the next on my to
do list.
On Tue, Nov 14, 2017 at 10:35 AM, jtelleriar<EMAIL_ADDRESS>wrote:

Will there be in the near future a "lubridate" cheatsheet?
It would be greatly appreciated, just as was stringr cheatsheet.
Thank you,
Juan
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/rstudio/cheatsheets/issues/19, or mute the thread
https://github.com/notifications/unsubscribe-auth/AAFMFpJUPXTCSl-facRee48h2txiScUQks5s2bNGgaJpZM4QdhzZ
.

looking on the long term, another cheatsheet that could also be interesting apart from the lubridate one would be a h2o cheatsheet, in order to boost the R Machine Learning Community over Python:
https://www.h2o.ai/
h2o.ai is a Platform which allows to perform in an extremely easy way GPU Powered Multi-Cluster In-Memory Neural Networks, which I discovered just a month ago. And it has an R Front End, which allows to manipulate and exchange data between R and H2O.ai in a really easy way.
The only problem is that h2o is not part from the tidyverse universe, and contribution and help shall be sought from h2o.ai team.
I requested them help but I did not obtain answer:
https://0xdata.atlassian.net/browse/PUBDEV-5030
However, there is quite a lot documentation on the internet which could be used for doing such cheatsheet:

http://docs.h2o.ai/h2o/latest-stable/h2o-docs/booklets/RBooklet.pdf
https://h2o-release.s3.amazonaws.com/h2o/rel-slater/9/docs-website/h2o-docs/booklets/DeepLearning_Vignette.pdf
http://shop.oreilly.com/product/0636920053170.do

I would like to contribute in such cheatsheet myself, but I would need time... As I have to read the previous documentation and summarize it (Which will take me some time). However, the best solution would be to seek colaboration from the H2O.ai team.
Thank you @garrettgman ,
Juan Telleria

One issue that I think it could be interested is to mention in the lubridate cheatsheet is how to deal in ggplot2 with Time Axis, specially to show Yearly / Monthly / Weekly groups in an easy way.
Also "zoo" package might be interesting to be mentioned.
Cheers,
juan


[1.5.rc1] grid.remove: recalc total

Now when a record is deleted via ".remove" we see the error of variable msgNeedReload.
Not enough line: "this.total = this.records.length;"
        remove: function () {
...
	    this.total = this.records.length; <-- add
            this.refresh();
            return removed;
        },

If you're working with grid.url, shouldn't you remove records with grid.delete (instead of grid.remove), so that the record gets removed on the server side?
Unless you're mixing offline and online functionality in your project.
Either way, the fix you are suggesting can break functionality for other users that use grid.url.

I use w2grid with the url parameter.
First, the server sends a delete command entries and after confirmation it is necessary to delete a row in grid to save the current list and offset.
Might as well delete the row from the grid without reload?

If you remove the grid from one row, then the auto load will skip one value.
Maybe just decrease the value of the total, offset and that the number was correct - the load didn't miss value:
this.total = this.total - 1; <-- add
this.offset = this.offset - 1; <-- add
this.refresh();
return removed;

?


Zettlr: 1.8.7 -> 1.8.9

Motivation for this change
Things done

[x] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
Built on platform(s)

[x] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[x] Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[x] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Ensured that relevant documentation is up to date
[ ] Fits CONTRIBUTING.md.

Result of nixpkgs-review pr 123429 at 97afad78 run on x86_64-linux 1

2 packages built successfully:

tests.trivial
zettlr


feat(deps): Update deps 2023.06.04

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

v1.2.0
GitHub release

Your semantic-release bot :package::rocket:


Add MIT-License according to http://choosealicense.com/licenses/mit/

The Link in the README points to the master-branch. Obviously it will not be available there till it's merged.
Signed-off-by: Georg Hackel<EMAIL_ADDRESS>

Coverage remained the same at 100.0% when pulling 208d94a73efa23c25b7f27762dfb2551a3b4bc4e on feature/license into 788e80f4e412413fe857e2a39a806979914b8095 on develop.


Work on mono (Linux)

It is impossible currently to run it with Mono on Linux.
When .Net exe should be executed on Mono, Process.StartInfo.FileName should be "mono" and real executable name should be passed as first argument.
It would be also great if there would be possibility to pass fsc.exe through environment variable if it was not found in registry - it will give option to use FSharp.Compiler.Tools nuget package.

Really, the only that should be done to allow work on linux - read path from some environment variable if it was not found in registry. If Process.StartInfo.FileName is *.exe file name, it should be full name with path.

It would be even possible to workaround and provide some value from "registry" if in CompilerLocationUtils.fs will not be used P/Invoke and will be used reading from Wow6432Node node instead.
Next example use both solutions:
namespace Internal.Utilities
open System
open System.Runtime.InteropServices

module internal FSharpEnvironment =

    // The F# team version number. This version number is used for
    //     - the F# version number reported by the fsc.exe and fsi.exe banners in the CTP release
    //     - the F# version number printed in the HTML documentation generator
    //     - the .NET DLL version number for all VS2008 DLLs
    //     - the VS2008 registry key, written by the VS2008 installer
    //         HKEY_LOCAL_MACHINE\Software\Microsoft\.NETFramework\AssemblyFolders\Microsoft.FSharp-" + FSharpTeamVersionNumber
    // Also
    //     - for Beta2, the language revision number indicated on the F# language spec
    //
    // It is NOT the version number listed on FSharp.Core.dll
    let FSharpTeamVersionNumber = "<IP_ADDRESS>"

    module Option =
        /// Convert string into Option string where null and String.Empty result in None
        let ofString s =
            if String.IsNullOrEmpty s then None
            else Some s

    let tryRegKey(subKey:string) =
        Option.ofString
            (try
                downcast Microsoft.Win32.Registry.GetValue("HKEY_LOCAL_MACHINE\\"+subKey,null,null)
             with e->
                System.Diagnostics.Debug.Assert(false, sprintf "Failed in GetDefaultRegistryStringValueViaDotNet: %s" (e.ToString()))
                null)

    let BinFolderOfDefaultFSharpCompiler =
        try
            let key31wow = @"Software\Wow6432Node\Microsoft\FSharp\3.1\Runtime\v4.0"
            let key30wow = @"Software\Wow6432Node\Microsoft\FSharp\3.0\Runtime\v4.0"
            let key20wow = @"Software\Wow6432Node\Microsoft\FSharp\2.0\Runtime\v4.0"
            let key31 = @"Software\Microsoft\FSharp\3.1\Runtime\v4.0"
            let key30 = @"Software\Microsoft\FSharp\3.0\Runtime\v4.0"
            let key20 = @"Software\Microsoft\FSharp\2.0\Runtime\v4.0"

            match tryRegKey key31 with
            | Some r ->  Some r
            | None ->
            match tryRegKey key31wow with
            | Some r ->  Some r
            | None ->
            match tryRegKey key30 with
            | Some r ->  Some r
            | None ->
            match tryRegKey key30wow with
            | Some r ->  Some r
            | None ->
            match tryRegKey key20 with
            | Some r ->  Some r
            | None ->
            match tryRegKey key20wow with
            | Some r ->  Some r
            | None ->
            Option.ofString(Environment.GetEnvironmentVariable("FSharpPath"))
        with _ ->
            System.Diagnostics.Debug.Assert(false, "Error while determining default location of F# compiler")
            None

That looks fine to me. I'm not sure why the code currently uses different paths depending on whether the system is 32 or 64-bit, because it seems that querying explicitly under Wow6432Node using the .NET function works fine. Before I break something, @tpetricek, do you remember why the code is the way it currently is?

If nobody could verify safety of registry querying using manged code, could we at least add using of environment variable as last option?
Should I create PR?

Sorry for the delay. I'll commit your suggested change in a moment. Given that the existing code references how Windows 2000 and earlier behaved (!) and that it seems to work fine with the modified code, I think it's safe to modify.
We'll use FSHARPINSTALLDIR as the environment variable, since that's what's used by Visual Studio as well.

Added with fsprojects/FSharp.Compiler.CodeDom#9.

Where could I hope to see fixed version on nuget?

@drvink Can you push a new package to nuget?


UI breaking fixed

Fixes #213

Description:
I've fixed the breaking of the UI while fetching the events detail from the backend by adding a minimum height to the event component on the home page as suggested by @ankiiitraj , but instead of adding 700px , i used 100vh as minimum height because at large screen width 700px was not getting the desired result.
Checklist

[x] I've followed the Contributing guidelines provided in the repository.
[x] I've made the changes which were demanded in the linked issue.
[x] I've tested my code on a Chromium based browser.
[x] I've tested my code on Mozilla Firefox.
[x] My code gave a clean console on debugging. (no warnings/errors)

Testimonial

I'll look into it

Still looks a bit off to me @tusharjain0022

Seems this lil planet is being very mischievous...

@EmperorYP7 How's this ? Actually positioning the Planet in the center is leaving very little space for the Events list

How's this ? Actually positioning the Planet in the center is leaving very little space for the Events list

I would prefer 2. What do you say @hariom1625 and @ankiiitraj?

I would prefer 2. What do you say @hariom1625 and @ankiiitraj?

Design (2) LGTM !!

The second one looks great


Revert "Fix stale closures of event handlers"

Reverts wsmd/react-use-form-state#76

Pull Request Test Coverage Report for Build 328

3 of 3 (100.0%)  changed or added relevant lines in 2 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+1.7%) to 100.0%

Totals

Change from base Build 323:
1.7%

Covered Lines:
186

Relevant Lines:
186

💛  - Coveralls


Move all files to root

Hey, I'd like to suggest an improvement. There is an excellent babel plugin https://www.npmjs.com/package/babel-plugin-transform-imports which aims at killing unused code by transforming
import { Grid, Row, Col } from 'react-bootstrap';

to
import Grid from 'react-bootstrap/lib/Grid';
import Row from 'react-bootstrap/lib/Row';
import Col from 'react-bootstrap/lib/Col';

which is the ultimate solution for importing only whats necessary. Unfortunately, rxjs exports its modules from different paths (import 'rxjs/add/observable/of', import 'rxjs/add/operator/map'), so its impossible to take advantage of this solution.
Would you consider to move everything to the root level (like lodash) so we can comfortably import everything we need and let babel take care of eliminating unused modules?

I think this is sort of dupe to https://github.com/ReactiveX/rxjs/issues/2460 ?

True! Thanks for pointing to it


refactor: improve type model

Summary of Changes

Inject services into type instances where needed.
Add a factory service to create type instance using a similar interface to the previous constructors.
Types can now simplify themselves.
Add an intersection type.

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

npm package (@latest dist-tag)
npm package (@latest dist-tag)
v0.8.0
GitHub release

Your semantic-release bot :package::rocket:


Helm should create $HELM_HOME/plugins

Installing a plugin via helm plugin install fails if the plugins directory does not exist:
$ helm plugin install https://github.com/technosophos/helm-template
Error: plugin home "$HELM_HOME/plugins" does not exist

The directory needs to be manually created. It would be nice if helm automatically created this directory.
$ helm version
Client: &version.Version{SemVer:"v2.6.0", GitCommit:"5bc7c619f85d74702e810a8325e0a24f729aa11a", GitTreeState:"clean"}
Server: &version.Version{SemVer:"v2.6.0", GitCommit:"5bc7c619f85d74702e810a8325e0a24f729aa11a", GitTreeState:"clean"}

This directory is created when you run helm init or helm init --client-only. Does that work for you?

That works. Thanks!


Failures on [ VM / gen_snapshot ] Include resolved script URLs in non-PRODUCT AOT snapshots...Migrate benchmark/integration/

There are new test failures on [ VM / gen_snapshot ] Include resolved script URLs in non-PRODUCT AOT snapshots...Migrate benchmark/integration/.
The tests
vm/dart_2/gen_snapshot_include_resolved_urls_test RuntimeError (expected Pass)

are failing on configurations
dartkp-linux-debug-simarm-crossword
dartkp-linux-release-simarm-crossword

This test was added in https://dart-review.googlesource.com/c/sdk/+/193520.
@bkonyi Could you please take a look?

Also failing on the nightly simarm-crossword builders.


Multiple images to video?

Hi,
I am trying to merge multiple images dynamically into a single .MP4 video. However, it seems to be putting the last image:
  var video = ffmpeg();

  for (var i = 1; i <= 168; i++) {
    //console.log('Adding: ' + path.join(__dirname, 'public', 'tmp', 'frame-' + i.toString() + '.png'));
    video.input(path.join(__dirname, 'public', 'tmp', 'frame-' + i.toString() + '.png')).loop(1);
  }

  video.save(path.join(__dirname, 'public', 'videos', 'test.mp4'))
  .on('end', function() {
    console.log('file has been converted succesfully');
    res.redirect('/');
  })
  .on('error', function(err) {
    console.log('an error happened: ' + err.message);
  })

That's not how you make a video from multiple images using ffmpeg. Please try to achieve what you want from command line first, and then if you need help on how to convert that to a fluent-ffmpeg call, we'll be happy to help !


The InMobi SDK encountered an internal error.

Xiaomi HM NOTE 1S Android 4.4.4, API 19
When load ad in this devices,log return:The InMobi SDK encountered an internal error.

@jkm123 你好，请问这个错误当时你解决了吗？

@sunilkuna5-inmobi
Hi,
I am also getting this error. We have integrated inmobi banner and interstitial(Working fine) and now I am trying to integrate "native" ads but getting error.
I am using 'implementation 'com.inmobi.monetization:inmobi-ads-kotlin:10.5.4'
also tried latest version '10.5.9'
Sdk is getting initialize correctly but when I am trying to call 'inmobiNativeAd.load()' getting below error
onRequestFailed -> "The InMobi SDK encountered an internal error."
Please look into this on priority.
Kindly acknowledge.
Thanks


elementType on Button is not properly supported - Can't use Button with react-router Link

🐛 Bug Report

🤔 Expected Behavior
The docs says you can pass elementType for the root element rendered for button:

The HTML element or React element used to render the button, e.g. 'div', 'a', or RouterLink.

When a custom elementType is passed, SpectrumButtonProps should accommodate for the props of that elementType. So for example, to should become a valid prop when passing Link from react-router as elementType.
More importantly, it should pass the extra props down to that root component.

😯 Current Behavior
Current ts typing doesn't properly accommodate for elementType.
Beside from type definitions, it doesn't work as expected at the runtime too, since the rest of the otherProps here is not passed down to the button component:
https://github.com/adobe/react-spectrum/blob/1e2b7f280a04ead83e21b27fa580eb189e5f4186/packages/%40react-spectrum/button/src/Button.tsx#L40

💁 Possible Solution
Improving type definitions based on how Material-UI handles it: https://github.com/mui-org/material-ui/blob/5b038a001b87be07439d989a4c6796d142ca8349/packages/material-ui-unstyled/src/OverridableComponent.d.ts#L48
Also passing otherProps to the root component. Although it might be a little tricky if you want to keep the convention of not allowing for general html props (like className, style, etc.) for button.

🔦 Context

💻 Code Sample
Here is a codesandbox for seeing the issue in action:
https://codesandbox.io/s/blissful-cherry-oelql?file=/src/App.tsx

🌍 Your Environment

Software
Version(s)

react-spectrum
3.3.0

Browser
doesn't matter

Operating System
doesn't matter

🧢 Your Company/Team
Danske Bank

🕷 Tracking Issue (optional)

You could do something like this to remap the href prop to to:
function LinkWithHref({ href, children, ...otherProps }) {
  return (
    <Link to={href} {...otherProps}>
      {children}
    </Link>
  );
}

Here's an example: https://codesandbox.io/s/jovial-dubinsky-7z3m5?file=/src/App.tsx
I don't think we want to add all of the react router props to the Button component itself specifically. Seems hard to document and maintain.

Thanks for the suggestion @devongovett. It seems a bit of a hack though, as we are kind of misusing the already defined href prop, for passingto which is not even necessarily of the same type. to can be an object or a function for example.
To clarify, I don't mean react router Link props should be supported in particular, but if there is a support for elementType in button props, it should affect the props interface based on the value. So I expect props of whatever component I'm passing as elementType, to be valid props on the button. That's how it's implemented in material ui. You could argue that props may collide this way, but you can have a specific key in props for the elementType's props (e.g. elementTypeProps or elementProps) to prevent that.
Also note that this part from documentation suggests passing Link as elementType which doesn't work.

Thanks for the info. Personally, I haven't used React Router.
That's an interesting approach. One potential issue is that we currently don't pass through all DOM props in React Spectrum components, e.g. to prevent overriding the Spectrum-designed styles. If we supported this, it would be harder to enforce that.
I will think more on this and get back to you.

@devongovett Do you have more insights on this? I stumbled upon that issue today.
It would be amazing if the useButton hook include the to prop in the buttonProps object, it would solve this in a convenient way.

This issue should be closed now : the solution is to use the RouterProvider is out

@armandabric But the described issue about accepting a custom component in elementType and not allowing for its props still exists.
Also, the RouterProvider solution still requires links to interface on href, but react router link component, for example, supports a Location object in to prop.

I can confirm that this uses client side routing:
import { Button, Link } from "@adobe/react-spectrum";

function ButtonLink() {
  return (
    <Button variant="accent" elementType={Link} href="/bread">
      Go to bread
    </Button>;
  )
}

However, the element is not styled as a button — it's styled as if Link was used directly.
I think this is a use case that is code to Button. From the Spectrum design docs:

Buttons allow users to perform an action or to navigate to another page. They have multiple styles for various needs, and are ideal for calling attention to where a user needs to do something in order to move forward in a flow.

While we could use useNavigage in onPress to programmatically navigate, the point of supporting href and elementType="a" is to use Button as per the design docs to "navigate to another page". This doesn't work with client side routing, however. Given the effort to support client side routing, Button ought to support this use case.
I'm using react-spectrum v3.35.1.


Fix build issues of triton-translate tool

The tool would still need some more work to become useful, but this at least makes it build and call into the right hooks.

I actually don't think we're using triton-translate anywhere anymore since the unit tests migrated to triton.tools.aot. I'll merge this PR though but may remove triton-translate soon


Add new Action to Release a new ISA when merging a PR

This commit introduces a new GitHub Action designed to automatically release a new ISA version following the merge of each pull request. This enhancement ensures the ISA remains consistently updated, particularly after the integration of new extensions through PRs.

@rpsene Looks like this didn't work: https://github.com/riscv/riscv-isa-manual/actions/runs/8089029822/job/22104219136#step:13:38

@rpsene Looks like this didn't work: https://github.com/riscv/riscv-isa-manual/actions/runs/8089029822/job/22104219136#step:13:38

I will debug and fix.

thanks!


Run presubmit checks on PRs to master only

This relaxes the requirements for merging PRs to other PRs or non-master branches.
@pcvera since you're authoring PRs targeting @rgossiaux's PR for the react rewrite, I figure we shouldn't block the changes on presubmit checks until it's time to merge the whole thing into master (a.k.a. the main branch).

I think it's still helpful to run precommit checks when merging to non-master branches. Note, since other branches are not protected, failing checks does not block merging to non-master branches. E.g., in #244, you can still merge even though checks have failed:

Oh good to know - thanks for pointing it out @erwa - let's scrap this PR then 😄

Oh wait, I guess the rename is still helpful, so I can just revert the pull_request change - wdyt?

Yeah same :+1: figured it was one of those "might as well" situations :smile:


Convergence with mbed-cloud-client-example...

Now that the Mbed OS 5.10.0 release is coming soon, it brings with it all the default interfaces for block devices and network interfaces. This simplifies quite a bit of the complexity that was originally present in the apis/examples.
What are your thoughts on trying to move the lessons learned with this API back into the mainline mbed-cloud-client library and example? It would certainly help remove some of the engineering load and time spent porting this library for each release.

@bridadan thanks for raising this. @janjongboom and I are definitely interested in this, although need to see some more enhancements. Currently, the mbed-cloud-client example is too complex for developers to get started and there are so many unnecessary files (for actual users).
Let's discuss offline.

@bridadan I've been trying to get simple client mainlined for the last 2.5 years but core team has not taken interest in it.

I'm not sure if we need to get the whole thing mainlined, more like get the key points mainlined. We can't change the whole API at this point. But I think it'd be worth looking into the changes to the client that went in for 5.10 and see how the stack up against what is present here. I wonder if some of the pain points surrounding adding a NetworkInterface and FileSystem have improved.


 This failure was from running on the host machine, as part of evaluating the speed of these machines.
/cc @mikioh, @davecheney, @crawshaw, @adg

And the strace:
[pid 15756] socket(PF_INET, SOCK_RAW|SOCK_CLOEXEC|SOCK_NONBLOCK, IPPROTO_ICMP) = 3
[pid 15756] setsockopt(3, SOL_SOCKET, SO_BROADCAST, [1], 4) = 0
[pid 15756] bind(3, {sa_family=AF_INET, sin_port=htons(0), sin_addr=inet_addr("<IP_ADDRESS>")}, 16) = 0
[pid 15756] epoll_ctl(4, EPOLL_CTL_ADD, 3, {EPOLLIN|EPOLLOUT|EPOLLRDHUP|EPOLLET, {u32=3058795512, u64=3058795512}}) = 0
[pid 15756] getsockname(3, {sa_family=AF_INET, sin_port=htons(1), sin_addr=inet_addr("<IP_ADDRESS>")}, [16]) = 0
[pid 15756] getpeername(3, 0x10649bac, [112]) = -1 ENOTCONN (Transport endpoint is not connected)
[pid 15756] fcntl(3, F_DUPFD_CLOEXEC, 0) = 5
[pid 15756] fcntl(5, F_GETFL)           = 0x802 (flags O_RDWR|O_NONBLOCK)
[pid 15756] fcntl(5, F_SETFL, O_RDWR)   = 0
[pid 15756] fcntl(5, F_DUPFD_CLOEXEC, 0) = 6
[pid 15756] fcntl(6, F_GETFL)           = 0x2 (flags O_RDWR)
[pid 15756] fcntl(6, F_SETFL, O_RDWR|O_NONBLOCK) = 0
[pid 15756] getsockopt(6, SOL_SOCKET, SO_TYPE, [3], [4]) = 0
[pid 15756] getsockname(6, {sa_family=AF_INET, sin_port=htons(1), sin_addr=inet_addr("<IP_ADDRESS>")}, [16]) = 0
[pid 15756] getpeername(6, 0x10649bdc, [112]) = -1 ENOTCONN (Transport endpoint is not connected)
[pid 15756] epoll_ctl(4, EPOLL_CTL_ADD, 6, {EPOLLIN|EPOLLOUT|EPOLLRDHUP|EPOLLET, {u32=3058795392, u64=3058795392}}) = 0
[pid 15756] sendto(6, "", 0, 0, {sa_family=AF_INET, sin_port=htons(0), sin_addr=inet_addr("<IP_ADDRESS>")}, 16) = -1 EFAULT (Bad address)
[pid 15756] clock_gettime(CLOCK_REALTIME, {1430954968, 213392054}) = 0
[pid 15756] write(1, "--- FAIL: TestFilePacketConn (0."..., 529--- FAIL: TestFilePacketConn (0.04s)
        file_test.go:113: write ip <IP_ADDRESS>-><IP_ADDRESS>: sendto: bad address
) = 529
[pid 15756] write(1, "FAIL\n", 5FAIL
)       = 5
[pid 15756] close(3)                    = 0
[pid 15756] exit_group(1)               = ?
[pid 15758] +++ exited with 1 +++
[pid 15757] +++ exited with 1 +++
+++ exited with 1 +++

The sendto EFAULT is seems wrong.
       EFAULT An invalid user space address was specified for an argument.

The man page says:
       ssize_t sendto(int sockfd, const void *buf, size_t len, int flags,
                      const struct sockaddr *dest_addr, socklen_t addrlen);

Is a NULL buf *void okay, even with len 0?

Actually, the syscall package already tries hard to avoid a NULL *void:
// Single-word zero for use when we need a valid pointer to 0 bytes.
// See mksyscall.pl.
var _zero uintptr

func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) {
        var _p0 unsafe.Pointer
        if len(buf) > 0 {
                _p0 = unsafe.Pointer(&buf[0])
        } else {
                _p0 = unsafe.Pointer(&_zero)
        }
        _, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen))
        if e1 != 0 {
                err = errnoErr(e1)
        }
        return
}

... yet &_zero (which should be non-nil) ends up as zero according to the strace.
Is Syscall6 doing the right thing?
This machine FWIW has 4 of these:
# cat /proc/cpuinfo
processor       : 0
model name      : ARMv7 Processor rev 2 (v7l)
BogoMIPS        : 1332.01
Features        : half thumb fastmult vfp edsp thumbee vfpv3 tls idiva idivt vfpd32 lpae
CPU implementer : 0x56
CPU architecture: 7
CPU variant     : 0x2
CPU part        : 0x584
CPU revision    : 2

/cc @minux @ianlancetaylor @rsc @davecheney @josharian

Maybe dup of #7229?

No, I just can't read. The buf pointer is indeed non-zero. I was off by one reading all the empty values.  And strace in raw mode (as well as some printlns in the syscall package) confirms:
[pid 16133] write(2, "sendto zero ", 12sendto zero ) = 12
[pid 16133] write(2, " ", 1 )            = 1
[pid 16133] write(2, "0x3af964", 80x3af964)     = 8
[pid 16133] write(2, " ", 1 )            = 1
[pid 16133] write(2, "0x3af964", 80x3af964)     = 8
[pid 16133] write(2, "\n", 1
)           = 1
[pid 16133] write(2, "sendto ", 7sendto )      = 7
[pid 16133] write(2, " ", 1 )            = 1
[pid 16133] write(2, "290", 3290)          = 3
[pid 16133] write(2, " ", 1 )            = 1
[pid 16133] write(2, "6", 16)            = 1
[pid 16133] write(2, " ", 1 )            = 1
[pid 16133] write(2, "3864932", 73864932)      = 7
[pid 16133] write(2, " ", 1 )            = 1
[pid 16133] write(2, "0", 10)            = 1
[pid 16133] write(2, " ", 1 )            = 1
[pid 16133] write(2, "0", 10)            = 1
[pid 16133] write(2, " ", 1 )            = 1
[pid 16133] write(2, "275330280",<PHONE_NUMBER>)    = 9
[pid 16133] write(2, " ", 1 )            = 1
[pid 16133] write(2, "16", 216)           = 2
[pid 16133] write(2, "\n", 1
)           = 1
[pid 16133] sendto(0x6, 0x3af964, 0, 0, 0x106934e8, 0x10) = -1 (errno 14)

So it's only len and flags which are zero.
Still no clue about the EFAULT, though.

The syscall code is correct as far as I can see.
Note that the kernel is not complaining about NULL buf. EFAULT must be for
something else.
sendto(6, "", 0, 0, {sa_family=AF_INET, sin_port=htons(0),
sin_addr=inet_addr("<IP_ADDRESS>")}, 16) = -1 EFAULT (Bad address)
Note that the 2nd argument is "", not NULL. strace(1) treats the buffer as
a pointer to a string.
as _zero is declared as var _zero uintptr, it's content defaults to zero,
so the address is pointing
to a memory region consists solely of NUL bytes, so strace display that as
an empty string "".

Ah, if the error you are seeing is only
write ip <IP_ADDRESS>-><IP_ADDRESS>: sendto: bad address

I'll take this issue. Seems like it just happens in the top/middle-half of ICMP stack.

Not sure what that means but happy for a fix. (ICMP has three halves? :))

As a matter of convenience, I usually think that it consists of socket-interface adaptation layer (or service access point layer), protocol layer and transport (in this case IP) adaptation layer. I believe that the root cause of this issue is just passing a corrupted ICMP packet to the kernel. Certainly the 4-year-old test cases need to be updated for the recent restricted kernels.
In addition, from Go 1.5, the full stack test cases for IPConn have been moved to the following:
golang.org/x/net/ipv4
golang.org/x/net/ipv6
golang.org/x/net/icmp
I'm happy if buildbots can support to run tests in x/net with administrator privilege eventually.

I'm going to just delete that test for now, then. You can re-enable it later when you identify how the test is broken.

Kernel is 3.19.1-181, FWIW.

Subscribing, I'm from the Scaleway team


Wanted feature: allow enabling/disabling helmet HUD smooth follow

Hi folks 😄 !
I recently discovered this mod, and it's wonderful, bext VR experience I've ever had. It really looks like a native VR game. Congrats to @Raicuparta and the rest of contributors for it. It is filling the void that beating the DLC left inside me (for the second time, after beating the original game when it was released) and has given me the perfect excuse to run through the game once again, this time on VR.
I'm adding this feature because it's something that has annoyed me sometimes. Having the HUD slightly delayed behind my head movement works well on flat screen to increase immersion but it breaks it for me on VR, and I think it even contribute to nausea and motion sickness. It's well known that a common measure to reduce motion sicknes is having a fixed frame around the game view to look at. So this feature, imo, works in these 2 ways: it helps reducing motion sickness and, at least for me, increases immersion.
Here's a video that shows it working:
https://user-images.githubusercontent.com/16073309/137630209-5eac0f1d-111a-4152-b2b0-d9057989966d.mp4
I'd like to try the same for the removing the camera smoothness when flying the ship, but that is secondary and not as annoying (maybe it's even nicer, I'll know when I try it). Besides, I see that there are some issues reported and ongoing work to support the DLC, so you might see me around again contributing with something else :)
Happy hacking ! ✌
P.S: I'm participating in hacktoberfest, if you could add the hacktoberfest-accepted label to the PR I'd appreciate it 👼

That KS for the contribution! I've actually wanted to completely remove HUD smooth follow for a while, we might do that. But for now please wait until after we release NomaiVR 2.0.0, after that we'll look into this again.

@Maximetinu sorry that it's been so long. NomaiVR 2.0.0 has been out for a while, but OWML had a bug where it wouldn't allow mod settings to scroll, so we couldn't consider adding this yet. If you're still interested, you'd need to update your PR to solve these conflicts (since I think you based your code on an older NomaiVR version).

Sure, I’ll do it when I get a chance! (probably on a weekend, because I'm a
little short on time)
On Sun, 14 Nov 2021 at 11:15, Ricardo @.***> wrote:

@Maximetinu https://github.com/Maximetinu sorry that it's been so long.
NomaiVR 2.0.0 has been out for a while, but OWML had a bug where it
wouldn't allow mod settings to scroll, so we couldn't consider adding this
yet. If you're still interested, you'd need to update your PR to solve
these conflicts (since I think you based your code on an older NomaiVR
version).
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/Raicuparta/nomai-vr/pull/441#issuecomment-968270186,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AD2UEXMU37YJUELD2VPIOBDUL6K5VANCNFSM5GE3ICWQ
.

Conflicts resolved 😁

Works great! I had to fix an issue with a missing reference, and wanted to clean up that smooth follow file, so I made a separate PR based on yours (#490).

Perfect! I forgot to mention but sure feel free to make any modifications! 🙂 Don't know how I missed that using without noticing 🤦♂ I'm glad you fixed it, thanks

The ship has a similar smoothing effect when you're flying it, do you have any clue in what part of the code could that be enabled/disabled too?

The mod doesn't do any smoothing there, whatever you're seeing is a base game thing. For rotation there isn't any smoothing, but for movement the game has some kind of smoothed delay between the player body and ship body velocities.

I see. Then I guess that if I want to disable that built-in smoothing behaviour from the base game, I will have to search for the class and method responsible for that in the original game assembly and create a new patch for it, inheriting from the NomaiVRPatch class, and empty the methods responsible for this smoothing with the NomaiVRPatch.Empty<T> method, right?
Is that more or less the right direction to start looking into this?

Yep, something like that.


IPlace and Routing Engine

Create the IPlace routing engine

Everything in... now only thing to do is try it out and see if it can do what we want (or not).