Operations Hub Open Source Software List

Total Page:16

File Type:pdf, Size:1020Kb

Operations Hub Open Source Software List GE Operations Hub Open Source Software List (for Version 1.7) In accordance with certain software license terms, the General Electric Company (“GE”) makes available the following software package installations. This code is provided to you on an “as is” basis, and GE makes no representations or warranties for the use of this code by you independent of any GE provided software or services. Refer to the licenses and copyright notices files for each package for any specific license terms that apply to each software bundle, associated with this product release. NOTE: These software package versions may change or be removed as needed for updates to this product. Copyright © 2018 General Electric Company. All rights reserved. Page 1 of 67 Software Name & Company Link License Name & Copyright Version Version (by Component) HikariCP https://github.com/brettwooldr Apache 2.0 3.4.2 idge/HikariCP Not found MsSql Jdbc 7.4.1.jre8 Copyright(c) 2019 Microsoft MIT https://www.microsoft.com/ Corporation snakeyaml http://www.snakeyaml.org Copyright (c) 2008, Apache License 2.0 1.2.6 http://www.snakeyaml.org COMMON DEVELOPMENT HK2 Class-Model 2.5.0-b06 https://javaee.github.io/glassfish/ AND DISTRIBUTION LICENSE Copyright (c) 2010-2015 Oracle and/or (CDDL) Version 1.1 its affiliates. All rights reserved. https://code.google.com/archive/p/ Copyright (C) 2003-2013 Virginia Tech. VT Crypt Library 2.1.4 Apache License 2.0 vt-middleware/ All rights reserved. https://code.google.com/archive/p/ Copyright (C) 2003-2013 Virginia Tech. VT Dictionary Libraries 3.0 Apache License 2.0 vt-middleware/ All rights reserved. https://code.google.com/archive/p/ Copyright (C) 2003-2013 Virginia Tech. VT Password Libraries 3.1.2 Apache License 2.0 vt-middleware/ All rights reserved. Copyright (C) 2009-2018 Lightbend akka-actor 2.4.11 https://akka.io/ Apache License 2.0 Inc. <https://www.lightbend.com> Copyright (C) 2009-2018 Lightbend akka-stream 2.4.11 https://akka.io/ Apache License 2.0 Inc. <https://www.lightbend.com> Copyright 2014 - 2016 Softwaremill [http://softwaremill.com] akka-stream-kafka 0.13 https://akka.io/ Apache License 2.0 Copyright 2016 Lightbend Inc. [http://www.lightbend.com] akka-stream-kafka_2.11 2.0.2 https://akka.io/ Apache License 2.0 2011-2020 Lightbend, Inc. AOP Alliance (Java/J2EE AOP http://aopalliance.sourceforge.net Public Domain standard) 1.0 Public Domain aopalliance repackaged as a Sun GPL With Classpath Copyright (c) 2014 Oracle and/or its https://javaee.github.io/hk2/ module 2.5.0-b32 Exception v2.0 affiliates. All rights reserved. Apache Commons Codec (for Copyright 2002-2017 The Apache http://www.apache.org/ Apache License 2.0 Apache Directory Studio) 1.8 Software Foundation Apache Commons FileUpload Copyright 2002-2017 The Apache http://www.apache.org/ Apache License 2.0 1.4 Software Foundation Copyright 2002-2017 The Apache Apache Commons Lang 3.1 http://www.apache.org/ Apache License 2.0 Software Foundation Apache HttpComponents Core Copyright 2002-2017 The Apache http://www.apache.org/ Apache License 2.0 4.2.4 Software Foundation Apache Taglibs 1.2.5 Copyright 2002-2017 The Apache http://www.apache.org/ Apache License 2.0 Software Foundation Apache Kafka - org.apache.kafka:kafka-clients http://www.apache.org/ Apache License 2.0 Copyright 2002-2017 The Apache 2.3.0 Software Foundation Apache Kafka - org.apache.kafka:kafka- http://www.apache.org/ Apache License 2.0 Copyright 2002-2017 The Apache examples 0.9.0.2.4.2.10-1 Software Foundation Apache Log4j - log4j:log4j Copyright 2002-2017 The Apache http://www.apache.org/ Apache License 2.0 1.2.17 Software Foundation Copyright 2002-2017 The Apache Apache POI 3.17 http://www.apache.org/ Apache License 2.0 Software Foundation Apache POI - org.apache.poi:poi-ooxml- http://www.apache.org/ Apache License 2.0 Copyright 2002-2017 The Apache schemas 3.9 Software Foundation Copyright 2002-2017 The Apache Apache Tomcat Unspecified http://www.apache.org/ Apache License 2.0 Software Foundation Copyright 2002-2017 The Apache Apache Tomcat 8.5.27 http://tomcat.apache.org/ Apache License 2.0 Software Foundation Copyright 2002-2017 The Apache Apache XMLBeans 2.3.0 http://www.apache.org/ Apache License 2.0 Software Foundation Copyright 2002-2017 The Apache Apache-Jakarta Codec 1.8 http://www.apache.org/ Apache License 2.0 Software Foundation ASM library repackaged as Sun GPL With Classpath Copyright (c) 2014 Oracle and/or its https://javaee.github.io/hk2/ OSGi bundle 2.5.0-b32 Exception v2.0 affiliates. All rights reserved. Copyright © 2018 General Electric Company. All rights reserved. Page 2 of 67 backport-util-concurrent 3.0 for http://backport- Creative Commons Public Java 1.4 jsr166.sourceforge.net/ Domain Dedication License c3p0 0.9.5.4 Copyright (C) 2015 Machinery For https://github.com/swaldman/c3p0 Eclipse Public License 1.0 Change, Inc. https://commons.apache.org/prop Copyright 2002-2017 The Apache Commons CLI 1.2 Apache License 2.0 er/commons-cli/ Software Foundation https://commons.apache.org/prop Copyright 2002-2017 The Apache Commons IO 2.4 Apache License 2.0 er/commons-cli/ Software Foundation https://commons.apache.org/prop commons-logging 1.2 Apache License 2.0 er/commons-cli/ Copyright 2001-2016 (C) DOM4J - Flexible XML http://dom4j.sourceforge.net dom4j License (BSD 2.0 +) MetaStuff, Ltd. and DOM4J Framework for Java 1.6.1 contributors. All Rights Reserved. Copyright (c) 2007, Eclipse eclipse persistence antlr 2.5.2 http://www.eclipse.org/eclipselink/ Eclipse Public License 1.0 Foundation, Inc. and its licensors. Copyright (c) 2007, Eclipse eclipselink - asm 2.5.2 http://www.eclipse.org/eclipselink/ Eclipse Public License 1.0 Foundation, Inc. and its licensors. Copyright (c) 1998, 2018 Oracle and/or its EclipseLink - Moxy 2.5.2 http://www.eclipse.org/eclipselink/ Eclipse Public License 1.0 affiliates. All rights reserved. Ehcache Core 1.3.0 http://www.ehcache.org/ Apache License 2.0 Copyright 2003-2007 Greg Luck http://code.google.com/p/google- google-guice 2.0 Apache License 2.0 guice/ Copyright (C) 2006 Google Inc. Guava (Google Common https://github.com/google/guava Apache License 2.0 Libraries) 18.0 Copyright (C) 2009 The Guava Authors Copyright (c) 2008-2018, Hazelcast, hazelcast 3.12.2 https://hazelcast.com/ Apache License 2.0 Inc. All Rights Reserved. Adam Stawicki Ahmed Al Hafoudh Alaa Nassef Andrey Derevyanko Andrey Rodionov Benson Margulies Brent Douglas Carlos Vara Carlo de Wolf Chris Beckey Christian Ivan Dag Hovland Davide D'Alto Davide Marchignoli Denis Tiago Doug Lea Emmanuel Bernard Efthymis Sarbanis http://validator.hibernate.org/hiber Federico Hibernate Validator 5.1.1.Final Apache License 2.0 nate-validator Federico Mancini Gavin King George Gastaldi Gerhard Petracek Guillaume Husta Guillaume Smet Gunnar Morling Hardy Ferentschik Henno Vermeulen Hillmer Chona Jan-Willem Willebrands Jason T. Greene Jiri Bilek Julien Furgerot Julien May Juraci Krohling Justin Nauman Kathryn Killebrew Kazuki Shimizu Copyright © 2018 General Electric Company. All rights reserved. Page 3 of 67 Kevin Pollet Khalid Alqinyah Lee KyoungIl Leonardo Loch Zanivan Lucas Pouzac Lukas Niemeier Mark Hobson Marko Bekhta Matthias Kurz Mert Çalişkan Michal Fotyga Nicola Ferraro Nicolas François Paolo Perrotta Pete Muir Rob Dickinson Sanne Grinovero Sebastian Bayerl Shahram Goodarzi Shane Bryzak Shelly McGowan Steve Ebersole Strong Liu Tadhg Pearson Takashi Aoe Tomaz Cerar Tommy Johansen Victor Rezende dos Santos Willi Schönborn Xavier Sosnovsky Yanming Zhou Yoann Rodière Adam Stawicki Ahmed Al Hafoudh Alaa Nassef Andrey Derevyanko Andrey Rodionov Benson Margulies Brent Douglas Carlos Vara Carlo de Wolf Chris Beckey Christian Ivan Dag Hovland Davide D'Alto Davide Marchignoli Denis Tiago Doug Lea Emmanuel Bernard http://validator.hibernate.org/hiber Efthymis Sarbanis Hibernate Validator 5.2.4.Final Apache License 2.0 nate-validator Federico Federico Mancini Gavin King George Gastaldi Gerhard Petracek Guillaume Husta Guillaume Smet Gunnar Morling Hardy Ferentschik Henno Vermeulen Hillmer Chona Jan-Willem Willebrands Jason T. Greene Jiri Bilek Julien Furgerot Julien May Juraci Krohling Justin Nauman Copyright © 2018 General Electric Company. All rights reserved. Page 4 of 67 Kathryn Killebrew Kazuki Shimizu Kevin Pollet Khalid Alqinyah Lee KyoungIl Leonardo Loch Zanivan Lucas Pouzac Lukas Niemeier Mark Hobson Marko Bekhta Matthias Kurz Mert Çalişkan Michal Fotyga Nicola Ferraro Nicolas François Paolo Perrotta Pete Muir Rob Dickinson Sanne Grinovero Sebastian Bayerl Shahram Goodarzi Shane Bryzak Shelly McGowan Steve Ebersole Strong Liu Tadhg Pearson Takashi Aoe Tomaz Cerar Tommy Johansen Victor Rezende dos Santos Willi Schönborn Xavier Sosnovsky Yanming Zhou Yoann Rodière Sun GPL With Classpath Copyright (c) 2014 Oracle and/or its HK2 API module 2.5.0-b32 https://javaee.github.io/hk2/ Exception v2.0 affiliates. All rights reserved. Sun GPL With Classpath Copyright (c) 2014 Oracle and/or its HK2 config types 2.5.0-b32 https://javaee.github.io/hk2/ Exception v2.0 affiliates. All rights reserved. Sun GPL With Classpath Copyright (c) 2014 Oracle and/or its HK2 core module 2.5.0-b32 https://javaee.github.io/hk2/ Exception v2.0 affiliates. All rights reserved. HK2 Implementation Utilities Sun GPL With Classpath Copyright (c) 2014 Oracle and/or its https://javaee.github.io/hk2/ 2.5.0-b32 Exception v2.0 affiliates. All rights reserved. HK2 RunLevel unit tests 2.5.0- Sun GPL With Classpath Copyright (c) 2014 Oracle and/or its https://javaee.github.io/hk2/ b32 Exception v2.0 affiliates. All rights reserved. hk2-config Hub integration Sun GPL With Classpath Copyright (c) 2014 Oracle and/or its https://javaee.github.io/hk2/ 2.5.0-b32 Exception v2.0 affiliates.
Recommended publications
  • What If What I Need Is Not in Powerai (Yet)? What You Need to Know to Build from Scratch?
    IBM Systems What if what I need is not in PowerAI (yet)? What you need to know to build from scratch? Jean-Armand Broyelle June 2018 IBM Systems – Cognitive Era Things to consider when you have to rebuild a framework © 2017 International Business Machines Corporation 2 IBM Systems – Cognitive Era CUDA Downloads © 2017 International Business Machines Corporation 3 IBM Systems – Cognitive Era CUDA 8 – under Legacy Releases © 2017 International Business Machines Corporation 4 IBM Systems – Cognitive Era CUDA 8 Install Steps © 2017 International Business Machines Corporation 5 IBM Systems – Cognitive Era cuDNN and NVIDIA drivers © 2017 International Business Machines Corporation 6 IBM Systems – Cognitive Era cuDNN v6.0 for CUDA 8.0 © 2017 International Business Machines Corporation 7 IBM Systems – Cognitive Era cuDNN and NVIDIA drivers © 2017 International Business Machines Corporation 8 IBM Systems – Cognitive Era © 2017 International Business Machines Corporation 9 IBM Systems – Cognitive Era © 2017 International Business Machines Corporation 10 IBM Systems – Cognitive Era cuDNN and NVIDIA drivers © 2017 International Business Machines Corporation 11 IBM Systems – Cognitive Era Prepare your environment • When something goes wrong it’s better to Remove local anaconda installation $ cd ~; rm –rf anaconda2 .conda • Reinstall anaconda $ cd /tmp; wget https://repo.anaconda.com/archive/Anaconda2-5.1.0-Linux- ppc64le.sh $ bash /tmp/Anaconda2-5.1.0-Linux-ppc64le.sh • Activate PowerAI $ source /opt/DL/tensorflow/bin/tensorflow-activate • When you
    [Show full text]
  • Akka Java Documentation Release 2.2.5
    Akka Java Documentation Release 2.2.5 Typesafe Inc February 19, 2015 CONTENTS 1 Introduction 1 1.1 What is Akka?............................................1 1.2 Why Akka?..............................................3 1.3 Getting Started............................................3 1.4 The Obligatory Hello World.....................................7 1.5 Use-case and Deployment Scenarios.................................8 1.6 Examples of use-cases for Akka...................................9 2 General 10 2.1 Terminology, Concepts........................................ 10 2.2 Actor Systems............................................ 12 2.3 What is an Actor?.......................................... 14 2.4 Supervision and Monitoring..................................... 16 2.5 Actor References, Paths and Addresses............................... 19 2.6 Location Transparency........................................ 25 2.7 Akka and the Java Memory Model.................................. 26 2.8 Message Delivery Guarantees.................................... 28 2.9 Configuration............................................. 33 3 Actors 65 3.1 Actors................................................ 65 3.2 Typed Actors............................................. 84 3.3 Fault Tolerance............................................ 88 3.4 Dispatchers.............................................. 103 3.5 Mailboxes.............................................. 106 3.6 Routing................................................ 111 3.7 Building Finite State Machine
    [Show full text]
  • SDL Livecontent S1000D Delivery Server Installation and Upgrade Manual
    SDL LiveContent S1000D Delivery Server Installation and Upgrade Manual SDL LiveContent S1000D 5.6 January 2018 Legal notice Copyright and trademark information relating to this product release. Copyright © 2009–2018 SDL Group. SDL Group means SDL PLC. and its subsidiaries and affiliates. All intellectual property rights contained herein are the sole and exclusive rights of SDL Group. All references to SDL or SDL Group shall mean SDL PLC. and its subsidiaries and affiliates details of which can be obtained upon written request. All rights reserved. Unless explicitly stated otherwise, all intellectual property rights including those in copyright in the content of this website and documentation are owned by or controlled for these purposes by SDL Group. Except as otherwise expressly permitted hereunder or in accordance with copyright legislation, the content of this site, and/or the documentation may not be copied, reproduced, republished, downloaded, posted, broadcast or transmitted in any way without the express written permission of SDL. LiveContent S1000D is a registered trademark of SDL Group. All other trademarks are the property of their respective owners. The names of other companies and products mentioned herein may be the trademarks of their respective owners. Unless stated to the contrary, no association with any other company or product is intended or should be inferred. This product may include open source or similar third-party software, details of which can be found by clicking the following link: “Acknowledgments ” on page 15. Although SDL Group takes all reasonable measures to provide accurate and comprehensive information about the product, this information is provided as-is and all warranties, conditions or other terms concerning the documentation whether express or implied by statute, common law or otherwise (including those relating to satisfactory quality and fitness for purposes) are excluded to the extent permitted by law.
    [Show full text]
  • Up up and Out: Scaling Software with Akka
    UP UP AND OUT: SCALING SOFTWARE WITH AKKA Jonas Bonér CTO Typesafe @jboner Scaling software with Jonas Bonér CTO Typesafe @jboner ScalingScaling softwaresoftware with with ScalingScaling softwaresoftware with with Akka (Áhkká) The name comes from the goddess in the Sami (native swedes) mythology that represented all the wisdom and beauty in the world. It is also the name of a beautiful mountain in Laponia in the north part of Sweden ScalingScaling softwaresoftware with with Manage System Overload Scale UP & Scale OUT How can we achieve this? How can we achieve this? Let’s use Actors How can we achieve this? What is an Actor? What is an Actor? What is an Actor? • Akka's unit of code organization is called an Actor What is an Actor? • Akka's unit of code organization is called an Actor • Like Java EE servlets and session beans, Actors is a model for organizing your code that keeps many “policy decisions” separate from the business logic What is an Actor? • Akka's unit of code organization is called an Actor • Like Java EE servlets and session beans, Actors is a model for organizing your code that keeps many “policy decisions” separate from the business logic • Actors may be new to many in the Java community, but they are a tried-and-true concept (Hewitt 1973) used for many years in telecom systems with 9 nines uptime Program at a Higher Level Program at a Higher Level Program at a Higher Level • Never think in terms of shared state, state visibility, threads, locks, concurrent collections, thread notifications etc.
    [Show full text]
  • A Software Framework for the Actor Model Focusing on the Optimization of Message Passing
    AICT 2018 : The Fourteenth Advanced International Conference on Telecommunications Actor4j: A Software Framework for the Actor Model Focusing on the Optimization of Message Passing David Alessandro Bauer, Juho Mäkiö Department of Informatics and Electronics University of Applied Sciences Emden/Leer Emden, Germany Email: [email protected], [email protected] Abstract—Common actor implementations often use also the Scale Cube by Abbott [6], which describes the three standardized thread pools without special optimization for the dimensions of scalability. message passing. For that, a high-performance solution was To ensure high parallelization, its one benefit to use worked out. The actor-oriented software framework Akka uses multi-core systems. The computer world of the last few internally a ForkJoinPool that is intended for a MapReduce years has been characterized by a change ("The Free Lunch approach. However, the MapReduce approach is not relevant for message passing, as it may lead to significant performance Is Over" [7]) from constantly increasing computing power losses. One solution is to develop a thread pool that focuses on to multi-core systems due to technical limitations. In the message passing. In the implementation of the Actor4j particular, technical progress always lags behind practical framework, the message queue of the actors is placed in requirements (Wirth's law [8]). Up to now, Moore's law was threads to enable an efficient message exchange. The actors are “that the number of transistors available to semiconductor operated directly from this queue (injecting the message), manufacturers would double approximately every 18 to 24 without further ado.
    [Show full text]
  • Open Source Copyrights
    Kuri App - Open Source Copyrights: 001_talker_listener-master_2015-03-02 ===================================== Source Code can be found at: https://github.com/awesomebytes/python_profiling_tutorial_with_ros 001_talker_listener-master_2016-03-22 ===================================== Source Code can be found at: https://github.com/ashfaqfarooqui/ROSTutorials acl_2.2.52-1_amd64.deb ====================== Licensed under GPL 2.0 License terms can be found at: http://savannah.nongnu.org/projects/acl/ acl_2.2.52-1_i386.deb ===================== Licensed under LGPL 2.1 License terms can be found at: http://metadata.ftp- master.debian.org/changelogs/main/a/acl/acl_2.2.51-8_copyright actionlib-1.11.2 ================ Licensed under BSD Source Code can be found at: https://github.com/ros/actionlib License terms can be found at: http://wiki.ros.org/actionlib actionlib-common-1.5.4 ====================== Licensed under BSD Source Code can be found at: https://github.com/ros-windows/actionlib License terms can be found at: http://wiki.ros.org/actionlib adduser_3.113+nmu3ubuntu3_all.deb ================================= Licensed under GPL 2.0 License terms can be found at: http://mirrors.kernel.org/ubuntu/pool/main/a/adduser/adduser_3.113+nmu3ubuntu3_all. deb alsa-base_1.0.25+dfsg-0ubuntu4_all.deb ====================================== Licensed under GPL 2.0 License terms can be found at: http://mirrors.kernel.org/ubuntu/pool/main/a/alsa- driver/alsa-base_1.0.25+dfsg-0ubuntu4_all.deb alsa-utils_1.0.27.2-1ubuntu2_amd64.deb ======================================
    [Show full text]
  • Mochi-JCST-01-20.Pdf
    Ross R, Amvrosiadis G, Carns P et al. Mochi: Composing data services for high-performance computing environments. JOURNAL OF COMPUTER SCIENCE AND TECHNOLOGY 35(1): 121–144 Jan. 2020. DOI 10.1007/s11390-020-9802-0 Mochi: Composing Data Services for High-Performance Computing Environments Robert B. Ross1, George Amvrosiadis2, Philip Carns1, Charles D. Cranor2, Matthieu Dorier1, Kevin Harms1 Greg Ganger2, Garth Gibson3, Samuel K. Gutierrez4, Robert Latham1, Bob Robey4, Dana Robinson5 Bradley Settlemyer4, Galen Shipman4, Shane Snyder1, Jerome Soumagne5, and Qing Zheng2 1Argonne National Laboratory, Lemont, IL 60439, U.S.A. 2Parallel Data Laboratory, Carnegie Mellon University, Pittsburgh, PA 15213, U.S.A. 3Vector Institute for Artificial Intelligence, Toronto, Ontario, Canada 4Los Alamos National Laboratory, Los Alamos NM, U.S.A. 5The HDF Group, Champaign IL, U.S.A. E-mail: [email protected]; [email protected]; [email protected]; [email protected]; [email protected] E-mail: [email protected]; [email protected]; [email protected]; [email protected] E-mail: [email protected]; [email protected]; [email protected]; {bws, gshipman}@lanl.gov E-mail: [email protected]; [email protected]; [email protected] Received July 1, 2019; revised November 2, 2019. Abstract Technology enhancements and the growing breadth of application workflows running on high-performance computing (HPC) platforms drive the development of new data services that provide high performance on these new platforms, provide capable and productive interfaces and abstractions for a variety of applications, and are readily adapted when new technologies are deployed. The Mochi framework enables composition of specialized distributed data services from a collection of connectable modules and subservices.
    [Show full text]
  • Reactive Programming with Scala, Lagom, Spark, Akka and Play
    Issue October 2016 | presented by www.jaxenter.com #53 The digital magazine for enterprise developers Reactive Programming with Scala, Lagom, Spark, Akka and Play Interview with Scala creator Martin Odersky The state of Scala The Lagom Framework Lagom gives the developer a clear path DevOpsCon 2016: Our mission statement This is how we interpret modern DevOps ©istockphoto.com/moorsky Editorial Reactive programming is gaining momentum “We believe that a coherent approach to systems architec- If the definition “stream of events” does not satisfy your ture is needed, and we believe that all necessary aspects are thirst for knowledge, get ready to find out what reactive pro- already recognized individually: we want systems that are Re- gramming means to our experts in Scala, Lagom, Spark, Akka sponsive, Resilient, Elastic and Message Driven. We call these and Play. Plus, we talked to Scala creator Martin Odersky Reactive Systems.” – The Reactive Manifesto about the impending Scala 2.12, the current state of this pro- Why should anyone adopt reactive programming? Because gramming language and the technical innovations that await it allows you to make code more concise and focus on im- us. portant aspects such as the interdependence of events which Thirsty for more? Open the magazine and see what we have describe the business logic. Reactive programming means dif- prepared for you. ferent things to different people and we are not trying to rein- vent the wheel or define this concept. Instead we are allowing Gabriela Motroc, Editor our authors to prove how Scala, Lagom, Spark, Akka and Play co-exist and work together to create a reactive universe.
    [Show full text]
  • Enforcing Abstract Immutability
    Enforcing Abstract Immutability by Jonathan Eyolfson A thesis presented to the University of Waterloo in fulfillment of the thesis requirement for the degree of Doctor of Philosophy in Electrical and Computer Engineering Waterloo, Ontario, Canada, 2018 © Jonathan Eyolfson 2018 Examining Committee Membership The following served on the Examining Committee for this thesis. The decision of the Examining Committee is by majority vote. External Examiner Ana Milanova Associate Professor Rensselaer Polytechnic Institute Supervisor Patrick Lam Associate Professor University of Waterloo Internal Member Lin Tan Associate Professor University of Waterloo Internal Member Werner Dietl Assistant Professor University of Waterloo Internal-external Member Gregor Richards Assistant Professor University of Waterloo ii I hereby declare that I am the sole author of this thesis. This is a true copy of the thesis, including any required final revisions, as accepted by my examiners. I understand that my thesis may be made electronically available to the public. iii Abstract Researchers have recently proposed a number of systems for expressing, verifying, and inferring immutability declarations. These systems are often rigid, and do not support “abstract immutability”. An abstractly immutable object is an object o which is immutable from the point of view of any external methods. The C++ programming language is not rigid—it allows developers to express intent by adding immutability declarations to methods. Abstract immutability allows for performance improvements such as caching, even in the presence of writes to object fields. This dissertation presents a system to enforce abstract immutability. First, we explore abstract immutability in real-world systems. We found that developers often incorrectly use abstract immutability, perhaps because no programming language helps developers correctly implement abstract immutability.
    [Show full text]
  • Lightweight Affinity and Object Capabilities in Scala
    http://www.diva-portal.org Postprint This is the accepted version of a paper presented at ACM SIGPLAN International Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA). Citation for the original published paper: Haller, P., Loiko, A. (2016) LaCasa: Lightweight Affinity and Object Capabilities in Scala. In: Proceedings of the 2016 ACM SIGPLAN International Conference on Object-Oriented Programming, Systems, Languages, and Applications (pp. 272-291). Association for Computing Machinery (ACM) https://doi.org/10.1145/3022671.2984042 N.B. When citing this work, cite the original published paper. © Author | ACM 2016. This is the author's version of the work. It is posted here for your personal use. Not for redistribution. The definitive Version of Record was published in Proceedings of the 2016 ACM SIGPLAN International Conference on Object-Oriented Programming, Systems, Languages, and Applications, http://dx.doi.org/10.1145/3022671.2984042. Permanent link to this version: http://urn.kb.se/resolve?urn=urn:nbn:se:kth:diva-197902 LACASA: Lightweight Affinity and Object Capabilities in Scala Philipp Haller Alex Loiko KTH Royal Institute of Technology, Sweden Google, Sweden ∗ [email protected] [email protected] Abstract difficulty of reasoning about program behavior and software Aliasing is a known source of challenges in the context of architecture [3], and it can introduce data races in concur- imperative object-oriented languages, which have led to im- rent programs. These observations have informed the devel- portant advances in type systems for aliasing control. How- opment of a number of type disciplines aimed at providing ever, their large-scale adoption has turned out to be a surpris- static aliasing properties, such as linear types [33, 51, 64], ingly difficult challenge.
    [Show full text]
  • A Dataset for Github Repository Deduplication
    A Dataset for GitHub Repository Deduplication Diomidis Spinellis Audris Mockus Zoe Kotti [email protected] {dds,zoekotti}@aueb.gr University of Tennessee Athens University of Economics and Business ABSTRACT select distinct p1, p2 from( select project_commits.project_id as p2, GitHub projects can be easily replicated through the site’s fork first_value(project_commits.project_id) over( process or through a Git clone-push sequence. This is a problem for partition by commit_id empirical software engineering, because it can lead to skewed re- order by mean_metric desc) as p1 sults or mistrained machine learning models. We provide a dataset from project_commits of 10.6 million GitHub projects that are copies of others, and link inner join forkproj.all_project_mean_metric each record with the project’s ultimate parent. The ultimate par- on all_project_mean_metric.project_id = ents were derived from a ranking along six metrics. The related project_commits.project_id) as shared_commits projects were calculated as the connected components of an 18.2 where p1 != p2; million node and 12 million edge denoised graph created by direct- Listing 1: Identification of projects with common commits ing edges to ultimate parents. The graph was created by filtering out more than 30 hand-picked and 2.3 million pattern-matched GitHub contains many millions of copied projects. This is a prob- clumping projects. Projects that introduced unwanted clumping lem for empirical software engineering. First, when data contain- were identified by repeatedly visualizing shortest path distances ing multiple copies of a repository are analyzed, the results can between unrelated important projects. Our dataset identified 30 end up skewed [27]. Second, when such data are used to train thousand duplicate projects in an existing popular reference dataset machine learning models, the corresponding models can behave of 1.8 million projects.
    [Show full text]
  • Comparing Languages for Engineering Server Software: Erlang, Go, and Scala with Akka
    Comparing Languages for Engineering Server Software: Erlang, Go, and Scala with Akka Ivan Valkov, Natalia Chechina, and Phil Trinder School of Computing Science, University of Glasgow G12 8RZ, United Kingdom [email protected], {Natalia.Chechina, Phil.Trinder}@glasgow.ac.uk Abstract functional or object-oriented, with high-level coordination models, Servers are a key element of current IT infrastructures, and must e.g. actors as in Erlang [2] or a process algebra as in Go [6]. Indeed, often deal with large numbers of concurrent requests. The program- the success of some server-based companies is even attributed to ming language used to construct the server has an important role their use of specific languages. As examples WhatsApp’s success in engineering efficient server software, and must support massive is attributed to their use of Erlang [27]; the video streaming leader concurrency on multicore machines with low communication and Twitch uses Go to serve millions of users a day [13]. Research synchronisation overheads. contributions of this paper include the following: This paper investigates 12 highly concurrent programming lan- • A survey of programming language characteristics relevant for guages suitable for engineering servers, and analyses three repre- servers (Section 2.1). sentative languages in detail: Erlang, Go, and Scala with Akka. • The design and implementation of three benchmarks to analyse We have designed three server benchmarks that analyse key per- the multicore server capabilities of Erlang, Go, and Scala with formance characteristics of the languages. The benchmark results Akka (Section 3). suggest that where minimising message latency is crucial, Go and Erlang are best; that Scala with Akka is capable of supporting the • An evaluation of Erlang, Go, and Scala with Akka for key largest number of dormant processes; that for servers that frequently server capabilities, i.e.
    [Show full text]