Ustringhash phase 3

Description
Move OSL library functions and remaining execution time interface from ustring to ustringhash.
Intent is all code for cpu or device just use ustringhash only.  This allows us to remove
STRING_PARAM, ustringrep, and OSL_USTRINGREP_IS_HASH.  All interfaces and library code
should explicitly use ustringhash or ustring,
or for library functions llvm can call ustringhash_pod or ustring_pod
Compile time strings used in the OSL Library are represented in strdecls.h
and will be available as ustring variables in the Strings namespace as well as
available as unstringhash constexpr variables in the Hashes namespace.
Compile time strings used by the Renderer should adopt a similiar strategy as
exemplified by TestShade which keeps its strings in rs_strdecls.h
and made available as ustring variables in the RS::Strings namespace as well as
available as unstringhash constexpr variables in the RS::Hashes namespace.
Added helper utility functions to generate ustring from ustringhash_pods
Constant string arrays: Previously, array copys required copying data via address
of symbol on host. To enable working on device, replaced memcpy with array allocation
and loading of values. Constant arrays are now present as
global arrays in final llvm module.
On the Batched side compatability/integration:
Batched OSL Library functions continue to use ustrings (not ustringhashes to reduce scope/risk).
Batched OSL library functions that call their scalar counterparts were adjusted
to pass arguments as ustringhash_pods and store results as ustrings
STRING_PARAMS, device_string.h, and string_hash.h: Built-in strings on the CUDA side are now accessed via Hashes namespace, instead of STRING_PARAMS and are
evaluated as ustringhashes. Similarly, DeviceString, StringParams, HDSTR are obsolete, and device_string.h is eliminated.
Hashes.h, which only contains OIIO's strhash and pvtstrlen functions (both formerly in string_hash.h), replaces all inclusions of device_string.h. Namespace Hashes in hashes.h
contains pre-compiled ustringhashes representing strings from strdecls.h.
Texture, dictionary, closure: Helper implementation functions are used by both scalar and batched versions. However, since scalar uses ustringhashes and
the batched version uses ustrings added a flag to inform functions on treating TypeDesc::STRING has either a ustring or a ustringhash
Tests
Added testing of bitcode rendereservices for unoptimized OSL shader.
array-copy tests regression: Added new test to verify copying of arrays of unequal lengths
Checklist:

[x] I have read the contribution guidelines.
[x] I have previously submitted a Contributor License Agreement.
[x] I have updated the documentation, if applicable.
[x] I have ensured that the change is tested somewhere in the testsuite (adding new test cases if necessary).
[x] My code follows the prevailing code style of this project.

This needs a rebase and fix any merge conflicts with the several Brecht patches that just went in.

OptiX tests are now crashing with this:
src/liboslexec/llvm_util.cpp:3032: make_function: Assertion 'llvm::isa<llvm::Function>(maybe_func)' failed: Declaration for osl_texture is wrong, LLVM had to make a cast

@brechtvl , PR has been updated with fixes.  If you could please retest, we think its read to go.

This passes the OptiX tests now for me (ignoring some tests that fail the same way in main).

Yes, passes for me, too.
I'm working on some additional changes that will make this less of a stark source code break for renderers, though.

@lgritz this PR includes a lot of cleanup.  Makes things explicit (as far as ustrings and hashes go).  And yes we did make lots of changes to remove confusion, why have multiple ways of doing things.  Although that means more changes to user code to update to it.  But minimizing the delta at least in the OSL code base wasn't really a goal per say, but trying to be explicit what was passed to who was.  And removing as many casts between char * and int64_t (hash code) as possible including llvm JIT.
Now, if adding back a deprecated DeviceStrings or equivalent makes Renderer transition easier, then maybe that should happen.  Although I think we imagined a renderer might just define those itself vs. adding them back in OSL proper.  But either way would work.
Specifics:
llvm_load_string used to at one point be a customization point for CUDA so it could go off to some global variable and actually load a value, after switching to hash_codes, nothing was loaded anymore.  So the cleanup was to rename the remaining variations to what they actually do which is to emit a const hash.  Much more clear when reading/debugging the code (we didn't make the change by accident).  This shouldn't have impact on renderers though.  And yes it could be renamed back to llvm_load_string and there would be fewer diffs.
So if you still want to be able to switch back and forth between ustrings and ustringhash'es then this isn't that PR.  We went out of our way to rip out the old way and what would be come unused/confusing as the interfaces.
And yes you could add back into OSL
typedef ustringhash StringParam;
typedef ustringhash DeviceString;
typedef ustringhash ustringrep;
#define STRING_PARAMS(unquoted_string) OSL_HASHIFY(unquoted_string)

and reduce the textual differences in this PR.  Which might make back patching easier.  Although we started with a goal ripping off the band aid and just removing ustringrep and being explicit everywhere.

NOTE:  if a renderer chooses to use STRING_PARAMS(mystring), then it is responsible for instantiating a ustring of "mystring" on the host someplace so the reverse lookup of the hashed mystring exists in the ustring table.  This is partly why we recommend a rs_strdecls.h approach so the text of the string exists in one place that is #included to produce hashcodes on device and again to populate ustrings on the host.

My current thinking is to

Branch a dev-1.13 prior to this patch and use that as the binary-compatible basis for the 1.13 release family.
Merge this as-is into the new main (aka future 1.14), but instruct renderer authors not to sync with it quite yet, because it's currently rough sailing to switch a renderer.
Submit a separate PR afterwards that contains a fairly minimal set of additional changes to make the renderer side easier and more stageable, as well as to establish a 'ustringrep' type alias that more clearly distinguishes between the things that are irrevocably ustring hashes, and those that are "the representation for strings in shader execution" which we all know today, for most of us, is the same as a ustringhash, but makes it easier for a renderer to diverge and use a different representation.


[Bug]:

Is there an existing issue for the same bug?

[X] I have checked the existing issues.

Branch name
main
Commit ID
83803a7
Other environment information
Ubuntu

Actual behavior
When chatting with the bot, you can't add a space after words without a workaround
Expected behavior
The space bar should add a space after each word

Steps to reproduce
When chatting with the bot, start typing like normal, when you get to the end of the first word, pressing the spacebar doesn't add a space.  In order to get it to add a space, I have to go back one character and then press the spacebar.  This then requires you to readd the last letter of the first word and then make sure to remove the extra letter at the end once you finish.

Additional information
No response

Upgrade to the dev version of docker image. It's been fixed.


Input error?

Code<EMAIL_ADDRESS>Input : 11
Output : 539 <= Bug?

It looks like I broke this recently when I fixed another issue.


BREAKING CHANGE: xScheduledTask Duration/Interval Fields Changed to Strings - Fixes #85

Pull Request (PR) description
BREAKING CHANGE: This PR changes the parameters RepeatInterval, RepetitionDuration, RandomDelay, IdleWaitTimeout, IdleDuration, ExecutionTimeLimit and RestartInterval to string fields. These fields were [DateTime] fields, but this caused issues when applying MOF files that were created in a different time zone.
The code was also refactored to reduce code reuse and some HQRM changes were made. However, the resource still requires further changes to complete the HQRM conversion.
This Pull Request (PR) fixes the following issues:
Fixes #85
Task list:

[x] Change details added to Unreleased section of CHANGELOG.md?
[x] Added/updated documentation, comment-based help and descriptions in .schema.mof files where appropriate?
[x] Examples appropriately updated?
[x] New/changed code adheres to Style Guidelines?
[x] Unit and (optional) Integration tests created/updated where possible?

This change is

Codecov Report

Merging #98 into dev will increase coverage by <1%.
The diff coverage is 79%.

@@        Coverage Diff         @@
##           dev   #98    +/-   ##
==================================
+ Coverage   78%   78%   +<1%
==================================
  Files        6     6
  Lines      706   663    -43
==================================
- Hits       552   521    -31
+ Misses     154   142    -12

Closing this PR and will reopen it from a different branch so that all commits are squashed.


Documentation

Do you have any documentation, other than the API References?
I like you framework but, I must admit, it is hard to use it without any documentation.
Thanks in advance!

I know..... I can do a tutorial for you over skype if that helps!

I'll keep your Skype offer in mind because, for the moment, we are still doing some research about which algorithm we will use for our case.
We are also doing research about which framework we want to use. We should be fixed in more or less 2 weeks... if your offer is still available. ;)

Absolutely!


Styling Expander and TabItem headers

Hello!
Thank you for this great UI kit @kikipoulet
I am looking to style the header of both Expander and TabItem, do you have any guidance?

Hello !
I will replace the TextBlock with a contentcontrol in the controltemplate so you will be able to use this way :
https://pastebin.com/T0sK245d
If it sounds good to you

Thank you! that sounds amazing :)

I will update a new nuget package in 3-4 days when I will have finished a new control "Settings Layout", so I don't multiply nuget releases

You can try it in nuget 5.0.5

Thank you so much for your dedication!
Do you think also GroupBox Header can be extended this way in a future release?
Thank you!

Thank you so much for your dedication! Do you think also GroupBox Header can be extended this way in a future release? Thank you!

Done in 5.0.8 :)


ACK feature

This PR is based on https://github.com/mafintosh/hypercore/pull/130 but adds:

