MELD: a Multi-Paradigm Language with Objects, Dataflow and Modules

Total Page:16

File Type:pdf, Size:1020Kb

MELD: a Multi-Paradigm Language with Objects, Dataflow and Modules MELD: A Multi-Paradigm Language with Objects, Dataflow and Modules Gail E. Kaiser Columbia University Department of Computer Science New York, NY 10027 David Garlan Tektronix, Inc. Computer Research Laboratory Beaverton, OR 97077 December 1987 CUCS-281-87 Abstract This technical report consists of the two most recent papers from the MELD project. Melding Software Systems from Reusable Building Blocks describes MELD as a declarative language that combines facilities from the package library, software generation and object-oriented language approaches to reusability. MEWing Data Flow and Object-Oriented Programming emphasizes the multi-paradigm nature of MELD and introduces overriding of inherited facilities and generic features, and discusses compile-time error detection. Prof. Kaiser is supponed in pan by grants from AT&T Foundation, ffiM, Siemens Research and Technology Laboratories, and the New York State Center of Advanced Technology - Com­ puter & Infonnation Systems, and in pan by a Digital Equipment Corporation Faculty Award. When this research was conducted, Dr. Garlan was supported in pan by the United States Anny, Software Technology Development Division of CECOM COMMIADP, Fort Monmouth, NJ and in part by ZTI-SOF of Siemens Corporation, Munich, Gennany. Melding Software Systems from Reusable Building Blocks Gall E. Kalser. Columbia Ulliversity Dayid GanAD. Cantetie MeDoa Ulliversity cannot easily be expanded to meet unan­ ticipated needs. To realize the potential of larae-scale software reusability. three charactensucs urrent apprOKhes to software are reqwred: rewe have nO( lived up to reusa­ • Unauaae independence. to avoid C bility's pocaatiaJ to dramatically early implementation dedsions. Of improve software productivity and main­ course. every notation is a "Ianauaae." ThIs declamth>e tamability. but it is bat to avoid ronCfele representa­ TM shortCOftliIllS of the three m06t tions and control mu"ures until actual language taka the popular aPJ)foaches are discuued in the reuse. when the most effident solutions best /eatura from the bolt on p. ". The pnmary deficiency of can be chosen. three ,.., popular these approaches is that they tiahtly cou­ • Composition of components. to build ple reusable components to their oriainaJ larle software systems to meet complex reusabUlty~ con tal. Either tne reusable components requirements. Procedural invoation of but Ol'efComes their arc _ritlC1l In one l&nluaac and c:anftOt separately developed components works cully be rewed in aDOCber lanluaac or to some extent. but it does not promote /laws. It supports tbey implemau a specirlC abstract data rewe of larle-scale components. language independence, t )1)e aDd/or f uDCtion and c:annot euiJy be • Flexibility. to expand reusability component cOfl1POl!jitba, coaYaUd into the subtly c1iffemu require­ beyond the capabilities and appliations ments of another appliation - or even anticipated by the oriaina! implementor. and toUorfng. the oriJ1Dal appticarjoa - hen it is repaired MOQ ~0ICba reqwre that the complete or mhanad. Fun.bermore. the optioas for set of taiJorina options be dermed when the tlliorinia reusable component are deter­ reusable component is created. These rruncd _hen the component is wnllen and options are not always sufficient. July 1987 17 We have developed a new approach to ~oreover. unlike Ada packages. fea· guage or executed on a new architecture reusable software that has these three tures have the flexibility of classes. A fea­ simply by reimplementing the translator characteristics. The basis of this approach ture's interface impons a group of and runtime suppon. is Meld. • a declarative language that can features. making the classes exponed by Thus. Meld combines the advantages of be translated to an efficient implementa­ these features available within its Imple­ libraries. software generation. and object­ tion in a conventional programming mentation. There. an imponed class can oriented programming - without assum· language. be merged. either with a locally defined ing the limitations of these approaches. An entire software system can be writ­ class or with another imponed class. However. there are cenain important ten in Meld and then translated to the Merging has the effect of inheritance: issues in software reusability we did not desired programming language_ System One class inherits (reuses) all the facilities address. Meld is no better than the Widely maintenance is done with the Meld repre­ already defined for another class and can used approaches at helping programmers sentation rather than the implementation augment and replace any subset of these determine if a particular component IS language. Or an individual component can facilities. suitable for reuse in a particular applica­ be written and maintained in Meld. and its tion. Meld also does not address the sepa­ translation intearated into an application Action equations. Unlike classes, how· rate problem of catqorizinl and retrieving written in a conventional language. Thw. ever. features can combine. as weU as aug­ reusable components. but we are working old code can be combined with compo­ ment and replaA:e, inherited methods. This on this. USinl a conceptual clustering nents written in Meld. is accomplished by writing methods as approach derived from research in artifi­ action equations. Action equations should cial intelligence. Overview of Meld not be confused with mathematical equa­ tions. They were developed to extend Meld is an object~riented lanlUaae in An extended example that it suppons the encapsulation of data attribute p-amman for semutia procesI­ The imponant aspectS of Meld can be and operations as objecu defined by ina of proaramminl environmenu. I iIIwtrated with an extended eumple. classes and the inheritance of separately Actioa equations derIDe (1) me reWioo­ defined data and operations from ances­ ships that must hold amOI1l objects and M..", .......... Suppose a proaram· tor classes. In the context of object­ amon. partS of objects and (2) the mer wuu to implement a facility for load· oriented languaaes. such data arc called dynamic iDlmICtion amon. objects and in, and storinl arbitrary entities to disk. instance variables and such operations are b«weeD objecu and external qcnu (1UCh Traditionally. he miaht modify the entities methods. as users. tbe operatin. system. ud themselves to suppon memory manage­ But Meld hu two essential asP«ts that utilities). malt. Or he milht add the facility directly set it apan from other object-or"iented Ian­ When classes mer.e. separately to the runtime suppon of the program· guages./NtllfU and actio" ftlJMltioflS. inherited methods can be combined by min. Ianauaae. perhaps as a generic assipina them the same selector (the same puk.... Fn....... Fealu.ra arc rcu.sabIc buiJdina method name). Because methods define Neither approach promotes reusability. blocks. Like Ada packqa. their inter· relationsltips and dynamic interactiolU in In the first C&$C. memory manaaement is faces are separate from the imp&emalta­ the aband - u ICtioa equatiolU - specific to the entities. In the second case. tion. A feature bundles a colJec:tioa or rather thaD by • sequence of swemenu. the memory manaaer is reusable only in interrelated classes in iu impiemmtaDon. the behavior oftbe methods is combtDed the seDJC that a text editor or a compiler is: The interface uporu a subMt of thae implicilly. The resultin. compolite I use it today on one file. you use it tomor· classes and I subset of their IDllbodiI behavior doa no« depend on any sequen­ row on IIlOther me. This memory man­ tial ordainl of the methods. IJeT cannot be tailored to the particular I n effect. I (eaturt is a reusable I&Dk needl or the application. larger (hln I subroutiM. on appr'Ou. mat ely the wne scUe. u Ada pack.... I ..... ' ....... Meld is implcmcftted However. with Meld the prOl1ammer by truslaun. ach feature into a convas. COnJU'\ICU a reuaable buildin. block that (hat permits the reuII of the aJlM amon. tiona! prosrunmin. lanauqc and by be incorporated into any system that subroutines (methodI, aDd. in flit:l.1IDOftI a can S1*ial Nfttime mvironmalt thai supporu requires memory manqement. abstract datarypes (cIaIaes). A aeneric rea­ execulion or systems built from features. The Memory Manqer describes the (ure is similar to a aeneric !)Kk. because implanenwion world u seen (rom a simple memory the Inter(ac.c can be instantiated accordina We dIri¥ed the aJeorithma from prev;ous worll on software pnera­ manqcr's point or view. The world con­ to the requirements of the ~red appli. tion, specificaUy luauqe-bued editon, sists or a collection of memory-managed . cation. where performucz .. toad • handc:oded entities Iroupcd under a memory· editon I\u been ac:ttiC'Yed. manqcd rcoc. Eacb memory·managed This imi*mentaUon technique mswa entity hal a unique identifier, a disk loca· -nw cba~ ~ of •• ~ •••, "!IId ~ IMauaP independcnc:e and portability tion, a desianation or whether it is loaded wftl... Of "to __." Mad uo.uds rOf Mu1Itpk because all aimn. feat Urel can be in con Of not, and a time stamp rCllrcsent· EIIladatIOftS or LAIII\&IIII Dacn~. wl\ldl wu wUCSIed by o.nd ...... 0-. produced in a new implementation lan- in. the most recent acceu to it. 18 IEEE SOFTWARE What's wrong with the popular approaches Three approaches to software reusability have achieved Widespread use suo· routine Ilbranes, software generation, and oblect'Ortented programming None has achieved marked gains In productiVity outside of a small set of applI· cation
Recommended publications
  • Fira Code: Monospaced Font with Programming Ligatures
    Personal Open source Business Explore Pricing Blog Support This repository Sign in Sign up tonsky / FiraCode Watch 282 Star 9,014 Fork 255 Code Issues 74 Pull requests 1 Projects 0 Wiki Pulse Graphs Monospaced font with programming ligatures 145 commits 1 branch 15 releases 32 contributors OFL-1.1 master New pull request Find file Clone or download lf- committed with tonsky Add mintty to the ligatures-unsupported list (#284) Latest commit d7dbc2d 16 days ago distr Version 1.203 (added `__`, closes #120) a month ago showcases Version 1.203 (added `__`, closes #120) a month ago .gitignore - Removed `!!!` `???` `;;;` `&&&` `|||` `=~` (closes #167) `~~~` `%%%` 3 months ago FiraCode.glyphs Version 1.203 (added `__`, closes #120) a month ago LICENSE version 0.6 a year ago README.md Add mintty to the ligatures-unsupported list (#284) 16 days ago gen_calt.clj Removed `/**` `**/` and disabled ligatures for `/*/` `*/*` sequences … 2 months ago release.sh removed Retina weight from webfonts 3 months ago README.md Fira Code: monospaced font with programming ligatures Problem Programmers use a lot of symbols, often encoded with several characters. For the human brain, sequences like -> , <= or := are single logical tokens, even if they take two or three characters on the screen. Your eye spends a non-zero amount of energy to scan, parse and join multiple characters into a single logical one. Ideally, all programming languages should be designed with full-fledged Unicode symbols for operators, but that’s not the case yet. Solution Download v1.203 · How to install · News & updates Fira Code is an extension of the Fira Mono font containing a set of ligatures for common programming multi-character combinations.
    [Show full text]
  • An User & Developer Perspective on Immutable Oses
    An User & Developer Perspective on Dario Faggioli Virtualization SW. Eng. @ SUSE Immutable OSes [email protected] dariof @DarioFaggioli https://dariofaggioli.wordpress.com/ https://about.me/dario.faggioli About Me What I do ● Virtualization Specialist Sw. Eng. @ SUSE since 2018, working on Xen, KVM, QEMU, mostly about performance related stuff ● Daily activities ⇒ how and what for I use my workstation ○ Read and send emails (Evolution, git-send-email, stg mail, ...) ○ Write, build & test code (Xen, KVM, Libvirt, QEMU) ○ Work with the Open Build Service (OBS) ○ Browse Web ○ Test OSes in VMs ○ Meetings / Video calls / Online conferences ○ Chat, work and personal ○ Some 3D Printing ○ Occasionally play games ○ Occasional video-editing ○ Maybe scan / print some document 2 ● Can all of the above be done with an immutable OS ? Immutable OS: What ? Either: ● An OS that you cannot modify Or, at least: ● An OS that you will have an hard time modifying What do you mean “modify” ? ● E.g., installing packages ● ⇒ An OS on which you cannot install packages ● ⇒ An OS on which you will have an hard time installing packages 3 Immutable OS: What ? Seriously? 4 Immutable OS: Why ? Because it will stay clean and hard to break ● Does this sound familiar? ○ Let’s install foo, and it’s dependency, libfoobar_1 ○ Let’s install bar (depends from libfoobar_1, we have it already) ○ Actually, let’s add an external repo. It has libfoobar_2 that makes foo work better! ○ Oh no... libfoobar_2 would break bar!! ● Yeah. It happens. Even in the best families distros
    [Show full text]
  • Oracle® Solaris 11.3 Desktop User's Guide
    ® Oracle Solaris 11.3 Desktop User's Guide Part No: E54809 April 2020 Oracle Solaris 11.3 Desktop User's Guide Part No: E54809 Copyright © 2011, 2020, Oracle and/or its affiliates. All rights reserved. This software and related documentation are provided under a license agreement containing restrictions on use and disclosure and are protected by intellectual property laws. Except as expressly permitted in your license agreement or allowed by law, you may not use, copy, reproduce, translate, broadcast, modify, license, transmit, distribute, exhibit, perform, publish, or display any part, in any form, or by any means. Reverse engineering, disassembly, or decompilation of this software, unless required by law for interoperability, is prohibited. The information contained herein is subject to change without notice and is not warranted to be error-free. If you find any errors, please report them to us in writing. If this is software or related documentation that is delivered to the U.S. Government or anyone licensing it on behalf of the U.S. Government, then the following notice is applicable: U.S. GOVERNMENT END USERS: Oracle programs, including any operating system, integrated software, any programs installed on the hardware, and/or documentation, delivered to U.S. Government end users are "commercial computer software" pursuant to the applicable Federal Acquisition Regulation and agency-specific supplemental regulations. As such, use, duplication, disclosure, modification, and adaptation of the programs, including any operating system, integrated software, any programs installed on the hardware, and/or documentation, shall be subject to license terms and license restrictions applicable to the programs. No other rights are granted to the U.S.
    [Show full text]
  • Fedora 17 System Administrator's Guide
    Fedora 17 System Administrator's Guide Deployment, Configuration, and Administration of Fedora 17 Jaromír Hradílek Douglas Silas Martin Prpič Stephen Wadeley Eliška Slobodová Tomáš Čapek Petr Kovář John Ha System Administrator's Guide David O'Brien Michael Hideo Don Domingo Fedora 17 System Administrator's Guide Deployment, Configuration, and Administration of Fedora 17 Edition 1 Author Jaromír Hradílek [email protected] Author Douglas Silas [email protected] Author Martin Prpič [email protected] Author Stephen Wadeley [email protected] Author Eliška Slobodová [email protected] Author Tomáš Čapek [email protected] Author Petr Kovář [email protected] Author John Ha Author David O'Brien Author Michael Hideo Author Don Domingo Copyright © 2012 Red Hat, Inc. and others. The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at http://creativecommons.org/licenses/by-sa/3.0/. The original authors of this document, and Red Hat, designate the Fedora Project as the "Attribution Party" for purposes of CC-BY-SA. In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version. Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law. Red Hat, Red Hat Enterprise Linux, the Shadowman logo, JBoss, MetaMatrix, Fedora, the Infinity Logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
    [Show full text]
  • CDE: Run Any Linux Application On-Demand Without Installation
    CDE: Run Any Linux Application On-Demand Without Installation Philip J. Guo Stanford University [email protected] Abstract with compiling, installing, and configuring software and their myriad of dependencies. For example, the official There is a huge ecosystem of free software for Linux, but Google Chrome help forum for “install/uninstall issues” since each Linux distribution (distro) contains a differ- has over 5800 threads. ent set of pre-installed shared libraries, filesystem layout In addition, a study of US labor statistics predicts that conventions, and other environmental state, it is difficult by 2012, 13 million American workers will do program- to create and distribute software that works without has- ming in their jobs, but amongst those, only 3 million will sle across all distros. Online forums and mailing lists be professional software developers [24]. Thus, there are are filled with discussions of users’ troubles with com- potentially millions of people who still need to get their piling, installing, and configuring Linux software and software to run on other machines but who are unlikely their myriad of dependencies. To address this ubiqui- to invest the effort to create one-click installers or wres- tous problem, we have created an open-source tool called tle with package managers, since their primary job is not CDE that automatically packages up the Code, Data, and to release production-quality software. For example: Environment required to run a set of x86-Linux pro- grams on other x86-Linux machines. Creating a CDE • System administrators often hack together ad- package is as simple as running the target application un- hoc utilities comprised of shell scripts and custom- der CDE’s monitoring, and executing a CDE package re- compiled versions of open-source software, in or- quires no installation, configuration, or root permissions.
    [Show full text]
  • Indicators for Missing Maintainership in Collaborative Open Source Projects
    TECHNISCHE UNIVERSITÄT CAROLO-WILHELMINA ZU BRAUNSCHWEIG Studienarbeit Indicators for Missing Maintainership in Collaborative Open Source Projects Andre Klapper February 04, 2013 Institute of Software Engineering and Automotive Informatics Prof. Dr.-Ing. Ina Schaefer Supervisor: Michael Dukaczewski Affidavit Hereby I, Andre Klapper, declare that I wrote the present thesis without any assis- tance from third parties and without any sources than those indicated in the thesis itself. Braunschweig / Prague, February 04, 2013 Abstract The thesis provides an attempt to use freely accessible metadata in order to identify missing maintainership in free and open source software projects by querying various data sources and rating the gathered information. GNOME and Apache are used as case studies. License This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0) license. Keywords Maintenance, Activity, Open Source, Free Software, Metrics, Metadata, DOAP Contents List of Tablesx 1 Introduction1 1.1 Problem and Motivation.........................1 1.2 Objective.................................2 1.3 Outline...................................3 2 Theoretical Background4 2.1 Reasons for Inactivity..........................4 2.2 Problems Caused by Inactivity......................4 2.3 Ways to Pass Maintainership.......................5 3 Data Sources in Projects7 3.1 Identification and Accessibility......................7 3.2 Potential Sources and their Exploitability................7 3.2.1 Code Repositories.........................8 3.2.2 Mailing Lists...........................9 3.2.3 IRC Chat.............................9 3.2.4 Wikis............................... 10 3.2.5 Issue Tracking Systems...................... 11 3.2.6 Forums............................... 12 3.2.7 Releases.............................. 12 3.2.8 Patch Review........................... 13 3.2.9 Social Media............................ 13 3.2.10 Other Sources..........................
    [Show full text]
  • Awoken Icon Theme - Installation & Customizing Instructions 1
    Awoken Icon Theme - Installation & Customizing Instructions 1 AWOKEN ICON THEME Installation & Customizing Instructions Alessandro Roncone mail: [email protected] homepage: http://alecive.deviantart.com/ Awoken homepage (GNOME Version): link kAwoken homepage (KDE Version): link Contents 1 Iconset Credits 3 2 Copyright 3 3 Installation 3 3.1 GNOME........................................................3 3.2 KDE..........................................................4 4 Customizing Instructions 4 4.1 GNOME........................................................4 4.2 KDE..........................................................5 5 Overview of the customization script6 5.1 How to customize a single iconset..........................................7 6 Customization options 8 6.1 Folder types......................................................8 6.2 Color-NoColor.................................................... 11 6.3 Distributor Logos................................................... 11 6.4 Trash types...................................................... 11 6.5 Other Options.................................................... 11 6.5.1 Gedit icon................................................... 11 6.5.2 Computer icon................................................ 11 6.5.3 Home icon................................................... 11 6.6 Deprecated...................................................... 12 7 How to colorize the iconset 13 8 Icons that don't want to change (but I've drawed) 14 9 Conclusions 15 9.1 Changelog......................................................
    [Show full text]
  • Name Synopsis Description Options
    Ubuntu 19.10 (Eoan Ermine) manpag.es MELD(1) MELD(1) NAME meld −Visual diffand merge tool for the GNOME Desktop SYNOPSIS meld [options] meld [options] FILE1 meld [options] DIR1 meld [options] FILE1 FILE2 [FILE3] meld [options] DIR1 DIR2 [DIR3] DESCRIPTION Meld is a graphical diffviewer and merge application for the GNOME desktop. It supports 2 and 3-file diffs, recursive directory diffs, diffing of directories under version control (Bazaar,CVS, Darcs, Fossil, Git, Mercurial, Monotone), as well as the ability to manually and automatically merge file differences. OPTIONS −−auto-compare, −a Automatically compare all differing files on startup. −−auto−merge Automatically merge files −−comparison−file=<file> Load a savedcomparison from a Meld comparison file −−diff FILE1|DIR1 FILE2|DIR2 [FILE3|DIR3] Create a difftab for the givenfiles or directories. Note that "meld −−diffFILE1 FILE2" is functionally equivalent to "meld FILE1 FILE2". However, the −−diff argument can be given multiple times for one invocation of meld which allows the user to automatically initiate mul- tiple diffs when meld starts. See examples below. −−help, −h Print application help and usage. −−label=<label>, −L <label> Set application windowtitle to <label>. −−newtab, −n Open the comparison as a newtab in an already-running instance. −−output, −o Sets the save path for the middle buffer in a three-pane merge view. This is useful for loading the middle buffer from one file and saving it to another,for example in use as a version control merge helper. −−unified, −u Ignored for compatibility −−version Print application version and exit. EXAMPLES meld Run meld without initiating a diff.
    [Show full text]
  • Licensing Information User Manual Oracle Solaris 11.3 Last Updated September 2018
    Licensing Information User Manual Oracle Solaris 11.3 Last Updated September 2018 Part No: E54836 September 2018 Licensing Information User Manual Oracle Solaris 11.3 Part No: E54836 Copyright © 2018, Oracle and/or its affiliates. All rights reserved. This software and related documentation are provided under a license agreement containing restrictions on use and disclosure and are protected by intellectual property laws. Except as expressly permitted in your license agreement or allowed by law, you may not use, copy, reproduce, translate, broadcast, modify, license, transmit, distribute, exhibit, perform, publish, or display any part, in any form, or by any means. Reverse engineering, disassembly, or decompilation of this software, unless required by law for interoperability, is prohibited. The information contained herein is subject to change without notice and is not warranted to be error-free. If you find any errors, please report them to us in writing. If this is software or related documentation that is delivered to the U.S. Government or anyone licensing it on behalf of the U.S. Government, then the following notice is applicable: U.S. GOVERNMENT END USERS: Oracle programs, including any operating system, integrated software, any programs installed on the hardware, and/or documentation, delivered to U.S. Government end users are "commercial computer software" pursuant to the applicable Federal Acquisition Regulation and agency-specific supplemental regulations. As such, use, duplication, disclosure, modification, and adaptation of the programs, including any operating system, integrated software, any programs installed on the hardware, and/or documentation, shall be subject to license terms and license restrictions applicable to the programs.
    [Show full text]
  • Working with SVN
    MNXB01 2015 Working with SVN Florido Paganelli Lund University [email protected] Florido Paganelli Working with SVN Tutorial 2b 1/66 Outline What are version/revision control systems Generic concepts of version/revision systems SVN Generic concepts of SVN SVN tutorial Florido Paganelli Working with SVN Tutorial 2b 2/66 Notation I will be using the following color code for showing commands: Application options and values Application or program Second parameter in different formats to command command to application First parameter to command app command --option=value -option value inputpar otherinputpar BLANK SPACES Florido Paganelli Working with SVN Tutorial 2b 3/66 Why version/revision systems? Say you wrote some piece of code. You discover a bug and you want to change it. You fix the bug, save the code. Try the program again and… it doesn't work! What went wrong? Would be nice if you could compare what you changed... Solution: make a backup copy before every change! Version systems make it easy to backup and compare changes Florido Paganelli Working with SVN Tutorial 2b 4/66 Why version/revision systems? If you do many changes, you might not remember what changes you made. Version systems allow you to attach a comment to the change. If you want to share your code with other developers, it's nice if everybody can see who changed what. Version systems allow you to author the changes so the others know what you're done. This helps sharing code. Florido Paganelli Working with SVN Tutorial 2b 5/66 Why version/revision systems? Summary: Backup each change in your code Compare different versions of your code Comment and annotate each change Share among developers Florido Paganelli Working with SVN Tutorial 2b 6/66 Concepts of version systems Repository: A database that contains the list of changes made.
    [Show full text]
  • Pdf/Acyclic.1.Pdf
    tldr pages Simplified and community-driven man pages Generated on Sun Sep 26 15:57:34 2021 Android am Android activity manager. More information: https://developer.android.com/studio/command-line/adb#am. • Start a specific activity: am start -n {{com.android.settings/.Settings}} • Start an activity and pass data to it: am start -a {{android.intent.action.VIEW}} -d {{tel:123}} • Start an activity matching a specific action and category: am start -a {{android.intent.action.MAIN}} -c {{android.intent.category.HOME}} • Convert an intent to a URI: am to-uri -a {{android.intent.action.VIEW}} -d {{tel:123}} bugreport Show an Android bug report. This command can only be used through adb shell. More information: https://android.googlesource.com/platform/frameworks/native/+/ master/cmds/bugreport/. • Show a complete bug report of an Android device: bugreport bugreportz Generate a zipped Android bug report. This command can only be used through adb shell. More information: https://android.googlesource.com/platform/frameworks/native/+/ master/cmds/bugreportz/. • Generate a complete zipped bug report of an Android device: bugreportz • Show the progress of a running bugreportz operation: bugreportz -p • Show the version of bugreportz: bugreportz -v • Display help: bugreportz -h cmd Android service manager. More information: https://cs.android.com/android/platform/superproject/+/ master:frameworks/native/cmds/cmd/. • List every running service: cmd -l • Call a specific service: cmd {{alarm}} • Call a service with arguments: cmd {{vibrator}} {{vibrate 300}} dalvikvm Android Java virtual machine. More information: https://source.android.com/devices/tech/dalvik. • Start a Java program: dalvikvm -classpath {{path/to/file.jar}} {{classname}} dumpsys Provide information about Android system services.
    [Show full text]
  • Kdiff3 - Diff-Icult? Benefits of Kdiff3 Usage for Programmers and "Civilians"
    KDiff3 - Diff-icult? Benefits of KDiff3 usage for programmers and "civilians" KDiff3 is a tool for comparison, synchronisation and merge of files and directories By Joachim Eibl KDE Community World Summit 2004 . – p.1/12 Other Free Diff, Merge And Synchronisation Tools GNU-Diffutils (diff, diff3) Meld (written in Python for Gnome, 3-way) Xxdiff (3-way) Kompare (in kdesdk) Unison (rsync-transfer) Tkdiff Dirdiff Gtkdiff KFS (KFileSynchroniser) Winmerge . – p.2/12 Getting started Command line: kdiff3 file1 file2 [file3] [-o outputfile] Open dialog (history-comboboxes) Drag and drop, Copy and paste into diff input window . – p.3/12 Basic Features Diff-highlighting (character by character) Unchanged lines are horizontally aligned Whitespace (spaces, tabs, line-endings) Special treatment of C/C++-comments Overview-columns Merge (2-way) Search-function Copy and paste Word wrap . – p.4/12 3-Way Merge One common base Two branches (created by possibly different developers) Automatic selection of lines that were changed in only one file "Conflicts" when the same lines were changed Special color scheme Integrated merge output editor Saving not possible while conflicts remain . – p.5/12 Preprocessors, sed Normal preprocessor: changes what you really see and get Line-Matching Preprocessor: only affects the line-matching phase of the comparison. Use this to suppress unwanted differences. sed is often the perfect tool for preprocessing sed-Examples: sed s/Regexp/Replacement/g sed 's/#/\/\//' sed 's/\$\(Revision\|Author\|Log\|Header\|Date\).*\$/\$\1\$/' . – p.6/12 Directory Comparison, Synchronisation and Merge 2 and 3-way (automated) merge Recursive operation Color scheme Double-click opens a file Modify the proposed operation by clicking it Run operation for current or all items Special Options (Full Analysis, ...) KIO-support .
    [Show full text]