v80.c: work in progress for a v80 assembler in c89

started work on https://github.com/Kroc/v80/issues/4

@Kroc please feel free to scribble any feedback or suggestions all over this PR, it's far from ready to merge at the moment!

[ ] Next task is to rewrite the grammar comment to be line oriented to see if I can reduce the amount of lexical book-keeping compared to the token based grammar I've half implemented so far...

Pasting my question's and @Kroc's answers here for easy reference:

I have a 32 byte static token buffer for everything right now (label names, const names, numbers etc) to help enforce the token length limit, but presumably we want to handle strings of arbitrary length?
There are strings in v80 and they are 'arbitrary' in length, but line-length in v80 is hard capped at 127 cols to limit memory usage on 8-bit systems and the C implementation should enforce this too so that source code written on PC will assemble on Z80.

When v80 encounters a string, it simply writes the bytes to the code-segment one by one so the string is never stored anywhere whole -- with one exception: the file-name of an include .i statement is captured whole, but because CP/M doesn't have subfolders, the length of this is known to be limited. At the moment expressions are not allowed in include file-names, but this might be supported in the future.

When parsing expressions following .b, and the results don't fit in one byte, do you mask off the low eight bits? mask and right shift (but then that's the same as .w)? write big-endian order bytes? bail out with an error? something else?

It's an error -- when v80 encounters .b it sets a 'parameter size' variable for how many bytes (1, in this case) that expressions must fit into. If an expr > $ff then it's an error. Note that with .w using a string is an error, you can't have an ASCII string expanded to words.
“errors.txt” contains all possible errors in v80 and an explanation of what causes them so it’s a good source of detail on parsing behaviour

Are values (literal and/or resulting from expressions) limited to 16bits by the assembler? Or in principle could I configure an ISA for a 32bit machine?

yes v80 is limited to a 16-bit number internally for everything. Considering that v80 can only output bytes or words to the code-segment, 32-bit results don't actually have a practical use! Note that v80 allows underflow but errors on overflow! This is so that the negate operator can work because numbers like -7 is a negate unary operator followed by the positive number 7

Seems like the parser should be line oriented? Or can, say, an incomplete expression continue on a new line?

For memory and parsing-simplification reasons, expressions are limited to one line; the entire parser is line-orientated to allow for parsing a file larger than memory allows. v80 is 335KB of code which obviously doesn't fit into 64 KB of RAM :P
But you have to understand that v80 is purposefully limited to fit into 8-bit hardware and that a C89 version shouldn't be assembling code that can't be assembled on real 8-bit hardware otherwise that defeats the point!

Would you be interested in discussing using a context free grammar to simplify the implementation, so we don't have to track indentation levels for conditionals, whether tokens are the first on a new line or not for constants and labels etc?

v80 is not trying to be an ideal assembler; it's trying to be minimal so that it can support many systems. Things like context-free grammars, macros etc. are features for a better, more language-orientated assembler (hopefully written in v80) -- v80 exists to bootstrap 8-bit software on 8-bit machines instead of relying on PC-only toolchains. Ergo, it has no goal to be anything more than a brutally simple assembler that acts as the bedrock of a broader range of 8-bit software. If an 8-bit computer can't modify and assemble it's own software then it might as well be proprietary. An 8-bit computer that can only run software that has to be compiled on a PC is not a real computer and v80 aims to break that cycle by allowing code on a PC to also assemble on 8-bit hardware.

@Kroc 'nother question about local labels (possibly leading to reducing heap usage quite a bit):

do you have documented support for jumping to local labels from outside of the non-local to which they apply?
In my fantasyvm assembler I have gone back and forth on supporting that, but currently keep all the local labels in their own table without using the non-local prefix.  The local labels table is reset every time a new non-local label is defined, and unresolved local label references throw an error at that point.  The downside is that if you really do need to jump into a local label from outside the current non-local label's scope, you end up having to promote some of the locals to non-local and there can be a cascade of promotions around that area as a result.  I'm thinking about adding persistent locals that are recorded in the non-local label table if I find it problematic later.

Local labels are simply appended to the last non-local label defined forming a complete label-name.
"release/readme.txt" documents each feature, are you referring to that?
1.4 Local Labels:
--------------------------------------------------------------------------------
Local labels can be "reused", as they automatically append themselves to
the last defined, non-local, label:

|   _local                  ; error: local label without label!
|
|   :label1
|   _first                  ; defines :label1_first
|   _second     jr _first   ; defines :label1_second, jumps to :label1_first
|
|   :label2
|   _first                  ; defines :label2_first
|   _second     jr _first   ; defines :label2_second, jumps to :label2_first

Note that the combined length of the local label name and its parent must not
exceed 31 characters, including label sigil:

|   :2345678901234567890    ; 20 chars
|   _234567890              ; 30 chars - OK
|   _23456789012            ; 32 chars - invalid symbol error!

It was done this way for ease of implementation, but I would like to add anonymous labels in the future or change the way local labels are implemented so that they don't take up so much heap space.

Sort of.  I wondered whether you want to be able to rely on, eg:
:nonlocal1
_local1
:nonlocal2
_local1             jr :nonlocal1_local1

And if that's not an explicit goal, I think there's some low hanging fruit in heap size savings with segregating local labels into a short-lived table that gets reset at every non-local label boundary.

The heap in v80 cannot deallocate anything, ever!  If a label gets added, it cannot ever be removed, because once something else gets added to the heap (like a deferred expression, a new constant), the heap cannot shrink without deleting something else important. The space cannot be reused because that creates a fragmentation problem that would take hundreds of bytes of code to work with. The heap is append only.
Hope is not lost however; we could have label records include a sub-label linked list on the end of it so that only the local labels names are stored attached to the parent label by a linked list. The downside to this would be greater complexity and code size in label searches.

@Kroc Heap limitations make sense.  For v80.c, I'll I'll use the same "append local to non-local name" for symbol table entries as you, effectively supporting jumping to local labels from another non-local block.
Largely rewrote v80.c today to take into account your earlier answers.  Any other feedback welcome as I make progress...

Hmm.. just occurred to me that you could have local symbols in their own linked list, and as long as each entry is the same size (32bytes for the label name, and 4 bytes for the next entry pointer) and a zero length name marking the end of the list when searching, then there's no need to deallocate anything.  When a new non-local label is encountered, we can error out for unresolved local label references, and then put a 0x0 tombstone at the head of the list.  New local labels would then overwrite the entries from the local label list in place (making sure that if the next entry was allocated, it get's a 0x0 tombstone) until they are all used up, and then additional local labels get pushed back on the head of the list as before.

What remains:

[ ] numbers at start of line set PC
[ ] write to code-segment
[ ] constant assignment and references
[ ] label assignment and references
[ ] local label assignment and references
[ ] .f keyword
[ ] .w keyword
[ ] .b keyword
[ ] .b strings
[ ] conditions
[ ] flush code-segment to output file
[ ] command line arguments
[ ] deferred expressions
[ ] forward references (separate pass? or back-patch recorded holes in single pass?)

Did I miss anything?

Thinking about it, what I'm trying to get at is that changes to v80's design in Z80 code can take weeks, even months -- it took six months of meticulous crafting instruction-by-instruction and I'm not the fastest developer already. Given that the assembler is now self-assembling, I don't want to break it without careful consideration, and rewriting what already works is equally time consuming, so there had to be clear net wins.
This brings me on to instructions; I hadn't thought far enough ahead about a C version (I didn't actually think anybody would take up the offer), but the C version should reuse the instruction table binary so that this work isn't duplicated for every ISA -- v80 is unique in that support for different CPU instruction sets requires minimal code changes. The instruction set is encoded as a binary tree (see "isa_z80.v80") with a small amount of CPU-specific code to handle parameters ("v80_z80.v80"). However, I'm in the process of rewriting this table (see branch "v2") logic to both greatly simplify the instruction tables (see "is2_6502.v80" in branch "v2" for just how much simpler) and hopefully save more bytes, so you'll want to hold off of parsing instructions for the moment.

Oh, I didn't mean to imply you should change the algorithm, but I think it's definitely worth throwing an error when attempting to jump into the middle of a local label from another scope so that some space optimizations are still on the table in case you want to do that one day 😁
In the unlikely event that the C version catches up, I might bug you for some specs for the v2 tables then. I secretly want to add support for my fantasy vm ISA after all!

I should add tests to flush out bugs in another PR, and I don't have any code to read the opcode tables yet - but the parser handles v1/isa_6502.v80 and v1/isa_z80.v80 and produces plausible looking binary output files, so it seems to be minimally functional.
What's the usual way of building an assembler that does opcode lookup in the tables?  And do you have a spec for v2 tables I can implement?

Sorry for the slow response, I'm rather busy at home whilst my son is off school over summer. The process of parsing the instruction tables is covered by parseMnemonic in "v80_asm.v80". Sorry that I don't have it better described somewhere but its a small amount of code; the tables themselves describe and demonstrate the structure so it's possible to use that alone as a guide. I'm getting near the end of the v2 instruction parser but have been struggling a lot with focus. The v2 parser is only guaranteed to make the instruction tables easier to read and write, performance is an unknown factor at the moment until I complete my prototype, so there's a small possibility v2 might be abandoned.
The "build.bat" script does some testing by building samples of the entire Z80/6502 instruction set and comparing against the same produced with WLA-DX maybe this would be a starting point? I haven't examined the PR enough to know what the build requirements of your C version are and if/how this would work as part of the current, rather crude, system. I use a batch file only so that v80 can be built out-of-the-box without having to install any dependencies or deal with high up-front demands like requiring knowledge of Docker -- remember that whatever is required to build v80 is itself a dependency of the 8-bit software at the end of the pipeline and the goal is to get away from gigabytes of constantly evolving build infrastructure :P

