Camelia, the Perl 6 bug

IRC log for #moarvm, 2013-08-23

| Channels | #moarvm index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

Time Nick Message
00:33 BenGoldberg joined #moarvm
01:26 FROGGS_ joined #moarvm
02:50 JimmyZ Good morning
04:24 grondilu joined #moarvm
05:20 dalek MoarVM: 907d08d | (Gerhard R)++ | build/ (2 files):
05:20 dalek MoarVM: Re-introduce quiet builds and NOISY make option.
05:20 dalek MoarVM:
05:20 dalek MoarVM: Hopefully more portable now.
05:20 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/907d08d860
05:51 ggoebel2 joined #moarvm
06:10 dalek MoarVM: 7fb4143 | (Gerhard R)++ | build/ (2 files):
06:10 dalek MoarVM: Only suppress stderr in quiet build mode
06:10 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/7fb4143390
06:15 dalek MoarVM/readline: 19eea1b | jimmy++ | 3rdparty/linenoise/linenoise. (2 files):
06:15 dalek MoarVM/readline: keep it as the original one
06:15 dalek MoarVM/readline: review: https://github.com/MoarVM/MoarVM/commit/19eea1bf9b
06:25 JimmyZ_ joined #moarvm
06:33 yoleaux joined #moarvm
07:58 crab2313 joined #moarvm
08:27 jnthn Short backlog is short :)
08:29 JimmyZ_ :P
08:55 timotimo please use types like uint8_t/int8_t instead of "short". it's more portable!
08:59 jnthn Only to compilers that support it :P
09:00 jnthn There's MVMint8 etc also :)
09:00 jnthn Which is what should be consistently used in stuff we "own"
09:04 moritz jnthn: I think timotimo meant "uint8_t backlog is uint8_t" :-)
09:04 jnthn wait, short isn't 8-bit either :P
09:05 jnthn oh!
09:05 jnthn duh :)
09:05 * jnthn drinks the coffee faster
09:07 donaldh joined #moarvm
09:16 nwc10 opinion, so please ignore. I think that the code would be clearer to newcomers if it uses the C99 standard names, such as uint_8_t (etc), and probes for and defines them if the system isn't C99 enough. Which is a bit cheeky, but a "think of 10 years hence" compromise
09:16 nwc10 er, uint8_t. I cna't type
10:07 not_gerd joined #moarvm
10:08 not_gerd o/
10:09 not_gerd personally, I'd just stick http://code.google.com/p/msinttypes/ in platform/win32 and assume everything else comes with stdint.h/inttypes.h
10:11 dalek MoarVM/dll: cd79a93 | (Gerhard R)++ | / (3 files):
10:11 dalek MoarVM/dll: Start logic for shared libs as well as various cleanups
10:11 dalek MoarVM/dll: review: https://github.com/MoarVM/MoarVM/commit/cd79a93c96
10:12 not_gerd I'd like to introduce 2 macros MVM_PUBLIC and MVM_PRIVATE that control which symbols get exported when creating a shared lib
10:14 not_gerd I'd also like to annotate all our files which #define MVM_SOURCE
10:15 not_gerd this would switch between dllimport/dllexport and allow us to hide declarations from library users
10:16 not_gerd thoughts?
10:16 jnthn What's the semantics of something *not* marked public or private?
10:17 not_gerd see http://gcc.gnu.org/wiki/Visibi​lity?action=recall&rev=14
10:17 not_gerd not exported on MSVC, exported on linux etc
10:17 JimmyZ_ joined #moarvm
10:17 not_gerd ideally, everything should be annotated
10:17 not_gerd (everything extern, that is)
10:18 not_gerd either it's part of our API, or its not
10:18 jnthn *nod*
10:18 jnthn I'm fine with doing that. It's a good discipline to get it in earlier rather than later.
10:19 jnthn Please also put a document about this in docs/
10:19 jnthn Saying what they are for, that `static` things don't need marking, etc.
10:19 not_gerd what about annotating sources with MVM_SOURCE?
10:20 not_gerd the other common approach would be passing something like -DMVM_DLL_BUILD when creating object files intended for the shared lib
10:21 jnthn It feels a bit boiler-platey...
10:22 not_gerd alternatively, we should split up moarvm.h
10:22 not_gerd lib users probably don't want to pull in all our crap by default (apr/libuv, libatomic_ops,...)
10:22 JimmyZ_ +1 to split moarvm.h
10:27 jnthn No, true. moarvm.h wasn't intended to be an "I'm embedding stuff" header file.
10:42 dalek MoarVM/dll: d01c00b | (Gerhard R)++ | src/moarvm.h:
10:42 dalek MoarVM/dll: Add MVM_PUBLIC/MVM_PRIVATE with dummy condition for now
10:42 dalek MoarVM/dll: review: https://github.com/MoarVM/MoarVM/commit/d01c00b14a
11:52 JimmyZ jnthn: Any objection to merge linenoise branch?
12:04 not_gerd we need to decide if we really want to automatically link against readline if available
12:04 not_gerd GNU Readline is GPL, not LGPL
12:05 jnthn That's only a problem for distribution, I guess?
12:05 not_gerd jnthn: correct
12:05 not_gerd binary packages linked against readline would have to be GPL
12:05 not_gerd (which is no problem as Artistic2 allows re-licensing)
12:05 jnthn JimmyZ: I'm happy iff linenoise code is off in a separate repo... I can create a fork under the MoarVM account if you want that.
12:05 JimmyZ jnthn: please fork
12:06 not_gerd jnthn: https://github.com/MoarVM/MoarVM​/blob/readline/Configure.pl#L480
12:07 JimmyZ or don't link readline unless --with-realine
12:08 JimmyZ not_gerd: it will be a good idea change to with-readline?
12:08 JimmyZ ;)
12:11 jnap joined #moarvm
12:12 jnthn JimmyZ: Fork from...?
12:13 JimmyZ jnthn: https://github.com/antirez/linenoise
12:14 jnthn JimmyZ: https://github.com/MoarVM/linenoise
12:14 JimmyZ jnthn: thanks
12:14 jnthn You (and everyone with MoarVM team) shuld have access
12:15 JimmyZ yes ,I see 12 watches
12:15 JimmyZ :P
12:16 jnthn At least we know what time it is, then :P
12:16 tadzik that made me think of an alternative to Irish Bar Watch. A Hacker's Would always display a datetime of a latest commit. If the watch is getting late, you should commit more :)
13:06 dalek MoarVM/readline: 569b23f | (Gerhard R)++ | build/ (2 files):
13:06 dalek MoarVM/readline: Add /nologo to nmake invocation
13:06 dalek MoarVM/readline: review: https://github.com/MoarVM/MoarVM/commit/569b23fdaa
13:06 dalek MoarVM/readline: 7bd2129 | (Gerhard R)++ | / (3 files):
13:06 dalek MoarVM/readline: Take byte order from Perl's %Config.
13:06 diakopter bah
13:07 dalek joined #moarvm
13:07 timotimo oh my
13:21 dalek MoarVM/dll: 9d2e819 | (Gerhard R)++ | build/config.h.in:
13:21 dalek MoarVM/dll: Do NOT put MVM_SHARED into config.h
13:21 dalek MoarVM/dll:
13:21 dalek MoarVM/dll: We want to support both static and dynamic libs with the
13:21 dalek MoarVM/dll: same headers.
13:21 dalek MoarVM/dll: review: https://github.com/MoarVM/MoarVM/commit/9d2e819391
13:24 nwc10 not_gerd: I like that plan. Work on the assumption that every other (sane) platform has those headers, and only put more effort in if one turns up which does not
13:26 not_gerd nwc10: it would be trivial to add 3rdparty/msinttypes and wire it up in build/setup.pm
13:27 nwc10 which makes it sound like a good plan
13:35 not_gerd jnthn: any thoughts on that (replacing MVMint with standard types)?
13:37 gshank joined #moarvm
13:37 jnthn Mostly that my muscle memory will have me typing the wrong ones for a while :P
13:38 jnthn But that's not a good reason not to do it.
13:39 jnthn What are the floating point ones called, though?
13:39 jnthn The *nice* thing about how we have things today is that the convention is MVM[what Perl 6 calls the type].
13:39 jnthn Which is probably the best argument for keeping things as they are.
13:40 not_gerd jnthn: there are no standard floating point types
13:40 not_gerd if float/double are not 32/64, you're out of luck anyway
13:40 jnthn True...
13:40 jnthn That means we end up with a different convention for writing int and floating point types... Joy.
13:40 not_gerd there's float_t and double_t if you want fast floating point types as least as precise as float/double
13:41 not_gerd but no fixed types
13:41 nwc10 these days I think that you will be hard pressed to find a platform where double is not a 64 bit IEEE float
13:41 nwc10 but someone will find you one, just to be annoying
13:43 not_gerd we *could* keep the MVM* names as alias for the standard types
13:44 jnap joined #moarvm
13:44 JimmyZ https://github.com/MoarVM/​MoarVM/tree/readlineintfh
13:44 JimmyZ needs some helps to merg it
13:44 JimmyZ merge
13:45 JimmyZ an updated linenoise https://github.com/MoarVM/linenoise
13:47 JimmyZ i.e: create submodule :)
13:48 JimmyZ and not_gerd++ # NOISY
13:50 dalek MoarVM/dll: febefc7 | (Gerhard R)++ | src/moarvm.h:
13:50 dalek MoarVM/dll: Simplify MVM_PUBLIC/MVM_PRIVATE logic.
13:50 dalek MoarVM/dll:
13:50 dalek MoarVM/dll: If we go ahead with this factoring, MVM_BUILD_SHARED and MVM_SHARED
13:50 dalek MoarVM/dll: need to be passed as compiler flags.
13:50 dalek MoarVM/dll:
13:50 dalek MoarVM/dll: The former will be added by Configure.pl, the latter must be
13:50 dalek MoarVM/dll: specified by library users.
13:50 dalek MoarVM/dll:
13:50 dalek MoarVM/dll: Note that not supplying MVM_SHARED when using the dynamic lib
13:50 dalek MoarVM/dll: should work in principle, but comes with a performance penalty
13:50 dalek MoarVM/dll: on Win32.
13:50 dalek MoarVM/dll: review: https://github.com/MoarVM/MoarVM/commit/febefc709d
13:52 dalek MoarVM/readlineintfh: 15c2b0f | (Gerhard R)++ | build/auto.pm:
13:52 dalek MoarVM/readlineintfh: Auto-detect readline
13:52 dalek MoarVM/readlineintfh: review: https://github.com/MoarVM/MoarVM/commit/15c2b0f71f
13:52 dalek MoarVM/readlineintfh: 6de9acd | (Gerhard R)++ | / (4 files):
13:52 dalek MoarVM/readlineintfh: Wire up MVM_HAS_READLINE and --no-readline
13:52 dalek MoarVM/readlineintfh: review: https://github.com/MoarVM/MoarVM/commit/6de9acd5f0
13:52 dalek MoarVM/readlineintfh: d62a540 | (Gerhard R)++ | Configure.pl:
13:52 dalek MoarVM/readlineintfh: Clarified implications of not using --no-readline
13:52 dalek MoarVM/readlineintfh: review: https://github.com/MoarVM/MoarVM/commit/d62a540f4e
13:52 dalek MoarVM/readlineintfh: 47654ba | (Gerhard R)++ | / (12 files):
13:52 dalek MoarVM/readlineintfh: added readlineint_fh op
13:52 dalek MoarVM/readlineintfh: review: https://github.com/MoarVM/MoarVM/commit/47654bad60
13:53 not_gerd someone needs to go through all headers and add MVM_PUBLIC/MVM_PRIVATE annotations
13:54 not_gerd that someone also needs to gifure out what our API actually is ;)
13:54 not_gerd *figure
13:54 JimmyZ not_gerd: could you help me to add submodule linenoise and merge to master?
13:56 not_gerd JimmyZ: based on readlineintfh?
13:56 JimmyZ not_gerd: yes
13:57 jnthn Do we want it as a submodule, or just clone it into a subdirectory?
13:57 jnthn I guess submodule lets us track the revision better...
13:57 JimmyZ yeah
13:59 not_gerd anyone knows if there's a difference in what URL (git: vs http:) I use for adding the submodule?
13:59 tadzik yes, there is
14:00 tadzik people behind restrictive firewalls may have troubles with git
14:00 JimmyZ not_gerd: git needs password
14:00 tadzik git:
14:00 tadzik no, it does not
14:00 JimmyZ oh
14:00 tadzik http, on the other hand, is slower
14:00 JimmyZ oh ,git://
14:00 not_gerd so, https it is...
14:01 JimmyZ I thought git@ :P
14:02 tadzik that's ssh :)
14:06 not_gerd JimmyZ: readlineintfh is already up to date
14:06 not_gerd or did we get the go-ahead for merging readlineintfh into master?
14:07 JimmyZ not_gerd: I can't follow you ...
14:08 not_gerd JimmyZ: is readlineintfh ready to be merged?
14:08 JimmyZ not_gerd: yes
14:08 not_gerd it does contain my readline auto-detection
14:08 JimmyZ not_gerd: yes
14:09 * not_gerd makes a test build
14:18 moritz jnthn: star's "make install" fails with "error:imcc:loadlib directive could not find library `perl6_group' in file 'modules/rakudo-debugger/perl6-debug.pir' line 1
14:18 moritz "
14:18 jnthn moritz: Have you got latest version? I fixed that last night...
14:19 moritz jnthn: iirc you fixed the usage of perl6_group in the Makefile
14:19 jnthn Yes...
14:19 moritz jnthn: but this is from generated .pir code
14:19 jnthn Oh, does star's make install not do that?
14:19 moritz perl6-debug.pir
14:19 JimmyZ not_gerd: btw, please remove example.c in linenoise
14:19 jnthn How does star build it?
14:19 JimmyZ not_gerd: otherwise it'll be linked
14:20 not_gerd JimmyZ: will do
14:20 JimmyZ not_gerd: thanks
14:21 not_gerd the Makefile should be removed as well
14:21 JimmyZ not_gerd: yes
14:21 not_gerd k
14:21 moritz jnthn: oh, it has it's own makefile rule, which still contains perl6_group. So I can fix it myself :-)
14:22 diakopter jnthn: is it intended that the new repr bless not be able to call HLL code?
14:22 jnthn diakopter: ?
14:22 diakopter TimToady's commit
14:22 jnthn bless is just a method
14:22 diakopter I thought it was saying there'd be a new repr op
14:22 jnthn No
14:23 diakopter that confused me
14:24 jnthn It needs to invoke the correct BUILD methods, for one :)
14:24 not_gerd incoming
14:25 dalek MoarVM: 15c2b0f | (Gerhard R)++ | build/auto.pm:
14:25 dalek MoarVM: Auto-detect readline
14:25 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/15c2b0f71f
14:25 dalek MoarVM: 6de9acd | (Gerhard R)++ | / (4 files):
14:25 dalek MoarVM: Wire up MVM_HAS_READLINE and --no-readline
14:25 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/6de9acd5f0
14:25 dalek MoarVM: d62a540 | (Gerhard R)++ | Configure.pl:
14:25 dalek MoarVM: Clarified implications of not using --no-readline
14:25 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/d62a540f4e
14:25 dalek MoarVM: 47654ba | (Gerhard R)++ | / (12 files):
14:25 dalek MoarVM: added readlineint_fh op
14:25 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/47654bad60
14:25 dalek MoarVM: 5ab4714 | (Gerhard R)++ | / (2 files):
14:25 dalek MoarVM: Add linenoise as submodule
14:25 JimmyZ oh my dalek
14:26 JimmyZ you should sleep 1s each post
14:28 JimmyZ oh, redis is using jemalloc
14:36 benabik joined #moarvm
14:37 diakopter I wish no gpl were the default
14:39 not_gerd diakopter: that would be even easier because we could get rid of the auto-detection
14:39 not_gerd it's a question of -Oend-user vs -Opackager/embedder
14:40 diakopter imho, the primary use case *by far* will be the Rakudo::Star package installed from CPAN that auto-builds/installs MoarVM/NQP and installs them into the p5 lib tree
14:40 JimmyZ so +1 to get rid of the auto-detection, and I'm sorry to request it ;)
14:41 not_gerd if it's consensus, I can do it
14:42 not_gerd I'll refuse to add it back in, though ;)
14:42 diakopter contrary to what others believe, I still assert that nearly all initial Perl 6 users will still come from die-hard p5 users
14:42 JimmyZ anyone see http://people.freebsd.org/~jasone​/jemalloc/bsdcan2006/jemalloc.pdf ?
14:42 diakopter I don't understand why that would get rid of the auto-detection
14:42 diakopter JimmyZ: yes
14:42 diakopter there are bunches of papers on it and related since then
14:42 not_gerd diakopter: we don't need auto-detection if we only trigger on explicit --with-readline
14:43 not_gerd if someone adds that flag, he'd better have that lib
14:43 JimmyZ he should know what means to add that flag :)
14:44 not_gerd we *could* double-check that we can include readline/readline.h
14:45 not_gerd but personally I believe a compilation failure with 'could not include...' is good enough as far as usability goes
14:45 JimmyZ we didn't include readline.h ,just declare readline() and link to readline.lib
14:46 diakopter oh
14:46 not_gerd any reason *why* we do not include readline/readline.h?
14:46 diakopter the gpl thing
14:46 diakopter oh, you mean #include
14:46 diakopter duh
14:46 not_gerd so we can build without having the -devel package installed?
14:47 benabik deadline is GPL, not LGPL?
14:47 JimmyZ not_gerd: I think because  we only need readline()
14:47 benabik *readline
14:47 not_gerd benabik: yes, somewhat famously so
14:47 benabik That's... mildly ridiculous.
14:47 JimmyZ not_gerd: we can build if there is a readline.a
14:47 JimmyZ or readline.lib
14:48 JimmyZ I think
14:48 benabik So that's why I have libedit instead.
14:48 not_gerd benabik: it's consistent if you believe non-free software is evil
14:48 benabik By default.  I think I replaced it with readline.
14:49 diakopter calling non-free software evil is like saying companies shouldn't sell any products
14:50 JimmyZ I'm not sure whether we can link to readline.so or not
14:50 benabik not_gerd: I can understand RMS's / GNU's stance on these matters and still think it's ridiculous to not use the LGPL for libraries.
14:50 not_gerd diakopter: it's logically sound to see non-free software as vendor lock-in that should be illegal
14:50 not_gerd of course it would change the marketplace
14:50 not_gerd no change for programmers working in-house
14:51 diakopter illegal!??!
14:51 benabik JimmyZ: The exception for linking is the primary difference between LGPL and GPL.
14:52 not_gerd diakopter: it's a distortion of free markets
14:52 diakopter selling things should be illegal?
14:52 JimmyZ benabik: yes
14:52 not_gerd I can't pay the programmer of my choice to work on software I 'own'
14:52 benabik Heh.  GNU's "you shouldn't use the LGPL" page explicitly calls out readline.
14:52 not_gerd the state can make such things illegal
14:52 not_gerd (not that I'm arguing for that, mind you;))
14:52 diakopter the state should outlaw selling?
14:53 not_gerd I'm just saying that the GNU mindset *is* consistent
14:53 not_gerd diakopter: just selling software without right to modification
14:53 JimmyZ anyway, we have linenoise , link to readline or not, is the business company thing, out of area
14:53 JimmyZ my area
14:55 not_gerd diakopter: the point is moot, anyway
14:55 not_gerd I don't see anything like that happening in my lifetime
14:55 not_gerd probably never
14:56 JimmyZ me neither
14:56 diakopter not_gerd: who says that should be illegal? is their argument "people are too stupid to read the contract where it says they can't modify the software, and so will be disappointed later, so we should outlaw certain types of contracts"
14:56 diakopter if someone wants software without restriction, just make it yourself
14:57 not_gerd diakopter: the final goal would be getting rid of non-free software completely (except for art/entertainment)
14:57 jnthn diakopter: There's plenty of consumer protection law that essentially boils down to that. At lesat, in Europe. :)
14:57 diakopter it's a distortion of free markets to make certain contracts illegal
14:57 not_gerd if my livelihood depends on a piece of software, I should be allowed to pay whoever I want to fix it
14:57 not_gerd that's the basic idea behind GNU worded in a more consumer-centric way
14:57 diakopter not_gerd: the state is not responsible for anyone's livelihood
14:58 not_gerd not_gerd: the state is responsible for setting the boundaries of the market
14:59 not_gerd note to self: don't send notes to self
14:59 diakopter jnthn: I sincerely doubt that consumer protection laws boil down to that
15:01 not_gerd I know, car analogies and all that: there's been research about making motors black boxes that only the vendor can replace as a whole
15:01 not_gerd if you think about software like that, it's natural to demand to be able to use the mechanic of your choice
15:01 diakopter "livelihood depends on" - there's an important distinction here
15:02 not_gerd diakopter: I believe RMS made an explicit exception for art and entertainment
15:02 diakopter if you depend on redistributing someone else's property that you are licensing the use of... then you are dependent on the software's owner
15:02 diakopter but if you depend on simply USING the software in-house, you can modify it however you want
15:02 diakopter yes, you can pay someone to fix it
15:02 diakopter just don't redistribute it
15:03 diakopter it's not yours.. you are *licensed* to use it because that's all you agreed to
15:04 not_gerd diakopter: I can't pay anyone except the person who holds the source code
15:04 not_gerd as I said, vendor lock-in
15:04 not_gerd of course there are middle grounds
15:04 diakopter I thought we were talking about gpl software
15:04 diakopter that's open-soure
15:04 diakopter *open-source
15:05 diakopter not_gerd: why wouldn't you hold the source code?
15:06 diakopter decompilers exist
15:06 diakopter they work
15:06 not_gerd so go ahead and decompile MS Office to fix some bug ;)
15:07 not_gerd anyway, these are all philosophical mind games
15:07 diakopter so you think software compiled entirely to hardware should be illegal?
15:07 diakopter er, not *you* I guess you said
15:07 not_gerd diakopter: me? or RMS?
15:08 diakopter there's a huge difference between RMS et al. claiming that companies SHOULDN'T sell non-open-source software and claiming it should be CRIMINALIZED
15:09 diakopter I've never heard of those people actually paying lobbyists to try to get it criminalized
15:10 diakopter "people who try to sell non-open-source software should be put in jail"
15:10 diakopter illegal bits
15:10 diakopter "distributing machine code without source code should be illegal"
15:11 diakopter distributing chips without layout drawings should be illegal?
15:11 diakopter selling hardware without complete manufacturing specs should be illegal?
15:12 diakopter that's the insane direct conclusion.
15:12 not_gerd diakopter: the difference is that the chip vendor cannot change it's software once it's converted to hardware
15:12 diakopter how does that make it different?
15:12 diakopter say it's an FPGA
15:13 not_gerd it's all about not having to go to the vendor when trying to fix stuff
15:13 not_gerd if the vendor can't fix stuff himself, it's more of a gray area
15:13 diakopter but that's the essential part of it you pointed out
15:13 diakopter no, but we're talking about "copying"
15:14 diakopter but they can fix stuff by releasing a new version
15:14 diakopter same with software
15:14 colomon joined #moarvm
15:14 not_gerd but in case of hardware, you'd need manufacturing devices, in case of software only a compiler
15:15 diakopter doesn't matter that the manufacturing device is free
15:15 not_gerd one of the lock-ins is more artificial than the other
15:15 not_gerd of course, 3d printers may change the game yet again
15:15 not_gerd I'd be curious to see what RMS has to say on that issue
15:15 not_gerd it sets hardware on the same fooring as software
15:16 not_gerd *footing or flooring
15:16 diakopter I don't think there will ever be 20nm 3d printers .. of less complexity/expense than 20nm chip plants
15:16 diakopter ok, within my lifetime anyway
15:17 JimmyZ what? from GPL to 3D printer?
15:17 not_gerd ;)
15:17 not_gerd diakopter: see also http://www.linuxtoday.com/inf​rastructure/1999062200505NWLF # RMS on free hardware
15:17 diakopter my point is that you can rebuild your car from toyota with sufficient technology, just like you can decompile MS Offie with suffiient technology
15:18 JimmyZ you're out of topic ;)
15:18 not_gerd diakopter: sure, but hardware is protected by patents
15:18 not_gerd software by patents and copyright both
15:19 diakopter only for reselling
15:19 crab2313 joined #moarvm
15:20 diakopter you can remake whatever you want in your basement
15:22 JimmyZ So there will be free hardware by the 3D printer coming?
15:22 not_gerd if the FSF is consistent, they should argue for that
15:22 diakopter so.. by RMS' argument in that article, he's okay with selling MS Office compiled to microcode, because it's difficult to copy
15:22 JimmyZ we should create FHF
15:23 not_gerd I don't think so
15:24 not_gerd making copy protection illegal for application software would be consistent with GNU philosophy
15:24 not_gerd getting rid of 'artificial' vendor lock-in is the whole point
15:25 diakopter he's saying he's okay with people not distributing HDL chip designs when selling chips
15:25 diakopter so here's my MS Office chip, and you don't get the HDL designs
15:25 not_gerd but MS office could work without being printed to a chip
15:25 not_gerd thus artificial
15:25 diakopter intel processors can work without being printed to a chiop
15:26 diakopter people write chip simulators every day
15:26 not_gerd but if you buy an intel chip, you'r not being 'artificially' prevented from fixing bugs with it
15:27 not_gerd if there ever were a 3d-printable intel chip, the sure
15:27 diakopter why not? if you had the high level designs, you could simulate it
15:27 diakopter so you're being prevented from fixing it just because you don't have the design in a language you can grok
15:27 not_gerd but simulating it doesn't help the end-user that is prevented from doing his work by a bug in the chip design
15:28 not_gerd he never will  be able to fix that bug hinself
15:28 not_gerd *himself
15:28 not_gerd anyway, I don't know how to express this any more clearly
15:28 diakopter but again, that's because he doesn't have the chip manufacturing plant
15:29 diakopter I'm not seeking clarity; I'm clearly demonstrating the absurdity of their arguments
15:30 not_gerd I don't find the end-user/consumer protection angle ridiculous, som we might have to agree to disagree ;)
15:30 not_gerd it just bugs me when people claim that the idea behind GNU is totally ridiculous
15:31 not_gerd RMS might be, but I think the free software ideals are logically sound
15:31 diakopter no one claims that intel selling their high level designs and access to their manufacturing plants with their chips wouldn't decrease lock-in
15:33 diakopter it's not ridiculous in that sense
15:33 not_gerd the question is, could an arbitrary end user start manufacturing chips (or pay someone a reasonable amount to do so) if intel made its design public
15:33 not_gerd the answer is no, so the FSF doesn't care about it
15:34 diakopter right, so selling MS Office compiled to microcode is okay, by that argument.
15:34 not_gerd no, because it add artificial barriers
15:34 not_gerd *adds
15:34 diakopter er, selling a *new product* that couldn't already run on a general purpose microprocessor
15:34 TimToady "I get no respect: I went to the fights, and a hockey game broke out."  --Rodney Dangerfield
15:35 not_gerd ;)
15:36 diakopter it doesn't add artificial barriers if the software isn't already for sale in an emulator, like a general purpose cpu
15:36 * TimToady is tired of licensing discussions in general
15:36 not_gerd anyway, perhaps more on topic: I should change the defaults for --no-readline / --with-readline ?
15:37 diakopter I retract my knee-jerk opinion on that :)
15:37 JimmyZ not_gerd: +1 to --with-readline
15:38 diakopter (people aren't going to be redistributing moarvm/perl6 starting with the default build from cpan)
15:38 diakopter (until they are)
15:39 * not_gerd needs to go buy turtle food
15:39 * diakopter needs to go earn turtle food
15:39 jnthn .oO( The turtle food got all the way down )
15:39 TimToady that's a lot of food
15:40 diakopter turtles are good food
15:40 diakopter oh, he meant food *for* turtles
15:41 JimmyZ ...
15:41 jnthn diakopter: I...assumed so :P
15:41 diakopter commutivity&
15:42 JimmyZ so anyone vote for  --no-readline / --with-readline
15:42 JimmyZ ?
15:43 jnthn --use-readline maybe makes sense?
15:43 JimmyZ yes
15:44 * TimToady only designs languages, not *real* interfaces...
15:47 JimmyZ .tell not_gerd please change the defaults to linenoise unless --use-readline ;)
15:47 yoleaux JimmyZ: I'll pass your message to not_gerd.
15:49 jnthn fwiw, I'm happy enough if we auto-detect by default, and --use-readline[=1] means "always try to use it" and --use-readline=0 means "certainly don't try to use it"
15:50 JimmyZ happy drinking :P
15:52 JimmyZ or --use-readline means "always try to use it" and nothing means "certainly don't try to use it"
15:53 woolfy left #moarvm
15:54 JimmyZ .tell not_gerd please see backlog
15:54 yoleaux JimmyZ: I'll pass your message to not_gerd.
15:55 benabik joined #moarvm
15:58 benabik_ joined #moarvm
16:16 woolfy joined #moarvm
16:16 woolfy left #moarvm
16:29 JimmyZ Good night
17:29 BenGoldberg joined #moarvm
17:46 BenGoldberg So, how long until we can play with MoarVM with an IRC evalbot?
17:47 diakopter :)
17:48 jnap joined #moarvm
17:54 not_gerd joined #moarvm
17:54 dalek MoarVM: 59a7bb8 | (Gerhard R)++ | / (2 files):
17:54 dalek MoarVM: Change defaults of GNU Readline usage from auto-detection to on-demand
17:54 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/59a7bb838d
17:57 not_gerd so, on to the next controversial subject: header re-organization
17:57 yoleaux 15:47Z <JimmyZ> not_gerd: please change the defaults to linenoise unless --use-readline ;)
17:57 yoleaux 15:54Z <JimmyZ> not_gerd: please see backlog
17:58 not_gerd [x] done
17:58 not_gerd I'm thinking something along these lines: https://gist.github.com/gerdr/990ebfa6ef040b31b5bb
18:01 jnthn BenGoldberg: Probably when NQP runs nicely on it :)
18:02 BenGoldberg So, not until it self-hosts?
18:02 BenGoldberg Err, self-hosts NQP?
18:03 diakopter not_gerd: something will generate the public header file?
18:04 not_gerd diakopter: could be done, sure
18:05 diakopter just need to detect that marker and backslash-line-endings
18:05 diakopter (and follow includes, I guess)
18:05 jnthn BenGoldberg: Right
18:06 jnthn BenGoldberg: Well, self hosts NQP better than crashing before it even reaches the parser :)
18:06 jnthn Which is the current state of the self-host :)
18:07 not_gerd diakopter: but the API documentation needs to be kept manually anyway
18:07 not_gerd (hey, why not auto-generate that as well ;))
18:08 not_gerd as long as the actual .c file includes all headers that have declarations, we should get a warning if we ever get out of sync
18:13 lizmat joined #moarvm
18:20 woolfy joined #moarvm
18:26 jnap joined #moarvm
18:37 not_gerd MacOS, my nemesis
18:38 not_gerd I don't think linking readline as `-framework readline` works
18:53 dalek MoarVM: 8f3607a | (Gerhard R)++ | / (2 files):
18:53 dalek MoarVM: Allow different flags for linking system and user libs
18:53 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/8f3607a252
18:57 donaldh joined #moarvm
19:27 jnthn not_gerd: The noisy thing seems to have an issue on Solairs; if you have a moment, please could you take a look at Andy Dougherty's mail on perl6-compiler?
19:27 jnthn You can probably make more sense of it than me :)
19:28 not_gerd jnthn: looking
19:40 not_gerd sent mail via google groups
19:41 not_gerd might be a good idea if I join that group
19:48 dalek MoarVM: 8928bcb | (Gerhard R)++ | build/setup.pm:
19:48 dalek MoarVM: Add space after -o to make Solaris happy
19:48 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/8928bcbd49
19:49 dalek MoarVM/dll: 5c9d2e7 | (Gerhard R)++ | build/setup.pm:
19:49 dalek MoarVM/dll: Add space after -o to make Solaris happy
19:49 dalek MoarVM/dll: review: https://github.com/MoarVM/MoarVM/commit/5c9d2e7cdf
19:57 not_gerd good night o/
19:58 not_gerd left #moarvm
20:21 jnthn Oops. Build busted on Windows. :(
20:21 jnthn compiling src\io\fileops.obj
20:21 jnthn NMAKE : fatal error U1077: 'cl' : return code '0x2'
20:21 jnthn Stop.
20:22 jnthn ...where's the darn error... :/
20:22 * jnthn gets it with NOISY=1
20:24 jnthn ah, I had to grab the submodule. We may want to automate that...
20:24 diakopter yah
20:35 lizmat joined #moarvm
20:51 woolfy joined #moarvm
20:55 lizmat joined #moarvm
21:12 dalek MoarVM: 266a334 | jnthn++ | src/ (3 files):
21:12 dalek MoarVM: The first clarg should be the program name.
21:12 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/266a334a0f
21:15 jnthn my $x := '-e';
21:15 jnthn if nqp::substr($x, 0, 2) eq '--' { say('oops');
21:15 jnthn }
21:16 jnthn ...says oops :(
21:23 diakopter jnthn: we've mentioned that on the channel here a whole lotta times
21:23 woolfy left #moarvm
21:24 diakopter jnthn: I don't see why you'd need to root prog_string in that patch
21:27 jnthn diakopter: um, me either... :)
21:27 jnthn diakopter: Yes, I'm debugging now
21:27 jnthn ->graphs in the result of the substring operation is 1, not 2
21:27 diakopter uh oh
21:27 jnthn So the string equality check bails out immediately.
21:27 diakopter but... with success!?
21:28 diakopter seems like NUM_GRAPHS needs to be compared in eq
21:28 diakopter if it's not already
21:30 jnthn oh, wait...
21:30 jnthn NUM_GRAPHS must be doing more than I think...
21:31 jnthn yeah
21:32 jnthn OK, so it doesn't bail out there after all
21:32 jnthn We go on into MVM_string_equal_at(tc, a, b, 0)
21:32 jnthn And make it into MVM_string_substrings_equal_nocheck
21:34 * diakopter hopes what I said the other day holds true (algorithmically sound but slight impl error(s))
21:35 jnthn return result ? result - 1 : 1;
21:35 jnthn result ends up being 2
21:35 jnthn What does teh 2 mean?
21:35 diakopter result was 3?
21:36 diakopter oh, result
21:36 diakopter heh
21:36 jnthn no, result is 2
21:36 jnthn Meaning we return 1
21:36 diakopter trying to remember
21:36 diakopter i'll look at the code
21:38 diakopter result == 1 means didn't match
21:38 jnthn ok, and 2 means did match, but they shouldn't have matched
21:38 diakopter at line 113 2 means matched
21:39 diakopter ... but at 227...
21:39 diakopter not sure yet
21:41 diakopter masak: jnthn's debugging my solution to that leaf compare problem thing you mentioned
21:41 jnthn s/debugging/struggling to debug/
21:42 diakopter .. maybe i should do it....
21:42 diakopter I was hoping it would fix itself by some other means :)
21:42 jnthn descend_sized does return?!
21:43 diakopter yah setting result should be the last thing needed
21:43 diakopter rest of state is on the c stack
21:44 jnthn So here's the bit that confuses me
21:44 jnthn if (memcmp(st->member, c->string->body.member + c->string_idx, \
21:44 jnthn wehave * sizeof(size))) { \
21:44 jnthn *result = 1; \
21:44 jnthn return; \
21:44 jnthn } \
21:45 jnthn That is, if they compare the same, set the result to 1
21:45 jnthn and return
21:45 jnthn If that doesn't happen we reach the end of compare_descend and do
21:45 jnthn *result = 2;
21:45 diakopter memcmp returns 0 if they compare the same
21:45 jnthn oh, yes
21:45 jnthn duh :)
21:45 diakopter however
21:45 diakopter it might not should be returning
21:48 diakopter jnthn: oh, I see the problem
21:49 diakopter er, no I don't
21:51 diakopter jnthn: the only thing I can think of at this second is that this is wrong somehow: "st->needed -= tocompare"
21:51 jnthn What's slightly odd is the MVM_STRING_TYPE_ROPE path is never taken in compare_descend even though we clearly have a rope...
21:51 diakopter whehhhh
21:52 diakopter that can't be right
21:52 diakopter jnthn: wait
21:52 diakopter why do you think we have a rope
21:53 diakopter i thought we were flattening everything everywhere
21:53 jnthn No
21:53 jnthn I think we have a rope because substr returns one :)
21:53 diakopter right, I just thought we were flattening everything everywhere
21:53 jnthn Also because one of the input strings has num_strands = 1, and flags = 2.
21:54 diakopter k
21:54 jnthn No, I think we discussed doing that, but aren't actually doing it.
21:54 diakopter oh hm
22:00 jnthn Feel free to put that in place, though.
22:09 jnthn well, I did it here and it helps...
22:10 diakopter :S
22:10 dalek MoarVM: 0fcc23d | jnthn++ | src/strings/ops.c:
22:10 dalek MoarVM: Always flatten ropes for now; avoids bugs.
22:10 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/0fcc23d048
22:11 diakopter probably to diagnose it, I'd replace memcmp with something that printf a bunch of stuff
22:12 dalek MoarVM: 52d8110 | jnthn++ | nqp-cc/nqp-src/NQP.nqp:
22:12 dalek MoarVM: Remove classname stage; was copy-paste from JVM.
22:12 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/52d81106d4
22:15 jnthn Well, that gets us to the next segfault.
22:15 diakopter \\\\\\\o///////
22:15 jnthn Which doesn't seem to be GC related
22:15 diakopter <- grew some arms
22:18 jnthn oh, I see...
22:19 diakopter now what :)
22:22 jnthn Arg handling fail in bootstrap
22:22 jnthn *bootstrap.c
22:22 diakopter o_O
22:23 diakopter but.. bootstrap is before everything
22:23 diakopter oh, probably new_type
22:23 jnthn new_type
22:23 jnthn Used at the start of parse
22:23 diakopter \o/
22:23 jnthn We get further now
22:23 jnthn To an NYI opcode
22:23 diakopter \o/ for guessing correctly
22:23 diakopter which one
22:23 FROGGS O.o
22:23 jnthn scobjcount
22:24 diakopter wee-uhd
22:25 dalek MoarVM: 014ee8d | jnthn++ | src/6model/bootstrap.c:
22:25 dalek MoarVM: Missing check_arity calls.
22:25 dalek MoarVM:
22:25 dalek MoarVM: Needed because that triggers flattening.
22:25 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/014ee8d2c4
22:25 jnthn It's used in NQP::World.
22:26 dalek MoarVM: 3b82437 | jnthn++ | nqp-cc/t/moar/clargs.t:
22:26 dalek MoarVM: Sync clargs test with progname reality.
22:26 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/3b82437c3b
22:27 jnthn wtf, adding MVM_string_flatten(tc, result); in join breaks tests...
22:27 jnthn uh, no...hmm
22:27 jnthn Removing it leaves them busted
22:27 jnthn wtf.
22:31 jnthn ah, we hit various missing SC ops
22:32 grondilu joined #moarvm
22:32 diakopter jnthn: oh, I've doe a bunch alread y
22:32 diakopter locally
22:33 diakopter go to sleep they'll be done when you wake up :)
22:33 jnthn oh, ok
22:33 * grondilu doesn't have linenoise:
22:33 grondilu src/io/fileops.c:13:23: fatal error: linenoise.h: No such file or directory
22:33 jnthn That will get nqp.moarvm further :)
22:33 diakopter or at least lots of progress :)
22:33 jnthn lemme push the one I did
22:34 dalek MoarVM: 026f778 | jnthn++ | src/core/interp.c:
22:34 dalek MoarVM: Implement scobjcount op.
22:34 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/026f778cb4
22:34 jnthn Next one it hits is scsetobj. The signature in oplist looks wrong actually...
22:34 jnthn 0x02    scsetobj            w(obj) r(obj) r(int64)
22:34 jnthn It's called as
22:34 jnthn nqp::scsetobj($!sc, $idx, $obj);
22:34 diakopter heh ok
22:34 jnthn So should be r(obj) r(int64) r(obj)
22:34 jnthn scsetcode is similarly
22:35 diakopter one of them returns one of hte args needlessly.. is that intended?
22:35 diakopter ("yay for chaining/fluency"?)
22:35 jnthn "one of them"?
22:35 diakopter one of the nyi op's sigs
22:35 diakopter (as impl in the jvm)
22:36 jnthn yeah, it shoudln't needlessly do that...
22:36 jnthn Oh, on the JVM they always needlessly do that as it's a stack machine
22:36 diakopter ok
22:36 jnthn In MoarVM we don't need to
22:36 diakopter I feel like I've learned this before :)
22:36 jnthn We have the "use this arg as the result" flag (which you probably even implemented way back :))
22:37 jnthn So QASTOperationsMAST may need tweaking
22:37 diakopter *blinks*
22:37 jnthn after these changes
22:37 diakopter ah, ok
22:40 jnthn OK, well, there's another little bit of progress, anyways...
22:40 diakopter jnthn++ :D
22:40 diakopter btw when it was looping in interactive(), it memory leaked and asploded quickly
22:41 TimToady &[<]++
22:41 * diakopter doesn't recognize that idioma
22:41 TimToady I'm giving karma to &[<]
22:42 TimToady which stands for progress
22:42 TimToady 1 < 2 < 3 < 4...
22:43 diakopter so how do you reverse the direction of a [ ]
22:43 TimToady which direction are you referring to?
22:43 flussence r: say [R<] 4,3,2,1
22:43 FROGGS [R<] ?
22:44 dalek MoarVM: cb09baa | (Gerhard R)++ | build/ (2 files):
22:44 dalek MoarVM: Makefile bikeshedding - in particular don't hide compiler output
22:44 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/cb09baa944
22:44 dalek MoarVM: b09b271 | (Gerhard R)++ | src/core/validation.c:
22:44 dalek MoarVM: Add missing initializer for local variable.
22:44 FROGGS ENOCAMELIA
22:44 dalek MoarVM:
22:44 dalek MoarVM: I'm assuming zero-initialization is correct here.
22:44 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/b09b271517
22:44 flussence whoops, wrong channel.
22:49 jnthn 'night, #moarvm
22:49 diakopter o/
22:50 TimToady yes, we do
22:58 TimToady along with the details of channel hopping :)

| Channels | #moarvm index | Today | | Search | Google Search | Plain-Text | summary