Empty channel list when using "priority only" mode

When using wild mode miner able to mine the drops but in priority only mode miner unable to fetch any channels. not sure its a bug in the application or issues with games with special characters in their title.

Hello there o/
It's hard to say anything specific here. The channels from the first of your pictures, could've came from an entirely different campaign than you have added to your priority list. Channels aren't tied to any particular campaign. Imagine a situation like this:
Campaign #1 with game X, with an ACL that includes channel A, B and C
Campaign #2 with game Y, with no ACL
Priority list is set only to game Y.
With the "Priority only" option disabled, both campaigns would be considered. Channels A, B and C would be added to the list for tracking purposes. If any of those channels would end up streaming game Y, it'd be used to mine the 2nd campaign.
With the "Priority only" option enabled, only the 2nd campaign would be considered. The automatic channel search can fail (due to #212), leaving you with no channels on the list and no mining happening.
Given the 1st picture has a full house on the websocket topics, and the 3rd one has none, it's quite simple to say that, among those 398 channels that are tracked on the 1st picture, there can easily be some channels found that will end up playing games from the priority list. This is pure coincidence though, hence the difference.
This is most likely a duplicate of #212, so I'm closing it. You can disable the "Priority only" option until it's fixed.


Database file encryption

Does Nitrite supports DB file encryption as supported by H2 (http://www.h2database.com/html/features.html#file_encryption)?
Our initial experiments shows that the db file contains some plain text of the added info

At initial stages, there was encryption, but it slows down the db operations significantly, so I removed it later. I'll recommend, encrypt your data wherever required at the object level.

Alright thanks. Encrypted data at the application level is not a good option since anyone can read the private key from the source code to manually decrypt it (although same can be said for the other file level encryption).


Codes in C++

Hi!
I am sorry for opening an issue here. I have been following the stuff on Growing with the web since a long time. I am primarily strong in C++. If its okay with you, I'd like to contribute the code for the algorithms in C++. I already have the code for Fibonacci Heap, Binomial Heap and RB trees.
Thanks

Wasn't even watching my own repo 🤷♂
If you're still interested in this I can setup a cpp-fibonacci-heap repo to contribute to, I've been wanting to expand into C++ but not know how to set up a nice minimal build with tests was blocking me.

Closing out as I won't have time for this, I think it's best to keep gwtw as my own code as a companion to my blog


Kmod_External DeadlySignal

im trying to use your Kmod_example but everytime i try i get this
`sudo ./kmod_example
Using Mode: MODE_EXTERNAL
Mapping VM memory, this will take a second...
Mem:	7efb75200000	| Size:	6d6000000
AddressSanitizer:DEADLYSIGNAL
==7296==ERROR: AddressSanitizer: SEGV on unknown address 0x7efb75200000 (pc 0x7f3c1c5a76c4 bp 0x7fff9f6b3c90 sp 0x7fff9f6b3418 T0)
==7296==The signal is caused by a READ memory access.
#0 0x7f3c1c5a76c3  (/lib/x86_64-linux-gnu/libc.so.6+0xbb6c3)
#1 0x4dc41d  (/home/alec/ree/vmread/build/kmod_example+0x4dc41d)
#2 0x52f5db  (/home/alec/ree/vmread/build/kmod_example+0x52f5db)
#3 0x51db67  (/home/alec/ree/vmread/build/kmod_example+0x51db67)
#4 0x51cc2d  (/home/alec/ree/vmread/build/kmod_example+0x51cc2d)
#5 0x52c7d9  (/home/alec/ree/vmread/build/kmod_example+0x52c7d9)
#6 0x52a0fc  (/home/alec/ree/vmread/build/kmod_example+0x52a0fc)
#7 0x53531c  (/home/alec/ree/vmread/build/kmod_example+0x53531c)
#8 0x7f3c1c50db27  (/lib/x86_64-linux-gnu/libc.so.6+0x21b27)
#9 0x41daf9  (/home/alec/ree/vmread/build/kmod_example+0x41daf9)
AddressSanitizer can not provide additional info.
SUMMARY: AddressSanitizer: SEGV (/lib/x86_64-linux-gnu/libc.so.6+0xbb6c3)
==7296==ABORTING
`
i have tried changing the compiler to clang different versions of clang and different versions of gcc and g++ but to no avail. I know 2 other people who are having the same issue.

Seems like you have not loaded in the vmread kernel module. Be sure to check dmesg for this line:
vmread: initialized

When it is loaded in properly and the example code runs, you should see something like this in the dmesg output:
[ 2764.049071] vmread: checking 0x400000 pages
[ 2764.104599] vmread: got 0x400000 pages
[ 2764.563695] vmread: mapping successful!

If any of this fails, please post the errors and the stacktrace when built in debug mode (meson's --buildtype=debug option).

thanks i figured it out


Update secure-connect.md

Thanks for contributing to the Harness Developer Hub! Our code owners will review your submission.
Description

Please describe your changes: updated flag required for using secure connect on macos
Jira/GitHub Issue numbers (if any): CI-14835
Preview links/images (Internal contributors only): __________________

PR lifecycle
We aim to merge PRs within one week or less, but delays happen sometimes.
If your PR is open longer than two weeks without any human activity, please tag a code owner in a comment.
PRs must meet these requirements to be merged:

[ ] Successful preview build.
[ ] Code owner review.
[ ] No merge conflicts.
[ ] Release notes/new features docs: Feature/version released to at least one prod environment.

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.

Please check the Execution Link of the Pipeline for the Website Draft URL. This is located in the Preview Step behind the Harness VPN and also is available in #hdh_alerts. E.g Website Draft URL: https://unique-id--harness-developer.netlify.app. Current Draft URL is: https://670d81c14de0a66794fafd7c--harness-developer.netlify.app

Please check the Execution Link of the Pipeline for the Website Draft URL. This is located in the Preview Step behind the Harness VPN and also is available in #hdh_alerts. E.g Website Draft URL: https://unique-id--harness-developer.netlify.app. Current Draft URL is: https://670d8cf117d4f374fe4106c5--harness-developer.netlify.app

Please check the Execution Link of the Pipeline for the Website Draft URL. This is located in the Preview Step behind the Harness VPN and also is available in #hdh_alerts. E.g Website Draft URL: https://unique-id--harness-developer.netlify.app. Current Draft URL is: https://670e73385d179009ebe095c7--harness-developer.netlify.app


MileStone-Carnival

TODO:
1)Release notes.
2)Source release and test every thing works properly with appropriate Chromium release.

@rakuco We want to come up with some good names for the Milestones
Usual commits:
1)https://github.com/01org/ozone-wayland/commit/a005357c9386c6c0030cb83e885234fc0f263da0
2)https://github.com/01org/ozone-wayland/commit/be1710d367ae8794e45af3ef9621b2259490a997
3)https://github.com/01org/ozone-wayland/commit/3b101e471ded02ab5ab7360a7b48ec76de1d080b

@rakuco We want to come up with some good names for the Milestones

Given I'm currently in Brazil at the moment, Milestone-Carnival is the first one that comes to mind ;-)

Updated :)

M41 was finally promoted to beta at the end of last week. Should we first move master forward a bit and then branch Carnival?
I'm asking because for 41.0.2272.16 (as well as M42/master) 0005-Media-Build-VaapiPictureWayland-as-part-of-Media.patch needs to be rebased and integrated with https://codereview.chromium.org/860163003 and 0013-Temp-Patch-BuildFix-on-Non-ChromeOS-platforms.patch should be replaced by https://codereview.chromium.org/812613004 + https://codereview.chromium.org/841113004.

rakuco, Ya should be fine. Have you already done that or do you want me to do it ?

I can do it, but actually testing a full Chromium master build will take me several hours. We can take a leap of faith and just do it :)

