]> gitweb.factorcode.org Git - factor.git/commitdiff
Fix conflict
authorSlava Pestov <slava@slava-pestovs-macbook-pro.local>
Sat, 29 Nov 2008 11:14:49 +0000 (05:14 -0600)
committerSlava Pestov <slava@slava-pestovs-macbook-pro.local>
Sat, 29 Nov 2008 11:14:49 +0000 (05:14 -0600)
14 files changed:
1  2 
basis/alien/c-types/c-types-tests.factor
basis/alien/c-types/c-types.factor
basis/alien/structs/structs.factor
basis/compiler/tests/alien.factor
basis/compiler/tests/codegen.factor
basis/compiler/tree/propagation/propagation-tests.factor
basis/locals/locals.factor
basis/opengl/opengl.factor
basis/ui/gadgets/buttons/buttons.factor
basis/ui/render/render.factor
core/syntax/syntax.factor
core/words/words.factor
extra/cfdg/cfdg.factor
extra/hello-world/deploy.factor

index 13ea115089811c4b18c79a31764cc292389cdd96,5c4f022e9390fce4eaf2855abd2dce6269244f1a..f57d102452ca132031787331aef8201729158683
@@@ -54,3 -54,9 +54,7 @@@ TYPEDEF: uchar* MyLPBYT
  [
      0 B{ 1 2 3 4 } <displaced-alien> <void*>
  ] must-fail
 -[ t ] [ { t f t } >c-bool-array { 1 0 1 } >c-int-array = ] unit-test
 -
 -    [ -2147467259 ] [ 2147500037 <long> *long  ] unit-test
+ os windows? cpu x86.64? and [
++    [ -2147467259 ] [ 2147500037 <long> *long ] unit-test
+ ] when
index dc825076c028600a6916385416e97c078d4548ed,46d63c33756d62c47299f2fd906769ff7360e525..7500a12832b62a0a83f5042c923be022440aae40
@@@ -19,7 -20,8 +20,8 @@@ reg-class size align stack-align? 
  
  : new-c-type ( class -- type )
      new
-         int-regs >>reg-class ; inline
+         int-regs >>reg-class
 -        object >>class ;
++        object >>class ; inline
  
  : <c-type> ( -- type )
      \ c-type new-c-type ;
