at the end of his statement, and so there should be no interventions or interruptions. On 6 October, the Supreme Court gave its judgment on the European Charter for Local Self-Government in Cooperation Scotland Bill and the United Nations Convention on the Rights of the Child in Cooperation Scotland Bill. When I updated Parliament that day, I explained that comprehending the implications of the judgment would require careful consideration. I also committed to keeping Parliament updated as and when I could. Since the Supreme Court's judgment, I have made clear that I remain committed to the incorporation of the UNCRC to the fullest extent possible and that to allow incorporation of the UNCRC as soon as practicable, our preference is to address the Supreme Court's judgment by returning the UNCRC Bill to Parliament via the reconsideration stage. I reassured Parliament that even though the European Charter for Local Self-Government Bill was a member's bill, the Scottish Government remained committed to supporting the bill and to work closely with Mark Ruskell as the designated member-in-charge to support him in taking forward the next steps. I have also been open about my attempts since receiving the judgment to engage with the Secretary of State for Scotland to explore potential routes to increasing the infectiveness of incorporation of the UNCRC. Regrettably, the Secretary of State has made it clear that he is unwilling to address the issues with the devolution settlement that have impacted on our ability to do that. Members will be aware that the Supreme Court judgment had implications in terms of the application of the UNCRC to United Kingdom legislation that predates devolution but is now within the legislative competence of the Scottish Parliament, for example, the Education Scotland Act 1980. Although that is legislation that relates to our own children, our own schools and our own country, it is Westminster legislation, so we cannot, following the Supreme Court judgment, apply the UNCRC to it. That is the ludicrous constitutional position that Scotland finds itself in. Our approach to the United Kingdom Government also included steps that could be taken to ensure that all legislation on devolved matters is brought efficiently within the scope of the UNCRC bill without altering the devolution settlement. The Secretary of State has now made it clear that he is unwilling to explore even standard Scotland Act order options that are within the current devolution settlement. Members will form their own views, but I cannot see how that is consistent with the Secretary of State's comments in the House of Commons in October, where he committed, and I quote, to engage constructively with the Scottish Government to ensure relevant issues that may arise are addressed at the earliest possible stage. The United Kingdom Government has refused to countenance expanding the devolution settlement to allow for full incorporation of the UNCRC into Scots law. It has also refused to take steps to support incorporation of the UNCRC into areas that are wholly devolved. At every stage of the process, it has acted as a barrier to this Parliament legislating to protect the rights of children in Scotland. Having exhausted those pragmatic options with the UK Government, I am now in a position to update Parliament on what we consider is necessary to fix the bills. I am grateful to the minister and the minister for making time to have this statement today. When the UNCRC bill was unanimously passed in March 2021, Parliament came together to make a significant statement of intent on who we are and what we collectively seek to achieve as parliamentarians for the people of Scotland. That was a landmark moment in the Scottish Parliament's history. The intent behind the bill is to deliver a proactive culture of everyday accountability for children's rights across public services in Scotland. As passed, the bill would require all Scotland's public authorities to take proactive steps to ensure the protection of children's rights in their service delivery and make it unlawful for public authorities to act incompatibly with the UNCRC requirements that are set out in the bill. Children, young people and their representatives would have a new ability to use the courts to enforce their rights. On 12 April, the United Kingdom Government referred four provisions of the bill to the Supreme Court. Those were section 6, which makes it unlawful for a public authority to act in a way that is incompatible with the UNCRC requirements. Section 19, which creates an obligation to interpret legislation compatibly with the UNCRC requirements so far as it is possible to do so. Section 20, remedial power to allow a court to strike down certain legislation found to be incompatible with the UNCRC requirements, and section 21, which allows a court to declare certain legislation to be incompatible with the UNCRC requirements. The Supreme Court's judgment was that aspects of each of those sections were outside the legislative competence of the Scottish Parliament. The referral also covered the European Charter of Local Self-Government Bill. That bill strengthened the status and standing of local government by incorporating the European Charter of Local Self-Government into Scots law. Starting as a member's bill, it, too, was passed unanimously by the Scottish Parliament and supported by the Scottish Government and by local government through COSLA. The bill was intended to develop and further strengthen the relationship between the Scottish Government and local government in Scotland, so ensuring that priorities and policies are developed and delivered in partnership. The Supreme Court's judgment was that section 4 creates an obligation to interpret legislation compatibly with the requirements of the charter so far as it is possible to do so, and section 5, which gives the courts the power to declare legislation to be incompatible with the charter, were outside the competence of the Scottish Parliament for the same reasons applied to the United Nations Convention on the Rights of the Child Bill. In my statement on 6 October, I expressed my disappointment that the court's judgment could potentially limit the aspirations agreed by this Parliament. That judgment made plain that we are constitutionally prohibited from enacting legislation that this Parliament unanimously decided was right for Scotland. We have, however, fully respected and carefully considered the implications of the judgment. We will now begin engagement with key stakeholders on what we believe are necessary changes to the bill at reconsideration stage to address the judgment and support Mark Ruskell in doing the same for the European Charter of Local Self-Government Bill. To address the judgment in relation to section 6 of the UNCRC bill, it is clear that we need to expressly limit the compatibility duty to devolve functions and devolve bodies. We also need to include in the bill a provision equivalent to section 6.2 of the Human Rights Act 1998 so that public authorities cannot be found to have acted incompatibly where the underlying primary legislation cannot be read in a compatible way. To address the judgment on the judicial remedies in both bills, we need to remove UK acts from the application of the interpretative obligation, the strike-down power and incompatibility declarator power. That is a disappointing delusion of the effect of the bills. The Supreme Court judgment means that this Parliament's power to give the court's remedial powers is limited by the mere fact that existing statutory provision happens to be in an act of the Westminster Parliament, even when they concern matters on which the Scottish Parliament could and frequently does legislate. To be clear, the judgment does not prevent the Scottish Parliament from amending or repealing legislation in devolved areas, either in an act of our Parliament or the UK Parliament. Where we need to take action to ensure that legislation in devolved areas is UNCRC compliant, that power will be available to us. As a Parliament that has across all political parties demonstrated its commitment to the UNCRC bill, I hope and expect that we will exercise that power whenever we need to. However, a simpler and faster route to remedy would have been for the courts to have access to the judicial remedies for all legislation in devolved areas, including UK acts. There will now be three weeks of engagement with key stakeholders, including with children and young people and with COSLA. For the UNCRC bill, the purpose of that engagement will be to ensure that those who have lobbied passionately for this bill understand the changes that have been made and why. The engagement will also help us to understand any concerns that need to be aired during reconsideration stage. For the European Charter, we will engage extensively with Mark Ruskell to explain the changes that we think are necessary and to support him taking his bill forward. Following that engagement, I will update the relevant parliamentary committees before amendments are brought forward. We will liaise with the parliamentary authorities about the timescale for reconsideration stage, recognising that we need to make sufficient time to engage with Parliament on the substance of our proposals. We will also engage with the United Kingdom Government, given the UK law officers' power under the Scotland Act to refer a reconsidered bill to the Supreme Court. It is regrettable that the UNCRC bill and the European Charter of Local Self-Government Bill have been delayed and will not become law in the form that our Parliament agreed. I reassure Parliament that, although the UNCRC bill has been delayed, work in relation to the implementation of the UNCRC work has continued at pace. That includes building the capacity for public authorities to take a child's right-based approach to the delivery of services and ensuring that children, young people and their families are aware of and understand the United Nations Convention on the Rights of the Child. I am delighted that we can now move forward with legislation to build a Scotland that values the unique role of local government and with respect for human rights, anchors our society and the institutions that govern and deliver public services for the people of Scotland and especially for the young people of Scotland. The Deputy First Minister will now take questions on the issues raised in his statement. I intend to allow around 20 minutes for questions, after which we will move on to the next item of business. I will be grateful if members who wish to ask a question were to press their request-to-speak buttons, Miles Briggs. I thank the Deputy First Minister for advance sight of his statement as well. Following the ruling by the Supreme Court, we have seen both those bills left in limbo for months now. As the Deputy First Minister concluded, I hope that we can now see this movement on legislation and Parliament being able to enact this. The UK Government and the Office of Advocate General for Scotland have reached out to the Deputy First Minister on a number of occasions to try to speed up the process and stand ready to engage and help the Scottish Government in taking forward workable amendments to bring the bill within legislative competence of our Parliament. The Deputy First Minister has previously stated that this is urgent and I hope that we can generally see how Parliament can be fully included in developing these amendments needed to make the bills legally competent. Can I ask the Deputy First Minister, which is not included in his statement today, when will ministers set out a timetable for the bill to be tabled in Parliament and for that committee process to start? The European Charter of Local Self-Governance looks to protect the powers of local government. That is something that we all agree on and when we all passed the bill supported. What assessment will ministers also now make of the impact that the Scottish Government has proposed on national care service and the removal of powers from local government will have when that bill has also passed? I am grateful to Miles Briggs for his points. Reaching out from the United Kingdom Government and the Office of Advocate General is an interesting observation to make on my statement. I made it quite clear that there was complete inflexibility from the United Kingdom Government on those questions. I know willingness to use existing Scotland Act orders arrangements, which are part of the Scotland Act to try to expedite those issues. I thought that it was reasonable for me to approach the United Kingdom Government given that Parliament had unanimously passed the legislation. I did not think that it was in my gift to essentially undermine the legislation that Parliament had passed. I was trying to seek from the UK Government an understanding to get them to a position of respecting the will of this Parliament, and they have refused to do so. I am afraid that if Miles Briggs describes the conduct of the UK Government over the course of the past few months as reaching out, I would hate to see what outright hostility looks like. On the question of the involvement of Parliament, this is the first bill that we will have had to go through a reconsideration stage. We are in new territory here, so we will be engaging. It is not in the gift of the Government to specify to Parliament what a reconsideration stage looks like, so we will engage with the parliamentary authorities through the bureau and the committees to make sure that we undertake that scrutiny as effective as we can. Obviously, I want to move quickly, but I also have to be mindful of the requirement for parliamentary scrutiny, so those will be the parameters that we work within. Lastly, on the point in relation to the European Charter for Self-Government Bill and the National Care Service, the Parliament has passed the European Charter for Self-Government legislation, and any future legislation that the Government brings forward must be so compatible. Michael Marra Thank you, Presiding Officer, and thank you to the Government for advance sight of the statement. We are glad in the Labour benches that we are now dealing with the reality of this situation. I give the Deputy First Minister assurance that the Labour Party will engage to ensure that the reconsideration stage is dealt with at pace and that we can get this legislation finally confirmed. The Conservative Government, though, is recalcitrant, is beyond question, but we do believe that the events of the last year beg some serious self-examination from ministers. On 4 March 2021, the UK Government informed the Deputy First Minister of their interpretation of the legal position. Nothing was told to this Parliament and the legislation passed amid great fanfare on 16 March. The real common ground found in Parliament was that the children of Scotland deserve so much better than they currently get. Savage cuts to education funding for the poorest and scandalous waiting times for mental health contribute the rights-based approach that this Government purports to uphold. The use of mosquito devices to disperse children breach articles 2, 3, 15, 19 and 31 of the UNCRC. What type of ministers found amidst the constitutional wrangling to act on these issues that harming Scottish children every day? First of all, I welcome the assurance from Mr Marra that the Labour Party will work with us on undertaking this work expeditiously. I have committed to doing exactly that. I think that it is very interesting that Mr Marra describes the events of the last year or so as constitutional wrangling. Parliament unanimously passed a bill that Parliament believed was necessary to protect the rights of children and young people within Scotland. I do not think that Parliament should be cowed by the United Kingdom Government in its aspirations. I think that Parliament should be bold about its aspirations. I think that Mr Marra probably agrees with that that Parliament should not in any way be inhibited from making the boldest possible commitment. I am sure that he and I agree on this about protecting the rights of children and young people in Scotland. For us to want to take the maximalist position to give that protection, I do not think that the Parliament should be inhibited from doing that, but we are now inhibited because the UK Government has intervened. I have spent a number of months trying to find pragmatic ways of getting the UK Government to accept a fairly basic reality, which is best expressed as follows. The Education Scotland act is an act that we can revise. The Education Scotland act 1980, to be precise, is an act that we are empowered to revise, but it is not under the UNCRC bill that is caught by the Supreme Court judgment, because the Supreme Court judgment says that that is an act to the Westminster Parliament and because the Westminster supremacy is the sovereignty principle, you cannot put that legislation into this framework. I have simply tried to find a pragmatic way to enable that to be case, because I think that that is what Parliament wanted, that is what Parliament legislated for. I have just been trying to protect the interests of Parliament, and I do not think that it is part of my duty to be—I do not know what is going on over here—but I do not think that this Parliament should be trampled over by the United Kingdom Government. I do not believe that. That is why I have been doing what I have been doing, and that is my self-examination analysis. As for some of the other measures that Mr Marra talked about, this Government is doing a lot to address the circumstances of children and young people in our country. Doubling the child payment and extending it even further is one of the strongest things that we can do to tackle the rights and human rights of children and young people in Scotland. Joe FitzPatrick, to be followed by Mark Ruskell. In session 5, the Equalities and Human Rights Committee unanimously recommended the general principles of the UNCRC incorporation bill, and I welcome the cabinet secretary's renewed commitment to implement the UNCRC to the fullest extent possible. That really matters to Scotland's young people. Can the cabinet secretary say more on the discussions with the UK Government on routes to ensure the effectiveness of incorporation beyond those that are currently available to this Parliament to ensure that all legislation within the competence of this Parliament can be meaningfully made subject to international human rights standards? Essentially, there were two propositions that I put to the United Kingdom Government. One is that the devolution settlement could be altered to offer the Scottish Parliament additional routes to increase the effectiveness of incorporation. The other was using the Scotland Act orders to allow us to bring UK acts in devolved areas within the scope of the bill. Both of those were ruled out, and we will now proceed to the reconsideration stage. I suspect that the committee that Mr FitzPatrick now chairs may well be involved in that, but that will of course be a matter for us to discuss with the parliamentary authorities. I look forward to engaging with the relevant committees on that. I can confirm that the member is now in charge of the European Charter of Local Self-Government Bill that I will be seeking a reconsideration phase to ensure that the work of Mr Wightman, COSLA and the Parliament as a whole is not lost. The Deputy First Minister made a clear commitment to work closely with stakeholders in relation to amendments on the UNCRC bill. Can he also make the commitment that, in relation to the council charter bill, he will work with me and with stakeholders, in particular COSLA, and we can have a meeting sooner than later to discuss the shape of some of those amendments that may be coming forward and what the options may be? I am very happy to confirm my willingness to do that. One of the points that I would make—this is a really important parliamentary point—is that the reconsideration stage needs to look very tightly at the issues that emerge out of the Supreme Court judgment. It is not a reconsideration of the whole bill or its principles, it is a reconsideration of the issues at stake in the judgment. I have applied a very tight judgment to that in relation to the UNCRC bill. I would be taking the same approach in relation to the European Charter Bill, but I am happy to engage with stakeholders and with Mr Ruskell in making sure that he is well supported to bring forward the appropriate measures to Parliament. The Scottish Government's legal experts no doubt warned the Deputy First Minister that those bills were not compliant with UK law. Why did the SNP choose to push forward with this bill anyway? I know that Meghan Gallacher was not a member of Parliament at the time that the bill was passed, but her Conservative colleagues voted every single one of them in favour of the bill. It looks like the Conservative Party is trying to suggest that they only did things because I told them that it was the right thing to do. I generally do not think that I command such influence. If that is now the scope of my influence over the Conservative Party, then the prospects for the Conservative Party are improving no end from where the doll runs. Members of Parliament looked at the bill. It was thoroughly scrutinised by all members of Parliament. As I answered Mr Marra, Parliament wanted to have the most ambitious set of provisions in place to protect children and young people, and now the Conservative Party is running away from a commitment that it made only a little while ago. I think that that is a terrible indictment of the Conservative Party. Eleanor Wittam, to be followed by Sarah Boyack. To ask the cabinet secretary what the Scottish Government can do to ensure that local democracy is upheld and supported. In light of the absurd constitutional position, Scotland finds itself in within the devolved settlement, which sees our wealth thwarted. Specifically on the basis that the local self-government bill sought to strengthen local government by incorporating the European Charter into Scots law and was passed unanimously in this very Parliament, as well as being supported by Scottish Government and local government through causes community wellbeing board and leaders decisions in the previous council term. I think that the bill gives us many abilities to protect the position of local government within Scotland as a consequence, and we will be seeking to make the necessary remedies to ensure that the bill is compliant so that it can then come into effect and achieve the objectives that Eleanor Wittam has put to me. Of course, there are other measures that the Government can take to support the position of local government within Scotland, and the Government will engage in those questions with the leadership of COSLA when the local authority administrations are established and the new leadership of COSLA is in place. Of course, Eleanor Wittam has significant formidable experience of exercising responsibility in that direction over many years of service in local government and in COSLA. Sarah Boyack, to be followed by Fulton MacGregor. Thank you, Presiding Officer. Would the Deputy First Minister like to confirm that the Scottish Government knew that there were issues regarding both those bills but did not respect MSPs enough to tell us before we voted through those bills? The Deputy First Minister says that he is delighted that we can now make progress, but is not it the case that we could have progressed both those bills, transforming children's lives and empowering local government through amendments at stage 3 last year, but that the SNP preferred a constitutional fall-out and delays to both those pieces of vital information? As we are seeing in a number of local authority chambers around the country, the Labour Party is being enthusiastic that it is supported by the Conservatives. I am lost for words at what Sarah Boyack has just put to me. I thought people like Sarah Boyack were interested in maximising the protection for children and young people in Scotland and we should not be trampled over by the UK Government in doing so. Fulton MacGregor, to be followed by Willie Rennie. Perhaps in the back of that last question, does the Deputy First Minister hope that I do that the cross-party spirit, which led to the initial unanimous passing of those bills, can be found again as it was before, as this Parliament tries to the maximum that it can within current powers to legislate in favour of a world-leading status for the rights of children and the empowerment of local democracy that we can all be proud of? I hope that that is the case. When Parliament legislated, particularly on the United Nations Convention on the Rights of the Child, with which I was more closely involved than the European Charter Bill, it was very clear that Parliament wanted—we had gone through extensive evidence taken through the whole parliamentary process. Indeed, Mr MacGregor may well have been on the committee scrutinising this bill. Parliament was clear that it wanted to take the maximalist position that it could take. I was enthusiastically asked that that was the proposition that I put to Parliament. Parliament appeared to me to be very supportive of such an objective. Therefore, legislating to the maximum extent possible is a critical part of the contents of the bill. I want to make sure that, at the reconsideration stage, we maintain as much of that protection as we possibly can do for satisfying the legislative competence requirements that are placed on us by the conclusions of the Supreme Court judgment. People expect our two Governments to be able to work together, but the relationship to be frank has been atrocious between our two Governments for years. Responsibility for that lies with both Governments, so pointing the finger does not help. Meanwhile, children and local communities have lost out. As there is nothing new in this statement today, why has it taken so long for the Government to start another consultation with stakeholders? Why was this not done months ago? First of all, Mr Ray talks about the relationships between Government. I have put on the record today as dispassionately as I possibly can do. The comments of the Secretary of State, who told the House of Commons in October that he was committed to engaging constructively with the Scottish Government to ensure relevant issues that may arise are addressed at the earliest possible stage. In my answer to Joe Fitzpatrick, I set out two particular propositions that I put to the Secretary of State, both of which were rejected. They were attempts by me to try to ensure that the will of the Parliament was protected, but the Secretary of State has essentially vetoed that, and I regret that very much. I will have to bring a bill, a reconsideration proposition to Parliament, which will restrict what Parliament passed back in the spring of 2021. I regret that, because I certainly did not think that it was in my gift to do that without exhausting the dialogue with the Secretary of State for Scotland and that he has not been interested in engaging in that dialogue. I hope that the Secretary of State and the Office of the Advocate General will engage with us constructively and the advice that is required about ensuring that the bills are compliant in the next period, and I will update Parliament on that. As for Mr Rennie saying that there is nothing new, I have set out to Parliament the list of changes that I will make. That is the first time that I have done that. I did not want to do that earlier, because I did not want to give up on the possibility of the Secretary of State for Scotland saying that, with those changes, you can keep your bill the way it is. That is the explanation. Obviously, there has to be adequate consultation within Parliament. We will engage with the parliamentary authorities to do all that to ensure that we minimise the impact of those changes on the bill. Despite the wholly unnecessary obstacles put in the way of full UNCRC incorporation, Scotland is today a good place so much to raise a child safely and happily. Can the Deputy First Minister assure this Parliament that the interventions of the UK Government have not and will not undermine the will of the Scottish Government to adhere to our shared vision to reinforce the civil, political, economic, social and cultural rights that all children everywhere are entitled to? I agree wholeheartedly with the statements that Ruth Maguire has made and also to the importance of ensuring that, in two respects, we live up to that very high ambition that she has set out. The first is that the Parliament should be prepared to change legislation where we do not believe that we live up to those aspirations. For example, on the Education Scotland 1980, if we do not believe that there are provisions on that that are UNCRC compliant, we can legislate to change it and we should be prepared to do so. The second is that, in relation to the way in which we exercise our wider policy responsibilities, I am thinking particularly about the work on getting it right for every child, which is fundamental to ensuring that the aspirations that Ruth Maguire has set out are lived up to. I give that commitment to Parliament this afternoon. There is a danger that the First Minister is trying to rewrite history this afternoon. Does he agree with me that, at stage 3 of the UNCRC, two amendments were brought forward that would have made the bill legally compliant if the Scottish Government wanted to protect our children? Why does he not simply bring those two amendments forward today and get cross-party support and get the bill passed rather than spending time debating things that he knows cannot happen under law? I am not doing that. I am offering Parliament a resolution to an issue and a difficulty that has arisen out of Parliament's unanimous support for a bill. That is not just a bill that my colleagues voted for. Everybody in Parliament voted for this bill, and I do not really think that it would be appropriate for me to undermine the unanimous will of Parliament, as expressed by the legislation that we have put in place. We will bring forward the reconsideration stage. I hear Mr Balford saying that it should all be done this afternoon. If I was to say that it is all going to be done this afternoon, Mr Kerr would be on his feet saying that there is no enough time for us to do all that and all the rest of it. There is a rail road in Parliament, so we will take the necessary time to discuss those issues with the parliamentary authorities and bring them forward, the necessary amendments forward to Parliament. Thank you, Presiding Officer. Far from being about constitutional wrangling, this is about the rights of children. Accidents disproportionately impact children from more deprived backgrounds, making accident prevention a social justice imperative. The UNCRC contains provisions directly linked to accident prevention. Article 19 outlines the right to protection from harm, and article 24 more specifically includes the right to accessible information in support of prevention of accidents. What possible reasons are for denying the rights of children under those articles? What measures has the Scottish Government taken to ensure that accident prevention will be a priority for children's safety going forward? The whole focus of the UNCRC incorporation bill is to proactively establish an approach within public authorities and public bodies in Scotland that is about protecting the rights of children. That culture is vital to being created as a consequence of the legislation, and the obligations that the bill places on public bodies are exactly the type of obligations that will enable the aspirations that Clare Adamson has put to me to be fulfilled as a consequence of the legislation. I assure Clare Adamson that much of the preparatory work has already been undertaken, but we will be able to reinforce that with the passage of the bill, and there will of course be legal remedies that are available to a range of different people around the country to seek remedy should they feel those rights are not being fully enacted by existing legislation and the protection that is offered by the UNCRC bill. That concludes the ministerial statement. Following the Deputy First Minister's statement, I wondered if you could advise members as this will be the first time that Parliament will take forward a reconsideration bill. That is something that I do not believe any member wants to see the Scottish Government setting the parameters for. What process will be developed for all MSPs across this Parliament to be able to influence that bill? Secondly, would the Presiding Officer also look at the publication of the Parliament's legal advice, which the Presiding Officer at the time received, around this legislation and its competence when it was originally passed? Sorry, Mr Briggs, could you repeat the second point there? In terms of the publication of Parliament's legal advice, which the Presiding Officer at the time provided to point towards the legal competence of that legislation when Parliament was considering it, would that advice be published? The legal advice is not shared for very good reasons. With regard to Mr Briggs's point on the reconsideration stage, clarity will be provided for all members, of course, and that will be discussed at the bureau. All members will be notified accordingly to enable them to fully take part in any scrutiny. That is not to disappoint the Deputy First Minister. If it is in the judgment of the Presiding Officer that further time should be allowed for further questions to be put to the Deputy First Minister under rule 18.14.4 and the President of the Dr Graves maternity unit in Murray's ministerial statement of just a few months ago, would he consider extending the time for questions? The time that was set aside today was the time that was agreed by the Parliamentary Bureau. Therefore, we will move on to the next item of business. There will be a short pause before we do so.


