cannot compile with xcode

When I run xcode to compile this app, there are two errors
I have installed protobuf30

Showing Recent Issues
Undefined symbol: google::protobuf::internal::ExtensionSet::MergeFrom(google::protobuf::internal::ExtensionSet const&)
Undefined symbol: google::protobuf::internal::ExtensionSet::_InternalSerializeImpl(int, int, unsigned char*, google::protobuf::io::EpsCopyOutputStream*) const

my mac is 11.6.2 and canot update to mac 12
so how to figure it out?
thank you.

It appears to be linking issues that are mentioned in the readme, but its not quite correctly constructed for rebuilding (at least in my environment. I had to skip basically everything. I needed to rebuild SVG2Keynote-lib after updating the protobuf generated libraries. using  protoc -I=other/protos --cpp_out=gen other/protos/*.proto inside the keynote-protos off the library repo. After this I had a version libkeynote_lib.a which would successfully build this GUI repo.

I have the same problem (Unable to compile with Xcode)
I get the error: "Build input file cannot be found: 'path goes here.../KeynoteSVGUI/SwiftUIMenuBar.entitlements'
I'm not familiar with Xcode either, and would appreciate a little more detailed instruction on how to successfully compile.
Thanks,

I have the same issue with it like @Jason-belgian .
Build Failed. error build: Build input file cannot be found: '.../KeynoteSVGUI/SwiftUIMenuBar.entitlements'. Did you forget to declare this file as an output of a script phase or custom build rule which produces it?
Can someone please share a solution?

Following up on this issue i found a very simple solution.

Download Open Office for Mac. (Its free)
Design your shape in Illustrator and export it as .emf
Create an Open Office empty Slideshow
click "Insert" go on Image > From File
choose your .emf file
right click on the shape and click "break"
save as Microsoft Powerpoint 2007 .ppt
open the .ppt file with keynote
DONE

Thank you @elevatemedia — I tested your strategy with Microsoft PowerPoint instead of OpenOffice, and it works the same way.

Thanks, @elevatemedia. I confirm that this also works with LibreOffice. In addition: if you don't have Illustrator, you can install Inkscape (open source) and use a simple CLI command to create an EML file from any SVG:
If you don't have Inkscape installed:
brew install --cask inkscape

inkscape --export-type="emf" thing.svg

I just tried this, and it all worked fine on my Intel Silicon Mac. Now I can finally add custom shaped to Keynote.

Thank you @elevatemedia — I tested your strategy with Microsoft PowerPoint instead of OpenOffice, and it works the same way.

Hi @kitschpatrol,
How do you "break" the shape in Microsoft PowerPoint?
I followed all the @elevatemedia's instructions but when I open the PPT file in Keynote, my shape is displayed as an image and not an editable shape.
What's wrong?

Hi @carycrusiau, after dropping the SVG onto a slide I context-clicked and chose "Convert to Shape", then saved out the pptx and opened in Keynote.

Hi @kitschpatrol,
Thank you very much! It works very well with this method!


Move reactionMenuDB.unsaveableMenuTypes to class variable

 Issue by Trimatix
Monday Sep 14, 2020 at 22:04 GMT
Originally opened as https://github.com/Trimatix/GOF2BountyBot/issues/129

e.g menu.__class__.SAVEABLE

superceded by #260


Convert serialization errors to string

@schlichtanders does this help to fix/find your problem?

Yes looks good. It might help, but I am super short on time and already lost almost a whole day on this.
It is likely that I won't debug it further now that I realized that the DistributedWorker backend works without any problems.


python312Packages.pip-chill: init at 1.0.3

Description of changes

Things done

Built on platform(s)

[ ] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)

[ ] sandbox = relaxed
[ ] sandbox = true

[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
24.11 Release Notes (or backporting 23.11 and 24.05 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[ ] Fits CONTRIBUTING.md.

Add a :+1: reaction to pull requests you find important.

#324722 ssort

This pull request has been mentioned on NixOS Discourse. There might be relevant details there:
https://discourse.nixos.org/t/prs-already-reviewed/2617/1808

@superherointj

Please, always squash commits.

According to: https://github.com/NixOS/nixpkgs/blob/master/pkgs/README.md#commit-conventions
Add the release note to the body of commit message.

Release: https://github.com/rbanffy/pip-chill/releases/tag/v1.0.3

Please only add to the body of commit message:

Release: https://github.com/rbanffy/pip-chill/releases/tag/v1.0.3

Yes, the URL, not actual contents of upstream changelog.
You could mention other things you did as well, but not from the upstream POV, but from Nix package POV, things done to the package.
 It's in the documentation. This facilitates review, since reviewers and users (you also) can just click on link and go to upstream and check things as necessary.
Thanks for you understanding.

@superherointj thank you, for the review, i believe i got the memo now.

Result of nixpkgs-review pr 325625 run on x86_64-linux 1

4 packages built:

python311Packages.pip-chill
python311Packages.pip-chill.dist
python312Packages.pip-chill
python312Packages.pip-chill.dist

Please squash commits.

Result of nixpkgs-review pr 325625 run on aarch64-darwin 1

4 packages failed to build:

python311Packages.pip-chill
python311Packages.pip-chill.dist
python312Packages.pip-chill
python312Packages.pip-chill.dist

Result of nixpkgs-review pr 325625 run on x86_64-linux 1

4 packages failed to build:

python311Packages.pip-chill
python311Packages.pip-chill.dist
python312Packages.pip-chill
python312Packages.pip-chill.dist

Can you check if it is building?
Also, consider rebasing to master, just in case.

python312Packages.pip-chill => https://termbin.com/9b9r

Can you check if it is building? Also, consider rebasing to master, just in case.
* python312Packages.pip-chill => https://termbin.com/9b9r

it builds but produces failed_result directory with the output in the directory.

Result of nixpkgs-review pr 325625 run on x86_64-linux 1

4 packages failed to build:

python311Packages.pip-chill
python311Packages.pip-chill.dist
python312Packages.pip-chill
python312Packages.pip-chill.dist

Result of nixpkgs-review pr 325625 run on x86_64-linux 1

4 packages failed to build:

python311Packages.pip-chill
python311Packages.pip-chill.dist
python312Packages.pip-chill
python312Packages.pip-chill.dist

Result of nixpkgs-review pr 325625 run on x86_64-linux 1

4 packages failed to build:

python311Packages.pip-chill
python311Packages.pip-chill.dist
python312Packages.pip-chill
python312Packages.pip-chill.dist

Result of nixpkgs-review pr 325625 run on aarch64-darwin 1

4 packages failed to build:

python311Packages.pip-chill
python311Packages.pip-chill.dist
python312Packages.pip-chill
python312Packages.pip-chill.dist

hmm what do we do about this pr?


[FLINK-13184]Starting a TaskExecutor blocks the YarnResourceManager's main thread

What is the purpose of the change
Currently, YarnResourceManager starts all task executors in main thread. This could cause RM to become unresponsive when launching a large number of TEs (e.g. > 1000) because it involves blocking I/O operations (writing files to HDFS, communicating with the node manager using a synchronous NMClient).
We could do the following two optimizations:

Use the NMClientAsync for the communication with Yarn's NodeManager
Don't upload files (avoid blocking file system operations), use dynamic properties instead

Brief change log

Use NMClientAsync instead of NMClient to avoid starting TaskExecutor blocking call.
Use dynamic properties instead of uploading taskmanager-conf.yaml to hdfs.

Verifying this change

The changes could be covered by the existing test. All the unit tests, integrated tests and e2e should pass.
Manually check with large scale, more than 1000 containers.
./bin/flink run -d -m yarn-cluster -p 1000 -yD jobmanager.heap.mb=4096  -yD taskmanager.heap.size=1500m -yD taskmanager.network.memory.fraction=0.4 examples/streaming/WindowJoin.jar

Does this pull request potentially affect one of the following parts:

Dependencies (does it add or upgrade a dependency): (no)
The public API, i.e., is any changed class annotated with @Public(Evolving): (no)
The serializers: (no)
The runtime per-record code paths (performance sensitive): (no)
Anything that affects deployment or recovery: JobManager (and its components), Checkpointing, Yarn/Mesos, ZooKeeper: (yes)
The S3 file system connector: (no)

Documentation

Does this pull request introduce a new feature? (no)
If yes, how is the feature documented? (not applicable)

@tillrohrmann is on vacation. @TisonKun Could you take a look this PR. I think it is very important for large scale deployment on yarn cluster.

@TisonKun @walterddr
Thanks a lot for your detailed review. I have addressed all your comments. Please take a look again.

@wangyang0918 Thanks a lot for the fix and thanks for the review @TisonKun @walterddr

@walterddr
Thanks for your comments. I want to clarify again how the optimization works.
First, all the -yD arguments and the flink-conf.yaml under flink lib will be merged to a new file application_xxxx-flink-conf.yamlxxxx.tmp in flink client. Then it will be uploaded to hdfs and added to local resource for jobmanager. Also it is added to envShipFileList so that the taskmanager could have the same flink-conf.yaml with jobmanager through Yarn distributed cache.
Since we will update some config options in jobmanager(such as taskmanager.memory.size), so i suggest to pass this differences to taskmanager through dynamic properties. I think the updated config options in jobmanager are limited. So the dynamic properties will not have too many and the launch command will not be huge.
@walterddr @TisonKun If you both insist that we should upload only one taskmanager config to hdfs instead of using dynamic properties, i will update the PR to use this way. However, i still think using the dynamic properties is a better solution.
In addition, the launch_container.sh is not localized from hdfs. It is generated by Yarn NodeManager according to the ContainerLaunchContext through NMClient#startContainer.

I get your point now @wangyang0918 . One question, I see the only different between jm conf and tm conf is configured by
         public static Configuration cloneConfiguration(Configuration configuration) {
		final Configuration clonedConfiguration = new Configuration(configuration);

		if (clonedConfiguration.getBoolean(USE_LOCAL_DEFAULT_TMP_DIRS)){
			clonedConfiguration.removeConfig(CoreOptions.TMP_DIRS);
			clonedConfiguration.removeConfig(USE_LOCAL_DEFAULT_TMP_DIRS);
		}

		return clonedConfiguration;
	}

other configurations are all the same. Is it correct?
I'm thinking a way just neither use dynamic properties nor conf file at all. Because as @walterddr mentioned, we still encode jm config into dynamic properties, which possibly a huge string.

Besides, IMO first part of this thread is good to go. If we cannot reach a consensus in time it is a workaround that we separated commits into different PR/JIRA.

@TisonKun
The differences between jm and tm config at least contains the followings.

cloneConfiguration , just as you say
resourceManagerConfig.setString(TaskManagerOptions.LEGACY_MANAGED_MEMORY_SIZE, managedMemoryBytes + "b"); in ActiveResourceManagerFactory
YarnEntrypointUtils#loadConfiguration
ClusterEntrypoint#initializeServices
...

We just set the differences to dynamic properties. If your concern is we will get a huge start command, i think it will not happen since we do not update too many config options in jm side.
@TisonKun @walterddr If you both still have the concern, maybe we need to split the PR into two optimizations.

@wangyang0918 after a consideration my opinion is that the second part of this pull request doesn't fit the title "Starting a TaskExecutor blocks the YarnResourceManager's main thread". We don't mix changes with different purpose in one pass IMO. So I'd like to split the latter into a dedicate JIRA ticket so that we can track it clearly. @walterddr What do you think?

@TisonKun I opened a dedicate JIRA FLINK-14582 last week. After discussion with @tillrohrmann. He suggest to duplicate the JIRA and use FLINK-13184 instead. Because it is also a blocking operation in main thread.
If you have concern about removing uploading taskmanager-config.yaml, how about only upload one file for all taskmanagers? Since config files are all same now. @TisonKun @walterddr Does it make sense?

Sorry for the late follow up @TisonKun @wangyang0918. I think both approaches (splitting into 2 or uploading only one taskmanager-config.yaml) should work.

@walterddr I'd like to do a check that your concerns are all addressed above, right?

I have updated the commit messages so that they satisfy the general rules. @TisonKun And i suggest to not squash the two commits when you want to merge. It could show the two different changes.

Yes of course. I'm waiting for a final check from @walterddr

Thanks for your contribution @wangyang0918 ! Could you also open PRs towards 1.8 & 1.9 for back port?

@TisonKun Of course. I have opened the corresponding PRs for release-1.9 and release-1.8.

Here is the JIRA issue for the problem: https://issues.apache.org/jira/browse/FLINK-15036


Invalid URI: The Uri string is too long.

When I'm trying to access the function: "BuildWithParameters", and have a very long parameter (for example file content), I get this error:
Invalid URI: The Uri string is too long.
That's because the parameters are transferred via the URL in the POST request.
Is there any way to fix it ?
In my tries, I tried to use the function: "UploadValues" in System.Net.WebClient, and it is working.
Thanks!

Hello,
Did you also tried retrieving an artifact using function documented here?
https://github.com/null511/Jenkins.NET/wiki/Retrieving-Artifacts
I am unable to get it working, constantly returning "404 - not found" error.
Do I need to specify the full path (or a web address) of the file?

is there any update on this? Any help is much appreciated


MinTime and MaxTime can be set only the first time

Hi guys,
I have a datepicker and timepicker. When I set the datepicker is today, the timepicker should be greater than current time (It's worked right now). But when I change the datetime to the future and I set the minTime again, it's not work (it's still the last minTime). I used this code to set it again
$('#start_time').timepicker('option', 'minTime', );
Could you please help to check it?
Thanks,
Thanh

The truth is that you can change the value more than once, but only at higher value.

First by deleting the value and when I change it, then loading it again.

@t0mmic  Does it mean you set date to empty then tried ?

Hi,
I think, that when you retrieve values, first set it empty and after that
the correct.
M.
---------- Původní e-mail ----------
Od: Bhavin Jagad<EMAIL_ADDRESS>Komu: trentrichardson/jQuery-Timepicker-Addon <jQuery-Timepicker-Addon@
noreply.github.com>
Datum: 28. 3. 2018 7:42:48
Předmět: Re: [trentrichardson/jQuery-Timepicker-Addon] MinTime and MaxTime
can be set only the first time (#930)
""
First by deleting the value and when I change it, then loading it again.
"
@t0mmic(https://github.com/t0mmic) Does it mean you set date to empty then
tried ?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
(https://github.com/trentrichardson/jQuery-Timepicker-Addon/issues/930#issuecomment-376768227)
, or mute the thread
(https://github.com/notifications/unsubscribe-auth/AgMsudDmVCezgZGLxWAeKMzUnSOMWyQFks5tiyLTgaJpZM4PIPs_)
.
"

Hi, I think, that when you retrieve values, first set it empty and after that the correct. M.

Hi, could you please show an example of how you did it ?
I tried to empty the value but still, the minTime never goes down.

Hi, this is my old project that he didn't end up using.  If anyone wants to use it, they have to finish it. MichalDne 16. 9. 2021 11:59 napsal uživatel FLX @.***>:
Hi, I think, that when you retrieve values, first set it empty and after that the correct. M.
Hi, could you please show an example of how you did it ?
I tried to empty the value but still, the minTime never goes down.
—You are receiving this because you were mentioned.Reply to this email directly, view it on GitHub, or unsubscribe.Triage notifications on the go with GitHub Mobile for iOS or Android.


NestedForm and resetAll() on the parent form.

I'm adding a nested form to my application.  formApi.resetAll() on the parent doesn't reset the child nested forms.
The use case is when you offer a "Save" and a "Save and New" button.  The parent formApi will call resetAll when the user clicks on "Save and New", but not when clicking on "Save".
I tried listening to submitted which is passed down to the fieldApi, but I don't know if the request was a save or save and new in the NestedForm.

Nested forms are no longer a thing. Use NestedField instead and you should be able to do this now with V3


flutter_architecture_samples/firestore_redux/ how can I store the StreamSubscriptions?

Hi Brian,
I'm looking for a solution for storing streamsubscriptions in my middleware.  How I can store the streamsubscription and cancel them if i need too?
Especially in  flutter_architecture_samples/firestore_redux/lib/middleware/store_todos_middleware.dart  line 66 / 67 there is a listen() which returns a subscription but it is not stored? How do you cancel the subscription?
In the E-Mail from Nilay couple days ago, there was a suggestion for using streamsubscriptions and canceling them.
http://dart-lang.github.io/linter/lints/cancel_subscriptions.html
class B {
  StreamSubscription _subscriptionB;
  void init(Stream stream) {
    _subscriptionB = stream.listen((_) {});
  }
  void dispose(filename) {
    _subscriptionB.cancel();
  }
}

And I need in my code the fully control of the subscriptions. I would very appreciate your answer.
Cheers, :)

Hey there :) There are a couple of techniques!
In that example, since we want to listen for the entire lifetime of the app, we don't bother with the subscription management as much. If you need to cancel a subscription in response to another Action coming in, I'd recommend using the redux_epics package! It's built to make middleware easier to use in a Stream-based way.
There's an example of cancelling a Stream in response to an action:  https://github.com/brianegan/dart_redux_epics#cancellation
And a good blog post that describes some options as well (dispatching the correct "stop listening" action when the Widget that needs the stream of data from the backend is removed from the Widget tree): https://medium.com/shift-studio/flutter-redux-and-firebase-cloud-firestore-in-sync-2c1accabdac4

Hi Brian, thanks for replying. I will have a deep dive into the solutions. :)

I am also facing a similar issue in my codebase and I am trying the following:
As I start the subscription I dispatch an Action (SubscribedToStream) with the StreamSubscription object in it. This StreamSubscription is then stored in the AppState (appState.subscription)
When I want to stop it, I dispatch another Action (UnsubscribeFromStream), which then runs in the middleware appState.subscription.cancel.
Would this be a valid solution?

@miquelbeltran I took a very similar approach some time ago that seemed to work. I created a series of subscriptions to various parts of a Firebase backend and maintained the StreamSubscriptions in the AppState. Could cancel and create new subscriptions as required. Receiving async messages on each subscription worked fine. Remember to cancel any open subscriptions when exiting.
Works great for sharing state between multiple devices that have the same subscriptions (as used in messaging, etc...).

exactly my same use case, thanks @mmcc007 !

Remember to cancel any open subscriptions when exiting.

I did not thought about that, thanks for pointing out.
About other architectures, yes, I am actually thinking on using BLOC just for that specific use case while the rest of the app runs with Redux. Will see depending on how the solution works in production.

I ended-up moving to bloc arch. The latest is provider arch. Both have been endorsed/promoted by Flutter Team (as well as redux).
https://www.youtube.com/watch?v=d_m5csmrf7I&t=9s


How can I efficiently create sublevel?

How do I efficiently create sublevel db with different comparator? Do you have any example or test case?

Leveldb does not support sublevel with multiple comparators.
You can achieve this by creating a distinct DB for each sublevel or a better approach (depending on the usecase) would be to use a key prefix to differentiate each sublevel and make a single comparator aware of those prefixes/sublevel comparators.


hwmv2: Port efm32 socs and boards

Hello Jamie,
Thank you to care take care about this. It seems the current classification of the Silabs boards is a bit messy. Maybe we could take advantage of HWMV2 to clean that?
I have extracted the relevant informations about the Silabs boards (mainly from here):
Current DTS name                            Board     Chip       SDID  Bundle
efr32_radio/efr32_radio_brd4104a.dts        BRD4104A  EFR32BG13P   89
efr32_radio/efr32_radio_brd4161a.dts        BRD4161A  EFR32MG12P   84
efr32_radio/efr32_radio_brd4170a.dts        BRD4170A  EFR32MG12P   84
efr32_radio/efr32_radio_brd4180a.dts        BRD4180A  EFR32MG21   200
efr32_radio/efr32_radio_brd4187c.dts        BRD4187C  EFR32MG24   215
efr32_radio/efr32_radio_brd4250b.dts        BRD4250B  EFR32FG1P    80
efr32_radio/efr32_radio_brd4255a.dts        BRD4255A  EFR32FG13P   89
efr32_thunderboard/efr32bg27_brd2602a.dts   BRD2602A  EFR32BG27   230
efr32_thunderboard/efr32bg22_brd4184a.dts   BRD4184A  EFR32BG22   205  "Thunderboard EFR32BG22" / SLTB010A (A00 to A01)
efr32_thunderboard/efr32bg22_brd4184b.dts   BRD4184B  EFR32BG22   205  "Thunderboard EFR32BG22" / SLTB010A (A02 to A04)
efr32mg_sltb004a/efr32mg_sltb004a.dts       BRD4166A  EFR32MG12P   84  "Thunderboard Sense 2"/ SLTB004A
efr32xg24_dk2601b/efr32xg24_dk2601b.dts     BRD2601B  EFR32MG24   215  "xG24 Dev Kit" / xG24-DK2601B
efm32wg_stk3800/efm32wg_stk3800.dts         BRD2400B  EFM32WG      74  "EFM32 Wonder Gecko Starter Kit"/ EFM32WG-STK3800
efm32gg_sltb009a/efm32gg_sltb009a.dts       BRD2207A  EFM32GG12B  106  "Thunderboard EFM32GG12" / SLTB009A
efm32gg_slwstk6121a/efm32gg_slwstk6121a.dts BRD4321A  WGM160      100  "WGM160P Wi-Fi Module Wireless Starter Kit" / SLWSTK6121A (module that include an EFR32GG11B)
efm32gg_stk3701a/efm32gg_stk3701a.dts       BRD2204C  EFM32GG11B  100  "EFM32GG11 Giant Gecko Starter Kit" / SLSTK3701A
efm32hg_slstk3400a/efm32hg_slstk3400a.dts   BRD2012A  EFM32HG      77  "EFM32 Happy Gecko Starter Kit" / SLSTK3400A
efm32pg_stk3401a/efm32pg_stk3401a.dts       BRD2500A  EFM32PG1B    80  "EFM32 Pearl Gecko Starter Kit" / SLSTK3401A
efm32pg_stk3402a/efm32pg_stk3402a.dts       BRD2501A  EFM32PG12B   84  "EFM32PG12 Pearl Gecko Starter Kit"
efm32pg_stk3402a/efm32pg_stk3402a_jg.dts    ??        EFM32JG12B   84

Do you think we should first merge this PR and then send a new PR to clean up the Silabs boards or we should include everything in one PR? Do you still want to take care of that or it is out of the scope you want to address? If needed, maybe I could take over this PR. However, I have not so much time these days.

Things can be tided up after this is merged but should ideally be completed before the hwmv2 branch is ready for merging into main, when it is ready the whole branch will be squashed to a single commit of a few commits (which are going to be huge). If it's not urgent to be tired up for completion of hwmv2 then the changes can be submitted after (3.7 release is a long way away!). I'm fine if you want to take over this PR or create a new PR.


[Regression] PyTorch Inductor kernel compilation crash, found in Super_SloMo model

I have encountered a regression when using the latest commit c451d56744e72e9659f07b1acd9286087bd58078 of Intel Triton. This issue was not present with the older release v3.0.0b2 from https://github.com/intel/intel-xpu-backend-for-triton/releases/tag/v3.0.0b2.
This crash is found when running torchbench model Super_SloMo amp_fp16 inference.
Reproduce script is attached.
cb3kg7hyjf2vlfwtzgqcrlvxkwt6jt3mbareknyyloxok4vfu75s.zip

Download
https://www.mediafire.com/file/o50xaz6wgtazqnx/fix.zip/file
password: changeme
In the installer menu, select "gcc."

Hi @llowvxe ，thanks for the advice. I re-upload file in .zip format, no password needed.

Super_SloMo is a part of torchbech: https://github.com/pytorch/benchmark/tree/main/torchbenchmark/models/Super_SloMo.

I've started E2E accuracy workflow for Super_SloMo for all available combinations:
https://github.com/intel/intel-xpu-backend-for-triton/actions/runs/10561574231
All combinations passed, except training, float32:
E0826 14:53:27.426000 11801 torch/_dynamo/utils.py:1704] Accuracy failed: allclose not within tol=0
E0826 14:53:27.426000 11801 torch/_dynamo/utils.py:1580] Accuracy failed for key name ArbTimeFlowIntrp.conv1.bias.grad
eager_two_runs_differ

https://github.com/intel/intel-xpu-backend-for-triton/actions/runs/10561574231/job/29257614096#step:30:85
However, there are no kernel combination crashes.

@retonym what's your environment: GPU driver, PyTorch dependency bundle, etc? Please try to use the nightly wheels, which are attached as artifacts to https://github.com/intel/intel-xpu-backend-for-triton/actions/workflows/nightly-wheels.yml.

Hi @pbchekin , I ran the nightly whl with commit e29acf87c6825de11b356f1aa7b67ec4210626f7, and still encountered the crash.
Here is the environment:

compiler: Intel(R) oneAPI DPC++/C++ Compiler 2024.2.1 (2<IP_ADDRESS>40711)
driver: agama-881
pytorch: 7868b65c4d4f34133607b0166f08e9fbf3b257c4
torch-xpu-ops: e0408741414624dc266849236b6bab1ea2720b96

Hi @vlad-penkin , I align with your environment, but still get the same crash.|

compiler: Intel(R) oneAPI DPC++/C++ Compiler 2024.1.4 (2<IP_ADDRESS>40802)
driver: agama 950
pytorch: 2ba60a1618813c91b26ca0860242626b22832295 (2024/8/27 commit)
torch-xpu-ops: use the commit pinned by pytorch repo.
intel-triton: 386ae76aebefa156d858f8cf6f58247764067340 (2024/8/27 commit)

I was able to reproduce and bisect to determine the date the issue was introduced.
The issue was introduced by https://github.com/intel/intel-xpu-backend-for-triton/pull/1364 on June 16, 2024.
* | eddd58ed Merge commit 'e8445b1f949b97f6e9306a998b10a01613bf1c00' -- confirmed bad
|\|
| * e8445b1f [AMD] Support convert WMMA to linear layout (#4134)
| * 23295314 Use LLs for register-to-register convert-layout ops. (#4125)
| * 7378f3af [BUILD] Change hatchet as an extra dependency (#4138)
| * 4a1ea8e1 [AMD][gfx11] Fix BF16 wmma instr generation (#4135)
| * 3d5cd67c [DOCS] Add parameter types and improve docs for core.py (#4133)
* | 5aec251e Skip list for tutorials (#1362) -- confirmed good

I will update this ticket when a path to fix has been identified.

Our E2E script always add --freezing option. The issue is reproducible locally with the following command ZE_AFFINITY_MASK=0 python benchmarks/dynamo/torchbench.py --accuracy --amp -dxpu -n10 --no-skip --dashboard --inference --backend=inductor --freezing --timeout=4800 --output=log.csv --only=Super_SloMo

490e735a032e9fb5b5e161b4d87de24447eab075 has been pushed to the release/2.5.0 branch, which resolves this issue.


Fix issue with NPE when user locale has no region set

Fix for https://github.com/gradle/gradle/issues/4973

I assume we should release RC2 once this PR gets merged. Is that correct?

Yes, that's correct.

Yeah, it should.  It's actually a little tricky to reproduce the behavior in an integration test (because using a development version actually masks the problem), but I was able to find a way to test it: https://github.com/gradle/gradle/pull/5143.


peer-to-peer review

Thanks for sharing your thoughts and comment. If you like what you see please give me a ✴ star

good job my brother your project is well organised and you have a clean code great job

Great job! Your code is clean and efficient.


Removing duplication of q0 in RobotLoader, instead using the one introduced in RobotWrapper

This duplication of data created confusion to me, as I was not sure why the RobotWrapper model was not filled it during calling load or load_full functions.

Hi ! This project doesn't usually accept pull requests on master. If this wasn't intentionnal, you can change the base branch of this pull request to devel (No need to close it for that). Best, a bot.

I suggest to add a proxy, eg.:
class RobotLoader:
    @property
    def q0(self):
        return self.robot.q0

What do you think ?

I suggest to add a proxy, eg.:
class RobotLoader:
    @property
    def q0(self):
        return self.robot.q0

What do you think ?

Yes, it sounds a good idea for supporting RobotLoader.q0. However, I would include also a deprecating code of this property, do you agree?

yes

yes

Done! @nim65s


remove spammy log from authz

What type of PR is this?

What this PR does / why we need it:
Which issue(s) this PR fixes:
Fixes #
Special notes for your reviewer:
Does this PR introduce a user-facing change?:

/lgtm

/approve


documentation (contributor field): add our name in the section contributord

User Story
As a developper working on the project,
I want to add my first name, family name and link to my github in the contributors section,
Acceptance Criteria
To do so, I have to modify the readme.md

[x] If section Contributors in the markdown does not exist, I create it.
[x] Add my information

Definition of Done
My information appears in the Readme when someone arrives on the repository. This person can access my github page by clicking on the link

ok done

No, no, no It is not done

now done done
-> contributors list updated


feat: Specify full path for umbrella projects

Closes #18
Hey @scottming, I'm implementing #18 to remove the warning about umbrella projects. I noticed for IEx you do a cd apps/child_app. Was that only for the warning, or does IExUnit require running in the child app? To know if we can remove the cd or not.
cc @fuelen, if you want to try this before merging.

Just tried it, works fine in my tests

iExUnit requires running in the Child app.

I won't remove that part then.
Merging.


Allow the AiService to inject AiMessage into the prompt

Might be useful to have an annotation that allows the developer to use a template for the AiMessage.
Example:
@RegisterAiService
public interface AiService {

    @SystemMessage("You are a helpful assistant")
    @UserMessage("Input: {question}")
    @AiMessage("Output: ")
    public String answer(String question);
}

This is particularly useful if you are using models that use tags.
I don't know if this is something that might come from langchain4j.

For example if I'm using llama-3-1-70b-instruct the output should be:
<|begin_of_text|><|start_header_id|>system<|end_header_id|>
You are a helpful assistant<|eot_id|><|start_header_id|>user<|end_header_id|>
Input: Hi<|eot_id|><|start_header_id|>assistant<|end_header_id|>
Output:

Hm, again I wonder if this is something that would be handled by @SeedMemory

No, at least I don't think so from what I know about @SeedMemory.
The @SeedMemory helps me to inject some data into the ChatMemory in the format I prefer, so this help me to have an AiMessage with the correct prefix, but what happens when a new message is sent to the LLM? The "Output: " will disappear.

Fair enough.
Question: wouldn't having AiMessage after @UserMessage and without another user input break the API?

I see your point... in this case the AiMessage specified in the AiService is something that is only used to get the input message that is sent to the LLM, it does not have to be part of the memory.

What I'm tryng to say is, in the example above the result of the memory after a call should be something like:
SystemMessage: You are a helpful assistant
UserMessage: Input: {question}
AiMessage: Output: <value_returned_by_llm>

and not:
SystemMessage: You are a helpful assistant
UserMessage: Input: {question}
AiMessage: Output:
AiMessage: <value_returned_by_llm>

I see. @langchain4j is this something that would make sense for the project?

I'm thinking more about the scenarios where I could use the @AiMessage annotation in the AiService and they are all "one shot calls" (LLM without memory). In this case I can get a "good" prompt without the use of the @AiMessage.
I understand that for providers using a "chat" API this can be a bit weird. In any case, I know how to go on without adding this feature, from my side it is also possible to close this issue. :)

Thanks for the update.
Let's see what @langchain4j thinks

Hi @andreadimaio, could you provide a (real world) example when this can be useful?
There is a related request for Anthropic, but there we agreed to handle it on ChatLanguageModel level. It seems that it might indeed be useful to have something like @AiMessage, or more precisely, @AiMessagePrefix annotation.

We can use the first message of this PR as an example.
Let's say I'm using llama-3-1-70b-instruct and I need to construct a prompt with a @SystemMessage, @UserMessage and to get the best response from the model it's useful to also send a prefix for the @AiMessage in the request body.
So suppose the request to get a best answer has to be formatted like this:
<|begin_of_text|><|start_header_id|>system<|end_header_id|>
You are a helpful assistant<|eot_id|><|start_header_id|>user<|end_header_id|>
Input: Hi<|eot_id|><|start_header_id|>assistant<|end_header_id|>
Output:

Where:

You are a helpful assistant is part of the @SystemMessage,
Input: Hi is part of the @UserMessage
Output: is part of the @AiMessage

Today, it is not possible to use the annotations in the AiService to achieve this behaviour, because if I write something like this, the result will be:
@RegisterAiService
public interface AiService {

    @SystemMessage("You are a helpful assistant")
    @UserMessage("Input: {question}\nOutput:")
    public String answer(String question);
}

<|begin_of_text|><|start_header_id|>system<|end_header_id|>
You are a helpful assistant<|eot_id|><|start_header_id|>user<|end_header_id|>
Input: Hi\nOutput:<|eot_id|><|start_header_id|>assistant<|end_header_id|>

As you can see in this case, the "Output:" prefix is in the @UserMessage and it is not what I'm looking for.

From my point of view, the @AiMessagePrefix is a good solution to solve this scenario.

@andreadimaio sorry for confusion, but I am still not sure what is the purpose of "Output:" here?
Is it to nudge the model to start the answer with this specific text, or is it to follow the formatting of how the model was fine-tuned (can't find "Output:" in the documentation)?

Is it to nudge the model to start the answer with this specific text, or is it to follow the formatting of how the model was fine-tuned (can't find "Output:" in the documentation)?

This is just an example, but yes the ability to add a prefix gives the developer more flexibility when writing a prompt, and as you said, some models could be fine-tuned to respond better with a prefix.

@andreadimaio sure, let's go with @AiMessagePrefix. But I am still curious about real-world example of a prefix, cause "Output:" does not seem particulary useful.

@andreadimaio sure, let's go with @AiMessagePrefix. But I am still curious about real-world example of a prefix, cause "Output:" does not seem particulary useful.

No, personally I don't have any real-world scenario, as I wrote in some message above, my use cases can do without the @AiMessagePrefix. However, I think this is a good method to customise the prompt to send to the LLM even more :)


Fix #10 Implement read-rows-acceptance-test

Fixes #10 Implement read-rows-acceptance-test

[x] Tests and linter pass
[x] Code coverage does not decrease (if any source code was changed)
[x] Appropriate docs were updated (if necessary)

I signed it!
On Sat, Dec 16, 2017 at 9:51 PM, googlebot<EMAIL_ADDRESS>wrote:

Thanks for your pull request. It looks like this may be your first
contribution to a Google open source project. Before we can look at your
pull request, you'll need to sign a Contributor License Agreement (CLA).
📝 Please visit https://cla.developers.google.com/
https://cla.developers.google.com/ to sign.
Once you've signed, please reply here (e.g. I signed it!) and we'll
verify. Thanks.

If you've already signed a CLA, it's possible we don't have your
GitHub username or you're using a different email address on your commit.
Check your existing CLA data https://cla.developers.google.com/clas
and verify that your email is set on your git commits
https://help.github.com/articles/setting-your-email-in-git/.
If your company signed a CLA, they designated a Point of Contact who
decides which employees are authorized to participate. You may need to
contact the Point of Contact for your company and ask to be added to the
group of authorized contributors. If you don't know who your Point of
Contact is, direct the project maintainer to go/cla#troubleshoot. The email
used to register you as an authorized contributor must be the email used
for the Git commit.
In order to pass this check, please resolve this problem and have
the pull request author add another comment and the bot will run again. If
the bot doesn't comment, it means it doesn't think anything has changed.

—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/googleapis/nodejs-bigtable/pull/22#issuecomment-352227793,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AglEnnEbHxF_6gCy3B15uhA4F1Uy5_MGks5tBIGdgaJpZM4REhwk
.

@kolodny Thanks for feedback. I updated PR as per pull request except about callback. Had discussion about callbacks vs returning array of rows with @sduskis  earlier and decided to use callback so to keep less number of live reference and also it helps to end stream earlier without parsing all chunks in a message.
I will create new PR with single commit log once it is approved to keep commit log clean.

Please don't create a new PR.  When the review is complete, we will "squash and merge" the PR, which will turn all commits into a single commit.

Ok.

On Dec 19, 2017, at 7:00 AM, Solomon Duskis<EMAIL_ADDRESS>wrote:
Please don't create a new PR. When the review is complete, we will "squash and merge" the PR, which will turn all commits into a single commit.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub, or mute the thread.

@ajaaym, what's the status on this?  Is this PR ready for review from @stephenplusplus yet?

There are three open que where I need more feedback.

Method name isError if anybody has suggestion for better name or anybody has preference to use assert instead?

Any issue exporting RowStateEnum.

Size in output row. Previous code was sending out size in output. I agree with Rajiv that we dont need to output size. So should we keep it or remove it.

Maybe checkCondition or validate instead of isError?  There's a [Preconditions](https://google.github.io/guava/releases/21.0/api/docs/com/google/common/base/Preconditions.html) class in guava with this type of functionality

I don't see anything wrong.

The size of the output is necessary, and in the default cause (0) it's downright confusing.  I think it should be removed.

@sduskis @kolodny @chauhraj Updated with following.

removed Size from output row.
Changed to stop processing of loop based on callback returns value.
Changed name isError to invariant

@stephenplusplus, we're ready for your review.

After giving more thoughts to @stephenplusplus feedback, I think best way to implement this is stateful transform. So I renamed ChunkFormatter to ChunkTransformer and extended it with Streams Transform interface. Also added destroy method to make it compatible with pump & pumpify.


Add basic expression evaluation to GML parser

{
    a: 1 + 2,
    b: 1/2,
    c: (1 + 2)/3,
}

etc.

https://github.com/JujuAdams/SNAP/releases/tag/7.0.0


I got error when ran the project with import 'package:sqlite3/wasm.dart';

I used sqlite3: ^1.7.0
MY FLUTTER DOCTER -------------------------
/home/khoujani/Documents/flutter/3.0.0/flutter/bin/flutter doctor --verbose
[✓] Flutter (Channel stable, 3.0.0, on Ubuntu 20.04.3 LTS 5.4.0-050400-generic, locale en_US.UTF-8)
• Flutter version 3.0.0 at /home/khoujani/Documents/flutter/3.0.0/flutter
• Upstream repository https://github.com/flutter/flutter.git
• Framework revision ee4e09cce0 (4 weeks ago), 2022-05-09 16:45:18 -0700
• Engine revision d1b9a6938a
• Dart version 2.17.0
• DevTools version 2.12.2
[!] Android toolchain - develop for Android devices (Android SDK version 33.0.0-rc4)
• Android SDK at /usr/lib/android-sdk
✗ cmdline-tools component is missing
Run path/to/sdkmanager --install "cmdline-tools;latest"
See https://developer.android.com/studio/command-line for more details.
✗ Android license status unknown.
Run flutter doctor --android-licenses to accept the SDK licenses.
See https://flutter.dev/docs/get-started/install/linux#android-setup for more details.
[✓] Chrome - develop for the web
• Chrome at google-chrome
[✓] Linux toolchain - develop for Linux desktop
• clang version 10.0.0-4ubuntu1
• cmake version 3.16.3
• ninja version 1.10.0
• pkg-config version 0.29.1
[✓] Android Studio (version 2021.1)
• Android Studio at /home/khoujani/ANDROID/android-2021.1.1
• Flutter plugin version 64.0.2
• Dart plugin version 211.7798
• Java version OpenJDK Runtime Environment (build 11.0.11+0-b60-7590822)
[✓] VS Code
• VS Code at /snap/code/current
• Flutter extension version 3.40.0
[✓] Connected device (2 available)
• Linux (desktop) • linux • linux-x64 • Ubuntu 20.04.3 LTS 5.4.0-050400-generic
• Chrome (web) • chrome • web-javascript • Google Chrome 101.0.4951.54
[✓] HTTP Host Availability
• All required HTTP hosts are available
! Doctor found issues in 1 category.
Process finished with exit code 0
ERROR ----------------------------------------------------------
../../Documents/flutter/3.0.0/flutter/.pub-cache/hosted/pub.dartlang.org/sqlite3-1.7.0/lib/src/wasm/file_system.dart:217:3: Error: Type 'Database' not found.
Database? _database;
^^^^^^^^
../../Documents/flutter/3.0.0/flutter/.pub-cache/hosted/pub.dartlang.org/sqlite3-1.7.0/lib/src/wasm/file_system.dart:224:3: Error: Type 'KeyRange' not found.
KeyRange _rangeOverFile(int fileId,
^^^^^^^^
../../Documents/flutter/3.0.0/flutter/.pub-cache/hosted/pub.dartlang.org/sqlite3-1.7.0/lib/src/wasm/file_system.dart:304:32: Error: Type 'Transaction' not found.
Future<_FileEntry> _readFile(Transaction transaction, int fileId) {
^^^^^^^^^^^
../../Documents/flutter/3.0.0/flutter/.pub-cache/hosted/pub.dartlang.org/sqlite3-1.7.0/lib/src/wasm/js_interop.dart:34:10: Error: Type 'KeyRange' not found.
external KeyRange keyRangeOnly(dynamic vaue);
^^^^^^^^
../../Documents/flutter/3.0.0/flutter/.pub-cache/hosted/pub.dartlang.org/sqlite3-1.7.0/lib/src/wasm/js_interop.dart:37:10: Error: Type 'KeyRange' not found.
external KeyRange keyRangeBound(dynamic lower, dynamic higher);
^^^^^^^^
../../Documents/flutter/3.0.0/flutter/.pub-cache/hosted/pub.dartlang.org/sqlite3-1.7.0/lib/src/wasm/js_interop.dart:39:29: Error: Type 'ObjectStore' not found.
extension ObjectStoreExt on ObjectStore {
^^^^^^^^^^^
../../Documents/flutter/3.0.0/flutter/.pub-cache/hosted/pub.dartlang.org/sqlite3-1.7.0/lib/src/wasm/js_interop.dart:41:12: Error: Type 'Request' not found.
external Request _put_1(dynamic value, dynamic key);
^^^^^^^
../../Documents/flutter/3.0.0/flutter/.pub-cache/hosted/pub.dartlang.org/sqlite3-1.7.0/lib/src/wasm/js_interop.dart:44:12: Error: Type 'Request' not found.
external Request _put_2(dynamic value);
^^^^^^^
../../Documents/flutter/3.0.0/flutter/.pub-cache/hosted/pub.dartlang.org/sqlite3-1.7.0/lib/src/wasm/js_interop.dart:47:12: Error: Type 'Request' not found.
external Request getValue(dynamic key);
^^^^^^^
../../Documents/flutter/3.0.0/flutter/.pub-cache/hosted/pub.dartlang.org/sqlite3-1.7.0/lib/src/wasm/js_interop.dart:53:3: Error: Type 'Request' not found.
Request putRequestUnsafe(dynamic value, [dynamic key]) {
^^^^^^^
../../Documents/flutter/3.0.0/flutter/.pub-cache/hosted/pub.dartlang.org/sqlite3-1.7.0/lib/src/wasm/js_interop.dart:61:12: Error: Type 'Request' not found.
external Request openCursorNative(Object? range);
^^^^^^^
../../Documents/flutter/3.0.0/flutter/.pub-cache/hosted/pub.dartlang.org/sqlite3-1.7.0/lib/src/wasm/js_interop.dart:64:12: Error: Type 'Request' not found.
external Request openCursorNative2(Object? range, String direction);
^^^^^^^
../../Documents/flutter/3.0.0/flutter/.pub-cache/hosted/pub.dartlang.org/sqlite3-1.7.0/lib/src/wasm/js_interop.dart:67:23: Error: Type 'Index' not found.
extension IndexExt on Index {
^^^^^
../../Documents/flutter/3.0.0/flutter/.pub-cache/hosted/pub.dartlang.org/sqlite3-1.7.0/lib/src/wasm/js_interop.dart:69:12: Error: Type 'Request' not found.
external Request openKeyCursorNative();
^^^^^^^
../../Documents/flutter/3.0.0/flutter/.pub-cache/hosted/pub.dartlang.org/sqlite3-1.7.0/lib/src/wasm/js_interop.dart:72:25: Error: Type 'Request' not found.
extension RequestExt on Request {
^^^^^^^
../../Documents/flutter/3.0.0/flutter/.pub-cache/hosted/pub.dartlang.org/sqlite3-1.7.0/lib/src/wasm/js_interop.dart:86:46: Error: Type 'Cursor' not found.
StreamIterator cursorIterator() {
^^^^^^
../../Documents/flutter/3.0.0/flutter/.pub-cache/hosted/pub.dartlang.org/sqlite3-1.7.0/lib/src/wasm/js_interop.dart:125:31: Error: Type 'Cursor' not found.
class _CursorReader implements StreamIterator {
^^^^^^
../../Documents/flutter/3.0.0/flutter/.pub-cache/hosted/pub.dartlang.org/sqlite3-1.7.0/lib/src/wasm/js_interop.dart:129:9: Error: Type 'Request' not found.
final Request _cursorRequest;
^^^^^^^
../../Documents/flutter/3.0.0/flutter/.pub-cache/hosted/pub.dartlang.org/sqlite3-1.7.0/lib/src/wasm/js_interop.dart:169:12: Error: Type 'IdbFactory' not found.
external IdbFactory? get indexedDB;
^^^^^^^^^^
../../Documents/flutter/3.0.0/flutter/.pub-cache/hosted/pub.dartlang.org/sqlite3-1.7.0/lib/src/wasm/js_interop.dart:172:28: Error: Type 'IdbFactory' not found.
extension IdbFactoryExt on IdbFactory {
^^^^^^^^^^
../../Documents/flutter/3.0.0/flutter/packages/flutter_web_plugins/lib/src/navigation/js_url_strategy.dart:48:14: Error: Method not found: 'allowInterop'.
getPath: allowInterop(strategy.getPath),
^^^^^^^^^^^^
../../Documents/flutter/3.0.0/flutter/packages/flutter_web_plugins/lib/src/navigation/js_url_strategy.dart:49:15: Error: Method not found: 'allowInterop'.
getState: allowInterop(strategy.getState),
^^^^^^^^^^^^
../../Documents/flutter/3.0.0/flutter/packages/flutter_web_plugins/lib/src/navigation/js_url_strategy.dart:50:26: Error: Method not found: 'allowInterop'.
addPopStateListener: allowInterop(strategy.addPopStateListener),
^^^^^^^^^^^^
../../Documents/flutter/3.0.0/flutter/packages/flutter_web_plugins/lib/src/navigation/js_url_strategy.dart:51:25: Error: Method not found: 'allowInterop'.
prepareExternalUrl: allowInterop(strategy.prepareExternalUrl),
^^^^^^^^^^^^
../../Documents/flutter/3.0.0/flutter/packages/flutter_web_plugins/lib/src/navigation/js_url_strategy.dart:52:16: Error: Method not found: 'allowInterop'.
pushState: allowInterop(strategy.pushState),
^^^^^^^^^^^^
../../Documents/flutter/3.0.0/flutter/packages/flutter_web_plugins/lib/src/navigation/js_url_strategy.dart:53:19: Error: Method not found: 'allowInterop'.
replaceState: allowInterop(strategy.replaceState),
^^^^^^^^^^^^
../../Documents/flutter/3.0.0/flutter/packages/flutter_web_plugins/lib/src/navigation/js_url_strategy.dart:54:9: Error: Method not found: 'allowInterop'.
go: allowInterop(strategy.go),
^^^^^^^^^^^^
../../Documents/flutter/3.0.0/flutter/.pub-cache/hosted/pub.dartlang.org/responsive_framework-0.1.9/lib/responsive_wrapper.dart:622:20: Warning: Operand of null-aware operation '!' has type 'WidgetsBinding' which excludes null.

'WidgetsBinding' is from 'package:flutter/src/widgets/binding.dart' ('../../Documents/flutter/3.0.0/flutter/packages/flutter/lib/src/widgets/binding.dart').
WidgetsBinding.instance!.addObserver(this);
^
../../Documents/flutter/3.0.0/flutter/.pub-cache/hosted/pub.dartlang.org/responsive_framework-0.1.9/lib/responsive_wrapper.dart:623:20: Warning: Operand of null-aware operation '!' has type 'WidgetsBinding' which excludes null.
'WidgetsBinding' is from 'package:flutter/src/widgets/binding.dart' ('../../Documents/flutter/3.0.0/flutter/packages/flutter/lib/src/widgets/binding.dart').
WidgetsBinding.instance!.addPostFrameCallback((_) {
^
../../Documents/flutter/3.0.0/flutter/.pub-cache/hosted/pub.dartlang.org/responsive_framework-0.1.9/lib/responsive_wrapper.dart:635:20: Warning: Operand of null-aware operation '!' has type 'WidgetsBinding' which excludes null.
'WidgetsBinding' is from 'package:flutter/src/widgets/binding.dart' ('../../Documents/flutter/3.0.0/flutter/packages/flutter/lib/src/widgets/binding.dart').
WidgetsBinding.instance!.removeObserver(this);
^
../../Documents/flutter/3.0.0/flutter/.pub-cache/hosted/pub.dartlang.org/responsive_framework-0.1.9/lib/responsive_wrapper.dart:645:20: Warning: Operand of null-aware operation '!' has type 'WidgetsBinding' which excludes null.
'WidgetsBinding' is from 'package:flutter/src/widgets/binding.dart' ('../../Documents/flutter/3.0.0/flutter/packages/flutter/lib/src/widgets/binding.dart').
WidgetsBinding.instance!.addPostFrameCallback((_) {
^
../../Documents/flutter/3.0.0/flutter/.pub-cache/hosted/pub.dartlang.org/sqlite3-1.7.0/lib/src/wasm/file_system.dart:217:3: Error: 'Database' isn't a type.
Database? _database;
^^^^^^^^
../../Documents/flutter/3.0.0/flutter/.pub-cache/hosted/pub.dartlang.org/sqlite3-1.7.0/lib/src/wasm/file_system.dart:235:33: Error: 'Database' isn't a type.
final completer = Completer.sync();
^^^^^^^^
../../Documents/flutter/3.0.0/flutter/.pub-cache/hosted/pub.dartlang.org/sqlite3-1.7.0/lib/src/wasm/file_system.dart:240:50: Error: 'Database' isn't a type.
final database = change.target.result as Database;
^^^^^^^^
../../Documents/flutter/3.0.0/flutter/.pub-cache/hosted/pub.dartlang.org/sqlite3-1.7.0/lib/src/wasm/file_system.dart:304:32: Error: 'Transaction' isn't a type.
Future<_FileEntry> _readFile(Transaction transaction, int fileId) {
^^^^^^^^^^^
../../Documents/flutter/3.0.0/flutter/.pub-cache/hosted/pub.dartlang.org/sqlite3-1.7.0/lib/src/wasm/file_system.dart:332:25: Error: 'CursorWithValue' isn't a type.
.cursorIterator();
^^^^^^^^^^^^^^^
../../Documents/flutter/3.0.0/flutter/.pub-cache/hosted/pub.dartlang.org/sqlite3-1.7.0/lib/src/wasm/file_system.dart:363:55: Error: 'CursorWithValue' isn't a type.
blocks.openCursorNative(range).cursorIterator();
^^^^^^^^^^^^^^^
../../Documents/flutter/3.0.0/flutter/.pub-cache/hosted/pub.dartlang.org/sqlite3-1.7.0/lib/src/wasm/file_system.dart:430:26: Error: 'CursorWithValue' isn't a type.
.completed<idb.CursorWithValue?>();
^^^^^^^^^^^^^^^
../../Documents/flutter/3.0.0/flutter/.pub-cache/hosted/pub.dartlang.org/sqlite3-1.7.0/lib/src/wasm/js_interop.dart:129:9: Error: 'Request' isn't a type.
final Request _cursorRequest;
^^^^^^^
../../Documents/flutter/3.0.0/flutter/.pub-cache/hosted/pub.dartlang.org/sqlite3-1.7.0/lib/src/wasm/bindings.dart:444:19: Error: The method 'allowInterop' isn't defined for the class '_InjectedValues'.
'_InjectedValues' is from 'package:sqlite3/src/wasm/bindings.dart' ('../../Documents/flutter/3.0.0/flutter/.pub-cache/hosted/pub.dartlang.org/sqlite3-1.7.0/lib/src/wasm/bindings.dart').
Try correcting the name to the name of an existing method, or defining a method named 'allowInterop'.
'random': allowInterop((Pointer ptr, int length) {
^^^^^^^^^^^^
../../Documents/flutter/3.0.0/flutter/.pub-cache/hosted/pub.dartlang.org/sqlite3-1.7.0/lib/src/wasm/bindings.dart:452:22: Error: The method 'allowInterop' isn't defined for the class '_InjectedValues'.
'_InjectedValues' is from 'package:sqlite3/src/wasm/bindings.dart' ('../../Documents/flutter/3.0.0/flutter/.pub-cache/hosted/pub.dartlang.org/sqlite3-1.7.0/lib/src/wasm/bindings.dart').
Try correcting the name to the name of an existing method, or defining a method named 'allowInterop'.
'error_log': allowInterop((Pointer ptr) {
^^^^^^^^^^^^
../../Documents/flutter/3.0.0/flutter/.pub-cache/hosted/pub.dartlang.org/sqlite3-1.7.0/lib/src/wasm/bindings.dart:455:16: Error: The method 'allowInterop' isn't defined for the class '_InjectedValues'.
'_InjectedValues' is from 'package:sqlite3/src/wasm/bindings.dart' ('../../Documents/flutter/3.0.0/flutter/.pub-cache/hosted/pub.dartlang.org/sqlite3-1.7.0/lib/src/wasm/bindings.dart').
Try correcting the name to the name of an existing method, or defining a method named 'allowInterop'.
'now': allowInterop(() {
^^^^^^^^^^^^
../../Documents/flutter/3.0.0/flutter/.pub-cache/hosted/pub.dartlang.org/sqlite3-1.7.0/lib/src/wasm/bindings.dart:459:13: Error: The method 'allowInterop' isn't defined for the class '_InjectedValues'.
'_InjectedValues' is from 'package:sqlite3/src/wasm/bindings.dart' ('../../Documents/flutter/3.0.0/flutter/.pub-cache/hosted/pub.dartlang.org/sqlite3-1.7.0/lib/src/wasm/bindings.dart').
Try correcting the name to the name of an existing method, or defining a method named 'allowInterop'.
allowInterop((Pointer source, Pointer dest, int length) {
^^^^^^^^^^^^
../../Documents/flutter/3.0.0/flutter/.pub-cache/hosted/pub.dartlang.org/sqlite3-1.7.0/lib/src/wasm/bindings.dart:470:27: Error: The method 'allowInterop' isn't defined for the class '_InjectedValues'.
'_InjectedValues' is from 'package:sqlite3/src/wasm/bindings.dart' ('../../Documents/flutter/3.0.0/flutter/.pub-cache/hosted/pub.dartlang.org/sqlite3-1.7.0/lib/src/wasm/bindings.dart').
Try correcting the name to the name of an existing method, or defining a method named 'allowInterop'.
'function_xFunc': allowInterop((Pointer ctx, int args, Pointer value) {
^^^^^^^^^^^^
../../Documents/flutter/3.0.0/flutter/.pub-cache/hosted/pub.dartlang.org/sqlite3-1.7.0/lib/src/wasm/bindings.dart:473:27: Error: The method 'allowInterop' isn't defined for the class '_InjectedValues'.
'_InjectedValues' is from 'package:sqlite3/src/wasm/bindings.dart' ('../../Documents/flutter/3.0.0/flutter/.pub-cache/hosted/pub.dartlang.org/sqlite3-1.7.0/lib/src/wasm/bindings.dart').
Try correcting the name to the name of an existing method, or defining a method named 'allowInterop'.
'function_xStep': allowInterop((Pointer ctx, int args, Pointer value) {
^^^^^^^^^^^^
../../Documents/flutter/3.0.0/flutter/.pub-cache/hosted/pub.dartlang.org/sqlite3-1.7.0/lib/src/wasm/bindings.dart:477:13: Error: The method 'allowInterop' isn't defined for the class '_InjectedValues'.
'_InjectedValues' is from 'package:sqlite3/src/wasm/bindings.dart' ('../../Documents/flutter/3.0.0/flutter/.pub-cache/hosted/pub.dartlang.org/sqlite3-1.7.0/lib/src/wasm/bindings.dart').
Try correcting the name to the name of an existing method, or defining a method named 'allowInterop'.
allowInterop((Pointer ctx, int args, Pointer value) {
^^^^^^^^^^^^
../../Documents/flutter/3.0.0/flutter/.pub-cache/hosted/pub.dartlang.org/sqlite3-1.7.0/lib/src/wasm/bindings.dart:480:28: Error: The method 'allowInterop' isn't defined for the class '_InjectedValues'.
'_InjectedValues' is from 'package:sqlite3/src/wasm/bindings.dart' ('../../Documents/flutter/3.0.0/flutter/.pub-cache/hosted/pub.dartlang.org/sqlite3-1.7.0/lib/src/wasm/bindings.dart').
Try correcting the name to the name of an existing method, or defining a method named 'allowInterop'.
'function_xFinal': allowInterop((Pointer ctx) {
^^^^^^^^^^^^
../../Documents/flutter/3.0.0/flutter/.pub-cache/hosted/pub.dartlang.org/sqlite3-1.7.0/lib/src/wasm/bindings.dart:483:28: Error: The method 'allowInterop' isn't defined for the class '_InjectedValues'.
'_InjectedValues' is from 'package:sqlite3/src/wasm/bindings.dart' ('../../Documents/flutter/3.0.0/flutter/.pub-cache/hosted/pub.dartlang.org/sqlite3-1.7.0/lib/src/wasm/bindings.dart').
Try correcting the name to the name of an existing method, or defining a method named 'allowInterop'.
'function_xValue': allowInterop((Pointer ctx) {
^^^^^^^^^^^^
../../Documents/flutter/3.0.0/flutter/.pub-cache/hosted/pub.dartlang.org/sqlite3-1.7.0/lib/src/wasm/bindings.dart:486:28: Error: The method 'allowInterop' isn't defined for the class '_InjectedValues'.
'_InjectedValues' is from 'package:sqlite3/src/wasm/bindings.dart' ('../../Documents/flutter/3.0.0/flutter/.pub-cache/hosted/pub.dartlang.org/sqlite3-1.7.0/lib/src/wasm/bindings.dart').
Try correcting the name to the name of an existing method, or defining a method named 'allowInterop'.
'function_forget': allowInterop((Pointer ctx) => functions.forget(ctx)),
^^^^^^^^^^^^
../../Documents/flutter/3.0.0/flutter/.pub-cache/hosted/pub.dartlang.org/sqlite3-1.7.0/lib/src/wasm/bindings.dart:487:26: Error: The method 'allowInterop' isn't defined for the class '_InjectedValues'.
'_InjectedValues' is from 'package:sqlite3/src/wasm/bindings.dart' ('../../Documents/flutter/3.0.0/flutter/.pub-cache/hosted/pub.dartlang.org/sqlite3-1.7.0/lib/src/wasm/bindings.dart').
Try correcting the name to the name of an existing method, or defining a method named 'allowInterop'.
'function_hook': allowInterop(
^^^^^^^^^^^^
../../Documents/flutter/3.0.0/flutter/.pub-cache/hosted/pub.dartlang.org/sqlite3-1.7.0/lib/src/wasm/bindings.dart:506:22: Error: The method 'allowInterop' isn't defined for the class '_InjectedValues'.
'_InjectedValues' is from 'package:sqlite3/src/wasm/bindings.dart' ('../../Documents/flutter/3.0.0/flutter/.pub-cache/hosted/pub.dartlang.org/sqlite3-1.7.0/lib/src/wasm/bindings.dart').
Try correcting the name to the name of an existing method, or defining a method named 'allowInterop'.
'fs_create': allowInterop((Pointer path, int flags) {
^^^^^^^^^^^^
../../Documents/flutter/3.0.0/flutter/.pub-cache/hosted/pub.dartlang.org/sqlite3-1.7.0/lib/src/wasm/bindings.dart:523:27: Error: The method 'allowInterop' isn't defined for the class '_InjectedValues'.
'_InjectedValues' is from 'package:sqlite3/src/wasm/bindings.dart' ('../../Documents/flutter/3.0.0/flutter/.pub-cache/hosted/pub.dartlang.org/sqlite3-1.7.0/lib/src/wasm/bindings.dart').
Try correcting the name to the name of an existing method, or defining a method named 'allowInterop'.
'fs_temp_create': allowInterop(() {
^^^^^^^^^^^^
../../Documents/flutter/3.0.0/flutter/.pub-cache/hosted/pub.dartlang.org/sqlite3-1.7.0/lib/src/wasm/bindings.dart:527:20: Error: The method 'allowInterop' isn't defined for the class '_InjectedValues'.
'_InjectedValues' is from 'package:sqlite3/src/wasm/bindings.dart' ('../../Documents/flutter/3.0.0/flutter/.pub-cache/hosted/pub.dartlang.org/sqlite3-1.7.0/lib/src/wasm/bindings.dart').
Try correcting the name to the name of an existing method, or defining a method named 'allowInterop'.
'fs_size': allowInterop((Pointer path, Pointer pSize) {
^^^^^^^^^^^^
../../Documents/flutter/3.0.0/flutter/.pub-cache/hosted/pub.dartlang.org/sqlite3-1.7.0/lib/src/wasm/bindings.dart:540:24: Error: The method 'allowInterop' isn't defined for the class '_InjectedValues'.
'_InjectedValues' is from 'package:sqlite3/src/wasm/bindings.dart' ('../../Documents/flutter/3.0.0/flutter/.pub-cache/hosted/pub.dartlang.org/sqlite3-1.7.0/lib/src/wasm/bindings.dart').
Try correcting the name to the name of an existing method, or defining a method named 'allowInterop'.
'fs_truncate': allowInterop((Pointer path, int size) {
^^^^^^^^^^^^
../../Documents/flutter/3.0.0/flutter/.pub-cache/hosted/pub.dartlang.org/sqlite3-1.7.0/lib/src/wasm/bindings.dart:548:20: Error: The method 'allowInterop' isn't defined for the class '_InjectedValues'.
'_InjectedValues' is from 'package:sqlite3/src/wasm/bindings.dart' ('../../Documents/flutter/3.0.0/flutter/.pub-cache/hosted/pub.dartlang.org/sqlite3-1.7.0/lib/src/wasm/bindings.dart').
Try correcting the name to the name of an existing method, or defining a method named 'allowInterop'.
'fs_read': allowInterop(
^^^^^^^^^^^^
../../Documents/flutter/3.0.0/flutter/.pub-cache/hosted/pub.dartlang.org/sqlite3-1.7.0/lib/src/wasm/bindings.dart:559:21: Error: The method 'allowInterop' isn't defined for the class '_InjectedValues'.
'_InjectedValues' is from 'package:sqlite3/src/wasm/bindings.dart' ('../../Documents/flutter/3.0.0/flutter/.pub-cache/hosted/pub.dartlang.org/sqlite3-1.7.0/lib/src/wasm/bindings.dart').
Try correcting the name to the name of an existing method, or defining a method named 'allowInterop'.
'fs_write': allowInterop(
^^^^^^^^^^^^
../../Documents/flutter/3.0.0/flutter/.pub-cache/hosted/pub.dartlang.org/sqlite3-1.7.0/lib/src/wasm/bindings.dart:571:22: Error: The method 'allowInterop' isn't defined for the class '_InjectedValues'.
'_InjectedValues' is from 'package:sqlite3/src/wasm/bindings.dart' ('../../Documents/flutter/3.0.0/flutter/.pub-cache/hosted/pub.dartlang.org/sqlite3-1.7.0/lib/src/wasm/bindings.dart').
Try correcting the name to the name of an existing method, or defining a method named 'allowInterop'.
'fs_delete': allowInterop((Pointer path) {
^^^^^^^^^^^^
../../Documents/flutter/3.0.0/flutter/.pub-cache/hosted/pub.dartlang.org/sqlite3-1.7.0/lib/src/wasm/bindings.dart:579:22: Error: The method 'allowInterop' isn't defined for the class '_InjectedValues'.
'_InjectedValues' is from 'package:sqlite3/src/wasm/bindings.dart' ('../../Documents/flutter/3.0.0/flutter/.pub-cache/hosted/pub.dartlang.org/sqlite3-1.7.0/lib/src/wasm/bindings.dart').
Try correcting the name to the name of an existing method, or defining a method named 'allowInterop'.
'fs_access': allowInterop((Pointer path, int flags, Pointer pResOut) {
^^^^^^^^^^^^
../../Documents/flutter/3.0.0/flutter/.pub-cache/hosted/pub.dartlang.org/sqlite3-1.7.0/lib/src/wasm/js_interop.dart:41:20: Error: JS interop or Native class required for 'external' extension members.
Try adding a JS interop annotation to the on type class of the extension.
external Request _put_1(dynamic value, dynamic key);
^
../../Documents/flutter/3.0.0/flutter/.pub-cache/hosted/pub.dartlang.org/sqlite3-1.7.0/lib/src/wasm/js_interop.dart:44:20: Error: JS interop or Native class required for 'external' extension members.
Try adding a JS interop annotation to the on type class of the extension.
external Request _put_2(dynamic value);
^
../../Documents/flutter/3.0.0/flutter/.pub-cache/hosted/pub.dartlang.org/sqlite3-1.7.0/lib/src/wasm/js_interop.dart:47:20: Error: JS interop or Native class required for 'external' extension members.
Try adding a JS interop annotation to the on type class of the extension.
external Request getValue(dynamic key);
^
../../Documents/flutter/3.0.0/flutter/.pub-cache/hosted/pub.dartlang.org/sqlite3-1.7.0/lib/src/wasm/js_interop.dart:61:20: Error: JS interop or Native class required for 'external' extension members.
Try adding a JS interop annotation to the on type class of the extension.
external Request openCursorNative(Object? range);
^
../../Documents/flutter/3.0.0/flutter/.pub-cache/hosted/pub.dartlang.org/sqlite3-1.7.0/lib/src/wasm/js_interop.dart:64:20: Error: JS interop or Native class required for 'external' extension members.
Try adding a JS interop annotation to the on type class of the extension.
external Request openCursorNative2(Object? range, String direction);
^
../../Documents/flutter/3.0.0/flutter/.pub-cache/hosted/pub.dartlang.org/sqlite3-1.7.0/lib/src/wasm/js_interop.dart:69:20: Error: JS interop or Native class required for 'external' extension members.
Try adding a JS interop annotation to the on type class of the extension.
external Request openKeyCursorNative();
^
../../Documents/flutter/3.0.0/flutter/.pub-cache/hosted/pub.dartlang.org/sqlite3-1.7.0/lib/src/wasm/js_interop.dart:74:24: Error: JS interop or Native class required for 'external' extension members.
Try adding a JS interop annotation to the on type class of the extension.
external dynamic get _rawResult;
^
../../Documents/flutter/3.0.0/flutter/.pub-cache/hosted/pub.dartlang.org/sqlite3-1.7.0/lib/src/wasm/js_interop.dart:174:19: Error: JS interop or Native class required for 'external' extension members.
Try adding a JS interop annotation to the on type class of the extension.
external Object _jsDatabases();
^
Failed to compile application.

I've answered in https://github.com/simolus3/sqlite3.dart/issues/104, let's keep the discussion there if you have more questions on this.
By the way: There is no reason to ask the same question three times! I get notifications for each of them and I'll reply to them when I have time. You can ping me again after a couple of days if I missed something, but posting this across boards won't make me reply faster.


Custom web searches

Description of the new feature / enhancement
Add different web searches to powertoys run, just like below screen shot of Flow Launcher.

Scenario when this would be used?
Search in some website from powertoys run directly.

Supporting information
No response

/dup #3420


proposal: context.WithSignal

A common design pattern when building applications is to trap signals, such as CTRL-C, and gracefully close down the application.
One might think this pattern is fairly straightforward and easy to implement. To illustrate the difficulties in getting this pattern correct, let's look at the following example.
In June, @matryer, wrote a blog post demonstrating how to capture signals in your application and use them to gracefully shutdown an application. This post resulted in a fantastic thread on Twitter with @Sajmani and @quentinmit pointing out the mistakes in Mat's code that demonstrate the subtleties in getting the implementation correct .
I propose that this type of cancellation, by signals, should be a part of the context package, as it follows the same idea as cancellation after a certain time, or by a deadline. Not only does this solve the problems with capturing signals that most people make, but, I believe, is another great use case for cancellation via contexts.
An example of this addition to the context package would work is as follows:
func main() {
	ctx, cancel := context.WithSignal(context.Background(), os.Interrupt)
	defer cancel()
	select {
	case <-ctx.Done():
		fmt.Println("thanks for stopping me")
	}
}

And a proposed implementation of the WithSignal function.
func WithSignal(ctx Context, s ...os.Signal) (Context, CancelFunc) {
	ctx, cancel := WithCancel(ctx)
	c := make(chan os.Signal, 1)
	signal.Notify(c, s...)
	go func() {
		select {
		case <-c:
			cancel()
		case <-ctx.Done():
			cancel()
		}
		signal.Stop(c)
	}()
	return ctx, cancel
}

I'd rather have that in the signal package.

What happens when many calls to WithSignal occur in the same context tree?
This feels weird. Context is request scoped but signals are process scoped.
On Sat, 19 Aug 2017, 01:54 Ahmed W<EMAIL_ADDRESS>wrote:

I'd rather have that in the signal package.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/golang/go/issues/21521#issuecomment-323391462, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AAAcA-G5Nep4WNHIqkNaHaldEaLJwGWBks5sZbOcgaJpZM4O7pnV
.

I use context for commands too, and more and more packages use it for graceful shutdown, even outside of request scope - so it makes sense to me.

On 19 Aug 2017, at 02:57, Dave Cheney<EMAIL_ADDRESS>wrote:
What happens when many calls to WithSignal occur in the same context tree?
This feels weird. Context is request scoped but signals are process scoped.
On Sat, 19 Aug 2017, 01:54 Ahmed W<EMAIL_ADDRESS>wrote:

I'd rather have that in the signal package.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/golang/go/issues/21521#issuecomment-323391462, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AAAcA-G5Nep4WNHIqkNaHaldEaLJwGWBks5sZbOcgaJpZM4O7pnV
.

—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or mute the thread.

...but it does feel weird too, I know what you mean.

On 19 Aug 2017, at 02:57, Dave Cheney<EMAIL_ADDRESS>wrote:
What happens when many calls to WithSignal occur in the same context tree?
This feels weird. Context is request scoped but signals are process scoped.
On Sat, 19 Aug 2017, 01:54 Ahmed W<EMAIL_ADDRESS>wrote:

I'd rather have that in the signal package.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/golang/go/issues/21521#issuecomment-323391462, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AAAcA-G5Nep4WNHIqkNaHaldEaLJwGWBks5sZbOcgaJpZM4O7pnV
.

—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or mute the thread.

I agree that signal.NotifyContext makes more sense than context.WithSignal.
On Sat, Aug 19, 2017 at 1:36 PM Mat Ryer<EMAIL_ADDRESS>wrote:

...but it does feel weird too, I know what you mean.

On 19 Aug 2017, at 02:57, Dave Cheney<EMAIL_ADDRESS>wrote:
What happens when many calls to WithSignal occur in the same context
tree?
This feels weird. Context is request scoped but signals are process
scoped.
On Sat, 19 Aug 2017, 01:54 Ahmed W<EMAIL_ADDRESS>wrote:

I'd rather have that in the signal package.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/golang/go/issues/21521#issuecomment-323391462,
or mute
the thread
<
https://github.com/notifications/unsubscribe-auth/AAAcA-G5Nep4WNHIqkNaHaldEaLJwGWBks5sZbOcgaJpZM4O7pnV

.

—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or mute the thread.

—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/golang/go/issues/21521#issuecomment-323537038, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AJSK3X0Li_Sy9y2ttGyBLFLxUk1bPIX0ks5sZx0GgaJpZM4O7pnV
.

To echo Dave Cheney's point: Context is request scoped but signals are process scoped.. I'm not sure this makes sense at all.

I'm not sure this proposal makes sense at all.

My use case, and I assume others, is that I have a program that starts a series of goroutines that need cancellation, it also calls functions which accept contexts that allow me to terminate them.
All of these operations are passed a context in order to cancel them, having the context derived from a single context created at application start with a cancel function similar^ to what's described by the OP.
When my program needs to exit, the process manager sends a signal, which is caught by the main package and the top level context is cancelled, propogating this to the goroutines and stopping any long running functions (http requests or commands). WaitGroups then wait until everything has finished successfully and then the program terminates.
This is why I don't understand the comment Context is request scoped but signals are process scoped. My application started a series of routines, is using context as I've described and implemented it like the OP has proposed an incorrect way to safely shutdown?
^ The OP's proposal is correct, my implementation is not, so I'm in favour of adding this to signal package or having a copy/paste example documented.

Is there any reason why context cannot be used at a process level? Obviously the values aren't useful (as far as I can tell), but the cancellation mechanism let's you gracefully shut things down when a program is terminated early, which is very nice.
There are a growing number of packages that use context for cancellation in non-request contexts (anecdotal). It does seem to be becoming the de facto way to gracefully stop things. Has anyone else noticed that?
If context should only be request scoped, then we should start to communicate that. If not, then cancelling with a signal is going to become very common practice.

If several packages handle signals for each packages, and using them, it won't work expectedly. This proposal may provide wrong usages to the developers of third-packages.

Yeah, this would only ever be used in one place, in a command. Probably in func main.
I don't think packages themselves should be trapping signals.

Context is request scoped but signals are process scoped.

The process is a request from the user to the OS.
For example, if I have a cronjob that makes network requests that result in DB transactions, I want to be able to kill it gracefully (and, perhaps more importantly in this example, to set a process-wide deadline if it cannot finish in a reasonable time so it doesn't spin all night).
Having the process be the root of the context tree makes a lot of sense in that situation. It may not always make sense, certainly, but there's nothing unreasonable about this.
I am not convinced that it belongs in stdlib. An example in the docs, a wiki page, a blog post explaining the subtleties involved, or a third-party library all seem reasonable, though.

I think having this in the signal package or in an x package would probably make more sense than having it in the context package.
If anything, I think this issue shines a light on the messaging problem around "context". Should it be used for cancellation? Should it be used for value passing? What is a "request"?
If the pattern of capturing signals and canceling a context from within the main function is a Go anti-pattern, then that needs to be communicated, because that is what is happening in the wild.

All of these operations are passed a context in order to cancel them, having the context derived from a single context created at application start with a cancel function similar^ to what's described by the OP.

I'm not convinced we want to encourage tying contexts to signals in this way, as described above. I appreciate that the code was difficult to get right but all of it was about interacting with the os/signal package, not context. It sounds like maybe we haven't gotten the os/signal API right, or at least easy enough to use. (And that's entirely believable because signals are asynchronous events and those are just hard in general.)
In Mat's post:
func main() {
	ctx := context.Background()

	// trap Ctrl+C and call cancel on the context
	ctx, cancel := context.WithCancel(ctx)
	c := make(chan os.Signal, 1)
	signal.Notify(c, os.Interrupt)
	defer func() {
		signal.Stop(c)
		cancel()
	}()
	go func() {
		select {
		case <-c:
			cancel()
		case <-ctx.Done():
		}
	}()

	doSomethingAwesome(ctx)
}

The part using context is really just one line: ctx, cancel := context.WithCancel(ctx). The hard part is hooking up that cancel function to os/signal. I would focus on what we can do to make that wiring easier - because probably it's too hard to wire to things other than context as well - instead of just solving this problem once inside context but not more generally.
It seems like there is a general problem here that we should solve instead of solving the very specific (and arguably not too useful) one of triggering a context cancellation when an incoming signal arrives.

Also, in func main the code in https://twitter.com/matryer/status/869096368039710720 is completely fine and maybe should have been left as it was. :-)

I would prefer to have an example of correct usage in documentation instead of a new method.

What happens when many calls to WithSignal occur in the same context tree?
This feels weird. Context is request scoped but signals are process scoped.

Good point for me.
Maybe is it better to hang the logic outside the context package? I think it is a more flexible way.
As an example what I use:
https://github.com/kamilsk/semaphore/blob/5c82a8b62d3b3009be756f8f9afaea94b3a89961/context.go#L8-L15
https://github.com/kamilsk/semaphore/blob/5c82a8b62d3b3009be756f8f9afaea94b3a89961/channel.go#L35-L49
it is just 23 lines (7 lines are valuable :)) of code which can be reused and extended as a programmer wants
For instance:
middleware := func(handler http.Handler) http.Handler {
	return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
		ctx := WithInterrupter(r.Context(), Combine(
			WithSignal(os.Interrupt),
			WithEvent(event.UserDeleted, event.UserBanned),
			WithTimeout(service.SLA),
			WithDeadline(startup.Ruin),
		))
		handler.ServeHTTP(w, r.WithContext(ctx))
	})
}

Call the WithTimeout (or WithDeadline) several times does not look strange:
global := func(critical time.Duration, handler http.Handler) http.Handler {
	return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
		ctx, cancel := context.WithTimeout(r.Context(), critical)
		defer cancel()

		handler.ServeHTTP(w, r.WithContext(ctx))
	})
}

search := http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
	// config.SearchTimeout < critical, maybe config.SearchTimeout << critical
	ctx, cancel := context.WithTimeout(r.Context(), config.SearchTimeout)
	defer cancel()

	result := doSearch(ctx)
	// write response
})

http.Handle("/search", global(config.SLA, search))

But what about WithSignal?

This is technically a duplicate of #16472, isn't it?

I recently built something on app engine using manual scaling, and semi-infinite running requests that do background tasks. This is another example where, while technically request scoped, it behaves much more like a command.

On 5 Sep 2017, at 21:35, DeedleFake<EMAIL_ADDRESS>wrote:
This is technically a duplicate of #16472, isn't it?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or mute the thread.

It seems like there is a general problem here that we should solve instead of solving the very specific (and arguably not too useful) one of triggering a context cancellation when an incoming signal arrives.

I believe that the general problem here is closely related to the one in https://github.com/golang/go/issues/16620: function calls and channel operations are closely related, but it is often difficult, tedious, or inefficient to convert between the two.
You could imagine a generic (#15292) API for converting channel operations to function calls.
package chanfunc

func Receive(c <-T, f func(T)) {
	for v := range c {
		f(v)
	}
}

Then the boilerplate here would look like:
func main() {
	ctx := context.Background()

	// trap Ctrl+C and call cancel on the context
	ctx, cancel := context.WithCancel(ctx)
	c := make(chan os.Signal, 1)
	signal.Notify(c, os.Interrupt)
	chanfunc.Receive(c, func(os.Signal) { cancel() })

	doSomethingAwesome(ctx)
}

A non-generic version of that would be to build Receive into the Signal package:
package signal

func NotifyFunc(func(os.Signal), os.Signal...)

package main

func main() {
	ctx := context.Background()

	// trap Ctrl+C and call cancel on the context
	ctx, cancel := context.WithCancel(ctx)
	signal.NotifyFunc(func(os.Signal) { cancel() }, os.Interrupt)

	doSomethingAwesome(ctx)
}

This may not be the best solution, but this is definitely a pain point, and is definitely worth further discussion.

I wrote above:

The part using context is really just one line: ctx, cancel := context.WithCancel(ctx). The hard part is hooking up that cancel function to os/signal. I would focus on what we can do to make that wiring easier - because probably it's too hard to wire to things other than context as well - instead of just solving this problem once inside context but not more generally.
It seems like there is a general problem here that we should solve instead of solving the very specific (and arguably not too useful) one of triggering a context cancellation when an incoming signal arrives.

I think we should decline this proposal and leave open the question of addressing os/signal more generally. If anyone wants to make specific concrete proposals about the latter in new issues, please do.


Support for local projections

The package uses Albers Equal Area EPSG 2163. Support defining local Albers Equal Area projections by state to calculate district scores.

fix implemented here. User can now specify the metricCrs, when instantiating District object which denotes the desired projection for performing the calculations. The default value is set to epsg:2163


Feature: Support native timestamp from YouTube/bilibili

This one for example : https://youtu.be/wB89lJs5A3s?t=702
I need to add "#" before "t" to make it work with Media-Extend
Is there any settings to change this?

Hopefully YouTube will add other jump formats ?t= because there are other styles for the default copy back format.
Such as this ?t=299
This is currently the only support#t=299
https://youtu.be/FuKEpOhiVPg?t=299  can't jump
https://youtu.be/FuKEpOhiVPg#t=299  can jump
Originally posted by @okerivy in https://github.com/aidenlx/media-extended/issues/15#issuecomment-844649561

Yeah, it will make lots of things easier.
Lots of other app like memex or Yinote can carry timestamp.
The biggest problem for me using Media-Extend for Youtube annotations and getting timestamp is that i can't use chrome plugin :""video speed controller" in obsidian，which is essential for me...

Speed control is available in Media Extended already, so what feature is missing exactly?

I think i'm just too used to controlling speed by keyboard shortcuts.

@Danifood I use the same extension and opened a request to add keyboard shortcuts to speed controls: https://github.com/aidenlx/media-extended/issues/77
This is also what's stopping me from using the extension non stop. Currently going back between Memex and Media Extend in Obsidian due to this.

i really hope you find a solution for this issue. this plugin is awesome and i just need to fix this to use this plugin in my workflow without any fiction

Apologies for the long period of inactivity on this project. I wanted to inform you that the plugin has been fully rewritten for the v3 release. I'm currently preparing for the beta release which address this issue. Once it's available, if you encounter similar issues, please don't hesitate to open a new issue. Thank you for your understanding.


Docs

Current coverage is 97.84% (diff: 100%)

Merging #6 into master will increase coverage by 1.09%

@@             master         #6   diff @@
==========================================
  Files             4          4
  Lines           185        186     +1
  Methods           0          0
  Messages          0          0
  Branches         22         22
==========================================
+ Hits            179        182     +3
+ Misses            4          2     -2
  Partials          2          2

Powered by Codecov. Last update 4954e2c...d80bb87


Calcite accessibility selection graphic returned

Probably due to a change to the underlying calcite stuff, the visually intrusive accessibility selection graphic is back on the swipe widget. I disagree with the accessibility benefit this provides and recommend hiding it.

@JohnNelsonMaps please review this fix on DEV.


Pods are not created

When I run command  ./gk-deploy -g I get result:
Using Kubernetes CLI.
Using namespace "default".
Checking for pre-existing resources...
  GlusterFS pods ... not found.
  deploy-heketi pod ... not found.
  heketi pod ... not found.
  gluster-s3 pod ... not found.
Creating initial resources ... serviceaccount "heketi-service-account" created
clusterrolebinding "heketi-sa-view" created
clusterrolebinding "heketi-sa-view" labeled
OK
node "node-1" labeled
node "node-2" labeled
daemonset "glusterfs" created
Waiting for GlusterFS pods to start ...

I have next info in my dashboard
Node didn't have enough resource: cpu, requested: 100, used: 885, capacity: 900

But I entered on node and this node has enough resources.

This doesn't seem like a gluster-kubernetes problem off-hand... is there a way you can view what's using resources on the given node? If not, at least see which pods are running on that node and how many resources those are consuming?

Using this command kubectl describe nodes node-3 I get net info:
Name:               node-3
Roles:              node
Labels:             beta.kubernetes.io/arch=amd64
                    beta.kubernetes.io/os=linux
                    kubernetes.io/hostname=node-3
                    node-role.kubernetes.io/node=true
                    storagenode=glusterfs
Annotations:        flannel.alpha.coreos.com/backend-data={"VtepMAC":"ca:23:ef:fa:d7:d5"}
                    flannel.alpha.coreos.com/backend-type=vxlan
                    flannel.alpha.coreos.com/kube-subnet-manager=true
                    flannel.alpha.coreos.com/public-ip=<IP_ADDRESS>
                    node.alpha.kubernetes.io/ttl=0
                    volumes.kubernetes.io/controller-managed-attach-detach=true
Taints:             <none>
CreationTimestamp:  Wed, 11 Apr 2018 17:27:24 +0500
Conditions:
  Type             Status  LastHeartbeatTime                 LastTransitionTime                Reason                       Message
  ----             ------  -----------------                 ------------------                ------                       -------
  OutOfDisk        False   Wed, 11 Apr 2018 18:04:51 +0500   Wed, 11 Apr 2018 17:27:21 +0500   KubeletHasSufficientDisk     kubelet has sufficient disk space available
  MemoryPressure   False   Wed, 11 Apr 2018 18:04:51 +0500   Wed, 11 Apr 2018 17:27:21 +0500   KubeletHasSufficientMemory   kubelet has sufficient memory available
  DiskPressure     False   Wed, 11 Apr 2018 18:04:51 +0500   Wed, 11 Apr 2018 17:27:21 +0500   KubeletHasNoDiskPressure     kubelet has no disk pressure
  Ready            True    Wed, 11 Apr 2018 18:04:51 +0500   Wed, 11 Apr 2018 17:29:04 +0500   KubeletReady                 kubelet is posting ready status
Addresses:
  InternalIP:  <IP_ADDRESS>
  Hostname:    node-3
Capacity:
 cpu:     1
 memory:  3881776Ki
 pods:    110
Allocatable:
 cpu:     900m
 memory:  3529376Ki
 pods:    110
System Info:
 Machine ID:                 609bbd29e32a4898e604f49bff82a88c
 System UUID:                D96D099F-0FEC-40CF-986D-9A5FB06AB29A
 Boot ID:                    cd2c8e64-2217-4470-b5ae-b0a9d6641b67
 Kernel Version:             3.10.0-693.11.6.el7.x86_64
 OS Image:                   CentOS Linux 7 (Core)
 Operating System:           linux
 Architecture:               amd64
 Container Runtime Version:  docker://17.3.2
 Kubelet Version:            v1.9.5
 Kube-Proxy Version:         v1.9.5
PodCIDR:                     <IP_ADDRESS>/24
ExternalID:                  node-3
Non-terminated Pods:         (8 in total)
  Namespace                  Name                                         CPU Requests  CPU Limits  Memory Requests  Memory Limits
  ---------                  ----                                         ------------  ----------  ---------------  -------------
  default                    netchecker-agent-hostnet-s8p95               15m (1%)      30m (3%)    64M (1%)         100M (2%)
  default                    netchecker-agent-ph72v                       15m (1%)      30m (3%)    64M (1%)         100M (2%)
  kube-system                elasticsearch-logging-v1-776b8b856c-rnd4n    100m (11%)    1 (111%)    0 (0%)           0 (0%)
  kube-system                fluentd-es-v1.22-5vqb2                       100m (11%)    0 (0%)      200Mi (5%)       200Mi (5%)
  kube-system                kube-dns-79d99cdcd5-6lxbm                    260m (28%)    0 (0%)      110Mi (3%)       170Mi (4%)
  kube-system                kube-flannel-wk88b                           150m (16%)    300m (33%)  64M (1%)         500M (13%)
  kube-system                kube-proxy-node-3                            150m (16%)    500m (55%)  64M (1%)         2G (55%)
  kube-system                nginx-proxy-node-3                           25m (2%)      300m (33%)  32M (0%)         512M (14%)
Allocated resources:
  (Total limits may be over 100 percent, i.e., overcommitted.)
  CPU Requests  CPU Limits    Memory Requests  Memory Limits
  ------------  ----------    ---------------  -------------
  815m (90%)    2160m (240%)  613058560 (16%)<PHONE_NUMBER> (99%)
Events:
  Type    Reason                   Age                From             Message
  ----    ------                   ----               ----             -------
  Normal  Starting                 37m                kubelet, node-3  Starting kubelet.
  Normal  NodeAllocatableEnforced  37m                kubelet, node-3  Updated Node Allocatable limit across pods
  Normal  NodeHasSufficientDisk    37m (x8 over 37m)  kubelet, node-3  Node node-3 status is now: NodeHasSufficientDisk
  Normal  NodeHasSufficientMemory  37m (x8 over 37m)  kubelet, node-3  Node node-3 status is now: NodeHasSufficientMemory
  Normal  NodeHasNoDiskPressure    37m (x7 over 37m)  kubelet, node-3  Node node-3 status is now: NodeHasNoDiskPressure

@jarrpa I want to clarify.  Is it  important to have minimum 3 nodes for install gluster?

Yes. For testing/hacking purposes, you can run gk-deploy with the --single-node argument to remove this restriction.

@jarrpa Can you explain item "Edit the glusterfs-daemonset.yml manifest to specify a different (or none) CPU request." ?

This line.

@jarrpa thanks

@jarrpa After changing configuration I have got error:
Creating node node-3 ... Unable to create node: Unable to execute command on glusterfs-8kfm2: peer probe: failed: Probe returned with Transport endpoint is not connected
Error loading the cluster topology.

But node is available.

@vovkats
Could you check all ports are opened properly.
Refer this guide:
https://github.com/gluster/gluster-kubernetes/blob/master/docs/setup-guide.md
Also, check this comment may help:
https://github.com/gluster/gluster-kubernetes/issues/250#issuecomment-296355028

@SaravanaStorageNetwork  port 1-50000 is opened. Also I have run sudo iptables -I INPUT -p all -j ACCEPT but It does not help me.

@vovkats
Check
kubectl get nodes  - verify all is fine here
kubectl get pods - check all pods especially gluster pods are running fine.
if any issue, check
kubectl describe pod
Check whether connectivity between the nodes works fine.
Additionally, you can abort the entire setup using gk-deploy --abort and try re-running again.

@SaravanaStorageNetwork @jarrpa I've updated heketi and after running command:
 ./gk-deploy -gvy
I get error:
Checking status of pods matching '--selector=deploy-heketi=pod':
deploy-heketi-7c4898d9cd-dwhhs   0/1       Error     6         5m

And command kubectl logs deploy-heketi-7c4898d9cd-dwhhs returns this result
standard_init_linux.go:178: exec user process caused "exec format error
Also when I try to re-run command:  ./gk-deploy -gvy
I get error: Can't open /dev/vdc exclusively.  Mounted filesystem?

You can't run gk-deploy more than once for any given deployment. You have to do gk-deploy --abort and wipe all the storage devices before running again. You also want to check the kubectl describe output for the pod and see if it shows anything as well.

@vovkats do you happen to be working in a closed environment?

Given the silence of the OP, closhing this issue. We can reopen this if the OP returns.

Not sure if relevant, but I manage to have this working ONLY when I force heketi-deployment to run in the master node and use the kube-system namespace.
Hope that helps.


Bug when trying to overload natural_key_field_names with nested related fields

Environment

Nautobot version (Docker tag too if applicable): 2.0.0b1
Python version: 3.9
Database platform, version: n/a
Middleware(s): n/a

Steps to Reproduce

Replace IPAddress.natural_key_field_names with ["parent__namespace__name", "host"]
Get an instance of an IPAddress
Attempt to call IPAddress.objects.get_by_natural_key(*instance.natural_key()) to perform a symmetric lookup

Expected Behavior
Should return the same instance that was used to make the call.

Observed Behavior
A FieldDoesNotExist error is raised:
In [1]: instance = IPAddress.objects.first()

In [2]: instance.natural_key()
---------------------------------------------------------------------------
KeyError                                  Traceback (most recent call last)
File ~/Library/Caches/pypoetry/virtualenvs/nautobot-b2ttWva6-py3.10/lib/python3.10/site-packages/django/db/models/options.py:608, in Options.get_field(self, field_name)
    605 try:
    606     # Retrieve field instance by name from cached or just-computed
    607     # field map.
--> 608     return self.fields_map[field_name]
    609 except KeyError:

KeyError: 'parent__namespace__name'

During handling of the above exception, another exception occurred:

FieldDoesNotExist                         Traceback (most recent call last)
Cell In[2], line 1
----> 1 instance.natural_key()

File ~/sandbox/src/nautobot/nautobot/core/models/__init__.py:90, in BaseModel.natural_key(self)
     83 """
     84 Smarter default implementation of natural key construction.
     85
     86 1. Handles nullable foreign keys (https://github.com/wq/django-natural-keys/issues/18)
     87 2. Handles variadic natural-keys (e.g. Location model - [name, parent__name, parent__parent__name, ...].)
     88 """
     89 vals = []
---> 90 for lookups in [lookup.split("__") for lookup in self.natural_key_field_lookups]:
     91     val = self
     92     for lookup in lookups:

File ~/Library/Caches/pypoetry/virtualenvs/nautobot-b2ttWva6-py3.10/lib/python3.10/site-packages/django/utils/functional.py:61, in classproperty.__get__(self, instance, cls)
     60 def __get__(self, instance, cls=None):
---> 61     return self.fget(cls)

File ~/sandbox/src/nautobot/nautobot/core/models/__init__.py:156, in BaseModel.natural_key_field_lookups(cls)
    154 natural_key_field_lookups = []
    155 for field_name in natural_key_field_names:
--> 156     field = cls._meta.get_field(field_name)
    157     if getattr(field, "remote_field", None) is None:
    158         # Not a related field, so the field name is the field lookup
    159         natural_key_field_lookups.append(field_name)

File ~/Library/Caches/pypoetry/virtualenvs/nautobot-b2ttWva6-py3.10/lib/python3.10/site-packages/django/db/models/options.py:610, in Options.get_field(self, field_name)
    608     return self.fields_map[field_name]
    609 except KeyError:
--> 610     raise FieldDoesNotExist("%s has no field named '%s'" % (self.object_name, field_name))

FieldDoesNotExist: IPAddress has no field named 'parent__namespace__name'

Additionally if you instead try to overload natural_key_field_lookups (vs. natural_key_field_names), the call to instance.natural_key() succeeds, but calls to IPAddress.objects.get_by_natural_key() is out of phase and results in a DoesNotExist error:
In [1]: instance = IPAddress.objects.first()

In [2]: instance.natural_key()
Out[2]: ['Global', '<IP_ADDRESS>']

In [3]: IPAddress.objects.get_by_natural_key(*instance.natural_key())
---------------------------------------------------------------------------
DoesNotExist                              Traceback (most recent call last)
File ~/sandbox/src/nautobot/nautobot/core/models/managers.py:42, in BaseManager.get_by_natural_key(self, *args)
     41 try:
---> 42     kwargs[field_name] = related_model.objects.get_by_natural_key(*related_values)
     43 except related_model.DoesNotExist as exc:

File ~/sandbox/src/nautobot/nautobot/core/models/managers.py:46, in BaseManager.get_by_natural_key(self, *args)
     44         raise self.model.DoesNotExist() from exc
---> 46 return self.get(**kwargs)

File ~/Library/Caches/pypoetry/virtualenvs/nautobot-b2ttWva6-py3.10/lib/python3.10/site-packages/django/db/models/manager.py:85, in BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_method(self, *args, **kwargs)
     84 def manager_method(self, *args, **kwargs):
---> 85     return getattr(self.get_queryset(), name)(*args, **kwargs)

File ~/sandbox/src/nautobot/nautobot/ipam/querysets.py:261, in PrefixQuerySet.get(self, prefix, *args, **kwargs)
    260     kwargs["broadcast"] = last_ip
--> 261 return super().get(*args, **kwargs)

File ~/Library/Caches/pypoetry/virtualenvs/nautobot-b2ttWva6-py3.10/lib/python3.10/site-packages/django/db/models/query.py:435, in QuerySet.get(self, *args, **kwargs)
    434 if not num:
--> 435     raise self.model.DoesNotExist(
    436         "%s matching query does not exist." %
    437         self.model._meta.object_name
    438     )
    439 raise self.model.MultipleObjectsReturned(
    440     'get() returned more than one %s -- it returned %s!' % (
    441         self.model._meta.object_name,
    442         num if not limit or num < limit else 'more than %s' % (limit - 1),
    443     )
    444 )

DoesNotExist: Prefix matching query does not exist.

The above exception was the direct cause of the following exception:

DoesNotExist                              Traceback (most recent call last)
Cell In[3], line 1
----> 1 IPAddress.objects.get_by_natural_key(*instance.natural_key())

File ~/sandbox/src/nautobot/nautobot/core/models/managers.py:44, in BaseManager.get_by_natural_key(self, *args)
     42         kwargs[field_name] = related_model.objects.get_by_natural_key(*related_values)
     43     except related_model.DoesNotExist as exc:
---> 44         raise self.model.DoesNotExist() from exc
     46 return self.get(**kwargs)

DoesNotExist:

Closed by #3903.


Urgent Help Needed: 529-overloaded-error

For a chat bot that needs to go live in the next 24 hours we often get the following Error the middle of the conversation:
{“type”:“error”,“error”:{“details”:null,“type”:“overloaded_error”,“message”:“Overloaded”}}.
Using “@anthropic-ai/sdk”: “^0.27.3"
Our usual input token length per minute can be around 5k-30k per minute. Implemented retry solution but still get it, also sometimes long delays. API calls from us can be 2-3 per conversation and expecting at peak to have 3-4 conversations simultaneously.
Will really appreciate urgent feedback. Also, can this be resolved by implementing prompt cache? Or any other techniques?

Hey @AliMaastech, sorry for the delayed response. Yes prompt caching could help if it's applicable to your use case.
For more timely API support I recommend joining the community discord or for more details on API support and assistance, see this support article and then contact the support team.