Training Problem

Hey guys. I want to know how the algorithm judge when should stop the training. It seems like that there is no ending code. Thank you for your patience.

Based on our observation, the model keeps improve the performance even with a long training interation. So it depends on your gpu resources. For ablation, I suggest you pick a suitable ending points, such 600k, 1000k, or 2000k iterations.


Short tag cypress/included:13.11.0 points to Node.js 18.20.3 versions

Issue
On https://hub.docker.com/r/cypress/included/tags the short tag
cypress/included:13.11.0 is incorrectly linked to

cypress/included:cypress-13.11.0-node-18.20.3-chrome-125.0.6422.141-1-ff-126.0.1-edge-125.0.2535.85-1

it should however still be linked to Cypress 13.11.0 with Node.js 20.14.0, not Node.js 18.20.3

cypress/included:cypress-13.11.0-node-20.14.0-chrome-125.0.6422.141-1-ff-126.0.1-edge-125.0.2535.85-1

The problem was created by an oversight in

PR #1098

Suggestion
This is probably best corrected manually on the Docker Hub portal.
Lessons learned

See PR https://github.com/cypress-io/cypress-docker-images/pull/1105

Workaround
Use the long tag

cypress/included:cypress-13.11.0-node-20.14.0-chrome-125.0.6422.141-1-ff-126.0.1-edge-125.0.2535.85-1

short tag should be updated now https://hub.docker.com/layers/cypress/included/13.11.0/images/sha256-08d27295f83918b513bf57d85e70a931e62ffd1d21e31774428acffc0b29c950?context=explore


How to handle Single Sign Out across domains?

Core Library
MSAL.js v2 (@azure/msal-browser)
Core Library Version
2.31.0
Wrapper Library
MSAL Angular (@azure/msal-angular)
Wrapper Library Version
2.4.6
Public or Confidential Client?
Public
Description
Not sure how to get Single Sign Out working across domains. I have Single Sign On working fine - user signs in on domain1.com and then when calling ssoSilent() on domain2.com, the user is automatically signed in.
Desired Behavior: I'd like it if a user on domain1.com clicks msalService.logoutRedirect(), then if the user attempts to access a guarded route or call a protected resource on, they are unable to do so.
I've followed the front channel logout instructions here, and I have a front-channel logout URL set for both domains (domain1.com/logout and domain2.com/logout). These routes load the following copied from the Angular 11 sample project  but I have also tried passing in the config object from the first link (posted in the relevant code snippets below)
Cache location is also set to localStorage.
Is it possible to do this cross-domain? I figured that since cross-domain SSO works, I might be able to make sign-off happen but I'm not sure where to go from here. Thanks all!
MSAL Configuration
{
  auth: {
    clientId: 'my-client-id-asdf-asdfgasdf',
    authority: b2cPolicies.authorities.signUpSignIn.authority,
    knownAuthorities: ['myauthority.b2clogin.com],
    redirectUri: '/',
  },
  cache: {
    cacheLocation: BrowserCacheLocation.LocalStorage,
    storeAuthStateInCookie: isIE,
  },
  system: {
    loggerOptions: {
      loggerCallback: (logLevel, message, containsPii) => {
        console.log(message);
      },
      logLevel: LogLevel.Error,
      piiLoggingEnabled: false,
    },
  },
};

Relevant Code Snippets
const msal = new PublicClientApplication({
    auth: {
        clientId: "my-client-id"
    },
    system: {
        allowRedirectInIframe: true
    }
})

// Automatically on page load
msal.logoutRedirect({
    onRedirectNavigate: () => {
        // Return false to stop navigation after local logout
        return false;
    }
});

Identity Provider
Azure B2C Basic Policy
Source
External (Customer)

Hi @mattcheah.
Yes, cross-domain sign out is possible. However, you are skipping the server sign-out in your code snippet by performing local logout only (clearing cache). You can remove onRedirectNavigate callback to perform the server sing-out inside the iframe since you have allowRedirectInIframe set to true.

Thanks @konstantin-msft,
I removed the onRedirectNavigate callback, was there anything else required? It looks like functionality remains the same on my end.

@mattcheah Can you please share the trace logs? Please refer to this doc for assistance.

Sure, this is what is logged after calling logoutRedirect()
main.ts:12 [Mon, 08 May 2023 15:33:23 GMT]<EMAIL_ADDRESS>: Verbose - preflightBrowserEnvironmentCheck started
main.ts:12 [Mon, 08 May 2023 15:33:23 GMT]<EMAIL_ADDRESS>: Verbose - preflightInteractiveRequest called, validating app environment
main.ts:12 [Mon, 08 May 2023 15:33:23 GMT]<EMAIL_ADDRESS>: Trace - BrowserCacheManager.getTemporaryCache: No cache item found in local storage
main.ts:12 [Mon, 08 May 2023 15:33:23 GMT] : [25ba7fb2-6a6f-457f-accf-143bf01d9951]<EMAIL_ADDRESS>: Verbose - logoutRedirect called
main.ts:12 [Mon, 08 May 2023 15:33:23 GMT] : [25ba7fb2-6a6f-457f-accf-143bf01d9951]<EMAIL_ADDRESS>: Verbose - initializeLogoutRequest called
main.ts:12 [Mon, 08 May 2023 15:33:23 GMT] : [25ba7fb2-6a6f-457f-accf-143bf01d9951]<EMAIL_ADDRESS>: Verbose - logoutHint was not set and account was not passed into logout request, logoutHint will not be set
main.ts:12 [Mon, 08 May 2023 15:33:23 GMT] : [25ba7fb2-6a6f-457f-accf-143bf01d9951]<EMAIL_ADDRESS>: Verbose - Setting postLogoutRedirectUri to uri set on logout request
main.ts:12 [Mon, 08 May 2023 15:33:23 GMT] : [25ba7fb2-6a6f-457f-accf-143bf01d9951]<EMAIL_ADDRESS>: Verbose - initializeServerTelemetryManager called
main.ts:12 [Mon, 08 May 2023 15:33:23 GMT]<EMAIL_ADDRESS>: Info - Emitting event: msal:logoutStart
main.ts:12 [Mon, 08 May 2023 15:33:23 GMT]<EMAIL_ADDRESS>: Verbose - Emitting event to callback a0ac5a43-5783-4a48-95df-21d5631c65f1: msal:logoutStart
main.ts:12 [Mon, 08 May 2023 15:33:23 GMT]<EMAIL_ADDRESS>: Verbose - BroadcastService - msal:logoutStart results in setting inProgress from none to logout
main.ts:12 [Mon, 08 May 2023 15:33:23 GMT] : [25ba7fb2-6a6f-457f-accf-143bf01d9951]<EMAIL_ADDRESS>: Verbose - No account provided in logout request, clearing all cache items.
main.ts:12 [Mon, 08 May 2023 15:33:23 GMT]<EMAIL_ADDRESS>: Trace - BrowserCacheManager.getAccessTokenCredential: cache hit
main.ts:12 [Mon, 08 May 2023 15:33:23 GMT]<EMAIL_ADDRESS>: Trace - BrowserCacheManager.getRefreshTokenCredential: cache hit
main.ts:12 [Mon, 08 May 2023 15:33:23 GMT]<EMAIL_ADDRESS>: Trace - BrowserCacheManager.getIdTokenCredential: cache hit
main.ts:12 [Mon, 08 May 2023 15:33:23 GMT]<EMAIL_ADDRESS>: Verbose - Deleting in-memory keystore asymmetricKeys
main.ts:12 [Mon, 08 May 2023 15:33:23 GMT]<EMAIL_ADDRESS>: Verbose - In-memory keystore asymmetricKeys deleted
main.ts:12 [Mon, 08 May 2023 15:33:23 GMT]<EMAIL_ADDRESS>: Verbose - Deleting in-memory keystore symmetricKeys
main.ts:12 [Mon, 08 May 2023 15:33:23 GMT]<EMAIL_ADDRESS>: Verbose - In-memory keystore symmetricKeys deleted
main.ts:12 [Mon, 08 May 2023 15:33:23 GMT]<EMAIL_ADDRESS>: Verbose - Deleting persistent keystore
main.ts:12 [Mon, 08 May 2023 15:33:23 GMT]<EMAIL_ADDRESS>: Verbose - Persistent keystore deleted
main.ts:12 [Mon, 08 May 2023 15:33:23 GMT] : [25ba7fb2-6a6f-457f-accf-143bf01d9951]<EMAIL_ADDRESS>: Verbose - getClientConfiguration called
main.ts:12 [Mon, 08 May 2023 15:33:23 GMT] : [25ba7fb2-6a6f-457f-accf-143bf01d9951]<EMAIL_ADDRESS>: Verbose - getDiscoveredAuthority called
main.ts:12 [Mon, 08 May 2023 15:33:23 GMT] : [25ba7fb2-6a6f-457f-accf-143bf01d9951]<EMAIL_ADDRESS>: Trace - PerformanceClient: Performance measurement started for standardInteractionClientGetDiscoveredAuthority
main.ts:12 [Mon, 08 May 2023 15:33:23 GMT] : [25ba7fb2-6a6f-457f-accf-143bf01d9951]<EMAIL_ADDRESS>: Trace - PerformanceClient: Performance measurement for standardInteractionClientGetDiscoveredAuthority started
main.ts:12 [Mon, 08 May 2023 15:33:23 GMT]<EMAIL_ADDRESS>: Trace - PerformanceClient: Adding static fields
main.ts:12 [Mon, 08 May 2023 15:33:23 GMT] : [25ba7fb2-6a6f-457f-accf-143bf01d9951]<EMAIL_ADDRESS>: Verbose - Creating discovered authority with configured authority
main.ts:12 [Mon, 08 May 2023 15:33:23 GMT] : [25ba7fb2-6a6f-457f-accf-143bf01d9951]<EMAIL_ADDRESS>: Verbose - Attempting to get cloud discovery metadata in the config
main.ts:12 [Mon, 08 May 2023 15:33:23 GMT] : [25ba7fb2-6a6f-457f-accf-143bf01d9951]<EMAIL_ADDRESS>: Verbose - The host is included in knownAuthorities. Creating new cloud discovery metadata from the host.
main.ts:12 [Mon, 08 May 2023 15:33:23 GMT] : [25ba7fb2-6a6f-457f-accf-143bf01d9951]<EMAIL_ADDRESS>: Verbose - Found cloud discovery metadata in the config.
main.ts:12 [Mon, 08 May 2023 15:33:24 GMT]<EMAIL_ADDRESS>: Trace - BrowserCacheManager.setAuthorityMetadata called
main.ts:12 [Mon, 08 May 2023 15:33:24 GMT] : [25ba7fb2-6a6f-457f-accf-143bf01d9951]<EMAIL_ADDRESS>: Trace - PerformanceClient: Performance measurement ended for standardInteractionClientGetDiscoveredAuthority: 373 ms
main.ts:12 [Mon, 08 May 2023 15:33:24 GMT] : [25ba7fb2-6a6f-457f-accf-143bf01d9951]<EMAIL_ADDRESS>: Trace - PerformanceClient: Performance measurement for standardInteractionClientGetDiscoveredAuthority added/updated
main.ts:12 [Mon, 08 May 2023 15:33:24 GMT] : [25ba7fb2-6a6f-457f-accf-143bf01d9951]<EMAIL_ADDRESS>: Verbose - Auth code client created
main.ts:12 [Mon, 08 May 2023 15:33:24 GMT]<EMAIL_ADDRESS>: Info - Emitting event: msal:logoutSuccess
main.ts:12 [Mon, 08 May 2023 15:33:24 GMT]<EMAIL_ADDRESS>: Verbose - Emitting event to callback a0ac5a43-5783-4a48-95df-21d5631c65f1: msal:logoutSuccess
main.ts:12 [Mon, 08 May 2023 15:33:24 GMT]<EMAIL_ADDRESS>: Trace - BrowserCacheManager.getTemporaryCache: No cache item found in local storage
main.ts:12 [Mon, 08 May 2023 15:33:24 GMT]<EMAIL_ADDRESS>: Trace - BrowserCacheManager.getTemporaryCache: No cache item found in local storage

@mattcheah I can't see anything suspicious in the MSAL.js logs. Can you please send me the whole Fiddler trace in an email specified in my Github profile description.

Thanks Konstantin - I sent it over. Much appreciated!

@mattcheah I've reviewed your trace but there don't appear to be any logout calls in it. Can you record another trace and make sure to include the logout in it? Once you have it you can send it to our team at<EMAIL_ADDRESS>Thanks!

Thanks @tnorling, I've sent an email to that address with a new trace.
The new trace seemed very similar to the old one and both contained calls to the Azure AD B2C OAuth 2.0 logout endpoint (v2) (with ?post_logout_redirect_uri=[...]&client-request-id=[...] query params), let me know if that's not what you're looking to see. Thanks!

@mattcheah Thanks, I do see the calls to the logout endpoint now but do not see the iframed calls to your front channel logout urls. That makes this a service issue, could you please follow the directions at this link to open an issue with the B2C service team? They will need to review your app configuration and trace here to determine why that's not happening.

Hi @mattcheah. Yes, cross-domain sign out is possible. However, you are skipping the server sign-out in your code snippet by performing local logout only (clearing cache). You can remove onRedirectNavigate callback to perform the server sing-out inside the iframe since you have allowRedirectInIframe set to true.

Will this work for regular Azure AD as well? I followed the docs as described here:
But it doesn't log out the session from the apps.
Since localstorage/sessionStorage etc are tight to the same origin security principle of modern browsers you cannot clear browser storage from a different origin.
So app 1 hosted on https://app-1.localhost:3001 cannot clear the browserstorage of https://app-2.localhost:3001 via an iframe. This is blocked by the browser. Am I correct?
At least, for me it doesn't work...


Cassandra backend

There seems to be a lot of interest in a Cassandra backend, this issue is to give people a place to track that.  As of yet we don't have one.  :)

Duplicate of https://github.com/cayleygraph/cayley/issues/20


(maint) Update report format version in HTTP report doc

The current report format is version 12. It also changes the grammar.

Can one of the admins verify this patch?

When applying this to Puppet 6, it really should be format version 11. I'm not sure about Puppet's processes here.

https://github.com/puppetlabs/puppet/pull/8843 should do that.


API not compleate and many Problems

Hey @aidancbrady ,
I actually trying to get my addition out as seperate addon but it isn't easy.
The API is quite small and I could not found any maven so I used bdew thirdparty maven to implement your API for 1.10.2.
It will be glad if you can implement the Shaped/ShaplessMekansimRecipe stuff and the Multiblock stuff so that I must not implement my own one.
Also some acces to e. g. the circuit tiers will be glad too and an option to add config valus to the actually one.
Sourccode can be found here: https://github.com/chaos234/MekanismAdditions/tree/1.10.2
But I have trouble with the empty proxys: http://paste.ee/p/3qryt
I also contacted you over Skype but without any response from your side so I hope that you can help me out like you have said it in the past.

Your proxy issue has to do with you not extending CommonProxy in your ClientProxy.
The API is small for a reason; it's meant as an application programming interface, not as a library that contains Mekanism's functional code.  As I said before, you can definitely reference core Mekanism classes in your module, but you should refrain from shipping Mekanism code that is not the API in your packaged mod.

For 1.7.10:
I have inserted the liquid system but the images are not what htey should be.
Please refere: https://github.com/chaos234/MekanismAdditions/issues/1
For 1.10.2:
I found out, that the new ModelRender needs a specific .json file which I have added and now my
InformationTab is in.
I must only change it to that what it should be.
My Secound way for Heavy Water and Deuterium for 1.10.2 is compleatly finished. Only language is missing.
How can I distribute it?

Ok, all images and system are working now, only the gui for my information tablet is missing :)