Drone operators of the Ukrainian Security Service's Special Operations Center have discovered and launched an attack on Russian Army soldiers and various military equipment near Abdiyivka city in eastern Donetsk region. It should be noted that over the past week, Russia lost 165 soldiers, 16 tanks, 28 armored fighting vehicles, 11 artillery systems for rocket launchers, one air defense system, 16 drones, two radio-electronic combat systems, 55 military vehicles as a result of Ukrainian kamikaze drone attacks. In addition, more MM observation complex, three ammunition depots, 70 firing points and fortifications were destroyed by explosion.


There are many thematic playlists on this channel. Click on the playlist tab and you will see, you will come across playlists on every conceivable topic, narcissism, upbringing and early childhood, the shared fantasy, you name it. One of the playlists is a mental health dictionary in the making. It already has the entries for the letter A and the letter B. And what comes after A and B? Children and childrenettes? Yes, the letter C. C, senor. C, Samuel. C, papa. The letter C is today's letter. Catalepsy. Catalepsy is the rigid maintenance of a position of the entire body or of an organ over extended periods of time. It's also known as waxy flexibility. Human sculptures are patients who freeze in any postural position that they are placed in, no matter how painful and unusual. This is very typical of catatonics. And this leads us of course to catatonia. Catatonia is a syndrome comprised of various signs, among which are catalepsy, they are for mentioned catalepsy, mutism, stereotypy, negativism, stupor, automatic obedience, echolalia and ecopraxia. Until recently, catatonia was thought to be related to schizophrenia, but this view has been discredited when the biochemical basis for schizo- schizophrenia has been discovered. The current thinking is that catatonia is an exaggerated form of mania, in other words an effective disorder. It is a feature of catatonics schizophrenia though and also appears in certain psychotic states and mental disorders that have organic medical roots. That's not part of the dictionary. Now, catatonic behavior, severe motoric abnormalities including stupor or catalepsy, motoric immobility or at the other end of the spectrum agitated excessive purposeless repeated motoric activity, nothing response to external stimuli or triggers. Also, apparently, motive less resistance or indifference to attempts to be moved or to be communicated with extreme negativism as it is known. Catatonic behavior often comprises mutism, posturing, stereotype motion, echolalia and ecopraxia. CCMD, Chinese classification of mental disorders. Yes, the Chinese have their own DSM. The Chinese equivalent of the DSM is currently in its third edition, edition number three. It recognizes culture-bound syndromes. For example, coral is diagnosable and treatable mental health disorders and that sets it apart from the DSM. Seria flexibilitas literally walks like flexibility. In the common form of catalepsy, the patient offers no resistance to the rearrangement of his limbs or to the realignment of her posture. In seria flexibilitas, there is some resistance, though it is very mild, much like the resistance of a sculpture made of soft walks. Hence, of course, the word seria walks. Circumstantiality. Don't you just love these $10 works? Circumstantiality, when the train of thought and speech is often derailed by unrelated digressions based on chaotic associations. The patient finally succeeds to express his or her main idea, but only after much effort and wandering. In extreme cases, considered to be a communication disorder. It's a bit reminiscent of word salad in psychotic disorders. Clanged associations. Rhyming or punning associations of words with no logical connection or any discernible relationship between the words. Typical of manic episodes, psychotic states and schizophrenia. Clouding. Also known as clouding of consciousness. The patient is wide awake, wide awake, but his or her awareness of the environment is partial, distorted or impaired. Clouding also occurs when one gradually loses consciousness, for instance, as a result of intense pain or a lack of oxygen. A proper lack of oxygen. Cognitive dissonance. Actually, a proper extreme pain. Cognitive dissonance. When someone holds simultaneously two conflicting views, thoughts, values or bits of information which call for diametrically opposed decisions or actions. This state of things generates an inner conflict and triggers several primitive, infantile defense mechanisms such as denial, splitting, projection and reaction formation. Next, in the letter C of the Mental Health Dictionary. Compulsion. Involuntary repetition of a stereotyped and ritualistic action or movement, usually in connection with a wish or a fear. The patient is aware of the irrationality of the compulsive act. In other words, she knows that there is no real connection between her fears and wishes and what she's repeatedly compelled to do. Most compulsive patients find their compulsions tedious, bothersome, distressing and unpleasant. But resisting the urge results in mounting anxiety from which only the compulsive act provides much needed relief. Compulsions are common in obsessive compulsive disorders, obsessive compulsive personality disorder, OCPD and in certain types of schizophrenia. Schizophrenia is a superstar in the letter C. Concrete thinking. Inability or diminished capacity to form abstractions or to think using abstract categories. The patient is unable to consider and formulate hypotheses or to grasp and apply metaphors. Only one layer of meaning is attributed to each word or phrase and figures of speech are taken literally. Consequently nuances are not detected or appreciated. A common feature, it is a common feature of schizophrenia, autism spectrum disorder and certain organic disorder. Concrete thinking. Confrabulation. The constant and unnecessary fabrication of information or events to fill in gaps in the patient's memory, biography or knowledge or to substitute for unacceptable reality. It is common in schizophrenia, in certain types of cluster B personality disorders, for example narcissistic, histrionic, borderline and dissocial. In organic memory impairment, Korsakov syndrome, dementia and in the amnestic syndrome, amnesia. Next, conflict tactics scale or CTS. A diagnostic test invented in 1979. It is a standardized scale of frequency and intensity of conflict resolution tactics, especially abusive strategy used by members of a diet in a couple. Confusion. Complete the often momentary loss of orientation in relation to one's location, time and to other people. Usually the result of impaired memory often occurs in dementia or because of attention deficit for instance in delirium. Also see disorientation when we come to the letter D, which I can hint is after the letter, follows the letter C. And finally, culture bound syndrome, recurrent dysfunctional behavior linked to troubling experiences regarded in a specific location by its native denizens or in a specific culture as aberrant or sick. And with this optimistic note, we finish the letter C. See you later in the letter D.


