TeaScript Known Issues 
======================

Beside feature incompleteness there are the following known issues which will be fixed in a later (pre-)release.
NOTE: The numbers stay same, solved items will (usually) be removed in the next release from this list.


6.) [PLATFORM: any]
    Parsing and/or Evaluation errors from inside in-string evaluation may show wrong source
    when pretty print it.
    For TeaScript Host Application use :debug enabled in interactive shell or --debug when executing script files for get
    a better pretty print.
    For TeaScript Library use Engine::SetDebugMode( true )

   
7.) [PLATFORM: Linux with gcc < 13 or clang w. libstdc++]
    Comparing values where at least one is a floating point and this value is not finite (e.g. NAN or infinity)
    will throw a teascript::exception::runtime_error. Actually, this exception cannot be caught within the 
    TeaScript code.
    On Windows (Visual Studio) and clang w. libc++  and gcc >= 13
    a total strong ordering will be performed and the values can be compared.

    
8.) Solved! This issue was a misunderstanding of std::chrono::utc_clock.
    Now, on all platforms clock_utc() returns the UTC time in system_clock representation.

    
10.) [PLATFORM: any]
     Accessing nested tuples via index must be surrounded with parenthesis like this:
     (tup.0).1  // access index 1 of the tuple at index 0 of the tuple 'tup'.
     note: tup.0.1 is parsed to ID: tup, dot-op, f64( 0.1 ) which results only in index 0 of tup.
     WORKAROUND: since 0.11.0 Subscript Operator is implemented, use tup[0].1 or tup[0][1]  as a workaround.


13.) [PLATFORM: Linux with clang and libc++]
     Sending a Suspend Request from another thread to a running program (compiled TeaScript Binary (.tsb))
     in the TeaStackVM is not possible due to the lack of the C++20 library feature std::stop_source|token.
     WORKAROUND: Use gcc/g++ on Linux, ideally >= version 13.


14.) [PLATFORM: any]
     In compile mode: A stop or loop statement referencing an outer loop from an inner loop
     is not possible when issued from inside an operand of a unary,binary operator or subscript operator.
     However, this is actually possible in evaluation mode but it is dicouraged to use (looks like dirty code!).
     E.g., the following code evaluates but is broken when compiled:
     def tup := (1,2,3,4)
     repeat "test" { print( tup[ repeat { stop "test", 1 } ] ) }

