§
    2@ÄjY  ã                   óì   — d dl Z d dlmZ d dlmZ d dlmZ d dlmZm	Z	 d dl
mZ d dlmZ d dlmZmZ  G d	„ d
e¦  «        Z G d„ de¦  «        Z G d„ de¦  «        Zedk    r ej        ¦   «          dS dS )é    N)Únjit)Úoverload)ÚConfigStack)ÚFlagsÚDEFAULT_FLAGS)Útypes)Údefault_mangler)ÚTestCaseÚunittestc                   ó   — e Zd Zd„ ZdS )ÚTestCompilerFlagsc                 óœ   — t          ¦   «         }d}|                      t          |¦  «        5  d|_        d d d ¦  «         d S # 1 swxY w Y   d S )Nz<'Flags' object has no attribute 'this_really_does_not_exist'T)r   ÚassertRaisesRegexÚAttributeErrorÚthis_really_does_not_exist)ÚselfÚflagsÚmsgs      úPC:\Projects\Historical\venv\Lib\site-packages\numba/tests/test_compiler_flags.pyÚtest_setting_invalid_attributez0TestCompilerFlags.test_setting_invalid_attribute   s’   € Ý‘”ˆØLˆØ×#Ò#¥N°CÑ8Ô8ð 	4ð 	4Ø/3ˆEÔ,ð	4ð 	4ð 	4ñ 	4ô 	4ð 	4ð 	4ð 	4ð 	4ð 	4ð 	4ð 	4øøøð 	4ð 	4ð 	4ð 	4ð 	4ð 	4s   ¬AÁAÁAN)Ú__name__Ú
__module__Ú__qualname__r   © ó    r   r   r      s#   € € € € € ð4ð 4ð 4ð 4ð 4r   r   c                   ó   — e Zd Zd„ ZdS )ÚTestCompilerFlagCachedOverloadc                 ó  ‡‡— d„ Št          ‰¦  «        d„ ¦   «         }t          d¬¦  «        ˆfd„¦   «         Št          ¦   «         ˆˆfd„¦   «         } |¦   «         \  }}|                      |d¦  «         |                      |d¦  «         d S )	Nc                  ó   — d S ©Nr   r   r   r   Úfastmath_statuszQTestCompilerFlagCachedOverload.test_fastmath_in_overload.<locals>.fastmath_status   s   € ØˆDr   c                  óh   ‡— t          ¦   «                              ¦   «         } | j        rdndŠˆfd„}|S )NúHas fastmathúNo fastmathc                  ó   •— ‰ S r    r   )Úvals   €r   ÚcodegenzeTestCompilerFlagCachedOverload.test_fastmath_in_overload.<locals>.ov_fastmath_status.<locals>.codegen   s   ø€ Ø�
r   )r   ÚtopÚfastmath)r   r'   r&   s     @r   Úov_fastmath_statuszTTestCompilerFlagCachedOverload.test_fastmath_in_overload.<locals>.ov_fastmath_status   sH   ø€ å‘M”M×%Ò%Ñ'Ô'ˆEØ$)¤NÐE�.�.¸ˆCðð ð ð ð ð ˆNr   T)r)   c                  ó   •—  ‰ ¦   «         S r    r   )r!   s   €r   Úset_fastmathzNTestCompilerFlagCachedOverload.test_fastmath_in_overload.<locals>.set_fastmath$   s   ø€ à"�?Ñ$Ô$Ð$r   c                  ó4   •—  ‰¦   «         }  ‰¦   «         }| |fS r    r   )ÚaÚbr!   r,   s     €€r   ÚfoozETestCompilerFlagCachedOverload.test_fastmath_in_overload.<locals>.foo(   s$   ø€ à�Ñ!Ô!ˆAØ�‘”ˆAØ�q�6ˆMr   r$   r#   )r   r   ÚassertEqual)r   r*   r0   r.   r/   r!   r,   s        @@r   Útest_fastmath_in_overloadz8TestCompilerFlagCachedOverload.test_fastmath_in_overload   sÙ   øø€ ð	ð 	ð 	õ 
�/Ñ	"Ô	"ð	ð 	ñ 
#Ô	"ð	õ 
�tÐ	Ñ	Ô	ð	%ð 	%ð 	%ð 	%ñ 
Ô	ð	%õ 
‰Œð	ð 	ð 	ð 	ð 	ñ 
Œð	ð
 ˆs‰uŒu‰ˆˆ1Ø×Ò˜˜MÑ*Ô*Ð*Ø×Ò˜˜NÑ+Ô+Ð+Ð+Ð+r   N)r   r   r   r2   r   r   r   r   r      s#   € € € € € ð,ð ,ð ,ð ,ð ,r   r   c                   ó&   — e Zd Zd„ Zd„ Zd„ Zd„ ZdS )ÚTestFlagManglingc                 óÀ   ‡ — ˆ fd„}t          ¦   «         } ||¦  «          |t          ¦  «         t          ¦   «         }d|_        d|_        d|_         ||¦  «         d S )Nc                 óª   •— |                       ¦   «         }|                      |¦  «        }‰                     ||                      ¦   «         ¦  «         d S r    )Úget_mangle_stringÚdemangler1   Úsummary)r   ÚmangledÚoutr   s      €r   Úcheckz-TestFlagMangling.test_demangle.<locals>.check7   sI   ø€ Ø×-Ò-Ñ/Ô/ˆGØ—.’. Ñ)Ô)ˆCà×Ò˜S %§-¢-¡/¤/Ñ2Ô2Ð2Ð2Ð2r   T)r   r   Úno_cpython_wrapperÚnrtr)   )r   r<   r   s   `  r   Útest_demanglezTestFlagMangling.test_demangle5   sx   ø€ ð	3ð 	3ð 	3ð 	3ð 	3õ ‘”ˆØˆˆe‰Œˆð 	ˆ�mÑÔÐõ ‘”ˆØ#'ˆÔ ØˆŒ	ØˆŒØˆˆe‰Œˆˆˆr   c                 óæ   — t          ¦   «         }d|_        d|_        |                      t	          |                     ¦   «         ¦  «        t	          |                     ¦   «         ¦  «        ¦  «         d S )NT)r   r>   Úauto_parallelÚ
