[pypy-commit] pypy default: test_search.py and test_zinternal.py passing

2011-10-28 Thread brunogola
Author: Bruno Gola Branch: Changeset: r48549:d4c7fe2ac048 Date: 2011-10-27 21:01 -0200 http://bitbucket.org/pypy/pypy/changeset/d4c7fe2ac048/ Log:test_search.py and test_zinternal.py passing diff --git a/pypy/rlib/rsre/rsre_core.py b/pypy/rlib/rsre/rsre_core.py --- a/pypy/rlib/rsre/rsre_cor

[pypy-commit] pypy default: [fixes issue 923] matching RegExp with optional zero-width assertion groups

2011-10-28 Thread brunogola
Author: Bruno Gola Branch: Changeset: r48548:4c56b2a60b5a Date: 2011-10-27 19:52 -0200 http://bitbucket.org/pypy/pypy/changeset/4c56b2a60b5a/ Log:[fixes issue 923] matching RegExp with optional zero-width assertion groups diff --git a/pypy/rlib/rsre/rsre_core.py b/pypy/rlib/rsre/rsr

[pypy-commit] [ACCEPTED] Pull request #13 for pypy/pypy: fixes issue 923

2011-10-28 Thread Bitbucket
Pull request #13 has been accepted by fijal. Changes in brunogola/pypy have been pulled into pypy/pypy. https://bitbucket.org/pypy/pypy/pull-request/13/fixes-issue-923 -- This is an issue notification from bitbucket.org. You are receiving this either because you are the participating in a pull re

[pypy-commit] pypy stm: Transform and compile to C code: first early version.

2011-10-28 Thread arigo
Author: Armin Rigo Branch: stm Changeset: r48551:3a174d94e902 Date: 2011-10-27 22:36 +0200 http://bitbucket.org/pypy/pypy/changeset/3a174d94e902/ Log:Transform and compile to C code: first early version. diff --git a/pypy/config/translationoption.py b/pypy/config/translationoption.py --- a/p

[pypy-commit] pypy stm: Fixes.

2011-10-28 Thread arigo
Author: Armin Rigo Branch: stm Changeset: r48552:c00c946fb09b Date: 2011-10-28 03:02 +0200 http://bitbucket.org/pypy/pypy/changeset/c00c946fb09b/ Log:Fixes. diff --git a/pypy/translator/c/src/commondefs.h b/pypy/translator/c/src/commondefs.h --- a/pypy/translator/c/src/commondefs.h +++ b/py

[pypy-commit] [ACCEPTED] Pull request #13 for pypy/pypy: fixes issue 923

2011-10-28 Thread Bitbucket
Pull request #13 has been accepted by arigo. Changes in brunogola/pypy have been pulled into pypy/pypy. https://bitbucket.org/pypy/pypy/pull-request/13/fixes-issue-923 -- This is an issue notification from bitbucket.org. You are receiving this either because you are the participating in a pull re

[pypy-commit] [COMMENT] Pull request #13 for pypy/pypy: fixes issue 923

2011-10-28 Thread Bitbucket
New comment on pull request: https://bitbucket.org/pypy/pypy/pull-request/13/fixes-issue-923#comment-675 arigo said: Uh?? It says "Accepted by arigo 11 minutes ago". I never did that. I only opened this page 3 minutes ago. -- This is a pull request comment notification from bitbucket.org. Y

[pypy-commit] pypy int-tag-untag-as-operations: use int_untag for untagging too (duh)

2011-10-28 Thread cfbolz
Author: Carl Friedrich Bolz Branch: int-tag-untag-as-operations Changeset: r48553:c0429bb24dd1 Date: 2011-10-28 10:13 +0200 http://bitbucket.org/pypy/pypy/changeset/c0429bb24dd1/ Log:use int_untag for untagging too (duh) diff --git a/pypy/jit/metainterp/test/test_ajit.py b/pypy/jit/metainte

[pypy-commit] pypy int-tag-untag-as-operations: when the optimizer sees an int_tag operation, it can later remove the

2011-10-28 Thread cfbolz
Author: Carl Friedrich Bolz Branch: int-tag-untag-as-operations Changeset: r48554:1bab583b7cdb Date: 2011-10-28 11:01 +0200 http://bitbucket.org/pypy/pypy/changeset/1bab583b7cdb/ Log:when the optimizer sees an int_tag operation, it can later remove the int_and(x, 1) operation because