I can test the chromium bits when you send the pull request. It will be 1 hr delay unfortunately :( How ever you can continue working on the release branch assuming those patches will be merged

I've started committing to https://github.com/rakuco/ozone-wayland/commits/Milestone-Carnival
Please take a look at the changes there; the release notes are empty because I don't know what to add, and I've updated some patches in patches/.

I think everything's ready in my branch except for the release date. Shall we proceed?

@rakuco sorry, missed this. Ya, pls push the release branch. Add the date to be the same day you are pushing it. Also you know you can tag the release in github right, we should also do that.

@rakuco planning to push the branch ?

Sorry, I wasn't working last Friday and Monday. I've pushed the Milestone-Carnival branch and tagged it.


Questions about risc-v vector support

Hi, I notice that openblas support riscv vector support, if I don't misunderstand, the vector support are only available for C910V,
but my processor is C906 which supports vector instructions 0.71, so can I just replace C910V in the file with C906 to make
it support my processor.
Once, I try to cross compile for C910V, but get the error cross compiler doesn't support flag lp64v, it only supports lp64 , lp64d , do I need to recompile my cross compiler to support lp64v, Thanks!

Yes you would need to compile with TARGET=C910V if the processors are similar enough, and you would need a cross-compiler that supports the lp64v ABI (which I suspect may be only in Xuantie's vendor branch of gcc which appears to be available as part of https://github.com/c-sky/xuantie-vector-demos , it does not look like the https://github.com/riscv/riscv-gnu-toolchain has it)

Thanks, I have tested the cross compiler in demos, it has some errors
../kernel/riscv64/amax_vector.c:34:19: error: unknown type name 'vfloat32m8_t'; did you mean 'float32xm8_t'?
 #define FLOAT_V_T vfloat32m8_t
                   ^~~~~~~~~~~~
../kernel/riscv64/amax_vector.c:34:19: note: in definition of macro 'FLOAT_V_T'
 #define FLOAT_V_T vfloat32m8_t
                   ^~~~~~~~~~~~
../kernel/riscv64/amax_vector.c:35:22: error: unknown type name 'vfloat32m1_t'; did you mean 'float32xm1_t'?
 #define FLOAT_V_T_M1 vfloat32m1_t

I guess it is because the compiler is too old, I will find a new version C910V compiler to try.

I have updated to the new C910V compiler, but when run tests, it gets the error:
/home/hermanhe/software/riscv64-linux-x86_64/bin/../lib/gcc/riscv64-unknown-linux-gnu/8.4.0/../../../../riscv64-unknown-linux-gnu/bin/ld: (.text._gfortrani_set_fpu_trap_exceptions+0xa6): warning: feenableexcept is not implemented and will always fail
/home/hermanhe/software/riscv64-linux-x86_64/bin/../lib/gcc/riscv64-unknown-linux-gnu/8.4.0/../../../../riscv64-unknown-linux-gnu/bin/ld: /home/hermanhe/software/riscv64-linux-x86_64/bin/../lib/gcc/riscv64-unknown-linux-gnu/8.4.0/../../../../riscv64-unknown-linux-gnu/lib/../lib64vxthead/lp64v/libgfortran.a(fpu.o): in function `_gfortrani_get_fpu_trap_exceptions':
(.text._gfortrani_get_fpu_trap_exceptions+0x12): warning: fegetexcept is not implemented and will always fail
/home/hermanhe/software/riscv64-linux-x86_64/bin/../lib/gcc/riscv64-unknown-linux-gnu/8.4.0/../../../../riscv64-unknown-linux-gnu/bin/ld: ../libopenblas_c910vp-r0.3.15.dev.a(memory.o): in function `alloc_mmap':
memory.c:(.text+0x78): undefined reference to `pthread_mutex_lock'
/home/hermanhe/software/riscv64-linux-x86_64/bin/../lib/gcc/riscv64-unknown-linux-gnu/8.4.0/../../../../riscv64-unknown-linux-gnu/bin/ld: memory.c:(.text+0xa2): undefined reference to `pthread_mutex_unlock'
/home/hermanhe/software/riscv64-linux-x86_64/bin/../lib/gcc/riscv64-unknown-linux-gnu/8.4.0/../../../../riscv64-unknown-linux-gnu/bin/ld: ../libopenblas_c910vp-r0.3.15.dev.a(memory.o): in function `.L60':
memory.c:(.text+0x33a): undefined reference to `pthread_mutex_lock'
/home/hermanhe/software/riscv64-linux-x86_64/bin/../lib/gcc/riscv64-unknown-linux-gnu/8.4.0/../../../../riscv64-unknown-linux-gnu/bin/ld: ../libopenblas_c910vp-r0.3.15.dev.a(memory.o): in function `.L0 ':
memory.c:(.text+0x362): undefined reference to `pthread_mutex_unlock'

any advice, thanks!

I solved the pthread_mutex_unlock error by adding -lpthread, but the warning can't be eliminated.

According to https://github.com/riscv/riscv-gnu-toolchain/issues/417#issuecomment-475128185 the warning is harmless

Did you have to add the -lpthread to run tests that come with OpenBLAS, or was this for test code of your own ?

come with OpenBLAS, what I have done is to execute :
make HOSTCC=gcc TARGET=C910V CC=riscv64-unknown-linux-gnu-gcc FC=riscv64-unknown-linux-gnu-gfortran

I assume you had to add the -lpthread in test/Makefile then ? Maybe it depends on the compiler version if this is needed or not, I notice the original PR that introduced the C910V support added blank entries for both EXTRALIB and CEXTRALIB there (and these values are normally autodetected by the compiler test scripts, c_check and f_check)

In fact, I add the -L/my/pthread/path -lpthread to EXTRALIB to solve the pthread error. but now when I compile the example code :
riscv64-unknown-linux-gnu-gcc -o test_cblas_dgemm test_cblas_dgemm.c --sysroot=/home/hermanhe/software/riscv64-linux-x86_64/sysroot /home/hermanhe/software/openblas/lib/libopenblas.a -I /home/hermanhe/software/openblas/include/ -L /home/hermanhe/software/riscv64-linux-x86_64/sysroot/lib64vxthead/lp64v -lpthread -mabi=lp64v

it gets the error:
riscv64-unknown-linux-gnu/bin/ld: cannot find crt1.o: No such file or directory

Unfortunately I do not have the hardware, so I cannot check if suppressing the -lpthread is/was actually needed on the C910V or only a peculiarity of the toolchain used at the time.

You don't need the hardware, right now I just do the cross compiling, my host is x86_64 fedora 34, and my cross compiler is riscv64-linux-x86_64-20210618.tar.gz. and install command is
make HOSTCC=gcc TARGET=C910V CC=riscv64-unknown-linux-gnu-gcc FC=riscv64-unknown-linux-gnu-gfortran

Thanks. The site apparently requires registration(?) and I cannot read Chinese (also the site design prevents google translate from working, I cannot even copy+paste the label texts into the google translate form) :flushed:

OK, if you don't mind, I will email you or give you a public link, so you can download, I don't know if gmail can send a mail with attachment about 533.2MB, so can you give me a email address.

Thank you - the email address should be visible on my profile page


Switch to setuptools, remove distutils

Distutils is still the main library used for our packaging.
I would like to propose switching now by default on setuptools. The previous issues with distutils and Cython integration on old debian could be just now unsupported (i don't remember exactly why, but we may recover the why in the commit history / issues / ml.)
The reason is today, i installed Kivy using "pip -e ." from my Kivy directory. When uninstalling, pip said:
    DEPRECATION: Uninstalling a distutils installed project (Kivy) has been deprecated and will be removed in a future version. This is due to the fact that uninstalling a distutils project will only partially uninstall the project.

So it's time to fully move.

Are we going to remove distutils completely later, or is it only about the default tool? Also, I'm not sure, but weren't there some problems with setuptools and android/p4a?

We need setuptools to build wheels. However, setuptools apparently doesn't
work on android.
On Thu, Jul 13, 2017 at 10:30 AM, Peter Badida<EMAIL_ADDRESS>wrote:

Are we going to remove distutils completely later, or is it only about the
default tool? Also, I'm not sure, but weren't there some problems with
setuptools and android/p4a?
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/kivy/kivy/issues/5275#issuecomment-315095074, or mute
the thread
https://github.com/notifications/unsubscribe-auth/ABkW_qms1UkgH7QoFIuPI4ZH6_Gft6xiks5sNin2gaJpZM4OXCg7
.

Fixed via #8070


https://registry.npmjs.org/looupedeck

Hi. Im trying to build this on Fedora41.
~/gits/loupedeck/fox/loupedeck$ npm install looupedeck
npm warn ERESOLVE overriding peer dependency
npm warn While resolving<EMAIL_ADDRESS>npm warn Found<EMAIL_ADDRESS>npm warn node_modules/eslint
npm warn   peer<EMAIL_ADDRESS>from<EMAIL_ADDRESS>npm warn   node_modules/@appliedminds/eslint-config
npm warn     dev<EMAIL_ADDRESS>from the root project
npm warn   5 more (@eslint-community/eslint-utils, eslint-plugin-jest, ...)
npm warn
npm warn Could not resolve dependency:
npm warn peer<EMAIL_ADDRESS>from<EMAIL_ADDRESS>npm warn node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/utils
npm warn<EMAIL_ADDRESS>|| ^7.0.0" from<EMAIL_ADDRESS>npm warn   node_modules/eslint-plugin-jest
npm warn
npm warn Conflicting peer dependency<EMAIL_ADDRESS>npm warn node_modules/eslint
npm warn   peer<EMAIL_ADDRESS>from<EMAIL_ADDRESS>npm warn   node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/utils
npm warn<EMAIL_ADDRESS>|| ^7.0.0" from<EMAIL_ADDRESS>npm warn     node_modules/eslint-plugin-jest
npm error code E404
npm error 404 Not Found - GET https://registry.npmjs.org/looupedeck - Not found
npm error 404
npm error 404  'looupedeck@*' is not in this registry.
npm error 404
npm error 404 Note that you can also install from a
npm error 404 tarball, folder, http url, or git url.
npm error A complete log of this run can be found in: /home/.npm/_logs/2024-12-29T10_17_27_401Z-debug-0.log
Fedora41 is using node22 > node18+
Any ideas what can be wrong?

npm install loupedeck is for installing it as a library or dependency of another project, but it looks like you cloned the repository locally, which means you can just run npm install in the repository directory to play around with it.
Note that there's a typo in the name of the library you're trying to install: loupedeck not looupedeck.
Let me know if you need additional help!

Tnx. Some progress at least. Will continue next year...


Added sync and fixed no member for struct

Codecov Report

Merging #254 into master will increase coverage by 0.04%.
The diff coverage is 100%.

@@            Coverage Diff             @@
##           master     #254      +/-   ##
==========================================
+ Coverage   81.72%   81.77%   +0.04%
==========================================
  Files           8        8
  Lines        1882     1887       +5
==========================================
+ Hits         1538     1543       +5
  Misses        257      257
  Partials       87       87

Impacted Files
Coverage Δ

vm/vmExpr.go
84.22% <100%> (+0.14%)
:arrow_up:

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 9bd0532...c4a1ee1. Read the comment docs.

Thank you


[BEAM-577] Add support for reading compressed files to filebasedsource.

Be sure to do all of the following to help us incorporate your contribution
quickly and easily:

[ ] Make sure the PR title is formatted like:
[BEAM-<Jira issue #>] Description of pull request
[ ] Make sure tests pass via mvn clean verify. (Even better, enable
Travis-CI on your fork and ensure the whole test matrix passes).
[ ] Replace <Jira issue #> in the title with the actual Jira issue
number, if there is one.
[ ] If this contribution is large, please file an Apache
Individual Contributor License Agreement.

R: chamikaramj

R: @chamikaramj

LGTM

R: @dhalperi

LGTM, merged. Thanks.
Please close the PR at your leisure.

Thanks.
Slaven
On Fri, Sep 2, 2016 at 11:56 AM, Daniel Halperin<EMAIL_ADDRESS>wrote:

LGTM, merged. Thanks.
Please close the PR at your leisure.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/apache/incubator-beam/pull/912#issuecomment-244459657,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AUsIaBzrT60BeV8EhPO6AdREWqjZkyihks5qmHFZgaJpZM4JzLDn
.


Extend hermit info to display all version information

It currently only displays either the current version, or the version that would be installed.

I was thinking of creating an issue about having the installed version shown for hermit list and hermit status as well, but I'll ask here first: what do you think, @alecthomas?
I've installed most packages using <package name>@latest and when doing either of the aforementioned commands I have no insight into what is the version that is actually installed without doing hermit info and looking at the "Source" row. I'd be more than happy to take this on myself, but would want to clarify the expected output in all cases.
Maybe for hermit info  it could be, for example:
 Channel: latest
 Description: Terraform is an open-source infrastructure as code software tool that provides a consistent CLI workflow to manage hundreds of cloud services.
 Homepage:
-State: installed
+State: installed: 1.3.6
 Source: https://releases.hashicorp.com/terraform/1.3.6/terraform_1.3.6_linux_amd64.zip
 Root: /home/usrme/.cache/hermit/pkg/terraform@latest
 Binaries: terraform

For hermit list it could be:
-terraform (@latest)
+terraform (@latest: 1.3.6)
   Terraform is an open-source infrastructure as code software tool that provides a consistent CLI workflow to manage hundreds of cloud services.

For hermit status it could be:
 Packages:
-  terraform@latest
+  terraform@latest:1.3.6

Mentioning you again, @alecthomas, in the hopes of finding out what you think about the above. I'm still very much interested in tackling this.

When I do hermit info I get this:
🐚 ~/dev/ftl $ hermit info go
Name: go
Version: 1.21.0
...

Is that not what you want?

Oh you're talking specifically about channels!?
Yeah that would be useful info agreed.

Maybe you could talk a bit more in-depth about what you meant in the original issue, we clearly deviated in our understanding of things and can maybe converge :smile:

I think the original intent was that hermit info should show all available versions, in addition to just the current or latest. But showing the underlying version of a channel would be useful too.

By all available versions you mean the versions that could be installed, i.e. the same set of versions as discovered by hermit search? :thinking:
I think this would mean that hermit info would take more time to execute to grab the same information as hermit search.


[v0.5] VolatilePtrCopy or VolatilePtrSend?

This draft PR is a follow-up to https://github.com/rust-osdev/volatile/pull/22. There was a lot of good discussion on that PR, mostly about the question whether the volatile wrapper type should implement Copy or Send. Implementing both of these traits would not be safe because it would allow unsynchronized concurrent writes from different threads.
I think that both approaches are valid, each with its advantages and drawbacks. For this reason, I tried to implement them both in this PR, as a base for further discussion. The following table summarizes the fundamental differences between the two pointer types:

VolatilePtrCopy
VolatilePtrSend

Usable with Mutex types
:heavy_multiplication_x: Mutex types require Send, but VolatilePtrCopy is !Send because writing the pointer from different threads would be UB.Workaround: Create a custom wrapper type that unsafely implements Send
:heavy_check_mark:  Type can safely implement Send since writes require a &mut reference and type is not clonable.

read and write methods are safe to call (after unsafe construction)
( :heavy_check_mark: ?) Implements Copy, so multiple instances can point to the same address. However, the instances are bound to a single thread, so concurrent writes should not be possible. We never construct &mut references, so we should not have mutable aliasing.
:heavy_check_mark: Writes require an &mut self and the type is not clonable, so concurrent writes should not be possible even when used concurrently.

Ease of use
:+1: No borrow conflicts since all methods simply copy the pointer
:-1: Methods borrow self, which requires manual reborrows and makes splitting struct pointers into field pointers difficult.Workaround: We could create an unsafe duplicate function that could be used for splitting a struct pointer into multiple field pointers. Maybe it's also possible to create a safe macro for this use case.

To simplify this PR and focus the discussion, I removed the unsafe access types for now. We can add them later once we settled on a fundamental API design. I also moved the unstable and very_unstable functions to separate submodules, so we can ignore them too for now.

There's plenty of single-core devices, but if they have an interrupt handler then that's modeled as an additional thread that executes sometimes. If your interrupt handler is doing anything interesting, then there ends up not being very many actually single-threaded situations.
But if you do have just one core, then both the main thread and interrupt thread could safely have a volatile pointer to the same place because they will never race with each other anyway. The only problems arise if you've got a multi-core device.

But if you do have just one core, then both the main thread and interrupt thread could safely have a volatile pointer to the same place because they will never race with each other anyway.

I'm not sure if I understand this part. How is it not a data race if e.g. the main thread is interrupted in the middle of a write and the interrupt handler then writes (parts of) the same data?

https://llvm.org/docs/LangRef.html#memory-model-for-concurrent-operations
The general answer from llvm is that "What happens is target dependent.", though a good follow-up to that is probably "does the CPU honestly allow an interrupt to fire during an instruction anyway? because if it doesn't then you're worrying about a situation that can't happen."
In terms of MMIO, for all the compiler knows the value you volatile read might have nothing to do with anything you ever volatile wrote, so this isn't really a big deal.

https://llvm.org/docs/LangRef.html#memory-model-for-concurrent-operations
The general answer from llvm is that "What happens is target dependent.", though a good follow-up to that is probably "does the CPU honestly allow an interrupt to fire during an instruction anyway? because if it doesn't then you're worrying about a situation that can't happen."

Volatile writes are not always one instruction though. If the type to be written is too big, the write may be split up into multiple instructions: https://godbolt.org/z/6vKjTsn6x.

That's true. Programmers are strongly advised to not declare their MMIO API in a way that accesses can tear.

I think that the usability guarantees of VolatilePtrCopy outweigh the fact that you cannot share it between threads, so I think we should go with the Copy approach. Looking a the type parameters, I view VolatilePtr as allowing a user a certain type of access (determined by A) to a particular memory region (length and alignment determined by T) for a particular time (determined by 'a). I think having the type not be Send reflects the fact that this grant is limited in scope.
If users want to share some volatile memory region between (including interrupt handlers), some sort of synchronization will be needed (as we cannot guarantee atomicity of a volatile operation). Such a VolatileCell could be added in a followup PR, which acts sort of like a Mutex giving out !Send VolatilePtr handles, similar to how MutexGuard (which is also !Send) works in libstd today.

The usual Mutex/Handle based API doesn't work quite so well with interrupt handlers because when you're the main thread you know that the interrupt handler isn't ever holding the lock (because it starts and stops between your own instructions), and if you're the interrupt handler and the lock is currently held by main you can't ever wait for the lock to be released because you're the thing preventing main from executing. So, while the interrupt handler is in some ways modeled as a separate thread, it's in other ways its own weird thing that requires its own consideration.

I would expect a VolatilePtrSend with read and write access to closely resemble a &mut T, except every access is explicit and volatile. This could be called VolatilePtr or VolatileMut as per the std convention (might be unwieldy though). That way, I could allocate a MMIO address once with static lifetime and then share it between cores in a self-provided mutex (or a thread-safe mutex if also accessed in an interrupt handler).
A VolatilePtrCopy I would expect to closely resemble & core::cell:Cell<T>. VolatileCellRef might be a bit of a mouth full, so I'd call this VolatileCell. In my mind, this is not of much use when different cores access the same memory. The synchronization required when creating/dropping this type sounds like it might better be handled by putting a longer lived ptr of Send version into a mutex. Still, there seems to be interest in this type as well, so it might be best to provide both types.
Another type that I just thought of is a VolatileAtomicPtr, where the inner type is an AtomicPtr to allow for synchronization without blocking. This is not thought to the end though, so feel free to disregard this thought.

Thanks a lot for your thoughts!

I think that the usability guarantees of VolatilePtrCopy outweigh the fact that you cannot share it between threads, so I think we should go with the Copy approach.

Sharing a volatile across threads and interrupt handlers seems like a common use case, so I think we should really provide a Send type. Otherwise most uses of this crate would need to create their own unsafe wrapper types.

If users want to share some volatile memory region between (including interrupt handlers), some sort of synchronization will be needed (as we cannot guarantee atomicity of a volatile operation). Such a VolatileCell could be added in a followup PR, which acts sort of like a Mutex giving out !Send VolatilePtr handles, similar to how MutexGuard (which is also !Send) works in libstd today.

Interesting idea! I like the Mutex/MutexGuard analogy. So maybe it really makes sense to provide both variants in some form...

The usual Mutex/Handle based API doesn't work quite so well with interrupt handlers

Agreed! Also, there is not really a good general way to implement mutexes in no_std programs since spinlocks have a lot of drawbacks (see e.g. the discussion in https://github.com/rust-lang/rust/issues/74465y). So it's better to let the users provide the mutex type in my opinion. This way, they can also define their own invariants and e.g. panic or force-unlock if a lock is held unexpectedly. As @mkroening noted, this already possible with the VolatilePtrSend type.

How about the following design:

We keep VolatilePtrCopy as-is, we just try to find a better name later.
We also keep VolatilePtrSend, but remove most of its methods.
Instead, we provide two new conversion methods:

fn as_ref<'b>(&'b self) -> VolatilePtrCopy<'b, T, A::RestrictShared>;
fn as_mut<'b>(&'b mut self) -> VolatilePtrCopy<'b, T, A>;

So the VolatilePtrSend type becomes a wrapper type that prevents shared mutable aliasing and can thus safely provide a Send implementation.

Another type that I just thought of is a VolatileAtomicPtr, where the inner type is an AtomicPtr to allow for synchronization without blocking. This is not thought to the end though, so feel free to disregard this thought.

I like that idea! AtomicPtr is probably not the right type though since we want to change the value behind the pointer, not the pointer itself. Also, we might need references instead of pointers to use the atomic instructions of the stdlib, which leads to aliasing questions again. So I think it's best to discuss this in a separate issue. I opened https://github.com/rust-osdev/volatile/issues/30 for that.

The design here seems to be straining because it's trying to handle a lot of situations I didn't really have to handle myself, so you have my condolences.
One thing I'll point out is that read/write access isn't the only axis, you probably want a way to model safe/unsafe access too.

Update:

How about the following design:
* We keep `VolatilePtrCopy` as-is, we just try to find a better name later.

* We also keep `VolatilePtrSend`, but remove most of its methods.

* Instead, we provide two new conversion methods:

  * `fn as_ref<'b>(&'b self) -> VolatilePtrCopy<'b, T, A::RestrictShared>;`
  * `fn as_mut<'b>(&'b mut self) -> VolatilePtrCopy<'b, T, A>;`

So the VolatilePtrSend type becomes a wrapper type that prevents shared mutable aliasing and can thus safely provide a Send implementation.

I think this is the most promising solution. We need nicer names though, so I renamed the Copy type to VolatilePtr and the non-Copy type to VolatileRef. I also removed all access methods from VolatileRef and documented that the new as_ptr()/as_mut_ptr() methods should be used instead, which create temporary VolatilePtr instances. This way, we avoid most of the code duplication while keeping the crate flexible.
I also drafted up a short introduction of the two types for our crate docs:

This crate provides two different wrapper types: [VolatilePtr] and [VolatileRef]. The
difference between the two types is that the former behaves like a raw pointer, while the
latter behaves like a Rust reference type. For example, VolatilePtr can be freely copied,
but not sent across threads because this could introduce mutable aliasing. The VolatileRef
type, on the other hand, requires exclusive access for mutation, so that sharing it across
thread boundaries is safe.

Given that the API of the current release is not sound, I'm favor of merging this PR soon. We can continue improving the API and implementation in future PRs. The only thing that I want to do before merging is to write proper docs for all methods.

I'm trying to page things back into my memory, but this sounds like basically a "more restrictive than theoretically necessary, but at least we know it is sound" solution. Is that right? If so, I would agree to merge it now and if possible improve it later (again, if possible).

There is a relevant discussion on having a VolatileCell as a language feature: https://github.com/rust-lang/unsafe-code-guidelines/issues/411

Published as v0.5.0


fix the numeric truncation problem of SumAs function

R(v) causes precision loss when a float array is passed and needs to return an integer.
for example: SumAs[int64]([]float64{0.1, 0.2, 0.3, 0.4})

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

19 of 19 (100.0%)  changed or added relevant lines in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 100.0%

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
1779

Relevant Lines:
1779

💛  - Coveralls

Many thanks


Rename nds to neural_data_simulator

Changes
This PR renames the nds module to neural_data_simulator in order to match the package name.

Codecov Report
Patch coverage: 100.00% and no project coverage change.

Comparison is base (f08d9b2) 86.78% compared to head (ebef153) 86.78%.

Additional details and impacted files
@@           Coverage Diff           @@
##             main       #5   +/-   ##
=======================================
  Coverage   86.78%   86.78%
=======================================
  Files          21       21
  Lines        1680     1680
=======================================
  Hits         1458     1458
  Misses        222      222

Impacted Files
Coverage Δ

src/neural_data_simulator/filters.py
66.10% <ø> (ø)

src/neural_data_simulator/runner.py
78.57% <ø> (ø)

src/neural_data_simulator/samples.py
94.33% <ø> (ø)

src/neural_data_simulator/scripts/errors.py
100.00% <ø> (ø)

src/neural_data_simulator/settings.py
94.26% <ø> (ø)

src/neural_data_simulator/timing.py
100.00% <ø> (ø)

src/neural_data_simulator/util/buffer.py
84.12% <ø> (ø)

src/neural_data_simulator/util/circular_dequeue.py
61.11% <ø> (ø)

src/neural_data_simulator/encoder.py
97.05% <100.00%> (ø)

src/neural_data_simulator/ephys_generator.py
74.83% <100.00%> (ø)

... and 11 more

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.


Fix health endpoint HTTP 431 bug (#531)

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.

@tminor  Thanks for this great analysis and root causing, and putting in the fix. We really appreciate the time and contribution.  This PR will fix up main which is the nextgen codebase, so will not make it out to the masses immediately. The stable branch is v1.1.x, so I will backport this fix and cut a release today. The good news on your question about doing the health check differently in InfluxDB versus the other providers is that I am working on a unified healthcheck package that will eliminate the backend providers needing to implement this handler. Separately, I will add calls to the health check URLs as part of our load test harness, so that we'll be able to catch any issues with calls to health check endpoints in the future.

Fantastic! Thanks for the explanation!


Optimizer fix

Short Description:
The getting rid of Pokemons after evolving trash seems to be bugged; it transfers Pokemon who just got evolved. This moves the 2 times loop up, so the loop will re-open the iventory (with the new pokemons) and it will re-evalutate the rules with the reloaded inventory.
I hope with this fix the transfer of good Pokemon will stop
Fixes/Resolves/Closes (please use correct syntax):

#5999
#6004 (no description given, I think this is related aswel? If not, please say so!)

Merged #6006

merging #6006 . Let's on dev.

@davidakachaos please do new PR to dev branch . We don't do PR to master.


Support setters

Sorry for bothering you, but I must be completely blind right now...
Consider the following code
  import { deepSignal } from<EMAIL_ADDRESS>
  let Test = deepSignal({
    _x:0,
    get x () { return this._x },
    set x (newX) {
      if (newX !== this.x) { this._x = newX }
    }
  })

  console.log('Test.x is defined as',Object.getOwnPropertyDescriptor(Test,'x'))

  console.log('\ntrying to set "Test.x" to 1\n')
  Test.x = 1

This code crashes with:
Test.x is defined as {enumerable: true, configurable: true, get: ƒ, set: ƒ}
  configurable: true
  enumerable: true
  get: ƒ x()
  set: ƒ x(newX)
  [[Prototype]]: Object

trying to set "Test.x" to 1

index.ts:103 Uncaught TypeError: Cannot set property value of [object Object] which has only a getter
    at Object.set (index.ts:103:30)
    at VM6069 about:srcdoc:28:10

Do you have any idea why my code fails? I had the impression, that deepSignal would support getters and setters...

I think it should support setters, yes. I'll take a look 🙂

I don't know if it will be of any help, but I had to use untracked around my Reflect calls in order to prevent undesired signal subscriptions.
Here is the code I am currently using in order to observe objects (not arrays) with getters and setters without nesting (as this may cause real headaches) and without properties with names starting with '_' - it's quite simple
import { expectObject }                from 'javascript-interface-library'
import { computed, signal, untracked } from '@preact/signals-core'

namespace observableObject {
  const ProxyForObject = new WeakMap()
  const SignalsOfProxy = new WeakMap()

/**** observableObject - makes a given object observable ****/

  export function observableObject (Target:object):object {
    expectObject('target object',Target)

    if (ProxyForObject.has(Target)) {
      return ProxyForObject.get(Target)
    }

    const TargetProxy = new Proxy(Target,ObservationTraps)
      ProxyForObject.set(Target,TargetProxy)
    return TargetProxy
  }

/**** ObservationTraps - actual implementation of object content observation ****/

  const ObservationTraps = { // nota bene: target.x is observed, not receiver.x!
    get (Target:object, Property:string, Receiver:object):any {
      const Value = untracked(() => Reflect.get(Target,Property,Receiver))
      if (ProxyForObject.get(Target) !== Receiver) { return Value }

      if (PropertyShouldBeObserved(Property)) {
        let PropertySignal = SignalForProperty(Target,Property,Value,Target)
        let Dummy = PropertySignal.value                // triggers signal usage
      }           // important: the above assignment must not be optimized away!
      return Value
    },

    set (Target:object, Property:string, Value:any, Receiver:object):boolean {
      const successful = untracked(() => Reflect.set(Target,Property,Value,Receiver))
      if (! successful) { return false }           // will lead to a "TypeError"

      if (ProxyForObject.get(Target) !== Receiver) { return Value }

      if (PropertyShouldBeObserved(Property)) {
        let PropertySignal = SignalForProperty(Target,Property,Value,Target)
        PropertySignal.value = Value             // triggers signal value change
      }
      return true
    },

    deleteProperty (Target:object, Property:string):boolean {
      const successful = Reflect.deleteProperty(Target,Property)
      if (! successful) { return false }           // will lead to a "TypeError"

      if (PropertyShouldBeObserved(Property)) {
        let PropertySignal = SignalForProperty(Target,Property)
        if (PropertySignal != null) {
          SignalForProperty(Target,Property).value = undefined // triggers chng.
        }
      }
      return true
    },

    defineProperty (Target:object, Property:string, Descriptor:object):boolean {
      const successful = Reflect.defineProperty(Target,Property,Descriptor)
      if (! successful) { return false }           // will lead to a "TypeError"

      if (PropertyShouldBeObserved(Property)) {
        const Value = untracked(() => Reflect.get(Target,Property))
        let PropertySignal = SignalForProperty(Target,Property,Value,Target)
        PropertySignal.value = Value             // triggers signal value change
      }
      return true
    }
  }

/**** PropertyShouldBeObserved ****/

  function PropertyShouldBeObserved (Property:string):boolean {
    return ! Property.startsWith('_')
  }

/**** SignalForProperty ****/

  function SignalForProperty (
    Proxy:object, Property:string, Value?:any, Target?:object
  ):any {
    let ProxySignalSet = SignalsOfProxy.get(Proxy)
    if (ProxySignalSet == null) {
      if (Target == null) {                // no implicit signal creation needed
        return undefined
      } else {                             // implicit signal creation requested
        SignalsOfProxy.set(Proxy,ProxySignalSet = new Map())
      }
    }

    let PropertySignal = ProxySignalSet.get(Property)
    if (PropertySignal == null) {
      if (Target != null) {                // implicit signal creation requested
        PropertySignal = signal(Value)
        ProxySignalSet.set(Property,PropertySignal)
      }
    }

    return PropertySignal
  }
}

const global = (new Function('return this'))()
global.observableObject = observableObject.observableObject

Released as part of<EMAIL_ADDRESS>


Add support for Android editor builds for Meta devices

Requires https://github.com/godotengine/godot/pull/96624

Thanks!


Instruction to install node via nvm

Summary

Added instruction for installing node via nvm
Ticket Link

As per recommendation from https://github.com/mattermost/mattermost-webapp/pull/9335#issuecomment-966427513

/update-branch

@cwarnermm I re-requested review since I reordered the steps a bit. I wanted to avoid the user having to remember to run nvm install after doing some of the other setup steps


Store render-like method

The common pattern of using Store is:
this.data = update(this.data);
this.trigger(this.data);

which is speaking in React's terms is setState and render. But in the same time Store's render is splitted along Store's action handlers, which could be a point of failure. Or one eventually defines that "render" method: example
var store = Reflux.createStore({
    onActionA: function() {
        this.list = [];
        // (!) render version 1
        this.trigger(this.list)
    },
    onActionB: function() {
        // It masks state update
        this.list.push('value');
        // (!) render version 2
        this.trigger(this.list.join(','));
    },
    getDefaultData: function() {
        this.list = [];
        return this.list;
    }
});

I think we should make Store strict in order to follow React's rendering pattern as Store itself is a View, but for data. And view which returns consistant data is common pattern and chaotic or random data type is not.
var store = Reflux.createStore({
    onActionA: function() {
        // (1) state modification
        this.setState({
            list: []
        });
    },
    onActionA: function() {
        // (2) state modification
        this.setState({
            list: this.state.list.concat('value')
        });
    },
    getDefaultData: function() {
        return [];
    },
    // (3) render-like method, but for data
    emit: function() {
        return this.state.join(', ');
    }
});

Benefits:

Single data renderer
Easy to find all state change points

PS I know that one can extend reflux.Store with mixins and implement such pattern, but I thought that It is good to have it in a "standard library".

:+1:

:+1: I use stores this way. However, I keep my store data in a private variable outside of the store, to prevent outside access, rather than in a property on the store.
var data = {}; //private, not exposed

module.exports = Reflux.createStore({
    onActionA: function(res) {
        data[a] = res;
    },

    getA: function() {
        return data[a];
    }
});

I like doing it this way because it reduces the risk of store modifications without using the single-directional data flow using actions. I like to make the model as easy as possible to follow, and as hard as possible to break. Could we achieve this and still have a forced setState interface for the action handler methods?

@willembult how would you rehydrate a store (for server side rendering) if you put data in a private variable?

What @azproduction says is wise and true. :+1:

:+1:


Add as3 rpm package and download script to repo.

during setup test, install as3 usually failed: timeout or download failed. (the download logic within TrustExtension is not stable but support file://).
The as3 rpm package is big ~13M.
So installing it from local should be controllable than from remote f5.com/github.

I like this change, but do not like to archive rpm file to our code repo... Git may save several copy of rpm files in the future, so that git clone speed will become slow, and the CI test in lab machine will require much more time to clone code repository...

OK, let me make a little change to remove all rpms: asg-extensions / do / as3.


MILIK AHMAD JAENUDIN HERYAMAN

AIRAVATTAMAN

Uploading VID_20231224_232327.mp4…

I am Owner and Creator all of things in all universe.
I love you all
But I wanna live forever te be young because you are love mine


Creates a single private route table when single_nat_gateway is true

Fixes #82

I guess I'd disagree that this is more complicated. In some ways, I think it is more clear than the current code. The use of a well-named local helps make it quite clear to me what is happening. And centralizing that logic in the local also makes it easier to maintain. Have been using and maintaining this code in a fork for six months, periodically merging from upstream/master, and it's been quite solid and easy to follow.


Feature: Allow adding additional information to metadata on model upload

There is to my knowledge no straight forward way of retrieving additional data sent on model upload other than downloading the entire artifact and knowing the exact name of the file that it was stored in. It would be nice to be able to add additional information to the model metadata when uploading a new model in order to have direct access to any important information needed for further processing of models.
This could be an optional parameter to the upload method which provides an easy way to add something to the metadata. This could accept a python dictionary and would then be placed in the metadata under a specific key such as "extra".
Use case

# Custom information that a user wants to have available as metadata when calling `get_model_info`
important_info = {
    'required_columns': ["yay", "nay"],
    'data_transforms': ["std", "mean"],
    'training_data_marker': {
        'index_column': 'some_id',
        'index_value': 'some_value',
    },
    'replication_storage_information': {
        "actual_creation_date": "2021-11-23T10:10:23",
        "archived_date": "2022-1-14T12:14:23",
    }
}

metadata = model_store.upload(
       domain="my-domain",
       state_name="archived",
       model=lr_model,
       extra_metadata=important_info
)

print(metadata)
>>
{
    'model': {
        'domain': {...},
        'data': {...},
        'storage': {...},
        'code': {...},
        'git': {...},
        'extra': {
            'required_columns': ["yay", "nay"],
            'data_transforms': ["std", "mean"],
            'training_data_marker': {
                'index_column': 'some_id',
                'index_value': 'some_value',
            },
            'replication_storage_information': {
                "actual_creation_date": "2021-11-23T10:10:23",
                "archived_date": "2022-1-14T12:14:23",
            }
        }
    }
}

The extra parameter would have to be validated which could be done by checking whether the object is json serializable in the update method
if extra_metadata:
    try:
        json.dumps(extra_metadata)
    except Exception:
       raise ValueError("extra_metadata field must be json serializable")

The value of the field could be defaulted to an empty dict i.e 'extra': {} and should not break any existing functionality.
Any opinions on this?

Great idea! I've wanted to do this for some time, and you suggesting it might just be the motivation I needed 😄
I'm currently in the middle of moving the meta data implementation to use dataclasses:

https://github.com/operatorai/modelstore/pull/178
https://github.com/operatorai/modelstore/pull/182

Once that is done, I can definitely add this in and bundle it all together for the next release 🙌

👋 @hauks96 I've now added this in, and so it will go out with the next release. Thank you for the suggestion, and if you have any more ideas feel free to open more issues or reach out to me directly!

https://github.com/operatorai/modelstore/pull/185

@nlathia Brilliant! Thank you so much, looking forward to use it 😄

✅  This was released as part of modelstore==0.0.75
https://github.com/operatorai/modelstore/pull/201


(Hopefully) Semi-Improved Input System

I've attempted to somewhat improve the input system, hopefully it's noticeable and better, there's only one real downside and that's the fact that ghost tapping doesn't work correctly as of right now, at least I think it doesn't, because I'm not missing a lot when I probably should be. Nonetheless, this is open to criticism, changes and edits, so I'm completely fine with changes being made to this as I probably screwed some things up (I'm not very smart lmao)
Hope it's useful!

Well, looks better than the current one, i see no reason to not approve it but i will wait a while before doing so (Just in case someone is against thos change)


fix 502 error on warning api

Use the new API to request warnings

I updated my code. The phenomenon id returned by meteo france is now a character string. There should be no more typing errors.

Any news ?


Add support for child and popup windows in OSR

This looks good to me, but it would take a while to merge, since there are changes to patches and we have to do a rebuild of libcc.


additional row for control change etc.

It would be nice to have mappings for CC/pitchbend etc. It is also a community feedback.

The basic controllers are added at 137c7dc.
We might want to add support for remembered MIDI device states (using Midi2Machine etc.) - needs to evaluate it before finalizing the feature.


tf.train.Server to TensorFlow 2 Mirrored Strategy

Hello
I am able to run this repo and also have understood good part of it I am trying to implement this using tf2 and I would like to use mirrored strategy for distributed training. but I am not able to understand how to change tf.train.Server as a distributed strategy to mirrored strategy as a distributed learning strategy . I also tried looking for the implementation using tf2 but could not found much on the topic. I know this issue section is only for this repo but I could not find many things regarding IMPALA outside this.
Any help is much appreciated, Thank you.

Hi, this repo isn't updated at this point. I suggest https://github.com/google-research/seed_rl/ or any of the other IMPALA implementations around.


What happened to the Blocked IP address list?

Hi,
The Blocked IP address list's size dropped from 5MB+ to ~300KB. Roughly 5MB less!

Thanks so much for pointing that out. The domain list also massively dropped from ~20MB to 92KB. The problem was that the filterlists.csv file, which contains a list of external lists to import and process, got emptied when moving the repository between disks. This meant it only had some IP addresses I'd added. I've reverted the deletion of the filterlists.csv file and regenerating the output lists, hopefully the issue should be fixed once the script has finished

I've reverted the commit that broke it, as that's a quicker solution


Unbinding of IntVars

Hello,
I am trying to use the solver for an interactive product configuration problem. So I have a bigger model with integer variables and constraints among them. During the interactive product configuration, I am adding additional constraints over the variables, depending on the user's configuration decision.
After the first call of solver.NextSolution() all my variables get bound and solver tells me whether we have a solution. The problem is, that I can not un-bind the variables, so reusing them for the next interaction with the solver. Is it possible to reset these variables? Or do I need to recreate all constraints and variables, before I can solve again?
Best regard
Peter

Solver.EndSearch()  // will revert to a state before search.
Solver.NewSearch(...)
Solver.NextSolution() should to the trick.
Laurent Perron | Operations Research |<EMAIL_ADDRESS>| (33) 1 42 68 53
00
Le jeu. 16 août 2018 à 10:48, Peter Bruch<EMAIL_ADDRESS>a
écrit :

Hello,
I am trying to use the solver for an interactive product configuration
problem. So I have a bigger model with integer variables and constraints
among them. During the interactive product configuration, I am adding
additional constraints over the variables, depending on the user's
configuration decision.
After the first call of solver.NextSolution() all my variables get bound
and solver tells me whether we have a solution. The problem is, that I can
not un-bind the variables, so reusing them for the next interaction with
the solver. Is it possible to reset these variables? Or do I need to
recreate all constraints and variables, before I can solve again?
Best regard
Peter
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/google/or-tools/issues/816, or mute the thread
https://github.com/notifications/unsubscribe-auth/AKj17aTKePetTLcW721fxu440Q9NLTnzks5uRbB3gaJpZM4WATXk
.


DataDog support

Hi,
Could you also support DataDog as target like Newrelic?
There's existing DataDog support in the micrometer project https://github.com/micrometer-metrics/micrometer/tree/master/implementations/micrometer-registry-datadog/src/main/java/io/micrometer/datadog
Best regards,
Johannes

So would welcome it and PR's to add support ;). It's been on the backlog to add but we don't have an ETA.
A common work around is to use DataDog's open metrics scraper to autodiscover & scrape services since often you'll have the agent installed into where-ever spinnaker is running.

The support for Datadog has been merged into the default branch. We will release a new version v1.4.0


Cannot create SageMaker Endpoint with Embed v3: poseidon exited with error

I subscribed Cohere Embed Model v3 - Multilingual and tried to create a SageMaker endpoint using https://github.com/cohere-ai/cohere-aws/blob/main/notebooks/sagemaker/Deploy embed v3 model.ipynb.
The endpoint creation failed and I found this error message in CloudWatch logs.
{
    "severity": "ERROR",
    "timestamp": "2024-11-13T00:04:31.072295282Z",
    "caller": "single-container/main.go:454",
    "message": "single container error",
    "logName": "single-container",
    "error": "poseidon exited with error: exit status 1",
    "logging.googleapis.com/labels": {},
    "logging.googleapis.com/sourceLocation": {
        "file": "github.com/cohere-ai/blobheart/go/cmd/single-container/main.go",
        "line": "454",
        "function": "main.startApps"
    },
    "serviceContext": {
        "service": "single-container"
    },
    "context": {
        "reportLocation": {
            "filePath": "github.com/cohere-ai/blobheart/go/cmd/single-container/main.go",
            "lineNumber": "454",
            "functionName": "main.startApps"
        }
    },
    "stack_trace": "single container error: poseidon exited with error: exit status 1\n\ngoroutine 1 [running]:\nmain.startApps(0xc000800000, 0xc0003e51f0)\n\tgithub.com/cohere-ai/blobheart/go/cmd/single-container/main.go:454 +0x425\nmain.run()\n\tgithub.com/cohere-ai/blobheart/go/cmd/single-container/main.go:251 +0x1534\nmain.main()\n\tgithub.com/cohere-ai/blobheart/go/cmd/single-container/main.go:139 +0x13\n"
}

Hi,
the same error happens to me.
Is there any update on this?
Would appreciate any feedback,
Thanks!

Confirmed behavior for this model, investigating on my end. Cohere team should do the same.


Generating controlled gate from QuantumCircuit results in AttributeError when circuit contains at least one explicit identity operator

Environment

Qiskit Terra version: 0.19.1 (Also tested this in 0.18.0 with same outcome)
Python version: 3.9.7
Operating system: CentOS (Also tested this on MacOS 12.0.1 with same outcome)

What is happening?
When you take a QuantumCircuit where one of its constituent gates is explicitly the identity and you attempt to generate a controlled gate from this unitary using the control() method, Qiskit raises the error:
AttributeError: 'NoneType' object has no attribute 'global_phase'
How can we reproduce the issue?
Examples of code that reproduce this error:
from qiskit.opflow.operator_globals import X, Y, Z, I

pauli_str_op = Z^Z^Z^I

pauli_str_op.to_circuit().control()

from qiskit import Aer, QuantumCircuit, QuantumRegister, AncillaRegister, ClassicalRegister
from qiskit.utils.algorithm_globals import algorithm_globals
from qiskit.utils.backend_utils import is_aer_provider
from qiskit.opflow.operator_globals import X, Y, Z, I

pauli_str_op = Z^Z^Z^I

qreg = QuantumRegister(4, 'q')
circ = QuantumCircuit(qreg)
circ.z(qreg[0])
circ.z(qreg[1])
circ.z(qreg[2])
circ.id(qreg[3])

circ.control()

This results in the following Traceback:
Traceback (most recent call last):
  File "/Users/joelbierman/Desktop/Qiskit_Projects/control_gate_error.py", line 6, in <module>
    pauli_str_op.to_circuit().control()
  File "/Users/joelbierman/opt/anaconda3/envs/Qiskit_0280_pyscf2_ARM64/lib/python3.9/site-packages/qiskit/circuit/quantumcircuit.py", line 554, in control
    controlled_gate = gate.control(num_ctrl_qubits, label, ctrl_state)
  File "/Users/joelbierman/opt/anaconda3/envs/Qiskit_0280_pyscf2_ARM64/lib/python3.9/site-packages/qiskit/circuit/gate.py", line 119, in control
    return add_control(self, num_ctrl_qubits, label, ctrl_state)
  File "/Users/joelbierman/opt/anaconda3/envs/Qiskit_0280_pyscf2_ARM64/lib/python3.9/site-packages/qiskit/circuit/add_control.py", line 59, in add_control
    cgate = control(operation, num_ctrl_qubits=num_ctrl_qubits, label=label, ctrl_state=ctrl_state)
  File "/Users/joelbierman/opt/anaconda3/envs/Qiskit_0280_pyscf2_ARM64/lib/python3.9/site-packages/qiskit/circuit/add_control.py", line 113, in control
    unrolled_gate = _unroll_gate(operation, basis_gates=basis)
  File "/Users/joelbierman/opt/anaconda3/envs/Qiskit_0280_pyscf2_ARM64/lib/python3.9/site-packages/qiskit/circuit/add_control.py", line 268, in _unroll_gate
    opqc = dag_to_circuit(unroller.run(dag))
  File "/Users/joelbierman/opt/anaconda3/envs/Qiskit_0280_pyscf2_ARM64/lib/python3.9/site-packages/qiskit/transpiler/passes/basis/unroller.py", line 113, in run
    unrolled_dag = self.run(decomposition)  # recursively unroll ops
  File "/Users/joelbierman/opt/anaconda3/envs/Qiskit_0280_pyscf2_ARM64/lib/python3.9/site-packages/qiskit/transpiler/passes/basis/unroller.py", line 76, in run
    raise QiskitError(
qiskit.exceptions.QiskitError: "Error decomposing node of instruction 'id': 'NoneType' object has no attribute 'global_phase'. Unable to define instruction 'id' in the given basis."

What should happen?
Controlled unitary of QuantumCircuit is generated, regardless of what unitary gates make up the circuit.
Any suggestions?
This seems to be related to how Qiskit handles generating controlled unitaries from circuits that explicitly contain at least one identity operator. This of course does not happen if the identity implicitly acts on one of the qubits since this would, by definition, break the control() method for all circuits. For example, the following code does not raise this error:
from qiskit import Aer, QuantumCircuit, QuantumRegister, AncillaRegister, ClassicalRegister
from qiskit.utils.algorithm_globals import algorithm_globals
from qiskit.utils.backend_utils import is_aer_provider
from qiskit.opflow.operator_globals import X, Y, Z, I

pauli_str_op = Z^Z^Z^I

qreg = QuantumRegister(4, 'q')
circ = QuantumCircuit(qreg)
circ.z(qreg[0])
circ.z(qreg[1])
circ.z(qreg[2])
# nothing acts on qubit 3: the identity is implicit.
circ.control()

This is because IGate, which we use to describe the explicit identity operation, doesn't have a _define method.  The fix is probably just to define in qiskit/circuit/library/standard_gates/i.py:
class IGate(Gate):
    ...

    def _define(self):
        self.definition = QuantumCircuit(1, name=self.name)

but I wouldn't like to swear that won't have a couple of knock-on issues in the transpiler, or affect performance.

I see. Thank you!

I can confirm that this seems to remove the AttributeError. Of course, I haven't done any testing to see if it breaks something else or if it results in reduced performance.

We didn't see any reason why opflow should actually insert an IGate for Pauli identity operations, especially since they are eagerly removed upon calling reduce on any operator expression. Actually, I think inserting an IGate is even wrong since it currently represent a waiting cycle in the circuit, but we expect a mathematical identity operation: nothing should happen!
#7569 changes this behavior and as by-product fixes the first example shown in this issue:
from qiskit.opflow.operator_globals import X, Y, Z, I

pauli_str_op = Z^Z^Z^I

pauli_str_op.to_circuit().control()  # works with 7569 since not IGate is contained

Now I'm not sure if we can close this issue if the linked PR is merged, since it only covers one of the described cases.

I will just note that my original motivation for posting this issue was to fix the Pauli string op issue specifically. It could be that others will also care about the second case getting fixed. I think if the linked PR is merged, this issue can be closed since the second case is mentioned in #4010.

It's probably best to leave the issue open, since the other part of it is still going to be an issue after this, until we're able to realign IGate to be more what most people expect.  But it's good that Julien's patch will fix your actual issue.

We're going to defer the issue til the next minor release - we'll merge the immediate fix (#7569) into the main branch soon, but there's a risk that will break other code currently in use elsewhere in Qiskit or for users, so we'll wait til 0.20 before it gets released.

Since #7569 has merged, I'm going to remove this issue from the 0.20 milestone. Is there anything here that's not covered by #4010 , #3950 and #7403 ? If so, can someone clarify what remains and update the title?

I think the remaining problems raised by this issue are just duplicates of the ones that Kevin's raised, so I'll close this now.

it's seems that i am getting similar error, i am using the following version  (latest):
qiskit==0.37.1
qiskit-aer==0.10.4
qiskit-ibmq-provider==0.19.2
qiskit-terra==0.21.1
i simple create 4 random circuit and add control for all of them:
`
random.seed(102030)
np.random.seed(102030)
def create_circuit_list(num_circuits, circuit_num_qubits, max_depth):
"""Generate random array of circuits of arbitrary size and form.
  Args:
      num_circuits (int): number of quantum circuits to create
      circuit_num_qubits (int): number of quantum wires
      max_depth (int): max layers of operations (i.e. critical path length)

  Returns:
      List: constructed circuits list

  Raises:
      IError: when invalid options given
  """
get_logger(LOGGER_NAME).debug(
    f"Enter num_circuits=[{num_circuits}], circuit_num_qubits=[{circuit_num_qubits}], max_depth={max_depth}")
assert max_depth >= 0
ret_circuits = [random_circuit(num_qubits=circuit_num_qubits, depth=random.randint(1, max_depth)) for i in
                range(num_circuits)]
return ret_circuits

def add_qiskit_control_list(circuits_list):
ret_circuits = [circuit.control() for circuit in circuits_list]
return ret_circuits
`
repreduce step:

fix seed (see above)
run the following:
  num_circuits = 3   circuit_num_qubits = 4   max_depth = 3   circuits = create_circuit_list(num_circuits, circuit_num_qubits, max_depth)   circuits = add_qiskit_control_list(circuits)

error log:
2022-08-02 18:03:02,740 [SELECT:DEBUG], [24408:MainThread] [select_u_implementation.py::53] | Start DEBUGGING
2022-08-02 18:03:02,740 [SELECT:DEBUG], [24408:MainThread] [select_u_implementation.py:create_circuit_list:29] | Enter num_circuits=[3], circuit_num_qubits=[4], max_depth=3
Traceback (most recent call last):
File "C:\envs\qiskit\lib\site-packages\qiskit\transpiler\passes\basis\unroller.py", line 82, in run
phase = node.op.definition.global_phase
AttributeError: 'NoneType' object has no attribute 'global_phase'
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "C:\phd\code\qiskit\select_u_implementation.py", line 58, in
circuits = add_qiskit_control_list(circuits)
File "C:\phd\code\qiskit\select_u_implementation.py", line 38, in add_qiskit_control_list
ret_circuits = [circuit.control() for circuit in circuits_list]
File "C:\phd\code\qiskit\select_u_implementation.py", line 38, in
ret_circuits = [circuit.control() for circuit in circuits_list]
File "C:\envs\qiskit\lib\site-packages\qiskit\circuit\quantumcircuit.py", line 706, in control
controlled_gate = gate.control(num_ctrl_qubits, label, ctrl_state)
File "C:\envs\qiskit\lib\site-packages\qiskit\circuit\gate.py", line 118, in control
return add_control(self, num_ctrl_qubits, label, ctrl_state)
File "C:\envs\qiskit\lib\site-packages\qiskit\circuit\add_control.py", line 59, in add_control
cgate = control(operation, num_ctrl_qubits=num_ctrl_qubits, label=label, ctrl_state=ctrl_state)
File "C:\envs\qiskit\lib\site-packages\qiskit\circuit\add_control.py", line 113, in control
unrolled_gate = _unroll_gate(operation, basis_gates=basis)
File "C:\envs\qiskit\lib\site-packages\qiskit\circuit\add_control.py", line 269, in _unroll_gate
opqc = dag_to_circuit(unroller.run(dag))
File "C:\envs\qiskit\lib\site-packages\qiskit\transpiler\passes\basis\unroller.py", line 85, in run
raise QiskitError(
qiskit.exceptions.QiskitError: "Error decomposing node of instruction 'id': 'NoneType' object has no attribute 'global_phase'. Unable to define instruction 'id' in the given basis."
Process finished with exit code 1

@jakelishman this issue seems to be closed but i am using the latest package and get the same error.
do you have a workaround?

We don't have a fix yet, sorry, this issue is just closed because it's a duplicate of #4010.  It's not at all ideal, but in your use case, you could either modify your random_circuit function so it never produces IGate instances, or you could write a wrapper function that looks something like this:
from qiskit import QuantumCircuit
from qiskit.circuit.library import IGate

def my_random_circuit(qubits, depth):
    base = random_circuit(qubits, depth)
    qc = base.copy_empty_like()
    for instruction in base:
        if isinstance(instruction.operation, IGate):
            continue
        qc.append(instruction)
    return qc

That just uses the output of random_circuit, and throws away any id gates in it.

Thanks for the detailed response!
(Pretty much what I did.)
Side question, it seems that the qiskit implementation of the control is very inefficient with depth increasing exponentially in the number of controls


FoundationEssentials: protect against a failed query on Windows

In the case that the query fails due to a reason other than an insufficient buffer, the returned value is 0. However, a 0 sized allocation can trigger an issue, so ensure that we always have a non-zero buffer size before we attempt an allocation.

@swift-ci please test


merge desired sia/modules/explorer changes into rivine/modules/explorer

Are you already working on this one @robvanmieghem, otherwise I don't mind doing it, as it is quite related to some of the other modules still to be merged.

Skipped e7116668dba6636feb73e47a8befcbdc443eef2f since it's main impact is in the consensus module

Skipped e711666 since it's main impact is in the consensus module

Let's not forget that to do as part of #85 in that case. But I guess that will be clear enough due to the commit history.


WIP: Screen implementation

I wasn't able to find a way to get a callback when the display settings changed on win32 that works in .net core. Any ideas on how to cache the screen data?

Whoever is interested, feel free to take over the branch. I'm unable to properly develop on it due to not being able to build the project. Until it's fixed I can't do much.

Reopening PR as the issue has been resolved

It seems that you have used git rebase, so diff is a total mess now (see Files Changed section). Can't really review it like this

We also have MonoMac backend merged now, so it will require Screen implementation as well. Beware that OSX uses inverted Y axis (coordinate system has (0,0) at left bottom corner, so we need to do tcoordinate translations when required.

Superseded by https://github.com/AvaloniaUI/Avalonia/commit/e25f949d9889b64748a7c5bf0055413bc0ef115a


[RAI-25151]: Fix polling duration in poll_with_specified_overhead function

Fix polling duration calculation in poll_with_specified_overhead function.
It resolves RAI-25151

Definitely looks more like the Julia one now…
This is making me wish Python had fake-able timers like Jest, so we could write a nice test for this! 😅

This is making me wish Python had fake-able timers like Jest, so we could write a nice test for this! 😅

yeah agree that would be indeed nice 😄

@vilterp it actually had couple tests, now I have added more tests

Hm, looks like tests failing with
Exception: max tries 1 exhausted

@vilterp all the tests are passed. Where do you see it?

@vilterp
it was failing with Exception: max tries 1 exhausted here: https://github.com/RelationalAI/rai-sdk-python/pull/151/files#diff-f4c8f93a330162e591e147d72a2dba80b81510662e5608f2d130bf63d5220ed7R33 However, I already fixed it:
I increased max_tries so that the function doesn't exit on the first iteration. Then sse a try except block to catch the exception but still check the behavior of time.sleep, because the goal of this test is to test initial delay.

Oh ok, I guess the github UI didn't refresh itself and I was looking at an out of date run. Will review again on Mon


Add missing efm for TypeScript compiler

I got this output when running on my local machine:
yarn run v1.22.10
$ tsc --noEmit
example/src/state/selectors.ts:5:3 - error TS2769: No overload matches this call.
  The last overload gave the following error.
    Type '({ get }: SelectorGetAtomCommands) => unknown' is not assignable to type '(commands: SelectorGetAtomCommands) => number'.
      Type 'unknown' is not assignable to type 'number'.

5   get: ({ get }) => {
    ~~~

  example/node_modules/pipestate/dist/selector.d.ts:10:5
    10     get: (commands: SelectorGetAtomCommands, ...request: P) => T;
           ~~~
    The expected type comes from property 'get' which is declared here on type 'SelectorProps<number, []>'
  example/node_modules/pipestate/dist/selector.d.ts:36:25
    36 export declare function selector<T, P extends any[]>(props: SelectorProps<T, P>): Selector<T, P>;
                               ~~~~~~~~
    The last overload is declared here.

Found 1 error.

error Command failed with exit code 2.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.

and on my CI it looked like this:
$ tsc --noEmit
example/src/state/selectors.ts(5,3): error TS2769: No overload matches this call.
  The last overload gave the following error.
    Type '({ get }: SelectorGetAtomCommands) => unknown' is not assignable to type '(commands: SelectorGetAtomCommands) => number'.
      Type 'unknown' is not assignable to type 'number'.
error Command failed with exit code 2.

both of those didn't work with the current tsc, so this PR adds those.

@mrousavy Hi, is this PR still in progress? I would like to use this updated efm so that I can use it with reviewdog-actions-tsc GitHub Action in my repo, but it seems to be on hold for the moment. If you are currently busy I would like to ask permission to fork your branch and create a PR again.


feat: application title bar and sidebar

Description

Addition of stateful components Titlebar and SideBar
Basic Functionality to make sure state management works as intended

Related issue(s)
#88

i actually did not request review. it was done automatically

i actually did not request review. it was done automatically. There are some things i still have to go through

Ahh okay 😄

i think it is ok now. i could add react component tests but i dont think it is needed yet.


Replaced the deprecated API (maintaining compatibility)

-initWithBase64Encoding: has been deprecated in OS X v10.9 and later, so when we compile source code in OS X v10.9 and later, there will be some compile-time warnings:

I replaced them with initWithBase64EncodedString:options: that is available in OS X 10.9 and later. And for the compatibility considerations, I maintained the deprecated method.
For details, please see Commits.

Hello?

Sorry about the delay, I'll check this out ASAP.
--
Indragie Karunaratne
On Thu, Apr 2, 2015 at 2:47 PM, NSTongG<EMAIL_ADDRESS>wrote:

Hello?
Reply to this email directly or view it on GitHub:
https://github.com/indragiek/INAppStoreWindow/pull/198#issuecomment-89040984

😄Fine.

@TongG Thanks for your patience. Few minor comments, should be good to go otherwise.

Okay, I fixed them.

Please check it out.

How about now?

Looks good.

Thx. 🍺


Update VulkanHelper to support surface creation on macOS

Overview
This PR updates VulkanHelper class to support creation of surfaces on macOS and introduces SimpleCocoaWindow to work with NSWindow.
VulkanHelper changes:

adds methods to create Vulkan surface on macOS using both deprecated and newer Vulkan extensions;
alters Vulkan library loading to try MoltenVk first, then generic libvulkan;
slightly refactors CreateWindowSurface() method to split it into a set of platform specific methods and thus reduce complexity a bit.

SimpleCocoaWindow:

is macOS only, does not support CocoaTouch;
uses a basic Objective-C runtime interop layer to invoke methods on classes like NSView and NSWindow.

Testing
I've written this while trying to make Ryujinx workable on macOS after fixing JIT memory access issues on M1.
Unfortunately Ryujinx requires Vulkan extensions that are not implemented by MoltenVk. So logic is tested by running Ryujinx up to the moment where it checks extensions and throws error on failure to find VK_EXT_transform_feedback not implemented by MoltenVk. This means that initialisation logic in VulkanHelper itself works fine and devices enumeration, extensions enumeration, etc in Ryujinx have no issues.

I think it's probably a better idea to pass an NSView as the "window" for this one. I've messed with this and GTK, and it seems that our approach for trying to pull an embedded window out of a DrawingArea doesn't work. What did work is creating an NSView, adding it as a child and positioning it manually to match the GTK component (recaluclates when component moves). I can imagine a similar approach working for Avalonia.
Were you able to get embedded window creation working on the GTK side?
As for general stuff, code comments are generally correctly capitalized and well punctiated, like // Example comment.

I think it's probably a better idea to pass an NSView as the "window" for this one

NSWindow is needed for Show()/Hide() implementation. I believe it is possible to get NSWindow through NSView.window (if NSView is attached to window) but seems like an extra hop. The change is small though, should be easy to implement.

Were you able to get embedded window creation working on the GTK side?

Can you elaborate on what do you mean by embedded window?
I've tested complete Vulkan initialisation with Silk, surface creation aside (for which I used SPB VulkanHelper) and rendering of triangle in main window of GTK#/Glade app plus showing/hiding it on key press event through SimpleCocoaWindow methods.

As for general stuff, code comments are generally correctly capitalized and well punctuated, like // Example comment.

Sure, will fix it.

Sorry for the unusually long delay, the example project would be Ryujinx.

The embedded window is the DrawingArea that the game is rendered into. Our strategy for doing that is getting a native representation of the widget's Window and creating the context with that, though when I tried this on macos it gave me the whole window rather than just the drawing area. When creating a metal context with that, it replaced all GTK elements, which wasn't great as it made it impossible to see the status bar and menus.
I don't really have a simpler example on hand.

Since https://github.com/marysaka/SPB/commit/21b6f4be46c3094e16d00e8f4db0b580f9de4d09 is a thing now...
It might still be a good idea to port use the more fleshed out ObjectiveC class in this PR rather than the rather simple MacOS one for interop.
Supporting generating the layer from a window could also be useful.

Sorry, a bit busy week. Will catch up with comments later.
I get your concern now. I am not sure that GTK widgets are mapped to per-widget NSView (as GTK layout/rendering is used instead). Will check it.

Sorry, a bit busy week. Will catch up with comments later.
I get your concern now. I am not sure that GTK widgets are mapped to per-widget NSView (as GTK layout/rendering is used instead and thus all drawing area, including menu, is the same view). Will check it.

I may have forgot about that PR and made some changes on https://github.com/marysaka/SPB/commit/21b6f4be46c3094e16d00e8f4db0b580f9de4d09 while working on my GBA emu 😅
Could you maybe rebase or maybe close and split the changes?
I think the surface creation split in the VulkanHelper class could be nice to have.
I still am not to sure with the design of SimpleMetalWindow I made, for now all CAMetalLayer creation need to be handled externally.


Improve the approach we use to determine Python 3 system lib path

This pull request includes additional fixes on top of #4666.
End to end tests on actual distros we support showed that previous approach was not robust enough and didn't work correctly on all the distros.

Confirmed those changes work correctly on RHEL and Ubuntu 16.04 using new end to end tests.

Once the tests pass here I will take the liberty to merge this into master to fix test failures with the master branch.


✨ add paper trade mode

Current dependencies on/for this PR:

main

PR #8   👈

This comment was auto-generated by Graphite.


Find better name

Current name is kinda boring.

ChatGPT weighs in. Not sure if there's anything I really like.

DOI Diver is actually pretty similar to DOIdownloader but I like how it's just two syllables.


Android, physical keyboard, Backspace does not work well after clicking letters keys

Steps to reproduce
Physical Android device is requried, the simulator does not have this issue.

Connect an Android device through usb, and enable device debug, then connect <ip>:<port>

adb shell ip addr show wlan0
adb tcpip 5555
adb connect DEVICE_IP_ADDRESS:5555

Disconnect usb
Run the sample code flutter run -d <ip>:<port>
Connect a physical keyboard to the Android device
Click some letters, then click Backspace

Expected results
Clicking Backspace should trigger the events.
Actual results

If I have never clciked a letter, and click Backspace dicrectly. No events will be triggered.
If I have click one letter, I must click Backspace twice to make events. If I have click three letters, I must click Backspace for times to make events.
If I have clicked multiple letters, then click Enter or Home or End, Backspace can trigger events immediately.

Code sample
Code sample
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Keyboard Event Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: const KeyboardEventPage(),
    );
  }
}

class KeyboardEventPage extends StatefulWidget {
  const KeyboardEventPage({super.key});

  @override
  _KeyboardEventPageState createState() => _KeyboardEventPageState();
}

class _KeyboardEventPageState extends State<KeyboardEventPage> {
  final FocusNode _focusNode = FocusNode();

  @override
  Widget build(BuildContext context) {
    final child = Scaffold(
      appBar: AppBar(
        title: const Text('Keyboard Event Demo'),
      ),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: <Widget>[
            const SizedBox(height: 20),
          ],
        ),
      ),
    );
    return FocusScope(
      autofocus: true,
      child: Focus(
        autofocus: true,
        canRequestFocus: true,
        focusNode: _focusNode,
        onKeyEvent: (node, event) {
          if (event is KeyDownEvent) {
            debugPrint('Key down, logicalKey: ${event.logicalKey}');
            debugPrint('Key down, physicalKey: ${event.physicalKey}');
          }
          return KeyEventResult.handled;
        },
        child: child,
      ),
    );
  }
}

Screenshots or Video

Screenshots / Video demonstration

Logs
Logs
[Paste your logs here]

Flutter Doctor output
Doctor output
[✓] Flutter (Channel stable, 3.24.5, on Ubuntu 22.04.5 LTS 6.8.0-49-generic, locale en_US.UTF-8)
    • Flutter version 3.24.5 on channel stable at /home/username/workspace/devenv/flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision dec2ee5c1f (10 days ago), 2024-11-13 11:13:06 -0800
    • Engine revision a18df97ca5
    • Dart version 3.5.4
    • DevTools version 2.37.3

[✓] Android toolchain - develop for Android devices (Android SDK version 35.0.0)
    • Android SDK at /home/username/Android/Sdk
    • Platform android-35, build-tools 35.0.0
    • Java binary at: /opt/android-studio/jbr/bin/java
    • Java version OpenJDK Runtime Environment (build 17.0.11+0-17.0.11b1207.24-11852314)
    • All Android licenses accepted.

[✓] Chrome - develop for the web
    • Chrome at google-chrome

[✓] Linux toolchain - develop for Linux desktop
    • Ubuntu clang version 14.0.0-1ubuntu1.1
    • cmake version 3.30.3
    • ninja version 1.10.1
    • pkg-config version 0.29.2

[✓] Android Studio (version 2024.1)
    • Android Studio at /opt/android-studio
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 17.0.11+0-17.0.11b1207.24-11852314)

[✓] VS Code (version 1.95.3)
    • VS Code at /usr/share/code
    • Flutter extension version 3.100.0

[!] Proxy Configuration
    • HTTP_PROXY is set
    ! NO_PROXY is not set

[✓] Connected device (3 available)
    • V2241A (mobile) • <IP_ADDRESS>:5555 • android-arm64  • Android 14 (API 34)
    • Linux (desktop) • linux            • linux-x64      • Ubuntu 22.04.5 LTS 6.8.0-49-generic
    • Chrome (web)    • chrome           • web-javascript • Google Chrome 130.0.6723.69

[✓] Network resources
    • All expected network resources are available.

! Doctor found issues in 1 category.

It may be affected by the Input Method.
The usbHidUsage codes are right when I switch back to the default Input Method.

This issue occurs when using the Microsoft Swifty keyboard.


update artifact versions in README

Kind of change
[ ] Bug fix
[ ] New non-breaking feature
[ ] New breaking feature
[X] Documentation update
[ ] Build improvement
Description
What is the goal of this pull request?
Updates artifact versions in README to last published versions:

core: 2.2.0,
epub3: 1.5.0-alpha.9
pdf 1.5.0-beta.8
. jruby <IP_ADDRESS>

How does it achieve that?
Updates README with updated versions of artifacts & jruby.
Also:

Defines new property asciidoctorj-epub3-version and uses it where before there was a constant.
Fixes missing colon in jruby-version property.

Are there any alternative ways to implement this?
No
Are there any implications of this pull request? Anything a user must know?
No
Issue
If this PR fixes an open issue, please add a line of the form:
Fixes #Issue
Not applicable
Release notes
Please add a corresponding entry to the file CHANGELOG.adoc
Not applicable

Thanks!


Update kubernetes to v1.21.0

~opening as draft, as it currently depends on https://github.com/containerd/containerd/pull/5331 (first commit is that PR)~
I kept this separate in case we want the other update in v1.5.0, but not the kubernetes update

/test pull-containerd-node-e2e

moved back to draft; first commit is from https://github.com/containerd/containerd/pull/5385 (update to kubernetes v1.20.6)

@thaJeztah Would it make more sense to wait for 1.22 to release and update to that? There was some cri changes we'd been hoping for on the windows side https://github.com/kubernetes/cri-api/commit/321d95907be7c453c2c0a3408e71e676e916c9d9#diff-fda14d98da719a1d473215ee580468599988c1e62c0c8f4af2ff30aa1779f772

Covered by https://github.com/containerd/containerd/pull/5836


llama2-7b指令微调出错

Reminder

[X] I have read the README and searched the existing issues.

Reproduction
USE_MODELSCOPE_HUB=1 CUDA_VISIBLE_DEVICES=1 nohup python src/train_bash.py --stage sft --do_train --model_name_or_path modelscope/Llama-2-7b-ms --dataset alpaca_gpt4_zh,glaive_toolcall --template default --finetuning_type freeze --name_module_trainable mlp,self_attn --output_dir saves/llama-2-7b/freeze/llama-2-7b-sft --overwrite_cache --per_device_train_batch_size 8 --gradient_accumulation_steps 4 --lr_scheduler_type cosine --logging_steps 100 --save_steps 1000 --learning_rate 2e-5 --num_train_epochs 3.0 --plot_loss --fp16 --max_samples 8000 --overwrite_output_dir
Expected behavior
两次尝试运行，都在第二个epoch结束后返回下面的错误，前面两个epoch都正常
System Info
Traceback (most recent call last):
File "/root/miniconda3/envs/llama_factory/lib/python3.10/site-packages/transformers/generation/configuration_utils.py", line 558, in save_pretrained
raise ValueError(str([w.message for w in caught_warnings]))
ValueError: [UserWarning('do_sample is set to False. However, temperature is set to 0.9 -- this flag is only used in sample-based generation modes. You should set do_sample=True or unset temperature.'), UserWarning('do_sample is set to False. However, top_p is set to 0.6 -- this flag is only used in sample-based generation modes. You should set do_sample=True or unset top_p.')]
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/nfs2/xw/LLaMA-Factory/src/train_bash.py", line 14, in
main()
File "/nfs2/xw/LLaMA-Factory/src/train_bash.py", line 5, in main
run_exp()
File "/nfs2/xw/LLaMA-Factory/src/llmtuner/train/tuner.py", line 31, in run_exp
run_sft(model_args, data_args, training_args, finetuning_args, generating_args, callbacks)
File "/nfs2/xw/LLaMA-Factory/src/llmtuner/train/sft/workflow.py", line 75, in run_sft
train_result = trainer.train(resume_from_checkpoint=training_args.resume_from_checkpoint)
File "/root/miniconda3/envs/llama_factory/lib/python3.10/site-packages/transformers/trainer.py", line 1539, in train
return inner_training_loop(
File "/root/miniconda3/envs/llama_factory/lib/python3.10/site-packages/transformers/trainer.py", line 1929, in _inner_training_loop
self._maybe_log_save_evaluate(tr_loss, model, trial, epoch, ignore_keys_for_eval)
File "/root/miniconda3/envs/llama_factory/lib/python3.10/site-packages/transformers/trainer.py", line 2302, in _maybe_log_save_evaluate
self._save_checkpoint(model, trial, metrics=metrics)
File "/root/miniconda3/envs/llama_factory/lib/python3.10/site-packages/transformers/trainer.py", line 2378, in _save_checkpoint
self.save_model(staging_output_dir, _internal_call=True)
File "/root/miniconda3/envs/llama_factory/lib/python3.10/site-packages/transformers/trainer.py", line 2886, in save_model
self._save(output_dir)
File "/root/miniconda3/envs/llama_factory/lib/python3.10/site-packages/transformers/trainer.py", line 2958, in _save
self.model.save_pretrained(
File "/root/miniconda3/envs/llama_factory/lib/python3.10/site-packages/transformers/modeling_utils.py", line 2364, in save_pretrained
model_to_save.generation_config.save_pretrained(save_directory)
File "/root/miniconda3/envs/llama_factory/lib/python3.10/site-packages/transformers/generation/configuration_utils.py", line 560, in save_pretrained
raise ValueError(
ValueError: The generation config instance is invalid -- .validate() throws warnings and/or exceptions. Fix these issues to save the configuration.
Thrown during validation:
[UserWarning('do_sample is set to False. However, temperature is set to 0.9 -- this flag is only used in sample-based generation modes. You should set do_sample=True or unset temperature.'), UserWarning('do_sample is set to False. However, top_p is set to 0.6 -- this flag is only used in sample-based generation modes. You should set do_sample=True or unset top_p.')]
67%|██████▋   | 1000/1500 [4:38:32<2:19:16, 16.71s/it]
Others
No response

删除模型目录下的 generation_config.json，并且使用本地路径训练


Typo on mac download page

Says "Pleas send bugs to Github". Should be "please".
http://d.pr/i/swos

@brianseitel thank you for this. We're currently compiling quite a list of nanobox.io issues, so we'll add this to the list and get it out as soon as we can.

@brianseitel Thanks for the catch, really appreciate it. Fixed.