updated to the latest hypercore
adds many tests
uses an 'ack' event on the replication stream instead of emitting events through the peer instance (only available by listening on feed.on('peer-add', fn) and the peer instance isn't an EventEmitter in mainline anyways)
sets the length in an acknowledgement HAVE to 0

The original technique in the ACK PR mostly works but creates a bit of extra noise with false positives. This extra noise would probably not be too much of an issue in practice for many use cases because any ACK'd records would also be present on the remote machine (if the remote is being honest). But setting the length to 0 for ACKs avoids this noise. A better option might be to add a special type for ACK messages, but this patch works with that is currently available in hypercore-protocol.
There are some legacy cases for length=0 in HAVEs but the ACK cases are narrow and only reachable when ACK is enabled and a bitfield is not set on the HAVE, which the legacy branch seems to expect.
If this patch is accepted it would be good to document the convention it depends on, where a HAVE with length=0 and no bitfield is considered an ACK. This also means that ACKs are limited to acknowledging individual sequences, not whole ranges at a time (since the length field is set to zero). Negative values could be used, but at that point I think it would be better to have a dedicated ACK message type.

I think this PR would best be redone to add an optional boolean ack field to HAVE messages in hypercore protocol instead of setting length=0 on HAVEs. This would be less hacky and would also allow for ACKs over ranges of sequences.

Updated this patch to depend on https://github.com/mafintosh/hypercore-protocol/pull/37 so the CI ought to fail until that gets merged upstream.

7.6.0


chai1 jobs fail with i/o error, seem to successfully create output files though

Hey guys, so when I run step 3 of the chai1 protein prediction pipeline, the actual SBATCH jobs FAIL, but it looks like they produce a number of output files (.cif,.iptm,.ptm,.npz).
omegaFold_array_job_7622210_1.err produces this error:

 /tmp/slurmd/job7622530/slurm_script: line 45: echo: write error: Remote I/O error utils/plot.py:50: UserWarning: Attempting to set identical low and high xlims makes transformation singular; automatically expanding.   patch = ax.imshow( n.Parameter, or buffer, which is what 'get_attr' Nodes typically target   warnings.warn(f'Node {node} target {node.target} {atom} of {seen_qualname} does ' _node = gm.graph.get_attr(lifted_node)

THe other omegaFold job error file produces this error:

/people/kimd999/bin/Miniconda3-py3.12.4_Linux/lib/python3.12/site-packages/transformers/tokenization_utils_base.py:1601: FutureWarning: clean_up_tokenization_spaces was not set. It will be set to True by default. This behavior will be depracted in transformers v4.45, and will be then set to False by default. For more details check this issue: https://github.com/huggingface/transformers/issues/31884
warnings.warn(
^MLoading checkpoint shards:   0%|          | 0/2 [00:00<?, ?it/s]^MLoading checkpoint shards:  50%|█████     | 1/2 [00:03<00:03,  3.48s/it]^MLoading checkpoint shards: 100%|██████████| 2/2 [00:04<00:00,  1.81s/it]^MLoading checkpoint shards: 100%|██████████| 2/2 [00:04<00:00,  2.06s/it]
/tmp/slurmd/job7622210/slurm_script: line 45: echo: write error: Remote I/O error
xport/_unlift.py:58: UserWarning: Attempted to insert a get_attr Node with no underlying reference in the owning GraphModule! Call GraphModule.add_submodule to add the necessary submodule, GraphModule.add_parameter to add the necessary Parameter, or nn.Module.register_buffer to add the necessary buffer
getattr_node = gm.graph.get_attr(lifted_node)
/people/kimd999/bin/Miniconda3-py3.12.4_Linux/lib/python3.12/site-packages/torch/fx/graph.py:1460: UserWarning: Node _lifted_tensor_constant0_1 target _lifted_tensor_constant0 _lifted_tensor_constant0 of  does not reference an nn.Module, nn.Parameter, or buffer, which is what 'get_attr' Nodes typically target
warnings.warn(f'Node {node} target {node.target} {atom} of {seen_qualname} does '
/people/kimd999/bin/Miniconda3-py3.12.4_Linux/lib/python3.12/site-packages/torch/fx/graph.py:1460: UserWarning: Node _lifted_tensor_constant1_1 target _lifted_tensor_constant1 _lifted_tensor_constant1 of  does not reference an nn.Module, nn.Parameter, or buffer, which is what 'get_attr' Nodes typically target
warnings.warn(f'Node {node} target {node.target} {atom} of {seen_qualname} does '
Traceback (most recent call last):
Exception ignored in: <function tqdm.del at 0x2b6a552999e0>
Exception ignored in sys.unraisablehook:

I dont think this is due to an error in the python scripts.

Hm.
I wonder how it produced a number of output files (.cif,.iptm,.ptm,.npz) while its actual SBATCH jobs fails.
I never experienced this. Can you share what input files you used? working_example/input??

I am willing to reproduce your error once I have time. Unfortunately, I'm too busy this week..

Hm. I wonder how it produced a number of output files (.cif,.iptm,.ptm,.npz) while its actual SBATCH jobs failed. I never experienced this. Can you share what input files you used? working_example/input??

I used the template from the example. I will hold off on submitting the genome assembly jobs until this is nailed down or we are reasonably sure the job is completely successfully. I don't want to submit 1000's of jobs multiple times.


Object has no method _getCollectionName

I am receiving the above error and the following output:
TypeError: Object  has no method '_getCollectionName'
W20150728-18:13:33.322(-5)? (STDERR)   at Publication._getCollectionName   (/Users/rfines/Projects/eventr.io/.meteor/local/build/programs/server/packages/reywood_publish-composite.js:130:63)
W20150728-18:13:33.322(-5)? (STDERR)   at Publication.unpublish (/Users/rfines/Projects/eventr.io/.meteor/local/build/programs/server/packages/reywood_publish-composite.js:108:44)
W20150728-18:13:33.322(-5)? (STDERR)   at /Users/rfines/Projects/eventr.io/.meteor/local/build/programs/server/packages/reywood_publish-composite.js:186:21
W20150728-18:13:33.323(-5)? (STDERR)   at [object Object].eachChildPub (/Users/rfines/Projects/eventr.io/.meteor/local/build/programs/server/packages/reywood_publish-composite.js:282:9)
W20150728-18:13:33.323(-5)? (STDERR)   at [object Object].eachChildPub (/Users/rfines/Projects/eventr.io/.meteor/local/build/programs/server/packages/reywood_publish-composite.js:240:13)
W20150728-18:13:33.323(-5)? (STDERR)   at Publication._unpublishChildrenOf (/Users/rfines/Projects/eventr.io/.meteor/local/build/programs/server/packages/reywood_publish-composite.js:185:24)
W20150728-18:13:33.323(-5)? (STDERR)   at Publication._removeDoc (/Users/rfines/Projects/eventr.io/.meteor/local/build/programs/server/packages/reywood_publish-composite.js:178:10)
W20150728-18:13:33.323(-5)? (STDERR)   at Publication.<anonymous> (/Users/rfines/Projects/eventr.io/.meteor/local/build/programs/server/packages/reywood_publish-composite.js:150:14)
W20150728-18:13:33.324(-5)? (STDERR)   at Publication.execCallbackOnDoc (/Users/rfines/Projects/eventr.io/.meteor/local/build/programs/server/packages/reywood_publish-composite.js:232:18)
W20150728-18:13:33.324(-5)? (STDERR)   at Function._.each._.forEach (/Users/rfines/Projects/eventr.io/.meteor/local/build/programs/server/packages/underscore.js:147:22)
W20150728-18:13:33.324(-5)? (STDERR)   at [object Object].eachDocument (/Users/rfines/Projects/eventr.io/.meteor/local/build/programs/server/packages/reywood_publish-composite.js:231:7)
W20150728-18:13:33.324(-5)? (STDERR)   at Publication._unpublishAllDocuments (/Users/rfines/Projects/eventr.io/.meteor/local/build/programs/server/packages/reywood_publish-composite.js:149:24)
W20150728-18:13:33.324(-5)? (STDERR)   at Publication.unpublish (/Users/rfines/Projects/eventr.io/.meteor/local/build/programs/server/packages/reywood_publish-composite.js:110:10)
W20150728-18:13:33.324(-5)? (STDERR)   at /Users/rfines/Projects/eventr.io/.meteor/local/build/programs/server/packages/reywood_publish-composite.js:427:17
W20150728-18:13:33.324(-5)? (STDERR)   at /Users/rfines/Projects/eventr.io/.meteor/local/build/programs/server/packages/ddp.js:1882:7
W20150728-18:13:33.324(-5)? (STDERR)   at Array.forEach (native)
W20150728-18:13:33.324(-5)? (STDERR)   at Function._.each._.forEach (/Users/rfines/Projects/eventr.io/.meteor/local/build/programs/server/packages/underscore.js:139:11)
W20150728-18:13:33.325(-5)? (STDERR)   at [object Object]._.extend._callStopCallbacks (/Users/rfines/Projects/eventr.io/.meteor/local/build/programs/server/packages/ddp.js:1881:7)
W20150728-18:13:33.325(-5)? (STDERR)   at [object Object]._.extend._deactivate (/Users/rfines/Projects/eventr.io/.meteor/local/build/programs/server/packages/ddp.js:1871:10)
W20150728-18:13:33.325(-5)? (STDERR)   at [object Object].subscriptionProto._deactivate (/Users/rfines/Projects/eventr.io/.meteor/local/build/programs/server/packages/meteorhacks_kadira.js:2646:24)
W20150728-18:13:33.325(-5)? (STDERR)   at [object Object]._.extend._stopSubscription (/Users/rfines/Projects/eventr.io/.meteor/local/build/programs/server/packages/ddp.js:1609:30)
W20150728-18:13:33.325(-5)? (STDERR)   at [object Object]._.extend.protocol_handlers.unsub (/Users/rfines/Projects/eventr.io/.meteor/local/build/programs/server/packages/ddp.js:1417:12)
W20150728-18:13:33.325(-5)? (STDERR)   at [object Object].sessionProto.protocol_handlers.unsub (/Users/rfines/Projects/eventr.io/.meteor/local/build/programs/server/packages/meteorhacks_kadira.js:2464:40)
W20150728-18:13:33.325(-5)? (STDERR)   at /Users/rfines/Projects/eventr.io/.meteor/local/build/programs/server/packages/ddp.js:1374:43

from a publication that looks like:
Meteor.publishComposite('estimates', function() {
return {
    find: function() {

    	var c = Companies.findOne({$or:[{
			createdBy:this.userId
		},{
			authorizedUsers:{$in:[this.userId]}
		}]});
		if(c){
      		return Estimates.find({$or:[{vendorApprover:c._id},{exhibitorApprover:c._id}]});
      	}
    },
    children: [
      	{
        	find: function(estimate) {
          		return Files.find({_id: {$in: estimate.files || []}});
        	}
      	},

  		{
        	find: function(estimate) {
          		return CartItems.find({_id:estimate.cartItemId});
        	},
        	children:[
        		{
	        		find:function(ci, estimate){
	        			return Booths.find({_id: ci.boothId});
	        		}
        		},
        		{
	        		find:function(ci, estimate){
	        			return Products.find({_id: ci.product._id});
	        		}
	        	},
	        	{
	        		find:function(ci, estimate){
        				return Shows.find({_id:ci.showId});
        			}
	        	},
	        	{
		        	find: function(ci,estimate) {
		          		return Carts.find({_id: ci.cartId});
		        	},

		      	},
        	]

  		},
  		{
      		find:function(estimate){
      			return Companies.find({_id:{$in:[estimate.vendorApprover, estimate.exhibitorApprover]}});
      		}
		},
	]
}
});

It is dramatically affecting the loading times of the page it is on, though the documents do eventually get published to the client, it takes a minute or so for them to appear. Can you give me any guidance on what I might be doing wrong?

I have created a (gist)[https://gist.github.com/rfines/c0cde63eb4198da22d11] that has some more console output for you to look over if it is helpful. I recently updated my packages and this started happening at almost every composite publication that the client subscribes to.  After I visited the page once and refresh or return to the page, the page renders as expected.
I would appreciate any help you can give me.

Apparently returning nothing from a find function is not the same as returning a falsey value. Also I couldn't return a cursor that I knew to be empty, something like:
return Files.find({_id:"null"});

That doesn't work but
return;

does seem to make the error go away. So I had to change all of my publishComposite publications that had cases that didn't return anything from the find function to have an else case like so:
if(somecaseistrue){
    return Files.find({somefield:somevalue});
}else{
    return;
}

Just thought I would update this for anyone who might stumble upon it in the future.


nixos/webhook: init

Add a module for a webhook service

Motivation for this change
I needed to setup a webhook service, so here it is.
Things done

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

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

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

Superseded by https://github.com/NixOS/nixpkgs/pull/205636


Request/Response Forward Asynchronicity

Describe the bug
I believe that Kroxylicious ought to support the use-case where requests and responses are delayed until some asynchronous work completes.
My use-case for this is the interaction with external systems (databases, REST APIs etc).  One wouldn't want to tie up the Kroxylicious thread-pool awaiting a response from an external system.  The thread could be processing work for another connection.
As a filter author, I would expect to be able to organise for the forward to be done later.   Kroxylicious would still need to maintain request/response ordering.
As discovered by #271, currently that usage pattern doesn't work.
    @Override
    public void onRequest(ApiKeys apiKey, RequestHeaderData header, ApiMessage body, KrpcFilterContext filterContext) {

       var someFuture = someExternalActionThatReturnsFuture();
       someFuture.thenApply(r -> {
           filterContext.forwardRequest(header, body)
       });
    }

To Reproduce
See integration test being added by the PR.
https://github.com/kroxylicious/kroxylicious/blob/4cc5fd0c0a3f72c01de38a3632225cf1c9de80b3/integrationtests/src/test/java/io/kroxylicious/proxy/KrpcFilterIT.java#L206
Expected behavior
When a filter chain opts not to completely forward a request to the upstream Kroxylicious should respond by not reading further from the downstream until the chain has been completed.  Similarly, in the opposite direction, if a filter chain opts not to  completely forward a response to the downstream, Kroxylicious must not read further from the upstream until the chain has completed.
Kroxylicious must not allow requests or response to leap frog as that behaviour could result in changes to record ordering.
Additional context
Add any other context about the problem here.

@robobario I haven't made much progress today. I had hoped by controlling the channel's autoread settings, I could prevent the pipeline processing until we were ready to continue.  That doesn't work because the codec optimistically decodes the whole bytebuffer and those requests get processed regardless.
I found setSingleDecode and realised our decode has a bug which means it doesn't respect that request.  However, even with that fixed, something is still triggering read.    Even if this was to work, I don't think we'd want setSingleDecode(true) as there are warnings about performance.
We could add handlers that is prepared to queue requests from the downstream (and responses from the upstream) when a request is still in flight.
However, I'm having second thoughts about the whole thing.  Maybe I'm fixating on something that's not so important. Maybe we just accept the fact that netty thread will block? WDYT?

I think the issue is correct, being able to support async work from the filters is useful for the likes of topic encryption. But maybe it's good enough to get started with synchronous-only and we can find a way to support async later. If we start with sync only we should add it to the filter javadoc and maybe add some code to check that the KrpcFilterContext has been called after we invoke the filter code, so we can warn users that they haven't synchronously called a method on KrpcFilterContext.
Another idea could be to make the FilterHandler do the ordering using a chain of Futures. The contract would be that all Filters must call a method on the KrpcFilterContext so that a future can be completed, driving the FilterHandler.
Rough example here: https://github.com/robobario/kproxy/commit/02c04b8b0384a30f2cf95b277fea41a93ee893f6

If we go with synchronous only for now, I wonder if we should enforce synchronous work in the Filters, rather than just have it be a convention. We could add a discard method to the KrpcFilterContext for the case where we want to drop the message. Then we could track on the Context when a method like forwardRequest , discard, abortConnection, sendRequest is called with an atomic. Then check in the FilterHandler if something completed it after the invoke and it could fail noisily if the Filter author hasn't explicitly taken some action.

So on #271, we've switched to using synchronous reconciliation, at least for now.  That allows 271 to merge.

Another idea could be to make the FilterHandler do the ordering using a chain of Futures. The contract would be that all Filters must call a method on the KrpcFilterContext so that a future can be completed, driving the FilterHandler.

I'm not getting how the future ideas stops on request (or response) overtaking another.  What am I missing?

Then we could track on the Context when a method like forwardRequest , discard, abortConnection,

Just on the discard idea - would it ever make sense for kroxy to drop a kafka request?  I think it would result in an illegal state in all circumstances except publish acks=0.

So on #271, we've switched to using synchronous reconciliation, at least for now. That allows 271 to merge.

Another idea could be to make the FilterHandler do the ordering using a chain of Futures. The contract would be that all Filters must call a method on the KrpcFilterContext so that a future can be completed, driving the FilterHandler.

It's an implementation of queuing. A FilterHandler will only process the next read when the previous read completes by calling some method on the KrpcFilterContext, similar with write. Perhaps it could be combined with toggling autoread. Maybe FilterAuthors would have to signal that they are deferring completion? Like a suspend/detach type method on KrpcFilterContext that would toggle autoread and instruct the FilterHandler to start queuing requests.

Just on the discard idea - would it ever make sense for kroxy to drop a kafka request? I think it would result in an illegal state in all circumstances except publish acks=0.

True, better to not make it look like a supported mechanism in the API

@franz1981 would you have any words of Netty wisdom to offer?  Is there a standard Netty pattern for solving this type of issue?

Perhaps it could be combined with toggling autoread

I have discarded such option in the initial implementation of the proxy because of great drawback in term of performance. Autoread force interacting the the SO and still it won't prevent a full already batchy read to suspend really.
I am in PTO today, but probably what you need is a non blocking semaphore primitive or just make uses of what mutiny-like/RxJava promote to perform configurable level of non blocking backpressure. But still, if the unit of work is just one, and it backpropagate till the channel to drain, the risk is a great performance penalty.
I will look at this next week again, with a non-PTO brain, I promise :P

Might be worth retro-fitting/updating this Issue with some of the ideas that are evolving as we try to implement this:
The goal is to enable users to do some amount of async work in a non-netty Thread, without breaking the contract that messages from the client will be delivered to the upstream broker in order, and responses to the client will be sent in order.
Option 1 (where we are heading): make the Filter APIs asynchronous
class PrefixingFilter implements RequestFilter {
    @Override
    public CompletionStage<RequestFilterResult> onRequest(ApiKeys apiKey,
                                                          RequestHeaderData header,
                                                          ApiMessage body,
                                                          KrpcFilterContext filterContext) {
       var someFuture = someExternalActionThatReturnsFuture();
       return someFuture.thenApply(r -> {
           return filterContext.forwardRequest(header, body);
       });
    }
}

Instead of instructing the KrpcFilterContext to forward, we use the KrpcFilterContext to obtain a CompletionStage<RequestFilterResult> and return that from our Filter methods.
A benefit of doing it this way is that it can be composed with the existing async APIs available on KrpcFilterContext, namely the sendRequest completion stage. We can chain off the CompletionStage<ApiMessage> and return the resulting stage if we want to wait for the "additional request" to complete before forwarding. If we do not wish to delay forwarding we can return a completed forward stage immediately. So we have consistency.
Another benefit is that this API (requiring a single return) pushes the Filter Author to make one decision about what will eventually be done in reaction to the message. With the existing KrpcFIlterContext there is ambiguity about how it can be used. Can it's methods be called multiple times, when can I call closeConnection, can I call any of the methods from another thread, is it legal to call no methods? With a Result object and Builder we can organise it so that Authors can see more easily which actions are permitted in a given context. We can build a safer API this way.
Option 2 (original idea): allow users to call the existing methods on the KrpcFilterContext asynchronously
    @Override
    public void onRequest(ApiKeys apiKey, RequestHeaderData header, ApiMessage body, KrpcFilterContext filterContext) {

       var someFuture = someExternalActionThatReturnsFuture();
       someFuture.thenApply(r -> {
           filterContext.forwardRequest(header, body)
       });
    }

This is quite similar to returning a CompletionStage, in that the KrpcFilterContext behaves as a Promise.  Users can complete it with the existing methods either immediately or asynchronously. However as discussed above there are far more ambiguities.
A user can omit calling any methods on the context and the promise will never complete (I think this is a different class of problem from a user deciding to do some async work). In option 1 they are herded towards making a decision (and we can fail fast if they do something funky like return an empty future or null). To discriminate between user error and awaiting some future result using this api, we could introduce a method like KrpcFilterContext#defer() and require that they call it if going async, which is error prone.
A user can call forwardRequest only while handling a request, but forwardResponse can be used to short-circuit during request handling, or to forward during response handling. Calling forwardRequest at the wrong time is an error. By introducing the Result classes in option 1 we can remove this class of errors because they cannot construct a ResponseFilterResult that forwards a request. We can also more smoothly add meaningful naming like shortcircuitResponse in option 1, where here we have opted to re-use the existing method to keep the API smaller.
Users can also call the forward methods more than once, which they cannot in option 1. They can do odd things like closeConnection then try to forward. With the option 1 API we can control these interactions so users can do things like forward response then close connection but not the other way around.

#494 addressed only the API.  Follow up work will resolve the defect that causes messages to go out of order.


Cursor-type fix

Would fix the Issue #55 with the cursor-type of form-elements.

https://github.com/connors/photon/issues/55#issuecomment-150352573


Bump deps + fix rubocop

We can potentially remove 2.7 compatibility too, but need to bump version then

@ajn I'd rather drop 2.7


i18n(pt-BR): Update nav.ts translation

Description (required)
include missing entry in i18n/pt-br/nav.ts

Lunaria Status Overview
🌕 This pull request will trigger status changes.

Learn more
By default, every PR changing files present in the Lunaria configuration's files property will be considered and trigger status changes accordingly.
You can change this by adding one of the keywords present in the ignoreKeywords property in your Lunaria configuration file in the PR's title (ignoring all files) or by including a tracker directive in the merged commit's description.

Tracked Files

Locale
File
Note

pt-br
nav.ts
Localization changed, will be marked as complete.

Warnings reference

Icon
Description

🔄
The source for this localization has been updated since the creation of this pull request, make sure all changes in the source have been applied.


Cap max graceful incoming disconnects

closes #6079
basically I used Counter(<()>) which gave me strong_count, which I used to check the reference count at different points of the counter, and if these reference count exceeded the specified MAX_GRACEFUL_DISCONNECTS(currently set to 15) I disconnected all active sessions otherwise I created the clone of the counter inside async block for spawn, which will automatically drop this clone after block execution otherwise the strong_count of counter will increase.
This is a draft solution, I am open to discuss further changes and improvements.

@mattsse I kindly review this and suggest further changes.
Thank You


PLEASE deprecate this repo and link to Airrecord

As already reported in some issues, some of the core functionalities of this repo are broken (e.g. updates, deletes), so please link to a repo that's actually being maintained and isn't broken – for example https://github.com/sirupsen/airrecord.
I hope this will prevent others from investing time and effort in a dead-end like we did :)
Thank you!
cc @syrnick

Thanks @arturadib. I've been banging my head trying to figure out why the updates aren't working. Pretty ridiculous.

The plan is to look for maintainers and simplify this asap. It will be a minimalistic API client, but it should definitely be a working one. The current API makes certain things impossible (e.g. not sending back formulas), so the API will change.
https://github.com/sirupsen/airrecord is great and we'll definitely improve it's visibility. It does have issues(e.g. incorrect escaping of table names v.s. https://github.com/Airtable/airtable-ruby/commit/3cc21eaf699be2eec2c0c135c042f61508cff878) and provides certain ruby magic (e.g. column_mappings) that's very helpful and works most of the times, but is not guaranteed to work always.

@syrnick Airrecord uses the Faraday escaping. Is that incorrect? It's worked for me in the cases I've tried.
I agree that column mappings are problematic. Airtable releasing a schema would be nice. However, doesn't this library basically do the same thing? I'm fairly sure that's how I was inspired to do it. In what cases has it not worked for you?

@syrnick -- Seems like "ASAP" came and went, please consider deprecating this repository until you find a maintainer.

FWIW the confusing symbol API has been deprecated (https://github.com/sirupsen/airrecord/pull/33) and will be fully removed in 1.0.0 which is due for release soon with a bunch of other improvements (cc @chrisfrank).

Today's release of Airrecord 1.0 removes the magic symbol API, throttles requests by default to respect Airtable's rate limit, and encodes URLs in compliance with the spec @syrnick linked to.
I share @syrnick's wish for an officially-supported, minimalistic ruby client, but respectfully I think "minimalistic" is a better description of Airrecord than airtable-ruby at this point. ActiveSupport is an enormous dependency that changes the behavior of Ruby's core classes, and it makes airtable-ruby a costly choice in non-Rails contexts.
Also, to echo @sirupsen above, although Airrecord makes it possible to write ORM-style code, it's also perfectly happy being a small, functional-style API client, and the forthcoming 1.1 release will augment the functional API to more closely mimic the official Node client.


[Q] Intended use of Optional and serialization problems

Is there an existing issue for this?

[X] I have searched the existing issues

Describe the bug
Having a Optional parameter on a model I share between input and objecttypes causes an error in hotchocolate runtime
Boolean cannot serialize the given value.
Should Optional<T> ONLY be used in input type objects alone? Should they even be something I'd be including in any of my classes?
Steps to reproduce

Modify original quick start sample (book/author)

// Book.cs
public class Book
    {
        public string Title { get; set; }
        public Optional<bool?> IsFavorite { get; set; }
        public Author Author { get; set; }
    }

//Query.cs
public class Query
    {
        public Book GetBook() => new Book
        {
            Title = "C# In Depth",
            Author = new Author
            {
                Name = "John Skeet",
            }
        };
    }

Query for book information

    {
  book{
    title
    isFavorite
    author{
      name
    }
  }
}

Observe errors in response

{
  "errors": [
    {
      "message": "Boolean cannot serialize the given value.",
      "locations": [
        {
          "line": 4,
          "column": 5
        }
      ],
      "path": [
        "book",
        "isFavorite"
      ],
      "extensions": {
        "actualValue": "unspecified",
        "actualType": "HotChocolate.Optional`1[[System.Nullable`1[[System.Boolean, System.Private.CoreLib, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]], System.Private.CoreLib, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]",
        "code": "EXEC_INVALID_LEAF_VALUE"
      }
    }
  ],

Relevant log output
No response
Additional Context?
I feel like mention in documentation on Optional<T> is minimal, and I'm unclear HOW they should be used. Should this be purely somethign that exists in input types themselves and no where else? If that's the case, why does hotchocolate require you to provide a value for an Optional<bool> or provide a default? Seems like Optional in the name means providing it should be optional, and that within the query, the optional value would just not be specified or whatever.
Product
Hot Chocolate
Version
12.7.0

Is optional even really supported anymore? Seems like documentation referenced it once that I could find, and its brief mentioned showed it being used in method parameters, or as properties on input objects...
If its supported, I'd love to see a real world application... or if someone could give me an idea of how people build mutation input types with fields that can be optionally provided, and how the wire that up... I'd be happy to contribute documentation


Issue9

This code does a much better job of handling adding/removing nets. There's still something wrong about how we're storing our ban space vs. how ipset is as we have too many failures to add/remove nets. But this now keeps doing what it's supposed to instead of crashing the netban.net thread. So we're merging this to main, as it's better than current state, but also going to open a new issue to come back and improve the math.

Created #13 as promised.


Hoverfly mismatch

Does hoverfly point out exact location within a response json where is a mismatch if I modify the json file?

When hoverfly can't find a match for your request in simulate mode, it will return a response containing the following info:

the request you've made.
the closest request matcher.
which part of the request wasn't matched.
the response you would get if there is a match.


Handle OperationTimeouts

Per http://msdn.microsoft.com/en-us/library/cc251676.aspx:
"If no output is available before the wsman:OperationTimeout expires, the server MUST return a WSManFault with the Code attribute equal to "2150858793". When the client receives this fault, it SHOULD issue another Receive request."
Right now, winrm sees the fault and raises a ruby error.  This means all remote scripts must be crafted to make sure they provide output at least once a minute (winrm uses an OperationTimeout of 60s).  Idealy, winrm would handle the Operation Timeout cleanly.

Fixed in 1.3


Issue with link to doc page on creating Azure container registry

In the initial example given in this document, there's a link within the following text: "make sure that you have pre-created the registry in Azure portal."  This link is broken.  Examining the link address shows that the intended link was pasted inside another link, perhaps.  (Or maybe this link once existed in this format and now is no longer functional?)  In any event, clicking on the link produces a 404 at this point.
It looks like the intended target was: https://docs.microsoft.com/en-us/azure/container-registry/container-registry-get-started-portal

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: e825c07d-2168-c0aa-782a-ef6f9c7ba95e
Version Independent ID: 5cb6926b-215a-bf89-8e63-b2e1129e41df
Content: Docker
Content Source: docs/pipelines/languages/docker.md
Product: devops
GitHub Login: @andyjlewis
Microsoft Alias: alewis

Thanks for reporting the issue. Checked just now and the link seems to be working.

Interesting.  It still produces a 404 for me.
To be clear - the broken link in the source document is this: https://github.com/MicrosoftDocs/vsts-docs/blob/master/azure/container-registry/container-registry-get-started-portal
That location doesn't appear to exist.

I see that too. But all instances of the link seem to be working OK in the rendered page: https://docs.microsoft.com/en-us/azure/devops/pipelines/languages/docker


Endless loop

Endless loop (like while(true)) makes whole computer freeze. Is there any solution? Endless loop is easy to create (by mistake of course).

Hey! What do mean with that?

When I do endless loop, any kind of endless loop, let's say:
@while $i > 0 {   .item-#{$i} { width: 2em * $i; }   $j: $i - 2; }
Here we have typo which causes $i to not change it's value.
This kind of loop freezes my computer. Linux x64 Elementary (Ubuntu), Atom editor.
Maybe there is a solution to stop executing after X seconds?

Ah, okay! Yes, you are right! I will have a look at how this feature can be embedded!

I published version 0.13.0 right now. It has a timeout option to solve this issue.


fix: updated create_fllow_activity script

Updated the incorrect output being printed.
Also added a trivial check if wget is not installed, only then proceed to install it.

Already signed CLA. Unsure why doesn't like it.


Refactored the component and Added a new property (swipeThreshold)

Thanks for the module!
We're using it in an iOS & Android app and the only issue we had with it was that users had to swipe at least half a page to go to the previous or next page. I wanted to add a swipeThreshold property that lets us adjust that behaviour and in order to do that I had to change the logic a bit. Those changes added up and I ended up refactoring most of the component.
It's tested on iOS (simulator and device) and Android (emulator).

@ardalann this looks great! I'll merge and publish on npm 👍

@ardalann this has been published in v1.1.0, thanks again!


LOADING Redis is loading the dataset in memory

Regarding this issue, Redisson has previously fixed it, but the fixed code will cause a private loop when there is only one slave library. Because during the loading data period, if there is only one slave library, Redisson will only retrieve that slave library. But it will also report RedisLoadingException. The code is as follows:
if (cause instanceof RedisLoadingException) {
    RedisConnection connection = connectionFuture.getNow(null);
    if (connection != null) {
        ClientConnectionsEntry ce = entry.getEntry(connection.getRedisClient());
        if (ce != null && ce.getNodeType() == NodeType.SLAVE) {
            source = new NodeSource(entry.getClient());
            execute();
            return;
        }
    }
}

The thorough approach is to change the 'NodeType.SLAVE' in the code to 'NodeType.MASTER'. Can the fix be established at 3.20.1 and the new tag be changed to 3.20.2 ？

@mrniko Thanks。


Variants about MoCo and Prototype

In your code, there are some variants based on MoCo ("eg, ContrastiveROIHeadsWithStorage") or Prototype ("eg, ContrastiveROIHeadsWithPrototype"). What is the final result (nAP) of these two variants? Will it be much lower than the optimal result reported in the paper?

The prototype turns out to be not helping.
The momentum encoding seems to be a bit lower than reported in the paper, tested on VOC Split 1 and get nAP=61+. But the code might not be necessary with the one uploaded here (shouldn't have uploaded those ..).

In your code:
_C.MODEL.ROI_BOX_HEAD.CONTRASTIVE_BRANCH.PROTOTYPE.PATH = '' self.prototype_path              =  cfg.MODEL.ROI_BOX_HEAD.CONTRASTIVE_BRANCH.PROTOTYPE.PATH prototype_tensor = torch.load(self.prototype_path)  # [num_classes+1, 1024]
Is PROTOTYPE.PATH empty?

In your code:
_C.MODEL.ROI_BOX_HEAD.CONTRASTIVE_BRANCH.PROTOTYPE.PATH = ''
self.prototype_path = cfg.MODEL.ROI_BOX_HEAD.CONTRASTIVE_BRANCH.PROTOTYPE.PATH
prototype_tensor = torch.load(self.prototype_path) # [num_classes+1, 1024]
Is PROTOTYPE.PATH empty?


boost: if isMips use the "cross compile" codepath unconditionally

This commit is needed in order for native builds of nix to succeed on mips.
Description of changes
boost-context changed its name for mips from "mips1" to "mips" in this commit:
https://github.com/boostorg/context/commit/6edc8184a7136de4603a6f903d9b9b864ca9cf57
however the native-build code to detect the local architecture still reports "mips1":
https://github.com/boostorg/boost/blob/67c074b249538cf441724f9bbb3929d0f6b4f333/boostcpp.jam#L637
Therefore native builds of boost-context on mips must specify architecture= explicitly; without this you will get link failures "undefined reference to jump_fcontext" in code that uses boost-context.
Currently the "cross compile" codepath, which provides explicit    architecture/abi/address-model/binary-format/os parameters, is    prefixed by this comment:
# TODO: make this unconditional

This commit does so, at least if isMips.
Things done

Built on platform(s)

[x] mips64el-linux (still running, but got far enough to be sure the problem is fixed)

[ ] 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/)
[x] Fits CONTRIBUTING.md.

Ping...

@hjones2199 you are listed as the maintainer for boost; do you approve of this?

So uh, can you also ask upstream to do something about that? :)


Convert the complex functions in the same way as the single-precision ones

The library by Fullerton contains a limited set of complex functions. These should be converted into modern Fortran as well.

Conversion done, test program shows the same results. Some checking left to do (no conflicts because of the names in the "REAL" versions?)


Fill skips x =1 on canvas

Hi!
Im working with a very small canvas 32x32 for a pixel art web app. All works as expected but the big issue is that the algorithm seems to skip the first pixel in every row. Any thoughts on how to fix it?
Thanks in advance

Hi, Can you please post a code sample and I'll review?  Thanks!

`

`
You might have to zoom to see the red line on the left side of the canvas. I dont understand the algorithm at all but I managed to fix the problem by just subtracting 1 from the left bound. It doesnt seem to break the function for filling enclosed pixels.
line 22 : mw = parseInt(i/w2)*w2-1; //left bound


Clicking header cell bypasses checks inside of isRowSelectable

Say I wanted to limit the number of checked rows to 5. I could do that using isRowSelectable, and it works - until I check the checkbox header. Example:
https://codesandbox.io/s/muidatatables-custom-toolbar-qg0i9
Expected Behavior
Selecting the header would not bypass checks made inside of isRowSelectable.
Current Behavior
When the checkbox header is selected, it runs isRowSelectable for each row, but for each function call it uses the prevSelectedRows object from the previous state and doesn't factor in that a row may have been added. This means it can bypass limits/checks a developer has placed inside of isRowSelected.
The code should instead create a copy of the selectedRows object and update it after each isRowSelected call to add the row if it can be selected.
Steps to Reproduce (for bugs)

Open https://codesandbox.io/s/muidatatables-custom-toolbar-qg0i9
Try to select more than 5 rows, see that the limit is in place.
Toggle the header checkbox a few times and see that it allows you to select more than 5 rows.

Your Environment

Tech
Version

Material-UI
3.2.2

MUI-datatables
2.9.0

React
16.4

browser
Crome

etc

IMHO #882 doesn't fix the issue at all. There's still no way to set a limit to multiple selection count.
My opinion is that the multiple selection should at least call a callback passing the current selectedRows. This callback should return the list of allowed selectable rows.
We already have onRowsSelect  which could be used for that but it doesn't handle the result value.


Does not support upper case characters in data-fields

Is your feature request related to a problem? Please describe.
"It won't allow uppercase letters... quit immediately. YOLOL is case insensitive, there's no reason to block uppercase letters. Especially since it's a very commonly used: leftThruster..."
From: https://forum.starbasegame.com/threads/tool-yoloxide-web-a-mostly-functional-web-based-yolol-emulator.149/#post-1427
Describe the solution you'd like
You should be able to make any number of variables with different cases that all point to the same lower case variable internally.
Describe alternatives you've considered
I considered only allowing one variable to point to a data field but concluded it was unintuitive.

Fixed in version 0.3.0 after the complete rework of data field reducers.


sample at some time vs sample on some interval (~ moving_average)

I would like to prepare a PR to improve the efficiency of moving_average with pandas=True. I have already the code but I am wondering how to call the function that does this.
More generally, when converting the traces to some regularly spaced pandas time-series, we can either:

on each specific datetime, give the value of the TimeSeries ==> the current TimeSeries.sample function
on each interval [datetime, datetime+sampling_period), give the average (or the max, min, median, ...) of the TimeSeries in a similar way as the groupyby().agg() functionality of pandas ==> this can't be called moving_average as a) it does not allow moving averages, b) it is not limited to average (as we have max, min, median, etc).

What name could be use for this "sample on an interval through an 'aggregation' function" ?
Would sample_interval makes sense ? would the sample be renamed to sample_instant ?

Having a pandas keyword argument on moving_average is another good idea! Thanks for making these issues and pull requests.
On the more general case, I think this might be accomplished by making a function that can do arbitrary convolutions (of which moving average is a special case). That was something that @vlsd mentioned at some point, but we decided against it for the time being since it started to seem too "heavy" for traces in it's current state.
If you're interesting in taking a crack, I think this article is a good resource.

The need is much more basic than convolutions (which are relatively expensive operations AFAIK).
It is just to transform (without moving averages) the TimeSeries to the equivalent pandas Series in a very efficient way.


ValueError: invalid literal for int() with base 10: '=4'

Nuitka-Options: Used command line options: --onefile --mingw64 --lto=yes --disable-ccache --jobs==4 setkaNG.py
Nuitka: Starting Python compilation with Nuitka '2.1' on Python '3.11' commercial grade 'not installed'.
Nuitka-Plugins:WARNING: anti-bloat: Undesirable import of 'numba' in 'pandas.core._numba.extensions' (at
Nuitka-Plugins:WARNING: 'C:\ProgramData\anaconda3\Lib\site-packages\pandas\core\_numba\extensions.py:16') encountered. It may slow down compilation.
Nuitka-Plugins:WARNING:     Complex topic! More information can be found at https://nuitka.net/info/unwanted-module.html
Nuitka-Plugins:WARNING: anti-bloat: Undesirable import of 'numba' in 'pandas.core._numba.extensions' (at
Nuitka-Plugins:WARNING: 'C:\ProgramData\anaconda3\Lib\site-packages\pandas\core\_numba\extensions.py:17') encountered. It may slow down compilation.
Nuitka-Plugins:WARNING:     Complex topic! More information can be found at https://nuitka.net/info/unwanted-module.html
Nuitka-Plugins:WARNING: anti-bloat: Undesirable import of 'numba' in 'pandas.core._numba.extensions' (at
Nuitka-Plugins:WARNING: 'C:\ProgramData\anaconda3\Lib\site-packages\pandas\core\_numba\extensions.py:18') encountered. It may slow down compilation.
Nuitka-Plugins:WARNING:     Complex topic! More information can be found at https://nuitka.net/info/unwanted-module.html
Nuitka-Plugins:WARNING: anti-bloat: Undesirable import of 'numba' in 'pandas.core._numba.extensions' (at
Nuitka-Plugins:WARNING: 'C:\ProgramData\anaconda3\Lib\site-packages\pandas\core\_numba\extensions.py:18') encountered. It may slow down compilation.
Nuitka-Plugins:WARNING:     Complex topic! More information can be found at https://nuitka.net/info/unwanted-module.html
Nuitka-Plugins:WARNING: anti-bloat: Undesirable import of 'numba' in 'pandas.core._numba.extensions' (at
Nuitka-Plugins:WARNING: 'C:\ProgramData\anaconda3\Lib\site-packages\pandas\core\_numba\extensions.py:19') encountered. It may slow down compilation.
Nuitka-Plugins:WARNING:     Complex topic! More information can be found at https://nuitka.net/info/unwanted-module.html
Nuitka-Plugins:WARNING: anti-bloat: Undesirable import of 'numba' in 'pandas.core._numba.extensions' (at
Nuitka-Plugins:WARNING: 'C:\ProgramData\anaconda3\Lib\site-packages\pandas\core\_numba\extensions.py:19') encountered. It may slow down compilation.
Nuitka-Plugins:WARNING:     Complex topic! More information can be found at https://nuitka.net/info/unwanted-module.html
Nuitka-Plugins:WARNING: anti-bloat: Undesirable import of 'numba' in 'pandas.core._numba.extensions' (at
Nuitka-Plugins:WARNING: 'C:\ProgramData\anaconda3\Lib\site-packages\pandas\core\_numba\extensions.py:20') encountered. It may slow down compilation.
Nuitka-Plugins:WARNING:     Complex topic! More information can be found at https://nuitka.net/info/unwanted-module.html
Nuitka-Plugins:WARNING: anti-bloat: Undesirable import of 'numba' in 'pandas.core._numba.extensions' (at
Nuitka-Plugins:WARNING: 'C:\ProgramData\anaconda3\Lib\site-packages\pandas\core\_numba\extensions.py:33') encountered. It may slow down compilation.
Nuitka-Plugins:WARNING:     Complex topic! More information can be found at https://nuitka.net/info/unwanted-module.html
Nuitka-Plugins:WARNING: anti-bloat: Undesirable import of 'numba' in 'pandas.core._numba.extensions' (at
Nuitka-Plugins:WARNING: 'C:\ProgramData\anaconda3\Lib\site-packages\pandas\core\_numba\extensions.py:257') encountered. It may slow down compilation.
Nuitka-Plugins:WARNING:     Complex topic! More information can be found at https://nuitka.net/info/unwanted-module.html
Nuitka-Plugins:WARNING: options-nanny: Using module 'numba' (version 0.59.0) with incomplete support due to untrue condition 'not use_numba and standalone': Numba is not yet
Nuitka-Plugins:WARNING: fully working with Nuitka standalone, try to use '--noinclude-numba-mode=nofollow', but it may fail.
Nuitka-Plugins:WARNING: options-nanny: Module has parameter: Numba JIT is disabled by default in standalone mode, make a choice explicit with
Nuitka-Plugins:WARNING: '--module-parameter=numba-disable-jit=yes|no'
Nuitka-Plugins:anti-bloat: Not including 'PIL.ImageQt' automatically in order to avoid bloat, but this may cause: PIL will not be able to create Qt image objects.
Nuitka-Plugins:anti-bloat: Not including 'qtpy' automatically in order to avoid bloat, but this may cause: pandas will not be able to use Qt for clipboard interaction.
Nuitka-Plugins:anti-bloat: Not including 'PyQt5' automatically in order to avoid bloat, but this may cause: pandas will not be able to use Qt for clipboard interaction.
Nuitka-Plugins:matplotlib: Using configuration file or default backend 'QtAgg'.
Nuitka: Completed Python level compilation and optimization.
Nuitka: Generating source code for C backend compiler.
Nuitka: Running data composer tool for optimal constant value handling.
Nuitka: Running C compilation via Scons.
Traceback (most recent call last):
  File "C:\ProgramData\anaconda3\Lib\site-packages\nuitka\__main__.py", line 161, in <module>
    main()
  File "C:\ProgramData\anaconda3\Lib\site-packages\nuitka\__main__.py", line 147, in main
    MainControl.main()
  File "C:\ProgramData\anaconda3\Lib\site-packages\nuitka\MainControl.py", line 1127, in main
    _main()
  File "C:\ProgramData\anaconda3\Lib\site-packages\nuitka\MainControl.py", line 979, in _main
    result, scons_options = compileTree()
                            ^^^^^^^^^^^^^
  File "C:\ProgramData\anaconda3\Lib\site-packages\nuitka\MainControl.py", line 896, in compileTree
    result, scons_options = runSconsBackend()
                            ^^^^^^^^^^^^^^^^^
  File "C:\ProgramData\anaconda3\Lib\site-packages\nuitka\MainControl.py", line 747, in runSconsBackend
    runScons(
  File "C:\ProgramData\anaconda3\Lib\site-packages\nuitka\build\SconsInterface.py", line 280, in runScons
    scons_command = _buildSconsCommand(
                    ^^^^^^^^^^^^^^^^^^^
  File "C:\ProgramData\anaconda3\Lib\site-packages\nuitka\build\SconsInterface.py", line 217, in _buildSconsCommand
    str(Options.getJobLimit()),
        ^^^^^^^^^^^^^^^^^^^^^
  File "C:\ProgramData\anaconda3\Lib\site-packages\nuitka\Options.py", line 1574, in getJobLimit
    return int(options.jobs)
           ^^^^^^^^^^^^^^^^^
ValueError: invalid literal for int() with base 10: '=4'
Nuitka-Reports: Compilation crash report written to file 'nuitka-crash-report.xml'. Please include it in your bug report.`
[nuitka-crash-report.zip](https://github.com/Nuitka/Nuitka/files/14500341/nuitka-crash-report.zip)

New problem in MinGW?

I try in same anaconda:
python -m nuitka --onefile --lto=yes --jobs==4 setkaNG.py
have the same Error.

The use of --jobs==4 ends up as =4 for what is expected to be an integer value. That is not checked at call time and passed down to scons, which then falls down. The option parsing core could also handle this, but I don't want to outlaw values starting with an = sign.
I am adding a check to the options parsing to catch this.

Now on factory branch, integer conversion is checked early, and negative values are caught too.

Nuitka-Options: Used command line options: --nofollow-imports --jobs=-1 tests/basics/AssertsTest.py
FATAL: For --jobs value, use positive integer values onl, not, but not '-1'.

Your use of Nuitka is invalid, I agree however, that it can be hard to spot this mistake.


reduce code spacing

Published PR with canary version: 1.10.9-canary.116.1669

Published PR with canary version: 1.10.9-canary.116.1675

Published PR with canary version: 1.10.9-canary.116.1679


Initial cut of revisions to Exception Hierarchy

Virtually all exceptions (with a few exceptions, please review) were remapped to this hierarchy

VaultException (mostly serves as a root, few instantiated)
-- VaultClientException - where the state or a mapping error says "Hey this isn't Vault per se, but a bad state"
-- VaultRemoteException - mostly a container class but represents fatal results from a call to Vault
----- VaultHttpExceptions - Most Vault calls map here.

I agree a cleaner mapper is wise. Right now things are a mess! I agree with your concept, but felt it belonged in another PR. One of the issues is some things have an exception mapper (VaultResponses), others don't.

I couldn't run most tests, because apparently they require a local workdir and Vault -please clarify how I can run this. As an aside, while I don't have it working perfectly - testContainers.org is a lovely way to run integration tests with a dockerized Vault.

I did find BTW Mark, that all of this hierarchy was needed. I also put my new exceptions in a "exceptions" package. Unfortunately we can't move VaultException or VaultTokenLookupException there without breaking compatibility.

Overall response (before reading your specifics, just your general):
Totally agreed that reasonable people can come up with different solutions. I deviated in one direction, because it seemed like at least half of the illegalxxxoperations exist BECAUSE there wasn't a hierarchy.
But this is certainly where reasonable people can back and forth and come to consensus, so now I'll look at your specific comments

So there's some fundamental disconnect that some back and forth should hopefully resolve. See my comments

So here's what I recommend. Let's make this step by step.

My next commit basically puts the enclosed exception inside, which I probably should have done. I'll attach, you review.
Then let's add VaultLoginException separately.
Then let's come together and talk about our "disjoint" which is the VaultClientException, etc. Remaining. Let's take this last, so we can focus on progress.

Make sense?

This PR obviously became bigger than it should in the first place, mostly because it contains the new exceptions and changes the code where exceptions are thrown. I think this is fine because we can dig into detail what's actually happening where exceptions are thrown. From the initial ticket description it made sense to think in VaultClientException and VaultHttpStatusException categories.
As we go forward, it does not make sense to put everything into only two categories, VaultClientException and say VaultRemoteException. We're using JDK exceptions and lines start to blur if we start thinking about e.g. login exception. Did they happen on the server? Did they occur on the client? Since both are possible, we should express the actual issue and not try to create a distinction between things that are hard to distinguish and do not enhance value on the client side.
What becomes obvious is that we need to deal with transport exception instead of HTTP status exceptions only. That's why I think we should have only a single exception for transport-related errors and allow introspection through the cause.

Agree on https://github.com/spring-projects/spring-vault/pull/216#issuecomment-372803416.
I'm also perfectly fine if we take point 3 out of scope and deal in a later pull request.

Been horribly busy, will probably get back this weekend.

Any update on this one?

I tried but failed to get back. Very work stressed sigh. To be honest I feel there is two choices: you do it or we restart with a much smaller scope initially. At this point I can’t even track who is what. I suppose that’s my fault for trying to do it all at once

Hope that didn’t come out sulky. It is true I have been super busy but also true when I look at the plethora of comments I get frustrated at just where to start again

No worries. It wasn't ever my intent to upset you. I'd feel also more comfortable to close this one and start over. I can pick up loose ends on the first bits regarding login exceptions and then we can progress from there on.
WDYT?

Makes sense to me


Roborock S6 no video

Hi,
Trying to access my roborock camera but all i got when i click stream in go2rtc webui is infinite loading with sometimes a "mse" message :
Sorry, corrected ( diabled security dot ) and understood that video only available during cleaning.

So no issue for you?

No all is good for my side, sorry for the  inconvenience !


begin implementing testing support

This is my first push for implementing tests.

Added a Test App generator: rake test_app. This will create a rails app configured for reactive ruby to test against.
Moved old react.rb tests to opal-specs for the time being.
Remove vender / active support in favor of updating opal-activesupport

oops wrong branch.

This issue was moved to reactrb/reactrb#68


THREE.Line support

Hey HoloJS maintainers. I'm trying to build some lines.
I'm starthing with this simple snippet for lines in THREE.js:
https://threejs.org/docs/api/objects/Line.html
And then converting it into BufferGeometry
    var material = new THREE.LineBasicMaterial({
  	    color: 0x0000ff
    });
    var geometry = new THREE.BufferGeometry();
    var vertices = new Float32Array( [
        -10.0, 0.0,  0.0,
        0.0, -10.0,  0.0,
        10.0,  0.0,  0.0,
    ] )

    geometry.addAttribute( 'position', new THREE.BufferAttribute( vertices, 3 ) )

    var line = new THREE.Line( geometry,  );
    line.name = "LINE";
    scene.add( line );

Works just fine in a Fiddle both in Chrome and Edge.
https://jsfiddle.net/epr46k0z/1/
But fails in HoloJS.
I'm working with the demo ThreeJS example included in the repo, so I've got the sphere, camera and point light objects. Removed the others for simplicity. And I'm logging the different objects in the .updateMatrixWorld() method that starts at line 11028 in the THREE.js release provided in the repo, and it looks like the issue occurs after updating the last of the 4 objects, or before the next update of the line object.
log: update children
log: LINE
log: update children
log: SPHERE
log: update children
log: CAMERA
log: update children
log: POINT
D3D11 ERROR: ID3D11Device::CreateVertexShader: Shader uses ability to feed viewport and/or array index from any shader feeding the rasterizer, but the device does not support this. To check for support, check device caps via the CheckFeatureSupport() API [ STATE_CREATION ERROR #166: CREATEVERTEXSHADER_INVALIDSHADERBYTECODE]
Exception thrown at 0x77222052 in ThreeJSApp.exe: Microsoft C++ exception: _com_error at memory location 0x01ED8990.
D3D11 ERROR: ID3D11Device::CreateVertexShader: Shader uses ability to feed viewport and/or array index from any shader feeding the rasterizer, but the device does not support this. To check for support, check device caps via the CheckFeatureSupport() API [ STATE_CREATION ERROR #166: CREATEVERTEXSHADER_INVALIDSHADERBYTECODE]
Exception thrown at 0x77222052 in ThreeJSApp.exe: Microsoft C++ exception: _com_error at memory location 0x01ED8990.
Exception thrown at 0x77222052 in ThreeJSApp.exe: Microsoft C++ exception: Js::JavascriptExceptionObject at memory location 0x01EDA534.
Failure in file c:\users\nick sippl\desktop\projects\holojs\holojs\holojshost\objectevents.h, line 52
Failure in file c:\users\nick sippl\desktop\projects\holojs\holojs\holojshost\windowelement.cpp, line 149
Failure in file c:\users\nick sippl\desktop\projects\holojs\holojs\holojshost\windowelement.cpp, line 149

I also noticed this note in the three.js docs
https://threejs.org/docs/api/materials/LineBasicMaterial.html
.linewidth

Controls line thickness. Default is 1.

Due to limitations in the ANGLE layer, with the WebGL renderer on Windows platforms linewidth will always be 1 regardless of the set value.

Which doesn't explain the issue as far as I can tell... but does allude to some specifics of ANGLE.
I'm going to dive into https://github.com/Microsoft/angle/tree/88a9dfb0dcaa57f7be41dda39bde901b21b67364/samples a bit to see if I can get a better sense of what's going on, but seems like Line geometries ought to be supported.

Hey Nick!
I had an issue as well before rendering wireframes, and if I recall correctly, it was because the "lineWidth" function was not implemented. Despite the width always being 1, THREE.js still tries to call it from the JavaScript each time it renders a frame. So because of that, you're seeing the "Failure in file ... windowelement.cpp". It's possible to get more descriptive error messages by modifying the JsCallFunction and JsRunScript calls (here's a sample with exception handling).
Below is what I done to implement the lineWidth function. It's basically a copy and paste of the other functions just changing the name to lineWidth and calling the glLineWidth function in the actual implementation.
WebGL.js
this.lineWidth = function (width) {
    return nativeInterface.webgl.lineWidth(this.glContext, width);
};

WebGLProjections.cpp
RETURN_IF_FALSE(ScriptHostUtilities::ProjectFunction(L"lineWidth", L"webgl", lineWidth));

JsValueRef
CHAKRA_CALLBACK
WebGLProjections::lineWidth(
	JsValueRef callee,
	bool isConstructCall,
	JsValueRef* arguments,
	unsigned short argumentCount,
	PVOID callbackData
)
{
	RETURN_INVALID_REF_IF_FALSE(argumentCount == 3);

	WebGLRenderingContext* context = ScriptResourceTracker::ExternalToObject<WebGLRenderingContext>(arguments[1]);
	RETURN_INVALID_REF_IF_NULL(context);

	GLfloat width = ScriptHostUtilities::GLfloatFromJsRef(arguments[2]);
	context->lineWidth(width);

	return JS_INVALID_REFERENCE;
}

WebGLProjections.h
static JsValueRef CHAKRA_CALLBACK lineWidth(
    JsValueRef callee,
    bool isConstructCall,
    JsValueRef* arguments,
    unsigned short argumentCount,
    PVOID callbackData
);

WebGLRenderingContext.cpp
void WebGLRenderingContext::lineWidth(GLfloat width) {
    glLineWidth(width);
 }

WebGLRenderingContext.h
void lineWidth(GLfloat width);

Hope this helps!

@PepsRyuu Thank you for the fix! It would be great to merge this into the master branch. Do you want to submit a pull request for it? Alternatively I could merge the fix myself.

@Almost-Done I don't mind writing a few pull requests, just wasn't sure if the project was still alive! There was a few things I wanted to contribute (proper error logging, mapping surface data to JS, and other various bug fixes). Some of these were based on issue #24. There's huge potential for this project as a platform, so if I get a chance I'll see what I can do. :)

@Almost-Done @PepsRyuu Great to see life in this thread! Personally, error logging would be a great step forward, I'm sure along with @PepsRyuu other intended contributions. Would love to come back around to building with HoloJS. Agree that there's potential for this project as a platform.

I created a PR with Paul's code from above to resolve this issue.


36 value backed storage

XXX: failing tests, not ready for merge. See comments here: https://github.com/thesecretlab/YarnSpinner/issues/36#issuecomment-202226300

Okay! I updated this, fixed some bad comparisons, updated my test cases, restored the others, and everything looks green across the board! Let me know what you think! :)

Noticing that the Travis builds are failing - you can run the tests locally without having to wait for travis by doing this on the terminal:
nuget restore YarnSpinner.sln
xbuild /p:Configuration=Release YarnSpinner.sln
mono ./YarnSpinnerTests/bin/Release/YarnSpinnerTests.exe
./run-tests.sh -d Tests/TestCases

Just saw that @desplesda sorry. One of those days; tests are passing, you push the code, then tests fail.  Happens to the best of us.

Welp! This one is out of my pay grade: this will exit with 0 on local, but is clearly exiting with 1 on CI. No leads on this, sorry!!

Ok, will have a chance to look at this hopefully soon! 👌

It was a failing test case in Options.node, sorry I'm on it.

Adding Type.Undefined and using it introduced some nastiness, despite my best intentions. I checked against Twine, and using an undefined variable, as the initial implementation suggests, should be Type.Null not Type.Undefined. I've pulled references to Type.Undefined and made Type.Null the default.
Extending that, I've made assert a variadic function in Twine, allowing a description of the failing test case. While not line numbers or the like (I saw that TODO in there), it does allow for pinpointing the failure state.
Sorry that my onboarding has been a little rocky. I promise I'll get the hang of this test harness. 😉

Looking good! I'll play with this a little before merging its but it all looks solid.
Please bug me if I haven't either merged this or spotted a problem after a few days!

Awesome work.


Devise not responding correctly to JSON message

I am having troubles in having Devise responding correctly to a JSON message.
the following request is working fine
curl -XPOST 'http://localhost:5000/users/sign_in.json' -d 'user[email]=MYUSER' -d 'user[password]=MYPASSWORD'

Completed 201 Created in 171ms

In place, I would like to have a more proper JSON format
curl -v -b cookie.file -c cookie.file -H "Content-Type: application/json" -X POST -d '{"user" : {"mail":"MYUSER" , "password":"MYPASSWORD" }}' http://localhost:5000/users/sign_in.json

But it does not seem to work

Processing by Devise::SessionsController#create as JSON 23:10:32 web.1 | Parameters: {"user"=>{"mail"=>"MYUSER", "password"=>"[FILTERED]"}, "session"=>{"user"=>{"mail"=>"MYUSER", "password"=>"[FILTERED]"}, "action"=>"create", "controller"=>"devise/sessions", "format"=>"json"}}
Completed 401 Unauthorized in 11ms

thanks

Please use the mailing list or stack overflow for questions about how to change Devise behavior. If instead you think this is a Devise issue, please provide a Devise and Rails versions and a way to reproduce the issue. More info here: https://github.com/plataformatec/devise/wiki/Bug-reports

Thanks for the prompt feedback.
It looked to me like a Devise miss-behaviour (that why I opened a bug report).
After another good day of troubleshooting, it turned out to be a misspelling ("mail" in place of "email").
Unfortunately, Rails log were not that clear on this extent.

curl -v -b cookie.file -c cookie.file -H "Content-Type: application/json" -X POST -d '{"user" : {"email":"MYUSER" , "password":"MYPASSWORD" }}' http://localhost:5000/users/sign_in.json

It is indeed working like a charm.
thanks and regards


Add support for PyFile_FromFile

In Python 2 there is only PyFile_FromFile, which accepts a file pointer, whereas in Python 3 there is only PyFile_FromFd, which accepts a file descriptor. To avoid changing legacy code and introducing special cases for both Python versions, I would like to suggest an implementation of PyFile_FromFile for Python 3 that simply forwards to the existing function: with the help of fileno() the file descriptor for a file pointer can be obtained.

To anyone looking for hints: In https://github.com/encukou/py3c/pull/45, implementing PyFile_FromFile in terms of PyFile_FromFd and fileno didn't work because it leaked FILE* structures.

Unfortunately, "file objects" in Python 3 are quite different than in Python 2.
As the py3 docs say,

The [PyFile_* functions] are convenience C wrappers over these new APIs, and meant mostly for internal error reporting in the interpreter; third-party code is advised to access the io APIs instead.

Given that io is available on Python 2.6+, I'd rather encourage using that. It is what PyFile_FromFd does.

To anyone looking for hints: In https://github.com/encukou/py3c/pull/45, implementing PyFile_FromFile in terms of PyFile_FromFd and fileno didn't work because it leaked FILE* structures.

Unfortunately, "file objects" in Python 3 are quite different than in Python 2.
As the py3 docs say,

The [PyFile_* functions] are convenience C wrappers over these new APIs, and meant mostly for internal error reporting in the interpreter; third-party code is advised to access the io APIs instead.

Given that io is available on Python 2.6+, I'd rather encourage using that. It is what PyFile_FromFd does.


IGNITE-11545 Added specific timeout object for execute/logging baseline

The ticket is resolved, closing PR.
Please close PRs for your resolved tickets and other non-needed PRs.
Alternatively, ask a committer

to use GitHub UI (committer can associate accounts here: https://gitbox.apache.org/setup/ )
or /scripts/apply_pull_request.sh from Apache Ignite source.
or mention in commit message 'Fixes #(a number of PR)'.

These methods will automatically close PR.
Feel free to reopen this PR if it is actual.


Error importing legacy template library [XML format]

Duplicate of https://github.com/UrbanModelingInterface/Umi/issues/53

This issue can be low priority.


Igbinary serializer in Redis cache driver not working properly

Laravel Version: 8.83.25
PHP Version: 8.1.1
Database Driver & Version:
Redis 6.0.6 on Ubuntu 22.04
Redis 6.2.7 on Fedora 36
PhpRedis 5.3.7

Description:
When you enable igbinary serializer for redis in database.php, the actual value stored in redis is serialized with php serializer and some igbinary bytes are added at beginning.
Example:
\Cache::put('test', ['a', 'b'])
Actual value saved in Redis:
\x00\x00\x00\x02\x11\x1ea:2:{i:0;s:1:\"a\";i:1;s:1:\"b\";}
As for me, it looks like value is serialized with php serializer and afterwards is serialized with igbinary
Expected value in Redis (from igbinary_serialize()):
\0\0\0\x02\x14\x02\x06\0\x11\x01a\x06\x01\x11\x01b
Value from Redis if default serializer is used:
a:2:{i:0;s:1:"a";i:1;s:1:"b";}
As you see, default serializer value is even shorter than igbinary one, which should never be the case
Checked with more complex stuff, for example putting the model into cache, issue is the same - some bytes from igbinary in beginning and default serializer value aftrewards.
Steps To Reproduce:

Enable Redis::SERIALIZER_IGBINARY serializer in config/database.php
Save some array or object to cache
Go to redis-cli and compare the value inside redis with igbinary_serialize() result

does \Cache::get('test') also show incorrect data?

does \Cache::get('test') also show incorrect data?
If I test it:
Redis stores this
\Cache::put('test', ['a', 'b']);
dd(\Cache::get('test'));

array:2 [▼ // app/Http/Controllers/HomeController.php:27
  0 => "a"
  1 => "b"
]

For me it seems to work...

Actually you confirmed the bug :)
The cache put-get works, no problem with it. Problem is in the actual data stored in Redis.
If you encode it with igbinary igbinary_encode(['a','b']) you will see that there is no such stuff as a:2:{i:0 - it's php serializer format, igbinary has much more compact representation for arrays.
What it means in real life for the project where I work - when igbinary serializer worked fine, all our redis cache took around 1.2-1.5 gigabytes of RAM. When this bug appeared - redis RAM usage stared hitting 5+ gigabytes.
And when I switched to regular php serializer - these 5 gigabytes stayed the same, so igbinary now does not give any benefits right now.
The problem appeared when we migrated from ubuntu 18.04 to 22.04 and php 8.0 to php 8.1 and updated all project dependencies.

ok but is this a laravel or phpredis bug then?

Not sure if I can confirm that. Will try our previous setup with latest laravel and get back here.

It's not phpredis bug, try this code:
$client = new \Redis();

$client->connect('<IP_ADDRESS>', 6379);

$client->select(0);
$client->setOption(Redis::OPT_PREFIX, 'r:');
$client->setOption(Redis::OPT_SERIALIZER, Redis::SERIALIZER_IGBINARY);

$client->set('test', ['a', 'b']);
var_dump($client->get('test'));

When I check it in redis-cli:
<IP_ADDRESS>:6379> get r:test
"\x00\x00\x00\x02\x14\x02\x06\x00\x11\x01a\x06\x01\x11\x01b"

So the actual value in redis is the expected igbinary encoded array. But it's not the case with laravel Cache
Need some more time to check our old setup

can you also post some version numbers?

Laravel seems to set the serializer config option correct on the connector though...

Same as in my initial message:
Laravel Version: 8.83.25
PHP Version: 8.1.1
Database Driver & Version:
Redis 6.0.6 on Ubuntu 22.04
Redis 6.2.7 on Fedora 36
PhpRedis 5.3.7
Just checked our old setup, it has the same problem, not sure why memory consumption increased.
Please, check this one, there is a hardcoded php serializer there:
https://github.com/laravel/framework/blob/8.x/src/Illuminate/Cache/RedisStore.php
line 334
So how it works now in laravel - we always encode everything with php serializer, and afterwards redis encodes serialized string with igbinary.
As I understand it - there is no point on using the igbinary serializer in redis config, it just adds some overhead to redis. We already pass serialized string as value.
It would be a nice feature to have in config - change the serializer/unserializer function. So use igbinary_serialize instead of default serialize.
For now for my project I'll just extend the RedisStore overriding the serialize/unserialize functions in this class.
Sorry for wasting your time, you can convert this ticket to a feature request if you think it's nesessary.

I think serialize method should be used by framework only when 'serializer' option in config is set as Redis::SERIALIZER_NONE. In other serializers, even Redis::SERIALIZER_PHP, the extension is reponsible for serializing data.

I think serialize method should be used by framework only when 'serializer' option in config is set as Redis::SERIALIZER_NONE. In other serializers, even Redis::SERIALIZER_PHP, the extension is reponsible for serializing data.

this library seems to do this
https://github.com/akalongman/laravel-lodash#redis-using-igbinary

Yeah and look what they do with serialize/unserialize: https://github.com/akalongman/laravel-lodash/blob/67b4d5206d3118cff9bce3d4f718ebd9b2ee6491/src/Lodash/Cache/RedisStore.php#L11-L19

Just tested such setup:
<?php

namespace App\Extensions;

use Illuminate\Cache\RedisStore;

class RedisStoreFixed extends RedisStore
{
    public function serialize($value)
    {
        return $value;
    }

    public function unserialize($value)
    {
        return $value;
    }
}

And it's loaded like that:
    protected function createRedisDriver(array $config)
    {
        $redisConfig = config('database.redis', []);

        if (class_exists('Redis')
            && defined('Redis::SERIALIZER_NONE')
            && isset($redisConfig['options']['serializer'])
            && $redisConfig['options']['serializer'] !== \Redis::SERIALIZER_NONE
        ) {
            $redis = $this->app['redis'];

            $connection = $config['connection'] ?? 'default';

            $store = new RedisStoreFixed($redis, $this->getPrefix($config), $connection);

            return $this->repository(
                $store->setLockConnection($config['lock_connection'] ?? $connection)
            );
        }

        return parent::createRedisDriver($config);
    }

Everything works flawlessly with any serializer.
I'm not sure how to do it properly in a form of a pull-request, it would be nice if someone makes it.

Did you check Redis::SERIALIZER_NONE?

$redisConfig['options']['serializer'] !== \Redis::SERIALIZER_NONE

I don't load modified RedisStore if serializer is none:
$redisConfig['options']['serializer'] !== \Redis::SERIALIZER_NONE

Why is the serialize() function there in the first place? Is that needed for predis?

Why is the serialize() function there in the first place? Is that needed for predis?

Not sure about that, I did not follow the development.
I guess previously it was used with none serializer from phpredis, and an option to use redis serializer was added not so long ago.

Laravel supports native phpredis extension and predis library written in pure PHP. Predis seems not support serialisation, so Laravel implementation should call serialize/igbinary_serialize/msgpack_pack to serialize data. If PHPRedis is used, serialisation should be matter of extension, not framework. Option \Redis::SERIALIZER_NONE should be unavailable, default option should be \Redis::SERIALIZER_PHP, because of compatibility.
PR should be simple, but the problem is with existing records. It is very likely that records saved before change will be corrupted.

This is long time ignored bug.
https://github.com/laravel/framework/issues/26186

Hey there,
Unfortunately we don't support this version anymore. Please check out our support policy on which versions we are currently supporting. Can you please try to upgrade to the latest version and see if your problem persists? If so, please open up a new issue and we'll help you out.
Thanks!


[Pager] Consume post flings and scrolls from nested scrolling content

Currently any nested unused scrolls + flings from child content is handled by the Pager. This is different to how ViewPager[2] behaves and is usually unwanted behavior.
This PR adds a NestedScrollConnection which consumes those events before the Pager gets them. It's not perfect, but it's close enough for now.
Fixes #347

Consider adding a test for it as well please

Test added 👍


 This was overlooked while developing the commit section and it should be fixed as soon as possible
Extracted from:
https://github.com/lucas-labs/coco/blob/10acd13d76ec2ed133d4309299528060628ec6ad/coco/src/view/sections/summary.rs#L72-L75

Closed by #21


Register error

Hello i installed the Source on my machine, setup rewrite for php and configured database.
when i try to add an user this is the error:
Error while completing registration. Please, try again later.

How did you even reach that error? When I try to register it just brings me to a blank page.


Segmentation fault Python3 dwt

Hi Patricio,
Thanks for the updated version, very nice !
I have switched to Python 3.6 and encounter a segmentation fault when using the dwt_daub4 function in stats.py .
For instance:
import numpy as np
import mc3 as mc3

res = np.random.randn(64)*100e-6
dwt1 = mc3.stats.dwt_daub4(res,False)

Which returns, when running in debug with gdb (i.e. gdb --args python3 script.py):
Thread 1 "python3" received signal SIGSEGV, Segmentation fault.
daub4 (self=<optimized out>, args=<optimized out>) at src_c/_dwt.c:181
181	src_c/_dwt.c: No such file or directory

I need dwt_daub4 to compute the time series of my correlated noise, after estimating sigma_r and sigma_w.
Thanks a lot !

Hi @huhell
I'm sorry for this very late reply. You probably found another solution for what you needed... but anyways, I found the bug, there was a cpython piece of code that became obsolete. I updated the code and the routine is working now.


Add ArrowNativeType::from_usize_unchecked

Draft as this is a deeply unsafe API, but I want to get it up for potential consideration if I can show meaningful performance improvements with it
Which issue does this PR close?
TBD
Rationale for this change
While working on https://github.com/apache/arrow-datafusion/pull/8827 I think the really hot loop checking for offset overflows when converting from usize --> O may be significant.
So when converting usize to an offset, instead of
let offset = O::from_usize(buffer.len()).unwrap())

The code looks like
let offset = unsafe { O::from_usize_unchecked(buffer.len()) };

What changes are included in this PR?
Add an ArrowNativeType::from_usize_unchecked that doesn't check for conversion errors
Are there any user-facing changes?
No

Why not use the existing usize_as?

Why not use the existing usize_as?

I think because I somehow missed that. Sorry good call


saving tensorflow models

Any thoughts on the best approach to integrating a tensorflow model? specifically I mean how to save model weights and architectures to the database. Right now I've saved a filepath in the stateDict then I load and save weights to/from that file. It doesn't seem possible to save the model directly to the db as done for pytorch

Hi,
Good question; I remember saving and loading model states to be a bit of a hassle in TensorFlow.
I found the functions model.get_weights() and model.set_weights(), although they are primarily provided for the Keras wrapper: https://www.tensorflow.org/guide/keras/save_and_serialize#weights-only_saving
For TensorFlow itself the functions tf.all_variables() or tf.trainable_variables() might work instead: https://github.com/google/prettytensor/issues/6#issuecomment-164025032

Thanks for the info - I guess I was thinking more of how to store in the AIde db. The keras wrapper saves weights and architecture in hdf5 format but I couldn't find a way to save this file format into the database. Storing the filepath in the database and the hdf5 file to disk works but seems a bit clunky

The way I do this for PyTorch models is to just return a Python dict with model parameters inside. What you could do is to instead return a byte array of the HDF5 file at the end of the train function (perhaps like described here).
I know this is just as clunky, but at least it would keep the model parameters completely in the database and not just the reference.
I have plans to provide more flexibility for file storage in the future anyway. An option is to explicitly expose the project's data path to the model, so that it can indeed store the model file under a logical path and just return the directory to the database.

Thanks - I'll have a look at the byte array approach - I agree keeping all parameters in the database would be a much nicer solution


Different behavior of Analyzer 1.19.1 and 1.20 in a strong mode

import 'dart:async';

f() async => 1;

test() async {
  await Future.wait([f()]);
}
main() {
  test();
}

In the code above analyzer 1.19.1 (in a strong mode) finds no issues.
Analyzer 1.20.0-dev.10.0 (strong mode) reports "[error] Could not infer type parameter E, dynamic must be of type Future."
I'm not sure, but for me there should be no error

@jmesserly I looked at this in IntelliJ, and it looks like we're not inferring a return type for f, so f has the type () -> dymanic. I would have assumed that we would have inferred a return type of Future<int>. Is this a bug, or is my understanding incorrect?
Independently, if we cannot infer a better type for the type parameter for Future.wait, should we be inferring dynamic?

CC @leafpetersen

We never infer return types of top-level functions. So the return type of f is dynamic. Perhaps we could do something for async async* sync* functions. The problem is in strong mode, you want Future<T> for some T, not Future<dynamic>. Finding T would require looking at the method body.

the inference error is correct. If we cannot determine a type argument via inference we issue an error, we don't implicitly use dynamic. The reason this particular one looks confusing is because await someGenericMethod often hits https://github.com/dart-lang/sdk/issues/27284

duping against https://github.com/dart-lang/sdk/issues/27284


auto bind queues if exchange specified for source

This PR adds the possibility to specify the exchange name in the source and as side effect the Consumer will declare the queue and bind it to the exchange.
Fix #10

[Current coverage][cc-pull] is 9.17%

Merging [#11][cc-pull] into [master][cc-base-branch] will increase coverage by 0.04%

@@            master       #11   diff @@
========================================
  Files            3         3
  Lines          427       436     +9
  Methods          0         0
  Messages         0         0
  Branches        46        48     +2
========================================
+ Hits            39        40     +1
- Misses         387       395     +8
  Partials         1         1

Powered by Codecov. Last updated by [a53a094...3fbf9b4][cc-compare]
[cc-base-branch]: https://codecov.io/gh/aweber/rabbitmq-flume-plugin/branch/master?src=pr
[cc-compare]: https://codecov.io/gh/aweber/rabbitmq-flume-plugin/compare/a53a094914251b263f54a565877eb6e366079b12...3fbf9b401802009f1e6f0733622b89b83d471c92?src=pr
[cc-pull]: https://codecov.io/gh/aweber/rabbitmq-flume-plugin/pull/11?src=pr


One pipeline to rule them all?

Should we prefer one pipeline or various pipelines?
For instance, the sample documentation shows "Build" and "Deploy" as separate stages and not as separate pipelines.
Having it all in one pipeline makes it easier to understand the flow, but having to run "Build" every time, even if I only want to test "Deploy", is highly frustrating.

@MisinformedDNA , came across this Triggers in pipelines.  Not had chance to read through or try it out but it could be what we're both looking for?

Yeah, I don't think so. I'm already using triggers, but don't see how they would further help me.


Prefer one public class per file over monolithic files

Description
The m_array.py module contains definitions and implementations for several related but public classes. This drastically reduces the readability of the file. There is general refactoring required here such as making MArrayElement an internal class, and splitting MArraySlidingWindow to a different file.

Also, the file name should match the main class defined in that file. Ie "m_array.py" -> "marray.py" and "marrayslidingwindow.py"


Update: OSGeo.QGIS version 3.36.3 (3.36.3-2)

Created by 🥟 Dumplings.
Microsoft Reviewers: Open in CodeFlow

@wingetbot run

This package installs and launches normally on a Windows 10 VM.


Update jquery to v3.7.0

https://github.com/jquery/jquery/releases/tag/3.7.0

Let's merge #2 first.


OGRE/OgrePrerequisites.h: No such file or directory  (on Ubuntu Jammy)

I'm trying to build the moveit_ros_visualization package which includes the header file, <OGRE/OgrePrerequisites.h>. https://github.com/ros-planning/moveit2/blob/419db3b3b0245e9857e212ef86e441e60a4b10e4/moveit_ros/visualization/rviz_plugin_render_tools/include/moveit/rviz_plugin_render_tools/octomap_render.h#L45
It worked previously in Ubuntu 20.04 Focal. The build error is:
.../.work/upstream_ws/install/moveit_ros_visualization/include/moveit/rviz_plugin_render_tools/octomap_render.h:45:10: fatal error: OGRE/OgrePrerequisites.h: No such file or directory
     45 | #include <OGRE/OgrePrerequisites.h>

It looks like this MoveIt package has a <depend> on rviz2. I've tried adding another <depend> on rviz_ogre_vendor and linking against it like rviz2 does but no luck.

Actually I was able to delete the include of OgrePrerequisites and it still builds fine. Good enough for me!


UIAlertView promise (PromiseKit 3.0.0)

Hey Max,
Thank you for all the speedy updates. I hate to bother you but I'm stuck in the middle of an upgrade of a Obj-C project to PromiseKit 3.0.0 and could use some help.
I've been unable to remedy this error: No visible @interface for 'UIAlertView' declares the selector 'promise' for my use of:
UIAlertView *alert = [UIAlertView …];
[alert promise].then(^(NSNumber *dismissedButtonIndex){...}));

After multiple pod reinstalls, clean builds, I'm not sure what to try next.

In this file I import PromiseKit like so:
@import PromiseKit;

In my Podfile I install PromiseKit like this:
    use_frameworks! pod 'PromiseKit', :git => 'https://github.com/mxcl/PromiseKit.git', :branch => 'swift-2.0-beta5'
    use_frameworks! pod 'PromiseKit/CoreLocation', :git => 'https://github.com/mxcl/PromiseKit.git', :branch => 'swift-2.0-beta5'
    use_frameworks! pod 'PromiseKit/UIKit', :git => 'https://github.com/mxcl/PromiseKit.git', :branch => 'swift-2.0-beta5'

You have to import PromiseKit with the old syntax:
#import <PromiseKit/PromiseKit.h>

Otherwise none of the categories get imported.
It's a limitation of modules.

Ah! Thank you, that did the trick!
I feel really stupid saying this, but I first gave up on that route when Xcode wouldn't autocomplete that path. I obviously don't know enough about linking/modules yet.
Thank you again.

np imo it's not intuitive. I document it in various places, but there's a lot of docs so I'd miss it too.


Add drag/drop capabilities

Implement dragging within and between columns.
Implement dragging to trash to delete a task.

Completed.


Fix: deprecate the deployTo field of the addon

Signed-off-by: barnettZQG<EMAIL_ADDRESS>Description of your changes

Fixes #
I have:

[ ] Read and followed KubeVela's contribution process.
[ ] Related Docs updated properly. In a new feature or configuration option, an update to the documentation is necessary.
[ ] Run make reviewable to ensure this PR is ready for review.
[ ] Added backport release-x.y labels to auto-backport this PR if necessary.

How has this code been tested

Special notes for your reviewer

It's useful for yaml users.