--- Log opened Mon Jun 05 00:00:36 2017 |
00:24 | <&ToxicFrog> | welp |
00:24 | <&ToxicFrog> | I just spent an hour debugging an issue where nothing worked on the AVR and everything worked on linux |
00:25 | <&ToxicFrog> | and it's because in the static dictionary declaration, I forgot to set the right flags on one of the words |
00:25 | <&ToxicFrog> | And in linux the flags I forgot are no-ops anyways because Von Neumann architecture |
00:25 | <&McMartin> | Can't trust them Von Neumann Machines >_> |
00:32 | <&ToxicFrog> | In happier news, it occurs to me that once I have if, I can implement ifelse as :ifelse { &exch exch if exec pop } defn |
00:33 | <&ToxicFrog> | Assuming the signature is (if-block else-block expr -- ?) |
01:43 | | himi [sjjf@Nightstar-dm0.2ni.203.150.IP] has joined #code |
01:43 | | mode/#code [+o himi] by ChanServ |
02:15 | | macdjord [macdjord@Nightstar-a1fj2k.mc.videotron.ca] has joined #code |
02:15 | | mode/#code [+o macdjord] by ChanServ |
02:18 | | mac [macdjord@Nightstar-a1fj2k.mc.videotron.ca] has quit [Ping timeout: 121 seconds] |
03:40 | | * ToxicFrog implements & and list |
03:45 | <&ToxicFrog> | These are some exciting bugs in the compiler! |
03:46 | <&ToxicFrog> | [0] :two 2 const |
03:46 | <&ToxicFrog> | [0] :two' { two } defn |
03:46 | <&ToxicFrog> | [0] &two' list |
03:46 | <&ToxicFrog> | # word two' |
03:46 | <&ToxicFrog> | call word@0 |
03:46 | <&ToxicFrog> | # end |
03:47 | <&ToxicFrog> | Also, |
03:48 | <&ToxicFrog> | it would be really nice if using -O0 -g STOPPED IT FROM OPTIMIZING AWAY FUNCTION ARGUMENTS |
04:00 | <~Vornicus> | what. |
04:06 | <&ToxicFrog> | Yeah, I know |
04:07 | <&ToxicFrog> | On the plus side, list now walks the dictionary to figure out what words are being called, even if they're direct C calls, where possible: |
04:07 | <&ToxicFrog> | [0] :^2 { dup * } defn &^2 list |
04:07 | <&ToxicFrog> | # word ^2 |
04:07 | <&ToxicFrog> | call C@4198640 :dup |
04:07 | <&ToxicFrog> | call C@4198480 :* |
04:24 | <&ToxicFrog> | Hmm. Nested function definitions aren't working because `{` isn't declared immediate. |
04:25 | <&ToxicFrog> | Fixing this, in addition to being the correct thing, has performance benefits; a function's subfunctions will be compiled ahead of time and included in the function as embedded constants. |
04:26 | <&ToxicFrog> | This does, however, mean that they're chained into the dictionary as anonymous functions, and are (if I ever get around to writing that) subject to cleanup. |
04:26 | <&ToxicFrog> | And if cleaned up, the enclosing function stops working. |
04:27 | <&ToxicFrog> | For now I can just not implement cleanup and it's not a problem, but if I ever do implement it I'll need to distinguish between "anonymous functions that were created because the user was using `if` at the top level" and "anonymous functions that are part of another function and shouldn't be cleaned up until it is" |
04:29 | <&ToxicFrog> | (idea: anonymous functions have a NAME_IS_REFCOUNT flag which does what it says on the box. When you `freeword`, in addition to unlinking the word from the dictionary and free()ing all of its associated storage, it scans the wordlist, refdecs all anonymous words referenced within, and frees any that have their refcount go to 0 as a result of this.) |
04:30 | <&ToxicFrog> | (giving the function a name with `defn` clears this flag.) |
05:05 | | celticminstrel is now known as celmin|sleep |
05:08 | | JustLurk [justbob@ServerAdministrator.Nightstar.Net] has joined #code |
05:08 | | JustBob [justbob@Nightstar.Customer.Dissatisfaction.Administrator] has quit [NickServ (RECOVER command used by JustLurk)] |
05:08 | | mode/#code [+o JustLurk] by ChanServ |
05:08 | | JustLurk is now known as JustBob |
05:17 | | Turaiel is now known as Turaiel[Offline] |
06:33 | | Alek [Alek@Nightstar-7or629.il.comcast.net] has quit [Ping timeout: 121 seconds] |
06:36 | | Alek [Alek@Nightstar-7or629.il.comcast.net] has joined #code |
06:36 | | mode/#code [+o Alek] by ChanServ |
07:11 | | Jessikat [Jessikat@Nightstar-i6t524.dab.02.net] has joined #code |
07:11 | | Jessikat [Jessikat@Nightstar-i6t524.dab.02.net] has quit [The TLS connection was non-properly terminated.] |
07:29 | | himi [sjjf@Nightstar-dm0.2ni.203.150.IP] has quit [Ping timeout: 121 seconds] |
08:53 | | Kindamoody[zZz] is now known as Kindamoody |
09:18 | | himi [sjjf@Nightstar-v37cpe.internode.on.net] has joined #code |
09:18 | | mode/#code [+o himi] by ChanServ |
10:33 | <~Vornicus> | reading some code written for python 3.6. in 3.6 they improved the storage layout of the dictionary and as a side effect the dictionary now iterates in item insertion order. |
11:03 | <@himi> | Interesting |
11:04 | <@himi> | Does the language definition make that reliable? |
11:11 | <~Vornicus> | "The order-preserving aspect of this new implementation is considered an implementation detail and should not be relied upon" - it's mentioned that if they do keep it they'll still wait a couple of versions until it's actually official |
11:13 | <~Vornicus> | But it's *so fucking confusing* because I've been trained since forever that dictionaries have arbitrary order |
11:13 | <@TheWatcher> | Honestly, reading that, I'd just keep on assuming that anyway |
11:13 | <~Vornicus> | Right. It's not my code that's doing it |
11:25 | | Kindamoody is now known as Kindamoody|afk |
12:08 | <&ToxicFrog> | Hmm. Do I really want & as a special form? |
12:08 | <&ToxicFrog> | Or do I just want it as a normal word that calls push(find_word(pop()))? |
12:08 | <&ToxicFrog> | So rather than &foo it would be :foo & |
12:09 | <&ToxicFrog> | Hmm. The latter case makes it easier to use on names not known at compile time. The former case avoids an allocation and a very easy memory leak. |
12:14 | | mac [macdjord@Nightstar-a1fj2k.mc.videotron.ca] has joined #code |
12:14 | | mode/#code [+o mac] by ChanServ |
12:17 | | macdjord [macdjord@Nightstar-a1fj2k.mc.videotron.ca] has quit [Ping timeout: 121 seconds] |
12:34 | <@ErikMesoy> | siiiizeeeeers |
12:37 | <@TheWatcher> | Never include them in a program; it won't run with them unless it's misbehaving. |
12:40 | <@ErikMesoy> | TheWatcher: WTF? How do you do layout of UI elements, then? |
12:42 | <@TheWatcher> | Didn't your teachers tell you never to run with them? |
12:42 | <@ErikMesoy> | ...oh. I think that pun was a bit of a reach. |
12:42 | | * Vornicus throws TheWatcher into the pungeon |
12:42 | <~Vornicus> | (it's pungeont) |
12:43 | <@ErikMesoy> | also, namiiiing thiiiings |
12:43 | <@TheWatcher> | Hardest problem in computer science, that. |
13:24 | <&ToxicFrog> | :add { "push(pop() + pop());" } c/defn emits a definition reading "push + pop);" SPOT THE BUG |
13:27 | <@ErikMesoy> | Error, insufficient knowledge of spec. |
13:46 | | ToxicFrog [ToxicFrog@ServerAdministrator.Nightstar.Net] has quit [[NS] Quit: WeeChat 1.7.1] |
15:30 | | ToxicFrog [ToxicFrog@ServerAdministrator.Nightstar.Net] has joined #code |
15:30 | | mode/#code [+ao ToxicFrog ToxicFrog] by ChanServ |
17:27 | | Alek [Alek@Nightstar-7or629.il.comcast.net] has quit [Operation timed out] |
17:31 | | Alek [Alek@Nightstar-7or629.il.comcast.net] has joined #code |
17:31 | | mode/#code [+o Alek] by ChanServ |
18:59 | <@ErikMesoy> | Learning proper documentation through not understanding what I did last time. |
19:20 | | Kindamoody|afk is now known as Kindamoody |
19:23 | | Alek [Alek@Nightstar-7or629.il.comcast.net] has quit [Ping timeout: 121 seconds] |
19:26 | | Alek [Alek@Nightstar-7or629.il.comcast.net] has joined #code |
19:26 | | mode/#code [+o Alek] by ChanServ |
21:35 | | VirusJTG [VirusJTG@Nightstar-6i5vf7.sta.comporium.net] has quit [Connection closed] |
21:36 | | VirusJTG [VirusJTG@Nightstar-6i5vf7.sta.comporium.net] has joined #code |
21:36 | | mode/#code [+ao VirusJTG VirusJTG] by ChanServ |
22:07 | | Turaiel[Offline] is now known as Turaiel |
22:26 | <&McMartin> | iOS 11 announced |
22:27 | <&McMartin> | Time to desperately start archiving documentation so I can migrate code to iOS 11 before they purge all the data I'd need to do it |
22:27 | < Mahal> | oh bugger. |
22:28 | <&McMartin> | Apple's approach to legacy support is problematic on several levels. |
22:32 | <@ErikMesoy> | This being the "why haven't you bought our shinier new version yet?" kind of legacy support? |
22:35 | <&McMartin> | No, like, "you want to have software where the same binary runs on the present and immediately previous version of iOS? Enjoy manually tweaking linking options and checking for symbol existence by hand" |
22:35 | <&McMartin> | "Because we don't run the 3-version deprecation cycle that would let you get that result by programming to a single API" |
22:56 | | Kindamoody is now known as Kindamoody[zZz] |
--- Log closed Tue Jun 06 00:00:37 2017 |