Gh 3843 collection factory

GitHub issue resolved: #3843

PR Author Checklist (see the contributor guidelines for more details):

[x] my pull request is self-contained
[ ] I've added tests for the changes I made
[x] I've applied code formatting (you can use mvn process-resources to format from the command line)
[x] I've squashed my commits where necessary
[x] every commit message starts with the issue number (GH-xxxx) followed by a meaningful description of the change

@kenwenzel would you mind having a look at this? See if you like the ideas.

@kenwenzel would you mind having a look at this? See if you like the ideas.

@JervenBolleman I like the idea of making the collections configurable for different SAIL implementations. But currently, I can't oversee what collection types are required.
In addition to changing the entire collection implementations, we could use a mapper interface to convert between SAIL-specific values and IDs.

I am now at the point of actually wiring this up into the evaluation strategy. I think I don't have a good API placement or at least I am not to happy with the exact placing of methods. Also trying to make this work for the GroupIterator is not going well, and there it would have the highest impact. I need to change this more significantly or the alternative is that Serializable infects a whole lot of code.

@JervenBolleman Thank you for investigating this. Perhaps real improvements will be visible if the data sets get larger and don't fit into the available RAM. Most of our benchmarks more or less just test the in-memory case.

@kenwenzel  I think it shows there is a big potential gain. On the other hand this code is not nearly good enough to be merged. On my home machine I have a benchmark run with great results, but that is with the enabling of the lazy mapdb mode. On the other hand the sync setting is not passed on so we always use an in memory hashmap. Quite a lot to still to be fixed. Especially around the setup of these collection factories.

at 847dbe415a8b4328f1df77e51389dd7b5e98bb84
QueryBenchmark.complexQuery                             avgt    5    17.374 ±  0.219  ms/op
QueryBenchmark.distinctPredicatesQuery                  avgt    5   167.387 ±  3.132  ms/op
QueryBenchmark.groupByQuery                             avgt    5     3.639 ±  0.135  ms/op
QueryBenchmark.pathExpressionQuery1                     avgt    5    59.854 ±  1.249  ms/op
QueryBenchmark.removeByQuery                            avgt    5   284.124 ±  3.513  ms/op
QueryBenchmark.removeByQueryReadCommitted               avgt    5   616.349 ±  8.395  ms/op
QueryBenchmark.simpleUpdateQueryIsolationNone           avgt    5   418.440 ±  5.842  ms/op
QueryBenchmark.simpleUpdateQueryIsolationReadCommitted  avgt    5   838.561 ± 23.125  ms/op
QueryBenchmarkFoaf.groupByCount                         avgt    5  2571.679 ± 58.877  ms/op
QueryBenchmarkFoaf.groupByCountSorted                   avgt    5  2347.194 ± 40.125  ms/op
QueryBenchmarkFoaf.personsAndFriends                    avgt    5   249.253 ±  1.353  ms/op

I need to verify here that the mapdb worked as it was supposed too.

Cool! That looks really promising. Have you also thought about caching of intermediate results (with MapDb)? This seems to be one of the reasons why QLever answers some queries fast.

Ok @kenwenzel this is a real improvement. Here the config on both the develop and this branch is to have a HashSet as the GroupBy iterator key datastructure. I noticed that the iterationCacheSyncThreshold was not read into the LmdbStore from it's config.
Regarding MapDB I am thinking of replacing it by lmdb and also to remove all the serialization logic, and replace it by something custom to a store.

@JervenBolleman A class that may be used as a blueprint can be found at:
https://github.com/eclipse/rdf4j/blob/main/core/sail/lmdb/src/main/java/org/eclipse/rdf4j/sail/lmdb/TxnRecordCache.java

I pushed a commit but won't be able to show the benchmark results until tomorrow morning. I think it will give better result as it really allows avoiding the retrieval of actual value contents from the lmdb value store. The trick is to introduce a createSetOfBindingSets method. As this is what MapDB is currently used for. The buildEntries method always uses a in memory LinkedHashSet ( as an aside @jeenbroekstra do you know why a LinkedHashSet?)
@kenwenzel I am going to try parametrizing the Foaf benchmark to use or not use the MapDB options. To see what the impact here is.
In any case the experience of coding this makes me feel that maybe the maven pom should be part of the query-evaluation layer or close enough to it.

This branch at 9233e6334f7f11b455f94fa06120f243c6fe7962
QueryBenchmarkFoaf.groupByCount                                     0  avgt    5   2667.477 ±  388.056  ms/op
QueryBenchmarkFoaf.groupByCount                                   128  avgt    5  28265.484 ± 1768.305  ms/op
QueryBenchmarkFoaf.groupByCount                                  1024  avgt    5  13780.471 ± 2339.466  ms/op
QueryBenchmarkFoaf.groupByCountSorted                               0  avgt    5   2396.928 ±  132.828  ms/op
QueryBenchmarkFoaf.groupByCountSorted                             128  avgt    5  26570.518 ± 2586.584  ms/op
QueryBenchmarkFoaf.groupByCountSorted                            1024  avgt    5  12096.365 ± 2074.652  ms/op
QueryBenchmarkFoaf.personsAndFriends                                0  avgt    5    254.298 ±    1.851  ms/op
QueryBenchmarkFoaf.personsAndFriends                              128  avgt    5    250.539 ±    3.906  ms/op
QueryBenchmarkFoaf.personsAndFriends                             1024  avgt    5    250.280 ±    1.573  ms/op

So we use MapDB with 2 sync settings and once pure in mem with setting 0.
I need to rerun this on develop and with the 2524247 as well.

QueryBenchmarkFoaf.groupByCount                                     0  avgt    5   2491.295 ±   93.329  ms/op
QueryBenchmarkFoaf.groupByCount                                   128  avgt    5  27639.975 ± 5316.658  ms/op
QueryBenchmarkFoaf.groupByCount                                  1024  avgt    5  13263.745 ±  560.518  ms/op
QueryBenchmarkFoaf.groupByCountSorted                               0  avgt    5   2377.425 ±  147.928  ms/op
QueryBenchmarkFoaf.groupByCountSorted                             128  avgt    5  26184.288 ± 5713.347  ms/op
QueryBenchmarkFoaf.groupByCountSorted                            1024  avgt    5  11639.054 ± 2117.755  ms/op

@JervenBolleman Thank you for the detailed benchmarks.
You are speeking about doubled execution times using MapDB. To what figures are you relating this doubled times?

We can at least reduce the fsync happiness of MapDb and that seems to have a large effect which is expectable.
Still that should be an independent patch against mainline or c2e8b24 does not prove itself being worth it.
QueryBenchmarkFoaf.groupByCount                                     0  avgt    5   2692.399 ±  604.772  ms/op
QueryBenchmarkFoaf.groupByCount                                   128  avgt    5  12762.410 ± 1074.142  ms/op
QueryBenchmarkFoaf.groupByCount                                  1024  avgt    5  11399.744 ± 2752.997  ms/op
QueryBenchmarkFoaf.groupByCount                                  2048  avgt    5  11088.300 ±  540.409  ms/op
QueryBenchmarkFoaf.groupByCountSorted                               0  avgt    5   2503.945 ±  112.311  ms/op
QueryBenchmarkFoaf.groupByCountSorted                             128  avgt    5  11091.863 ± 1000.285  ms/op
QueryBenchmarkFoaf.groupByCountSorted                            1024  avgt    5   9380.511 ±  554.131  ms/op
QueryBenchmarkFoaf.groupByCountSorted                            2048  avgt    5   9138.366 ±  341.620  ms/op

Ok code clean up some tests. And a reason for the earlier regression. So it looks like the regression happened because the better hashcode made the db a bit bigger which affected the 128 set benchmark on my machine as it just passed my sata disk cache in size.
Anyway with the new Serialization code we end up with a smaller database and a bit better performance. We are showing the limits of what can be achieved in this benchmark due to db size.  We need larger group by with more patalogical use cases to see what is really going on.
QueryBenchmarkFoaf.groupByCount                                     0  avgt    5   2518.320 ± 174.551  ms/op
QueryBenchmarkFoaf.groupByCount                                   128  avgt    5  10246.649 ± 157.781  ms/op
QueryBenchmarkFoaf.groupByCount                                  1024  avgt    5   8573.631 ± 499.651  ms/op
QueryBenchmarkFoaf.groupByCount                                  2048  avgt    5   8290.967 ± 134.211  ms/op
QueryBenchmarkFoaf.groupByCountSorted                               0  avgt    5   2345.347 ± 111.988  ms/op
QueryBenchmarkFoaf.groupByCountSorted                             128  avgt    5   9978.101 ± 361.823  ms/op
QueryBenchmarkFoaf.groupByCountSorted                            1024  avgt    5   8361.297 ± 706.103  ms/op
QueryBenchmarkFoaf.groupByCountSorted                            2048  avgt    5   8180.156 ± 403.334  ms/op

The performance improvements are decent enough with the latest code.
Benchmark                                               (mapDbCommit)  Mode  Cnt      Score     Error  Units
QueryBenchmark.complexQuery                                       N/A  avgt    5     17.767 ±   0.550  ms/op
QueryBenchmark.distinctPredicatesQuery                            N/A  avgt    5    166.903 ±   1.198  ms/op
QueryBenchmark.groupByQuery                                       N/A  avgt    5      3.914 ±   0.193  ms/op
QueryBenchmark.pathExpressionQuery1                               N/A  avgt    5     58.529 ±   3.258  ms/op
QueryBenchmark.removeByQuery                                      N/A  avgt    5    286.105 ±   8.861  ms/op
QueryBenchmark.removeByQueryReadCommitted                         N/A  avgt    5    602.246 ±   6.867  ms/op
QueryBenchmark.simpleUpdateQueryIsolationNone                     N/A  avgt    5    417.161 ±   2.646  ms/op
QueryBenchmark.simpleUpdateQueryIsolationReadCommitted            N/A  avgt    5    837.770 ±  14.059  ms/op
QueryBenchmarkFoaf.groupByCount                                     0  avgt    5   2604.481 ±  74.831  ms/op
QueryBenchmarkFoaf.groupByCount                                   128  avgt    5  10030.501 ± 209.233  ms/op
QueryBenchmarkFoaf.groupByCount                                  1024  avgt    5   8503.735 ±  79.267  ms/op
QueryBenchmarkFoaf.groupByCountSorted                               0  avgt    5   2433.697 ± 159.198  ms/op
QueryBenchmarkFoaf.groupByCountSorted                             128  avgt    5   9833.347 ± 618.525  ms/op
QueryBenchmarkFoaf.groupByCountSorted                            1024  avgt    5   8164.269 ±  53.863  ms/op
QueryBenchmarkFoaf.personsAndFriends                                0  avgt    5    248.262 ±   4.540  ms/op
QueryBenchmarkFoaf.personsAndFriends                              128  avgt    5    250.730 ±   3.168  ms/op
QueryBenchmarkFoaf.personsAndFriends                             1024  avgt    5    247.654 ±   9.588  ms/op

I think with larger datasets the difference will be even larger.
I would at this point like somethoughts on how to best do the configuration of the Collection-Factory.

I've merged develop into this branch and also tried to optimize the code a bit based on the QueryBenchmark#groupByQuery() in the MemoryStore. I've also opened a PR to show how we could remove the new method you've added to the Sail interface.

@JervenBolleman is this still a draft PR or are you happy with how it looks?

@hmottestad I still have a number of outstanding commits for this PR at home :) I would like to push those before having it merged into master.

There is a clean pull request https://github.com/eclipse/rdf4j/pull/4314 that I think is reviewable.
Once that is merged we can start bringing in the performance increases from this PR.


Bug Report:  Up and Down Arrow in Downscroll Swapped!

In 1.3.1, the up and down arrows seem to be swapped when using downscroll. But works fine in upscroll.

this has been fixed for awhile


Can we use it without ida pro?

I need to find vulnerability in this bootloader
I don't have Ida pro to run find_taint.py.

Unfortunately, no


RE taxon dropdown for scientific name

Closing this PR for now, to open new branch on kbaseapps instead.


Allow us to type-cast functions by their end block delimiter.

