Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Commits on Mar 25, 2015
  1. @ihnorton

    Remove --int-literals option

    ihnorton authored
Commits on Mar 20, 2015
  1. @vtjnash @JeffBezanson

    hide the julia type pointer from the struct jl_value_t definition

    vtjnash authored JeffBezanson committed
    this makes references to types allocated in Julia recursively forward compatible with C structs
Commits on Mar 9, 2015
  1. @amitmurthy
Commits on Mar 6, 2015
  1. @amitmurthy
Commits on Feb 22, 2015
  1. @ihnorton
Commits on Feb 21, 2015
  1. @jakebolewski

    Parse all command line options in repl.c

    jakebolewski authored
     - consolidate all compiler / cmdline options into jl_options_t struct in julia.h
    
     - add options.jl to base/ with an immutable type JLOptions that
       reflects the jl_options_t struct
    
     - add --procs=<n> command line flag (equivalent to -p <n>)
    
     - add --history-file={yes|no} and --startup-file={yes|no} cmdline opts
    
     - --worker command line arguments changed to --worker,
       --worker=default, or --worker=custom
    
     - deprecate -f, -F, --no-startup, --no-history-file cmdline flags
    
     - add tests for cmdline arguments in test/cmdlineargs.jl
    
     - modify test/Makefile and tests to use long command line option,
       add command line argument tests to runtests.jl
    
     - update relevant docs in the manual and manpages
