GithubHelp home page GithubHelp logo

austinzheng / swift-lldb Goto Github PK

View Code? Open in Web Editor NEW

This project forked from apple/swift-lldb

0.0 2.0 0.0 77.29 MB

This is the version of LLDB that supports the Swift programming language & REPL.

License: Other

CMake 0.19% Shell 0.04% Makefile 0.26% C++ 55.97% C 0.10% Python 8.00% Perl 0.23% Swift 0.27% Objective-C 0.19% Go 0.01% Objective-C++ 0.01% Vim Script 0.02% HTML 34.63% CSS 0.06% JavaScript 0.03%

swift-lldb's Introduction

Swift Debugger and REPL

Welcome to the Swift Debugger and REPL!

Swift is a new, high performance systems programming language. It has a clean and modern syntax, and offers seamless access to existing C and Objective-C code and frameworks, and is memory safe (by default).

This repository covers the Swift Debugger and REPL support, built on top of the LLDB Debugger.

Building LLDB for Swift

To build LLDB for Swift, you must have the following pre-requisites installed on your development system:

  • OS X Requirements

  • Linux x86_64 (Ubuntu 14.04, Ubuntu 15.10)

    • clang 3.5 or later.

    • Cmake (version 2.8.12.2 or later)

    • python 2.7

Once the pre-requisites are satisfied, follow these steps from a bash-like shell:

mkdir myswift
cd myswift
git clone https://github.com/apple/swift-lldb.git lldb
lldb/scripts/build-swift-cmake.py --test

The lldb build script will clone additional repositories for required dependencies if they are not already present. An optional --update argument can be used to refresh these required repositories. Products of the build process will be placed in the build/ directory under the root source directory.

Inter-project Directory Layout

LLDB for Swift introduces new dependencies that do not exist with core LLDB. In particular, LLDB for Swift makes extensive use of the Swift codebase.

Each one of directories listed below underneath the overall source_root are backed by a Swift.org repository:

.
+-- clang/
|
+-- cmark/
|
+-- lldb/
|
+-- llvm/
|
+-- ninja/
|
+-- swift/

Details on the contents:

  • clang

    contains the stable version of clang used by Swift.

  • cmark

    contains markdown support used by Swift.

  • lldb

    Contains the LLDB source that includes Swift support. All of LLDB for Swift is contained in this repository. Core LLDB contents are merged into this repository. No other copy of LLDB source code is required.

  • llvm

    Contains the stable version of llvm used by Swift.

  • ninja

    Contains the ninja build system.

  • swift

    Contains the Swift Language and Swift Runtime code.

Note if you don't use the build-swift-cmake.py script to do the initial clone of the related project repositories, you'll need to manually clone them to the names above:

Contribution Subtleties

The swift-lldb project enhances the core LLDB project developed under the LLVM Project. Swift support in the debugger is added via the existing source-level plugin infrastructure, isolated to files that are newly introduced in the lldb-swift repository.

Files that come from the core LLDB project can be readily identified by their use of the LLVM comment header. As no local changes should be made to any of these files, follow the standard guidance for upstream changes.

swift-lldb's People

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.