sassc 1.11.4 → 1.12.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (137) hide show
  1. checksums.yaml +5 -5
  2. data/.travis.yml +2 -2
  3. data/CODE_OF_CONDUCT.md +10 -0
  4. data/README.md +4 -1
  5. data/ext/libsass/.editorconfig +1 -1
  6. data/ext/libsass/.github/CONTRIBUTING.md +7 -7
  7. data/ext/libsass/.github/ISSUE_TEMPLATE.md +31 -6
  8. data/ext/libsass/.gitignore +3 -0
  9. data/ext/libsass/.travis.yml +37 -18
  10. data/ext/libsass/GNUmakefile.am +23 -37
  11. data/ext/libsass/Makefile +10 -6
  12. data/ext/libsass/Makefile.conf +3 -0
  13. data/ext/libsass/Readme.md +68 -63
  14. data/ext/libsass/appveyor.yml +7 -3
  15. data/ext/libsass/configure.ac +10 -14
  16. data/ext/libsass/docs/api-context-internal.md +29 -21
  17. data/ext/libsass/docs/api-context.md +26 -6
  18. data/ext/libsass/docs/api-doc.md +49 -16
  19. data/ext/libsass/docs/api-function-example.md +1 -1
  20. data/ext/libsass/docs/api-function.md +31 -7
  21. data/ext/libsass/docs/api-importer.md +19 -19
  22. data/ext/libsass/docs/api-value.md +4 -2
  23. data/ext/libsass/docs/build-on-windows.md +4 -4
  24. data/ext/libsass/docs/build-with-mingw.md +3 -3
  25. data/ext/libsass/docs/build.md +9 -9
  26. data/ext/libsass/docs/custom-functions-internal.md +10 -8
  27. data/ext/libsass/docs/implementations.md +20 -8
  28. data/ext/libsass/docs/unicode.md +16 -10
  29. data/ext/libsass/include/sass/base.h +0 -3
  30. data/ext/libsass/include/sass/context.h +20 -2
  31. data/ext/libsass/include/sass/functions.h +31 -0
  32. data/ext/libsass/include/sass/values.h +3 -1
  33. data/ext/libsass/include/sass/version.h +1 -1
  34. data/ext/libsass/include/sass/version.h.in +1 -1
  35. data/ext/libsass/include/sass2scss.h +1 -1
  36. data/ext/libsass/res/resource.rc +6 -6
  37. data/ext/libsass/script/ci-build-libsass +10 -5
  38. data/ext/libsass/script/ci-build-plugin +62 -0
  39. data/ext/libsass/script/ci-install-compiler +1 -1
  40. data/ext/libsass/script/ci-install-deps +4 -7
  41. data/ext/libsass/script/ci-report-coverage +13 -3
  42. data/ext/libsass/script/tap-driver +1 -1
  43. data/ext/libsass/script/tap-runner +1 -1
  44. data/ext/libsass/src/GNUmakefile.am +1 -1
  45. data/ext/libsass/src/ast.cpp +537 -762
  46. data/ext/libsass/src/ast.hpp +377 -419
  47. data/ext/libsass/src/ast_def_macros.hpp +26 -1
  48. data/ext/libsass/src/ast_fwd_decl.cpp +29 -0
  49. data/ext/libsass/src/ast_fwd_decl.hpp +94 -21
  50. data/ext/libsass/src/b64/encode.h +3 -1
  51. data/ext/libsass/src/backtrace.cpp +46 -0
  52. data/ext/libsass/src/backtrace.hpp +7 -54
  53. data/ext/libsass/src/bind.cpp +72 -50
  54. data/ext/libsass/src/bind.hpp +0 -1
  55. data/ext/libsass/src/cencode.c +6 -0
  56. data/ext/libsass/src/check_nesting.cpp +157 -135
  57. data/ext/libsass/src/check_nesting.hpp +11 -10
  58. data/ext/libsass/src/color_maps.cpp +10 -6
  59. data/ext/libsass/src/color_maps.hpp +6 -8
  60. data/ext/libsass/src/constants.cpp +4 -3
  61. data/ext/libsass/src/constants.hpp +4 -3
  62. data/ext/libsass/src/context.cpp +110 -47
  63. data/ext/libsass/src/context.hpp +11 -1
  64. data/ext/libsass/src/cssize.cpp +105 -94
  65. data/ext/libsass/src/cssize.hpp +4 -5
  66. data/ext/libsass/src/debugger.hpp +247 -244
  67. data/ext/libsass/src/emitter.cpp +30 -6
  68. data/ext/libsass/src/emitter.hpp +7 -0
  69. data/ext/libsass/src/environment.cpp +67 -16
  70. data/ext/libsass/src/environment.hpp +28 -7
  71. data/ext/libsass/src/error_handling.cpp +92 -64
  72. data/ext/libsass/src/error_handling.hpp +64 -43
  73. data/ext/libsass/src/eval.cpp +494 -544
  74. data/ext/libsass/src/eval.hpp +17 -23
  75. data/ext/libsass/src/expand.cpp +182 -154
  76. data/ext/libsass/src/expand.hpp +4 -5
  77. data/ext/libsass/src/extend.cpp +299 -291
  78. data/ext/libsass/src/extend.hpp +46 -11
  79. data/ext/libsass/src/file.cpp +103 -36
  80. data/ext/libsass/src/file.hpp +21 -4
  81. data/ext/libsass/src/functions.cpp +561 -312
  82. data/ext/libsass/src/functions.hpp +8 -5
  83. data/ext/libsass/src/inspect.cpp +108 -53
  84. data/ext/libsass/src/inspect.hpp +5 -2
  85. data/ext/libsass/src/lexer.cpp +15 -7
  86. data/ext/libsass/src/lexer.hpp +13 -4
  87. data/ext/libsass/src/listize.cpp +3 -2
  88. data/ext/libsass/src/listize.hpp +0 -1
  89. data/ext/libsass/src/memory/SharedPtr.cpp +16 -18
  90. data/ext/libsass/src/memory/SharedPtr.hpp +47 -43
  91. data/ext/libsass/src/node.cpp +34 -38
  92. data/ext/libsass/src/node.hpp +6 -8
  93. data/ext/libsass/src/operation.hpp +2 -2
  94. data/ext/libsass/src/operators.cpp +240 -0
  95. data/ext/libsass/src/operators.hpp +30 -0
  96. data/ext/libsass/src/output.cpp +22 -20
  97. data/ext/libsass/src/parser.cpp +719 -358
  98. data/ext/libsass/src/parser.hpp +57 -22
  99. data/ext/libsass/src/plugins.cpp +28 -10
  100. data/ext/libsass/src/position.cpp +21 -3
  101. data/ext/libsass/src/position.hpp +2 -1
  102. data/ext/libsass/src/prelexer.cpp +104 -19
  103. data/ext/libsass/src/prelexer.hpp +10 -3
  104. data/ext/libsass/src/remove_placeholders.cpp +9 -10
  105. data/ext/libsass/src/remove_placeholders.hpp +1 -5
  106. data/ext/libsass/src/sass.cpp +62 -4
  107. data/ext/libsass/src/sass.hpp +5 -2
  108. data/ext/libsass/src/sass_context.cpp +96 -58
  109. data/ext/libsass/src/sass_context.hpp +7 -5
  110. data/ext/libsass/src/sass_functions.cpp +63 -1
  111. data/ext/libsass/src/sass_functions.hpp +19 -1
  112. data/ext/libsass/src/sass_util.cpp +3 -3
  113. data/ext/libsass/src/sass_util.hpp +4 -4
  114. data/ext/libsass/src/sass_values.cpp +42 -39
  115. data/ext/libsass/src/sass_values.hpp +2 -1
  116. data/ext/libsass/src/source_map.cpp +16 -18
  117. data/ext/libsass/src/subset_map.cpp +6 -8
  118. data/ext/libsass/src/subset_map.hpp +6 -6
  119. data/ext/libsass/src/to_c.cpp +2 -2
  120. data/ext/libsass/src/to_value.cpp +8 -3
  121. data/ext/libsass/src/to_value.hpp +1 -0
  122. data/ext/libsass/src/units.cpp +349 -45
  123. data/ext/libsass/src/units.hpp +39 -22
  124. data/ext/libsass/src/utf8/checked.h +7 -0
  125. data/ext/libsass/src/utf8/unchecked.h +7 -0
  126. data/ext/libsass/src/utf8_string.cpp +1 -1
  127. data/ext/libsass/src/util.cpp +139 -45
  128. data/ext/libsass/src/util.hpp +4 -7
  129. data/ext/libsass/src/values.cpp +15 -23
  130. data/ext/libsass/win/libsass.sln +13 -2
  131. data/ext/libsass/win/libsass.sln.DotSettings +9 -0
  132. data/ext/libsass/win/libsass.targets +3 -0
  133. data/ext/libsass/win/libsass.vcxproj.filters +9 -0
  134. data/lib/sassc/version.rb +1 -1
  135. data/sassc.gemspec +1 -1
  136. data/test/native_test.rb +1 -1
  137. metadata +11 -4
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 3b8c91d0c5dc17fd6a43d789d33f54b31519f223
4
- data.tar.gz: cfef1f727e34adb7e08eb6c629627d399102d08b
2
+ SHA256:
3
+ metadata.gz: ab44abdb4f517313bbeca4618c3c5263c5a2ce18f80344b53cad2a13abca571c
4
+ data.tar.gz: e3a28dae62d1fe1ea9c4f97ee67c8952081facad4816c80d0e55b72b414476a1
5
5
  SHA512:
