Record mean for underflow/overflow values in HistogramData.

Record mean for underflow/overflow values in HistogramData.
User Workers will periodically export these values as part of the new 'per worker' BigQuery metrics.

Thank you for your contribution! Follow this checklist to help us incorporate your contribution quickly and easily:

[ ] Mention the appropriate issue in your description (for example: addresses #123), if applicable. This will automatically add a link to the pull request in the issue. If you would like the issue to automatically close on merging the pull request, comment fixes #<ISSUE NUMBER> instead.
[ ] Update CHANGES.md with noteworthy changes.
[ ] If this contribution is large, please file an Apache Individual Contributor License Agreement.

See the Contributor Guide for more tips on how to make review process smoother.
To check the build health, please visit https://github.com/apache/beam/blob/master/.test-infra/BUILD_STATUS.md
GitHub Actions Tests Status (on master branch)

See CI.md for more information about GitHub Actions CI or the workflows README to see a list of phrases to trigger workflows.

Java PreCommit has been very flaky
failed tests:
testLogging (org.apache.beam.runners.fnexecution.control.RemoteExecutionTest)
testIsAvailableAlwaysWakenUp (org.apache.beam.runners.flink.translation.wrappers.streaming.io.source.unbounded.FlinkUnboundedSourceReaderTest)
testWithResume (org.apache.beam.runners.spark.translation.streaming.ResumeFromCheckpointStreamingTest)
testCloseVisibleToAwaitCompletionCallerAndProducer (org.apache.beam.sdk.fn.data.BeamFnDataInboundObserverTest)

run again to see if its relevant to this change

Some tests in java-fn-execution stucks indefinitely


fixed a bug when computing a jump forward connection value.

Before it would include the neuron weight and also the weight of jump forward which leads to wrong results. See the test "test_genome_is_correct" which is a genome from the phd paper on EANT and has weights other than one. In the original Test "test_network_eval" this bug was not noticed as all the weight are 1.0 meaning the neuron connection weight had no influence on the jump forward connection.
I used Figure 5.3 in the paper (link in network::tests) to compute the network output manually and checked it twice for correctness. The important line from the paper is on page 101: " Finally, push the result of computation with the weight associated with forward jumper node onto the stack", which was not the case in original implementation ( as it also multiplied by regular neuron connection weight) The original test still works fine.  Sorry for all the unnecessary line changes, my IDE (CLion) does this automatically.

run the test with "RUST_LOG=debug cargo test -- --nocapture test_genome_is_correct" if you would like to see the stack after each computation, that's how I spotted the bug in the first place :1234:

The newly added test was able to reproduce the bug you mentioned and it got fixed by adding a new condition. Here is the TEST_GENOME_2 on paper with the manual computations like in test "jump_recurrent_is_correct": https://www.dropbox.com/s/sxdtvfrb3h0sv1f/20200930_095539.jpg?dl=0

Thanks!


[TMP] Remove reflections

Original work made in #117
Temporary PR to run CI

Codecov Report

Merging #120 (1b954c3) into main (0b8b0dd) will decrease coverage by 0.63%.
The diff coverage is 87.50%.

@@            Coverage Diff             @@
##             main     #120      +/-   ##
==========================================
- Coverage   39.05%   38.43%   -0.63%
==========================================
  Files         116      115       -1
  Lines        4127     4046      -81
==========================================
- Hits         1612     1555      -57
+ Misses       2515     2491      -24

Files Changed
Coverage Δ

.../zio/temporal/protobuf/ProtobufDataConverter.scala
0.00% <0.00%> (ø)

...in/scala/zio/temporal/internal/ClassTagUtils.scala
77.14% <83.33%> (+8.09%)
:arrow_up:

...io/temporal/protobuf/ScalapbPayloadConverter.scala
90.83% <92.50%> (-2.56%)
:arrow_down:

... and 6 files with indirect coverage changes


Add fdelacruz.zsh-theme

Please take a look at my theme.

Hi @fdelacruz, we're not currently accepting new themes, you can host it in your own repository and instruct people to use that.


Fix test artifact upload path incorrectly

In order to make it easier for users to quickly locate error logs, we have copied the entire directory to a fixed location and thoroughly tested it without encountering any issues.

closes: #ISSUE_Number

Change logs
Describe your change clearly, including what problem is being solved or what feature is being added.
If it has some breaking backward or forward compatibility, please clary.
Why are the changes needed?
Describe why the changes are necessary.
Does this PR introduce any user-facing change?
If yes, please clarify the previous behavior and the change this PR proposes.
How was this patch tested?
Please detail how the changes were tested, including manual tests and any relevant unit or integration tests.
Contributor's Checklist
Here are some reminders and checklists before/when submitting your pull request, please check them:

[ ] Make sure your Pull Request has a clear title and commit message. You can take git-commit template as a reference.
[ ] Sign the Contributor License Agreement as prompted for your first-time contribution(One-time setup).
[ ] Learn the coding contribution guide, including our code conventions, workflow and more.
[ ] List your communication in the GitHub Issues or Discussions (if has or needed).
[ ] Document changes.
[ ] Add tests for the change
[ ] Pass make installcheck
[ ] Pass make -C src/test installcheck-cbdb-parallel
[ ] Feel free to @cloudberrydb/dev team for review and approval when your PR is ready🥳

The commit information has been completed. I'll be happy to help you check if there are any further changes needed. @tuhaihe

Hey @Zhangbaowen-Hashdata: I appreciate your effort, but the maximum limit for the commit body length is 72 characters instead of 50. Could you amend it again?

Hey @Zhangbaowen-Hashdata: I appreciate your effort, but the maximum limit for the commit body length is 72 characters instead of 50. Could you amend it again?

ok,I will make it


Update extensions.json: added Todo Tree

Function: Shows TODO, FIXME, etc. comment tags in a tree view
Goal: to better manage and track of remaining work

https://marketplace.visualstudio.com/items?itemName=Gruntfuggly.todo-tree

I use this too, thanks!


[Bug] : relational, equality and additive operators have the same operator precendence.

I observed this mistake I made while implementing the parser, relational, equality and additive operators has the same operator precedence in our parser which causes problems while writing conditions.

fixed in #57


Revising bluemix.net links to cloud.ibm.com

bluemix.net links are deprecated and no longer updated
updated to new cloud.ibm.com link style
resolves #12767

/assign @bradtopol

/lgtm
/approve


Problem with Overleaf import

When i try to compile on Overleaf it generates this error:
Package frontespizio Warning: Missing file output-frn.pdf.

Probably is due to frontespizio package.
In a supported environment, arara is preferred because it supports a dedicated rule to compile frontspiece LaTeX file which is generated by frontespizio package at first invocation of lualatex, so following invocation can have the PDF file available.
You can try generating your output-frn.tex locally compiling the document with arara, and then upload output-frn.pdf onto Overleaf; this should work without further modifications.
If you can't generate the PDF file locally, you can upload a frontspiece LaTeX file and include it like a normal source in the main document.
The package generates a file like this:
%% This file has been automatically generated by `frontespizio'.
%% Don't use it as a model for a new frontispiece, use the
%% `frontespizio' environment in you document instead.
\documentclass [titlepage]{article}
\usepackage [a4paper,left=1cm,bottom=1.5cm,right=1cm,top=1cm]{geometry}
\usepackage [luatex]{graphicx}
\usepackage [luatex,svgnames]{xcolor}
\usepackage[nowrite,infront,standard,nouppercase]{frontespizio}
\nofiles
\fontoptionnormal

\usepackage {fontspec}
\setmainfont [Ligatures=TeX]{Latin Modern Roman}

\Universita {Bologna}
\Istituzione {Alma Mater Studiorum --- Università di Bologna \\Campus di Cesena}
\Divisione {Dipartimento di Informatica --- Scienza e Ingegneria}
\Corso [Laurea magistrale]{Ingegneria e Scienze Informatiche}
\Annoaccademico {2019--2020}
\Titolo {Titolo}
\Sottotitolo {Tesi in \ldots }
\Candidato [MATRICOLA123456]{Niccolò~Maltoni}
\NCandidato {Presentata da}
\Relatore {Prof.~Tizio~Relatore}
\Correlatore {Prof.~Tizio~Correlatore}
\Piede {III sessione di laurea \\Anno Accademico 2019--2020}
\begin {document}
\preparefrontpagestandard
\end {document}

Another solution that may work is the one linked on Overleaf support:
\begin{frontespizio}
\Istituzione{Politecnico di Torino}
% ... your other information here
\end{frontespizio}
\IfFileExists{\jobname-frn.pdf}{}{%
\immediate\write18{pdflatex \jobname-frn}}

Because these solutions were not working as expected, I asked to Overleaf support what should I do to resolve the problem. Here is what they replied:

Hi Nicco,
Thanks for getting in touch, and sorry that you are having this issue.
The compile flow for LuaLaTeX is significantly different than the sequence used for pdfLaTeX, LaTeX, and XeLaTeX.
For your requirements, will switching to XeLaTeX work? I find that changing the compiler to XeLaTeX allows the frontspiece to be compiled and inserted in your document.

On January 14, 2020, 9:08 AM EST<EMAIL_ADDRESS>wrote:
Hi,
I'm trying to build a simple thesis project which uses frontespizio package to generate frontspiece.
Locally on my machine, I can build the output-frn.tex file generated by the package, so following lualatex invocations will load the generated PDF.
To automatize it, I use an arara rule.
The problem is that on Overleaf arara is not supported and I can't find a way to make Overleaf generate the frontspiece.
I've found on https://it.overleaf.com/learn/latex/Questions%2FHow_do_I_use_the_frontespizio_package%3F a solution, but it doesn't work: first page keeps being compiled as blank.
How can I solve my problem?

I tried and the suggested solution seems to work. You can do something like this:

Replace lualatex with xelatex from the side menu of Overleaf
Add the following code in frontespizio.tex file:\begin{frontespizio}
\Istituzione{Alma Mater Studiorum --- Università di Bologna \\Campus di Cesena}
    % ... your other information here
\end{frontespizio}
\IfFileExists{\jobname-frn.pdf}{}{%
\immediate\write18{xelatex \jobname-frn}}

In a following commit, I will address this issue somehow.


Put Ducky Jr. In Bot List/Make Ducky Jr. An Official Discord Bot

What the title says. This counts as bot-meta worthy, right?

 NO U!


[BUG] Frequent 401 exceptions when using DefaultAzureCredentials in the AzureOpenAIClient sdk

Library name and version
Az Open AI sdk 2.0.0-beta.5
Describe the bug
When using Az Open AI sdk 2.0.0-beta.5 for connecting with text embedding model using default azure credentials, few requests are getting dropped with status 401 Unauthorized. This is not happening for all requests, one in every ~110ms is having this issue.
Expected behavior
These should all result in 200 responses.
Actual behavior
Intermittent 401 responses
Reproduction Steps
Service fabric applications and using dependency injection
 AzureOpenAIClientOptions options = new AzureOpenAIClientOptions();
 _azureOpenAIClient = new(
     new Uri("openai"),
     new DefaultAzureCredential(),
     options);
 _embeddingClient = _azureOpenAIClient.GetEmbeddingClient("modelname");

Invoking the embeddings like this:
var response = await _embeddingClient.GenerateEmbeddingsAsync(texts, options);
sdk :
Dotnet core: 6.0
Azure.AI.OpenAI Version="2.0.0-beta.5"
System.ClientModel.ClientResultException: Service request failed.
Status: 401 (Unauthorized)

   at Azure.AI.OpenAI.ClientPipelineExtensions.ProcessMessageAsync(ClientPipeline pipeline, PipelineMessage message, RequestOptions options)
   at Azure.AI.OpenAI.Embeddings.AzureEmbeddingClient.GenerateEmbeddingsAsync(BinaryContent content, RequestOptions options)
   at OpenAI.Embeddings.EmbeddingClient.GenerateEmbeddingsAsync(IEnumerable`1 inputs, EmbeddingGenerationOptions options, CancellationToken cancellationToken)
   at
Services.OpenAITextEmbeddingGenerator.GenerateEmbeddingAsync(IList`1 texts, Int32 dimensions, CancellationToken ct) in D:\a\_work\1\s\src\SV\Services\OpenAITextEmbeddingGenerator.cs:line 73

Environment
Dotnet core 6.0

Possible duplicate of #46109


Add conn.Conn.Duplex()

Now each connection can report if the underlying communication channel is
half-duplex or full-duplex.
This information will be leveraged by some clients, like memory mapped registers
helper struct, to change their behavior.

Codecov Report

Merging #118 into master will increase coverage by 0.29%.
The diff coverage is 85.5%.

@@           Coverage Diff            @@
##           master   #118      +/-   ##
========================================
+ Coverage    46.7%    47%   +0.29%
========================================
  Files          41     42       +1
  Lines        2689   2723      +34
========================================
+ Hits         1256   1280      +24
- Misses       1346   1356      +10
  Partials       87     87

Impacted Files
Coverage Δ

conn/spi/spi.go
16.66% <ø> (ø)
:arrow_up:

conn/i2c/i2c.go
96.77% <0%> (-3.23%)
:arrow_down:

host/sysfs/spi.go
4.5% <0%> (-0.09%)
:arrow_down:

conn/spi/spitest/spitest.go
3.12% <0%> (-0.21%)
:arrow_down:

conn/onewire/onewire.go
95.06% <0%> (-2.41%)
:arrow_down:

conn/conn.go
100% <100%> (ø)

conn/reg/reg.go
100% <100%> (ø)
:arrow_up:

Continue to review full report at Codecov.

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


Allow configuring a tagline that is displayed on the webpage between …

…the header and the list of packages.
We use this to display a link where the npm setup is described.

Thanks 👍 Good for now. btw I'm working with React in another branch, I wonder how to port this without inject HTML.


Find in Files clear error message

Fix for #9974
Tests run:

jshint
tests under Debug->run tests
Tests to recreate issue and confirming that it is not seen.

Can someone please review this ?

IMO it may not be a good idea to pass private UI elements. It would be better to keep them segregated and communicate through events

@prksingh  Yes that sounds like a better approach to take. I will make the changes. Thanks for the suggestion and review.

Travis CI build failed stating cla-check-pull error? Do I have to re-sign CLA agreement ?

The error appears to be different from a Cla-check-fail. I have restarted this build

The build failed again. Its not a cla-check fail though as far as I understand. The error message is: ""API rate limit exceeded ..." Are you in a subnet maybe that is pinging the github server for many requests?

Does that depend on my internet connection ? Not sure. I see jshint failure in files that I havent changed.

No, it does not depend on your internet connection.
You won't see the JSHint failures any longer if you merge in the latest upstream/master.

All is well now!


add -110 handle

Signed-off-by: jichenjc<EMAIL_ADDRESS>

did we handled -102, -103 and -108 as well?


add sampling rate in tracing config and flow through to armeria builder

Summary
Allow for configurable sampling at the zipkin export level via configuring armeria. This allows us to more efficiently trace astra itself.
This defaults the sample rate to 100% which is a no-op as that is the default behavior without a sampler.
Requirements

[x] I've read and understood the Contributing Guidelines and have done my best effort to follow them.
[x] I've read and agree to the Code of Conduct.

@bryanlb can you take a look?

@autata this looks good! Can you also include documentation for this config, in this PR? https://github.com/slackhq/astra/blob/master/docs/topics/Config-options.md#tracingconfig

@bryanlb added the documentation update. ptal.

@bryanlb please take another look.


Next: TextField in container with ScrollRect doesn't render

This is likely the reason so many elements are missing from the hxScout UI in Next. Tested against OpenFL 3.3.3.
Small testcase: http://onetacoshort.com/temp/ScrollRectTest.zip
Two textfields are in containers, one has a scrollrect, the other doesn't:
    cont = new Sprite();
    //cont.scrollRect = new Rectangle(0, 0, 40, 20);
    cont.addChild(make_label("No ScrollRect Hello World!", 14, 0xff0000));
    cont.y = 10;
    addChild(cont);

    cont = new Sprite();
    cont.scrollRect = new Rectangle(0, 0, 80, 20);
    cont.addChild(make_label("ScrollRect Hello World!", 14, 0xff0000));
    cont.y = 100;
    addChild(cont);

Works properly in Flash:

Neko / CPP, the second textfield is simply not there:

Note that embedded font or not, doesn't matter.

Yes, scrollRect is broken everywhere. This PR https://github.com/openfl/openfl/pull/828 should fix them.

Apparently this is fixed by PR #828.

@mrcdk awesome, great work!

Joshua said #828 was pulled, so I'm closing this.


[feature request] Allow an alternative name for the custom endpoint

The module will create a new cluster named "cluster_name" and create a custom endpoint based on that name. That's fine but allowing us to pass an alternative name will allow us to import an existing module into terraform.
If you are fine with this feature I can push a PR

Hi @egarbi, pull requests are always welcome!

Is it possible to have the option to just have a private endpoint for those who are not allowed to use public Hosted Endpoints?

Hi @svanschalkwyk,
Sure of course you can use a private DNS zone when you don't want/can use a public endpoint: https://github.com/idealo/terraform-aws-opensearch#input_cluster_domain_private

Much appreciated!

@steveteuber can you review the PR, please?


Cant seem to change Speed of VelocityBased movement of items held in hand.

I have been dealing with this issue for a few days now and cannot seem to find a solution:
I illustrate the problem here in this gif
I am making no assumptions here and am looking for anyone familar with thisd problem that can assist me with trying to speed up the rate at which the sword in that gif would swing to catch up with the hand. I have previously asked this question on unityAnswers and made the assumption that one of the methods in Hand.cs was the culprit but im beginning to doubt that assessment.
I was under the impression that I could simply change or accelarate the values here (Hand.cs line 1212):
        protected const float MaxVelocityChange = 10f;
        protected const float VelocityMagic = 6000f;
        protected const float AngularVelocityMagic = 50f;
        protected const float MaxAngularVelocityChange = 20f;

        protected void UpdateAttachedVelocity(AttachedObject attachedObjectInfo)
        {
            Vector3 velocityTarget, angularTarget;
            bool success = GetUpdatedAttachedVelocities(attachedObjectInfo, out velocityTarget, out angularTarget);
            if (success)
            {
                float scale = SteamVR_Utils.GetLossyScale(currentAttachedObjectInfo.Value.handAttachmentPointTransform);
                float maxAngularVelocityChange = MaxAngularVelocityChange * scale;
                float maxVelocityChange = MaxVelocityChange * scale;

                attachedObjectInfo.attachedRigidbody.velocity = Vector3.MoveTowards(attachedObjectInfo.attachedRigidbody.velocity, velocityTarget, maxVelocityChange);
                attachedObjectInfo.attachedRigidbody.angularVelocity = Vector3.MoveTowards(attachedObjectInfo.attachedRigidbody.angularVelocity, angularTarget, maxAngularVelocityChange);

            }
        }

but that does seem to be the case. If this is the wrong place to ask these things please let me know where I should go to find the experts on SteamVR development.

You may need to unlock the rigidbody's speed limits. Increasing maxAngularVelocity or maxVelocity. Throwable does this a bit. If you're using that script you can increase that number or if you're not then you may need to do that in your own script.
https://github.com/ValveSoftware/steamvr_unity_plugin/blob/master/Assets/SteamVR/InteractionSystem/Core/Scripts/Throwable.cs#L70

Perfect this was it, was very confused by the fact that there was all those variables to change velocities yet the upper limits are hidden by the actual rigidbodies constraints. Personally I put in a comment to remind me of this, I suggest the same be done in the next build.
/// Variables affecting the rigidbody, upper limits may be limited
/// by the rigidbody.maxAngularVelocity
Thank you so much for looking into this.

Sounds like a good thing to add. Will do.


[SPARK-40990][PYTHON] DataFrame creation from 2d NumPy array with arbitrary columns

What changes were proposed in this pull request?
Support DataFrame creation from 2d NumPy array with arbitrary columns.
Why are the changes needed?
Currently, DataFrame creation from 2d ndarray works only with 2 columns. We should provide complete support for DataFrame creation with 2d ndarray.
As part of SPARK-39405.
Does this PR introduce any user-facing change?
Yes.
Before
>>> spark.createDataFrame(np.array([[1], [2]])).dtypes
Traceback (most recent call last):
...
    raise ValueError(f"Shape of passed values is {passed}, indices imply {implied}")
ValueError: Shape of passed values is (2, 1), indices imply (2, 2)

>>> spark.createDataFrame(np.array([[1, 1, 1], [2, 2, 2]])).dtypes
Traceback (most recent call last):
...
    raise ValueError(f"Shape of passed values is {passed}, indices imply {implied}")
ValueError: Shape of passed values is (2, 3), indices imply (2, 2)

After
>>> spark.createDataFrame(np.array([[1], [2]])).dtypes
[('value', 'bigint')]

>>> spark.createDataFrame(np.array([[1, 1, 1], [2, 2, 2]])).dtypes
[('_1', 'bigint'), ('_2', 'bigint'), ('_3', 'bigint')]

How was this patch tested?
Unit tests.

Merged to master.


x86 implementation fails when not running as Administrator

Very strange issue here.  I am implementing this as part of a larger tool and in doing testing for compatibility with x86, I have found that it fails when ran as a normal user, however succeeds when ran as an Administrator.  The x64 version of course works in both medium and high integrity.  This testing was done on a windows 7 VM, however I also tested the x86 version on a windows 11 VM where I encountered the same issue.
Attached is a screenshot showing the issue.  Top cmd prompt is normal user, bottom is admin.

I added a GetLastError() call which returned error 123, or:
"ERROR_INVALID_NAME
123 (0x7B)
The filename, directory name, or volume label syntax is incorrect."
per MSDN.  This occurs at line 26 where SetFileInformationByHandle is called.
Does anyone have any ideas here? I'd believe that there is some incompatibility issue with x86, but the fact that it suceeds as an Admin but fails as a normal user, whereas it works fine for both on x64 is throwing me for a loop.

After further research this appears to be a very strange mingw-w64 issue.  I copied the source code into VS2019 and it compiled and functioned fine as x86.  I would love to know what would cause such a strange issue

How would you prefer I get them to you? Alternatively I can just provide the mingw command and version I used, as the baseline code in the repo will reproduce this issue.

See this repo: https://github.com/Octoberfest7/Delete-self-files
I have uploaded the compiled x86 exe's from both MingW and VS2019, as well as provided details on each in the README.  Additionally I linked a StackOverflow post I made on the issue so you can read what others have said.  One particularly helpful individual even provided code to address the memory issues that the other open issue speaks of.
Let me know if you need more/what you find out.

Issue resolved.  With x86 programs there needs to be a manifest file present when calling certain API's involved in UAC virtualization.  Mingw does not create or include this manifest file, you must create it and include it manually. See this stack overflow post: https://stackoverflow.com/questions/71834608/mingw-produces-x86-program-which-only-successfully-runs-as-administrator-x64-an/71838906?noredirect=1#comment126965290_71838906


package.xml: alphabetically reorder dependencies and add joy

Also, @ConnorNovak , once you merge your scan code, you can add laser_assembler to the dependency list as well.

Okay, looks good.


remove eol warning

Description
Since EOL is arbitrary based on company releases having a hard coded time doesn't make sense and is causing confusion when triggered and version is still active.
Related Issue

Types of changes

[x] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)
[ ] Chore (non-breaking change that does not add functionality or fix an issue)