@@@ -261,19 -312,9 +269,20 @@@ M: long-long-type box-return ( type -- 
  : if-void ( type true false -- )
      pick "void" = [ drop nip call ] [ nip call ] if ; inline
  
 +: primitive-types
 +    {
 +        "char" "uchar"
 +        "short" "ushort"
 +        "int" "uint"
 +        "long" "ulong"
 +        "longlong" "ulonglong"
 +        "float" "double"
 +        "void*" "bool"
 +    } ;
 +
  [
      <c-type>
+         c-ptr >>class
          [ alien-cell ] >>getter
          [ set-alien-cell ] >>setter
          bootstrap-cell >>size
Simple merge
Simple merge
index 2375e3da35f1b3727f8406fdeb97888250298113,59434b6dc5f2dcee0045a2bef58e74e5a9614859..e743c8484bc3c2cc1e9786e5822380ab27bc822e
@@@ -3,7 -3,7 +3,7 @@@ kernel.private math hashtables.private 
  sequences sequences.private tools.test namespaces.private
  slots.private sequences.private byte-arrays alien
  alien.accessors layouts words definitions compiler.units io
- combinators vectors ;
 -combinators vectors float-arrays grouping make ;
++combinators vectors grouping make ;
  IN: compiler.tests
  
  ! Originally, this file did black box testing of templating
index 865852e99f69a9e325ef00e98731083a2673faf9,5a7b09603972f4af142235d5af57d5f215fe3d8d..a7d69bd5ed6f5aaa808d873f5685efb3a959db7f
@@@ -8,7 -8,7 +8,7 @@@ math.functions math.private strings lay
  compiler.tree.propagation.info compiler.tree.def-use
  compiler.tree.debugger compiler.tree.checker
  slots.private words hashtables classes assocs locals
- specialized-arrays.double system sorting ;
 -float-arrays system sorting math.libm ;
++specialized-arrays.double system sorting math.libm ;
  IN: compiler.tree.propagation.tests
  
  \ propagate must-infer
index ca972e72348acc61de0eff909524872c37b93a79,d2b057953c55249335d0a7627f718edb1a960644..ee6f0d216627934aaa8f0b34256f153ce8f84009
@@@ -276,20 -316,21 +316,20 @@@ SYMBOL: in-lambda
      "|" parse-tokens make-locals dup push-locals
      \ ] (parse-lambda) <lambda> ;
  
 -: parse-binding ( -- pair/f )
 +: parse-binding ( end -- pair/f )
-     scan tuck = [
-         drop f
-     ] [
-         scan-object 2array
-     ] if ;
+     scan {
+         { [ dup not ] [ unexpected-eof ] }
 -        { [ dup "|" = ] [ drop f ] }
 -        { [ dup "!" = ] [ drop POSTPONE: ! parse-binding ] }
 -        [ scan-object 2array ]
++        { [ 2dup = ] [ 2drop f ] }
++        [ nip scan-object 2array ]
+     } cond ;
  
 -: (parse-bindings) ( -- )
 -    parse-binding [
 +: (parse-bindings) ( end -- )
 +    dup parse-binding dup [
-         first2 >r make-local r> 2array ,
+         first2 [ make-local ] dip 2array ,
          (parse-bindings)
 -    ] when* ;
 +    ] [ 2drop ] if ;
  
 -: parse-bindings ( -- bindings vars )
 +: parse-bindings ( end -- bindings vars )
      [
          [ (parse-bindings) ] H{ } make-assoc
          dup push-locals
          ] { } make-assoc
      ] { } make swap ;
  
 -: (parse-wbindings) ( -- )
 -    parse-binding [
 -        first2 [ make-local-word ] keep 2array ,
 +: (parse-wbindings) ( end -- )
 +    dup parse-binding dup [
-         first2 >r make-local-word r> 2array ,
++        first2 [ make-local-word ] dip 2array ,
          (parse-wbindings)
 -    ] when* ;
 +    ] [ 2drop ] if ;
  
 -: parse-wbindings ( -- bindings vars )
 +: parse-wbindings ( end -- bindings vars )
      [
          [ (parse-wbindings) ] H{ } make-assoc
          dup push-locals
@@@ -333,7 -374,7 +373,7 @@@ M: wlet local-rewrite
      let-rewrite ;
  
  : parse-locals ( -- vars assoc )
-     scan "(" assert= ")" parse-effect
 -    ")" parse-effect
++    scan ")" parse-effect
      word [ over "declared-effect" set-word-prop ] when*
      in>> [ dup pair? [ first ] when ] map make-locals dup push-locals ;
  
@@@ -356,15 -397,15 +396,15 @@@ PRIVATE
  : [| parse-lambda parsed-lambda ; parsing
  
  : [let
-     scan "|" assert= "|" parse-bindings
 -    "|" expect parse-bindings
++    "|" expect "|" parse-bindings
      \ ] (parse-lambda) <let> parsed-lambda ; parsing
  
  : [let*
-     scan "|" assert= "|" parse-bindings*
 -    "|" expect parse-bindings*
++    "|" expect "|" parse-bindings*
      \ ] (parse-lambda) <let*> parsed-lambda ; parsing
  
  : [wlet
-     scan "|" assert= "|" parse-wbindings
 -    "|" expect parse-wbindings
++    "|" expect "|" parse-wbindings
      \ ] (parse-lambda) <wlet> parsed-lambda ; parsing
  
  : :: (::) define ; parsing
index 5fd0f56bbf4c6f9faa79653d4ceab6bbf0060cd9,d9a9b9bf40a4591d237a638d42e9ad684baf24c2..ac484c2ddd921d362702138d9879c68d9eabf71c
@@@ -77,7 -79,8 +80,7 @@@ MACRO: all-enabled-client-state ( seq q
          [ first 0.3 - 0.5 ]
          [ [ first 0.3 - ] [ second 0.3 - ] bi ]
          [ second 0.3 - 0.5 swap ]
-     } cleave 8 float-array{ } nsequence ;
 -        [ drop 0.5 0.5 ]
 -    } cleave 10 narray >c-float-array ;
++    } cleave 10 float-array{ } nsequence ;
  
  : rect-vertices ( dim -- )
      (rect-vertices) gl-vertex-pointer ;
  : circle-points ( loc dim steps -- points )
      circle-steps unit-circle adjust-points scale-points ;
  
