Commit graph

410 commits

Author SHA1 Message Date
Yasuhiro Horimoto
aa8249d177 Fix #9126: use splitPath instead of substr 2018-09-30 23:20:14 +09:00
Leorize
8cc1c55620
os: add getAppFilename() implementation for Haiku 2018-09-24 21:01:55 +07:00
Andreas Rumpf
c1aecb8914 os.nim: allow walkDir to work on hierarchies with dangling symbolic links; refs #9034 2018-09-24 13:15:55 +02:00
Araq
64517445ea even more strict isNil handling for strings/seqs in order to detect bugs 2018-08-22 12:35:46 +02:00
Emery Hemingway
2da0341b4d Genode fixes (#8501)
* Genode fixes

- wrap strings in "Genode::Cstring" when logging
- define SIGABRT for Genode
- disable GCC -fstack-protector
- use log RPC for fatal messages
- add --os:genode build to appveyor
- define paramStr and paramCount

* Select fixups for Genode POSIX
2018-08-16 18:12:37 +02:00
alaviss
7ef268274f Haiku support for Nim (#8542)
* posix_other: Haiku now has spawn.h

This is added per https://dev.haiku-os.org/ticket/13446

* posix_other: Add Haiku specific Dirent members

* cpuinfo: Add an implementation for Haiku

* distros: Add basic Haiku support

* encodings: update Haiku support

* fenv, math: Haiku now provides libm

* times: Add Haiku struct members

* ansi_c, osalloc: Add Haiku constants

* threads: Add Haiku support

* testament: Haiku uses LIBRARY_PATH

* nim.cfg: Update Haiku support

libnetwork should only be linked if network functions are used

* threads: Haiku does not support -pthread switch

* tworkingdir: Haiku's env is in /bin

* posix_other: add SIGKILLTHR for Haiku

* sockets: link with libnetwork on Haiku

* coro: correct ucontext.h location

http://pubs.opengroup.org/onlinepubs/009696699/basedefs/ucontext.h.html

* coro: ucontext backend is not available on Haiku

Haiku doesn't provide the <ucontext.h> header, as it was removed from POSIX

* coro: fix setjmp backend

The compiler does not allow statements after a noreturn function

* nativesockets: Haiku doesn't support AI_V4MAPPED

* system: hostOS can contains "haiku"

* os: add support for Haiku's packagefs

packagefs is read-only, but there are writable holes to the underlying
file system as well

* os: update constant for Haiku
2018-08-14 09:35:07 +02:00
Timothee Cour
9249276db0 addresses issue #8391 show runtime context on some failed operations (#8393) 2018-07-23 22:58:03 +02:00
Timothee Cour
25bf0d1683 add os.absolutePath; fixes #8174 (#8213)
* add os.absolutePath

* fixup

* fixup

* Fixes absolutePath error message.
2018-07-10 20:31:13 +01:00
Federico Ceratto
d65429d857 Add normalizePath and tests 2018-07-06 20:21:39 +01:00
Joey
559a7615ad Nintendo switch support (#8069)
* Add config section for Nintendo Switch
* Add compiler configuration for Nintendo Switch and it's CPU
* Add specific lib code for Nintendo Switch
* Add GC support for Nintendo Switch
* Update changelog for Nintendo Switch
* Update changelog with more info about fixed paths
* Cleaned up GC memory management a bit
* Relocate docs for Switch
* Rename aarch64NoneElfGcc to nintendoSwitchGCC
* Remove armv8a57
* Fix installer.ini
* Reuse code in linux and amd64
* Add posix defs for nintendo switch
* Add more defined sections for nintendo switch
* Remove old comment
* Add what's not supported for Nintendo Switch docs
* Make nintendoswitch == posix
* Remove DEVKITPRO references from nim.cfg
* Make PR extccomp changes
* Remove Result type alias
* Add separate switch consts file
* Update docs for nintendo switch
* Fix travis errors with undefined consts and add correct wait.h procs
2018-06-27 12:35:09 +02:00
Andreas Rumpf
61d9292095 fixes merge conflict 2018-06-11 01:25:48 +02:00
Araq
8e9551b1c7 fixex merge conflicts 2018-06-08 19:50:36 +02:00
Emery Hemingway
22f714585b Native access to Genode environment
Add a 'GenodeEnv' type and a 'componentConstructHook' to the system
module. The 'componentConstructHook' allows for detection of POSIX style
programs that exit implicitly or native Genode components that
initialize to serve RPC requests and OS signals.

This hook takes a 'GenodeEnv' argument so that the environment interface
is passed cleanly to application code after globals are initialized.
This is an typed pointer to a C++ object, procedures for accessing the
environment will be available from a Nimble library and not included in
the standard library.

The standard library has an internal pointer to the environment object
but this is not for external use, the undocumented global environment
pointer has been removed.
2018-06-07 07:21:20 +02:00
Oscar Nihlgård
05b447374b Use higher time resolution when available in os.nim (#7709) 2018-06-04 14:56:56 +02:00
Andreas Rumpf
afdd77363e Merge branch 'devel' into araq-big-refactoring 2018-05-28 12:13:50 +02:00
Federico Ceratto
21fb0db6e2 Update existsFile documentation (#7888) 2018-05-27 19:35:19 -04:00
Andreas Rumpf
cb6a4ffa86 Merge branch 'devel' into araq-big-refactoring 2018-05-21 17:31:23 +02:00
koranza
f9358e85ca
remove unneeded check on length 2018-05-19 14:48:19 -05:00
koranza
aefa6547c3
check string lengths to avoid index out of bound 2018-05-18 18:25:49 -05:00
Andreas Rumpf
3af5a5d9e3 os.nim: don't use echo for error reporting 2018-05-18 20:16:30 +02:00
Araq
bbb0fd4eb7 remove deprecated stuff from the stdlib; introduce better deprecation warnings 2018-05-05 21:45:07 +02:00
Andreas Rumpf
5758ebf02c more fixes for the new string behaviour 2018-04-30 08:53:31 +02:00
Jacek Sieka
72dfe176f5 remove dead code elimination option (#7669) 2018-04-23 11:02:38 +02:00
Oscar Nihlgård
7d034d7b6a Add fromWinTime and deprecate unixTimeToWinTime/winTimeToUnixTime (#7641) 2018-04-19 22:41:06 +02:00
Oscar Nihlgård
fdf1d12380 Change type of Timeval.tv_sec to posix.Time (#7646) 2018-04-18 21:24:28 +02:00
Hendrik
b1b517128e os.setLastModificationTime*(file: string, t: times.Time) (#7543)
* add proc toFILETIME to winlean
* add proc toWinTime to times
* add proc setFileTime to winlean
* openHandle with write access
* add proc setLastModificationTime to os
* moved epochDiff,rateDiff constants and proc toWinTime
The constants were moved out of the when defined(JS) block so that they
are alsways available in proc toWinTime.
proc toWinTime was moved above the # Deprecated procs comment. Best new
location seemed to be with the toUnix proc.
2018-04-16 22:03:24 +02:00
Andreas Rumpf
7c879d9b0f explicit effects for existsOrCreateDir 2018-04-14 13:57:27 +02:00
Oscar Nihlgård
f6df2d9956 Sub second time resolution (#6978)
* Add deprecation warnings to recently deprecated procs

* Fix bad usage of the times module

* Introduce sub second resolution

* Fix usage of C's time()

* Switch to nanosecond resolution

* Make Time & Duration opaque again and fix some errors

* Change back to TimeInterval for shorthands

* Fix JS test

* Fix build error for windows

* Undeprecate epochTime

* Documentation and minor changes

* Lots of bugfixes and doc comments

* Attempt to make travis & appveyor green

* Fix edge cases for dealing with the local timezone

* Workaround JS backend overflow/underflow bug

* Use better workaround for not knowing the size of time_t

* Use all available timezones for tests

* Fix indentation

* Add procs for accessing the fractional part of a duration

* Order time units from smallest to largest since it makes more sense

* Include months and years in `TimeUnit`

* Review fix
2018-04-13 07:36:30 +02:00
Federico Ceratto
56dc7c6f77
Allow searching for "rename file" in documentation 2018-04-07 12:56:16 +01:00
Andreas Rumpf
4f9ae61695 fixes #6939 2018-02-02 17:35:04 +01:00
Dominik Picheta
8da96bc72b
Remove additionalInfo in OSError in findNextFile 2018-01-11 12:16:34 +00:00
oskca
c9c44a4eb9 correct type for raiseOSError 2018-01-11 19:42:19 +08:00
oskca
495331bf20 raiseOSError to indicate the failling of findNextFile in walkDir[Rec] 2018-01-11 13:40:35 +08:00
oskca
e98a2051ce check ERROR_NO_MORE_FILES to prevent walkDir[Rec] to quit prematurely 2018-01-11 13:40:35 +08:00
Dmitry Atamanov
63403b31ad Modified behavior of walkDirRec (#6952) 2017-12-21 11:15:19 +01:00
GULPF
a879973081 Better times module (#6552)
* First work on better timezones

* Update tests to new api.
Removed tests for checking that `isDst` was included when formatting, since `isDst` no longer affects utc offset (the entire utc offset is stored directly in `utcOffset` instead).

* Deprecate getLocaltime & getGmTime
* Add `now()` as a shorthand for GetTIme().inZone(Local)
* Add FedericoCeratto's timezone tests (#6548)
* Run more tests in all timezones

* Make month enum start at 1 instead of 0
* Deprecate getDayOfWeekJulian
* Fix issues with gc safety
* Rename TimeInfo => DateTime
* Fixes #6465
* Improve isLeapYear
* FIx handling negative adjTime

* Cleanup:
- deprecated toSeconds and fromSeconds, added fromUnix and toUnix instead (that returns int64 instead of float)
- added missing doc comments
- removed some unnecessary JS specific implementations

* Fix misstake in JS `-` for Time

* Update usage of TimeEffect
* Removed unecessary use of `difftime`
* JS fix for local tz
* Fix subtraction of months
* Fix `days` field in `toTimeInterval`
* Style and docs
* Fix getDayOfYear for real this time...
* Fix handling of adding/subtracting time across dst transitions
* Fix some bad usage of the times module in the stdlib
* Revert to use proper time resoultion for seeding in random.nim
* Move deprecated procs to bottom of file
* Always use `epochTime` in `randomize`
* Remove TimeInterval normalization
* Fixes #6905

* Fix getDayOfWeek for year < 1
* Export toEpochDay/fromEpochDay and change year/month/monthday order
* Add asserts for checking that the monthday is valid
* Fix some remaining ambiguous references to `Time`
* Fix ambiguous reference to Time
2017-12-18 23:11:28 +01:00
Andreas Rumpf
6a101c5004 os.nim bugfix: system() returns bullshit on Posix-like systems in general 2017-12-01 02:31:47 +01:00
Federico Ceratto
ab938fc901 Clarify paramStr / paramCount use and availability (#6727) 2017-11-14 11:05:58 +01:00
Andreas Rumpf
3308d26581 breaking change: arrays of char do not convert to cstring; ptr to array of char does 2017-10-10 00:17:20 +02:00
Andreas Rumpf
db0d353281 Merge branch 'stringify-array' of https://github.com/krux02/Nim into krux02-stringify-array 2017-10-09 23:46:24 +02:00
Andreas Rumpf
3bc7dbbd97 os.nim: revert findExe 'improvement' that breaks our builds 2017-09-01 21:35:46 +02:00
Araq
a43eae8e6c os.findExe: do not return binaries in the cwd 2017-09-01 19:31:27 +02:00
Andreas Rumpf
50666a1f8b refactor os.nim and ospaths.nim 2017-09-01 10:35:50 +02:00
Andreas Rumpf
8ce4273864 os.nim: do not include and import ospaths 2017-09-01 09:42:32 +02:00
Charlie Barto
0d07117a65 allow non-admins to create symlinks on windows (#6287) 2017-08-29 08:30:57 +02:00
Arne Döring
ddea990a70 removed newString proc again, reverted some unnecesary changes 2017-07-24 23:21:51 +02:00
Arne Döring
1f7fc7f279 arrays can now be printed 2017-07-24 23:21:51 +02:00
Emery Hemingway
85d4109a0d Genode readdir fix (#6080)
The Genode readdir is inherited from then FreeBSD libc.
2017-07-14 16:43:42 +02:00
Andreas Rumpf
2b72f775e2 make os.nim compile on Windows again 2017-07-09 01:02:14 +02:00
Andreas Rumpf
46dffbed71 minor improvements to os.paramStr 2017-07-08 21:48:03 +02:00