assertLessÚlenr7   r9   )r   r   s     r   Útest_mangled_flags_is_shorterz.TestFlagMangling.test_mangled_flags_is_shorterK   sX   € å‘”ˆØˆŒ	Ø"ˆÔØ�Š�˜E×3Ò3Ñ5Ô5Ñ6Ô6½¸E¿MºM¹O¼OÑ8LÔ8LÑMÔMÐMÐMÐMr   c                 ó|  — t          ¦   «         }d|_        d|_        d|_        d|_        |                      t          |                     ¦   «         ¦  «        t          |                     ¦   «         ¦  «        ¦  «         | 	                    |                     ¦   «         ¦  «        }|  
                    d|¦  «         d S )NTÚalwaysÚ0x)r   r>   rA   r)   ÚinlinerB   rC   r7   r9   r8   ÚassertNotIn)r   r   Ú	demangleds      r   Ú/test_mangled_flags_with_fastmath_parfors_inlinez@TestFlagMangling.test_mangled_flags_with_fastmath_parfors_inlineR   s™   € å‘”ˆØˆŒ	Ø"ˆÔØˆŒØˆŒØ�Š�˜E×3Ò3Ñ5Ô5Ñ6Ô6½¸E¿MºM¹O¼OÑ8LÔ8LÑMÔMÐMØ—N’N 5×#:Ò#:Ñ#<Ô#<Ñ=Ô=ˆ	à×Ò˜˜yÑ)Ô)Ð)Ð)Ð)r   c                 ó  — d}t           j        f}t          ¦   «         }d|_        d|_        t          |||                     ¦   «         g¬¦  «        }d}t          j        d|t          |¦  «        d…         ¦  «        }| 
                    d¦  «        }t          |¦  «        t          |¦  «        z   }|||t          |¦  «        z   …         }	t          j        |	¦  «        }
|                      |
|                     ¦   «         ¦  «         dS )	z,Test demangling of flags from mangled symbolr0   TrF   )Úabi_tagsÚ_Z3fooBz[0-9]+Nr   )r   Úint32r   r>   rH   r	   r7   ÚreÚmatchrC   ÚgroupÚintr8   r1   r9   )r   ÚfnameÚargtypesr   ÚnameÚprefixÚmÚsizeÚbaseÚabi_mangledrJ   s              r   Ú$test_demangling_from_mangled_symbolsz5TestFlagMangling.test_demangling_from_mangled_symbols^   sì   € ð ˆÝ”;�<ˆÝ‘”ˆØˆŒ	ØˆŒÝØ�8 u×'>Ò'>Ñ'@Ô'@Ð&Að
ñ 
ô 
ˆð ˆåŒH�X˜t¥C¨¡K¤K L LÔ1Ñ2Ô2ˆØ�wŠw�q‰zŒzˆå�6‰{Œ{�S ™YœYÑ&ˆØ˜4 ¥s¨4¡y¤yÑ 0Ð0Ô1ˆå”N ;Ñ/Ô/ˆ	Ø×Ò˜ E§M¢M¡O¤OÑ4Ô4Ð4Ð4Ð4r   N)r   r   r   r?   rD   rK   r\   r   r   r   r4   r4   3   sS   € € € € € ðð ð ð,Nð Nð Nð
*ð 
*ð 
*ð5ð 5ð 5ð 5ð 5r   r4   Ú__main__)rP   Únumbar   Únumba.core.extendingr   Únumba.core.targetconfigr   Únumba.core.compilerr   r   Ú
numba.corer   Únumba.core.funcdescr	   Únumba.tests.supportr
   r   r   r   r4   r   Úmainr   r   r   ú<module>rf      sE  ðØ 	€	€	€	à Ð Ð Ð Ð Ð Ø )Ð )Ð )Ð )Ð )Ð )Ø /Ð /Ð /Ð /Ð /Ð /Ø 4Ð 4Ð 4Ð 4Ð 4Ð 4Ð 4Ð 4Ø Ð Ð Ð Ð Ð Ø /Ð /Ð /Ð /Ð /Ð /à 2Ð 2Ð 2Ð 2Ð 2Ð 2Ð 2Ð 2ð4ð 4ð 4ð 4ð 4˜ñ 4ô 4ð 4ð,ð ,ð ,ð ,ð , Xñ ,ô ,ð ,ð<@5ð @5ð @5ð @5ð @5�xñ @5ô @5ð @5ðF ˆzÒÐØ€H„M�O„O€O€O€Oð Ðr   