Tour of .NET Behavior on Windows 11 Arm64

Tour of .NET Behavior on Windows 11 Arm64
We're going to take a tour of the basic behavior of .NET 6 and .NET Framework 4.8.1 on Windows 11 Arm64. This tour of the experience is going to give us a sense of which .NET variants can be installed on the machine, how to use them to target various architectures, and what various key APIs report. This tour will provide a good sense of the experience that you an expect and that is on offer.
The primary questions it answers are:

When I build an app, which architecture does it target/support by default?
How do I build my app for a different/particular architecture?
Is there a way to get my app to run a different architecture than what it was built for as part of launching it?

A subset of this document will be moved to official docs. In fact, it was created as a set of working notes to do just that. The author of those notes is sharing them with the hope that they will be a benefit for someone trying to figure out how best to target Windows Arm64.
The tour is on Windows 11 Arm64, however, you could just as easily use these instructions to build for Windows Arm64 on Windows x64 and then run the built apps on Windows Arm64. Also, much of what you'll see equally applies to macOS x64 and Arm64.

The key -- potentially surprising -- experience is that .NET Framework AnyCPU apps run as emulated x64 on Windows Arm64. That choice was made for the benefit of compatibility. The document describes multiple ways to get your .NET Framework apps to run natively, either as a build-time or launch-time decision.

I'm using .NET 6.0.8 (.NET SDK 6.0.400) and .NET Framework 4.8.1. I'll be using Arm64, x64, and x86 variants of both. .NET 6 is not included in Windows 11 (or any other Windows version), while all three .NET Framework architecture variants are included. I'm using a Windows 11 Insider build (10.0.22621). The machine and OS are Arm64.
There is also one honorable mention of .NET 7, where its behavior differs from .NET 6.
Much of the tour relies on the Developer Command Prompt that comes with Visual Studio 2022. Visual Studio 2022 will soon be supported on Windows 11 Arm64.
Test samples
We'll be using the following samples to test our environment:

https://github.com/dotnet/dotnet-docker/blob/main/samples/dotnetapp/Program.cs
https://github.com/microsoft/dotnet-framework-docker/blob/main/samples/dotnetapp/Program.cs

Those are samples we maintain for containers, but they are also great for this use case.
PATH
All the .NET variants mentioned are installed on the Windows 11 Arm64 test machine that will be used for the tour.
The PATH is a key aspect of any dev experience and is critical to understand to using platform components (particularly tools).
Let's take a look at the PATH:
 $env:PATH
C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Windows\System32\OpenSSH\;C:\Program Files\dotnet\;C:\Program Files\Git\cmd;C:\Program Files\Microsoft SQL Server\150\Tools\Binn\;C:\Program Files\Microsoft SQL Server\Client SDK\ODBC\170\Tools\Binn\;C:\Users\rich\AppData\Local\Microsoft\WindowsApps;C:\Users\rich\.dotnet\tools;C:\Users\rich\AppData\Local\Programs\Microsoft VS Code\bin

The following path segments relate to .NET:

C:\Program Files\dotnet\
C:\Users\rich\.dotnet\tools

There are two interesting aspects here:

Only the native architecture .NET (Core) location is registered. That's Arm64.
There is just one location for .NET tools. That feature is built in such a way that tools from multiple architectures can be co-located without issue.

There is no PATH entry for .NET Framework. That's nothing new. There has never been a PATH entry for .NET Framework. It doesn't explicitly need one. If you want to use .NET Framework tools, you need to rely on the Developer Command Prompt for Visual Studio.
Building and running by default
First, .NET 6:
PS C:\Users\rich\git\dotnet-docker\samples\dotnetapp> dotnet run
         42
         42              ,d                             ,d
         42              42                             42
 ,adPPYb,42  ,adPPYba, MM42MMM 8b,dPPYba,   ,adPPYba, MM42MMM
a8"    `Y42 a8"     "8a  42    42P'   `"8a a8P_____42   42
8b       42 8b       d8  42    42       42 8PP"""""""   42
"8a,   ,d42 "8a,   ,a8"  42,   42       42 "8b,   ,aa   42,
 `"8bbdP"Y8  `"YbbdP"'   "Y428 42       42  `"Ybbd8"'   "Y428

.NET 6.0.8
Microsoft Windows 10.0.22621

OSArchitecture: Arm64
ProcessArchitecture: Arm64
ProcessorCount: 8
TotalAvailableMemoryBytes: 31.41 GiB

The app is running on Arm64, as expected.
Next, .NET Framework 4.8.1:
C:\Users\rich\git\dotnet-framework-docker\samples\dotnetapp>msbuild /t:restore;build
C:\Users\rich\git\dotnet-framework-docker\samples\dotnetapp>bin\Debug\net48\dotnetapp.exe
                                 ad88
                        ,d      d8"
                        88      88
8b,dPPYba,   ,adPPYba, MM88MMM MM88MMM 8b,     ,d8
88P'   `"8a a8P_____88   88      88     `Y8, ,8P'
88       88 8PP"""""""   88      88       )888(
88       88 "8b,   ,aa   88,     88     ,d8" "8b,
88       88  `"Ybbd8"'   "Y888   88    8P'     `Y8

.NET Framework 4.8.9065.0
Microsoft Windows 10.0.22621

OSArchitecture: X64
ProcessArchitecture: X64
ProcessorCount: 8

In contrast, the .NET Framework app is running on x64.
.NET Framework apps run as x64 by default on Windows Arm64. That was a key design decision made to aid compatibility. .NET Framework apps have been primarily running as x64 for over a decade on pervasively deployed x64 desktops, laptops, and servers. It's quite likely that many .NET Framework apps have x64 dependencies (like native libraries). Running them as emulated seemed like the safest bet, and to make Arm64 opt-in.
Targeting Arm64
Targeting Arm64 is easy with .NET 6. Your app will target the same architecture as the SDK you are using. You'll produce an Arm64 app by default as long as you are using the Arm64 SDK. That was just demonstrated above.
However, if you want to force targeting Arm64 (which will be more important later on the tour), you can use -a arm64 as demonstrated in the following:
PS C:\Users\rich\git\dotnet-docker\samples\dotnetapp> dotnet run -a arm64
         42
         42              ,d                             ,d
         42              42                             42
 ,adPPYb,42  ,adPPYba, MM42MMM 8b,dPPYba,   ,adPPYba, MM42MMM
a8"    `Y42 a8"     "8a  42    42P'   `"8a a8P_____42   42
8b       42 8b       d8  42    42       42 8PP"""""""   42
"8a,   ,d42 "8a,   ,a8"  42,   42       42 "8b,   ,aa   42,
 `"8bbdP"Y8  `"YbbdP"'   "Y428 42       42  `"Ybbd8"'   "Y428

.NET 6.0.8
Microsoft Windows 10.0.22621

OSArchitecture: Arm64
ProcessArchitecture: Arm64
ProcessorCount: 8
TotalAvailableMemoryBytes: 31.41 GiB

There is a similar option with MSBuild, for .NET Framework, using the Platform property:
C:\Users\rich\git\dotnet-framework-docker\samples\dotnetapp>msbuild /t:restore;build /p:Platform=arm64
C:\Users\rich\git\dotnet-framework-docker\samples\dotnetapp>bin\arm64\Debug\net48\dotnetapp.exe
                                 ad88
                        ,d      d8"
                        88      88
8b,dPPYba,   ,adPPYba, MM88MMM MM88MMM 8b,     ,d8
88P'   `"8a a8P_____88   88      88     `Y8, ,8P'
88       88 8PP"""""""   88      88       )888(
88       88 "8b,   ,aa   88,     88     ,d8" "8b,
88       88  `"Ybbd8"'   "Y888   88    8P'     `Y8

.NET Framework 4.8.9065.0
Microsoft Windows 10.0.22621

OSArchitecture: Arm64
ProcessArchitecture: Arm64
ProcessorCount: 8

You can also use the .NET SDK for the same purpose:
C:\Users\rich\git\dotnet-framework-docker\samples\dotnetapp>dotnet run -a arm64
                                 ad88
                        ,d      d8"
                        88      88
8b,dPPYba,   ,adPPYba, MM88MMM MM88MMM 8b,     ,d8
88P'   `"8a a8P_____88   88      88     `Y8, ,8P'
88       88 8PP"""""""   88      88       )888(
88       88 "8b,   ,aa   88,     88     ,d8" "8b,
88       88  `"Ybbd8"'   "Y888   88    8P'     `Y8

.NET Framework 4.8.9065.0
Microsoft Windows 10.0.22621

OSArchitecture: Arm64
ProcessArchitecture: Arm64
ProcessorCount: 8

I'm using dotnet run for this demonstration, but dotnet build works the same way.
Targeting x64
Targeting x64 is just a variation on what you've just seen (mostly).
For .NET 6, we can continue using the Arm64 SDK, but target x64 with the same -a switch you just saw. That's the easiest and highest performance approach (the SDK is a lot of code and will run slowly when emulation).
PS C:\Users\rich\git\dotnet-docker\samples\dotnetapp> dotnet run -a x64
         42
         42              ,d                             ,d
         42              42                             42
 ,adPPYb,42  ,adPPYba, MM42MMM 8b,dPPYba,   ,adPPYba, MM42MMM
a8"    `Y42 a8"     "8a  42    42P'   `"8a a8P_____42   42
8b       42 8b       d8  42    42       42 8PP"""""""   42
"8a,   ,d42 "8a,   ,a8"  42,   42       42 "8b,   ,aa   42,
 `"8bbdP"Y8  `"YbbdP"'   "Y428 42       42  `"Ybbd8"'   "Y428

.NET 6.0.8
Microsoft Windows 10.0.22621

OSArchitecture: X64
ProcessArchitecture: X64
ProcessorCount: 8
TotalAvailableMemoryBytes: 31.41 GiB

We can also use the x64 SDK, which will produce x64 apps by default. That's not the recommended approach (due to the emulation performance cost), but works fine.
 As a result, the x64 variant of .NET is installed in C:\Program Files\dotnet in the child x64 directory. That's what you see demonstrated above. the x64 directory will only be there if you install the x64 .NET SDK. It doesn't come with the Arm64 SDK.
To complete the demonstration, we can use the x64 SDK to produce Arm64 apps. That's also not recommended, but works.
C:\Users\rich\git\dotnet-docker\samples\dotnetapp>"c:\Program Files\dotnet\x64\dotnet" run -a arm64
         42
         42              ,d                             ,d
         42              42                             42
 ,adPPYb,42  ,adPPYba, MM42MMM 8b,dPPYba,   ,adPPYba, MM42MMM
a8"    `Y42 a8"     "8a  42    42P'   `"8a a8P_____42   42
8b       42 8b       d8  42    42       42 8PP"""""""   42
"8a,   ,d42 "8a,   ,a8"  42,   42       42 "8b,   ,aa   42,
 `"8bbdP"Y8  `"YbbdP"'   "Y428 42       42  `"Ybbd8"'   "Y428

.NET 6.0.8
Microsoft Windows 10.0.22621

OSArchitecture: Arm64
ProcessArchitecture: Arm64
ProcessorCount: 8
TotalAvailableMemoryBytes: 31.41 GiB

For .NET Framework, x64 is the default target as demonstrated above. There isn't anything more to show.
Targeting x86
For .NET 6, this experience is very similar to targeting x64. We'll use the same approach.
 Why did we drop from (near) 32GB to 2GB? Are 32-bit apps running in some small virtual machine used for emulation? How do I make it bigger? That's not it. 32-bit processes are limited to 4GB of memory and it's split 50/50 between kernel and user mode. That's why we're seeing 2GB.