Checklist:

[x] I have read the CONTRIBUTING document.
[ ] I have run the pre-merge tests locally and they pass.
[ ] I have updated the documentation accordingly.
[ ] I have added tests to cover my changes.
[ ] All new and existing tests passed.
[x] All commits have been signed-off for the Developer Certificate of Origin.

Well, we're only in this mess because we moved around 18. But ultimately, it took us a long time to be able to get code out there that will warn people when they're on unsupported versions. If we remove this, and come up with something new it'll be like Chef 24 before it's reliably everywhere, so I'm very very wary of removing this.
Other possibilities:

Have a special exception for 18
Have a override file people can touch for a given version

OK based on our discussion in the meeting, let's do something like:

Update this code to not try to predict the date, but instead just have a date per version, ala

deprecation_dates = {
  '17' => ...,
  '18' => ...,
}

This can be right in this function, or, alternatively, we could require_relative a file that has them which has something like:
class Chef
  class Deprecations
    DEPRECATION_DATES = {
      ..
    }
  end
end

The latter has the benefit that they're in easy to find, but the downside that it's pretty trivial for someone to monkeypatch that variable from anywhere in their cookbooks, which normally would be fine, except we want them to use the override mechanism we are going to give them below, so my instinct would be to leave it in the code, but that's up to you.

