Hello, my YouTube family. Welcome again to another NARC's Viva Life video, when narcissists go crazy. I'm sure you all know what I mean when I say that. Not the good kind of crazy. Not where they're like confessing they're in dying love for you. Or where you're having a party. You're having a great time. It's not so much of that kind of crazy with the narcissist. So in fact you probably already know what I mean. When they go crazy. Of course I'm speaking about their narcissistic rage. We're going to get into this deep tonight. Tonight where I am. Right now at least. But yeah we're going to get deep into it. I'd really just explore the rage of what is going on in their minds. What causes this to happen. So if this sounds good to you. Hit the thumbs up button down below. Show your support. Just get this message out there to those who may need to see it as well. Hit subscribe. Click on notifications. Then you will be notified when I upload a new video or when I go live. And if you would like to book a one-woman coaching session with myself. You can go to my website to book it is NarcSurvivor.co.uk Now we're going to dive deep into this one. It's definitely a hot topic for a lot of people. We just want to understand what is going on. Because I know what it's like. I've experienced this myself. Since childhood. I've seen the rage in many of my family members. And even relationship partners as well. And it is a horrible experience to go through. It really is. But you know what I remember throughout all of these experiences. And I'm sure many of you will relate to this as well. It's really insane how they can rage over the smallest things. They can turn molehills into mountains. And it could be something so trivial, so insignificant. It just doesn't even matter.  They'll turn it into something big. And we go along with it. We agree with it. We look at it like, okay maybe I've done something wrong. And then we feel a lot of shame. We feel bad about ourselves. We feel like we're not good enough. And we need to be better. And that's just it. I've said it before. Pay attention to how you feel when you're dealing with them. I can tell you exactly how you feel when they are raging. That's how they felt. Just before they raged at you. They felt like they're not good enough. They're inadequate. They're no good. They felt shame. As Dr. Ramani has done a video about herself. She calls it the shame rage spiral. So there is no rage without the shame. Where they're extremely self-conscious. They feel bad about themselves. But that's just it. When NASA says they can't be vulnerable. They can't open up. They can't be intimate. They can't connect. They can't do any of that. And they will never be able to do that. If they could do that then it's not a narcissist. Because narcissists can't do it. And they can't do it because of the shame. That they can't deal with. They can't reflect on. And that's why it comes out as rage. I mean a normal person. But just look at yourself when they rage at you. How do you react? I know myself. When my parents would rage at me. A narcissistic relationship partners. Honestly I would just feel like I'm nothing. I would feel like I'm not worth anything. I would feel so bad about myself. And I would just put my head in my hands. And I just want to hide myself away from the world. I just wouldn't want anyone to see me. I just wouldn't want to talk to anyone. Because I'd feel like I'm just not good enough. I can deserve enough contempt. Like I deserve to be treated that way. I don't deserve any love or respect. That's exactly how it felt. And I'm sure many of you have felt that exact same way. And do you know when narcissists see that? When they see you being vulnerable.  They're projecting their shame onto you. They're raging. And then you react to it. You feel bad about yourself.  It disgusts them. It repels them away. But I know myself. If I saw someone like that. Who was hurt.  Maybe after dealing with a narcissist, whatever it may be. I would want nothing more than to love and comfort them. I guess that's what I do on you every day. Because I know a lot of you. Like myself. You may be feeling the shame from dealing with a narcissist. Feeling like you're bad. You're not good enough. You're deserving of contempt. And that's why I make these videos to raise your spirits. And to remind you just how great you are. Because remember they're rage. They're shame. It's got nothing to do with you. It's not your fault that this person hates themselves. And that they can't regulate their own emotions. It's not your fault. It's not your problem. And it's not like you just ignored it. And you didn't try to help them and be there for them. Many of you did. And I know that my own experience is I would always try to comfort the narcissist. I'd want to be there for them when I started to wake up and I could see that they're the ones who are hurt. I'd want to comfort them. But then what do they do? They just push you away. They don't want to be around you then.  Get into your skin.   Then there's no problem. Everything's fine. Because all they really want is that reaction. They want you to respond. They want you to agree to it. That it's you and not them. And this is how you know exactly what you're dealing with. This is how you know. Because a narcissist is going to be like that. But they're so petty. They're so immature. They've got to point the finger. They've got to rage at you to make it like it's you and not them. I could just quite easily say it online video to all of you, to all of the thousands who've got to watch this. I could just say, I've made so many mistakes in my life. I've messed up at times I felt like I'm no good. I'm nothing.  So many times. I've made so many mistakes. But I take accountability. I learn from it. I try to be better. And I'm sure many of you have been through that as well. So many times with a narcissist. Maybe every day in some cases where you're feeling bad about yourself because of how they provoked you. You start looking at yourself, questioning yourself, feeling like you're no good. And then it all starts again. The cycle of abuse is like, all right, I feel bad. I'm no good. What have I got to do different? What have I got to do better? It just goes on and on day after day, week after week, month after month, year after year if you've been with them that long. And no matter how much you change, no matter how much you try to be better, it's like it just doesn't make a difference. There's nothing that you can do to please them. They're unpleasable people. They're never going to be happy with anyone or anything. There's nothing that you can do or say that's going to make it better for them because the problem is not with you. If it was your problem, you would have fixed it a long time ago. But you can't because it's not your problem to fix. It's them. And that's why no matter how many times you look at yourself, you self-reflect, you take the blame, you accept accountability for things you haven't even done wrong. It's not going to change anything because then the next day it's going to be something else. They're going to blame you. They're not going to take accountability. They're just going to pile it on you again. So nothing's ever going to get resolved. And as much as many of you may love and wish long and yearn that the narcissist in your life will be like, just as I said, just as I express myself, that they could be vulnerable, that they could just come out and admit it and be like, I feel like I'm worthless. I feel like I'm no good. I get it. I realize, I accept. I've made so many mistakes. I've hurt you. I've hurt many people before you. Now I want to change. Now I want to be better because I don't want to feel that way again. As much as you may wish that the narcissist in your life could be that way, it's just never going to happen. It's never going to happen because they do not accept themselves so they're never going to accept you. They're only going to try and push and provoke you and change you into something else. Anything other than yourself because they're not themselves. They don't want to be themselves. They can't be vulnerable. A long time ago, they abandoned who they really are and created a false self. This false self is meant to be perfect but then they're hypersensitive to any perceived injury or insults and that's where it all falls apart. It crumbles and then they rage once they feel that shame. This is actually why they want to sensitize you to even the playing field. You notice how they always try to get you hyper-aware of things they say, certain things they do. They might emphasize certain words or they might use indirect conversations with a talk to someone else but it's just a conversation just for you to try and get you to listen to it. All of these things, it's to sensitize you to even the playing field, to make you just as sensitive and hyper-aware as them. And yes, while they may shame you for that that's what they're like. They're always scanning the environment for threats. They're watching everything you do. That's what they're like. And many of you may look at it like why have they got to rage? Why have they got to get mad all the time?  They want to hurt you. I'm sure some of you, when they provoked you and you get mad it's like all you may want is just to be close to them again. You may just want to give them a hug and for them to hug you. I mean that's typically how it is in a normal healthy relationship you want to come back together. You want to end the fight, the argument. And especially before you go to sleep at night you don't want to let it go on until the morning. You want to make up a narcissist. They won't just let it go on until the morning. It will go on for days, even weeks. And they can hold grudges for life because it's not you, it's them. And no matter what you do, it's not going to change anything. They're always going to be that way. They hold grudges. There's all of this resentment. They get mad, they rage. That's because they hate themselves. That's really what it is. And because they don't self-reflect. But we have this awareness that I know I do myself. Like of course sometimes maybe if I want someone to call me someone to text me back and they don't for a moment I may feel a little bit angry or upset and that's normal, that's healthy as long as it doesn't lead to toxic behaviours but then I recognise no, I feel angry or upset because I'm self-conscious because I think I'm not good enough. Now that's why they're not calling or texting me back to see how it works because studies show when we feel offended by a person's words or actions it actually has less to do with that person and far more to do with us and how we feel about ourselves feelings of offence may bring up our shame and that's what we're reacting to and that's what an artist is looking for when they offend or insult you or even when they rage at you they're looking for a reaction out of you to get you to agree to it that it's you and not them or the other one who's not good when instead what you've got to do this is the process that I follow this is how you regulate and how you then heal any traumas that they have inflicted upon you when they do that you go and you take some time to yourself and you accept alright they said this they did this to me and then you ask yourself how do I feel about this and you just accept it the feelings that come along as studies have proven when we feel offended or insulted you accept yeah this doesn't make me feel good about myself forget what they may have done now I feel the shame I feel bad about myself I feel like I'm not good enough and why do we not feel good enough when this has happened the reason why is it's because well if I was worth anything why would I have to endure this why would I have to suffer why would I have to go through these words that I am receiving from this person or the actions that I have to endure why would I have to go through this if I was worth anything and that's really what it is at the core of it all because deep down as I've said before we do have some self love as empaths especially we have self esteem real self esteem where it's like we know we deserve more and I remember times in my life even going back as far as my childhood people did things to me but I didn't like because I believed I was worth more than that and it caused me to feel a lot of shame it caused me to feel bad about myself like I'm not good enough but that's good because that means we do have some self esteem because we're reflecting on it the thing with narcissists is they don't do that they don't look at themselves and feel bad and it's like it's me, I'm no good I need to be better it's not like that at all with them because they don't have healthy self esteem they don't have self love and instead they instantly get mad, they rage and it's not always just this these outbursts or these tantrums sometimes it is passive aggression they do things covertly under the radar just to get under your skin just to hurt you and get you to accept that it's you and not them healthy people don't do that and this is when you know that you're mature you're emotionally healthy but it's like, alright it's me now I need to be better but then that's a problem that we make as well thinking that we need to be better for them don't even try to be better for them you're never going to be good enough because they're not good enough for themselves instead you take that feeling of thinking yes me, I'm not good enough I'm bad and then you take it and try to be better for someone else or you use it to be better for yourself and then you just keep getting better when they do these things, when they get mad when they rage at you they want a response and I know I get it when someone's constantly pushing and provoking you it can turn into a reactive abuse because there's only so much a person can take because they constantly try to get under your skin they're always trying to irritate you because sometimes they want you to lash out at them so then they can point the finger and be like ah, see, it's you so instead what you've got to do is you've got to remain stoic don't react, respond observe, don't absorb but also know that when you do that they may try to ramp up the abuse because what they really want is that reaction out of you and then as soon as they get that they calm down but if you continue to do that over time you remain stoic, you observe you don't absorb you observe, don't absorb then eventually you're not going to be a very good source of supply for them and then they might leave you and go and find someone else because that's what they really want they don't want to be around someone who's calm, cool and collected they don't want to be around someone who's stoic I just like to say, I mean these narcissistic men they're just not really men at all, are they? because as men what are we meant to be an emotional, non-reactive men are meant to be stoic we're meant to be calm and depressed because a long time ago this should be hard-wired in us if we were getting chased by a bear or a lion we couldn't just panic we're meant to remain cool and emotional because when emotions are high intelligence is low so yeah, these narcissistic men they lose their cool so easily they throw tantrums like a two year old child and it's embarrassing when you wear them out in public and they act like that they can really embarrass you if you're at a restaurant or wherever you may be you don't want to be around someone like that but here's the thing as well and I may be unfortunately pointed out I flaw in some of the women who may be watching this and I'm not going to apologize for that because I'm here just to give you the truth and tell you exactly how it is they may not be you but maybe you know someone like this there's a lot of women out there who are drawn to these types of men you're attracted to them these men who are crazy they're not even real men they get mad over any little thing they turn molehills into mountains and you think that's chemistry you think you've got some kind of connection there's no connection there that person's disconnected from themselves and you should not be attracted to that if you are that suggests that maybe you experience something like that in your childhood where maybe your mother or father was that way they blew up over little things they got mad, they raged they were very unstable emotionally and so that's familiar to you and how you feel like you're attracted to that and if that's you you need to take some time away from dating you need to take some time to heal because it's not healthy for you it's not good you get drawn into these types of relationships around these types of men because you believe that that is what you deserve you need to recognize that you deserve better you do deserve a man who can be calm and a pressure a man who is stoic alpha I know an alpha male is not one of those men who's always angry and looks like he's just ready to burst at any moment like a loose cannon that's not an alpha male, that's a beta male unfortunately many movies and media influences they push this fake image of an alpha male when real alpha males are nothing like that if you wanna know what an alpha male is I would say some good examples are Tom Cruise Jason Statham George Clooney watch some of their movies or their interviews see what they're like in real life those are real men men to look up to men that women should be attracted to because gotta think back in the cave men days you really think these men who just blow up over any little thing like any little thing that goes wrong they lose their cool they panic they go crazy, they rage you think somewhere like that could ever survive in that type of environment what do you think they would do if there was a fire an earthquake if something really went down do you think they would be able to remain calm do you think they would be able to soothe you to protect you to keep you safe of course not because they can't even remain calm themselves they're not even safe to be around themselves they're a danger to you and they're a danger to themselves so this is what a real alpha male is it's someone who can remain calm no matter what they go in through no matter the situation or environment but then of course we all have our limits there are times when we can be pushed over the edge but even then in those cases most of the time we're going to look at ourselves we're gonna self reflect and yeah even alpha males they can feel bad about themselves they can feel like they're not good enough that's what pushes them where they strive to do and be better because if you're always blaming everyone else and you're never taking accountability how are you ever going to improve how are you going to develop that strength of character and I really wanted to point this out about narcissistic and toxic men the reason being because from what I've learned from my research and also from what I've seen in my experiences although it's not always the case but most often narcissistic men are the ones who rage overtly the women are more covert more passive aggressive as I said it's not always that way and I have seen women who have raged overtly as well and actually funny enough I've seen far more men who have raged covertly but that may just be because it was around me and if someone rages overtly at me I'm not going to tolerate it it doesn't mean that I'm going to rage back because that doesn't help of course they want to pull you into that wrestling ring that's what they like they're like drama, chaos toxic and dysfunctional environments they love that so what we do instead is we remain stoic and it does remind me of a video I watched recently by Danish Bashir I'm sure some of you watch his channel as well I do love his videos and he spoke about a taxi driver in one of them something where he charged them a bit extra when he got out of the cab and then Danish pointed it out and then he spoke about how the taxi driver's face went red and you could see he was getting really angry I mean this is really how it is when you point out who these narcissists are all you've got to do is just bring the truth bring reality to them and they can't stand it they don't want to live in reality this is why they created a false self not so it can exist in the actual real world so they can pull other people into their false reality because that's where the false self exists and that's why they have to impose these false characters upon you because you can't be yourself in their reality they can't accept you as you are they can't accept that you're better than them you have self-love, you have self-esteem you accept yourself you have a stronger character you self-reflect you've got a true self, they can't accept that in there they've got to put a false character on you yeah, these narcissists will rage they will get mad they will lash out at you but it's because they feel extremely self-conscious they hate themselves and it really reveals just how weak they are because to think back all of the things they did to you if there's anyone who should be raging and losing their minds it's probably you after everything you've had to go through they're the ones when you do something they don't like or you don't do something that they want you to do then they blow up, they lose their minds even if you always did everything they wanted before that and you were always walking on eggshells around them and yeah, look at it the other way around they always do things that we don't want them to do and they never do the things that we want them to do and yet how do we react? we stay calm, we stay stoic we don't rage, we don't get mad at them and that just reveals how much stronger we are than them it just reveals how much better of a person you are and how they're never going to be like you and yet, as I said earlier if you keep your cool, you remain calm, stoic they're just going to get bored of you they're going to get rid of you because then you no longer a potent source of supply they're not attracted to that, that repels them away they like the drama, the chaos the toxic environments the fights that's what attracts them to you that's what pulls them in, they like that when it's like a challenge, a test to gain power and control over you to get you to submit but that just doesn't do it for us for healthy, for functional people what we like is just that calmness, that peace that vulnerability that's what's attractive to us and healthy functional people they will be attracted to that in us that we can remain calm and depressed but when they're doing that around narcissist after a certain amount of time, they're going to get bored are they going to go off and try and find a new source of supply because that just doesn't do it for them they don't want a relationship like that I've seen that myself by family and in relationships when I just grey rocked them I stopped giving them supply they got bored of me, they went and found someone else what else for us what we really get bored of is just the toxic behaviour that never seems to end that's what we don't like and after you've been involved with someone like that it just really makes you crave someone who is more centered someone who can be vulnerable someone who does accept themselves that they're not afraid to show who they are underneath it all of course I'm sure that's what brings many of you to my videos and maybe this is for those of you who are only now watching maybe this is the beginning of your healing journey by finding me and how this content resonates with you because you've dealt with these toxic, chaotic narcissists maybe in the beginning you liked it and you felt drawn to it but now you feel repelled, disgusted by it you just want to get away from it and now you're drawn to my videos you're drawn to someone who wears more stoic someone who's more grounded someone who can be vulnerable and accept themselves so you're on the right track if you enjoy these videos and you enjoy my type of personality that must mean that you are healing because otherwise you just want to go right back into it into the chaos and dysfunction you'd want to be around narcissists again thank you for the donation there, Narcissist Hex I appreciate it those of you who don't know Narcissist Hex he is actually a diagnosed self-aware covert narcissist who is on his healing journey I actually did an interview with him about a couple of months ago so check that out if you haven't seen it yet and also he does have a channel of his own where he is speaking about narcissists and his videos too but yeah this is a good sign for you if you're watching these videos and you resonate with them you feel drawn to this content it must mean that you're on the right track and I say that because I noticed it in my experiences as well when I first found out about these videos on YouTube, these communities I remember there's this YouTuber who I watched a lot and I still watch her videos even today her name is Michelle Neves from Florida and before that I was drawn to more toxic personalities to the fights, to the chaos where I was always trying to go back and make things right to soothe and comfort them and then I became more awake and aware and I found Michelle Neves videos and I really felt quite drawn to her even though she's really the opposite of anyone that I was dealing with before because if you've watched her videos you will know she's very peaceful, very calm very feminine and at the point on it really changed me I mean just being exposed to a peaceful and feminine woman like that it kind of gave me that contrast it showed me the difference between toxic narcissists and someone who is more empathic so I think that's very important as well to have that contrast to see the difference when I created this channel and I started making these videos that's what I wanted to be for a lot of you I wanted to show that difference to you I wanted to show you that not everyone is like these toxic personalities and that other people can be more calm of course that doesn't mean that I'm perfect and that no matter how much someone provokes me I'm never going to react and I never get mad, I never get upset of course not but I can be vulnerable I can self reflect I can talk about my weaknesses, my flaws and of course I'm not just going about my day every day just constantly being vulnerable expressing my emotions, opening up of course not I rarely even do that on you but when there is a time to do that I can I've asked really what it's all about recognising that some people are disconnected from themselves you want them to show up but they're not going to show up because they're not even there it's just a void and this is why it's good to have that contrast to start feeling that attraction towards people who are not just physically present but more emotionally present as well to where they have empathy, they can connect and they can recognise your feelings, wants, needs, desires instead of just their own because that's what it's like with around these narcissists they feel a lot of shame and they rage and yet it's just all about them in any moment it's just all about their feelings their desires, their wants and needs but what about yours? I mean what kind of a relationship is that if it's just all about them and you're just left on your own being neglected they clearly don't care about you because you're left feeling like you're not good enough like you're no good and whether you're a woman or a man no one deserves to feel that way and you've got to think if they really cared about you where are they now? because just as I myself had to do along the beginning of my journey you're coming to these communities, these videos because you're seeking understanding closure and explanation validation and at some point you've got to ask yourself why are you not getting that from them? because they can't give it to you they can't even give it to themselves they're in denial, they've been gaslighting themselves their entire lives and so you're just left to yourself you're left to feel like you're not good enough like you're bad like you're wrong and you've just got to pick yourself back up that's why I get on you every day that's why this is my mission to motivate and inspire you and to remind you of your worth of just how great you are because they're never going to tell you that that's the last thing they want you to know but it's what you need to know and it's what you deserve to know you deserve to know the truth and the truth is that you are more than good enough for anyone just not for them because they're never going to be good enough for themselves but you're good enough for yourself you are good enough for yourself especially before you got involved with them you were doing fine you believed in yourself, you were confident you got around them you didn't feel that way anymore and that's okay, sometimes we get around people maybe we feel a little bit insecure that doesn't mean that it's unhealthy but if they recognise it if they try to comfort us try to make us feel good about ourselves they validate us it's not like that with Narcissus they sense any insecurities or they create insecurities because they want you to be insecure so that they can control you but that's just there, I mean how can you be around someone who feels insecure and feel good about yourself especially by knowing that you caused that because if you love yourself and you have high self-esteem you're going to want that for everyone else that's why when you notice their insecurities and you see them rage, they get mad you're always walking on eggshells you're not just going around pointing it out you're not always bringing it to them you were walking on eggshells for a very long time because you didn't want them to know what you were really thinking about them that you didn't like it, that you thought they were crazy you thought they were bad, you didn't want them to know that because that's what it's like when you have that self-love high self-esteem you don't want to make people feel bad about themselves but of course I know, I may have said before when you love someone you want to confront them you want to tell them if they're doing something wrong and yeah, that's what love is but you know as well as I do, you can't do that around them it's just gonna get worse, they'll rage even more they'll blow up over any little thing they can't be told of anything they're doing wrong the last thing they want is to see themselves they can't look at themselves you bring that to them, you bring the truth, reality they're gonna push that away and then they're gonna lash out at you but as for us because we love ourselves, we have high self-esteem if someone brings ourselves to us we're okay with that especially if it's something good about ourselves yeah, that makes us happy but even if it's something bad I've done some things wrong in the past I've made mistakes and I remember some people from my past who I haven't seen them for quite a long time because I've been travelling but I remember they confronted me on some things and even now when I look back back then I was much younger and even at that time I just maybe have a lot of respect for them it made me value them that much more it really did even though, yeah, I will admit at the time it got me it made me feel a little bit bad about myself it made me feel like I've been upset, I've offended a person who I look up to someone who I respect so of course I want to be better for that person but I accept it and I don't get mad at them because I know they're not bringing those things to me to provoke me or to upset me to make me dislike myself they're doing it out of love because they want me to be better they want me to improve and we really need more people like that around us and we also need people around us who we can be that way around as well people who where you're not afraid to go to them and tell them look, you did this this didn't make me feel good this hurt me, this upset me this nearly ruined our relationship of course that's exactly how it is with us you can't go to them and tell them anything you can't confront them on anything about themselves they want to accept it because they don't accept themselves it's not like something where you say you've got to prove of something they did and then they feel bad about it and they want to do better they want to change it's never like that with them with these narcissists you get around them and you bring up anything you don't like about them or something that they did instantly they're going to rage at you they're going to blame you they're going to project their emotions onto you and make you feel bad make you feel like you did something wrong or in some cases if they're more covert they may hold on to it for a little while act like nothing's wrong and then they'll be passive aggressive they'll do things behind your back talk about you to other people start a media campaigns give you the silent treatment this is just what they're like and it's really sad that there's people like this in this world people who just can't even communicate with them normally because they're so insecure they just don't accept themselves at all it's like you can't be real with a lot of people these days you can't just tell it how it is without them getting butt hurt without them getting their panties in a twist it's sad that people are just so weak these days really they're just so easily offended and I can tell you the amount of insults I get on here every day I mean you all see it in the live chat every time I make a live video they say so many things but you know what narcissistic people are like controls they'll just say and do whatever they think is going to hurt you the most this is what they're like with us always trying to irritate and upset us and we still stay calm look at them anything sets them off and then they go out on this mission this campaign where it's like alright I've got to figure out all of the different ways to push their buttons to make them react to make them hyper sensitive, hyper aware to make them really hurt to make them really insecure about themselves so then we're on an even playing field and they're just like me I mean that is really sad that is pathetic that there's people out there who do stuff like that but this is exactly how it is and then many of you you leave the relationship you're so paranoid and distrustful it's like you then get provoked so easily it's different with us because we don't just start raising it everyone we just begin to feel really insecure then because we've been around them that's how it is if you're around someone who's secure in themselves and they have a strong identity then you're going to feel that way about yourself as well you're going to feel confident in yourself the problem is we get around these narcissists they're very insecure they lack a core sense of self so you get around them you don't even know who you are you lose confidence in yourself but then you get around me and watch my videos how do you feel at the end of it because I display confidence I display strength in my videos a strong identity, a strong sense of self I've been doing these videos now for five and a half years it's consistent it's a brand, it's something you can rely on it's like when you go to McDonald's I mean it may not be the healthiest food but with McDonald's when you go there you know what you're going to get you can go to McDonald's pretty much anywhere in the world you already know what the restaurant's going to look like on the outside, on the inside when you sit down and you have a meal it's reliable, it's dependable, it's consistent it's a brand just like with my brand, Narc Survivor making these videos now for five and a half years you get on here, you know what you're going to get although I'd like to think that my work is far more healthy than eating out at McDonald's but yeah I'd like to think that after you watch my videos you do feel more confident, more secure in yourself you feel validated after what you went through you feel inspired, motivated because that's how it was for me many years ago when I just left an artistic relationship I found Sam Vaknin, Michelle Neves many other YouTubers as well and they gave me that sense of confidence in myself they made me feel more secure but their videos were very comforting very consistent every time I clicked onto their videos I already knew a type of energy and the validation that I was going to get and not every video is validated I mean sometimes we have to take responsibility for things as well but either way is just you click onto the video and you know they're going to tell it like it is you're going to get the truth instead of always getting the denial from Narcissus the lies, the excuses at the end of it we just begin to crave the truth we just want normality thanks for the donation there, optimal score I appreciate it but yeah we just want normality that's what I'm bringing to you in every video that I put out just something that's finally normal something that finally makes sense because I know there's so much confusion so much gaslighting spins your head around in circles and it's like by the end of it you don't even know where you are you don't even know what time it is so I hope I'm bringing you that sense of comfort that sense of predictability because with the Narcissus it's like you never know where you're going to end up you never even know where you stand so that's what I'm going to be and that's what I'm going to bring to you in every video and if that resonates with you if that's what you're looking for to be comforted and sued, validated you're looking for that predictability things that make sense and being emotionally grounded, stoicism remaining calm if you're craving these types of things you know you're on the right track that's when you know you're beginning to heal when you feel repelled by these toxic and abusive Narcissus but yeah, that's my message for today speaking about why Narcissus go crazy the Narcissist rage I'd just like to thank you all for joining me on another Narcissive Alive video please hit the thumbs up button down below helps the YouTube algorithm and get this message out there to other potential viewers hit subscribe, click on notifications to be notified when I upload a new video and let me know your thoughts in the comment section I read your comments every day if you would like to donate you can leave a super chat, a live chat a super thanks in the comment section or you can go to my paypal at his paypal.me thanks for the donation again Narcissistx if you would like to book a one-on-one coaching session with me just go to my website it is Narcsurviver.co.uk I don't forget you can follow me on Instagram it's NarcSurviver YouTube I have new pictures and videos of my travels which I upload every day to my stories on there thanks again for joining me on another NarcSurviver live video I appreciate all of you and I look forward to speaking with you in another live video very soon