We see slightly difference behavior with .NET 7 (specifically for OSArchitecture).

C:\Users\rich\git\dotnet-framework-docker\samples\dotnetapp>msbuild /t:restore;build /p:Platform=x86
C:\Users\rich\git\dotnet-framework-docker\samples\dotnetapp>bin\x86\Debug\net48\dotnetapp.exe
                                 ad88
                        ,d      d8"
                        88      88
8b,dPPYba,   ,adPPYba, MM88MMM MM88MMM 8b,     ,d8
88P'   `"8a a8P_____88   88      88     `Y8, ,8P'
88       88 8PP"""""""   88      88       )888(
88       88 "8b,   ,aa   88,     88     ,d8" "8b,
88       88  `"Ybbd8"'   "Y888   88    8P'     `Y8

.NET Framework 4.8.9065.0
Microsoft Windows 10.0.22621

OSArchitecture: Arm64
ProcessArchitecture: X86
ProcessorCount: 8

We can try the same thing with the .NET SDK:
C:\Users\rich\git\dotnet-framework-docker\samples\dotnetapp>dotnet run -a x86
                                 ad88
                        ,d      d8"
                        88      88
8b,dPPYba,   ,adPPYba, MM88MMM MM88MMM 8b,     ,d8
88P'   `"8a a8P_____88   88      88     `Y8, ,8P'
88       88 8PP"""""""   88      88       )888(
88       88 "8b,   ,aa   88,     88     ,d8" "8b,
88       88  `"Ybbd8"'   "Y888   88    8P'     `Y8

.NET Framework 4.8.9065.0
Microsoft Windows 10.0.22621

OSArchitecture: Arm64
ProcessArchitecture: X86
ProcessorCount: 8

Hmmm. That's interesting. OSArchitecture is reported differently for .NET 6 on one side and .NET 7 and .NET Framework 4.8.1 on the other when running x86 apps. They must use different Windows APIs to report OSArchitecture. They don't all report the same thing.
Coercing already-built apps to Arm64
With .NET 6, you can (in some cases) run apps targeted for one architecture to another. We won't go into all the details on that, but will demonstrate the mechanism.
We'll first build and run the app natively, as has been demonstrated earlier.
 It's a component of every app and ties each app to an operating system and architecture. However, you don't need to launch an app with the native launcher that the SDK provides. You can launch it with the dotnet host instead. That's what is being demonstrated above.
.NET Framework works differently. It has special executables that are not tied to an architecture in quite as direct a way. Lets try some techniques to coerce an x64 app to Arm64.
We'll rebuild the app again to ensure we're starting from a clean slate.
C:\Users\rich\git\dotnet-framework-docker\samples\dotnetapp>msbuild /t:restore;build
C:\Users\rich\git\dotnet-framework-docker\samples\dotnetapp>bin\Debug\net48\dotnetapp.exe
                                 ad88
                        ,d      d8"
                        88      88
8b,dPPYba,   ,adPPYba, MM88MMM MM88MMM 8b,     ,d8
88P'   `"8a a8P_____88   88      88     `Y8, ,8P'
88       88 8PP"""""""   88      88       )888(
88       88 "8b,   ,aa   88,     88     ,d8" "8b,
88       88  `"Ybbd8"'   "Y888   88    8P'     `Y8

.NET Framework 4.8.9065.0
Microsoft Windows 10.0.22621

OSArchitecture: X64
ProcessArchitecture: X64
ProcessorCount: 8

That looks good for our baseline.
Let's first try start:
C:\Users\rich\git\dotnet-framework-docker\samples\dotnetapp>start /MACHINE arm64 /B /WAIT bin\Debug\net48\dotnetapp.exe
                                 ad88
                        ,d      d8"
                        88      88
8b,dPPYba,   ,adPPYba, MM88MMM MM88MMM 8b,     ,d8
88P'   `"8a a8P_____88   88      88     `Y8, ,8P'
88       88 8PP"""""""   88      88       )888(
88       88 "8b,   ,aa   88,     88     ,d8" "8b,
88       88  `"Ybbd8"'   "Y888   88    8P'     `Y8

.NET Framework 4.8.9065.0
Microsoft Windows 10.0.22621

OSArchitecture: Arm64
ProcessArchitecture: Arm64
ProcessorCount: 8

Our app now runs as Arm64.
runas is another option that you can use to get a .NET Framework app to run as Arm64.
C:\Users\rich\git\dotnet-framework-docker\samples\dotnetapp>runas /machine:arm64 /trustlevel:0x20000 bin\Debug\net48\dotnetapp.exe

This launches another console windows, which follows:
                                 ad88
                        ,d      d8"
                        88      88
8b,dPPYba,   ,adPPYba, MM88MMM MM88MMM 8b,     ,d8
88P'   `"8a a8P_____88   88      88     `Y8, ,8P'
88       88 8PP"""""""   88      88       )888(
88       88 "8b,   ,aa   88,     88     ,d8" "8b,
88       88  `"Ybbd8"'   "Y888   88    8P'     `Y8

.NET Framework 4.8.9065.0
Microsoft Windows 10.0.22621

OSArchitecture: Arm64
ProcessArchitecture: Arm64
ProcessorCount: 8

In this case, I had to add a Console.ReadLine() to the app. Otherwise, it would just open and close immediately. start offers /wait and /b to work around that. For UI apps, that won't be a problem.
You can also specify that you want your app to always run in the registry as Arm64.
Create the following registry key (rename for your app):
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\dotnetapp.exe

It would have this DWORD item and hex value:
PreferredMachine=aa64

or as decimal:
PreferredMachine=43620

You can see my registy entry.

Note: Is there a way to specify the absolute path for this key, not just the filename?
Let's try that:
C:\Users\rich\git\dotnet-framework-docker\samples\dotnetapp>bin\Debug\net48\dotnetapp.exe
                                 ad88
                        ,d      d8"
                        88      88
8b,dPPYba,   ,adPPYba, MM88MMM MM88MMM 8b,     ,d8
88P'   `"8a a8P_____88   88      88     `Y8, ,8P'
88       88 8PP"""""""   88      88       )888(
88       88 "8b,   ,aa   88,     88     ,d8" "8b,
88       88  `"Ybbd8"'   "Y888   88    8P'     `Y8

.NET Framework 4.8.9065.0
Microsoft Windows 10.0.22621

OSArchitecture: Arm64
ProcessArchitecture: Arm64
ProcessorCount: 8

That works as expected.
For folks that start processes from code, you can specify machine type by using the UpdateProcThreadAttribute function. See PROC_THREAD_ATTRIBUTE_MACHINE_TYPE.
Visual Studio
The targeting experience is the same in Visual Studio as it is for MSBuild.

Note: Is there a way to specify the absolute path for this key, not just the filename?

Yes, with the undocumented FilterFullPath registry key.

Hmmm. That's interesting. OSArchitecture is reported differently for .NET 6 and .NET Framework 4.8.1 when running x86 apps. .NET Framework and .NET 6 use different Windows APIs to report OSArchitecture. They don't all report the same thing.

Isn't that a regression in .NET 6 comparing to .NET Framework 4.8.1?
The first three lines in the "netfx" logo need to be indented by one more space.  Good article!

Reported: https://github.com/dotnet/runtime/issues/73974