Error 0x80073cf3: Cannot upgrade Firefox because another package with the same name is installed

Brief description of your issue
When trying to upgrade Mozilla Firefox I receive this error message about a missing dependency:
winget upgrade -e Mozilla.Firefox --verbose
Trovato Mozilla Firefox [Mozilla.Firefox] Versione 129.0.2
Microsoft non è responsabile né concede alcuna licenza a pacchetti di terze parti.
Verifica dell'hash di installazione completata
Avvio installazione pacchetto in corso...
  ████████████████████████████▌   95%
Nel sistema manca una dipendenza per questo pacchetto.
Programma di installazione non riuscito con codice di uscita: '0x80073cf3 : Convalida degli aggiornamenti, delle dipendenze e dei conflitti del pacchetto non eseguita.'

I expected that winget is able to resolve any dependency tree issues. However, digging in the logs for the command execution, I find these interesting lines:
2024-08-23 11:08:16.668 [CORE] Deployment operation #1: Impossibile installare il pacchetto Mozilla.MozillaFirefox_<IP_ADDRESS>_x64__jag0gd4e3s9p2. È già installato un pacchetto Mozilla.MozillaFirefox_<IP_ADDRESS>_x64__gmpnhwe7bv608 diverso con lo stesso nome. Prima di eseguire l'installazione, rimuovere il pacchetto Mozilla.MozillaFirefox_<IP_ADDRESS>_x64__gmpnhwe7bv608.
2024-08-23 11:08:16.668 [FAIL] C:\__w\1\s\external\pkg\src\AppInstallerCommonCore\Deployment.cpp(192)\WindowsPackageManager.dll!00007FFAD4A46773: (caller: 00007FFAD4961BBD) Exception(1) tid(1274) 80073CF3 Convalida degli aggiornamenti, delle dipendenze e dei conflitti del pacchetto non eseguita.

Which roughly translate to: "Impossible to install Mozilla Firefox 129 package. There's a different Mozilla Firefox 126 package with the same name. Before installing, remove Mozilla Firefox 126" which seems absurd to me because I'm asking winget to upgrade the package.
Steps to reproduce
winget upgrade -e Mozilla.Firefox
Expected behavior
winget is able to upgrade Mozilla Firefox just fine as it does for other packages
Actual behavior
winget is unable to upgrade Mozilla Firefox because another version of the package is already installed
Environment
Gestione pacchetti Windows v1.8.1911
Copyright (c) Microsoft Corporation. Tutti i diritti sono riservati.

Windows: Windows.Desktop v10.0.19045.4780
Architettura di sistema: X64
Pacchetto: Microsoft.DesktopAppInstaller v1.23.1911.0

Directory WinGet
----------------------------------------------------------------------------------------------------------------------------------------
Log                                         %LOCALAPPDATA%\Packages\Microsoft.DesktopAppInstaller_8wekyb3d8bbwe\LocalState\DiagOutputDir
Impostazioni utente                         %LOCALAPPDATA%\Packages\Microsoft.DesktopAppInstaller_8wekyb3d8bbwe\LocalState\settings.json
Directory collegamenti portabili (utente)   %LOCALAPPDATA%\Microsoft\WinGet\Links
Directory collegamenti portabili (computer) C:\Program Files\WinGet\Links
Radice pacchetto portabile (utente)         %LOCALAPPDATA%\Microsoft\WinGet\Packages
Radice pacchetto portabile                  C:\Program Files\WinGet\Packages
Radice pacchetto portabile (x86)            C:\Program Files (x86)\WinGet\Packages
Download del programma di installazione     %USERPROFILE%\Downloads

Collegamenti
------------------------------------------------------------------------------------
Informativa sulla privacy    https://aka.ms/winget-privacy
Contratto di licenza         https://aka.ms/winget-license
Comunicazioni di terze parti https://aka.ms/winget-3rdPartyNotice
Home page                    https://aka.ms/winget
Condizioni di Windows Store  https://www.microsoft.com/en-us/storedocs/terms-of-sale

Impostazione amministrazione              Stato
------------------------------------------------------
LocalManifestFiles                        Disabilitate
BypassCertificatePinningForMicrosoftStore Disabilitate
InstallerHashOverride                     Disabilitate
LocalArchiveMalwareScanOverride           Disabilitate
ProxyCommandLineOptions                   Disabilitate
DefaultProxy                              Disabilitate

Hi @8549,
The package manager matches data from the Registry with data from manifests. And it appears that we do have Firefox 126.0 described in a manifest. So the package manager should be matching the linked manifest with the data in the computer's Registry.
I'm guessing that the version of Firefox 126 on your computer is somehow different than the version of Firefox 126 described in the manifest in our repo, and this is causing the package manager to generate the error we see. The UpgradeBehavior is to install the newest version, but when the package manager tries to do this, it finds that certain bits aren't in the right buckets and this process becomes blocked.
Install method can be important, and installing with one kind of installer, then upgrading with another kind, is not recommended. Usually, the package manager gives an error, but maybe this is an unusual situation.

[!Note]
While researching this, I came across a version of Mozilla Firefox (ID 9NZVDKPMR9RD) available through the msstore source. This application has numerous installation paths.

How was Firefox installed on this computer?
Is it possible to uninstall Firefox, then install Firefox again with WinGet? This is the usual solution for similar issues.

Thank you for the information. Firefox was indeed installed with winget right after setting up the computer.
PS C:\Users\filippo> winget list -q firefox
Nome            Id              Versione  Disponibile Origine
-------------------------------------------------------------
Mozilla Firefox Mozilla.Firefox <IP_ADDRESS> 129.0.2     winget

I could try to go through the uninstall and reinstall ordeal, but I'd consider that a workaround rather than a "solution" -- considering the issue has been caused by the package manager itself. Do you have any other suggestion before I try to do that?

In this case, I'm not sure of the best route forward.


color-yellow-4 isnt being respected

this dont work:

this work:

if this suppose to happen?
if you go to uno interactive color-yellow-4 and color-yellow-400 has the same output
https://unocss.dev/interactive/?s=color-yellow-4
https://unocss.dev/interactive/?s=color-yellow-400
by the way loved your project, should be part of uno have this dynamism