We decided to make the dates the following:

Chef 17: 31 Mar 2024 - the same day Ruby 3.0 is deprecated
Chef 18: 31 Mar 2025 - one year later, which is the minimum deprecation time. We have plenty of time to bump it out, but we don't' want to make the date too far out and imply any guarantee of support yet.

Provide an override mechanism for users, and for support. We decided on the following scheme:

The config file will have a new config version_deprecation_suppression (or whatever) which will take a hash. The key is, importantly the specific minor version for which the warning should be suppressed (not the major version), and the value is a date up to which we will suppress the warning. Ala:

version_deprecation_suppression {
  # we're stuck on 17.0 for a while. But in 17.1 they bumped the deprecation date
  # from 2025 to 2028. We plan to at least move to 17.2 before 2027, so we should
  # ignore the deprecation warning on our current version to then.
  #
  # However, to work around critical but XYZ, we have to move from 17.0.1 to 17.0.2,
  # which has the same older deprecation date, so ignore it for both.
  '17.0.1' => '2027-05-01',
  '17.0.2' => '2027-05-01',
}

Why not just major version? Because then if I upgrade to a significantly newer minor version, I may be masking an updated deprecation date I didn't intend to.

Closing this to start fresh on a new PR mimicking logic for 17


Add local memory array in addition to shared memory array

This pull request roughly attempts to copy the functionality of creating a local memory array that exists in numba (the function "numba.cuda.local.array(size, dtype)"). This function copies the code from the existing SharedMemory() function in cupy, but in the codegen piece it removes the "__shared__" line to instead have it be a local array. This function can be called using "cupyx.jit.local_memory(dtype, size)"
Here is a piece of code built for the current build of cupy, which demonstrates a locally-specified copy of the local_memory function. By changing the definition of the array "la" in the rawkernel to use either local_memory or shared_memory, it demonstrates the difference by writing to a cell, which another thread attempts to read from.
import cupy as cp
from cupyx import jit
from cupyx.jit._cuda_types import ArrayBase, TypeBase
from typing import Optional
from cupyx.jit._internal_types import BuiltinFunc, Data
from cupy_backends.cuda.api import runtime
from cupy.cuda import device
from cupyx.jit import _cuda_types
from cupyx.jit import _compile
import numpy

def to_ctype(t) -> _cuda_types.TypeBase:
    if isinstance(t, _cuda_types.TypeBase):
        return t
    return _cuda_types.Scalar(numpy.dtype(t))

class LocalMem(ArrayBase):

    def __init__(
            self,
            child_type: TypeBase,
            size: Optional[int],
            alignment: Optional[int] = None,
    ) -> None:
        if not (isinstance(size, int) or size is None):
            raise 'size of local_memory must be integer or `None`'
        if not (isinstance(alignment, int) or alignment is None):
            raise 'alignment must be integer or `None`'
        self._size = size
        self._alignment = alignment
        super().__init__(child_type, 1)

    def declvar(self, x: str, init: Optional['Data']) -> str:
        assert init is None
        if self._alignment is not None:
            code = f'__align__({self._alignment})'
        else:
            code = ''
        if self._size is None:
            code = f'extern {code} {self.child_type} {x}[]'
        else:
            code = f'{code} {self.child_type} {x}[{self._size}]'
        return code

class LocalMemory(BuiltinFunc):

    def __call__(self, dtype, size, alignment=None):
        """Allocates local memory and returns it as a 1-D array.

        Args:
            dtype (dtype):
                The dtype of the returned array.
            size (int or None):
                If ``int`` type, the size of static local memory.
                If ``None``, declares the local memory with extern specifier.
            alignment (int or None): Enforce the alignment via __align__(N).
        """
        super().__call__()

    def call_const(self, env, dtype, size, alignment=None):
        name = env.get_fresh_variable_name(prefix='_lmem')
        ctype = to_ctype(dtype)
        var = Data(name, LocalMem(ctype, size, alignment))
        env.decls[name] = var
        env.locals[name] = var
        return Data(name, _cuda_types.Ptr(ctype))

local_memory = LocalMemory()

@jit.rawkernel(device=True)
def square(a):
    b = local_memory(int, 2) #also demonstrates local_memory array working in a device function
    b[0] = a
    b[1] = a
    return b[0]*b[1]

@jit.rawkernel()
def elementwise_square_ish(x, y, size):
    tid = jit.grid(1)
    ntid = jit.gridsize(1)

    #la = jit.shared_memory(int, 10) #computes x^2+1, because threads can interfere. Might have race conditions.
    la = local_memory(int, 10) #computes x^2, because threads do not interfere.
    la[tid] = 1

    for i in range(tid, size, ntid):
        x[i] += la[(i+5)%10] #equals 0 with local mem, if shared mem another thread set this to 1, barring race conditions
        x[i] += square(i)

c = cp.zeros(10, dtype=int)
elementwise_square_ish[1, 10](c, c, 10)
print(c)

I've been working on getting multi-dimensional local/shared arrays to work, would it be easiest to add those to this pull request, or make a separate one? Main concern with the second option is that it would overlap with the local memory definitions here.

@Zhyrek Thanks for your PR! Could you add tests into tests/cupyx_tests/jit_tests/test_raw.py?

I've been working on getting multi-dimensional local/shared arrays to work, would it be easiest to add those to this pull request, or make a separate one? Main concern with the second option is that it would overlap with the local memory definitions here.

Both are OK, but we would like the definitions not to overlap.

@asi1024

Both are OK, but we would like the definitions not to overlap.

Just to confirm, my vague idea was to implement the following set of array definitions:

Shared array:

1D: cupyx.jit.shared_memory(int, 10) (Already implemented in cupy)
2D: cupyx.jit.shared_memory(int, (5, 5))
3D: cupyx.jit.shared_memory(int, (3, 3, 3))
etc.