Regarding the behavior for .NET Framework 4.8.1: is there no mechanism to enable Arm64 support at build time, other than building an Arm64-specific executable? Many .NET Framework apps (I'm thinking of client apps in particular) are distributed/deployed as loose, portable executables with no installer. Given the options described above, there's currently no convenient way to enable Arm64 support for these apps without either:

complicating building & distribution by creating separate executables for Arm64
distributing some kind of launch script that will launch the real app using the preferred architecture
writing to the registry (which seems like a bad idea for a portable app)

I would have imagined that, for example, targeting .NET Framework 4.8.1 would automatically cause an AnyCPU app to start as Arm64 (i.e. changing the target framework would act as confirmation that the app was made to work with Arm64). Or, perhaps, an app.config option similar to <supportedRuntime> could indicate that the app should run using the Arm64 runtime instead of the x64 one. Or, one could even imagine a new "AnyCPU, Arm64 preferred" configuration that assemblies could be built with.
All of these alternatives would address the inability for .NET Framework apps to opt-in to Arm64 support without changing their deployment model. Many client apps, for better or for worse, are still built on .NET Framework, and this ability would allow them to trivially opt-in to Arm64 support. Given that "pure managed" apps with no unmanaged dependencies are very common, I would think that the return on a feature like this could be high, and the lack of it seems like a missed opportunity.

Great question. We had the 32BitPrefered feature from the past. It is kinda similar. I think this would be NativeArchPrefered. We haven't built that. While simple, it is not straightforward. We are looking some other options to achieve similar results. At present, you've correctly determined the set of options available.
Note that there isn't a magic feature like this coming for .NET 6/7/8. This limits our desire to invest in an expensive magic feature for .NET Framework.

Now that .NET Framework 4.8.1 is available to Windows 10 on ARM as well, it would be helpful to document the behavior there as well. I guess AnyCPU will run as x86 by default there.
Also IIRC start /machine is not available in in-market version of Windows 11 (21H2, Build 22000).

Good point. Yes, that should added to the doc, too. I am away on a trip so it will be a bit before that happens.

The problem with NativeArchPrefered is, it will create even more issues if .NET Framework add yet another new architecture (think RISC-V?) to support 5-10 years down the road.
Sure, hopefully .NET Framework would be dead by then, but you never know, it was presumed to be dead years ago when MS decided no .NET Framework on ARM64.

We are not going to build NativeArchPrefered for this reason. The options we are looking at are future proof and naturally extend to potential new architectures.
cc @davidwrighton

What is the point of targeting .NET Framework 4.8.1 right now, if not for supporting ARM64?
AnyCPU being x64 for net48 (and older) makes perfectly sense. But it doesn't for net481.

Just my 2 cents,
My ideal solution would be a section in the config file that just lists the architectures in the order it would like them to be tried. eg. <idealRuntimes>arm64;x64;x86</idealRuntimes>, if this section is present, the .NET Framework will pick the first one it understands (being the installation, not the targeted framework) and that works on the OS. This config option would be ignored on older frameworks that don't know of this feature.
Ie. if I write an app targeting 4.6 or some other similar version and include this config option it will be ignored on all frameworks up to 4.8.1/2/whenever it's added and then followed on a framework that understands it. This solution would allow full developer control on what architectures they want to be able to run in.
Use case: I use the .NET Framework primarily as a bootstrapper for my .NET Core apps these days (and for some old apps and for older versions of some apps) - this allows a single exe to check .NET Core installations etc., and have no plans to stop using it since .NET Core will not be installed on Windows by default and isn't supported for like 10 years and isn't fully forwards compatible. I currently target .NET Framework 4.6.1 (for some reason?), but will eventually update to a newer version, but not past 4.8 since it doesn't support Windows 7 (until I eventually give up on supporting windows 7 but that's not directly related to what we're discussing here). I'd like the ability to be able to easily detect the os architecture in my bootstrapper which seems to be fixed in 4.8.1 (or earlier, see below), and be able to force older versions of my apps to be able to run in arm64 if I know it will work with ease.
Also, I have a question. If a user launches an app compiled with a version ≤4.8 on an arm64 machine, what will OSArchitecture return? It should probably return x64 in this scenario unless my above feature is implemented and includes that architecture in the list (since this is what it does with 4.8 and lower - or at least whatever version I tested this with I think).
Also a second question. If windows does support a new architecture in the future, is it safe to assume that they will all support x64 emulation? Or should I only assume x86 emulation is available? Is there a Windows API that tells me which processor architectures can be emulated from something like an image file machine constant
Thanks for your time reading this lol.

Ie. if I write an app targeting 4.6 or some other similar version and include this config option it will be ignored on all frameworks up to 4.8.1/2/whenever it's added and then followed on a framework that understands it.

I don't think this is necessary, most AnyCPU .NET FX app can run as ARM64 unmodified, as long as it does not use things like P/Invoke to third party unmanaged dependencies. I even ran a .NET 4.5 app on ARM64 with start /machine arm64 and it work just fine.
If we does not limit it to .NET 4.8.x target where this is added, then end-user can try to make their app ARM64 native even without source code.

Is there a Windows API that tells me which processor architectures can be emulated from something like an image file machine constant

GetMachineTypeAttributes: https://docs.microsoft.com/zh-cn/windows/win32/api/processthreadsapi/nf-processthreadsapi-getmachinetypeattributes

I don't think this is necessary, most AnyCPU .NET FX app can run as ARM64 unmodified, as long as it does not use things like P/Invoke to third party unmanaged dependencies. I even ran a .NET 4.5 app on ARM64 with start /machine arm64 and it work just fine.

I do not expect my users to have to open the command line to open an app (which is why this doesn't solve it for a portable app), but I will use this when I have control over launching it.

If we does not limit it to .NET 4.8.x target where this is added, then end-user can try to make their app ARM64 native even without source code.

As you said above, a user can use start /machine arm64 already to do this, so I don't really see how this is an issue. I don't think these files show as being openable in notepad by default and if someone who doesn't do programming tries to open it then they would probably get scared by it looking like code and not change it anyway.
It might even be good that it's easy to change it permanently, e.g. if they have an old app that they want to force to run natively that doesn't have any native dependencies (they would probably find out very quickly whether it has native dependencies or not because it would crash, and could revert it).

GetMachineTypeAttributes: https://docs.microsoft.com/zh-cn/windows/win32/api/processthreadsapi/nf-processthreadsapi-getmachinetypeattributes

Thanks!

I don't think this is necessary, most AnyCPU .NET FX app can run as ARM64 unmodified

Also, can is different to do, as stated in the original post, these only run natively when compiled specifically for arm64. Otherwise they run in x64 emulation for compatibility (without things like running on the command line with start /machine arm64).

Ie. if I write an app targeting 4.6 or some other similar version and include this config option

OK, I misunderstood you, I thought you mean one have to target 4.8.x in order to use this config option. So we actually are in the same page.

I just installed Windows 10 ARM for testing, and no, ARM64 .Net Framework is not available on Windows 10.
Not exactly sure why though.

I just installed Windows 10 ARM for testing, and no, ARM64 .Net Framework is not available on Windows 10.
Not exactly sure why though.
https://devblogs.microsoft.com/dotnet/announcing-dotnet-framework-481/

Tangentially related question: Is there a plan to release a version of Microsoft.DotNet.Framework.NativeImageCompiler for Arm64? It works well for us on x86/x64 in places where we can't use Ngen.exe (the Microsoft Store), so it would be nice to provide the same experience on Arm64.

Tangentially related question: Is there a plan to release a version of Microsoft.DotNet.Framework.NativeImageCompiler for Arm64? It works well for us on x86/x64 in places where we can't use Ngen.exe (the Microsoft Store), so it would be nice to provide the same experience on Arm64.

Looks like it's deprecated, per the individual runtime packages https://www.nuget.org/packages/runtime.win10-x64.Microsoft.DotNet.Framework.NativeImageCompiler

If it's really deprecated, it would be nice if the official documentation recommending its use was amended: https://learn.microsoft.com/en-us/windows/msix/desktop/desktop-to-uwp-r2r

Q. Can I release binaries using this technology?
A. This version includes a Go Live license that you can use today.

So, is the NgenR2R tool deprecated, or were those packages marked accidentally in some automated proces? Will it receive Arm64 support? @jkotas?

Please give us an option to opt-in into ARM64 with the usual XXX.exe.config files for .NET Framework apps.

@hrumhurum Came here looking for the same, or at least a configuration manifest. I was also able to run a 4.5.2 target in ARM64 as long as it was being built with VS2022 and Platform set to ARM64, but I want my AnyCPU builds to run as ARM64 on ARM64 Windows :)

The new supportedArchitectures attribute in application manifest should be the way to go:
Kind of wonder why it is in application manifest though, that would be a little bit tricky to backport to downlevel OS...
https://learn.microsoft.com/zh-cn/windows/win32/sbscs/application-manifests#supportedarchitectures


west/ezflashcli: add tool_opt capability

Add tool_opt capability

@mbolivar-ampere ping

Assigning @blauret as well as this runner is for Renesas SmartBond platforms.


data-* attributes should not be converted to camelCase

Hi there! I'm encountering the issue described in https://github.com/jhamlet/svg-react-loader/issues/36. I believe a solution would be to avoid camelizing attributes that begin with with data-*.

Oh jeez, I'm sorry. I just realized that I meant to open this issue on the react-svg-loader repo, not here. Dunno if this project has the same problem still, but feel free to close 😅


Add threadId and runId to OpenAIAssistantRunnable returnValues for AgentExecutor

Hi I couldn't figure out a good way to get threadId for OpenAIAssistantRunnable when used with AgentExecutor. It is returned when invoking the Runnable but it looks like AgentExecutor only returns values in returnValues.
Motivation:
Trying to send messages from client to api route and keep the same threadId for history.
The PR simply duplicates runId and threadId to returnValues which is the behavior in the python repository, link.
            return OpenAIAssistantFinish(
                return_values={
                    "output": answer,
                    "thread_id": run.thread_id,
                    "run_id": run.id,
                },
                log="",
                run_id=run.id,
                thread_id=run.thread_id,
            )

Then it can be used to run on the same thread as shown in the python docs.
  // Use case
  const { threadId } = await req.json()

  const assistantAgent = await OpenAIAssistantRunnable.createAssistant({
    model: 'gpt-4-turbo-preview',
    instructions,
    name: 'Health Assistant',
    asAgent: true,
    tools
  })
  const agentExecutor = new AgentExecutor({
    agent: assistantAgent,
    tools,
    verbose: true
  })
  const outputs = await agentExecutor.invoke({
    content: 'my name is jeff!'
  })
  console.log(outputs)
  /*
  {
  content: 'my name is jeff!',
  output: 'Hello Jeff! How can I assist you today?',
  runId: 'run_CGPgN5H95WqaMZOBZqL8j8mG',
  threadId: 'thread_z8Y2h8sh5kvnCGdJGVKpE9QE'
  }
  */
  const outputs2 = await agentExecutor.invoke({
    content: "What's my name?",
    threadId: outputs.threadId
  })
  console.log(outputs2)
  /*
  {
  content: "What's my name?",
  threadId: 'thread_z8Y2h8sh5kvnCGdJGVKpE9QE',
  output: 'Your name is Jeff! How can I help you today, Jeff?',
  runId: 'run_1sPcY73ivqTwnvwECOnTyLrJ'
  }
  */

// Use case
return Response.json({threadId})

Trace of same code without PR (no threadId in AgentExecutor).
[chain/start] [1:chain:AgentExecutor] Entering Chain run with input: {
  "content": "my name is jeff!"
}
[chain/end] [1:chain:AgentExecutor] [3.24s] Exiting Chain run with output: {
  "content": "my name is jeff!",
  "output": "Hello, Jeff! How can I assist you today?"
}
{
  content: 'my name is jeff!',
  output: 'Hello, Jeff! How can I assist you today?'
}
[chain/start] [1:chain:AgentExecutor] Entering Chain run with input: {
  "content": "What's my name?"
}
[chain/error] [1:chain:AgentExecutor] [294ms] Chain run errored with error: "404 No thread found with id 'undefined'.\n\nError: 404 No thread found with id 'undefined'.\n
...
...

Fixes #4391

uhh accidentally requested access to vercel sorry

Sure, looks good to me! Thank you!


chore: reorganize tests

gapic-generator has too many features sharing the same set of testing source files and it's been harder and harder to keep the baseline changes to a minimum when testing a new feature.
This PR restructures the testing sources as follows:

gapic config clients + gapic config samples (the old java_library.baseline):

deleted as we no longer need samples configured by gapic YAMLs

gapic config clients + sample config samples (the old sample_config_migration_java_library.baseline):

use test sources in testsrc/gapicconfig directory
the baseline file is renamed to java_library.baseline

proto annotations clients (including some unit tests):

use test sources in testsrc/protoannotations directory

packagegen:

continue to use test sources in testsrc/common

configgen:

continue to use test sources in testsrc/common

Going forward there should be minimal changes to testsrc/common and testsrc/gapicconfig as well as respective baseline files as these functionality are stable. This would make working on new features/bug fixes to proto annotation based generation easier.

oh, CircleCI is not failing anymore

@vam-google the files are actually not moved by duplicated from testsrc/common to testsrc/gapicconfig and testsrc/protoannotations. In the case of duplication it seems github can't recognize files as moved.


Feature request: remove unnecessary CLEAR at the start of a method

I'm seeing code like this:
`METHOD ....
DATA this.
DATA that.
CLEAR l_this, l_that.
...
ENDMETHOD`
Clearly (!) the CLEAR isn't necessary.

Hi Matthew,
have you tried the "Remove needless CLEAR" rule? ;-)

Kind regards,
Jörg-Michael

Hah. Didn't notice that. Strangely I wasn't getting the TODO, but the delete works fine.

Hi Matthew,
no problem at all – as always, we rather get a good idea twice than missing one!
Kind regards,
Jörg-Michael


Changing apim docker image to amd64 arch

Purpose
Changing apim docker image to amd64 arch

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 28.31%. Comparing base (8ee48a3) to head (6a45c19).
Report is 6 commits behind head on main.

Additional details and impacted files
@@           Coverage Diff           @@
##             main    #2055   +/-   ##
=======================================
  Coverage   28.31%   28.31%
=======================================
  Files         123      123
  Lines       14394    14394
  Branches     2672     2672
=======================================
  Hits         4075     4075
  Misses      10188    10188
  Partials      131      131

Flag
Coverage Δ

adapter
27.97% <ø> (?)

common-controller
4.61% <ø> (?)

config-deployer-service
26.03% <ø> (?)

idp-domain-service
80.18% <ø> (?)

Flags with carried forward coverage won't be shown. Click here to find out more.

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


No Comments

It's difficult to understand what's happening, expesially in the classes

will fix in new engine

oh nvm this is the new engine

cope :chatting:


improve documentation

The current documentation structure is rather unclear for individual users with different needs (applying the model, developer,...).  The main structure is as follows:

Invoer rasters  explains the inputs, non-technical, dutch
Berekening Trofie (nutrient_level)  explains the trofie model module, non-technical, dutch
Bepaling van de zuurgraadklasse explains the zuur model module, non-technical, dutch
Bepaling vegetatie explains the vegetation model module, non-technical, dutch
Running Niche provides reference of main Niche() class & 1 example, semi-technical
Low level interface  provides reference of submodules, technical
Code Tables  provides model information, i.e. the classes; non-techhnical

We should improve the structure, clearly split tech/non-tech and at the same time add some more information for different types of users (someone just interested in model concept, someone to use the model, someone to dev the code). To have this started, just a possible structure for the documentation:

Main index/introduction (i.e. an extended version of the readme file); add also minimal information on how to apply the model in Python itself or how to run the model from command line with a config file (for the lazy people ;-)
Niche model concept  (* non-technical, information for people interested in model concept*)

