summaryrefslogtreecommitdiffstatshomepage
path: root/unix/main.c
Commit message (Collapse)AuthorAge
* unix windows: mingw32 doesn't have realpath(), use _fullpath() instead.Paul Sokolovsky2014-04-20
|
* unix mem_info(): Dump GC info only if it's enabled.Paul Sokolovsky2014-04-20
|
* unix modffi: Convert to static module structures.Paul Sokolovsky2014-04-18
|
* unix modsocket: Convert to static module structures.Paul Sokolovsky2014-04-17
|
* unix: Make mem_info() dump GC info too.Paul Sokolovsky2014-04-17
| | | | mem_info() is already pretty hacky, let it be more hacky.
* unix modtime: Convert to static module structures.Paul Sokolovsky2014-04-17
|
* build: Simplify build directory layout by putting all headers in genhdr.Damien George2014-04-17
| | | | | Any generated headers go in $(BUILD)/genhdr/, and are #included as 'genhdr/xxx.h'.
* py, unix: Convert sys module to static representation.Paul Sokolovsky2014-04-13
|
* unix: Add option to only compile, and not execute code.Damien George2014-04-10
|
* unix: Oops, remove nlr_jump test in main.Damien George2014-04-08
|
* Add a check for NULL nlr_top in nlr_jump.Damien George2014-04-08
| | | | | | If no nlr_buf has been pushed, and an nlr_jump is called, then control is transferred to nlr_jump_fail (which should bail out with a fatal error).
* Improve REPL detecting when input needs to continue.Damien George2014-04-08
| | | | | | | | Full CPython compatibility with this requires actually parsing the input so far collected, and if it fails parsing due to lack of tokens, then continue collecting input. It's not worth doing it this way. Not having compatibility at this level does not hurt the goals of Micro Python.
* unix, windows: There's no "help" builtin.Paul Sokolovsky2014-04-08
|
* Add uPy welcome message to UNIX and Windows ports; update Teensy port.Damien George2014-04-07
| | | | Partly addresses issue #154.
* py: Add option to compiler to specify default code emitter.Damien George2014-04-06
| | | | Also add command line option to unix port to select emitter.
* unix: Use STATIC modifier to enable code size analysis via map file.Paul Sokolovsky2014-04-04
|
* unix: Routines related to terminal reading should use system malloc.Paul Sokolovsky2014-04-04
| | | | Otherwise we have mixup between system and GC alloc.
* unix: Allocate more heap memory by default on 64 bit machines.Damien George2014-04-04
| | | | | Pointers are 2x bigger on 64 bit machines, so we should allocate twice the memory to have a comparable heap size.
* unix: Use argv[0] for command name in usage.Paul Sokolovsky2014-04-02
|
* unix: Support #if-able impl-specific cmdline options.Paul Sokolovsky2014-04-02
| | | | For example, we still build w/o GC enabled, so cannot really set heap size.
* unix: Properly recognize and report when script on cmdline not found.Paul Sokolovsky2014-04-02
| | | | Previosuly just silently exited.
* py: Remove old "run time" functions that were 1 liners.Damien George2014-03-31
|
* Merge map.h into obj.h.Damien George2014-03-30
| | | | | | Pretty much everyone needs to include map.h, since it's such an integral part of the Micro Python object implementation. Thus, the definitions are now in obj.h instead. map.h is removed.
* Rename rt_* to mp_*.Damien George2014-03-30
| | | | | | | Mostly just a global search and replace. Except rt_is_true which becomes mp_obj_is_true. Still would like to tidy up some of the names, but this will do for now.
* Remove mp_obj_type_t.methods entry and use .locals_dict instead.Damien George2014-03-26
| | | | | | | | | | | | | | | | | | | | | | Originally, .methods was used for methods in a ROM class, and locals_dict for methods in a user-created class. That distinction is unnecessary, and we can use locals_dict for ROM classes now that we have ROMable maps. This removes an entry in the bloated mp_obj_type_t struct, saving a word for each ROM object and each RAM object. ROM objects that have a methods table (now a locals_dict) need an extra word in total (removed the methods pointer (1 word), no longer need the sentinel (2 words), but now need an mp_obj_dict_t wrapper (4 words)). But RAM objects save a word because they never used the methods entry. Overall the ROM usage is down by a few hundred bytes, and RAM usage is down 1 word per user-defined type/class. There is less code (no need to check 2 tables), and now consistent with the way ROM modules have their tables initialised. Efficiency is very close to equivaluent.
* Change mp_method_t.name from const char * to qstr.Damien George2014-03-26
| | | | Addresses issue #377.
* unix: Clean up includes.xbe2014-03-16
| | | | Remove unnecessary includes. Add includes that improve portability.
* unix: Make usage info reflect actual usage of -X option.Damien George2014-03-08
|
* Implement ROMable modules. Add math module.Damien George2014-03-08
| | | | | | | | | | mp_module_obj_t can now be put in ROM. Configuration of float type is now similar to longint: can now choose none, float or double as the implementation. math module has basic math functions. For STM port, these are not yet implemented (they are just stub functions).
* unix: Add to usage print-out telling about -X option.Damien George2014-03-04
|
* unix: Allow to set heap size using "-X heapsize=N" option.Paul Sokolovsky2014-03-04
|
* Make DEBUG_printf() a proper function, implementation is port-dependent.Paul Sokolovsky2014-02-16
| | | | | In particular, unix outputs to stderr, to allow to run testsuite against micropython built with debug output (by redirecting stderr to /dev/null).
* Implement proper exception type hierarchy.Damien George2014-02-15
| | | | | | | | | | | | | | Each built-in exception is now a type, with base type BaseException. C exceptions are created by passing a pointer to the exception type to make an instance of. When raising an exception from the VM, an instance is created automatically if an exception type is raised (as opposed to an exception instance). Exception matching (RT_BINARY_OP_EXCEPTION_MATCH) is now proper. Handling of parse error changed to match new exceptions. mp_const_type renamed to mp_type_type for consistency.
* Change mp_obj_type_t.name from const char * to qstr.Damien George2014-02-15
| | | | | | Ultimately all static strings should be qstr. This entry in the type structure is only used for printing error messages (to tell the type of the bad argument), and printing objects that don't supply a .print method.
* Allow ports to define statically builtin functions.Paul Sokolovsky2014-02-14
| | | | Convert unix open() to such.
* unix: Implement garbage collection support.Paul Sokolovsky2014-02-11
|
* Rename str_join -> strjoin to make it not clash with objstr's one.Paul Sokolovsky2014-02-11
|
* Rename "rawsocket" module to "microsocket".Paul Sokolovsky2014-02-08
| | | | | | | It's no longer intended to provide just "raw" socket interface, may include some convenience methods for compatibility with CPython socket - but anyway just minimal set required to deal with socket client and servers, not wider network functionality.
* Search paths properly on import and execute __init__.py if it exists.Damien George2014-02-05
|
* Remove older import helpers, no longer used.Paul Sokolovsky2014-02-05
|
* unix: Be sure to add current/base dir of a script to sys.path.Paul Sokolovsky2014-02-05
| | | | | This mirrors CPython behavior and makes possible to run scripts which import other modules not from script's directory.
* unix: Initialize sys.path from MICROPYPATH environment variable.Paul Sokolovsky2014-02-05
| | | | | If it's not available, "~/.micropython/lib:/usr/lib/micropython" is used as a fallback.
* unix: Add basic time module (with time() and clock() functions).Paul Sokolovsky2014-02-02
| | | | | Both return int so far (single-precision float doesn't have enough bits to represent int32 precisely).
* Add mpconfigport.mk file to configure which modules to include into build.Paul Sokolovsky2014-02-01
| | | | | Proof of concept, controls "ffi" module as one which requires external dependencies.
* Add qstr_info() function and bindings for unix port.Damien George2014-01-29
|
* unix: Initial implementation of FFI module.Paul Sokolovsky2014-01-29
| | | | | | | | | | | Foreign Function Interface module allows to load native dynamic libraries, call functions and access variables in them. This makes possible to write interface modules in pure Python. This module provides thin wrapper around libffi. ctypes compatibility might be possible to implement on top of this module (though ctypes allow to call functions without prototypes, which is not supported by libffi (i.e. implementation would be inefficient))).
* Implement mp_parse_node_free; print properly repr(string).Damien George2014-01-25
|
* Add parse_node_free_struct() and use it to free parse tree after compilation.Paul Sokolovsky2014-01-25
| | | | TODO: Check lexer/parse/compile error path for leaks too.
* unix main: Free input line.Paul Sokolovsky2014-01-24
| | | | | Also, readline uses system malloc, so for symmetry, use the same for non-readline case.
* Second stage of qstr revamp: uPy str object can be qstr or not.Damien George2014-01-22
|