ChanServ changed the topic of #crystal-lang to: The Crystal programming language | http://crystal-lang.org | Crystal 0.33.0 | Fund Crystal's development: http://is.gd/X7PRtI | GH: https://github.com/crystal-lang/crystal | Docs: http://crystal-lang.org/docs/ | API: http://crystal-lang.org/api/ | Gitter: https://gitter.im/crystal-lang/crystal
alexherbo2 has quit [Ping timeout: 260 seconds]
<FromGitter> <watzon> Basically
<FromGitter> <watzon> I'm going to use it for userbots, and eventually to make a terminal client for Telegram. Just have to wait on a good terminal UI library.
<FromGitter> <watzon> And it should be several times faster than the popular Python libraries being used
<FromGitter> <oren> terminal UI library? is it something like https://github.com/agatan/ncurses.cr ?
<FromGitter> <oren> I like to build command line apps but I can't find a good helper library
<FromGitter> <watzon> Yeah, but I'm not a fan of curses
<FromGitter> <oren> me too!
<FromGitter> <watzon> Someone is working on a pure Crystal one
<FromGitter> <watzon> Can't remember the name right now
<FromGitter> <oren> i like something like this better - https://github.com/workshopper/javascripting/blob/master/screenshot.png
<FromGitter> <oren> @watzon if you remember one day, ping me!
<FromGitter> <watzon> There we go
<FromGitter> <watzon> Seems like development is somewhat stalled though
<FromGitter> <oren> @watzon thank you! it always surprises me that GUI libraries have no pictures on their READMEs
<FromGitter> <watzon> Yeah no kidding haha
<FromGitter> <watzon> But it is still in semi-early development. Still missing a lot.
<FromGitter> <oren> will try it out now!
<FromGitter> <oren> (and report back)
<FromGitter> <oren> it's inspired by blessed, a node.js library - https://github.com/chjj/blessed
<FromGitter> <oren> first issue - 'shard install' => Error resolving terminfo (*, ~> 0.7.1, 0.7.0)
return0e_ has joined #crystal-lang
return0e has quit [Ping timeout: 258 seconds]
<FromGitter> <Blacksmoke16> hm?
<postmodern> watzon, is there any preference on crystal- vs .cr for the repo name?
<FromGitter> <watzon> I prefer `.cr` personally
<FromGitter> <Blacksmoke16> those are fine for the repo name, but the shard name should probably not be either
<FromGitter> <watzon> Definitely
<FromGitter> <watzon> Because that's the name that has to be `require`d
<postmodern> if you have to map in C stuff from include/linux/, what lib name should it go under? LibC or Linux?
<postmodern> or the main Lib?
<FromGitter> <tenebrousedge> is it theoretically possible that that could be split off into a separate shard, either now or in the future?
<postmodern> tenebrousedge, well this is for the v4l2 library, which is part library and part kernel API
<postmodern> also is there a good way to do mass assign-by-value to a struct. ex: foo.bar = {1,2,3,{'a', 'b'}}? Or do I have to do foo.bar = Bar.new(a: 1, b: 2, c: 3, baz: Baz.new(a: 'a', b: 'b'))
<FromGitter> <Blacksmoke16> prob the latter
<FromGitter> <tenebrousedge> the latter
<FromGitter> <Blacksmoke16> dont have to give the name for each arg if you provide them in right order tho
<FromGitter> <tenebrousedge> and there's the `Foo{ }` syntax
<FromGitter> <tenebrousedge> which is that even documented?
<FromGitter> <watzon> Not as far as I know
<FromGitter> <tenebrousedge> but IIRC if the class implements `[]` you can do e.g. `Array{1, 2, 3}` or `Hash{1 => 2, 3 => 4}`
<postmodern> ooooh
<FromGitter> <watzon> Well `[]=` anyway
<postmodern> hmm getting undefined method << for my struct
<FromGitter> <Blacksmoke16> does it define a `<<` method?
<FromGitter> <watzon> While trying to do what?
<FromGitter> <watzon> Ahhh so that's what it needs
<FromGitter> <watzon> You need to define `<<`, not `[]=`
<FromGitter> <watzon> Although both are nice
<postmodern> hmm so i need to implement my own arg position to field mapper?
<postmodern> basically i'm trying to figure out a way of porting these ugly C macros in https://github.com/torvalds/linux/blob/master/include/uapi/linux/v4l2-dv-timings.h#L29-L40
<FromGitter> <watzon> Well in the case of C structs you can't really define methods on them. So you'll want to make a wrapper.
<FromGitter> <watzon> I also don't know that there's a way to initialize a C struct unless the C lib provides a way to do so. You can probably use `Pointer(StructName).malloc`
<postmodern> it's just populating fields in .bt, which judging by the number of fields has to be V4L2BTTimings
<postmodern> can't find an example of where these timings would be used. I'm guessing you'd create the struct on the stack, populate fields with your appropriate defaults, and call some ioctl to inform the kernel side of v4l2
<postmodern> suppose i could leave this bit unfinished. probably no one uses those macros...
sagax has quit [Quit: Konversation terminated!]
<postmodern> ah ha, Bytes.new(io.size) and io.read_bytes(bytes) did the trick with reading binary data
<postmodern> kind of wish that was a one-liner like File.read_bin or something
<postmodern> which repo contains the `crystal init` tool? it irks me that LICENSE is generated without a .txt ext (something that i think Windows still requires)
<FromGitter> <Blacksmoke16> crystal itself
<FromGitter> <tenebrousedge> I have to confess to a total disregard, verging on contempt, for Windows filesystem conventions
<FromGitter> <watzon> Same
<FromGitter> <watzon> It's kind of a Github convention to have a license file just as LICENSE
<FromGitter> <tenebrousedge> I think it's not just a Github convention, I think it's an old Unix/BSD thing
<FromGitter> <tenebrousedge> like, decades old
<postmodern> i don't care for windows much myself, but having file extensions on files to denote their format/contents is probably a good idea
<FromGitter> <watzon> Hmm well whatever the case it's pretty common. Windows just kinda sucks.
<FromGitter> <watzon> In some repos I do a markdown license
<postmodern> appears looks like crystal 0.33's markdown parser isn't liking github style ``` blocks. it's translating the "```yaml" to "`yaml"
<postmodern> https://github.com/postmodern/udis86.cr well here's my first crystal library. can't figure out why two specs keep failing. would appreciate it if you mercilessly critiqued it ;)
<FromGitter> <watzon> Yeah it doesn't support GFM
<FromGitter> <watzon> Which specs aren't passing?
<postmodern> #input_skip and #operands. No clue about #input_skip. Thinking the generated assembled code is incorrect. udcli keeps outputting it as 16bit asm for some reason
_whitelogger has joined #crystal-lang
wakatara has left #crystal-lang ["Using Circe, the loveliest of all IRC clients"]
sagax has joined #crystal-lang
return0e has joined #crystal-lang
return0e_ has quit [Ping timeout: 272 seconds]
return0e has quit [Ping timeout: 255 seconds]
return0e has joined #crystal-lang
sz0 has joined #crystal-lang
_whitelogger has joined #crystal-lang
return0e_ has joined #crystal-lang
return0e has quit [Ping timeout: 272 seconds]
return0e_ has quit [Read error: Connection reset by peer]
return0e has joined #crystal-lang
alexherbo22 has joined #crystal-lang
<Nilium> It seems like sometimes when running tests via crystal spec, it'll eventually end up with something invalid and any subsequent runs will fail until I destroy most of ~/.cache/crystal -- is that a known problem? Haven't been able to consistently reproduce it, just seems to occasionally degrade.
<Nilium> After a little more searching, looks like it might be related to #5890, though that seems to have only hit CI, so maybe something different (or I'm cursed, which wouldn't be unusual).
<DeBot> https://github.com/crystal-lang/crystal/issues/5890 (Possible cache race condition)
<postmodern> how does one test for elements in a @[Flags] enum? bit-wise &? or is there an `includes?` or `is?` method?
Human_G33k has joined #crystal-lang
HumanGeek has quit [Ping timeout: 265 seconds]
<FromGitter> <asterite> https://crystal-lang.org/api/0.33.0/Enum.html#includes?(other:self)-instance-method
<postmodern> should have looked first. thanks!
postmodern has quit [Quit: Leaving]
darkstardevx has joined #crystal-lang
darkstardevx has quit [Quit: Leaving]
darkstardevx has joined #crystal-lang
darkstardevx has quit [Remote host closed the connection]
darkstardevx has joined #crystal-lang
darkstarx has joined #crystal-lang
darkstardevx has quit [Remote host closed the connection]
darkstardevx has joined #crystal-lang
darkstarx has quit [Client Quit]
darkstardevx has quit [Remote host closed the connection]
darkstardevx has joined #crystal-lang
darkstarx has joined #crystal-lang
<FromGitter> <alex-lairan> Hi guy's. ⏎ ⏎ Do you know a cleaner way to do : ⏎ ⏎ ```@layers.reduce(x_data) { |acc, layer| layer.call(acc) }``` ... [https://gitter.im/crystal-lang/crystal?at=5e529faa8e726c7dc5c20ea3]
<FromGitter> <tenebrousedge> ```@layers.map { |l| input = l.call(input) }``` ⏎ ⏎ maybe [https://gitter.im/crystal-lang/crystal?at=5e52a07740ac4a7fb902a97a]
<FromGitter> <alex-lairan> I try
<FromGitter> <alex-lairan> Thanks, I like it
<FromGitter> <tenebrousedge> :plus1:
wakatara has joined #crystal-lang
<FromGitter> <watzon> Yeah map is nice
<wakatara> While the cli examples in the codebase are handy, does anyone have any great examples of crystal cli apps designed for users (rather than just tech tasks) that they think are good examples of how to structure and build one? Have a few small projects I'd like to do in crystal and wanted to look at what good looks like (aspirationally... =] ).
<FromGitter> <tenebrousedge> like shards ?
<FromGitter> <tenebrousedge> or ameba ?
<FromGitter> <tenebrousedge> or like a TUI ?
<wakatara> No, more like heroku cli or similar. Or jrnl or passpie in python land (as app examples)
<wakatara> or even gopass.
<wakatara> A compiled tool to be designed to use on the cli for accomplishig a specific set of tasks.
<wakatara> newsboat for newsreader. gopass for password management etc etc.
<FromGitter> <tenebrousedge> that would include `shards`, `ameba`, and `crystal` itself, in my book
<wakatara> But written in Crystal. =]
<FromGitter> <tenebrousedge> but you might also check awesome-crystal
<FromGitter> <tenebrousedge> https://github.com/veelenga/awesome-crystal
<wakatara> more general usage than shards, crystal, and ameba which are developer targeted, I'd argue.
<FromGitter> <alex-lairan> There is https://github.com/Blacksmoke16/oq
<FromGitter> <tenebrousedge> any CLI tool is going to be developer-targeted
<FromGitter> <alex-lairan> @tenebrousedge CLI tools can be ops-targeted
<FromGitter> <tenebrousedge> same difference
<FromGitter> <tenebrousedge> GUIs exist because the command line is too hard for normal people to use
<FromGitter> <alex-lairan> But a tool is a tool and can be used by anyone. ⏎ ⏎ The obstacle is the command line
<wakatara> ok, examples like newsboat, gopass, habitctl, jrnl etc... but in crystal. =]
<FromGitter> <tenebrousedge> I'm not familiar with those, but check out awesome-crystal, or search on the shards website for something similar
<wakatara> tenebrousage: alrighty. Will try shards to see if there is anything in there. Thanks.
wakatara has left #crystal-lang ["Using Circe, the loveliest of all IRC clients"]
<FromGitter> <alex-lairan> wakatra look at this : https://crystalshards.xyz/?filter=cli
<FromGitter> <watzon> A little better https://shardbox.org/categories/CLI_Builders
<FromGitter> <alex-lairan> @watzon those are not examples, but shards used to create CLI
<FromGitter> <watzon> True, but you can look at the `dependents` section for each one to see what shards rely on it.
<FromGitter> <watzon> And then look at them
<FromGitter> <watzon> For instance: mint (https://shardbox.org/shards/mint) relies on admiral.
<FromGitter> <alex-lairan> 👍
<FromGitter> <watzon> I feel like `Array(UInt8)` should have a `#hexstring` method like `Slice` does.
<FromGitter> <watzon> They're basically the same thing
<FromGitter> <tenebrousedge> how tho?
<FromGitter> <watzon> Well it's not possible with the type system the way it is unless you write a guard clause I guess
<FromGitter> <watzon> But it would be nice if we could do this
<FromGitter> <watzon> https://carc.in/#/r/8m2f
<FromGitter> <tenebrousedge> maybe some variation on Ruby's `refinements`
<FromGitter> <tenebrousedge> but at the moment those can't exist either
<FromGitter> <watzon> That would be nice to have as well
<FromGitter> <watzon> I just want the ability to override a specific form of a generic type
<FromGitter> <watzon> I wonder if there's an issue for that yet
<FromGitter> <tenebrousedge> I'd settle for having instance-specific methods
<FromGitter> <tenebrousedge> ```a = Array(UInt8).new ⏎ def a.hexstring ⏎ Slice.new(to_unsafe, size).hexstring ⏎ end``` [https://gitter.im/crystal-lang/crystal?at=5e52b69f8b2d4664ef1e7c40]
<FromGitter> <Blacksmoke16> 😬 that seems like a bad idea
<FromGitter> <tenebrousedge> but this probably introduces `NoMethodError` to runtime
<FromGitter> <watzon> Yeah I don't think that would work since Crystal wants all methods to be known at compile time
<FromGitter> <watzon> But being able to override a specific generic at compile time should be within the realm of possibility
<FromGitter> <Blacksmoke16> https://carc.in/#/r/8m2n
<FromGitter> <Blacksmoke16> a bit manual but :shrug:
<FromGitter> <watzon> Theoretically you could probably wrap the whole thing in a macro that checks they type of `T`
<FromGitter> <watzon> And only creates the method if `T` is a specific type
<FromGitter> <watzon> Maybe?
<FromGitter> <Blacksmoke16> prob
<FromGitter> <watzon> Hmm maybe not
<FromGitter> <Blacksmoke16> no?
<FromGitter> <watzon> Macros can't see generic type apparently
<FromGitter> <tenebrousedge> can you define methods in `included`?
<FromGitter> <watzon> https://carc.in/#/r/8m2p
<FromGitter> <watzon> That you can
<FromGitter> <Blacksmoke16> ah right
<FromGitter> <Blacksmoke16> prob has to be in context of a method
<FromGitter> <watzon> Oh well
<FromGitter> <Blacksmoke16> *soon* ⏎ ⏎ ```{% check_type(T, UInt8, "Cannot use #hexstring on non UInt8 arrays") %}``` [https://gitter.im/crystal-lang/crystal?at=5e52b855ff00c664eedf88e1]
<FromGitter> <watzon> Oh?
<FromGitter> <watzon> Is there a PR for `check_type`?
<FromGitter> <Blacksmoke16> no, but with that one PR you could define one
<FromGitter> <Blacksmoke16> and just reuse that where you need this
<FromGitter> <watzon> Ahhh
<FromGitter> <Blacksmoke16> so heres a question, say you have a route controller action
<FromGitter> <Blacksmoke16> and you have one argument that is not nilable with no default value
<FromGitter> <Blacksmoke16> and a value for it fails to be resolved from a request
<FromGitter> <Blacksmoke16> what would make more sense
<FromGitter> <Blacksmoke16> 1) an exception that results in a 500 for the client, and a message saying the controller/action requires a value for x argument ⏎ 2) an exception that results in a 400 for the client saying required parameter x is missing
<FromGitter> <Blacksmoke16> 500 for the client and internally a message that says*
<FromGitter> <watzon> I'd go with a 400 error probably, because parameter x in this case is a missing required parameter right?
<FromGitter> <Blacksmoke16> most likely yea, could also be some logic error in the user's code, but that's probably less likely
<FromGitter> <watzon> Yeah I'd go the 400 route probably
<FromGitter> <tenebrousedge> a 400 error seems to imply that something was malformed about the HTTP request itself
<FromGitter> <tenebrousedge> that it's an issue with the transport rather than the application
<FromGitter> <watzon> Well 400 can be for incorrect requests, which this is=
<FromGitter> <Blacksmoke16> maybe 422 then? `The server understands the content type of the request entity (hence a 415 Unsupported Media Type status code is inappropriate), and the syntax of the request entity is correct (thus a 400 Bad Request status code is inappropriate) but was unable to process the contained instructions.`
<FromGitter> <watzon> Lots of other frameworks do the same
<FromGitter> <watzon> Seems like the general consensus is that 400 errors should be used for missing parameters
<FromGitter> <tenebrousedge> I've never heard of those projects
<FromGitter> <watzon> I just searched google for "http missing parameter error" and pretty much everything I've found says 400
<FromGitter> <watzon> :shrug:
<FromGitter> <tenebrousedge> so originally 400 was syntax only, but now it's both
<FromGitter> <watzon> Yeah, and 422 has no purpose
<FromGitter> <watzon> Sad for it
<FromGitter> <Blacksmoke16> lucky uses 400 too
<FromGitter> <Blacksmoke16> i use 422, but for validation errors
<FromGitter> <watzon> That works
<FromGitter> <Blacksmoke16> like "everything i need is here and valid but it cant be processed since it is invalid based on my business logic"
<FromGitter> <Blacksmoke16> added a new concept to athena
<FromGitter> <Blacksmoke16> ```code paste, see link``` [https://gitter.im/crystal-lang/crystal?at=5e52bd48dafa3029f64bccd9]
<FromGitter> <Blacksmoke16> would be the action example that that resolver would handle
<FromGitter> <grkek> Hello
<FromGitter> <Blacksmoke16> o/
<FromGitter> <grkek> Haven't gotten on here for so long
<FromGitter> <grkek> how have you guys been doing ?
<FromGitter> <grkek> Oh you changed your name @Blacksmoke16
<FromGitter> <Blacksmoke16> doing well, yes i merged my work and personal accounts
<FromGitter> <grkek> By the way, how did you move athena to an organisation account ?
<FromGitter> <grkek> I just had my first contributor
<FromGitter> <grkek> pretty happy :D
<FromGitter> <Blacksmoke16> transfer ownership
<FromGitter> <grkek> Nice
<FromGitter> <grkek> thank you ;)
<FromGitter> <Blacksmoke16> ah nice, congrats
<FromGitter> <watzon> Hey @grkek long time no see
<sorcus> grkek: Hi :-D
<sorcus> grkek: Your framework recomended on russian forum :-D https://www.linux.org.ru/forum/web-development/15535903?cid=15536229
<FromGitter> <watzon> Woo!
<FromGitter> <watzon> On to CTR
<sorcus> watzon: Cool :-)
<FromGitter> <watzon> Translating C to Crystal is a pain in the ass lol
<FromGitter> <Blacksmoke16> i could believe it
<FromGitter> <tenebrousedge> github has a dark mode?
<FromGitter> <tenebrousedge> hmmm
<FromGitter> <Blacksmoke16> also have one for stackoverflow
<FromGitter> <watzon> I've just been using Dark Reader
<FromGitter> <watzon> Works pretty nicely for most sites
<FromGitter> <phykos> Is there a way to compile the Crystal compiler on ARM (aka Raspberry Pi & friends)? ⏎ I have seen a prebuilt version of Crystal but it's a bit outdated, so can I use that for bootstrapping the compiler?
_ht has joined #crystal-lang
ur5us_ has joined #crystal-lang
<FromGitter> <j8r> @phykos I was statically linking my app with `crystal build --static` on qemu aarch64
<FromGitter> <j8r> but now Crystal on Alpine arrch64 is broken with LLVM8 :/. Still, there is 0.30.1 available
<FromGitter> <j8r> here is a rather old example https://gist.github.com/j8r/34f1a344336901960c787517b5b6d616
<FromGitter> <j8r> it uses https://github.com/multiarch/alpine
dwdv has joined #crystal-lang
<FromGitter> <phykos> @j8r for Raspbian?
<FromGitter> <j8r> depends if it is on aarch64
<FromGitter> <j8r> Raspbian was still recently only for armhf
<FromGitter> <j8r> otherwise there is still the Armbian option
<FromGitter> <j8r> cross compiling can be done too, IMO not that easy
ur5us__ has joined #crystal-lang
ur5us_ has quit [Ping timeout: 240 seconds]
ur5us__ has quit [Remote host closed the connection]
Human_G33k has quit [Read error: Connection reset by peer]
<FromGitter> <watzon> Trying to think of the best way to handle this C code in Crystal
<FromGitter> <watzon> ```code paste, see link``` [https://gitter.im/crystal-lang/crystal?at=5e52e2fdff00c664eee00f1e]
<FromGitter> <watzon> In my case state is just an int, not a pointer
<FromGitter> <watzon> Really I just need to figure out the second loop
HumanG33k has joined #crystal-lang
<FromGitter> <watzon> Maybe this? ⏎ ⏎ ```code paste, see link``` [https://gitter.im/crystal-lang/crystal?at=5e52e5f34880f07ed1f466a1]
<FromGitter> <watzon> I really hate how ugly for loops like this end up
<FromGitter> <Blacksmoke16> hmm
<FromGitter> <watzon> Looks like I got pre-incriment and post-incriment mixed up again actually
<FromGitter> <watzon> So probably something more like this ⏎ ⏎ ```while k >= 0 ⏎ if ((iv[k] += 1) != 0) ⏎ break ⏎ k -= 1 ⏎ end``` [https://gitter.im/crystal-lang/crystal?at=5e52e84c8e726c7dc5c2f8c0]
<FromGitter> <Blacksmoke16> could maybe do `unless (iv[k] += 1).zero?`
<FromGitter> <watzon> Oh that would probably work too
<FromGitter> <watzon> Can't remember, is there a way to do a reverse range?
<FromGitter> <watzon> Something like `10..0` doesn't work
<FromGitter> <Blacksmoke16> `(0..10).reverse`?
<FromGitter> <Blacksmoke16> or `.to_a` or something
<FromGitter> <watzon> Yeah I thought as much
<FromGitter> <watzon> I feel like reverse ranges should work
<FromGitter> <watzon> Sad that they don't
<FromGitter> <watzon> Or at the very least they should allow `#reverse`
darkstarx has quit [Quit: Leaving]
alexherbo2 has joined #crystal-lang
alexherbo22 has quit [Ping timeout: 265 seconds]
<FromGitter> <watzon> Ahh there's a `reverse_each` method
darkstardevx has quit [Quit: Leaving]
darkstardevx has joined #crystal-lang
darkstarx has joined #crystal-lang
darkstarx has quit [Read error: Connection reset by peer]
darkstardevx has quit [Read error: Connection reset by peer]
darkstardevx has joined #crystal-lang
ur5us has joined #crystal-lang
alexherbo2 has quit [Ping timeout: 260 seconds]
postmodern has joined #crystal-lang
mistergibson has joined #crystal-lang
<postmodern> whats the preferred way to test if we're compiling on linux vs macos vs freebsd?
mistergibson has quit [Client Quit]
<postmodern> is there a macro or some internal API?
<FromGitter> <watzon> There's flags for that
<FromGitter> <watzon> Sec
<FromGitter> <watzon> Yeah that's a bit better since all of them are there. All of them should probably be documented in the book.
<postmodern> do flags inherit from the libc which crystal was compiled against?
<FromGitter> <watzon> That's a good question
<FromGitter> <watzon> No idea
<postmodern> wondering how or if i should try to detect __USE_MISC from glibc
<FromGitter> <watzon> I'd try using `has_flag?("__USE_MISC")` and see if it works
<FromGitter> <watzon> In a macro of course
<FromGitter> <watzon> Or maybe not
<FromGitter> <tenebrousedge> it's `flag?`
<FromGitter> <watzon> Ahh yeah
<FromGitter> <tenebrousedge> `crystal eval 'pp {{ flag?("__USE_MISC") }}' `
<postmodern> flag? worked but __USE_MISC isn't getting picked up by crystal (C recognizes it)
<FromGitter> <watzon> Hmmm
<postmodern> too bad i can't do something like flag("__USE_MISC",true) to default it on, and somehow allow users to do -D__USE_MISC=false to explicitly disable it?
<FromGitter> <watzon> Yeah idk if anything like that is currently possible
<FromGitter> <cuboide> hello, everyone!
<FromGitter> <cuboide> ...that is all
<FromGitter> <watzon> You might try with `flag?(:use_misc)`
<FromGitter> <watzon> I'm looking for how PREVIEW_MT was defined in the compiler
<FromGitter> <Blacksmoke16> its just a bunch of `{% if flag?(:preview_mt) %}`
<FromGitter> <watzon> And I can't find any definition, just a lot of checks for `flag?(:preview_mt)`
<FromGitter> <watzon> Yeah
<postmodern> watzon, does it name mangle the C macros?
<FromGitter> <watzon> It's possible
<postmodern> still nothing
<FromGitter> <watzon> Hmm
<FromGitter> <watzon> I feel like it should be possible, but who knows
<FromGitter> <watzon> I can't find anything on it
<postmodern> if a C func defines __THROW, should I use @[Raises]
<FromGitter> <watzon> I think so. I haven't actually dealt with that yet.
ur5us has quit [Ping timeout: 240 seconds]
<postmodern> how do you do C function aliases? macros? alias? type?
<FromGitter> <tenebrousedge> aliases?