Local array:

1D: cupyx.jit.local_memory(int, 10) (Already implemented in this pull request)
2D: cupyx.jit.local_memory(int, (5, 5))
3D: cupyx.jit.local_memory(int, (3, 3, 3))
etc.

Is this what you mean by the definitions overlapping?
On the other hand, I can quite easily implement some level of multi-dimensional arrays manually, and not have to deal with cupy seeming to have a hard time interpreting the tuple argument, like so:

Shared array:

1D: cupyx.jit.shared_memory(int, 10) (Already implemented in cupy)
2D: cupyx.jit.shared_memory_2d(int, 5, 5)
3D: cupyx.jit.shared_memory_3d(int, 3, 3, 3)

Local array:

1D: cupyx.jit.local_memory(int, 10) (Already implemented in this pull request)
2D: cupyx.jit.local_memory_2d(int, 5, 5)
3D: cupyx.jit.local_memory_3d(int, 3, 3, 3)

This lacks the flexibility that is present in the implementation similar to that done by numba, but from my point of view I would likely never use local or shared arrays larger than 3 or maybe 4d.
I'll look into making some tests in the meanwhile

Added a test to compare behavior of local vs. shared memory, by having threads write to the "wrong" location in memory. Overall behavior is that for local memory this produces a sorted array of ints in order, while for shared memory it produces a reverse sorted array.
Removed the option to call cupyx.jit.local_memory(dtype, None), as I believe the extern keyword is specific to shared memory. The second argument must be an int now

Finally figured out a way to implement n-dimensional local memory. It's rather inefficient because it uses pointers to pointers, rather than a contiguous block of memory, but its probably ok for most situations and could even be more efficient for certain use cases which involve row-swapping of arrays.
For this, I have another test, test_multidimensional_local_memory(), which tests 2, 3, and 4d local memory arrays
I went with approximate numba syntax, so these are initialized as cupyx.jit.local_array(int, (2, 3, 4)) to make a 2x3x4 array of ints. Therefore the size parameter can be either an int or a tuple of ints (and for a tuple size of 1, it automatically converts this to an int)

Hey sorry for the trouble, I remembered to add those import changes properly on the first request, but forgot it when I re-pasted the code from my test environ with the locally specified classes (the code in the OP). Thanks for catching that.
The test does indeed pass with my local definitions of the classes/tests, so presumably it should work properly with the imports being fixed.

Thanks again for the fixes, I promise next time I submit a pull request I will actually test it properly, not just in a local build...
I originally built the ndarray code intentionally like that, because int**** and int[2][2][2][2] have different types (int[2][2][2][2] has type int*[2][2][2]) and with the default _cuda_types I wasn't able to build that latter type to reassign the variable name. For int****, it was rather easy to just do _cuda_types.Ptr( _cuda_types.Ptr( _cuda_types.Ptr( _cuda_types.Ptr(int)))) or the equivalent
However I wasn't aware of the register issue, seems like threads are capped around only 255 total registers for a thread. I will rebuild it to use int[2][2][2][2] syntax.
Would there be interest in keeping the pointer to pointer code for small 2d array cases? I could imagine it might have some utility for row-swapping in matrix ops, but could just add to bloat.

Given the constraints of the jit compiler, I was unable to specify the type of the contiguous block, as I need to define it as "int* lmem3[2][2][2] = _lmem3", which has text on the RHS of the variable name.
So I just went with the auto keyword, hope thats ok.
The current build uses a contiguous block array, and when compiles looks like:
int _lmem3[2][2][2][2];
auto lmem3 = _lmem3;

Full compiled code for the multidimensional test:
extern "C" __global__ void f(CArray<long long, 1, true, true> x, CArray<long long, 1, true, true> y, CArray<long long, 1, true, true> z) {
   int _lmem1[2][3];
   int _lmem2[2][2][2];
   int _lmem3[2][2][2][2];
  int i;
  int j;
  int k;
  int l;
  unsigned int tid = threadIdx.x + blockIdx.x * blockDim.x;
  unsigned int ntid = blockDim.x * gridDim.x;
  auto lmem = _lmem1;
  auto lmem2 = _lmem2;
  auto lmem3 = _lmem3;
  for (int __it = 0, __stop = 2, __step = 1; __it < __stop; __it += __step) {
    i = __it;
    for (int __it = 0, __stop = 3, __step = 1; __it < __stop; __it += __step) {
      j = __it;
      lmem[i][j] = 1;
    }
    for (int __it = 0, __stop = 2, __step = 1; __it < __stop; __it += __step) {
      j = __it;
      for (int __it = 0, __stop = 2, __step = 1; __it < __stop; __it += __step) {
        k = __it;
        lmem2[i][j][k] = 1;
        for (int __it = 0, __stop = 2, __step = 1; __it < __stop; __it += __step) {
          l = __it;
          lmem3[i][j][k][l] = 1;
        }
      }
    }
  }
  __syncthreads();
  for (int __it = 0, __stop = 2, __step = 1; __it < __stop; __it += __step) {
    i = __it;
    for (int __it = 0, __stop = 3, __step = 1; __it < __stop; __it += __step) {
      j = __it;
      { long long &_tmp_4 = x[tid]; _tmp_4 = (_tmp_4 + (long long)(lmem[i][j])); }
    }
    for (int __it = 0, __stop = 2, __step = 1; __it < __stop; __it += __step) {
      j = __it;
      for (int __it = 0, __stop = 2, __step = 1; __it < __stop; __it += __step) {
        k = __it;
        { long long &_tmp_5 = y[tid]; _tmp_5 = (_tmp_5 + (long long)(lmem2[i][j][k])); }
        for (int __it = 0, __stop = 2, __step = 1; __it < __stop; __it += __step) {
          l = __it;
          { long long &_tmp_6 = z[tid]; _tmp_6 = (_tmp_6 + (long long)(lmem3[i][j][k][l])); }
        }
      }
    }
  }
}

I think given how the compiler currently works 2 registers is the minimum, because defining a function not only calls local_memory, but also compiles an assign_stmt. A fix would have to intercept this assign_stmt in the compilation process and only build one array, solely for this one function.
The tests still pass for me with this new build locally, and I'm pretty sure I managed to avoid ruining any of the proper imports this time.

Could you add from cupyx.jit._builtin_funcs import local_memory into cupyx/jit/__init__.py?

We don't want to rely on auto keyword because it tend to expose CUDA compilation error.
@jit.rawkernel(device=True)
def g(array):
    pass

@jit.rawkernel()
def f():
    lmem = jit.local_memory(numpy.int32, (10, 10))
    g(lmem)

f[1, 1]()

__device__ void g_1(auto array) {
  ;
}
extern "C" __global__ void f() {
   int _lmem1[10][10];
  auto lmem = _lmem1;
  g_1(lmem);
}