Actually the yello-4 mean color is yellow but opacity is 4% ,and if you want add custom color you should config like this
{
  /**
   * define color name
   */
  colors:{
    yellow1: '#xxx',
    yellow2: '#xxx',
    ...
  },

then u can use like c-yellow1 text-yellow1


Here are my scripts for your list

Not sure if this will help, but I do keep a repo with some of my scripts on github as well:
https://github.com/IceDragon200/iek
It's a mixture of RMVX, RMVXA, RGSS2, and RGSS3; since I primarily worked in porting RMVX scripts to work in RGSS3 there are some crossover scripts as well

I'll add it!


[DROOLS-1216] add enforcer execution which bans blacklisted dependencies

Please don't merge yet, more related PRs coming.

+1

OK, this is now ready to merge (the failing Drools build is not related to these changes).

+1


fix: wizard for Next15 ts config

fix #312

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

Project coverage is 87.50%. Comparing base (6755df7) to head (c77995b).

Additional details and impacted files
@@            Coverage Diff             @@
##             main     #313      +/-   ##
==========================================
- Coverage   89.22%   87.50%   -1.72%
==========================================
  Files          32       32
  Lines        2562     2562
  Branches      333      284      -49
==========================================
- Hits         2286     2242      -44
- Misses        275      318      +43
- Partials        1        2       +1

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


cmd/compile: lower performance in tip and AMD64=v3

What version of Go are you using (go version)?

$ gotip version
go version devel go1.21-a6c382eaa8 Fri Mar 24 14:23:19 2023 +0000 linux/amd64

$ go1.20.2 version
go version go1.20.2 linux/amd64

Does this issue reproduce with the latest release?
Yes
What did you do?
package main

import (
        "encoding/binary"
        "math/bits"
        "math/rand"
        "testing"
)

func BenchmarkChecksum(b *testing.B) {
        bb := make([]byte, 1024)
        r := rand.New(rand.NewSource(1))

        initial := uint16(r.Uint32())
        r.Read(bb)

        b.ResetTimer()

        var out uint16
        for i := 0; i < b.N; i++ {
                out = Checksum(bb, initial)
        }
        _ = out

        b.SetBytes(int64(len(bb)))
}

func Checksum(buf []byte, _ uint16) uint16 {
        var off int
        var sum, carry uint64
        for ; off <= len(buf)-64; off += 64 {
                chunk := (*[64]byte)(buf[off : off+64 : off+64])

                {
                        n1 := binary.BigEndian.Uint64(chunk[8*0:])
                        sum, carry = bits.Add64(sum, n1, carry)
                        n2 := binary.BigEndian.Uint64(chunk[8*1:])
                        sum, carry = bits.Add64(sum, n2, carry)
                        n3 := binary.BigEndian.Uint64(chunk[8*2:])
                        sum, carry = bits.Add64(sum, n3, carry)
                        n4 := binary.BigEndian.Uint64(chunk[8*3:])
                        sum, carry = bits.Add64(sum, n4, carry)
                }

                {
                        n1 := binary.BigEndian.Uint64(chunk[8*4:])
                        sum, carry = bits.Add64(sum, n1, carry)
                        n2 := binary.BigEndian.Uint64(chunk[8*5:])
                        sum, carry = bits.Add64(sum, n2, carry)
                        n3 := binary.BigEndian.Uint64(chunk[8*6:])
                        sum, carry = bits.Add64(sum, n3, carry)
                        n4 := binary.BigEndian.Uint64(chunk[8*7:])
                        sum, carry = bits.Add64(sum, n4, carry)
                }
        }
        return uint16(sum)
}

What did you expect to see?
gotip and GOAMD64=v3 go1.20.2 to maintain the performance of go1.20.2
What did you see instead?
go1.20.2 test --bench Checksum checksum_test.go
goos: linux
goarch: amd64
cpu: Intel(R) Core(TM) i7-4790 CPU @ 3.60GHz
BenchmarkChecksum-8     15659816                72.35 ns/op     14154.40 MB/s

gotip test --bench Checksum checksum_test.go
goos: linux
goarch: amd64
cpu: Intel(R) Core(TM) i7-4790 CPU @ 3.60GHz
BenchmarkChecksum-8     12009291                94.35 ns/op     10852.66 MB/s

For go1.20.2 GOAMD64=v3 I get similar performance as for gotip
GOAMD64=v3 go1.20.2 test --bench Checksum checksum_test.go
goos: linux
goarch: amd64
cpu: Intel(R) Core(TM) i7-4790 CPU @ 3.60GHz
BenchmarkChecksum-8     12212551                97.91 ns/op     10458.96 MB/s

I am not seeing the same thing you are seeing. I ran with 1.20.2 and tip, GOAMD64=v1 and v3.  Here are the results for go1.20.2 GOAMD64=v1 and v3:
GOAMD64=v1 go1.20.2 test --bench Checksum checksum_test.go --exec "perf stat"
BenchmarkChecksum              1<PHONE_NUMBER> ns/op        14210.54 MB/s
PASS

           3604.05 msec task-clock                       #    1.000 CPUs utilized
               935      context-switches                 #  259.430 /sec
                 1      cpu-migrations                   #    0.277 /sec
               346      page-faults                      #   96.003 /sec
<PHONE_NUMBER>0      cycles                           #    3.982 GHz
<PHONE_NUMBER>4      instructions                     #    2.77  insn per cycle
<PHONE_NUMBER>      branches                         #  736.389 M/sec
             67098      branch-misses                    #    0.00% of all branches

GOAMD64=v3 go1.20.2 test --bench Checksum checksum_test.go --exec "perf stat"
BenchmarkChecksum              1<PHONE_NUMBER> ns/op        10435.78 MB/s
PASS

           4907.21 msec task-clock                       #    1.000 CPUs utilized
              1216      context-switches                 #  247.799 /sec
                 1      cpu-migrations                   #    0.204 /sec
               349      page-faults                      #   71.120 /sec
<PHONE_NUMBER>1      cycles                           #    3.984 GHz
<PHONE_NUMBER>1      instructions                     #    1.71  insn per cycle
<PHONE_NUMBER>      branches                         #  541.015 M/sec
             77628      branch-misses                    #    0.00% of all branches

So the generated code has something going on that impacts instructions per cycle or perf stat is just unable to report the relevant perf counters to me. If there's nothing silly going in the assembly then I'm happy to accept that my CPU has a less wrinkly brain than most.

At v1, the code uses MOVQ + BSWAPQ. At v3, it uses MOVBE instead (combined load+byteswap).
It sounds like your chip really doesn't like MOVBE for some reason.

I modified the Checksum function to process in chunks of 48 bytes instead of 64. This did the trick and now both GOAMD64=v1 and v3 get similar performance.
GOAMD64=v1 BenchmarkChecksum              1<PHONE_NUMBER> ns/op        14113.73 MB/s
GOAMD64=v3 BenchmarkChecksum              1<PHONE_NUMBER> ns/op        14068.45 MB/s
Looking at the generated code the only real thing that GOAMD64=v3 ever did was to convert MOVQ+BSWAP pair to a MOVBE. With 56 byte chunks I got the same performance as with 64 so I guess 48 bytes is a sweet spot for my CPU and that's that.

I did notice that 64-byte chunks needed one more register than was available, so it had to spill a bit. 48-byte chunks would probably avoid that. That may be related to what you are seeing (it's unhappy with MOVBE followed immediately by a store?).

For both 64-byte 56-byte chunks it also seems to be spilling the slice length. But I might be misreading the assembly. Also go tool objdump tells me that there's a sequence of 6 NOPL instructions in the hot loop after all the ADCQs. Why is there so many of them in a sequence? For 64-byte chunks version it's a sequence of 7 NOPLs.

Those NOPs mark the inlining callsites of the binary.Uint64 calls. They are used for tracebacks.
Removing them is #29571

Alright, I now finally realized to check how the assembly diffs between GOAMD64=v1 go1.20.2 and GOAMD64=v1 gotip for the Checksum function. The difference boils down to those NOPLs just being in a different location yet the performance goes from ~14000MB/s -> ~10000MB/s.
diff go1.20.2vsgotip.txt
Understanding why this is the case is above my pay-grade. Feel free to close the issue if there's nothing to really do. I already figured out the fix for me.

The nop thing is tracked on a different issue, so we can close this.


First time connecting using ASE, error "Read: ECONNRESET"

This is the message I get: request to https://apmdlw001.blob.core.windows.net/cona?delimiter=%2F&maxresults=1000&include=metadata&restype=container&comp=list failed, reason: read ECONNRESET

Did you sign in or attach? Is the Storage Account the container is in ADLS Gen2?

Closing due to lack of response.


Feature/twig js

I can take care of these!

Merged this into feature/twig-js and made a new PR as I can't make changes on your branch.


Feature/bookmark icons

Description
Added the files for the new bookmark icons chosen by the group and implemented them in the Landing Card. Since these are pulled from a 3rd party source that requires they be attributed to the creator, I also made a small footer for that purpose.
The test document for the LandingCard component has been updated to reflect the changed icons.
https://www.loom.com/share/0347f35869944ab28a9ae86cc6bfbc6b
Type of change
Please delete options that are not relevant.

[X] New feature (non-breaking change which adds functionality)

Checklist:

[X] My code follows the style guidelines of this project
[X] I have performed a self-review of my own code
[X] I have removed unnecessary comments/console logs from my code
[ ] I have made corresponding changes to the documentation if necessary (optional)
[X] My changes generate no new warnings
[X] I have checked my code and corrected any misspellings
[X] No duplicate code left within changed files
[X] Size of pull request kept to a minimum
[X] Pull request description clearly describes changes made & motivations for said changes

This was a great addition to the code base, helping to round out the form of our cards for the landing page by including the bookmarks.  Also want to echo the praise on updating the tests to reflect the changes.  Great attention to detail!


cannot create a new partition in nvme0n1

Running Environment:

Host OS and Kernel version: [Ubuntu 14.04   linux kernel:4.13.0]
Compiler version used to build SimpleSSD-FullSystem: [GCC 7.5.0]
SimpleSSD-FullSystem version: [v2.0.10      commit hash:96377cf409f1bc10d8b5678221f1aa16b1cb0d06]
SimpleSSD version: [v2.0.13    commit hash:73ad8ad5220ce5ebfeb055687d0328765a046c0f]
Guest Kernel version: [Linux 4.9.92 compiled with aarch64-linux-gnu-gcc]. I follow the intro of the website:https://docs.simplessd.org/en/v2.0.12/index.html   and use the kernel it proviede:aarch64-vmlinux-4.9.92.
Compiler version used to build Guest Kernel binary: [Linaro GCC 7.5.0] Actually, I did not compile the Guest Kernel.

Execution information

Execution command line of gem5:
./build/ARM/gem5.opt --debug-flag=M5Print --debug-file=debug.txt  ./configs/example/fs.py --kernel=aarch64-vmlinux-4.9.92  --dtb-file=armv8_gem5_v1_4cpu.dtb --machine-type=VExpress_GEM5_V1  --num-cpu=4 --cpu-clock=2GHz --caches --l2cache --cpu-type=AtomicSimpleCPU  --mem-size=4GB --mem-type=DDR4_2400_8x8  --ssd-interface=nvme --ssd-config=./src/dev/storage/simplessd/config/sample.cfg --disk-image=linaro-aarch64-linux.img
Execution command line in guest OS (inside of simulation):
I want to create a new partition in the device--nvme0n1.

Explain what you want to ask here:
I want to run SimpleSSD-FullSystem with the default settings. So I follow the website you provided: https://docs.simplessd.org/en/v2.0.12/index.html. To avoid anything unexpected, I did not change anything in the source code, and I downloaded the kernel image and disk image in the website: https://drive.google.com/drive/folders/14b-kJmGXOhltX9Aqr8XV9i48KkZk4Lzs?usp=sharing.
I use the command above to boot the SimpleSSD-FS.
After booting the system successfully, I use "cat /proc/partitions" to show the partitions, and the result is:
root@genericarmv8:~# cat /proc/partitions
major minor  #blocks  name

 259        0  402653184 nvme0n1
   8        0    1048576 sda
   8        1    1047552 sda1

And I use "fdisk /dev/nvme0n1" to create a new partition. When I want to write the settings and exit from the menu of fdisk. Errors happened. The stdout of the GEM5 is:
root@genericarmv8:~# fdisk /dev/nvme0n1
...(omit)
Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-393216, default 1): Using default value 1
Last cylinder or +size or +sizeM or +sizeK (1-393216, default 393216): Using default value 393216

Command (m for help): w
The partition table has been altered.
Calling ioctl() to re-read partition table.

And the stdout of SimpleSSD is:
Global frequency set at<PHONE_NUMBER>000 ticks per second
warn: DRAM device capacity (16384 Mbytes) does not match the address range assigned (4096 Mbytes)
info: kernel located at: /home/mzliu/m5/binaries/aarch64-vmlinux-4.9.92
warn: Bootloader entry point 0x10 overriding reset address 0
warn: Highest ARM exception-level set to AArch32 but bootloader is for AArch64. Assuming you wanted these to match.
0: PAL: Channel |   Way   |   Die   |  Plane  |  Block  |   Page
0: PAL:       8 |       4 |       2 |       2 |     512 |     512
...(omit)
1097169245711: ICL: WRITE | LCA 0 + 1 |<PHONE_NUMBER>711 -<PHONE_NUMBER>791 (3070080)
1097172668291: HIL::NVMe: NVM     | WRITE | CQ 4 | SQ 4:44 | CID 990 | NSID 1     | 0 + 8 |<PHONE_NUMBER>211 -<PHONE_NUMBER>291 (8240080)
1097177630711: HIL::NVMe: INTR    | MSI-X sent | vector 3
1097179959500: HIL::NVMe: CQ 4    | Completion Queue Head Doorbell | Item count in queue 1 -> 0 | head 44 -> 45 | tail 45
...(omit)
17868695134987500: HIL::NVMe: BAR0    | READ  | Controller Status
17868695134987500: HIL::NVMe: DMAPORT | READ  | DATA 00000001
17869687124288000: HIL::NVMe: BAR0    | READ  | Controller Status
17869687124288000: HIL::NVMe: DMAPORT | READ  | DATA 00000001
17870711113088500: HIL::NVMe: BAR0    | READ  | Controller Status
17870711113088500: HIL::NVMe: DMAPORT | READ  | DATA 00000001
17871703102376500: HIL::NVMe: BAR0    | READ  | Controller Status
17871703102376500: HIL::NVMe: DMAPORT | READ  | DATA 00000001

It seems that everything goes well at the beginning of the SimpleSSD-FS, and the log shows that admin and I/O queues are successfully create.
The stdout of  GEM5 is:
==== m5 slave terminal: Terminal 0 ====
[    0.000000] Booting Linux on physical CPU 0x0
[    0.000000] Linux version 4.9.92.CAMELab<EMAIL_ADDRESS>(gcc version 7.2.1 20171011 (Linaro GCC 7.2-2017.11) ) #6 SMP PREEMPT Thu Apr 19 14:30:50 KST 2018
...(omit)
[    0.381850] nvme nvme0: pci function 0000:00:02.0
[    0.381861] nvme 0000:00:02.0: enabling device (0000 -> 0002)
[    0.381869] nvme 0000:00:02.0: enabling bus mastering
...(omit)
[    0.541603] scsi 0:0:0:0: Direct-Access     ATA      M5 IDE Disk      n/a  PQ: 0 ANSI: 5
[    0.573640] sd 0:0:0:0: [sda] 2097152 512-byte logical blocks: (1.07 GB/1.00 GiB)
[    0.573689] sd 0:0:0:0: Attached scsi generic sg0 type 0
[    0.573722] sd 0:0:0:0: [sda] Write Protect is off
[    0.573728] sd 0:0:0:0: [sda] Mode Sense: 00 3a 00 00
[    0.573753] sd 0:0:0:0: [sda] Write cache: disabled, read cache: enabled, doesn't support DPO or FUA
[    0.574043]  sda: sda1
[    0.574391] sd 0:0:0:0: [sda] Attached SCSI disk
[    0.589548] EXT4-fs (sda1): couldn't mount as ext3 due to feature incompatibilities
[    0.590336] EXT4-fs (sda1): mounted filesystem with ordered data mode. Opts: (null)
[    0.590348] VFS: Mounted root (ext4 filesystem) on device 8:1.
[    0.590716] devtmpfs: mounted
[    0.590793] Freeing unused kernel memory: 512K
[    0.593705] random: fast init done
INIT: version 2.88 booting
Starting udev
starting version 232
[    0.740012] EXT4-fs (sda1): re-mounted. Opts: data=ordered
hwclock: can't open '/dev/misc/rtc': No such file or directory
Mon Dec 12 07:18:58 UTC 2016
hwclock: can't open '/dev/misc/rtc': No such file or directory
INIT: Entering runlevel: 3
haveged: listening socket at 3
haveged: haveged starting up
Configuring network interfaces... ifconfig: SIOCGIFFLAGS: No such device
Prefare for gem5-specific works...
Mon Dec 12 07:18:58 UTC 2016
Reading scripts...
[    0.897589] input: PS/2 Generic Mouse as /devices/platform/1c070000.kmi/serio1/input/input2
...

So could you help me find out what the problem is? Looking forward to your reply.

Hi,
By default, SimpleSSD only calculates timing (latency) of I/O and does not store any data written to the SSD. To create filesystem, you need to change configuration file to make SimpleSSD to store data to backing file.
I don't recommend you to run fdisk and mkfs inside of gem5 simulation (VERY, VERY SLOW). Please check following steps:

Create disk image as usual. See here.
Update SimpleSSD configuration as following: Check comments in the configuration file for details

[nvme]
LBASize = 512       # You MUST set LBA size as 512, not 4096.
EnableDiskImage = 1 # Change this to one.
StrictSizeCheck = 0 # Let this zero, if your disk image has different size with simulated SSD.
DiskImageFile1 = <path to your disk image. This path is relative to your working directory, not M5_PATH.>
UseCopyOnWriteDisk = 1 # Change this to one.

Run simulation.

P.S. 1. If you set [nvme] UseCopyOnWriteDisk as zero, data written during simulation will be stored to backing file -- which makes filesystem corruption when running multiple simulation with same disk image.
P.S. 2. If disk image is not exists on the path, SimpleSSD will create zero-filled disk image file.
If your problem solved, please close the issue.
Thanks.

Thanks for your reply.
I created a disk image to store data, and modified the configuration file of the SimpleSSD following your tips. Particularly, I configured the DiskImageFile1 with "nvme.img", and put nvme.img in the same directory of sample.config.  Then I run simulation with the command as before with nothing change.
I am not clear about whether I should use absolute or relative paths of "DiskImageFile1". But it doesn't matter, because SimpleSSD will create a disk image file if my disk image is not exists.
So where is the disk image after I boot the system? Where should I go to find it?
root@genericarmv8:~# cat /proc/partitions
major minor  #blocks  name

 259        0  402653184 nvme0n1
   8        0    1048576 sda
   8        1    1047552 sda1
root@genericarmv8:~# df -h
Filesystem                Size      Used Available Use% Mounted on
/dev/root               990.9M    233.5M    690.2M  25% /
devtmpfs                  1.9G         0      1.9G   0% /dev
tmpfs                     1.9G     16.0K      1.9G   0% /run
tmpfs                     1.9G     36.0K      1.9G   0% /var/volatile
root@genericarmv8:~# fdisk -l

Disk /dev/nvme0n1: 412.3 GB,<PHONE_NUMBER>16 bytes
64 heads, 32 sectors/track, 393216 cylinders
Units = cylinders of 2048 * 512 = 1048576 bytes

Disk /dev/nvme0n1 doesn't contain a valid partition table

Disk /dev/sda: 1073 MB,<PHONE_NUMBER> bytes
139 heads, 8 sectors/track, 1885 cylinders
Units = cylinders of 1112 * 512 = 569344 bytes

   Device Boot      Start         End      Blocks  Id System
/dev/sda1               2        1886     1047552  83 Linux

Thanks!

Hi,
SimpleSSD should create empty disk image file when file does not exists, but this file is zero-filled so there is no partition table and no filesystem.
Please put the nvme.img at the working directory where you run the simulation if you set [nvme] DiskImageFile1 = nvme.img.
(I assume you created partition table and file system on nvme.img)
cd <your simplessd-fullsystem directory>
mv <your nvme.img> .
./build/ARM/gem5.opt --debug-flag=M5Print --debug-file=debug.txt ./configs/example/fs.py \
  --kernel=aarch64-vmlinux-4.9.92 --dtb-file=armv8_gem5_v1_4cpu.dtb --machine-type=VExpress_GEM5_V1 \
  --num-cpu=4 --cpu-clock=2GHz --caches --l2cache --cpu-type=AtomicSimpleCPU --mem-size=4GB \
  --mem-type=DDR4_2400_8x8 --ssd-interface=nvme --ssd-config=./src/dev/storage/simplessd/config/sample.cfg \
  --disk-image=linaro-aarch64-linux.img

And check that stdout of gem5 contains following message as coded here:
0: ICL::GenericCache: CREATE  | line count in super page 8 | line count in max I/O 64
0: info: Using disk image at nvme.img for NSID 1
0: HIL::NVMe: NS 1    | CREATE | LBA size 512 | Capacity 805306368

If Linux Kernel detects your disk image correctly, you can find relevant kernel log in m5term:
[    0.381836] nvme nvme0: pci function 0000:00:02.0
[    0.381847] nvme 0000:00:02.0: enabling device (0000 -> 0002)
[    0.381855] nvme 0000:00:02.0: enabling bus mastering
...
[    0.383017]  nvme0n1: p1

And can be mounted by following command (I used linaro-aarch64-linux.img as nvme.img):
root@genericarmv8:~# cat /proc/partitions
major minor  #blocks  name

 259        0  402653184 nvme0n1
 259        1    1047552 nvme0n1p1
   8        0    1048576 sda
   8        1    1047552 sda1
root@genericarmv8:~# mkdir mnt
root@genericarmv8:~# mount /dev/nvme0n1p1 mnt/
[    1.333278] EXT4-fs (nvme0n1p1): mounted filesystem with ordered data mode. Opts: (null)
root@genericarmv8:~# ls mnt
bin         data        etc         lib         media       opt         run         sys         usr
boot        dev         home        lost+found  mnt         proc        sbin        tmp         var
root@genericarmv8:~#

You can even boot Linux from SimpleSSD by using linaro-aarch64-linux.img as DiskImageFile1 and add --disable-ide --root-device=/dev/nvme0n1p1 option when running gem5.
Thanks.

Thanks for your reply and your answer.
I booted the system and find the nvme disk successfully follow your guide. And I also boot Linux by using linaro-aarch64-linux.img.
It's very kind of you. Thank you very much.


Build failed

I have setup netlify to preview builds for example-material-ui and it is failing due to following compilation error:
6:22:51 AM: ────────────────────────────────────────────────────────────────
6:22:51 AM:   1. Build command from Netlify app
6:22:51 AM: ────────────────────────────────────────────────────────────────
6:22:51 AM:
6:22:51 AM: $ yarn build
6:22:51 AM: yarn run v1.22.4
6:22:51 AM: $ yarn generate && react-scripts build
6:22:52 AM: $ graphql-codegen --config codegen.yml
6:22:53 AM: [04:22:53] Parse configuration [started]
6:22:53 AM: [04:22:53] Parse configuration [completed]
6:22:53 AM: [04:22:53] Generate outputs [started]
6:22:53 AM: [04:22:53] Generate src/generated/graphql.ts [started]
6:22:53 AM: [04:22:53] Load GraphQL schemas [started]
6:23:00 AM: [04:23:00] Load GraphQL schemas [completed]
6:23:00 AM: [04:23:00] Load GraphQL documents [started]
6:23:00 AM: [04:23:00] Load GraphQL documents [completed]
6:23:00 AM: [04:23:00] Generate [started]
6:23:00 AM: [04:23:00] Generate [completed]
6:23:00 AM: [04:23:00] Generate src/generated/graphql.ts [completed]
6:23:00 AM: [04:23:00] Generate outputs [completed]
6:23:02 AM: Creating an optimized production build...
6:24:10 AM:
6:24:10 AM: Treating warnings as errors because process.env.CI = true.
6:24:10 AM: Most CI servers set it automatically.
6:24:10 AM:
6:24:10 AM: Failed to compile.
6:24:10 AM:
6:24:10 AM: src/theme/shadows.ts
6:24:10 AM:   Line 1:1:  Assign array to a variable before exporting as module default  import/no-anonymous-default-export
6:24:10 AM: src/theme/typography.ts
6:24:10 AM:   Line 1:1:  Assign object to a variable before exporting as module default  import/no-anonymous-default-export
6:24:10 AM: src/utils/getInitials.ts
6:24:10 AM:   Line 1:1:  Assign arrow function to a variable before exporting as module default  import/no-anonymous-default-export
6:24:10 AM: src/views/customer/CustomerListView/UpdateCustomer.tsx
6:24:10 AM:   Line 34:10:  'state' is assigned a value but never used                                                                                @typescript-eslint/no-unused-vars
6:24:10 AM:   Line 44:6:   React Hook React.useCallback has missing dependencies: 'customer?.email', 'customer?.name', 'customer?.phone', 'handleClose', 'newEmail', 'newName', and 'newPhoneNumber'. Either include them or remove the dependency array. If 'handleClose' changes too often, find the parent component that defines it and wrap that definition in useCallback  react-hooks/exhaustive-deps
6:24:10 AM:   Line 47:5:   React Hook React.useCallback has a complex expression in the dependency array. Extract it to a separate variable so it can be statically checked                                                                                react-hooks/exhaustive-deps
6:24:10 AM:   Line 48:5:   React Hook React.useCallback has a complex expression in the dependency array. Extract it to a separate variable so it can be statically checked                                                                                react-hooks/exhaustive-deps
6:24:10 AM:   Line 49:5:   React Hook React.useCallback has a complex expression in the dependency array. Extract it to a separate variable so it can be statically checked                                                                                react-hooks/exhaustive-deps
6:24:10 AM: src/views/customer/CustomerListView/data.tsx
6:24:10 AM:   Line 3:1:  Assign array to a variable before exporting as module default  import/no-anonymous-default-export
6:24:10 AM: src/views/customer/CustomerListView/index.tsx
6:24:10 AM:   Line 26:18:  '_reexecuteQuery1' is assigned a value but never used  @typescript-eslint/no-unused-vars
6:24:10 AM: src/views/product/ProductListView/data.tsx
6:24:10 AM:   Line 3:1:  Assign array to a variable before exporting as module default  import/no-anonymous-default-export
6:24:10 AM: src/views/test/GeneratedCustomersTable.tsx
6:24:10 AM:   Line 2:28:  'DataGrid' is defined but never used          @typescript-eslint/no-unused-vars
6:24:10 AM:   Line 6:15:  'columns' is assigned a value but never used  @typescript-eslint/no-unused-vars
6:24:10 AM: error Command failed with exit code 1.
6:24:10 AM: info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
6:24:10 AM:
6:24:10 AM: ────────────────────────────────────────────────────────────────
6:24:10 AM:   "build.command" failed
6:24:10 AM: ────────────────────────────────────────────────────────────────
6:24:10 AM:
6:24:10 AM:   Error message
6:24:10 AM:   Command failed with exit code 1: yarn build
6:24:10 AM:
6:24:10 AM:   Error location
6:24:10 AM:   In Build command from Netlify app:
6:24:10 AM:   yarn build
6:24:10 AM:
6:24:10 AM:   Resolved config
6:24:10 AM:   build:
6:24:10 AM:     command: yarn build
6:24:10 AM:     commandOrigin: ui
6:24:10 AM:     publish: /opt/build/repo/build
6:24:11 AM: Caching artifacts
6:24:11 AM: Started saving node modules
6:24:11 AM: Finished saving node modules
6:24:11 AM: Started saving build plugins
6:24:11 AM: Finished saving build plugins
6:24:11 AM: Started saving yarn cache
6:24:11 AM: Finished saving yarn cache
6:24:11 AM: Started saving pip cache
6:24:11 AM: Finished saving pip cache
6:24:11 AM: Started saving emacs cask dependencies
6:24:11 AM: Finished saving emacs cask dependencies
6:24:11 AM: Started saving maven dependencies
6:24:11 AM: Finished saving maven dependencies
6:24:11 AM: Started saving boot dependencies
6:24:11 AM: Finished saving boot dependencies
6:24:11 AM: Started saving rust rustup cache
6:24:11 AM: Finished saving rust rustup cache
6:24:11 AM: Started saving go dependencies
6:24:11 AM: Finished saving go dependencies
6:24:14 AM: Build failed due to a user error: Build script returned non-zero exit code: 2
6:24:14 AM: Creating deploy upload records
6:24:14 AM: Failing build: Failed to build site
6:24:14 AM: Failed during stage 'building site': Build script returned non-zero exit code: 2
6:24:14 AM: Finished processing build request in 2m41.932037701s

@msvoro, prosim pories aj tieto WARNINGs, aby netlify pull req preview nenadaval
1:47:16 PM: Treating warnings as errors because process.env.CI = true.
1:47:16 PM: Most CI servers set it automatically.
1:47:16 PM:
1:47:16 PM: Failed to compile.
1:47:16 PM:
1:47:16 PM: src/theme/shadows.ts
1:47:16 PM:   Line 1:1:  Assign array to a variable before exporting as module default  import/no-anonymous-default-export
1:47:16 PM: src/theme/typography.ts
1:47:16 PM:   Line 1:1:  Assign object to a variable before exporting as module default  import/no-anonymous-default-export
1:47:16 PM: src/utils/getInitials.ts
1:47:16 PM:   Line 1:1:  Assign arrow function to a variable before exporting as module default  import/no-anonymous-default-export
1:47:16 PM: src/views/customer/CustomerListView/UpdateCustomer.tsx
1:47:16 PM:   Line 34:10:  'state' is assigned a value but never used                                                                                @typescript-eslint/no-unused-vars
1:47:16 PM:   Line 44:6:   React Hook React.useCallback has missing dependencies: 'customer?.email', 'customer?.name', 'customer?.phone', 'handleClose', 'newEmail', 'newName', and 'newPhoneNumber'. Either include them or remove the dependency array. If 'handleClose' changes too often, find the parent component that defines it and wrap that definition in useCallback  react-hooks/exhaustive-deps
1:47:16 PM:   Line 47:5:   React Hook React.useCallback has a complex expression in the dependency array. Extract it to a separate variable so it can be statically checked                                                                                react-hooks/exhaustive-deps
1:47:16 PM:   Line 48:5:   React Hook React.useCallback has a complex expression in the dependency array. Extract it to a separate variable so it can be statically checked                                                                                react-hooks/exhaustive-deps
1:47:16 PM:   Line 49:5:   React Hook React.useCallback has a complex expression in the dependency array. Extract it to a separate variable so it can be statically checked                                                                                react-hooks/exhaustive-deps
1:47:16 PM: src/views/customer/CustomerListView/data.tsx
1:47:16 PM:   Line 3:1:  Assign array to a variable before exporting as module default  import/no-anonymous-default-export
1:47:16 PM: src/views/customer/CustomerListView/index.tsx
1:47:16 PM:   Line 26:18:  '_reexecuteQuery1' is assigned a value but never used  @typescript-eslint/no-unused-vars
1:47:16 PM: src/views/product/ProductListView/data.tsx
1:47:16 PM:   Line 3:1:  Assign array to a variable before exporting as module default  import/no-anonymous-default-export
1:47:16 PM: src/views/test/GeneratedCustomersTable.tsx
1:47:16 PM:   Line 2:28:  'DataGrid' is defined but never used          @typescript-eslint/no-unused-vars
1:47:16 PM:   Line 6:15:  'columns' is assigned a value but never used  @typescript-eslint/no-unused-vars
1:47:16 PM: error Command failed with exit code 1.
1:47:16 PM: info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
1:47:16 PM:


Can't load libncursesw.so.5

On Arch linux (rolling release) with recent libs I've got an error (after todays update):
php: error while loading shared libraries: libncursesw.so.5: cannot open shared object file: No such file or directory

any idea how to get rid of it?

Will need your build.log and your install command to help you.


Firefox doesn't transition box shadow

Low priority - stylesheets considered complementary, not core. For example, use any included animation in a current Firefox browser and watch the box shadow around the modal content.

Outside the scope of this addon right now.


Removed dev dependencies badge

As per offline: it doesn't make sense for us to have up to date dev dependencies since we need to trace older versions of supported frameworks.

Addresses #13.

How will we test multiple different versions of the framework? Can we have multiple versions of the same framework in the package.json? Perhaps we need to come up with a different mechanism of testing these frameworks that doesn't involve devDependencies.
Thoughts?

I think generating multiple package.json files is a good place to start. I'll close this pull request and start working on that.


Passing the prop value doesn't work as expedcted

On passing prop value to <Email />, the passed value is expected to be set by default in the input field. But I don't think that prop is respected.
<Email
  placeholder={placeholder}
  value="Hello"
  name={record.name}
  onChange={(event) => this.handleChange(event.target.value)}
 />

Expected behavior:
When the page loads, the input field is expected to have "Hello" as value
Current behavior:
Passed value prop is not respected.
It would be really helpful if we have disabled prop as well to disable the input field

Now it works when the value to be displayed is available instantly. But in some cases, we load data from server and in those cases it fails since the component is already mounted. Ideally, I think the setState from the componentDidMount should be moved to getDerivedStateFromProps.


Update Table options for State Sites

Table content is currently not a good fit for state legislatures.
Amend to the following:
MEMBER [remove, not needed on the typically short state tables]
STATE [remove, irrelevant here]
EVENT TYPE [remove "DC Event," add "Other"]
SORT [remove "by State," add "by Name"]
Also, for state sites please have the default table setting to display ALL events.

For By Name do you mean By Candidate Name?

And specifically By Candidate Last Name?

Yeah, Candidate/Lawmaker Last Name. Sort alphabetically.


Update preferences dialog with the modernized text editor new feature

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

@Dmitri-Kom I‘ve talked to Gayathri Jayaseelan this morning. She told me that this modernized text editor is for 10.6. Is this still the case?

@Yiyun333 , Yes, it is for 10.6.


Missing documentation for @... notations?

Hey,
I've integrated VitePress and Twoslash, thanks for all the work you've done here.
IIUC things like @log are styled when e.g. using ts twoslash. However, it seems that these @ notations are not documented in Twoslash website.
I would be happy to make a contribution to the docs if I am correct. But perhaps I am misunderstanding where the @log etc. functionality originates from.
Also another example here https://shiki.style/packages/twoslash:

Ok, so nicely it seems that there is at least inline doc for @ notations. That's great!


feat: add .actor. domain for ds

Fixes RVT-4042
Changes

#1383  👈 (View in Graphite)
main

This stack of pull requests is managed by Graphite. Learn more about stacking.


feat: expectSafeMemory & expectSafeMemoryCall cheatcodes

Overview
Adds two new cheatcodes:
// Only allows memory writes to offsets [0x00, 0x60) ∪ [_min, _max) in the current subcontext. If any other
// memory is written to, the test will fail.
function expectSafeMemory(uint64 _min, uint64 _max) external;

// Only allows memory writes to offsets [0x00, 0x60) ∪ [_min, _max) in the next created subcontext.
// If any other memory is written to, the test will fail.
function expectSafeMemoryCall(uint64 _min, uint64 _max) external;

TODO

[x] Account for opcodes that can also expand memory through reading: MLOAD, SHA3, CREATE, CREATE2, LOG0-4

Usage

expectSafeMemory should be used when the developer wants to assert the memory safety of code within the given context, and it can be called multiple times in order to register several ranges that are okay to be touched.
expectSafeMemoryCall should be used when the developer wants to assert the memory safety of code within the next created subcontext, and it can also be called multiple times in order to register several ranges that are okay to be touched.

Note: Both cheatcodes implicitly consider the memory range [0x00, 0x60) okay to modify. This range includes:

Offset Range
Description

[0x00, 0x40)
Scratch space

[0x40, 0x60)
Free Memory Pointer

We may want to consider allowing the developer to also lock this memory, but I can't think of many use-cases for this.
Motivation
At the moment, assembloors have a hard time testing the memory safety of their functions that manually allocate / write to memory. A common tactic is to just check that the free memory pointer was updated correctly, but this ignores the test vector of erroneous / unintended writes to memory outside of the desired bounds.
Solution
These new cheatcodes allow for asserting that a piece of code within the current subcontext or an entire subcontext only touches a given range (or ranges) of memory.
Open Questions
cc @mattsse @bluealloy

Should we reset the ranges at a given context depth after that context has completed? Could do it in call_end.
Is there a way to revert with data within the inspector's step function? At the moment, we're just reverting with Return::Revert, which doesn't give any information as to what went wrong. Thanks matt!

This seems reasonable to me! One thought is that hardcoding support for [0x00, 0x60) is a solidity specific convention and I don't know if other languages also reserve those memory locations. So devs using foundry with other languages may want a way to turn off that default range. However since forge is geared towards solidity dev anyway, I'm ok having this as a default, and someone can PR in an overload or new cheats that don't default to using that range as the need arises.

expectSafeMemory should be used when the developer wants to assert the memory safety of code within the given context, and it can be called multiple times in order to register several ranges that are okay to be touched.

So this would be in the test contract itself, e.g. if I'm testing library methods, and once called it applies to the rest of my test?

expectSafeMemoryCall should be used when the developer wants to assert the memory safety of code within the next created subcontext, and it can also be called multiple times in order to register several ranges that are okay to be touched.

And this applies to the next call only, but also includes all subsequent subcontexts created by that call, or just the top level call?

This seems reasonable to me! One thought is that hardcoding support for [0x00, 0x60) is a solidity specific convention and I don't know if other languages also reserve those memory locations. So devs using foundry with other languages may want a way to turn off that default range. However since forge is geared towards solidity dev anyway, I'm ok having this as a default, and someone can PR in an overload or new cheats that don't default to using that range as the need arises.

expectSafeMemory should be used when the developer wants to assert the memory safety of code within the given context, and it can be called multiple times in order to register several ranges that are okay to be touched.

So this would be in the test contract itself, e.g. if I'm testing library methods, and once called it applies to the rest of my test?

expectSafeMemoryCall should be used when the developer wants to assert the memory safety of code within the next created subcontext, and it can also be called multiple times in order to register several ranges that are okay to be touched.

And this applies to the next call only, but also includes all subsequent subcontexts created by that call, or just the top level call?

For the first point, agree- Maybe we can add a configuration value in the foundry.toml to disable this range? Down to do this in a separate PR.

Yes
At the moment, this applies to the next subcontext and any future subcontexts that exist at the same depth (See the first open question, leaning towards clearing the requirements for a context at the end of a context's execution). The memory safety requirements are on a per-context-depth basis, so any subcontexts created by that call will not be checked.

What if memory is written to, but then restored to the original again. Does that count as a violation? Is the check performed after exiting the current context or after any operation that touches memory?

What if memory is written to, but then restored to the original again? Does that count as a violation? Is the check performed after exiting the current context or after any operation that touches memory?

This does count as a violation, and the check is performed after any operation that alters memory. I'm down to alter the way that it works, but imo, even if you're writing and then restoring memory, it's best to express that you're doing so. What do you think?

Agree, though, you might also want to specifically use this to test that you are able to properly restore memory to a certain state. But this might be a slightly different use case and I imagine would make the code a bit more complex.
On another thought, does this handle the case when call, delegatecall, etc. specify memory output offset and size, but the call returns less data and doesn't overwrite the memory?
I.e. call(gas(), 4, 0, 0, 0, 32)

Agree, though, you might also want to specifically use this to test that you are able to properly restore memory to a certain state. But this might be a slightly different use case and I imagine would make the code a bit more complex.
On another thought, does this handle the case when call, delegatecall, etc. specify memory output offset and size, but the call returns less data and doesn't overwrite the memory? I.e. call(gas(), 4, 0, 0, 0, 32)

Sorry- missed this in my notifs!

Agree- this is useful, but this cheatcode explicitly checks for memory modifications outside of a given range. You can test that memory was properly restored fairly easily in a test if it's not too many offsets that were modified and then restored as well, but it might be worth adding another cheatcode to make for better devex :smile:
It does not. In your example, it'd be fine because the CALL opcode's params say it'll touch [0x00, 0x20) (which is allowed by the cheatcode by default), but in others, the cheatcode may throw. I'm open to adding support for this, but my feeling is that this cheatcode's main responsibility is to let the developer know when memory outside of an expected range is being mutated. For example:

If my memory size is 0x120, my allowed range is [0x00, 0x120), and I invoke pop(call(gas(), 0x04, 0, 0, 0, 0x100, 0x20)), no memory is modified (and if it were to be modified, it is within my allowed range). The cheatcode will not throw here.
If my memory size is 0x120, my allowed range is [0x00, 0x100), and I invoke pop(call(gas(), 0x04, 0, 0, 0, 0x100, 0x20)), no memory is modified, but the opcode's params say it wanted to touch [0x100, 0x120). The cheatcode will throw here.
If my memory size is 0x80, my allowed range is [0x00, 0x100), and I invoke pop(call(gas(), 0x04, 0, 0, 0, 0x100, 0x20)), the cheatcode will throw because memory was expanded (even though no memory was overwritten).

For situations where you need to ensure that a call returns a certain data size (and thus actually writes the proper amount of data to the returndata offset supplied to the opcode), it may be easier to do so with a returndatasize() check rather than with a cheatcode.

Supportive of the cheat code and excited for assembloors to get better testing...defer to you guys on the actual implementation although it looks good directionally on cursory glance.

Btw the hooking on step can make things a bunch more expensive because it runs on every interpreter step, so want us to be sensitive or figure out ways on supporting these more expensive cheatcodes w/o impacting the whole test suite.

LGTM, only comment would be to track this in an issue:

expectSafeMemory should be used when the developer wants to assert the memory safety of code within the given context, and it can be called multiple times in order to register several ranges that are okay to be touched.

So this would be in the test contract itself, e.g. if I'm testing library methods, and once called it applies to the rest of my test?

agree- Maybe we can add a configuration value in the foundry.toml to disable this range? Down to do this in a separate PR.

So just pulled it out into https://github.com/foundry-rs/foundry/issues/4578

Small UX nit: can the parameters be changed to (uint256 _min, uint256 _max) and be validated inside of foundry?

haven't used this yet but seems reasonable ux request since more common?
I think we can do this @clabby ?
@0xPhaze please open a separate issue for this so we don't lose track


EoR fluctuation profile

Implemented the EoR fluctuation profile function as per the formula linked in the code.

The profile currently looks like this.


basic GitHub Actions

https://github.com/peterbecich/ekg-wai/actions/runs/2328948978

done, thank you

Hmm, CI is still failing because of ekg-json. I'm adding a cabal.project to fix those bounds.


Updated checksum for Spotify Notifications 0.5.1

People have been reporting issues using the latest version so I've re-archived, exported, and uploaded it.
— @citruspi

Thank you. Always great to have the creator contribute updates directly.


Updated syllabus.jsx and home.jsx to display markdown files

will probably change this later to not need a copy of syllabus.md once I figure out how to access a couple layers of parent directories

Good changes!


publish discovery metadata

User story
As an operator, I want to publish discovery metadata describing my data so that my data can be discovered via the WIS 2.0 catalogue and mass market search engines.
Acceptance criteria

[ ] operator can generate discovery metadata in WCMP 2.0 format
[ ] operator can publish WCMP 2.0 via their local OGC API - Records endpoint
[ ] operator can provide OGC API - Records endpoint to the WIS 2.0 catalogue for harvesting/aggregation
[ ] operator can provide OGC API - Records endpoint to a mass market search engine (e.g. Google) for indexing

Definition of done

[ ] unit/functional tests added/updated
[ ] documentation updated
[ ] live demonstration provided

WCMP 2.0 needs controlled vocabulary to classify


Is there a documentation ?

i was trying to run the docker-compose.yaml, but there is some unknown env variables that i couldn't found even inside the hasura-backend-plus environment-variables docs.
Examples of the env:

AUTH_SMS_PROVIDER: how many provider is there ?, can we add one of local sms providers?
AUTH_PASSWORDLESS_SMS_TEMPLATE: when it's say templates...does it mean path to template or ....

Yea sorry we don't have this library particularly well documented.
To answer your questions:

The only SMS provider that we support is Twillio
AUTH_PASSWORDLESS_SMS_TEMPLATE  is a string but this env var is currently not used. Instead the SMS message is hard coded (link)

You can see the env vars required for SMS auth to work here:
https://github.com/nhost/hasura-auth/blob/main/src/routes/signin/passwordless/sms/sms.ts#L91-L113
I'll close this issue for now but am happy to re-open if necessary.

HI @elitan, my understanding is that hasura-auth replaces hasura-backend-plus. Can we safely assume this software will remain open source and will be possible to run independently of the Nhost offering? Just 2 days ago there was a docker/dev directory with example docker-compose.yaml and an .env file. It's gone now. Is there any plan on documenting the env variables and the deployment in the future?

Yes Hasura Auth will always remain open source. You can still access the docker-compose.yaml file here: https://github.com/nhost/hasura-auth/blob/main/docker-compose.yaml with the .env.example file here: https://github.com/nhost/hasura-auth/blob/main/.env.example
Hopefully, we'll get better at internal documentation in the future.

Cheers, thanks for clarifying and for keeping hasura-auth open source  👍


Create garden

Summary

Information

[ ] This PR fixes a formatting issue.
[ ] This PR corrects the information in an existing guide.
[x] This PR adds a new guide.

Checklist

[ ] I have searched the open pull requests for duplicates.
[ ] I am sure the guide is formatted properly.

Licensing

[ ] I agree that my contributions shall be licensed under the Creative Commons Attribution-ShareAlike 4.0 International License,
and that SkyKings may distribute my contributions under the same license on their website.

@djjxx1 Please check the "Licensing" box in your PR description


use new Cascadia version

The new Cascadia version includes:

Case-insensitive CSS selectors attributes with i(https://github.com/andybalholm/cascadia/pull/51)
Support of a lot of pseudo-classes (https://github.com/andybalholm/cascadia/issues/50)

Thanks!


dateFilter uses locale timezone offset for "Z" even when UTC timezone is specified

I would expect the following expression to be a no-op:
{{ '2012-01-01T00:00:00Z' | date:'yyyy-MM-ddTHH:mm:ssZ':'UTC' }}

However, the "Z" format specifier always uses the locale timezone offset – i.e., ignores the timezone specified to the filter – so in my browser this evaluates to:
2012-01-01T00:00:00-0500

Thanks @niallsmart


Database Migrate not working with Laravel 5.6

I got this error i follow all step, digging issue to solve the problem until i stuck with this :
Illuminate\Database\QueryException::("SQLSTATE[42S02]: Base table or view not found: 1146 Table 'myapp.tracker_query_arguments' doesn't exist (SQL: alter table tracker_query_arguments add constraint tracker_query_arguments_query_id_foreign foreign key (query_id) references tracker_queries (id) on delete cascade on update cascade)")
D:\Workspace\My App\lanscareshop\vendor\laravel\framework\src\Illuminate\Database\Connection.php : 664
Please help,
First time using Laravel with version 5.6, which version of laravel completely stable for using this repository ?

Try migrating Trackers logging tables again..

Should be fixed on PHP 5.6 now.

Sir same error still prevails now, I am Also facing same error if you could do something

@VardanBhanot Please show your composer.json and check php version php -v.

@Nowi5  My PHP version is 7.1.9
And composer.json file is
{     "name": "laravel/laravel",     "description": "The Laravel Framework.",     "keywords": ["framework", "laravel"],     "license": "MIT",     "type": "project",     "require": {         "php": "^7.1.3",         "fideloper/proxy": "^4.0",         "laravel/framework": "5.6.*",         "laravel/tinker": "^1.0",         "pragmarx/tracker": "^3.3",         "predis/predis": "^1.1",         "spatie/laravel-activitylog": "^2.5",         "spatie/laravel-permission": "^2.29",         "summernote/summernote": "^0.8.8",         "unisharp/laravel-ckeditor": "^4.7"     },     "require-dev": {         "filp/whoops": "^2.0",         "fzaninotto/faker": "^1.4",         "mockery/mockery": "^1.0",         "nunomaduro/collision": "^2.0",         "phpunit/phpunit": "^7.0"     },     "autoload": {         "classmap": [             "database/seeds",             "database/factories"         ],         "psr-4": {             "App\\": "app/"         }     },     "autoload-dev": {         "psr-4": {             "Tests\\": "tests/"         }     },     "extra": {         "laravel": {             "dont-discover": [             ]         }     },     "scripts": {         "post-root-package-install": [             "@php -r \"file_exists('.env') || copy('.env.example', '.env');\""         ],         "post-create-project-cmd": [             "@php artisan key:generate"         ],         "post-autoload-dump": [             "Illuminate\\Foundation\\ComposerScripts::postAutoloadDump",             "@php artisan package:discover"         ]     },     "config": {         "preferred-install": "dist",         "sort-packages": true,         "optimize-autoloader": true     },     "minimum-stability": "dev",     "prefer-stable": true }


[Tooltip] extra outer div

Detailed description

Describe in detail the issue you're having.
There is one outter div that we cannot apply any style so it cannot be inline.

Is this a feature request (new component, new icon), a bug, or a general issue?
bug

Is this issue related to a specific component?
Tooltip

What did you expect to happen? What happened instead? What would you like to see changed?
The div that applies the style should be the outter div.
Use react.fragment to merge 2 elements.  see https://github.com/IBM/carbon-components-react/pull/921

What browser are you working in?
All

What version of the Carbon Design System are you using?
6.12.2

What offering/product do you work on? Any pressing ship or release dates we should be aware of?
IBM Cloud

Steps to reproduce the issue

Step one
Step two
Step three
etc.

Additional information

Screenshots or code
Notes

@nicoxxie Thank you for reporting - If you have a suggested fix, great to have a PR!


CONCEPT NOTE: Application Received

STAGE 1: CONCEPT NOTE: Application Received
Revised email message below:
Dear [applicant name],

We appreciate your Concept Note submission to Open Technology Fund. You can expect to hear back from us in approximately 6-8 weeks.

If you have any questions in the meantime, please submit them here: [link to communications tab of application]. Please do not reply to this message.

For more information about our support options, review process, and selection criteria, please visit our website (https://www.opentech.fund/).

Project name:
Contact name:
Contact email:

We are asking all applicants to please enable two-factor authentication for your account on OTF’s application platform. You can create or change your 2FA account by clicking on your name on the upper right hand corner. This will lead you to your personal profile. You will see the option to update your account security. Here is additional information on how to set up your 2FA in the Applicant’s Guidebook https://guide.opentech.fund/application-platform-guidance/login/two-factor-authentication-2fa

Kind regards,
OTF

Current Message

The extra part about 2FA can be added right now as an extra confirmation text on each fund/lab. See the "Confirmation email" tab.

Thanks!


pm2 as user

consolidated helper methods into lwrp
added ability to run pm2 as a user
added tests for change
added home attr to pm2_application

:+1:  .Not running a root would be a big win

Fixed

Looks really good generally - just left a couple of comments inline.
Let me run kitchen and I'll merge it if it's good.

Thanks! I removed the pm2_config instance var, it should be good to go.


Fixed Contributing.md Add feature section

Fixed wrong path for "Add a feature" section

Reproduce Bug*

master > Contributing.md > line 35
see yourself

Changes*

Fixed the path

Hey Some one Going to Look this ,

This project isn't being watched anymore.  I had posted it to twitter as an example of a type of project that could be written as an open source project.  I am no longer able to merge pull requests.
Thank you for your time in looking at the project, though.

NO problem

I have permission again to approve your merge request.  Good luck on your coding journey!

Approved


RFC: initial work towards SSE implementation (work in progress)

Greetings!
First off, thank you so much for creating such a wonderful library,
the AVX2 performance of simdjson is pretty amazing.
In my own (aging) hardware lab, I have a bunch of Mac Mini
4-core and Mac Pro 12-core machines that support SSE 4.2.
To that end, I'm working along the lines of an initial/somewhat
naive implementation of SSE 4.2-compatibility for simdjson.
Right now, it compiles, but doesn't run. I figured I'd share it
early & often so that you can keep an eye on progress and
potentially share any feedback you may have.
All the best,
-Sunny Gleason

As stated on twitter, SSE4.2 seems like a false lead. I don't think anything from SSE4.2 is needed. If you want to try out SSE4.2 variant for structural character identification it would be interesting to compare the performance, though, but I think the SSSE3 version of that will be faster. I'd be curious to see if you have the time.
Generally it looks good. I have been waiting to get pre-AVX2 and post-AVX2 Intel ISAs into our codebase before we try to do a more principled refactoring of the highly machine dependent bits.

This looks pretty decent.

@sunnygleason
Design-wise,  you replaced two 256-bit registers by two 128-bit registers... which leads to working with 32-bit masks.
I expect that this is not quite the best way. I think you want to replace two 256-bit registers by four 128-bit registers and all the non-SIMD code would end up being identical.
Maybe I am wrong, but this is my intuition.

@lemire that makes total sense, thank you for the feedback. I got the 2x128 code mostly working and re-pushed it here. I'll go back and try a 4x128 version so we can compare the results...

@lemire @geofflangdale I just pushed the 4x i128 code. I still need to circle back and fix the UTF8 validation to make sure all tests work, but this should be indicative of the direction at least. Looking forward to any feedback you may have!

The 128-bit UTF-8 validation is already available there:
https://github.com/lemire/fastvalidate-utf-8/blob/master/include/simdutf8check.h
So there is no need to reinvent it.

@lemire @geofflangdale ok, I integrated the simdutf8 validation code. Looks like it's passing on SSE-compatible machines. Looking forward to any feedback you may have!

On my todo now.

I assume this will be rewritten to leave AVX2 intact in the final version, not replace it? :-)
Can you verify what the final support required is? I think it will be >= SSSE3 (for PSHUFB) but likely < SSE4.2 - we may as well not impose unnecessary requirements.
Generally looks good to me. It is as verbose as anything else we do here - at some stage I should figure out a way of factoring out some of the bigger code (the PSHUFB hunt for structurals) but that's not your fault.

I think we can throw in CPU feature detection as part of this project. I can look into it.

I assume this will be rewritten to leave AVX2 intact in the final version, not replace it? :-)

Yes absolutely -- my first goal was to get working code in front
of your more capable eyes. Am starting with zero SIMD knowledge
and similarly low C/C++ coding, so didn't want to bite off more than
I could chew in terms of an integrated design.

Can you verify what the final support required is? I think it will be >= SSSE3 (for PSHUFB) but likely < SSE4.2 - we may as well not impose unnecessary requirements.

That makes sense! Will test, confirm & update the headers/ifdefs
accordingly.

Generally looks good to me. It is as verbose as anything else we do here - at some stage I should figure out a way of factoring out some of the bigger code (the PSHUFB hunt for structurals) but that's not your fault.

@lemire @geofflangdale that reminds me -- one question I came
across was in cases where the code follows a sequence of steps
per data chunk:
__m128i a1, a2, a3;
a1 = step_1(a1);
a2 = step_1(a2);
a3 = step_1(a3);
step_2(a1);
step_2(a2);
step_2(a3);
Is it better to structure the code this way for better locality/less spilling/etc?
a1 = step_1(a1);
step_2(a1);
a2 = step_1(a2);
step_2(a2);
a3 = step_1(a3);
step_2(a3);
Wondering if it matters to keep code related to given data more compact,
versus mirroring the logical steps of operation... Or, does the compiler
figure this out anyway. I should probably be asking "gcc -S" for the authoritative
answer, but figured I'd check with humans first... :)

As I wrote, I would not worry about code integration because we can use the excuse of your PR to introduce CPU feature detection and have our code work on a all sensible x64 processors.
As for your question, I don't think we can tell in the abstract.
When you have high throughput, high latency operations, it often good to keep them together.
Compilers will most certainly feel free to reorder stuff as they like, but they won't arbitrarily reorder stuff.

I am not forgetting this work. It is on my todo to work on testing and merging this.
(I wanted to fix bugs and extend our testing routines first.)

Update: I am not forgetting this PR.

@ioioioio  Please have a look at this PR.

Note that merging this PR and getting a clean build with AVX should be done first, before any fancy runtime dispatching is attempted.

@sunnygleason We are going to close this PR since it has been morphed into  https://github.com/lemire/simdjson/pull/202


The program cannot find the tex log file

Describe the bug
This problem was encountered when running the GraphExample code in the official document（ https://3b1b.github.io/manim/getting_started/example_scenes.html ）。 The bin folder path of Letex has been added to the system environment variable, and Miktex has completed all updates and installation of all packages.
Code:
sin_label = axes.get_graph_label(sin_graph, "\sin(x)")
relu_label = axes.get_graph_label(relu_graph, Text("ReLU"))
step_label = axes.get_graph_label(step_graph, Text("Step"), x=4)
Wrong display or Error traceback:
Traceback (most recent call last):
File "", line 198, in run_module_as_main
File "", line 88, in run_code
File "C:\Users\Pla\AppData\Local\Programs\Python\Python311\Scripts\manimgl.exe_main.py", line 7, in
File "C:\Users\Pla\AppData\Local\Programs\Python\Python311\Lib\site-packages\manimlib_main.py", line 25, in main
scene.run()
File "C:\Users\Pla\AppData\Local\Programs\Python\Python311\Lib\site-packages\manimlib\scene\scene.py", line 91, in run
self.construct()
File "C:\Users\Pla\Desktop\python_test_file\Manim\Manimgl\axes.py", line 36, in construct
sin_label = axes.get_graph_label(sin_graph, "\sin(x)")
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Pla\AppData\Local\Programs\Python\Python311\Lib\site-packages\manimlib\mobject\coordinate_systems.py", line 239, in get_graph_label
label = Tex(label)
^^^^^^^^^^
File "C:\Users\Pla\AppData\Local\Programs\Python\Python311\Lib\site-packages\manimlib\mobject\svg\tex_mobject.py", line 188, in init
super().init(full_string, **kwargs)
File "C:\Users\Pla\AppData\Local\Programs\Python\Python311\Lib\site-packages\manimlib\mobject\svg\tex_mobject.py", line 45, in init
super().init(**kwargs)
File "C:\Users\Pla\AppData\Local\Programs\Python\Python311\Lib\site-packages\manimlib\mobject\svg\svg_mobject.py", line 65, in init
self.init_svg_mobject()
File "C:\Users\Pla\AppData\Local\Programs\Python\Python311\Lib\site-packages\manimlib\mobject\svg\svg_mobject.py", line 76, in init_svg_mobject
self.generate_mobject()
File "C:\Users\Pla\AppData\Local\Programs\Python\Python311\Lib\site-packages\manimlib\mobject\svg\svg_mobject.py", line 91, in generate_mobject
file_path = self.get_file_path()
^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Pla\AppData\Local\Programs\Python\Python311\Lib\site-packages\manimlib\mobject\svg\tex_mobject.py", line 66, in get_file_path
file_path = tex_to_svg_file(full_tex)
^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Pla\AppData\Local\Programs\Python\Python311\Lib\site-packages\manimlib\utils\tex_file_writing.py", line 52, in tex_to_svg_file
tex_to_svg(tex_file_content, svg_file)
File "C:\Users\Pla\AppData\Local\Programs\Python\Python311\Lib\site-packages\manimlib\utils\tex_file_writing.py", line 60, in tex_to_svg
svg_file = dvi_to_svg(tex_to_dvi(tex_file))
^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Pla\AppData\Local\Programs\Python\Python311\Lib\site-packages\manimlib\utils\tex_file_writing.py", line 91, in tex_to_dvi
with open(log_file, "r", encoding="utf-8") as file:
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
FileNotFoundError: [Errno 2] No such file or directory: 'C:\Users\PLA\AppData\Local\Temp\Tex\42c962cc458aefe6.log'

I met the same problem

in the default_config.yml:
# Manim often generates tex_files or other kinds of serialized data
  # to keep from having to generate the same thing too many times.  By
  # default, these will be stored at tempfile.gettempdir(), e.g. this might
  # return whatever is at to the TMPDIR environment variable.  If you want to
  # specify them elsewhere,
  temporary_storage: "E:\\projects\\manim\\media"

You could solve the error by input your temporary_storage.


Improved range sliders and loading states

What changes are proposed in this pull request?
Resolves #693
What is lacking right now is that all new extended statistics need to be computed when a confidence slider is changed, which shows loading indicators for all fields. This does not need to happen, as only the counts for the label field in question will change. Then again, when an only_matches option (blocked by only matches support for frame labels) is added, all extended statistics do need to be recomputed...
I think more granular loading will be best addressed when the Fields Sidebar is generalized.
How is this patch tested? If it is not, please explain why.
Locally
Release Notes
Is this a user-facing change that should be mentioned in the release notes?

[ ] No. You can skip the rest of this section.
[x] Yes. Give a description of this change to be included in the release
notes for FiftyOne users.

TBD
What areas of FiftyOne does this PR affect?

[x] App: FiftyOne application changes
[ ] Build: Build and test infrastructure changes
[x] Core: Core fiftyone Python library changes
[ ] Documentation: FiftyOne documentation changes
[ ] Other

Ready for review

Also, this may be unrelated to this PR, but if I load the quickstart dataset and then directly try to create a SortBy(uniqueness, True) view stage, the label stats are stuck in a loading spinner state

OK, things are looking better now. Apologies.


DBeaver 6.3.1 / $$ Handling breaks ALT-Down

Hi Serge,
I encounter another problem in 6.3.1 with PostgreSQL.
Lets say I have the following script:

select 1;
do
$$
begin
select 1 into tab1;
select 2 into tab2;
end
$$
;

When the cursor is on the first "select 1;" and I press Alt-Down to select the next statement, then DBeaver only select text from "do" until the frist ";" at "select 1 into tab1;"

The problem is that I cannot execute my scripts anymore.

Was fixed in #7460
Additional fix (previous query detection) submitted.

Hi Serge,
I have checked the early access version. And now everthing works like a charme again.
Thank you very much.
James


npm run demo fails to work properly

Steps to reproduce:

Make a local clone of the react-redux-grid:

$ git clone https://github.com/bencripps/react-redux-grid.git
$ cd react-redux-grid

Follow the steps in the "Installation" section of README.MD to build and run the demo:

$ npm install
$ npm run demo

Open your browser pointed to http://localhost:8080

Observed behavior:

A blank page loads in the browser, and the following error is displayed in the terminal, "GET /demo/lib/bundle.js" Error (404): "Not found"

Expected behavior:

The grid displays in the browser, and there is no error.

Note: I have a simple fix for this issue and will be submitting it immediately.

Hey guys!
Is the fix merged already?
Demo still fails for me.

This has been fixed atleast for my workflow. First off, the demo won't load unless you also have the hot-reloader also loading, which is triggered by npm run hot
$ npm run demo:run
$ npm run hot

And you should have it work -- @jstafford let me know if there is another way you envisioned this working?

@bencripps What do you think about adding a new script called "start" that starts both hot and demo, like people might be used to with a create-react-app based project? Then changing the readme to suggest that if they want to play with it, that they just do npm install, npm run start? Certainly the readme is misleading as it is currently written. When I put my fix in, I wasn't even thinking about hot reloading, I was just trying to make it work as the instructions were written in the readme. It makes a lot more sense to have hot reloading, so I see why you backed out my change to the path to bundle.js.  I'm going to make a pull request and you can give me some feedback if you want to change it around a little.


(MODULES-6694) Fix rake checkout task

This commit fixes the rake checkout task by reenabling it after the
first invocation so that it will process both xDscResource and
DscResource folders.
The rake checkout task will use the dsc_resource_tags.yml file to
checkout the correct git tag. This works the first time it's called when
processing the xDscResource folder. However since rake by default will
only run a task once, when the DscResource folder is processed next it
just skips it without error or warning. This has not popped up before
because before commit 08c8fc0705b6c7cc789f0e55cfb4463afa27fc02 we
weren't correctly updating dsc_resource_tags.yml with any HQ Dsc
Resources, so we couldn't have ever tried to pin a version.

:shipit:

LGTM.  Correctly pulled down the resource i wanted to downgrade.  Before finishing simply remove that pry!

1{Done}(https://media.giphy.com/media/y0w8eJ9QWuCmA/giphy.gif)


Receiving packet

So I have the following code for receiving a packet. Sometimes the incorrect packet is received, and I need to know of what type that packet is. Is there a way to know this?
auto publish_recv = mqtt_client_->recv(async_mqtt::filter::match, { async_mqtt::control_packet_type::publish}, asio::use_awaitable)

auto *publish_packet = publish_recv.template get_if<async_mqtt::v5::publish_packet>();

if (publish_packet == nullptr) {
   ...
}

You can write as follows:
auto pv = co_await mqtt_client_->recv(async_mqtt::filter::match, { async_mqtt::control_packet_type::publish}, asio::use_awaitable)

if (auto* p = pv.template get_if<async_mqtt::v5::publish_packet>()) {
}
else if (auto* p = pv.template get_if<async_mqtt::v5::puback_packet>()) {
}
...

Or you can use visit.
See https://github.com/redboltz/async_mqtt/blob/b857294a851126f7d465e169c8e4b868c63bdaf5/tool/client_cli.cpp#L809-L851


Switch to 14.2 as default installer

full install done with newly built release image, confirmed working
https://depenguin.me/files/mfsbsd-14.2-RELEASE-amd64.iso

@grembo, just an ack will do, will take live. no major changes other than ISO link


Provide a REST API for Vegeta commands

Has anyone considered creating REST endpoints for all the Vegeta commands, that would allow you to run a master server that a client can connect to, to initiate load tests.
This could also help with a more robust distributed test framework capable of being deployed on kubernetes, https://github.com/tsenart/vegeta/issues/336

This is a very good idea, turning vegeta into a API, this could help some developers create some continuous benchmarking workflow
I like this feature

I am just not sure if it should be part of this repo or a separate one. Something like vegeta-server. I am starting to create and Swagger spec for the attack command using OAS 3.0.
@tsenart WDYT?

@waghanza @fenollp @tsenart Would you prefer the REST server to use the library or use exec and invoke the vegeta CLI ? I cooked up a simple swagger spec, and generated the server code in go using `go-swagger, but am stuck at this cross-road.
Let me know what you guys think ?

Use the lib ;)

This is a great idea and something I have played around with before, but didn't have the time to pursue further. I think this should be part of vegeta, but a separate sub-command like vegeta server.

@tsenart I have started working on this. IMO it might be better suited for a separate repository, that uses the vegeta library.
I am creating a Swagger spec for this, but I think we will need to support a more async model if we want to run mutliple attacks via a single server.
I can elaborate a little more, but as a quick example, if the user wishes to check on the status of a submitted attack (POST /attack) job, we could use an endpoint like GET attack/{uuid}. (Adds the need for a data store for the reports, as well. In memory map to begin with and then graduate to options to integrate with redis or similar DBs).
Also it would be great to provide a gRPC server option as well along with HTTP.
So the separate repository can be used for the swagger and protobuf specs and also two server implementations, one using HTTP and the other using gRPC.
WDYT?

IMO it might be better suited for a separate repository, that uses the vegeta library.

To make it clear to everyone in the future about this decision, can we elaborate in writing about the pro / cons of each approach?

BTW, just found this on Docker hub. Might be worth contacting the author to share learnings: https://hub.docker.com/r/endianogino/vegeta-server

IMO it might be better suited for a separate repository, that uses the vegeta library.

To make it clear to everyone in the future about this decision, can we elaborate in writing about the pro / cons of each approach?

Pros:
Creating the server package, and wrappers that utilize the vegeta library, as a separate entity makes it easier to maintain the special handing logic of the API request/response, disjoint from the main library (and repo) and also prevents code bloat in the main repo (since swagger and gRPC servers will add a lot of code via codegen).
Cons:
The version of the library used will depend on the lock file, so it could fall behind and will manually have to maintained. Additionally fixes and improvements in the CLI code will have to be manually introduced into the server code (since it will be based on the CLI code for the most part). The latter goes both ways because the CLI code is tightly coupled with the command line flags, and cannot be reference directly by the server code.

Creating the server package, and wrappers that utilize the vegeta library, as a separate entity makes it easier to maintain the special handing logic of the API request/response

Can you elaborate a bit more on what would make it easier?

also prevents code bloat in the main repo (since swagger and gRPC servers will add a lot of code via codegen).

This is a non-issue in my view.

Creating the server package, and wrappers that utilize the vegeta library, as a separate entity makes it easier to maintain the special handing logic of the API request/response

Can you elaborate a bit more on what would make it easier?
This was a more generic statement. A separate entity is always going to be easier to maintain rather than a large project.
But with that said my main concern with the keeping everything in this repo is having the CLI code in the root directory. I completely understand the choice since it is the sole utilizer of the lib, but if we were to add the server (swagger codegen and grpc codegen) it would make sense to refactor this command line logic into a cli package of sorts and then have the server as its own package.
Refactoring and conforming the repo to the standard https://github.com/golang-standards/project-layout/blob/master/cmd/README.md would make it easier to abstract reusable segments out and also encapsulate various components (be it the spec files, helper scripts, k8s resources) under the same parent repo.
This is just my 2 cents.

But with that said my main concern with the keeping everything in this repo is having the CLI code in the root directory.

It's perfectly reasonable to create the server code in lib/ or lib/server and then import it in the CLI.

Cool. Let me see if I can figure out how to get go-swagger to generate a more flat directory structure.

I added my comment to https://github.com/tsenart/vegeta/issues/336 regarding creating distributed tests.  I think creating a server that starts tests isn't required and will make this tool overly complicated.  How would you manage resources if multiple clients try to run tests at the same time?  Better to do one thing well and use other tools for orchestration.

I have created a project that implements the REST API for vegeta - https://github.com/nitishm/vegeta-server
Personally it was easier to spin this off into its own project rather than integrate it into the vegeta CLI repository.