6
- metadata.gz: 4e1fb2f173c4fdf6c5d30ab48892389c5733588fc9af4f84d8c52c6f4f80c7bb92ca3e31e838d23bd6fdbe930b59c799dff548fd409cacb63d93ce1ed2f596fd
7
- data.tar.gz: 45c212c79867988fe3e2e34162a90c5029dda95e3914d6ae7d06caea099b6d660329ef9a76fbcabebfe45853d9c1ef5fe2f81e1e5d54a40dc9fe34b1e34854f6
6
+ metadata.gz: 6c564ec31e5a8f3e3d13390803acbe204f4033160f2881a5b69b200e1e6c24995e1b0f9e22959dd14c2481fd6b8ccc3f0c3fc692030cbe10c5e077614a1476e4
7
+ data.tar.gz: '09be01e502cf20d52ced8e4e975c8a2327403b51b99c76a9121bc24d821158ff6f016e2779f632fa94f2db3fb7a71d40fcada1f8ecdbb39ae08f82ec4eaf3c10'
@@ -3,8 +3,8 @@ language: ruby
3
3
  bundler_args: "--binstubs --standalone --without documentation --path ../bundle"
4
4
  script: "bundle exec rake test"
5
5
  rvm:
6
- - 2.2.0
7
6
  - 2.3.3