cupy.cuda.compiler.CompileException: /tmp/tmpwoz9d1eg/fc45a23e424e3370d4d396265dbb503b096d9eea.cubin.cu(5): error: "auto" is not allowed here
  __device__ void g_1(auto array) {
                      ^

1 error detected in the compilation of "/tmp/tmpwoz9d1eg/fc45a23e424e3370d4d396265dbb503b096d9eea.cubin.cu"

How about generating array type explicitly like as follows?
__device__ void g_1(int (*array)[10]) {
  ;
}

extern "C" __global__ void f() {
   int _lmem1[10][10];
   int (*lmem)[10] = _lmem1;
   g_1(_lmem1);
}

Ah, I see the issue with the auto keyword now. That's definitely a big issue to not be able to pass them to device functions
However as far as I can tell there's no easy way with the machinery currently available to get the assign_stmt to build an array type variable as-is. Since this will likely involve modifying cupyx.jit._compile anyways, I may as well try to get local_memory to only use a single register in the first place.
For the index error, I've never tried building a local memory array based on a constant parameter like that, but don't see any reason to restrict it unnecessarily. I'll get that statement to work as well as the others, and will add it to the local_memory test.
Will also add the import statement to init

Sorry for my lack of words. I mean that the error message is inappropriate.
I think we can remove the call method and just use the call_const method to support only constant sizes.

Oh, specifically for that, the reason the "call" method is there is so that the code can even support tuple arguments in the first place, otherwise it will throw a "Arguments must be constant" error when it receives a Data block containing a tuple in arg[1].
Maybe the conversion code could be moved to the call_const method, but putting it in call was the first thing that worked for me when I was building it.

CuPy JIT is implemented to handle constant tuples. Could you remove call method and confirm again if the same error is raised?

Sure thing! Here's two examples of compiling the line la2 = local_memory(int, (2,3,4))
Using the code:
def call(self, env: 'Environment', *args, **kwargs):
        print(args)
        if(type(args[1]) is Data): #intercept tuple, convert to Constant(tuple)
            args = list(args)
            _int_list = args[1].code.split("(")[1].strip(")").split(", ")
            if(len(_int_list) == 1): #convert 1-element tuple to integer (1d array)
                args[1] = Constant(int(_int_list[0]))
            else:
                for i in range(len(_int_list)):
                    _int_list[i] = Constant(int(_int_list[i])).obj
                args[1] = Constant(tuple(_int_list))
            args = tuple(args)
        print(args)
        print("")
        return super().call(env, *args, **kwargs)

(<Constant obj = "<class 'int'>">, <Data code = "thrust::make_tuple(2, 3, 4)", type = thrust::tuple<int, int, int>>)
(<Constant obj = "<class 'int'>">, <Constant obj = "(2, 3, 4)">)
Using the code:
def call(self, env: 'Environment', *args, **kwargs):
        print(args)
        """
        if(type(args[1]) is Data): #intercept tuple, convert to Constant(tuple)
            args = list(args)
            _int_list = args[1].code.split("(")[1].strip(")").split(", ")
            if(len(_int_list) == 1): #convert 1-element tuple to integer (1d array)
                args[1] = Constant(int(_int_list[0]))
            else:
                for i in range(len(_int_list)):
                    _int_list[i] = Constant(int(_int_list[i])).obj
                args[1] = Constant(tuple(_int_list))
            args = tuple(args)
        """
        print(args)
        print("")
        return super().call(env, *args, **kwargs)

(<Constant obj = "<class 'int'>">, <Data code = "thrust::make_tuple(2, 3, 4)", type = thrust::tuple<int, int, int>>)
(<Constant obj = "<class 'int'>">, <Data code = "thrust::make_tuple(2, 3, 4)", type = thrust::tuple<int, int, int>>)
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
Cell In[3], line 134
    131         x[i] += square(i)
    133 c = cp.zeros(10, dtype=int)
--> 134 elementwise_add[1, 10](c, c, 10)
    135 print(c)

File ~/.conda/envs/cupy/lib/python3.10/site-packages/cupyx/jit/_interface.py:138, in _JitRawKernel.__getitem__.<locals>.<lambda>(*args, **kwargs)
    136 if not isinstance(block, tuple):
    137     block = (block, 1, 1)
--> 138 return lambda *args, **kwargs: self(grid, block, args, **kwargs)

File ~/.conda/envs/cupy/lib/python3.10/site-packages/cupyx/jit/_interface.py:96, in _JitRawKernel.__call__(self, grid, block, args, shared_mem, stream)
     94 result = self._cached_codes.get(in_types)
     95 if result is None:
---> 96     result = _compile.transpile(
     97         self._func,
     98         ['extern "C"', '__global__'],
     99         self._mode,
    100         in_types,
    101         _cuda_types.void,
    102     )
    103     self._cached_codes[in_types] = result
    105 fname = result.func_name

File ~/.conda/envs/cupy/lib/python3.10/site-packages/cupyx/jit/_compile.py:182, in transpile(func, attributes, mode, in_types, ret_type)
    180 generated = Generated()
    181 in_types = tuple(in_types)
--> 182 name, return_type = _transpile_func_obj(
    183     func, attributes, mode, in_types, ret_type, generated)
    184 func_name, _ = generated.device_function[(func, in_types)]
    185 code = '\n'.join(generated.codes)

File ~/.conda/envs/cupy/lib/python3.10/site-packages/cupyx/jit/_compile.py:210, in _transpile_func_obj(func, attributes, mode, in_types, ret_type, generated)
    207     name += '_' + str(len(generated.device_function))
    208 generated.device_function[(func, in_types)] = None
--> 210 cuda_code, env = _transpile_function(
    211     tree, name, attributes, mode, consts,
    212     in_types, ret_type, generated, source=source)
    214 generated.device_function[(func, in_types)] = (name, env.ret_type)
    215 generated.add_code(cuda_code)

File ~/.conda/envs/cupy/lib/python3.10/site-packages/cupyx/jit/_compile.py:311, in _transpile_function(func, name, attributes, mode, consts, in_types, ret_type, generated, source)
    308         exc.reraise(source)
    310 # Raises the error out of `except` block to clean stack trace.
--> 311 exc.reraise(source)
    312 assert False

File ~/.conda/envs/cupy/lib/python3.10/site-packages/cupyx/jit/_compile.py:55, in _JitCompileError.reraise(self, pycode)
     51 end = getattr(self.node, 'end_lineno', start)
     52 pycode = '\n'.join([
     53     (f'> {line}' if start <= i + 1 <= end else f'  {line}').rstrip()
     54     for i, line in enumerate(pycode.split('\n'))])
---> 55 raise self.error_type(self.mes + '\n\n' + pycode)

TypeError: Arguments must be constants.

  @jit.rawkernel()
  def elementwise_add(x, y, size):
      tid = jit.grid(1)
      ntid = jit.gridsize(1)

>     la2 = local_memory(int, (2,3,4))

The source of this appears to be in cupyx.jit._internal_types:
class BuiltinFunc(Expr):
    # subclasses must implement:
    # - either call or call_const
    # - `__call__` with a correct signature, which calls the parent's __call__

    def call(self, env: 'Environment', *args, **kwargs) -> Expr:
        for x in itertools.chain(args, kwargs.values()):
            if not isinstance(x, Constant):
                raise TypeError('Arguments must be constants.')
        args = tuple([x.obj for x in args])
        kwargs = dict([(k, v.obj) for k, v in kwargs.items()])
        return self.call_const(env, *args, **kwargs)

Oh! This is my mistake. Turns out the version I was using for testing was 11.3.0, which did not natively support tuple arguments (hence the Data blocks). I've been migrating to a new environment for ease of testing, and am now on 12.2.0, where the above code shows its actually a constant the whole time.
(<Constant obj = "<class 'int'>">, <Constant obj = "(2, 3, 4)">)
(<Constant obj = "<class 'int'>">, <Constant obj = "(2, 3, 4)">)
Because of this, the call method for local_memory is indeed unneeded.

Summary of changes:

Local memory properly uses a contiguous block of memory, and should only use 1 register by initializing the variable name directly.

This is done by intercepting the declvar method of LocalMem with a comment, and instead using the declvar of the local_memory ctype (ContiguousArray) to emit just the array initialization code during assignment, and not the = rvalue part. Ultimately did not have to modify any of cupyx.jit._compile

ndarray local_memory can be indexed properly (e.g. array[1][2][4] can be done)
local_memory is imported in cupyx.jit.__init__.py
Removed the call method from local_memory, as its unneeded in 12.2.0
Two new tests, one to test creation of new variables based on indexing local_memory arrays and pointers to these arrays, and one to test passing (1d and 3d) local_memory arrays to device functions.

Also more of a formatting thing to ponder, for numpy/cupy arrays the convention for argument order is (shape, dtype), while for shared_memory (which this is based on), the order is (dtype, shape). Would it be worth the small(er) pain now to unify the conventions and change shared_memory and local_memory to use the ordering (shape, dtype)?

Small add-on, I originally found that higher-order pointers in the test_local_memory_assignment test wouldn't work. However, in order to pass higher-order pointers to the device function in test_local_memory_in_device_functions test, I ended up fixing this issue, so higher-order pointer creation in the first test is back in, along with an additional test ensuring creation of pointers to these pointers works. E.g.:
lmem = jit.local_memory(numpy.int32, (2, 2, 2, 2))
pointer2 = lmem[1]
pointer3 = pointer2[1]
pointer3[0][1] = 6

This properly sets the cell lmem[1][1][0][1] equal to 6

Also more of a formatting thing to ponder, for numpy/cupy arrays the convention for argument order is (shape, dtype), while for shared_memory (which this is based on), the order is (dtype, shape). Would it be worth the small(er) pain now to unify the conventions and change shared_memory and local_memory to use the ordering (shape, dtype)?

As your comment suggests, we may indeed need to fix the interface. However, I think it would be better to create another pull request for discussions, and fix it with shared memory,

As a follow-up to the conversation about whether to use pointer offsets or broadcasting for adding to a local_memory array, I think I have a strong justification for the former. A near 1-to-1 translation of fortran LAPACK code into a device function would rely on being able to send offset pointers to one block of working memory. I personally need linalg functions inside a kernel (many small lstsq/pinv calls inside an iterative loop), and this could be one way to do so that might have additional utility for others!


Add usage instructions to README

Thanks for this great action. I wasn't 100% sure what the workflow file should be, and thought others might run into the same confusion. Even if not, copy and paste is always easier. 😄
This pull request adds what I think to be the proper workflow to the README along with usage instructions.

Thanks!  Looks like I spaced on updating the README before 1.0.0 release with usage instructions and permission requirements 😞


Results inconsistent between each freeze graph

Describe the problem
I apologize if this is the wrong forum, but it may be a bug regarding certain operations. When freezing a graph and then running it elsewhere (mobile device), the output is of low quality compared to the inference on the server on my semantic segmentation model. It is basically a messy version of what would run on the server. It is executing successfully, but it appears as though something was not initialized prior to freezing, even though the method to load the model between the export script and inference scripts is nearly identical.
The exported model can be run on the same images over and over and produce the same results for a given set of images, as expected.
Here is the really strange part:
However, each time the model is frozen, using exactly the same script and same checkpoint, it creates a different output for a given set of images.
I went ahead and posted to stackoverflow in case this is the wrong place.
https://stackoverflow.com/questions/49454430/tensorflow-results-inconsistent-between-each-freeze-graph
Possibly related to my issue #17942, missing ops warnings, but from what I have read on this issue list, these are to be ignored.
Source code / logs
def main():
    args = get_arguments()

    if args.dataset == 'cityscapes':
        num_classes = cityscapes_class
    else:
        num_classes = ADE20k_class

    shape = [320, 320]

    x = tf.placeholder(dtype=tf.float32, shape=(shape[0], shape[1], 3), name="input")
    img_tf = preprocess(x)

    model = model_config[args.model]
    net = model({'data': img_tf}, num_classes=num_classes, filter_scale=args.filter_scale)

    raw_output = net.layers['conv6_cls']
    raw_output_up = tf.image.resize_bilinear(raw_output, size=shape, align_corners=True)
    raw_output_maxed = tf.argmax(raw_output_up, axis=3, name="output")

    # Init tf Session
    config = tf.ConfigProto()
    sess = tf.Session(config=config)
    init = tf.global_variables_initializer()

    sess.run(init)

    model_path = model_paths[args.model]
    ckpt = tf.train.get_checkpoint_state(model_path)
    if ckpt and ckpt.model_checkpoint_path:
        input_checkpoint = ckpt.model_checkpoint_path
        loader = tf.train.import_meta_graph(input_checkpoint + '.meta', clear_devices=True)
        load(loader, sess, ckpt.model_checkpoint_path)
    else:
        print('No checkpoint file found at %s.' % model_path)
        exit()

    print("Loaded Model")

    # We retrieve the protobuf graph definition
    graph = tf.get_default_graph()
    input_graph_def = graph.as_graph_def()

    # We use a built-in TF helper to export variables to constants
    output_graph_def = graph_util.convert_variables_to_constants(
        sess, # The session is used to retrieve the weights
        input_graph_def, # The graph_def is used to retrieve the nodes
        output_node_names.split(",") # The output node names are used to select the usefull nodes
    )

    # Finally we serialize and dump the output graph to the filesystem
    with tf.gfile.GFile("model/output_graph.pb", "wb") as f:
        f.write(output_graph_def.SerializeToString())
    print("%d ops in the final graph." % len(output_graph_def.node))

I have determined this is my issue, and will update the stackoverflow post above with how to remedy it if anyone else encounters it.

@joelteply it appears the stackoverflow post doesn't have an explanation - do you remember what your solution was?


[Question] Telemetry?

Hello!
First of all, thank you for this editor!
When trying to install the latest version, this operation failed due to an OpenSSL installation being missing.  What does zee need OpenSSL for?  Does zee have telemetry features or why is OpenSSL a requirement for the editor?

Kevin,
Not an authoritative answer but looking at the source, openssl-sys is pulled in by the 'https' feature (part of the default crate  features) of the git2 crate which is used by zee for Git repository integration. git2 doesn't have support for rustls as an alternate TLS implementation so there isn't any way around using OpenSSL without stripping Git integration entirely.

Thank you for your answer, @iainh.
I was confused about the need for a network library for a text editor but Git integration makes sense.  Since there are some IDEs / text editors which actually have telemetry features incorporated, such as VS Code (where the telemetry level can be configured in the settings), I wondered whether zee might have such features, as well.
This answers the question, thank you for your help!


Reorganize dirs

generators would likely be better named simply examples.
generate_setup_cfg.py could be moved away from the top level, e.g. in a maint or tools or the like dir.
I wonder what's the most common/best dir name choice for these? tools is common, but used for other purposes besides maintainer tools, too :shrug:

tools/ done.


Unable to see full resource template name when copying SHARE-VDE into Sinopia

When importing a SHARE resource and choosing a template, it would be nice if we could either expand the window to see the full template name, or have it show up when I hover over it.
Give an example

Otherwise we'll have to make sure our template names are much shorter.

Dev: Please make the modal (and typeahead input) wider. Also, please see if can show the full when hover. Or propose other approaches.


try loading the library with System.loadLibrary()

Some environments have their own way to ship native libraries (e.g., Android).
On those it is preferrable to rely on System.loadLibrary instead of manually
extracting/loading the library from resources

This seems like a fine thing to add, but if the other forms of loading fail couldn't we put this at the end of the method?
My concern is that by putting this at the front of the list, we defer all searching and loading to the JVM first, which may cause it to load a library from a default location rather than a location configured by a user (which is important on secure systems).
Can you get the same effect moving the loadLibrary call to the end? If so, do that and I will happily merge and release this.

No follow-up so I have not merged this. Still willing to consider it!

@headius, my apologies, I lost track of this.
Yes, moving it to the end also works, and the security considerations make sense :+1:


DP-277: Initial version: enable to process our data format.

Sorry for the noise - I sent this PR accidentally to the original repo.


Insert unary operator mutation

Add an operator that will insert certain unary operators.
The most important case for insertion if ! on booleans. It might also be worth inserting ! on integers, and perhaps also ~. It is less clear that it is worth inserting ++ and --.

This is addressed by #86.


Web Text Charset is not UTF-8

Web strings are not read in UTF-8. It breaks native characters and colors like this:

Adding StandardCharsets.UTF_8 to InputStreamReader should do the thing

Also occurs with local files

this issue is like duped 20 times but, no one stated the fix even though it was obvious. Hopefully when @lumien231 gets on he will fix these issues.


Rj nest pre quanta

Summary here
This PR implements completes the NEST sources with the full yield models. Also includes updates to the Bayes bounds, and core changes needed for a successful and efficient NEST implementation. Default sources are unaffected

Thanks for taking a look so quickly Jelle! I will do my best to address all this tomorrow, so we can get it merged ASAP

Okay, I've addressed everything now (bar the one thing we agreed could be left until later). I've asked @jordan-palmer to re-run the validation tests from our paper just to be sure nothing was broken in the process... Once we have that confirmed, I think we're ready to merge!

I'll run some fits to the MC events generated from the default ER source as well just to check.

@jordan-palmer found a case which highlighted a bug - I've fixed it now. He's going to run those validation checks to make sure there's nothing else I've missed. I'm also going to address your comment now @plt109. @JelleAalbers - once Jordan confirms things are still okay from our NEST validations, and Pueh okays everything from the default source side, will you be ready to merge? We really want to get this paper on the arxiv!

Thanks for the fixes Robert! I'm happy you were able to work around the tfp and  i_batch stuff.
Am I right that nobody has reviewed the new bounds stuff yet? I have not looked at it but I think someone should. Did you discuss this with someone at Stockholm, or should I have a look?
Could you describe the bug and fix? Since it's a change to the core BlockSource.

The bounds stuff still only affects the NEST sources. The changes are detailed in the slides and the paper, which we did go over in Stockholm. I'd hoped to spend some of the time there doing the more general Bayes bounds that leverage directly from compute(), so the default sources can benefit too, but this was swamped by the mu issue and other problems. It's still pretty high on the list of future work though. So given the scope of the bounds changes, not sure that it necessarily needs pouring over in too much detail right now. Up to you though.
As far as the bug goes, the problem was that the function signature to the TF graph was being computed before the data tensor size was known - the number of ion bounds inserted was determined from the data. I've changed it now so that it's set to be the maximum it can be (which is the minimum of the length of the energy spectrum and max_dim_sizes['energy']), and I pad the ion bounds with zeroes if necessary.

@plt109, I've hard-coded the max_dim_sizes in for the default sources now, in the blocks

Ah OK. Am I right that the default sources don't use the Bayes bounds, and the MC_reservoir is never filled, so the stuff in get_priors is skipped? Then I agree I don't need to review that part :-). Just two minor comments based on a quick glance:

Does self.MC_reservoir need to be both an attribute and passed as an argument to get_priors?
I would prefer mc_reservoir rather than MC_reservoir; uppercased things indicate classes to me.

Since you addressed all my other comments, I think we can merge once you and Pueh converge on the max_dimsize handling.

I've addressed this now

Thanks Robert! @plt109 are you happy with the max_dim_sizes change? If so, I think it's time to merge this.

So I tested multiple times trying to fit with the base sources and the XENON sources data and something is going wrong. If we keep max_sigma=3 or just as default, the fit works. If one tries to increase the max_sigma in the likelihood to more than that the fit will not start, saying:
ValueError: The likelihood is finite at your guess, but the gradient is not. Are you starting at a cusp?
no matter what the guess is. I believe this is a bounds issue.

So I tested multiple times trying to fit with the base sources and the XENON sources data and something is going wrong. If we keep max_sigma=3 or just as default, the fit works. If one tries to increase the max_sigma in the likelihood to more than that the fit will not start, saying: ValueError: The likelihood is finite at your guess, but the gradient is not. Are you starting at a cusp? no matter what the guess is. I believe this is a bounds issue.

So I tested multiple times trying to fit with the base sources and the XENON sources data and something is going wrong. If we keep max_sigma=3 or just as default, the fit works. If one tries to increase the max_sigma in the likelihood to more than that the fit will not start, saying: ValueError: The likelihood is finite at your guess, but the gradient is not. Are you starting at a cusp? no matter what the guess is. I believe this is a bounds issue.

I tried to reproduce this but I cant, can you provide a minimum example please?

So I tested multiple times trying to fit with the base sources and the XENON sources data and something is going wrong. If we keep max_sigma=3 or just as default, the fit works. If one tries to increase the max_sigma in the likelihood to more than that the fit will not start, saying: ValueError: The likelihood is finite at your guess, but the gradient is not. Are you starting at a cusp? no matter what the guess is. I believe this is a bounds issue.

I tried to reproduce this but I cant, can you provide a minimum example please?

Okay, @plt109 informed me that you get this issue using the SR1ERSource which I can't run. I was getting correct results using the ERSource though

Cristian sent me the code to produce the error. I'm going to try and dig into it later today. I agree we probably shouldn't merge until this is addressed

Apologies for closing, I missed the button I wanted to press...

@plt109 @CristianAntochi I think the problem with the fits was simply that I hadn't rebased this branch with main (this happens automatically when merging), so by checking the branch out and doing a fit lots of the Xenon1T files reverted to older versions. I've rebased now, and repeating your fit for the SR1ERSource now gives the same results as the main branch. Does one of you want to confirm this? Then we can merge


Make it Admin enabled

Allow submissions to be gone through scanning by the admins, and not as is now being submitted and PUBLISHED by anyone

YES! Good issue!


PMM in NPSP Trial - Process Builder Automation Does Not Fire

Issue:
PMM was added to the NPSP Trial during general release (as of May 5th, 2020). PMM includes two Process Builder flows that perform automation on the Program Engagement and Service Delivery objects. These automations work as expected in the Package if installed, however when deployed via the NPSP Trial they don't fire.
Expected and Actual Results:
Service Delivery:

Naming should change to “Client Name - Delivery Date - Service” unless the "Auto-name Override" checkbox is enabled.
Actual result is that the name isn't changed and is left as the text entered when created manually. When created via the Bulk Service Delivery tool, the record ID is used for the name in place of any text (as no text was entered in the entry).

Program Engagement:

Naming should change to “Client Name - Start Date - Program Name” unless the "Auto-name Override" checkbox is enabled. Actual result is that the name isn't changed and is left as the text entered.
Program Engagement stage is set to Applied and, if the Application Date is NULL, sets it to TODAY(). Actual result is the date is left empty.
Program Engagement stage is set to Enrolled or Active and, if the Start Date is NULL, sets it to TODAY(). Actual result is a validation rule error is shown, and a Flow Error is emailed to the System Administrator.
Error: "Template: Program Engagement Object” process failed. Give your Salesforce admin these details. This error occurred when the flow tried to update records: FIELD_CUSTOM_VALIDATION_EXCEPTION: Select a start date that's on or after the program start date and on or before the program end date.. You can look up ExceptionCode values in the SOAP API Developer Guide. Error ID:<PHONE_NUMBER>-563871 (-804958435)“
Program Engagement stage is set to Complete or Withdrawn and, if the End Date is NULL, sets it to TODAY(). Actual result is a validation rule error is shown, and a Flow Error is emailed to the System Administrator.
Error: “Template: Program Engagement Object” process failed. Give your Salesforce admin these details. This error occurred when the flow tried to update records: FIELD_CUSTOM_VALIDATION_EXCEPTION: Select an end date that's on or after the program start date and on or before the program end date.. You can look up ExceptionCode values in the SOAP API Developer Guide. Error ID:<PHONE_NUMBER>-564062 (-804958435)“