Introduction
Niche model input rasters, cfr. 'Invoer rasters  explains the inputs, non-technical, dutch'
Berekening Trofie (nutrient_level)  explains the trofie model module, non-technical, dutch
Bepaling van de zuurgraadklasse explains the zuur model module, non-technical, dutch
Bepaling vegetatie explains the vegetation model module, non-technical, dutch
Niche model outputs (explains the output maps non-technical)

niche_vlaanderen Python Package

Tutorials (check if able to do in rendered notebooks)

case study, detailed explanation of running the Niche model (loading the inpute, running and checking the outputs
case study, comparing 2 scenario's from a single study area and showcasing the features to do scenario comparison

Low level interface

Reference of Niche class
Reference of the module classes
Reference of other implemented

Agreed.

The main index/introduction should be exactly the same as the README: that way we only have a single intro file to maintain.
Niche model concept: all in Dutch
Package: all in English

First documenting the components of the package (low level interface)
Then two tutorials, with input data included

cfr. #29 , make sure we include a page on the cli of niche, I would add this as a separate subsection of the niche_vlaanderen Python Package

I like this proposal as well - thanks for writing it out.

With respect to the tutorials we will take into account and provide to the user as an example notebook, we should define cases that are ok to put public. @cecileherr  will provide these to @johanvdw.

With respect to the config file, we should create a separate page in the documentation with different config-file examples, supporting different scenario's (simple model,...) instead of the current loooong config with lots of commands in between.

some comments regarding the config-sections:

we're missing an example file with floodplain module
having twice the full (once model and once example) section, the structure is less clear
link advanced_usage.ipynb#Using-abiotic-grids.   not working

I think that as of [release 1.0a11[(https://github.com/inbo/niche_vlaanderen/releases/tag/1.0a11) most issues have been covered, and the structure is in place. If documentation changes need to occur - I think it is better to make more targeted issues.


Fix PDCurses support for Windows

PDCurses support has been dropped for a while, and the reason for this is that the Windows version of dub can't seem to interface with any compiled version of the PDCurses library for Windows, even with a working PDCurses wrapper.
The issue has apparently been fixed for Linux, but Windows support remains broken.
Update 2018-08-29
Following a comment by unleashy Issue on the PDCurses wrapper GitHub page, the compile now works, but the compiled program crashes on Windows without so much as an error message.  The cause of the error remains a mystery, but at least it compiles now.

Hi! Compiling and running works fine with pdcurses for me. You may be using a .lib that is x86 when you really want a x64 one, or something like that—although it would probably error out in the linking step, and not at runtime :)
Try checking like, the return value by doing echo %ERRORLEVEL% after the program crashes, then looking it up to see what it's about.

Thank you very much for your advice, unleashy.  Echoing the error level gave me some absurd negative integer value which didn't help much, lol.  However, I did try compiling a newer version of PDCurses from source using nmake and that version of the library has been much more cooperative.
The game is in an essentially playable state on PDCurses now, so I'm going to close this issue.  Thank you very much again for your help.

no problem :)

Leaving this comment for the record, the problem might have been simpler than either unleashy or I figured out.  It turns out that the compiled PDCurses library for Windows that I had works with LDC but not with DmD, which means that when I initially tried to work with PDCurses it was failing because I wasn't using LDC at the time.
I'm not sure what the cause of this error is, but my best guess is that DmD doesn't play nice with the linker that I was using for the PDCurses compile.  Perhaps a MinGW compile of PDCurses would have got the job done better.


Before first headline at position 1 in buffer  {previous day}

I've come across a new error with the latest version of org-journal and spacemacs develop
On attempt to add new journal entry I get the error..  Debug below
   org-journal-date-format "%A, %B %d %Y"
   org-journal-date-prefix "#+TITLE: Daily Notes for "
   org-journal-dir "~/Notes/org/journal/"
   org-journal-enable-agenda-integration t
   org-journal-time-format "%K:%M "
   org-journal-time-prefix "** "

GNU Emacs 26.2 (build 1, x86_64-pc-linux-gnu, GTK+ Version 3.24.8) of 2019-04-12
Debugger entered--Lisp error: (error "Before first headline at position 1 in buffer 20190414")
signal(error ("Before first headline at position 1 in buffer 20190414"))
error("Before first headline at position %d in buffer %s" 1 #<buffer 20190414>)
org-back-to-heading(t)
#f(compiled-function () (interactive nil) #<bytecode 0x3289be9>)()
apply(#f(compiled-function () (interactive nil) #<bytecode 0x3289be9>) nil)
org-narrow-to-subtree()
(progn (setq prev-entry-buffer (current-buffer)) (org-narrow-to-subtree) (mapc (function (lambda (carryover-path) (setq carryover-items-non-parents (cons (car carryover-path) carryover-items-non-parents)) (mapc (function (lambda (heading) (if ... nil ...))) carryover-path))) (org-map-entries mapper org-journal-carryover-items)) (setq carryover-items-with-parents (sort carryover-items-with-parents (function (lambda (x y) (< (car x) (car y)))))))
(if (let ((inhibit-message t)) (org-journal-open-previous-entry (quote no-select))) (progn (setq prev-entry-buffer (current-buffer)) (org-narrow-to-subtree) (mapc (function (lambda (carryover-path) (setq carryover-items-non-parents (cons (car carryover-path) carryover-items-non-parents)) (mapc (function (lambda ... ...)) carryover-path))) (org-map-entries mapper org-journal-carryover-items)) (setq carryover-items-with-parents (sort carryover-items-with-parents (function (lambda (x y) (< (car x) (car y))))))))
(save-restriction (if (let ((inhibit-message t)) (org-journal-open-previous-entry (quote no-select))) (progn (setq prev-entry-buffer (current-buffer)) (org-narrow-to-subtree) (mapc (function (lambda (carryover-path) (setq carryover-items-non-parents (cons ... carryover-items-non-parents)) (mapc (function ...) carryover-path))) (org-map-entries mapper org-journal-carryover-items)) (setq carryover-items-with-parents (sort carryover-items-with-parents (function (lambda (x y) (< ... ...))))))))
(save-excursion (save-restriction (if (let ((inhibit-message t)) (org-journal-open-previous-entry (quote no-select))) (progn (setq prev-entry-buffer (current-buffer)) (org-narrow-to-subtree) (mapc (function (lambda (carryover-path) (setq carryover-items-non-parents ...) (mapc ... carryover-path))) (org-map-entries mapper org-journal-carryover-items)) (setq carryover-items-with-parents (sort carryover-items-with-parents (function (lambda ... ...))))))))
(let* ((org-journal-find-file (quote find-file)) (mapper (function (lambda nil (let ((headings ...)) (setq org-map-continue-from (point)) headings)))) carryover-items-with-parents carryover-items-non-parents prev-entry-buffer) (save-excursion (save-restriction (if (let ((inhibit-message t)) (org-journal-open-previous-entry (quote no-select))) (progn (setq prev-entry-buffer (current-buffer)) (org-narrow-to-subtree) (mapc (function (lambda ... ... ...)) (org-map-entries mapper org-journal-carryover-items)) (setq carryover-items-with-parents (sort carryover-items-with-parents (function ...))))))) (if carryover-items-with-parents (progn (if (org-journal-org-heading-p) (progn (outline-end-of-subtree))) (if (eq (current-column) 0) nil (insert "\n")) (mapc (function (lambda (x) (insert (cdr ...)))) carryover-items-with-parents) (save-current-buffer (set-buffer prev-entry-buffer) (mapc (function (lambda (x) (kill-region ... ...))) carryover-items-non-parents) (save-buffer) (if org-journal--kill-buffer (progn (kill-buffer)))))))
org-journal-carryover()
(progn (org-journal-carryover))
(if (and org-journal-carryover-items (string= entry-path (org-journal-get-entry-path (current-time)))) (progn (org-journal-carryover)))
(let* ((entry-path (org-journal-get-entry-path time)) (should-add-entry-p (not prefix))) (if (string= entry-path (buffer-file-name)) nil (funcall org-journal-find-file entry-path)) (let ((entry-header (if (functionp org-journal-date-format) (funcall org-journal-date-format time) (concat org-journal-date-prefix (format-time-string org-journal-date-format time))))) (goto-char (point-min)) (if (search-forward entry-header nil t) nil (if (org-journal-daily-p) nil (let ((date (decode-time time)) (dates (sort ... ...)) found) (setq date (list (nth 4 date) (nth 3 date) (nth 5 date))) (while dates (if (calendar-date-compare dates ...) (progn ... ... ... ...)) (setq dates (cdr dates))) (if found nil (goto-char (point-max)) (forward-line)))) (if (looking-back "[^\011 ]" (point-at-bol)) (progn (insert "\n"))) (beginning-of-line) (insert entry-header) (if (org-journal-daily-p) nil (org-set-property "CREATED" (format-time-string "%Y%m%d" time))) (if org-journal-enable-encryption (progn (if (member org-crypt-tag-matcher (org-get-tags)) nil (org-set-tags org-crypt-tag-matcher)))))) (org-journal-decrypt) (if (and org-journal-carryover-items (string= entry-path (org-journal-get-entry-path (current-time)))) (progn (org-journal-carryover))) (if (org-journal-org-heading-p) (outline-end-of-subtree) (goto-char (point-max))) (if should-add-entry-p (progn (if (eq (current-column) 0) nil (insert "\n")) (let* ((day-discrepancy (- (time-to-days ...) (time-to-days time))) (timestamp (cond (... ...) (... ...) (t "")))) (insert org-journal-time-prefix timestamp)) (run-hooks (quote org-journal-after-entry-create-hook)))) (if (and org-journal-hide-entries-p (org-journal-time-entry-level)) (outline-hide-sublevels (org-journal-time-entry-level)) (save-excursion (org-journal-finalize-view))) (if should-add-entry-p (progn (outline-show-entry))))
(let (oetu-active-p) (let ((now (decode-time nil))) (if (and (not time) (< (nth 2 now) org-extend-today-until)) (setq oetu-active-p t time (encode-time (nth 0 now) (nth 1 now) (nth 2 now) (1- (nth 3 now)) (nth 4 now) (nth 5 now) (nth 8 now))))) (let* ((entry-path (org-journal-get-entry-path time)) (should-add-entry-p (not prefix))) (if (string= entry-path (buffer-file-name)) nil (funcall org-journal-find-file entry-path)) (let ((entry-header (if (functionp org-journal-date-format) (funcall org-journal-date-format time) (concat org-journal-date-prefix (format-time-string org-journal-date-format time))))) (goto-char (point-min)) (if (search-forward entry-header nil t) nil (if (org-journal-daily-p) nil (let ((date ...) (dates ...) found) (setq date (list ... ... ...)) (while dates (if ... ...) (setq dates ...)) (if found nil (goto-char ...) (forward-line)))) (if (looking-back "[^\011 ]" (point-at-bol)) (progn (insert "\n"))) (beginning-of-line) (insert entry-header) (if (org-journal-daily-p) nil (org-set-property "CREATED" (format-time-string "%Y%m%d" time))) (if org-journal-enable-encryption (progn (if (member org-crypt-tag-matcher ...) nil (org-set-tags org-crypt-tag-matcher)))))) (org-journal-decrypt) (if (and org-journal-carryover-items (string= entry-path (org-journal-get-entry-path (current-time)))) (progn (org-journal-carryover))) (if (org-journal-org-heading-p) (outline-end-of-subtree) (goto-char (point-max))) (if should-add-entry-p (progn (if (eq (current-column) 0) nil (insert "\n")) (let* ((day-discrepancy (- ... ...)) (timestamp (cond ... ... ...))) (insert org-journal-time-prefix timestamp)) (run-hooks (quote org-journal-after-entry-create-hook)))) (if (and org-journal-hide-entries-p (org-journal-time-entry-level)) (outline-hide-sublevels (org-journal-time-entry-level)) (save-excursion (org-journal-finalize-view))) (if should-add-entry-p (progn (outline-show-entry)))))
org-journal-new-entry(nil)
funcall-interactively(org-journal-new-entry nil)
call-interactively(org-journal-new-entry nil nil)
command-execute(org-journal-new-entry)

Hey Marty!
Sorry, and thanks for the report.
Fixed via 278e91a.
Marty Buchaus<EMAIL_ADDRESS>writes:

I've come across a new error with the latest version of org-journal and spacemacs develop
On attempt to add new journal entry I get the error.. Debug below
org-journal-date-format "%A, %B %d %Y"
org-journal-date-prefix "#+TITLE: Daily Notes for "
org-journal-dir "~/Notes/org/journal/"
org-journal-enable-agenda-integration t
org-journal-time-format "%K:%M "
org-journal-time-prefix "** "
GNU Emacs 26.2 (build 1, x86_64-pc-linux-gnu, GTK+ Version 3.24.8) of 2019-04-12
Debugger entered--Lisp error: (error "Before first headline at position 1 in buffer 20190414")
signal(error ("Before first headline at position 1 in buffer 20190414"))
error("Before first headline at position %d in buffer %s" 1 #<buffer 20190414>)
org-back-to-heading(t)
#f(compiled-function () (interactive nil) #<bytecode 0x3289be9>)()
apply(#f(compiled-function () (interactive nil) #<bytecode 0x3289be9>) nil)
org-narrow-to-subtree()
(progn (setq prev-entry-buffer (current-buffer)) (org-narrow-to-subtree) (mapc (function (lambda (carryover-path) (setq
carryover-items-non-parents (cons (car carryover-path) carryover-items-non-parents)) (mapc (function (lambda (heading) (if ... nil ...)))
carryover-path))) (org-map-entries mapper org-journal-carryover-items)) (setq carryover-items-with-parents (sort carryover-items-with-parents
(function (lambda (x y) (< (car x) (car y)))))))
(if (let ((inhibit-message t)) (org-journal-open-previous-entry (quote no-select))) (progn (setq prev-entry-buffer (current-buffer))
(org-narrow-to-subtree) (mapc (function (lambda (carryover-path) (setq carryover-items-non-parents (cons (car carryover-path)
carryover-items-non-parents)) (mapc (function (lambda ... ...)) carryover-path))) (org-map-entries mapper org-journal-carryover-items)) (setq
carryover-items-with-parents (sort carryover-items-with-parents (function (lambda (x y) (< (car x) (car y))))))))
(save-restriction (if (let ((inhibit-message t)) (org-journal-open-previous-entry (quote no-select))) (progn (setq prev-entry-buffer (current-buffer))
(org-narrow-to-subtree) (mapc (function (lambda (carryover-path) (setq carryover-items-non-parents (cons ... carryover-items-non-parents)) (mapc
(function ...) carryover-path))) (org-map-entries mapper org-journal-carryover-items)) (setq carryover-items-with-parents (sort
carryover-items-with-parents (function (lambda (x y) (< ... ...))))))))
(save-excursion (save-restriction (if (let ((inhibit-message t)) (org-journal-open-previous-entry (quote no-select))) (progn (setq prev-entry-buffer
(current-buffer)) (org-narrow-to-subtree) (mapc (function (lambda (carryover-path) (setq carryover-items-non-parents ...) (mapc ...
carryover-path))) (org-map-entries mapper org-journal-carryover-items)) (setq carryover-items-with-parents (sort carryover-items-with-parents
(function (lambda ... ...))))))))
(let* ((org-journal-find-file (quote find-file)) (mapper (function (lambda nil (let ((headings ...)) (setq org-map-continue-from (point)) headings))))
carryover-items-with-parents carryover-items-non-parents prev-entry-buffer) (save-excursion (save-restriction (if (let ((inhibit-message t))
(org-journal-open-previous-entry (quote no-select))) (progn (setq prev-entry-buffer (current-buffer)) (org-narrow-to-subtree) (mapc (function
(lambda ... ... ...)) (org-map-entries mapper org-journal-carryover-items)) (setq carryover-items-with-parents (sort carryover-items-with-parents
(function ...))))))) (if carryover-items-with-parents (progn (if (org-journal-org-heading-p) (progn (outline-end-of-subtree))) (if (eq (current-column)
0) nil (insert "\n")) (mapc (function (lambda (x) (insert (cdr ...)))) carryover-items-with-parents) (save-current-buffer (set-buffer prev-entry-buffer)
(mapc (function (lambda (x) (kill-region ... ...))) carryover-items-non-parents) (save-buffer) (if org-journal--kill-buffer (progn (kill-buffer)))))))
org-journal-carryover()
(progn (org-journal-carryover))
(if (and org-journal-carryover-items (string= entry-path (org-journal-get-entry-path (current-time)))) (progn (org-journal-carryover)))
(let* ((entry-path (org-journal-get-entry-path time)) (should-add-entry-p (not prefix))) (if (string= entry-path (buffer-file-name)) nil (funcall
org-journal-find-file entry-path)) (let ((entry-header (if (functionp org-journal-date-format) (funcall org-journal-date-format time) (concat
org-journal-date-prefix (format-time-string org-journal-date-format time))))) (goto-char (point-min)) (if (search-forward entry-header nil t) nil (if
(org-journal-daily-p) nil (let ((date (decode-time time)) (dates (sort ... ...)) found) (setq date (list (nth 4 date) (nth 3 date) (nth 5 date))) (while
dates (if (calendar-date-compare dates ...) (progn ... ... ... ...)) (setq dates (cdr dates))) (if found nil (goto-char (point-max)) (forward-line)))) (if
(looking-back "[^\011 ]" (point-at-bol)) (progn (insert "\n"))) (beginning-of-line) (insert entry-header) (if (org-journal-daily-p) nil (org-set-property
"CREATED" (format-time-string "%Y%m%d" time))) (if org-journal-enable-encryption (progn (if (member org-crypt-tag-matcher (org-get-tags)) nil
(org-set-tags org-crypt-tag-matcher)))))) (org-journal-decrypt) (if (and org-journal-carryover-items (string= entry-path (org-journal-get-entry-path
(current-time)))) (progn (org-journal-carryover))) (if (org-journal-org-heading-p) (outline-end-of-subtree) (goto-char (point-max))) (if
should-add-entry-p (progn (if (eq (current-column) 0) nil (insert "\n")) (let* ((day-discrepancy (- (time-to-days ...) (time-to-days time))) (timestamp
(cond (... ...) (... ...) (t "")))) (insert org-journal-time-prefix timestamp)) (run-hooks (quote org-journal-after-entry-create-hook)))) (if (and
org-journal-hide-entries-p (org-journal-time-entry-level)) (outline-hide-sublevels (org-journal-time-entry-level)) (save-excursion
(org-journal-finalize-view))) (if should-add-entry-p (progn (outline-show-entry))))
(let (oetu-active-p) (let ((now (decode-time nil))) (if (and (not time) (< (nth 2 now) org-extend-today-until)) (setq oetu-active-p t time (encode-time
(nth 0 now) (nth 1 now) (nth 2 now) (1- (nth 3 now)) (nth 4 now) (nth 5 now) (nth 8 now))))) (let* ((entry-path (org-journal-get-entry-path time))
(should-add-entry-p (not prefix))) (if (string= entry-path (buffer-file-name)) nil (funcall org-journal-find-file entry-path)) (let ((entry-header (if
(functionp org-journal-date-format) (funcall org-journal-date-format time) (concat org-journal-date-prefix (format-time-string
org-journal-date-format time))))) (goto-char (point-min)) (if (search-forward entry-header nil t) nil (if (org-journal-daily-p) nil (let ((date ...) (dates
...) found) (setq date (list ... ... ...)) (while dates (if ... ...) (setq dates ...)) (if found nil (goto-char ...) (forward-line)))) (if (looking-back "[^\011 ]"
(point-at-bol)) (progn (insert "\n"))) (beginning-of-line) (insert entry-header) (if (org-journal-daily-p) nil (org-set-property "CREATED"
(format-time-string "%Y%m%d" time))) (if org-journal-enable-encryption (progn (if (member org-crypt-tag-matcher ...) nil (org-set-tags
org-crypt-tag-matcher)))))) (org-journal-decrypt) (if (and org-journal-carryover-items (string= entry-path (org-journal-get-entry-path
(current-time)))) (progn (org-journal-carryover))) (if (org-journal-org-heading-p) (outline-end-of-subtree) (goto-char (point-max))) (if
should-add-entry-p (progn (if (eq (current-column) 0) nil (insert "\n")) (let* ((day-discrepancy (- ... ...)) (timestamp (cond ... ... ...))) (insert
org-journal-time-prefix timestamp)) (run-hooks (quote org-journal-after-entry-create-hook)))) (if (and org-journal-hide-entries-p
(org-journal-time-entry-level)) (outline-hide-sublevels (org-journal-time-entry-level)) (save-excursion (org-journal-finalize-view))) (if
should-add-entry-p (progn (outline-show-entry)))))
org-journal-new-entry(nil)
funcall-interactively(org-journal-new-entry nil)
call-interactively(org-journal-new-entry nil nil)
command-execute(org-journal-new-entry)
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or mute the thread.

yay  Danke

Curiously I am suddenly getting this same error (org-journal 2.1.2) for no apparent reason; Emacs config untouched. If I can't resolve it I'll update w/ details.

I also started to get this error without any change in configuration. I am using Doom emacs. I get this when I want to open a journal entry from calendar.

I'm getting this error whenever I try to open a new entry.


vk_quad --> QuadRenderer does not works in shadowmap sample

Please checkout "shadowmap" branch of vk_graphics_basic to check this issue
You can switch between FSQuad and QuadRenderer in "m_pFSQuad = std::make_shared<vk_utils::FSQuad>()"

PS: I made same API for FSQuad and QuadRenderer by putting scissor inside Create method, but this should not be a reason for bug.

take shadowmap2

as: need different vs shader!

should be fixed with next update from gitlab, got correct shaders and update scissors


Netgen6.2.2006

Checklist

[ ] Used a personal fork of the feedstock to propose changes
[ ] Bumped the build number (if the version is unchanged)
[ ] Reset the build number to 0 (if the version changed)
[ ] Re-rendered with the latest conda-smithy (Use the phrase @conda-forge-admin, please rerender in a comment in this PR for automated rerendering)
[ ] Ensured the license file is being packaged.

Hi! This is the friendly automated conda-forge-linting service.
I just wanted to let you know that I linted all conda-recipes in your PR (recipe) and found it was in an excellent condition.
I do have some suggestions for making it better though...
For recipe:

License is not an SPDX identifier (or a custom LicenseRef) nor an SPDX license expression.

Documentation on acceptable licenses can be found here.

I guess all conda-related issues are worked around. Now there are some vtk-9 issues remaining:

win:

FAILED: CMakeFiles/SMESH.dir/src/SMESH/SMESH_MeshEditor.cxx.obj
C:\PROGRA~2\MICROS~1\2017\ENTERP~1\VC\Tools\MSVC\1416~1.270\bin\Hostx64\x64\cl.exe  /nologo /TP -DBOOST_ALL_DYN_LINK -DCSFDB -DDIY_NO_THREADS -DH5_BUILT_AS_DYNAMIC_LIB -DHAVE_FREEIMAGE -DHAVE_TBB -DHAVE_VTK -DMSDOS -DNO_FPINIT -DNO_ISATTY -DNO_My_ctype -DNO_ONEXIT -DSMESH_EXPORTS -DUNICODE -DUSE_CLOCK -DVTK_HAS_OGGTHEORA_SUPPORT -DVTK_OPENGL2_BACKEND -DWIN32 -DWNT -D_CRT_NONSTDC_NO_DEPRECATE -D_CRT_SECURE_NO_WARNINGS -D_UNICODE -D_WINDOWS -D__TBBMALLOC_NO_IMPLICIT_LINKAGE -D__TBB_NO_IMPLICIT_LINKAGE -I%PREFIX%\Library\include\opencascade -I%PREFIX%\Library\include\netgen -I%PREFIX%\Library\include\netgen\occ -I%PREFIX%\Library\include\netgen\meshing -I%PREFIX%\Library\include\netgen\general -I%PREFIX%\Library\include\netgen\linalg -I%PREFIX%\Library\include\netgen\csg -I%PREFIX%\Library\include\netgen\geom2d -I%PREFIX%\Library\include\netgen\gprim -I%PREFIX%\Library\include\netgen\include -I%PREFIX%\Library\include\netgen\stlgeom -I..\inc -I%PREFIX%\Library\include -I%PREFIX%\Library\include\vtk-9.0 -I%PREFIX%\include -I%PREFIX%\Library\include\double-conversion -I%PREFIX%\Library\include\eigen3 /DWIN32 /D_WINDOWS /W3 /GR /EHsc /MD /O2 /Ob2 /DNDEBUG   /wd4290 /wd4251 /wd4018 /wd4800 /wd4996 /wd4244 /wd4805 /wd4806 /wd4275 /wd4005 /wd4099 /wd4101 /wd4146 /wd4267 /wd4390 /wd4503 /wd4436 -DSMESHimpl_EXPORTS /showIncludes /FoCMakeFiles\SMESH.dir\src\SMESH\SMESH_MeshEditor.cxx.obj /FdCMakeFiles\SMESH.dir\ /FS -c ..\src\SMESH\SMESH_MeshEditor.cxx
..\src\SMESH\SMESH_MeshEditor.cxx(11314): error C2039: 'GetLink': is not a member of 'vtkAbstractCellLinks'
d:\bld\smesh_1597229878334\_h_env\library\include\vtk-9.0\vtkAbstractCellLinks.h(41): note: see declaration of 'vtkAbstractCellLinks'
..\src\SMESH\SMESH_MeshEditor.cxx(11494): error C2664: 'void vtkUnstructuredGrid::GetCellPoints(vtkIdType,vtkIdType &,const vtkIdType *&)': cannot convert argument 3 from 'vtkIdType *' to 'const vtkIdType *&'
..\src\SMESH\SMESH_MeshEditor.cxx(11494): note: Conversion loses qualifiers
..\src\SMESH\SMESH_MeshEditor.cxx(11674): error C2039: 'GetLink': is not a member of 'vtkAbstractCellLinks'
d:\bld\smesh_1597229878334\_h_env\library\include\vtk-9.0\vtkAbstractCellLinks.h(41): note: see declaration of 'vtkAbstractCellLinks'
..\src\SMESH\SMESH_MeshEditor.cxx(12129): error C2664: 'void vtkUnstructuredGrid::GetCellPoints(vtkIdType,vtkIdType &,const vtkIdType *&)': cannot convert argument 3 from 'vtkIdType *' to 'const vtkIdType *&'
..\src\SMESH\SMESH_MeshEditor.cxx(12129): note: Conversion loses qualifiers

osx:

../src/NETGENPlugin/NETGENPlugin_NETGEN_2D_ONLY.cxx:326:55: error: 'value' is unavailable: introduced in macOS 10.14
    const double factor = netgen::mparam.closeedgefac.value();
                                                      ^
$BUILD_PREFIX/bin/../include/c++/v1/optional:953:27: note: 'value' has been explicitly marked unavailable here
    constexpr value_type& value() &

linux:

./src/SMESH/SMESH_MeshEditor.cxx:11314:54: error: 'class vtkAbstractCellLinks' has no member named 'GetLink'
         vtkCellLinks::Link l = grid->GetCellLinks()->GetLink(oldId);
                                                      ^~~~~~~
../src/SMESH/SMESH_MeshEditor.cxx:11494:69: error: cannot bind non-const lvalue reference of type 'const vtkIdType*& {aka const long long int*&}' to an rvalue of type 'const vtkIdType* {aka const long long int*}'
                       grid->GetCellPoints(vtkVolIds[ivol], npts, pts);
                                                                     ^
In file included from ../inc/SMDS_UnstructuredGrid.hxx:29:0,
                 from ../inc/SMDS_Downward.hxx:27,
                 from ../src/SMESH/SMESH_MeshEditor.cxx:29:
$PREFIX/include/vtk-9.0/vtkUnstructuredGrid.h:196:8: note:   initializing argument 3 of 'void vtkUnstructuredGrid::GetCellPoints(vtkIdType, vtkIdType&, const vtkIdType*&)'
   void GetCellPoints(vtkIdType cellId, vtkIdType& npts, vtkIdType const*& pts)
        ^~~~~~~~~~~~~
../src/SMESH/SMESH_MeshEditor.cxx:11674:52: error: 'class vtkAbstractCellLinks' has no member named 'GetLink'

do you know of any patched smesh which works with vtk9?

No. But a few months ago a partially ported the smesh version of FreeCAD to vtk9: https://github.com/wwmayer/FreeCAD/commit/52599f771fa934ceeb11a970c3639bfa8f90411e
What still needs to be done are the parts marked with: //FIXME: vtk9
Since I have never worked with vtk before I don't know how to do this properly.

#41 netgen is now directly included


Make the I18n class public

What
Make the I18n public by removing any @private annotations and exporting it in a way that it can be consumed by users of GOV.UK Frontend.
Include documentation for the class in any user-facing documentation (e.g. the JS API Reference)
Before we do this we should make sure we're happy with the name of the class.
Why
We previously made the I18n class private in order to give us the freedom to make changes to the implementation after shipping it. Once we're happy with the implementation, we should make it public so that people building other components can re-use it.
Who needs to work on this
Developers
Who needs to review this
Developers, tech writer
Done when

[ ] We're happy with the name of the class
[ ] Any internal methods are private (either marked with a @private annotation or actually encapsulated as private)
[ ] Annotations mark the class as public
[ ] The class can be consumed by users of GOV.UK Frontend
[ ] Documentation for the class published in API reference etc

I've added another 'done when' to ensure that we clearly delineate which methods are designed to be called from outside of the class and which are 'internal' – at the minute the class itself is private but the methods do not have access annotations.


msbuild Variable Version has unwanted value

msbuild.proj Variable Version
has the value v2016.11.0-1328-g723699f
This is the value of /git/salt git describe
where it is set?

NOT REPRODUCABLE


Modify get_ and set_state for multiple addresses

Modifies the get_state and set_state methods for TransactionContext in
the Rust SDK to take in a list of addresses to get/set instead of just
one address. This aligns with the functionality of the other SDKs. Also
modifies existing uses of SDK (smallbank_rust and inkey_rust) to call
methods properly.
Signed-off-by: Logan Seeley<EMAIL_ADDRESS>

Could you please update the commit message to reflect the changes to the XO Rust example as well?


Retrieve large amount of data from a Client on a memory limited device

Hello everyone,
I have a memory limited device and want to retrieve a large amount of data via a "single" read/GET request.
To be more specific: I am trying to download a trace buffer (64kBytes in size) from an embedded device. For this I want to use object ID 20 (Log Event).
For this I wanted to use raw block-wise transfer which is working perfectly fine for Write Requests to the Device (firmware Update).
But it looks like it does not work for read/GET requests.
Is this expected to be supported by wakaama in any way? As far as I can see the client tries to malloc() the required amount of memory for the whole response (which is impossible on my device). It is also not possible to somehow indicate that the response must be done in a blockwise manner.
So I am currently trying to implement this on my own, but I am a little bit confused. Regarding who is initating the blockwise transfer in this case.
According to RFC 7959 (https://www.rfc-editor.org/rfc/rfc7959#section-2.1) a blockwise transfer from the Server should be done with BLOCK1 option for the GET request and the client responds with BLOCk2 responses.

Should the Server at all indicate via BLOCK1 that it expects the read/GET to be done via blockwise transfer
or should the Client automatically respond with BLOCK2 if the response is larger then the CHUNK_SIZE
?

As far as I understand section 2.3 of the RFC, the responder (in this case the Client) should automatically respond with BLOCK2 indicating that the response comes in blocks.

I can only answer about specification/RFC, someone else will maybe answer about specific point about Wakaama.
Maybe obvious but just in case, some clarification :
BLOCK1 is about transferring large payload in a request (e.g. PUT or POST)
BLOCK2  is about transferring large payload in a response (e.g. GET)
In CoAP :

the client is the peer sending the request
the server is the peer sending the response.

LWM2M client act as a CoAP client (e.g. register operation) but also as a CoAP server. (e.g. write operation)
This is also true for the LWM2M server.
So better to always prefix client/server by LWM2M or CoAP to avoid confusion.
In case of a LWM2M Read Request (CoAP GET request). LWM2M server acts as a CoAP client. LWM2M client as a CoAP server.
As you want to transfer a large payload of a response of CoAP GET request, BLOCK2 should be used.

Should the Server at all indicate via BLOCK1 that it expects the read/GET to be done via blockwise transfer

No, in that case you should not use BLOCK1.
But a CoAP client (in that case LWM2M server) can use BLOCK2 in the initial request to express the preferred block size :

To influence the block size used in a response, the requester MAY
also use the Block2 Option on the initial request, giving the desired
size, a block number of zero and an M bit of zero.  A server MUST use
the block size indicated or a smaller size.

(source  : https://www.rfc-editor.org/rfc/rfc7959#section-2.4)

or should the Client automatically respond with BLOCK2 if the response is larger then the CHUNK_SIZE

This is the common case but we see just above that the CoAP client also can ask for block2 transfer given a small block size.
HTH

I'm not so familiar with the client side of Wakaama. As far as I know, there is no raw BLOCK2 support there. I'ts also not always possible to implement. Some data types need to know the whole payload before it can be serialized.


Create heard.txt

@lee-phillips Pull request merged. Please notice that free educational license for JetBrains tools is for high and higher schools students, i.e. those who are over 13 of age. Thank you!


Some Potential NPD bugs

Hi all,
Our bug scanner has reported some potential NPD bugs.
The first one is at BufferedCodeWriter.java#L135 . Since the variable pendingFileName is  compared with null on the previous line, it can be null and may be passed to the first parameter of the function printLineDirective() .This may  raise a NullPointerException at the function escape()(when it invokes string.length) , which is invoked by printLineDirective .(printLineDirective passed its first paramater that can be null  to the second parameter of the functionescape)
The second one is caused by the return null in method getClassLoader(). For example, when the return value loader of getClassLoader() invokes its method getResources , a NullPointerException may be raised.
The third one is caused by the return null in method get(). One possible call chain is getDecomposition() => matches() .When the return value decCurCodePoint invokes its method length, a NullPointerException may take place.
The following call chain is similar : group() in TMatchResultImpl.java => group() in TMatcher.java => processReplacement() in TMatcher.java => group.length().
The forth is that the variable leaf is initialized as null at TPattern.java#L756 , and the assignment may be skipped, which produces a NullPointerException at TPattern.java#L765, when it invokes its setNext() method. The same statement occurs at  #L773 , #L781 .
The fifth is at ExceptionHandling.java#L47 , the variable methodLocation may be null , and a NullPointerException may occur at #L50 .
Thanks.

The second one is caused by the return null in method getClassLoader(). For example, when the return value loader of getClassLoader() invokes its method getResources , a NullPointerException may be raised.

This is not an issue. This particular implementation of getClassLoader is never actually executed, instead it's replaced by classloader magic with proper implementation. Note that this implementation throws exception before returning null, so you never get NPE here.

The third one is caused by the return null in method get().
The forth is that the variable leaf is initialized as null

I won't fix anything in this code. I did not write it, I copied it from Apache Harmony. This particular code related to regular expressions. Unfortunately, this code is completely unclear and I don't understand how it works. May be some day I'll find time to rewrite regular expression engine from scratch, but for now I'll just leave it as it is.

How about other bugs? Are they correct?

I fixed other potential bugs, however I believe it was impossible to reproduce the first one. There's convention in TeaVM code for locations: either both fileName != null and lineNumber >= 0 or fileName == 0 and lineNumber == -1, so having something that does not fit into these conditions is a bug (and I could not find any case when this rule is violated). I think static analyzers can't infer such rules.

Thanks!

@hohwille well, your comment is so educational. I learnt a great deal. B.T.W why don't try a smarter static code analyzer (or the smartest) by your standard (whatever that is) and show me the bug reports they produce. I would be very happy to hear if they are producing less false positives. If that's not the case, please genius programmers continue your fantastic coding practices.


Remove "minids" language in all other stories

This is not a solar eclipse issue, but I'm putting this here for now because I'm less likely to lose track of it here.
The updates made in these commits need to be applied also to all the split data stories and the originals still living in the minids repo:
https://github.com/cosmicds/solar-eclipse-2024/commit/5e4e803c8829451fe199be5f9b730c67f3d46c17
https://github.com/cosmicds/solar-eclipse-2024/commit/5067e546436f10fa4a9d090c711e55d552c0b48f

This is done. Won't bother linking all the PRs here.


Unable to place caret on certain lines in Markdown editor

Quite frequently when editing a blog post, I am not able to click on a line to place the caret there. If I place the caret at the beginning of the line, hitting the right arrow causes it to skip straight to the next line. The only way to get the caret to where I want is to step backwards from the very end of the line. I'm wondering if I'm doing something wrong since otherwise I imagine the others would have reported such a serious problem.
I'm using Chrome on OS X.

Same here. Thx for reporting, Matthew.


create table test cases

Create a repository of create table statements that flex all the various edge cases:

default values (int, string, float, null, blob, hex blob, non hex blob)
multi col primary keys
no cols
not null constraints
no primary keys
all part of primary key
...

and run crr, view, trigger, etc. tests against it.

Hi, tantaman
Nice to meet you , i am rock ,  i focus on decentralized database domain, and look for some people who have similar ideals and beliefs.  I’m one of the authors of the decentralized database P2PDB   i'd like to make a  friend with you, do you have  any contact way  that  I can   contact you with ,such wechat、twitter、telegram

@Rock-liyi  - https://twitter.com/Tantaman if you want to send me a message request.

this is no longer required given the new approach of not needing to parse create table statements.


Implement scheme (move dispatchre kernels to arrus core layer).

in a session it should be possible to run a scheme
-- scheme consists of TxRxSequence, a single processing Pipeline, and Buffers connecting them
-- move usg-framework/implement missing cuda kernels

Implemented.


get all and Fallback if translation is missing #23

Hi , i want to select all and then fallback the missing translation , i did some research on documentation but couldn't find any solution .
let's say my default language is en and i want to select all slider with fr locale from database but  also fallback the missing to en
$value = \App\Sliders::translatedIn("fr",true)->get()
$value should return all fr translation + fallback the missing
any solution please ?

You would need a custom scope which allows multiple locales:
return  \App\Sliders::whereHas('translations', function (Builder $q) use ($locale) {
        $q
                ->where($this->getLocaleKey(), '=', $locale)
                ->orWhere($this->getLocaleKey(), '=', $defaultLocale);
});

After this the normal logic will takeover and translate all in fr if possible or en as fallback. The code is just copied from the current scope - so could be that you have to play-around a bit to make it work. You could also use whereIn and list locales as an array.

As announced here, the project has been deprecated. Please use astrotomic/laravel-translatable.


debug node sometimes not coming up on aeproject env

eventually this only happens in older projects with newer aeproject versions or the other way round
no fully reproducible case is known yet, just received some reports that were solved with running docker-compose up -d manually to bring the environment up

generally make aeproject env more robust, using local node/compiler versions and displaying used versions to the user


Custom logo

Hi, I'm seeing this in the API Documentation:

2 questions.
1- Where would this logo be displayed ?
2- I tried this bit did not see the custom logo:
$options = array(
'show_names' => 'show',
'show_label' => 'false',
'reaction_available' => false,
'exit_url' => site_url(),
'logo' => $logo_url,
);
Thanks for your help !

I've added the option, should be fine now. The logo is replaced on the top left corner.

Great, thanks!

this is a great stuff from the eyeson team.
hopefully, if you extended the API with loading animation and color scheme option like custom color scheme, it would be great feature for us.

Thank you for the feedback. We currently do not support such configurations and have no customization for the provided default web UI on our roadmap. However you can easily create your own custom user interface, which has almost no limitations. You can find more details in the documentation of the eyeson JavaScript package that helps you get started quickly.

thank you. will go with react ui build level


KAFKA-3522: Add TimestampedWindowStore builder/runtime classes

Part of KIP-258.
This PR adds

TimestampedWindowStore
MeteredTimestampedWindowStore
ChangeLoggingTimestampedWindowByteStore
TimestampedWindowStoreBuilder

Rebased this. Call for review @guozhangwang @bbejeck @vvcephei @ableegoldman

Pushed one more commit to cleanup the code.

Known flaky tests failed:

https://issues.apache.org/jira/browse/KAFKA-7965
https://issues.apache.org/jira/browse/KAFKA-8063
https://issues.apache.org/jira/browse/KAFKA-4332
https://issues.apache.org/jira/browse/KAFKA-8032

Retest this please.

@mjsax Thanks for the updates! LGTM.

Known flaky test failed: https://issues.apache.org/jira/browse/KAFKA-8059
Retest this please.

Merged #6173 into trunk


GUIContent revert mismatch.

Original GUIContent can be discarded in some cases after asset importing/script compilation. Changing skins after this point can cause some GUIContent to fail to revert.
http://bradsmithee.com/shared/[1962][2016-06-16][1422].mp4~

Fixed.  GUIContent now properly flushes/refreshes.


Running R Scripts using source

Hi,
I am using the buildpack mentioned for heroku-16 stack and have been able to get my app up and running on heroku. It relies on both ruby and R connecting to postgresql. I'm trying to run lengthy R scripts by using the source function in R and avoid embedding many long chunks of prepared R code into my ruby scripts. I have no issue running it locally or running simple R commands. In addition, the path to my R script seems to work since I received a different error when the path was incorrect. Below is my ruby method 'hpi.rb' and the simple R script 'test.R' that I'm trying to call.
hpi.rb
def self.get_hpi_data
	r = Rserve::Connection.new(:cmd_init=>'R CMD Rserve "--no-save"')
	r.eval("print(R.version.string)"); #works
	if Rails.env.development?
		r.eval("source('./lib/external_scripts/test.r')"); #works
	else
		r.eval("setwd('../../..')"); #works
		r.eval("print(getwd())"); #works
		r.eval("print(list.files())"); #works
		r.eval("source('/app/lib/external_scripts/test.r')"); #this line breaks
	end
end

test.r
	print("Hello")
In the heroku logs, I get the following error:
2017-12-30T19:59:15.995065+00:00 app[web.1]: libfakeroot, when sending message: Invalid argument
2017-12-30T19:59:16.033673+00:00 app[web.1]: [1] "R version 3.4.0 (2017-04-21)"
2017-12-30T19:59:16.076987+00:00 app[web.1]: [1] "/tmp/Rserv/conn80"
2017-12-30T19:59:16.117691+00:00 app[web.1]: character(0)
2017-12-30T19:59:16.197039+00:00 app[web.1]: [1] "/"
2017-12-30T19:59:16.237258+00:00 app[web.1]:  [1] "app"   "bin"   "boot"  "dev"   "etc"   "home"  "lib"   "lib64" "media"
2017-12-30T19:59:16.237312+00:00 app[web.1]: [10] "mnt"   "opt"   "proc"  "root"  "run"   "sbin"  "srv"   "sys"   "tmp"
2017-12-30T19:59:16.237328+00:00 app[web.1]: [19] "usr"   "var"
2017-12-30T19:59:16.279580+00:00 app[web.1]: semop(1): encountered an error: Invalid argument
2017-12-30T19:59:16.281696+00:00 app[web.1]: [ea20e265-607f-410b-97a4-5e4656492959] Completed 500 Internal Server Error in 324ms (ActiveRecord: 12.4ms)
2017-12-30T19:59:16.282629+00:00 app[web.1]: [ea20e265-607f-410b-97a4-5e4656492959]
2017-12-30T19:59:16.282680+00:00 app[web.1]: [ea20e265-607f-410b-97a4-5e4656492959] Rserve::Connection::EvalError (eval failed: ):

I'd appreciate any guidance you can provide me. I'm open to any ways to run an R script if I'm on the wrong track.
Thanks!

Rserve has proven to be problematic when running within the fakechroot, however I've found RinRuby gem to be more than suitable as an alternative.
I've created a gist with a working solution using source to execute an R script, and retrieve any variables it assigns.
Checkout the application.rb and test.r files for how it's done. Also, notice how path to the R set to use the fakechroot.

Thank you for getting back to me so quickly! I was able to get this solution to work in my app. A couple notes to others implementing this solution:

I needed to use this version of rinruby to get heroku to deploy: https://rubygems.org/gems/rootapp-rinruby
I needed to use lowercase when initializing the r interface (rinterface instead of RInterface) in ruby 2.4.2

One thing that I haven't been able to figure out is how to load packages with this solution. I've tried putting the windows, mac, and ubuntu binaries directly in my codebase (for example, https://mirror.las.iastate.edu/CRAN/src/contrib/Rcpp_0.12.14.tar.gz) and call them in my R code like so:
library(Rcpp, lib.loc="/app/lib/external_scripts/libraries")
However, the heroku logs show the following error.
2017-12-31T19:32:02.885595+00:00 app[web.1]: [1] "Running HPI Script"
2017-12-31T19:32:02.885818+00:00 app[web.1]: [1] "/"
2017-12-31T19:32:02.888309+00:00 app[web.1]: Error in library(rjson, lib.loc = "/app/lib/external_scripts/libraries") :
2017-12-31T19:32:02.888311+00:00 app[web.1]:   ‘rjson’ is not a valid installed package
2017-12-31T19:32:02.888313+00:00 app[web.1]: Calls: source -> withVisible -> eval -> eval -> library
2017-12-31T19:32:02.888315+00:00 app[web.1]: Execution halted

A more elegant solution would be to use the load the packages with the buildpack and call them in R even if I'm running the scripts in rinruby. Any tips to get packages to load?
Thanks!


Number of successful submissions differs from leetcode

For example

Predictor show 9868 successful attempts and leetcode shows 8532

Hi, @DmitryBokovikov  Thanks for your comment. Please note that LeetCode has another data region in China. The rating algorithm applies to both the US and CN data regions, so successful submissions in the CN region are also included.
Same question as #25  and #33

Thanks 👍


Port IVT to Microsoft.VisualStudio.PortableLibrary added in VSO copy …

…of the Microsoft.VisualStudio.Editors project

Tagging @dotnet/project-system for review

Also tagging @shyamnamboodiripad

Fixes VSO 244923

:+1:

Why was this missing? Was this added recently?

Yes - see commit

👍


Can behavior be dynamic?

I'm trying to have a behavior where I have multiple groups of draggable items, and dragging an item within a group reorders it, but dragging an item to a different group does a copy. For example, it seems like the Copy draggable example could be modified to have this behavior. Currently the behavior prop is a constant so I can't modify it based on the target drop zone.
Another semi-variant of this is to allow copy vs move to be toggled by the Alt key on a mac, similar to what react-dnd does here: http://react-dnd.github.io/react-dnd/examples-dustbin-copy-or-move.html

Hi @jfranty
Its not supported right now but that sound like a good feature to add. Lets keep this issue open.

But for now if you want make container sortable and if droppped to a certain drop zone copy the item. you can do it keeping the same draggable list for the source container. It does not make sense to change the behavior just before the drop according to the target container since the draggable will be already dragged out of the container. It can only be changed before the drag started. Thats how I plan to modify the feature


cohort three reorg and push

What changes are you trying to make? (e.g. Adding or removing code, refactoring existing code, adding reports)
This is a basic re-org of the cohort_three folder, including the slides I will teach from

folder: slides -- my slides
slide_redesign -- slides dan has been working on but are not yet ready

What did you learn from the changes you have made?
Was there another approach you were thinking about making? If so, what approach(es) were you thinking of?
Were there any challenges? If so, what issue(s) did you face? How did you overcome it?
How were these changes tested?
A reference to a related issue in your repository (if applicable)
Checklist

[x] I can confirm that my changes are working as intended

plz merge this one first


Integrating VP18cCom via RS485 serial USB

Hi,
I'm trying to connect my Nilan VP18cCom via RS485 serial USB with HA (using also CTS602).
I'm getting the error message "Unsupported Device" during the integration of Nilan.
I'm new at HA, the same interface was working before via PI and Node Red.
I've added this into configration.yaml and restarted HA:
# Logger logger:   default: critical   logs:     custom_components.nilan: debug     custom_components.hacs: debug
But I'm still unable to see any log entries in Log-book. Have also activated debug protocoll for the HACS device.
Here is my selection:

As the path seems to be correct:

You should get an entry in logbook after trying to configure the device. Also provide the pictures asked in read-me.

Hi
thanks for your quick response. Please find attached pics from Nilan devices.
Thanks for checking!!

This is actually where I stuck up. So, what I did:

Debug is active for HACS:

Configuration.yaml: Have added these lines, saved the file, restarted HA
# Logger
logger:
  default: info
  logs:
    custom_components.nilan: debug
    custom_components.hacs: debug

(After new start STRG & F5 for cache) Add new integration, entered Nilan, selected SERIAL and following

Getting the issue related to unsupported device

Checking the Logbook, no entry for this integration

Even in home-assistant.log no entry related to this:

I'm pretty sure that I'm doing something wrong...

That should work. You don't need the HACS debugging.

But still not able to see any entries in Log Book for Nilan or am I checking the wrong log book?

But still not able to see any entries in Log Book for Nilan or am I checking the wrong log book?

Yes. Go to settings->system->logs.

Thanks, as I said, newbie at HA, here is an entry for Nilan, does it help you?
Logger: homeassistant.util.async_
Source: util/async_.py:159
First occurred: 10:35:30 (3 occurrences)
Last logged: 10:35:30
Detected blocking call to sleep inside the event loop. This is causing stability issues. Please report issue to the custom integration author for nilan doing blocking calls at custom_components/nilan/config_flow.py, line 59: result = client.read_holding_registers(

DEBUG (MainThread) [custom_components.nilan.config_flow] Device Type XX not found in supported devices list
I meed this entry from logs.

ok, now it should be the right one, hopefully, thanks for being patient with me :)
DEBUG (MainThread) [custom_components.nilan.config_flow] Device Type 12 not found in supported devices list

Great. I will add your device ASAP.

Support for your device is now in release 1.1.17


A question about Flickr 8k dataset

In your paper,  you excluded some sentence when you used flickr 8k. You said: "Because 158 candidates are actual references of target images, we excluded these for further analysis."
This setting is for make a fair comparison with other papers or any other purposes?
Wish your reply, thx.

Hi Yaya,
Yes, this setting is for a fair comparison with other matrics. Please let
me know if you have any other questions.
Thanks,
Ming
On Thu, Jun 4, 2020 at 2:44 AM ShiYaya<EMAIL_ADDRESS>wrote:

In your paper, you excluded some sentence when you used flickr 8k. You
said: "Because 158 candidates are actual references of target images, we
excluded these for further analysis."
This setting is for make a fair comparison with other papers or any other
purposes?
Wish your reply, thx.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/SeleenaJM/CapEval/issues/1, or unsubscribe
https://github.com/notifications/unsubscribe-auth/ABBYCULY7CD2NPZLGLBFDTTRU5GHDANCNFSM4NSLTV3Q
.


Set socket timeout to opts.timeout or 1 -- to prevent constant reads

Defaults to 1 ms timeout (to prevent continuous reading on the socket even if no information is available). Added an option "timeout" in case there are event less requirements for socket performance speed.
Previously, the defaults were 0 and the socket would eat all my CPU when using chrome.

@OptimusLime This has two problems:

settimeout parameter is in seconds
the non-blocking lua-ev implementation makes no sense at all when working with timeouts

maybe your app logic drives chrome or your lua process busy?
the lua-ev implementation is running on many products  (where i work) and no performance issues so far.


python_scripts support

First of all thanks for your awesome work!
Describe the solution you'd like
Could be possible to add support for python_scripts?
Describe alternatives you've considered
custom_updater support them.
Thanks!

I'm not sure that would be viable.
Have a look at https://github.com/custom-components/hacs/issues/77 (Request for AppDaemon support)
Do you have examples that can be added?
I'm not aware of a single repository that only contains this?

This is the only one that i know:
https://github.com/bieniu/home-assistant-config/blob/master/python_scripts/python_scripts.json
but is not a single repo as you have pointed out.
However we could start defining the integration and let the other devs adapt their repo..

Setting it up (by using the structure of integrations) would not be that hard (3-5h at most).
But until there is broad support for doing that among developers this is not something I will want to pursue.

I understand your concern, but how can a feature spread if it's not supported?
HACS would not exist if HASS had not provided custom_components!
However let's see if this issue will raise interest...

I would also like to see python_scripts.
One from custom_updater:
  python_script_urls:
    - https://raw.githubusercontent.com/pnbruckner/homeassistant-config/master/python_scripts.json

That one would not work under HACS.

Implemented in 0.9.0 🎉


Add support for reliability mods

Add an interface that can be hooked into by reliability mods and lets them check when the engine is running, and eventually break the engine.

I guess a simple boolean in the VesselData might be used to indicate if an engine is broken or not. we could add a basic static method that would allow you to change it state.

We need one broken state per engine, one per craft isn't going to be enough


Phoebemirman/ch15668/border goes away and search indicator looks

https://app.clubhouse.io/augur/story/15668/border-goes-away-and-search-indicator-looks-weird-when-zooming
just the fix for border

Coverage remained the same at 63.219% when pulling 9d514881cae88b358d73bd55cf950247d6b22d76 on phoebemirman/ch15668/border-goes-away-and-search-indicator-looks into f347ee2a3b5ae89e9c14357d1bbf458b43374fe5 on master.


Request WPTO fails with omni-directional_wave_height

Specific issue is here: https://github.com/MHKiT-Software/MHKiT-MATLAB/blob/e780f1c13680d74d22c68be092634c3da5d1e527/mhkit/wave/IO/hindcast/request_wpto.m#L117-L118
Anticipated fix is to remove dashes from parameter(z):
sanitized_parameter = strrep(parameter(z), '-', "_");
data(y).(sanitized_parameter) = param.value;

resolved in #144


Add url prefix convention for many compression formats

Intro
When doing dataset streaming, the uncompression of compressed files is done on the fly using fsspec.
In particular, the download manager method download_and_extract doesn't return a path to the local download and extracted file, but instead a chained URL so that the uncompression can be done when the file is opened. A few examples of chained URLS:

gz://file.txt::https://foo.bar/file.txt.gz
bz2://file.txt::https://foo.bar/file.txt.bz2
zip://::https://foo.bar/archive.zip
tar://::https://foo.bar/archive.tar.gz (the TAR uncompression includes gz, bz2 etc. uncompression in fsspec)

This syntax is highly inspired by the fsspec URL chaining syntax from https://filesystem-spec.readthedocs.io/en/latest/features.html#url-chaining
This url prefixing allows open to know what kind of uncompression to do in a dataset script when doing
def _generate_examples(self, urlpath):
    with open(urlpath) as f:
        ....

What it changes
This changes the previous behavior from https://github.com/huggingface/datasets/pull/2786 , in which open was trying to infer the compression automatically. Infering the compression made it impossible to know whether the user wanted open to return compressed data (as the default behavior of the buitin open), or the uncompressed data. By adding uncompression prefixes to the URL, open know directly if it has to uncompress or not, and also which protocol to use.
Additional notes
This PR should close https://github.com/huggingface/datasets/issues/2813
It should also close this PR https://github.com/huggingface/datasets/pull/2811 since the oscar dataset script won't try to uncompress twice anymore
Note that I had to temporarily remove the support for passing tar and zip files to data_files for streaming to make it work, since it makes it ambiguous whether a zip file passed as data_files should be uncompressed or not. IMO we can make it work again by changing the syntax to make the glob explicit:
load_dataset("json", data_files="zip://*.jsonl::https://foo.bar/archive.zip")

This is the exact same convention as fsspec and it removes all ambiguities
cc @albertvillanova @lewtun

Thanks for the feedback :) I will also complete the documentation to explain this convention

I just added come documentation about how streaming works with chained URLs.
I will also add some docs about how to use chained URLs directly in load_dataset in #2662, since #2662 does change the documentation already and to avoid having to resolve conflicts.

Merging this one now, next step is resolve the conflicts in #2662 and update the docs for URL chaining :)
There is also the glob feature of zip files that I need to add, to be able to do this for example:
load_dataset("json", data_files="zip://*::https://foo.bar/archive.zip")


fix(card): add camel-cased selectors to content projection

Fixes the camel-cased selectors for mdCardTitle and mdCardSubtitle not being added to the content projection selector.
Fixes #6816.
@jelbourn this seems along the same lines as https://github.com/angular/material2/pull/5647, should I get rid of the dash-cased selectors while I'm at it?

Shouldn't it also be changed in card-header.html?

Can I interject with one other related question? Shouldn't md-card-header, md-card-content, md-card-actions, and md-card-footer all support camel-cased attribute selectors as well? They're all technically directives and I've been using the equivalent dialog container components using the attribute selectors for some time.

@crisbeto, once there's no @Component decorator associated, I would expected to find camelCase attributes to all of them. At least it was what I got from this: according to https://github.com/angular/material2/issues/6720#issuecomment-326012361 (unless there is any specificity related to md-card).

@andrewseguin where did we leave off when we last talked about these? This was one of the special cases we said we'd figure out later