[pypy-commit] pypy numpy-minilang: function call and move one more test

2011-10-28 Thread fijal
Author: Maciej Fijalkowski Branch: numpy-minilang Changeset: r48555:7d18eb124a06 Date: 2011-10-28 11:13 +0200 http://bitbucket.org/pypy/pypy/changeset/7d18eb124a06/ Log:function call and move one more test diff --git a/pypy/module/micronumpy/compile.py b/pypy/module/micronumpy/compile.py --

[pypy-commit] pyrepl py3ksupport: add a modified version of _minimal_curses, get to the point of kind of running pythoni on python3

2011-10-28 Thread RonnyPfannschmidt
Author: Ronny Pfannschmidt Branch: py3ksupport Changeset: r152:19d9ded8abdc Date: 2011-10-28 11:22 +0200 http://bitbucket.org/pypy/pyrepl/changeset/19d9ded8abdc/ Log:add a modified version of _minimal_curses, get to the point of kind of running pythoni on python3 diff --git a/pyrepl/

[pypy-commit] pyrepl py3ksupport: use lines of unicode_escaped strings for history - its multi-python safe and more readable

2011-10-28 Thread RonnyPfannschmidt
Author: Ronny Pfannschmidt Branch: py3ksupport Changeset: r153:61d643893b64 Date: 2011-10-28 11:57 +0200 http://bitbucket.org/pypy/pyrepl/changeset/61d643893b64/ Log:use lines of unicode_escaped strings for history - its multi-python safe and more readable diff --git a/pyrepl/python_

[pypy-commit] pypy numpy-minilang: more bugs in strip

2011-10-28 Thread fijal
Author: Maciej Fijalkowski Branch: numpy-minilang Changeset: r48556:75b8ab99578c Date: 2011-10-28 12:11 +0200 http://bitbucket.org/pypy/pypy/changeset/75b8ab99578c/ Log:more bugs in strip diff --git a/pypy/rpython/lltypesystem/rstr.py b/pypy/rpython/lltypesystem/rstr.py --- a/pypy/rpython/l

[pypy-commit] pypy numpy-minilang: work more on test_zjit. now it shows a problem in our handling!!! (wow)

2011-10-28 Thread fijal
Author: Maciej Fijalkowski Branch: numpy-minilang Changeset: r48557:312b01650172 Date: 2011-10-28 12:13 +0200 http://bitbucket.org/pypy/pypy/changeset/312b01650172/ Log:work more on test_zjit. now it shows a problem in our handling!!! (wow) diff --git a/pypy/module/micronumpy/compile

[pypy-commit] pypy stm: 'transaction_boundary' is better for the transformer.

2011-10-28 Thread arigo
Author: Armin Rigo Branch: stm Changeset: r48558:cf109f42d6ab Date: 2011-10-28 11:54 +0200 http://bitbucket.org/pypy/pypy/changeset/cf109f42d6ab/ Log:'transaction_boundary' is better for the transformer. diff --git a/pypy/translator/stm/llstminterp.py b/pypy/translator/stm/llstminterp.py --

[pypy-commit] pypy stm: Progress

2011-10-28 Thread arigo
Author: Armin Rigo Branch: stm Changeset: r48559:346f0c8a0ed7 Date: 2011-10-28 12:16 +0200 http://bitbucket.org/pypy/pypy/changeset/346f0c8a0ed7/ Log:Progress diff --git a/pypy/translator/stm/_rffi_stm.py b/pypy/translator/stm/_rffi_stm.py --- a/pypy/translator/stm/_rffi_stm.py +++ b/pypy/tr

[pypy-commit] pypy numpy-minilang: remove ported tests

2011-10-28 Thread fijal
Author: Maciej Fijalkowski Branch: numpy-minilang Changeset: r48560:2518fc31f52d Date: 2011-10-28 12:16 +0200 http://bitbucket.org/pypy/pypy/changeset/2518fc31f52d/ Log:remove ported tests diff --git a/pypy/module/micronumpy/test/test_zjit.py b/pypy/module/micronumpy/test/test_zjit.py --- a

[pypy-commit] pypy numpy-minilang: minor tweaks and port more tests