Hello and welcome back here to the channel. I'm evil rabbit here joined by Christmas We're here for practice for round one of the u.s. Drift series here on a set of course that is happening on Sunday the 13th presented by podiums eSports on switch makes you guys follow us on there when qualifying this week So we're gonna take a little course walk here today, so you guys can see what track we're running We are running at English Town, so let's go take a look obviously. We have their traditional chicane start I'm gonna cruise this through we have the lead car do not cross line Which is definitely very tickled when you're trying to do a flick entry out Here where this is actually very bumpy and we got to get out as well as you can see the cars bouncing a little bit for this outer zone and that outer zone turns into Another outer zone that if you touch this grass you are done At the cars these cars do not have that much angle in their steering So if you touch that guys you're screwed you have a third outer zone which also transitions to a fourth outer zone and Then a fifth outer zone with a bit of a D-cell section here to the front inner clip Which flicks us to this very bumpy section You can see the car bouncing up and down and you have to transition into here Which has a very heavy bump right there at you see the front of Christmas car Bottom out and then you have this wall ride to end off the run So it's a pretty pretty flowy track pretty fun track So we're gonna get some practice runs in here lead chase kind of doing some doing some testing here for today Because we are qualifying this week and going to we can hopefully Qualifying in and competing on Sunday leave all the link for everywhere. You can watch it down in the description box below So yeah, let's go full send Gonna have a sip of our coldest water bottle here Thank you to close water for sponsoring another video here on the channel With the temperatures in 80 90 degrees It's definitely good to have this bottle right next to me full of cold water because that gets a little it's a little hot When you're doing some tandems, so Are you ready for this Nate? It's spicy. Let's do it We are have a base tune on these cars. We're doing it third gear entry Not crossing the line. We're gonna kind of initiate in Use the brace to us down as you can see the bumps in the back of my car just Causing my tires to go up into my fenders Nice smooth on the outer zone so far a little quick change there and a little bit of d-cell zone Little d-cell little grass drop woulda punted that clip not totally terrible, which kind of offset me on this line Oh, and that's where I feel a lot of people are gonna have some issues Trying to get deep into that wall. We also got to remember not spawn the pits Riding deep into that wall is gonna be very treacherous But you want to be deep into the wall, but you don't want to be too deep where you totally biff it So we're gonna see if I can't get a nice solid chase It'll be nice when we have a start start light to know when to go so one of us doesn't get a jump She didn't right here and right there. I ran out of angle lock. I tried to get too close to him which is You know being super aggressive, but the cars do not have that much angle We are in the world drift towards the street cars for this competition specked cars. We decided to run the R32's Well, can't talk into the wall there kind of a little bump. I'm just gonna spawn the pits We're just practice so as you can see the track is quite bumpy and it's It's gonna take some good fine-tuning in the suspension in order to get the cars to handle exactly right on those bumps Which is something that we are still in the Work phase with was trying to develop the tune we have a good base map to and I believe Addy and a couple of the guys are running our 32 so we may cross reference data with some itanum guys to see What they're running versus what we're running right now Because you know Addy big help in tuning my pro car, which we have big changes for ESDA round four So we're doing a chassis change. So that's something you guys can look forward to the channel here really shortly Dipping all my tire in the grass See if we can't I wish that You looked it. Let's see if we can looked it get into this outer zone Just a little tail tap towards the end We managed to complete that zone without totally screwing up, but this track is definitely Definitely challenging in its own aspect and it's definitely a fun series can't wait You know to run us drift like round one just to You know seat time is key And that's all this is about a seat time And earn a little bit behind him this time so we don't smack into his door there We go now we can tuck up into the pocket Not as much oh I'm skilled you not as much smoke when I was trying to change Grass killed me not as much smoke in the chase position Right unlike an ESDA with those thousand plus horsepower cars these cars only like 300 and I think 4-hours power is where we're at so a lot less make smoke being thrown up in my face, which is always a good thing I'm very excited to try running these cars in a higher horsepower tier after after this week when we can Mess with our brains on this track. Oh, you mean mess with some higher horsepower cars Yes, I hire horsepower cars that way. We're not messing ourselves up for the upcoming coffin qualify right That's why I'm not really driving my new pro chassis at the moment. What's currently being built while it's built did a lot of work on it, but Way off that zone Got to keep mindset of what you're driving and not go back and forth and back and forth because oh, that'll happen Yep, I Think I may have screwed you up on that one with my weird angle fluctuation. I Angled up so much following you and I I ran out of steering lock Yeah, I ran out of steering lock and had to clutch in so that was also my fault Which is one thing I have to be very mindful of cars do not have that much lock I think they're like 50 some degrees 55 degrees maybe Or 50 because I think my pro cars 25 more Or 20 more, I'm not sure. I think these are 55 and the pro cars are 70 Oh A lot of boost there My car was fine and boosted. It's just uh, I Killed it there. This is a challenging track To be able to stay Super consistent. This is gonna be a fun event. So make sure you guys like you might feel like yeah, right Make sure you guys come watch it on Sunday.  I hopefully we will be in battles. Oh, oh my it's really bumpy when you're against the wall No grass grass grass grass. I saved it Didn't zero But definitely would have had a huge deduction. Well, they go Creeping up on my door in the last outer zone. That was that was pretty good I almost zeroed from that little bit of D cell going up that hill Yeah, a little D cell kind of I saw that I well, I was in grass. So unfortunately, yeah I went a little hard on that entry It is a touchy hill to go up You got to get that fine tune of left foot break to keep the angle the way you want it to be But not be too happy on it Exactly And don't do that I didn't zero but I definitely came on a line We managed to stay an angle, but we were way out of line Trying to make something of it towards the last part of the track. Whoo, and if I can just do that Yeah, if you just do that you'd be sad I could do that every time some matter. It's gonna be a matter of nerves. I feel exactly exactly stepping up to the line People don't realize it may be a set of course. I may be just you know virtual competition, but you know It's still nerve-racking Nerves are still there That little kicker over that top part kind of throws you an angle weird. Oh nitrous boost. I didn't give you enough room to transition Yeah, and that threw you into the grass. Oh, yeah, it threw me way off the line I just zeroed up behind you. I think I need to dial in some more grip in this car I think I'm gonna make some fine adjustments, but we're not doing those live here You know secret sauce recipe that I'm gonna be running You know keep some things a secret go that way So I hope you guys gentlemen. This is called cheating Damaging your opponent's car before the run. I hope everybody's enjoying all the comp content Who's it got a lot of cop content coming up with the sda and us drift series? Definitely something I was super excited to get back to doing pretty pretty good run. Oh As I say that I don't say it too soon. Oh We ran out of speed so we're gonna do one more full lead here See if we can't get really out to that wall We're gonna try and go super far in the wall I gotta make sure you don't cross this blue line I keep kind of touching it with my left front tire, which I need to not do I need to stay closer to the wall So one final run here close to the white wall off rip. Yeah We'll find a run here for today's episode here on a set of course a big thank you to Christmas for coming out for practice. Well, he needs it just as much as I do They probably would have docked me for the handbrake pulling that zone. No too much guys love Well, you had nowhere to go So I think that'll do it here for this episode here on a set of course So I hope you guys are enjoying all the content me She has fallen me and also should be dollars found scripture box below He's trying to kill me and as always I thank you guys for coming back and watching. I'm evil rabbit I'll see you guys on the track


