这是indexloc提供的服务,不要输入任何密码
Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
118 commits
Select commit Hold shift + click to select a range
a5f387a
added new tests (for already existing functions)
Jun 2, 2022
af08dc3
error running c++ test
Jun 2, 2022
74fd57d
error running c++ test
Jun 2, 2022
05d2d61
fixed part of c++ test
Jun 2, 2022
3af53a8
errors running python test
Jun 2, 2022
fdbbba5
testing wrong list
Jun 2, 2022
160ad79
can't do arithmetic
Jun 2, 2022
fe25196
testing isinf
Jun 4, 2022
878ee15
rewrote isinf (using CreateICmpEQ)
Jun 7, 2022
a857327
I'm an idiot
Jun 8, 2022
b264ce5
added tests for isclose and finished up create isnan
Jun 8, 2022
481faad
added create isnan to .h file
Jun 8, 2022
33ae114
fixed error in mathfunctionstest
Jun 8, 2022
2277fcc
c++ isnan test failing
Jun 8, 2022
3b7408e
c++ isnan test failing
Jun 8, 2022
8c265ec
c++ isnan test failing
Jun 8, 2022
5aaa720
still not working
Jun 8, 2022
503fc5e
hm not sure what's happening
Jun 8, 2022
fe23e41
hm not sure what's happening
Jun 8, 2022
5aad1ac
hm not sure what's happening
Jun 8, 2022
3bee044
added isnan to math module
Jun 9, 2022
1c62647
was using integer cmp instead of float cmp
Jun 9, 2022
168961a
not sure why assert is failing
Jun 9, 2022
b6046ad
see if this works
Jun 9, 2022
46533e6
IT PASSED
Jun 9, 2022
132b2fa
:wq
Jun 9, 2022
7fe9c72
fixed errors
Jun 9, 2022
07dd9ed
reverting
Jun 9, 2022
2478be1
python float is c++ double
Jun 9, 2022
b93096b
using nan() instead
Jun 9, 2022
f73d101
debugging
Jun 9, 2022
5c6e7ca
debugging
Jun 9, 2022
2f33a91
debugging
Jun 9, 2022
c2b03d5
debugging
Jun 10, 2022
0f675d7
debugging
Jun 10, 2022
45fecb7
updated to check against both NANs
Jun 10, 2022
fd447e8
fixing errors
Jun 10, 2022
443c068
fixing errors
Jun 10, 2022
d7cadfe
THEY PASSED
Jun 10, 2022
10a3d1d
updated isnan c++ test
Jun 11, 2022
93511bb
updated isnan c++ test
Jun 12, 2022
7fb32e4
added check for typing in isnan
Jun 13, 2022
c0a42de
accidentally commented out cos
Jun 13, 2022
9bf5ed0
debugging
Jun 13, 2022
0f04e05
type check not working
Jun 13, 2022
af072b9
type check still not working
Jun 13, 2022
b6d079a
added isinf, updated python and c++ tests
Jun 13, 2022
986ec76
forgot to use constants
Jun 13, 2022
05534cf
forgot to write declarations in other files
Jun 13, 2022
e5644a0
flattened tuple error again
Jun 13, 2022
499e3e5
inf cases failing
Jun 13, 2022
767b6f1
added llvm for isclose
aletheia094 Jun 14, 2022
fc17c6d
forgot to add to standard modules and header again
Jun 14, 2022
f7b4970
added back isclose c++ tests
Jun 14, 2022
25c8bb5
updated gitignore
Jun 14, 2022
f633942
merge
aletheia094 Jun 14, 2022
5074563
reverted tests
aletheia094 Jun 14, 2022
d50385a
T->t F->f
aletheia094 Jun 14, 2022
433f976
should have been infinity * 0
aletheia094 Jun 14, 2022
c61513f
take tests one by one
aletheia094 Jun 14, 2022
dd5f153
test 2
aletheia094 Jun 14, 2022
73399ba
was returning int constant instead of bool constant
aletheia094 Jun 14, 2022
8a66216
updated isinf and isnan
aletheia094 Jun 14, 2022
4b72c92
fixing errors
aletheia094 Jun 14, 2022
4d0414c
fixing errors
aletheia094 Jun 14, 2022
db43cde
confused
aletheia094 Jun 14, 2022
b707daa
confused
aletheia094 Jun 14, 2022
acce530
updating testing to use doubles
aletheia094 Jun 15, 2022
62c0292
removed inf + inf tests from c++ tests
aletheia094 Jun 15, 2022
70ed85e
updated isinf to handle types
aletheia094 Jun 15, 2022
30e6ea0
updated isinf to actually define 'type'
aletheia094 Jun 15, 2022
2bc850d
implementing isclose; testing ints for isnan and isinf
aletheia094 Jun 15, 2022
c95bbf5
ignoring isclose for now
aletheia094 Jun 15, 2022
debdbe8
fixing errors
aletheia094 Jun 15, 2022
bba35ec
fixing errors
aletheia094 Jun 15, 2022
4de1a0b
debugging
aletheia094 Jun 15, 2022
bbe876b
debugging
aletheia094 Jun 15, 2022
0f21814
testing all for isinf and isnan
aletheia094 Jun 15, 2022
d68c247
c++ tests passing for isinf/isnan; implementing isclose
aletheia094 Jun 15, 2022
a46c99d
added pseudocode logic for isclose optimization
aletheia094 Jun 16, 2022
f7175ca
updated isclose c++ test
aletheia094 Jun 16, 2022
f23899b
still building isclose
aletheia094 Jun 16, 2022
8dbb718
still working on isclose
aletheia094 Jun 17, 2022
794388d
stuck on phi nodes
aletheia094 Jun 17, 2022
0c6b76b
last case for isclose
aletheia094 Jun 17, 2022
e421c9f
last case of isclose
aletheia094 Jun 18, 2022
ec7db5f
finished writing isclose
aletheia094 Jun 19, 2022
0a3114b
started typing for isclose
aletheia094 Jun 20, 2022
296633a
finished typing for isclose, moving to testing
aletheia094 Jun 21, 2022
0696ed6
testing isclose in c++, isinf/isnan in python
aletheia094 Jun 21, 2022
d56bfdc
updated all python tests, fixed llvm errors with isclose
aletheia094 Jun 21, 2022
bc6ba94
added debug prints to isclose; increased precision to 12 dp
aletheia094 Jun 21, 2022
4558d45
added todos based on PR comments
aletheia094 Jun 21, 2022
6275b24
testing isclose
aletheia094 Jun 21, 2022
a47ab3a
debugging isclose
aletheia094 Jun 22, 2022
d1cda43
debugging isclose
aletheia094 Jun 22, 2022
3e3ea7c
debugging isclose
aletheia094 Jun 22, 2022
3a0f2fe
debugging isclose
aletheia094 Jun 22, 2022
e711847
debugging isclose
aletheia094 Jun 22, 2022
542dd6b
debugging isclose
aletheia094 Jun 22, 2022
f9d35a4
debugging isclose
aletheia094 Jun 22, 2022
4814a8f
debugging isclose
aletheia094 Jun 22, 2022
fa7b06e
updated todos
aletheia094 Jun 22, 2022
ec8e2bb
added integer optimizations
aletheia094 Jun 22, 2022
5b92f05
all c++ tests passing
aletheia094 Jun 23, 2022
bc5cacf
pythhon tests failing for inf values
aletheia094 Jun 24, 2022
462eaa1
added error checking, updated math module constants
aletheia094 Jun 24, 2022
1768e93
need to figure out what version of infinity python is using
aletheia094 Jun 24, 2022
8a3d51c
all tests passing
aletheia094 Jun 27, 2022
c13c09a
double infinity is being passed in for both python and c++ tests
aletheia094 Jun 27, 2022
b043e56
trrying to step to where math.inf is parsed
aletheia094 Jun 27, 2022
3607f51
all tests passing, added print hex helper
aletheia094 Jun 28, 2022
a2c4063
retrigger checks
aletheia094 Jul 11, 2022
eb9a574
Merge branch 'tuplex:master' into dev
aletheia094 Jul 11, 2022
989bd51
added Werkzeug==2.1.2
aletheia094 Jul 11, 2022
d928ff0
added Werkzeug==2.1.2 to root level setup
aletheia094 Jul 11, 2022
8f03cec
added changges to setup.py files/deps for CI fix
aletheia094 Jul 12, 2022
14c51ee
resolved comments for merge
aletheia094 Jul 12, 2022
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -94,3 +94,6 @@ wheelhouse/
*.zip
tuplex/other/tplxlam.zip
fixed_wheels/