No apologies necessary.  I'm setting off on a 2-3 week road trip tomorrow, so any free time I would have had for coding will probably be spent on driving instead.  Absolutely no hurry on anything from my perspective.
Build requirements for v80.c are a c89 C-compiler toolchain and a libc with support for stdio FILE*streams and a selection of c89 *printf calls (these could be coded around if it needs to build and run in an environment without stdio, but I'd rather not -- it's a lot of boring code) as well as stdlib.h for malloc, free and exit calls (could probably write a custom allocator if malloc and free are missing, managing without exit is probably a bit harder).  If sys/param.h is available, it'll use the proper values for some constants, but has sensible fallbacks if not.  If sys/stat.h is available, it'll check inode types when opening files for reading.
I was looking at your build.bat, and even though I enforce CP/M compatible filenames for .I arguments, you can pass any path to the compiled v80.c on the command line... I should probably take any directory prefix from the command line input file and prepend it to any filenames that come from .I args so you don't have to run it from the directory with the sources inside to find the include files.
I haven't tried building anything with WLA-DX or runcpm yet, so that's probably a good thing for me to get going to decide how to proceed, but I'd also like to write specific tests to exercise the tokenizer and parser in v80.c which probably needs a custom test harness anyway... which is why I don't want to pile that all on top of this PR.
I'm still not clear on how to assemble the *.v80 files to end up with a working assembler that contains the instruction lookup tables and the code that uses them to assemble instruction op-codes.  It appears that that assembler needs to exist before it's possible to assemble the table lookup code?!?
And finally (for now ;-) ) -- I was thinking it might be easier to share the instruction opcode to binary mappings between v80.c and v80 proper if we define the instruction set separately somewhere that v80.c can load directly into a hash table, and I also provide some code to generate the lookup table sources (for v80 sources) rather than you hand coding them.  That will let you tune the format for speed/space efficiency without the work of hand coding the tables too.  WDYT?

Had a couple of unexpected evenings to finish the code!
This implements the instruction tables for v80.c, as well as loading and parsing.  It produces sensible looking (but untested) cpm_z80.com binary from the assembly sources, so can now serve as a bootstrap mechanism.
I need to write some code to generate the isa_.v80 tables for the v80 assembler from the tbl_.v80 tables for the C assembler, and validate that the binary it generates runs and regenerates bit-identical content from itself when reassembling itself.
QQ: v80.c is becoming hard to navigate at this size when editing it, but also having everything in a single file makes it easier to compile. I'm tempted to pull the polyfills (for missing libc APIs) and maybe some of the data structures (linked lists, hash tables, perhaps the tokenizer) into individual pseudo-headers.  That would mean adding -I$PWD/v1 to the compiler invocation to pull all that code back in (but still a single compilation unit), but would make editing and navigating the code a lot easier for me.  Do you have a preference?  I could be nudged either way quite easily...

QQ: v80.c is becoming hard to navigate at this size when editing it, but also having everything in a single file makes it easier to compile. I'm tempted to pull the polyfills (for missing libc APIs) and maybe some of the data structures (linked lists, hash tables, perhaps the tokenizer) into individual pseudo-headers. That would mean adding -I$PWD/v1 to the compiler invocation to pull all that code back in (but still a single compilation unit), but would make editing and navigating the code a lot easier for me. Do you have a preference? I could be nudged either way quite easily...

Thank you for hard work! Yes, you should split the code where you are essentially "patching" the base C-functionality; I fully expect that additional replacement functions may be needed for certain combinations of operating system and compiler -- C89 compatibility was very variable in compilers even late into the 90s! Such monkey-patching and non-portable considerations shouldn't factor into the code of v80 itself so that others may have an easier time fixing for their choice of compiler/OS.

Okay, all done @Kroc!
If I compile main.c from bootstrap to make a v80 executable on my machine:
$ cd bootstrap
$ cc -std=c89 -pedantic -ggdb3 -D_POSIX_C_SOURCE=1 -DNO_STRING_H -DNO_SYS_STAT_H -DNO_CTYPE_H -DNO_LIBGEN_H -DNO_SIZE_T -DNDEBUG -I. -o ./v80 main.c

And then use that to make a cpm_z80.com file for cpm (note the use of the simplified tbl_z80.v80 table to populate the instruction lookup table):
$  ./v80 -i tbl_z80.v80 ../v1/cpm_z80.v80 v80c.com

It produces identical bytes after recompiling itself with ntvcm (according to vbindiff):
$ ntvcm -l ../bootstrap/v80c.com cpm_z80.v80

And also identical bytes to recompiling sources with your most recent v80.com release:
$ ntvcm -l ../release/v80.com cpm_z80.v80

Incidentally the byte encodings for the set* instructions are the same as the res* instructions in your v2/is2_z80.v80 file.  I discovered and corrected those in my bootstrap/tbl_z80.com file when comparing binaries, but I haven't done a full audit to see if there are other typos in there.
If you like and merge this PR, I'll be happy to work on generating the is2_.v80 files from the simpler tbl.v80 tables when you've finalized the format.  Or to isa_*.v80 if you decide to abandon the v2 format.
Also, feel free to let me know if you have any suggestions for changes or improvements to what is already here.

Incidentally the byte encodings for the set* instructions are the same as the res* instructions in your v1/is2_z80.v80 file. I discovered and corrected those in my bootstrap/tbl_z80.com file when comparing binaries, but I haven't done a full audit to see if there are other typos in there.

I had seen this and fixed it, but maybe that was only on the v2 branch :/  I can't remember things straight. My son will be back to school next week and I'll focus on integrating your C version then. I think we should merge it in the current state to a separate branch; are you able to update the PR to use a different branch (or this something I need to do?)

Cool! I can definitely do it if you tell me what branch you'd like me to retarget to.  I think you might also be able to do it with the edit button near the very top of the PR page? Let me know whenever you're ready!


【BUG】Type '{ w: string; h: string; bg: string; }' is not assignable to type

Description
Type error occurs
CodeSandbox/Snack link
No response
Steps to reproduce
Set up as documented and copy and paste the Box.
<Box w="$20" h="$20" bg="$blue500" />

The given error translates to.
Type '{ w: string; h: string; bg: string; }' is not assignable to type 'IntrinsicAttributes & Omit<ViewProps, never> & Partial<ComponentProps<StyleProp, unknown, ViewProps>> & Partial<...> & { ...; } & RefAttributes<...>'.
I was expecting a type matching IntrinsicAttributes & Omit<ViewProps, never> & Partial<ComponentProps<StyleProp, unknown, ViewProps>> & Partial<...> & { ...; } & RefAttributes<...>, but instead you passed { w: string; h: string; bg: string; }.
Property 'w' does not exist on type 'IntrinsicAttributes & Omit<ViewProps, never> & Partial<ComponentProps<StyleProp, unknown, ViewProps>> & Partial<...> & { ...; } & RefAttributes<...>'.
You're trying to access w on an object that doesn't contain it. Learn more.
Type '{ w: string; h: string; bg: string; }' is not assignable to type 'IntrinsicAttributes & Omit<ViewProps, never> & Partial<ComponentProps<StyleProp, unknown, ViewProps>> & Partial<...> & { ...; } & RefAttributes<...>'.
Property 'w' does not exist on type 'IntrinsicAttributes & Omit<ViewProps, never> & Partial<ComponentProps<StyleProp, unknown, ViewProps>> & Partial<...> & { ...; } & RefAttributes<...>'
gluestack-ui Version
^0.1.3
Platform

[ ] Android
[X] Expo
[X] iOS
[ ] Next

Other Platform
No response
Additional Information
No response

Hey @ryuji-orca ,
Thanks for reporting. We will check this

Thats great. Let me know if I can close this issue if its resolved.

Sorry I forgot to close.
I'll close it now that it's resolved.


Hostprovider

Add variadic options to zk.Connect, and a HostProvider interface based on the Java code. An initial DNSHostprovider is the default, matching Java's implementation.

This has been running for two or three weeks now here at Square.
cc: @bwester

@zellyn how well has this library been working for you at square?

Awesome, this is great work and definitely needed. Thanks for submitting it. The connect options are a good call.

@talbright Fine so far, although tbh I haven't tracked how many consumers have redeployed their apps since I made the change…
Still, it's a pretty straightforward change, with pretty good tests: I don't think there's much to worry about. :smile:

@samuel fwiw, I don't think ConnectWithDialer is really used: I couldn't find any non-tests usages in SourceGraph.

I was more curious of your overall experience with go-zookeeper, as we are considering using it for one of our projects (we already have Zookeeper with Clojure clients). If you happen to know of an example of leadership detection in go-zeekeeper that would be awesome.
Apologies for hijacking the PR discussion :skull:

@talbright I'm zellyn@{twitter,gmail.com,squareup.com,etc.} if you want to chat offline. More info on our zookeeper experience from Josh Humphries, my manager: https://groups.google.com/d/msg/mechanical-sympathy/GmyKrZn2Zus/AgBGJZ-eBwAJ

Thanks for the info and offer, will reach out to you offline. :beers:

@zellyn Did you ever extend / implement a version of DNSHostProvider that (re-)resolves hostnames periodically / lazily / on error?

@dragonsinth nope - we have no custom code beyond what's in this repo. Our zookeeper hosts change extremely rarely, if ever.

Thanks for the info.  Not a huge issue for us either, but we run on Google Compute Engine and recently I had to avoid doing full machine destroy/creates on our ZK nodes after finding out the hard way in staging that none of our clients will try to re-resolve hostnames when the IPs change. :)

I'm guessing the change wouldn't be too difficult, though… :-)


Error while running requirements.txt

Hello, thanks for the great job,
I want to mention that I created my virtualenv and then I run the command : pip install -r requirement.txt
I got an error:

I dont know if I done something wrong but I think torch should not be a preliminary for a virtualenv.
Maybe you should fix this because when I installed torch==1.9.1 before run requirements.txt, the installation completed.

Hello, thanks for the great job, I want to mention that I created my virtualenv and then I run the command : pip install -r requirement.txt I got an error:  I dont know if I done something wrong but I think torch should not be a preliminary for a virtualenv. Maybe you should fix this because when I installed torch==1.9.1 before run requirements.txt, the installation completed.

Also I want to mention that as I run the commands for the installation, actually nothing installed in my env.
It need to install one-by-one manually the libraries from requirements.txt file.

@vrahnos3 thanks for the info! Worked one by one for me

I found out running pip install torch==1.9.1 before running pip install -r requirement.txt works


Incorporate and highlight Humanitarian ID in volunteer page

Based on the video, the initial desire is to have a well-established and universally used Humanitarian ID associated with volunteers, which is used to check in and out of the system.  Rather than having the user name in the top right corner, it should be a prominent part, along with the Humanitarian ID, and other possible details in a box on the top right of the home page:
HUID<PHONE_NUMBER>898
Joe Tester
Nutrition Cluster
This id can then be used in other related tool to coordinate resources.

@BillWagner What is the status of this issue?
When I go to the Humanitarian ID website the video of the app seems to be doing the same thing as the crisischeckin application or IS crisischeckin the app of the video?