2011-10-28 Thread fijal
Author: Maciej Fijalkowski Branch: numpy-minilang Changeset: r48561:409b83704acb Date: 2011-10-28 13:33 +0200 http://bitbucket.org/pypy/pypy/changeset/409b83704acb/ Log:minor tweaks and port more tests diff --git a/pypy/jit/metainterp/history.py b/pypy/jit/metainterp/history.py --- a/pypy/ji

[pypy-commit] pypy numpy-minilang: make old tests pass (just because).

2011-10-28 Thread fijal
Author: Maciej Fijalkowski Branch: numpy-minilang Changeset: r48562:c1f7d371f290 Date: 2011-10-28 14:37 +0200 http://bitbucket.org/pypy/pypy/changeset/c1f7d371f290/ Log:make old tests pass (just because). diff --git a/pypy/module/micronumpy/compile.py b/pypy/module/micronumpy/compile.py ---

[pypy-commit] pypy numpy-minilang: merged

2011-10-28 Thread fijal
Author: Maciej Fijalkowski Branch: numpy-minilang Changeset: r48564:7a58d06641f3 Date: 2011-10-28 15:01 +0200 http://bitbucket.org/pypy/pypy/changeset/7a58d06641f3/ Log:merged ___ pypy-commit mailing list [email protected] http://mail.python.o

[pypy-commit] pypy default: Merge numpy-minilang, this refactors test_zjit to use new cool mini-language

2011-10-28 Thread fijal
Author: Maciej Fijalkowski Branch: Changeset: r48563:c91b4f3c204f Date: 2011-10-28 15:00 +0200 http://bitbucket.org/pypy/pypy/changeset/c91b4f3c204f/ Log:Merge numpy-minilang, this refactors test_zjit to use new cool mini- language instead of hardcoding things. diff --git a/pypy/jit