Hi everybody, it's Sam here. I just wanted to quickly do a video showing you how to make envelopes without using an envelope punchboard or any of those devices to do them for you. You can do them by hand. I get asked this a lot. I have briefly showed it before during live videos or just doing other demos for other companies but I thought I would have a video here and I'll also talk about my bouncy envelopes, which lots of you hear me mention as well and I'll just show you what that means. This is the paper that I tend to buy when I make for making envelopes. So this is a paper, it's 12x12, it's by Dovecraft, you get 48 sheets, lots of colors so it's nice to be able to match them to the card that you've made. It's 120gsm which is a really nice weight to make your envelopes. So I've got these two cards here. This one actually I'm not going to be giving to anybody but I just thought it's a good example because this is a 5x7, this is a 6x6 but the way that you do it works, it doesn't matter what size card you have. So once you see how to do it is very easy and I'm sure you'll be able to adapt it to your card sizes but I thought I'd just use these two here just to use as examples. So I'm just going to select my paper for each of these. So first I'll do the 5x7. So you want to work out the size of the paper that you need to cut first to fit your card and in order to do that whatever size card you have you want to just measure from the point to point. So bottom left to top right or vice versa, it could be top left down to bottom right but as long as you go across on the diagonal and measure in inches or in centimetres it's entirely up to you. So mine here is, it's telling me this 5x7 across here is 8 and 5 eighths of an inch. Now you then want to add another inch onto that.  So whatever your measurement here, so if I do this in centimetres, so it's telling me it's 22 so I would then add on 2 and a half. If you would want to cut a piece of paper to 24 and a half by 24 and a half and in inches I'm going to cut my paper to 9 and 5 eighths by 9 and 5 eighths. Okay so I'll just cut that down to size and then I'm just going to flip it over because I want the colour on the outside and I'm going to bring my card back in as you have it in a diamond shape like so and you now want to just sit this card in the middle making sure you can use a ruler if you want but you want to roughly get the same kind of gap here. Yeah it's about right. Remember this is homemade doing it this way or handmade doing it this way so don't worry if it's a little bit out but I'm pretty happy with that. I think that's kind of good. And then you want to start bringing up each side so firstly I'm going to bring up the bottom and I'm just going to bring it up. Now this is what I would call making a bouncy envelope as well is that I'm folding it up around the card. Now I make bouncy envelopes when I've got dimension on the cards which I deal on this one it just means that you are making this envelope to fit around the dimension of the card and then when you take the card out it's got a bouncy feel to it that's all it is. So I'm just going to roughly fold that over and then I'm going to burnish it just move the card away so you don't squash your card.  If it's just a flat card then just you know push down straight away really but I'm just going to go a bit careful and then I'm going to pop that back in there again so now we can see we've got the bottom and the top of the envelope and then if you pop it on its side you're then going to just I like to just kind of push with my nail up to the card there and then bring up this one over and again just lightly kind of push that in place I'm going to do this opposite side at the same time so just kind of you're just starting off the fold really by pushing those sides in and just bring that over and don't pull it right up to the card do you give it a little bit of room I can see now roughly where those need to be so I can take this all out fold that back in and just burnish that one now when you open it up you'll have these little triangles in each corner you can snip these away really easily just cut down like so and like so and then if you want to round that off just to tidy it off you can do just like so so I'm just going to do that on each of the corners okay so now you can see that envelope shape coming together next I'm going to fold the side pieces back in and when you lay this down you can kind of see underneath how much space you've got to be able to add some adhesive so I'm just going to grab my double-sided tape here and hug the outer side of that piece this is about half an inch it's just over a centimetre and then I'm just going to take the backing off and again to get that bouncy envelope put the card back in now this is only if you've got dimension remember and bring it around and then close it just make sure you clip the bottom in there and then when you take it out there's that bounce it just means the card is going to fit really nicely in that envelope if you don't want to make a box envelope I do have them on the channel and I'll link them in this tutorial and I do also have the tutorial to make envelopes using punchboards as well if you do want to use that but now what you need to do is agitate there and that is all ready to go you can see there you've got a really nice five by seven envelope but remember you can make it any size just following that process so I'm going to do it one more time with the six by six though again with the six by six one I'm going to measure from the bottom left up to the top so let's do it this side so I've got the butterflies there so it's eight and a half bang on so I'm going to cut a piece of nine and a half remember to add that extra inch and if it's centimetres you want to add two and a half centimetres so this is coming in at 21 and a half so you would want to cut your piece of paper to 24 by 24 centimetres and again if it's inches it's going to be nine and a half by nine and a half again I'm just going to flip that piece over bring my card in and you want to just make sure you get that equal kind of gap here make sure the card's nice and straight I think I need to come down that way a little bit there we go and this has got dimension in it if I if you haven't seen this card this is the inside of this one it's absolutely beautiful so it does have a bit of dimension on that right hand side so again just going to get that lined up and then I'm going to bring this one up roughly crease it move the card away and then you can just really enforce those creases again with that one pop it back in pushing the sides there and again with that one I can take that all out crease those ones a bit better like so and you'll see here actually this is a good example so don't worry if you do go off can you see my triangles on the bottom here are much bigger than the ones up here but it's still all going to close so just as long as you do have those little triangle pieces on each corner it's going to be fine so again I'm just going to remove those and then again just grab your tape check that you've gotten you know that the piece that you're bringing up from the bottom is going to cover your tape so you might want to use a thinner tape take the backing off and again I'm going to place my card inside the envelope kind of tack the middle there down it's got that room for the card so it's not squashing anything and then just bring up the sides again you can take that out really easily it's got the bounce so it's going to be able to fit the dimension of that card and then you just need to pop your tape on the top and that is all ready for you to post so that's just two examples using a five by seven and a six by six card like I said you can make this for any size cards that you have just follow that process and just remember to add either one inch or two and a half centimeters and you're good to go so I hope you found this informative for those that wanted this video and I'll be back in very soon with more tutorials bye