This would make it possible to type-cast whole functions without having to wrap them in parentheses.
Currently, we have to do it like this:
local a = function(a, b, c, d)

end :: (a: any, b: any, c: any, d: any) -> any

But if it was possible to do that way, it would be like this:
local function a(a, b, c, d)
end :: (a: any, b: any, c: any, d: any) -> any

Which is way more easier to read, beside being flexible to write. This would also make it possible to actually adhere to Roblox's code styles while using Luau type annotations, as it is described in Roblox - Lua Code Style Guide | Function Section

Sometimes, we may just want to refine the way our API is exposed.
They may be coded with a specific style but then exposed with other one that fits the design of it.
This is the case for Libraries, where they can have different names for their arguments.
Eg:
local Library  = {}

function Library.Method(arg1, Arg2, Arg3)
end

Which then gets type defined to
type Library = {
    Method: (ArgumentOne, ArgumentTwo, ArgumentThree) -> ()
}

This type-definition makes it easier to control how the code is exposed for the users of it. If we could do the same with embed functions, it would  be easier to adhere code-styles norms while still type-defining them.

I don't think type casting in this way is particularly good style.  You can either annotate individual arguments and return types as I've described, or put the annotation on the left.
function a(a: any, b: any, c: any, d: any): any ... end
-- or
local b: (any, any, any, any) -> any = function (a, b, c, d) ... end

Adding an extra loophole to the grammar for a postfix type assertions on function statements hardly seems worth the complexity.


Add Background Activation declarations

Added Background Activation class declarations to the Notifications IDL and added the headers/cpp as well.

@danielayala94, I'm closing old or abandoned pull requests. If you'd like to revisit this and pick it up again, feel free to reopen when you're ready to work on it.


Change parameter used to control number of event injection iterations

Codecov Report

Merging #37 (d6e8f0a) into main (1273fd8) will decrease coverage by 0.07%.
The diff coverage is 0.00%.

@@            Coverage Diff             @@
##             main      #37      +/-   ##
==========================================
- Coverage   30.97%   30.90%   -0.08%
==========================================
  Files           5        5
  Lines         410      411       +1
==========================================
  Hits          127      127
- Misses        283      284       +1

Impacted Files
Coverage Δ

event_aug/spike_injection.py
0.00% <0.00%> (ø)


Remove Pack extensions from ERC1155

Problem solved
Short description of the bug fixed or feature added

PR-Codex overview
This PR focuses on removing Pack extensions from the ERC1155 export path and consolidating them under the thirdweb/extensions/pack import.
Detailed summary

Deleted several JSON and TypeScript files related to IPack and IPackVRFDirect.
Updated import paths for openPack and related functions to thirdweb/extensions/pack.
Removed exports for PackCreatedEvent, PackOpenedEvent, PackUpdatedEvent, createPack, and openPack from erc1155.ts.

✨ Ask PR-Codex anything about this PR by commenting with /codex {your question}

[!WARNING]
This pull request is not mergeable via GitHub because a downstack PR is open. Once all requirements are satisfied, merge this PR as a stack on Graphite.
Learn more

#4799  👈
#4579
main

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

Join @kien-ngo and the rest of your teammates on  Graphite


Update dependency typedoc to v0.22.8

This PR contains the following updates:

Package
Type
Update
Change

typedoc (source)
devDependencies
patch
0.22.3 -> 0.22.8

Release Notes

TypeStrong/TypeDoc
v0.22.8
Compare Source
Features

Added hooks which can be used to inject HTML without completely replacing a template, #1773.
See the documentation in custom-themes.md for details.

Bug Fixes

Actually fixed @category tag incorrectly appearing on function types if used on a type alias, #1745.
Fix error in console when a page contains no documentation items.

Thanks!

@RunDevelopment
@srmagura

v0.22.7
Compare Source
Features

Added support for GitHub enterprise projects with a githubprivate.com domain, #1743.
Added support for GitLab repositories, #1728.

Bug Fixes

Replaced O(n^2) with O(1) implementation for determining unique IDs in a rendered page, #1755.
Fixed crash with when running in very large repositories, #1744.
Fixed visible gap after footer in dark mode if hideGenerator is set, #1749.
Fixed @category tag incorrectly appearing on function types if used on a type alias, #1745.
Fixed incorrect JS to apply themes on page load, #1709 (again).
Accessors and index signatures are now properly marked as inherited on declaration creation, #1742.

Thanks!

@nlfurniss
@RunDevelopment
@srmagura

v0.22.6
Compare Source
Features

Added support for displaying identifiers & property access expressions in initializers, #1730.
Expanded support for variables tagged with @enum to all variables whose property types are string literals, #1740.

Bug Fixes

Fixed flash when navigating to a second page when OS theme does not match selected theme, #1709.
Fixed improper quoting of as const style enums, #1727.
Fixed handling of @typeParam on type aliases, #1733.
Fixed handling of comment tags on function type aliases, #1734.
Paths in warnings about non-exported symbols are now consistently displayed across platforms, #1738.

Thanks!

@capraynor
@srmagura

v0.22.5
Compare Source
Features

TypeDoc will now recognize @param comments for destructured parameters and rename __namedParameters to the name specified
in the @param comment if the number of @param comments match the number of parameters, resolves #1703.
The intentionallyNotExported option may now include file names/paths to limit its scope, for example, the following
will suppress warnings from Foo in src/foo.ts not being exported, but will not suppress warnings if another Foo
declared in src/utils/foo.ts is not exported.{
    "intentionallyNotExported": ["src/foo.ts:Foo"]
}

The --emit option can now be used to more finely control what TypeDoc will emit.

Value
Behavior

both
Emit both documentation and JS.

docs
Emit documentation, but not JS (default).

none
Emit nothing, just convert and run validation.

true
Alias for both, for backwards compatibility. Will be removed in 0.23.

false
Alias for docs, for backwards compatibility. Will be removed in 0.23.

Bug Fixes

TypeDoc will now only create one highlighter for rendering code, saving ~200-500ms for rendering time.
For compatibility with JSDoc, TypeDoc will now strip <caption> elements from @example tags, resolves #1679.
TypeScript's emitDeclarationOnly compiler option is now supported, resolves #1716.
Fixed discovery of tsconfig.json when the provided path ends in .json, resolves #1712.
Fixed a crash when converting the globalThis namespace, could only be caused by a plugin.

Thanks!

@Gudahtt
@mgred
@schlusslicht
@srmagura

v0.22.4
Compare Source
Features

Flag option types like validation can now be set to true/false to enable/disable all flags within them.
Source code links now work with Bitbucket repositories, resolves #1615.
Added githubPages option (default: true), which will create a .nojekyll page in the generated output, resolves #1680.
MarkdownEvent is now exported, resolves #1696.

Bug Fixes

Fixed the hamburger menu not being visible on mobile devices, fixes #1699.
Comments on function implementations with overloaded signatures will now be correctly handled, fixes #1697.

Thanks!

@srmagura

Configuration
📅 Schedule: At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.

[ ] If you want to rebase/retry this PR, click this checkbox.

This PR has been generated by Renovate Bot.

Renovate Ignore Notification
As this PR has been closed unmerged, Renovate will now ignore this update (0.22.8). You will still receive a PR once a newer version is released, so if you wish to permanently ignore this dependency, please add it to the ignoreDeps array of your renovate config.
If this PR was closed by mistake or you changed your mind, you can simply rename this PR and you will soon get a fresh replacement PR opened.


feat: add new method to Trigger

Adds a new method to Trigger.
This PR also implements Default for Trigger (as was suggested by clippy).

Thanks!


BottomBar not placed correctlly after first navigation

Bug
I am developing an app that has nested navigation with Navigation Animation lib and HorizontalPager in the home screen.
after first navigation from splash screen to the home screen, the bottom bar appears at the top of the screen. this happens after i change
accompanist version from 0.25.0 to 0.26.0-alpha. in 0.25.0 it works as expected
MainActivity
class MainActivity : ComponentActivity() {
	override fun onCreate(savedInstanceState: Bundle?) {
		super.onCreate(savedInstanceState)
		WindowCompat.setDecorFitsSystemWindows(window, false)
		setContent {
			MarvinTheme {
				val navHostController = rememberAnimatedNavController()
				Scaffold(
					modifier = Modifier
					    .navigationBarsPadding(),
					bottomBar = { BottomBar(navHostController = navHostController) }
				) {
					SetupNavGraph(navHostController = navHostController, paddingValues = it)
				}
			}
		}
	}
}

RootNavGraph
@Composable
fun SetupNavGraph(navHostController: NavHostController, paddingValues: PaddingValues) {

    AnimatedNavHost(
        navController = navHostController,
        startDestination = Graph.Boarding.route,
        route = Graph.Root.route
    ) {
        boardingNavGraph(navHostController)
//        authNavGraph(navHostController) TODO
        homeNavGraph(navHostController, paddingValues)
    }
}

repo: https://github.com/KavrinDEV/Marvin
the root of the bug is unclear to me so if additional code is required i will add it to the issue
i also tested this on emulator with API 32 and physical device API 27
Screenshots

Same issue

Had similar issue, please check if you have placed contents of bottomBar in AnimatedVisibility. For me that was the issue.
Once I removed the AnimatedVisibility wrapper from NavigationBar the issue was resolved.
Here's a link to the commit for the same

@static-var thanks for the comment.
i am not working on my project currently but i don't think animated visibility is the main problem. it should be possible to use it with bottomNavbar.


Ionic Build is stuck with Xcode 8.0

From @chack on September 21, 2016 20:31
Short description of the problem:
With Xcode 8.0 I can't use ionic build command for iOS. I already removed and readded hooks and iOS platform. The command is stuck after the printed console log below:
Other information: (e.g. stacktraces, related issues, suggestions how to fix, stackoverflow links, forum links, etc)
Build settings from command line:
CONFIGURATION_BUILD_DIR = /Users/Jan/Documents/Wohntraum360/wohntraumapp/platforms/ios/build/emulator

SDKROOT = iphonesimulator10.0
SHARED_PRECOMPS_DIR = /Users/Jan/Documents/Wohntraum360/wohntraumapp/platforms/ios/build/sharedpch

Build settings from configuration file '/Users/Jan/Documents/Wohntraum360/wohntraumapp/platforms/ios/cordova/build-debug.xcconfig':
CLANG_ALLOW_NON_MODULAR_INCLUDES_IN_FRAMEWORK_MODULES = YES

CODE_SIGN_IDENTITY = iPhone Developer
ENABLE_BITCODE = NO
GCC_PREPROCESSOR_DEFINITIONS = DEBUG=1

HEADER_SEARCH_PATHS = "$(TARGET_BUILD_DIR)/usr/local/lib/include" "$(OBJROOT)/UninstalledProducts/include" "$(OBJROOT)/UninstalledProducts/$(PLATFORM_NAME)/include" "$(BUILT_PRODUCTS_DIR)"
IPHONEOS_DEPLOYMENT_TARGET = 8.0
OTHER_LDFLAGS = -ObjC
SWIFT_OBJC_BRIDGING_HEADER = $(PROJECT_DIR)/$(PROJECT_NAME)/Bridging-Header.h

TARGETED_DEVICE_FAMILY = 1,2

Which Ionic Version? 1.x or 2.x
2.0 Beta 11
Run ionic info from terminal/cmd prompt: (paste output below)
Cordova CLI: 6.3.1
Ionic Framework Version: 2.0.0-beta.11
Ionic CLI Version: 2.0.0
Ionic App Lib Version: 2.0.0-beta.20
ios-deploy version: 1.8.6
ios-sim version: 5.0.8
OS: Mac OS X El Capitan
Node Version: v4.4.7
Xcode version: Xcode 8.0 Build version 8A218a
Copied from original issue: driftyco/ionic#8161

