Sergiy Kuryata [Sat, 7 Feb 2015 23:16:27 +0000 (15:16 -0800)]
Fix undefined symbols in release build of libcoreclr on Linux
When building a release version of libcoreclr.so on Linux the LLVM toolchain makes optimizations that result in undefined symbols in libcoreclr.so which causes dlopen(“libcoreclr.so”) to fail at runtime. There were three problematic functions:
1. CQuickMemoryBase<SIZE, INCREMENT>::ReSizeNoThrow(SIZE_T iItems)
2. FixupDispatcherContext(...)
3. CodeGen::inst_set_SV_var(GenTreePtr tree); - this function is marked as inline and has the entire body under “#ifdef DEBUG”.
To fix the problem with ReSizeNoThrow I added the “__attribute__((used))” attribute to the declaration of the function. This attribute is enabled for the llvm toolchain only. For the other two functions I have simply removed ‘inline’ since these functions are not performance critical.
[tfs-changeset: 1412107]
Matt Ellis [Sat, 7 Feb 2015 23:09:23 +0000 (15:09 -0800)]
Add missing .gitmirrorall file.
We mirror the newly created Documentation fully between TFS and Git.
[tfs-changeset: 1412105]
Jan Vorlicek [Fri, 6 Feb 2015 22:57:10 +0000 (14:57 -0800)]
Fix PAL_Initialize error reporting
Ensure that when PAL_Initialize fails, the last error is always set. There were failure cases where it didn't set the last error.
Change assert for sizeof(CRITICAL_SECTION) < sizeof(PAL_CRITICAL_SECTION) in CriticalSectionSubSysInitialize to static assert and change the return type to void.
[tfs-changeset: 1411882]
Jan Kotas [Fri, 6 Feb 2015 22:42:56 +0000 (14:42 -0800)]
Merge pull request #115 from richlander/master
Initial commit of 'Introduction to the CLR'
Senthil [Fri, 6 Feb 2015 21:37:57 +0000 (13:37 -0800)]
Merge pull request #86 from maksqwe/assertion_search_fix
Fix non-null assertion search in assertion table
Vance Morrison [Fri, 6 Feb 2015 21:30:24 +0000 (13:30 -0800)]
Initial commit of 'Introduction to the CLR'
Jan Kotas [Fri, 6 Feb 2015 17:49:49 +0000 (09:49 -0800)]
Merge pull request #112 from kangaroo/drop-librt
Remote -lrt from the link as its not needed, and not cross platform
Geoff Norton [Wed, 4 Feb 2015 18:58:39 +0000 (10:58 -0800)]
lrt is not cross platform, lets put this back in when we verify this branch on linux
Jan Kotas [Fri, 6 Feb 2015 15:27:44 +0000 (07:27 -0800)]
Merge pull request #109 from dotnet-bot/from-tfs
Merge changes from TFS
Jan Vorlicek [Fri, 6 Feb 2015 14:48:20 +0000 (06:48 -0800)]
Fix missing CHAIN_SUCCESS_COUNTER symbol in libcoreclr.so
Certain versions of the clang toolchain build libcoreclr.so with this symbol undefined. This symbol is just an alias of g_dispatch_cache_chain_success_counter and the issue was probably caused by the fact that we pass the CHAIN_SUCCESS_COUNTER as a parameter to macro and that macro then appends the @GOTPCREL to the symbol. It seems that in the problematic case, the assembler appends the @GOTPCREL to the CHAIN_SUCCESS_COUNTER instead of the original g_dispatch_cache_chain_success_counter symbol.
Changing the
CHAIN_SUCCESS_COUNTER = g_dispatch_cache_chain_success_counter
to
#define CHAIN_SUCCESS_COUNTER g_dispatch_cache_chain_success_counter
fixes the issue.
[tfs-changeset: 1411600]
Jan Kotas [Fri, 6 Feb 2015 13:22:47 +0000 (05:22 -0800)]
Merge pull request #107 from dotnet-bot/from-tfs
Merge changes from TFS
Jan Vorlicek [Fri, 6 Feb 2015 12:31:14 +0000 (04:31 -0800)]
Fix several warnings in Linux build
1) Usage of partially uninitialized variable when the compiler didn't know the condition is always true. This condition was calling a VolatileRead and only the VolatileRead actually matters so that right PDB annotation is generated and not optimized out in debug optimized builds. So I've removed the if.
2) Usage of nostdinc++ option as a general option - it complained when building C files
3) Usage of an unknown warning disabling compiler option with clang 3.5. The option was needed for clang 3.5.1 and later.
4) Usage of partially uninitialized variable in daccess.cpp - there is a code path that the compiler can see that doesn't initialize the status variable.
5) Empty body of a for loop warning in one or two PAL tests.
[tfs-changeset: 1411579]
Jan Kotas [Fri, 6 Feb 2015 04:42:23 +0000 (20:42 -0800)]
Merge pull request #104 from dotnet-bot/from-tfs
Merge changes from TFS
Eugene Zemtsov [Fri, 6 Feb 2015 03:05:53 +0000 (19:05 -0800)]
Fix build on Linux by resolving case sensitivity issues in md/datasource
[tfs-changeset: 1411310]
Matt Mitchell [Fri, 6 Feb 2015 00:38:11 +0000 (00:38 +0000)]
Merge pull request #96 from mmitche/exe-pdbs
Enable PDB generation for corerun and coreconsole
Pat Gavlin [Fri, 6 Feb 2015 00:08:54 +0000 (16:08 -0800)]
Merge pull request #82 from pgavlin/master
Build fixes for clang3.7 and systems without stropt.h.
Matt Mitchell [Thu, 5 Feb 2015 22:42:03 +0000 (14:42 -0800)]
Enable PDB generation for corerun and coreconsole
Corerun and coreconsole are exes, so they don't share the same linker flags as the shared libraries. Set DEBUG on the EXE flags so that Release always gets debug info.
Don't pass incremental linking, incompatible with debug type
Eugene Zemtsov [Thu, 5 Feb 2015 22:19:32 +0000 (14:19 -0800)]
Make DBI build on Linux
- Compile DBI on Linux.
- Link DBI on Linux to the point when only symbols related to INativePipeline are missing.
In order to completely link DBI we'll have to do some development, and it will be addressed by a separate change.
[tfs-changeset: 1411066]
AlexGhiondea [Thu, 5 Feb 2015 22:09:34 +0000 (14:09 -0800)]
Merge pull request #93 from mmitche/fix-build-error-codes
Fix build.cmd return codes
Matt Mitchell [Thu, 5 Feb 2015 16:51:03 +0000 (08:51 -0800)]
Fix build.cmd return codes
Build script was accidentally wiping the return code of the first msbuild step, causing us to continue building even in failure. Fix this and do a little extra cleanup.
Xy Ziemba [Thu, 5 Feb 2015 19:30:07 +0000 (11:30 -0800)]
Merge pull request #50 from xyziemba/build_fix_1
Make build type and build.sh case insensitive
Xy Ziemba [Thu, 5 Feb 2015 18:56:49 +0000 (10:56 -0800)]
Fix Typo in messages within CMakeLists.txt
"DEBUG, RELEASE and RELWITHDEBINFO" becomes
"DEBUG, RELEASE, or RELWITHDEBINFO"
Xy Ziemba [Thu, 5 Feb 2015 18:09:33 +0000 (10:09 -0800)]
Modify else/endif statements to remove optional expressions
This change removes the expressions within the elseif and
endif blocks. This aligns my changes with pull #69 and should
prevent a merge conflict.
Matt Mitchell [Thu, 5 Feb 2015 16:05:42 +0000 (16:05 +0000)]
Merge pull request #66 from cwmiller/master
Fix build.sh variables
Pat Gavlin [Thu, 5 Feb 2015 00:59:45 +0000 (16:59 -0800)]
Build fixes for clang3.7 and systems without stropt.h.
- Fix setup-compiler-clang to detect binaries outside of /usr/bin
- Fix ambiguously-sized cmp instructions when comparing g_GCShadow and 0
- Remove references to stropt.h. None of the defiinitions in this header
are used by the product, and this header is not present on certain
systems.
Jan Kotas [Thu, 5 Feb 2015 07:44:16 +0000 (23:44 -0800)]
Merge pull request #42 from pborreli/typos
Fixed typos
Maks Naumov [Thu, 5 Feb 2015 07:07:22 +0000 (09:07 +0200)]
Fix non-null assertion search in assertion table
if (impAssertion->assertionKind != OAK_NOT_EQUAL ||
impAssertion->op1.kind != O1K_LCLVAR ||
impAssertion->op1.kind != O2K_CONST_INT ||
impAssertion->op1.vn != chkAssertion->op1.vn)
This condition is always true.
Jan Kotas [Thu, 5 Feb 2015 00:58:52 +0000 (16:58 -0800)]
Merge pull request #80 from sergiy-k/binplace-on-linux
Enable binplacing of native CoreCLR binaries on Linux
Xy Ziemba [Wed, 4 Feb 2015 23:11:50 +0000 (15:11 -0800)]
Add default values to CMAKE_BUILD_TYPE
This helps interactive CMake config tools populate the options
to display for the CMAKE_BUILD_TYPE variable.
Sergiy Kuryata [Wed, 4 Feb 2015 21:59:44 +0000 (13:59 -0800)]
Enable binplacing of native CoreCLR binaries on Linux
This change adds support for binplacing native CoreCLR binaries on Linux to "$__RootBinDir/Product/$__BuildArch/$__BuildType". It reuses the mechanism that we currently have in place for Windows. Similarly to binplace implementation for Windows, it sets an environment variable (__CMakeBinDir) in build.sh and then uses its value in clang-compiler-override.txt to set CMAKE_INSTALL_PREFIX to the desired target location.
Chase Miller [Wed, 4 Feb 2015 16:31:58 +0000 (16:31 +0000)]
Fixed variable issues in build.sh
The clean argument wasn't properly setting the __CleanBuild variable to trigger the clean build operation.
The current build target/type message was using CMD variable substitution syntax instead of BASH.
Jan Kotas [Wed, 4 Feb 2015 21:18:29 +0000 (13:18 -0800)]
Merge pull request #36 from benaadams/patch-1
Avoid unnecessary work for identical locations in Buffer.BlockCopy
Ben Adams [Tue, 3 Feb 2015 21:41:36 +0000 (21:41 +0000)]
Avoid unnecessary work for identical locations in Buffer.BlockCopy
Perform validity checks to ensure parameters are correct but short-circuit
out memmove when exactly the same data would be copied to the same location.
There are a number of occasions; which can be intentional or unintentional,
where the buffer being copied is the same place - e.g an internal buffer is
the same as the return buffer, and there is no need to call memmove's
overwrite safe copy.
Generally the call to BlockCopy will be in a library so it is more practical
to enable the check here rather than alter all the calling functions,
including 3rd party libraries to preform additional checks.
AlexGhiondea [Wed, 4 Feb 2015 19:09:39 +0000 (11:09 -0800)]
Merge pull request #64 from gablank/linux-build-args
Update usage text to show correct arguments.
AlexGhiondea [Wed, 4 Feb 2015 18:54:14 +0000 (10:54 -0800)]
Merge pull request #71 from Alexx999/fix_issue_68
Fix build inside badly named directory
Anders Wenhaug [Wed, 4 Feb 2015 18:41:24 +0000 (19:41 +0100)]
Update usage text to show correct arguments.
The usage text printed the arguments with a capital letter,
whilst the script looked for the same arguments but without
the leading capital letter.
Also reordered the argument help list so it is in the same
order as the script accepts them.
Pascal Borreli [Wed, 4 Feb 2015 00:50:32 +0000 (00:50 +0000)]
Fixed typos
Alexander Vostres [Wed, 4 Feb 2015 17:47:56 +0000 (19:47 +0200)]
Fix build failure with message "Cannot create a package that has no dependencies nor content." #68
Jan Kotas [Wed, 4 Feb 2015 17:29:46 +0000 (09:29 -0800)]
Merge pull request #67 from mogemimi/fix-typo
Fix typo: VT_UNKOWN -> VT_UNKNOWN
Matt Mitchell [Wed, 4 Feb 2015 17:23:22 +0000 (17:23 +0000)]
Merge pull request #56 from maksqwe/fix_get_jit_manager_list
Fix "pNeeded" increment in GetJitManagerList()
mogemimi [Wed, 4 Feb 2015 16:36:02 +0000 (01:36 +0900)]
Fix typo: VT_UNKOWN -> VT_UNKNOWN
Jan Kotas [Wed, 4 Feb 2015 16:10:02 +0000 (08:10 -0800)]
Merge pull request #62 from GeorgeSapkin/comments
Fixed typos
Jan Kotas [Wed, 4 Feb 2015 16:07:42 +0000 (08:07 -0800)]
Merge pull request #53 from ellismg/clean-unicode-characters
Remove non ASCII characters from source files
Jan Kotas [Wed, 4 Feb 2015 15:20:04 +0000 (07:20 -0800)]
Merge pull request #58 from ellismg/fix-h2inc-line-wrapping
Fix h2inc.ps1 generating invalid files on Windows 7
Jan Kotas [Wed, 4 Feb 2015 15:19:17 +0000 (07:19 -0800)]
Merge pull request #46 from AlexGhiondea/master
Remove extraneous mscorlib.txt file
George Sapkin [Wed, 4 Feb 2015 14:42:03 +0000 (15:42 +0100)]
Fixed type: more_spacee_lock > more_space_lock
George Sapkin [Wed, 4 Feb 2015 14:27:35 +0000 (15:27 +0100)]
Fixed typo: gc_reaon > gc_reason
Matt Ellis [Wed, 4 Feb 2015 09:27:56 +0000 (01:27 -0800)]
Fix h2inc.ps1 generating invalid files on Windows 7
On PowerShell 2.0, text written via Write-Output is wrapped based on
the current console settings, even when output is redirected to a
file. This means that the include file we generate will have lines
hard wrapped unless the console is configured to have a width of >
~140 characters. PowerShell 3.0 doesn't seem to have this issue (or
the default width is high enought that we don't run into the
limitation), but PowerShell 2.0 is the default on Windows 7.
This fix explicitly calls Console.WriteLine, which will cause the
output to not be wrapped. Doing things this way means we don't have to
play around with the host's buffer size.
Fixes #57
Maks Naumov [Wed, 4 Feb 2015 08:26:41 +0000 (10:26 +0200)]
Fix "pNeeded" increment in GetJitManagerList()
"++" has a higher priority than "*".
Matt Ellis [Wed, 4 Feb 2015 03:27:37 +0000 (19:27 -0800)]
Remove non ASCII characters from source files
Our native files were more or less encoded in Windows-1252, which
causes problems when we try to compile them on machines where the
current codepage can't represent everything that Windows-1252
can. With this conversion I just moved characters to their ASCII
counterparts (e.g. no smart quotes, the section marker glyph is now
"Section"). There were two places where I couldn't do the straight
forward thing, in object.h we wanted to insert the Per Mille symbol in
a comment so instead I just spelled out the Unicode codepoint. In
morph.cpp, there was a comment pointing to a paper by Torbjörn
Granlund (note the diaeresis above the second o). In this case,
unfortuntely I had to just drop the diaeresis. However, searching for
"Torbjorn Granlund" will lead you to the right person.
Fixes #49
Sergiy Kuryata [Wed, 4 Feb 2015 03:05:58 +0000 (19:05 -0800)]
Merge pull request #48 from ellismg/move-shebang-to-top-of-file
Move shebang to top of shell scripts
Xy Ziemba [Wed, 4 Feb 2015 02:29:51 +0000 (18:29 -0800)]
Make build type and build.sh case insensitive
Before this change, build.sh requires lowercase commands, but
CMAKE_BUILD_TYPE required an uppercase parameter. This fixes that
mismatch by making both case insensitive.
Rich Lander [Wed, 4 Feb 2015 02:11:58 +0000 (18:11 -0800)]
Merge pull request #23 from adityam/patch-2
Correct typo and link to the correct license file
Matt Ellis [Wed, 4 Feb 2015 02:08:38 +0000 (18:08 -0800)]
Move shebang to top of shell scripts
This line should be at the top of the file, not after
comments. Otherwise the correct shell is not picked in some cases
(like when you the scripts file via sudo).
Matt Ellis [Wed, 4 Feb 2015 01:27:04 +0000 (17:27 -0800)]
Merge pull request #41 from dotnet-bot/from-tfs
Merge changes from TFS
alexghiondea [Wed, 4 Feb 2015 00:02:50 +0000 (16:02 -0800)]
Remove extraneous mscorlib.txt file
Jan Vorlicek [Wed, 4 Feb 2015 00:02:18 +0000 (16:02 -0800)]
Move the windows unwinder code out of the debug folder.
It is a preparation for using the DAC unwinder code as an unwinder
for the jitted code on Linux, because the jitter generates windows
style unwind info.
The unwinder is build as a static library and linked to mscordac.
[tfs-changeset: 1409640]
Jan Vorlicek [Tue, 3 Feb 2015 23:19:03 +0000 (00:19 +0100)]
Merge pull request #35 from SirCmpwn/fix-linux-build
Fix error locating llvm-ar during build on Linux
Rama krishnan Raghupathy [Tue, 3 Feb 2015 23:00:38 +0000 (15:00 -0800)]
Merge pull request #38 from ramarag/GC_test
Fixes #37 Missing Files to build GC stress Tests
Drew DeVault [Tue, 3 Feb 2015 21:31:21 +0000 (14:31 -0700)]
Fix error locating llvm-ar during build on Linux
This manually locates the llvm toolchain and sets the relevant cmake
variables. The _CMAKE_TOOLCHAIN_PREFIX variable is internal and
undocumented and should probably be avoided.
Rama krishnan Raghupathy [Tue, 3 Feb 2015 22:05:49 +0000 (14:05 -0800)]
Missing Files to build GC stress Tests
Jan Kotas [Tue, 3 Feb 2015 21:58:45 +0000 (13:58 -0800)]
Merge pull request #32 from jasssonpet/master
Correct typos in paraminstanceapi.h
dotnet-bot [Tue, 3 Feb 2015 21:54:22 +0000 (13:54 -0800)]
Update link in PATENTS.txt
Jason Zhekov [Tue, 3 Feb 2015 20:42:57 +0000 (22:42 +0200)]
Correct typos in paraminstanceapi.h
Matt Ellis [Tue, 3 Feb 2015 19:15:38 +0000 (11:15 -0800)]
Merge pull request #20 from ellismg/fix-mscorlib-warnings
Fix mscorlib warnings.
Matt Ellis [Tue, 3 Feb 2015 19:15:34 +0000 (11:15 -0800)]
Merge pull request #21 from AlexGhiondea/master
Update copyright header
Matt Ellis [Tue, 3 Feb 2015 19:15:23 +0000 (11:15 -0800)]
Merge pull request #24 from DnlHarvey/patch-2
Update README.md
Daniel Harvey [Tue, 3 Feb 2015 19:05:41 +0000 (11:05 -0800)]
Update README.md
- Fix the coreclr blog post to go to the right link.
Gaurav Khanna [Tue, 3 Feb 2015 19:03:27 +0000 (11:03 -0800)]
Merge pull request #19 from weshaggard/FixCMakeMessage
Update the CMake requirement message in build.cmd.
Aditya Mahajan [Tue, 3 Feb 2015 18:57:59 +0000 (13:57 -0500)]
Correct typo and link to the correct license file
dotnet-bot [Tue, 3 Feb 2015 18:27:36 +0000 (10:27 -0800)]
Update copyright header
Wes Haggard [Tue, 3 Feb 2015 18:23:59 +0000 (10:23 -0800)]
Update the CMake requirement message in build.cmd.
Matt Ellis [Tue, 3 Feb 2015 18:18:32 +0000 (10:18 -0800)]
Fix mscorlib warnings.
PinnableBufferCache uses some of the declaritive CAS attributes which
don't mean anything on CoreCLR. We had disabled this warning
internally, but this copy of the file is specific to open source and
we didn't disable it in this file.
This simply ports the change to disable this warning to mscorlib's
copy of the file.
Matt Mitchell [Tue, 3 Feb 2015 18:03:55 +0000 (18:03 +0000)]
Merge pull request #18 from mmitche/update-job-names
Update job names
Matt Mitchell [Tue, 3 Feb 2015 18:02:50 +0000 (10:02 -0800)]
Update job names
Gaurav Khanna [Tue, 3 Feb 2015 13:00:32 +0000 (05:00 -0800)]
Merge pull request #15 from xyziemba/master
Parallelize Linux build by adding "-j `nproc`" to make
Rama krishnan Raghupathy [Tue, 3 Feb 2015 07:29:55 +0000 (23:29 -0800)]
Merge pull request #13 from ramarag/GC_test_build
Enabling GC Stress test build
Xy Ziemba [Tue, 3 Feb 2015 07:18:05 +0000 (23:18 -0800)]
Parallelize Linux build by adding "-j `nproc`" to make
Matt Ellis [Tue, 3 Feb 2015 06:18:23 +0000 (22:18 -0800)]
Merge pull request #14 from dotnet-bot/from-tfs
Merge changes from TFS
Lubomir Litchev [Tue, 3 Feb 2015 05:19:02 +0000 (21:19 -0800)]
This change fixes a potential problem in unwinding on Linux. PUSH and POP instructions were used to preserve RSI/RDI on the stack when stosd instructions are used to initialize the stack vars. These registers are used as the first two parameters to pass parameters to a callee.
The change makes sure there is a FrameRegisterUsed if these PUSH/POPs need to occur. If there is no FrameRegister, the unwinding, if attempted between the first PUSH and the last POP would cause incorrect unwinding of the stack.
SharedCodebaseChange: Yes
SharedCodebaseChangeRisk: Low
[tfs-changeset: 1409112]
Rama krishnan Raghupathy [Tue, 3 Feb 2015 00:54:25 +0000 (16:54 -0800)]
Update stress_run_readme.txt
typo
Rama krishnan Raghupathy [Tue, 3 Feb 2015 00:49:53 +0000 (16:49 -0800)]
Merge pull request #4 from ramarag/msic_test_cleanup
Changes to Miscellaneous test project and runtest
Matt Mitchell [Tue, 3 Feb 2015 00:47:24 +0000 (00:47 +0000)]
Merge pull request #11 from dotnet-bot/from-tfs
Merge changes from TFS
Rama krishnan Raghupathy [Tue, 3 Feb 2015 00:17:40 +0000 (16:17 -0800)]
Enabling build of GC stress Test
Rama krishnan Raghupathy [Tue, 3 Feb 2015 00:12:13 +0000 (16:12 -0800)]
Update runtest.cmd
Matt Mitchell [Mon, 2 Feb 2015 23:47:11 +0000 (23:47 +0000)]
Merge pull request #12 from mmitche/build-status-table
Add release build badge for linux now that it's working
Matt Mitchell [Mon, 2 Feb 2015 23:19:39 +0000 (23:19 +0000)]
Merge pull request #10 from mmitche/linux-release-build
Linux release build
Matt Mitchell [Mon, 2 Feb 2015 23:05:08 +0000 (23:05 +0000)]
Merge pull request #9 from mmitche/fix-out-of-dir-builds
Builds should work from non-root directories
Gaurav Khanna [Mon, 2 Feb 2015 22:26:32 +0000 (14:26 -0800)]
Merge pull request #5 from jkotas/master
Fix build breaks in GC sample project
Gaurav Khanna [Mon, 2 Feb 2015 22:25:40 +0000 (14:25 -0800)]
Merge pull request #3 from dotnet-bot/from-tfs
Merge changes from TFS
Matt Mitchell [Mon, 2 Feb 2015 22:10:37 +0000 (22:10 +0000)]
Merge pull request #7 from mmitche/build-status-table
Build status table
Matt Mitchell [Mon, 2 Feb 2015 22:03:40 +0000 (14:03 -0800)]
Add release build badge for linux now that it's working
Matt Mitchell [Mon, 2 Feb 2015 21:56:58 +0000 (13:56 -0800)]
Builds should work from non-root directories
Matt Mitchell [Mon, 2 Feb 2015 21:45:11 +0000 (13:45 -0800)]
Add a bit more logging and remove meaningless VBL_ROOT parameter
Matt Mitchell [Mon, 2 Feb 2015 21:39:10 +0000 (13:39 -0800)]
Pass correct arguments to CMake for linux release build
Matt Mitchell [Mon, 2 Feb 2015 21:22:01 +0000 (13:22 -0800)]
Remove old build status badge
Matt Mitchell [Mon, 2 Feb 2015 21:10:47 +0000 (13:10 -0800)]
Replace full build status badge with table
Matt Mitchell [Mon, 2 Feb 2015 18:56:52 +0000 (18:56 +0000)]
Merge pull request #6 from mmitche/build-status-badges
Add build status badge
Matt Mitchell [Mon, 2 Feb 2015 16:15:04 +0000 (08:15 -0800)]
Add build status badge
Richard Lander [Sun, 1 Feb 2015 22:06:28 +0000 (14:06 -0800)]
Improve flow of readme