In the blog entry on that website (http://humanitarian.id/h-id-authentication-service-goes-live/) I just read that they are aiming for may/june 2015 for others to integrate with their authentication service.

We are working with the folks at Humanitarian ID, and the intent is to have the two systems work together.
Ideally, HID manages authentication, authorization, and user management across multiple apps. Crisis Checkin will manage the volunteers checking in and out. HTBox (and others) will develop other applications that will leverage HID for authentication and authorization over time.
I'm going to move this issue to 'awaiting-requirements' until the APIs to leverage HID are clear.
Overall, it's exciting to see some of the vision come together. We want to reach a point where we have a 'toolbox' of apps that can be instantly deployed when disaster strikes, all linked together and sharing data. (see https://github.com/HTBox/HumanitarianDataBus for an initial project for sharing data across apps).


404

The following link leads to a 404:

To try out this scenario, see our JavaScript SPA calling Node.js web API using on-behalf-of flow code sample

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

ID: 68fccc30-d1f5-2b90-fdb1-8768b960ce46
Version Independent ID: ba1aae94-28b5-46e9-1eb7-8659d3b1b171
Content: Developer guidance for Azure Active Directory Conditional Access - Microsoft Entra
Content Source: articles/active-directory/develop/v2-conditional-access-dev-guide.md
Service: active-directory
Sub-service: develop
GitHub Login: @rwike77
Microsoft Alias: ryanwi

@eltronix
Thanks for your feedback! We will investigate and update as appropriate.

@eltronix
Thanks for your feedback! I've assigned this issue to the author who will investigate and update as appropriate.

Looks like the sample was removed (maybe deprecated).  I'm trying to see if there's a replacement.

Yeah, the sample was archived.  The closest replacement I could find is this React sample, which uses msal.js and call an Azure AD protected Node.js Web Api using on-behalf of flow:
https://github.com/Azure-Samples/ms-identity-javascript-react-tutorial/tree/main/6-AdvancedScenarios/1-call-api-obo
It also handles CAE claims challenges.
Hope that helps.

I updated the article as well.  I'll close the issue, now.  Feel free to re-open if necessary.  #please-close


Should the "returns" (plural) keyword link to "Type Constraint" in docs index?

The problem
Typing the word  returns  into the search box on the docs.raku.org home page does not bring up a link to the use of the "returns" keyword that enables a Type Constraint in a Signature. It only brings up a link to the .return Method page here: https://docs.raku.org/routine/returns
New users in particular may need to quickly see and compare returns (used as a type constraint) versus return (used for control flow), to understand which one is used where.
Suggestions
Add an index entry such that typing the keyword returns (plural) into the docs.raku.org home page links to the appropriate subheading on the Signature page here:
https://docs.raku.org/type/Signature#returns
Optional Section:
Looking at the bigger picture, is there a need to create an index category possibly entitled "Reference (constraint)" or "Reference (Type Constraint)" where similar keywords/symbols like  -->  ,  return type arrow  ,  returns , of  and  prefix(C-like) form  can all reside?

@jubilatious1 Now I see. From what I understand, whenever you type returns you'd also like to see a suggestion under the Reference category that links to returns.
@JJ Wouldn't adding the anchor X«|returns» in Signature.pod6 solve this issue?

@uzluisf Thank you! That's what I'm trying to say--that the drop-down list should be populated with at least two (2) choices for the keyword returns : Method => returns , and Reference => Signature literal  .   [ The '=>' indicates dropdown list navigation ].  The second link could me made directly to: https://docs.raku.org/type/Signature#returns .
Also, this returns 'word category' needs to be cleaned up: there shouldn't be so many choices populating the dropdown list, as many are spurious matches. For example, (using the screenshot above), I navigated the dropdown list to Reference => require   and was taken to the 'require' subheading on the Modules page: https://docs.raku.org/language/modules#index-entry-require . That page looks fine but the returns keyword doesn't appear in any code on that entire page.
I see a similar problem with Reference => Futures , syntax => require , method => feature ,  method => parents , method => restore ,  and method => rethrow . The keyword returns does not appear as part of the code on those respective pages.
AFAIK, returns should only link to doc pages like Reference => Signature literal ,  method => returns , class => Routine , and also should cross-reference to pages with the  --> synonym. I'm sure I'm missing a link or two, but that's for starters.


VisualTreeUtils: Improved API consistency, code cleanup

Description
As discussed in PR https://github.com/microsoft/microsoft-ui-xaml/pull/3082 this PR aims to improve the API surface of the WinUI internalVisualTreeUtils class. Namely the following:

Naming consistency: FindElementOfTypeInSubtree() has been renamed to FindVisualChildByType()
Parameter consistency: FindVisualChildByName() now takes a DependencyObject as argument just like FindVisualChildByType() (including matching parameter name)
Method call consistency: FindVisualChildByName() is now an extension method just like FindVisualChildByType()
Internal code cleanup: Pattern matching, more compact code,...

Originally, I had planned to make this PR only after PR https://github.com/microsoft/microsoft-ui-xaml/pull/3082 had been merged into master but unfortunately, that PR might take some more time due to as of yet unresolved test failures. I don't want to have this work item waiting until then.
Important
Once this PR has been merged into master, any open PR adding new FindElementOfTypeInSubtree() calls needs to merge with master first. As far as I can tell though, no currently open PR not authored by me (I made a note for my PRs - if required) adds new calls to FindElementOfTypeInSubtree() right now.

Looks like Helix and the AppbarButton visual tree verification test seem to be the reason for the test failure (again). In multiple PRs, the AppbarButton visual tree verification file seemed to have caused this or at least show up in the "files that need to be changed" list. Should we disable that specific test until we figured out why this keeps coming up?

This PR #3446 should fix this issue for this and many other of the pipeline failures.

/azp run

@Felix-Dev This also relates to the old discussion in  #1331. Perhaps the two topics could be merged together and both addressed by this PR.

@Felix-Dev This also relates to the old discussion in #1331. Perhaps the two topics could be merged together and both addressed by this PR.

This is a test infrastructure/code update as opposed to #1331 which is feature request for the platform.


Sorted Songs in Songs list

Solved issue #54

@sanket143 @janvig please review this PR.

You need to make following changes in https://github.com/AjaysinhRajput2802/MJam/blob/iss54/scripts/components/content.js#L46
-      console.log("Updated")
-      return Object.values(state.songsMap)
+      let songs = state.allFiles.map((item) => {
+        return state.songsMap[item]
+      })
+      return songs

@sanket143  made all changes requested by you and additional change to solve "title not defined" error.

@AjaysinhRajput2802  solve lint errors

give @AjaysinhRajput2802 75 points


Adaptive title based on router

Is there a way to have the title adapt based on the route that the app may be on?
Ideally something integratabtle at the component level or routes level.

Yes but depends a lot on your other technologies.

I ended up using https://github.com/nfl/react-helmet in case anyone is look for an alternative response also


need more clarity

Can you please provide more details on below statements as i finding difficult to follow using Visual code.
"Browse to Azure Templates.
In Filter by title, enter storage accounts.
Select Reference/Template reference/Storage//Storage Accounts as shown in the following screenshot"

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

ID: 76e8399a-44d0-f8d6-fc55-29e89674faac
Version Independent ID: 8299d108-b008-1bf8-b6e6-b50a952f5dd8
Content: Utilize the Azure Resource Manager template reference
Content Source: articles/azure-resource-manager/resource-manager-tutorial-create-encrypted-storage-accounts.md
Service: azure-resource-manager
GitHub Login: @mumian
Microsoft Alias: jgao

@dlenin - Thank you for your feedback.  I  have made some changes to the article.  The changes will go live later today.  See this process helps:

Open "https://docs.microsoft.com/azure/templates/" in a web browser.
Select the "Filter by title" textbox in the upper left corner on the page, and then enter "storage accounts".
Expand "Reference/Storage/2018-07-01", and then select "Storage Accounts".  You shall see the template reference in the main pane.

#please-close

@mumian Thank you!


Support Partition fiter with trino function

Support partition filter with function like
select * from table where fun(partition_column) = xxx

Maybe we should support this in paimon-core first?

@shidayang
Can you rebase main? I think again about this feature, maybe it is not the time to push this into paimon-core.

@shidayang
Can you rebase main? I think again about this feature, maybe it is not the time to push this into paimon-core.

done


Test pull requests from @SkyaTura

Test #130, #131 and #132 through #133

To test #127 exactly, need to create a new independent repository.


added some more cleanup tweaks

More cleanup tweaks using

apt-get clean

rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*

removing downloaded packages and packages list will free up some space ,
results in smaller image size.


[KHAOS EFFECT] Subweapons Only

Name
subsonly
Description
Alucard can only use subweapons for a limited time. Gives Cube of Zoe if the player doesn't already have it as well as a certain amount of hearts if the current amount is below a certain threshold for that duration.
Duration
3 minutes or so
Example

Will look into this soon. Three minutes is a very long time for this game though.

Subweapons Only has been added in 0.1.3


DGML generation seems to be broken

While trying to generate DGML output of a very large BuildOutput of assemblies I receive different error codes
ApiPort.2.7.0 Run from Windows Powershell:
.\ApiPort.exe analyze -f .\source\BuildOutput -t ".NET Standard, Version=1.3" -r DGML -o DependencyReport_Standard1.3.dgml

Error codes
first run:
There was an unexpected error.  Please try again or contact<EMAIL_ADDRESS>for help.

Once:
There was an unknown error code from the service: 'BadGateway'.  Please make sure you have the most up-to-date version.

Several:
There was an unknown error code from the service: 'InternalServerError'.  Please make sure you have the most up-to-date version.

Edit: I re-ran with Excel output and it worked this time. DGML still broken.

@vruss Thanks for reporting the issue. Does the same issue repro if analyze smaller binary?

I'm getting this now when I run this on this repo:
https://github.com/dotnet-architecture/eShopModernizing/tree/master/eShopLegacyMVCSolution
Using latest version downloaded today and VS2019.

This looks like a duplicate of #896

Is there an update on this issue?

Is there an update on this issue?


Escaping of resource uris

This storage target does not escape special characters in filenames like +.
E.g. it returns this link: https://psmb-neos-resources.hb.bizmrg.com/target/sfi/c0b7e1d5d93536e0c87755e70def6ac8fe3aeecf/__IGP7679%2B.jpg
Instead of: https://psmb-neos-resources.hb.bizmrg.com/target/sfi/c0b7e1d5d93536e0c87755e70def6ac8fe3aeecf/__IGP7679+.jpg

TBH I don't know if this actually still is an issue…

This should be solved with https://github.com/flownative/flow-aws-s3/blob/28ab7810bddd91111f2c9f12a6b56e726514c287/Classes/S3Target.php#L466


Improve documentation links

Update links that were relying on redirects
Configure links to allow localization where available

Some of the docs.github.com links are failing the CI check with a 403 status, even though they load fine for me in my browser.
This problem was already happening before the changes proposed here:
https://github.com/arduino/tooling-project-assets/runs/5994420427?check_suite_focus=true
It was these spurious failures that motivated me to update the redirecting links, with the idea that maybe all the redirects were somehow causing the link check workflow to pass a threshold where anti-DDoS measures kick in on GitHub's documentation servers. Sadly, it does not seem to have helped, but I think the change is beneficial even though it does not fix the problem of the failing link check.
As for the issue of the failing links check (unrelated to this PR), this class of problem has resolved itself in other cases. If that does not happen, I can add the 403 status to the markdown-link-check tool's allow list as a workaround.

As for the issue of the failing links check (unrelated to this PR), this class of problem has resolved itself in other cases. If that does not happen, I can add the 403 status to the markdown-link-check tool's allow list as a workaround.

If it's an anti-DDoS measure, it would be possible to have a retry mechanism or a "delay" one?


can not docker build on main branch

Problem Description:
can not docker build.
docker compose -f "docker-compose.yml" up -d --build

Error Message (if any):

I faced the same issue. If you change the first line of the Dockerfile to the following, it works:
FROM python:3


Update MForge.cs

Hi! I wrote a new Forge installer where many bugs were fixed.
✅The Forge developer support system has been added. After each use, the Forge advertising page opens
✅ Support for launching newest type versions (1.17 - 1.20.x)
⚠ To install the latest versions, you must use Java 17.x.x, that is, when initializing the MForge object, you must specify the path to javaw.exe it is this version.
✅ Support for launching new type versions (1.12 - 1.16.x)
✅ Support for launching a version with a changed name (1.10 - 1.11.2)
✅ Support for running old-type versions (1.8 - 1.9.4)
✅ Support for running legacy-type version (1.7.10, others have not been tested)
✅ Automatic system for changing links from the minecraftforge.net
✅ Fixed the bug of installation errors of some versions due to parallel downloading and configuration. (The forge configuration files were used before they were downloaded.)
✅Quick launch of the version if it is already installed. You can disable it
✅Automatic installation of the vanilla version if it does not exist.
✅Fixed a bug installing the client side.
❌Does not have an action logging system
⚠You need to install HtmlAgilityPack!!!
If you find bugs, then contact me @Tartilla_ (Discord)

I have tested the following versions:
✅1.20.1
✅1.20
✅1.19.4
✅1.18.2
✅1.17.1
✅1.16.5
✅1.12.2
✅1.11.2
✅1.9.4
✅1.7.10

You can add new commit on existing PR instead to create new PR!
previous PR and discussions about advertisement: #83

I don't usually use Github, so I don't know such subtleties :(

What about to maintain forge installation feature on seperated package?

New dependency HtmlAgilityPack is only required for Forge installation. Launcher developer who does not want to use this feature are forced to install unnecessary package.

Forge installation feature is not much related to other features. Seperating packages would help flexible update.

I can create new repository  CmlLib.Core.Installers.Forge, and I can give you a permission to commit directly to the repository. (collaborator)

Yes, let's do that.

move to CmlLib/CmlLib.Core.Installer.Forge


bug(rust/gui-client): sentry may not catch errors for the tunnel daemon (IPC service)

Add --panic and --error flags like the GUI process has
Check if Sentry catches those
Fix it if it doesn't

Instrument has been shown to be working.


Update README.md

Update some minor typos

@waynevanson you're very welcome!
Sorry for the commit message that is very… well, GitHub-based, I should have wrote something like docs(README): fix typo. Feel free to delete the PR and make my modifications on the next release without me if that bother you in any way.
Thank you for your awesome plugin, I love to use it. What an API you have there!
Keep up the good work.
Cheers!

Don't worry about it now, but you could've used git commit --amend, followed up by pressing keys  :wq sequencially and finally force pushing with git push -uf origin patch-1
Thank the creators.


Switch to latest remoting version 3.34

The latest version of remoting contains changes allowing to connect to a headless Jenkins like Jenkinsfile Runner.
We need this to run Jenkinsfile Runner on Kubernetes in combination with the Kubernetes plugin.
@jeffret-b @oleg-nenashev

@oleg-nenashev Can this Pull Request be merged and released?
@jeffret-b thanks for the quick approval

I would rather prefer to wait until https://github.com/jenkinsci/remoting/pull/345 is merged and released. I have stepped down as a maintainer of this repo in Dec 2018. I can find some to do the release, but I would rather prefer doing for a version without known regressions

On it. Will try to introduce changelogs while I am on it

Waiting for CI to actually run. I hope to have a release by tomorrow EoD if it passes


Added Moonbeam compatibility

This PR adds the necessary changes so that the Truffle script works for deploy the contracts into Moonbase Alpha, the Moonbeam TestNet.
Currently, we don't support the usage of hd-wallet-provider, as one of the dependencies that it uses has "baked-in" the chain Id of known Ethereum Networks. Thus when you point it to Moonbase Alpha, the Chain Id is not recognized and so it is not included in the tx, making the signature invalid. Consequently, the transaction is rejected. We are currently working with Truffle to solve this issue.
In the meantime, we've programed a provider (file private-provider.js) which uses the web3-provider-engine and ethereumjs-wallet libraries. For this specific setup, you need to provide a private key instead of the Mnemonic:
export PRIV_KEY="enter-private-key-here"

You can find more information regarding Moonbeam in the following URLs:
Moonbeam Network:  https://moonbeam.network/
Documentation site: https://docs.moonbeam.network/
Discord Channel: https://discord.gg/PfpUATX

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.Alberto Viera seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account.You have signed the CLA already but the status is still pending? Let us recheck it.


[WIP] Add magnetometer for Android

:sparkles: What kind of change does this PR introduce? (Bug fix, feature, docs update...)
Feature
:arrow_heading_down: What is the current behavior?
No Magnetometer support
:new: What is the new behavior (if this is a feature change)?
Added initial code for Android
:boom: Does this PR introduce a breaking change?
No
:bug: Recommendations for testing
:memo: Links to relevant issues/docs
Base for https://github.com/BaseflowIT/flutter-geolocator/issues/86
:thinking: Checklist before submitting

[ ] All projects build
[ ] Follows style guide lines (code style guide)
[ ] Relevant documentation was updated
[ ] Rebased onto current develop

We'll move this to it's own plugin.


"Recent" in the taskbar right-click menu works odd

Explain the bug

"Recent" in the taskbar right-click menu won't refresh
it shows folders that I never used this app to open

To reproduce

Navigate anywhere
Right click on it to take a look

Expected behavior
Show folders I really viewed recently. And even better, show them if I didn't just walk through the folder, show only if I executed some files inside.
Logfile
debug.txt
debug_fulltrust.txt
Tell me if I uploaded the wrong file.
System Information

OS Version: Windows 10 20H2 19042.867
App version: v<IP_ADDRESS>

Additional comment
This problem always there, it doesn't disappear by restart it.

@Josh-65 It's been so long since I last use this app!
I've just downloaded again, and it seems that this is fixed.
Thanks for everyone who contributed this app!


#155615662 - Implement feedback from review session

What does this PR do?

Implement feedback from my review session

Description of Task to be completed?

fix all issues mentioned during feedback session

How should this be manually tested?

Clone and setup this repo locally

Any background context you want to provide?

None

What are the relevant pivotal tracker stories?
https://www.pivotaltracker.com/story/show/155615662
Screenshots (if appropriate)
Questions:
N/A

Pull Request Test Coverage Report for Build 55

34 of 40 (85.0%) changed or added relevant lines in 7 files are covered.
8 unchanged lines in 3 files lost coverage.
Overall coverage increased (+2.7%) to 81.087%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

server/controllers/userController.js
6
7
85.71%

server/controllers/ratingController.js
2
3
66.67%

server/controllers/ideaController.js
13
15
86.67%

server/controllers/commentController.js
6
8
75.0%

Files with Coverage Reduction
New Missed Lines
%

server/controllers/commentController.js
1
55.26%

server/controllers/ideaController.js
1
68.97%

server/controllers/userController.js
6
76.56%

Totals

Change from base Build 53:
2.7%

Covered Lines:
279

Relevant Lines:
324

💛  - Coveralls


404 page does not exist

After the successful deploy of build the webpage is working good, but the problem is when I try to  change the page it is showing  404 error.
Provide additional details
version: 1
frontend:
phases:
preBuild:
commands:
- npm ci
build:
commands:
- npm run build
artifacts:
baseDirectory: dist/retur-nation-fe
files:
- '/*'
cache:
paths:
- node_modules//*
What AWS Services are you utilizing?
AWS Amplify
Provide additional details e.g. code snippets

Hi @otaku0304 thanks for raising this issue. We need some more details in order for us to troubleshoot this issue. Please either fill out the Bug Report template or respond with your App ID and region.

Looking at your screenshot and baseDirectory setting, it appears you are using localization with an Angular application which Amplify Hosting does not support at this time. Apologies for the inconvenience. Closing as a duplicate of #3016


Where are HX files supposed to go?

Describe your problem here.
Im trying to make a Kade Engine styled Psych Engine using 0.7.1, im confused on what folder to put it in, infact, theres no HX folder.
Can someone help me with that?
Are you modding a build from source or with Lua?
Lua
What is your build target?
Windows x64
Did you edit anything in this build? If so, mention or summarize your changes.
No response

they are the same as lua but just sscript


Make GET support plugable

Currently Get defaults to documentation. It would be good to support multiple plugins like documentation, GET service mappings, files for SPA, etc.

This is implemented v5


Supports request ec2 spot instance

Add --amazonec2-request-spot-instance and --amazonec2-spot-price flags for ec2 driver. Fixes #226
func "create" will wait for spot request fulfillment(set timeout in future), and log.Infof the spot request status every 5 seconds;
Signed-off-by: Qicong Chen<EMAIL_ADDRESS>

Thanks for the contribution!  I'll get this reviewed today.

overall this looks pretty good.  would you mind doing a rebase so we can get it merged?  thanks!

Thanks! I will do it.

Hi @ehazlett, I got it rebased.

@qicongchen i'm not sure what happened but there are a lot of merge commits here.  you should be able to git rebase -i master to just put yours on top.

What about now @ehazlett ?

Made a few comments about logging.  After those this should be ready.  Thanks!

Hi @ehazlett , I got them fixed.

Carrying this in #1000 to update the message.  LGTM


Deploying Operator Programmatically

Type of question
Deploying Operator
Question
What did you do?
I have created an operator and a CLI tool to manage CRs. I want to deploy the operator to Kubernetes (CRD and Controller) programmatically with go-client. Is there an easy/built-in way to do this?
Environment

operator-sdk version: 0.19

8e28aca60994c5cb1aec0251b85f0116cc4c9427

Hi @iboware,
I am assuming that you are looking to do it because you need to add an operator which depends on another one. Am I right? If yes, the recommendation would be using OLM Dependency Resolution for it.

Hi @camilamacedo86 thank you for your reply. No, I am doing it to make it easy for people who has not much knowledge about Kubernetes and Operators for simplicity. I want to deploy the operator via the CLI utility.
Simply, I want to achieve something like this:
pgctl init --kubecluster EU1 #this will deploy the operator to the kubernetes cluster
pgctl create cluster test-postgresql --replicas 5 --kubecluster EU1 #this will apply the CR to the initialized cluster.

this is my repo: https://github.com/iboware/postgresql-operator

Hi @iboware,
Currently, to deploy your project the steps would be only :
make docker-build docker-push IMG=<some-registry>/<project-name>:<tag>
make install
make deploy IMG=<some-registry>/<project-name>:<tag>

Also, see that you can customize your makefile. So, I'd recommend you use it, for example:

You can set here a specific image

# Deploy controller in the configured Kubernetes cluster in ~/.kube/config
deploy-master-img:
	make install
        make deploy IMG=myregistry/myproject:master //Set here the data over an image that is built already
        kubectl apply -f config/samples/mysample.ymal

Then, to see the operator deployed you would just run make deploy-master-img and you can use the kubectl CLI to update the CR specs. So, it would be something as
make deploy-master-img
kubectl patch --namespace=<namespace> <kind> <crName> -p '[{"op":"replace","path":"/spec/replicaCount","value":5}]' --type=json

which would be equivalent to :
pgctl init --kubecluster EU1 #this will deploy the operator to the kubernetes cluster
pgctl create cluster test-postgresql --replicas 5 --kubecluster EU1 #this will apply the CR to the initialized cluster.

Also, you can integrate your project with OLM and provide your operator in its catalogue which would allow a user to install/manage the project via cliques and ab UI. See https://operatorhub.io/.
Please, let us if it help you with.

@camilamacedo86 Thank you, your final idea about running make targets seems very appealing. I just did not want to execute any commands thinking of dependencies to be installed. Thanks also for the tips about makefile customizations. I will also look into OLM.


Empty browser windows  get opened during update

So here is what happened:
SyncTrayzor 1.0.12 asked for being updated when the computer was launched,
no other program was running then.
I accepted and it opened two Firefox windows with

the GitHub page and no other opened tab on one, and
no tab at all on the other.
As I closed the browser the last time I had 2 windows with about 140 tabs per window.
I have had access to the last session restore recent function in the tool menu so nothing was lost.

Maybe my session was still somewhere else, but the two windows led me to think that it was gone.
I used to have the same kind of problem with the flash player updates, each time having to restore sessionstore.js (until I removed it). But as I said maybe the issue is on my side. And I don't know how the session manager works now.
Regards...

Thanks for reporting this.
OK, so the issue is that:

An empty window was opened.
Asking Firefox to open a web page caused it to forget about your previous session.

Is that fair?

I'm not sure why two browser windows were opened - I think that's some custom configuration you've got in Firefox. SyncTrayzor asks the OS to open a single URL, and on my system that results in a single browser window.
If you go to menu (the 3 horizontal stripes in the top right) -> History -> Restore Previous Session, Firefox should restore your previous session. Again, I don't think there's a lot I can do here: I'm just asking the OS to open a URL using a suitable browser.
My understanding is that Session Restore is more like a backup than anything else: it's like deleting your files assuming you can restore them from the Recycle Bin, then being upset when the Recycle Bin is emptied. To improve on this, you can either install an extension such as Session Manager (which does properly and permanently store your sessions), or save all tabs as bookmarks in a folder before exiting (much as you'd save a Word document before exiting).
Starting with the 1.0.13 installed version (not portable), upgrades will (well, should!) be done semi-automatically, without a browser window needing to be opened, but there are plenty of other places where you can get SyncTrayzor to open a browser window.

As in experiment, could you open up the Run dialog (windows + R, or it's in the start menu somewhere), enter 'http://www.google.co.uk', and hit 'OK'? I want to see whether that opens 1 or 2 windows. Thanks!

Thanks for the tips regarding Firefox.
I can add that on a computer with the browser already opened it just opened a new tab.
I'll do what you say as soon as I get to see the right computer.

OK great, thanks!

Hi again, it does what I would have expected:
it opens the two windows with all their tabs and adds the google tab in one of them.

OK, so I don't think there's anything I can do here: something in your system setup is causing two windows to be opened even though we only ask for one. Are you happy for me to close this?

I dont get what you mean.
On this computer I use Firefox with two windows at the same time because I have so many tabs (I hope the situation won't last too long, though). So I'm happy with what I got following your instructions, that's what usually happens with links comming from other programs. It is a bad surprise when things don't work this way, but I can get around.
Anyway this is not important since you told that soon the upgrades won't open a browser window/tab!
So OK, you can close this, and sorry for the inconvenience.

Aha, I mis-understood: I thought that two windows were unexpected. No worries - thanks for helping to investigate this. Maybe I should make it clearer in the UI when clicking something will open a browser window...

Turns out I messed up the auto-upgrader in v1.0.13, so v1.0.14 will have to be installed manually. v1.0.15, however, should install in a much nicer way :smiley:


Add visual search capabilities

Visual search capabilities include

search for images with content matching a query text
search for images visually similar to a query image

An initial commit supports visual search in the LAION 5B dataset via the API of a public demo search engine.
Examples

Search with query string "a photo of a cat sitting on a table" and then modify the photo

Generate a photo and then use the generated image as query image

Generate a photo and then a caption. Then search for an image matching that caption.

Planned extensions

Extended the application and the demo UI to support tools that return more than one image. Currently only the top scoring image from a search result is returned and displayed.
Support other visual search engines (Google, Microsoft, ...)

Known issues

Sometimes, latency of the public LAION-5B search engine is quite high (~ 10 seconds).


ENH: correct p-values for stats.kendalltau and stats.mstats.kendalltau

The exact method of computing the p-value is implemented (see #8456).
It is used automatically for small samples or when the user
explicitly demands it. Otherwise the existing asymptotic method
is used.

Do you know a reference that is available online where the formulas you added are shown? I could not find the book by Kendall to read online.

@chrisb83 Sorry, I'm not aware of an online source. If necessary I could summarize the method here, but it's really just a counting scheme to determine how many permutations of a set of distinct numbers lead to a given number of concordances/discordances. The resulting number is then divided by the total number of permutations n!.

Is there anything else that still needs to be done here? Please let me know, thanks.

@Konrad0 could you please rebase this? Also, API wise I'd prefer method='auto' over 'automatic', because this is used in a couple of other places already (signal.correlate/convolve, sparse.csgraph.shortest_path).
The changes look good to me overall. Unfortunate that there's no online reference. @josef-pkt do you happen to be familiar with this exact method?

@josef-pkt thanks for the review! @Konrad0 I did the rebase and pushed it to your branch.

@rgommers, @josef-pkt: Sorry for the delay, thanks to you both for the rebase and review! I'll implement your suggestions in the next few days.

@rgommers, @josef-pkt: Alright, I finally managed to implement your suggestions, see the latest commit. Let me know if there's anything else to be fixed, besides the performance improvement discussed above.

Using "auto" as default is ok, but is not backwards compatible in that it switches the algorithm for small values.

@josef-pkt if I understand correctly, with the exact method we'll get non-identical but "more correct/accurate" answers in this case. I wouldn't call that a backwards compatibility break.

looks good to me overall now, just made one more minor comment.

@rgommers Thanks for the comment, I implemented the change for stats as well as mstats and added tests.

So are we good to merge @rgommers, @josef-pkt?

LGTM now, merged.
ignore the test re-runs, I just rebased for a conflict in THANKS.txt; tests of the last commit were all green 10 minutes ago.

Thanks @Konrad0 and @josef-pkt!

Thanks to you both for your support, I'll work on the suggested performance improvement as soon as time permits.

It looks like this caused errors in master due to using a np.sum(generator). PR forthcoming to fix


IDO pool example

An IDO pool implementation based on the token sale described in the Mango Markets' litepaper. https://docs.mango.markets/litepaper#token-sale

This version is feature complete and test complete, subject to code review and any strongly justified feature requests.


Bump SCIM and kernel versions to get group uuid improvements

Purpose
Bump SCIM and kernel versions to get group uuid improvements

PR builder started
Link: https://github.com/wso2/product-is/actions/runs/7775028856

PR builder completed
Link: https://github.com/wso2/product-is/actions/runs/7775028856
Status: success


chore(lockfile): Update lockfile missed earlier

[x] Your pull request targets the staging branch of freeCodeCamp.
[ ] Branch starts with either fix/, feature/, or translate/ (e.g. fix/signin-issue)
[x] You have only one commit (if not, squash them into one commit).
[x] All new and existing tests pass the command npm test. Use git commit --amend to amend any fixes.

[x] Small bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds new functionality)
[ ] Breaking change (fix or feature that would change existing functionality)
[ ] Add new translation (feature adding new translations)

[x] Tested changes locally.
[ ] Addressed currently open issue (replace XXXXX with an issue no in next line)

Closes #XXXXX

missed updating the lockfile in #17030

I had missed checking that the package.json was updated to add pm2 locally, while the lockfile was not updated.
I have fixed it. Can someone give this a merge? /cc @freeCodeCamp/moderators


MDS Nodes not configured on same mcast port

Description
While adding managed servers the two mds nodes were not configured on the same mcast port.

Repro

Install IML 5
Add managed patchless servers

Version
What version of IML? 5.0
What Operating System? CentOS
What Operating System version? EL 7 3.10.0-957.5.1.el7.x86_64
iml-diagnostics
sosreport-adm.tar.xz.zip
sosreport-mds1.tar.xz.zip
sosreport-mds2.tar.xz.zip
sosreport-oss1.tar.xz.zip
sosreport-oss2.tar.xz.zip

Debugged this a bit, it appears that the nodes don't want to deal with each other
each node has a single entry in it's nodelist, and I see this in output:
May 07 01:27:49 mds2.local corosync[14863]:  [TOTEM ] Incoming packet has different crypto type. Rejecting
May 07 01:27:49 mds2.local corosync[14863]:  [TOTEM ] Received message has invalid digest... ignoring.
May 07 01:27:49 mds2.local corosync[14863]:  [TOTEM ] Invalid packet data

The crossover cable appears to be wired correctly

I think this all stems back from choosing different mcast ports. It appears each node creates a single-node cluster and it all goes downhill from there.
The workaround is to remove the node and add it back, but we should prioritize fixing this as it is also hitting our testing fairly regularly.

Fixed by https://github.com/whamcloud/iml-agent/pull/95


Spell casting velocity issue [MAGIC 6.2.2]

http://pastebin.com/raw/mQEWAqdq

Do you know what spell is causing this? Push, Pull or something else?
May be fixable with some config changes to the offending spell, I assume entity velocity checks have gotten more strict, though I have not seen these errors myself.

This was caused by repeatedly spamming fling above the height limit, or just general spam .

I never could get this to happen, and this message does not appear anywhere in Spigot/CraftBukkit code.
Was this paper spigot or something?


Lack of consistent nomenclature

You install a small instrumentation package in your application, and set up an "Application Insights" resource in the Microsoft Azure portal. The instrumentation monitors your app and sends telemetry data to "Azure Monitor". (The application can run anywhere - it doesn't have to be hosted in Azure.)
The interchange in the usage of "Application Insights" and "Azure Monitor" can lead to confusion when the beginners are reading this page.

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

ID: 3de928ad-68c6-d30b-bc63-3354b76c149f
Version Independent ID: cbd03b5d-7f6b-b483-6ddf-4fe4cde5e9ec
Content: What is Azure Application Insights?
Content Source: articles/azure-monitor/app/app-insights-overview.md
Service: application-insights
GitHub Login: @mrbullwinkle
Microsoft Alias: mbullwin

@MLopesSousa Thank you for bringing this to our notice, we will look into it and get back to you shortly. Thank you

@MLopesSousa thanks for calling this out. Since Application Insights is now part of the Azure Monitor service rather than a standalone service it makes some of the references a little less intuitive than we would like. We currently are in the process of refactoring the overview article to make sure the first thing it says at the beginning of the article is to state that Application Insights is now a part of the Azure Monitor service to help make references like the one you called out less confusing for people who are new to the Azure Monitor service.

@MLopesSousa Hope the above information shared by @mrbullwinkle helps clarify your query . Will go ahead and close this issue for now, however if you have further queries please feel free to tag us in your reply and will be more than happy to take the conversation forward. Thank you.


Changed manifest.yml to handle random route.

People are doing a git clone, then a cf push and it fails because the route is taken. Adding random route to remove error for this hello world.

Thanks @ccwu-at-pivotal. The random-route issue should be resolved by this commit: https://github.com/cloudfoundry-samples/dotnet-core-hello-world/commit/b6a0957ee4d97ad90aa04c51aae4fb36fc17bd7f


Selected CirclePicker is barely visible

Hi, when I pick a color and pass the onChangeComplete method I cannot see (on the circles themselves ) which color was selected beside some blaring background. I do not wish to add the selected color to my editor, the user should be able to see clearly his current choice. Could you assist or add a 'selected' field?
Thanks

Hi, same problem here, any solution ?

Hi, same problem here, any solution ?

I just built one myself .... I found that it takes me twice the time at least to understand how a component is built than to build one myself...

I have same problem too


Update libtiff v4.4.0

The third-party libtiff is rather old and out dated.

@dzenanz  The current ITK/Modules/ThirdParty/TIFF does not have a sub-tree. How does one initialize using sub-trees and the UpdateFromUpstream infrastructure?

For vanilla initializing subtrees: add a remote of the library you want to add (libtiff), fetch, then merge with main repository.
For starting a new subtree using UpdateFromUpstream infrastructure: I don't know, I have never done that. I have only made changes to existing third-party libaries and their update scripts.
@bradking should be able to advise, or maybe even get it started for us?

For reference this was the last update to the library:
54c790a509c33b3ee176ae5bfef7292d959c3c30
There are a lot of upstream changes, and not many local changes. So starting with a fresh upstream is reasonable IMHO.

I'll take a look at importing a new tiff.

Linking some related and possibly related issues:
#4777
#2959
#4102

As a first step, #4957 rebuilds the existing tiff 4.0.3 import with our modern history structure.  That will make the update to a newer tiff version much easier.

FYI:  Initial 10-minute attempt to update to v4.7.0.    I don't have time to continue working on this at the moment.
Some file names have changed, so we need to update the updater script.
0001-ENH-Update-to-latest-v4.7.0-libtiff-codebase.patch

FYI: Initial 10-minute attempt to update to v4.7.0. I don't have time to continue working on this at the moment.
Some file names have changed, so we need to update the updater script.
0001-ENH-Update-to-latest-v4.7.0-libtiff-codebase.patch

Yes, lots of changes have happened in the last 10 year. They also add CMake instrastructure. I had not had the change to determine if it was usable or not yet.

For reference, VTK has imported tiff 4.6.0 and uses the upstream's CMake code with some patches.

These look like the changes VTK made:
https://gitlab.kitware.com/third-party/tiff/-/compare/v4.6.0...for%2Fvtk-20231025-4.6.0?page=2&straight=true
It appears VTK make their third party changes in a separate repository,  then form the sub-tree via a script which is then merged into the main-line of the VTK repo.

Yes, VTK's approach has the advantage that the changes from upstream are recorded independently from VTK. It has the disadvantage that an extra repository is needed with VTK-specific tags.
With the tiff 4.0.3 re-import done, I'll move on to an actual update in ITK.

Awesome, I just started to make changes in to libtiff library to get it to configure, but I'll leave it to you!

@blowekamp I don't know how soon I'll be able to get to it, so if you've made progress, go ahead and continue.  I can help structure the history once you have something working.

After merge of #4961, there are some build issues when DCMTK in enabled that I am investigating.

itktiff has been updated to 4.7.0.


License of Images?

Hello,
I was wondering where you got the images from. I want to use your database, but I'm not sure if the images are royalty free, so I wanted to ask about it.
Thank you!

Hi, this project is a fork/reworking of exercises.json inspired by this issue the derived project is licensed using Unlicense license though I actually have no idea where the images are from or if they are royalty free so usage would be at your own risk (i will update the README to make this clearer)
Ideally i'd love some known royalty free imagery, perhaps even via generative AI but i'm not sure if it's quite there yet

I see. Thank you for answering!


bootstrapping more than once problem

Hi,
i transitioned to this library from SEAL because of CKKS bootstrapping.
For starters I just wrote one ciphertext - ciphertext multiplication, then rescale then bootstrapping and it worked fine, meaning the
result after bootstrapping was good enough.
Then I tested two bootstraps in the row: ciphertext - ciphertext multiplication, rescaling, bootstrapping and again on resulting ciphertext: ciphertext - ciphertext multiplication, rescaling, bootstrapping and result is very much off.
Pseudocode:
ciphertext1 = Enc([1.0, 1.0, ..., 1.0])
ciphertext2 = Enc([3.0, 3.0, ..., 3.0])
ciphertext1 = ciphertext1 * ciphertext2
evaluator.SetScale(ciphertext1, params.scale())
ciphertext1 = bootstrapper(ciphertext1)
ciphertext1 = ciphertext1 * ciphertext2
evaluator.SetScale(ciphertext1, params.scale())
ciphertext1 = bootstrapper(ciphertext1)
Code: https://pastebin.pl/view/b6cffc02
Output:
CKKS parameters: logN = 16, logSlots = 15, logQP = 1521, levels = 25, scale= 2^45.000000, sigma = 3.200000
ciphertext1 fresh (level/scale):  24 45
ciphertext1 after multiplication (level/scale):  24 90
plaintext after multiplication:  (3.000000150894784-2.707561827248977e-08i)
ciphertext1 after setScale (level/scale):  23 45
plaintext after setScale:  (3.000000151844232-2.71851598944193e-08i)
ciphertext1 after bootstrapping (level/scale):  10 45
plaintext after bootstrapp:  (2.9998322935427497+1.2314033711896221e-06i)
ciphertext1 after multiplication (level/scale):  10 90
plaintext after multiplication:  (8.999496993467984+3.6738101362829465e-06i)
ciphertext1 after setScale (level/scale):  8 45
plaintext after setScale:  (4.64277915039133e-11+1.7291085069162014e-11i)
ciphertext1 after bootstrapping (level/scale):  10 45
plaintext after bootstrapp:  (-2.5712217415452037e-08+3.0729998052670696e-06i)
So, it seems like everything is fine until second SetScale where ciphertext suddenly drops two level instead of one.
On another note, how to setup small parameters to fasten up bootstrapping, completely disregarding security. Its very counter-productive that i have to wait for so long everytime i run some tests of bootstrapping?

Hi vidstrancar,
First, thank you very much for providing the code, it helped a lot find out what is going on.
All that needs to be done to make your code work is replace
evaluator.SetScale(ciphertext1, params.Scale())
by
evaluator.Rescale(ciphertext1, params.Scale(), ciphertext1)
Indeed, the primary way of managing the scale with Lattigo is the evaluator.Rescale(*) method, which divides the ciphertext by the next modulus in the moduli scale.
On the other hand, evaluator.SetScale(*) aims at changing the scale of a ciphertext to an other scale that is very close (ex, your scale is close to a power of two and you want to make it change to that power of two). It will multiply the ciphertext by the integer round((target_scale * qi)/ciphertext_scale) where qi is the next modulus in the moduli chain, and then divide by qi. If ciphertext_scale >> target_scale * qi, then the value becomes zero and all the values of the ciphertext are set to zero. Hence this method shouldn't be used on a ciphertext that is not yet rescaled. The behavior of this method is not well documented, and we will update that.

Just replacing SetScale with Rescale in my code resulted in a crash (exit status 2, whatever that means...), but according to the comment in the ckks bootstrapp example you provide, there is a line in comments that says: "// To equalize the scale, the function evaluator.SetScale(ciphertext, parameters.Scale) can be used at the expense of one level."
So, keeping your answer in mind, i tried to use .rescale() first and then .setScale() and it worked, the result after second bootstrapping is correct! that's awesome :D
Does that mean, that i should always use .Rescale(...) first and then use .SetScale(...) whenever rescaling?
And also, on the second part of my question: what would be good parameters to speed up bootstrapping, i dont care about security, because im just playing around testing the capabilities of library?

One more comment on the Rescale + setScale method: it takes away two levels instead of just one.
In SEAL rescaling was done like this: evaluator.rescale(ciphertext), to get ciphertext scale close to params.scale with modulus switch and then simply, ciphertext.scale = params.scale. this method took only one level away.
Should i do the same in lattigo or should i use rescale + setScale method?
And also, i added third round of multiplications (https://pastebin.com/pAFFDY5V) and it works fine-ish.
i get the following output:
CKKS parameters: logN = 16, logSlots = 15, logQP = 1521, levels = 25, scale= 2^45.000000, sigma = 3.200000
ciphertext1 fresh (level/scale):  24 45
ciphertext1 after multiplication (level/scale):  24 90
plaintext after multiplication:  (3.000000133556691-6.491486321861562e-10i)
ciphertext1 after rescale (level/scale):  24 90
plaintext after rescale:  (3.000000133556691-6.491486321861562e-10i)
ciphertext1 after setScale (level/scale):  23 45
plaintext after setScale:  (3.000000134576702-6.156673925673252e-10i)
ciphertext1 after bootstrapping (level/scale):  10 45
plaintext after bootstrapp:  (2.999830465062783+3.64803886812801e-06i)
ciphertext1 after multiplication (level/scale):  10 90
plaintext after multiplication:  (8.999491495278939+1.0943606103172461e-05i)
ciphertext1 after rescale (level/scale):  9 44.99999963991133
plaintext after rescale:  (8.999491495264994+1.0943745458555484e-05i)
ciphertext1 after setScale (level/scale):  8 45
plaintext after setScale:  (8.999491495105095+1.0943685243493157e-05i)
ciphertext1 after bootstrapping (level/scale):  10 45
plaintext after bootstrapp:  (8.994918788405583+1.9186356095265893e-05i)
ciphertext1 after multiplication (level/scale):  10 90
plaintext after multiplication:  (26.984756665335944+5.7557537835505303e-05i)
ciphertext1 after rescale (level/scale):  9 44.99999963991133
plaintext after rescale:  (26.984756665218107+5.755755109137134e-05i)
ciphertext1 after setScale (level/scale):  8 45
plaintext after setScale:  (26.984756665219308+5.755755574364474e-05i)
signal: killed
You see, the result is correct, but im wondering what's that "signal: killed" at the end. Does that mean that my computer ran out of resources? That doesn't make sense really, as just about anything resources-heavy is already complete at that point.
I thank you very much in advance for your patience and very valuable input.

When I repalce setscale by rescale the code works fine for me. You should not set-scale after you rescale. Those two methods do not fulfill the same purpose. Rescale's purpose is to manage the magnitude of the plaintext scale, while set-scale's purpose is to manage the of the scale deviation from the original power of two scale or to change it to something close. In a circuit, you can always include a set-scale "for free", either in a linear transformation or a polynomial evaluation (unless if it is a monic polynomial), by scaling the plaintext/coefficients accordingly (this is what is done in our bootstrapp), so you should try to avoid this method whenever possible.
You do not need to bootstrapp after every ciphertext multiplication (those parameters allow for a circuit of depth 10 after each bootstrapp). However, your error is probably due to a memory management problem from Go (we observed that Go sometime does not call the garbage collector when it should), try forcing it by importing "runtime" and calling runtime.GC() after the bootstrapp

If i simply replace setscale by rescale (https://pastebin.com/U9Uk2sJ3) i get following error during bootstrapping:
KKS parameters: logN = 16, logSlots = 15, logQP = 1521, levels = 25, scale= 2^45.000000, sigma = 3.200000
ciphertext1 fresh (level/scale):  24 45
ciphertext1 after multiplication (level/scale):  24 90
plaintext after multiplication:  (3.0000001668388347+1.6261240919556596e-08i)
ciphertext1 after rescale (level/scale):  24 90
plaintext after rescale:  (3.0000001668388347+1.6261240919556596e-08i)
panic: runtime error: index out of range [24] with length 24
goroutine 1 [running]:
github.com/ldsec/lattigo/v2/ring.(*Ring).MulCoeffsMontgomeryLvl(0xc0000e8d80, 0x18, 0xc42fbc8600, 0xc57098eb80, 0xc3cd6678c0)
/home/vid/homomorphic/lattigo/ring/ring_operations.go:439 +0x284
github.com/ldsec/lattigo/v2/ckks.(*Bootstrapper).multiplyByDiagMatrice(0xc3df558000, 0xc00000e070, 0xc3cd667ea0, 0xc00000e070)
/home/vid/homomorphic/lattigo/ckks/bootstrapp.go:264 +0x9af
github.com/ldsec/lattigo/v2/ckks.(*Bootstrapper).dft(0xc3df558000, 0xc00000e070, 0xc3cd667a40, 0x4, 0x4, 0xc0000b5a01, 0x518c47)
/home/vid/homomorphic/lattigo/ckks/bootstrapp.go:168 +0x73
github.com/ldsec/lattigo/v2/ckks.(*Bootstrapper).coeffsToSlots(0xc3df558000, 0xc00000e050, 0xc00000e050, 0xc00000e050)
/home/vid/homomorphic/lattigo/ckks/bootstrapp.go:117 +0x7d
github.com/ldsec/lattigo/v2/ckks.(*Bootstrapper).Bootstrapp(0xc3df558000, 0xc00000e050, 0xc0000b5d60)
/home/vid/homomorphic/lattigo/ckks/bootstrapp.go:39 +0x1cc
main.main()
/home/vid/homomorphic/lattigo/examples/ckks/product-simple/main.go:77 +0xf97
exit status 2

This is because the input scale to the bootstrapp is 2^{90}, which is more than Q0/2^{10}. This is fixed in one of the PR, so it should not affect you once it is merged. It is happening because you try to rescale with a 53bit moduli a scale of 2^{90}, which would make it go under the target 2^{45} that you give, so it does not rescale and returns an error.
If you encode the ciphertext at the max level, you either need to construct a circuit that can re-use the moduli of the bootstrapp circuit, or drop the levels of the ciphertext to the level after the bootstrapp (here 10) by calling :
for ciphertext1.Level() != 10{
	evaluator.DropLevel(ciphertext1, 1)
}

Initial values 24 45.000000 1.000000 1.000000 1.000000 1.000000
Iteration n° 0
After Mul            : 10 90.000000 3.000000 3.000000 3.000000 3.000000
After Rescale       :  9 45.000000 3.000000 3.000000 3.000000 3.000000
After SetScale      :  8 45.000000 3.000000 3.000000 3.000000 3.000000
After Bootstrapp : 10 45.000000 2.999832 2.999829 2.999830 2.999831
Iteration n° 1
After Mul            : 10 90.000000 8.999496 8.999486 8.999489 8.999494
After Rescale       :   9 45.000000 8.999496 8.999486 8.999489 8.999494
After SetScale      :   8 45.000000 8.999496 8.999486 8.999489 8.999494
After Bootstrapp : 10 45.000000 8.994923 8.994913 8.994913 8.994920
Iteration n° 2
After Mul            : 10 90.000000 26.984770 26.984738 26.984740 26.984760
After Rescale       :   9 45.000000 26.984770 26.984738 26.984740 26.984760
After SetScale      :   8 45.000000 26.984770 26.984738 26.984740 26.984760
After Bootstrapp : 10 45.000000 26.861638 26.861611 26.861603 26.861627

Okay thanks, i think i got it.


Issue: Tag filters are not working

Issue you'd like to raise.
In my project, I created a custom tag called 'chat' and configured a filter to perform queries related to this tag. Initially, the filter worked normally, and I could use it without any issues. However, now, when I try to perform the query, it has stopped working. When I press 'Enter' to execute the filter, nothing happens, as if the command is not being recognized or processed.

Suggestion:
No response

Same here!


[stable/memcached] upgrade metrics exporter, fix PDB

Signed-off-by: David J. M. Karlsen<EMAIL_ADDRESS>What this PR does / why we need it:

Upgrades the metrics image to latest release
Fix immutability issue with the PDB by using helm-hooks.

Which issue this PR fixes
(optional, in fixes #<issue number>(, fixes #<issue_number>, ...) format, will close that issue when PR gets merged)

fixes #

Special notes for your reviewer:
Checklist
[Place an '[x]' (no spaces) in all applicable fields. Please remove unrelated fields.]

[X] DCO signed
[X] Chart Version bumped
[X] Variables are documented in the README.md
[X] Title of the PR starts with chart name (e.g. [stable/mychartname])

This change is

/lgtm


Error Trying to dat share w/ Dat v1.0

I was trying to dat share a large folder and got and error after a few hundred (?) files. Karissa said the issue may be hyperdrive:
/Users/joe/node_modules/dat/node_modules/hyperdrive/node_modules/rabin/index.js:18
  this.rabin = rabin.initialize(avgBits, min, max)
                     ^
Error: the value of instance_counter is too damn high
    at Error (native)
    at new Rabin (/Users/joe/node_modules/dat/node_modules/hyperdrive/node_modules/rabin/index.js:18:22)
    at Rabin (/Users/joe/node_modules/dat/node_modules/hyperdrive/node_modules/rabin/index.js:10:40)
    at writeStream (/Users/joe/node_modules/dat/node_modules/hyperdrive/lib/write-stream.js:22:35)
    at Archive.entry (/Users/joe/node_modules/dat/node_modules/hyperdrive/lib/pack.js:46:17)
    at DestroyableTransform._transform (/Users/joe/node_modules/dat/index.js:47:22)
    at DestroyableTransform.Transform._read (/Users/joe/node_modules/dat/node_modules/through2/node_modules/readable-stream/lib/_stream_transform.js:172:10)
    at DestroyableTransform.Transform._write (/Users/joe/node_modules/dat/node_modules/through2/node_modules/readable-stream/lib/_stream_transform.js:160:12)
    at doWrite (/Users/joe/node_modules/dat/node_modules/through2/node_modules/readable-stream/lib/_stream_writable.js:333:12)
    at writeOrBuffer (/Users/joe/node_modules/dat/node_modules/through2/node_modules/readable-stream/lib/_stream_writable.js:319:5)

this is because dat adds all files in parallel right now (which it shouldn't). /cc @karissa

i sent a pr to fix it here, https://github.com/maxogden/dat/pull/424


Translate README.md into English

This will make it possible for not only developers who speak hieroglyphic language to participate in testing and developing the "BookReader" application.

to fix your trouble check this solution click
maybe this will solve your problem.

to fix your trouble check this solution click

I find this questionable enough not to do it.
Also, this will hardly translate README.md into English.


Document running tests

One of the first things I do when checking out a project is to run the
tests. Making it clear how to run them is important to me.
I've changed the ci.yml as it is an example of how to run the tests.
I've set the tests to run with less permissions, because it helps give
confidence that they are safe.
I've switched the docker command to use the container subcommand,
because I think it reads better, and it is the way the docker
documentation recommends.
https://www.docker.com/blog/whats-new-in-docker-1-13/#h.yuluxi90h1om

LGTM


Updated CLI commands for the auth example.

Preview is available here:http://soroban-docs-pr324.previews.kube001.services.stellar-ops.com/