+1
Build settings from configuration file /Users/quick1/Desktop/Apps/mpn/platforms/ios/cordova/build-debug.xcconfig':
    CLANG_ALLOW_NON_MODULAR_INCLUDES_IN_FRAMEWORK_MODULES = YES
    CODE_SIGN_IDENTITY = iPhone Developer
    ENABLE_BITCODE = NO
    GCC_PREPROCESSOR_DEFINITIONS = DEBUG=1
    HEADER_SEARCH_PATHS = "$(TARGET_BUILD_DIR)/usr/local/lib/include" "$(OBJROOT)/UninstalledProducts/include" "$(OBJROOT)/UninstalledProducts/$(PLATFORM_NAME)/include" "$(BUILT_PRODUCTS_DIR)"
    IPHONEOS_DEPLOYMENT_TARGET = 8.0
    OTHER_LDFLAGS = -ObjC

    SWIFT_OBJC_BRIDGING_HEADER = $(PROJECT_DIR)/$(PROJECT_NAME)/Bridging-Header.h
    TARGETED_DEVICE_FAMILY = 1,2

Your system information:
Cordova CLI: 6.3.1
Gulp version:  CLI version 3.9.1
Gulp local:   Local version 3.9.1
Ionic Framework Version: 1.3.1
Ionic CLI Version: 2.0.0
Ionic App Lib Version: 2.0.0-beta.20
ios-deploy version: 1.9.0
ios-sim version: 5.0.8
OS: Mac OS X El Capitan
Node Version: v4.2.2
Xcode version: Xcode 8.0 Build version 8A218a

Update.
I was able to remove Xcode 8 and  revert back to Xcode 7.3 and it seems like everything is running fine.
However, 7.3 doesn't ship with the IOS 10 simulator.

@quickly79: Thanks for your response, but I need Xcode 10 for other projects ... Any fix ?

If it helps, this is also happening on the latest and greatest Ionic release:
Cordova CLI: 6.3.1
Gulp version:  CLI version 3.9.1
Gulp local:
Ionic Framework Version: 2.0.0-rc.0
Ionic CLI Version: 2.1.0
Ionic App Lib Version: 2.1.0-beta.1
ios-deploy version: Not installed
ios-sim version: 5.0.8
OS: Mac OS X El Capitan
Node Version: v6.7.0
Xcode version: Xcode 8.0 Build version 8A218a

I have no idea why it's listing El Capitan as my OS X version however 😄.

Yes, facing the same problem as well.
Cordova CLI: 6.3.1
Ionic Framework Version: 2.0.0-beta.11
Ionic CLI Version: 2.1.0
Ionic App Lib Version: 2.1.0-beta.1
ios-deploy version: 1.8.5
ios-sim version: 5.0.6
OS: Mac OS X El Capitan
Node Version: v6.7.0
Xcode version: Xcode 8.0 Build version 8A218a

Same problem here.
Cordova CLI: 6.3.1
Ionic Framework Version: 1.3.1
Ionic CLI Version: 2.1.0
Ionic App Lib Version: 2.1.0-beta.1
ios-deploy version: 1.9.0
ios-sim version: 5.0.8
OS: Mac OS X El Capitan
Node Version: v6.6.0
Xcode version: Xcode 8.0 Build version 8A218a
Please note that ionic info says that I'm using El Captan, but I'm actually using Sierra.

Removing the hooks and platform and re-adding them did the trick for me:
ionic hooks remove
ionic platform remove ios
ionic hooks add
ionic platform ios

@ltalhouarne
This solution worked for me :)
Thanks