Good morning, you know Here we go another day Another dollar. Yeah, just another day and I said it was it was a good office But it wasn't like the office, you know the great office And I think I'm gonna set a goal right now in front of you that the next office I acquire is gonna be The office, you know the office that I'll use for years and years But for now, we're gonna be docile Flexible agile and Therefore even more effective in the the work that I do on the digital continent. All right, so that's a wrap and A lot of good time lapses in here. I must say though. I must say that much. All right See on the other side Not out of the woods yet. Not it. No deodorant in the house. No deodorant allowed. We're close Bridget is feeling better everybody, but we're not out of the woods yet. It'll be a snorkeler someday Careful buddy. Thank you Two pairs of scissors and taking them to the backyard and when asked what he needed them for he said for something for something He needs them for something On this is marriage, this is true love Thank you for she's sacrificing right now true love for my leg my issue my Shin splint and I appreciate it Thank you. I wish you had that Same thing you had when you were running. It's the see you What's that access to that room? Oh the trainer room. Yeah. Yeah I know Sacrificial love


With this recent trial that's going on right now with Ed Sheeran in New York, myself and a lot of other attorneys focusing on intellectual property are hoping that it does not settle so that we can actually get some judicial guidance, court decisions that help us determine the line, so to speak, on what is eligible for a copyright and when you have infringement. A lot of the music infringement cases that are in the news, if they end up settling out of court, then as attorneys, we really don't know where the line is in terms of how much creativity is sufficient for the protection of music with a copyright and how much similarity is too much similarity in terms of infringement.