Steps to Repeat (naming change):

In an NPSP Trial with PMM org, create a new Program Engagement object.
Enter a name such as Testing1 and do not check the Auto-Name Override box.
Complete other details and click save.
Expected: Name should automatically change from Testing1 to “Client Name - Start Date - Program Name”.
Actual: Name is left as Testing1.

Debugging:
The managed versions have several references to metadata not found. For example:
<expression> NOT({!myVariable_current.00N1I00000OiSk0*__NotFound*})</expression>
compared to this in the cloned version:
<expression> NOT({!myVariable_current.pmdm__AutoName_Override__c})</expression>
This is likely due to this difference for field names:
In managed version:
<leftValueReference>myVariable_current.pmdm__Stage__c</leftValueReference>
In cloned version, there’s no namespace:
<leftValueReference>myVariable_current.Stage__c</leftValueReference>
Workaround:
Until a fix can be applied, each Process Builder can be cloned as brand new processes in the Customer's Org. The original versions can then be deactivated, and the new versions activated.

Closing this Issue as we are solutioning ways to resolve this before Trial with PMM go live May 5th.


Extract helper for establishing a new stacking context

Bug/issue #, if applicable: 104872474
Summary
This extracts and modifies the existing functionality needed to establish a new stacking context without altering any visuals, which is used in various places to work around browser specific issues related to overflow and border-radii.
The previous method has issues with the "Export as PDF" feature of Safari, possibly because of the way it handles transparent background images for that kind of rendering output, and it cannot be avoided with media queries the same way that it can when "printing" to PDF.
Testing
Follow the same testing steps as https://github.com/apple/swift-docc-render/pull/514 but also verify that there are no issues with the "Export as PDF" functionality of Safari.
Checklist
Make sure you check off the following items. If they cannot be completed, provide a reason.

[ ] Added tests (CSS only change)
[X] Ran npm test, and it succeeded
[X] Updated documentation if necessary

@swift-ci test


React create app suggestion on editor 'REACT_EDITOR=atom'

To set up the editor integration, add something like REACT_EDITOR=atom to the .env.local file in your project folder and restart the development server. Learn more: https://goo.gl/MMTaZt
That's the tooltip that appeears in console after clicking on a problem in the browser.
It seems like the link present above is dead and I think it'd be great to update it.
Unfortunately I didn't have the time to dig down and open a PR about it. Sorry!

This is kinda a duplicate of #5910 in that we've known our short links are broken for a while. Line in question is here. We're currently in the process of fixing this, so it should be handled soon!


Enable clj-refactor keybindings lazily

Apparently it actually takes a substantial amount of time to run cljr-add-keybindings-with-prefix.

Another option is just not using clj-refactor.


Typo in Implication World level 6

The first paragraph states

... assumptions of of the form ...

Thanks!


Improve backend session handling

didnt go through the metrics and I dont think I need to either cuz the attention scores were forming the same graph as before when I ran it so Idk if the new metricsa re in effect/being returned yet? But doesnt break the app afaik so approved 👍


How can I play youtube video?

Hii @all,
How can I play youtube video using this library?
Thanks

Can you share the solution you found?


Health Meter only in certain levels ?

Hello everyone, wanted to ask if there is a way I can utilize the Health Meter from Galaxy, not in the whole game, but only in certain levels, I know its a global setting, but is there a way I can like use it only in specific levels ? Or I can I add an option in the obj_levelcontrol ?

You can add it as an option and turn it off at room end

How would this work exactly ? Cause when I did it, it crashed upon starting the level. I added it like this:

Sorry for asking so much all the time, Im just so excited to make my own Mario-Game, sadly I'm at the beginning of this programming stuff, and I dont know so much about it either, thats why I keep asking the Github, you know ? XD


SurfaceTool usage appears to leak

Godot version
4.1.1 stable
System information
Mac OS X 13.4.1 - M1
Issue description
It appears as if creating a new mesh instance using SurfaceTool seems consistently increase the memory usage of Godot.
Create a project (see below) where a new mesh instance is created over and over with a new surfaceTool copying from a CylinderMesh and it appears to ever increase the memory.

I am using queue_free on the MeshInstance3D
The other objects (SurfaceTool, CylinderMesh, the committed mesh) are refCounted so they should deallocate themselves without any intervention.

Steps to reproduce
Run the attached script
Minimal reproduction project
extends Node3D

var displayed: Node3D

# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(delta):
	print("going")
	if displayed != null:
		self.displayed.queue_free()

	var cylinder = CylinderMesh.new()
	cylinder.top_radius = 10.0
	cylinder.bottom_radius = 9.0
	cylinder.height = 40.0
	cylinder.radial_segments = 200

	var surfaceTool = SurfaceTool.new()
	surfaceTool.begin(Mesh.PRIMITIVE_TRIANGLES)
	surfaceTool.append_from(cylinder, 0, Transform3D())
	surfaceTool.generate_normals()
	var array = surfaceTool.commit()
	surfaceTool.clear()

	var meshInstance = MeshInstance3D.new()
	meshInstance.mesh = array
	self.add_child(meshInstance)
	self.displayed = meshInstance

I cant repro this on 4.1.1 stable or current master (59139df16e7a10c3b9176f697d23b557af46601e) on Windows. Could be a Mac issue.
What tool are you using to track the memory use? Some OS tool or the Godot debugger memory monitor?

Yeah can be closed


Specify type of "product" when informing GBIF about usage

In the form shown on download pages when a user clicks "Tell us about usage" (downloadKey.showUsageFormModal), please add a dropdown for Type between Title and Authors(s):
options:
journal article
book
book chapter
conference paper / proceedings
preprint / working paper
report
web page
thesis / dissertation
course / teaching materials
magazine article
statute
patent
newspaper article
software / computer program
hearing
television broadcast
encyclopedia article
case
film
bill
other (please elaborate in comments below)

perfect, thanks!

was this rolled back? i see the field in the form but it's no longer in the emails sent.
Also, can we make sure that type=="" is not an option?

Nothing has been rolled back no, it is the same code that you tested last week. And yes we can make type a required field.
If the mail doesn't include the type, then I doubt it ever did. I didn't look into the mail client part (I haven't implemented this code originally), but just used the ui to send the mail so you could evaluate if it was like you wanted it to. We probably misunderstood each other. I will look at that part of the code and ask you to evaluate it again.

I must have dreamed seeing it 🤣  Perhaps it was just this I saw

comments: TEST: Is there a type included here Daniel? type: journal article

That is a confusing message to say the least. The formatting of those mails is also confusing in code I just notice. Do you use it for automatic parsing? I believe I've added it now, and changed the formatting slightly. Please review if it is useful now (UAT). You better fill in the form yourself to avoid misunderstandings.

All good now. Can be deployed to prod.


fix: graph config

This PR fixes the default config values for the graph creation as discussed in #22.

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


Add mIRC 7.64

[x] Have you signed the Contributor License Agreement?
[x] Have you checked that there aren't other open pull requests for the same manifest update/change?

[x] Does your manifest conform to the 1.0 schema?

Note: <path> is the name of the directory containing the manifest you're submitting.

Microsoft Reviewers: Open in CodeFlow

This was failing... restarting to new baseline

/azp run

I am not sure why installer validation fails in CI, there are no useful error messages in the logs. Installation succeeds when I test locally.


android build failed with error

:react-native-social-share:compileReleaseJavaWithJavac - is not incremental (e.g. outputs have changed, no previous execution, etc.).
**[MY ROOT]**/node_modules/react-native-social-share/android/src/main/java/com/barefootcoders/android/react/KDSocialShare/KDSocialShare.java:27: error: method does not override or implement a method from a supertype
    @Override
    ^
1 error
:react-native-social-share:compileReleaseJavaWithJavac FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':react-native-social-share:compileReleaseJavaWithJavac'.
> Compilation failed; see the compiler error output for details.

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

BUILD FAILED

How to solve this problem ?
Thanks

@swad1992 This is probably related to #52 - it is awaiting merge by @doefler

@swad1992 @alfonsogoberjr
Hey guys, have merged the changes.

@doefler are you sure? I still see that old @override method in master: https://github.com/doefler/react-native-social-share/blob/master/android/src/main/java/com/barefootcoders/android/react/KDSocialShare/KDSocialShare.java#L32
and I still see it when I do an npm install. I keep having to manually delete that method.


update property selector's icon list

Some classes have been added previously.
The icon list in VisualScriptEditor was updated, but the icon list in PropertySelector was still outdated, so the icons were not indexed correctly.

So this PR fixed it.

Also, Quat was renamed to Quaternion, and the icons were renamed to match the new name.

@YeldhamDev I think it's a bug, not an enhancement.

Thanks!


Nullable by default

GraphQL schema fields are nullable by default, but using TypeGraphQL everything is required by default. Is there a way to change this default?
If I make a GQL request and a certain field is null, the server throws an error. Getting a null for that field instead of an exception seems to be far better default behaviour.

Fields are not nullable by default because properties in TypeScript are not optional by default, so it's much more intuitive design.
Also marking ! and !]! almost everything in my schema SDL drove me crazy, so I've decided that fields are not nullable by default.
With #296 the problem will be gone as you will have 1:1 sync with TS types :P

Is there a way to change this default?

You can create a decorator alias: const NullableField = () => Field({ nullable: true });.
Maybe I should provide it in out of the box 🤔

Thanks for the response. I’m a little confused by the second paragraph.
Surely making things non nullable by default means that you have !
everywhere?
On Sun, 31 Mar 2019 at 22:36 Michał Lytek<EMAIL_ADDRESS>wrote:

Fields are not nullable by default because properties in TypeScript are
not optional by default, so it's much more intuitive design.
Also marking ! and !]! almost everything in my schema SDL drove me crazy,
so I've decided that fields are not nullable by default.
With #296 https://github.com/19majkel94/type-graphql/issues/296 the
problem will be gone as you will have 1:1 sync with TS types :P
Is there a way to change this default?
You can create a decorator alias: const NullableField = () => Field({
nullable: true });.
Maybe I should provide it in out of the box 🤔
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/19majkel94/type-graphql/issues/297#issuecomment-478373283,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AC8oXw0BvPduRSEMKocRwnnpSKmPMzEWks5vcQ4rgaJpZM4cUVIP
.