Hi, thanks for joining our presentation today. It will be about a new feature that we have added to the GNUTL chain. The name is CTF, which stands for compact type format, C type format, and it is actually debugging information format, if you're familiar with what those are, like dwarf, stabs, cough, and we have two presenters. I mean, I'm just doing the introduction and Nick Alcock, which is actually the main engineer on this work, will actually explain you all the details. This talk is kind of a follow-up, as you see from the title, Progress Report. It's a follow-up from a talk that I did in 2019 last year at OSS Europe in Lyon about how we had started this work and what had been contributed upstream at that point. So this is a perfect time and a perfect opportunity to show you guys what else has been done to introduce this new feature in the GNUTL chain to support this compact type of debugging information. So I will leave it here to Nick to continue, and we'll see you for the Q&A at the end. Thank you very much. Nick, you can go. Okay. So the contents are fairly obvious. I basically planned to dive straight into the file format and give it an overview of it because that's the key here for the file format is what it is that makes this thing worth using. There is a library which can be used to access the file format, so you don't need to do all the work yourself. I'll go into that a bit and describe the new functionality we've had even last year, which is getting on. By the time this presentation actually airs, I hope we will have everything in place for it to be completely usable for everybody. The last pieces are going in now. What is this? It's a model of the C type system or of a single scope of the C type system. If you think of a single translation unit, CTF can record the types of, for example, all global variables or all global types appearing in a single translation unit. It does not have scopes. It is a single global scope of some C file. It can also map anything in the old symbol table or any function, any global data object to a type and all the types that relate to that type and so on and so forth. It's generated by GCC with one extra, you pass one flag and it spits it out. Linker duplicates it whenever it's present and emits a generally much smaller CTS section in the output. And GDB can use it or once the patch is upstream, it will be able to use it to look up types and so on and so forth. Obdump and Redelf can dump it as well. It is small. Dwarf is known for being rather large. This is about 5% of the size and sometimes smaller. It will get smaller as well because we haven't actually focused on size reductions yet. All the types are duplicated so the output is often much smaller than the input. The spec is here and there's a link to the API at the end of the slide. And also there are all these links are also in the references at the end. Here's an example of a size user using important programs. All the sizes here are size of the CTS section alone. The largest single input O size is actually the size of the CTS section in the O file, which had the largest CTS section in it. You can see the input we don't really bother to do duplicating very much. The priority is getting the compiler to output it fast. So 50 meg on the input turns into 50k on the output, which is not bad and adds half a second to the link time, which is much less time than it would add if you were emitting Dwarf, because Dwarf is so voluminous. Emacs is an interesting case because it's got a whole bunch of types with the same name and different definitions scattered throughout itself. We can handle that. Now the compress size is a bit bigger, but not much. The time is noticeably larger because it's got lots of translation units and at the moment the link is not to be fitted. Usage, I've really already gone through this. You compile with minus GT. It spits stuff out. The patch to cause the compiler to omit CTF is not upstream yet. It needs to be reworked. It is being reworked. It will quite possibly be reworked by the time this presentation is. Here's hoping. LD picks all of these CTFs up, de-duplicates it and omits one in the output. In theory this should work for everything, not just ELF, but this requires a bit more work in LD at the moment. At the moment it works in ELF and that's enough for now. In theory it could work with everything. I do want it to work with PE so that Windows programs could benefit, because why not if it's not much work? GDB can use it, or again the patch isn't upstream, but it will be upstream fairly soon. We really think we can upstream it until the compiler is upstream. LD and GDB use the same library to do all the CTF work. There's only a few lines of code outside that library and either of them are a few hundred lines in GDB's case. The compiler doesn't use that library. I think the garbage collector in GCC gets in the way or something like that. It was easier not to use it. You might as well dive into the file format. I just need to drag this window out of the way. Sorry. It might as well dive into the file format. It's described in the CTFH header that Binyu Tools installs. It's pretty simple.  It's an annoying name, but the CTF is itself a section inside an ELF object. We might rename CTF sections to something else simply to make it this confusing, but for now, sections they are. They are changeable. We always guarantee that we can read old format, but we might bump the file format version occasionally to increase compactness or add support for new languages or something like that because this may not always be C only. The version is three at the moment. We can still read two and one. One is basically the same CTF Hilaris use, but not quite. I do plan to add support for that for reading those. V4 is being planned. All planning for V4 will be included in boxes like this one. I'm going to have hints about what that is throughout the talk. There are flags in the header. There's only one flag at the moment. It says this is compressed with Zlib. We can press big enough CTF sections with Zlib. Small ones does not really any benefit. Virtually everything you'll ever see is compressed. We in fact optimise our files. The file format is optimised for best compression. We only add things if we think they will compress well. What are the sections? We may as well go through these in order, ignoring the unused ones. The first two are the data objects and function info sections. These put together have one entry for every symbol in the L, every object and function symbol in the L symbol table. Each of them is simply a type index, a type ID in the type section. It used to be much more complicated, but we simplified it recently. This means that given a symbol number, you can immediately ask CTF, what is the type of this variable? What is the type signature of this function and get it back, and then you can wander around the structures in the function or whatever. Before the linker runs, I can probably go into this later, but before the linker runs, we don't know the order of the symbols and we don't even know which symbols will exist in the output. We need to be able to communicate between the compiler and the linker. For that, we have an index section for both of the data objects and function info sections, which you can use to say, rather than working in symbol table order, use the index section to assign a name to each of these symbols, and then you can just look up a symbol by name. In practice, you'll probably very rarely see this outside after linking has happened. The libctf API completely abstracts this all the way, so you never need to pay attention to it. But the option is there. There is also a variable info section. This will probably go away before being replaced with a data object section, which simply lets you say, I've got all these data objects which don't have symbols. I want to know what types they are. Most people aren't going to want this. You need your own symbol resolver because all you've got is a name and a type. What looks up the name? With no symbol table entry, you wouldn't have an address or anything. It is sometimes useful for things like kernels and things that have their own symbol resolver. It's not limited by default. You need to pass in a special slag to the link of CDF variables to turn it on. But the option is there. Then there's a type section which records all the types in a long array. And then the string table. The string table is shared with the L string table. Any strings which exist in the L string table are eliminated from the one in the CDF file in the CDF file of the same space. References to string in the rest of the CDF file can refer to either the L string table or this one. We sought it because that pushes compression efficiency up a bit. We tried clever tricks. They didn't actually take space after you compressed. Modern compressors are very clever. So what does the type section look like? This is the most important section in the file, obviously. In the dictionary, I should say. It's just an array. The length of each array entry is variable and includes its own length. It includes its own length, but does not include any kind of identifier for each type. When you open the file, you have to walk through the array and associate an offset with each array entry element. So you can tell which type is which. They refer to each other by these IDs. So the types are important. The IDs are important, but they are not recorded in the file. This is simply because if you recorded the ID with every entry, every ID would be its own symbol to the compressor, and it significantly increases the size of the file after compression to have entries be self-describing. So we intentionally avoid it. This is a significant difference from Dwarf, but it also has great links to self-describe everything. The type essentially is very simple. Each entry looks roughly like this. It's got the name of the type. If there is one, zero, if it isn't. An info which describes what sort of thing the type is and either a size of the type or some other type this type refers to. You can't do both at once. You can use one structure to use the other if you see. The info word is crucial. It's got three entries in it at the moment. This is probably going to change in before. The kind of thing is it meant to be or is it a pointer, or is it a struct? These all have different representations inside CDF. Is it visible to users? Some types aren't. Sometimes you can't look up a type by name. It's very rare, but it can happen.  And VLIN is the remaining links of this entry, the distance to the next array element. It's not the size of the type. It's the size of the description of the type. V4 will probably add a more compact representation of the small types and types that refer to types early in the type graph like each because there are very many often. This is followed by variable links. There might be none pointers. There might be little fixed size structures arrays just have a thing saying we are this length. The array is this length. Its elements are of this type. And then there are things that have an actually variable amount of variable.  VLIN is the number of members and for unions. VLIN is the number of enumerations, that sort of thing. Huge structures actually get a different type of array member because you can have structures with enormous offsets, pain gigabytes or something. You don't want to waste space encoding enormous offsets. So we have a separate source structure to encode array elements. To encode structure members if the structure is vast. This is actually true of the type section as well. If the type is more than 32 bits, type size is more than 32 bits can't record it. We stick another couple of elements on the end to give a 64 bit value. There's no point wasting space in much types of that. So we overlaid them on each other. VLIN will probably add another sort of array member for small structures less than 255 bytes because most structures are small. So we can save a bit of space. It will probably also have a place you can record a prefix. For example, if you look at the CTFS type, all the structure members start with the same name, start with the same prefix. This is very common in C for a ridiculous historical reason. So we should probably exploit this. The trick about doing things this way is that if we have no constant prefix, we just don't fill in the constant prefix member and another space taken by the compressor to record this is zero bytes, so it compresses well. Compressing no bytes always works. There are a few unusual sorts of types which don't actually appear in C, but do appear in CTFS, a distinction between the storage format on disk and what users see when they want to see what a type system is like. This isn't hidden very well by the API at the moment. When you're creating things, you want to see them. When you're looking them up, you don't. So we will probably improve this in the future, compatibly. At the moment, we only have slices. You can say the finished slices of this integer is three bits wide and starts at bit seven. It's used for bit fields and nothing else. V4 may add structures, if they turn out to work, which would let you say this structure looks like that structure over there, but it doesn't have these members. It's got these members instead. You can delete a few members from it and add a few. This would probably save spaces if you have translation units with a lot of similar structures in them and so on and so forth. At the moment, I'm stymied by not being entirely sure how to figure out when to use deltas, but I'm going to try to add them and see if it works. A couple of examples. This is using C99. It doesn't really get initialized in syntax. If you're not familiar with it, this is just a structure member name after a dot. This is roughly what an integer looks like. The name would be the offset of the stream inch in the Stratab. The info would have a kind of integer and it is root visibles. You can look up and get this type back and it has no variable length data. The type is four bytes long. The variable length data, it so happens, is also always four bytes long for an integer. That's got nothing to do with CTT size. It simply says in this case, the integer is a signed integer. Oscars and bits will almost always be zero. We're probably going to endominate them in format V4. A more complicated example, a structure member or a structure with two members. Much as before, the CTT name would be the offset of foo in the string table or in the elf string table. I think we're going to do the string tables later. The high bit of the string table offset is one. If you want to look it up in the elf string table and zero if you want to look it up in the CTX. The VLAN is a bit different for structures. It's a number of field and structure members. The size is the size of structure too. The difference here is quite obvious. The size is the size of the type. VLAN is the size of the description of the type in the CDF. In this case, the variable length data is two instances of struct CDF member V2 giving a name. The offset in bits, not bytes, this provides another way to encode bit fields, the recommended way in fact. And the type, which is a reference to a type ID, which is an array offset in the types section. So the types change in each other and you can chase them down. You can have more than one picked at once, but this is a single gigantic C scope. This is sometimes not enough. For debugger uses, you often want to pile as many types as you can together. So the users can cast from one thing to another without worrying about where they're visible from the translation unit they're looking in at the moment. But not always. Sometimes you might have the same type of the same name, but completely different definitions Emacs, given as an example earlier, has lots of these in this page in particular. CDF Dicks don't support these, but Dicks can chain to other Dicks as parents. It's a two-level tree. And child Dicks can refer to types in their parents. There is an archive format, which groups lots of CDF Dicks used together into named groups. It's not exactly ideal, but this is, at the moment, what the linker emits into the CDF section if it finds ambiguous types and needs to emit more than one. In future, we will change this to keep the same API so that libcdf users don't need to touch things, don't need to change. Because the problem with doing things this way is they all have their own string tables and they all have their own single tables and they're not duplicated together. It works okay, like the archive format, speaking as a person who came up with it, and we're going to change this to something else, compatibly. The easiest way to use all this stuff is via the CDF. It's part of Binyutils. It's shipped whenever you've got Binyutils. You might need Binyutils to develop instead. The API is grouped into a group with a few big chunks. You can add, you can create dictionaries via CDF add. If you're familiar with the old Solaris libcdf, this was a very bad API in Solaris. It got exponentially slower the more you added. You can add millions of entries and it's just the start setting a few. There's a CDF link which lets you take simple dictionaries, add them into a bigger one and then write the bigger one out. LD uses this to link sticks together. It duplicates them as well, although you need Binyutils master for that. You can call CDF many of these things only work on newly created dictionaries which are writable. You can't modify dictionaries which have been written out once you read them in. But what you can do is you can query them with CDF type which lets you wander around chase types to other types and so on and so forth. Then a lot of improvements in this area which I'll go into later. You can open and close dictionaries and you can open those whole health objects and it will look up the CDF section for you. There are a few functions to do with CDF archives and there are iterators that you work over all types in a dictionary all members in a structure all enumerators enumeration members in an enumerator that sort of thing. The API in any released versions of Binyutils you plan to change it if there are going to be some renaming to make things clearer old code will still compile old code will still work some of the names are terrible CDF ARC open by name CDF DICT open is a much better name it opens a dictionary but the old names will always work. What have we done in the last year? The linker has turned from a fairly terrible non deduplicating linker that didn't try to enumerate types into a linker to deduplicate types that does deduplicate types which is something Dorf never quite got working it has changed type definitions together to distinguish them from each other and mixes in types they refer to types of the same definition always end up with the same hash no matter what translation unit they're in and get emitted once will also end up in a shared dictionary unless they're ambiguous in which case they go into a child most types end up in the parents nearly all the time and we can deal with cycles and so on and so forth there is a link at the end of this talk to another talk which goes into great detail more detail than you could possibly ever want we don't track what translation unit comes from where what type comes from what translation unit because that costs space and most types are visible in most translation units in practice the debugging users don't care they just want to be able to see the types and use them we track them only if they can flip if a type is ambiguous it will end up in child dicts named after the translation unit and then you'll only see them if you look in that translation unit there are actually a couple of alternative ways to distribute types the common one is that all types which are not ambiguous go into a single shared repository here you see struct bar and struct quigs struct bar and int quigs particularly int quigs only appears in one translation unit but it still gets moved into the shared dictionary variable this is in fact a bad example but variables are also the case in a variable or should probably be used a bunch of structs because they actually type some of it or type this but if int quigs were a type of it then there is an alternative where every type that appears in only one translation unit goes into its own dictionary this is probably mostly not useful but if you have a program in which translation units think we use massive types they use nowhere else this might save time when you're opening the dictionary and avoid bringing massive numbers of useless types in the scope when you're trying to look things up if you're using this you probably don't want to use the normal linking there are some extra features I'm not going into which let group type group translation units together so they're not one per TU but this is obscure and I don't expect most people to use it it's only for enormous projects really other new things we have there has long been a way to iterate over things even the salire implementation had this you could call something to iterate over structure members and it would call a function for you with every member one at a time this is when I came to write the ggplating linker which used this a lot it was incredibly clumsy because it meant that you had to introduce a new function call a new function was called for every structure member all the new these needed new variables you needed to pass arguments down if you wanted to with special structures if you wanted to share a variable it was so clunky so I came up with a new sort of iterator modelled on typing generators and things like that and frankly modelled on c4 loops which return a new value on every call so for structure members you call it repeatedly and you get a bunch of names back for structure members and structure member assets it's much much easier to use I have an example in theory but I'm not sure I know how to have a screen sharing works my switchwinders there's all one of the uses for this is an error warning stream if you call CTF error warning next when you get an error out of live CTF it will hand you back a stream of human readable error messages translated into an appropriate language if the translation is available not everything has human readable errors and warnings yet it's mostly there for the ninker at the moment because when there are problems you want to know what simple cause them and that sort of thing assertion failure is also going there we will never crash your program unless possibly if we're very unlucky and you run out of memory we prefer to return the ECDF internal error and spit assertion failure into the error and warning stream we don't want the linker to crash because of a problem in the debugging format new functionality which is so new that it hasn't been debugged or pushed yet but hopefully will be debugged and pushed by the time this presentation goes live the function for when data objects mentioned earlier will get emitted the format is changing but I'm not bumping the version number because while the compiler tried to omit the old form it actually got it wrong so no existing version of libctf could read it which is convenient because it means we can be certain that that old format is completely unused and can change it freely without bumping the format version there are a few new API functions to look up types of symbols iterate over all symbols you can say given the CTF archive tell me which dictionary inside the archive has the symbol has the title of this symbol and it can give me the type back and there are functions to add symbols to dictionaries as well because how else would we create them CTF lookup by symbols is changed if you're used to it in the nearest world you can only call it on data objects now you can call it on nfn you can call it on a function you get a function point of type back all functions would expect all functions in the program get added to the type section or all public and visible functions get added to the type section as CTF case function types because there are visible types in the program every function can be used as a function point and so we should add it to the type this is very different from older implementations it hasn't been debugged yet it still crashes it won't crash by the time it's pushed what are we doing in the future there have been a number I mentioned earlier in the talk a lot of changes in format v4 from practice improvements there are other improvements coming GnuC can encode some things that we can't represent in v3 mostly type and function attributes but not entirely we can't represent enumerators with more than 3 billion 4 billion enumerands for example not terribly likely but they could happen so you should be able to encode them we plan to improve compression if it were micro trails in MA compressing everything my only question there is what happens if LZMA is not a required part of binutils unlike Zedlib what happens if a user who builds binutils doesn't have LZMA we would then have a CTF solution they couldn't read and certainly sure what you do in that situation it has to be thought about we're going to add limited space to the CTF to CTF dictionaries and not that you can divide the file into a dictionary into namespaces iterate over the namespaces and look things up in a specific namespace this means we can drop CTF archives for their use in third L file and just have one CTF dict which refers to every translation unit sharing the simple table sharing the string table it would be a significant compact improvement but still appear to be CTF arch blah blah blah but the internal representation would change we want to add a backtrace section this has been a goal from the start which would let us describe where parameters where parameters are stored without needing an entire virtual machine to evaluate Dwarf expression location lists like Dwarf the idea is we hope to be able to represent 99% the simple 99% of the function calls while not leading enormously complicated readers and it would obviously refer to types by CTF type ID and pointing type section like everything else in CTF we're still designing it pretty sure it can be done it should again be more compact than Dwarf but most of the compactness improvements will probably come from using the CTF type section in the first place and the final thing we want to do is use it in more things it can be used in GB we want to add support to it for it to for it to power and the various other Dwarfs tools but we can do more than that if libraries gain.ctf section which is easy you just compile them with minus GT this section appears in the output shared object you could use this section to automatically generate header files we can't yet generate cco from CTF but it's perfectly doable you need format v4 for this because we need to be able to represent parameter names but that's all we might be able to have LD or LDSO exploit the sections to detect ABI problems this would need to change improvements to the CTF so it didn't malloc so freely but it's perfectly doable and it seems like the sort of thing which would be useful because we could spot not just that this simple has changed version but that this symbol refers to this type deep deep down inside the structure which is inside the structure member which is different from the other one because of the DGB this is actually really fast you can rely on the fact that types have the same ID if they have the same type and different IDs if they are different types they are one integer once we have a backtrace section we need to teach GGB how to use it it's probably valgrind as well other things that want to print backtraces fast and as a completely blue sky idea we might even be able to there are already built-ins in GCC typos and so on which query things about types and C programs they're pretty restricted you should be able to get more into about types and C programs like you can in other modern languages that support introspection once you've got that why can't it use CTS to query to ask about types in other translation and in other libraries it's a bit blue sky it requires fairly significant changes but I didn't see why it's not impossible there's a link to an LWN article with even madder ideas I encourage people to come up with more ideas what could you do if C is completely introspectable and you are completely free to look up and edit at any time also of course one last thing we want to add is other languages the first question we were asked is what about C++ what about C++ oh god it's a nightmare but it seems possible probably most of the file format would have to change and we were a C++ version of the CTS type session but why not but that's for the future for now this is what we've done any questions?