[pypy-commit] pypy int-tag-untag-as-operations: move an ll_assert around: cast_ptr_to_int *can* be used on an even pointer (to

2011-10-28 Thread cfbolz
Author: Carl Friedrich Bolz Branch: int-tag-untag-as-operations Changeset: r48565:4c4642283aff Date: 2011-10-28 16:58 +0200 http://bitbucket.org/pypy/pypy/changeset/4c4642283aff/ Log:move an ll_assert around: cast_ptr_to_int *can* be used on an even pointer (to check whether it is tag

[pypy-commit] pypy default: forgotten import

2011-10-28 Thread fijal
Author: Maciej Fijalkowski Branch: Changeset: r48567:8b3dc9ba02ca Date: 2011-10-28 17:20 +0200 http://bitbucket.org/pypy/pypy/changeset/8b3dc9ba02ca/ Log:forgotten import diff --git a/pypy/module/micronumpy/test/test_compile.py b/pypy/module/micronumpy/test/test_compile.py --- a/pypy/modul

[pypy-commit] pypy numpy-complex: more tests for array of structs

2011-10-28 Thread alex_gaynor
Author: Alex Gaynor Branch: numpy-complex Changeset: r48569:0c5959cc2de4 Date: 2011-10-28 11:44 -0400 http://bitbucket.org/pypy/pypy/changeset/0c5959cc2de4/ Log:more tests for array of structs diff --git a/pypy/jit/metainterp/optimizeopt/test/test_optimizebasic.py b/pypy/jit/metainterp/opti

[pypy-commit] pypy default: more tests for array of structs

2011-10-28 Thread alex_gaynor
Author: Alex Gaynor Branch: Changeset: r48570:11d7ea62944e Date: 2011-10-28 11:44 -0400 http://bitbucket.org/pypy/pypy/changeset/11d7ea62944e/ Log:more tests for array of structs diff --git a/pypy/jit/metainterp/optimizeopt/test/test_optimizebasic.py b/pypy/jit/metainterp/optimizeopt/test/

[pypy-commit] pypy default: merged upstream

2011-10-28 Thread alex_gaynor
Author: Alex Gaynor Branch: Changeset: r48571:d2376dc9d29a Date: 2011-10-28 11:45 -0400 http://bitbucket.org/pypy/pypy/changeset/d2376dc9d29a/ Log:merged upstream diff --git a/pypy/jit/metainterp/history.py b/pypy/jit/metainterp/history.py --- a/pypy/jit/metainterp/history.py +++ b/pypy/jit

[pypy-commit] pypy default: make more of the micronumpy tests pass under -A

2011-10-28 Thread alex_gaynor
Author: Alex Gaynor Branch: Changeset: r48572:1847537fd4b5 Date: 2011-10-28 12:11 -0400 http://bitbucket.org/pypy/pypy/changeset/1847537fd4b5/ Log:make more of the micronumpy tests pass under -A diff --git a/pypy/module/micronumpy/__init__.py b/pypy/module/micronumpy/__init__.py --- a/pypy

[pypy-commit] pypy stm: begin_inevitable_transaction.

2011-10-28 Thread arigo
Author: Armin Rigo Branch: stm Changeset: r48573:f0ea7da7446e Date: 2011-10-28 12:21 +0200 http://bitbucket.org/pypy/pypy/changeset/f0ea7da7446e/ Log:begin_inevitable_transaction. diff --git a/pypy/translator/c/funcgen.py b/pypy/translator/c/funcgen.py --- a/pypy/translator/c/funcgen.py +++

[pypy-commit] pypy stm: Random progress.

2011-10-28 Thread arigo
Author: Armin Rigo Branch: stm Changeset: r48575:451f6144a150 Date: 2011-10-28 18:01 +0200 http://bitbucket.org/pypy/pypy/changeset/451f6144a150/ Log:Random progress. diff --git a/pypy/translator/c/funcgen.py b/pypy/translator/c/funcgen.py --- a/pypy/translator/c/funcgen.py +++ b/pypy/transl

[pypy-commit] pypy stm: Progress.

2011-10-28 Thread arigo
Author: Armin Rigo Branch: stm Changeset: r48574:3ec86f341cf6 Date: 2011-10-28 14:22 +0200 http://bitbucket.org/pypy/pypy/changeset/3ec86f341cf6/ Log:Progress. diff --git a/pypy/translator/c/funcgen.py b/pypy/translator/c/funcgen.py --- a/pypy/translator/c/funcgen.py +++ b/pypy/translator/c/

[pypy-commit] pypy stm: Add the missing operations.

2011-10-28 Thread arigo
Author: Armin Rigo Branch: stm Changeset: r48576:f647b24f79f3 Date: 2011-10-28 18:07 +0200 http://bitbucket.org/pypy/pypy/changeset/f647b24f79f3/ Log:Add the missing operations. diff --git a/pypy/rpython/lltypesystem/lloperation.py b/pypy/rpython/lltypesystem/lloperation.py --- a/pypy/rpyth

[pypy-commit] pypy stm: Test that the stm mode falls back to "inevitable_transaction" when

2011-10-28 Thread arigo
Author: Armin Rigo Branch: stm Changeset: r48578:3126dbb549ce Date: 2011-10-28 18:30 +0200 http://bitbucket.org/pypy/pypy/changeset/3126dbb549ce/ Log:Test that the stm mode falls back to "inevitable_transaction" when we see an unsupported operation like raw_malloc. diff --git a/pypy/

[pypy-commit] pypy stm: bug fix

2011-10-28 Thread arigo
Author: Armin Rigo Branch: stm Changeset: r48577:c30efe18be88 Date: 2011-10-28 18:11 +0200 http://bitbucket.org/pypy/pypy/changeset/c30efe18be88/ Log:bug fix diff --git a/pypy/translator/stm/src_stm/et.c b/pypy/translator/stm/src_stm/et.c --- a/pypy/translator/stm/src_stm/et.c +++ b/pypy/tra

[pypy-commit] pypy numpy-multidim: fix tests broken during the merge

2011-10-28 Thread fijal
Author: Maciej Fijalkowski Branch: numpy-multidim Changeset: r48579:cfc66011fc77 Date: 2011-10-28 18:40 +0200 http://bitbucket.org/pypy/pypy/changeset/cfc66011fc77/ Log:fix tests broken during the merge diff --git a/pypy/module/micronumpy/interp_numarray.py b/pypy/module/micronumpy/interp_n

[pypy-commit] pypy stm: - mallocs of GC objects is supported by the STM system (for now

2011-10-28 Thread arigo
Author: Armin Rigo Branch: stm Changeset: r48580:1cffa0d605b4 Date: 2011-10-28 18:52 +0200 http://bitbucket.org/pypy/pypy/changeset/1cffa0d605b4/ Log:- mallocs of GC objects is supported by the STM system (for now with Boehm) - fix: don't store ophandler on self.__class__, be

[pypy-commit] pypy numpy-multidim: make test_zjit pass (up to the point anyway)

2011-10-28 Thread fijal
Author: Maciej Fijalkowski Branch: numpy-multidim Changeset: r48581:488dbd72cd7b Date: 2011-10-28 19:07 +0200 http://bitbucket.org/pypy/pypy/changeset/488dbd72cd7b/ Log:make test_zjit pass (up to the point anyway) diff --git a/pypy/module/micronumpy/compile.py b/pypy/module/micronumpy/compi

[pypy-commit] pypy ppc-jit-backend: Started implementation of CALL.

2011-10-28 Thread hager
Author: hager Branch: ppc-jit-backend Changeset: r48582:87920fe776f3 Date: 2011-10-28 19:41 +0200 http://bitbucket.org/pypy/pypy/changeset/87920fe776f3/ Log:Started implementation of CALL. diff --git a/pypy/jit/backend/ppc/ppcgen/arch.py b/pypy/jit/backend/ppc/ppcgen/arch.py --- a/pypy/jit/

[pypy-commit] pypy numpy-multidim: basic slice support

2011-10-28 Thread fijal
Author: Maciej Fijalkowski Branch: numpy-multidim Changeset: r48583:252e03277a09 Date: 2011-10-28 19:46 +0200 http://bitbucket.org/pypy/pypy/changeset/252e03277a09/ Log:basic slice support diff --git a/pypy/module/micronumpy/compile.py b/pypy/module/micronumpy/compile.py --- a/pypy/module/m

[pypy-commit] pypy jit-raw-array-of-struct: progress

2011-10-28 Thread alex_gaynor
Author: Alex Gaynor Branch: jit-raw-array-of-struct Changeset: r48584:b968a2c1909c Date: 2011-10-28 14:34 -0400 http://bitbucket.org/pypy/pypy/changeset/b968a2c1909c/ Log:progress diff --git a/pypy/jit/codewriter/assembler.py b/pypy/jit/codewriter/assembler.py --- a/pypy/jit/codewriter/assem

[pypy-commit] pypy numpy-multidim: better support for slices

2011-10-28 Thread fijal
Author: Maciej Fijalkowski Branch: numpy-multidim Changeset: r48585:a2490f74710a Date: 2011-10-28 20:38 +0200 http://bitbucket.org/pypy/pypy/changeset/a2490f74710a/ Log:better support for slices diff --git a/pypy/module/micronumpy/compile.py b/pypy/module/micronumpy/compile.py --- a/pypy/mo

[pypy-commit] pypy jit-raw-array-of-struct: test fix

2011-10-28 Thread alex_gaynor
Author: Alex Gaynor Branch: jit-raw-array-of-struct Changeset: r48586:122a250914a5 Date: 2011-10-28 14:41 -0400 http://bitbucket.org/pypy/pypy/changeset/122a250914a5/ Log:test fix diff --git a/pypy/jit/metainterp/test/test_ajit.py b/pypy/jit/metainterp/test/test_ajit.py --- a/pypy/jit/metai

[pypy-commit] pypy numpy-multidim: write another test, I'm a moron

2011-10-28 Thread fijal
Author: Maciej Fijalkowski Branch: numpy-multidim Changeset: r48587:d5d0e247d026 Date: 2011-10-28 21:01 +0200 http://bitbucket.org/pypy/pypy/changeset/d5d0e247d026/ Log:write another test, I'm a moron diff --git a/pypy/module/micronumpy/compile.py b/pypy/module/micronumpy/compile.py --- a/p

[pypy-commit] pypy numpy-multidim: rename a horrible name, this one is for alex

2011-10-28 Thread fijal
Author: Maciej Fijalkowski Branch: numpy-multidim Changeset: r48588:14002f5da120 Date: 2011-10-28 21:02 +0200 http://bitbucket.org/pypy/pypy/changeset/14002f5da120/ Log:rename a horrible name, this one is for alex diff --git a/pypy/module/micronumpy/interp_numarray.py b/pypy/module/micronum

[pypy-commit] pypy numpy-multidim: another test. make it work

2011-10-28 Thread fijal
Author: Maciej Fijalkowski Branch: numpy-multidim Changeset: r48589:46409ef7c41a Date: 2011-10-28 21:19 +0200 http://bitbucket.org/pypy/pypy/changeset/46409ef7c41a/ Log:another test. make it work diff --git a/pypy/module/micronumpy/interp_numarray.py b/pypy/module/micronumpy/interp_numarray

[pypy-commit] pypy numpy-multidim: make shape and chunks non-resizable lists

2011-10-28 Thread fijal
Author: Maciej Fijalkowski Branch: numpy-multidim Changeset: r48590:d790f132a006 Date: 2011-10-28 22:08 +0200 http://bitbucket.org/pypy/pypy/changeset/d790f132a006/ Log:make shape and chunks non-resizable lists diff --git a/pypy/module/micronumpy/interp_numarray.py b/pypy/module/micronumpy/

[pypy-commit] pypy numpy-multidim: make shape and chunk immutable. no real benefits unless some array is constant.

2011-10-28 Thread fijal
Author: Maciej Fijalkowski Branch: numpy-multidim Changeset: r48591:cd07f23f15fc Date: 2011-10-28 22:09 +0200 http://bitbucket.org/pypy/pypy/changeset/cd07f23f15fc/ Log:make shape and chunk immutable. no real benefits unless some array is constant. diff --git a/pypy/module/micronumpy

[pypy-commit] pypy numpy-multidim: fix test, skip the old ones

2011-10-28 Thread fijal
Author: Maciej Fijalkowski Branch: numpy-multidim Changeset: r48592:4fde3633c155 Date: 2011-10-28 22:10 +0200 http://bitbucket.org/pypy/pypy/changeset/4fde3633c155/ Log:fix test, skip the old ones diff --git a/pypy/module/micronumpy/test/test_zjit.py b/pypy/module/micronumpy/test/test_zjit.

[pypy-commit] pypy default: merge heads

2011-10-28 Thread gutworth
Author: Benjamin Peterson Branch: Changeset: r48594:b9fb5a2b414e Date: 2011-10-28 19:30 -0400 http://bitbucket.org/pypy/pypy/changeset/b9fb5a2b414e/ Log:merge heads diff --git a/pypy/jit/metainterp/history.py b/pypy/jit/metainterp/history.py --- a/pypy/jit/metainterp/history.py +++ b/pypy/j

[pypy-commit] pypy default: add float.is_integer()

2011-10-28 Thread gutworth
Author: Benjamin Peterson Branch: Changeset: r48593:b9587add901b Date: 2011-10-28 19:30 -0400 http://bitbucket.org/pypy/pypy/changeset/b9587add901b/ Log:add float.is_integer() diff --git a/pypy/objspace/std/floatobject.py b/pypy/objspace/std/floatobject.py --- a/pypy/objspace/std/floatobjec

[pypy-commit] pypy default: handle special values

2011-10-28 Thread gutworth
Author: Benjamin Peterson Branch: Changeset: r48595:7cfece2a13d1 Date: 2011-10-28 19:37 -0400 http://bitbucket.org/pypy/pypy/changeset/7cfece2a13d1/ Log:handle special values diff --git a/pypy/objspace/std/floatobject.py b/pypy/objspace/std/floatobject.py --- a/pypy/objspace/std/floatobject

[pypy-commit] pypy jit-raw-array-of-struct: random changes

2011-10-28 Thread alex_gaynor
Author: Alex Gaynor Branch: jit-raw-array-of-struct Changeset: r48596:bb85820f08a3 Date: 2011-10-29 02:13 -0400 http://bitbucket.org/pypy/pypy/changeset/bb85820f08a3/ Log:random changes diff --git a/pypy/jit/backend/llgraph/llimpl.py b/pypy/jit/backend/llgraph/llimpl.py --- a/pypy/jit/backe

[pypy-commit] pypy default: fix this test for 32-bit machines

2011-10-28 Thread alex_gaynor
Author: Alex Gaynor Branch: Changeset: r48597:753627dbee28 Date: 2011-10-29 02:14 -0400 http://bitbucket.org/pypy/pypy/changeset/753627dbee28/ Log:fix this test for 32-bit machines diff --git a/pypy/module/pypyjit/test_pypy_c/test_containers.py b/pypy/module/pypyjit/test_pypy_c/test_contai