Commits on Feb 10, 2015
  1. @samoconnor

    Refinement per @vtjnash comments.

    samoconnor authored
    Make uv_write() a function (was a macro) and do c_free in "finally" clause.
    
    Explicit null-termination in jl_safe_printf() to allow for win32's
    non-posix vsnprintf behaviour. See also #9624.
    
    Use jl_safe_printf() in profile thread.
    
    Send help message to jl_printf(JL_STDOUT,)  was stderr.
  2. @samoconnor

    Refactor to reduce dependancy on ios.c

    samoconnor authored
    Rationale:
    
        Unravel ios.c’s legacy role as debug io library for the runtime;
        vs current role as backend for iostream.jl.
    
    Clean up historical debug printf functions:
    
        Replace calls to ios_printf(), ios_puts(), JL_PRINTF, JL_PUTS etc
        with jl_printf(), jl_puts()...
    
        Replace exit() with jl_exit() in repl.c, dump.c and init.c.
    
    Make jl_printf() and jl_exit() safe in early initialisation.
    
    Remove ios.c dependance from ast.c and builtins.c:
    
        src/flisp/flisp.c:
    
            New fl_load_system_image_str(char*, size_t)
            Hides detail of ios_static_buffer from ast.c
            ios_* no longer used in ast.c.
    
        src/builtins.c
    
            In jl_errorf(), replace ios_vprintf() with vasprintf()
            (following the precedent set by src/jl_uv.c:663).
    
    Use free() not LLT_FREE() to clean up after vasprintf() in jl_uv.c:
    
        man vasprintf says “asprintf() and vasprintf() dynamically
                            allocate a new string with malloc(3)”
    
    Refactor pairs of calls to jl_printf() & jl_exit(1) into calls to
    jl_error[f](), which does the same thing during early init.
    
    Dead code removal:
    
        jl_uv.c: jl_bufptr(), jl_ios_buf_base(), jl_putc(), jl_pututf8()
        sys.c: jl_ios_size()
    
    New jl_safe_printf().
    
    jl_safe_printf() uses a statically allocated 1000 byte buffer to
    vnsprintf() a message then calls write(2) to send it to stderr.
    
    jl_safe_printf() is intended to be used in places where there is the
    potential for out of memory, corrupted stack, re-entrancy etc.
    
    The current jl_safe_printf() implementation is not 100% safe in all
    situations, but it should be pretty good most of the time, especially
    if the formatting is limited to %d.
    
    The safety of jl_safe_printf() could be improved later, but at least
    for now the places were safety might matter are identified by its use.
    
    jl_safe_printf() is used in:
    
     - sigdie_handler()
     - sigint_handler()
     - _exception_handler()
     - catch_exception_raise()
     - gdblookup()
    
    Thanks to @vtjnash for assistance and feedback with these changes.
    
    Dead code cleanup & jl_write() simplificaiton.
    
    Clean up dead code:
        stream.jl : write!() — My apologies if this is used somewhere, I
    could’t find any doc or callers.
        builtins.c : jl_print_symbol(), jl_print_int64()
        ccall.cpp : if(0 …) jl_puts()
        jl_uv.c : jl_puts
    
    Replace 2 remaining calls to jl_puts() with calls to jl_printf() for
    consistency.
        builtins.c : jl_error()
        repl.c : true_main()
    
    Move jl_uv_writecb() implementation from stream.jl to jl_uv.c.
    This callback is only used by jl_write(),
    which is only called from jl_vprintf() in runtime C code.
    This helps to de-tangle fs.jl and stream.jl from the runtime's printf().
    
    Use jl_safe_printf() to attempt error message output in jl_uv_writecb().
    If this callback is printing an error, there was a problem writing to
    JL_STDOUT or JL_STDERR, so its best to try the simpelest means possible
    to get the error out.
    
    update doc/devdocs/stdio.rst to remove reference to:
        jl_write(), jl_putc(), jl_puts().
    
    Simplify handling of STDOUT and STDERR early in initialisation:
        Instead of calling fwrite(), just call uv_default_loop() to get the
        jl_io_loop and then call jl_fs_write as usual.
        This means that all jl_printf()s now go through uvlib.
        There is a chance that this won’t work in win32, AppVeyor will tell...
    
    Remove C interface for single character writes:
    
     - jl_fs_write_byte()
     - jl_putc_copy()
     - jl_pututf8_copy()
    
    Hadnle single character writes in Julia:
    
     - write(f::File,        c::UInt8) = write(f, [c])
     - write(s::AsyncStream, b::UInt8) = write(s, [b])
     - write(s::AsyncStream, c::Char)  = write(s, string(c))
    
    Rationale:
    
     - Writing to a libuv stream involves: "Julia does C malloc, Julia calls C,
       C calls libuv, libuv calls C callback, C callback calls julia hook,
       C callcback does c_free". Having less special cases of this makes
       it easier to reason about correctness.
    
     - Whatever overhead there might be in creating the temporary 1
       element array (or string); it is small compared to all the
       machinery in libuv, and the OS that actually makes the single
       character write happen.
    
     - If a user is doing single character writes to a libuv stream,
       they either don’t care about performance, or they should be
       buffering in Julia before calling write().
    
    Inline jl_write_copy() into only remaining called: jl_write():
    
     - This is now the only place that needs to know about the
       trick used to store a copy of the output string after the
       request struct (i.e. malloc(sizeof(uv_write_t) + n));
    
    Removed dead code:
     - stream.jl : make_stdout_stream()
     - stream.jl : jl_write_copy()
    
    Rename:
     - jl_write_no_copy() -> jl_uv_write()
    
    Move common code from stream.jl write() functions into uv_write macro:
     - ccall to jl_uv_write() (was jl_write_no_copy).
     - wait for current task
    
    Simplify uv_write memory management:
    
    Try to keep all the state management in one place (in macto uv_write()).
    
    Move free() of uv_write_t request object
    from C callback jl_uv_writecb_task() to macro uv_write().
    This puts the malloc() and the free() in the same place.
    
    Move uv_req_set_data(uvw,C_NULL) from C jl_uv_write() to macro
    uv_write().
    In _uv_hook_writecb_task() assert that uv_req_data(req) is not NULL.
    libuv should not call the callback from within the call to uv_write(),
    libuv has an internal “write_completed_queue” that is pumped by the main
    loop.
Commits on Jan 25, 2015
  1. @vtjnash
Commits on Jan 14, 2015
  1. @vtjnash

    fix various code issues: some formatting cleanup, some missing gc roo…

    vtjnash authored
    …ts, some potential alignment issues, and a strcpy buffer overflow at startup
Commits on Jan 13, 2015
  1. @eschnett
  2. @eschnett
Commits on Jan 11, 2015
  1. @drepper

    Minor code and style improvements in ui/repl.c

    drepper authored
    - use array variables instead of pointers
    - add const where possible
    - use enums to assign values for high getopt options insteaf of
      possibly error-prone manual assignment.  Also documents the
      code better
Commits on Dec 30, 2014
  1. @timholy

    Add --inline={yes|no} startup option

    timholy authored
    Turning off inlining improves the quality of backtraces for debugging
