<< 27-10-2013 >>

00:07:04*DAddYE joined #nimrod
00:11:15*DAddYE quit (Ping timeout: 245 seconds)
00:32:40*mflamer joined #nimrod
00:37:25*OrionPK quit (Quit: Leaving)
01:01:47*guaqua`` joined #nimrod
01:05:32VarriountMeep.
01:05:38*Varriount pops up out of the ground.
01:08:03*Amrykid_ joined #nimrod
01:08:18*DAddYE joined #nimrod
01:08:44*q66 quit (*.net *.split)
01:08:44*jamil_1 quit (*.net *.split)
01:08:44*guaqua` quit (*.net *.split)
01:08:44*Amrykid quit (*.net *.split)
01:12:30*DAddYE quit (Ping timeout: 245 seconds)
01:35:40mflamerlike a gopher?
01:37:04*dom96 gets carried in on a throne by 4 people
01:37:07dom96like a king :D
01:45:10mflamer-*-MFlamer falls out of the sky
01:45:32mflamerthe cool color thing diddnt work for me
01:45:45dom96lol
01:45:49dom96/me
01:50:31Varriount/meep
01:51:01Varriountdom96, when Araq gets up, tell him that disphelper is evil.
01:51:11VarriountIt uses so. many. macros.
02:10:09*DAddYE joined #nimrod
02:14:21*DAddYE quit (Ping timeout: 245 seconds)
02:15:21mflamerhey, what does skiptypes() do? simple proc, but I dont get it
02:16:09mflamerjust skip a node if its of a type in the list?
02:27:51*DAddYE joined #nimrod
02:28:00*DAddYE quit (Remote host closed the connection)
02:28:06*DAddYE joined #nimrod
02:33:46*DAddYE quit (Remote host closed the connection)
02:47:42*DAddYE joined #nimrod
02:47:43*DAddYE quit (Remote host closed the connection)
02:47:50*DAddYE joined #nimrod
03:01:44*Amrykid_ is now known as Amrykid
03:02:00*Amrykid quit (Changing host)
03:02:00*Amrykid joined #nimrod
03:41:14*DAddYE quit (Remote host closed the connection)
03:58:14*DAddYE joined #nimrod
03:58:25*DAddYE quit (Remote host closed the connection)
03:58:35*DAddYE joined #nimrod
03:58:55*DAddYE quit (Remote host closed the connection)
03:59:23*DAddYE joined #nimrod
03:59:28*DAddYE quit (Remote host closed the connection)
03:59:34*DAddYE joined #nimrod
04:12:43*mflamer quit (Ping timeout: 272 seconds)
04:22:08*filwit joined #nimrod
04:22:21*filwit quit (Client Quit)
04:45:47VarriountAraq, how does c2nim handle calling methods from pointers using the -> operator?
05:18:30*DAddYE quit (Remote host closed the connection)
05:18:38*Zor_ quit (Ping timeout: 240 seconds)
05:18:46*Zor joined #nimrod
05:36:51*DAddYE joined #nimrod
05:37:47*dyu joined #nimrod
05:39:03*DAddYE quit (Remote host closed the connection)
05:43:52*dyu https://news.ycombinator.com/item?id=6619613 - dom strikes again (upvote)
05:52:33*dyu quit (Quit: Leaving)
06:49:21*brson quit (Quit: leaving)
07:05:34*Endy joined #nimrod
07:18:19*Varriount quit (Ping timeout: 248 seconds)
07:35:00*Varriount joined #nimrod
07:47:35*io2 joined #nimrod
07:53:33AraqVarriount: c2nim does the right thing with '->', I think
07:57:52VarriountAraq, I found out that c2nim does not like parenthesis
07:58:53Araqc2nim doesn't like C/C++ ...
07:59:13VarriountAraq, (pObj)->lpVtbl->Release(pObj) fails, but pObj->lpVtbl->Release(pObj) doesn't
07:59:30Araqbug report please
08:00:25VarriountAlso, any idea why would "#define dhFreeString(string) SysFreeString((BSTR) string)" fail?
08:01:16Varriountc2nim doesn't seem to like the cast, but the translation error c2nim throws is in the middle of "string" right after "(BSTR)"
08:09:26Araqyes it's the cast; add this case to your bug report please
08:23:53VarriountAraq, filed the bug reports. Also modified the ranged insertions/deletions pull request to comply with your suggestions.
08:56:17*wlhlm joined #nimrod
09:08:25AraqVarriount: thanks, gotta go
09:17:27*[1]Endy joined #nimrod
09:21:31*Endy quit (Ping timeout: 272 seconds)
09:21:31*[1]Endy is now known as Endy
11:24:25dom96hello
11:27:52*sebcrozet joined #nimrod
11:28:37sebcrozetHi, is it possible to make an object non-implicitly copiable ?
11:35:53dom96Perhaps this: http://build.nimrod-code.org/docs/manual.html#byref_512107115
11:37:38sebcrozetThanks, I’ll try that.
11:48:11*q66 joined #nimrod
12:35:32*zanget quit (Ping timeout: 260 seconds)
12:55:44*io2 quit ()
13:15:13*dyu joined #nimrod
13:48:21*io2 joined #nimrod
14:02:28*BitPuffi1 joined #nimrod
14:02:38*BitPuffi1 is now known as BitPuffin
14:16:28dom96hey BitPuffin
14:16:38BitPuffinhey dom96 !
14:17:04dom96Any ideas where EXetoC is?
14:17:12dom96!seen EXetoC
14:17:12NimBotEXetoC was last seen on Sun Oct 20 18:46:35 2013 quitting with message: Ping timeout: 248 seconds
14:19:12BitPuffindom96: nope :/
14:20:58*gradha joined #nimrod
14:21:50dom96BitPuffin: what ever happened to scrypt?
14:22:33BitPuffindom96: you need it?
14:22:58dom96Well, Nimforum could certainly use it.
14:22:58BitPuffindom96: I can fix it up soon, I'm currently studying for my drivers' license test
14:23:11BitPuffinand apparently swtiching to wayland
14:23:13dom96BitPuffin: ahh, no worries, take your time.
14:23:37BitPuffindom96: have you tried wayland_
14:24:35*q66 quit (Ping timeout: 246 seconds)
14:24:47dom96nope. I doubt it supports proprietary drivers.
14:25:08BitPuffindom96: it doesn't
14:25:44BitPuffindom96: But I just switched to the open source drivers because they were faster than the unsupported legacy ones I was running. And that allowed me to switch to wayland :D
14:25:48*BitPuffin feels so alive
14:26:05dom96I also doubt the open source drivers support my GPU :(
14:26:43BitPuffindom96: have you tried?
14:26:46BitPuffindom96: ask in #radeon
14:26:59dom96Yes. I also checked the support list.
14:27:02dom96But that was a long time ago.
14:28:13BitPuffindom96: well maybe it is different now, ask :D we can be waylanders
14:28:19dom96interesting
14:28:24dom96It looks like it may be different now
14:29:55dom96wow, a lot is done
14:30:22*BitPuffin quit (Quit: WeeChat 0.4.2)
14:30:23dom96I think it's to do with the changes introduced in the 3.4 kernel
14:33:02dom96dyu: Thanks for the upvote :)
14:33:27*BitPuffin joined #nimrod
14:33:46dom96BitPuffin: Well now i'm tempted to drop the proprietary driver
14:34:00BitPuffindom96: do it
14:34:06dom96But something tells me I will spend a day fixing the disaster that results from doing that :P
14:34:10BitPuffindom96: opengl 3.3 support is coming really soon
14:34:29BitPuffindom96: I switched from proprietary to open source in about 10 minutes on arch
14:34:36BitPuffinwas a bit fiddly but it worked out
14:34:41BitPuffinalthough now I am running debian
14:34:46BitPuffinwith only wayland
14:34:49BitPuffinno x installed yet
14:34:54BitPuffinbut I am gonna install xwayland
14:35:00dom96I wonder what stippled primitives are
14:35:32BitPuffinso that I can run X11 apps
14:35:40BitPuffinand then when I am done with my drivers license thing I am gonna go ahead and write my own wm :(
14:35:41BitPuffin:)
14:35:50BitPuffindom96: Believe it has got something to do with patterns iirc
14:35:52dom96In nimrod!?
14:36:01BitPuffinnot sure
14:36:08dom96whyyyy
14:36:15dom96it's the obvious choice
14:36:15BitPuffinbecause
14:36:16BitPuffinbugs xD
14:36:20BitPuffinWell
14:36:23BitPuffinI wanna use nimrod
14:36:29dom96I am considering writing one in Nimrod.
14:36:38dom96But I know nothing about WMs
14:36:45BitPuffinme neither really
14:36:50dom96It can't be too hard though, there is A LOT of them out there.
14:36:56BitPuffinexactly
14:37:10dom96But there is a lot of compilers out there too...
14:37:13dom96hrm
14:37:20dom96perhaps my theory is wrong hah
14:37:35*q66 joined #nimrod
14:37:37BitPuffinI want to write one that gives you the same control when tiling as i3, but with better floating windows support and a bit better multiple desktop stuff/tags or whatever
14:37:50gradhamaybe instead of writing the wm you should write the GUI first? handling windows for non nimrod processes is boring
14:37:52BitPuffinIt's either nimrod or ocaml
14:38:17dom96Why not Haskell? :P
14:38:32BitPuffindom96: because Haskell is not very practical I think
14:38:54BitPuffindom96: ocaml has a lot of cool stuff that haskell does but is not as uptight about stuff
14:39:00BitPuffinand I think haskell does mark and sweep
14:39:07gradhabtw, why are people still writing window managers? isn't that like a solved problem? ten years ago?
14:39:08BitPuffinwhich ocaml doesn't
14:39:15BitPuffingradha: This is for wayland
14:39:34dom96BitPuffin: What WMs actually support Wayland currently?
14:39:46dom96BitPuffin: Please write it in Nimrod, I will help you!
14:39:59BitPuffindom96: gnome3 and KDE
14:40:41BitPuffindom96: well I might even write a game in ocaml now, and my website haha
14:40:45*dom96 is writing a blog post about Nimrod
14:41:08BitPuffindom96: I really love nimrod, it is just that ocaml is like 4.0 and a lot of years under its belt
14:41:09dom96BitPuffin: omg
14:41:09gradhaso the draft thing was for something
14:41:16dom96gradha: yep :P
14:41:27dom96The article is already long...
14:41:29BitPuffindom96: but I am still gonna use nimrod ofc :)
14:41:34dom96and there is still so many features I want to talk about
14:41:39BitPuffinespecially as it matures
14:41:45dom96BitPuffin: But... but :(
14:41:51BitPuffinnimrod has way nicer GC and concurrency
14:41:55gradhadom96: talking about drafts, I don't think showing/not showing is a solution, you rather need ipsum to have a draft "mode" where it generates output to a different dir specified in the .ini for verification
14:42:22dom96gradha: hrm, perhaps
14:42:28dom96it's good enough for now :P
14:42:32BitPuffindom96: well if you optimize jester within like a week maybe I'll do it all in nimrod :P
14:42:42gradhaI was tempted to add some switches to ipsum, how would you like a dependency on the argument_parser lib?
14:42:50dom96BitPuffin: You don't need Jester for a WM :P
14:43:03BitPuffindom96: no but I will write my website before I write the wm
14:43:09BitPuffinand the wm before I write the game
14:43:28*dyu quit (Remote host closed the connection)
14:43:28dom96And are you writing a new Facebook? What kind of speed do you need?
14:43:42BitPuffindom96: no I am just writing my personal site xD
14:44:05dom96BitPuffin: Yeah, so there is no problem in using Jester.
14:44:17dom96Have you used the forum?
14:44:19BitPuffindom96: not really no
14:44:21dom96It's not slow at all is it?
14:44:35BitPuffindom96: but you are not planning to add any features until it is optimized right?
14:44:38dom96gradha: hrm.
14:44:57dom96gradha: Actually that would be great.
14:45:06dom96gradha: Nice test for babel too.
14:45:18*BitPuffin really likes function currying
14:45:52dom96Yeah, I do too.
14:46:14dom96Implement it in Nimrod using templates.
14:46:44BitPuffindom96: you mean a new function keyword? that produces functions instead of procedures
14:46:59dom96huh?
14:47:07dom96No I mean a curry template.
14:47:30BitPuffindom96: how is that gonna work
14:47:48BitPuffinwouldn't it be kind of cool to write a bunch of FP stuff for nimrod in nimrod
14:48:37dom96Python has a curry function I think
14:48:39dom96Something like that perhaps
14:49:07BitPuffinso that you could write function plus a b: a + b
14:49:28dom96yes, Araq told EXetoC to make that using templates/macros.
14:49:44BitPuffinfunction plusthree a: plus 3 a
14:49:50BitPuffinoh wait
14:49:52BitPuffinI mean
14:50:03BitPuffinfunction plusthree: plus 3
14:50:03dom96oh I see what you mean
14:50:18dom96I meant a nicer closure syntax
14:50:41BitPuffinplus would be a: a -> a-> a->
14:51:01BitPuffinand plusthree would be an a -> a
14:51:08BitPuffinand then you could also pass functions as parameters for those
14:51:12dom96curry(`+`, 5) # Returns a proc (y: int): int
14:52:43BitPuffinso you could do function map func list: blabla
14:53:05BitPuffinand call map plusthree mylist
14:53:25BitPuffindom96: isn't that kind of possible with the current macro syntax stuff?
14:53:39BitPuffinand then we would only need pattern matching on top of that
14:53:54BitPuffinand then I wouldn't have many reasons to use ocaml
14:54:35dom96I have no idea what you mean by 'function map func list: blabla'
14:54:45BitPuffindom96: blabla is just the implementation of map
14:54:48gradhaBitPuffin: it's weird that you need those things in a language to make a website
14:55:29dom96You can do: map(list, func) in Nimrod.
14:56:01BitPuffingradha: no I don't need them to make a website
14:56:04BitPuffindom96: I know
14:56:18BitPuffindom96: But I mean how you could implement it to be more like a functional language
14:56:42dom96I don't think there is any way to get an ML-like syntax
14:57:05BitPuffinwell what I wrote wasn't ml syntax
14:57:31BitPuffinthat would be let plus a b = a + b
14:57:40dom96i.e. plus5 x = `+` 5 -- I can't even remember the Haskell syntax now.
14:58:15dom96So you want a nicer function declaration syntax?
14:58:18BitPuffindom96: I know that with macros you could at least get the function: syntax but I am not sure about function name params:
14:58:26dom96Why?
14:59:48BitPuffindom96: well this would be for FP stuff, in an FP language all the constants and parameteres etc are functions, that's not the way it is in nimrod. And with the function keyword we could force noSideEffects without a macro etc and make it clean
15:01:37BitPuffindom96: actually you are doing get "/": with macro syntax etc. Maybe it is possible to make whatever follows the function "keyword" parameters to the function
15:03:09BitPuffindom96: what I would miss if I went with ocaml is the macros. And maybe I can even implement what ocaml has with macros.. damn it is tempting :(
15:04:27dom96no harm in trying :)
15:05:51BitPuffindom96: I might
15:05:53BitPuffindamn it
15:06:15dom96good.
15:08:59BitPuffindom96: problem is, how would I optimize recursion etc with macros.
15:09:25dom96leave it to GCC? :P
15:10:01dom96You could also use term rewriting macros.
15:10:17dom96Which have been specifically created for the purpose of creating optimisations.
15:16:41BitPuffindom96: true
15:26:32*enurlyx joined #nimrod
15:27:21enurlyxHello :)
15:27:37gradhahai
15:30:56dom96hi enurlyx
15:30:59enurlyxDoes there exist an example on how to interface with opengl? I still have problems.
15:32:31enurlyxI try to use glGenVertexArrays, but i end with illegal storage access (Attempt to read from nil?)
15:33:07enurlyxI do the following:
15:33:20*BitPuffin quit (Ping timeout: 260 seconds)
15:33:37enurlyxvar vaos: array[0..3, GLuint]
15:33:44enurlyxtemplate cArray (x: expr): expr = cast[ptr type(x[0])](x.addr)
15:33:51enurlyxglGenVertexArrays(1, vaos.cArray)
15:37:06gradhait doesn't look like anybody here now knows about opengl, have you tried posting at the forum?
15:39:05dom96Wish I could help but I know little about OpenGL.
15:39:11*OrionPK joined #nimrod
15:39:14dom96That cast looks dangerous though.
15:39:37gradhaonly instance I found on github points to https://github.com/fowlmouth/nimlibs/blob/cd8ff31bb233f68030b01b5fda8fb7c86c297153/fowltek/musings/nim3d/lib/models.nim
15:39:53gradhamore precisely https://github.com/fowlmouth/nimlibs/blob/cd8ff31bb233f68030b01b5fda8fb7c86c297153/fowltek/musings/nim3d/lib/models.nim#L94
15:40:11gradhaouch, it's inside a discard block
15:46:11enurlyxThank you for the link. I will study this a bit.
15:47:06enurlyxAbout the template. This I took from the forum. Araq posted it: http://forum.nimrod-code.org/t/51
16:04:13enurlyx... Seems the crash had nothing to do with the array. The function itself was nil and needed to get initialized first with loadExtensions
16:06:12*xenagi joined #nimrod
16:23:58*enurlyx quit (Quit: Verlassend)
16:27:44gradhanice, my compiler is acting up again, when compilation uses parallel mode some object files don't get compiled, but they do forcing the processor count to 1
16:37:40*BitPuffin joined #nimrod
16:54:58BitPuffinAraq: What do you think, could Haskell/Ocaml like functions be implemented with macros?
16:58:30OrionPKhttp://www.cminusminus.org/
17:05:39gradhaoh, they updated that page? some months ago it looked desserted
17:05:56OrionPKyeah looks nice
17:06:14gradhahopefully the grant they mention covers more than a pretty website
17:06:29OrionPKheh heh
17:07:04gradhacome on, OrionPK, stop browsing their website, I'm getting 502 errors due to you overloading it
17:07:16gradhathat, or they don't have "old news"
17:07:25OrionPKit's up on proggit
17:07:45OrionPKthats probably why it's spitting 502s
17:11:08gradhanice, offering rsync as download option
17:11:24gradhaI'm having trouble finding the gopher page though
17:32:38BitPuffinC-- looks cool
17:39:57*io2 quit ()
18:02:36NimBotAraq/Nimrod master 4c1d0ef Grzegorz Adam Hankiewicz [+0 ±1 -0]: Fixes execProcesses wait order. Refs #379.... 3 more lines
18:02:36NimBotAraq/Nimrod master 57f2bbf Andreas Rumpf [+0 ±1 -0]: Merge pull request #639 from gradha/pr_fixes_execProcesses... 2 more lines
18:04:19Araq## Useful Constants
18:04:20Araqconst NULL* = 0
18:04:25Araqlol, yes very useful
18:04:45Araqbut now we're missing ONE* = 1
18:04:53OrionPKwat
18:05:03*Araq is reading pull requests
18:05:40OrionPKmflamer?
18:06:02OrionPKI dont see how having NULL and null could be confusing
18:08:26Araquh oh he messed with atomics.nim
18:12:25xenagiuh oh spagettios
18:12:58xenagiOrionPK, what's the difference?
18:13:50NimBotAraq/Nimrod master befbca1 Clay Sweetser [+0 ±1 -0]: Added instructions on using koch to compile nimrod with GDB support.
18:13:50NimBotAraq/Nimrod master 4e6ccd1 Clay Sweetser [+0 ±1 -0]: Added some information on sequences.
18:13:50NimBotAraq/Nimrod master dfdf609 Varriount [+0 ±1 -0]: Changed backslash to forward slash... 2 more lines
18:13:50NimBotAraq/Nimrod master c1fb4cb Andreas Rumpf [+0 ±2 -0]: Merge pull request #627 from Varriount/internal-documentation/add-debug-info... 2 more lines
18:14:29*xenagi quit (Quit: Leaving)
18:14:43*xenagi joined #nimrod
18:15:00*gradha wonders if spagettions are something edible
18:16:19*DAddYE joined #nimrod
18:16:32*DAddYE quit (Remote host closed the connection)
18:16:38*DAddYE_ joined #nimrod
18:17:56NimBotAraq/Nimrod master e02ac98 Clay Sweetser [+0 ±1 -0]: Added an insertion function that inserts elements of an openarray.... 2 more lines
18:17:56NimBotAraq/Nimrod master 6dac130 Varriount [+0 ±1 -0]: Apply changes suggested by Araq... 2 more lines
18:17:56NimBotAraq/Nimrod master f308481 Andreas Rumpf [+0 ±1 -0]: Merge pull request #625 from Varriount/sequences/add-ranged-insertions-deletions... 2 more lines
18:17:57*filwit joined #nimrod
18:18:47filwitdamn, was hoping fowl would be around
18:20:15Araqgradha: what about #541 ? apply it and set free some endorphins?
18:21:27gradhaweren't you removing negative slices?
18:21:51gradhanegative indices I mean
18:23:01Araqiirc the final plan was to disallow them only when the array bounds are in fact negative
18:23:29gradhaluckily the internet can solve this problem http://www.random.org/coins/?num=1&cur=60-esp.5ptas
18:26:06Araqdom96: er ... did we have an AIX guy here?
18:26:45dom96Araq: No. But I noticed that the GCC farm has an AIX machine :P
18:27:07Araqok, I'm closing this then
18:28:12dom96why?
18:28:46dom96It's still a bug.
18:29:06AraqI don't think we should support AIX; it's dead afaik
18:30:03dom96if you say so
18:30:39dom96write a comment on the issue then
18:30:54Araqhow do you know 'uname -m' doesn't work on AIX?
18:31:05dom96Because I checked
18:31:09Araqand if it's broken on AIX, is that our problem?
18:31:36dom96And where did I say that it doesn't work?
18:31:50Araq"The script however fails at acquiring the CPU name because on AIX uname -m does not output that information, "
18:31:59dom96Yeah, the script doesn't work.
18:32:02Araqfrom https://github.com/Araq/Nimrod/issues/634
18:32:17dom96uname -m on AIX gives some other piece of info
18:32:25dom96machine ID or something
18:32:33Araquname -p gives me "unknown" on linux though
18:32:51dom96yes, well. uname -p should only be used on AIX then.
18:33:10Araqwell that's exactly why we don't support AIX
18:33:25Araqwe're not autoconf
18:33:34dom96because it's different?
18:33:55*DAddYE_ quit (Remote host closed the connection)
18:34:02Araqwe don't care for the 20th archaic unix clone
18:34:05dom96meh, I don't care. Just thought it would be cool to support.
18:35:19Araqalright
18:41:04OrionPKAraq, why TypeName(field: "A") and proc(param = "A")
18:41:14OrionPKI keep mixing up = and : for those
18:42:09Araqyeah good point; the ':' comes from consistency with tuple constructors
18:42:24Araqalso it makes semantic checking slightly easier to implement iirc
18:42:46OrionPKcould we add support for ":" for proc param names?
18:42:59OrionPKif that's easier than = for fields
18:43:10Araqsounds reasonable
18:44:16filwitbleh, another inconsistency..
18:44:49filwitwhatever, nimrod's already got three ways to write all code anyways, might as well make another way to write params
18:45:12OrionPKlol, well I'd rather just have to remember one way
18:45:45filwitme too
18:45:59gradharemembering is fun, it prevents alzheimer
18:46:10Araq(use-lisp then) :P
18:46:12filwitgreat advertising, haha
18:46:46gradhanimrod gamera, nevar forget
18:46:53filwit"Nimrod - preventing alzheimers and killing sanity at the same time"
18:47:13filwit:p
18:47:23OrionPKwell, I would say get rid of '=', but who knows how much code that would break :p
18:47:46Araqwell '=' is consistent with what's used for default values
18:47:48OrionPKthen again, maybe it's something that could be squeezed in with the rest of those major breaking changes
18:48:00filwitactually, i with the '=' was gone from the type & proc definitions too
18:48:01filwithaha
18:48:17Araqbut then the python people might complain
18:48:23filwit(i know you hate me, Araq, don't worry, i'm not actually suggesting a change)
18:48:27Araqbut then they always complain anyway
18:49:07xenagiI assume Nimrod is less prone to change once it reaches 1.0?
18:49:11Araqnothing is as beautiful as python (don't mention multi-line lambdas ;-) )
18:49:20filwiti just watched a TED talk about Linux where the guy said a study shows that arguing is more innovative way to create ideas
18:49:28xenagiby 'change' I mean backwards-compatibility-breaking changes
18:49:34gradhapython people complain in a civilized way, due to the GIL only one can complain at a time
18:50:49Araqxenagi: there are quite a few backwards-compatibility breaking changes in the pipeline, yes
18:51:14Araqbut providing a transition path is often amazingly easy to do
18:51:37filwitAraq: you know.. (i just thought of this).. doesn't it make more sense to write type's like this: "type Foo: object = ... " ? (that's a question, not suggestion)
18:51:46*Associat0r quit (Quit: Associat0r)
18:52:12Araqfilwit: ':' means "has type", '=' means "implementation follows"
18:52:13filwitAraq: it's like my earlier idea, though it has the '=' mark like procs
18:52:25Araqboth symbols also have other meanings of course
18:52:36OrionPKAraq it might have that type though, if it's extending an object
18:52:43Araqso to answer your question: no your syntax doesn't make more sense
18:53:02filwitidk, it sorta does, even as you describe it
18:53:16dom96Araq: There are going to be breaking changes after 1.0?
18:53:21filwittype <name> : <hasType> = <implimentation>
18:53:33Araqno Foo does not HAVE a type
18:53:33filwitanyways, sorry, don't want to go down this path right now
18:53:38Araqit IS a type
18:53:42xenagi^
18:53:56Araqok, it also HAS the typedesc[] meta type
18:54:07filwityes i know (and have counter arguments), but i don't care that much right now
18:54:24filwitjust wanted to know your thinking behind it
18:54:25xenagifilwit, dont feel like creating ideas? ;)
18:54:54filwithaha, xenagi, just ask Araq how much i love debating about this stuff
18:54:58filwitjust not right now
18:55:11xenagimmhmm
18:55:28xenagitime to get back to this c++! woo </sarcasm>
18:57:34filwitport C++ to Nimrod & build system extension. don't tell boss.
18:57:50filwit:P
18:57:57xenagilol
18:58:19xenagiill do it in one commit
18:58:21xenagino one will notice
18:58:52filwitlol. make the commit message "this is C++. Totally all C++..."
18:59:38xenagi"made code more readable" haha
18:59:55xenagi"youre welcome"
19:00:29filwithaha
19:01:14*filwit quit (Quit: Leaving)
19:17:23*gradha quit (Read error: Connection reset by peer)
19:30:49Araqdom96: thanks to 'system.compiles' every change is strictly speaking a breaking change. But I can't think of any breaking change after 1.0. Time will tell.
19:53:09*gradha joined #nimrod
20:19:27gradhahmm... after the osproc change nimforum will hang waiting for gcc to finish building
20:20:52Araqthe tester didn't show this though
20:21:24Araqbut I told you osproc.nim changes require a high amount of alcohol
20:21:37gradhaok, my custom ouroboros compiler hangs, the default version works fine, I wonder why
20:23:20gradhaalso, I just noticed I accidentaly change the nimcache path somehow, the fun never ends
20:29:14gradhawhat's the osproc noBusyWaiting code meant to do and why is not used?
20:30:42Araqit's supposed to not do any "busy waiting"/polling
20:30:56Araqand it's not active because I never could get it to work
20:34:01*Endy quit (Ping timeout: 272 seconds)
20:47:16*fowl joined #nimrod
20:47:32*io2 joined #nimrod
20:47:57Araqfowl: you need to get a bouncer, filwit was here, looking for your help
20:48:58dom96How would a bouncer help?
20:49:06dom96He can see the logs anyway thanks to NimBot.
20:50:44gradhadoesn't a bouncer prevent contact?
20:52:59*sebcrozet quit (Quit: Gone)
20:54:29fowli was just reading the lgos
20:54:30fowllogs
20:54:57fowlwhat did he want though he doesnt say
20:55:23fowli occasionally read the forums too
21:07:46fowlbtw enurlyx' cArray template is a great way to work with opengl
21:08:22gradhafowl: the cool kids use the forum's rss
21:08:46fowlglGenVertexArrays(1, vaos.cArray) -- the alternative is glGenVertexArrays(1, vaos[0].addr)
21:09:12fowlgradha, idk how to do that with chromium
21:10:45gradhachromium? like http://www.chromium.org/user-experience/feed-subscriptions ?
21:11:30fowli dont have that rss icon for nimrod's forum
21:12:22gradhamaybe they disabled it, I don't have it in chrome either
21:15:06fowlgradha, whats up homie, havent seen you in a while
21:15:43gradhaI did travel long distances for the mana of money, now that I have some I can rest again and play here
21:16:59gradhawow https://en.wikipedia.org/wiki/Nimrod_(computing)
21:17:18gradhaahaha https://en.wikipedia.org/wiki/Nimrod_(distributed_computing)
21:20:18*Varriount quit (Quit: Leaving)
21:28:40*enurlyx joined #nimrod
21:29:24*Varriount joined #nimrod
21:29:48*Varriount quit (Client Quit)
21:30:58BitPuffindom96: Basically the argument I have for myself is that when I have ultra production time ready I am not sure I am gonna have the time get nothing done for a whole day because of a compiler bug :/ which is what I was referring to when I said that ocaml is 4.0
21:32:25AraqBitPuffin: most bugs can easily be worked around
21:32:26gradhaBitPuffin: but fixing bugs in nimrod gives you that nicer taste in your mouth that you are helping the whole world
21:32:54BitPuffindom96: that doesn't really stop me from writing the wm and website in nimrod though, but I would use those projects to learn ocaml
21:33:08BitPuffinAraq: Yes usually, but it is not a guarantee
21:33:16BitPuffingradha: yeah I know :(
21:33:34Araqwell mark the bug as "show stopper" somehow and it will get fixed VERY soon
21:33:48BitPuffinAraq: I will definitely think about it
21:34:46AraqBitPuffin: also it's often strange to say "this doesn't work in nimrod. bug" when 'this' can't be done in other languages at all
21:39:04enurlyxAraq: I import 'opengl' the new wrapper. I call loadExtensions. But I get the following error at runtime:
21:39:11enurlyxError: unhandled exception: could not find symbol: glGenVertexArrays [EInvalidLibrary]
21:39:20enurlyxDo I miss something?
21:39:56fowlhi enurlyx
21:40:03enurlyxhi
21:40:06Araqyour driver doesn't support glGenVertexArrays?
21:40:18AraqI don't know, but fowl is here
21:41:31*Varriount joined #nimrod
21:41:57fowlenurlyx, this may have info for you http://www.opentk.com/node/2219
21:42:11*Varriount is now known as Varaway
21:42:57fowlenurlyx, yea they say your hardware doesnt support the opengl version required for that
21:42:58dom96BitPuffin: Noooo, use Nimrod for everything :(
21:43:13*Varaway is now known as Varriount
21:43:32fowlenurlyx, btw for your template cArray it should just be template cArray(x: expr): expr = x[0].addr
21:43:39enurlyxfowl: I tested this before with Geeks3D Caps Viewer
21:43:44*Varriount wonders if his ZNC setup worked
21:43:56*gradha wonders what znc is
21:43:56enurlyxIt says GL_Version 3.1
21:44:08Varriountgradha, it's a bouncer
21:44:23dom96Somebody needs to write a BNC in Nimrod.
21:44:30VarriountA pseudo-irc server that acts as a client that other clients can connect to.
21:44:36dom96Nimrod needs to slowly take over the world.
21:44:57fowllets write nimrod virii
21:45:39gradhaVarriount: I'm intrigued, why would you need that?
21:46:32VarriountWell, you can use a bouncer to have multiple clients connected, without the need for multiple names
21:46:43fowlenurlyx, try glGetString(GL_VERSION)
21:46:59VarriountI can be connected to the bouncer on both my laptop, desktop, and phone, but you guys would only see one user connected.
21:47:24fowlgradha, when you're on a lame connection you can disconnect and reconnect and get the back logs of your channels/pms
21:47:31Varriount^
21:48:24gradhasounds like fun if the bouncer is on the lame connection
21:48:42fowlthat wouldnt be a good bouncer then would it
21:48:54*Varriount does not have a lame connection
21:49:12fowli used elite bnc for a while
21:49:38VarriountI've only found one good bnc for windows, and thats znc.
21:52:51*Varriount is now known as Varaway
21:53:51gradhaVaraway: write a bouncer in nimrod before you change your name again
21:54:45*Varaway is now known as Varriount
21:55:06gradhathat's being proficient!
21:56:26VarriountThe bouncer changes my name when my client disconnects from it.
21:56:27enurlyxfowl: How can i echo a cstring? I get illegal storage access?
21:56:45Varriount<***> Buffer Playback...
21:56:45Varriount<gradha> [17:53:53] Varaway: write a bouncer in nimrod before you change your name again
21:56:45Varriount<***> Playback Complete.
21:56:49gradhaenurlyx: that likely means your string is nil
21:57:23dom96The one thing that's missing from ZNC is an ability to connect to my BNC through the web.
21:57:28dom96Hrm, perhaps they have that now?
21:57:43Varriountdom96, or you could just use a web irc client
21:57:46Varriountlike mibbet
21:57:53gradhaenurlyx: cstring can be cast to string and vice versa, so you should check for the variable not being nil before using echo with it
21:58:07dom96mibbit sucks
21:58:16dom96and it's blocked in school :P
21:58:25VarriountUse https. :3
21:58:48gradhaenurlyx: you could try "if not variable.isNil: echo variable" or similar
21:58:59wlhlmyeah, silly http firewalls :P
21:59:06VarriountOr, you might be able to embed it in a blog or website page, and use it that way
21:59:17VarriountDepends on how the firewall is set up.
21:59:49wlhlmVarriount: it's the same at our school, just use https…
21:59:55gradhaenurlyx: you could also try using repr(variable), that should deal with nil gracefully, though the output might not look very pretty
22:02:22Varriountwlhlm, my old high schools filter was particularly easy to get past. Depending on what 'level' a website was locked, you could either simply ping the website, and use the IP Address instead of the url, use https, or use a proxy.
22:03:14fowlenurlyx, "You need to have a valid OpenGL context at the time of calling glGetString();"
22:04:04*Varriount disconnects, and goes back to doing math homework.
22:04:09wlhlmVarriount: one problem though is, that stackoverflow has no https, but still google cache works…
22:04:37enurlyxfowl: I use sdl. I gues after SetVideoMode i have this?
22:04:48*Varriount is now known as Varaway
22:05:09enurlyxfowl: I am on windows. windows only supports 1.2 or so. Maybe this is the reason?
22:05:25fowlenurlyx, with SDL 1 you have to specify that you want opengl or accelerated rendering, but i guess you know this
22:05:27enurlyxfowl: But I thougt the opengl wrapper handels the extensions?
22:06:01fowlim not sure about using sdl with the opengl wrapper, can i just see some code
22:06:13enurlyxyes. moment
22:11:31dom96So here is the fruit of my labours: http://picheta.me/articles/2013/10/about-nimrods-excellence.html
22:14:15gradhadon't forget to post it on the forum as well
22:14:35dom96First I need a break for food :P
22:17:08enurlyxfowl: I call the following
22:17:16enurlyxSetVideoMode(screenWidth, screenHeight, 16, cast[uint32](FULLSCREEN or sdl.OPENGL))
22:17:44dom96Guys, feedback appreciated btw
22:18:38fowlenurlyx, can you just paste some code i will try to get it working
22:22:47enurlyxfowl: http://pastebin.com/09qR4N9f
22:23:42enurlyxfowl: Sorry, but i think you have to throw a way a lot of the file loading part. I will create a small version tomorrow.
22:24:50enurlyxfowl: I try to do the first example of the RedBook Opengl
22:25:08enurlyxfowl: C-Code is here for reference: http://www.opengl-redbook.com/
22:26:33fowli get this error: Couldn't find matching GLX visual
22:26:38fowlwhat do you get
22:31:27enurlyxfowl: I get Error: unhandled exception: could not find symbol: glGenVertexArrays [EInvalidLibrary]
22:32:00fowlugh fullscreen jjust fucked up my resolution
22:32:13fowlbrb
22:32:29*Varaway is now known as Varriount
22:32:58*fowl quit (Remote host closed the connection)
22:33:14*fowl joined #nimrod
22:33:34Varriountfowl, IIRC, the red book is quite outdated
22:35:09fowlenurlyx, try running this https://gist.github.com/fowlmouth/e74b6bdee2ee231fde54
22:35:27enurlyxVarriount: There is a updated version of the redbook for gl 4.3
22:35:37VarriountAh, ok
22:35:55VarriountI was referencing this -> http://www.reddit.com/r/programming/comments/1nwfs2/amd_aims_to_give_opengl_a_big_boost_api_wont_be/ccmq4az?context=3
22:35:58fowlenurlyx, i cant open a screen with your gl attributes
22:36:29fowli used this though: http://www.libsdl.org/release/SDL-1.2.15/docs/html/guidevideoopengl.html
22:40:25enurlyxfowl: 3.1 NVIDIA 189.92
22:40:36fowlindeed glGetString crashes without calling loadExtensions()
22:41:25gradhagood night, dom96 remember to spam reddit or something
22:41:35*gradha quit (Quit: bbl, need to watch https://www.youtube.com/watch?v=n7pXRdkdJxI again)
22:42:35enurlyxfowl: glGenVertexArrays should be supported then
22:42:39enurlyxhttp://www.opengl.org/wiki/GLAPI/glGenVertexArrays
22:42:47BitPuffinAraq: What do you mean? I haven't said that?
22:42:50BitPuffindom96: Yeah maybe
22:43:00BitPuffinI was kind of thinking while I was out with the dog
22:43:59BitPuffinAnd I may have decided that if there is a seriously show-stopping bug, there is probably other stuff I can work on while waiting for a fix, like sound, 3d assets etc
22:44:10BitPuffinso maybe I will use nimrod after all
22:44:43enurlyxfowl: Thank you for the help. I have to sleep now. I try more tomorrow. bye
22:44:57fowlenurlyx, "I advise you to look for ARB_vertex_array_object in the gl extension string: glGetString( GL_EXTENSIONS );"
22:44:59dom96BitPuffin: yay
22:45:03fowlfrom the internet^
22:45:06BitPuffinBut I would definitely like some more fp stuff
22:45:41enurlyxfowl: ok. Thank you :)
22:45:43BitPuffinI THINK that the function plus a b: a + b syntax is probably possible to implement with macros
22:45:48*enurlyx quit (Quit: Verlassend)
22:46:05AraqBitPuffin: 10 years ago people wanted more OO stuff. just sayin'
22:46:06BitPuffinbut what about function applicatoin
22:46:16BitPuffinAraq: Well I want both
22:46:19BitPuffinplus other stuff
22:46:22Araqf(a, b) # function application
22:46:59BitPuffinAraq: That's procedure application
22:47:07Araqlol
22:47:16BitPuffinbut yeah
22:47:46BitPuffinAraq: don't lol me or I might change my mind again ;)
22:48:04AraqI'm immune to blackmailing
22:48:29BitPuffinand manners
22:48:31BitPuffinanyways
22:49:39BitPuffinwith the f(a, b) syntax, how would one get a function created with function f a b: ... syntax to be able to be called with f(a, b) and take currying into account with macros
22:50:28BitPuffinplus it would be kind of nice to be able to call it like plus 1 2 because it would make a clear distinction between fp style functions and imperative style procedures
22:51:34fowlwhy is this necessary again?
22:51:42BitPuffinfowl: because it is nice
22:52:12fowlwhat does that mean
22:52:49BitPuffinit means that good ol' procs are nice in some circumstances and functions in others
22:53:56fowlproc plus (a: int): proc (b: int): int =
22:53:56fowl return proc(b: int): int = a + b
22:53:56fowlecho plus(4)(2)
22:54:14fowlis that what you're talking about
22:55:27BitPuffinif "function foo a b: ..." creates a "a -> b -> c" function and being able to pass functions around with that it would give us really clean syntax for that usecase
22:55:48BitPuffinlike closures and lambdas weren't all that clean atm with nimrod right?
22:55:54BitPuffinyou have to mark them with macros
22:55:57BitPuffinI think
22:56:05fowlno..
22:56:19fowlmy plus(a) returns a closure
22:56:31BitPuffinah
22:56:34BitPuffinwell that's nice
22:56:40BitPuffinbut it is very verbose
22:56:56fowlare you writing a haskell in nimrod? thats pretty cool
22:57:08BitPuffinfowl: I would like to have that yeah
22:57:36BitPuffinfowl: but what you wrote could be what such a macro would generate
22:57:51fowli'll write the macro for $50
22:58:19BitPuffinfowl: I can't afford to pay you :P plus I can probably figure it out myself
22:59:03BitPuffinjust that having to apply it like blah(2)(4)("yahoo") doesn't seem ideal
23:00:02Araqmake an apply macro then: apply(blah, 2, 4, "yahoo")
23:00:12BitPuffinAraq: yeah I was just about to write that
23:00:54BitPuffinAraq: obviously blah 2 4 "yahoo" would be the best syntax but maybe using apply isn't so bad
23:01:17Araqyeah it's the best syntax until you use it
23:01:38fowlBitPuffin, isnt that syntax the result of functions only being able to take one parameter in haskell
23:01:47BitPuffinAraq: what do you mean? Works great in both haskell and ocaml
23:02:07BitPuffinfowl: That's kind of the point
23:02:14AraqI find both pretty hard to read, BitPuffin
23:02:23Araqand exactly because of this part of the syntax
23:02:28OrionPKAraq, I've got an import path.file, but export path.file doesnt work?
23:02:50Araqthat's because you mustn't export whole modules
23:03:03BitPuffinAraq: Yeah it is definitely kind of confusing at first. But I think it grows on you. But yeah, maybe to be consistent with the rest of nimrod an apply macro would be the best
23:03:46AraqBitPuffin: when I say "I think it's unreadable" that alread implies "tried it, didn't grow on me"
23:04:03BitPuffinI mean even if one would implement in say common lisp to clean it up one would need a macro for application
23:04:08Araqit's not like I spend 5 minutes and then decide I don't like it
23:04:22BitPuffinAraq: Yeah, I guess it is different from person to person
23:04:32BitPuffinAraq: I kind of like it but I am still confused by it
23:04:37OrionPKmustnt export whole modules, what should I export? I get an 'undeclared indentifier'
23:04:42OrionPKwhen I export just a proc
23:05:17fowlOrionPK, you can so export a whole module
23:05:18Araqwhat's the point of exporting whole modules exactly? can't you just "include" the file then?
23:05:55fowlAraq, so that you can have dependant modules imported when your module is imported
23:06:03OrionPKfowl I know
23:06:09BitPuffinAraq: executable size maybe? But I suppose that gets optimized away
23:06:17OrionPKbut I cant export modules in other folders for some reason
23:06:54BitPuffinAraq: You use LMDE iirc for your linux testing right_
23:06:58BitPuffin?*
23:07:15*fowl tries import fowltek/sdl2 export sdl2
23:07:18Araqamong others, BitPuffin
23:07:29BitPuffinAraq: I see. But mainly lmde?
23:07:35fowlit worked..
23:07:55Araqfowl: but then you have 'sdl2' in your scope
23:08:13Araqbut not everything from sdl2, right?
23:08:28fowlactually defined(sdl2) is false, but defined(createrenderer) is true
23:08:48Araqcool
23:08:56Araqlet me check the source code
23:09:16BitPuffinAraq: anyways then I am using more or less the same as I switched to debian testing :P
23:09:48Araqthat's nice. but you know what you should be using?
23:10:01BitPuffindom96: If you wanna help me with the window manager then bind the wayland api to nimrod :D
23:10:05BitPuffinAraq: Don't say windows
23:10:16AraqBitPuffin: Haiku
23:10:23BitPuffinAraq: I agree
23:10:26BitPuffin:D
23:10:43BitPuffinI have a small partition free just for haiku :3
23:10:55dom96No feedback about my blog post then? :\
23:11:05BitPuffindom96: linkurs!!!!
23:11:12fowldom96, i dont like ur maybe[t] example
23:11:27dom96http://picheta.me/articles/2013/10/about-nimrods-excellence.html
23:11:43fowli just think the constructor maybe[t](hasvalue: true, value: ..) is off-putting
23:12:01*BitPuffin brings the laptop to the other computer because I haven't set up xwayland yet so that I can use firefox so I am currently using elinks lolol
23:12:08dom96fowl: Why not?
23:12:13fowlalso "about nimrods excellence" is egotastic, reminds me of obama talking about america's exceptionalism
23:12:53BitPuffindom96: haters gonna hate (*COUGH* fowl *COUGH*)
23:13:44dom96fowl: Yeah, I wasn't sure about the title. But I couldn't come up with anything better.
23:13:58BitPuffindom96: I like it
23:14:18dom96fowl: As for the constructor, there is no other way to do it.
23:14:25dom96I would have to come up with a whole new example I guess.
23:14:31BitPuffinAraq: so when is the next nimcon?
23:16:21dom96BitPuffin: Glad to hear you like the title. What do you think about the article?
23:16:34BitPuffindom96: I am just about to start reading it
23:16:50dom96ok
23:17:02BitPuffindom96: a quick overview of what it seems to mention it looks nice, but I'll return with feedback in a sec/year
23:17:07*BitPuffin is a slow reader
23:18:14*Araq looks at his "export" implementation
23:18:28*Araq can't see how module exports can work with that
23:18:53fowlugh i tried to make ~/.babel/pkgs/fowltek-version a symlink to my local repos and its not working
23:19:23BitPuffinBy the way is there a good reason why we can't just do proc foo(a, b) = a - b and just have it be generic so that it will work for any types that the body is valid for?
23:19:55Araqproc foo(a, b): auto = a - b should work
23:20:28BitPuffinAraq: cool! But why is auto even needed, can't one just assume auto if there is no type declared?
23:20:33BitPuffinor no auto
23:20:35BitPuffinsorry
23:21:05Araqsure. It breaks 'discard' and is error prone
23:21:27BitPuffinhow come?
23:22:57BitPuffindom96: having for loop in a box seems a bit weird
23:23:11BitPuffindom96: it makes it look like it is from the code
23:23:18BitPuffinlike the acual text
23:23:22dom96ahh, yes. I was going to change that.
23:24:14dom96Fixed.
23:24:34fowldom96, i think you should talk about UFC and how it can make your code read like OOP
23:24:50BitPuffinUFC?
23:25:05BitPuffinunified function call somthingydiddily?
23:25:07fowlBitPuffin, yea
23:25:12AraqBitPuffin: \(a - b) is a possible macro
23:25:13fowluniversal
23:25:36Araqfowl: we call it "method call syntax"
23:25:41fowlBitPuffin, it means a.f(b) can actually be f(a, b)
23:25:59fowl(if "f" is not a field on "a")
23:26:04BitPuffinfowl: Yeah I figured that's what you ment
23:26:15BitPuffinAraq: yeah? and?
23:26:23dom96hrm, I could add that to my "Procedures" section.
23:26:23dom96Not much I can say about it really.
23:27:11BitPuffindom96, fowl: not sure I agree, sugar is not suuuuper important but I guess it can be briefly mentioned how you can call functions
23:28:04Araqfowl: because there is nothing "unified", "universal" about it; if anything f(a, b) is universal
23:28:30AraqBitPuffin: that's even shorter than what you want and doesn't break the language
23:28:31*io2 quit ()
23:28:54BitPuffinAraq: oh you mean like that, I suppose yeah
23:29:00fowlBitPuffin, it impressed most of the OO lovers that i showed it to
23:29:30BitPuffinAraq: the backslash is fairly common to denote function literals too if I am not mistaken
23:30:11BitPuffinfowl: Yeah true, maybe it is nice bait. I think the most important thing about nimrod is the macros though
23:32:23dom96well, I probably didn't explain it very well. But it's there now.
23:32:42BitPuffindom96: I would probably change "which will work in your web browser and apps which will work on iOS devices" to "which will work in your web browser and also on iOS devices" or something like that
23:33:38dom96But then that kind of implies that the JavaScript scripts will work on iOS devices I think.
23:34:02BitPuffindom96: I think that you should also mention that you don't have to switch off GC to manage memory manually
23:34:54BitPuffinand can't the GC be switched off per module too?
23:35:47AraqBitPuffin: not per module, no
23:35:49BitPuffindom96: The Lets in static typing second paragraph should be let's
23:36:13BitPuffinAraq: Oh, I see. Will that be possible some day?
23:36:23dom96fixed.
23:36:44Araqno because it makes no sense whatsoever
23:37:20BitPuffinno I thought maybe it didn't
23:37:22BitPuffinjust use alloc
23:37:24BitPuffin:P
23:38:16BitPuffinDoesn't nimrod's type system allow to implement Maybe like T|nil or something instead of making it a boolean?
23:38:20BitPuffinan object
23:40:10dom96no, Nimrod doesn't support ADTs
23:40:18BitPuffinah
23:40:20BitPuffintoo bad
23:40:33BitPuffinbut oh well the object variant style isn't all that bad either
23:40:53BitPuffindom96: but then how does TNumber etc work?
23:41:14fowltnumber is a generic matcher
23:41:21dom96it's a type class
23:41:32fowlyou cant instantiate it
23:41:38AraqBitPuffin: how about you list some more features of Ocaml. I never heard of this FP stuff you're talking about.
23:42:08BitPuffinAraq: like out of nowhere :P
23:42:25Araqand what's nimrod's way to do Haskell's IO Monad?
23:43:23BitPuffinAraq: to be clear I never said that OCaml has more features than nimrod, in fact there is a lot of stuff I would miss by using ocaml. Just that it is more mature
23:45:12*Varriount says hi to Araq
23:45:37dom96BitPuffin: Why the sudden love for FP?
23:45:43dom96DId you just recently learn OCaml?
23:45:51VarriountFP?
23:46:13BitPuffinAraq: with the FP stuff I was more or less referring to the fact that in FP languages pretty much everything is a function. And that multiple arguments is just multiple functions which can be curried which is really cool. But yeah that can be implemented with macros :P
23:47:25BitPuffindom96: I loved FP before nimrod. I learned a bit of haskell but I didn't find it very practical. And then I believe I went to Rust or maybe it was that I looked at Haskell while looking at Rust and found Haskell to not be very practical. And then ExetoC introduced me to nimrod. Something like that, don't remember exactly
23:47:59BitPuffindom96: But yeah I found OCaml pretty recently, it is kind of a practical haskell, so that is what is nice about it
23:48:09BitPuffinanyways
23:48:12BitPuffinback to reading your article
23:49:39*wlhlm left #nimrod ("weechat 0.4.2")
23:49:49BitPuffinI think the pattern matching is really nice too
23:50:01BitPuffinAnd that should be implemented as a nimrod macro too
23:50:25BitPuffinso if I create an fp module or something I will add that too other than just function and apply macros
23:53:22BitPuffindom96: maybe you should mention that @[] constructs seqs
23:54:37dom96I think people should be able to figure out that it's some sort of list constructor.
23:55:11dom96This article is not meant to be a tutorial.
23:55:31BitPuffinYeah I guess you're right
23:58:45BitPuffinAraq: oh now I see how not using auto would break the language, because you can have procs that doesn't return anything and then it would assume that the last expression is what should be returned