+ : close-path ( points -- points' )
+     dup first suffix ;
  : circle-vertices ( loc dim steps -- vertices )
 -    circle-points close-path concat >c-float-array ;
+     #! We use GL_LINE_STRIP with a duplicated first vertex
+     #! instead of GL_LINE_LOOP to work around a bug in Apple's
+     #! X3100 driver.
 -    circle-points concat >c-float-array ;
++    circle-points close-path concat >float-array ;
+ : fill-circle-vertices ( loc dim steps -- vertices )
 +    circle-points concat >float-array ;
  
  : (gen-gl-object) ( quot -- id )
-     >r 1 0 <uint> r> keep *uint ; inline
+     [ 1 0 <uint> ] dip keep *uint ; inline
  
  : gen-texture ( -- id )
      [ glGenTextures ] (gen-gl-object) ;
index f89407ba8b0a923920934a1377e45b951d9c1b88,0fae5103ecfb9e182889c89c62a7a743e3ec536c..5d1868fdcaf036f0cc7ac310efa99ea79fd02803
@@@ -2,11 -2,11 +2,12 @@@
  ! See http://factorcode.org/license.txt for BSD license.
  USING: accessors arrays kernel math models namespaces sequences
  strings quotations assocs combinators classes colors
 -classes.tuple locals alien.c-types fry opengl opengl.gl
 -math.vectors ui.commands ui.gadgets ui.gadgets.borders
 -ui.gadgets.labels ui.gadgets.theme ui.gadgets.tracks
 -ui.gadgets.packs ui.gadgets.worlds ui.gestures ui.render
 -math.geometry.rect ;
++<<<<<<< HEAD:basis/ui/gadgets/buttons/buttons.factor
 +classes.tuple opengl opengl.gl math.vectors ui.commands ui.gadgets
 +ui.gadgets.borders ui.gadgets.labels ui.gadgets.theme
 +ui.gadgets.tracks ui.gadgets.packs ui.gadgets.worlds ui.gestures
 +ui.render math.geometry.rect locals alien.c-types
 +specialized-arrays.float ;
  IN: ui.gadgets.buttons
  
  TUPLE: button < border pressed? selected? quot ;
index ec400abe8c8b74ddb40bf747e64ad08ec5eed74a,55b8a82ac123d30d70b59704978c73fc316789eb..e5b4bb8867cfc76c9734c0c69a5a936763e72f21
@@@ -169,24 -166,29 +167,29 @@@ M: gradient draw-interio
      } cleave ;
  
  ! Polygon pen
- TUPLE: polygon color vertex-array count ;
+ TUPLE: polygon color
+ interior-vertices
+ interior-count
+ boundary-vertices
+ boundary-count ;
  
  : <polygon> ( color points -- polygon )
-     [ concat >float-array ] [ length ] bi polygon boa ;
 -    dup close-path [ [ concat >c-float-array ] [ length ] bi ] bi@
++    dup close-path [ [ concat >float-array ] [ length ] bi ] bi@
+     polygon boa ;
  
- : draw-polygon ( polygon mode -- )
-     swap
+ M: polygon draw-boundary
+     nip
      [ color>> gl-color ]
-     [ vertex-array>> gl-vertex-pointer ]
-     [ 0 swap count>> glDrawArrays ]
+     [ boundary-vertices>> gl-vertex-pointer ]
+     [ [ GL_LINE_STRIP 0 ] dip boundary-count>> glDrawArrays ]
      tri ;
  
- M: polygon draw-boundary
-     GL_LINE_LOOP draw-polygon drop ;
  M: polygon draw-interior
-     dup count>> 2 > GL_POLYGON GL_LINES ?
-     draw-polygon drop ;
+     nip
+     [ color>> gl-color ]
+     [ interior-vertices>> gl-vertex-pointer ]
+     [ [ GL_POLYGON 0 ] dip interior-count>> glDrawArrays ]
+     tri ;
  
  : arrow-up    { { 3 0 } { 6 6 } { 0 6 } } ;
  : arrow-right { { 0 0 } { 6 3 } { 0 6 } } ;
index b27bab9b25036f01dc979ac442c5512ba18f46c8,7d3553faeed48cb26849676d76f80e1b3eb890fa..c951750b342a6cc09f9316bd2840f3ceaa0cc428
@@@ -23,7 -23,7 +23,7 @@@ IN: bootstrap.synta
      "syntax" lookup t "delimiter" set-word-prop ;
  
  : define-syntax ( name quot -- )
-     >r "syntax" lookup dup r> define make-parsing ;
 -    [ "syntax" lookup dup ] dip define t "parsing" set-word-prop ;
++    [ "syntax" lookup dup ] dip define make-parsing ;
  
  [
      { "]" "}" ";" ">>" } [ define-delimiter ] each
Simple merge
Simple merge
index a7d6620fff40ae4b9442aa2ebbaa1e09022ec6af,62b7c2f180cb48a6ca56ce77b337cf5d87246950..64ea481b030f0485346abfa0c59d2dbd96a7a8c6
@@@ -1,15 -1,15 +1,14 @@@
  USING: tools.deploy.config ;
  H{
 -    { deploy-threads? f }
 +    { deploy-unicode? f }
 +    { deploy-reflection 1 }
 +    { deploy-word-props? f }
 +    { deploy-math? f }
      { deploy-name "Hello world (console)" }
      { deploy-word-defs? f }
 -    { deploy-word-props? f }
 +    { "stop-after-last-window?" t }
-     { deploy-compiler? t }
      { deploy-ui? f }
-     { deploy-threads? f }
+     { deploy-compiler? f }
      { deploy-io 2 }
 -    { deploy-math? f }
 -    { deploy-reflection 1 }
 -    { deploy-unicode? f }
 -    { "stop-after-last-window?" t }
      { deploy-c-types? f }
  }