@elie222
class Foo {
  bar: string;
  baz: string[];
  fooBar(baz: string): string {}
}

type Foo {
  bar: String!
  baz: [String!]!
  fooBar(baz: String!): String!
}

I’m a little confused by the second paragraph.

I am trying to say that before TypeGraphQL I was creating GraphQL APIs using SDL and I was forgetting about placing ! in types like string array ([String!]!) which was a bad developer experience for me.

@elie222
I think that I shouldn't force this behavior, it should be configurable with current setting as a default one, event with #45.
Will try to make this possible soon 😉

Thanks for the great work!
On Thu, 4 Apr 2019 at 17:33 Michał Lytek<EMAIL_ADDRESS>wrote:

@elie222 https://github.com/elie222
I think that I shouldn't force this behavior, it should be configurable
with current setting as a default one, event with #45
https://github.com/19majkel94/type-graphql/issues/45.
Will try to make this possible soon 😉
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/19majkel94/type-graphql/issues/297#issuecomment-479922576,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AC8oX5xVVBbq7I10l3ssQyyzkcQQxZqzks5vdg00gaJpZM4cUVIP
.

@19majkel94
Right improvement! 👍


[test] use a default value for VMI removal timeout

What this PR does / why we need it:
Today many tests are waiting up to a certain
timeout for a VMI to disappear but some of
them for 120 seconds, others for 180
and others again for 240.
Let's use a single value across the whole
test suite and let's use
240 seconds to prevent us from
hitting: https://issues.redhat.com/browse/OCPBUGS-27949
In the future we will be able to reduce it
to 120 seconds with a one line change.
Which issue(s) this PR fixes (optional, in fixes #<issue number>(, fixes #<issue_number>, ...) format, will close the issue(s) when PR gets merged):
Fixes #
Special notes for your reviewer:
Currently we have a mix of 120, 180 and 240 seconds here and there.
This will set a default value everywhere, and the value is currently set at 240 seconds.
This should help to avoid https://issues.redhat.com/browse/OCPBUGS-27949 .
Once that will be fixed, we will be able to reduce to 120 seconds.
Checklist
This checklist is not enforcing, but it's a reminder of items that could be relevant to every PR.
Approvers are expected to review this list.

[ ] Design: A design document was considered and is present (link) or not required
[ ] PR: The PR description is expressive enough and will help future contributors
[ ] Code: Write code that humans can understand and Keep it simple
[X] Refactor: You have left the code cleaner than you found it (Boy Scout Rule)
[ ] Upgrade: Impact of this change on upgrade flows was considered and addressed if required
[X] Testing: New code requires new unit tests. New features and bug fixes require at least on e2e test
[ ] Documentation: A user-guide update was considered and is present (link) or not required. You want a user-guide update if it's a user facing feature / API change.
[ ] Community: Announcement to kubevirt-dev was considered

Release note:

NONE

/test pull-kubevirt-e2e-k8s-1.27-sig-compute
/test pull-kubevirt-e2e-k8s-1.27-sig-network
/test pull-kubevirt-e2e-k8s-1.27-sig-operator
/test pull-kubevirt-e2e-k8s-1.27-sig-storage
/test pull-kubevirt-e2e-k8s-1.28-sig-compute
/test pull-kubevirt-e2e-k8s-1.28-sig-network
/test pull-kubevirt-e2e-k8s-1.28-sig-operator
/test pull-kubevirt-e2e-k8s-1.28-sig-storage
/test pull-kubevirt-e2e-k8s-1.29-ipv6-sig-network
/test pull-kubevirt-e2e-kind-1.27-sriov

/test pull-kubevirt-e2e-kind-1.27-vgpu

/test pull-kubevirt-e2e-k8s-1.27-sig-compute
/test pull-kubevirt-e2e-k8s-1.27-sig-network
/test pull-kubevirt-e2e-k8s-1.27-sig-operator
/test pull-kubevirt-e2e-k8s-1.27-sig-storage
/test pull-kubevirt-e2e-k8s-1.28-sig-compute
/test pull-kubevirt-e2e-k8s-1.28-sig-network
/test pull-kubevirt-e2e-k8s-1.28-sig-operator
/test pull-kubevirt-e2e-k8s-1.28-sig-storage
/test pull-kubevirt-e2e-k8s-1.29-ipv6-sig-network
/test pull-kubevirt-e2e-kind-1.27-sriov
/test pull-kubevirt-e2e-kind-1.27-vgpu

/test pull-kubevirt-e2e-k8s-1.27-sig-compute
/test pull-kubevirt-e2e-k8s-1.27-sig-network
/test pull-kubevirt-e2e-k8s-1.27-sig-operator
/test pull-kubevirt-e2e-k8s-1.27-sig-storage
/test pull-kubevirt-e2e-k8s-1.28-sig-compute
/test pull-kubevirt-e2e-k8s-1.28-sig-network
/test pull-kubevirt-e2e-k8s-1.28-sig-operator
/test pull-kubevirt-e2e-k8s-1.28-sig-storage
/test pull-kubevirt-e2e-k8s-1.29-ipv6-sig-network
/test pull-kubevirt-e2e-kind-1.27-sriov
/test pull-kubevirt-e2e-kind-1.27-vgpu

Are there implications on the overall execution time of the tests?

Wrong attempt, let's continue on #11067


wishlist: do not depend on modern-go/*

Hi,
I have just prepared and uploaded version 1.0.6 of json-iterator to Debian, as that is the last version without the modern-go dependencies, which are not yet present in Debian.
In parallel, I was packaging these dependencies, so I can upload 1.1.3 soon. Sadly, I discovered some problems with that collection of libraries: circular dependencies between different repos (reflect2 -> test -> reflect2), using a private (possibly patched) version of stretchr/testify, and a long tail of dependencies that never seems to end..
So, I wanted to request, if it is feasible, to avoid depending on these libraries. I presume they are not critical, as they were not needed until 1.06.
Thanks.

reflect2 does not depend on test. Which tool reports circular dependency?
On Mon, Jun 11, 2018 at 12:30 AM, Martín Ferrari<EMAIL_ADDRESS>wrote:

Hi,
I have just prepared and uploaded version 1.0.6 of json-iterator to
Debian, as that is the last version without the modern-go dependencies,
which are not yet present in Debian.
In parallel, I was packaging these dependencies, so I can upload 1.1.3
soon. Sadly, I discovered some problems with that collection of libraries:
circular dependencies between different repos (reflect2 -> test ->
reflect2), using a private (possibly patched) version of stretchr/testify,
and a long tail of dependencies that never seems to end..
So, I wanted to request, if it is feasible, to avoid depending on these
libraries. I presume they are not critical, as they were not needed until
1.06.
Thanks.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/json-iterator/go/issues/284, or mute the thread
https://github.com/notifications/unsubscribe-auth/AACeXSQ6Jo62dwFJ5KvnxOSuY3ctgJyBks5t7UmrgaJpZM4Uhx7F
.

On 11/06/18 03:56, Tao Wen wrote:

reflect2 does not depend on test. Which tool reports circular dependency?

The reflect2 tests depend on test, so to build the reflect2 package
(which includes running the tests), I need the test package.
--
Martín Ferrari (Tincho)

reflect2 no longer depends on tests now

There was no need to (re)move the tests, I was already ignoring them to avoid this problem.
But the issues with using a private copy of testify, and the long chain of dependencies (including gls, which ships arch-specific code that means it won't work in many Debian architectures) are still there.


[Question]: Why is the website sometimes inaccessible?

Contact Details
<EMAIL_ADDRESS>What is your question?
Sometimes, when I enter the website URL, I cannot access it. Why is this? Is it caused by too many people accessing it?
More Details
The following is the interface when it cannot be accessed.
What is the main subject of your question?
Other
Screenshots

Code of Conduct

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

This seems to be a network issue. Please make sure that your server and network connection are functioning correctly. Additionally, it is important to note that developers are primarily responsible for providing the source code of the website, rather than directly offering network services or resolving issues that users may encounter when accessing the website.


AccessViolationException on initialize

I pretty much just copied the stock XNA example code into my project. What version of the ImGUI.Net.DLL should I be using, and how would I obtain it? I have a feeling that this is to due with me just having the wrong DLLs.
Operating System: Windows 10 x64
.Net Framework 4.7.2

Okay, apparently I was using the wrong cimgui. Now that I am using the right one, the application boots, but nothing draws. Any ideas?

Are you running the sample program, or your own project? If the latter, what modifications have you made?

I am using my own project, but I essentially copied the code directly from the sample. When I get home I will loading the sample project directly.

I got this to work, I was using the wrong references and targeting the wrong framework version. Thanks for your help.


Update copy-emr-client-deps.sh

Issue #, if available:
Fix issues with Linux1 AMIs, stop copying apitools from master, instead use yum install directly on edge node.
Description of changes:
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

Fix AMI level issues


implement array_agg

https://www.postgresql.org/docs/9.5/functions-aggregate.html
https://docs.snowflake.com/en/sql-reference/functions/array_agg.html
Requested by POC

Already supported:
dev=> with t(v1) as (values (7), (1), (4)) select array_agg(v1) from t;
 array_agg
-----------
 {7,1,4}
(1 row)

Quick question: According to the snowflake docs array_agg

Returns the input values, pivoted into an ARRAY. If the input is empty, an empty ARRAY is returned.

So, I would expect an empty array {} as an output of the following queries:
create table t (v1 integer) ;
with t2(v1) as (select * from t) select array_agg(v1) from t2;
 array_agg
-----------

(1 row)

Instead I get no output. I assume this is by design, right?

In PostgreSQL:

It should be noted that except for count, these functions return a null value when no rows are selected. In particular, sum of no rows returns null, not zero as one might expect, and array_agg returns null rather than an empty array when there are no input rows. The coalesce function can be used to substitute zero or an empty array for null when necessary.

It actually took us extra effort to support this null semantic.

Is there specific testing query that is not passing by current implementation? If not, we can close this issue.
As for empty vs null, as PostgreSQL doc suggested, the empty semantic can be expressed as coalesce(array_agg(v1), array[]::int[]).