Well, the problem now is that every time I need to build a new version of the app, I must use the commands mentioned by @ltalhouarne :(

@fabianoarruda Here's what I'm doing now:

Rename XCode.app to Xcode 8.app
Download and install XCode 7.3.1
Copy Device Support for iOS 10.0 from Xcode 8 installation to Xcode 7.3.1 app. Follow answer in this post: http://stackoverflow.com/questions/37945376/use-xcode-7-with-ios-10
When you run ionic build ios on terminal it will now build against XCode 7.3.1
When running on actual device or emulator or Archiving to upload to iTunes, use XCode 8.app

It's damn annoying but this is the only way right now until this is fixed. Anyone have better idea, please share.

Just a heads-up. I started to wonder if my issue was related to iCloud sync, so I turned off Desktop and Document sync in iCloud settings on my Mac. Doing so leaves you with NOTHING in the Desktop or Documents local folder, only your files in the iCloud root. But, after copying things back to where they started (Desktop and Documents content) I was able to build just fine with no modifications listed above. Worth noting that my project root is in ~/Documents/Code so it appears that disabling the sync "fixed" some conflict happening there.
So, if you are on Sierra, have a project in a sync path, and this is occurring you might want to try turning off the iCloud sync OR move your project to another location that is not in the path of the sync. Hope this helps.

 Coincidentally my project root also resides under ~/Documents/code. I just moved it out as you said, and it is now building, no more hacking required! So, iCloud sync definitively interferes with the building process! Now I wonder why... Im not sure how but this needs to be investigated further and if its a issue related to iCloud we should report it to Apple.

I had this issue in Cordova / Phonegap - Confirming moving it out of iCloud folder fixed issue

Sounds, like a bad joke. Is there any topic in Apple forum or ticket in their ticket system?

I faced with a same problem.
I added build.json in root of project and it helped. I think that the problem with xcodebuild. It can't parse project file without correct signing properties. For manual(default xcode 7 method) signing use only provisioningProfile and codeSignIdentity

@TheMattRay remove iCloud sync for desktop and documents and it works. thank youl

@TheMattRay removing my folder from the iCloud Sync domain (e.g. Documents, Desktop ..) solved my problem as well.
Thanks!

I know I am bit late in the party, however, this has stopped working for me again, without any explanation.
My ionic info

Your system information:

Cordova CLI: 7.0.1
Gulp version:  CLI version 1.2.1
Gulp local:
Ionic Version: 1.2.4-nightly-1917
Ionic CLI Version: 1.7.14
Ionic App Lib Version: 0.7.0
ios-deploy version: 1.9.0
ios-sim version: 5.0.6
OS: Mac OS X El Capitan
Node Version: v4.8.3
Xcode version: Xcode 8.1 Build version 8B62

cordova-ios: 4.4.0
I've the node-xcode : 0.9.3 with following code:
// parsing is slow and blocking right now
// so we do it in a separate process
var fs = require('fs'),
    parser = require('./parser/pbxproj'),
    path = process.argv[2],
    fileContents, obj;

try {
    fileContents = fs.readFileSync(path, 'utf-8');
    obj = parser.parse(fileContents);
    process.send(obj);
} catch (e) {
    process.send(e);
    process.exitCode = 1;
}

Now, when I run
ionic build ios --verbose

it stops mid way after  add to body class: platform-ios, on random lines, such as:

In module 'AssetsLibrary' imported from /Users/ravish/Ionic/platforms/ios/CordovaLib/Classes/Public/CDVURLProtocol.m:20:
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS10.1.sdk/System/Library/Frameworks/AssetsLibrary.framework/Headers/ALAssetsLibrary.h:95:1: note: 'assetForURL:resultBlock:failureBlock:' has been explicitly marked deprecated here
- (void)assetForURL:(NSURL *)assetURL resultBlock:(ALAssetsLibraryAssetForURLResultBlock)resultBlock failureBlock:(ALAssetsLibraryAccessFailureBlock)failureBlock NS_DEPRECATED_IOS(4_0, 9_0, "Use fetchAssetsWithLocalIdentifiers:options: on PHAsset to fetch assets by local identifier (or to lookup PHAssets by a previously known ALAssetPropertyAssetURL use fetchAssetsWithALAssetURLs:options:) from the Photos framework instead");
^

and sometimes on this line:
platforms/ios/CordovaLib/Classes/Public/CDVURLProtocol.m:60:9:
the stops at random line numbers.
I tried running:
ionic prepare ios
ionic compile ios

Still same result, any suggestion?

I know I am bit late in the party, however, this has stopped working for me again, without any explanation.
My ionic info

Your system information:

Cordova CLI: 7.0.1
Gulp version:  CLI version 1.2.1
Gulp local:
Ionic Version: 1.2.4-nightly-1917
Ionic CLI Version: 1.7.14
Ionic App Lib Version: 0.7.0
ios-deploy version: 1.9.0
ios-sim version: 5.0.6
OS: Mac OS X El Capitan
Node Version: v4.8.3
Xcode version: Xcode 8.1 Build version 8B62

cordova-ios: 4.4.0
I've the node-xcode : 0.9.3 with following code:
// parsing is slow and blocking right now
// so we do it in a separate process
var fs = require('fs'),
    parser = require('./parser/pbxproj'),
    path = process.argv[2],
    fileContents, obj;

try {
    fileContents = fs.readFileSync(path, 'utf-8');
    obj = parser.parse(fileContents);
    process.send(obj);
} catch (e) {
    process.send(e);
    process.exitCode = 1;
}

Now, when I run
ionic build ios --verbose

it stops mid way after  add to body class: platform-ios, on random lines, such as:

In module 'AssetsLibrary' imported from /Users/ravish/Ionic/platforms/ios/CordovaLib/Classes/Public/CDVURLProtocol.m:20:
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS10.1.sdk/System/Library/Frameworks/AssetsLibrary.framework/Headers/ALAssetsLibrary.h:95:1: note: 'assetForURL:resultBlock:failureBlock:' has been explicitly marked deprecated here
- (void)assetForURL:(NSURL *)assetURL resultBlock:(ALAssetsLibraryAssetForURLResultBlock)resultBlock failureBlock:(ALAssetsLibraryAccessFailureBlock)failureBlock NS_DEPRECATED_IOS(4_0, 9_0, "Use fetchAssetsWithLocalIdentifiers:options: on PHAsset to fetch assets by local identifier (or to lookup PHAssets by a previously known ALAssetPropertyAssetURL use fetchAssetsWithALAssetURLs:options:) from the Photos framework instead");
^

and sometimes on this line:
platforms/ios/CordovaLib/Classes/Public/CDVURLProtocol.m:60:9:
the stops at random line numbers.
I tried running:
ionic prepare ios
ionic compile ios

Still same result, any suggestion?

@ravishtiwari: remove icloud sync from your project and also ionic rm platform ios and ionic add platform ios. That should fix the issue.

@emint88 - I cloned to separate location that user home:  ~/Projects/IonicProject/
However, still same result. No Error build stopping at different line number each time.

@ravishtiwari : step 1 - remove iCloud sync for desktop and documents
step 2 - remove platform , update node.js as you mention it is slow.
step 3 - add platform

@emint88 - my new clone location is outside Desktop and Document, in user home directory.
I've Node 4.8.3, I earlier had node  v6, but, it was creating issues, so downgraded to v4. I will try the steps you mentioned one more time and report back to you.

Well, it not working. cloned under ~/, fresh clone, ran, ionic  platform remove ios, ionic platform add  ios, ionic build ios.
Did not work, did a ionic state reset, ionic build ios, same result.
Removed the platform/, plugin and node_modules/ directory manually, and repeated the steps, no error, but, no success also.
@emint88 - I am only syncing Reminders and iCloud, I checked this from System Preferences >> iCloud.
P.S.: I am on Mac OS El Capitan (10.11.6 (15G1108))

I Signed out of iCloud, just to make sure nothing is syncing, took a fresh clone, repeated the steps. Still, build is stopping mid way.
P.S:  on same machine, Android Build is working without any problem, so, to me it looks like not 'sync' issue. Something to do with either xcode cli/cordova cli/ionic cli

@ravishtiwari : Yea you are right it is sounds like ionic cli . Since you have newer cordova cli why do not try cordova rm platform/add/build/run ??

@emint88 - doing cordova platform remove/add ios/ cordova build ios seems to be working, with some error for cordova-plugin-push, I am not sure if it's related or not. Another thing is, there is not cordova state reset to reset the entire platform and cordova platform add ios does not seems to be installing all related plugins from package.json  :(
I will do some more test around this and report back if build+run works for me with cordova command.
Thanks.

@emint88 - cordova build commands working for me, for android as well as ios. It's certainly some issue with Ionic CLI.
Thanks for you help. This issue isn't resolved with ionic, but, cordova cli work around is working for me.


[child-supervision] mechanism to inform interval from child to parent

This commit contains changes to child supervision feature. It adds a
new mechanism for a child to inform its desired supervision interval
to its parent. A new optional MLE TLV is added with type 27 and value
of uint16_t indicating the supervision interval in seconds. This
TLV is included in MLE Child ID Request and MLE Child Update Request
(sent from the child). The parent can echo back this TLV in the
corresponding responses to indicate that it supports supervision. This
commit changes the parent implementation to track the supervision
interval per child.
This change allows backward compatibility: If the parent does not
support child supervision, it ignores the new TLV in the MLE messages
and the child would fall back to periodically exchanging MLE Child
Update Request with parent. If the child does not support supervision
and/or does not indicate its desired child supervision interval, the
parent will fall back to use the configured default interval.
This commit also updates the OT public APIs along with the related
CLI commands:

API now allows the supervision interval to be set on a child.
New field in otChildInfo to indicate the child's supervision
interval.
New counter is added to track the number of supervision check
timeouts failures on a child (intended for testing and debugging).

This commit adds a test test_child_supervision to cover behavior of
child supervision and its new behaviors.

This is related to SPEC-1046.

@abtink , is there a specific problem/issue that triggered adding this new feature?

@abtink , is there a specific problem/issue that triggered adding this new feature?

@AlanLCollins , there is some background at https://openthread.io/guides/build/features/child-supervision

To provide an energy-efficient mechanism for a sleepy end device (SED) to verify that it is still connected to its parent router (listed in the parent router's child table), enable the Child Supervision feature.
The Thread Specification requires an SED to periodically perform an MLE Child Update Request and Response exchange with its parent router to verify connectivity. Child Supervision is an alternate solution for verification of SED-router connectivity that places the burden of message transmission on the parent router instead of on the energy-constrained SED.
Note: Most 802.15.4 radios generate an AUTO ACK in response to a received MAC frame. An SED cannot solely rely on the 802.15.4 ACKs it receives from a parent router as an indication that it is still connected to that router and listed in its child table.

@abtink , is there a specific problem/issue that triggered adding this new feature?

@AlanLCollins This is related to SPEC-1046. The idea is to add mechanism in Thread spec (new TLV) to allow child to specify what supervision interval it wants.


Add reference to project reimplementation

I changed the implementation from libxmljs to xmldom and reenabled the option.

Released in 0.5.2, thanks!


reflowing charts

Expected Behaviour

The reflow option that was previously in this plugin seems to have disappeared. In our application, we need to be able to reflow our charts, so bringing the old way back (or some new way) would be fantastic.
Your Environment

Version used: v1.0.1-dev
Browser Name and version: Chrome 56
Operating System and version (desktop or mobile): Android 5.1.1 using Cordova

How about chartConfig.getChartObj().reflow()?

Since we use the  tags in our HTML code, we can't get access to the chartConfig object.

I'm not sure what you mean. Please make a jsfiddle.

Well, our project is built up like: http://jsfiddle.net/pv645od3/
However, it doesn't seem to want to realize getChartObj() is a function in our code.
But since it works in JSFiddle the problem must be at our end. Apologies.

@TheNamlessGuy  no problem - open an issue if you can reproduce it


Config Updates

Let's use this issue to discuss goals related to updating the configuration. As with the others, let's edit this issue to keep track of the evolving consensus.
Priority
Config updates should have an associated priority. Higher priority updates take precedence over lower priority ones. Within the same priority, updates overwrite each other in order of execution.

Commandline (highest)
Named Updates
Default Config
Implicit / Internal  (lowest)

Commandline Updates
An expressive query language should allow for convenient updating of the config. E.g.

foo=[1, 'foo', True]   support for python literals
optimizer.learn_rate=0.01  dotted access for nesting
net.layers[2].size=200  index based access to lists
grid[(1, 2)]=8  support for non-str keys through [ ] notation.
distinguish between a={'b':1} (overwrite a) and a.b=1 (leave a intact).

Non-essential, but nice-to-have features could include:

net.layers[2:4].act_func='elu'  slicing notation
net.*.act_func='elu'  wildcard to mean "all children of net"
data...shuffle_buffer=100  ellipsis to mean all descendants named shuffle_buffer of data.

Information Tracking
To improve error-checking and reporting, all updates should be kept track of, including their source.

What's missing are command line updates from config files. I would like to see the ability to set some sub-config (ingredient) via a config file like with data_config=mnist.json. This might need some special syntax to distinguish from a string assignment.

How about reading config updates like the ones that you can pass via cli from a file? The file could look like
net.layers[2:4].act_func='elu'
net.*.act_func='elu'
data...shuffle_buffer=100

and the result would be the same as with net.layers[2:4].act_func='elu' net.*.act_func='elu' data...shuffle_buffer=100 . This would make it very easy to write config files that are very readable (in comparison to JSON), you could very easily share the used configurations (well, that's possible with JSON files as well) and it would be very simple to implement once the command line parser is there.

I would like to see the ability to set some sub-config (ingredient) via a config file like with data_config=mnist.json

That is a very cool idea. Not sure what a good syntax for that would look like. Although, we might not even need one. We could detect if you assign a string to a value that used to be a dictionary, and in that case we could try to interpret it as a filename.

How about reading config updates like the ones that you can pass via cli from a file?

I am a bit hesitant to roll our own config format. But it might be ok, since we would create this mini-language for the CLI anyways.

I've uploaded the prototype that I have been playing with for reworking the config:
https://github.com/Qwlouse/configv2
The general idea is to have the configuration collect all updates by recording entries (path, value, priority) instead of directly assigning them.
Evaluating the configuration then resolves all these assignments and turns them into a nested dict structure of config values.
This has several advantages:

Unified mechanism for resolving priorities
Easy tracking of metadata and the source of a particular value
Support for complex assignments that target more than one value like layers.*.size=10 (not implemented yet)
Config scopes can be implemented py partial evaluation of of config values on demand (see below)

What do you guys think?

I like the idea, it still needs a lot of work though.
I have some comments about named configs:

I think the user should be able to set a priority for named configs, and they should behave exactly the same as "normal" configs with a higher default priority (Some time ago there was some usecase where I needed a low-priority named config. Don't remember exactly, but there are usecases for this)
I think all configs (config scopes, dicts, files, ...) should be namable. This allows for aliases for config files, and why should a dict config behave differently from a config scope?

So, I'd suggest giving add_config the arguments name and priority. Then, all objects that can modify the config basically behave the same (config scopes, dict configs, config files, ...; let's call them ConfigModifier for now), they receive a configuration object and add entries to it. Thus, they should have a common base class that handles priorities, decides on whether to execute or not based on a potential given name, handles paths and then gives control to the specific modification implementation. It would be nice to keep it open so that a third party library can add custom ConfigModifiers (e.g., someone suggested reading config from .env files).
The process of resolving a config would then look like: Remove all modificators that don't match a name passed by CLI, sort them by priority with a stable sort (to preserve order in which they were defined) and then apply them in descending order of priority.

There might be a problem with how the entries are currently stored. Their order is preserved for each path, but not globally. This can lead to problems when you do something like this:
cfg = Configuration()
cfg.add_entry(Path.from_str('a.b'), 42)
cfg.add_entry(Path.from_str('a'), {})   # Should overwrite a.b as well (as far as I understood)
cfg.add_entry(Path.from_str('a.c'), 43)
cfg.to_dict()    # a.b = 42 is still in there!

I think this should be a list of globally ordered entries so that this works as expected.
And another question: Is this Configuration object the same that is passed to config scopes and that has the  add_config method? Or are these separate objects/classes? How do you plan to handle lists?

What is the status of this (and the whole configuration rework discussion)? Is there any progress?

Hey, sorry. No progress from my side so far. But I want to get back into it.

I think the user should be able to set a priority for named configs, and they should behave exactly the same as "normal" configs with a higher default priority [...]
I think all configs (config scopes, dicts, files, ...) should be namable. [...]

Completely agree with these. An important objective of this prototype was to unify the different mechanisms. I didn't think of making naming a general property, but that is a good idea.
I like the unified mechanism you suggested for ConfigModifiers (UpdateSet?).
This should also fix the order problem you pointed out.
I don't think the ConfigModifier itself would need much functionality though. It might be enough if it just stores a priority, name, and an update function. Because the sorting has to be done from the outside in any case. That container might as well handle the name-based elimination and the sequential calling.

Is this Configuration object the same that is passed to config scopes

Sort-of. The Configuration is intended to be the object that is passed to config scopes, but thus far it is just a stub to see if the idea can be coherently implemented at all. The interface of using cfg.add_entry(path, value, priority) is clumsy and should probably be replaced with something like cfg.path = value for simple cases and something like cfg.path = Entry(value, priority, doc, ....) for more complicated ones.

How do you plan to handle lists?

Basic handling of lists is already implemented.
Setting elements by index works as you'd expect:
cfg.add_entry(p("a"), [1, 2, 3], priority=2)
cfg.add_entry(p("a[1]"), 22, priority=3)
# cfg.add_entry(p("a[7]"), 22, priority=3)      # This raises an error.
cfg.to_dict()     # {"a": [1, 22, 3]}

In this example the cfg.a[1] = 22 entry is executed first (higher priority), but is ambiguous since it has an int key. So I create an implicit entry for a with node type LIST_OR_DICT that is resolved later to be either a list or dict.
Basic slicing also works already:
cfg.add_entry(p("a"), [1, 2, 3, 4], priority=2)
cfg.add_entry(p("a[:2]"), [9, 9], priority=4)
cfg.to_dict() # {"a": [9, 9, 3, 4]}

Its a shame this thread went stale. I think that this would be a brilliant addition to Sacred. Especially passing config files by command line.


python3Packages.triton: 2.1.0 -> 3.0.0, rename python3Packages.openai-triton -> python3Packages.triton

Description of changes
fixes pyTorch (torch.compile and ROCm)

Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)

[ ] sandbox = relaxed
[ ] sandbox = true

[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
24.11 Release Notes (or backporting 23.11 and 24.05 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[x] Fits CONTRIBUTING.md.

Add a :+1: reaction to pull requests you find important.

Running phase: unpackPhase
unpacking source archive /nix/store/3qs5h9g639w4xwh403v50qys785h5qad-source
calling 'unpackCmd' function hook '_defaultUnpack' /nix/store/3qs5h9g639w4xwh403v50qys785h5qad-source
source root is source
calling 'postUnpack' function hook '_ensureNewerSources'
calling 'postUnpack' function hook '_updateSourceDateEpochFromSourceRoot'
setting SOURCE_DATE_EPOCH to timestamp 315619200 of file source/utils/nightly.pypirc
Running phase: patchPhase
applying patch /nix/store/1c8s2js9wlf7xd2qv3swa4pl17bycwhi-0000-ptxas-disable-version-key-for-non-cuda-targets.patch
patching file python/setup.py
Hunk #1 succeeded at 432 with fuzz 1 (offset -5 lines).
evaling implicit 'postPatch' string hook
Running phase: updateAutotoolsGnuConfigScriptsPhase
Running phase: configurePhase
evaling implicit 'preConfigure' string hook
calling 'preConfigure' function hook 'pybind11CMakeFlags'
calling 'preConfigure' function hook '_multioutConfig'
no configure script, doing nothing
Running phase: buildPhase
Executing pypaBuildPhase
Creating a wheel...

Getting build dependencies for wheel...
/nix/store/x03rhgdr578lszbh5kgxrngv9xm77gxb-python3.12-setuptools-70.0.0/lib/python3.12/site-packages/setuptools/dist.py:476: SetuptoolsDeprecationWarning: Invalid dash-separated options
!!
  ********************************************************************************
  Usage of dash-separated 'base-dir' will not be supported in future
  versions. Please use the underscore name 'base_dir' instead.

  By 2024-Sep-26, you need to update your project and remove deprecated calls
  or your builds will no longer be supported.

  See https://setuptools.pypa.io/en/latest/userguide/declarative_config.html for details.
  ********************************************************************************

!!
opt = self.warn_dash_deprecation(opt, section)
/nix/store/x03rhgdr578lszbh5kgxrngv9xm77gxb-python3.12-setuptools-70.0.0/lib/python3.12/site-packages/setuptools/dist.py:318: InformationOnly: Normalizing '3.0.0-post1' to '3.0.0.post1'
self.metadata.version = self._normalize_version(self.metadata.version)
running egg_info
creating triton.egg-info
writing triton.egg-info/PKG-INFO
writing dependency_links to triton.egg-info/dependency_links.txt
writing entry points to triton.egg-info/entry_points.txt
writing requirements to triton.egg-info/requires.txt
writing top-level names to triton.egg-info/top_level.txt
writing manifest file 'triton.egg-info/SOURCES.txt'
reading manifest file 'triton.egg-info/SOURCES.txt'
reading manifest template 'MANIFEST.in'
writing manifest file 'triton.egg-info/SOURCES.txt'

Building wheel...
/nix/store/x03rhgdr578lszbh5kgxrngv9xm77gxb-python3.12-setuptools-70.0.0/lib/python3.12/site-packages/setuptools/dist.py:318: InformationOnly: Normalizing '3.0.0-post1' to '3.0.0.post1'
self.metadata.version = self._normalize_version(self.metadata.version)
/nix/store/x03rhgdr578lszbh5kgxrngv9xm77gxb-python3.12-setuptools-70.0.0/lib/python3.12/site-packages/setuptools/dist.py:476: SetuptoolsDeprecationWarning: Invalid dash-separated options
!!
  ********************************************************************************
  Usage of dash-separated 'base-dir' will not be supported in future
  versions. Please use the underscore name 'base_dir' instead.

  By 2024-Sep-26, you need to update your project and remove deprecated calls
  or your builds will no longer be supported.

  See https://setuptools.pypa.io/en/latest/userguide/declarative_config.html for details.
  ********************************************************************************

!!
opt = self.warn_dash_deprecation(opt, section)
running bdist_wheel
running build
running build_py
running build_ext
CMake Deprecation Warning at CMakeLists.txt:6 (cmake_policy):
The OLD behavior for policy CMP0116 will be removed from a future version
of CMake.
The cmake-policies(7) manual explains that the OLD behaviors of all
policies are deprecated and that a policy should be set to OLD only under
specific short-term circumstances.  Projects should be ported to the NEW
behavior and not rely on setting a policy to OLD.
-- The C compiler identification is GNU 13.3.0
-- The CXX compiler identification is GNU 13.3.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /nix/store/kp2j7yn0wzwq5piy494r54dafrh83s6s-gcc-wrapper-13.3.0/bin/gcc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /nix/store/kp2j7yn0wzwq5piy494r54dafrh83s6s-gcc-wrapper-13.3.0/bin/g++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Default build type: Release
-- Could NOT find LibEdit (missing: LibEdit_INCLUDE_DIRS LibEdit_LIBRARIES)
-- Performing Test Terminfo_LINKABLE
-- Performing Test Terminfo_LINKABLE - Success
-- Found Terminfo: /nix/store/a1370wggay4293caa9z82dc5dazmyg5a-ncurses-6.4.20221231/lib/libtinfo.so
-- Found ZLIB: /nix/store/rc18a8k50zmrif61250sfidkqvlg41ln-zlib-1.3.1/lib/libz.so (found version "1.3.1")
-- Found LibXml2: /nix/store/vxxx8dkmv9w354syic0s2rvl2bgnk1dz-libxml2-2.12.7/lib/libxml2.so (found version "2.12.7")
-- Linker detection: GNU ld
CMake Warning at /nix/store/hhxigrm3kdbn1rdia705ns76y7al7pi7-triton-llvm-llvmorg-19-init/lib/cmake/llvm/AddLLVM.cmake:1885 (message):
LLVM_EXTERNAL_LIT set to
/nix/store/hhxigrm3kdbn1rdia705ns76y7al7pi7-triton-llvm-llvmorg-19-init/bin/llvm-lit,
but the path does not exist.
Call Stack (most recent call first):
/nix/store/hhxigrm3kdbn1rdia705ns76y7al7pi7-triton-llvm-llvmorg-19-init/lib/cmake/llvm/AddLLVM.cmake:1930 (get_llvm_lit_path)
/nix/store/hhxigrm3kdbn1rdia705ns76y7al7pi7-triton-llvm-llvmorg-19-init/lib/cmake/llvm/AddLLVM.cmake:2020 (add_lit_target)
test/CMakeLists.txt:20 (add_lit_testsuite)
-- Found GTest: /nix/store/1gvvqk6f8rvy6zyd6rly7qv4vpira3rv-gtest-1.14.0-dev/lib/cmake/GTest/GTestConfig.cmake (found version "1.14.0")
-- Configuring done (3.2s)
-- Generating done (0.2s)
-- Build files have been written to: /build/source/python/build/cmake.linux-x86_64-cpython-3.12
[  1%] Building Passes.h.inc...
[  1%] Building Passes.h.inc...
[  2%] Building Passes.h.inc...
[  2%] Building TritonCombine.inc...
[  2%] Building CXX object third_party/f2reduce/CMakeFiles/f2reduce.dir/f2reduce.cpp.o
[  2%] Building AttrInterfaces.h.inc...
[  2%] Building Passes.h.inc...
[  3%] Building Passes.h.inc...
[  4%] Building Dialect.cpp.inc...
[  5%] Building AttrInterfaces.cpp.inc...
[  5%] Building TritonTypeInterfaces.cpp.inc...
[  5%] Building Ops.cpp.inc...
[  7%] Building Types.h.inc...
[  7%] Building Types.cpp.inc...
[  7%] Building Ops.cpp.inc...
[  7%] Built target intrinsics_gen
[  8%] Building Ops.h.inc...
[  9%] Building Dialect.cpp.inc...
[  9%] Built target mlir-generic-headers
[ 10%] Building OpsEnums.h.inc...
[ 10%] Building OpsEnums.cpp.inc...
[ 11%] Building Types.cpp.inc...
[ 12%] Building Ops.cpp.inc...
[ 14%] Building Ops.h.inc...
[ 15%] Building Dialect.h.inc...
[ 15%] Building Types.h.inc...
[ 15%] Building Types.cpp.inc...
[ 16%] Building Dialect.h.inc...
[ 16%] Building Dialect.cpp.inc...
[ 17%] Building TritonTypeInterfaces.h.inc...
[ 18%] Building Passes.h.inc...
[ 18%] Building Dialect.h.inc...
[ 20%] Building Ops.h.inc...
[ 21%] Building Types.h.inc...
[ 21%] Built target TritonGPUConversionPassIncGen
[ 21%] Built target TritonGPUTransformsIncGen
Included from /build/source/include/triton/Dialect/TritonGPU/IR/TritonGPUOps.td:6:
Included from /build/source/include/triton/Dialect/TritonGPU/IR/TritonGPUOps.td:6:
[ 21%] Built target LLVMIRIncGen
/build/source/include/triton/Dialect/TritonGPU/IR/TritonGPUAttrDefs.td:54:18: error: Value 'attrName' unknown!
let attrName = "triton.gpu." # attrMnemonic;
^
/build/source/include/triton/Dialect/TritonGPU/IR/TritonGPUAttrDefs.td:54:18: error: Value 'attrName' unknown!
let attrName = "triton.gpu." # attrMnemonic;
^
make[2]: *** [include/triton/Dialect/TritonGPU/IR/CMakeFiles/TritonGPUTableGen.dir/build.make:340: include/triton/Dialect/TritonGPU/IR/Types.cpp.inc] Error 1
make[2]: *** Waiting for unfinished jobs....
make[2]: *** [include/triton/Dialect/TritonGPU/IR/CMakeFiles/TritonGPUTableGen.dir/build.make:392: include/triton/Dialect/TritonGPU/IR/Types.h.inc] Error 1
[ 21%] Built target TritonNvidiaGPUTransformsIncGen
Included from /build/source/include/triton/Dialect/TritonGPU/IR/TritonGPUOps.td:6:
/build/source/include/triton/Dialect/TritonGPU/IR/TritonGPUAttrDefs.td:54:18: error: Value 'attrName' unknown!
let attrName = "triton.gpu." # attrMnemonic;
^
[ 21%] Built target TritonTransformsIncGen
[ 22%] Building CXX object test/lib/Analysis/CMakeFiles/obj.TritonTestAnalysis.dir/TestAxisInfo.cpp.o
make[2]: *** [include/triton/Dialect/TritonGPU/IR/CMakeFiles/TritonGPUTableGen.dir/build.make:236: include/triton/Dialect/TritonGPU/IR/Ops.cpp.inc] Error 1
[ 22%] Building CXX object test/lib/Analysis/CMakeFiles/obj.TritonTestAnalysis.dir/TestAllocation.cpp.o
Included from /build/source/include/triton/Dialect/TritonGPU/IR/TritonGPUOps.td:6:
[ 23%] Building CXX object test/lib/Analysis/CMakeFiles/obj.TritonTestAnalysis.dir/TestMembar.cpp.o
/build/source/include/triton/Dialect/TritonGPU/IR/TritonGPUAttrDefs.td:54:18: error: Value 'attrName' unknown!
let attrName = "triton.gpu." # attrMnemonic;
^
make[2]: *** [include/triton/Dialect/TritonGPU/IR/CMakeFiles/TritonGPUTableGen.dir/build.make:288: include/triton/Dialect/TritonGPU/IR/Ops.h.inc] Error 1
Included from /build/source/include/triton/Dialect/TritonGPU/IR/TritonGPUOps.td:6:
/build/source/include/triton/Dialect/TritonGPU/IR/TritonGPUAttrDefs.td:54:18: error: Value 'attrName' unknown!
let attrName = "triton.gpu." # attrMnemonic;
^
[ 23%] Built target TritonConversionPassIncGen
make[2]: *** [include/triton/Dialect/TritonGPU/IR/CMakeFiles/TritonGPUTableGen.dir/build.make:184: include/triton/Dialect/TritonGPU/IR/Dialect.h.inc] Error 1
Included from /build/source/include/triton/Dialect/TritonGPU/IR/TritonGPUOps.td:6:
/build/source/include/triton/Dialect/TritonGPU/IR/TritonGPUAttrDefs.td:54:18: error: Value 'attrName' unknown!
let attrName = "triton.gpu." # attrMnemonic;
^
[ 24%] Building CXX object test/lib/Analysis/CMakeFiles/obj.TritonTestAnalysis.dir/TestAlias.cpp.o
make[2]: *** [include/triton/Dialect/TritonGPU/IR/CMakeFiles/TritonGPUTableGen.dir/build.make:132: include/triton/Dialect/TritonGPU/IR/Dialect.cpp.inc] Error 1
make[1]: *** [CMakeFiles/Makefile2:2089: include/triton/Dialect/TritonGPU/IR/CMakeFiles/TritonGPUTableGen.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
/build/source/lib/Dialect/Triton/Transforms/Combine.td:41:22: error: Expected a class name, got 'ConstantEnumCase'
defvar DefOverflow = ConstantEnumCase<Arith_IntegerOverflowAttr, "none">;
^
make[2]: *** [lib/Dialect/Triton/Transforms/CMakeFiles/TritonCombineIncGen.dir/build.make:119: lib/Dialect/Triton/Transforms/TritonCombine.inc] Error 1
make[1]: *** [CMakeFiles/Makefile2:2448: lib/Dialect/Triton/Transforms/CMakeFiles/TritonCombineIncGen.dir/all] Error 2
[ 24%] Built target TritonNvidiaGPUTableGen
[ 24%] Built target TritonTableGen
In file included from /build/source/include/triton/Dialect/TritonGPU/IR/Attributes.h:5,
from /build/source/include/triton/Dialect/TritonGPU/IR/Dialect.h:11,
from /build/source/include/triton/Analysis/Utility.h:8,
from /build/source/include/triton/Analysis/AxisInfo.h:8,
from /build/source/test/lib/Analysis/TestAxisInfo.cpp:2:
/build/source/include/triton/Dialect/TritonGPU/IR/TritonGPUInterfaces.h:4:10: fatal error: triton/Dialect/TritonGPU/IR/TritonGPUAttrInterfaces.h.inc: No such file or directory
4 | #include "triton/Dialect/TritonGPU/IR/TritonGPUAttrInterfaces.h.inc"
|          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
In file included from /build/source/include/triton/Dialect/TritonGPU/IR/Attributes.h:5,
from /build/source/include/triton/Dialect/TritonGPU/IR/Dialect.h:11,
from /build/source/include/triton/Analysis/Utility.h:8,
from /build/source/include/triton/Analysis/Allocation.h:4,
from /build/source/test/lib/Analysis/TestAllocation.cpp:2:
/build/source/include/triton/Dialect/TritonGPU/IR/TritonGPUInterfaces.h:4:10: fatal error: triton/Dialect/TritonGPU/IR/TritonGPUAttrInterfaces.h.inc: No such file or directory
4 | #include "triton/Dialect/TritonGPU/IR/TritonGPUAttrInterfaces.h.inc"
|          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
In file included from /build/source/include/triton/Dialect/TritonGPU/IR/Attributes.h:5,
from /build/source/include/triton/Dialect/TritonGPU/IR/Dialect.h:11,
from /build/source/include/triton/Analysis/Utility.h:8,
from /build/source/test/lib/Analysis/TestAlias.cpp:4:
/build/source/include/triton/Dialect/TritonGPU/IR/TritonGPUInterfaces.h:4:10: fatal error: triton/Dialect/TritonGPU/IR/TritonGPUAttrInterfaces.h.inc: No such file or directory
4 | #include "triton/Dialect/TritonGPU/IR/TritonGPUAttrInterfaces.h.inc"
|          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
In file included from /build/source/include/triton/Dialect/TritonGPU/IR/Attributes.h:5,
from /build/source/include/triton/Dialect/TritonGPU/IR/Dialect.h:11,
from /build/source/include/triton/Analysis/Utility.h:8,
from /build/source/include/triton/Analysis/Allocation.h:4,
from /build/source/test/lib/Analysis/TestMembar.cpp:6:
/build/source/include/triton/Dialect/TritonGPU/IR/TritonGPUInterfaces.h:4:10: fatal error: triton/Dialect/TritonGPU/IR/TritonGPUAttrInterfaces.h.inc: No such file or directory
4 | #include "triton/Dialect/TritonGPU/IR/TritonGPUAttrInterfaces.h.inc"
|          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
make[2]: *** [test/lib/Analysis/CMakeFiles/obj.TritonTestAnalysis.dir/build.make:90: test/lib/Analysis/CMakeFiles/obj.TritonTestAnalysis.dir/TestAxisInfo.cpp.o] Error 1
make[2]: *** Waiting for unfinished jobs....
make[2]: *** [test/lib/Analysis/CMakeFiles/obj.TritonTestAnalysis.dir/build.make:104: test/lib/Analysis/CMakeFiles/obj.TritonTestAnalysis.dir/TestAllocation.cpp.o] Error 1
make[2]: *** [test/lib/Analysis/CMakeFiles/obj.TritonTestAnalysis.dir/build.make:76: test/lib/Analysis/CMakeFiles/obj.TritonTestAnalysis.dir/TestAlias.cpp.o] Error 1
make[2]: *** [test/lib/Analysis/CMakeFiles/obj.TritonTestAnalysis.dir/build.make:118: test/lib/Analysis/CMakeFiles/obj.TritonTestAnalysis.dir/TestMembar.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:3177: test/lib/Analysis/CMakeFiles/obj.TritonTestAnalysis.dir/all] Error 2
[ 24%] Built target f2reduce
make: *** [Makefile:146: all] Error 2
Traceback (most recent call last):
File "/nix/store/lc92w5vxs0hw8nyxpgblxi0wjbiizlzr-python3.12-pyproject-hooks-1.0.0/lib/python3.12/site-packages/pyproject_hooks/_in_process/_in_process.py", line 353, in
main()
File "/nix/store/lc92w5vxs0hw8nyxpgblxi0wjbiizlzr-python3.12-pyproject-hooks-1.0.0/lib/python3.12/site-packages/pyproject_hooks/_in_process/_in_process.py", line 335, in main
json_out['return_val'] = hook(**hook_input['kwargs'])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/nix/store/lc92w5vxs0hw8nyxpgblxi0wjbiizlzr-python3.12-pyproject-hooks-1.0.0/lib/python3.12/site-packages/pyproject_hooks/_in_process/_in_process.py", line 251, in build_wheel
return _build_backend().build_wheel(wheel_directory, config_settings,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/nix/store/x03rhgdr578lszbh5kgxrngv9xm77gxb-python3.12-setuptools-70.0.0/lib/python3.12/site-packages/setuptools/build_meta.py", line 410, in build_wheel
return self._build_with_temp_dir(
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/nix/store/x03rhgdr578lszbh5kgxrngv9xm77gxb-python3.12-setuptools-70.0.0/lib/python3.12/site-packages/setuptools/build_meta.py", line 395, in _build_with_temp_dir
self.run_setup()
File "/nix/store/x03rhgdr578lszbh5kgxrngv9xm77gxb-python3.12-setuptools-70.0.0/lib/python3.12/site-packages/setuptools/build_meta.py", line 487, in run_setup
super().run_setup(setup_script=setup_script)
File "/nix/store/x03rhgdr578lszbh5kgxrngv9xm77gxb-python3.12-setuptools-70.0.0/lib/python3.12/site-packages/setuptools/build_meta.py", line 311, in run_setup
exec(code, locals())
File "", line 533, in
File "/nix/store/x03rhgdr578lszbh5kgxrngv9xm77gxb-python3.12-setuptools-70.0.0/lib/python3.12/site-packages/setuptools/init.py", line 103, in setup
return distutils.core.setup(**attrs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/nix/store/x03rhgdr578lszbh5kgxrngv9xm77gxb-python3.12-setuptools-70.0.0/lib/python3.12/site-packages/setuptools/_distutils/core.py", line 184, in setup
return run_commands(dist)
^^^^^^^^^^^^^^^^^^
File "/nix/store/x03rhgdr578lszbh5kgxrngv9xm77gxb-python3.12-setuptools-70.0.0/lib/python3.12/site-packages/setuptools/_distutils/core.py", line 200, in run_commands
dist.run_commands()
File "/nix/store/x03rhgdr578lszbh5kgxrngv9xm77gxb-python3.12-setuptools-70.0.0/lib/python3.12/site-packages/setuptools/_distutils/dist.py", line 969, in run_commands
self.run_command(cmd)
File "/nix/store/x03rhgdr578lszbh5kgxrngv9xm77gxb-python3.12-setuptools-70.0.0/lib/python3.12/site-packages/setuptools/dist.py", line 968, in run_command
super().run_command(command)
File "/nix/store/x03rhgdr578lszbh5kgxrngv9xm77gxb-python3.12-setuptools-70.0.0/lib/python3.12/site-packages/setuptools/_distutils/dist.py", line 988, in run_command
cmd_obj.run()
File "", line 481, in run
File "/nix/store/81wr46k0xy72wgg84p22gnkgiwb7lpfd-python3.12-wheel-0.43.0/lib/python3.12/site-packages/wheel/bdist_wheel.py", line 368, in run
self.run_command("build")
File "/nix/store/x03rhgdr578lszbh5kgxrngv9xm77gxb-python3.12-setuptools-70.0.0/lib/python3.12/site-packages/setuptools/_distutils/cmd.py", line 316, in run_command
self.distribution.run_command(command)
File "/nix/store/x03rhgdr578lszbh5kgxrngv9xm77gxb-python3.12-setuptools-70.0.0/lib/python3.12/site-packages/setuptools/dist.py", line 968, in run_command
super().run_command(command)
File "/nix/store/x03rhgdr578lszbh5kgxrngv9xm77gxb-python3.12-setuptools-70.0.0/lib/python3.12/site-packages/setuptools/_distutils/dist.py", line 988, in run_command
cmd_obj.run()
File "/nix/store/x03rhgdr578lszbh5kgxrngv9xm77gxb-python3.12-setuptools-70.0.0/lib/python3.12/site-packages/setuptools/_distutils/command/build.py", line 132, in run
self.run_command(cmd_name)
File "/nix/store/x03rhgdr578lszbh5kgxrngv9xm77gxb-python3.12-setuptools-70.0.0/lib/python3.12/site-packages/setuptools/_distutils/cmd.py", line 316, in run_command
self.distribution.run_command(command)
File "/nix/store/x03rhgdr578lszbh5kgxrngv9xm77gxb-python3.12-setuptools-70.0.0/lib/python3.12/site-packages/setuptools/dist.py", line 968, in run_command
super().run_command(command)
File "/nix/store/x03rhgdr578lszbh5kgxrngv9xm77gxb-python3.12-setuptools-70.0.0/lib/python3.12/site-packages/setuptools/_distutils/dist.py", line 988, in run_command
cmd_obj.run()
File "", line 300, in run
File "/nix/store/x03rhgdr578lszbh5kgxrngv9xm77gxb-python3.12-setuptools-70.0.0/lib/python3.12/site-packages/setuptools/_distutils/cmd.py", line 316, in run_command
self.distribution.run_command(command)
File "/nix/store/x03rhgdr578lszbh5kgxrngv9xm77gxb-python3.12-setuptools-70.0.0/lib/python3.12/site-packages/setuptools/dist.py", line 968, in run_command
super().run_command(command)
File "/nix/store/x03rhgdr578lszbh5kgxrngv9xm77gxb-python3.12-setuptools-70.0.0/lib/python3.12/site-packages/setuptools/_distutils/dist.py", line 988, in run_command
cmd_obj.run()
File "", line 337, in run
File "", line 427, in build_extension
File "/nix/store/z7xxy35k7620hs6fn6la5fg2lgklv72l-python3-3.12.4/lib/python3.12/subprocess.py", line 413, in check_call
raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command '['cmake', '--build', '.', '--config', 'TritonRelBuildWithAsserts', '-j128']' returned non-zero exit status 2.
ERROR Backend subprocess exited when trying to invoke build_wheel
error: builder for '/nix/store/ngjkwwdnjjkay0q2jra6afkisy7l706w-python3.12-triton-3.0.0.drv' failed with exit code 1;
last 10 log lines:
>     super().run_command(command)
>   File "/nix/store/x03rhgdr578lszbh5kgxrngv9xm77gxb-python3.12-setuptools-70.0.0/lib/python3.12/site-packages/setuptools/_distutils/dist.py", line 988, in run_command
>     cmd_obj.run()
>   File "", line 337, in run
>   File "", line 427, in build_extension
>   File "/nix/store/z7xxy35k7620hs6fn6la5fg2lgklv72l-python3-3.12.4/lib/python3.12/subprocess.py", line 413, in check_call
>     raise CalledProcessError(retcode, cmd)
> subprocess.CalledProcessError: Command '['cmake', '--build', '.', '--config', 'TritonRelBuildWithAsserts', '-j128']' returned non-zero exit status 2.
>
> ERROR Backend subprocess exited when trying to invoke build_wheel
For full logs, run 'nix log /nix/store/ngjkwwdnjjkay0q2jra6afkisy7l706w-python3.12-triton-3.0.0.drv'.
error: 1 dependencies of derivation '/nix/store/6xzbbjpra4vz7cv46kdxky59diq7641z-python3-3.12.4-env.drv' failed to build

... /nix/store/hhxigrm3kdbn1rdia705ns76y7al7pi7-triton-llvm-llvmorg-19-init/bin/llvm-lit ... does not exist

I believe this was previosuly consumed from getExe lit, which was exposed via nativeBuildInputs and PATH

... /nix/store/hhxigrm3kdbn1rdia705ns76y7al7pi7-triton-llvm-llvmorg-19-init/bin/llvm-lit ... does not exist

I believe this was previosuly consumed from getExe lit, which was exposed via nativeBuildInputs and PATH

no the getExe lit, was my attempt on fixing the llvm-lit stuff. since the triton-lllvm dosn't outputs llvm-lit. there is an extra pkg "lit" which has llvm-lit in it

there is an extra pkg "lit" which has llvm-lit in it

That's precisely what I'm talking about and I believe that's what the triton build relied on before. Not sure how that composes with the newer llvm

there is an extra pkg "lit" which has llvm-lit in it

That's precisely what I'm talking about and I believe that's what the triton build relied on before. Not sure how that composes with the newer llvm

I fixed the llvm-lit error, but the build error still stays. Any thoughts?

My first guess is that its not cuda 12.4

I didn't notice any version checks?

update cuda

Will need to go in a separate pr

My first guess is that its not cuda 12.4

I didn't notice any version checks?

update cuda

Will need to go in a separate pr

yeah ik, I was cherry picking it rn. The problem is actually it is trying to build it with cuda, but it is a build without cuda? I really need some help here. I have no plan what so ever what to do here

@SomeoneSerge can you please help me debug this?
[ 92%] Building CXX object unittest/Dialect/TritonGPU/CMakeFiles/LinearLayoutConversions.dir/LinearLayoutConversionsTest.cpp.o
[ 92%] Building CXX object bin/CMakeFiles/triton-llvm-opt.dir/triton-llvm-opt.cpp.o
[ 94%] Building CXX object unittest/Tools/CMakeFiles/LinearLayout.dir/LinearLayoutTest.cpp.o
In file included from /build/source/bin/./RegisterTritonDialects.h:2,
                 from /build/source/bin/triton-reduce.cpp:1:
/build/source/./third_party/nvidia/include/Dialect/NVGPU/IR/Dialect.h:32:10: fatal error: nvidia/include/Dialect/NVGPU/IR/Dialect.h.inc: No such file or directory
   32 | #include "nvidia/include/Dialect/NVGPU/IR/Dialect.h.inc"
      |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
In file included from /build/source/bin/./RegisterTritonDialects.h:2,
                 from /build/source/bin/triton-lsp.cpp:1:
/build/source/./third_party/nvidia/include/Dialect/NVGPU/IR/Dialect.h:32:10: fatal error: nvidia/include/Dialect/NVGPU/IR/Dialect.h.inc: No such file or directory
   32 | #include "nvidia/include/Dialect/NVGPU/IR/Dialect.h.inc"
      |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
In file included from /build/source/bin/./RegisterTritonDialects.h:2,
                 from /build/source/bin/triton-opt.cpp:1:
/build/source/./third_party/nvidia/include/Dialect/NVGPU/IR/Dialect.h:32:10: fatal error: nvidia/include/Dialect/NVGPU/IR/Dialect.h.inc: No such file or directory
   32 | #include "nvidia/include/Dialect/NVGPU/IR/Dialect.h.inc"
      |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.

I don't know why, but I had to force enable this:
   # force enable TRITON_BUILD_PYTHON_MODULE     substituteInPlace CMakeLists.txt \       --replace-fail "# Ensure Python3 vars are set correctly" "set(TRITON_BUILD_PYTHON_MODULE ON)"

This is now ready. All packages should be working properly.

@SomeoneSerge could you please review, I really want to get this merged :)

On it. Meantime do you have the resource for nixpkgs-review?

On it. Meantime do you have the resource for nixpkgs-review?

never used it, but I have a amd epyc 7702 pc at home, so I should be able to build it and test it with nixpkgs-review.

my pc is dropping weired errors like this one, when executing nixpkgs-review.

error: builder for '/nix/store/gbybviwmmrqqszjdcwwyfvck1nx4nca3-model-test.drv' failed with exit code 1;        last 10 log lines:        > torch._dynamo.exc.BackendCompilerFailed: backend='inductor' raised:        > ImportError: cannot import name 'get_cuda_version_key' from 'triton.common.backend' (/nix/store/kmkap7730rvf4www1x3bhpfp1nsq06m1-python3-3.11.9-env/lib/python3.11/site-packages/trit on/common/backend.py)        >        > Set TORCH_LOGS="+dynamo" and TORCHDYNAMO_VERBOSE=1 for more information        >        >        > You can suppress this exception and fall back to eager by setting:        >     import torch._dynamo        >     torch._dynamo.config.suppress_errors = True        >        For full logs, run 'nix log /nix/store/gbybviwmmrqqszjdcwwyfvck1nx4nca3-model-test.drv'. error: 1 dependencies of derivation '/nix/store/p1lj78xqb1429kzhq05msm7yhk0q0py2-model-0.drv' failed to build
When using torch.compile I'm receiving this error.

my pc is dropping weired errors like this one, when executing nixpkgs-review. I have an H100 in my pc installed, that might be the problem here + and I'm passing it through the sandbox.

Most likely unrelated, jaxlib doesn't use triton it implements its own xla-based thing

Hi! I noticed that I was running into issues with torch.compile due to an outdated Triton API. I was wondering what the status of this PR was?

Hi! I noticed that I was running into issues with torch.compile due to an outdated Triton API. I was wondering what the status of this PR was?

I kinda gave up on finishing it. But it "kinda" works. I would love to have a working torch.compile tho.

Unfortunately I'm rather new to nix so I don't have the knowledge on how to finish it. It looks like the build process is quite complicated so I wouldn't even know where to start.

Off-topic: this time iterating on this I used the following snippet in an attempt to 1) control the # of rebuilds, 2) speed up the iterations with ccache: https://gist.github.com/SomeoneSerge/82460e72478c295023fb9c6c11f39c8a. On the former item this file, placed in the nixpkgs root, instantiates a small selection of the current checkout's packages in an overlay applied to an older nixpkgs revision (<nixpkgs>). This didn't actually make any difference for present PR, but I already had this bit handy from elsewhere and kept it. As for ccache, I hadn't used it with Nixpkgs before, and this was my first trial. Rather than using extra-sandbox-paths directly, I  marked the ccached derivations with requiredSystemFeatures = [ "ccache" ] and relaxed the sandbox using programs.nix-required-mounts. I also used an adapted stdenv to for extending the requriedSystemFeatures because a bunch of packages seem to inherit toolchains via passthru attributes or such.

Looks like there is a formatting error.

https://gist.github.com/DerDennisOP/bdfe377b87d1c82763b20741af0f61e8
@SomeoneSerge Maybe you can fix some of those errors. I've got it to a point where it runs the tests.

@DerDennisOP it's just these bits lost in rebasing: https://github.com/NixOS/nixpkgs/compare/d790bb57fe8b2cb7d1aea710a8f3883fe9b84b4b..75b179068a03b178ae62ec0dbad5b0bcb16bb7b4#diff-55ff62f64788cc8e9cfd07812e08333d358e24ce599a337cc8b55399f7900e18L261-L266

@DerDennisOP my pure (ccache-less) rebuild is almost done, now running the pytest suite; do you have any pending changes or should we rebase and force-push?

nixpkgs-review result
Generated using nixpkgs-review.

However, if I rebase it against the latest master (or run nixpkgs-review), the tests fail.
Ensure to properly rebase this so that we are not fooling ourselves regarding whether it builds or not.

I reproduced the failure, ignore my last night's comments.
I think we're seeing https://github.com/llvm/llvm-project/issues/100791:
...
       For full logs, run 'nix log /nix/store/nj1p8kbps8hg4mh9dck0lakbsi9anb0n-triton-llvm-19.1.0-rc1.drv'.
┏━ 1 Errors:
┃ error: builder for '/nix/store/nj1p8kbps8hg4mh9dck0lakbsi9anb0n-triton-llvm-19.1.0-rc1.drv' failed with exit code 1;
...
❯ nix-diff ./result /nix/store/nj1p8kbps8hg4mh9dck0lakbsi9anb0n-triton-llvm-19.1.0-rc1.drv --color=always
...
5422   │           • The set of input derivation names do not match:
5423   │               - binutils-patchelfed-ld-wrapper-2.42
5424   │               - glibc-2.39-52
5425   │               + binutils-patchelfed-ld-wrapper-2.43.1
5426   │               + glibc-2.40-36
...

@SomeoneSerge are there big modifications to triton 3.1.x, or can we update the version without making big code modifications?

@SomeoneSerge are there big modifications to triton 3.1.x, or can we update the version without making big code modifications?

I haven't compared, but I'd rather 3.0.x -> 3.1.x were a separate PR

nixpkgs-review result
Generated using nixpkgs-review.

I haven't compared, but I'd rather 3.0.x -> 3.1.x were a separate PR.
If you like maybe you could already start one

tbh, we are just about to finish this one, after a lot of depression and the fight against cuda, i don't really feel like starting the story all over again. A smart person once said: "Never touch a running system."

Time to rip this bandaid off, what breaks shall break

Time to rip this bandaid off, what breaks shall break

fine ... maybe next week.

Opened #349159

@DerDennisOP @SomeoneSerge thank you guys, your contribution was very useful


fixed types display on readme file

Thanks for spotting the formatting issue @itsaladin ! Really appreciate it.


st: add derivation flags to enable some official patches

Motivation for this change
Make it easier to enable official patches available here: https://st.suckless.org/patches/
Things done

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

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

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

cc @viric @andsild

Why add an overlay when you can just add an option? Personally, I like this.
The only nitpick I have is that I think that the patches should be moved up into the let block because I hope stdenv would eventually reject all unknown attributes.

Why add an overlay when you can just add an option? Personally, I like this.

Well currently I would say discovering the patches directly through suckless.org is much easier than discovering the package arguments. We definitely can't list all of the patches at http://st.suckless.org/patches/ but we can show users how to apply any on their own. You can do something like this fairly easily:
let
  patch-dir = ./my-st-patch-dir;
in self: super: {
  st = super.st.override (old: {
    patches = (old.patches or []) ++ [
      (builtins.fetchurl http://st.suckless.org/patches/right_click_to_plumb/right_click_to_plumb.diff)
      ./my-custom-mod.patch
    ] ++ (map (file: patch-dir + ./. + file) (builtins.attrNames (builtins.readDir patch-dir)));
  });
}

If we ever get something like the module system for package flags having these here this might be worth it. But right now I would much prefer better documentation to obscure flags.

I see, right, even then that might be a bit to much flags then.
Exposing patches attr in the argument of st (so that you could do that override instead of overrideAttrs) and exposing a list of patches somewhere like st-patches feels best to me, then.
Something like:
environment.systemPackages = [
  (pkgs.st.override { patches = with pkgs.st-patches; [ patch otherpatch etc];})
];

Properly autogenerated longDescriptions in metas of st-patches can even make this discoverable.

Just discovered overlays thanks to you :) .
Here is what I was able to write:
self: super:

let
  stVersion = "0.8.1";

  alphaPatch = self.fetchpatch {
    name = "st-alpha.patch";
    url = "https://st.suckless.org/patches/alpha/st-alpha-${stVersion}.diff";
    sha256 = "18iw0bzmagcchlf5m5dfvdryn47kpdbcs1j1waq8vl1w2wvcg5al";
  };

  clipboardPatch = self.fetchpatch {
    name = "clipboard.patch";
    url = "https://st.suckless.org/patches/clipboard/st-clipboard-${stVersion}.diff";
    sha256 = "0gdjgzg2a98fph4sn4w210p39401mm4imkrllfyhc836bjyhi5pc";
  };

  hidecursorPatch = self.fetchpatch {
    name = "hidecursor.patch";
    url = "https://st.suckless.org/patches/hidecursor/st-hidecursor-${stVersion}.diff";
    sha256 = "02b4h375c2vd79f7cagki5fnx1ipygywlxn25c62kg529d7zfck0";
  };

in
{
  st = super.st.override {
    conf = import ./st.nix;
    patches = [alphaPatch clipboardPatch hidecursorPatch];
  };
}

It seems to work on my side. Can this be improved ? Is there any pattern we could extract and integrate into st derivation to make it easier for users to add patches ?


Few shot learning

Hi, thanks for the great software!  I have a dataset of custom entities, and I want to use Zshot to detect these custom entities. how can I do the few-shot learning with your tool? also is there a way to have my own linker that searches my own data? would you mind giving me a code snippet for the few-shots?
thanks!

Hello, thank you for your interest!

how can I do the few-shot learning with your tool?
At the moment, we don't have any few-shot model available, so this is not possible yet. We are interested in this and will explore how to add it to the library.

also is there a way to have my own linker that searches my own data?
Yes, that is possible. Here there is a collab notebook that explains how to create custom components.
Check also https://ibm.github.io/zshot/#how-to-create-a-custom-component.


improved markdown to html rendering using flexmark extensions

Implements the proposed changes from https://github.com/avisi-cloud/structurizr-site-generatr/issues/121
The configuration of the used extensions can be made using a property on workspace level
"generatr.markdown.flexmark.extensions" "Admonition"
This property has to be on workspace level due to the fact, that the rendered markdown text doesn't belong to any view. Instead it comes from workspace (and softwareSystem) level documentation files. So it seemed counter intuitive to place the corresponding property somewhere in the view definitions. Now it would be placed just above or below the definition where the workspace documents are.
As a future task it could be made possible, to have different settings for each softwareSystem.
Additionally, it is only possible to define which extensions to use without the possibility to use additional configuration options for some of the extensions.
So no property
"generatr.markdown.flexmark.Emoji.USE_IMAGE_TYPE" "UNICODE_ONLY"

Hi @UBessle, thanks for your PR! I'm soon going to have a closer look. While quickly glancing over the changes, I noticed that you added a bin directory in the root. You also added this directory to .gitignore, so I assume you added this directory by accident. Could you please remove it, if that's the case?

yes bin directory was a mistake. I've removed it from git.

Hi @dirkgroot,
we wood love, to use all the flexmark extensions in our architecture documentations. On the other side we would like to stay with the official release of structurizr-site-generatr to get all those improvements. So it would be good to know, when you plan to get a closer look on this pull request.
Thanks, Uwe

Hi @dirkgroot ,
thanks for the very detailed feedback to my PR and sorry for the fact, that there was so much room for improvement. Unfortunately Kotlin was a totally new environment for me and so it is no big surprise that this shows somewhat in the quality of my code. So thanks again, that you did invest so much time in giving feedback, to improve it.
Cheers, Uwe

I've tried to follow your suggestion to use Intellij for the work on the Kotlin Code. Unfortunately for some reasons all github projects reside in WSL2 (Windows Subsystem for Linux) on my Windows 10 workplace machine and Intellij does not work very well in combination with WSL2. It works, but it is awfull slow when accessing the source files. So the automatic indexing in IDEA runs for hours already and it hasn't reached 50% yet. So it remains a little bit tricky for me to get more productive in this setup ...


A way to define custom filters

Currently can't define filters other than the defined in the filter expression visitor class.
It's nice to have custom filters such as subsetof or so, but can't find a clean way to do so.

Hi HassanAzzam, сould you please provide a more detailed example of your use case? The current implementation already supports complex filtering and serialization, but maybe I missed something. Thanks in advance!

Have a look at elide.io(a known json api library for Java), there is a list of supported operators for filtering out-of-box(supersetof is my current need). I was wondering if there is any way to inject implementation for these operators in the filter expression visitor class.

Got it! The filter expression visitor is a specific interface provided by the entity store. It can be tricky to create custom implementations because it involves a lot of reflection, filter expressions creation and delegation logic to keep things simple for the end user. Usually, you can achieve the same results as with supersetof using or/and filtering. But they do not provide them. The only way by design is to extend an entity store and implement new methods by concrete implementations. Also elide requires its own filter expression visitor on this side of the library.


Position and size not saved

Change the default position and size of the app.
Quit app
Restart app
App window is a default size and the location is also top left corner.

case 297059

Might be connected to this commit
https://github.com/toggl/toggldesktop/commit/de1dd4f19c6960b7be2ebfa628606bc2e1b534b3
Forceful app close doesn't trigger position saving.


Wrong abstract is used by MetaCPAN because it's not set in Makefile.PL

The Makefile.PL needs to set the ABSTRACT_FROM field so the right abstract is used. Look at the META.yml or META.json files and you'll see it's set to unknown because it doesn't know where to extract it from. The MetaCPAN site tries to determine the abstract on it's own, but extracts it from the xpath example script instead.

Good catch, will fix in the next release, may be tomorrow.

XML::XPath v1.42 released to patch the issue #5.

Closing the issue now as it has been fixed.


Errors in v7 and v6

When I run the command line in v7 I receive the following error:
Traceback (most recent call last):
File "/home/dojo/Desktop/bsgs-main/v7_gpu_trial/bsgs_GPU.py", line 123, in
bsgsgpu = ctypes.CDLL(pathdll)
File "/usr/lib/python3.10/ctypes/init.py", line 374, in init
self._handle = _dlopen(self._name, mode)
OSError: libcudart.so.11.0: cannot open shared object file: No such file or directory
Could not resolve this error so switched to v6, then received the following error:
Traceback (most recent call last):
File "/media/dojo/SATASSD/bsgs-main/v6_dll_bsgs/bsgs_create_bpfile_bloomfile.py", line 98, in
bloom_filter = bytes(b'\x00') * (bloom_bits//8)
MemoryError
I have plenty of memory to create the file (256 GB) using 6 cores. Please assist in resolving this.  I am running Linux Ubuntu latest version, 16 GB of RAM, two 1 TB SSDs, and AMD Ryzen CPU with AMD video card.  If specific specs are needed, let me know.
Thank you.

resolved v6 errors and is working properly now.  The v7 issue is narrowed down to Cuda GPU issue.  Still unresolved.  Is there a way to tailor the program and driver to Raytheon GPU rather than Nvidia? This appears to be the error source.

Got same error with v7 version with cuda 12
while was at cuda 11+ was get another error
which one cuda i must to use?

which apps i must update?
all dat was need and dont goes with py by deafault (bit, signal, argparse, numba) was installed today so they are up to date

please update the apps with latest version of cuda. we are using apps developed via ice2k on nvidia rtx4090 and need more updates
…
On Mon, Aug 21, 2023 at 2:34 PM pixel-wipe @.> wrote: Got same error with v7 version with cuda 12 while was at cuda 11+ was get another error which one cuda i must to use? — Reply to this email directly, view it on GitHub <#73 (comment)>, or unsubscribe https://github.com/notifications/unsubscribe-auth/AH4VUUUKP4YNJRKQGDKNCALXWM6D3ANCNFSM6AAAAAAXLNNKTA . You are receiving this because you are subscribed to this thread.Message ID: @.>

i has checked in system and libcudart.so.11.0 isnt at my system disk
does in cuda 12.0-12.2 it was dericated ?
or which packet need to install to get it?


Improve error messages

I get the following error message from custom-objects service:
{ [BadRequest: Request body does not contain valid JSON.]
  message: 'Request body does not contain valid JSON.',
  body:
     { statusCode: 400,
      message: 'Request body does not contain valid JSON.',
       errors: [ [Object] ],
       originalRequest: { endpoint: '/orders', payload: [Object] } },
 name: 'BadRequest',
 statusCode: 400,
 code: 400 }

isn't this too much redundant information?

The object you get is an instance of the Error type with some basic info. In addition there is a body field which contains the JSON response payload from the API.


[WIP] Use dune for formatting

This fixes the esy format command for OSX. On Windows, due to esy/esy#839, you'll need to run esy format:windows as a workaround.


Persistent window not working?

Hi,
Maybe I'm doing something wrong but I can't get the persistent window to work. Pressed the command key three times. Nothing happens.
Looks to be enabled int the settings.

Hey mike-ward,
You might need to press it more quickly, the default time between pressed keys should not exceed 0.5 seconds. If you wish to extend that time, you can adjust the settings in Advanced -> Sticky Keys. Keep in mind that this adjustment will also impact the regular window appearing (might be unwanted window appearing during regular actions).

Tried press three times really fast. Still no joy.

Thank for feedback. I will implement some improvements regarding this issue.

Turning it off and back on worked for me as well.
Would it be possible to be able to move the persistent window around the screen? Right now it has a fixed position and that isn't always an ideal location.


Can't get ecliptic to equatorial transformation working

Here is the test code:
let now = Date().julianDay()
let sun = Sun.init(julianDay: now)
print(now) // OK
print(sun.eclipticCoordinates) // OK
print(sun.equatorialCoordinates) // RA is OK, but DEC should be -23°, not +55°

And here is the output:
JulianDay(value: 2457742.6550525003)
EclipticCoordinates(celestialLongitude: SwiftAA.Degree(value:<PHONE_NUMBER>599379), celestialLatitude: SwiftAA.Degree(value: -1.8868903201079716e-05), epoch: SwiftAA.JulianDay(value: 2451545.0))
EquatorialCoordinates(rightAscension: SwiftAA.Hour(value: 17.847912733146728), declination: SwiftAA.Degree(value: 54.978633717748345), epoch: SwiftAA.JulianDay(value: 2451545.0))

What I'm doing wrong?

Hm... I'll definitely check. Something is wrong here.

It looks like the problem is the last parameter in the calls to KPCAACoordinateTransformation_Ecliptic2Equatorial should be obliquity of ecliptic (not epoch)

Hm, I've worked on this recently, I remember to have note to myself that I was making a confusion between epoch and obliquity because they are both named epsilon. Damn. Must be careful with this.

Follow-up in #17


A scenario that can be executed with line should be executable with scenario name

Expected behavior
A scenario that can be executed with line should be executable with scenario name
Actual behavior
The scenario is not found when executed with name
Steps to replicate

Create a gauge-js project
Create a scenario with name Show code actions on ~`!@#$%^&()_-+;',./=undefined steps
Execute the scenario
gauge run --scenario="Show code actions on ~`!@#$%^&()_-+;',./=undefined steps"

This scenario is not found. However from the VSCode this scenario can be executed

Version
Gauge version: 1.0.3.nightly-2018-10-05
Commit Hash: ff2114f

Blocks #1012

Tried executing by escaping ! - gauge run --scenario="Show code actions on ~!@#$%^&()_-+;',./=undefined steps"`. The scenario is not found.

In windows no need to escape !. just use single quotes instead of double
 gauge run --scenario='Show code actions on ~!@#$%^&()_-+;'\'',./=undefined steps'
if you want to use single quotes in scenario name then escape them like -
change ' to '\''

Every command line shell uses the different character to escape some special characters.
so you have to change your command according to their escaping rules.

gauge run --scenario='Show code actions on ~!@#$%^&()_-+;''',./=undefined steps'

this command is working fine in Gitbash but not in Powershell. For Powershell, you have to run
gauge run --scenario="Show code actions on ~``!@#$%^&()_-+;',./=undefined steps"
Powershell -

Gitbash -


Red tests

There are a few of red tests on my machine:

some of them is obvious, but some is totally unexpected, does it correct behaviour?

What OS are you using? The tests are somewhat fragile but I've been struggling to get them to pass on win 7, win 10 & appveyor.

If you are adding a feature or fixing something you can go ahead and ignore if some unrelated test fails and we can try to solve it together.

Win7
Some of them fails because my machine has other localization, so, for example, here:
 var exception = Assert.Throws<UiAutomationException>(() => checkBox.IsChecked = null);
 Assert.AreEqual(
    "Setting AutomationId:SimpleCheckBox, Name:Test Checkbox, ControlType:check box, FrameworkId:WPF .IsChecked to null failed.",
    exception.Message);

according to
return $"AutomationId:{this.Properties.AutomationId.ValueOrDefault("MISSING")}, Name:{this.Properties.Name.ValueOrDefault("MISSING")}, ControlType:{this.Properties.LocalizedControlType.ValueOrDefault("MISSING")}, FrameworkId:{this.Properties.FrameworkId.ValueOrDefault("MISSING")}";```

returns флажок instead of check box

Some thoughts:
15/29 'pass for me after small changed in #45
Regarding remaining 14 red tests:

2/14

NotepadFindFirst
FocusChangedWithPaintTest

the reason in simple switch
 switch (CultureInfo.InstalledUICulture.TwoLetterISOLanguageName)
 {
    case "de": return ...
    default: return ...
}

so, someone who want to see green test have to add his locale to the list.

3/14

PressScanCode
TypeKey
TypeKeyWhilePressingShift

the same reason like group above except that there is no switch.

1/14

CalculatorTest

There is no explicit localization problem but I guess the reason the same.

7/ 14

Size
SlideThumbTest
WhenEqualExplicitPath
WhenEqualRelativePath
WhenEqualResource
WhenEqualRelativePath
WhenNotEqual

Someone may have settings for changing text size by default for example by 125%. So Size will be different. If there any properties for getting the coefficient then the test could be green. But anyway I think this is a rare case so not very important.

1/14

Window

I was mentioning about it in gitter. Perhaps make sense create separate issues for this.

Nice writeup, thanks for taking the time to do this!


Fix : Improved the UI mouse changed to cursor-pointer when hovered

There's a lot of noise in this pr. Can u reduce the diff???