8
- - 2.4.0
7
+ - 2.4.4
8
+ - 2.5.1
9
9
  notifications:
10
10
  email: false
@@ -0,0 +1,10 @@
1
+ Sass is more than a technology; Sass is driven by the community of individuals
2
+ that power its development and use every day. As a community, we want to embrace
3
+ the very differences that have made our collaboration so powerful, and work
4
+ together to provide the best environment for learning, growing, and sharing of
5
+ ideas. It is imperative that we keep Sass a fun, welcoming, challenging, and
6
+ fair place to play.
7
+
8
+ [The full community guidelines can be found on the Sass website.][link]
9
+
10
+ [link]: http://sass-lang.com/community-guidelines
data/README.md CHANGED
@@ -6,7 +6,7 @@ This gem combines the speed of `libsass`, the [Sass C implementation](https://gi
6
6
 
7
7
  ### libsass Version
8
8
 
9
- [3.4.3](https://github.com/sass/libsass/releases/tag/3.4.3)
9
+ [3.5.4](https://github.com/sass/libsass/releases/tag/3.5.4)
10
10
 
11
11
  ## Installation
12
12
 
@@ -48,6 +48,9 @@ This gem is maintained by [Ryan Boland](https://ryanboland.com)
48
48
  and [awesome contributors](https://github.com/bolandrm/sassc-ruby/graphs/contributors).
49
49
 
50
50
  ## Changelog
51
+ - **1.12.0**
52
+ - [Update Libsass to 3.5.4](https://github.com/sass/sassc-ruby/pull/78)
53
+ - [bundler is a development dependency](https://github.com/sass/sassc-ruby/pull/51)
51
54
  - **1.11.4**
52
55
  - Fix `Value::List` related issue with sass 3.5.0
53
56
  - **1.11.3**
@@ -7,7 +7,7 @@ root = true
7
7
  charset = utf-8
8
8
  trim_trailing_whitespace = true
9
9
  insert_final_newline = true
10
- indent_style = spaces
10
+ indent_style = space
11
11
  indent_size = 2
12
12
 
13
13
  [{Makefile, GNUmakefile.am}]
@@ -5,18 +5,18 @@
5
5
  The following is a set of guidelines for contributing to LibSass, which is hosted in the [Sass Organization](https://github.com/sass) on GitHub.
6
6
  These are just guidelines, not rules, use your best judgment and feel free to propose changes to this document in a pull request.
7
7
 
8
- LibSass is a library that implements a [sass language] [8] compiler. As such it does not directly interface with end users (frontend developers).
8
+ LibSass is a library that implements a [sass language][8] compiler. As such it does not directly interface with end users (frontend developers).
9
9
  For direct contributions to the LibSass code base you will need to have at least a rough idea of C++, we will not lie about that.
10
10
  But there are other ways to contribute to the progress of LibSass. All contributions are done via github pull requests.
11
11
 
12
- You can also contribute to the LibSass [documentation] [9] or provide additional [spec tests] [10] (and we will gladly point you in the
12
+ You can also contribute to the LibSass [documentation][9] or provide additional [spec tests][10] (and we will gladly point you in the
13
13
  direction for corners that lack test coverage). Foremost we rely on good and concise bug reports for issues the spec tests do not yet catch.
14
14
 
15
15
  ## Precheck: My Sass isn't compiling
16
- - [ ] Check if you can reproduce the issue via [SourceMap Inspector] [5] (updated regularly).
17
- - [ ] Validate official ruby sass compiler via [SassMeister] [6] produces your expected result.
18
- - [ ] Search for similar issue in [LibSass] [1] and [node-sass] [2] (include closed tickets)
19
- - [ ] Optionally test your code directly with [sass] [7] or [sassc] [3] ([installer] [4])
16
+ - [ ] Check if you can reproduce the issue via [SourceMap Inspector][5] (updated regularly).
17
+ - [ ] Validate official ruby sass compiler via [SassMeister][6] produces your expected result.
18
+ - [ ] Search for similar issue in [LibSass][1] and [node-sass][2] (include closed tickets)
19
+ - [ ] Optionally test your code directly with [sass][7] or [sassc][3] ([installer][4])
20
20
 
21
21
  ## Precheck: My build/install fails
22
22
  - [ ] Problems with building or installing libsass should be directed to implementors first!
@@ -47,7 +47,7 @@ direction for corners that lack test coverage). Foremost we rely on good and con
47
47
  ## What makes a code test case
48
48
 
49
49
  Important is that someone else can get the test case up and running to reproduce it locally. For this
50
- we urge you to verify that your sample yields the expected result by testing it via [SassMeister] [6]
50
+ we urge you to verify that your sample yields the expected result by testing it via [SassMeister][6]
51
51
  or directly via ruby sass or node-sass (or any other libsass implementor) before submitting your bug
52
52
  report. Once you verified all of the above, you may use the template below to file your bug report.
53
53
 
@@ -1,29 +1,54 @@
1
- ### Title: Be as meaningful as possible in 60 chars if possible
1
+ [todo]: # (Title: Be as meaningful as possible)
2
+ [todo]: # (Title: Try to use 60 or less chars)
3
+
4
+ [todo]: # (This is only a template!)
5
+ [todo]: # (remove unneeded bits)
6
+ [todo]: # (use github preview!)
7
+
8
+ ## input.scss
9
+
10
+ [todo]: # (always test and report with scss syntax)
11
+ [todo]: # (use sass only when results differ from scss)
2
12
 
3
- input.scss
4
13
  ```scss
5
14
  test {
6
15
  content: bar
7
16
  }
8
17
  ```
9
18
 
10
- [libsass 3.5.5] [1]
19
+ ## Actual results
20
+
21
+ [todo]: # (update version info!)
22
+
23
+ [libsass 3.X.y][1]
11
24
  ```css
12
25
  test {
13
26
  content: bar; }
14
27
  ```
15
28
 
16
- ruby sass 3.4.21
29
+ ## Expected result
30
+
31
+ [todo]: # (update version info!)
32
+
33
+ ruby sass 3.X.y
17
34
  ```css
18
35
  test {
19
36
  content: bar; }
20
37
  ```
21
38
 
39
+ [todo]: # (update version info!)
40
+ [todo]: # (example for node-sass!)
41
+
22
42
  version info:
23
43
  ```cmd
24
44
  $ node-sass --version
25
- node-sass 3.3.3 (Wrapper) [JavaScript]
26
- libsass 3.2.5 (Sass Compiler) [C/C++]
45
+ node-sass 3.X.y (Wrapper) [JavaScript]
46
+ libsass 3.X.y (Sass Compiler) [C/C++]
27
47
  ```
28
48
 
49
+ [todo]: # (Go to http://libsass.ocbnet.ch/srcmap)
50
+ [todo]: # (Enter your SCSS code and hit compile)
51
+ [todo]: # (Click `bookmark` and replace the url)
52
+ [todo]: # (link is used in actual results above)
53
+
29
54
  [1]: http://libsass.ocbnet.ch/srcmap/#dGVzdCB7CiAgY29udGVudDogYmFyOyB9Cg==
@@ -12,6 +12,8 @@ VERSION
12
12
  .cproject
13
13
  .project
14
14
  .settings/
15
+ *.db
16
+ *.aps
15
17
 
16
18
  # Configuration stuff
17
19
 
@@ -68,6 +70,7 @@ bin/*
68
70
  .libs/
69
71
  win/bin
70
72
  *.user
73
+ win/*.db
71
74
 
72
75
  # Final results
73
76
 
@@ -1,13 +1,6 @@
1
1
  language: cpp
2
2
  sudo: false
3
3
 
4
- os:
5
- - linux
6
- - osx
7
-
8
- compiler:
9
- - gcc
10
- - clang
11
4
 
12
5
  # don't create redundant code coverage reports
13
6
  # - AUTOTOOLS=yes COVERAGE=yes BUILD=static
@@ -19,27 +12,53 @@ compiler:
19
12
  # this will still catch all coding errors!
20
13
  # - AUTOTOOLS=yes COVERAGE=no BUILD=static
21
14
 
22
- env:
23
- - AUTOTOOLS=no COVERAGE=no BUILD=shared
24
- - AUTOTOOLS=no COVERAGE=yes BUILD=static
25
- - AUTOTOOLS=yes COVERAGE=no BUILD=shared
26
-
27
15
  # currenty there are various issues when
28
16
  # built with coverage, clang and autotools
29
17
  # - AUTOTOOLS=yes COVERAGE=yes BUILD=shared
30
18
 
31
19
  matrix:
32
- exclude:
33
- - compiler: clang
34
- env: AUTOTOOLS=yes COVERAGE=yes BUILD=static
20
+ include :
21
+ - os: linux
22
+ compiler: gcc
23
+ env: AUTOTOOLS=no COVERAGE=yes BUILD=static
35
24
  - os: linux
25
+ compiler: g++-5
26
+ env: AUTOTOOLS=yes COVERAGE=no BUILD=shared
27
+ addons:
28
+ apt:
29
+ sources:
30
+ - ubuntu-toolchain-r-test
31
+ packages:
32
+ - g++-5
33
+ - os: linux
34
+ compiler: clang++-3.7
35
+ env: AUTOTOOLS=no COVERAGE=yes BUILD=static
36
+ addons:
37
+ apt:
38
+ sources:
39
+ - ubuntu-toolchain-r-test
40
+ - llvm-toolchain-precise-3.7
41
+ packages:
42
+ - clang-3.7
43
+ - os: linux
44
+ compiler: clang
45
+ env: AUTOTOOLS=yes COVERAGE=no BUILD=shared
46
+ - os: osx
47
+ compiler: clang
36
48
  env: AUTOTOOLS=no COVERAGE=no BUILD=shared
37
49
  - os: osx
38
- compiler: gcc
50
+ compiler: clang
51
+ env: AUTOTOOLS=no COVERAGE=yes BUILD=static
39
52
  - os: osx
40
- env: AUTOTOOLS=no BUILD=static
53
+ compiler: clang
54
+ env: AUTOTOOLS=yes COVERAGE=no BUILD=shared
41
55
 
42
- script: ./script/ci-build-libsass
56
+ script:
57
+ - ./script/ci-build-libsass
58
+ - ./script/ci-build-plugin math
59
+ - ./script/ci-build-plugin glob
60
+ - ./script/ci-build-plugin digest
61
+ - ./script/ci-build-plugin tests
43
62
  before_install: ./script/ci-install-deps
44
63
  install: ./script/ci-install-compiler
45
64
  after_success: ./script/ci-report-coverage
@@ -4,7 +4,7 @@ AM_COPT = -Wall -O2
4
4
  AM_COVLDFLAGS =
5
5
 
6
6
  if ENABLE_COVERAGE
7
- AM_COPT = -O0 --coverage
7
+ AM_COPT = -Wall -O1 -fno-omit-frame-pointer --coverage
8
8
  AM_COVLDFLAGS += -lgcov
9
9
  endif
10
10
 
@@ -25,63 +25,49 @@ else
25
25
  AM_CXXFLAGS += -std=c++0x
26
26
  endif
27
27
 
28
+ TEST_EXTENSIONS = .rb
29
+
28
30
  if ENABLE_TESTS
29
31
 
30
- noinst_PROGRAMS = tester
32
+ SASS_SASSC_PATH ?= $(top_srcdir)/sassc
33
+ SASS_SPEC_PATH ?= $(top_srcdir)/sass-spec
31
34
 
35
+ noinst_PROGRAMS = tester
32
36
  tester_LDADD = src/libsass.la
33
- tester_SOURCES = $(SASS_SASSC_PATH)/sassc.c
34
- tester_VERSION ?= `cd "$(SASS_SASSC_PATH)" && ./version.sh`
35
- tester_CFLAGS = $(AM_CFLAGS) -DSASSC_VERSION="\"$(tester_VERSION)\""
36
- tester_CXXFLAGS = $(AM_CXXFLAGS) -DSASSC_VERSION="\"$(tester_VERSION)\""
37
37
  tester_LDFLAGS = $(AM_LDFLAGS)
38
+ nodist_tester_SOURCES = $(SASS_SASSC_PATH)/sassc.c
39
+ SASS_SASSC_VERSION ?= `cd "$(SASS_SASSC_PATH)" && ./version.sh`
40
+ tester_CFLAGS = $(AM_CFLAGS) -DSASSC_VERSION="\"$(SASS_SASSC_VERSION)\""
41
+ tester_CXXFLAGS = $(AM_CXXFLAGS) -DSASSC_VERSION="\"$(SASS_SASSC_VERSION)\""
38
42
 
39
43
  if ENABLE_COVERAGE
40
44
  nodist_EXTRA_tester_SOURCES = non-existent-file-to-force-CXX-linking.cxx
41
45
  endif
42
46
 
43
- SASS_SASSC_PATH ?= $(top_srcdir)/sassc
44
- SASS_SPEC_PATH ?= $(top_srcdir)/sass-spec
47
+ TESTS = $(SASS_SPEC_PATH)/sass-spec.rb
48
+ RB_LOG_COMPILER = ./script/tap-runner
49
+ AM_RB_LOG_FLAGS = $(RUBY)
45
50
 
46
- TESTS = \
47
- $(SASS_SPEC_PATH)/spec/basic \
48
- $(SASS_SPEC_PATH)/spec/css \
49
- $(SASS_SPEC_PATH)/spec/extend-tests \
50
- $(SASS_SPEC_PATH)/spec/extends \
51
- $(SASS_SPEC_PATH)/spec/libsass \
52
- $(SASS_SPEC_PATH)/spec/libsass-closed-issues \
53
- $(SASS_SPEC_PATH)/spec/maps \
54
- $(SASS_SPEC_PATH)/spec/misc \
55
- $(SASS_SPEC_PATH)/spec/regressions \
56
- $(SASS_SPEC_PATH)/spec/scss \
57
- $(SASS_SPEC_PATH)/spec/scss-tests \
58
- $(SASS_SPEC_PATH)/spec/types
59
-
60
- SASS_TEST_FLAGS = -V 3.4 --impl libsass
61
- LOG_DRIVER = env AM_TAP_AWK='$(AWK)' $(SHELL) ./script/tap-driver
62
- AM_LOG_FLAGS = -c ./tester $(LOG_FLAGS)
63
- if USE_TAP
64
- AM_LOG_FLAGS += -t
65
- SASS_TEST_FLAGS += -t | tapout
66
- LOG_COMPILER = ./script/tap-runner $(RUBY) $(SASS_SPEC_PATH)/sass-spec.rb
67
- else
68
- LOG_COMPILER = $(RUBY) $(SASS_SPEC_PATH)/sass-spec.rb
69
- endif
51
+ SASS_TEST_FLAGS = -V 3.5 --impl libsass
52
+ SASS_TEST_FLAGS += -r $(SASS_SPEC_PATH)
53
+ SASS_TEST_FLAGS += -c $(top_srcdir)/tester$(EXEEXT)
54
+ AM_TESTS_ENVIRONMENT = TEST_FLAGS='$(SASS_TEST_FLAGS)'
70
55
 
71
56
  SASS_TESTER = $(RUBY) $(SASS_SPEC_PATH)/sass-spec.rb
72
- SASS_TESTER += -c $(SASS_LIBSASS_PATH)/tester$(EXEEXT)
73
57
 
74
58
  test:
75
- $(SASS_TESTER) $(LOG_FLAGS) $(SASS_SPEC_PATH) $(SASS_TEST_FLAGS)
59
+ $(SASS_TESTER) $(SASS_TEST_FLAGS)
76
60
 
77
61
  test_build:
78
- $(SASS_TESTER) $(LOG_FLAGS) $(SASS_SPEC_PATH) $(SASS_TEST_FLAGS)
62
+ $(SASS_TESTER) $(SASS_TEST_FLAGS)
79
63
 
80
64
  test_full:
81
- $(SASS_TESTER) --run-todo $(LOG_FLAGS) $(SASS_SPEC_PATH) $(SASS_TEST_FLAGS)
65
+ $(SASS_TESTER) --run-todo $(SASS_TEST_FLAGS)
82
66
 
83
67
  test_probe:
84
- $(SASS_TESTER) --probe-todo $(LOG_FLAGS) $(SASS_SPEC_PATH) $(SASS_TEST_FLAGS)
68
+ $(SASS_TESTER) --probe-todo $(SASS_TEST_FLAGS)
69
+
70
+ .PHONY: test test_build test_full test_probe
85
71
 
86
72
  endif
87
73
 
@@ -15,10 +15,14 @@ INSTALL ?= install
15
15
  CFLAGS ?= -Wall
16
16
  CXXFLAGS ?= -Wall
17
17
  LDFLAGS ?= -Wall
18
- ifneq "$(COVERAGE)" "yes"
18
+ ifeq "x$(COVERAGE)" "x"
19
19
  CFLAGS += -O2
20
20
  CXXFLAGS += -O2
21
21
  LDFLAGS += -O2
22
+ else
23
+ CFLAGS += -O1 -fno-omit-frame-pointer
24
+ CXXFLAGS += -O1 -fno-omit-frame-pointer
25
+ LDFLAGS += -O1 -fno-omit-frame-pointer
22
26
  endif
23
27
  LDFLAGS += -Wl,-undefined,error
24
28
  CAT ?= $(if $(filter $(OS),Windows_NT),type,cat)
@@ -295,7 +299,7 @@ install-shared: $(DESTDIR)$(PREFIX)/lib/libsass.so \
295
299
  install-headers
296
300
 
297
301
  $(SASSC_BIN): $(BUILD)
298
- $(MAKE) -C $(SASS_SASSC_PATH)
302
+ $(MAKE) -C $(SASS_SASSC_PATH) build-$(BUILD)-dev
299
303
 
300
304
  sassc: $(SASSC_BIN)
301
305
  $(SASSC_BIN) -v
@@ -305,16 +309,16 @@ version: $(SASSC_BIN)
305
309
  $(SASSC_BIN) -v
306
310
 
307
311
  test: $(SASSC_BIN)
308
- $(RUBY_BIN) $(SASS_SPEC_PATH)/sass-spec.rb -V 3.4 -c $(SASSC_BIN) --impl libsass $(LOG_FLAGS) $(SASS_SPEC_PATH)/$(SASS_SPEC_SPEC_DIR)
312
+ $(RUBY_BIN) $(SASS_SPEC_PATH)/sass-spec.rb -V 3.5 -c $(SASSC_BIN) --impl libsass $(LOG_FLAGS) $(SASS_SPEC_PATH)/$(SASS_SPEC_SPEC_DIR)
309
313
 
310
314
  test_build: $(SASSC_BIN)
311
- $(RUBY_BIN) $(SASS_SPEC_PATH)/sass-spec.rb -V 3.4 -c $(SASSC_BIN) --impl libsass $(LOG_FLAGS) $(SASS_SPEC_PATH)/$(SASS_SPEC_SPEC_DIR)
315
+ $(RUBY_BIN) $(SASS_SPEC_PATH)/sass-spec.rb -V 3.5 -c $(SASSC_BIN) --impl libsass $(LOG_FLAGS) $(SASS_SPEC_PATH)/$(SASS_SPEC_SPEC_DIR)
312
316
 
313
317
  test_full: $(SASSC_BIN)
314
- $(RUBY_BIN) $(SASS_SPEC_PATH)/sass-spec.rb -V 3.4 -c $(SASSC_BIN) --impl libsass --run-todo $(LOG_FLAGS) $(SASS_SPEC_PATH)/$(SASS_SPEC_SPEC_DIR)
318
+ $(RUBY_BIN) $(SASS_SPEC_PATH)/sass-spec.rb -V 3.5 -c $(SASSC_BIN) --impl libsass --run-todo $(LOG_FLAGS) $(SASS_SPEC_PATH)/$(SASS_SPEC_SPEC_DIR)
315
319
 
316
320
  test_probe: $(SASSC_BIN)
317
- $(RUBY_BIN) $(SASS_SPEC_PATH)/sass-spec.rb -V 3.4 -c $(SASSC_BIN) --impl libsass --probe-todo $(LOG_FLAGS) $(SASS_SPEC_PATH)/$(SASS_SPEC_SPEC_DIR)
321
+ $(RUBY_BIN) $(SASS_SPEC_PATH)/sass-spec.rb -V 3.5 -c $(SASSC_BIN) --impl libsass --probe-todo $(LOG_FLAGS) $(SASS_SPEC_PATH)/$(SASS_SPEC_SPEC_DIR)
318
322
 
319
323
  clean-objects: lib
320
324
  -$(RM) lib/*.a lib/*.so lib/*.dll lib/*.la
@@ -13,6 +13,7 @@ SOURCES = \
13
13
  functions.cpp \
14
14
  color_maps.cpp \
15
15
  environment.cpp \
16
+ ast_fwd_decl.cpp \
16
17
  bind.cpp \
17
18
  file.cpp \
18
19
  util.cpp \
@@ -40,6 +41,8 @@ SOURCES = \
40
41
  sass_context.cpp \
41
42
  sass_functions.cpp \
42
43
  sass2scss.cpp \
44
+ backtrace.cpp \
45
+ operators.cpp \
43
46
  to_c.cpp \
44
47
  to_value.cpp \
45
48
  source_map.cpp \
@@ -1,95 +1,100 @@
1
- LibSass
2
- =======
3
-
4
- by Aaron Leung ([@akhleung]), Hampton Catlin ([@hcatlin]), Marcel Greter ([@mgreter]) and Michael Mifsud ([@xzyfer])
5
-
6
- [![Unix CI](https://travis-ci.org/sass/libsass.svg?branch=master)](https://travis-ci.org/sass/libsass)
7
- [![Windows CI](https://ci.appveyor.com/api/projects/status/github/sass/libsass?svg=true)](https://ci.appveyor.com/project/sass/libsass/branch/master)
8
- [![Bountysource](https://www.bountysource.com/badge/tracker?tracker_id=283068)](https://www.bountysource.com/trackers/283068-libsass?utm_source=283068&utm_medium=shield&utm_campaign=TRACKER_BADGE)
9
- [![Coverage Status](https://img.shields.io/coveralls/sass/libsass.svg)](https://coveralls.io/r/sass/libsass?branch=feature%2Ftest-travis-ci-3)
10
- [![Join us](https://libsass-slack.herokuapp.com/badge.svg)](https://libsass-slack.herokuapp.com/)
11
-
12
- https://github.com/sass/libsass
13
-
14
- LibSass is just a library, but if you want to RUN LibSass,
15
- then go to https://github.com/sass/sassc or
16
- https://github.com/sass/sassc-ruby or
17
- [find your local implementer](docs/implementations.md).
18
-
19
- LibSass requires GCC 4.6+ or Clang/LLVM. If your OS is older, this version may not compile.
20
-
21
- On Windows, you need MinGW with GCC 4.6+ or VS 2013 Update 4+. It is also possible to build LibSass with Clang/LLVM on Windows.
1
+ LibSass - Sass compiler written in C++
2
+ ======================================
3
+
4
+ Currently maintained by Marcel Greter ([@mgreter]) and Michael Mifsud ([@xzyfer])
5
+ Originally created by Aaron Leung ([@akhleung]) and Hampton Catlin ([@hcatlin])
6
+
7
+ [![Unix CI](https://travis-ci.org/sass/libsass.svg?branch=master)](https://travis-ci.org/sass/libsass "Travis CI")
8
+ [![Windows CI](https://ci.appveyor.com/api/projects/status/github/sass/libsass?svg=true)](https://ci.appveyor.com/project/sass/libsass/branch/master "Appveyor CI")
9
+ [![Coverage Status](https://img.shields.io/coveralls/sass/libsass.svg)](https://coveralls.io/r/sass/libsass?branch=feature%2Ftest-travis-ci-3 "Code coverage of spec tests")
10
+ [![Percentage of issues still open](http://isitmaintained.com/badge/open/sass/libsass.svg)](http://isitmaintained.com/project/sass/libsass "Percentage of issues still open")
11
+ [![Average time to resolve an issue](http://isitmaintained.com/badge/resolution/sass/libsass.svg)](http://isitmaintained.com/project/sass/libsass "Average time to resolve an issue")
12
+ [![Bountysource](https://www.bountysource.com/badge/tracker?tracker_id=283068)](https://www.bountysource.com/trackers/283068-libsass?utm_source=283068&utm_medium=shield&utm_campaign=TRACKER_BADGE "Bountysource")
13
+ [![Join us](https://libsass-slack.herokuapp.com/badge.svg)](https://libsass-slack.herokuapp.com/ "Slack communication channels")
14
+
15
+
16
+ [LibSass](https://github.com/sass/libsass "LibSass GitHub Project") is just a library!
17
+ If you want to use LibSass to compile Sass, you need an implementer. Some
18
+ implementations are only bindings into other programming languages. But most also
19
+ ship with a command line interface (CLI) you can use directly. There is also
20
+ [SassC](https://github.com/sass/sassc), which is the official lightweight
21
+ CLI tool built by the same people as LibSass.
22
+
23
+ ### Excerpt of "sanctioned" implementations:
24
+
25
+ - https://github.com/sass/node-sass (Node.js)
26
+ - https://github.com/sass/perl-libsass (Perl)
27
+ - https://github.com/sass/libsass-python (Python)
28
+ - https://github.com/wellington/go-libsass (Go)
29
+ - https://github.com/sass/sassc-ruby (Ruby)
30
+ - https://github.com/sass/libsass-net (C#)
31
+ - https://github.com/medialize/sass.js (JS)
32
+ - https://github.com/bit3/jsass (Java)
33
+
34
+ This list does not say anything about the quality of either the listed or not listed [implementations](docs/implementations.md)!
35
+ The authors of the listed projects above are just known to work regularly together with LibSass developers.
22
36
 
23
37
  About
24
38
  -----
25
39
 
26
- LibSass is a C/C++ port of the Sass CSS precompiler. The original version was written in Ruby, but this version is meant for efficiency and portability.
27
-
28
- This library strives to be light, simple, and easy to build and integrate with a variety of platforms and languages.
40
+ LibSass is a C++ port of the original Ruby Sass CSS compiler with a [C API](docs/api-doc.md).
41
+ We coded LibSass with portability and efficiency in mind. You can expect LibSass to be a lot
42
+ faster than Ruby Sass and on par or faster than the best alternative CSS compilers around.
29
43
 
30
44
  Developing
31
45
  ----------
32
46
 
33
- As you may have noticed, the LibSass repo itself has
34
- no executables and no tests. Oh noes! How can you develop???
35
-
36
- Well, luckily, [SassC](http://github.com/sass/sassc) is the official binary wrapper for
37
- LibSass and is *always* kept in sync. SassC is used by continous integration systems in
38
- LibSass repository. When developing LibSass, it is best to actually
39
- checkout SassC and develop in that directory with the SassC spec
40
- and tests there.
41
-
42
- We even run Travis tests for SassC!
47
+ As noted above, the LibSass repository does not contain any binaries or other way to execute
48
+ LibSass. Therefore, you need an implementer to develop LibSass. Easiest is to start with
49
+ the official [SassC](http://github.com/sass/sassc) CLI wrapper. It is *guaranteed* to compile
50
+ with the latest code in LibSass master, since it is also used in the CI process. There is no
51
+ limitation here, as you may use any other LibSass implementer to test your LibSass branch!
43
52
 
44
- Tests
53
+ Testing
45
54
  -------
46
55
 
47
- Since LibSass is a pure library, tests are run through the [SassSpec](https://github.com/sass/sass-spec) project using the [SassC](http://github.com/sass/sassc) driver.
56
+ Since LibSass is a pure library, tests are run through the [Sass-Spec](https://github.com/sass/sass-spec)
57
+ project using the [SassC](http://github.com/sass/sassc) CLI wrapper. To run the tests against LibSass while
58
+ developing, you can run `./script/spec`. This will clone SassC and Sass-Spec under the project folder and
59
+ then run the Sass-Spec test suite. You may want to update the clones to ensure you have the latest version.
60
+ Note that the scripts in the `./script` folder are mainly intended for our CI needs.
48
61
 
49
- To run tests against LibSass while developing, you can run `./script/spec`. This will clone SassC and Sass-Spec under the project folder and then run the Sass-Spec test suite. You may want to update the clones to ensure you have the latest version.
62
+ Building
63
+ --------
50
64
 
51
- ### DEBUG builds
65
+ To build LibSass you need GCC 4.6+ or Clang/LLVM. If your OS is older, you may need to upgrade
66
+ them first (or install clang as an alternative). On Windows, you need MinGW with GCC 4.6+ or VS 2013
67
+ Update 4+. It is also possible to build LibSass with Clang/LLVM on Windows with various build chains
68
+ and/or command line interpreters.
52
69
 
53
- Set the environment variable `DEBUG` to `1` to enable debug builds that can be debugged
54
- with `gdb`, `lldb` and others. E.g.: use `$ DEBUG=1 ./script/spec` to run the tests with
55
- a debug build.
70
+ See the [build docs for further instructions](docs/build.md)!
56
71
 
57
- Library Usage
72
+ Compatibility
58
73
  -------------
59
74
 
60
- While LibSass is a library primarily written in C++, it provides a simple
61
- C interface which should be used by most implementers. LibSass does not do
62
- much on its own without an implementer. This can be a command line tool, like
63
- [sassc](https://github.com/sass/sassc) or a [binding](docs/implementations.md)
64
- to your favorite programing language.
65
-
66
- If you want to build or interface with LibSass, we recommend to check out the
67
- documentation pages about [building LibSass](docs/build.md) and
68
- the [C-API documentation](docs/api-doc.md).
75
+ Current LibSass 3.4 should be compatible with Sass 3.4. Please refer to the [sass compatibility
76
+ page](http://sass-compatibility.github.io/) for a more detailed comparison. But note that there
77
+ are still a few incomplete edges which we are aware of. Otherwise LibSass has reached a good level
78
+ of stability, thanks to our ever growing [Sass-Spec test suite](https://github.com/sass/sass-spec).
69
79
 
70
80
  About Sass
71
81
  ----------
72
82
 
73
- Sass is a CSS pre-processor language to add on exciting, new,
74
- awesome features to CSS. Sass was the first language of its kind
75
- and by far the most mature and up to date codebase.
83
+ Sass is a CSS pre-processor language to add on exciting, new, awesome features to CSS. Sass was
84
+ the first language of its kind and by far the most mature and up to date codebase.
76
85
 
77
- Sass was originally concieved of by the co-creator of this library,
78
- Hampton Catlin ([@hcatlin]). Most of the language has been the result of years
79
- of work by Natalie Weizenbaum ([@nex3]) and Chris Eppstein ([@chriseppstein]).
86
+ Sass was originally conceived of by the co-creator of this library, Hampton Catlin ([@hcatlin]).
87
+ Most of the language has been the result of years of work by Natalie Weizenbaum ([@nex3]) and
88
+ Chris Eppstein ([@chriseppstein]).
80
89
 
81
90
  For more information about Sass itself, please visit http://sass-lang.com
82
91
 
83
- Initial development of libsass by Aaron Leung and Hampton Catlin was supported by [Moovweb](http://www.moovweb.com).
92
+ Initial development of LibSass by Aaron Leung and Hampton Catlin was supported by [Moovweb](http://www.moovweb.com).
84
93
 
85
94
  Licensing
86
95
  ---------
87
96
 
88
- Our MIT license is designed to be as simple, and liberal as possible.
89
-
90
- sass2scss was originally written by [Marcel Greter][@mgreter]
91
- and he happily agreed to have it merged into the project.
92
-
97
+ Our [MIT license](LICENSE) is designed to be as simple and liberal as possible.
93
98
 
94
99
  [@hcatlin]: https://github.com/hcatlin
95
100
  [@akhleung]: https://github.com/akhleung