If I may make a tiny suggestion, could you tweak the dependency activation to only toggle addons that are required to use the one you're turning on, instead of also switching on any addons that are dependant on the one just activated?
In case that was a tad confusing take this example:
I activate FuBar_ClockFu, which is dependent itself on FuBar, plus has the optional deps for the libraries it uses (Ace2, Dewdrop, Tablet, FubarPlugin).
Now automatically activating FuBar and the libraries is all fine and dandy, the problem then comes from addons that are also dependent on FuBar, such as FuBar_PerformanceFu, or FuBar_SWStats2Fu, which is in turn dependant on SW_Stats.
Currently ACP automatically activates every installed addon that is dependent on something it turns on (either manually or automatically). So if I activate one addon, FuBar_ClockFu, it will then turn on the libraries for ClockFu, will activate FuBar, it's libraries, and every addon dependent on FuBar, which in turn often activate even more libraries or other dependencies. The only way I have found to prevent this is to not have anything I don't want activated installed, which is kinda counter-productive to the whole issue.
Having either the option to turn off this behavior, or simply not having it activate anything that isn't required to run a specific addon would be great.
- Registered User
Member for 13 years, 7 months, and 10 days
Last active Fri, Oct, 4 2013 14:29:53
- 0 Followers
- 30 Total Posts
- 0 Thanks
Nov 13, 2006Or you can try to update the libraries for all addons in one go, even if the addon itself hasn't been updated.Posted in: General AddOns
In the past when I had this issue, it was because the version of a library of one addon was interfering with a load attempt of different version of the same library from another addon. Updating both to the same version, or switching from embedded libraries to optional dependency and loading the library outside of any specific addon should help with this.
Nov 12, 2006_ForgeUser88945 posted a message on ag_UnitFrames - suggestions, requests and temp fixes threadPosted in: Unit FramesQuote from Arcueid »
i updated just a few minutes ago to r16516 and now i get this error upon logging in, which causes most of my other addons to not load either:
I had the same, the problem are inconsistencies within a few of the externals. The libraries of one addon are conflicting with the same libraries, but different versions, of another addon.
Update all the externals (embedded libs) for all your addons, or switch to the seperately loaded optional dependency libraries for all addons, whichever you prefer.
Nov 5, 2006Over the past 10 hours I've been trying to update a few addons from the svn, but it isn't working.Posted in: General Chat
I can update while excluding externals, but I get propfind errors as soon as I try to get the externals as well.
Trying to re-checkout leads to the same, and I'm unable to get the repository listing at all, always with the same error that the latest revision doesn't exist:
- Error: PROPFIND request failed on '/wowace/!svn/bln/16024'
Error: No such revision 16024
- Error * PROPFIND request failed on '/wowace/!svn/bln/16025' No such revision 16025
This has been going on since revision 15977.
I sometimes can get a 1-2 of the externals if I do a cleanup prior to updating, but it still aborts with errors right away.
If there's anything else I could try, I'd be grateful for some hints, but I believe this has something to do with the SVN rather than my system.
Oct 31, 2006I've been having this weird bug with Prat that I didn't have with Confab regarding the ChannelSeperator. I can change officer independantly, and put it into a different chat frame, but for some reason, this setting doesn't stick. I have to redo it after each interface reload/relog.Posted in: General AddOns
Is this just me, or could this be a bug with this system?
Oct 31, 2006Currently I use Viper's PlayerLinkMenu, and I keep going back to that because of one important feature I'd like to see implemented here:Posted in: General AddOns
It allows for a direct clicking of various functions, similar to clickcasting on unitframes. Blizzard implements this itself, but it's very limited.
Say, if I want to do a /who on a player in chat, I can simply alt+leftclick the name to do that. If I want to whisper, I shift-leftclick. Invite? Ctrl-click, etc. Just as the order of the menu, this is configurable.
Currently, PlayerMenu only allows to be either not active, or active but overriding all nameclicks to open the menu. If this could be changed, I might choose to go with this one as well.
Oct 27, 2006Well, at the moment you can add Renew/Rejuv to the Buff Icons, it's what I use myself.Posted in: Unit Frames
Another thing to consider is the fact that come TBC/WoW2.0 preparation patch, HoT spells will no longer overwrite each other, but be independant buffs, each with their own strength and timer. Only HoTs from the same person would overwrite an already running HoT.
An idea would be to implement a small subframe, similar to the current buff icons, but in a different location (overlapping the end of the mana bar?) to display these. This would even be extendable once we hit the change.
*shrug* I personally don't know if it's feasable or not, but it seemed worth to put down here.
Sep 29, 2006I apologize for my misinformation then. I obviously haven't studied the inner workings of ACE embedded libraries enough. I based most of my knowledge off information read on the forums here and the wiki.Posted in: General Chat
Sep 29, 2006Posted in: General ChatQuote from bryanc »
I would like to read more about the embedded design, because I do not understand the implementation fully.
If I understand what I read correctly, then if I ensure that I have the standalone versions of each of these redundant LUA's installed in my AddOns folder, the redundant files are never being loaded ("classic"), and if I don't have the stand alone versions installed, they are all being loaded but then somehow a golden copy is chosen and the rest are garbage collected. (?)
I fully admit that I don't exactly understand yet, so sorry for the remedial post.
The idea behind embedded libraries is to reduce outside library dependancies for addons. The reason is that a lot of people think that using libraries is bad, which it's not, and end up using a lot of addons that use the same (or very similar) piece of code in dozens of addons again and again, thereby increasing memory use.
Libraries reduce that effect by providing a single point of reference for a piece of code that can be reused by many addons. In the end you don't load that same piece of code dozens of times into the memory, but only once.
Embedded libraries now take a stance against people refusing to use outside library dependancies (amongst having other benefits, such as being able to use two different versions of the same library as needed). They put the libraries into subfolders of the addons, and when the game starts the first time, and loads each addon, it sees that addon #1 is using a few libraries, and that addon #3 is using the same libraries. These libraries are designed in such a way that the game will see they're the same and simply discard the second set of libraries. On the first garbage collection of the game (which, depending on how much memory you have allocated to addon use, happens sooner or later all the time) these additionally loaded libraries will get removed from memory, and internally in the game we are down to 1 version of each library loaded.
Yes, this does mean that you have more data stored on your harddrive, but with the size of such these days a few KB here and there are hardly a problem, barely noticable even. Yes, it also means that you will end up having a slightly longer initial loading time of the game upon first start. But no, you are not using any more memory during gameplay if you use 50 addons with the same embedded libraries, than you would with 1 external library and 50 addons depending/linking to that. Only if you had 50 addons of which none were using libraries, you'd end up using a lot more memory.
To answer your other question, no. Even if you set up an external library to load before the embedded you'll end up with the same loading as the game goes through each set of embedded libraries and determines if they have already been preloaded or not. The only way to prevent those embedded libs from loading would be to delete them and change all reference calls from the addons to use the new external library. Be aware that such changes would not necessarily be limited to the .toc file only.
But such an act can also break some addons, as they might require different versions of the same library. Embedded, these can both be loaded up and used simultaneously, externally, only one version can be applied. Unless, same as before, you figure out which addons require different versions and modify them seperately, installing both versions independantly, but then those two libraries will always be loaded up, even if the addon in question gets updated and wouldn't need a different version anymore.
Having embedded libraries opens up a few extra options for their use, and also puts the job of taking care of the libraries into the hand of the addon dev(s).
For the users/consumers the only downsides are having a few duplicate files on your harddrive that hardly matter, and a tiny bit of extra loading time when you start up the game. The benefits are less memory use during gameplay (where it matters), being able to just update a single addon instead of a dozen when a new version of said addon comes out, or being able to believe you're not using libraries if you want to live in denial (although why you'd be looking around the ACE forums if you're one of those is a mystery to me), just to name a few.
- To post a comment, please login or register a new account.