tuplex/.vscode/
.vscode/
2 changes: 1 addition & 1 deletion scripts/docker/benchmark/install_tuplex_reqs.sh
Original file line number Diff line number Diff line change
Expand Up @@ -150,7 +150,7 @@ make -j4 && make install && ldconfig &&
popd

# install python packages for tuplex (needs cloudpickle to compile, numpy to run certain tests)
pip3 install cloudpickle numpy
pip3 install 'cloudpickle<2.0.0' numpy

# protobuf 3.12
cd /tmp &&
Expand Down
8 changes: 4 additions & 4 deletions scripts/docker/ci/install_centos.sh
Original file line number Diff line number Diff line change
Expand Up @@ -31,10 +31,10 @@ bash install_boost.sh /opt/python/cp39-cp39/bin/python3.9 /opt/boost/python3.9
bash install_boost.sh /opt/python/cp310-cp310/bin/python3.10 /opt/boost/python3.10

# matrix?
python3.7 -m pip install cloudpickle numpy
python3.8 -m pip install cloudpickle numpy
python3.9 -m pip install cloudpickle numpy
python3.10 -m pip install cloudpickle numpy
python3.7 -m pip install 'cloudpickle<2.0.0' numpy
python3.8 -m pip install 'cloudpickle<2.0.0' numpy
python3.9 -m pip install 'cloudpickle<2.0.0' numpy
python3.10 -m pip install 'cloudpickle<2.0.0' numpy