Commits on Dec 23, 2014
  1. @tkelman

    Replace a bunch of tabs with spaces

    tkelman authored
    for reference, these were found using grep -n -P '\t' */*.c* */*.h* src/*/*.c* src/*/*.h* */*.jl */*/*.jl */*/*/*.jl
Commits on Dec 15, 2014
  1. @jakebolewski

    Add the ability to disable deprecation warnings with a cmd line switch

    jakebolewski authored
    The `--depwarn={yes|no}` flag turns on/off method warnings and deprecated syntax warnings
    in the parser.
    
    (unexported) `compileropts()` method added to retrieve the
    compileropts struct from libjulia.
    
    (unexported) `syntax_deprecation_warnings(::Bool)` method added to
    turn off syntax deprecation warnings in the parser at runtime.
    the method returns the previous syntax deprecation warning state.
    
    add NEWS entry and update docs for command line switches
  2. @staticfloat

    Support building of system image in binary builds

    staticfloat authored
    This commit adds a few new pieces of functionality:
    
    * The `contrib/build_sysimg.jl` script which builds a new system image.  This method can save the system image wherever the user desires, e.g. it could be stored in `~/.julia`, to allow for per-user system images each customized with packages in their own `userimg.jl`.  Or on a restricted system, this allows for creation of a system image without root access.
    
    * The removal of compile-time `JULIA_CPU_TARGET`, in favor of runtime `--cpu-target`/`-C` command-line flags which default to `"native"` but can be set to `"native"`, `"i386"`, `"core2"` or any other LLVM cpu target.  This allows the creation of a system image targeting user-supplied cpu features, e.g. `cd base; ../julia -C i386 --build /tmp/sys_i386 sysimg.jl`.
    
    * I implemented runtime selection of the cpu target by adding a new member to the `jl_compileropts_t` structure called `cpu_target`.
    
    * Because all julia executables are now created equal, (rather than before where a julia executable needed to have the same `JULIA_CPU_TARGET` set internally as the system image had when it was built) we need to know what CPU feature set the system image is targeting before we initialize code generation.  So a new function `jl_get_system_image_cpu_target()` is exported, which does exactly what it sounds like.
    
    * I added newlines to the end of a few error messages.
    
    * I found an old parser option `-T` which hadn't been removed yet, so I took the opportunity to do so.
    
    * Documentation on this has been added to doc/devdocs/sysimg.rst
Commits on Dec 14, 2014
  1. @vtjnash
  2. @vtjnash

    unbreak win64 COPY_STACK

    vtjnash authored
  3. @vtjnash
  4. @vtjnash

    allow the user to specify whether the image_file should be interprete…

    vtjnash authored
    …d relative to JULIA_HOME or CWD
Commits on Dec 13, 2014
  1. @vtjnash

    code cleanup

    vtjnash authored
  2. @vtjnash
Commits on Dec 7, 2014
  1. @vtjnash

    cleanup julia_init options

    vtjnash authored
    moves all configuration options into jl_compileropts
    compute the abspath/realpath of file paths in the config to avoid issues with chdir
Commits on Dec 2, 2014
  1. @ArchRobison

    Add -O switch and add SLPVectorizer/BasicAliasAnalysis under it.

    ArchRobison authored
    Change pass order to more closely match Clang's.
    Add patch to LLVM 3.3 with enhancements for vectorizing tuples.
    The patch contains functionality and tests backported from
    SLPVectorizer changes added to LLVM 3.5.0.
Commits on Nov 6, 2014
  1. @jakebolewski
Commits on Oct 21, 2014
  1. @vtjnash
Commits on Oct 9, 2014
  1. @vtjnash
Commits on Sep 28, 2014
  1. @tkelman

    change .do extension to .dbg.obj

    tkelman authored
    so the compile MSVC wrapper script can recognize the extension
  2. @tkelman

    add getopt.{c,h} from musl-libc for MSVC use

    tkelman authored
    link to license of musl-libc
Commits on Aug 20, 2014
  1. @JeffBezanson @Keno

    add --compile={yes|no|all} option

    JeffBezanson authored Keno committed
    yes - default
    no - turn JIT off
    all - when building system image, compile exhaustively
    an image built with compile=all can run with compile=no
    
    make constructors work with static compilation, again
    passing static parameters through closure environments
    
    move ctor_factory to TypeName, since there is only one
    per family of types anyway.
Commits on Aug 12, 2014
  1. @Keno

    WIP

    Keno authored
  2. @Keno

    WIP: Add ability to build a custom libcxx

    Keno authored
    This is useful when compiling on a system with an outdated std c++ library,
    but you need to build llvm, or when wanting to build julia with msan.
  3. @Keno
Commits on Aug 6, 2014
  1. @Keno

    Also fix llvm shlib name in ui

    Keno authored
Something went wrong with that request. Please try again.