After all that's ét battling I'll be right in the place to present you all about lold from a user perspective.ình nw i wneud fydd eich Milk Ild o'r £11 or chicken sang ot maeair sy'n hy bru to a'r punched 0 I'll explain what isn't a few minots for those who are unfamiliar. So this isn't a deep dive into what lld is and what it does, this is more like how would I actually go about using it on the assumption that most of you may have heard of lld but probably haven't tried it out o ddod o'r aci'r ffordd ymweld. O'r gweithio, yna'r cyhoedd i'w ddod amser? Yn cael ei wneud LLD, wrth gwrs, dyna'r cyhoedd yw'r ddod, ac mae'r rhai cyhoeddion yn ymhyfyd i'n gweithio'n gweithio LLD. Mae o'n ddod yw'n o'n ddod i'r cyhoedd BSD, ond rydyn ni'n ddod o'r cyhoeddion. Mae'n ddod, rydyn ni'n ddod o'r cyhoeddion llynigol o'n ddod o'r cyhoeddion. You're going to end at three weeks? Three weeks. Okay, and I just noticed something, I think it might have been this morning, that it might actually get into the LLVM 4.0 release. So it's looking like it's going to become slightly more easy to get hold on there, but it's actually not too difficult to bill from source, if you wanted to fiddle around with it. The next bit is, what can I expect if I actually try and use this thing? And then just a little bit at the end of, if you're interested and want to give it a go, ac sut rydym yn baut. Yn ffrindiau'r coffaeth o'r maco fersiwn, wedi gweld y cwbl o'r slidau. LLD rym ni'n gweithio 3 linkers i 1 o'r unrhyw fersiwn gynhyrchu cofasau. Rydyn ni'n ffeilio'r fersiwn LL a rosell eich cyfnod a'r fersiwn LL yn i. Mae'r ddau'r fersiwn LL i ddim yn ddau'r fersiwn LL yn ddau'r ddau'r fersiwn LL i ddim yn ddau'r fersiwn Microsoft o'r fersiwn Apple. a'r Microsoft version o'r Apple version. I'm basically working on the arm port for LLD. So that sort of background is in sort of arm based tool chains. OK, so this is a very, very basic slide for people who may not be familiar with what linkers do. They usually the sort of program that sort of hides behind the compiler and used to call your objects and libraries and it does its job. So apologies if you're already well familiar with the sort of linkers job is I won't spend too much on this slide. But in effect LLD takes the place over here. So compiler compiles source codes to objects. Those objects have basically got symbolic references between each other. So they'll say like I reference some symbol called printf or underscore start or something like that. And quite often what the linkers first task is to say take in all of these references saying that the objects say I need X, I need Y. And then it's got to go search through all the libraries that you've put on the command line and then basically say OK. I see definitions of function X, function Y and these functions need Z and whatever. And then basically just load everything all into one bit. And then once you've got everything all loaded you've then got to resolve all those symbolic references so that the reference to printf gets connected with the definition of printf. So that in a nutshell is what a linker does. There's various other bits that you can do to sort of control where bits go. So people doing embedded development will often use a special linker control script. They'll say hey I want all of my vectors to go address zero where you know on certain embedded systems and the like. And at the end of it you're left with a single file that you can then use the shared library and executable or some sort of slightly more concrete form than what came in at the front. So that's what LLD is trying to be. It's trying to be a sort of system linker. It's not really in the state to be a library at the moment. And I think there has been some arguments on the list about you know is that the right design for LLD to be a program or a library. There are arguments both ways. Typically as a sort of person who's developed linkers over the years. Typically linking is an all or nothing job. You tend not to want a bit of a linker. You tend to want all of it or none of it. So I think using it as a library I don't know whether anyone's come up with a really compelling use case to do it yet. It sounds nice in theory but I don't know yet whether anyone's worked out well or actually come up with a compelling enough reason to do it. So LLD is a project kind of I guess has existed for quite some years but it only really development of it kickstarted in about 2015. Prior to that there was a single code base and it was based on a sort of macro concept of an atom where an atom roughly maps to one function which and you could then move these atoms about. And that works quite well in macro but in Elf and Coff where you can have a concept of a section that can have multiple functions in. The Elf and Coff linkers basically had to keep translating to and from or the atom base model putting constraints in and it was slowing up development quite considerably. So at about time of 2015 the Coff code base forked off and basically said no it's not there's not a lot of point in maintaining this atom model for the Coff linker. I can streamline the development much easily so it ended up with a much faster simpler to maintain code base out of that. And then probably a few weeks to a month later the Elf back end was sort of stripped out under the same sort of principles. So we've effectively got Elf and Coff which are kind of streamlined platform linkers and you have the macro based atom model which is kind of like a linker toolkit for sort of building linkers. So these linkers don't really share code they do share algorithms and they do share sort of concepts in a similar sort of style. But the design decision was made that it was the amount of work that you did to transform Elf and Coff into the common data structures and back again wasn't worth the effort and it was better to share at the sort of algorithm and concept level. So that's one of the one of the big design decision difference that you would have from say LD dot BFD where you've got BFD which is the sort of translate all object formats to BFD work on BFD translate back. Which means you can share code in the centre of the linker but then you've got sort of quite a all the back ends and front ends have to sort of translate themselves to that BFD representation. Okay and it has been written with an emphasis on performance so I think that's probably as users it's probably the one reason why you would want to give LLD a try unless you were bothered about licensing or other sort of source code areas. So this is and I'm going to put a huge disclaimer on these numbers here. So this is a machine that I've only recently got from my company's IT department with a PCI ESSD, lots of memory and a fast processor. I certainly on my older machines didn't see anywhere near like the performance differential on this. So I think this is very much going to be a case of when there's a huge amount of disk bandwidth which is in effect what a linker is doing is basically a slightly clever form of cat. It's concatenating lots and lots of binary data together so you're mainly limited by how fast you can copy gigabytes of data to one place to the other. So you could say if you've got a slow hard disk system that's going to swamp all the computation that you might do. So if you've got a nice SSD that will emphasise the differences. So these programs also are huge so I deliberately set out to say what can I find that's going to be horribly nasty. So Clang linked fully statically with full debug information O0 produces an exec, well on my machine it was roughly 1.5 gigabytes in size, the output file. So that's huge but LLD tuned through that in about six seconds and BFD took about a minute. So if you're working on a gigantic code base I would say it's worth giving LLD a look because you might find that your compile link execute step could go down from a painful weight to something fairly quickly. So if you say you just changed one file, one string in a printf or something and have to relink then that could actually give you quite a bit of benefit. Not so much for say an overnight build or anything like that because that will be swamped by the time of all the compilations that you have to do. But that's where I would say the primary reason to use LLD at the moment because the way they've been designed, well LLD's been designed is that the ELF version tries to mimic the same interface that gold and LLD do. So it just can be a drop-in replacement but one of the other bits of that is that well okay it's not doing anything else so there's only really used to use it as a substitute. So why might I not want to use LLD? I've given you the good side which is the performance so what's the drawbacks for that? So I'd say that LLD doesn't implement all of gold or LLD's features yet, certainly in say the link control script area that work is in active development right now. Whether it ever gets all of the niche features of LLD I don't know. I don't know of anyone using this heavily in an embedded context right now. At the moment it's very heavily tuned towards sort of Linux, BSD style operating system platform linkers. Embedded systems tend to be horrible to linkers with things like multiple address spaces with different memories and different constraints and all of that type of thing where you've got to have quite stringent placement requirements. So I think if you're using an embedded system I would probably say you will be one of the trailblazers if you start adopting LLD but if you do please do and report bugs and we can start working on that. It's got a limited amount of users compared to gold and BFD. The BSD community are adopting LLD probably more aggressively than anyone else and they're doing some great work in improving it so hopefully that's one thing that can be used to drive forward the adoption of LLD is to have a big user base full of people all using it and finding out where the problems are. I guess limited support for number of targets. I'd say the main target at the moment is H8664 or AMD64. That's the one where the predominant number of users are on there. There is a good port for ART64. I think that's now running a build bot, it's got tests, it's self-hosting. ARM needs range extensions at the moment so it can't handle big links at the moment but in a sort of small station it's getting there. I think the MIPS port is well maintained. There is a port for power, AMD GPU and X8632 but they tend not to see too many commits so I don't know too much about that. Of course if you're happy with the performance of your linker at the moment there's probably not a good reason to change. How might I go about using LLD tomorrow given that hopefully it will be in the LLD 4.0 release? Very simple, if anyone has been used to building LLVM you basically put LLD in the tools directory like you would put clang and then just do the standard CMakeNinja and install and you'll get an LLD in your standard build slash bin directory along with all the other LLVM tools.  You'll get a tool called LLD and you'll get a sim link called LD.LLD. Now that's very similar to what you would get with say I'm just thinking of an Ubuntu Debian sort of system where if you look in slash user slash bin you'll get LD.BFD, LD.Gold and you then set a sim link for LD to either gold or BFD depending on what you want. So typically the generic LLD can basically by setting a flag called flavour you can say act as if you're the Microsoft linker, act as if you're the GNU linker. If you use LD.LLD or LD, a sim link with LD it'll infer that you want to try and mimic GNU LD. So the intention that generally I think these types of linkers that you generally tend not to call the linker directly it's usually the compiler driver that will feed you with all of the various objects. If anyone went to Brooks Davies' talk on Hello World yesterday you'll be familiar with all of the extra objects like CRT1, CRTI that the compiler driver will feed to the linker to make everything work. It's generally not just your helloworld.o and libc that get involved in there. So yeah, intention is just to drop in replacement. So what I found the most reliable way if you want to use LLD is to sim link your slash user slash bin LD to LD.LLD. As I mentioned earlier that's pretty much how you select between the GNU linker which I'll call LD.BFD or the GNU gold which is LD.Gold. I say there beware of build systems that include their own tools. So for example when I built Chrome and Firefox and started trying to say well okay what if I use LLD and I found out that the build system created a whole new directory. Just for their own bin utils and they copied their own versions and directed the linker directly at that. So you'll sometimes find on these big projects that the build systems will try and defeat you and you have to fiddle around a little bit at that point. Now if you're using Clang there is a flag called ffuse-ld that does exist on GCC as well but GCC won't accept LLD at the moment it will only accept BFD and gold. But if you're using Clang you can use ffuse-ld equals LLD so what that means is that when the compiler invokes the linker it'll say I'll look on the path for LD.LLD. So that would be a way of say installing LD.LLD in your slash user slash bin directory and then not have to fiddle around with symlinks or change things. You would just control that with that particular flag there. So what are the differences between LD, LLD? So I think main difference is now you actually have to try pretty hard to make this make a difference. But the way that the linker search for libraries is subtly different in that basically the GNU linkers they search the command line from left to right and they only search each library once. So if you have things like trans-circular dependencies between libraries where you kind of have an object, well a member A in one library and a member B and they each call each other you sometimes have to break that cycle by either using something called a start group, end group or you add the libraries in multiple times on the command line. LLD doesn't do that. It basically sort of searches the symbol table each time it sees the archive and then it just will automatically go back into that search table. It doesn't sort of require you to put libraries on the command line multiple times. Again there are contrived examples where this makes a difference but you do have to try hard to actually run into that. Now there's no default linker script for LLD so if you're ever using normal LD you can type in LD minus minus for both and it'll tell you the linker script that it's using so if you do this for say a standard Linux link you'll get a linker script about two pages long full of stuff. So what LLD does in this particular case is it's got a, it has a completely separate code path to handle that case so that again can cause slight differences and there's been, there's not any attempt to exactly match the behaviour of GNULD for linker scripts. I think the idea is to come close to or to use, to basically match where the behaviour matters but the sort of linker control scripts are somewhat loosely specified and they're often only specify a part of what's needed so for example you can write a linker script that specifies just one portion of your image and then you leave the rest of it to the linker. And so LD and LLD might make different decisions in that particular area and also some options are just not implemented and quite often there's some command line options that are just, they'll be accepted because they're passed by GCC every time you do a link but they're not actually needed so LLD just ignores them. Okay so here's a very very quick data. I won't go into too much detail about this but this is just showing an example of some of the design decisions that LLD has taken that's different to LD so on your left you can see two programme headers, an RO and an RW and you'll also see that the green bits are the sort of executable code and the sort of cyan bits are the sort of RO data. LLD groups its RO data first before the executable bits and has a three programme header layout and you can find that some tools that assume the two sort of programme header tables can get confused by that so that's again something just to be to watch out for. Generally this sort of thing doesn't matter. Okay so as I sort of start wrapping up and I started going through this earlier on then realised that I had a slide later on and but I think the general status I'd say I'd say the AMD64 one is looking pretty good. Lot of work's been done over the past few months to get the linker scripts working. There's several build bots that basically go through Clang, LLD, two stage build bots that check everything works and I think as of the January 2017 I saw a message post list at the free BSD based system, kernel plus user space has been linking and running with LLD and I think there's also some progress going through the ports and I think as you can see there are 20,000 out of 26,000 are linking properly and I think we reckon that some of the ones that aren't, there's not 6,000 individual problems there, there's probably a handful of problems that are causing those and there's a sort of upstream tracking bug so that if you're interested in sort of keeping that progress. So AR64 we've got little endian support only but we have got a build bot running to make sure that it keeps at least self hosting and linking Clang and the test suite. And we've got little endian support only. We're missing range extension thunks so we can't link Clang yet because that's a rather too large for an ARM v7 system and that's what my personal project is at the moment as range extension thunks. So once that's done there we should have enough to get a build bot together and that will sort of bring ARM up to the same level of supporters AR64. OK MIPS. Now I don't know too much about MIPS as a system myself. It's actively maintained so I'm going to make the assumption that based on the last status update that it passes all the single and multi source tests and the LRVM test suite still holds and I think it's probably my guess is that it will be in the same sort of state as the AR64 ports. Probably not quite as heavily used as the AMD64 one but certainly if you're in a MIPS architecture it will be worth taking a look. X86 32 bit. I think it's complete but as far as I know I've not seen this being actively tested and the last time I tried trying some things out when I was making some modifications to the new iPhonec I've found some problems so I think I don't know again too many people are actually using this one right now. Certainly I think if there were any bugs reported on it they could get fixed fairly straight forwardly. There is a port to power PC and to AMD GPU but I've not seen any traffic on those for quite some time. I'm not sure of the status of them but just based on lack of traffic I don't know. It's probably best I just say status unknown if you've got one might be worth trying but I don't know whether anyone's actively maintaining it right now. Okay so what can you do to contribute to LLD? So one of the things that I think as any of the sort of LLD maintainers would say what we really need right now is people to go out and use it and report bugs and find out what's not working that type of thing because we're thinking it's getting to the stage where you can actually genuinely give it a go and expect that the programme should work. Well you can give it a go and hope that it might work and I think that's certainly something that we would appreciate. If you want to contribute patches of course LLD is covered by the developer policy. You can find the owners on the various places and read me there. There isn't an awful lot of stuff on LLD out there in terms of full documentation. There is a sort of LLD site to the documentation but it probably doesn't tell you an awful lot about how to go about developing it. I did a presentation at the LLVM cauldrum last year on sort of LLD structure and I think most of that still holds. Really the main author of the cough port did a presentation in 2016 on the sort of the dev meeting about LLD. So those are the two main video sources that I can point you to. Any links to content before 2015 will be about the atom based linker so unless you're going to be working on the Mako atom based stuff I will probably ignore anything that came back from 2015 unless you're sort of interested in tracking through the history. OK. Thanks very much everyone. I don't know how many times I've got a new time. OK. Right. OK. So I've come up a little bit short on that. But so we've got plenty of time for questions or if you want to go get your lunch probably if you want to run out of here as quickly as possible I won't. Yes. Right. OK. Oh that's good news. Right. OK. Right. OK. So just to repeat that just for anyone it didn't catch that on the thing. So update on the BSD side so that AMD AR64 should be and MIPS 64 should be fairly close to AMD 64 in terms of their coverage MIPS 64 or MIPS may be missing some support for large programs. The BSD sort of base system tends to be small UNIX programs rather than sort of giant programs. So yes. But work is definitely actively ongoing in that area and we hope to be better soon. OK. Any more questions. Is it easy to summarise why LLD is so much faster than gold and LLD. OK. I mean I think partly it's because it's trying to do. It's it probably does less is fully the shortest thing. It was the same event as any fast program. It's obviously doing less less at that point. But what what LLD does is it tries to read through everything only once. So it's kind of I guess almost like you call a backpatching assembler. So as opposed to like a two pass assembler where you read everything once then work out what you need to do on the first pass where all the sizes are then you do another pass and do all the content. Another way of doing it is like a backpatch where you basically go through once working out where you need to patch all the things and then sort of do the sort of copy and then sort of figure out the patches which tends to be. It tends to make it harder to harder to write the program in the first place. But it does mean that you generally passing through your passing through the content generally once. So I think it's generally it started off with an emphasis on performance and it's been actively tracked. And almost every patch that goes in is sort of assessed for performance. So I think partly it's just it's probably not had enough time to do because I think gold started with the same goal but whether over five to 10 years more stuff's been added in more features have been added in. It's probably may have slowed down over time. So it may be that LD is skipping some steps that the other linkers are doing that sort of thing. And it might be that as it gains more features it might end up slowing down over time. But I think at the moment there's a sort of an aggressive sort of emphasis on performance and reviews. So I think that it will hopefully maintain that over time. Right. OK. It certainly does. It's got incremental code folding. And it's certainly got some support for the health. SHF merge strings. But so it does deduplicate strings. I don't think it does duplication deduplication of debug strings. So I don't think at the moment I think debug is very much a black box at the moment. It's got some simplified relocation handling for it. But it's not trying very hard to compress debug information at the moment. That's my understanding. I haven't looked too much into that. But yeah I can imagine if you do some special handling of debug. I mean for those of you don't know if you've the amount of debug information totally swamps non debug information. So when I mentioned that one and a half gigabyte clang executable that comes down to about 30 without debug information. So if you compile with gigabytes you're really hurting your linker at this particular point. And so if you start actually peering into debug information and debug information is normally encoded in things like something called ULab encoding. So you can't just jump into the middle of it and do things. So if you're going to process gigabytes worth of debug information you're going to slow your linker right down. But you might get a much smaller output which will then help your debugger start up quickly. So a bit of a trade off there. But yeah as far as I know it doesn't do an awful lot. Yeah. Yeah. Yes. Yes. So certainly it's one of the things I say I would definitely post those. Take those performance numbers with a severe pinch of souls. Other thing LLD and gold are multi threaded BFD is not. It's quite difficult to get an actual are these linkers. You know anyone who's done any compiler to compiler benchmarking will tell you how difficult it is to actually match up. So you've got a roughly fair comparison of what compiler is actually doing at what optimization level. So I would take that as just a you might want to give it a try. Please measure your own code at that particular point. But yeah. No I didn't. I just chose the last link step. So there may be a case of where getting it all of the intermediate parts. So what I did I cheated. I basically said I'm going to go in to the directory that they the bin utils directory they created and I created a sim link in that one. So I just copied it from there. So that's not very nice at that particular point. And yes. I don't know if I went all from the start whether they would have started. Certainly more work to be done at that point. Certainly I think there's been. I'd certainly say it would be a good chance for Chromium because I think I think some Google internal people have. I think that's I think they may even use LLD on X86 instead of the Microsoft linker. Whatever. OK. So LTO the actual thing is the linker actually doesn't play much for part in LTO. So it's I know it's called link time optimisation but it's really only link time optimisation. The linker or the linker's responsibility for that is to collect the bit code files together and spit them back at the code gen. So yes LTO is supported in LLD but it doesn't actually do much more than just say I see this file is bit code spit it back at the LTO code generator. Yeah. OK. Any more questions. Yes. So well OK. So it's under quite heavy development. So it's often OK. So OK. Sorry. I've got to repeat the question. What is LLD like to develop on so. So it's quite a dense code base. There's not actually that many lines of code but it's quite heavy C++ 11. And it's quite you know that almost everything every sort of bit of code does something.  So you know what I mentioned about everything being read once one of the difficulties about that is that you. Well one of the most difficult bits about linker development is knowing what assumptions that you can make at each point in the link. Because at every point you're going from an abstract representation to a concrete one. And you might find that you've broken the assumptions that something's made later on or before. So so I think from based on on my sort of experience with early because it's slightly harder to get started with just because it's it's quite dense. But once you kind of crack that or get your mind around the model that it's using it's fairly fast because it's not that much of a lines of code you can search around it very quickly that type of thing. And it's quite it's very actively refactored. So it's probably going to be quite difficult to maintain downstream patches other that it's quite easy to maintain downstream features. So for example if you wanted a downstream feature where you kind of said call out to a function implements my downstream feature and don't touch any of the generic bits of the code you'll probably be fine. But if you start say oh I've got to add a bit to a data structure you might find that a week's time someone's completely changed that. So yes it is it is not great for code stability right right now I think but but that's got a good and a bad thing because it means it does move forward quite fast. Do you know which company are investing in LLD? OK so from what I know that so this is the question was who's investing in LLD. So in terms of companies I as far as I know that's that's public information that is that the main maintainers that is at Google. I think there's some work from Sony Computer Entertainment. I guess I think that's also sort of done from the BST base. And there's quite a lot of people coming from the BST community. So I would say largely from companies there's people from processing manufacturers. So Linaro on AR64 type thing. I think the main MIPS maintainer I think I don't know whether he works for MIPS. But I'm it's very possible that that he does. So besides the process of manufacturers wanting support for their own architectures I'd say the usual sort of suspects of the large companies that sort of thing. But yeah that other than that look at the maintainers look at their email addresses. So you told us that we should not use LLD if we do not have to use it. But LLD is much, much faster question is if we try to use LLD in a production system would we have to worry about breaking the system where it comes from? Well all I say is that you're at a higher risk. In theory it's all there and it's working. But if you have LLD.BFD you've got every man and his dog linking Linux applications every day with it.  So it's just at the moment your risk is higher because the user base is lower. So it's quite quantifying how high that risk is. I don't know certainly with the amount of BSD things that are being linked right now I would say certainly on AMD64, Aout64. If your application is not trying to do anything too clever bits that gives linker's trouble are often complicated linker scripts, large amounts of thread local storage or weird uses of thread local storage or trying to directly place things with. So if you're doing a pretty much vanilla Linux application or shared library you shouldn't have any problems. It's when you're using special linker features is probably where you'll find that you'll start getting problems is what I would say. So I think one more. Have you tried using a mixture of linkers? I say if I hack into something and I've built it with LLD then a downstream user tries to use C with BFD linker with this shared library. Is that something that's known to work or just going to be tried? So the question is can you mix linker development say a Linux shared library with one linker and then say your downstream user uses a different linker to actually use it. So yes I have tested that at least interactively. Generally that should work because at most point when you actually link against a dynamic library pretty much all that the downstream linker, I'll call it the one that the user uses is just reading the symbol table and as long as LLD has created the symbol table correctly and the versions correctly then all of the real work of generating all of the code to interface of that library is done by the user's linker. So it's fairly low risk that that's the case. So yeah that should be fine. Okay I probably best stop that now and change over to the next one but thank you very much for listening.