# tuplex requirements
bash install_tuplex_reqs.sh
2 changes: 1 addition & 1 deletion scripts/docker/ci/install_lambda_python.sh
Original file line number Diff line number Diff line change
Expand Up @@ -43,4 +43,4 @@ set -ex && cd /tmp && wget https://www.python.org/ftp/python/${PYTHON3_VERSION}/

# install cloudpickle numpy for Lambda python
export LD_LIBRARY_PATH=/opt/lambda-python/lib:$LD_LIBRARY_PATH
/opt/lambda-python/bin/python${PYTHON3_MAJMIN} -m pip install cloudpickle numpy tqdm
/opt/lambda-python/bin/python${PYTHON3_MAJMIN} -m pip install 'cloudpickle<2.0.0' numpy tqdm
2 changes: 1 addition & 1 deletion scripts/docker/ubuntu1804/build_and_test.sh
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
#!/usr/bin/env bash

# tests using fallback solution require cloudpickle, so install it
pip3 install cloudpickle numpy
pip3 install 'cloudpickle<2.0.0' numpy

cd /code &&
mkdir -p build &&
Expand Down
2 changes: 1 addition & 1 deletion scripts/macos/setup-macos.sh
Original file line number Diff line number Diff line change
Expand Up @@ -91,7 +91,7 @@ for ((i=0; i<${#PY_VERSIONS[@]}; ++i)); do
# support.
$PIP_CMD install -q numpy=="$NUMPY_VERSION" cython==0.29.26
# Install wheel to avoid the error "invalid command 'bdist_wheel'".
$PIP_CMD install -q wheel cloudpickle delocate
$PIP_CMD install -q wheel 'cloudpickle<2.0.0' delocate
done

# install boost python for this script
Expand Down
2 changes: 1 addition & 1 deletion scripts/ubuntu1804/install_reqs.sh
Original file line number Diff line number Diff line change
Expand Up @@ -165,7 +165,7 @@ make -j4 && make install && ldconfig &&
pushd

# install python packages for tuplex (needs cloudpickle to compile, numpy to run certain tests)
pip3 install cloudpickle numpy
pip3 install 'cloudpickle<2.0.0' numpy

# setup bash aliases
echo "alias antlr='java -jar /opt/lib/antlr-4.8-complete.jar'" >>"$HOME/.bashrc"
Expand Down
2 changes: 1 addition & 1 deletion scripts/ubuntu2004/install_reqs.sh
Original file line number Diff line number Diff line change
Expand Up @@ -159,7 +159,7 @@ make -j4 && make install && ldconfig &&
popd

# install python packages for tuplex (needs cloudpickle to compile, numpy to run certain tests)
pip3 install cloudpickle numpy
pip3 install 'cloudpickle<2.0.0' numpy

# protobuf 3.12
cd /tmp &&
Expand Down
9 changes: 5 additions & 4 deletions setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -62,12 +62,13 @@ def in_google_colab():
'jupyter<7.0',
'nbformat<7.0',
'prompt_toolkit>=2.0.7',
'pytest>=5.3.2',
'pytest>=5.3.2'
]

# Also requires to install MongoDB
webui_dependencies = [
'Flask>=2.0.2',
'Werkzeug<2.2.0',
'gunicorn',
'eventlet==0.30.0', # newer versions of eventlet have a bug under MacOS
'flask-socketio',
Expand Down Expand Up @@ -98,7 +99,7 @@ def in_google_colab():
'astor',
'prompt_toolkit',
'jedi',
'cloudpickle>=0.6.1',
'cloudpickle>=0.6.1,<2.0.0',
'PyYAML>=3.13',
'psutil',
'pymongo',
Expand All @@ -118,7 +119,7 @@ def in_google_colab():
'astor',
'prompt_toolkit',
'jedi',
'cloudpickle>=0.6.1',
'cloudpickle>=0.6.1,<2.0.0',
'PyYAML>=3.13',
'psutil',
'pymongo',
Expand Down Expand Up @@ -597,7 +598,7 @@ def tplx_package_data():
# logic and declaration, and simpler if you include description/version in a file.
setup(name="tuplex",
python_requires='>=3.7.0',
version="0.3.3rc0",
version="0.3.3",
author="Leonhard Spiegelberg",
author_email="tuplex@cs.brown.edu",
description="Tuplex is a novel big data analytics framework incorporating a Python UDF compiler based on LLVM "
Expand Down
12 changes: 12 additions & 0 deletions tuplex/codegen/include/FunctionRegistry.h
Original file line number Diff line number Diff line change
Expand Up @@ -189,6 +189,18 @@ namespace tuplex {
const python::Type &retType,
const std::vector<tuplex::codegen::SerializableValue> &args);

SerializableValue createMathIsNanCall(llvm::IRBuilder<>& builder, const python::Type &argsType,
const python::Type &retType,
const std::vector<tuplex::codegen::SerializableValue> &args);

SerializableValue createMathIsInfCall(llvm::IRBuilder<>& builder, const python::Type &argsType,
const python::Type &retType,
const std::vector<tuplex::codegen::SerializableValue> &args);

SerializableValue createMathIsCloseCall(tuplex::codegen::LambdaFunctionBuilder &lfb,
llvm::IRBuilder<>& builder, const python::Type &argsType,
const std::vector<tuplex::codegen::SerializableValue> &args);

// math module functions
SerializableValue createMathCeilFloorCall(LambdaFunctionBuilder& lfb, llvm::IRBuilder<>& builder, const std::string& qual_name, const SerializableValue& arg);

Expand Down
7 changes: 7 additions & 0 deletions tuplex/codegen/include/LLVMEnvironment.h
Original file line number Diff line number Diff line change
Expand Up @@ -553,6 +553,13 @@ namespace tuplex {
*/
void printValue(llvm::IRBuilder<>& builder, llvm::Value*, std::string msg="");

/*!
* debug print any llvm value as its corresponding hex value
* @param builder
* @param val
*/
void printHexValue(llvm::IRBuilder<> &builder, llvm::Value* val, std::string msg="");

llvm::Type* pythonToLLVMType(const python::Type &t);

/*!
Expand Down
Loading